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; }
135 bool getRefinedEdgeDrawRange(
139 exint &draw_size)
const;
143 uint getNumFaces(
uint subd_level)
const;
144 uint getNumEdges(
uint subd_level)
const;
146 {
return myNumVertices; }
148 {
return myNumFVarVertices; }
154 exint num_coarse_faces);
158 StencilData& stencil_table_data);
160 template <
int BranchingFactor,
typename ChildGetterFunc>
161 void extractSubdComponents(
163 ChildGetterFunc get_children)
const;
165 template <
int BranchingFactor,
typename VertexGetterFunc>
168 VertexGetterFunc get_vertices)
const;
174 uint myNumFVarVertices;
182 StencilData myVertexStencilData;
183 StencilData myFVarStencilData;
187 mutable bool myAllPointVerticesBuilt =
false;
188 mutable bool myAllEdgeVerticesBuilt =
false;
198 StencilData myLocalPointStencilData;
199 PatchData myPatchData;
205 int64 myVertexAttributeDataIdHash = -1;
206 bool myReducedLOD =
false;
int getSubdivisionLevel() const
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.