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

#include <GT_PrimMeshSplit.h>

+ Inheritance diagram for GT_PrimMeshSplitChild:

Public Member Functions

 GT_PrimMeshSplitChild (GT_PrimMeshSplitParent *parent, const GT_PrimMeshSplitRange &range)
 Create a split primitive for the given mesh. More...
 GT_PrimMeshSplitChild (const GT_PrimMeshSplitChild &src)
 ~GT_PrimMeshSplitChild () override
 d-tor More...
const char * className () const override
bool refine (GT_Refine &refiner, const GT_RefineParms *parms) const override
GT_Size entries () const
 Convenience method to get the entries. More...
GT_Offset getIndex (GT_Offset index) const
const UT_BoundingBox getBox () const
void enlargeBounds (UT_BoundingBox boxes[], int nsegs) const override
int getMotionSegments () const override
int64 getMemoryUsage () const override
GT_PrimitiveHandle doSoftCopy () const override
- Public Member Functions inherited from GT_Primitive
 GT_Primitive ()
 GT_Primitive (const GT_Primitive &src)
virtual ~GT_Primitive ()
virtual int getPrimitiveType () const
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
virtual bool updateGeoPrim (const GU_ConstDetailHandle &dtl, const GT_RefineParms &parms)
 update any cached data for geometry and its attributes More...
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
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
getPointAttributes () const
virtual const
getVertexAttributes () const
virtual const
getUniformAttributes () const
virtual const
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

Protected Member Functions

const GT_PrimMeshSplitParentgetParent () const
GT_PrimMeshSplitParentgetParent ()
- 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

GT_PrimitiveHandle myParent
GT_PrimMeshSplitRange myRange
UT_BoundingBox myBox

Additional Inherited Members

- 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)

Detailed Description

Definition at line 96 of file GT_PrimMeshSplit.h.

Constructor & Destructor Documentation

GT_PrimMeshSplitChild::GT_PrimMeshSplitChild ( GT_PrimMeshSplitParent parent,
const GT_PrimMeshSplitRange range 

Create a split primitive for the given mesh.

GT_PrimMeshSplitChild::GT_PrimMeshSplitChild ( const GT_PrimMeshSplitChild src)
GT_PrimMeshSplitChild::~GT_PrimMeshSplitChild ( )


Member Function Documentation

const char* GT_PrimMeshSplitChild::className ( ) const

Implements GT_Primitive.

Definition at line 106 of file GT_PrimMeshSplit.h.

GT_PrimitiveHandle GT_PrimMeshSplitChild::doSoftCopy ( ) const

Methods from GT_Primitive

Implements GT_Primitive.

Definition at line 128 of file GT_PrimMeshSplit.h.

void GT_PrimMeshSplitChild::enlargeBounds ( UT_BoundingBox  boxes[],
int  nsegs 
) const

Methods from GT_Primitive

Implements GT_Primitive.

GT_Size GT_PrimMeshSplitChild::entries ( ) const

Convenience method to get the entries.

Definition at line 133 of file GT_PrimMeshSplit.h.

const UT_BoundingBox GT_PrimMeshSplitChild::getBox ( ) const

Get bounding box.

This is only valid after enlargeBounds() has been called.

Definition at line 144 of file GT_PrimMeshSplit.h.

GT_Offset GT_PrimMeshSplitChild::getIndex ( GT_Offset  index) const

Convenience method to map from the index in this list to the parent's index.

Definition at line 137 of file GT_PrimMeshSplit.h.

int64 GT_PrimMeshSplitChild::getMemoryUsage ( ) const

Methods from GT_Primitive

Implements GT_Primitive.

int GT_PrimMeshSplitChild::getMotionSegments ( ) const

Methods from GT_Primitive

Implements GT_Primitive.

const GT_PrimMeshSplitParent* GT_PrimMeshSplitChild::getParent ( ) const

Definition at line 147 of file GT_PrimMeshSplit.h.

GT_PrimMeshSplitParent* GT_PrimMeshSplitChild::getParent ( )

Definition at line 153 of file GT_PrimMeshSplit.h.

bool GT_PrimMeshSplitChild::refine ( GT_Refine refiner,
const GT_RefineParms parms 
) const

It's up the subclass to perform refinement. But, to implement a simple split into further children, you might do something like:

GT_Offset l0, l1, r0, r1;
if (getParent()->rangePartition(myBox, myRange, l0, l1, r0, r1))
if (l1 >= l0)
refiner.addPrimitive(new SplitPrimitive(getParent(), l0, l1))
if (r1 >= r0)
refiner.addPrimitive(new SplitPrimitive(getParent(), r0, r1))

Reimplemented from GT_Primitive.

Member Data Documentation

UT_BoundingBox GT_PrimMeshSplitChild::myBox

Definition at line 162 of file GT_PrimMeshSplit.h.

GT_PrimitiveHandle GT_PrimMeshSplitChild::myParent

Definition at line 160 of file GT_PrimMeshSplit.h.

GT_PrimMeshSplitRange GT_PrimMeshSplitChild::myRange

Definition at line 161 of file GT_PrimMeshSplit.h.

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