|
| 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 &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 * | 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.