11 #ifndef GR_OSDSubdData_h
12 #define GR_OSDSubdData_h
54 uint patchIndicesBase;
94 void resetSubdivision();
97 void createStaticOSDContext(
100 const uint subdiv_level,
101 bool use_adaptive =
false);
104 {
return myFullMeshPrimh; }
106 void buildVertexStencilData();
107 void buildFVarStencilData();
109 const StencilData* extractLocalPointStencilTableData();
110 const PatchData* extractPatchTableData();
114 {
return &myVertexStencilData; }
116 {
return &myFVarStencilData; }
137 bool mapPointIndexToCoarseVertex(
148 bool getRefinedEdgeDrawRange(
152 exint &draw_size)
const;
156 uint getNumFaces(
uint subd_level)
const;
157 uint getNumEdges(
uint subd_level)
const;
159 {
return myNumVertices; }
161 {
return myNumFVarVertices; }
167 exint num_coarse_faces);
171 exint num_coarse_points);
175 StencilData& stencil_table_data);
177 template <
int BranchingFactor,
typename ChildGetterFunc>
178 void extractSubdComponents(
180 ChildGetterFunc get_children)
const;
182 template <
int BranchingFactor,
typename VertexGetterFunc>
185 VertexGetterFunc get_vertices)
const;
187 void buildPrimIDToCoarseFaceMap(
188 exint num_coarse_faces)
const;
189 void buildPointIDToCoarseVertexMap(
190 exint num_coarse_points)
const;
196 uint myNumFVarVertices;
204 StencilData myVertexStencilData;
205 StencilData myFVarStencilData;
209 mutable bool myAllPointVerticesBuilt =
false;
210 mutable bool myAllEdgeVerticesBuilt =
false;
213 mutable bool myPrimIDToCoarseFaceBuilt =
false;
215 mutable bool myPointIDToCoarseVertexBuilt =
false;
225 StencilData myLocalPointStencilData;
226 PatchData myPatchData;
232 int64 myVertexAttributeDataIdHash = -1;
233 bool myReducedLOD =
false;
int getSubdivisionLevel() const
SIM_API const UT_StringHolder vertex
GLuint GLsizei const GLuint const GLintptr const GLsizeiptr * sizes
GLsizei GLenum const void * indices
GLdouble GLdouble GLint GLint const GLdouble * points
const GT_PrimitiveHandle & surface()
int numTotalStencilElements
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
GLuint GLsizei const GLuint const GLintptr * offsets
set of parameters sent to GR_Primitive::update()
uint getNumFVarVertices() const
uint getNumVertices() const
const GT_PrimitiveHandle getFullMeshPrimh() const
const StencilData * getFVarStencilData() const
const StencilData * getVertexStencilData() const
bool isReducedLOD() const
Topology definition for opensubdiv classes.
Options for topology and refinement.