GA_Detail Class Reference

Container class for all geometry. More...

#include <GA_Detail.h>

Inheritance diagram for GA_Detail:

GD_Detail GEO_Detail GEO_Profiles GU_Detail GOP_Guide

List of all members.

Classes

class  GlobalCompactor
 Compactor class to perform batch deletion of all elements. More...
class  IOStatus
class  PointCompactor
class  PrimitiveCompactor
class  VertexCompactor

Public Types

enum  GA_DestroyPointMode { GA_LEAVE_PRIMITIVES, GA_DESTROY_DEGENERATE, GA_DESTROY_DEGENERATE_INCOMPATIBLE }
typedef GA_Primitive GB_MACRO_PRIM_TYPE

Public Member Functions

 GA_Detail (GA_PrimitiveFactory &factory, GA_Storage Pstorage=GA_STORE_REAL32, int Ptuplesize=4, bool full_topology=true)
virtual ~GA_Detail ()
 Destructor.
int getUniqueId () const
void clear ()
GA_AttributegetP ()
 Convenience method to access the P attribute.
const GA_AttributegetP () const
UT_Vector2 getPos2 (GA_Offset ptoff) const
SYS_FORCE_INLINE UT_Vector3 getPos3 (GA_Offset ptoff) const
UT_Vector4 getPos4 (GA_Offset ptoff) const
template<typename T >
bool getPos3AsArray (const GA_Range &ptrange, UT_ValArray< UT_Vector3T< T > > &positions) const
template<typename T >
bool setPos3FromArray (const GA_Range &ptrange, const UT_ValArray< UT_Vector3T< T > > &positions)
void setPos2 (GA_Offset ptoff, const UT_Vector2 &P)
 Set P from a UT_Vector2.
SYS_FORCE_INLINE void setPos3 (GA_Offset ptoff, const UT_Vector3 &P)
 Set P from a UT_Vector3.
SYS_FORCE_INLINE void setPos3 (GA_Offset ptoff, fpreal x, fpreal y, fpreal z)
 Set P given the x, y, z components.
void setPos4 (GA_Offset ptoff, const UT_Vector4 &P)
 Set P from a UT_Vector4.
void setPos4 (GA_Offset ptoff, fpreal x, fpreal y, fpreal z, fpreal w)
 Set P given the x, y, z, w components.
fpreal getPw (GA_Offset ptoff) const
 Get the homogeneous coordinate for a point.
void setPw (GA_Offset ptoff, fpreal w)
 Set the homogeneous coordinate for a point.
void translatePoint (GA_Offset ptoff, const UT_Vector3 &delta)
const GA_GBElement * getGBPoint (GA_Offset ptoff) const
 Get a backward compatible point object.
GA_GBElement * getGBPoint (GA_Offset ptoff)
GA_GBElementPage * getGBPage (GA_Offset ptoff)
bool hasGBPoint () const
virtual GA_GBElementPage * allocGBPointPage (const GA_IndexMap &index_map, GA_Size base) const
GA_Offset appendPoint ()
 Append a new point, returning its new data offset.
GA_Size getNumPoints () const
 Return the number of points.
GA_Size getNumPointOffsets () const
GA_Offset pointOffset (GA_Index index) const
 Given a point's index (in append order), return its data offset.
GA_Index pointIndex (GA_Offset offset) const
 Given a point's data offset, return its index.
GA_Index reorderPoint (GA_Offset ptoff, GA_Index new_order)
GA_PrimitiveappendPrimitive (const GA_PrimitiveTypeId &type, GA_Offset offset=GA_INVALID_OFFSET)
 Append a primitive by GA_PrimitiveTypeId.
GA_PrimitiveappendPrimitive (const char *type, GA_Offset offset=GA_INVALID_OFFSET)
 Append a primitive by type name string.
GA_Size getNumPrimitives () const
 Return the number of primitives.
GA_Size getNumPrimitiveOffsets () const
GA_Offset primitiveOffset (GA_Index index) const
 Given a primitive's index (in append order), return its data offset.
GA_Index primitiveIndex (GA_Offset offset) const
 Given a primitive's data offset, return its index.
GA_Index reorderPrimitive (GA_Offset offset, GA_Index new_order)
bool swapPrimitiveOrder (GA_Offset offset1, GA_Offset offset2)
 Swap the order of the two specified primitive data offsets.
GA_Offset appendVertex ()
 Append a vertex (for the entire detail).
GA_Size getNumVertices () const
 Return the number verticies in the entire detail.
GA_Size getNumVertexOffsets () const
GA_Offset vertexOffset (GA_Index index) const
 Given a vertex's index (in append order), return its data offset.
GA_Index vertexIndex (GA_Offset offset) const
 Given a vertex's data offset, return its index.
GA_Offset vertexPoint (GA_Offset vertex) const
 Given a vertex, return the point it references.
GA_Offset vertexPrimitive (GA_Offset vertex) const
GA_Offset pointVertex (GA_Offset point) const
GA_Offset vertexToNextVertex (GA_Offset vtx) const
GA_Offset vertexToPrevVertex (GA_Offset vtx) const
GA_Offset getVertexReferencingPoint (GA_Offset ptoff, GA_Offset primoff=GA_INVALID_OFFSET) const
GA_Size getVerticesReferencingPoint (GA_OffsetArray &vertices, GA_Offset point_offset) const
 Given a point offset, return a list of all vertices which reference it.
GA_Size getPrimitivesReferencingPoint (GA_OffsetArray &primitives, GA_Offset point_offset) const
 Given a point offset, return a list of all primitives which reference it.
bool destroyPointOffset (GA_Offset ptoff, GA_DestroyPointMode mode=GA_LEAVE_PRIMITIVES)
 Destroy the given point. Requires full topology.
bool destroyPointIndex (GA_Index index, GA_DestroyPointMode mode=GA_LEAVE_PRIMITIVES)
bool destroyVertexOffset (GA_Offset offset)
 Destroy the given vertex.
virtual bool destroyPrimitiveOffset (GA_Offset offset, bool and_points=false)
bool destroyPrimitiveIndex (GA_Index index, bool and_points=false)
bool destroyPrimitive (GA_Primitive &prim, bool and_points=false)
virtual GA_Size destroyPrimitiveOffsets (const GA_Range &it, bool and_points=false)
GA_Size destroyPrimitives (const GA_Range &it, bool and_points=false)
GA_Size destroyDegeneratePrimitives (const GA_Range &it, bool and_points=false)
GA_Size destroyDegeneratePrimitives (const GA_PrimitiveGroup *prims=0, bool and_points=false)
GA_Size destroyUnusedPoints (const GA_PointGroup *ptgrp=0)
 Destroy unused points. If ptgrp is given, then only within the group.
GA_Size destroyUnusedPoints (const GA_Range &point_range)
 Destroy unused points in given point range.
GA_Size destroyPointOffsets (const GA_Range &range, GA_DestroyPointMode mode=GA_LEAVE_PRIMITIVES)
GA_Size destroyPoints (const GA_Range &range, GA_DestroyPointMode mode=GA_LEAVE_PRIMITIVES)
GA_Size destroyVertexOffsets (const GA_Range &range)
GA_Size destroyVertices (const GA_Range &range)
bool isPointUsed (GA_Offset point) const
const GA_IndexMapgetIndexMap (GA_AttributeOwner owner) const
GA_IndexMapgetIndexMap (GA_AttributeOwner owner)
const GA_IndexMapgetPointMap () const
const GA_IndexMapgetVertexMap () const
const GA_IndexMapgetPrimitiveMap () const
const GA_IndexMapgetGlobalMap () const
const GA_PrimitiveListgetPrimitiveList () const
GA_PrimitiveListgetPrimitiveList ()
GA_AttributeSetgetAttributes ()
const GA_AttributeSetgetAttributes () const
GA_TopologygetTopology ()
const GA_TopologygetTopology () const
bool checkValidTopology () const
void createTopologyAttributes ()
void clearTopologyAttributes ()
GA_AttributeOwner getAttributeOwner (const GA_AttributeDict &dict) const
 Get access to the attributes for one element type.
const GA_AttributeDictgetAttributeDict (GA_AttributeOwner owner) const
bool defragment (GA_AttributeOwner owner, const UT_Options *options=NULL)
 Defragment index maps.
bool defragment (const UT_Options *options=NULL)
 Defragment everything.
void sortVertexMapByPrimitiveUse ()
bool destroyAttribute (GA_AttributeOwner owner, GA_AttributeScope scope, const char *name)
bool destroyAttribute (GA_AttributeOwner owner, const char *name)
bool renameAttribute (GA_AttributeOwner owner, GA_AttributeScope scope, const char *fromName, const char *toName)
GA_RWAttributeRef createTupleAttribute (GA_AttributeOwner owner, GA_AttributeScope scope, const char *name, GA_Storage storage, int tuple_size, const GA_Defaults &defaults, const UT_Options *create_args, const UT_Options *attribute_options)
GA_RWAttributeRef createTupleAttribute (GA_AttributeOwner owner, const char *name, GA_Storage storage, int tuple_size, const GA_Defaults &defaults, const UT_Options *create_args, const UT_Options *attribute_options)
GA_RWAttributeRef createStringAttribute (GA_AttributeOwner owner, GA_AttributeScope scope, const char *name, const UT_Options *create_args=NULL, const UT_Options *attribute_options=NULL)
GA_RWAttributeRef createStringAttribute (GA_AttributeOwner owner, const char *name, const UT_Options *create_args=NULL, const UT_Options *attribute_options=NULL)
GA_ROAttributeRef findAttribute (GA_AttributeScope scope, const char *name, const GA_AttributeOwner search_order[], int search_size) const
GA_ROAttributeRef findAttribute (const char *name, const GA_AttributeOwner search_order[], int search_size) const
GA_ROAttributeRef findAttribute (GA_AttributeOwner owner, GA_AttributeScope scope, const char *name) const
GA_ROAttributeRef findAttribute (GA_AttributeOwner owner, const char *name) const
GA_ROAttributeRef findPointAttribute (GA_AttributeScope s, const char *name) const
GA_ROAttributeRef findPointAttribute (const char *name) const
GA_ROAttributeRef findVertexAttribute (GA_AttributeScope s, const char *name) const
GA_ROAttributeRef findVertexAttribute (const char *name) const
GA_ROAttributeRef findPrimitiveAttribute (GA_AttributeScope s, const char *name) const
GA_ROAttributeRef findPrimitiveAttribute (const char *name) const
GA_ROAttributeRef findGlobalAttribute (GA_AttributeScope s, const char *name) const
GA_ROAttributeRef findGlobalAttribute (const char *name) const
GA_RWAttributeRef findAttribute (GA_AttributeScope scope, const char *name, const GA_AttributeOwner search_order[], int search_size)
GA_RWAttributeRef findAttribute (const char *name, const GA_AttributeOwner search_order[], int search_size)
GA_RWAttributeRef findAttribute (GA_AttributeOwner owner, GA_AttributeScope scope, const char *name)
GA_RWAttributeRef findAttribute (GA_AttributeOwner owner, const char *name)
GA_RWAttributeRef findPointAttribute (GA_AttributeScope s, const char *name)
GA_RWAttributeRef findPointAttribute (const char *name)
GA_RWAttributeRef findVertexAttribute (GA_AttributeScope s, const char *name)
GA_RWAttributeRef findVertexAttribute (const char *name)
GA_RWAttributeRef findPrimitiveAttribute (GA_AttributeScope s, const char *name)
GA_RWAttributeRef findPrimitiveAttribute (const char *name)
GA_RWAttributeRef findGlobalAttribute (GA_AttributeScope s, const char *name)
GA_RWAttributeRef findGlobalAttribute (const char *name)
GA_ElementGroupcreateElementGroup (GA_AttributeOwner owner, const char *name, bool ordered=false)
GA_ElementGroupcreateInternalElementGroup (GA_AttributeOwner owner, bool ordered=false)
GA_ElementGroupfindElementGroup (GA_AttributeOwner owner, const char *name) const
template<GA_AttributeOwner OWNER>
GA_ElementGroupTableT< OWNER >
::GROUP_TYPE * 
createElementGroup (const char *name, bool ordered=false)
template<GA_AttributeOwner OWNER>
GA_ElementGroupTableT< OWNER >
::GROUP_TYPE * 
createInternalElementGroup (bool ordered=false)
template<GA_AttributeOwner OWNER>
GA_ElementGroupTableT< OWNER >
::GROUP_TYPE * 
findElementGroup (const char *name)
template<GA_AttributeOwner OWNER>
const GA_ElementGroupTableT
< OWNER >::GROUP_TYPE * 
findElementGroup (const char *name) const
void getElementGroupList (GA_AttributeOwner owner, UT_PtrArray< const GA_ElementGroup * > &list) const
void getElementGroupList (GA_AttributeOwner owner, UT_PtrArray< GA_ElementGroup * > &list)
bool destroyElementGroup (GA_AttributeOwner owner, const char *name)
bool destroyElementGroup (GA_ElementGroup *group)
bool destroyGroup (GA_Group *group)
const GA_PointGroupfindPointGroup (const char *name) const
const GA_VertexGroupfindVertexGroup (const char *name) const
const GA_PrimitiveGroupfindPrimitiveGroup (const char *name) const
GA_PointGroupfindPointGroup (const char *name)
GA_VertexGroupfindVertexGroup (const char *name)
GA_PrimitiveGroupfindPrimitiveGroup (const char *name)
GA_EdgeGroupcreateEdgeGroup (const char *name)
GA_EdgeGroupcreateInternalEdgeGroup ()
const GA_EdgeGroupfindEdgeGroup (const char *name) const
GA_EdgeGroupfindEdgeGroup (const char *name)
void getEdgeGroupList (UT_PtrArray< const GA_EdgeGroup * > &list) const
void getEdgeGroupList (UT_PtrArray< GA_EdgeGroup * > &list)
bool destroyEdgeGroup (const char *name)
GA_Size destroyEmptyGroups (GA_AttributeOwner owner)
GA_Size destroyAllEmptyGroups ()
const GA_IntrinsicManagergetIntrinsicManager () const
GA_Range getPointRange (const GA_PointGroup *group=0) const
 Get a range of all points in the detail.
GA_Range getPrimitiveRange (const GA_PrimitiveGroup *group=0) const
 Get a range of all primitives in the detail.
GA_Range getPointRangeSlice (GA_Index begin_ptnum, GA_Index end_ptnum=GA_INVALID_INDEX) const
 Get ordered point range from base_ptnum to end_ptnum, or the end.
GA_Range getPrimitiveRangeSlice (GA_Index begin_prim, GA_Index end_prim=GA_INVALID_INDEX) const
 Get ordered primitive range from base_prim to end_prim, or the end.
GA_Range getVertexRange (const GA_VertexGroup *group=0) const
 Get a range of all vertices in the detail.
GA_Range getGlobalRange () const
 Get a range representing the global (detail) data.
virtual int64 getMemoryUsage () const
 Compute memory usage.
bool enlargeBoundingBox (UT_BoundingRect &box, const GA_Range &range) const
bool enlargeBoundingBox (UT_BoundingRect &box, const GA_Range &range, const GA_ROAttributeRef &P) const
bool enlargeBoundingBox (UT_BoundingBox &box, const GA_Range &range) const
bool enlargeBoundingBox (UT_BoundingBox &box, const GA_Range &range, const GA_ROAttributeRef &P) const
void computeQuickBounds (UT_BoundingBox &box) const
void computeQuickBounds (UT_BoundingBox &box, GA_Size counts[], GA_Size count_buf_size) const
virtual GA_DetailcloneEmptyDetail (bool clone_attributes) const =0
void baseMerge (const GA_Detail &src)
 Merge the source detail into this detail (using default options).
void baseMerge (const GA_Detail &src, GA_MergeOptions &options)
 Merge the source detail into this detail with options.
void mergeGlobalAttributes (const GA_Detail &src)
 Merge global attributes (using default options).
void mergeGlobalAttributes (const GA_Detail &src, GA_MergeOptions &options)
 Merge source global attributes using options.
void cloneMissingAttributes (const GA_Detail &src, GA_AttributeOwner owner, const GA_AttributeFilter &filter)
bool registerIO (GA_IO *io) const
 Register an IO file format.
const GA_IO * findIO (const char *name=NULL) const
void getIONames (UT_StringArray &names) const
IOStatus save (const char *filename, const UT_Options *options, UT_StringArray *errors=0) const
IOStatus save (ostream &os, bool binary, const UT_Options *options, UT_StringArray *errors=0) const
IOStatus save (UT_JSONWriter &w, const UT_Options *opts=0) const
IOStatus load (const char *filename, const UT_Options *opts=0, UT_StringArray *errors=0)
IOStatus load (UT_IStream &is, const UT_Options *opts=0, UT_StringArray *errors=0)
 Load a geometry file given a UT_IStream.
IOStatus load (UT_JSONParser &p, const UT_Options *opts=0, UT_StringArray *errors=0)
IOStatus statFile (const char *filename, GA_Stat &stat, uint level=0xffff, const UT_Options *opts=NULL) const
bool stat (GA_Stat &stat, uint level=0xffff) const
void statAttributes (GA_Stat &stat, uint level=0xffff) const
 Fill out only the attribute information on the stat.
void statGroups (GA_Stat &stat, uint level=0xffff) const
 Fill out only the group information on the stat.
virtual void statVolumes (GA_Stat &stat, uint level=0xffff) const
 Fill out only the volume information.
const GA_ElementGroupTablegetElementGroupTable (GA_AttributeOwner owner) const
GA_ElementGroupTablegetElementGroupTable (GA_AttributeOwner owner)
const GA_PrimitiveFactorygetPrimitiveFactory () const
void refreshCachedHandles ()
void constructTailInitializers (GA_AttributeOwner owner, GA_Offset start, GA_Size size=1)
GA_RWAttributeRef createAttribute (GA_AttributeOwner owner, GA_AttributeScope scope, const char *name, const UT_Options *create_args, const UT_Options *attribute_options, const char *style)
GA_RWAttributeRef createAttribute (GA_AttributeOwner owner, const char *name, const UT_Options *create_args, const UT_Options *attribute_options, const char *style)
template<typename T >
bool getPointAttributeAsArray (const GA_Attribute *atr, const GA_Range &ptrange, UT_ValArray< T > &result) const
 Get/set all the point attribute data from/to a contiguous array.
template<typename T >
bool setPointAttributeFromArray (GA_Attribute *atr, const GA_Range &ptrange, const UT_ValArray< T > &src)
GA_LocalIntrinsic findIntrinsic (const char *nm) const
GA_LocalIntrinsic findIntrinsic (GA_GlobalIntrinsic h) const
GA_GlobalIntrinsic findGlobalIntrinsic (GA_LocalIntrinsic h) const
const char * getIntrinsicName (GA_LocalIntrinsic h) const
int getIntrinsicTupleSize (GA_LocalIntrinsic h) const
GA_StorageClass getIntrinsicStorage (GA_LocalIntrinsic h) const
bool getIntrinsicReadOnly (GA_LocalIntrinsic h) const
const UT_OptionsgetIntrinsicOptions (GA_LocalIntrinsic h) const
int getIntrinsic (GA_LocalIntrinsic h, UT_String &val) const
int getIntrinsic (GA_LocalIntrinsic h, UT_StringArray &val) const
int getIntrinsic (GA_LocalIntrinsic h, int64 *v, GA_Size size) const
int getIntrinsic (GA_LocalIntrinsic h, fpreal *v, GA_Size sz) const
int setIntrinsic (GA_LocalIntrinsic h, const char *value)
int setIntrinsic (GA_LocalIntrinsic h, const UT_StringArray &value)
int setIntrinsic (GA_LocalIntrinsic h, const char **val, GA_Size s)
int setIntrinsic (GA_LocalIntrinsic h, const int64 val)
int setIntrinsic (GA_LocalIntrinsic h, const fpreal val)
int setIntrinsic (GA_LocalIntrinsic h, const int64 *val, GA_Size sz)
int setIntrinsic (GA_LocalIntrinsic h, const fpreal *v, GA_Size sz)
IOStatus saveClassic (const char *, const UT_Options *) const
IOStatus saveClassic (ostream &os, bool, const UT_Options *) const
void addTailInitializer (GA_Attribute *attrib)
bool removeTailInitializer (GA_Attribute *attrib)

Static Public Member Functions

static
GA_IntrinsicManager::Registrar 
registerIntrinsics (GA_PrimitiveFactory &factory)
static int64 printMemory (UT_WorkBuffer &buffer, bool include_total=true, int indent=3, const char *title="Geometry Memory Tracking")
 Debugging output of detail.
template<typename T >
static const
T::GB_MACRO_PRIM_TYPE * 
GB_MACRO_CAST (const T *, const GA_Primitive *prim)
template<typename T >
static T::GB_MACRO_PRIM_TYPE * GB_MACRO_CAST (const T *, GA_Primitive *prim)
template<typename T >
static const
T::GB_MACRO_POINT_TYPE * 
GB_MACRO_CAST (const T *, const GA_GBElement *pt)
template<typename T >
static T::GB_MACRO_POINT_TYPE * GB_MACRO_CAST (const T *, GA_GBElement *pt)

Protected Member Functions

void doConstructTailInitializers (GA_AttributeOwner owner, GA_Offset start, GA_Size size)
bool loadPrimitivesH9 (UT_IStream &is, int count, const GA_FileFormatH9::PrimTypeXlate &type_map, const UT_RefArray< GA_AttribLoadDataH9 > &prim_attribs, const UT_RefArray< GA_AttribLoadDataH9 > &vtx_attribs)
bool savePrimitivesH9 (ostream &os, int binary, const UT_PtrArray< const GA_Primitive * > &list, const GA_FileFormatH9::PrimTypeXlate &type_map, const UT_RefArray< GA_AttribSaveDataH9 > &prim_attribs, const UT_RefArray< GA_AttribSaveDataH9 > &vx_attribs) const
void cloneCopyGroupsAndAttributes (const GA_Detail &src)
GA_PrimitiveunstashPrimitive (const GA_PrimitiveDefinition *type, GA_Offset offset)
virtual GA_PrimitiveunstashPrimitiveImpl (const GA_PrimitiveDefinition *type, GA_Offset offset)
void setStashFlag (bool val)
GA_PointGroupTablegetPointGroupTable ()
const GA_PointGroupTablegetPointGroupTable () const
GA_PrimitiveGroupTablegetPrimitiveGroupTable ()
const GA_PrimitiveGroupTablegetPrimitiveGroupTable () const
GA_VertexGroupTablegetVertexGroupTable ()
const GA_VertexGroupTablegetVertexGroupTable () const
GA_EdgeGroupTablegetEdgeGroupTable ()
const GA_EdgeGroupTablegetEdgeGroupTable () const
virtual int localIntrinsicTupleSize (GA_IntrinsicEval &eval) const
virtual int localGetIntrinsicS (GA_IntrinsicEval &eval, UT_String &value) const
virtual int localGetIntrinsicSA (GA_IntrinsicEval &eval, UT_StringArray &value) const
virtual int localGetIntrinsicI (GA_IntrinsicEval &eval, int64 *value, GA_Size size) const
virtual int localGetIntrinsicF (GA_IntrinsicEval &eval, fpreal *value, GA_Size size) const
virtual int localSetIntrinsicS (GA_IntrinsicEval &eval, const char *value)
virtual int localSetIntrinsicSA (GA_IntrinsicEval &eval, const UT_StringArray &value)
virtual int localSetIntrinsicSS (GA_IntrinsicEval &eval, const char **value, GA_Size size)
virtual int localSetIntrinsicI (GA_IntrinsicEval &eval, const int64 *value, GA_Size size)
virtual int localSetIntrinsicF (GA_IntrinsicEval &eval, const fpreal *value, GA_Size size)

Static Protected Member Functions

static void finishLoadH9 (const UT_RefArray< GA_AttribLoadDataH9 > &attribs)

Friends

class GA_IO
class GA_Primitive
GA_PrimitiveGA_PrimitiveDefinition::getStashedPrimitive (GA_Detail &, GA_Offset) const
bool saveVertexPointReferenceH9 (ostream &os, int binary, GA_Offset vertex_offset) const
bool loadVertexH9 (UT_IStream &is, GA_Offset vertex_offset, const UT_RefArray< GA_AttribLoadDataH9 > &vtx_l)
bool saveVertexH9 (ostream &os, int binary, GA_Offset vertex_offset, const UT_RefArray< GA_AttribSaveDataH9 > &vtx_l) const
static bool loadAttribDataH9 (UT_IStream &is, GA_Offset offset, const UT_RefArray< GA_AttribLoadDataH9 > &l)
static bool saveAttribDataH9 (ostream &os, int binary, GA_Offset offset, const UT_RefArray< GA_AttribSaveDataH9 > &l, char delim_ch= '(')


Detailed Description

Container class for all geometry.

All Houdini geometry is stored in a GA_Detail class. The detail stores lists of attributes (GA_Attribute) which are maintained in GA_AttributeSet collections. The attribute set contains 4 separate classes of attribute based on the GA_AttributeOwner enum.

Examples:

tetprim/GU_PrimTetra.C.

Definition at line 77 of file GA_Detail.h.


Member Typedef Documentation

Reimplemented in GD_Detail, and GEO_Detail.

Definition at line 1281 of file GA_Detail.h.


Member Enumeration Documentation

When destroying points, there are three different modes when dealing with primitives that reference the points. These modes cause different behaviours when notifying primitives about point deletion. The behaviour is determined by the result of primitive->dereferencePoint() or primitive->dereferencePoints().

  • GA_LEAVE_PRIMITIVES
    Primitive is destroyed if it returns GA_DEREFERENCE_DESTROY. Point will not be destroyed if prim returns GA_DEREFERENCE_FAIL.
  • GA_DESTROY_DEGENERATE
    Primitive is destroyed if it returns GA_DEREFERENCE_DEGENERATE or GA_DEREFERENCE_DESTROY. Point is not destroyed if prim returns GA_DEREFERENCE_FAIL.
  • GA_DESTROY_DEGENERATE_INCOMPATIBLE
    Primitive is destroyed if it returns GA_DEREFERENCE_DEGENERATE, GA_DEREFERENCE_DESTROY, or GA_DEREFERENCE_FAIL. The point will always be destroyed.
Enumerator:
GA_LEAVE_PRIMITIVES 
GA_DESTROY_DEGENERATE 
GA_DESTROY_DEGENERATE_INCOMPATIBLE 

Definition at line 425 of file GA_Detail.h.


Constructor & Destructor Documentation

GA_Detail::GA_Detail ( GA_PrimitiveFactory factory,
GA_Storage  Pstorage = GA_STORE_REAL32,
int  Ptuplesize = 4,
bool  full_topology = true 
)

Parameters:
Pstorage determines the precision of the P attribute.
Ptuplesize determines the tuple size of the P attribute. This should either be 3 or 4 depending on the dimension of the geometry The P attribute stores homogeneous coordinates
full_topology indicates whether the detail should maintain additional attributes which make it easy to lookup
  • Primitives using a shared point
  • The primitive containing a unique point (vertex)
  • The list of vertices referencing a shared point
See also:
typedef::GA_Storage.

virtual GA_Detail::~GA_Detail (  )  [virtual]

Destructor.


Member Function Documentation

void GA_Detail::addTailInitializer ( GA_Attribute attrib  ) 

Add/Remove an attribute to the tail-initialization list.

When attributes grow in size, they usually initialize their values to the default value. However, some attributes may not adhere to this rule, or due to space optimizations, may have the values set to non-default values. In this case, they should be added to the tail-initialization list. When new elements are appended to the detail, they will be told to re-initialize the new element. Otherwise, the detail will assume that the element values are at their default value.

When removing, the method will return true if the attribute was a tail initializer.

Note:
These methods are thread-safe

DO NOT CALL THESE: Use the GA_Attribute::setTailInitialization instead.

virtual GA_GBElementPage* GA_Detail::allocGBPointPage ( const GA_IndexMap index_map,
GA_Size  base 
) const [virtual]

Derived classes that need to manage objects derived from GA_GBPoint need to override this method.

Reimplemented in GD_Detail, and GEO_Detail.

GA_Offset GA_Detail::appendPoint (  )  [inline]

Append a new point, returning its new data offset.

Reimplemented in GD_Detail, and GEO_Detail.

Definition at line 266 of file GA_Detail.h.

GA_Primitive* GA_Detail::appendPrimitive ( const char *  type,
GA_Offset  offset = GA_INVALID_OFFSET 
)

Append a primitive by type name string.

GA_Primitive* GA_Detail::appendPrimitive ( const GA_PrimitiveTypeId type,
GA_Offset  offset = GA_INVALID_OFFSET 
)

Append a primitive by GA_PrimitiveTypeId.

GA_Offset GA_Detail::appendVertex (  )  [inline]

Append a vertex (for the entire detail).

Definition at line 318 of file GA_Detail.h.

void GA_Detail::baseMerge ( const GA_Detail src,
GA_MergeOptions options 
)

Merge the source detail into this detail with options.

void GA_Detail::baseMerge ( const GA_Detail src  ) 

Merge the source detail into this detail (using default options).

bool GA_Detail::checkValidTopology (  )  const

void GA_Detail::clear ( void   )  [inline]

Re-initialize:

  • Clears all attributes
  • Clears all geometry elements (points, primitives, vertices, etc.)
  • Clears all groups

Definition at line 146 of file GA_Detail.h.

void GA_Detail::clearTopologyAttributes (  ) 

void GA_Detail::cloneCopyGroupsAndAttributes ( const GA_Detail src  )  [protected]

Copy groups and attribute definitions from the source detail.

The caller should ensure that all attributes are cleared before calling this method (i.e. call clear())

virtual GA_Detail* GA_Detail::cloneEmptyDetail ( bool  clone_attributes  )  const [pure virtual]

Create a new detail that has all the same attributes, groups, etc. but has no elements. Subclasses should look at: cloneCopyGroupsAndAttributes()

Implemented in GEO_Profiles, and GU_Detail.

void GA_Detail::cloneMissingAttributes ( const GA_Detail src,
GA_AttributeOwner  owner,
const GA_AttributeFilter filter 
)

Clone any missing attributes from the source detail, skipping P, any topology, and any group attributes.

void GA_Detail::computeQuickBounds ( UT_BoundingBox box,
GA_Size  counts[],
GA_Size  count_buf_size 
) const

Compute the bounding box quickly by:

  • Computing the point bounding box of "P"
  • Computing the maximum extents of all primitives
  • Count the number of each type of primitive in the detail This requires a single pass through the P attribute along with a single pass through primitives. The counts buffer will be filled with the count of each primitive type in the detail. The count_buf_size should be set to getPrimitiveFactory().getPrimTypeCount();

void GA_Detail::computeQuickBounds ( UT_BoundingBox box  )  const

Compute the bounding box quickly by:

  • Computing the point bounding box of "P"
  • Computing the maximum extents of all primitives This requires a single pass through the P attribute along with a single pass through primitives.

void GA_Detail::constructTailInitializers ( GA_AttributeOwner  owner,
GA_Offset  start,
GA_Size  size = 1 
) [inline]

Tell all tail initialization attributes to initialize the given offset

Note:
This method is not thread-safe

Definition at line 1353 of file GA_Detail.h.

GA_RWAttributeRef GA_Detail::createAttribute ( GA_AttributeOwner  owner,
const char *  name,
const UT_Options create_args,
const UT_Options attribute_options,
const char *  style 
) [inline]

createAttribute is very general purpose method, requiring some knowledge about ATIs, etc. Unless you are creating your own user-defined attributes, it would likely be better to use something at the GEO_Detail level, like addFloatTuple.

Definition at line 551 of file GA_Detail.h.

GA_RWAttributeRef GA_Detail::createAttribute ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const char *  name,
const UT_Options create_args,
const UT_Options attribute_options,
const char *  style 
) [inline]

createAttribute is very general purpose method, requiring some knowledge about ATIs, etc. Unless you are creating your own user-defined attributes, it would likely be better to use something at the GEO_Detail level, like addFloatTuple.

Definition at line 539 of file GA_Detail.h.

GA_EdgeGroup* GA_Detail::createEdgeGroup ( const char *  name  ) 

template<GA_AttributeOwner OWNER>
GA_ElementGroupTableT<OWNER>::GROUP_TYPE* GA_Detail::createElementGroup ( const char *  name,
bool  ordered = false 
) [inline]

Definition at line 774 of file GA_Detail.h.

GA_ElementGroup* GA_Detail::createElementGroup ( GA_AttributeOwner  owner,
const char *  name,
bool  ordered = false 
)

GA_EdgeGroup* GA_Detail::createInternalEdgeGroup (  ) 

template<GA_AttributeOwner OWNER>
GA_ElementGroupTableT<OWNER>::GROUP_TYPE* GA_Detail::createInternalElementGroup ( bool  ordered = false  )  [inline]

Definition at line 783 of file GA_Detail.h.

GA_ElementGroup* GA_Detail::createInternalElementGroup ( GA_AttributeOwner  owner,
bool  ordered = false 
)

GA_RWAttributeRef GA_Detail::createStringAttribute ( GA_AttributeOwner  owner,
const char *  name,
const UT_Options create_args = NULL,
const UT_Options attribute_options = NULL 
) [inline]

Definition at line 628 of file GA_Detail.h.

GA_RWAttributeRef GA_Detail::createStringAttribute ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const char *  name,
const UT_Options create_args = NULL,
const UT_Options attribute_options = NULL 
) [inline]

Definition at line 616 of file GA_Detail.h.

void GA_Detail::createTopologyAttributes (  ) 

GA_RWAttributeRef GA_Detail::createTupleAttribute ( GA_AttributeOwner  owner,
const char *  name,
GA_Storage  storage,
int  tuple_size,
const GA_Defaults defaults,
const UT_Options create_args,
const UT_Options attribute_options 
) [inline]

Definition at line 601 of file GA_Detail.h.

GA_RWAttributeRef GA_Detail::createTupleAttribute ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const char *  name,
GA_Storage  storage,
int  tuple_size,
const GA_Defaults defaults,
const UT_Options create_args,
const UT_Options attribute_options 
) [inline]

Definition at line 585 of file GA_Detail.h.

bool GA_Detail::defragment ( const UT_Options options = NULL  ) 

Defragment everything.

bool GA_Detail::defragment ( GA_AttributeOwner  owner,
const UT_Options options = NULL 
)

Defragment index maps.

GA_Size GA_Detail::destroyAllEmptyGroups (  ) 

bool GA_Detail::destroyAttribute ( GA_AttributeOwner  owner,
const char *  name 
) [inline]

Definition at line 571 of file GA_Detail.h.

bool GA_Detail::destroyAttribute ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const char *  name 
) [inline]

Definition at line 564 of file GA_Detail.h.

GA_Size GA_Detail::destroyDegeneratePrimitives ( const GA_PrimitiveGroup prims = 0,
bool  and_points = false 
)

GA_Size GA_Detail::destroyDegeneratePrimitives ( const GA_Range it,
bool  and_points = false 
)

bool GA_Detail::destroyEdgeGroup ( const char *  name  )  [inline]

Definition at line 840 of file GA_Detail.h.

bool GA_Detail::destroyElementGroup ( GA_ElementGroup group  ) 

bool GA_Detail::destroyElementGroup ( GA_AttributeOwner  owner,
const char *  name 
) [inline]

Definition at line 808 of file GA_Detail.h.

GA_Size GA_Detail::destroyEmptyGroups ( GA_AttributeOwner  owner  ) 

bool GA_Detail::destroyGroup ( GA_Group group  ) 

bool GA_Detail::destroyPointIndex ( GA_Index  index,
GA_DestroyPointMode  mode = GA_LEAVE_PRIMITIVES 
)

bool GA_Detail::destroyPointOffset ( GA_Offset  ptoff,
GA_DestroyPointMode  mode = GA_LEAVE_PRIMITIVES 
)

Destroy the given point. Requires full topology.

GA_Size GA_Detail::destroyPointOffsets ( const GA_Range range,
GA_DestroyPointMode  mode = GA_LEAVE_PRIMITIVES 
) [inline]

Definition at line 469 of file GA_Detail.h.

GA_Size GA_Detail::destroyPoints ( const GA_Range range,
GA_DestroyPointMode  mode = GA_LEAVE_PRIMITIVES 
) [inline]

Definition at line 474 of file GA_Detail.h.

bool GA_Detail::destroyPrimitive ( GA_Primitive prim,
bool  and_points = false 
)

bool GA_Detail::destroyPrimitiveIndex ( GA_Index  index,
bool  and_points = false 
)

virtual bool GA_Detail::destroyPrimitiveOffset ( GA_Offset  offset,
bool  and_points = false 
) [virtual]

Destroy the given primitive. Optionally destroy any referenced points that will no longer be in use after this operation. Note that this option requires full topology.

Reimplemented in GD_Detail, and GEO_Detail.

virtual GA_Size GA_Detail::destroyPrimitiveOffsets ( const GA_Range it,
bool  and_points = false 
) [virtual]

Destroy the given primitives. Optionally destroy any referenced points that will no longer be in use after this operation. Note that this option requires full topology.

Reimplemented in GD_Detail, and GEO_Detail.

GA_Size GA_Detail::destroyPrimitives ( const GA_Range it,
bool  and_points = false 
) [inline]

Definition at line 454 of file GA_Detail.h.

GA_Size GA_Detail::destroyUnusedPoints ( const GA_Range point_range  ) 

Destroy unused points in given point range.

GA_Size GA_Detail::destroyUnusedPoints ( const GA_PointGroup ptgrp = 0  )  [inline]

Destroy unused points. If ptgrp is given, then only within the group.

Definition at line 463 of file GA_Detail.h.

bool GA_Detail::destroyVertexOffset ( GA_Offset  offset  ) 

Destroy the given vertex.

GA_Size GA_Detail::destroyVertexOffsets ( const GA_Range range  )  [inline]

Definition at line 481 of file GA_Detail.h.

GA_Size GA_Detail::destroyVertices ( const GA_Range range  )  [inline]

Definition at line 483 of file GA_Detail.h.

void GA_Detail::doConstructTailInitializers ( GA_AttributeOwner  owner,
GA_Offset  start,
GA_Size  size 
) [protected]

bool GA_Detail::enlargeBoundingBox ( UT_BoundingBox box,
const GA_Range range,
const GA_ROAttributeRef P 
) const

bool GA_Detail::enlargeBoundingBox ( UT_BoundingBox box,
const GA_Range range 
) const

bool GA_Detail::enlargeBoundingBox ( UT_BoundingRect box,
const GA_Range range,
const GA_ROAttributeRef P 
) const

bool GA_Detail::enlargeBoundingBox ( UT_BoundingRect box,
const GA_Range range 
) const

GA_RWAttributeRef GA_Detail::findAttribute ( GA_AttributeOwner  owner,
const char *  name 
) [inline]

Definition at line 711 of file GA_Detail.h.

GA_RWAttributeRef GA_Detail::findAttribute ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const char *  name 
) [inline]

Definition at line 707 of file GA_Detail.h.

GA_RWAttributeRef GA_Detail::findAttribute ( const char *  name,
const GA_AttributeOwner  search_order[],
int  search_size 
) [inline]

Definition at line 699 of file GA_Detail.h.

GA_RWAttributeRef GA_Detail::findAttribute ( GA_AttributeScope  scope,
const char *  name,
const GA_AttributeOwner  search_order[],
int  search_size 
) [inline]

Find an existing attribute, returning a read-write reference.

Definition at line 689 of file GA_Detail.h.

GA_ROAttributeRef GA_Detail::findAttribute ( GA_AttributeOwner  owner,
const char *  name 
) const [inline]

Definition at line 663 of file GA_Detail.h.

GA_ROAttributeRef GA_Detail::findAttribute ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const char *  name 
) const [inline]

Definition at line 659 of file GA_Detail.h.

GA_ROAttributeRef GA_Detail::findAttribute ( const char *  name,
const GA_AttributeOwner  search_order[],
int  search_size 
) const [inline]

Definition at line 651 of file GA_Detail.h.

GA_ROAttributeRef GA_Detail::findAttribute ( GA_AttributeScope  scope,
const char *  name,
const GA_AttributeOwner  search_order[],
int  search_size 
) const [inline]

Find an existing attribute, returning a read-only reference.

Definition at line 641 of file GA_Detail.h.

GA_EdgeGroup* GA_Detail::findEdgeGroup ( const char *  name  ) 

const GA_EdgeGroup* GA_Detail::findEdgeGroup ( const char *  name  )  const

template<GA_AttributeOwner OWNER>
const GA_ElementGroupTableT<OWNER>::GROUP_TYPE* GA_Detail::findElementGroup ( const char *  name  )  const [inline]

Definition at line 798 of file GA_Detail.h.

template<GA_AttributeOwner OWNER>
GA_ElementGroupTableT<OWNER>::GROUP_TYPE* GA_Detail::findElementGroup ( const char *  name  )  [inline]

Definition at line 791 of file GA_Detail.h.

GA_ElementGroup* GA_Detail::findElementGroup ( GA_AttributeOwner  owner,
const char *  name 
) const

GA_RWAttributeRef GA_Detail::findGlobalAttribute ( const char *  name  )  [inline]

Definition at line 732 of file GA_Detail.h.

GA_RWAttributeRef GA_Detail::findGlobalAttribute ( GA_AttributeScope  s,
const char *  name 
) [inline]

Definition at line 729 of file GA_Detail.h.

GA_ROAttributeRef GA_Detail::findGlobalAttribute ( const char *  name  )  const [inline]

Definition at line 684 of file GA_Detail.h.

GA_ROAttributeRef GA_Detail::findGlobalAttribute ( GA_AttributeScope  s,
const char *  name 
) const [inline]

Definition at line 681 of file GA_Detail.h.

GA_GlobalIntrinsic GA_Detail::findGlobalIntrinsic ( GA_LocalIntrinsic  h  )  const [inline]

Query properties of the global/detail intrinsic attribute Note that the tuple size calls the virtual method since the tuple size may be dynamic (i.e. basis knot vector)

Definition at line 880 of file GA_Detail.h.

GA_LocalIntrinsic GA_Detail::findIntrinsic ( GA_GlobalIntrinsic  h  )  const [inline]

Query properties of the global/detail intrinsic attribute Note that the tuple size calls the virtual method since the tuple size may be dynamic (i.e. basis knot vector)

Definition at line 878 of file GA_Detail.h.

GA_LocalIntrinsic GA_Detail::findIntrinsic ( const char *  nm  )  const [inline]

Query properties of the global/detail intrinsic attribute Note that the tuple size calls the virtual method since the tuple size may be dynamic (i.e. basis knot vector)

Definition at line 876 of file GA_Detail.h.

const GA_IO* GA_Detail::findIO ( const char *  name = NULL  )  const [inline]

Find an IO class. If no name is specified, the "default" IO class will be returned (the one specified by HOUDINI_GEOMETRY_FORMAT).

Definition at line 1021 of file GA_Detail.h.

GA_RWAttributeRef GA_Detail::findPointAttribute ( const char *  name  )  [inline]

Definition at line 717 of file GA_Detail.h.

GA_RWAttributeRef GA_Detail::findPointAttribute ( GA_AttributeScope  s,
const char *  name 
) [inline]

Definition at line 714 of file GA_Detail.h.

GA_ROAttributeRef GA_Detail::findPointAttribute ( const char *  name  )  const [inline]

Definition at line 669 of file GA_Detail.h.

GA_ROAttributeRef GA_Detail::findPointAttribute ( GA_AttributeScope  s,
const char *  name 
) const [inline]

Definition at line 666 of file GA_Detail.h.

GA_PointGroup* GA_Detail::findPointGroup ( const char *  name  )  [inline]

Definition at line 824 of file GA_Detail.h.

const GA_PointGroup* GA_Detail::findPointGroup ( const char *  name  )  const [inline]

Definition at line 816 of file GA_Detail.h.

GA_RWAttributeRef GA_Detail::findPrimitiveAttribute ( const char *  name  )  [inline]

Definition at line 727 of file GA_Detail.h.

GA_RWAttributeRef GA_Detail::findPrimitiveAttribute ( GA_AttributeScope  s,
const char *  name 
) [inline]

Definition at line 724 of file GA_Detail.h.

GA_ROAttributeRef GA_Detail::findPrimitiveAttribute ( const char *  name  )  const [inline]

Definition at line 679 of file GA_Detail.h.

GA_ROAttributeRef GA_Detail::findPrimitiveAttribute ( GA_AttributeScope  s,
const char *  name 
) const [inline]

Definition at line 676 of file GA_Detail.h.

GA_PrimitiveGroup* GA_Detail::findPrimitiveGroup ( const char *  name  )  [inline]

Definition at line 828 of file GA_Detail.h.

const GA_PrimitiveGroup* GA_Detail::findPrimitiveGroup ( const char *  name  )  const [inline]

Definition at line 820 of file GA_Detail.h.

GA_RWAttributeRef GA_Detail::findVertexAttribute ( const char *  name  )  [inline]

Definition at line 722 of file GA_Detail.h.

GA_RWAttributeRef GA_Detail::findVertexAttribute ( GA_AttributeScope  s,
const char *  name 
) [inline]

Definition at line 719 of file GA_Detail.h.

GA_ROAttributeRef GA_Detail::findVertexAttribute ( const char *  name  )  const [inline]

Definition at line 674 of file GA_Detail.h.

GA_ROAttributeRef GA_Detail::findVertexAttribute ( GA_AttributeScope  s,
const char *  name 
) const [inline]

Definition at line 671 of file GA_Detail.h.

GA_VertexGroup* GA_Detail::findVertexGroup ( const char *  name  )  [inline]

Definition at line 826 of file GA_Detail.h.

const GA_VertexGroup* GA_Detail::findVertexGroup ( const char *  name  )  const [inline]

Definition at line 818 of file GA_Detail.h.

static void GA_Detail::finishLoadH9 ( const UT_RefArray< GA_AttribLoadDataH9 > &  attribs  )  [static, protected]

template<typename T >
static T::GB_MACRO_POINT_TYPE* GA_Detail::GB_MACRO_CAST ( const T *  ,
GA_GBElement *  pt 
) [inline, static]

Utility casting functions used by GA_GBMacros.h to maintain (source code) type compatibility with the old implementations that used the derived GD/GEO_PointList and GD/GEO_PrimList objects.

The first argument is used solely to infer the templatized type. Derived classes (GD_Detail/GEO_Detail) should contain embedded GB_MACRO_PRIM_TYPE and GB_MACRO_POINT_TYPE typedefs to specify the proper derived types to use for the cast.

Definition at line 1277 of file GA_Detail.h.

template<typename T >
static const T::GB_MACRO_POINT_TYPE* GA_Detail::GB_MACRO_CAST ( const T *  ,
const GA_GBElement *  pt 
) [inline, static]

Utility casting functions used by GA_GBMacros.h to maintain (source code) type compatibility with the old implementations that used the derived GD/GEO_PointList and GD/GEO_PrimList objects.

The first argument is used solely to infer the templatized type. Derived classes (GD_Detail/GEO_Detail) should contain embedded GB_MACRO_PRIM_TYPE and GB_MACRO_POINT_TYPE typedefs to specify the proper derived types to use for the cast.

Definition at line 1274 of file GA_Detail.h.

template<typename T >
static T::GB_MACRO_PRIM_TYPE* GA_Detail::GB_MACRO_CAST ( const T *  ,
GA_Primitive prim 
) [inline, static]

Utility casting functions used by GA_GBMacros.h to maintain (source code) type compatibility with the old implementations that used the derived GD/GEO_PointList and GD/GEO_PrimList objects.

The first argument is used solely to infer the templatized type. Derived classes (GD_Detail/GEO_Detail) should contain embedded GB_MACRO_PRIM_TYPE and GB_MACRO_POINT_TYPE typedefs to specify the proper derived types to use for the cast.

Definition at line 1270 of file GA_Detail.h.

template<typename T >
static const T::GB_MACRO_PRIM_TYPE* GA_Detail::GB_MACRO_CAST ( const T *  ,
const GA_Primitive prim 
) [inline, static]

Utility casting functions used by GA_GBMacros.h to maintain (source code) type compatibility with the old implementations that used the derived GD/GEO_PointList and GD/GEO_PrimList objects.

The first argument is used solely to infer the templatized type. Derived classes (GD_Detail/GEO_Detail) should contain embedded GB_MACRO_PRIM_TYPE and GB_MACRO_POINT_TYPE typedefs to specify the proper derived types to use for the cast.

Definition at line 1267 of file GA_Detail.h.

const GA_AttributeDict& GA_Detail::getAttributeDict ( GA_AttributeOwner  owner  )  const [inline]

Definition at line 517 of file GA_Detail.h.

GA_AttributeOwner GA_Detail::getAttributeOwner ( const GA_AttributeDict dict  )  const

Get access to the attributes for one element type.

const GA_AttributeSet& GA_Detail::getAttributes (  )  const [inline]

Definition at line 508 of file GA_Detail.h.

GA_AttributeSet& GA_Detail::getAttributes (  )  [inline]

Examples:
SOP/SOP_TimeCompare.C.

Definition at line 507 of file GA_Detail.h.

void GA_Detail::getEdgeGroupList ( UT_PtrArray< GA_EdgeGroup * > &  list  ) 

void GA_Detail::getEdgeGroupList ( UT_PtrArray< const GA_EdgeGroup * > &  list  )  const

const GA_EdgeGroupTable& GA_Detail::getEdgeGroupTable (  )  const [inline, protected]

Definition at line 1444 of file GA_Detail.h.

GA_EdgeGroupTable& GA_Detail::getEdgeGroupTable (  )  [inline, protected]

Definition at line 1442 of file GA_Detail.h.

void GA_Detail::getElementGroupList ( GA_AttributeOwner  owner,
UT_PtrArray< GA_ElementGroup * > &  list 
)

void GA_Detail::getElementGroupList ( GA_AttributeOwner  owner,
UT_PtrArray< const GA_ElementGroup * > &  list 
) const

GA_ElementGroupTable& GA_Detail::getElementGroupTable ( GA_AttributeOwner  owner  )  [inline]

Definition at line 1288 of file GA_Detail.h.

const GA_ElementGroupTable& GA_Detail::getElementGroupTable ( GA_AttributeOwner  owner  )  const

GA_GBElementPage* GA_Detail::getGBPage ( GA_Offset  ptoff  )  [inline]

Definition at line 248 of file GA_Detail.h.

GA_GBElement* GA_Detail::getGBPoint ( GA_Offset  ptoff  ) 

const GA_GBElement* GA_Detail::getGBPoint ( GA_Offset  ptoff  )  const

Get a backward compatible point object.

const GA_IndexMap& GA_Detail::getGlobalMap (  )  const [inline]

Definition at line 501 of file GA_Detail.h.

GA_Range GA_Detail::getGlobalRange (  )  const [inline]

Get a range representing the global (detail) data.

Definition at line 950 of file GA_Detail.h.

GA_IndexMap& GA_Detail::getIndexMap ( GA_AttributeOwner  owner  )  [inline]

Definition at line 492 of file GA_Detail.h.

const GA_IndexMap& GA_Detail::getIndexMap ( GA_AttributeOwner  owner  )  const

int GA_Detail::getIntrinsic ( GA_LocalIntrinsic  h,
fpreal v,
GA_Size  sz 
) const

Get the value of a global/detail intrinsic attribute. These methods return the number of items retrieved.

int GA_Detail::getIntrinsic ( GA_LocalIntrinsic  h,
int64 v,
GA_Size  size 
) const

Get the value of a global/detail intrinsic attribute. These methods return the number of items retrieved.

int GA_Detail::getIntrinsic ( GA_LocalIntrinsic  h,
UT_StringArray val 
) const

Get the value of a global/detail intrinsic attribute. These methods return the number of items retrieved.

int GA_Detail::getIntrinsic ( GA_LocalIntrinsic  h,
UT_String val 
) const

Get the value of a global/detail intrinsic attribute. These methods return the number of items retrieved.

const GA_IntrinsicManager& GA_Detail::getIntrinsicManager (  )  const [inline]

Get the intrinsic attribute manager for global/detail attributes.

At the current time, these include:

  • "string globaltokens[]"
    List of all global/detail intrinsics
  • "string primitivetokens[]"
    List of all primitive intrinsics
  • "int vertexcount"
    Number of vertices in the detail
  • "int pointcount"
    Number of points in the detail
  • "int primitivecount"
    Number of primitives in the detail

Definition at line 869 of file GA_Detail.h.

const char* GA_Detail::getIntrinsicName ( GA_LocalIntrinsic  h  )  const [inline]

Query properties of the global/detail intrinsic attribute Note that the tuple size calls the virtual method since the tuple size may be dynamic (i.e. basis knot vector)

Definition at line 883 of file GA_Detail.h.

const UT_Options* GA_Detail::getIntrinsicOptions ( GA_LocalIntrinsic  h  )  const [inline]

Query properties of the global/detail intrinsic attribute Note that the tuple size calls the virtual method since the tuple size may be dynamic (i.e. basis knot vector)

Definition at line 890 of file GA_Detail.h.

bool GA_Detail::getIntrinsicReadOnly ( GA_LocalIntrinsic  h  )  const [inline]

Query properties of the global/detail intrinsic attribute Note that the tuple size calls the virtual method since the tuple size may be dynamic (i.e. basis knot vector)

Definition at line 888 of file GA_Detail.h.

GA_StorageClass GA_Detail::getIntrinsicStorage ( GA_LocalIntrinsic  h  )  const [inline]

Query properties of the global/detail intrinsic attribute Note that the tuple size calls the virtual method since the tuple size may be dynamic (i.e. basis knot vector)

Definition at line 886 of file GA_Detail.h.

int GA_Detail::getIntrinsicTupleSize ( GA_LocalIntrinsic  h  )  const

Query properties of the global/detail intrinsic attribute Note that the tuple size calls the virtual method since the tuple size may be dynamic (i.e. basis knot vector)

void GA_Detail::getIONames ( UT_StringArray names  )  const [inline]

Get a list of all the IO names registered. Returns the number of names in the array.

Definition at line 1026 of file GA_Detail.h.

virtual int64 GA_Detail::getMemoryUsage (  )  const [virtual]

Compute memory usage.

Examples:
SIM/SNOW_Solver.C.

GA_Size GA_Detail::getNumPointOffsets (  )  const [inline]

Return maximum occupied offset of getPointMap(). This will be an upper bound when iterating over offsets.

Note:
(getNumPoints() <= getNumPointOffsets()) is always true.

Definition at line 274 of file GA_Detail.h.

GA_Size GA_Detail::getNumPoints (  )  const [inline]

Return the number of points.

Definition at line 269 of file GA_Detail.h.

GA_Size GA_Detail::getNumPrimitiveOffsets (  )  const [inline]

Return maximum occupied offset of getPrimitiveMap(). This will be an upper bound when iterating over offsets.

Note:
(getNumPrimitives() <= getNumPrimitiveOffsets()) is always true.

Definition at line 300 of file GA_Detail.h.

GA_Size GA_Detail::getNumPrimitives (  )  const [inline]

Return the number of primitives.

Definition at line 295 of file GA_Detail.h.

GA_Size GA_Detail::getNumVertexOffsets (  )  const [inline]

Return maximum occupied offset of getVertexMap(). This will be an upper bound when iterating over offsets.

Note:
(getNumVertices() <= getNumVertexOffsets()) is always true.

Definition at line 325 of file GA_Detail.h.

GA_Size GA_Detail::getNumVertices (  )  const [inline]

Return the number verticies in the entire detail.

Definition at line 320 of file GA_Detail.h.

const GA_Attribute* GA_Detail::getP (  )  const [inline]

Definition at line 151 of file GA_Detail.h.

GA_Attribute* GA_Detail::getP (  )  [inline]

Convenience method to access the P attribute.

Definition at line 150 of file GA_Detail.h.

template<typename T >
bool GA_Detail::getPointAttributeAsArray ( const GA_Attribute atr,
const GA_Range ptrange,
UT_ValArray< T > &  result 
) const [inline]

Get/set all the point attribute data from/to a contiguous array.

Valid types for T are: int32, int64, fpreal32, fpreal64, UT_Vector2T<S>, UT_Vector3T<S>, UT_Vector4T<S>, UT_QuaternionT<S>, UT_Matrix3T<S>, UT_Matrix4T<S> where S is one of: fpreal, fpreal32, fpreal64, For the UT_Vector classes, S can also be one of: int, int32, int64

const GA_PointGroupTable& GA_Detail::getPointGroupTable (  )  const [inline, protected]

Definition at line 1432 of file GA_Detail.h.

GA_PointGroupTable& GA_Detail::getPointGroupTable (  )  [inline, protected]

Definition at line 1430 of file GA_Detail.h.

const GA_IndexMap& GA_Detail::getPointMap (  )  const [inline]

Examples:
SOP/SOP_HDKObject.C, SOP/SOP_SParticle.C, and tetprim/GEO_PrimTetra.C.

Definition at line 498 of file GA_Detail.h.

GA_Range GA_Detail::getPointRange ( const GA_PointGroup group = 0  )  const [inline]

Get a range of all points in the detail.

Definition at line 917 of file GA_Detail.h.

GA_Range GA_Detail::getPointRangeSlice ( GA_Index  begin_ptnum,
GA_Index  end_ptnum = GA_INVALID_INDEX 
) const [inline]

Get ordered point range from base_ptnum to end_ptnum, or the end.

Definition at line 924 of file GA_Detail.h.

UT_Vector2 GA_Detail::getPos2 ( GA_Offset  ptoff  )  const [inline]

The ptoff passed to getPos2(), getPos3() and getPos() is the point offset.

See also:
vertexPoint()

Definition at line 155 of file GA_Detail.h.

SYS_FORCE_INLINE UT_Vector3 GA_Detail::getPos3 ( GA_Offset  ptoff  )  const [inline]

The ptoff passed to getPos2(), getPos3() and getPos() is the point offset.

See also:
vertexPoint()

Definition at line 162 of file GA_Detail.h.

template<typename T >
bool GA_Detail::getPos3AsArray ( const GA_Range ptrange,
UT_ValArray< UT_Vector3T< T > > &  positions 
) const [inline]

Get an array of all positions from the given point range. The template parameter T is must be one of: fpreal, fpreal32, or fpreal64.

Definition at line 180 of file GA_Detail.h.

UT_Vector4 GA_Detail::getPos4 ( GA_Offset  ptoff  )  const [inline]

The ptoff passed to getPos2(), getPos3() and getPos() is the point offset.

See also:
vertexPoint()

Definition at line 171 of file GA_Detail.h.

const GA_PrimitiveFactory& GA_Detail::getPrimitiveFactory (  )  const [inline]

Provide access to the factory. This allows users to query information about factories.

Definition at line 1322 of file GA_Detail.h.

const GA_PrimitiveGroupTable& GA_Detail::getPrimitiveGroupTable (  )  const [inline, protected]

Definition at line 1436 of file GA_Detail.h.

GA_PrimitiveGroupTable& GA_Detail::getPrimitiveGroupTable (  )  [inline, protected]

Definition at line 1434 of file GA_Detail.h.

GA_PrimitiveList& GA_Detail::getPrimitiveList (  )  [inline]

Definition at line 505 of file GA_Detail.h.

const GA_PrimitiveList& GA_Detail::getPrimitiveList (  )  const [inline]

Definition at line 503 of file GA_Detail.h.

const GA_IndexMap& GA_Detail::getPrimitiveMap (  )  const [inline]

Examples:
SOP/SOP_HDKObject.C.

Definition at line 500 of file GA_Detail.h.

GA_Range GA_Detail::getPrimitiveRange ( const GA_PrimitiveGroup group = 0  )  const [inline]

Get a range of all primitives in the detail.

Definition at line 920 of file GA_Detail.h.

GA_Range GA_Detail::getPrimitiveRangeSlice ( GA_Index  begin_prim,
GA_Index  end_prim = GA_INVALID_INDEX 
) const [inline]

Get ordered primitive range from base_prim to end_prim, or the end.

Definition at line 935 of file GA_Detail.h.

GA_Size GA_Detail::getPrimitivesReferencingPoint ( GA_OffsetArray primitives,
GA_Offset  point_offset 
) const

Given a point offset, return a list of all primitives which reference it.

fpreal GA_Detail::getPw ( GA_Offset  ptoff  )  const

Get the homogeneous coordinate for a point.

const GA_Topology& GA_Detail::getTopology (  )  const [inline]

Definition at line 510 of file GA_Detail.h.

GA_Topology& GA_Detail::getTopology (  )  [inline]

Definition at line 509 of file GA_Detail.h.

int GA_Detail::getUniqueId (  )  const [inline]

Definition at line 140 of file GA_Detail.h.

const GA_VertexGroupTable& GA_Detail::getVertexGroupTable (  )  const [inline, protected]

Definition at line 1440 of file GA_Detail.h.

GA_VertexGroupTable& GA_Detail::getVertexGroupTable (  )  [inline, protected]

Definition at line 1438 of file GA_Detail.h.

const GA_IndexMap& GA_Detail::getVertexMap (  )  const [inline]

Definition at line 499 of file GA_Detail.h.

GA_Range GA_Detail::getVertexRange ( const GA_VertexGroup group = 0  )  const [inline]

Get a range of all vertices in the detail.

Definition at line 947 of file GA_Detail.h.

GA_Offset GA_Detail::getVertexReferencingPoint ( GA_Offset  ptoff,
GA_Offset  primoff = GA_INVALID_OFFSET 
) const

Given a point and primitive, find the corresponding vertex. Note that this is O(N) on the number of vertices which share the point. If the primitive offset is -1, then the "first" vertex which references the point will be returned. The order of the "first" vertex is arbitrary, though it will likely be the same for each call.

Returns -1 if no topology attributes exist.

GA_Size GA_Detail::getVerticesReferencingPoint ( GA_OffsetArray vertices,
GA_Offset  point_offset 
) const

Given a point offset, return a list of all vertices which reference it.

bool GA_Detail::hasGBPoint (  )  const [inline]

Definition at line 254 of file GA_Detail.h.

bool GA_Detail::isPointUsed ( GA_Offset  point  )  const

Returns whether a point is referenced by any vertices This may be a slow operation if there is no topology allocated

IOStatus GA_Detail::load ( UT_JSONParser p,
const UT_Options opts = 0,
UT_StringArray errors = 0 
)

Load geometry from a JSON stream.

Note:
This method uses findIO(GA_IOTable::getJSONToken()) and uses a dynamic cast to GA_IOJSON to actually do the loading.

IOStatus GA_Detail::load ( UT_IStream is,
const UT_Options opts = 0,
UT_StringArray errors = 0 
)

Load a geometry file given a UT_IStream.

IOStatus GA_Detail::load ( const char *  filename,
const UT_Options opts = 0,
UT_StringArray errors = 0 
)

Load a geometry file The .gz extension is used to enable zlib decompression

Examples:
standalone/geo2voxel.C, and VRAY/VRAY_DemoFile.C.

static bool GA_Detail::loadAttribDataH9 ( UT_IStream is,
GA_Offset  offset,
const UT_RefArray< GA_AttribLoadDataH9 > &  l 
) [static]

Convenience methods for saving/loading both a vertex's point reference and its attribute values in a Houdini9 compatible style. Note that the load wires the vertex to the loaded point.

bool GA_Detail::loadPrimitivesH9 ( UT_IStream is,
int  count,
const GA_FileFormatH9::PrimTypeXlate type_map,
const UT_RefArray< GA_AttribLoadDataH9 > &  prim_attribs,
const UT_RefArray< GA_AttribLoadDataH9 > &  vtx_attribs 
) [protected]

bool GA_Detail::loadVertexH9 ( UT_IStream is,
GA_Offset  vertex_offset,
const UT_RefArray< GA_AttribLoadDataH9 > &  vtx_l 
)

Convenience methods for saving/loading both a vertex's point reference and its attribute values in a Houdini9 compatible style. Note that the load wires the vertex to the loaded point.

virtual int GA_Detail::localGetIntrinsicF ( GA_IntrinsicEval eval,
fpreal value,
GA_Size  size 
) const [protected, virtual]

Virtual implementation of intrinsic attributes. See GA_IntrinsicEval for further details.

virtual int GA_Detail::localGetIntrinsicI ( GA_IntrinsicEval eval,
int64 value,
GA_Size  size 
) const [protected, virtual]

Virtual implementation of intrinsic attributes. See GA_IntrinsicEval for further details.

virtual int GA_Detail::localGetIntrinsicS ( GA_IntrinsicEval eval,
UT_String value 
) const [protected, virtual]

Virtual implementation of intrinsic attributes. See GA_IntrinsicEval for further details.

virtual int GA_Detail::localGetIntrinsicSA ( GA_IntrinsicEval eval,
UT_StringArray value 
) const [protected, virtual]

Virtual implementation of intrinsic attributes. See GA_IntrinsicEval for further details.

virtual int GA_Detail::localIntrinsicTupleSize ( GA_IntrinsicEval eval  )  const [protected, virtual]

Virtual implementation of intrinsic attributes. See GA_IntrinsicEval for further details.

virtual int GA_Detail::localSetIntrinsicF ( GA_IntrinsicEval eval,
const fpreal value,
GA_Size  size 
) [protected, virtual]

Virtual implementation of intrinsic attributes. See GA_IntrinsicEval for further details.

virtual int GA_Detail::localSetIntrinsicI ( GA_IntrinsicEval eval,
const int64 value,
GA_Size  size 
) [protected, virtual]

Virtual implementation of intrinsic attributes. See GA_IntrinsicEval for further details.

virtual int GA_Detail::localSetIntrinsicS ( GA_IntrinsicEval eval,
const char *  value 
) [protected, virtual]

Virtual implementation of intrinsic attributes. See GA_IntrinsicEval for further details.

virtual int GA_Detail::localSetIntrinsicSA ( GA_IntrinsicEval eval,
const UT_StringArray value 
) [protected, virtual]

Virtual implementation of intrinsic attributes. See GA_IntrinsicEval for further details.

virtual int GA_Detail::localSetIntrinsicSS ( GA_IntrinsicEval eval,
const char **  value,
GA_Size  size 
) [protected, virtual]

Virtual implementation of intrinsic attributes. See GA_IntrinsicEval for further details.

void GA_Detail::mergeGlobalAttributes ( const GA_Detail src,
GA_MergeOptions options 
)

Merge source global attributes using options.

void GA_Detail::mergeGlobalAttributes ( const GA_Detail src  ) 

Merge global attributes (using default options).

GA_Index GA_Detail::pointIndex ( GA_Offset  offset  )  const [inline]

Given a point's data offset, return its index.

Examples:
SIM/SIM_SolverHair.C.

Definition at line 280 of file GA_Detail.h.

GA_Offset GA_Detail::pointOffset ( GA_Index  index  )  const [inline]

Given a point's index (in append order), return its data offset.

Examples:
SOP/SOP_SParticle.C.

Definition at line 277 of file GA_Detail.h.

GA_Offset GA_Detail::pointVertex ( GA_Offset  point  )  const [inline]

Given a point, returns *a* vertex that it references. More than one vertex may refer to a single point, and it is quite possible that no vertices refer to the point. GA_INVALID_OFFSET is returned if no vertices match. See getVerticesReferencingPoint() for methods to get all the points.

Definition at line 360 of file GA_Detail.h.

GA_Index GA_Detail::primitiveIndex ( GA_Offset  offset  )  const [inline]

Given a primitive's data offset, return its index.

Definition at line 306 of file GA_Detail.h.

GA_Offset GA_Detail::primitiveOffset ( GA_Index  index  )  const [inline]

Given a primitive's index (in append order), return its data offset.

Definition at line 303 of file GA_Detail.h.

static int64 GA_Detail::printMemory ( UT_WorkBuffer buffer,
bool  include_total = true,
int  indent = 3,
const char *  title = "Geometry Memory Tracking" 
) [static]

Debugging output of detail.

void GA_Detail::refreshCachedHandles (  ) 

Refreshes handles cached in the detail. This method must be called after changing the storage of the P attribute.

static GA_IntrinsicManager::Registrar GA_Detail::registerIntrinsics ( GA_PrimitiveFactory factory  )  [static]

Register global intrinsic attributes. Each subclass should have registration which looks like:

   SubClass::registerIntrinsics(GA_PrimitiveFactory &factory)
   {
         GA_LocalIntrinsicMap    map(factory.getDetailIntrinsics());
         BaseClass::registerIntrinsics(factory);
         map.addAttribute(...);
         map.addAttribute(...);
   }

Reimplemented in GEO_Detail, and GU_Detail.

bool GA_Detail::registerIO ( GA_IO *  io  )  const [inline]

Register an IO file format.

Definition at line 1016 of file GA_Detail.h.

bool GA_Detail::removeTailInitializer ( GA_Attribute attrib  ) 

Add/Remove an attribute to the tail-initialization list.

When attributes grow in size, they usually initialize their values to the default value. However, some attributes may not adhere to this rule, or due to space optimizations, may have the values set to non-default values. In this case, they should be added to the tail-initialization list. When new elements are appended to the detail, they will be told to re-initialize the new element. Otherwise, the detail will assume that the element values are at their default value.

When removing, the method will return true if the attribute was a tail initializer.

Note:
These methods are thread-safe

DO NOT CALL THESE: Use the GA_Attribute::setTailInitialization instead.

bool GA_Detail::renameAttribute ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const char *  fromName,
const char *  toName 
) [inline]

Definition at line 576 of file GA_Detail.h.

GA_Index GA_Detail::reorderPoint ( GA_Offset  ptoff,
GA_Index  new_order 
)

Reorder a point. The index of the point at the given data offset will be changed to the new order (provided that the ordered position is in a valid range).

Returns:
The new index of the point, or -1 if there was an error

GA_Index GA_Detail::reorderPrimitive ( GA_Offset  offset,
GA_Index  new_order 
)

Reorder a primitive. The index of the primitive at the given data offset will be changed to the new order (provided that the ordered position is in a valid range).

Returns:
The new index of the primitive, or -1 if there was an error

IOStatus GA_Detail::save ( UT_JSONWriter w,
const UT_Options opts = 0 
) const

JSON Schema: GA_Detail

The JSON schema for a detail can be broken down into 5 major sections
  • Header: The global information about the detail
  • References: Topological references
  • Attributes: Attribute data for elements
  • Primitives: List of primitives in the detail
  • Groups: Groups

 {
     "name"          : "GA_Detail-Header",
     "description"   : "Storage for an entire geometry object",
     "type"          : "orderedmap",
     "properties": {
         // Header section
         "file_version": {
             "type"      : "string",
             "description" : "File Version",
             "optional"  : true,
         },
         "info": {
             "type"        : "object",
             "description" :
                 "Optional tags including:
                     'software' : Software used to create geometry,
                     'artist'   : Artist name,
                     'hostname' : Computer name,
                     'comment'  : Arbitrary comment
                     etc.",
             "optional"    : true,
         }
         "pointcount": {
             "type"        : "integer",
             "description" : "The number of points in the geometry",
         },
         "vertexcount": {
             "type"        : "integer",
             "description" : "The number of vertices in the geometry",
         },
         "primitivecount": {
             "type"        : "integer",
             "description" : "The number of primitives in the geometry",
         },

         // Topology section
         "topology" : {
             "type"        : "orderedmap",
             "description" : "Topological information",
             "properties"  : {
                 "pointref" : {
                       "type"    : [{ "$ref" : "GA_ATITopology" }],
                       "description" :
                            "An list of points referenced by each
                             vertex.  The array of 'vertexcount' items
                             must contain integer values in the range of
                             (0,pointcount-1)"
                  }
             }
         },

         // Attributes section
         "attributes": {
             "type"        : { "$ref" : "GA_AttributeSet" } ,
             "description" : "Vertex attributes",
         }

         // Primitives section
         "primitives": {
             "type"        : { "$ref" : "GA_PrimitiveList" } ,
             "description" : "An array of primitives",
         }

         // Groups section
         "pointgroups": {
             "type"        : { "$ref" : "GA_GroupTable" },
             "description" : "The list of point groups",
             "optional"    : true,
         },
         "primitivegroups": {
             "type"        : { "$ref" : "GA_GroupTable" },
             "description" : "The list of primitive groups",
             "optional"    : true,
         },
         "vertexgroups": {
             "type"        : { "$ref" : "GA_GroupTable" },
             "description" : "The list of vertex groups",
             "optional"    : true,
         },
         "edgegroups": {
             "type"        : { "$ref" : "GA_GroupTable" },
             "description" : "The list of edge groups",
             "optional"    : true,
         },
     },
 }
See also:
JSON_FileFormat
Note:
This method uses findIO(GA_IOTable::getJSONToken()) and uses a dynamic cast to GA_IOJSON to actually do the writing.

IOStatus GA_Detail::save ( ostream &  os,
bool  binary,
const UT_Options options,
UT_StringArray errors = 0 
) const

Save to an existing ostream. JSON format will check the options for:

  • bool geo:gzip
    Enable gzip compression for JSON (false)
  • bool geo:saveinfo
    Output optional "info" section [true]
    • string info:software - Software
    • string info:artist - Artist
    • string info:hostname - Hostname comment
    • string info:comment - Arbitrary Comment
    • any info:token - Saved in the "info" section
  • bool group:saveinternal
    Save "internal" groups (debugging)

IOStatus GA_Detail::save ( const char *  filename,
const UT_Options options,
UT_StringArray errors = 0 
) const

Save to a given filename. An extension of .gz will enable zlib compression (for JSON format only) Options include:

  • string geo:format
    Use the IO format specified by the string See also the options for the stream save
Examples:
ROP/ROP_DopField.C, standalone/gengeovolume.C, standalone/geo2voxel.C, and standalone/geoisosurface.C.

static bool GA_Detail::saveAttribDataH9 ( ostream &  os,
int  binary,
GA_Offset  offset,
const UT_RefArray< GA_AttribSaveDataH9 > &  l,
char  delim_ch = '(' 
) [static]

Convenience methods for saving/loading both a vertex's point reference and its attribute values in a Houdini9 compatible style. Note that the load wires the vertex to the loaded point.

IOStatus GA_Detail::saveClassic ( ostream &  os,
bool  ,
const UT_Options  
) const

Save in "hclassic" format.

IOStatus GA_Detail::saveClassic ( const char *  ,
const UT_Options  
) const

Save in "hclassic" format.

bool GA_Detail::savePrimitivesH9 ( ostream &  os,
int  binary,
const UT_PtrArray< const GA_Primitive * > &  list,
const GA_FileFormatH9::PrimTypeXlate type_map,
const UT_RefArray< GA_AttribSaveDataH9 > &  prim_attribs,
const UT_RefArray< GA_AttribSaveDataH9 > &  vx_attribs 
) const [protected]

bool GA_Detail::saveVertexH9 ( ostream &  os,
int  binary,
GA_Offset  vertex_offset,
const UT_RefArray< GA_AttribSaveDataH9 > &  vtx_l 
) const

Convenience methods for saving/loading both a vertex's point reference and its attribute values in a Houdini9 compatible style. Note that the load wires the vertex to the loaded point.

bool GA_Detail::saveVertexPointReferenceH9 ( ostream &  os,
int  binary,
GA_Offset  vertex_offset 
) const

Convenience methods for saving/loading both a vertex's point reference and its attribute values in a Houdini9 compatible style. Note that the load wires the vertex to the loaded point.

int GA_Detail::setIntrinsic ( GA_LocalIntrinsic  h,
const fpreal v,
GA_Size  sz 
)

Set intrinsic attributes. This will fail if the attribute is read-only. These methods return the number of items set.

int GA_Detail::setIntrinsic ( GA_LocalIntrinsic  h,
const int64 val,
GA_Size  sz 
)

Set intrinsic attributes. This will fail if the attribute is read-only. These methods return the number of items set.

int GA_Detail::setIntrinsic ( GA_LocalIntrinsic  h,
const fpreal  val 
)

Set intrinsic attributes. This will fail if the attribute is read-only. These methods return the number of items set.

int GA_Detail::setIntrinsic ( GA_LocalIntrinsic  h,
const int64  val 
)

Set intrinsic attributes. This will fail if the attribute is read-only. These methods return the number of items set.

int GA_Detail::setIntrinsic ( GA_LocalIntrinsic  h,
const char **  val,
GA_Size  s 
)

Set intrinsic attributes. This will fail if the attribute is read-only. These methods return the number of items set.

int GA_Detail::setIntrinsic ( GA_LocalIntrinsic  h,
const UT_StringArray value 
)

Set intrinsic attributes. This will fail if the attribute is read-only. These methods return the number of items set.

int GA_Detail::setIntrinsic ( GA_LocalIntrinsic  h,
const char *  value 
)

Set intrinsic attributes. This will fail if the attribute is read-only. These methods return the number of items set.

template<typename T >
bool GA_Detail::setPointAttributeFromArray ( GA_Attribute atr,
const GA_Range ptrange,
const UT_ValArray< T > &  src 
) [inline]

Valid types for T are: int32, int64, fpreal32, fpreal64, UT_Vector2T<S>, UT_Vector3T<S>, UT_Vector4T<S>, UT_QuaternionT<S>, UT_Matrix3T<S>, UT_Matrix4T<S> where S is one of: fpreal, fpreal32, fpreal64, For the UT_Vector classes, S can also be one of: int, int32, int64

void GA_Detail::setPos2 ( GA_Offset  ptoff,
const UT_Vector2 P 
) [inline]

Set P from a UT_Vector2.

Definition at line 200 of file GA_Detail.h.

SYS_FORCE_INLINE void GA_Detail::setPos3 ( GA_Offset  ptoff,
fpreal  x,
fpreal  y,
fpreal  z 
) [inline]

Set P given the x, y, z components.

Definition at line 215 of file GA_Detail.h.

SYS_FORCE_INLINE void GA_Detail::setPos3 ( GA_Offset  ptoff,
const UT_Vector3 P 
) [inline]

Set P from a UT_Vector3.

Definition at line 206 of file GA_Detail.h.

template<typename T >
bool GA_Detail::setPos3FromArray ( const GA_Range ptrange,
const UT_ValArray< UT_Vector3T< T > > &  positions 
) [inline]

Get an array of all positions from the given point range. The template parameter T is must be one of: fpreal, fpreal32, or fpreal64.

Definition at line 191 of file GA_Detail.h.

void GA_Detail::setPos4 ( GA_Offset  ptoff,
fpreal  x,
fpreal  y,
fpreal  z,
fpreal  w 
) [inline]

Set P given the x, y, z, w components.

Definition at line 228 of file GA_Detail.h.

void GA_Detail::setPos4 ( GA_Offset  ptoff,
const UT_Vector4 P 
) [inline]

Set P from a UT_Vector4.

Definition at line 223 of file GA_Detail.h.

void GA_Detail::setPw ( GA_Offset  ptoff,
fpreal  w 
)

Set the homogeneous coordinate for a point.

void GA_Detail::setStashFlag ( bool  val  )  [inline, protected]

A flag set by derived classes to indicate whether or not we have a primitive stash available.

Definition at line 1428 of file GA_Detail.h.

void GA_Detail::sortVertexMapByPrimitiveUse (  ) 

Optimized layout of vertex index map. This sorts the vertex index map by the primitive order use. The map will be defragmented after this function is called.

bool GA_Detail::stat ( GA_Stat stat,
uint  level = 0xffff 
) const

Get information about the detail.

Parameters:
stat 
- Information about detail
level 
- Mask of information to retrieve (see GA_STAT_LEVEL)

void GA_Detail::statAttributes ( GA_Stat stat,
uint  level = 0xffff 
) const

Fill out only the attribute information on the stat.

IOStatus GA_Detail::statFile ( const char *  filename,
GA_Stat stat,
uint  level = 0xffff,
const UT_Options opts = NULL 
) const

Stat a disk file rather than loading the entire geometry. (see GA_STAT_LEVEL) The method cannot be static since the primitive factory is required. The primitive factory stores the IO table for the geometry.

void GA_Detail::statGroups ( GA_Stat stat,
uint  level = 0xffff 
) const

Fill out only the group information on the stat.

virtual void GA_Detail::statVolumes ( GA_Stat stat,
uint  level = 0xffff 
) const [virtual]

Fill out only the volume information.

Reimplemented in GU_Detail.

bool GA_Detail::swapPrimitiveOrder ( GA_Offset  offset1,
GA_Offset  offset2 
)

Swap the order of the two specified primitive data offsets.

void GA_Detail::translatePoint ( GA_Offset  ptoff,
const UT_Vector3 delta 
) [inline]

Apply a translation to the specified point index.

See also:
vertexPoint() Effectively setPos3(index, getPos3(index) + delta)

Definition at line 241 of file GA_Detail.h.

GA_Primitive* GA_Detail::unstashPrimitive ( const GA_PrimitiveDefinition type,
GA_Offset  offset 
) [inline, protected]

Method needed by GA_PrimitiveDefinition to support reusing "stashed" primitives. This is a wrapper around a virtual implementation used to avoid the cost of a virtual call when we have no stash.

Definition at line 1412 of file GA_Detail.h.

virtual GA_Primitive* GA_Detail::unstashPrimitiveImpl ( const GA_PrimitiveDefinition type,
GA_Offset  offset 
) [inline, protected, virtual]

Implementation of the guts of unstashPrimitive(). Does nothing at this level.

Reimplemented in GEO_Detail, and GU_Detail.

Definition at line 1422 of file GA_Detail.h.

GA_Index GA_Detail::vertexIndex ( GA_Offset  offset  )  const [inline]

Given a vertex's data offset, return its index.

Definition at line 331 of file GA_Detail.h.

GA_Offset GA_Detail::vertexOffset ( GA_Index  index  )  const [inline]

Given a vertex's index (in append order), return its data offset.

Definition at line 328 of file GA_Detail.h.

GA_Offset GA_Detail::vertexPoint ( GA_Offset  vertex  )  const [inline]

Given a vertex, return the point it references.

Examples:
POP/POP_RadialBirth.C, and SOP/SOP_SParticle.C.

Definition at line 340 of file GA_Detail.h.

GA_Offset GA_Detail::vertexPrimitive ( GA_Offset  vertex  )  const [inline]

Given a vertex, return primitive it references Returns -1 if no topology attributes exist.

Definition at line 347 of file GA_Detail.h.

GA_Offset GA_Detail::vertexToNextVertex ( GA_Offset  vtx  )  const [inline]

Given a vertex, returns the next one that shares the same point as this vertex. GA_INVALID_OFFSET if no further vertices match

Definition at line 371 of file GA_Detail.h.

GA_Offset GA_Detail::vertexToPrevVertex ( GA_Offset  vtx  )  const [inline]

Given a vertex, returns the previous one that shares the same point as this vertex. GA_INVALID_OFFSET if no further vertices match

Definition at line 382 of file GA_Detail.h.


Friends And Related Function Documentation

friend class GA_IO [friend]

Definition at line 1503 of file GA_Detail.h.

friend class GA_Primitive [friend]

Definition at line 1504 of file GA_Detail.h.

GA_Primitive* GA_PrimitiveDefinition::getStashedPrimitive ( GA_Detail ,
GA_Offset   
) const [friend]


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

Generated on Thu Jan 31 00:30:42 2013 for HDK by  doxygen 1.5.9