HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GT_PrimSubdivisionMesh Class Reference

#include <GT_PrimSubdivisionMesh.h>

+ Inheritance diagram for GT_PrimSubdivisionMesh:

Classes

class  Tag
 Subdivision tag. More...
 
class  tag_iterator
 

Public Member Functions

 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_PrimSubdivisionMeshcreatePointNormalsIfMissing (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 TagfindTag (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
 
- Public Member Functions inherited from GT_PrimPolygonMesh
 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_PrimPolygonMeshcreatePointNormalsIfMissing (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_PrimPolygonMeshcreateVertexNormalsIfMissing (const UT_StringRef &P=GA_Names::P, fpreal cuspangledegrees=GT_DEFAULT_ADJUSTED_CUSP_ANGLE, bool normalize=true, bool *error=nullptr) const
 
GT_PrimPolygonMeshcreateTangentsIfMissing (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_DataArrayHandlegetVertexList () const override
 
const GT_CountArraygetFaceCountArray () const
 
const GT_AttributeListHandlegetShared () const
 
const GT_AttributeListHandlegetVertex () const
 
const GT_AttributeListHandlegetUniform () const
 
const GT_AttributeListHandlegetDetail () const
 
const GT_ElementSetMapPtrpointSetMap () const
 
void setPointSetMap (const GT_ElementSetMapPtr &v)
 
void addPointSet (const UT_StringHolder &name, const GT_ElementSetPtr &set)
 
const GT_ElementSetMapPtrfaceSetMap () const
 
void setFaceSetMap (const GT_ElementSetMapPtr &v)
 
void addFaceSet (const UT_StringHolder &name, const GT_ElementSetPtr &set)
 
const GT_AttributeListHandlegetVertexAttributes () const override
 
const GT_AttributeListHandlegetPointAttributes () const override
 
const GT_AttributeListHandlegetUniformAttributes () const override
 
const GT_AttributeListHandlegetDetailAttributes () 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
 
- Public Member Functions inherited from GT_Primitive
 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_TransformHandlegetPrimitiveTransform () 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_AttributeListHandlegetAttributeList (GT_Owner owner) const
 
- Public Member Functions inherited from UT_IntrusiveRefCounter< GT_Primitive >
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_IntrusiveRefCounteroperator= (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
 

Static Public Member Functions

static GT_Scheme lookupScheme (const GT_DataArrayHandle &scheme, GT_Scheme defscheme=GT_CATMULL_CLARK)
 
- Static Public Member Functions inherited from GT_Primitive
static int createPrimitiveTypeId ()
 
static GT_AttributeListHandle mergeAttributeLists (bool &changed, const GT_AttributeListHandle &src, const GT_AttributeListHandle &merge, const UT_StringMMPattern *pattern, const UT_StringMMPattern *alternate=NULL)
 
static bool computeVelocityRange (UT_Vector3 &vmin, UT_Vector3 &vmax, const GT_DataArrayHandle &v)
 
static GT_PrimitiveHandle refineDetail (const GU_ConstDetailHandle &detail, const GT_RefineParms *parms)
 
static GT_PrimitiveHandle refinePrimitive (const GT_PrimitiveHandle &primh, const GT_RefineParms *parms)
 
static voidoperator new (size_t size)
 
static voidoperator new (size_t size, void *p)
 
static void operator delete (void *p, size_t size)
 

Protected Member Functions

GT_PrimSubdivisionMeshcopySubd (GT_PrimSubdivisionMesh *smesh) const
 
GT_PrimPolygonMeshclone (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) const override
 
GT_PrimPolygonMeshclone (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) const override
 
GT_PrimPolygonMeshclone (const GT_AttributeListHandle &shared, const GT_AttributeListHandle &vertex, const GT_AttributeListHandle &uniform, const GT_AttributeListHandle &detail) const override
 
GT_PrimPolygonMeshclone (const GT_DataArrayHandle &vtx_indices, const GT_AttributeListHandle &shared) const override
 
- Protected Member Functions inherited from GT_PrimPolygonMesh
void hardenAttributes ()
 
- Protected Member Functions inherited from GT_Primitive
void enlargeP (UT_BoundingBox &box, const GT_AttributeListHandle &list, int segment) const
 
void enlargeP (UT_BoundingBox &B, const GT_DataArrayHandle &P) const
 Convenience method to enlarge a bounding box given a position attribute. More...
 
void enlargePw (UT_BoundingBox &B, const GT_DataArrayHandle &P) const
 
- Protected Member Functions inherited from UT_IntrusiveRefCounter< GT_Primitive >
SYS_FORCE_INLINE ~UT_IntrusiveRefCounter ()
 Destructor: Only derived classes can destruct this. More...
 

Additional Inherited Members

- Protected Attributes inherited from GT_PrimPolygonMesh
GT_AttributeListHandle myShared
 
GT_AttributeListHandle myVertex
 
GT_AttributeListHandle myUniform
 
GT_AttributeListHandle myDetail
 

Detailed Description

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.

Constructor & Destructor Documentation

GT_PrimSubdivisionMesh::GT_PrimSubdivisionMesh ( )
inline

Definition at line 48 of file GT_PrimSubdivisionMesh.h.

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 
)
inline

Definition at line 55 of file GT_PrimSubdivisionMesh.h.

GT_PrimSubdivisionMesh::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 
)
inline

Definition at line 71 of file GT_PrimSubdivisionMesh.h.

GT_PrimSubdivisionMesh::GT_PrimSubdivisionMesh ( const GT_PrimSubdivisionMesh mesh,
const GT_AttributeListHandle shared,
const GT_AttributeListHandle vertex,
const GT_AttributeListHandle uniform,
const GT_AttributeListHandle detail 
)
inline

Definition at line 84 of file GT_PrimSubdivisionMesh.h.

GT_PrimSubdivisionMesh::GT_PrimSubdivisionMesh ( const GT_PrimSubdivisionMesh mesh,
const GT_DataArrayHandle vtx_index,
const GT_AttributeListHandle shared 
)
inline

Definition at line 94 of file GT_PrimSubdivisionMesh.h.

GT_PrimSubdivisionMesh::GT_PrimSubdivisionMesh ( const GT_PrimSubdivisionMesh mesh)
inline

Definition at line 102 of file GT_PrimSubdivisionMesh.h.

GT_PrimSubdivisionMesh::GT_PrimSubdivisionMesh ( const GT_PrimPolygonMesh mesh,
GT_Scheme  scheme 
)
inline

Construct from a GT_PrimPolygonMesh.

Definition at line 109 of file GT_PrimSubdivisionMesh.h.

Member Function Documentation

void GT_PrimSubdivisionMesh::appendIntTag ( const char *  name,
const GT_DataArrayHandle v,
bool  replace = false 
)

Add tags. If the replace tag is true, any existing tag will be removed before the tag is added.

void GT_PrimSubdivisionMesh::appendRealTag ( const char *  name,
const GT_DataArrayHandle v,
bool  replace = false 
)

Add tags. If the replace tag is true, any existing tag will be removed before the tag is added.

void GT_PrimSubdivisionMesh::appendStringTag ( const char *  name,
const GT_DataArrayHandle v,
bool  replace = false 
)

Add tags. If the replace tag is true, any existing tag will be removed before the tag is added.

void GT_PrimSubdivisionMesh::appendTag ( const Tag src)

Add tags. If the replace tag is true, any existing tag will be removed before the tag is added.

tag_iterator GT_PrimSubdivisionMesh::beginTags ( ) const
inline

Tag iteration

Definition at line 333 of file GT_PrimSubdivisionMesh.h.

const char* GT_PrimSubdivisionMesh::className ( ) const
inlineoverridevirtual

Reimplemented from GT_PrimPolygonMesh.

Definition at line 122 of file GT_PrimSubdivisionMesh.h.

void GT_PrimSubdivisionMesh::clearOverrideAttributes ( )
void GT_PrimSubdivisionMesh::clearTags ( )
inline

Clear all tags.

Definition at line 326 of file GT_PrimSubdivisionMesh.h.

GT_PrimPolygonMesh* GT_PrimSubdivisionMesh::clone ( 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 
) const
inlineoverrideprotectedvirtual

Reimplemented from GT_PrimPolygonMesh.

Definition at line 360 of file GT_PrimSubdivisionMesh.h.

GT_PrimPolygonMesh* GT_PrimSubdivisionMesh::clone ( 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 
) const
inlineoverrideprotectedvirtual

Reimplemented from GT_PrimPolygonMesh.

Definition at line 375 of file GT_PrimSubdivisionMesh.h.

GT_PrimPolygonMesh* GT_PrimSubdivisionMesh::clone ( const GT_AttributeListHandle shared,
const GT_AttributeListHandle vertex,
const GT_AttributeListHandle uniform,
const GT_AttributeListHandle detail 
) const
inlineoverrideprotectedvirtual

Reimplemented from GT_PrimPolygonMesh.

Definition at line 386 of file GT_PrimSubdivisionMesh.h.

GT_PrimPolygonMesh* GT_PrimSubdivisionMesh::clone ( const GT_DataArrayHandle vtx_indices,
const GT_AttributeListHandle shared 
) const
inlineoverrideprotectedvirtual

Reimplemented from GT_PrimPolygonMesh.

Definition at line 393 of file GT_PrimSubdivisionMesh.h.

GT_PrimSubdivisionMesh* GT_PrimSubdivisionMesh::copySubd ( GT_PrimSubdivisionMesh smesh) const
inlineprotected

Definition at line 354 of file GT_PrimSubdivisionMesh.h.

GT_PrimSubdivisionMesh* GT_PrimSubdivisionMesh::createPointNormalsIfMissing ( const UT_StringRef P = GA_Names::P,
bool  normalize = true 
) const
bool GT_PrimSubdivisionMesh::delTag ( const char *  name)
inline

Delete a tag.

Definition at line 313 of file GT_PrimSubdivisionMesh.h.

GT_PrimitiveHandle GT_PrimSubdivisionMesh::doAttributeMerge ( const GT_Primitive src,
const UT_StringMMPattern vertex,
const UT_StringMMPattern point,
const UT_StringMMPattern uniform,
const UT_StringMMPattern detail 
) const
overridevirtual

The virtual implementation of attribute merging.

Reimplemented from GT_PrimPolygonMesh.

GT_PrimitiveHandle GT_PrimSubdivisionMesh::doHarden ( ) const
overridevirtual

Harden all attributes so there are no dangling dependencies.

Reimplemented from GT_PrimPolygonMesh.

GT_PrimitiveHandle GT_PrimSubdivisionMesh::doSoftCopy ( ) const
inlineoverridevirtual

Create a copy of the primitive, referencing all the source data This can return a NULL pointer, but it would be better to implement it properly.

Reimplemented from GT_PrimPolygonMesh.

Definition at line 343 of file GT_PrimSubdivisionMesh.h.

tag_iterator GT_PrimSubdivisionMesh::endTag ( ) const
inline

Tag iteration

Definition at line 334 of file GT_PrimSubdivisionMesh.h.

const Tag* GT_PrimSubdivisionMesh::findTag ( const char *  name) const
inline

Find a tag by name

Definition at line 303 of file GT_PrimSubdivisionMesh.h.

int64 GT_PrimSubdivisionMesh::getMemoryUsage ( ) const
overridevirtual

Methods defined on GT_Primitive

Reimplemented from GT_PrimPolygonMesh.

int GT_PrimSubdivisionMesh::getPrimitiveType ( ) const
overridevirtual

Methods defined on GT_Primitive

Reimplemented from GT_PrimPolygonMesh.

static GT_Scheme GT_PrimSubdivisionMesh::lookupScheme ( const GT_DataArrayHandle scheme,
GT_Scheme  defscheme = GT_CATMULL_CLARK 
)
static

Given a data array of either a string or integer value, look-up the corresponding scheme. This can be used to interpret the "osd_scheme" attribute.

void GT_PrimSubdivisionMesh::overrideAttributes ( const GT_AttributeListHandle pt_attribs,
const GT_AttributeListHandle vtx_attribs 
)
bool GT_PrimSubdivisionMesh::refine ( GT_Refine refiner,
const GT_RefineParms parms 
) const
overridevirtual

Methods defined on GT_Primitive

Reimplemented from GT_PrimPolygonMesh.

GT_PrimitiveHandle GT_PrimSubdivisionMesh::refineToHull ( ) const

Return a polygon mesh of the subdivision hull.

bool GT_PrimSubdivisionMesh::save ( UT_JSONWriter w) const
overridevirtual

Save the primitive to a JSON stream. The default method does nothing and returns false.

Reimplemented from GT_PrimPolygonMesh.

GT_Scheme GT_PrimSubdivisionMesh::scheme ( ) const
inline

get/set the subdivision scheme

Definition at line 287 of file GT_PrimSubdivisionMesh.h.

void GT_PrimSubdivisionMesh::setScheme ( GT_Scheme  s)
inline

get/set the subdivision scheme

Definition at line 288 of file GT_PrimSubdivisionMesh.h.

GT_PrimitiveHandle GT_PrimSubdivisionMesh::triangulate ( ) const

Triangulate (for Loop subdivision)


The documentation for this class was generated from the following file: