HDK
|
A mesh of curves. More...
#include <GT_PrimCurveMesh.h>
Public Member Functions | |
GT_PrimCurveMesh () | |
Default constructor. More... | |
GT_PrimCurveMesh (const GT_PrimCurveMesh &src) | |
Copy c-tor. More... | |
GT_PrimCurveMesh (const GT_PrimCurveMesh &src, const GT_AttributeListHandle &vattrib, const GT_AttributeListHandle &uattrib, const GT_AttributeListHandle &dattrib) | |
GT_PrimCurveMesh (const GT_PrimCurveMesh &src, GT_Basis basis, const GT_CountArray &counts, const GT_AttributeListHandle &vattrib, const GT_AttributeListHandle &uattrib, const GT_AttributeListHandle &dattrib, bool wrap, const GT_FaceSetMapPtr &fsets, bool closed=false, bool use_breakpoints=false, GT_Parameterization breakpoint_parameterization=GT_PARAMETERIZATION_CHORD) | |
GT_PrimCurveMesh (GT_Basis basis, const GT_DataArrayHandle &vtx_counts, const GT_AttributeListHandle &vertex, const GT_AttributeListHandle &uniform, const GT_AttributeListHandle &detail, bool wrap, GT_IndexingMode indexing=GT_INDEXING_QUICK, bool closed=false, bool use_breakpoints=false, GT_Parameterization breakpoint_parameterization=GT_PARAMETERIZATION_CHORD) | |
Useful constructor. More... | |
GT_PrimCurveMesh (const GT_PrimCurve &curve) | |
Construct a curve mesh from a single GT_PrimCurve. More... | |
~GT_PrimCurveMesh () override | |
Destructor. More... | |
const char * | className () const override |
bool | save (UT_JSONWriter &w) const override |
void | init (GT_Basis basis, const GT_DataArrayHandle &vtx_counts, const GT_AttributeListHandle &vertex, const GT_AttributeListHandle &uniform, const GT_AttributeListHandle &detail, bool wrap, GT_IndexingMode indexing=GT_INDEXING_QUICK, bool closed=false, bool use_breakpoint_size=false, GT_Parameterization breakpoint_parameterization=GT_PARAMETERIZATION_CHORD) |
bool | setKnots (const GT_DataArrayHandle &knots) |
GT_Size | getCurveCount () const |
Return the number of faces in the mesh. More... | |
GT_PrimitiveHandle | getCurve (GT_Offset i) const |
Return a pointer to the individual face. More... | |
GT_PrimitiveHandle | refineToLinear (const GT_RefineParms *parms=NULL, fpreal lod_scale=-1) const |
Refine to linear curves. More... | |
GT_PrimitiveHandle | removeDegenerate () const |
Remove degenerate curves from the meseh. More... | |
GT_PrimitiveHandle | expandUniformVarying () const |
GT_PrimitiveHandle | pinCurves () const |
GT_PrimitiveHandle | unpinCurves () const |
int | getOrder (GT_Offset curve) const |
Return the order for a given curve. More... | |
bool | isUniformOrder () const |
Check to see whether all curves have the same order. More... | |
int | uniformOrder () const |
const GT_DataArrayHandle & | varyingOrders () const |
Return the varying orders (may be NULL) 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_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... | |
const GT_DataArrayHandle | getCurveCounts (GT_IndexingMode mode=GT_INDEXING_QUICK) const |
fpreal | computePerimeter (int seg) const override |
GEO/GU support to compute perimeter of curve. More... | |
void | enlargeBounds (UT_BoundingBox boxes[], int nseg) const override |
void | enlargeRenderBounds (UT_BoundingBox b[], int n) const override |
int | getPrimitiveType () const override |
bool | refine (GT_Refine &refiner, const GT_RefineParms *parms) const override |
int | getMotionSegments () const override |
int64 | getMemoryUsage () const override |
const GT_ViewportRefineOptions & | viewportRefineOptions () const override |
bool | setBasis (GT_Basis basis, int order=4) |
bool | setBasis (GT_Basis basis, const GT_DataArrayHandle &order) |
bool | setOrder (int order) |
bool | setOrder (const GT_DataArrayHandle &order) |
GT_Basis | getBasis () const |
const GT_CountArray & | getCurveCountArray () const |
const GT_AttributeListHandle & | getVertex () const |
const GT_AttributeListHandle & | getUniform () const |
const GT_AttributeListHandle & | getDetail () const |
bool | getWrap () const |
bool | getClosed () const |
bool | getUseBreakpoints () const |
GT_Parameterization | getBreakpointsParameterization () const |
const GT_DataArrayHandle | knots () const |
GT_Offset | knotOffset (GT_Offset curve) const |
const GT_FaceSetMapPtr & | faceSetMap () const |
void | setFaceSetMap (const GT_FaceSetMapPtr &v) |
void | addFaceSet (const char *name, const GT_FaceSetPtr &set) |
const GT_AttributeListHandle & | getVertexAttributes () const override |
const GT_AttributeListHandle & | getUniformAttributes () const override |
const GT_AttributeListHandle & | getDetailAttributes () 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 | 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 |
virtual bool | updateGeoPrim (const GU_ConstDetailHandle &dtl, const GT_RefineParms &parms) |
update any cached data for geometry and its attributes More... | |
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 |
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 |
virtual const GT_AttributeListHandle & | getPointAttributes () const |
const GT_AttributeListHandle & | getAttributeList (GT_Owner owner) const |
virtual const GT_DataArrayHandle & | getVertexList () const |
virtual GT_DataArrayHandle | createPointNormals (int segment=0, const UT_StringRef &P=GA_Names::P, bool normalize=true, const fpreal32 *pntdata=NULL, GT_Storage store=GT_STORE_REAL32) const |
virtual fpreal | computeSurfaceArea (int seg=0) const |
virtual fpreal | computeVolume (const UT_Vector3 &ref_P, int seg=0) 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_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 |
GT_PrimCurveMesh::GT_PrimCurveMesh | ( | ) |
Default constructor.
|
inline |
Copy c-tor.
Definition at line 31 of file GT_PrimCurveMesh.h.
|
inline |
Definition at line 50 of file GT_PrimCurveMesh.h.
|
inline |
Definition at line 72 of file GT_PrimCurveMesh.h.
|
inline |
Useful constructor.
Definition at line 99 of file GT_PrimCurveMesh.h.
GT_PrimCurveMesh::GT_PrimCurveMesh | ( | const GT_PrimCurve & | curve | ) |
Construct a curve mesh from a single GT_PrimCurve.
|
override |
Destructor.
void GT_PrimCurveMesh::addFaceSet | ( | const char * | name, |
const GT_FaceSetPtr & | set | ||
) |
Access to the face sets (curve sets)
|
inlineoverridevirtual |
Implements GT_Primitive.
Reimplemented in GT_PrimSubdivisionCurves.
Definition at line 125 of file GT_PrimCurveMesh.h.
GEO/GU support to compute perimeter of curve.
Reimplemented from GT_Primitive.
|
overridevirtual |
The virtual implementation of attribute merging.
Reimplemented from GT_Primitive.
|
overridevirtual |
Harden all attributes so there are no dangling dependencies.
Reimplemented from GT_Primitive.
|
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.
Implements GT_Primitive.
Definition at line 285 of file GT_PrimCurveMesh.h.
|
overridevirtual |
Methods defined on GT_Primitive
Implements GT_Primitive.
|
overridevirtual |
Methods defined on GT_Primitive
Reimplemented from GT_Primitive.
GT_PrimitiveHandle GT_PrimCurveMesh::expandUniformVarying | ( | ) | const |
In some systems (Alembic, Usd), curve data can have a "varying" storage specification. This stores data per curve span rather than per vertex. This method will convert any varying or uniform storage arrays to per-vertex data.
|
inline |
Access to the face sets (curve sets)
Definition at line 298 of file GT_PrimCurveMesh.h.
|
inline |
Accessors
Definition at line 241 of file GT_PrimCurveMesh.h.
|
inline |
Accessors
Definition at line 257 of file GT_PrimCurveMesh.h.
|
inline |
Accessors
Definition at line 253 of file GT_PrimCurveMesh.h.
GT_PrimitiveHandle GT_PrimCurveMesh::getCurve | ( | GT_Offset | i | ) | const |
Return a pointer to the individual face.
GT_Size GT_PrimCurveMesh::getCurveCount | ( | ) | const |
Return the number of faces in the mesh.
|
inline |
Accessors
Definition at line 243 of file GT_PrimCurveMesh.h.
const GT_DataArrayHandle GT_PrimCurveMesh::getCurveCounts | ( | GT_IndexingMode | mode = GT_INDEXING_QUICK | ) | const |
Return an array containing the face counts per-face
|
inline |
Accessors
Definition at line 249 of file GT_PrimCurveMesh.h.
|
inlineoverridevirtual |
Access attributes
Reimplemented from GT_Primitive.
Definition at line 311 of file GT_PrimCurveMesh.h.
|
overridevirtual |
Methods defined on GT_Primitive
Implements GT_Primitive.
|
overridevirtual |
Methods defined on GT_Primitive
Implements GT_Primitive.
Return the order for a given curve.
Definition at line 268 of file GT_PrimCurveMesh.h.
|
overridevirtual |
Methods defined on GT_Primitive
Reimplemented from GT_Primitive.
Reimplemented in GT_PrimSubdivisionCurves.
|
inline |
Accessors
Definition at line 247 of file GT_PrimCurveMesh.h.
|
inlineoverridevirtual |
Access attributes
Reimplemented from GT_Primitive.
Definition at line 309 of file GT_PrimCurveMesh.h.
|
inline |
Accessors
Definition at line 255 of file GT_PrimCurveMesh.h.
|
inline |
Accessors
Definition at line 245 of file GT_PrimCurveMesh.h.
|
inlineoverridevirtual |
Access attributes
Reimplemented from GT_Primitive.
Definition at line 307 of file GT_PrimCurveMesh.h.
Return the length of the vertex list for the given face.
Definition at line 319 of file GT_PrimCurveMesh.h.
Return the offset into the vertex list for the given face.
Definition at line 316 of file GT_PrimCurveMesh.h.
|
inline |
Accessors
Definition at line 251 of file GT_PrimCurveMesh.h.
void GT_PrimCurveMesh::init | ( | GT_Basis | basis, |
const GT_DataArrayHandle & | vtx_counts, | ||
const GT_AttributeListHandle & | vertex, | ||
const GT_AttributeListHandle & | uniform, | ||
const GT_AttributeListHandle & | detail, | ||
bool | wrap, | ||
GT_IndexingMode | indexing = GT_INDEXING_QUICK , |
||
bool | closed = false , |
||
bool | use_breakpoint_size = false , |
||
GT_Parameterization | breakpoint_parameterization = GT_PARAMETERIZATION_CHORD |
||
) |
Initialize the mesh
vtx_counts
vertex
uniform
vtx_counts
array.indexing
|
inline |
Check to see whether all curves have the same order.
Definition at line 274 of file GT_PrimCurveMesh.h.
Accessors
Definition at line 261 of file GT_PrimCurveMesh.h.
|
inline |
Accessors
Definition at line 260 of file GT_PrimCurveMesh.h.
GT_PrimitiveHandle GT_PrimCurveMesh::pinCurves | ( | ) | const |
|
overridevirtual |
Methods defined on GT_Primitive
Reimplemented from GT_Primitive.
Reimplemented in GT_PrimSubdivisionCurves.
GT_PrimitiveHandle GT_PrimCurveMesh::refineToLinear | ( | const GT_RefineParms * | parms = NULL , |
fpreal | lod_scale = -1 |
||
) | const |
Refine to linear curves.
GT_PrimitiveHandle GT_PrimCurveMesh::removeDegenerate | ( | ) | const |
Remove degenerate curves from the meseh.
|
overridevirtual |
Save the primitive to a JSON stream. The default method does nothing and returns false.
Reimplemented from GT_Primitive.
Set the basis & order for the curves Basis Type Min Order Max Order GT_BASIS_LINEAR 2 2 GT_BASIS_BEZIER 2 31 GT_BASIS_BSPLINE 2 arbitrary GT_BASIS_CATMULLROM 4 4 GT_BASIS_HERMITE 4 4 GT_BASIS_POWER 2 arbitrary
bool GT_PrimCurveMesh::setBasis | ( | GT_Basis | basis, |
const GT_DataArrayHandle & | order | ||
) |
Set the basis & order for the curves Basis Type Min Order Max Order GT_BASIS_LINEAR 2 2 GT_BASIS_BEZIER 2 31 GT_BASIS_BSPLINE 2 arbitrary GT_BASIS_CATMULLROM 4 4 GT_BASIS_HERMITE 4 4 GT_BASIS_POWER 2 arbitrary
|
inline |
Access to the face sets (curve sets)
Definition at line 299 of file GT_PrimCurveMesh.h.
bool GT_PrimCurveMesh::setKnots | ( | const GT_DataArrayHandle & | knots | ) |
Set knot vector. Some conditions must be met for this to work properly.
(order-1) vertices and adjust the knot vector so the knot spacing for the last order
knots matches the spacing for the first order
knots.The length of the knot vector must be
sum(getVertexCount(i)) + sum(getOrder(i))
That is, the length of the knot vector for each curve must be the number of vertices in the curve plus its order.
|
inline |
Set the curve order
Definition at line 198 of file GT_PrimCurveMesh.h.
|
inline |
Set the curve order
Definition at line 200 of file GT_PrimCurveMesh.h.
|
inline |
Return the order for all curves. If the curves have varying orders, the uniform order will be less than zero.
Definition at line 278 of file GT_PrimCurveMesh.h.
GT_PrimitiveHandle GT_PrimCurveMesh::unpinCurves | ( | ) | const |
Unpin curves. This method will fail if the curve mesh has an invalid basis or if any curves don't have enough vertices.
|
inline |
Return the varying orders (may be NULL)
Definition at line 281 of file GT_PrimCurveMesh.h.
|
overridevirtual |
Methods defined on GT_Primitive
Reimplemented from GT_Primitive.