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

#include <GEO_PrimNull.h>

+ Inheritance diagram for GEO_PrimNull:

Public Member Functions

 GEO_PrimNull (GA_Detail *d, GA_Offset offset=GA_INVALID_OFFSET)
 
virtual int64 getMemoryUsage () const
 Report approximate memory usage. More...
 
virtual void countMemory (UT_MemoryCounter &counter) const
 
virtual bool isDegenerate () const
 
virtual int getBBox (UT_BoundingBox *bbox) const
 
virtual void reverse ()
 
virtual UT_Vector3 computeNormal () const
 
virtual void copyPrimitive (const GEO_Primitive *s)
 
virtual void copyUnwiredForMerge (const GA_Primitive *src, const GA_MergeMap &map)
 
virtual GA_Size getVertexCount () const
 
virtual GA_Offset getVertexOffset (GA_Size) const
 
virtual int detachPoints (GA_PointGroup &g)
 
virtual GA_DereferenceStatus dereferencePoint (GA_Offset, bool)
 
virtual GA_DereferenceStatus dereferencePoints (const GA_RangeMemberQuery &, bool)
 
virtual const GA_PrimitiveJSONgetJSON () const
 
virtual void swapVertexOffsets (const GA_Defragment &)
 
virtual bool evaluatePointRefMap (GA_Offset, GA_AttributeRefMap &, fpreal, fpreal, uint, uint) const
 
virtual const
GA_PrimitiveDefinition
getTypeDef () const
 
virtual GEO_Primitiveconvert (GEO_ConvertParms &, GA_PointGroup *)
 
virtual GEO_PrimitiveconvertNew (GEO_ConvertParms &)
 
virtual void normal (NormalComp &) const
 
virtual int intersectRay (const UT_Vector3 &, const UT_Vector3 &, float, float, float *, UT_Vector3 *, UT_Vector3 *, int, float *, float *, int) const
 
- Public Member Functions inherited from GEO_Primitive
virtual GA_PrimCompat::TypeMask getPrimitiveId () const
 
void copyAttributesAndGroups (const GEO_Primitive &src, bool copy_groups=true)
 
void copyAttributesAndGroups (const GEO_Primitive &src, GA_AttributeRefMap &gah, bool copy_groups=true)
 
void copyAttributesAndGroups (const GEO_Primitive &src, GA_PrimitiveWrangler &wrangler, bool copy_groups=true)
 NOTE: The copying of groups only works if src is in the same detail. More...
 
void copyAttributeData (const GEO_Primitive &src)
 
void copyAttributeData (const GEO_Primitive &src, GA_AttributeRefMap &gah)
 
void copyAttributeData (const GEO_Primitive &src, GA_PrimitiveWrangler &wrangler)
 
void copyAttributeValues (const GEO_Primitive &src, GA_PrimitiveWrangler &wrangler)
 
void copyGroupMembership (const GEO_Primitive &src)
 
virtual GEO_Primitivecopy (int preserve_shared_pts=0) const
 
virtual void transform (const UT_Matrix4 &)
 
virtual void realToUnitPair (float ureal, float vreal, float &uunit, float &vunit) const
 
virtual void unitToRealPair (float uunit, float vunit, float &ureal, float &vreal) const
 
virtual void unitLengthToUnitPair (float ulength, float vlength, float &uparm, float &vparm) const
 
virtual void unitToUnitLengthPair (float uparm, float vparm, float &ulength, float &vlength) const
 
bool evaluateBaryCenter (GA_Offset result_vtx, GA_AttributeRefMap &map) const
 
bool evaluatePoint (GA_Offset result_vtx, GA_AttributeRefMap &map, fpreal u, fpreal v=0, uint du=0, uint dv=0) const
 
int evaluatePoint (UT_Vector4 &pos, float u, float v=0, unsigned du=0, unsigned dv=0) const
 
virtual int evaluateNormalVector (UT_Vector3 &nml, float u, float v=0, float w=0) const
 
bool evaluateInteriorPoint (GA_Offset result_vtx, GA_AttributeRefMap &map, fpreal u, fpreal v, fpreal w=0) const
 
int evaluateInteriorPoint (UT_Vector4 &pos, fpreal u, fpreal v, fpreal w=0) const
 
virtual void computeInteriorPointWeights (UT_Array< GA_Offset > &vtxlist, UT_FloatArray &weightlist, fpreal u, fpreal v, fpreal w) const
 
SYS_FORCE_INLINE GEO_DetailgetParent () const
 
virtual UT_Vector3 baryCenter () const
 
virtual void addToBSphere (UT_BoundingSphere *bsphere) const
 
virtual void isolate ()
 Method to isolate a pasted surface. More...
 
virtual bool hasEdge (const GA_Edge &edge) const
 Method to determine if a primitive has an edge (undirected). More...
 
virtual bool vertexApply (bool(*apply)(GA_Offset vtx, void *), void *data=0) const
 
GEO_Vertex getVertexElement (GA_Size i) const
 
virtual GEO_MetaPrimcastToMetaPrim (void)
 
virtual const GEO_MetaPrimcastToMetaPrim (void) const
 
virtual int parametricBBox (float u, float v, float *u0, float *u1, float *v0, float *v1)
 
virtual float uvDist (float u1, float v1, float u2, float v2) const
 
int bboxIntersectRay (const UT_Vector3 &rayorig, const UT_Vector3 &raydir, int maxtries=10, float tmax=1E17F, float *distance=0, UT_Vector3 *nml=0) const
 
virtual bool isQuadric () const
 
virtual void clip (UT_Vector3 normal, float distance=0, GA_PrimitiveGroup *clipgrp=NULL)
 
virtual bool enlargeBoundingBox (UT_BoundingRect &b, const GA_Attribute *P) const
 
virtual bool enlargeBoundingBox (UT_BoundingBox &b, const GA_Attribute *P) const
 
virtual bool hasGuideEdge (int edgeid, UT_Vector3 &a, UT_Vector3 &b) const
 
virtual bool hasXsectPoint (int pointid, UT_Vector3 &p) const
 
virtual fpreal calcVolume (const UT_Vector3 &) const
 
virtual fpreal calcArea () const
 
virtual fpreal calcPerimeter () const
 
- Public Member Functions inherited from GA_Primitive
virtual ~GA_Primitive ()
 
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...
 
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
 
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 bool enlargeBoundingSphere (UT_BoundingSphere &b, const GA_Attribute *P) const
 
virtual void enlargePointBounds (UT_BoundingBox &box) const
 
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 ()
 
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)
 

Static Public Member Functions

static GA_PrimitiveFamilyMask buildFamilyMask ()
 
- Static Public Member Functions inherited from GEO_Primitive
static GA_PrimCompat::TypeMask getPrimitiveMaskH9 (const char *maskstr)
 
- Static Public Member Functions inherited from GA_Primitive
static SYS_FORCE_INLINE
GA_PrimCompat::TypeMask 
primCompatMaskFromTypeId (int type_id)
 

Protected Member Functions

virtual ~GEO_PrimNull ()
 
- Protected Member Functions inherited from GEO_Primitive
SYS_FORCE_INLINE GEO_Primitive (GA_Detail *d, GA_Offset offset=GA_INVALID_OFFSET)
 
virtual ~GEO_Primitive ()
 
virtual int evaluatePointV4 (UT_Vector4 &pos, float u, float v=0, unsigned du=0, unsigned dv=0) const
 
virtual bool evaluateBaryCenterRefMap (GA_Offset result_vtx, GA_AttributeRefMap &map) const
 
virtual bool evaluateInteriorPointRefMap (GA_Offset result_vtx, GA_AttributeRefMap &map, fpreal u, fpreal v, fpreal w=0) const
 
virtual int evaluateInteriorPointV4 (UT_Vector4 &pos, fpreal u, fpreal v, fpreal w=0) const
 
- 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)
 

Friends

class GU_PrimitiveFactory
 

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 Attributes inherited from GEO_Primitive
static const UT_Array
< GA_AttribSaveDataH9 > & 
theEmptySaveAttribs
 Convience objects to pass as arguments to saveH9()/loadH9(). More...
 
- Static Protected Member Functions inherited from GEO_Primitive
static
GA_IntrinsicManager::Registrar 
registerIntrinsics (GA_PrimitiveDefinition &defn)
 
- Protected Attributes inherited from GA_Primitive
GA_OffsetList myVertexList
 

Detailed Description

Null primitive is a stand-in primitive to handle loading of unknown primitives

Definition at line 25 of file GEO_PrimNull.h.

Constructor & Destructor Documentation

virtual GEO_PrimNull::~GEO_PrimNull ( )
inlineprotectedvirtual

NOTE: The destructor should only be called from subclass destructors.

Definition at line 30 of file GEO_PrimNull.h.

GEO_PrimNull::GEO_PrimNull ( GA_Detail d,
GA_Offset  offset = GA_INVALID_OFFSET 
)
inline

NOTE: The constructor should only be called from subclass constructors.

Definition at line 35 of file GEO_PrimNull.h.

Member Function Documentation

static GA_PrimitiveFamilyMask GEO_PrimNull::buildFamilyMask ( )
inlinestatic

Special for factory primitives

Definition at line 71 of file GEO_PrimNull.h.

virtual UT_Vector3 GEO_PrimNull::computeNormal ( ) const
virtual

Required interface for GEO

Implements GEO_Primitive.

virtual GEO_Primitive* GEO_PrimNull::convert ( GEO_ConvertParms ,
GA_PointGroup  
)
inlinevirtual

Minimal interface required by GU

Implements GEO_Primitive.

Definition at line 94 of file GEO_PrimNull.h.

virtual GEO_Primitive* GEO_PrimNull::convertNew ( GEO_ConvertParms )
inlinevirtual

Minimal interface required by GU

Implements GEO_Primitive.

Definition at line 96 of file GEO_PrimNull.h.

virtual void GEO_PrimNull::copyPrimitive ( const GEO_Primitive s)
virtual

Required interface for GEO

Implements GEO_Primitive.

virtual void GEO_PrimNull::copyUnwiredForMerge ( const GA_Primitive src,
const GA_MergeMap map 
)
inlinevirtual

Required interface for GEO

Reimplemented from GA_Primitive.

Definition at line 47 of file GEO_PrimNull.h.

virtual void GEO_PrimNull::countMemory ( UT_MemoryCounter counter) const
virtual

Count memory usage using a UT_MemoryCounter in order to count shared memory correctly. NOTE: This should always include sizeof(*this).

Reimplemented from GA_Primitive.

virtual GA_DereferenceStatus GEO_PrimNull::dereferencePoint ( GA_Offset  ,
bool   
)
virtual

Required interface for GEO

Implements GA_Primitive.

virtual GA_DereferenceStatus GEO_PrimNull::dereferencePoints ( const GA_RangeMemberQuery ,
bool   
)
virtual

Required interface for GEO

Implements GA_Primitive.

virtual int GEO_PrimNull::detachPoints ( GA_PointGroup g)
virtual

Required interface for GEO

Implements GEO_Primitive.

virtual bool GEO_PrimNull::evaluatePointRefMap ( GA_Offset  ,
GA_AttributeRefMap ,
fpreal  ,
fpreal  ,
uint  ,
uint   
) const
virtual

Required interface for GEO

Implements GEO_Primitive.

virtual int GEO_PrimNull::getBBox ( UT_BoundingBox bbox) const
virtual

Required interface for GEO

Implements GEO_Primitive.

virtual const GA_PrimitiveJSON* GEO_PrimNull::getJSON ( ) const
virtual

Required interface for GEO

Implements GA_Primitive.

virtual int64 GEO_PrimNull::getMemoryUsage ( ) const
inlinevirtual

Report approximate memory usage.

Reimplemented from GA_Primitive.

Definition at line 76 of file GEO_PrimNull.h.

virtual const GA_PrimitiveDefinition& GEO_PrimNull::getTypeDef ( ) const
inlinevirtual

Minimal interface required by GU

Implements GA_Primitive.

Definition at line 88 of file GEO_PrimNull.h.

virtual GA_Size GEO_PrimNull::getVertexCount ( ) const
inlinevirtual

Required interface for GEO

Definition at line 49 of file GEO_PrimNull.h.

virtual GA_Offset GEO_PrimNull::getVertexOffset ( GA_Size  ) const
inlinevirtual

Required interface for GEO

Definition at line 50 of file GEO_PrimNull.h.

virtual int GEO_PrimNull::intersectRay ( const UT_Vector3 ,
const UT_Vector3 ,
float  ,
float  ,
float *  ,
UT_Vector3 ,
UT_Vector3 ,
int  ,
float *  ,
float *  ,
int   
) const
inlinevirtual

Minimal interface required by GU

Reimplemented from GEO_Primitive.

Definition at line 99 of file GEO_PrimNull.h.

virtual bool GEO_PrimNull::isDegenerate ( void  ) const
inlinevirtual

Required interface for GEO

Implements GA_Primitive.

Definition at line 41 of file GEO_PrimNull.h.

virtual void GEO_PrimNull::normal ( NormalComp ) const
inlinevirtual

Minimal interface required by GU

Implements GEO_Primitive.

Definition at line 98 of file GEO_PrimNull.h.

virtual void GEO_PrimNull::reverse ( void  )
inlinevirtual

Required interface for GEO

Implements GEO_Primitive.

Definition at line 43 of file GEO_PrimNull.h.

virtual void GEO_PrimNull::swapVertexOffsets ( const GA_Defragment )
inlinevirtual

Required interface for GEO

Reimplemented from GA_Primitive.

Definition at line 62 of file GEO_PrimNull.h.

Friends And Related Function Documentation

friend class GU_PrimitiveFactory
friend

Definition at line 111 of file GEO_PrimNull.h.


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