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

Contains a list of agents which share the same rig. More...

#include <GT_GEOPackedAgent.h>

+ Inheritance diagram for GT_GEOPackedAgent:

Classes

class  RigElement
 

Public Member Functions

 GT_GEOPackedAgent (const GU_ConstDetailHandle &detail)
 
 GT_GEOPackedAgent (const GT_GEOPackedAgent &src)
 
 ~GT_GEOPackedAgent () override
 
int getNumAgents () const
 Main interface. More...
 
bool buildRig (UT_IntArray &bone_transform_indices, UT_ValArray< UT_QuaternionF > &bone_quats, UT_BoundingBox &rig_worst_case_bounds) const
 
bool getBoundingBox (int agent_idx, UT_BoundingBox &box) const
 
GT_DataArrayHandle getPrimIDs () const
 Primitive IDs (GA_Index) of all agents in the agent list. More...
 
GT_DataArrayHandle getPointIDs () const
 Point IDs (GA_Index) of all agents in the agent list. More...
 
GT_DataArrayHandle getPointPos () const
 Point positions of all agents' points. More...
 
GT_DataArrayHandle fetchAttributeData (const UT_StringRef &attrib_name, GT_Owner &attrib_list_owner) const
 Fetch a data array for the attribute named 'attrib_name'. More...
 
bool hasDataArray (const UT_StringRef &name, GT_Owner owner_scope[], int num_owners, GT_Storage *storage=NULL, GT_Size *tuple_size=NULL) const override
 
bool getTransform (int idx, UT_Matrix4D &mat) const
 local transform for agent at idx. Returns false if no transform present More...
 
bool getTransform (int idx, UT_Matrix4F &mat) const
 local transform for agent at idx. More...
 
GT_AgentTransformsHandle agentTransforms () const
 computed main transforms for all visible agents More...
 
GT_AgentRigTransformsHandle rigTransforms () const
 computed rig transforms for all visible agents More...
 
GT_AgentIndexMapHandle indexMap () const
 map GA index locations of agent prims to a flat list used by this rig More...
 
GT_AgentSelectionHandle selection () const
 list of selected agent primitives More...
 
GT_AgentIDHandle primIDs () const
 list of agent primitive ids. More...
 
GT_AgentColorsHandle colors () const
 List of agent colors;. More...
 
GT_AgentVisibilityHandle visibility () const
 Visibility information for agents. More...
 
const GT_GEOOffsetListpointOffsets () const
 
const GT_GEOOffsetListprimOffsets () const
 
const GT_GEOOffsetListvtxOffsets () const
 
void init ()
 
const char * className () const override
 
int getPrimitiveType () const override
 
int getMotionSegments () const override
 
int64 getMemoryUsage () const override
 
GT_PrimitiveHandle doSoftCopy () const override
 
void enlargeBounds (UT_BoundingBox boxes[], int nsegments) const override
 
bool refine (GT_Refine &refiner, const GT_RefineParms *parms=nullptr) const override
 
void append (const GU_PrimPacked *prim)
 
const GU_PrimPackedgetPackedAgent (int agent_idx) const
 
const GU_ConstDetailHandlegetDetail () const
 
void computeTransforms (bool initial_pass) const
 
void bumpTransformSerial () const
 
int getTransformSerial () const
 
bool updateGeoPrim (const GU_ConstDetailHandle &dtl, const GT_RefineParms &parms) override
 update any cached data for geometry and its attributes More...
 
- 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
 
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
 

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

Detailed Description

Contains a list of agents which share the same rig.

Definition at line 34 of file GT_GEOPackedAgent.h.

Constructor & Destructor Documentation

GT_GEOPackedAgent::GT_GEOPackedAgent ( const GU_ConstDetailHandle detail)
GT_GEOPackedAgent::GT_GEOPackedAgent ( const GT_GEOPackedAgent src)
GT_GEOPackedAgent::~GT_GEOPackedAgent ( )
override

Member Function Documentation

GT_AgentTransformsHandle GT_GEOPackedAgent::agentTransforms ( ) const
inline

computed main transforms for all visible agents

Definition at line 102 of file GT_GEOPackedAgent.h.

void GT_GEOPackedAgent::append ( const GU_PrimPacked prim)
bool GT_GEOPackedAgent::buildRig ( UT_IntArray bone_transform_indices,
UT_ValArray< UT_QuaternionF > &  bone_quats,
UT_BoundingBox rig_worst_case_bounds 
) const

Return a list of bones corresponding to all the ones used by deforming shapes. bone_transform_indices correspond to transforms in the rig and bone_quats are the directions for the bone (assuming a source orientation pointing in the -Z axis), and scaled to indicate the bone length.

void GT_GEOPackedAgent::bumpTransformSerial ( ) const
inline

Definition at line 159 of file GT_GEOPackedAgent.h.

const char* GT_GEOPackedAgent::className ( ) const
inlineoverridevirtual

Implements GT_Primitive.

Definition at line 132 of file GT_GEOPackedAgent.h.

GT_AgentColorsHandle GT_GEOPackedAgent::colors ( ) const
inline

List of agent colors;.

Definition at line 120 of file GT_GEOPackedAgent.h.

void GT_GEOPackedAgent::computeTransforms ( bool  initial_pass) const

compute transform information for those agents that are visible. 'initial_pass' indicates a topology change where incremental updates cannot be done.

GT_PrimitiveHandle GT_GEOPackedAgent::doSoftCopy ( ) const
inlineoverridevirtual

Create a copy of the primitive, referencing all the source data This can return a NULL pointer, but it would be better to implement it properly.

Implements GT_Primitive.

Definition at line 138 of file GT_GEOPackedAgent.h.

void GT_GEOPackedAgent::enlargeBounds ( UT_BoundingBox  boxes[],
int  nsegments 
) const
inlineoverridevirtual

An array of bounding boxes is passed in. There is a bounding box for each segement. Each bounding box should be enlarged appropriately.

Implements GT_Primitive.

Definition at line 141 of file GT_GEOPackedAgent.h.

GT_DataArrayHandle GT_GEOPackedAgent::fetchAttributeData ( const UT_StringRef attrib_name,
GT_Owner attrib_list_owner 
) const

Fetch a data array for the attribute named 'attrib_name'.

bool GT_GEOPackedAgent::getBoundingBox ( int  agent_idx,
UT_BoundingBox box 
) const

Fetch bounding box of an agent, return false if bbox couldn't be computed.

const GU_ConstDetailHandle& GT_GEOPackedAgent::getDetail ( ) const
inline

Definition at line 152 of file GT_GEOPackedAgent.h.

int64 GT_GEOPackedAgent::getMemoryUsage ( ) const
inlineoverridevirtual

Return an approximate memory usage. Since data may be shared, this will always be an over-estimation.

Implements GT_Primitive.

Definition at line 136 of file GT_GEOPackedAgent.h.

int GT_GEOPackedAgent::getMotionSegments ( ) const
inlineoverridevirtual

Return the number of motion segments defined on the geometry By default, this simply returns the number of segments on P.

Implements GT_Primitive.

Definition at line 135 of file GT_GEOPackedAgent.h.

int GT_GEOPackedAgent::getNumAgents ( ) const
inline

Main interface.

Number of agents in this agent list

Definition at line 44 of file GT_GEOPackedAgent.h.

const GU_PrimPacked* GT_GEOPackedAgent::getPackedAgent ( int  agent_idx) const
GT_DataArrayHandle GT_GEOPackedAgent::getPointIDs ( ) const

Point IDs (GA_Index) of all agents in the agent list.

GT_DataArrayHandle GT_GEOPackedAgent::getPointPos ( ) const

Point positions of all agents' points.

GT_DataArrayHandle GT_GEOPackedAgent::getPrimIDs ( ) const

Primitive IDs (GA_Index) of all agents in the agent list.

int GT_GEOPackedAgent::getPrimitiveType ( ) const
inlineoverridevirtual

Return the primitive type. By default this returns GT_PRIM_UNDEFINED,

Reimplemented from GT_Primitive.

Definition at line 133 of file GT_GEOPackedAgent.h.

bool GT_GEOPackedAgent::getTransform ( int  idx,
UT_Matrix4D mat 
) const

local transform for agent at idx. Returns false if no transform present

bool GT_GEOPackedAgent::getTransform ( int  idx,
UT_Matrix4F mat 
) const

local transform for agent at idx.

int GT_GEOPackedAgent::getTransformSerial ( ) const
inline

Definition at line 160 of file GT_GEOPackedAgent.h.

bool GT_GEOPackedAgent::hasDataArray ( const UT_StringRef name,
GT_Owner  owner_scope[],
int  num_owners,
GT_Storage storage = NULL,
GT_Size tuple_size = NULL 
) const
overridevirtual

Returns true if a data array with 'name' is found in 'owner_scope', and optionally its storage and tuple_size.

Reimplemented from GT_Primitive.

GT_AgentIndexMapHandle GT_GEOPackedAgent::indexMap ( ) const
inline

map GA index locations of agent prims to a flat list used by this rig

Definition at line 110 of file GT_GEOPackedAgent.h.

void GT_GEOPackedAgent::init ( )
const GT_GEOOffsetList& GT_GEOPackedAgent::pointOffsets ( ) const
inline

Definition at line 125 of file GT_GEOPackedAgent.h.

GT_AgentIDHandle GT_GEOPackedAgent::primIDs ( ) const
inline

list of agent primitive ids.

Definition at line 117 of file GT_GEOPackedAgent.h.

const GT_GEOOffsetList& GT_GEOPackedAgent::primOffsets ( ) const
inline

Definition at line 126 of file GT_GEOPackedAgent.h.

bool GT_GEOPackedAgent::refine ( GT_Refine refiner,
const GT_RefineParms parms = nullptr 
) const
overridevirtual

Refine to a collection of instanced primitives (for static shapes) and unique meshes (for deforming shapes).

Reimplemented from GT_Primitive.

GT_AgentRigTransformsHandle GT_GEOPackedAgent::rigTransforms ( ) const
inline

computed rig transforms for all visible agents

Definition at line 106 of file GT_GEOPackedAgent.h.

GT_AgentSelectionHandle GT_GEOPackedAgent::selection ( ) const
inline

list of selected agent primitives

Definition at line 114 of file GT_GEOPackedAgent.h.

bool GT_GEOPackedAgent::updateGeoPrim ( const GU_ConstDetailHandle dtl,
const GT_RefineParms parms 
)
overridevirtual

update any cached data for geometry and its attributes

Reimplemented from GT_Primitive.

GT_AgentVisibilityHandle GT_GEOPackedAgent::visibility ( ) const
inline

Visibility information for agents.

Definition at line 123 of file GT_GEOPackedAgent.h.

const GT_GEOOffsetList& GT_GEOPackedAgent::vtxOffsets ( ) const
inline

Definition at line 127 of file GT_GEOPackedAgent.h.


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