HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GD_Primitive Class Referenceabstract

#include <GD_Primitive.h>

+ Inheritance diagram for GD_Primitive:

Public Member Functions

 GD_Primitive (GD_Detail *d, GA_Offset offset=GA_INVALID_OFFSET)
 
virtual GD_Primitivecopy (int preserve_shared_pts=0) const
 
virtual int copy (const GD_Primitive &src, int ptoffset)=0
 
virtual int evaluatePoint (UT_Vector3 &pos, float u, unsigned du=0) const
 
virtual GA_PrimCompat::TypeMask getPrimitiveId () const
 
GD_DetailgetParent () const
 
virtual int visibleBaryCenter (float &uctr, float &vctr) const
 
virtual void transform (const UT_Matrix3 &)
 
virtual bool isDegenerate () const
 Is the primitive degenerate. More...
 
virtual int getBBox (UT_BoundingBox *bbox) const
 
virtual void addToBSphere (UT_BoundingSphere *bsphere) const
 
virtual void getBRect (UT_BoundingRect *brect) const
 
virtual UT_Vector3 baryCenter () const
 
virtual UT_Vector3 computeNormal () const
 
virtual void reverse ()
 
virtual void addPointRefToGroup (GA_PointGroup &grp) const
 
virtual int detachPoints (GA_PointGroup &grp)
 
virtual GA_Size getVertexCount () const
 
virtual bool vertexApply (bool(*apply)(GA_Offset vtx, void *), void *data=0) const =0
 
- Public Member Functions inherited from GA_Primitive
virtual ~GA_Primitive ()
 
virtual const
GA_PrimitiveDefinition
getTypeDef () const =0
 
const char * getTypeName () const
 
SYS_FORCE_INLINE GA_DetailgetDetail () const
 
SYS_FORCE_INLINE GA_Offset getMapOffset () const
 Gets the offset of this primitive in the detail containing it. More...
 
SYS_FORCE_INLINE GA_Index getMapIndex () const
 Gets the index of this primitive in the detail containing it. More...
 
SYS_FORCE_INLINE const
GA_IndexMap
getIndexMap () const
 Gets the index map for primitives in the detail containing this primitive. More...
 
GA_Index getNum () const
 
void swapOffsetValue (const GA_Defragment &defrag)
 For defragmentation, we need to update the offset. More...
 
bool isPrimary () const
 
SYS_FORCE_INLINE const
GA_PrimitiveTypeId
getTypeId () const
 
GA_PrimitiveFamilyMask getFamilyMask () const
 
bool isFamily (unsigned family_mask) const
 
bool hasLocalTransform () const
 Whether the primitive has a transform associated with it. More...
 
virtual void getLocalTransform (UT_Matrix3D &matrix) const
 
virtual void getLocalTransform4 (UT_Matrix4D &matrix) const
 
virtual void setLocalTransform (const UT_Matrix3D &matrix)
 Set the local transform. The default implementation does nothing. More...
 
virtual int64 getMemoryUsage () const
 
virtual void countMemory (UT_MemoryCounter &counter) const
 
SYS_FORCE_INLINE GA_Size getVertexCount () const
 Return the number of vertices used by this primitive. More...
 
SYS_FORCE_INLINE GA_Offset getVertexOffset (GA_Size primvertexnum) const
 
SYS_FORCE_INLINE GA_Index getVertexIndex (GA_Size primvertexnum) const
 
SYS_FORCE_INLINE GA_Offset getPointOffset (GA_Size i) const
 
SYS_FORCE_INLINE void setPointOffset (GA_Size i, GA_Offset ptoff)
 
SYS_FORCE_INLINE GA_Index getPointIndex (GA_Size i) const
 
SYS_FORCE_INLINE UT_Vector3 getPos3 (GA_Size i) const
 
SYS_FORCE_INLINE void setPos3 (GA_Size i, const UT_Vector3 &pos) const
 
SYS_FORCE_INLINE UT_Vector4 getPos4 (GA_Size i) const
 
SYS_FORCE_INLINE void setPos4 (GA_Size i, const UT_Vector4 &pos) const
 
GA_Range getVertexRange (bool harden=false) const
 Get a range of all the vertices accessed by the primitive. More...
 
GA_Range getPointRange (bool harden=false) const
 
bool isPointUsed (GA_Offset ptoff) const
 
void addPointRefToGroup (GA_PointGroup &grp) const
 
virtual bool hasEdge (const GA_Edge &edge) const
 Method to determine if a primitive has an edge (undirected). More...
 
void edgeApply (GA_EdgeApplyFunc apply, void *data=nullptr) const
 
void edgeApplyIndex (GA_EdgeApplyIndexFunc apply, void *data=nullptr) const
 
virtual void iterateEdges (GA_IterateEdgesFunc apply_func) const
 
virtual void iterateEdgesByVertex (GA_IterateEdgesByVertexFunc apply_func) const
 
bool findEdgePoints (GA_Offset ptoff0, GA_Offset ptoff1, GA_Size &vtx0, GA_Size &vtx1) const
 
virtual GA_DereferenceStatus dereferencePoint (GA_Offset point, bool dry_run=false)=0
 
virtual GA_DereferenceStatus dereferencePoints (const GA_RangeMemberQuery &pt_q, bool dry_run=false)=0
 
virtual bool enlargeBoundingSphere (UT_BoundingSphere &b, const GA_Attribute *P) const
 
virtual void enlargePointBounds (UT_BoundingBox &box) const
 
virtual void copyUnwiredForMerge (const GA_Primitive *src, const GA_MergeMap &map)
 
virtual const GA_PrimitiveJSONgetJSON () const =0
 
virtual bool saveSharedLoadData (UT_JSONWriter &w, GA_SaveMap &save, GA_GeometryIndex *geometryIndex) const
 
virtual bool registerSharedLoadData (int load_data_type, GA_SharedDataHandlePtr item)
 
virtual bool loadH9 (UT_IStream &is, const UT_Array< GA_AttribLoadDataH9 > &prim_attribs, const UT_Array< GA_AttribLoadDataH9 > &vtx_attribs)
 
virtual bool saveH9 (std::ostream &os, bool binary, const UT_Array< GA_AttribSaveDataH9 > &prim_attribs, const UT_Array< GA_AttribSaveDataH9 > &vtx_attribs) const
 
const GA_IntrinsicManagergetIntrinsicManager () const
 
virtual void clearForDeletion ()
 
virtual void getAdjacentBoundaryVertices (GA_Offset vtx, GA_Offset &prev_vtx, GA_Offset &next_vtx) const
 
virtual bool supportsHedge () const
 
virtual GA_Offset releaseVertex (GA_Offset vtx)
 
virtual int isVisible () const
 
virtual unsigned getNumSecondaryDetails () const
 A primitive may support any number of secondary details. More...
 
virtual const GA_DetailgetSecondaryDetail (GA_Index i) const
 
virtual GA_DetailgetSecondaryDetail (GA_Index i)
 
GA_Index getNumSecondary (GA_Index detail) const
 
const GA_PrimitivegetSecondaryByIndex (GA_Index detail, GA_Index i) const
 
GA_PrimitivegetSecondaryByIndex (GA_Index detail, GA_Index i)
 
const GA_PrimitivegetSecondaryByOffset (GA_Index detail, GA_Offset o) const
 
GA_PrimitivegetSecondaryByOffset (GA_Index detail, GA_Offset o)
 
SYS_FORCE_INLINE bool isVertexListTrivial () const
 
bool isPointListTrivial () const
 
template<typename FUNCTOR >
SYS_FORCE_INLINE void forEachVertex (FUNCTOR &&functor) const
 
template<typename FUNCTOR >
SYS_FORCE_INLINE void forEachPoint (FUNCTOR &&functor) const
 
bool vertexApply (bool(*apply)(GA_Offset vtx, void *), void *data=nullptr) const
 
virtual void stashed (bool beingstashed, GA_Offset offset=GA_INVALID_OFFSET)
 
virtual void flushCEWriteCaches ()
 Copy any modified caches from the GPU back to CPU cache. More...
 
virtual void flushCECaches ()
 
virtual void swapVertexOffsets (const GA_Defragment &defrag)
 
virtual bool enlargeBoundingBox (UT_BoundingRect &b, const GA_Attribute *P) const
 
virtual bool enlargeBoundingBox (UT_BoundingBox &b, const GA_Attribute *P) const
 
GA_LocalIntrinsic findIntrinsic (const char *nm) const
 
GA_LocalIntrinsic findIntrinsic (GA_GlobalIntrinsic h) const
 
GA_GlobalIntrinsic findGlobalIntrinsic (GA_LocalIntrinsic h) const
 
const char * getIntrinsicName (GA_LocalIntrinsic h) const
 
GA_Size getIntrinsicTupleSize (GA_LocalIntrinsic h) const
 
GA_StorageClass getIntrinsicStorage (GA_LocalIntrinsic h) const
 
bool getIntrinsicReadOnly (GA_LocalIntrinsic h) const
 
const UT_OptionsgetIntrinsicOptions (GA_LocalIntrinsic h) const
 
GA_Size getIntrinsic (GA_LocalIntrinsic h, UT_String &val) const
 
GA_Size getIntrinsic (GA_LocalIntrinsic h, UT_StringArray &val) const
 
GA_Size getIntrinsic (GA_LocalIntrinsic h, int64 *v, GA_Size size) const
 
GA_Size getIntrinsic (GA_LocalIntrinsic h, fpreal64 *v, GA_Size sz) const
 
bool getIntrinsic (GA_LocalIntrinsic h, float &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, int &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Vector2 &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Vector3 &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Vector4 &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Matrix2 &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Matrix3 &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Matrix4 &v) const
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const char *value)
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const UT_StringArray &value)
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const char **val, GA_Size s)
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const int64 val)
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const fpreal64 val)
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const int64 *val, GA_Size sz)
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const fpreal64 *v, GA_Size sz)
 
virtual fpreal calcVolume (const UT_Vector3 &refpt) const
 
virtual fpreal calcArea () const
 
virtual fpreal calcPerimeter () const
 

Static Public Attributes

static const UT_Array
< GA_AttribSaveDataH9 > & 
theEmptySaveAttribs
 Convience objects to pass as arguments to saveH9()/loadH9(). More...
 

Static Protected Member Functions

static
GA_IntrinsicManager::Registrar 
registerIntrinsics (GA_PrimitiveDefinition &definition)
 

Friends

std::ostream & operator<< (std::ostream &os, const GD_Primitive &d)
 

Additional Inherited Members

- Public Types inherited from GA_Primitive
enum  GA_DereferenceStatus { GA_DEREFERENCE_FAIL, GA_DEREFERENCE_OK, GA_DEREFERENCE_DEGENERATE, GA_DEREFERENCE_DESTROY }
 
- Static Public Member Functions inherited from GA_Primitive
static SYS_FORCE_INLINE
GA_PrimCompat::TypeMask 
primCompatMaskFromTypeId (int type_id)
 
- Protected Member Functions inherited from GA_Primitive
SYS_FORCE_INLINE GA_Primitive (GA_Detail &detail, GA_Offset offset=GA_INVALID_OFFSET)
 
void setNumVertices (GA_Size nvertices)
 
GA_Offset allocateVertex (GA_Offset point=GA_INVALID_OFFSET)
 allocateVertex() will call wireVertex() if the point given is not -1 More...
 
void destroyVertex (GA_Offset vertex)
 
void wireVertex (GA_Offset vertex, GA_Offset point)
 
void registerVertex (GA_Offset vertex)
 
SYS_FORCE_INLINE int64 getBaseMemoryUsage () const
 Report approximate memory usage for myVertexList for subclasses. More...
 
void countBaseMemory (UT_MemoryCounter &counter) const
 
void copyVertexListForMerge (const GA_OffsetListRef &src_vertices, const GA_MergeMap &map)
 
- Protected Attributes inherited from GA_Primitive
GA_OffsetList myVertexList
 

Detailed Description

Definition at line 24 of file GD_Primitive.h.

Constructor & Destructor Documentation

GD_Primitive::GD_Primitive ( GD_Detail d,
GA_Offset  offset = GA_INVALID_OFFSET 
)

Member Function Documentation

virtual void GD_Primitive::addPointRefToGroup ( GA_PointGroup grp) const
virtual

Reimplemented in GD_Face.

virtual void GD_Primitive::addToBSphere ( UT_BoundingSphere bsphere) const
virtual

Reimplemented in GD_Face.

virtual UT_Vector3 GD_Primitive::baryCenter ( ) const
virtual

Reimplemented in GD_Face.

virtual UT_Vector3 GD_Primitive::computeNormal ( ) const
virtual

Reimplemented in GD_Face.

virtual GD_Primitive* GD_Primitive::copy ( int  preserve_shared_pts = 0) const
virtual

Reimplemented in GD_Face, and GD_Curve.

virtual int GD_Primitive::copy ( const GD_Primitive src,
int  ptoffset 
)
pure virtual

Implemented in GD_Face, and GD_Curve.

virtual int GD_Primitive::detachPoints ( GA_PointGroup grp)
virtual

Reimplemented in GD_Face.

virtual int GD_Primitive::evaluatePoint ( UT_Vector3 pos,
float  u,
unsigned  du = 0 
) const
virtual
virtual int GD_Primitive::getBBox ( UT_BoundingBox bbox) const
virtual

Reimplemented in GD_Face.

virtual void GD_Primitive::getBRect ( UT_BoundingRect brect) const
virtual

Reimplemented in GD_Face.

GD_Detail* GD_Primitive::getParent ( ) const
virtual GA_PrimCompat::TypeMask GD_Primitive::getPrimitiveId ( ) const
virtual
Deprecated:
This method is only for transitional backward compatibility for the HDK and will be removed in a future release. TODO: Should be pure virtual here, overwritten at GEO_Primitive.

Reimplemented from GA_Primitive.

virtual GA_Size GD_Primitive::getVertexCount ( ) const
virtual

Reimplemented in GD_Face.

virtual bool GD_Primitive::isDegenerate ( ) const
virtual

Is the primitive degenerate.

Implements GA_Primitive.

Reimplemented in GD_Curve, and GD_Face.

static GA_IntrinsicManager::Registrar GD_Primitive::registerIntrinsics ( GA_PrimitiveDefinition definition)
inlinestaticprotected

All subclasses should call this method to register the primitive intrinsics.

See Also
GA_AttributeIntrinsic

Definition at line 74 of file GD_Primitive.h.

virtual void GD_Primitive::reverse ( )
virtual

Primitives must provide these methods

Implements GA_Primitive.

Reimplemented in GD_Face, GD_Curve, GD_PrimNURBCurve, and GD_PrimRBezCurve.

virtual void GD_Primitive::transform ( const UT_Matrix3 )
virtual
virtual bool GD_Primitive::vertexApply ( bool(*)(GA_Offset vtx, void *)  apply,
void data = 0 
) const
pure virtual

Implemented in GD_Face.

virtual int GD_Primitive::visibleBaryCenter ( float &  uctr,
float &  vctr 
) const
virtual

Reimplemented in GD_Face.

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const GD_Primitive d 
)
friend

Definition at line 78 of file GD_Primitive.h.

Member Data Documentation

const UT_Array<GA_AttribSaveDataH9>& GD_Primitive::theEmptySaveAttribs
static

Convience objects to pass as arguments to saveH9()/loadH9().

Definition at line 67 of file GD_Primitive.h.


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