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 GT_GEOPrimitive &src)
 
virtual ~GT_GEOPrimitive ()
 
virtual const char * className () const
 
void init (const GU_ConstDetailHandle *dlist, const GEO_Primitive *const *primlist, int nsegments)
 Initialize the primitive lists. More...
 
void init (const GU_ConstDetailHandle *dlist, const GEOPrimitivePair *primlist, int nsegments)
 
virtual bool updateGeoPrim (const GU_ConstDetailHandle &dtl, const GT_RefineParms &refine)
 Update the primitive pointers. More...
 
virtual int getPrimitiveType () const
 
virtual void enlargeBounds (UT_BoundingBox boxes[], int nsegments) const
 
virtual int getMotionSegments () const
 
virtual int64 getMemoryUsage () const
 
virtual GT_PrimitiveHandle doSoftCopy () const
 
virtual bool refine (GT_Refine &refiner, const GT_RefineParms *parms=NULL) const
 
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 ()
 Default constructor: Sets counter to 0. More...
 
SYS_FORCE_INLINE UT_IntrusiveRefCounter (const UT_IntrusiveRefCounter &)
 Copy constructor: Sets counter to 0. More...
 
UT_IntrusiveRefCounteroperator= (const UT_IntrusiveRefCounter &)
 Assignment operator: Does not modify counter. More...
 
SYS_FORCE_INLINE uint32 use_count () const
 Return current counter. More...
 

Static Public Member Functions

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 35 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 73 of file GT_GEOPrimitive.h.

GT_GEOPrimitive::GT_GEOPrimitive ( const GT_GEOPrimitive src)
inline

Definition at line 82 of file GT_GEOPrimitive.h.

virtual GT_GEOPrimitive::~GT_GEOPrimitive ( )
virtual

Member Function Documentation

virtual const char* GT_GEOPrimitive::className ( void  ) const
inlinevirtual

Implements GT_Primitive.

Reimplemented in GT_GEOPrimTPSurf, and GT_GEOPrimCurve.

Definition at line 92 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 128 of file GT_GEOPrimitive.h.

const GU_ConstDetailHandle* GT_GEOPrimitive::detailHandles ( ) const
inline

Access to GEO primitives

Definition at line 127 of file GT_GEOPrimitive.h.

virtual GT_PrimitiveHandle GT_GEOPrimitive::doSoftCopy ( ) const
inlinevirtual

Interface from GT_Primitive implemented using methods on GEO_Primitive

Implements GT_Primitive.

Reimplemented in GT_GEOPrimTPSurf, and GT_GEOPrimCurve.

Definition at line 111 of file GT_GEOPrimitive.h.

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

Interface from GT_Primitive implemented using methods on GEO_Primitive

Implements GT_Primitive.

virtual int64 GT_GEOPrimitive::getMemoryUsage ( ) const
virtual

Interface from GT_Primitive implemented using methods on GEO_Primitive

Implements GT_Primitive.

virtual int GT_GEOPrimitive::getMotionSegments ( ) const
inlinevirtual

Interface from GT_Primitive implemented using methods on GEO_Primitive

Implements GT_Primitive.

Definition at line 108 of file GT_GEOPrimitive.h.

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

Access to GEO primitives

Definition at line 131 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.

virtual int GT_GEOPrimitive::getPrimitiveType ( ) const
inlinevirtual

Interface from GT_Primitive implemented using methods on GEO_Primitive

Reimplemented from GT_Primitive.

Reimplemented in GT_GEOPrimTPSurf.

Definition at line 104 of file GT_GEOPrimitive.h.

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

Initialize the primitive lists.

void GT_GEOPrimitive::init ( const GU_ConstDetailHandle dlist,
const GEOPrimitivePair primlist,
int  nsegments 
)
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.

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

Interface from GT_Primitive required by subclass

Reimplemented from GT_Primitive.

Reimplemented in GT_GEOPrimTPSurf, and GT_GEOPrimCurve.

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

Update the primitive pointers.

Reimplemented from GT_Primitive.

Reimplemented in GT_GEOPrimTPSurf.

Member Data Documentation

GU_ConstDetailHandle* GT_GEOPrimitive::myDetails
protected

Definition at line 156 of file GT_GEOPrimitive.h.

GEOPrimitivePair* GT_GEOPrimitive::myPrimitives
protected

Definition at line 157 of file GT_GEOPrimitive.h.

int GT_GEOPrimitive::mySegmentCount
protected

Definition at line 158 of file GT_GEOPrimitive.h.


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