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

Single Alembic shape (non-instanced) More...

#include <GABC_PackedGT.h>

+ Inheritance diagram for GABC_PackedAlembic:

Public Member Functions

 GABC_PackedAlembic (const GU_ConstDetailHandle &prim_gdh, const GU_PrimPacked *prim, const GT_DataArrayHandle &vp_mat, const GT_DataArrayHandle &vp_remap)
 
 GABC_PackedAlembic (const GABC_PackedAlembic &src)
 
virtual ~GABC_PackedAlembic ()
 
void initVisAnim ()
 
virtual int getPrimitiveType () const
 
virtual const char * className () const
 
virtual GT_PrimitiveHandle doSoftCopy () const
 
virtual GT_PrimitiveHandle getPointCloud (const GT_RefineParms *p, bool &xform) const
 
virtual GT_PrimitiveHandle getFullGeometry (const GT_RefineParms *p, bool &xform) const
 
virtual GT_PrimitiveHandle getBoxGeometry (const GT_RefineParms *p) const
 
virtual GT_PrimitiveHandle getCentroidGeometry (const GT_RefineParms *p) const
 
virtual bool canInstance () const
 
virtual bool getInstanceKey (UT_Options &options) const
 
virtual GT_PrimitiveHandle getInstanceGeometry (const GT_RefineParms *p, bool ignore_visibility=false) const
 
virtual GT_TransformHandle getInstanceTransform () const
 
GT_TransformHandle fullCachedTransform ()
 
bool isVisible ()
 
virtual bool refine (GT_Refine &refiner, const GT_RefineParms *parms=NULL) const
 
virtual bool getUniqueID (int64 &id) const
 
void setAnimationType (GEO_AnimationType t)
 
GEO_AnimationType animationType () const
 
void setVisibilityAnimated (bool anim)
 
bool visibilityAnimated () const
 
bool getCachedGeometry (GT_PrimitiveHandle &ph) const
 
void cacheTransform (const GT_TransformHandle &ph)
 
bool getCachedTransform (GT_TransformHandle &ph) const
 
void cacheVisibility (bool visible)
 
bool getCachedVisibility (bool &visible) const
 
GT_TransformHandle applyPrimTransform (const GT_TransformHandle &th) const
 
GT_TransformHandle getLocalTransform () const
 
int64 alembicVersion () const
 
void setAlembicVersion (int64 v)
 
virtual bool updateGeoPrim (const GU_ConstDetailHandle &dtl, const GT_RefineParms &refine)
 update any cached data for geometry and its attributes More...
 
virtual const
GT_AttributeListHandle
getDetailAttributes () const
 
- Public Member Functions inherited from GT_GEOPrimPacked
 GT_GEOPrimPacked (const GU_ConstDetailHandle &prim_gdh, const GU_PrimPacked *prim, bool transformed=true)
 
 GT_GEOPrimPacked (const GT_GEOPrimPacked &src)
 
virtual ~GT_GEOPrimPacked ()
 
void geometryAndTransform (const GT_RefineParms *parms, GT_PrimitiveHandle &result, GT_TransformHandle &xform) const
 
virtual GT_AttributeListHandle getInstanceAttributes () const
 
GT_TransformHandle getFullTransform () const
 
const GU_PrimPackedgetPrim () const
 Accessor to the primitive. More...
 
const GU_PackedImplgetImplementation () const
 Accessor to the packed implementation. More...
 
virtual GU_ConstDetailHandle getPackedDetail () const
 
virtual void enlargeBounds (UT_BoundingBox boxes[], int nseg) const
 
virtual void enlargeRenderBounds (UT_BoundingBox boxes[], int nseg) const
 
virtual void getVelocityRange (UT_Vector3 &vmin, UT_Vector3 &vmax, const char *attribute_name) const
 
virtual int getMotionSegments () const
 
virtual int64 getMemoryUsage () const
 
virtual bool save (UT_JSONWriter &w) const
 
virtual const
GT_ViewportRefineOptions
viewportRefineOptions () const
 
virtual const
GT_AttributeListHandle
getPointAttributes () const
 
bool transformed () const
 
void setTransformed (bool f)
 
virtual void setViewportLOD (GEO_ViewportLOD, int)
 
virtual GEO_ViewportLOD getViewportLOD (int) const
 
- Public Member Functions inherited from GT_Primitive
 GT_Primitive ()
 
 GT_Primitive (const GT_Primitive &src)
 
virtual ~GT_Primitive ()
 
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 char *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 char *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
 
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 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
getVertexAttributes () const
 
virtual const
GT_AttributeListHandle
getUniformAttributes () const
 
const GT_AttributeListHandlegetAttributeList (GT_Owner owner) const
 
virtual const GT_DataArrayHandlegetVertexList () const
 
virtual GT_DataArrayHandle createPointNormals (int segment=0, const char *P="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...
 

Additional Inherited Members

- Static Public Member Functions inherited from GT_GEOPrimPacked
static bool useViewportLOD (const GT_RefineParms *parms)
 
- 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_GEOPrimPacked
virtual bool copyPackedAttributesToGeometry () const
 
GT_PrimitiveHandle buildUntransformedFragment (const GU_ConstDetailHandle &fragment_gdh, const GA_Range &range) const
 
void createPointPrimIDs ()
 
void appendAttribute (const char *name, const GT_DataArrayHandle &attrib)
 
virtual GT_PrimitiveHandle doHarden () const
 Hardening a packed primitive will extract the full geometry. More...
 
void setDetailPrim (const GU_ConstDetailHandle &dh, const GU_PrimPacked *prim)
 
- 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

Single Alembic shape (non-instanced)

Definition at line 175 of file GABC_PackedGT.h.

Constructor & Destructor Documentation

GABC_PackedAlembic::GABC_PackedAlembic ( const GU_ConstDetailHandle prim_gdh,
const GU_PrimPacked prim,
const GT_DataArrayHandle vp_mat,
const GT_DataArrayHandle vp_remap 
)
GABC_PackedAlembic::GABC_PackedAlembic ( const GABC_PackedAlembic src)
virtual GABC_PackedAlembic::~GABC_PackedAlembic ( )
virtual

Member Function Documentation

int64 GABC_PackedAlembic::alembicVersion ( ) const
inline

Definition at line 234 of file GABC_PackedGT.h.

GEO_AnimationType GABC_PackedAlembic::animationType ( ) const
inline

Definition at line 217 of file GABC_PackedGT.h.

GT_TransformHandle GABC_PackedAlembic::applyPrimTransform ( const GT_TransformHandle th) const
void GABC_PackedAlembic::cacheTransform ( const GT_TransformHandle ph)
void GABC_PackedAlembic::cacheVisibility ( bool  visible)
virtual bool GABC_PackedAlembic::canInstance ( ) const
inlinevirtual

Test whether instancing of the underlying geometry can be done Returns false by default. If you return true, you must implement

Reimplemented from GT_GEOPrimPacked.

Definition at line 201 of file GABC_PackedGT.h.

virtual const char* GABC_PackedAlembic::className ( ) const
inlinevirtual

GT_Primitive interface

Reimplemented from GT_GEOPrimPacked.

Definition at line 190 of file GABC_PackedGT.h.

virtual GT_PrimitiveHandle GABC_PackedAlembic::doSoftCopy ( ) const
inlinevirtual

GT_Primitive interface

Reimplemented from GT_GEOPrimPacked.

Definition at line 191 of file GABC_PackedGT.h.

GT_TransformHandle GABC_PackedAlembic::fullCachedTransform ( )
virtual GT_PrimitiveHandle GABC_PackedAlembic::getBoxGeometry ( const GT_RefineParms parms) const
virtual

Sub-classes may want to override these methods which currently just call the bounding box method and create transformed geometry based on the bounds. The box & centroid should be untransformed.

Reimplemented from GT_GEOPrimPacked.

bool GABC_PackedAlembic::getCachedGeometry ( GT_PrimitiveHandle ph) const
bool GABC_PackedAlembic::getCachedTransform ( GT_TransformHandle ph) const
bool GABC_PackedAlembic::getCachedVisibility ( bool &  visible) const
virtual GT_PrimitiveHandle GABC_PackedAlembic::getCentroidGeometry ( const GT_RefineParms parms) const
virtual

Sub-classes may want to override these methods which currently just call the bounding box method and create transformed geometry based on the bounds. The box & centroid should be untransformed.

Reimplemented from GT_GEOPrimPacked.

virtual const GT_AttributeListHandle& GABC_PackedAlembic::getDetailAttributes ( ) const
inlinevirtual

Virtual methods to access the attribute data for primitives Some primitives may not implement these methods, in which case, the returned value will be an empty list.

Reimplemented from GT_Primitive.

Definition at line 240 of file GABC_PackedGT.h.

virtual GT_PrimitiveHandle GABC_PackedAlembic::getFullGeometry ( const GT_RefineParms parms,
bool &  requires_transform 
) const
virtual

Sub-classes may want to override these methods which currently just call getPackedDetail() and unpack() to access the geometry. These methods should return the "untransformed" primitives.

Warning
It is important to ensure that the primitive attributes refer to the GU_PrimPacked primitive, vertex, point. For example, in GT_GEODetailList, you'd want to set the primitive id otherwise you'll get crashes in the viewport as it tries to dereference the points/vertices in the base detail (not the packed detail).

If requires_transform is false if the point cloud is in the primitive's transformed space (the same as unpacking). If it's true the packed transform will be applied to the resulting primitive (without modifying the returned geometry). require_transform will be true by default, so it doesn't have to be written in most cases.

Reimplemented from GT_GEOPrimPacked.

virtual GT_PrimitiveHandle GABC_PackedAlembic::getInstanceGeometry ( const GT_RefineParms parms,
bool  ignore_visibility = false 
) const
virtual

Return the geometry the geometry for instancing. This may be different than getFullGeometry() in that

  • The geometry should not be transformed
  • The packed primitive attributes should not be included in the geometry This allows multiple instances to share the geometry unmodified The default method returns a NULL ptr.

Reimplemented from GT_GEOPrimPacked.

virtual bool GABC_PackedAlembic::getInstanceKey ( UT_Options options) const
virtual

If "instancing" is supported by the packed primitive, this method should return true. The options that define the packed primitive should be stored in the UT_Options. Primitives which have matching UT_Options can be considered to be shared.

Reimplemented from GT_GEOPrimPacked.

virtual GT_TransformHandle GABC_PackedAlembic::getInstanceTransform ( ) const
virtual

Return the transform handle for this particular instance. This method should return the transform required to transform the instance geometry to the space of this instance. The default method returns an identity transform.

Reimplemented from GT_GEOPrimPacked.

GT_TransformHandle GABC_PackedAlembic::getLocalTransform ( ) const
virtual GT_PrimitiveHandle GABC_PackedAlembic::getPointCloud ( const GT_RefineParms parms,
bool &  requires_transform 
) const
virtual

Sub-classes may want to override these methods which currently just call getPackedDetail() and unpack() to access the geometry. These methods should return the "untransformed" primitives.

Warning
It is important to ensure that the primitive attributes refer to the GU_PrimPacked primitive, vertex, point. For example, in GT_GEODetailList, you'd want to set the primitive id otherwise you'll get crashes in the viewport as it tries to dereference the points/vertices in the base detail (not the packed detail).

If requires_transform is false if the point cloud is in the primitive's transformed space (the same as unpacking). If it's true the packed transform will be applied to the resulting primitive (without modifying the returned geometry). require_transform will be true by default, so it doesn't have to be written in most cases.

Reimplemented from GT_GEOPrimPacked.

virtual int GABC_PackedAlembic::getPrimitiveType ( ) const
inlinevirtual

GT_Primitive interface

Reimplemented from GT_GEOPrimPacked.

Definition at line 188 of file GABC_PackedGT.h.

virtual bool GABC_PackedAlembic::getUniqueID ( int64 id) const
inlinevirtual

Return a unique primitive ID and true, if an ID can be generated (false otherwise).

Reimplemented from GT_Primitive.

Definition at line 212 of file GABC_PackedGT.h.

void GABC_PackedAlembic::initVisAnim ( )
bool GABC_PackedAlembic::isVisible ( )
virtual bool GABC_PackedAlembic::refine ( GT_Refine refiner,
const GT_RefineParms parms = NULL 
) const
virtual

The default refine method will process primitives, providing a bounding box, point cloud, etc. based on the viewport LOD stored on the primitive.

Reimplemented from GT_GEOPrimPacked.

void GABC_PackedAlembic::setAlembicVersion ( int64  v)
inline

Definition at line 235 of file GABC_PackedGT.h.

void GABC_PackedAlembic::setAnimationType ( GEO_AnimationType  t)
inline

Definition at line 215 of file GABC_PackedGT.h.

void GABC_PackedAlembic::setVisibilityAnimated ( bool  anim)
inline

Definition at line 219 of file GABC_PackedGT.h.

virtual bool GABC_PackedAlembic::updateGeoPrim ( const GU_ConstDetailHandle dtl,
const GT_RefineParms parms 
)
virtual

update any cached data for geometry and its attributes

Reimplemented from GT_Primitive.

bool GABC_PackedAlembic::visibilityAnimated ( ) const
inline

Definition at line 221 of file GABC_PackedGT.h.


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