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; }
146 bool getRefinedEdgeDrawRange(
150 exint &draw_size)
const;
154 uint getNumFaces(
uint subd_level)
const;
155 uint getNumEdges(
uint subd_level)
const;
157 {
return myNumVertices; }
159 {
return myNumFVarVertices; }
165 exint num_coarse_faces);
169 exint num_coarse_points);
173 StencilData& stencil_table_data);
175 template <
int BranchingFactor,
typename ChildGetterFunc>
176 void extractSubdComponents(
178 ChildGetterFunc get_children)
const;
180 template <
int BranchingFactor,
typename VertexGetterFunc>
183 VertexGetterFunc get_vertices)
const;
185 void buildPrimIDToCoarseFaceMap(
186 exint num_coarse_faces)
const;
187 void buildPointIDToCoarseVertexMap(
188 exint num_coarse_points)
const;
189 bool mapPointIndexToCoarseVertex(
197 uint myNumFVarVertices;
205 StencilData myVertexStencilData;
206 StencilData myFVarStencilData;
210 mutable bool myAllPointVerticesBuilt =
false;
211 mutable bool myAllEdgeVerticesBuilt =
false;
214 mutable bool myPrimIDToCoarseFaceBuilt =
false;
216 mutable bool myPointIDToCoarseVertexBuilt =
false;
226 StencilData myLocalPointStencilData;
227 PatchData myPatchData;
233 int64 myVertexAttributeDataIdHash = -1;
234 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.