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

#include <GD_PrimPoly.h>

+ Inheritance diagram for GD_PrimPoly:

Public Member Functions

 GD_PrimPoly (GD_Detail *d, GA_Offset offset=GA_INVALID_OFFSET)
 
 ~GD_PrimPoly () override
 
int64 getMemoryUsage () const override
 Report memory usage. More...
 
void countMemory (UT_MemoryCounter &counter) const override
 
const GA_PrimitiveJSONgetJSON () const override
 
const GA_PrimitiveDefinitiongetTypeDef () const override
 
unsigned getOrder () const override
 
int evaluate (float u, UT_Vector3 &pos, unsigned du=0, int uOffset=-1) const override
 
bool evaluate (GA_Offset vtx, GA_AttributeRefMap &h, fpreal u, uint du=0, int uoffset=-1) const override
 
GD_TrimLooptrimLoop (float ustart, float ustop) const override
 
int breakCount () const override
 
- Public Member Functions inherited from GD_Face
 GD_Face (GD_Detail *d, GA_Offset offset=GA_INVALID_OFFSET)
 
virtual ~GD_Face ()
 
int getBBox (UT_BoundingBox *bbox) const override
 
void addToBSphere (UT_BoundingSphere *bsphere) const override
 
void getBRect (UT_BoundingRect *brect) const override
 
UT_Vector3 computeNormal () const override
 
UT_Vector3 baryCenter () const override
 
bool saveH9 (std::ostream &os, bool binary, const UT_Array< GA_AttribSaveDataH9 > &prim_attribs, const UT_Array< GA_AttribSaveDataH9 > &vtx_attribs) const override
 
bool loadH9 (UT_IStream &is, const UT_Array< GA_AttribLoadDataH9 > &prim_attribs, const UT_Array< GA_AttribLoadDataH9 > &vtx_attribs) override
 
virtual void clearForDeletion ()
 
GD_Primitivecopy (int preserve_shared_pts=0) const override
 
int copy (const GD_Primitive &src, int ptindexdiff) override
 
virtual void addPointRefToGroup (GA_PointGroup &grp) const
 
bool isDegenerate () const override
 Is the primitive degenerate. More...
 
void setSize (GA_Size sz)
 
int detachPoints (GA_PointGroup &grp) override
 
virtual int removeRepeatedVertices (int check_order=0)
 
virtual GA_Size insertVertex (GA_Offset ptoff=GA_INVALID_OFFSET, GA_Size where=0)
 
virtual GA_Size appendVertex (GA_Offset ptoff=GA_INVALID_OFFSET)
 
virtual int deleteVertex (GA_Size i)
 
virtual GA_Size getVertexCount () const
 
virtual GA_Offset getVertexOffset (GA_Size index) const
 
UT_Vector2 getPos2 (GA_Size index) const
 
GA_Size findPoint (GA_Offset ptoff) const
 
void setVertexPoint (GA_Size i, GA_Offset ptoff)
 
GA_Offset vertexPoint (unsigned int i) const
 
SYS_FORCE_INLINE bool isClosed () const
 
virtual void close (int rounded=1, int preserveShape=0)
 
virtual void open (int preserveShape=0, int safe=0)
 
int isClockwise () const
 
int isVisible () const override
 
int visibleBaryCenter (float &uctr, float &vctr) const override
 
void sampleEnds (int n)
 
virtual bool vertexApply (bool(*apply)(GA_Offset vtx, void *), void *data=0) const
 
virtual int cycle (int amount, int=1)
 
void reverse () override
 
virtual void validInterval (int &a, int &b) const
 
void validRange (fpreal64 &ua, fpreal64 &ub) const
 
void validRange (fpreal32 &ua, fpreal32 &ub) const
 
int visibleRange (fpreal64 &ua, fpreal64 &ub, fpreal64 tol=1E-4) const
 
int visibleRange (fpreal32 &ua, fpreal32 &ub, fpreal32 tol=1E-4F) const
 
virtual bool evaluateBreakSegm (int ustartidx, int ustopidx, int lod, UT_Vector3Array &pos, unsigned du=0) const
 
int intersectDomain (UT_Array< GD_TrimHitInfo > &hitlist, float tol=1E-4F) const
 
int getPoints (int numdivs, UT_Vector3Array &domain, int usebreak)
 
virtual void weights (unsigned short)
 
virtual GA_BasisgetFaceBasis ()
 
virtual const GA_BasisgetFaceBasis () const
 
virtual bool jsonLoadBasis (UT_JSONParser &p)
 
virtual bool jsonSaveBasis (UT_JSONWriter &w) const
 
virtual bool jsonLoadBasis (UT_JSONParser &p, const UT_JSONValue &v)
 
virtual bool jsonSaveBasis (UT_JSONValue &v) const
 
bool saveVertexArray (UT_JSONWriter &p, const GA_SaveMap &map) const
 
bool loadVertexArray (UT_JSONParser &p, const GA_LoadMap &map)
 
- Public Member Functions inherited from GD_Primitive
 GD_Primitive (GD_Detail *d, GA_Offset offset=GA_INVALID_OFFSET)
 
virtual int evaluatePoint (UT_Vector3 &pos, float u, unsigned du=0) const
 
GA_PrimCompat::TypeMask getPrimitiveId () const override
 
GD_DetailgetParent () const
 
virtual void transform (const UT_Matrix3 &)
 
bool isDegenerate () const override
 Is the primitive degenerate. More...
 
void reverse () override
 
- 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 UT_Vector3D getPos3D (GA_Size i) const
 
template<typename T >
UT_Vector3T< TgetPos3T (GA_Size i) const
 
SYS_FORCE_INLINE void setPos3 (GA_Size i, const UT_Vector3 &pos) const
 
SYS_FORCE_INLINE void setPos3 (GA_Size i, const UT_Vector3D &pos) const
 
SYS_FORCE_INLINE UT_Vector4 getPos4 (GA_Size i) const
 
SYS_FORCE_INLINE UT_Vector4D getPos4D (GA_Size i) const
 
SYS_FORCE_INLINE void setPos4 (GA_Size i, const UT_Vector4 &pos) const
 
SYS_FORCE_INLINE void setPos4 (GA_Size i, const UT_Vector4D &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 bool enlargeVisibleBoundingBox (UT_BoundingBox &b, const GA_Attribute *P) const
 
virtual bool enlargeBoundingSphere (UT_BoundingSphere &b, const GA_Attribute *P) const
 
virtual void enlargePointBounds (UT_BoundingBox &box) const
 
void copyUnwiredForMerge (const GA_Primitive *src, const GA_MergeMap &map)
 
virtual void copySubclassData (const GA_Primitive *source)
 
virtual bool saveSharedLoadData (UT_JSONWriter &w, GA_SaveMap &save, GA_GeometryIndex *geo_index) const
 
virtual bool registerSharedLoadData (int load_data_type, GA_SharedDataHandlePtr item)
 
const GA_IntrinsicManagergetIntrinsicManager () const
 
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 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 stealCEBuffers (const GA_Primitive *src)
 Steal the underlying CE buffer from the source. More...
 
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 UT_StringRef &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
 
bool getIntrinsicCollapseSingletons (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, UT_OptionsHolder &val) const
 
GA_Size getIntrinsic (GA_LocalIntrinsic h, UT_Array< UT_OptionsHolder > &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
 
bool getIntrinsic (GA_LocalIntrinsic h, double &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, int64 &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Vector2D &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Vector3D &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Vector4D &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Matrix2D &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Matrix3D &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Matrix4D &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 UT_OptionsHolder &value)
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const UT_Array< UT_OptionsHolder > &value)
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const UT_OptionsHolder *value, 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 Member Functions

static GD_PrimPolybuild (GD_Detail *d, int npts, int closed=0, int appendPts=1)
 
- Static Public Member Functions inherited from GA_Primitive
static SYS_FORCE_INLINE
GA_PrimCompat::TypeMask 
primCompatMaskFromTypeId (int type_id)
 

Protected Member Functions

bool savePrivateH9 (std::ostream &, bool binary) const override
 
bool loadPrivateH9 (UT_IStream &) override
 
- Protected Member Functions inherited from GD_Face
GA_DereferenceStatus dereferencePoint (GA_Offset point, bool dry_run=false) override
 
GA_DereferenceStatus dereferencePoints (const GA_RangeMemberQuery &pt_q, bool dry_run=false) override
 
virtual bool validate () const
 
int multipleInsert (unsigned int where, unsigned int count, unsigned int appendPoints=1)
 
virtual void swapVertexOffsets (const GA_Defragment &defrag)
 Defragmentation. More...
 
virtual int64 getBaseMemoryUsage () const
 Report approximate memory usage for myVertexList (exclusive) More...
 
virtual void countBaseMemory (UT_MemoryCounter &counter) 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)
 

Static Protected Member Functions

static
GA_IntrinsicManager::Registrar 
registerIntrinsics (GA_PrimitiveDefinition &definition)
 
- Static Protected Member Functions inherited from GD_Face
static
GA_IntrinsicManager::Registrar 
registerIntrinsics (GA_PrimitiveDefinition &definition)
 
- Static Protected Member Functions inherited from GD_Primitive
static
GA_IntrinsicManager::Registrar 
registerIntrinsics (GA_PrimitiveDefinition &definition)
 

Friends

class GD_PrimitiveFactory
 
std::ostream & operator<< (std::ostream &os, const GD_PrimPoly &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 Attributes inherited from GD_Primitive
static const UT_Array
< GA_AttribSaveDataH9 > & 
theEmptySaveAttribs
 Convience objects to pass as arguments to saveH9()/loadH9(). More...
 
- Protected Attributes inherited from GA_Primitive
GA_OffsetList myVertexList
 

Detailed Description

Definition at line 23 of file GD_PrimPoly.h.

Constructor & Destructor Documentation

GD_PrimPoly::GD_PrimPoly ( GD_Detail d,
GA_Offset  offset = GA_INVALID_OFFSET 
)
inline

Definition at line 26 of file GD_PrimPoly.h.

GD_PrimPoly::~GD_PrimPoly ( )
inlineoverride

Definition at line 29 of file GD_PrimPoly.h.

Member Function Documentation

int GD_PrimPoly::breakCount ( ) const
overridevirtual

Implements GD_Face.

static GD_PrimPoly* GD_PrimPoly::build ( GD_Detail d,
int  npts,
int  closed = 0,
int  appendPts = 1 
)
static
void GD_PrimPoly::countMemory ( UT_MemoryCounter counter) const
overridevirtual

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.

int GD_PrimPoly::evaluate ( float  u,
UT_Vector3 pos,
unsigned  du = 0,
int  uOffset = -1 
) const
overridevirtual

Implements GD_Face.

bool GD_PrimPoly::evaluate ( GA_Offset  vtx,
GA_AttributeRefMap h,
fpreal  u,
uint  du = 0,
int  uoffset = -1 
) const
overridevirtual

Evaluate the face at the given u position, storing the result in the vertex given by vtx.

Parameters
vtx- Vertex to store evaluated result
h- Handle of attributes to evaluate
u- Parametric evaluation position
du- Derivative
uoffset- Basis offset

Implements GD_Face.

const GA_PrimitiveJSON* GD_PrimPoly::getJSON ( ) const
overridevirtual

This method returns the JSON interface for saving/loading the primitive If the method returns a NULL pointer, then the primitive will not be saved to geometry files (and thus cannot be loaded).

Implements GA_Primitive.

int64 GD_PrimPoly::getMemoryUsage ( ) const
overridevirtual

Report memory usage.

Reimplemented from GA_Primitive.

unsigned GD_PrimPoly::getOrder ( ) const
overridevirtual

Implements GD_Face.

const GA_PrimitiveDefinition& GD_PrimPoly::getTypeDef ( ) const
overridevirtual

Implements GA_Primitive.

bool GD_PrimPoly::loadPrivateH9 ( UT_IStream )
overrideprotectedvirtual

Implements GD_Face.

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

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

See Also
GA_AttributeIntrinsic

Definition at line 69 of file GD_PrimPoly.h.

bool GD_PrimPoly::savePrivateH9 ( std::ostream &  ,
bool  binary 
) const
overrideprotectedvirtual

Implements GD_Face.

GD_TrimLoop* GD_PrimPoly::trimLoop ( float  ustart,
float  ustop 
) const
overridevirtual

Implements GD_Face.

Friends And Related Function Documentation

friend class GD_PrimitiveFactory
friend

Definition at line 88 of file GD_PrimPoly.h.

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

Definition at line 80 of file GD_PrimPoly.h.


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