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

Base class for many of the GEO_Primitive objects. More...

#include <GT_GEOPrimitive.h>

+ Inheritance diagram for GT_GEOPrimitive:

Classes

class  GEOPrimitivePair
 

Public Member Functions

 GT_GEOPrimitive (const GU_ConstDetailHandle *dlist, const GEO_Primitive *const *primlist, int nsegments)
 
 GT_GEOPrimitive (const GU_ConstDetailHandle *dlist, GA_Offset offset, int nsegments)
 
 GT_GEOPrimitive (const GT_GEOPrimitive &src)
 
 ~GT_GEOPrimitive () override
 
const char * className () const override
 
void init (const GU_ConstDetailHandle *dlist, GA_Offset offset, int nsegments)
 Initialize the primitive lists. More...
 
void init (const GU_ConstDetailHandle *dlist, const GEO_Primitive *const *primlist, int nsegments)
 
void init (const GU_ConstDetailHandle *dlist, const GEOPrimitivePair *primlist, int nsegments)
 
bool updateGeoPrim (const GU_ConstDetailHandle &dtl, const GT_RefineParms &refine) override
 Update the primitive pointers. More...
 
int getPrimitiveType () const override
 
void enlargeBounds (UT_BoundingBox boxes[], int nsegments) const override
 
int getMotionSegments () const override
 
int64 getMemoryUsage () const override
 
GT_PrimitiveHandle doSoftCopy () const override
 
bool refine (GT_Refine &refiner, const GT_RefineParms *parms=NULL) const override
 
const GU_ConstDetailHandledetailHandles () const
 
const GU_ConstDetailHandledetail (int seg) const
 
const GEO_PrimitivegetPrimitive (int seg) const
 
template<typename T >
const TgetPrimAs (int seg) const
 
- 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 bool save (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
 
virtual GT_PrimitiveHandle doHarden () const
 
virtual GT_PrimitiveHandle doAttributeMerge (const GT_Primitive &src, const UT_StringMMPattern *vertex, const UT_StringMMPattern *point, const UT_StringMMPattern *uniform, const UT_StringMMPattern *detail) const
 The virtual implementation of attribute merging. More...
 
bool enlargeWidth (UT_BoundingBox boxes[], int nsegments, fpreal defwidth=-1) const
 
virtual const
GT_AttributeListHandle
getPointAttributes () const
 
virtual const
GT_AttributeListHandle
getVertexAttributes () const
 
virtual const
GT_AttributeListHandle
getUniformAttributes () const
 
virtual const
GT_AttributeListHandle
getDetailAttributes () const
 
const GT_AttributeListHandlegetAttributeList (GT_Owner owner) const
 
virtual const GT_DataArrayHandlegetVertexList () 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 computePerimeter (int seg=0) 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_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 void makePairArray (UT_Array< GEOPrimitivePair > &array, const GU_ConstDetailHandle &gdh, const GT_GEOOffsetList &offsets)
 
static GT_TransformHandle makeQuadricTransform (const GEO_Quadric *prim)
 Given a GEO_Quadric, create the GT transform. More...
 
static GT_AttributeListHandle makeQuadricAttributes (const GU_ConstDetailHandle &gdp, const GEO_Primitive *prims)
 
- 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

void clearLists ()
 
GT_AttributeListHandle getPrimitiveAttributes (bool include_detail_attributes=true) const
 
- 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...
 

Protected Attributes

GU_ConstDetailHandlemyDetails
 
GEOPrimitivePairmyPrimitives
 
int mySegmentCount
 

Detailed Description

Base class for many of the GEO_Primitive objects.

Examples:
GUI/GUI_PolySoupBox.C, and GUI/GUI_PrimFramework.C.

Definition at line 36 of file GT_GEOPrimitive.h.

Constructor & Destructor Documentation

GT_GEOPrimitive::GT_GEOPrimitive ( const GU_ConstDetailHandle dlist,
const GEO_Primitive *const primlist,
int  nsegments 
)
inline

Definition at line 74 of file GT_GEOPrimitive.h.

GT_GEOPrimitive::GT_GEOPrimitive ( const GU_ConstDetailHandle dlist,
GA_Offset  offset,
int  nsegments 
)
inline

Definition at line 83 of file GT_GEOPrimitive.h.

GT_GEOPrimitive::GT_GEOPrimitive ( const GT_GEOPrimitive src)
inline

Definition at line 92 of file GT_GEOPrimitive.h.

GT_GEOPrimitive::~GT_GEOPrimitive ( )
override

Member Function Documentation

const char* GT_GEOPrimitive::className ( ) const
inlineoverridevirtual

Implements GT_Primitive.

Reimplemented in GT_GEOPrimTPSurf.

Definition at line 102 of file GT_GEOPrimitive.h.

void GT_GEOPrimitive::clearLists ( )
protected
const GU_ConstDetailHandle& GT_GEOPrimitive::detail ( int  seg) const
inline

Access to GEO primitives

Definition at line 145 of file GT_GEOPrimitive.h.

const GU_ConstDetailHandle* GT_GEOPrimitive::detailHandles ( ) const
inline

Access to GEO primitives

Definition at line 144 of file GT_GEOPrimitive.h.

GT_PrimitiveHandle GT_GEOPrimitive::doSoftCopy ( ) const
inlineoverridevirtual

Interface from GT_Primitive implemented using methods on GEO_Primitive

Implements GT_Primitive.

Reimplemented in GT_GEOPrimTPSurf.

Definition at line 128 of file GT_GEOPrimitive.h.

void GT_GEOPrimitive::enlargeBounds ( UT_BoundingBox  boxes[],
int  nsegments 
) const
overridevirtual

Interface from GT_Primitive implemented using methods on GEO_Primitive

Implements GT_Primitive.

int64 GT_GEOPrimitive::getMemoryUsage ( ) const
overridevirtual

Interface from GT_Primitive implemented using methods on GEO_Primitive

Implements GT_Primitive.

int GT_GEOPrimitive::getMotionSegments ( ) const
inlineoverridevirtual

Interface from GT_Primitive implemented using methods on GEO_Primitive

Implements GT_Primitive.

Definition at line 125 of file GT_GEOPrimitive.h.

template<typename T >
const T* GT_GEOPrimitive::getPrimAs ( int  seg) const
inline

Access to GEO primitives

Definition at line 148 of file GT_GEOPrimitive.h.

const GEO_Primitive* GT_GEOPrimitive::getPrimitive ( int  seg) const

Access to GEO primitives

Examples:
GUI/GUI_PolySoupBox.C.
GT_AttributeListHandle GT_GEOPrimitive::getPrimitiveAttributes ( bool  include_detail_attributes = true) const
protected

Get an attribute list for the primitive attributes, optionally including the detail attributes in the same list. These attributes will be "shared" with the GEO objects.

int GT_GEOPrimitive::getPrimitiveType ( ) const
inlineoverridevirtual

Interface from GT_Primitive implemented using methods on GEO_Primitive

Reimplemented from GT_Primitive.

Reimplemented in GT_GEOPrimTPSurf.

Definition at line 121 of file GT_GEOPrimitive.h.

void GT_GEOPrimitive::init ( const GU_ConstDetailHandle dlist,
GA_Offset  offset,
int  nsegments 
)

Initialize the primitive lists.

void GT_GEOPrimitive::init ( const GU_ConstDetailHandle dlist,
const GEO_Primitive *const primlist,
int  nsegments 
)
void GT_GEOPrimitive::init ( const GU_ConstDetailHandle dlist,
const GEOPrimitivePair primlist,
int  nsegments 
)
static void GT_GEOPrimitive::makePairArray ( UT_Array< GEOPrimitivePair > &  array,
const GU_ConstDetailHandle gdh,
const GT_GEOOffsetList offsets 
)
static
static GT_AttributeListHandle GT_GEOPrimitive::makeQuadricAttributes ( const GU_ConstDetailHandle gdp,
const GEO_Primitive prims 
)
static

Given a single-vertex primitive, create an attribute list for all point, vertex and primitive attributes.

static GT_TransformHandle GT_GEOPrimitive::makeQuadricTransform ( const GEO_Quadric prim)
static

Given a GEO_Quadric, create the GT transform.

bool GT_GEOPrimitive::refine ( GT_Refine refiner,
const GT_RefineParms parms = NULL 
) const
overridevirtual

Interface from GT_Primitive required by subclass

Reimplemented from GT_Primitive.

Reimplemented in GT_GEOPrimTPSurf.

bool GT_GEOPrimitive::updateGeoPrim ( const GU_ConstDetailHandle dtl,
const GT_RefineParms refine 
)
overridevirtual

Update the primitive pointers.

Reimplemented from GT_Primitive.

Reimplemented in GT_GEOPrimTPSurf.

Member Data Documentation

GU_ConstDetailHandle* GT_GEOPrimitive::myDetails
protected

Definition at line 173 of file GT_GEOPrimitive.h.

GEOPrimitivePair* GT_GEOPrimitive::myPrimitives
protected

Definition at line 174 of file GT_GEOPrimitive.h.

int GT_GEOPrimitive::mySegmentCount
protected

Definition at line 175 of file GT_GEOPrimitive.h.


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