|  | 
|  | GT_PrimSubdivisionMesh () | 
|  | 
|  | GT_PrimSubdivisionMesh (const GT_DataArrayHandle &vtx_counts, const GT_DataArrayHandle &vtx_indices, const GT_AttributeListHandle &shared, const GT_AttributeListHandle &vertex, const GT_AttributeListHandle &uniform, const GT_AttributeListHandle &detail, GT_IndexingMode indexing=GT_INDEXING_QUICK, GT_Size min_vertex_count=0, GT_Size max_vertex_count=0) | 
|  | 
|  | GT_PrimSubdivisionMesh (const GT_CountArray &vtx_counts, const GT_DataArrayHandle &vtx_indices, const GT_AttributeListHandle &shared, const GT_AttributeListHandle &vertex, const GT_AttributeListHandle &uniform, const GT_AttributeListHandle &detail) | 
|  | 
|  | GT_PrimSubdivisionMesh (const GT_PrimSubdivisionMesh &mesh, const GT_AttributeListHandle &shared, const GT_AttributeListHandle &vertex, const GT_AttributeListHandle &uniform, const GT_AttributeListHandle &detail) | 
|  | 
|  | GT_PrimSubdivisionMesh (const GT_PrimSubdivisionMesh &mesh, const GT_DataArrayHandle &vtx_index, const GT_AttributeListHandle &shared) | 
|  | 
|  | GT_PrimSubdivisionMesh (const GT_PrimSubdivisionMesh &mesh) | 
|  | 
|  | GT_PrimSubdivisionMesh (const GT_PrimPolygonMesh &mesh, GT_Scheme scheme) | 
|  | Construct from a GT_PrimPolygonMesh.  More... 
 | 
|  | 
| const char * | className () const override | 
|  | 
| bool | save (UT_JSONWriter &w) const override | 
|  | 
| int | getPrimitiveType () const override | 
|  | 
| bool | refine (GT_Refine &refiner, const GT_RefineParms *parms) const override | 
|  | 
| int64 | getMemoryUsage () const override | 
|  | 
| void | overrideAttributes (const GT_AttributeListHandle &pt_attribs, const GT_AttributeListHandle &vtx_attribs) | 
|  | 
| void | clearOverrideAttributes () | 
|  | 
| GT_PrimSubdivisionMesh * | createPointNormalsIfMissing (const UT_StringRef &P=GA_Names::P, bool normalize=true) const | 
|  | 
| GT_PrimitiveHandle | refineToHull () const | 
|  | Return a polygon mesh of the subdivision hull.  More... 
 | 
|  | 
| const Tag * | findTag (const char *name) const | 
|  | 
| bool | delTag (const char *name) | 
|  | Delete a tag.  More... 
 | 
|  | 
| void | clearTags () | 
|  | Clear all tags.  More... 
 | 
|  | 
| GT_PrimitiveHandle | triangulate () const | 
|  | Triangulate (for Loop subdivision)  More... 
 | 
|  | 
| GT_PrimitiveHandle | doHarden () const override | 
|  | Harden all attributes so there are no dangling dependencies.  More... 
 | 
|  | 
| GT_PrimitiveHandle | doSoftCopy () const override | 
|  | 
| GT_PrimitiveHandle | doAttributeMerge (const GT_Primitive &src, const UT_StringMMPattern *vertex, const UT_StringMMPattern *point, const UT_StringMMPattern *uniform, const UT_StringMMPattern *detail) const override | 
|  | The virtual implementation of attribute merging.  More... 
 | 
|  | 
|  | 
| GT_Scheme | scheme () const | 
|  | 
| void | setScheme (GT_Scheme s) | 
|  | 
|  | 
| void | appendTag (const Tag &src) | 
|  | 
| void | appendIntTag (const char *name, const GT_DataArrayHandle &v, bool replace=false) | 
|  | 
| void | appendRealTag (const char *name, const GT_DataArrayHandle &v, bool replace=false) | 
|  | 
| void | appendStringTag (const char *name, const GT_DataArrayHandle &v, bool replace=false) | 
|  | 
|  | 
| tag_iterator | beginTags () const | 
|  | 
| tag_iterator | endTag () const | 
|  | 
|  | GT_PrimPolygonMesh () | 
|  | Default constructor.  More... 
 | 
|  | 
|  | GT_PrimPolygonMesh (const GT_DataArrayHandle &vtx_counts, const GT_DataArrayHandle &vtx_indices, const GT_AttributeListHandle &shared, const GT_AttributeListHandle &vertex, const GT_AttributeListHandle &uniform, const GT_AttributeListHandle &detail, GT_IndexingMode indexing=GT_INDEXING_QUICK, GT_Size min_vertex_count=0, GT_Size max_vertex_count=0) | 
|  | Useful constructor.  More... 
 | 
|  | 
|  | GT_PrimPolygonMesh (const GT_CountArray &vtx_counts, const GT_DataArrayHandle &vtx_indices, const GT_AttributeListHandle &shared, const GT_AttributeListHandle &vertex, const GT_AttributeListHandle &uniform, const GT_AttributeListHandle &detail) | 
|  | 
|  | GT_PrimPolygonMesh (const GT_PrimPolygonMesh &pmesh, const GT_AttributeListHandle &shared, const GT_AttributeListHandle &vertex, const GT_AttributeListHandle &uniform, const GT_AttributeListHandle &detail) | 
|  | 
|  | GT_PrimPolygonMesh (const GT_PrimPolygonMesh &pmesh, const GT_DataArrayHandle &vtx_indices, const GT_AttributeListHandle &shared) | 
|  | 
|  | GT_PrimPolygonMesh (const GT_PrimPolygonMesh &pmesh) | 
|  | Copy c-tor.  More... 
 | 
|  | 
|  | GT_PrimPolygonMesh (const GT_PrimPolygon &poly) | 
|  | Construct a polygon mesh from a GT_PrimPolygon.  More... 
 | 
|  | 
| GT_Size | getFaceCount () const | 
|  | Return the number of faces in the mesh.  More... 
 | 
|  | 
| GT_PrimitiveHandle | getFace (GT_Offset i) const | 
|  | Return a pointer to the individual face.  More... 
 | 
|  | 
| GT_Size | getVertexCount () const | 
|  | Return the number of vertices.  More... 
 | 
|  | 
| GT_Size | getPointCount () const | 
|  | Return the number of points.  More... 
 | 
|  | 
| GT_Offset | getPoint (GT_Offset face, GT_Offset v) const | 
|  | Return the point index for a given face and vertex.  More... 
 | 
|  | 
| GT_Offset | getVertexOffset (GT_Offset face) const | 
|  | Return the offset into the vertex list for the given face.  More... 
 | 
|  | 
| GT_Size | getVertexCount (GT_Offset face) const | 
|  | Return the length of the vertex list for the given face.  More... 
 | 
|  | 
| void | getEdgePoints (GT_Offset face, GT_Offset vertex, GT_Offset &p0, GT_Offset &p1) const | 
|  | 
| bool | isConvexed () const | 
|  | Returns true if this mesh has been convexed.  More... 
 | 
|  | 
| void | setConvexed (bool c) | 
|  | Set the convex flag on the mesh.  More... 
 | 
|  | 
| GT_DataArrayHandle | getFaceCounts (GT_IndexingMode indexing=GT_INDEXING_QUICK) const | 
|  | Return an array containing the face counts per-face.  More... 
 | 
|  | 
| const GT_DataArrayHandle | getUsedPointList (GT_IndexingMode idx=GT_INDEXING_QUICK) const | 
|  | 
| GT_PrimitiveHandle | convex (int max_points_per_poly=3, bool keep_degenerate=false, bool allow_interrupt=true, bool allow_indirect_flattening=false, const UT_Set< int > *holes=nullptr) const | 
|  | 
| GT_PrimitiveHandle | adoptConvexing (const GT_DataArrayHandle &verts, const GT_DataArrayHandle &uniform_indexing, const GT_DataArrayHandle &vertex_indexing, const GT_DataArrayHandle &vert_info, const GT_DataArrayHandle &prim_info) const | 
|  | 
| void | getConvexArrays (GT_DataArrayHandle &verts, GT_DataArrayHandle &uniform_indexing, GT_DataArrayHandle &vertex_indexing, GT_DataArrayHandle &point_indexing, GT_DataArrayHandle &vert_info, GT_DataArrayHandle &prim_info) const | 
|  | 
| UT_IntrusivePtr < GT_PrimPolygonMesh >
 | removeUnusedPoints (const int32 *idx=nullptr) const | 
|  | 
| GT_PrimPolygonMesh * | createPointNormalsIfMissing (const UT_StringRef &P=GA_Names::P, bool normalize=true, bool *error=nullptr) const | 
|  | Create point normals on a new mesh if no normals are found. If no point or vertex normals are found, generate point normals from P and return a new mesh. If normals are found, return NULL.  More... 
 | 
|  | 
| GT_PrimPolygonMesh * | createVertexNormalsIfMissing (const UT_StringRef &P=GA_Names::P, fpreal cuspangledegrees=GT_DEFAULT_ADJUSTED_CUSP_ANGLE, bool normalize=true, bool *error=nullptr) const | 
|  | 
| GT_PrimPolygonMesh * | compressVertexNormals (fpreal compression_ratio=1.0) const | 
|  | Compress vertex normals to create an indexed array.  More... 
 | 
|  | 
| GT_PrimPolygonMesh * | compressAttributes (const char *pattern="*,^P", fpreal compression_ratio=1.0) const | 
|  | Compress all attribute arrays.  More... 
 | 
|  | 
| GT_PrimPolygonMesh * | createTangentsIfMissing (bool *error=nullptr) | 
|  | 
| bool | createFastTangents (GT_DataArrayHandle *tanu_h, GT_DataArrayHandle *tanv_h) const | 
|  | 
| bool | splitMesh (GT_Size polygon_limit, UT_Array< GT_PrimitiveHandle > &split_meshes, bool remove_unused_points=true) const | 
|  | Divide a mesh into smaller meshes if it exceeds the poly_limit. If this mesh has more than polygon_limit polygons, this will split the mesh into multiple sub-meshes, attempting to keep them all roughly the same number of polygons. If this mesh has fewer than polygon_limit polygons, it will return false and not add any meshes to split_meshes. If remove_unused_points is true, each submesh will have unused points removed.  More... 
 | 
|  | 
| bool | partitionByMaterial (const GT_DataArrayHandle &mat_id, UT_Array< GT_PrimitiveHandle > &sub_meshes, GT_Size polygon_limit=SYS_INT32_MAX) const | 
|  | 
| bool | updateGeoPrim (const GU_ConstDetailHandle &dtl, const GT_RefineParms &refine) override | 
|  | update any cached data for geometry and its attributes  More... 
 | 
|  | 
| void | enlargeBounds (UT_BoundingBox boxes[], int nsegments) const override | 
|  | 
| int | getMotionSegments () const override | 
|  | 
| void | init (const GT_DataArrayHandle &vtx_counts, const GT_DataArrayHandle &vtx_indices, const GT_AttributeListHandle &shared, const GT_AttributeListHandle &vertex, const GT_AttributeListHandle &uniform, const GT_AttributeListHandle &detail, GT_IndexingMode indexing=GT_INDEXING_QUICK, GT_Size min_vertex_count=0, GT_Size max_vertex_count=0) | 
|  | 
| void | init (const GT_CountArray &vtx_counts, const GT_DataArrayHandle &vtx_indices, const GT_AttributeListHandle &shared, const GT_AttributeListHandle &vertex, const GT_AttributeListHandle &uniform, const GT_AttributeListHandle &detail) | 
|  | 
| GT_Size | getMinVertexCount () const | 
|  | 
| GT_Size | getMaxVertexCount () const | 
|  | 
| const GT_DataArrayHandle & | getVertexList () const override | 
|  | 
| const GT_CountArray & | getFaceCountArray () const | 
|  | 
| const GT_AttributeListHandle & | getShared () const | 
|  | 
| const GT_AttributeListHandle & | getVertex () const | 
|  | 
| const GT_AttributeListHandle & | getUniform () const | 
|  | 
| const GT_AttributeListHandle & | getDetail () const | 
|  | 
| const GT_ElementSetMapPtr & | pointSetMap () const | 
|  | 
| void | setPointSetMap (const GT_ElementSetMapPtr &v) | 
|  | 
| void | addPointSet (const UT_StringHolder &name, const GT_ElementSetPtr &set) | 
|  | 
| const GT_ElementSetMapPtr & | faceSetMap () const | 
|  | 
| void | setFaceSetMap (const GT_ElementSetMapPtr &v) | 
|  | 
| void | addFaceSet (const UT_StringHolder &name, const GT_ElementSetPtr &set) | 
|  | 
| const GT_AttributeListHandle & | getVertexAttributes () const override | 
|  | 
| const GT_AttributeListHandle & | getPointAttributes () const override | 
|  | 
| const GT_AttributeListHandle & | getUniformAttributes () const override | 
|  | 
| const GT_AttributeListHandle & | getDetailAttributes () const override | 
|  | 
| bool | faceNormals (UT_Vector3 *N, int segment=0, const UT_StringRef &P=GA_Names::P) const | 
|  | 
| bool | faceNormals (UT_Vector3D *N64, int segment=0, const UT_StringRef &P=GA_Names::P) const | 
|  | 
| bool | faceNormals (fpreal16 *N16, int segment=0, const UT_StringRef &P=GA_Names::P) const | 
|  | 
| GT_DataArrayHandle | faceNormals (int segment=0, const UT_StringRef &P=GA_Names::P, GT_Storage store=GT_STORE_REAL32) const | 
|  | 
| bool | pointNormals (UT_Vector3T< fpreal16 > *N, GT_Size npts, int segment=0, const UT_StringRef &P=GA_Names::P, bool normalize=true, const fpreal32 *pntdata=nullptr) const | 
|  | 
| bool | pointNormals (UT_Vector3 *N, GT_Size npts, int segment=0, const UT_StringRef &P=GA_Names::P, bool normalize=true, const fpreal32 *pntdata=nullptr) const | 
|  | 
| bool | pointNormals (UT_Vector3D *N, GT_Size npts, int segment=0, const UT_StringRef &P=GA_Names::P, bool normalize=true, const fpreal32 *pntdata=nullptr) const | 
|  | 
| GT_DataArrayHandle | createPointNormals (int segment=0, const UT_StringRef &P=GA_Names::P, bool normalize=true, const fpreal32 *pntdata=nullptr, GT_Storage store=GT_STORE_REAL32) const override | 
|  | 
| bool | vertexNormals (UT_Vector3T< fpreal16 > *N, GT_Size npts, int segment=0, const UT_StringRef &P=GA_Names::P, fpreal maxangledegrees=GT_DEFAULT_ADJUSTED_CUSP_ANGLE, bool normalize=true) const | 
|  | 
| bool | vertexNormals (UT_Vector3 *N, GT_Size npts, int segment=0, const UT_StringRef &P=GA_Names::P, fpreal maxangledegrees=GT_DEFAULT_ADJUSTED_CUSP_ANGLE, bool normalize=true) const | 
|  | 
| bool | vertexNormals (UT_Vector3D *N, GT_Size npts, int segment=0, const UT_StringRef &P=GA_Names::P, fpreal maxangledegrees=GT_DEFAULT_ADJUSTED_CUSP_ANGLE, bool normalize=true) const | 
|  | 
| virtual GT_DataArrayHandle | createVertexNormals (int segment=0, const UT_StringRef &P=GA_Names::P, fpreal maxangledegrees=GT_DEFAULT_ADJUSTED_CUSP_ANGLE, bool normalize=true, GT_Storage store=GT_STORE_REAL32) const | 
|  | 
| fpreal | computePerimeter (int seg) const override | 
|  | 
| fpreal | computeSurfaceArea (int seg) const override | 
|  | 
| fpreal | computeVolume (const UT_Vector3 &ref_P, int seg) const override | 
|  | 
|  | GT_Primitive () | 
|  | 
|  | GT_Primitive (const GT_Primitive &src) | 
|  | 
| virtual | ~GT_Primitive () | 
|  | 
| virtual bool | getUniqueID (int64 &id) const | 
|  | 
| virtual void | enlargeRenderBounds (UT_BoundingBox boxes[], int nsegments) const | 
|  | 
| virtual void | getVelocityRange (UT_Vector3 &min, UT_Vector3 &max, const UT_StringRef &attribute_name=GA_Names::v) const | 
|  | 
| const GT_TransformHandle & | getPrimitiveTransform () const | 
|  | 
| void | setPrimitiveTransform (const GT_TransformHandle &x) | 
|  | Set the transform for a the primitive.  More... 
 | 
|  | 
| GT_PrimitiveHandle | clone () const | 
|  | 
| virtual bool | hasDataArray (const UT_StringRef &name, GT_Owner owner_scope[], int num_owners, GT_Storage *storage=NULL, GT_Size *tuple_size=NULL) const | 
|  | 
| void | setStaticGeometry (bool static_geo) | 
|  | Return true if the primitive represents geometry at frame 'fr'.  More... 
 | 
|  | 
| bool | isStaticGeometry () const | 
|  | 
| bool | isFrameInfoAvailable () const | 
|  | 
| bool | getDataIdHash (int64 &hash, int segment=0, bool cache_data_id=false) const | 
|  | 
| virtual bool | getTopologyVersion (int64 &version) const | 
|  | Returns the topology version for the primitive.  More... 
 | 
|  | 
| GT_DataArrayHandle | findAttribute (const UT_StringRef &name, GT_Owner &owner, int segment) const | 
|  | 
| void | dumpAttributeLists (const char *label, bool data_too) const | 
|  | print out all attribute lists  More... 
 | 
|  | 
| void | dumpPrimitive () const | 
|  | 
| bool | saveAttributeLists (UT_JSONWriter &w) const | 
|  | 
| virtual const GT_ViewportRefineOptions &
 | viewportRefineOptions () const | 
|  | 
| GT_PrimitiveHandle | harden () const | 
|  | 
| GT_PrimitiveHandle | copyTransformed (const GT_TransformHandle &x, bool force=false) const | 
|  | 
| void | refineCopyTransformFrom (const GT_Primitive &src) | 
|  | 
| GT_PrimitiveHandle | attributeMerge (const GT_Primitive &src, const UT_StringMMPattern *vertex_pattern, const UT_StringMMPattern *point_pattern, const UT_StringMMPattern *uniform_pattern, const UT_StringMMPattern *detail_pattern) const | 
|  | 
| bool | enlargeWidth (UT_BoundingBox boxes[], int nsegments, fpreal defwidth=-1) const | 
|  | 
| const GT_AttributeListHandle & | getAttributeList (GT_Owner owner) const | 
|  | 
| SYS_FORCE_INLINE | UT_IntrusiveRefCounter () noexcept | 
|  | Default constructor: Sets counter to 0.  More... 
 | 
|  | 
| SYS_FORCE_INLINE | UT_IntrusiveRefCounter (const UT_IntrusiveRefCounter &) noexcept | 
|  | Copy constructor: Sets counter to 0.  More... 
 | 
|  | 
| UT_IntrusiveRefCounter & | operator= (const UT_IntrusiveRefCounter &) noexcept | 
|  | Assignment operator: Does not modify counter.  More... 
 | 
|  | 
| SYS_FORCE_INLINE uint32 | use_count () const noexcept | 
|  | Return current counter.  More... 
 | 
|  | 
| SYS_FORCE_INLINE bool | conditionalAddRef () noexcept | 
|  | 
A subdivision mesh primitive
Subdivision meshes can have a list of arbitrary tags. Each tag can have integer, real or string values. Tags that are used in refinement:
- int crease[]
 A list of pairs of vertices defining edges
- real crease[]
 The crease weights for each edge
- int corner[]
 A list of corner vertices
- real corner[]
 The crease weights for corner
- int interpolateboundary
 Deprecated: Determines how point attributes are interpolated
- int facevaryinginterpolateboundary
 Deprecated: Determines how vertex attributes are interpolated
- int osd_vtxboundaryinterpolation 
 Determines how point attributes are interpolated (values match the enum in OpenSubdiv.
- int osd_fvarlinearinterpolation 
 Determines how vertex attributes are interpolated (values match the enum in OpenSubdiv.
- int osd_creasingmethod 
 Determines the creasing rule (values match the enum in OpenSubdiv)
- int osd_trianglesubdivision 
 Determines triangle subdivision smoothing for Catmull-Clark subdivision (values match the enum in OpenSubdiv)
Definition at line 45 of file GT_PrimSubdivisionMesh.h.