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

#include <GEO_Detail.h>

+ Inheritance diagram for GEO_Detail:

Classes

struct  EdgeAdjacencyData
 
class  geo_NPairs
 
class  LocalXformContext
 
struct  PointAdjacencyData
 
class  SoftSymmetryParms
 

Public Types

enum  CaptureType {
  CAPTURE_BONE = 0, CAPTURE_META, CAPTURE_WIRE, CAPTURE_CLOTH,
  CAPTURE_MUSCLE
}
 Methods for manipulating capture weights (GEO_CaptureWeight.C) More...
 
enum  VisualizationType { VISTYPE_SINGLE, VISTYPE_MULTIPLE }
 
typedef GEO_Primitive GB_MACRO_PRIM_TYPE
 
typedef UT_ValArray
< PointAdjacencyData
GEO_PointAdjArray
 
typedef UT_ValArray
< EdgeAdjacencyData
GEO_EdgeAdjArray
 
- Public Types inherited from GA_Detail
enum  GA_DestroyPointMode { GA_LEAVE_PRIMITIVES, GA_DESTROY_DEGENERATE, GA_DESTROY_DEGENERATE_INCOMPATIBLE }
 
typedef GA_Primitive GB_MACRO_PRIM_TYPE
 

Public Member Functions

 GEO_Detail (GA_PrimitiveFactory &factory, bool full_topology=true)
 
virtual ~GEO_Detail ()
 
virtual int64 getMemoryUsage (bool inclusive) const
 Compute memory usage (includes all shared memory) More...
 
virtual void countMemory (UT_MemoryCounter &counter, bool inclusive) const
 
void clearAndDestroy ()
 Clear all the points/primitives out of this detail. More...
 
void merge (const GEO_Detail &src, const GA_PrimitiveGroup *primGrp=0, int mergePrimGroup=1, int insertPrimsAtHead=0, GA_GBPointRedirectArray *dest_to_src_ptarray=0, bool keep_internal_groups=true, GA_DataIdStrategy data_id_strategy=GA_DATA_ID_BUMP)
 
void mergePoints (const GEO_Detail &src, const GA_PointGroup *ptGrp=0, bool merge_groups=true, bool keep_internal_groups=true)
 
void mergePoints (const GEO_Detail &src, const GA_Range &points)
 Merge only a group of points. More...
 
void mergePrimitives (const GEO_Detail &src, const GA_Range &prims)
 Merge only a group of prims. More...
 
void merge (const GEO_Primitive &sprim, bool insertPrimAtHead=false)
 Merge a single primitive into this detail. More...
 
bool copy (const GEO_Detail &src, GEO_CopyMethod method=GEO_COPY_ONCE, bool this_parameter_is_ignored=true, bool keep_internal_groups=true, GA_DataIdStrategy data_id_strategy=GA_DATA_ID_BUMP)
 
void collapseIndexAttributes ()
 
void mirror (GEO_MirrorParms &parms)
 Mirrors a portion of the gdp across some plane. More...
 
template<typename FLOAT_T >
void transform (const UT_Matrix4T< FLOAT_T > &mat, const GA_Range &primitives, bool just_P, bool keep_vector_lengths=true, bool check_pasting=true, bool neg_determinant_flip_vector=true, bool update_ptnormals=false, GEO_Delta *geodelta=NULL, bool updateaffectednormals=false, const char *attribpattern=NULL)
 
template<typename FLOAT_T >
void transform (const UT_Matrix4T< FLOAT_T > &mat, const GA_Range &primitives, const GA_Range &points, bool just_P, bool keep_vector_lengths=true, bool check_pasting=true, bool neg_determinant_flip_vector=true, bool update_ptnormals=false, GEO_Delta *geodelta=NULL, bool updateaffectednormals=false, const char *attribpattern=NULL)
 
template<typename FLOAT_T >
void transform (const UT_Matrix4T< FLOAT_T > &mat, const GA_PrimitiveGroup *primGrp=0, const GA_PointGroup *pointClosure=0, bool just_P=false, bool keep_vector_lengths=true, bool check_pasting=true, bool neg_determinant_flipvector=true, bool update_ptnormals=false, GEO_Delta *geodelta=0, bool updateaffectednormals=false, const char *attribpattern=NULL)
 
template<typename FLOAT_T >
void transformRange (const UT_Matrix4T< FLOAT_T > &mat, GA_Index min_ptnum, GA_Index max_ptnum, GA_Index min_primnum, GA_Index max_primnum, bool just_P=false, bool keep_vector_lengths=true, bool check_pasting=true, bool neg_determinant_flipvector=true, bool update_ptnormals=false, GEO_Delta *geodelta=0, bool updateaffectednormals=false, const char *attribpattern=NULL)
 Don't use update_ptnormals, except for compatibility; use updateaffectednormals. More...
 
template<typename FLOAT_T >
void translate (const UT_Vector3T< FLOAT_T > &delta, const GA_PrimitiveGroup *primGrp=0, const GA_PointGroup *pointClosure=0, bool check_pasting=true, bool update_ptnormals=false, GEO_Delta *geodelta=0, bool updateaffectednormals=false, const char *attribpattern=NULL)
 Don't use update_ptnormals, except for compatibility; use updateaffectednormals. More...
 
template<typename FLOAT_T >
void transformPoints (const UT_Matrix4T< FLOAT_T > &mat, const GA_Range &points, bool just_P=false, bool keep_vector_lengths=true, bool check_pasting=true, bool neg_determinant_flipvector=true, bool update_ptnormals=false, GEO_Delta *geodelta=0, bool updateaffectednormals=false, const char *attribpattern=NULL)
 
template<typename FLOAT_T >
void transformPoints (const UT_Matrix4T< FLOAT_T > &mat, const GA_PointGroup *pointGroup=0, const GA_PrimitiveGroup *primClosure=0, bool just_P=false, bool keep_vector_lengths=true, bool check_pasting=true, bool neg_determinant_flipvector=true, bool update_ptnormals=false, GEO_Delta *geodelta=0, bool updateaffectednormals=false, const char *attribpattern=NULL)
 
template<typename FLOAT_T , bool INVERT = false>
void transformPointsByAttribute (const GA_ROHandleT< UT_Matrix4T< FLOAT_T > > &xformhandle, const GA_Range &points, bool keep_vector_lengths=true, bool updateaffectednormals=true, const char *attribpattern=NULL)
 
template<typename FLOAT_T , bool INVERT = false>
void transformPointsByAttribute (const GA_ROHandleT< UT_Matrix3T< FLOAT_T > > &xformhandle, const GA_Range &points, bool keep_vector_lengths=true, bool updateaffectednormals=true, const char *attribpattern=NULL)
 
template<typename FLOAT_T , bool INVERT = false>
void transformPointsByAttribute (const GA_ROHandleT< UT_QuaternionT< FLOAT_T > > &xformhandle, const GA_Range &points, bool keep_vector_lengths=true, bool updateaffectednormals=true, const char *attribpattern=NULL)
 
template<typename FLOAT_T , bool INVERT = false>
void translatePointsByAttribute (const GA_ROHandleT< UT_Vector3T< FLOAT_T > > &xformhandle, const GA_Range &points, bool keep_vector_lengths=true, bool updateaffectednormals=true, const char *attribpattern=NULL)
 
template<typename FLOAT_T >
void translatePoints (const UT_Vector3T< FLOAT_T > &delta, const GA_PointGroup *pointGroup=0, bool check_pasting=true, bool update_ptnormals=false, GEO_Delta *geodelta=0, bool updateaffectednormals=false, const char *attribpattern=NULL)
 Don't use update_ptnormals, except for compatibility; use updateaffectednormals. More...
 
template<typename FLOAT_T >
void transformEdges (const UT_Matrix4T< FLOAT_T > &mat, const GA_EdgeGroup *edgegrp=0, const GA_PrimitiveGroup *primclosure=0, bool just_P=false, bool keep_vector_lengths=true, bool check_pasting=true, bool neg_determinant_flipvector=true, bool update_ptnormals=false, GEO_Delta *geodelta=0, bool updateaffectednormals=false, const char *attribpattern=NULL)
 
template<typename FLOAT_T >
void translateEdges (const UT_Vector3T< FLOAT_T > &delta, const GA_EdgeGroup *edgegrp=0, bool check_pasting=true, bool update_ptnormals=false, GEO_Delta *geodelta=0, bool updateaffectednormals=false, const char *attribpattern=NULL)
 Don't use update_ptnormals, except for compatibility; use updateaffectednormals. More...
 
template<typename FLOAT_T >
void transformBreakpoints (const UT_Matrix4T< FLOAT_T > &mat, const GA_BreakpointGroup *grp=0, bool just_P=false, bool update_ptnormals=false, GEO_Delta *geodelta=0, bool updateaffectednormals=false, const char *attribpattern=NULL)
 
template<typename FLOAT_T >
void translateBreakpoints (const UT_Vector3T< FLOAT_T > &delta, const GA_BreakpointGroup *grp=0, bool update_ptnormals=false, GEO_Delta *geodelta=0, bool updateaffectednormals=false, const char *attribpattern=NULL)
 Don't use update_ptnormals, except for compatibility; use updateaffectednormals. More...
 
template<typename FLOAT_T >
void transformGroup (const UT_Matrix4T< FLOAT_T > &mat, const GA_Group &grp, bool just_P=false, bool keep_vector_lengths=true, bool check_pasting=true, bool neg_determinant_flipvector=true, const GA_PointGroup *ptclosure=0, const GA_PrimitiveGroup *primclosure=0, bool update_ptnormals=false, GEO_Delta *geodelta=0, bool updateaffectednormals=false, const char *attribpattern=NULL)
 
template<typename FLOAT_T >
void translateGroup (const UT_Vector3T< FLOAT_T > &delta, const GA_Group &grp, bool check_pasting=true, const GA_PointGroup *ptclosure=0, bool update_ptnormals=false, GEO_Delta *geodelta=0, bool updateaffectednormals=false, const char *attribpattern=NULL)
 Don't use update_ptnormals, except for compatibility; use updateaffectednormals. More...
 
void visualizeSoftPoints (const GEO_Rolloff &rolloff, const GA_PointGroup *ptgroup, UT_ColorRamp ramp)
 
void computeSoftPointFalloff (const GEO_Rolloff &rolloff, const GA_PointGroup *ptgroup, const SoftSymmetryParms *symmetry, const GA_RWHandleF &falloff)
 
void computeSoftPointFalloff (const GEO_Rolloff &rolloff, const GA_EdgeGroup *edgegroup, const SoftSymmetryParms *symmetry, const GA_RWHandleF &falloff)
 
void computeNormalInternal (GA_Offset ptoff, UT_Vector3 &nml)
 
void computeNormal (const GEO_Primitive &prim, UT_Vector3 &nml) const
 This is the same as prim.computeNormal() More...
 
void computeNormal (const GA_Edge &edge, UT_Vector3 &nml) const
 
void computeNormalInternal (const GA_Edge &edge, UT_Vector3 &nml)
 
void computeNormal (const GA_Breakpoint &bkpt, UT_Vector3 &nml) const
 
void computeNormalAndTangents (const GA_Breakpoint &bkpt, UT_Vector3 &nml, UT_Vector3 *u_tangent, UT_Vector3 *v_tangent, bool normalize) const
 
void normalTranslatePoints (float length=1.0F, int check_pasting=1, const GA_PointGroup *grp=0, int update_ptnormals=0, GEO_Delta *geodelta=0, bool updateaffectednormals=false)
 
void normalTranslatePrimitives (float length=1.0F, int check_pasting=1, const GA_PrimitiveGroup *grp=0, int update_ptnormals=0, GEO_Delta *geodelta=0, bool updateaffectednormals=false)
 
void normalTranslate (const GA_PointGroup &grp, float length=1.0F, int check_pasting=1, int update_ptnormals=0, GEO_Delta *geodelta=0, bool updateaffectednormals=false)
 
void normalTranslate (const GA_PrimitiveGroup &grp, float length=1.0F, int check_pasting=1, int update_ptnormals=0, GEO_Delta *geodelta=0, bool updateaffectednormals=false)
 
void normalTranslate (const GA_EdgeGroup &grp, float length=1.0F, int check_pasting=1, int update_ptnormals=0, GEO_Delta *geodelta=0, bool updateaffectednormals=false)
 
void normalTranslate (const GA_BreakpointGroup &grp, float length=1.0F, int check_pasting=1, int update_ptnormals=0, GEO_Delta *geodelta=0, bool updateaffectednormals=false)
 
void normalTranslateGroup (const GA_Group &grp, float length=1.0F, int check_pasting=1, int update_ptnormals=0, GEO_Delta *geodelta=0, bool updateaffectednormals=false)
 
void updateAffectedNormals (const GA_Range &ptrange, GEO_Delta *geodelta=0, bool allsametransform=false)
 
template<typename FLOAT_T >
void slideTransformEdges (const UT_Matrix4T< FLOAT_T > &mat, const GA_EdgeGroup *edgegrp=0, const GA_PrimitiveGroup *primclosure=0, bool just_P=false, bool keep_vector_lengths=true, bool check_pasting=true, bool neg_determinant_flipvector=true, bool update_ptnormals=false, GEO_Delta *geodelta=0, bool updateaffectednormals=false)
 
template<typename FLOAT_T >
void slideTransformPoints (const UT_Matrix4T< FLOAT_T > &mat, const GA_PointGroup *ptgrp=0, const GA_PrimitiveGroup *primclosure=0, bool just_P=false, bool keep_vector_lengths=true, bool check_pasting=true, bool neg_determinant_flipvector=true, bool update_ptnormals=false, GEO_Delta *geodelta=0, bool updateaffectednormals=false, GEO_PointSliderCache *slider_cache=0)
 
template<typename FLOAT_T >
void slideTransformPrimitives (const UT_Matrix4T< FLOAT_T > &mat, const GA_PrimitiveGroup *primgrp=0, const GA_PointGroup *ptclosure=0, bool just_P=false, bool keep_vector_lengths=true, bool check_pasting=true, bool neg_determinant_flipvector=true, bool update_ptnormals=false, GEO_Delta *geodelta=0, bool updateaffectednormals=false, GEO_PointSliderCache *slider_cache=0)
 
template<typename FLOAT_T >
void slideTransformGroup (const UT_Matrix4T< FLOAT_T > &mat, const GA_Group &grp, bool just_P=false, bool keep_vector_lengths=true, bool check_pasting=true, bool neg_determinant_flipvector=true, const GA_PointGroup *ptclosure=0, const GA_PrimitiveGroup *primclosure=0, bool update_ptnormals=false, GEO_Delta *geodelta=0, bool updateaffectednormals=false, GEO_PointSliderCache *slider_cache=0)
 
void softTransformPoints (const UT_XformOrder &order, float tx, float ty, float tz, float rx, float ry, float rz, float sx, float sy, float sz, float s_xy, float s_xz, float s_yz, float px, float py, float pz, float prx, float pry, float prz, const GEO_Rolloff &rolloff, const GA_PointGroup *ptgroup=0, const SoftSymmetryParms *symmetry=0, int just_P=0, int keep_vector_lengths=1, int check_pasting=1, int neg_determinant_flipvector=1, int update_ptnormals=0, GEO_Delta *geodelta=0, bool updateaffectednormals=false, const char *attribpattern=NULL, const GA_RWHandleF *falloff_output=NULL, bool *falloff_written=NULL)
 
void softTransformEdges (const UT_XformOrder &order, float tx, float ty, float tz, float rx, float ry, float rz, float sx, float sy, float sz, float s_xy, float s_xz, float s_yz, float px, float py, float pz, float prx, float pry, float prz, const GEO_Rolloff &rolloff, const GA_EdgeGroup *edgegrp=0, const SoftSymmetryParms *symmetry=0, int just_P=0, int keep_vector_lengths=1, int check_pasting=1, int neg_determinant_flipvector=1, int update_ptnormals=0, GEO_Delta *geodelta=0, bool updateaffectednormals=false, const char *attribpattern=NULL, const GA_RWHandleF *falloff_output=NULL, bool *falloff_written=NULL)
 
void softTransformPoints (const LocalXformContext *local, const UT_XformOrder &order, float tx, float ty, float tz, float rx, float ry, float rz, float sx, float sy, float sz, float s_xy, float s_xz, float s_yz, float px, float py, float pz, float prx, float pry, float prz, const GEO_Rolloff &rolloff, const GA_PointGroup *ptgroup=0, const SoftSymmetryParms *symmetry=0, int just_P=0, int keep_vector_lengths=1, int check_pasting=1, int neg_determinant_flipvector=1, int update_ptnormals=0, GEO_Delta *geodelta=0, bool updateaffectednormals=false, const char *attribpattern=NULL, const GA_RWHandleF *falloff_output=NULL, bool *falloff_written=NULL)
 
void softTransformEdges (const LocalXformContext *local, const UT_XformOrder &order, float tx, float ty, float tz, float rx, float ry, float rz, float sx, float sy, float sz, float s_xy, float s_xz, float s_yz, float px, float py, float pz, float prx, float pry, float prz, const GEO_Rolloff &rolloff, const GA_EdgeGroup *edgegrp=0, const SoftSymmetryParms *symmetry=0, int just_P=0, int keep_vector_lengths=1, int check_pasting=1, int neg_determinant_flipvector=1, int update_ptnormals=0, GEO_Delta *geodelta=0, bool updateaffectednormals=false, const char *attribpattern=NULL, const GA_RWHandleF *falloff_output=NULL, bool *falloff_written=NULL)
 
void softTranslatePoints (const UT_Vector3 &delta, const GEO_Rolloff &rolloff, const GA_PointGroup *ptgroup=0, const SoftSymmetryParms *symmetry=0, int check_pasting=1, int update_ptnormals=0, GEO_Delta *geodelta=0, bool updateaffectednormals=false, const char *attribpattern=NULL, const GA_RWHandleF *falloff_output=NULL, bool *falloff_written=NULL)
 
void softTranslateEdges (const UT_Vector3 &delta, const GEO_Rolloff &rolloff, const GA_EdgeGroup *edgegrp=0, const SoftSymmetryParms *symmetry=0, int check_pasting=1, int update_ptnormals=0, GEO_Delta *geodelta=0, bool updateaffectednormals=false, const char *attribpattern=NULL, const GA_RWHandleF *falloff_output=NULL, bool *falloff_written=NULL)
 
void softNormalTranslatePoints (float distance, const GEO_Rolloff &rolloff, const GA_PointGroup *ptgroup=0, const SoftSymmetryParms *symmetry=0, int along_lead_normal=1, int check_pasting=1, int update_ptnormals=0, GEO_Delta *geodelta=0, bool updateaffectednormals=false, const GA_RWHandleF *falloff_output=NULL, bool *falloff_written=NULL)
 
GA_Attributenormal (bool internal=false, const GA_PrimitiveGroup *primgroup=NULL)
 
void normal (UT_Vector3Array &output, bool use_internaln=true) const
 Return normals computed from the geometry, ignoring the "N" attribute. More...
 
void normal (const GA_RWHandleV3 &attrib, const GA_PrimitiveGroup *primgroup=NULL) const
 
void getVertexNormals (UT_Vector3Array &output) const
 Add and compute vertex normal attributes. Returns the normals. More...
 
bool getCaptureRegionRootPath (UT_String &root_path, CaptureType t=CAPTURE_BONE) const
 
bool setCaptureRegionRootPath (const UT_String &root_path, CaptureType t=CAPTURE_BONE)
 
int getCaptureRegionIndex (const UT_String &cregion_name, CaptureType t=CAPTURE_BONE)
 
int addCaptureRegion (const UT_String &cregion_name, const UT_Matrix4 &parent_xform, const GEO_Detail *tube_gdp)
 
int addCaptureRegion (const UT_String &cregion_name, CaptureType type)
 
int removeCaptureRegion (const UT_String &cregion_name, CaptureType t=CAPTURE_BONE)
 
void setCaptureWeight (int cregion_index, float weight, const GA_PointGroup *ptgroup=NULL, GEO_Delta *geodelta=NULL, bool add_weight=false, bool clamp_negative=false, bool normalizeweight=false, CaptureType t=CAPTURE_BONE)
 Set the capture weight on a group of points. More...
 
void setCaptureWeight (int cregion_index, float weight, GA_Offset ptoff, GEO_Delta *geodelta=NULL, bool add_weight=false, bool clamp_negative=false, bool normalizeweight=false, CaptureType t=CAPTURE_BONE)
 Set the capture weight on a point. More...
 
float getCaptureWeight (int cregion_index, GA_Offset ptoff, CaptureType t=CAPTURE_BONE) const
 Get the capture weight of a point. More...
 
bool addAverageCaptureWeight (const GA_PointGroup *ptgroup, const UT_String &root_path, UT_StringMap< float * > &averages) const
 Get the average capture weight of a set of points. More...
 
void getCaptureWeights (GA_Offset ptoff, UT_IntArray &regions, UT_FloatArray &weights, CaptureType t=CAPTURE_BONE) const
 
void clearCaptureWeights (GA_Offset ptoff, CaptureType t=CAPTURE_BONE)
 
void colorPointsByCaptureWeight (const UT_Array< const UT_Vector3 * > &colors, const UT_Vector3 &zero_weight_color, CaptureType t=CAPTURE_BONE, VisualizationType vistype=VISTYPE_MULTIPLE, UT_ColorRamp singlevismode=UT_COLORRAMP_FALSE)
 Color points according to their capture (normalized) weight. More...
 
void colorPointsByCaptureWeight (const UT_Array< const UT_Vector3 * > &colors, const UT_Vector3 &zero_weight_color, CaptureType t, VisualizationType vistype, UT_ColorRamp singlevismode, bool normalize)
 
void normalizeCaptureWeights (const GA_PointGroup *ptgroup=NULL, CaptureType t=CAPTURE_BONE)
 
void clampCaptureWeights (const GA_PointGroup *ptgroup=NULL, bool clamp_low_flag=true, float low_threshold=0.0f, float low_val=0.0f, bool clamp_hi_flag=false, float hi_threshold=1.0f, float hi_val=1.0f, CaptureType t=GEO_Detail::CAPTURE_BONE)
 
void normalizeRelativeCaptureWeights (int idx, GA_Offset ptoff, GEO_Delta *delta=NULL)
 This specifies a capture index that is exempt from normalization. More...
 
GA_Offset insertPointOffset (GA_Index beforeWhich=GA_INVALID_INDEX)
 
SYS_FORCE_INLINE GA_Offset appendPointOffset ()
 
GA_Offset insertPointCopy (GA_Offset src, GA_PointWrangler &wrangler, GA_Index beforeWhich=GA_INVALID_INDEX)
 
GA_Offset insertPointCopy (GA_Offset src, GA_Index beforeWhich=GA_INVALID_INDEX)
 
GA_Offset appendPointCopy (GA_Offset src, GA_PointWrangler &wrangler)
 Append a point, copying data from the source point. More...
 
GA_Offset appendPointCopy (GA_Offset src)
 
SYS_FORCE_INLINE GA_Size deletePoints (const GA_PointGroup &point_group, GA_DestroyPointMode mode=GA_LEAVE_PRIMITIVES)
 
GEO_PrimitiveinsertPrimitive (const GA_PrimitiveTypeId &type, const GEO_Primitive *beforeWhich=NULL)
 
SYS_FORCE_INLINE GEO_PrimitiveappendPrimitive (const GA_PrimitiveTypeId &type)
 
virtual bool destroyPrimitiveOffset (GA_Offset offset, bool and_points=false)
 
virtual GA_Size destroyPrimitiveOffsets (const GA_Range &it, bool and_points=false)
 
GA_Size deletePrimitives (const GA_PrimitiveGroup &primGrp, bool and_points=false)
 
GA_Size deletePrimitives (const UT_Array< GEO_Primitive * > &prims_in, bool and_points=false)
 
virtual void deleteBreakpoints (const GA_BreakpointGroup &bkptgrp)
 
int getBBox (UT_BoundingBox *bbox, const GA_PrimitiveGroup *g=0) const
 
int getBBox (UT_BoundingBox &bbox, const UT_Matrix4R &transform, const GA_PrimitiveGroup *g=0) const
 
virtual int getBSphere (UT_BoundingSphere *bsphere, const GA_PrimitiveGroup *g=0, int updateRequired=0) const
 
int getPointBBox (UT_BoundingBox *bbox, const GA_PointGroup *g=0) const
 
int getPointBBox (UT_BoundingBox &bbox, const UT_Matrix4R &transform, const GA_PointGroup *g=0) const
 
virtual int getPointBSphere (UT_BoundingSphere *bsphere, const GA_PointGroup *g=0, int accuratebounds=0) const
 
int getVertexBBox (UT_BoundingBox *bbox, const GA_VertexGroup *g=0) const
 
int getVertexBBox (UT_BoundingBox &bbox, const UT_Matrix4R &transform, const GA_VertexGroup *g=0) const
 
int getEdgeBBox (UT_BoundingBox &bbox, const GA_EdgeGroup &grp) const
 
int getEdgeBBox (UT_BoundingBox &bbox, const UT_Matrix4R &transform, const GA_EdgeGroup &grp) const
 
virtual int getEdgeBSphere (UT_BoundingSphere &bsphere, const GA_EdgeGroup &grp, int accuratebounds=0) const
 
virtual int getBreakpointBBox (UT_BoundingBox &bbox, const GA_BreakpointGroup &grp) const
 
virtual int getBreakpointBBox (UT_BoundingBox &bbox, const UT_Matrix4R &transform, const GA_BreakpointGroup &grp) const
 
virtual int getBreakpointBSphere (UT_BoundingSphere &bsphere, const GA_BreakpointGroup &grp, int accuratebounds=0) const
 
virtual int getGroupBBox (UT_BoundingBox *bbox, const GA_Group *grp) const
 
virtual int getGroupBBox (UT_BoundingBox &bbox, const UT_Matrix4R &transform, const GA_Group *grp) const
 
virtual int getGroupBSphere (UT_BoundingSphere *bsphere, const GA_Group *grp, int accuratebounds) const
 
int getPointAttribBBox (const UT_StringRef &name, UT_BoundingBox *bbox, const GA_PointGroup *g=0) const
 
int getPointAttribBBox (const UT_StringRef &name, UT_BoundingBox *bbox, const GA_PrimitiveGroup &g) const
 
int getPointAttribBBox (const UT_StringRef &name, UT_BoundingBox *bbox, const GA_EdgeGroup &g) const
 
int getPointAttribBBox (const UT_StringRef &name, UT_BoundingBox *bbox, const GA_VertexGroup &g) const
 
template<typename T >
bool getPointAttribCentroid (UT_Vector3T< T > &centroid, const GA_Attribute &attrib, const GA_PointGroup *grp=0) const
 
int getPointAttribGroupBBox (const UT_StringRef &name, UT_BoundingBox *bbox, const GA_Group *grp) const
 
int getVertexAttribBBox (const UT_StringRef &name, UT_BoundingBox *bbox, const GA_PointGroup *g=0) const
 
int getVertexAttribBBox (const UT_StringRef &name, UT_BoundingBox *bbox, const GA_PrimitiveGroup &g) const
 
int getVertexAttribBBox (const UT_StringRef &name, UT_BoundingBox *bbox, const GA_EdgeGroup &g) const
 
int getVertexAttribBBox (const UT_StringRef &name, UT_BoundingBox *bbox, const GA_VertexGroup &g) const
 
int getVertexAttribGroupBBox (const UT_StringRef &name, UT_BoundingBox *bbox, const GA_Group *grp) const
 
void copyVertexAttributes (GEO_Vertex dest, const GEO_Vertex &src) const
 Copy vertex attributes from source to destination. More...
 
void copyVertexAttributes (GA_Offset dest, GA_Offset src, GA_VertexWrangler &wrangler) const
 
void copyPointVertexAttributes (GEO_Vertex dest, const GEO_Vertex &src, bool copy_point_P=true) const
 Copy vertex AND point attributes. More...
 
void copyPointVertexAttributes (GA_Offset dest_vtx, GA_Offset src_vtx, const GA_AttributeRefMap &vertex_attribs, const GA_AttributeRefMap &point_attribs)
 
void copyPointVertexAttributes (GA_Offset dest_vtx, GA_Offset src_vtx, GA_VertexWrangler &vertex_wrangler, GA_PointWrangler &point_wrangler, bool copy_point_P)
 
void copyFullVertex (GEO_Vertex dest, const GEO_Vertex &src) const
 Copy vertex attributes AND change the point reference of the vertex. More...
 
void copyFullVertex (GA_Offset dest_vtx, GA_Offset src_vtx, GA_VertexWrangler &vertex_wrangler)
 Copy vertex attributes AND change the point reference of the vertex. More...
 
void copyPrimitiveAttributes (GEO_Primitive &dest, const GEO_Primitive &src)
 Copy primitive attributes. More...
 
void copyPrimitiveGroups (GEO_Primitive &dest, const GEO_Primitive &src) const
 
void copyVertex (GEO_Vertex dest, const GEO_Vertex &src, int shallow=0) const
 
void copyVertex (GA_Offset dest, GA_Offset src, GA_AttributeRefMap &vertex_attribs, GA_AttributeRefMap *point_attribs)
 
void copyVertex (GA_Offset dest, GA_Offset src, GA_VertexWrangler &vertex_wrangler, GA_PointWrangler *point_wrangler)
 
void copyVertex (GA_Offset dest, GA_Offset src, GA_VertexWrangler &vertex_wrangler, GA_PointWrangler &point_wrangler, bool copy_point_p)
 
void fixSplineWeights ()
 
GA_AttributeaddNormalAttribute (GA_AttributeOwner who, GA_Storage s=GA_STORE_INVALID)
 
GA_AttributeaddTextureAttribute (GA_AttributeOwner who, GA_Storage s=GA_STORE_INVALID)
 
GA_AttributeaddVelocityAttribute (GA_AttributeOwner who, GA_Storage s=GA_STORE_INVALID)
 
GA_AttributeaddAngularVelocityAttribute (GA_AttributeOwner who, GA_Storage s=GA_STORE_INVALID)
 
GA_AttributeaddOrientAttribute (GA_AttributeOwner who, GA_Storage s=GA_STORE_INVALID)
 
GA_AttributeaddAlphaAttribute (GA_AttributeOwner who, GA_Storage s=GA_STORE_INVALID)
 
GA_AttributeaddComAttribute (GA_AttributeOwner who, GA_Storage s=GA_STORE_INVALID)
 
GA_AttributeaddDiffuseAttribute (GA_AttributeOwner who, GA_Storage s=GA_STORE_INVALID)
 
GA_AttributeaddDistanceAttribute (GA_AttributeOwner who, GA_Storage s=GA_STORE_INVALID)
 
GA_AttributeaddLODAttribute (GA_AttributeOwner who, GA_Storage s=GA_STORE_INVALID)
 
GA_AttributeaddRestAttribute (GA_AttributeOwner who, GA_Storage s=GA_STORE_INVALID)
 
GA_AttributeaddTubeCaptureAttribute (GA_Storage s=GA_STORE_INVALID)
 
GA_AttributeaddCaptureFrameAttribute (CaptureType t=CAPTURE_BONE, GA_Storage s=GA_STORE_INVALID)
 Add the detail's capture frame attribute for capture type t. More...
 
GA_AttributeaddCaptureSkelRootAttribute (CaptureType t=CAPTURE_BONE)
 Add the bone capture skeleton root detail attribute. More...
 
GA_AttributeaddPtIndexPairAttribute (const UT_StringHolder &name, geo_NPairs n_pairs, GA_Storage s=GA_STORE_INVALID)
 
GA_AttributeaddPointCaptureAttribute (geo_NPairs n_pairs, CaptureType t=CAPTURE_BONE, GA_Storage s=GA_STORE_INVALID)
 Add the (index, weight) point attribute for capture type t. More...
 
GA_AttributeaddPointCaptureAlphaAttribute (float dflt, GA_Storage s=GA_STORE_INVALID)
 Add the bone capture alpha point attribute. More...
 
const GA_AttributefindNormalAttribute (GA_AttributeOwner who) const
 
GA_AttributefindNormalAttribute (GA_AttributeOwner who)
 
const GA_AttributefindTextureAttribute (GA_AttributeOwner who) const
 
GA_AttributefindTextureAttribute (GA_AttributeOwner who)
 
const GA_AttributefindVelocityAttribute (GA_AttributeOwner who) const
 
GA_AttributefindVelocityAttribute (GA_AttributeOwner who)
 
const GA_AttributefindAlphaAttribute (GA_AttributeOwner who) const
 
GA_AttributefindAlphaAttribute (GA_AttributeOwner who)
 
const GA_AttributefindComAttribute (GA_AttributeOwner who) const
 
GA_AttributefindComAttribute (GA_AttributeOwner who)
 
const GA_AttributefindDiffuseAttribute (GA_AttributeOwner who) const
 
GA_AttributefindDiffuseAttribute (GA_AttributeOwner who)
 
const GA_AttributefindDistanceAttribute (GA_AttributeOwner who) const
 
GA_AttributefindDistanceAttribute (GA_AttributeOwner who)
 
const GA_AttributefindLODAttribute (GA_AttributeOwner who) const
 
GA_AttributefindLODAttribute (GA_AttributeOwner who)
 
const GA_AttributefindRestAttribute (GA_AttributeOwner who) const
 
GA_AttributefindRestAttribute (GA_AttributeOwner who)
 
const GA_AttributefindTubeCaptureAttribute () const
 
GA_AttributefindTubeCaptureAttribute ()
 
GA_ROHandleS findMaterialAttribute (GA_AttributeOwner who) const
 
const GA_AttributefindInternalNormalAttribute () const
 
GA_AttributefindInternalNormalAttribute ()
 
const GA_AttributefindCaptureFrameAttribute (CaptureType t=CAPTURE_BONE) const
 
GA_AttributefindCaptureFrameAttribute (CaptureType t=CAPTURE_BONE)
 
const GA_AttributefindCaptureSkelRootAttribute (CaptureType t=CAPTURE_BONE) const
 Find the offset for the bone capture skeleton root detail attribute. More...
 
GA_AttributefindCaptureSkelRootAttribute (CaptureType t=CAPTURE_BONE)
 
const GA_AttributefindPointCaptureAttribute (CaptureType t=CAPTURE_BONE) const
 
GA_AttributefindPointCaptureAttribute (CaptureType t=CAPTURE_BONE)
 
const GA_AttributefindPointCaptureAlphaAttribute () const
 Find the offset for the bone capture alpha point attribute. More...
 
GA_AttributefindPointCaptureAlphaAttribute ()
 
const GA_AttributefindPtIndexPairAttribute (const UT_StringRef &name) const
 Find the offset for a custom (index, weight) point attribute. More...
 
GA_AttributefindPtIndexPairAttribute (const UT_StringRef &name)
 
void destroyNormalAttribute (GA_AttributeOwner who)
 
void destroyInternalNormalAttribute ()
 
void destroyTextureAttribute (GA_AttributeOwner who)
 
void destroyVelocityAttribute (GA_AttributeOwner who)
 
void destroyAlphaAttribute (GA_AttributeOwner who)
 
void destroyComAttribute (GA_AttributeOwner who)
 
void destroyDiffuseAttribute (GA_AttributeOwner who)
 
void destroyDistanceAttribute (GA_AttributeOwner who)
 
void destroyLODAttribute (GA_AttributeOwner who)
 
void destroyRestAttribute (GA_AttributeOwner who)
 
void destroyTubeCaptureAttribute ()
 
void destroyCaptureFrameAttribute (CaptureType t=CAPTURE_BONE)
 Destroy the detail's capture frame attribute for capture type t. More...
 
void destroyCaptureSkelRootAttribute (CaptureType t=CAPTURE_BONE)
 Destroy the bone capture skeleton root detail attribute. More...
 
void destroyPointCaptureAttribute (CaptureType t=CAPTURE_BONE)
 
void destroyPointCaptureAlphaAttribute ()
 Destroy the bone capture alpha point attribute. More...
 
void destroyPtIndexPairAttribute (const UT_StringRef &name)
 Destroy a custom (index, weight) point attribute. More...
 
bool getMetaRestAnchorPath (UT_String &anchorPath) const
 
UT_StringHolder getStdAttributeName (GEO_Standard_Attributes name, int layer=-1) const
 
int getAttributeLayer (const char *attr_name) const
 
int getCurrentLayer () const
 These handle layers: More...
 
void setCurrentLayer (int layer)
 
void setNumLayers (int numlayer)
 
int getNumLayers () const
 
void setLayerMerge (int preclear, int mask, int srcblend, int dstblend)
 These get and set the CURRENT layer's merge mode: More...
 
void getLayerMerge (int &preclear, int &mask, int &srcblend, int &dstblend) const
 
void addVariableName (const char *attr, const char *varname)
 
void removeVariableName (const char *varname)
 
void getVariableNameMap (UT_String &result) const
 
void traverseVariableNames (int(*function)(const char *attr, const char *varname, void *data), void *data) const
 Traverses the variable name mappings currently present: More...
 
GA_AttributegrowPointCaptureAttribute (geo_NPairs num_added_pairs, CaptureType t=CAPTURE_BONE)
 increase the memory size of the attribute More...
 
SYS_FORCE_INLINE GA_AttributeaddPointAttrib (const GA_Attribute *src)
 
SYS_FORCE_INLINE GA_AttributeaddPointAttrib (GA_AttributeScope scope, const UT_StringHolder &n, const UT_Options *creation_args, const GA_AttributeOptions *attribute_options, const UT_StringRef &attribtype)
 
SYS_FORCE_INLINE GA_AttributeaddPointAttrib (const UT_StringHolder &n, const UT_Options *creation_args, const GA_AttributeOptions *attribute_options, const UT_StringRef &attribtype)
 
SYS_FORCE_INLINE const
GA_Attribute
findPointAttrib (const GA_Attribute &src) const
 
SYS_FORCE_INLINE GA_AttributefindPointAttrib (const GA_Attribute &src)
 
SYS_FORCE_INLINE const
GA_Attribute
findPointVectorAttrib (GA_AttributeScope s, const UT_StringRef &n) const
 Looks for a 3-float point attribute. More...
 
SYS_FORCE_INLINE const
GA_Attribute
findPointVectorAttrib (const UT_StringRef &n) const
 
SYS_FORCE_INLINE GA_AttributefindPointVectorAttrib (GA_AttributeScope s, const UT_StringRef &n)
 
SYS_FORCE_INLINE GA_AttributefindPointVectorAttrib (const UT_StringRef &n)
 
SYS_FORCE_INLINE void destroyPointAttrib (GA_AttributeScope scope, const UT_StringRef &n, const GA_AttributeFilter *filter=NULL)
 
SYS_FORCE_INLINE void destroyPointAttrib (const UT_StringRef &n, const GA_AttributeFilter *filter=NULL)
 
bool promotePointAttrib (GA_AttributeScope scope, const UT_StringRef &name)
 
SYS_FORCE_INLINE bool promotePointAttrib (const UT_StringRef &name)
 
SYS_FORCE_INLINE GA_AttributeaddVertexAttrib (const GA_Attribute *src)
 
SYS_FORCE_INLINE GA_AttributeaddVertexAttrib (GA_AttributeScope scope, const UT_StringHolder &n, const UT_Options *creation_args, const GA_AttributeOptions *attribute_options, const UT_StringRef &attribtype)
 
SYS_FORCE_INLINE GA_AttributeaddVertexAttrib (const UT_StringHolder &n, const UT_Options *creation_args, const GA_AttributeOptions *attribute_options, const UT_StringRef &attribtype)
 
SYS_FORCE_INLINE const
GA_Attribute
findVertexAttrib (const GA_Attribute &src) const
 
SYS_FORCE_INLINE GA_AttributefindVertexAttrib (const GA_Attribute &src)
 
SYS_FORCE_INLINE const
GA_Attribute
findVertexVectorAttrib (GA_AttributeScope s, const UT_StringRef &n) const
 Looks for a 3-float vertex attribute. More...
 
SYS_FORCE_INLINE const
GA_Attribute
findVertexVectorAttrib (const UT_StringRef &n) const
 
SYS_FORCE_INLINE GA_AttributefindVertexVectorAttrib (GA_AttributeScope s, const UT_StringRef &n)
 
SYS_FORCE_INLINE GA_AttributefindVertexVectorAttrib (const UT_StringRef &n)
 
SYS_FORCE_INLINE void destroyVertexAttrib (GA_AttributeScope scope, const UT_StringRef &n, const GA_AttributeFilter *filter=NULL)
 
SYS_FORCE_INLINE void destroyVertexAttrib (const UT_StringRef &n, const GA_AttributeFilter *filter=NULL)
 
bool demoteVertexAttrib (GA_AttributeScope scope, const UT_StringRef &name)
 
SYS_FORCE_INLINE bool demoteVertexAttrib (const UT_StringRef &name)
 
SYS_FORCE_INLINE GA_AttributeaddPrimAttrib (const GA_Attribute *src)
 
SYS_FORCE_INLINE GA_AttributeaddPrimAttrib (GA_AttributeScope scope, const UT_StringHolder &n, const UT_Options *creation_args, const GA_AttributeOptions *attribute_options, const UT_StringRef &attribtype)
 
SYS_FORCE_INLINE GA_AttributeaddPrimAttrib (const UT_StringHolder &n, const UT_Options *creation_args, const GA_AttributeOptions *attribute_options, const UT_StringRef &attribtype)
 
SYS_FORCE_INLINE const
GA_Attribute
findPrimAttrib (const GA_Attribute &src) const
 
SYS_FORCE_INLINE GA_AttributefindPrimAttrib (const GA_Attribute &src)
 
SYS_FORCE_INLINE void destroyPrimAttrib (GA_AttributeScope scope, const UT_StringRef &n, const GA_AttributeFilter *filter=NULL)
 
SYS_FORCE_INLINE void destroyPrimAttrib (const UT_StringRef &n, const GA_AttributeFilter *filter=NULL)
 
SYS_FORCE_INLINE GA_AttributeaddGlobalAttrib (const GA_Attribute *src)
 
SYS_FORCE_INLINE GA_AttributeaddGlobalAttrib (GA_AttributeScope scope, const UT_StringHolder &n, const UT_Options *creation_args, const GA_AttributeOptions *attribute_options, const UT_StringRef &attribtype)
 
SYS_FORCE_INLINE GA_AttributeaddGlobalAttrib (const UT_StringHolder &n, const UT_Options *creation_args, const GA_AttributeOptions *attribute_options, const UT_StringRef &attribtype)
 
SYS_FORCE_INLINE const
GA_Attribute
findGlobalAttrib (const GA_Attribute &src) const
 
SYS_FORCE_INLINE GA_AttributefindGlobalAttrib (const GA_Attribute &src)
 
SYS_FORCE_INLINE void destroyGlobalAttrib (GA_AttributeScope scope, const UT_StringRef &n, const GA_AttributeFilter *filter=NULL)
 
SYS_FORCE_INLINE void destroyGlobalAttrib (const UT_StringRef &n, const GA_AttributeFilter *filter=NULL)
 
GEO_PrimList primitives ()
 Query the internal structures: More...
 
const GEO_PrimList primitives () const
 
SYS_FORCE_INLINE const
GA_AttributeDict
pointAttribs () const
 
SYS_FORCE_INLINE const
GA_AttributeDict
primitiveAttribs () const
 
SYS_FORCE_INLINE const
GA_AttributeDict
vertexAttribs () const
 
SYS_FORCE_INLINE const
GA_AttributeDict
attribs () const
 
bool hasMetaPrimitives () const
 
bool hasPastedPrimitives () const
 
bool hasQuadricPrimitives () const
 
bool hasParticlePrimitives () const
 
bool hasVolumePrimitives () const
 
bool hasTransformingPrimitives () const
 
bool hasCustomPrimitives () const
 
GA_Size getMetaCount () const
 
GA_Size getPastedCount () const
 
GA_Size getQuadricCount () const
 
GA_Size getParticleCount () const
 
GA_Size getVolumeCount () const
 
bool getStandardAttributes (const char *s, GEO_Standard_Attributes &a)
 
bool mergeCaptureProperties (GA_Attribute *my_atr, const GA_Attribute *src_atr, UT_IntArray &new_indices)
 
GEO_AttributeHandle getPointAttribute (const char *attrib_name) const
 
GEO_AttributeHandle getPointAttribute (const char *attrib_name)
 
GEO_AttributeHandle getPrimAttribute (const char *attrib_name) const
 
GEO_AttributeHandle getPrimAttribute (const char *attrib_name)
 
GEO_AttributeHandle getVertexAttribute (const char *attrib_name) const
 
GEO_AttributeHandle getVertexAttribute (const char *attrib_name)
 
GEO_AttributeHandle getDetailAttribute (const char *attrib_name) const
 
GEO_AttributeHandle getDetailAttribute (const char *attrib_name)
 
GEO_AttributeHandle getAttribute (GA_AttributeOwner dict, const char *attrib_name) const
 
GEO_AttributeHandle getAttribute (GA_AttributeOwner dict, const char *attrib_name)
 
bool changeAttributeStorage (GA_AttributeOwner dict, const UT_StringRef &name, GA_Storage new_storage)
 
bool changePointAttributeStorage (const UT_StringRef &nm, GA_Storage s)
 
bool changeVertexAttributeStorage (const UT_StringRef &nm, GA_Storage s)
 
bool changePrimAttributeStorage (const UT_StringRef &nm, GA_Storage s)
 
bool changeDetailAttributeStorage (const UT_StringRef &nm, GA_Storage s)
 
GA_Size getPointAdjacentPolygons (GEO_PointAdjArray &adjacencies, GA_Offset poly_off) const
 
GA_Size getPointAdjacentPolygons (GA_OffsetArray &polygons, GA_Offset poly_off) const
 
GA_Size getEdgeAdjacentPolygons (GEO_EdgeAdjArray &adjacencies, GA_Offset poly_off) const
 
GA_Size getEdgeAdjacentPolygons (GA_OffsetArray &polygons, GA_Offset poly_off) const
 
const GEO_PrimitivefindPrimitiveByName (const char *nametomatch, const GA_PrimCompat::TypeMask &mask=GEO_PrimTypeCompat::GEOPRIMALL, const char *nameattrib="name", int matchnumber=0) const
 
GEO_PrimitivefindPrimitiveByName (const char *nametomatch, const GA_PrimCompat::TypeMask &mask=GEO_PrimTypeCompat::GEOPRIMALL, const char *nameattrib="name", int matchnumber=0)
 
void findAllPrimitivesByName (UT_Array< const GEO_Primitive * > &primlist, const char *nametomatch, const GA_PrimCompat::TypeMask &mask=GEO_PrimTypeCompat::GEOPRIMALL, const char *nameattrib="name") const
 Like findPrimitiveByName, but adds all matching primitives to the list. More...
 
void findAllPrimitivesByName (UT_Array< GEO_Primitive * > &primlist, const char *nametomatch, const GA_PrimCompat::TypeMask &mask=GEO_PrimTypeCompat::GEOPRIMALL, const char *nameattrib="name")
 
void mergeDetailAttributes (const GEO_Detail &src, int num_pts_prev)
 
void destroyPointGroup (GA_PointGroup *g)
 
void destroyPrimitiveGroup (GA_PrimitiveGroup *g)
 
void destroyVertexGroup (GA_VertexGroup *g)
 
bool destroyPointGroup (const char *name)
 
bool destroyPrimitiveGroup (const char *name)
 
bool destroyVertexGroup (const char *name)
 
void mergeGroups (const GEO_Detail &src, bool override, unsigned mask=GA_GMASK_FULL_MASK)
 
GA_PointGroupmergeGroup (const GEO_Detail &src, const GA_PointGroup &group, bool override=true)
 
GA_PrimitiveGroupmergeGroup (const GEO_Detail &src, const GA_PrimitiveGroup &group, bool override=true)
 
GA_VertexGroupmergeGroup (const GEO_Detail &src, const GA_VertexGroup &group, GA_OffsetArray &map_cache, bool override=true)
 
GA_EdgeGroupmergeGroup (const GEO_Detail &src, const GA_EdgeGroup &group, bool override=true)
 
GA_AttributeaddAttribute (const UT_StringHolder &name, const UT_Options *creation_args, const GA_AttributeOptions *attribute_options, const UT_StringRef &attribtype, GA_AttributeOwner who, GA_AttributeScope scope=GA_SCOPE_PUBLIC)
 Some common methods for the standard guys. More...
 
GA_AttributegrowTuple (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name, int added_size)
 
SYS_FORCE_INLINE GA_AttributegrowTuple (GA_AttributeOwner owner, const UT_StringRef &name, int added_size)
 
void destroyAttribute (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name, const GA_AttributeFilter *filter=0)
 
SYS_FORCE_INLINE void destroyAttribute (GA_AttributeOwner owner, const UT_StringRef &name, const GA_AttributeFilter *filter=0)
 
SYS_FORCE_INLINE GEO_PrimitivegetGEOPrimitive (GA_Offset primoff)
 
SYS_FORCE_INLINE const
GEO_Primitive
getGEOPrimitive (GA_Offset off) const
 
GEO_PrimitivegetGEOPrimitiveByIndex (GA_Index idx)
 
const GEO_PrimitivegetGEOPrimitiveByIndex (GA_Index idx) const
 
GA_Size deletePoints (const GA_Range &range, GA_DestroyPointMode mode=GA_LEAVE_PRIMITIVES)
 
GA_Size deletePrimitives (const GA_Range &range, bool and_points=false)
 
bool deletePrimitive (GA_Primitive &prim, bool and_points=false)
 
bool setDetailAttributeS (const UT_StringHolder &aname, const char *value)
 
bool setDetailAttributeS (const UT_StringHolder &aname, const UT_StringArray &s)
 
bool setDetailAttributeR (const UT_StringHolder &aname, const UT_Ramp &ramp)
 
bool setDetailAttributeF (const UT_StringHolder &aname, float v)
 
bool setDetailAttributeF (const UT_StringHolder &aname, float v1, float v2)
 
bool setDetailAttributeF (const UT_StringHolder &aname, const UT_Vector2 &v)
 
bool setDetailAttributeI (const UT_StringHolder &aname, int v)
 
GA_Size getPointGroupAdjacentToPrimitiveGroup (const GA_PrimitiveGroup *in_prim_grp, GA_PointGroup *adj_pt_grp)
 
GA_Size getPointGroupAdjacentToPrimitiveRange (const GA_Range &in_prim_rng, GA_PointGroup *adj_pt_rng)
 
GA_Size getVertexGroupAdjacentToPrimitiveGroup (const GA_PrimitiveGroup *in_prim_grp, GA_VertexGroup *adj_vtx_grp)
 
GA_Size getVertexGroupAdjacentToPrimitiveRange (const GA_Range &in_prim_rng, GA_VertexGroup *adj_vtx_rng)
 
const GA_AttributefindFloatTuple (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name, int min_size=1, int max_size=-1) const
 
SYS_FORCE_INLINE const
GA_Attribute
findFloatTuple (GA_AttributeOwner owner, const UT_StringRef &name, int min_size=1, int max_size=-1) const
 
GA_AttributefindFloatTuple (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name, int min_size=1, int max_size=-1)
 
SYS_FORCE_INLINE GA_AttributefindFloatTuple (GA_AttributeOwner owner, const UT_StringRef &name, int min_size=1, int max_size=-1)
 
const GA_AttributefindIntTuple (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name, int min_size=1, int max_size=-1) const
 
SYS_FORCE_INLINE const
GA_Attribute
findIntTuple (GA_AttributeOwner owner, const UT_StringRef &name, int min_size=1, int max_size=-1) const
 
GA_AttributefindIntTuple (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name, int min_size=1, int max_size=-1)
 
SYS_FORCE_INLINE GA_AttributefindIntTuple (GA_AttributeOwner owner, const UT_StringRef &name, int min_size=1, int max_size=-1)
 
const GA_AttributefindNumericTuple (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name, int min_size=1, int max_size=-1) const
 findNumericTuple will find either float or int. More...
 
SYS_FORCE_INLINE const
GA_Attribute
findNumericTuple (GA_AttributeOwner owner, const UT_StringRef &name, int min_size=1, int max_size=-1) const
 
GA_AttributefindNumericTuple (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name, int min_size=1, int max_size=-1)
 findNumericTuple will find either float or int. More...
 
SYS_FORCE_INLINE GA_AttributefindNumericTuple (GA_AttributeOwner owner, const UT_StringRef &name, int min_size=1, int max_size=-1)
 
const GA_AttributefindStringTuple (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name, int min_size=1, int max_size=-1) const
 
SYS_FORCE_INLINE const
GA_Attribute
findStringTuple (GA_AttributeOwner owner, const UT_StringRef &name, int min_size=1, int max_size=-1) const
 
GA_AttributefindStringTuple (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name, int min_size=1, int max_size=-1)
 
SYS_FORCE_INLINE GA_AttributefindStringTuple (GA_AttributeOwner owner, const UT_StringRef &name, int min_size=1, int max_size=-1)
 
const GA_AttributefindIndexPair (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name) const
 
SYS_FORCE_INLINE const
GA_Attribute
findIndexPair (GA_AttributeOwner owner, const UT_StringRef &name) const
 
GA_AttributefindIndexPair (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name)
 
SYS_FORCE_INLINE GA_AttributefindIndexPair (GA_AttributeOwner owner, const UT_StringRef &name)
 
const GA_AttributefindFloatArray (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name, int min_size=1, int max_size=-1) const
 
SYS_FORCE_INLINE const
GA_Attribute
findFloatArray (GA_AttributeOwner owner, const UT_StringRef &name, int min_size=1, int max_size=-1) const
 
GA_AttributefindFloatArray (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name, int min_size=1, int max_size=-1)
 
SYS_FORCE_INLINE GA_AttributefindFloatArray (GA_AttributeOwner owner, const UT_StringRef &name, int min_size=1, int max_size=-1)
 
const GA_AttributefindIntArray (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name, int min_size=1, int max_size=-1) const
 
SYS_FORCE_INLINE const
GA_Attribute
findIntArray (GA_AttributeOwner owner, const UT_StringRef &name, int min_size=1, int max_size=-1) const
 
GA_AttributefindIntArray (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name, int min_size=1, int max_size=-1)
 
SYS_FORCE_INLINE GA_AttributefindIntArray (GA_AttributeOwner owner, const UT_StringRef &name, int min_size=1, int max_size=-1)
 
const GA_AttributefindNumericArray (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name, int min_size=1, int max_size=-1) const
 
SYS_FORCE_INLINE const
GA_Attribute
findNumericArray (GA_AttributeOwner owner, const UT_StringRef &name, int min_size=1, int max_size=-1) const
 
GA_AttributefindNumericArray (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name, int min_size=1, int max_size=-1)
 
SYS_FORCE_INLINE GA_AttributefindNumericArray (GA_AttributeOwner owner, const UT_StringRef &name, int min_size=1, int max_size=-1)
 
const GA_AttributefindStringArray (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name, int min_size=1, int max_size=-1) const
 
SYS_FORCE_INLINE const
GA_Attribute
findStringArray (GA_AttributeOwner owner, const UT_StringRef &name, int min_size=1, int max_size=-1) const
 
GA_AttributefindStringArray (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name, int min_size=1, int max_size=-1)
 
SYS_FORCE_INLINE GA_AttributefindStringArray (GA_AttributeOwner owner, const UT_StringRef &name, int min_size=1, int max_size=-1)
 
GA_AttributeaddTuple (GA_Storage storage, GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringHolder &name, int tuple_size, const GA_Defaults &defaults=GA_Defaults(0.0), const UT_Options *creation_args=0, const GA_AttributeOptions *attribute_options=0, const GA_ReuseStrategy &reuse=GA_ReuseStrategy())
 
SYS_FORCE_INLINE GA_AttributeaddTuple (GA_Storage storage, GA_AttributeOwner owner, const UT_StringHolder &name, int tuple_size, const GA_Defaults &defaults=GA_Defaults(0.0), const UT_Options *creation_args=0, const GA_AttributeOptions *attribute_options=0, const GA_ReuseStrategy &reuse=GA_ReuseStrategy())
 
GA_AttributeaddFloatTuple (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringHolder &name, int tuple_size, const GA_Defaults &defaults=GA_Defaults(0.0), const UT_Options *creation_args=0, const GA_AttributeOptions *attribute_options=0, GA_Storage storage=GA_STORE_REAL32, const GA_ReuseStrategy &reuse=GA_ReuseStrategy())
 
SYS_FORCE_INLINE GA_AttributeaddFloatTuple (GA_AttributeOwner owner, const UT_StringHolder &name, int tuple_size, const GA_Defaults &defaults=GA_Defaults(0.0), const UT_Options *creation_args=0, const GA_AttributeOptions *attribute_options=0, GA_Storage storage=GA_STORE_REAL32, const GA_ReuseStrategy &reuse=GA_ReuseStrategy())
 
GA_AttributeaddIntTuple (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringHolder &name, int tuple_size, const GA_Defaults &defaults=GA_Defaults(0), const UT_Options *creation_args=0, const GA_AttributeOptions *attribute_options=0, GA_Storage storage=GA_STORE_INT32, const GA_ReuseStrategy &reuse=GA_ReuseStrategy())
 
SYS_FORCE_INLINE GA_AttributeaddIntTuple (GA_AttributeOwner owner, const UT_StringHolder &name, int tuple_size, const GA_Defaults &defaults=GA_Defaults(0), const UT_Options *creation_args=0, const GA_AttributeOptions *attribute_options=0, GA_Storage storage=GA_STORE_INT32, const GA_ReuseStrategy &reuse=GA_ReuseStrategy())
 
GA_AttributeaddStringTuple (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringHolder &name, int tuple_size, const UT_Options *creation_args=0, const GA_AttributeOptions *attribute_options=0, const GA_ReuseStrategy &reuse=GA_ReuseStrategy())
 
SYS_FORCE_INLINE GA_AttributeaddStringTuple (GA_AttributeOwner owner, const UT_StringHolder &name, int tuple_size, const UT_Options *creation_args=0, const GA_AttributeOptions *attribute_options=0, const GA_ReuseStrategy &reuse=GA_ReuseStrategy())
 
GA_AttributeaddFloatArray (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringHolder &name, int tuple_size=1, const UT_Options *creation_args=0, const GA_AttributeOptions *attribute_options=0, GA_Storage storage=GA_STORE_REAL32, const GA_ReuseStrategy &reuse=GA_ReuseStrategy())
 
SYS_FORCE_INLINE GA_AttributeaddFloatArray (GA_AttributeOwner owner, const UT_StringHolder &name, int tuple_size=1, const UT_Options *creation_args=0, const GA_AttributeOptions *attribute_options=0, GA_Storage storage=GA_STORE_REAL32, const GA_ReuseStrategy &reuse=GA_ReuseStrategy())
 
GA_AttributeaddIntArray (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringHolder &name, int tuple_size=1, const UT_Options *creation_args=0, const GA_AttributeOptions *attribute_options=0, GA_Storage storage=GA_STORE_INT32, const GA_ReuseStrategy &reuse=GA_ReuseStrategy())
 
SYS_FORCE_INLINE GA_AttributeaddIntArray (GA_AttributeOwner owner, const UT_StringHolder &name, int tuple_size=1, const UT_Options *creation_args=0, const GA_AttributeOptions *attribute_options=0, GA_Storage storage=GA_STORE_INT32, const GA_ReuseStrategy &reuse=GA_ReuseStrategy())
 
GA_AttributeaddStringArray (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringHolder &name, int tuple_size=1, const UT_Options *creation_args=0, const GA_AttributeOptions *attribute_options=0, GA_Storage storage=GA_STORE_STRING, const GA_ReuseStrategy &reuse=GA_ReuseStrategy())
 
SYS_FORCE_INLINE GA_AttributeaddStringArray (GA_AttributeOwner owner, const UT_StringHolder &name, int tuple_size=1, const UT_Options *creation_args=0, const GA_AttributeOptions *attribute_options=0, GA_Storage storage=GA_STORE_STRING, const GA_ReuseStrategy &reuse=GA_ReuseStrategy())
 
- Public Member Functions inherited from GA_Detail
 GA_Detail (GA_PrimitiveFactory &factory, GA_Storage Pstorage=GA_STORE_REAL32, bool isprimary=true, bool full_topology=true)
 
virtual ~GA_Detail ()
 Destructor. More...
 
exint getUniqueId () const
 
void clear ()
 
GA_AttributegetP ()
 Convenience method to access the P attribute. More...
 
const GA_AttributegetP () const
 
UT_Vector2 getPos2 (GA_Offset ptoff) const
 The ptoff passed is the point offset. More...
 
SYS_FORCE_INLINE UT_Vector3 getPos3 (GA_Offset ptoff) const
 The ptoff passed is the point offset. More...
 
template<typename T >
bool getPos3AsArray (const GA_Range &ptrange, UT_Array< UT_Vector3T< T > > &positions) const
 
template<typename T >
bool setPos3FromArray (const GA_Range &ptrange, const UT_Array< UT_Vector3T< T > > &positions)
 
void setPos2 (GA_Offset ptoff, const UT_Vector2 &P)
 Set P from a UT_Vector2. More...
 
SYS_FORCE_INLINE void setPos3 (GA_Offset ptoff, const UT_Vector3 &P)
 Set P from a UT_Vector3. More...
 
SYS_FORCE_INLINE void setPos3 (GA_Offset ptoff, fpreal x, fpreal y, fpreal z)
 Set P given the x, y, z components. More...
 
SYS_FORCE_INLINE void translatePoint (GA_Offset ptoff, const UT_Vector3 &delta)
 
fpreal getPw (GA_Offset ptoff) const
 Get the homogeneous coordinate for a point. More...
 
void setPw (GA_Offset ptoff, fpreal w)
 Set the homogeneous coordinate for a point. More...
 
UT_Vector4 getPos4 (GA_Offset ptoff) const
 The ptoff passed is the point offset. More...
 
void setPos4 (GA_Offset ptoff, const UT_Vector4 &P)
 Set P from a UT_Vector4. More...
 
void setPos4 (GA_Offset ptoff, fpreal x, fpreal y, fpreal z, fpreal w)
 Set P given the x, y, z, w components. More...
 
SYS_FORCE_INLINE GA_Offset appendPoint ()
 Append a new point, returning its new data offset. More...
 
SYS_FORCE_INLINE GA_Offset appendPointBlock (GA_Size npoints)
 Append new points, returning the first offset of the contiguous block. More...
 
SYS_FORCE_INLINE GA_Size getNumPoints () const
 Return the number of points. More...
 
SYS_FORCE_INLINE GA_Offset getNumPointOffsets () const
 
SYS_FORCE_INLINE GA_Offset pointOffset (GA_Index index) const
 Given a point's index (in append order), return its data offset. More...
 
SYS_FORCE_INLINE GA_Index pointIndex (GA_Offset offset) const
 Given a point's data offset, return its index. More...
 
GA_Index reorderPoint (GA_Offset ptoff, GA_Index new_order)
 
GA_PrimitiveappendPrimitive (const GA_PrimitiveTypeId &type)
 Append a primitive by GA_PrimitiveTypeId. More...
 
GA_PrimitiveappendPrimitive (const UT_StringRef &type)
 Append a primitive by type name string. More...
 
GA_Offset appendPrimitiveBlock (const GA_PrimitiveTypeId &type, GA_Size nprimitives)
 Append a contiguous block of primitives by GA_PrimitiveTypeId. More...
 
GA_Offset appendPrimitivesAndVertices (const GA_PrimitiveTypeId &type, GA_Size nprimitives, GA_Size nvertices_each, GA_Offset &vertex_block_start, bool closed_flag=false)
 
GA_Offset appendPrimitivesAndVertices (const GA_PrimitiveTypeId &type, const GA_PolyCounts &vertex_counts, GA_Offset &vertex_block_start, bool closed_flag=false)
 
SYS_FORCE_INLINE GA_Size getNumPrimitives () const
 Return the number of primitives. More...
 
SYS_FORCE_INLINE GA_Offset getNumPrimitiveOffsets () const
 
SYS_FORCE_INLINE GA_Offset primitiveOffset (GA_Index index) const
 Given a primitive's index (in append order), return its data offset. More...
 
SYS_FORCE_INLINE GA_Index primitiveIndex (GA_Offset offset) const
 Given a primitive's data offset, return its index. More...
 
SYS_FORCE_INLINE GA_OffsetListRef getPrimitiveVertexList (GA_Offset primoff) const
 
SYS_FORCE_INLINE GA_Size getPrimitiveVertexCount (GA_Offset primoff) const
 
SYS_FORCE_INLINE GA_Offset getPrimitiveVertexOffset (GA_Offset primoff, GA_Size i) const
 
SYS_FORCE_INLINE int getPrimitiveTypeId (GA_Offset primoff) const
 
SYS_FORCE_INLINE bool getPrimitiveClosedFlag (GA_Offset primoff) const
 
SYS_FORCE_INLINE void setPrimitiveClosedFlag (GA_Offset primoff, bool closed)
 
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. More...
 
SYS_FORCE_INLINE GA_Offset appendVertex ()
 Append a vertex (for the entire detail) More...
 
SYS_FORCE_INLINE GA_Offset appendVertexBlock (GA_Size nvertices)
 Append new vertices, returning the first offset of the contiguous block. More...
 
SYS_FORCE_INLINE GA_Size getNumVertices () const
 Return the number verticies in the entire detail. More...
 
SYS_FORCE_INLINE GA_Offset getNumVertexOffsets () const
 
SYS_FORCE_INLINE GA_Offset vertexOffset (GA_Index index) const
 Given a vertex's index (in append order), return its data offset. More...
 
SYS_FORCE_INLINE GA_Index vertexIndex (GA_Offset offset) const
 Given a vertex's data offset, return its index. More...
 
SYS_FORCE_INLINE GA_Offset vertexPoint (GA_Offset vertex) const
 Given a vertex, return the point it references. More...
 
SYS_FORCE_INLINE GA_Offset vertexPrimitive (GA_Offset vertex) const
 
SYS_FORCE_INLINE GA_Offset pointVertex (GA_Offset point) const
 
SYS_FORCE_INLINE GA_Offset vertexToNextVertex (GA_Offset vtx) const
 
SYS_FORCE_INLINE 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. More...
 
GA_Size getPrimitivesReferencingPoint (GA_OffsetArray &primitives, GA_Offset point_offset) const
 Given a point offset, return a list of all primitives which reference it. More...
 
bool hasNoSharedPoints () const
 
bool destroyVertexOffset (GA_Offset offset)
 
bool destroyPrimitiveIndex (GA_Index index, bool and_points=false)
 
bool destroyPrimitive (GA_Primitive &prim, 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. More...
 
GA_Size destroyVertexOffsets (const GA_Range &range)
 
GA_Size destroyVertices (const GA_Range &range)
 
bool isPointUsed (GA_Offset point) const
 
bool isPointUsedFast (GA_Offset point) const
 
bool findUnusedPoints (GA_OffsetList *unused=nullptr) 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 ()
 
void bumpAllDataIds ()
 
void bumpDataIdsForRewire ()
 
void bumpDataIdsForAddOrRemove (bool added_or_removed_points, bool added_or_removed_vertices, bool added_or_removed_primitives)
 
bool defragment (GA_AttributeOwner owner, const UT_Options *options=nullptr)
 
bool defragment (const UT_Options *options=nullptr)
 
void sortVertexMapByPrimitiveUse ()
 
SYS_FORCE_INLINE bool destroyAttribute (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name)
 
SYS_FORCE_INLINE bool destroyAttribute (GA_AttributeOwner owner, const UT_StringRef &name)
 
SYS_FORCE_INLINE bool renameAttribute (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &fromName, const UT_StringHolder &toName)
 
GA_AttributecreateTupleAttribute (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringHolder &name, GA_Storage storage, int tuple_size, const GA_Defaults &defaults=GA_Defaults(0.0f), const UT_Options *create_args=nullptr, const GA_AttributeOptions *attribute_options=nullptr)
 
GA_AttributecreateTupleAttribute (GA_AttributeOwner owner, const UT_StringHolder &name, GA_Storage storage, int tuple_size, const GA_Defaults &defaults=GA_Defaults(0.0f), const UT_Options *create_args=nullptr, const GA_AttributeOptions *attribute_options=nullptr)
 
GA_AttributecreateStringAttribute (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringHolder &name, const UT_Options *create_args=nullptr, const GA_AttributeOptions *attribute_options=nullptr)
 
GA_AttributecreateStringAttribute (GA_AttributeOwner owner, const UT_StringHolder &name, const UT_Options *create_args=nullptr, const GA_AttributeOptions *attribute_options=nullptr)
 
SYS_FORCE_INLINE const
GA_Attribute
findAttribute (GA_AttributeScope scope, const UT_StringRef &name, const GA_AttributeOwner search_order[], int search_size) const
 
SYS_FORCE_INLINE const
GA_Attribute
findAttribute (const UT_StringRef &name, const GA_AttributeOwner search_order[], int search_size) const
 
SYS_FORCE_INLINE const
GA_Attribute
findAttribute (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name) const
 
SYS_FORCE_INLINE const
GA_Attribute
findAttribute (GA_AttributeOwner owner, const UT_StringRef &name) const
 
SYS_FORCE_INLINE const
GA_Attribute
findPointAttribute (GA_AttributeScope s, const UT_StringRef &name) const
 
SYS_FORCE_INLINE const
GA_Attribute
findPointAttribute (const UT_StringRef &name) const
 
SYS_FORCE_INLINE const
GA_Attribute
findVertexAttribute (GA_AttributeScope s, const UT_StringRef &name) const
 
SYS_FORCE_INLINE const
GA_Attribute
findVertexAttribute (const UT_StringRef &name) const
 
SYS_FORCE_INLINE const
GA_Attribute
findPrimitiveAttribute (GA_AttributeScope s, const UT_StringRef &name) const
 
SYS_FORCE_INLINE const
GA_Attribute
findPrimitiveAttribute (const UT_StringRef &name) const
 
SYS_FORCE_INLINE const
GA_Attribute
findGlobalAttribute (GA_AttributeScope s, const UT_StringRef &name) const
 
SYS_FORCE_INLINE const
GA_Attribute
findGlobalAttribute (const UT_StringRef &name) const
 
SYS_FORCE_INLINE GA_AttributefindAttribute (GA_AttributeScope scope, const UT_StringRef &name, const GA_AttributeOwner search_order[], int search_size)
 
SYS_FORCE_INLINE GA_AttributefindAttribute (const UT_StringRef &name, const GA_AttributeOwner search_order[], int search_size)
 
SYS_FORCE_INLINE GA_AttributefindAttribute (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringRef &name)
 
SYS_FORCE_INLINE GA_AttributefindAttribute (GA_AttributeOwner owner, const UT_StringRef &name)
 
SYS_FORCE_INLINE GA_AttributefindPointAttribute (GA_AttributeScope s, const UT_StringRef &name)
 
SYS_FORCE_INLINE GA_AttributefindPointAttribute (const UT_StringRef &name)
 
SYS_FORCE_INLINE GA_AttributefindVertexAttribute (GA_AttributeScope s, const UT_StringRef &name)
 
SYS_FORCE_INLINE GA_AttributefindVertexAttribute (const UT_StringRef &name)
 
SYS_FORCE_INLINE GA_AttributefindPrimitiveAttribute (GA_AttributeScope s, const UT_StringRef &name)
 
SYS_FORCE_INLINE GA_AttributefindPrimitiveAttribute (const UT_StringRef &name)
 
SYS_FORCE_INLINE GA_AttributefindGlobalAttribute (GA_AttributeScope s, const UT_StringRef &name)
 
SYS_FORCE_INLINE GA_AttributefindGlobalAttribute (const UT_StringRef &name)
 
GA_ElementGroupcreateElementGroup (GA_AttributeOwner owner, const UT_StringHolder &name, bool ordered=false)
 
GA_ElementGroupcreateInternalElementGroup (GA_AttributeOwner owner, bool ordered=false)
 
GA_ElementGroupfindElementGroup (GA_AttributeOwner owner, const UT_StringRef &name)
 
const GA_ElementGroupfindElementGroup (GA_AttributeOwner owner, const UT_StringRef &name) const
 
const GA_ElementGroupTablegetElementGroupTable (GA_AttributeOwner owner) const
 
SYS_FORCE_INLINE
GA_ElementGroupTable
getElementGroupTable (GA_AttributeOwner owner)
 
GA_GroupTablegetGroupTable (GA_GroupType group_type)
 
const GA_GroupTablegetGroupTable (GA_GroupType group_type) const
 
template<GA_AttributeOwner OWNER>
SYS_FORCE_INLINE
GA_ElementGroupTableT< OWNER >
::GROUP_TYPE * 
createElementGroup (const UT_StringHolder &name, bool ordered=false)
 
template<GA_AttributeOwner OWNER>
SYS_FORCE_INLINE
GA_ElementGroupTableT< OWNER >
::GROUP_TYPE * 
createInternalElementGroup (bool ordered=false)
 
template<GA_AttributeOwner OWNER>
SYS_FORCE_INLINE
GA_ElementGroupTableT< OWNER >
::GROUP_TYPE * 
findElementGroup (const UT_StringRef &name)
 
template<GA_AttributeOwner OWNER>
SYS_FORCE_INLINE const
GA_ElementGroupTableT< OWNER >
::GROUP_TYPE * 
findElementGroup (const UT_StringRef &name) const
 
void getElementGroupList (GA_AttributeOwner owner, UT_Array< const GA_ElementGroup * > &list) const
 
void getElementGroupList (GA_AttributeOwner owner, UT_Array< GA_ElementGroup * > &list)
 
SYS_FORCE_INLINE bool destroyElementGroup (GA_AttributeOwner owner, const UT_StringRef &name)
 
SYS_FORCE_INLINE bool destroyElementGroup (GA_AttributeOwner owner, const char *name)
 
bool destroyElementGroup (GA_ElementGroup *group)
 
bool destroyGroup (GA_Group *group)
 
SYS_FORCE_INLINE const
GA_PointGroup
findPointGroup (const UT_StringRef &name) const
 
SYS_FORCE_INLINE const
GA_VertexGroup
findVertexGroup (const UT_StringRef &name) const
 
SYS_FORCE_INLINE const
GA_PrimitiveGroup
findPrimitiveGroup (const UT_StringRef &name) const
 
SYS_FORCE_INLINE GA_PointGroupfindPointGroup (const UT_StringRef &name)
 
SYS_FORCE_INLINE GA_VertexGroupfindVertexGroup (const UT_StringRef &name)
 
SYS_FORCE_INLINE
GA_PrimitiveGroup
findPrimitiveGroup (const UT_StringRef &name)
 
GA_EdgeGroupcreateEdgeGroup (const UT_StringHolder &name)
 
GA_EdgeGroupcreateInternalEdgeGroup ()
 
const GA_EdgeGroupfindEdgeGroup (const UT_StringRef &name) const
 
GA_EdgeGroupfindEdgeGroup (const UT_StringRef &name)
 
void getEdgeGroupList (UT_Array< const GA_EdgeGroup * > &list) const
 
void getEdgeGroupList (UT_Array< GA_EdgeGroup * > &list)
 
SYS_FORCE_INLINE bool destroyEdgeGroup (const UT_StringRef &name)
 
SYS_FORCE_INLINE bool destroyEdgeGroup (GA_EdgeGroup *g)
 
GA_Size destroyEmptyGroups (GA_AttributeOwner owner)
 
GA_Size destroyAllEmptyGroups ()
 
const GA_IntrinsicManagergetIntrinsicManager () const
 
template<typename FUNCTOR >
SYS_FORCE_INLINE void forEachPoint (FUNCTOR &&functor) const
 
template<typename FUNCTOR >
SYS_FORCE_INLINE void forEachPoint (const GA_PointGroup *group, FUNCTOR &&functor) const
 
template<typename FUNCTOR >
SYS_FORCE_INLINE void forEachPoint (const GA_PointGroup *group, bool complement, FUNCTOR &&functor) const
 
template<typename FUNCTOR >
SYS_FORCE_INLINE void forEachPrimitive (FUNCTOR &&functor) const
 
template<typename FUNCTOR >
SYS_FORCE_INLINE void forEachPrimitive (const GA_PrimitiveGroup *group, FUNCTOR &&functor) const
 
template<typename FUNCTOR >
SYS_FORCE_INLINE void forEachPrimitive (const GA_PrimitiveGroup *group, bool complement, FUNCTOR &&functor) const
 
GA_Range getPointRange (const GA_PointGroup *group=0) const
 Get a range of all points in the detail. More...
 
GA_Range getPrimitiveRange (const GA_PrimitiveGroup *group=0) const
 Get a range of all primitives in the detail. More...
 
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. More...
 
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. More...
 
GA_Range getVertexRange (const GA_VertexGroup *group=0) const
 Get a range of all vertices in the detail. More...
 
GA_Range getGlobalRange () const
 Get a range representing the global (detail) data. More...
 
bool enlargeBoundingBox (UT_BoundingRect &box, const GA_Range &range) const
 
bool enlargeBoundingBox (UT_BoundingRect &box, const GA_Range &range, const GA_Attribute *P) const
 
bool enlargeBoundingBox (UT_BoundingBox &box, const GA_Range &range) const
 
bool enlargeBoundingBox (UT_BoundingBox &box, const GA_Range &range, const GA_Attribute *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 cloneCopyGroupsAndAttributes (const GA_Detail &src, bool copydetailattribs=false)
 
SYS_FORCE_INLINE void copyPoint (GA_Offset destptoff, GA_Offset srcptoff, const GA_AttributeFilter *filter=nullptr)
 
void copyVertex (GA_Offset destvtxoff, GA_Offset srcvtxoff, bool ref_point_dont_copy, const GA_AttributeFilter *filter=nullptr)
 
void baseMerge (const GA_Detail &src)
 Merge the source detail into this detail (using default options) More...
 
void baseMerge (const GA_Detail &src, GA_MergeOptions &options)
 Merge the source detail into this detail with options. More...
 
void replaceWith (const GA_Detail &src)
 
void replaceWithPoints (const GA_Detail &src)
 
virtual void clearCaches ()
 
void mergeGlobalAttributes (const GA_Detail &src)
 Merge global attributes (using default options) More...
 
void mergeGlobalAttributes (const GA_Detail &src, GA_MergeOptions &options)
 Merge source global attributes using options. More...
 
void cloneMissingAttributes (const GA_Detail &src, GA_AttributeOwner owner, const GA_AttributeFilter &filter)
 
void cloneMissingGroups (const GA_Detail &src, GA_AttributeOwner owner, const GA_AttributeFilter &filter)
 Clone any missing groups from the source detail. More...
 
bool registerIO (GA_IO *io) const
 Register an IO file format. More...
 
const GA_IOfindIO (const char *name=nullptr) const
 
void getIONames (UT_StringArray &names) const
 
IOStatus save (const char *filename, const GA_SaveOptions *options, UT_StringArray *errors=0) const
 
IOStatus save (std::ostream &os, bool binary, const GA_SaveOptions *options, UT_StringArray *errors=0) const
 
IOStatus save (UT_JSONWriter &w, const GA_SaveOptions *opts=0) const
 
IOStatus load (const char *filename, const GA_LoadOptions *opts=0, UT_StringArray *errors=0)
 Load a geometry file. More...
 
IOStatus load (UT_IStream &is, const GA_LoadOptions *opts=0, UT_StringArray *errors=0)
 Load a geometry file given a UT_IStream. More...
 
IOStatus load (UT_JSONParser &p, const GA_LoadOptions *opts=0, UT_StringArray *errors=0)
 
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. More...
 
void statGroups (GA_Stat &stat, uint level=0xffff) const
 Fill out only the group information on the stat. More...
 
virtual void statVolumes (GA_Stat &stat, uint level=0xffff) const
 Fill out only the volume information. More...
 
const GA_PrimitiveFactorygetPrimitiveFactory () const
 
virtual void refreshCachedHandles ()
 
void refreshCachedAttributes ()
 Refreshes the cached myP attribute. More...
 
void constructTailInitializers (GA_AttributeOwner owner, GA_Offset start, GA_Offset size=GA_Offset(1))
 
bool containsPrimitiveType (const GA_PrimitiveTypeId &type) const
 
GA_Size countPrimitiveType (const GA_PrimitiveTypeId &type) const
 
bool containsLocalTransformPrimitive () const
 
bool getPrimitivesOfType (const GA_PrimitiveTypeId &type, UT_Array< const GA_Primitive * > &prims) const
 
GA_PrimitiveTypeMask getPrimitiveTypeMaskAll () const
 
GA_PrimitiveTypeMask getPrimitiveTypeMask (const GA_PrimitiveGroup *group=0) const
 
const GA_AttributeInstanceMatrixgetInstanceMatrix () const
 Return cached attribute instance matrix pointer. More...
 
void clearInstanceMatrix ()
 
bool isPrimary () const
 
void flushCEWriteCaches ()
 
void flushCECaches ()
 
void copyChangedNonTransforming (const GA_Detail *inputgeo, GA_AttributeOwner owner)
 
void incrementMetaCacheCount ()
 
int64 getMetaCacheCount () const
 
void stashAll ()
 
void destroyStashed ()
 
const GA_AttributegetPwAttribute () const
 
GA_AttributegetPwAttribute ()
 
SYS_FORCE_INLINE GA_PrimitivegetPrimitive (GA_Offset prim_off)
 
SYS_FORCE_INLINE const
GA_Primitive
getPrimitive (GA_Offset prim_off) const
 
GA_PrimitivegetPrimitiveByIndex (GA_Index prim_idx)
 
const GA_PrimitivegetPrimitiveByIndex (GA_Index prim_idx) const
 
bool destroyPointOffset (GA_Offset ptoff, GA_DestroyPointMode mode=GA_LEAVE_PRIMITIVES, bool guarantee_no_vertex_references=false)
 
bool destroyPointIndex (GA_Index index, GA_DestroyPointMode mode=GA_LEAVE_PRIMITIVES, bool guarantee_no_vertex_references=false)
 
GA_Size destroyUnusedPoints (const GA_Range &point_range)
 
GA_Size destroyPointOffsets (const GA_Range &range, GA_DestroyPointMode mode=GA_LEAVE_PRIMITIVES, bool guarantee_no_vertex_references=false)
 
GA_Size destroyPoints (const GA_Range &range, GA_DestroyPointMode mode=GA_LEAVE_PRIMITIVES, bool guarantee_no_vertex_references=false)
 
GA_AttributeOwner getAttributeOwner (const GA_AttributeDict &dict) const
 
const GA_AttributeDictgetAttributeDict (GA_AttributeOwner owner) const
 
GA_AttributecreateAttribute (GA_AttributeOwner owner, GA_AttributeScope scope, const UT_StringHolder &name, const UT_Options *create_args, const GA_AttributeOptions *attribute_options, const UT_StringRef &attribtype)
 
GA_AttributecreateAttribute (GA_AttributeOwner owner, const UT_StringHolder &name, const UT_Options *create_args, const GA_AttributeOptions *attribute_options, const UT_StringRef &attribtype)
 
SYS_FORCE_INLINE GA_ATINumericcreateDetachedTupleAttribute (GA_AttributeOwner owner, GA_Storage storage, int tuple_size, const GA_Defaults &defaults=GA_Defaults(0.0f), const GA_AttributeOptions *attribute_options=nullptr) const
 
SYS_FORCE_INLINE GA_AttributecreateDetachedAttribute (GA_AttributeOwner owner, const UT_StringRef &attribtype, const UT_Options *create_args=nullptr, const GA_AttributeOptions *attribute_options=nullptr) const
 
SYS_FORCE_INLINE GA_AttributecreateDetachedAttribute (GA_AttributeOwner owner, const GA_AttributeType &attribtype, const UT_Options *create_args=nullptr, const GA_AttributeOptions *attribute_options=nullptr) const
 
template<typename T >
bool getAttributeAsArray (const GA_Attribute *atr, const GA_Range &range, UT_Array< T > &result) const
 Get/set all the point attribute data from/to a contiguous array. More...
 
template<typename T >
bool setAttributeFromArray (GA_Attribute *atr, const GA_Range &range, const UT_Array< T > &src)
 
GA_PointGroupTablepointGroups ()
 
const GA_PointGroupTablepointGroups () const
 
GA_PrimitiveGroupTableprimitiveGroups ()
 
const GA_PrimitiveGroupTableprimitiveGroups () const
 
GA_VertexGroupTablevertexGroups ()
 
const GA_VertexGroupTablevertexGroups () const
 
GA_EdgeGroupTableedgeGroups ()
 
const GA_EdgeGroupTableedgeGroups () const
 
GA_PointGroupnewPointGroup (const UT_StringHolder &name)
 
GA_VertexGroupnewVertexGroup (const UT_StringHolder &name)
 
GA_PrimitiveGroupnewPrimitiveGroup (const UT_StringHolder &name)
 
GA_EdgeGroupnewEdgeGroup (const UT_StringHolder &name)
 
GA_PointGroupnewInternalPointGroup ()
 
GA_VertexGroupnewInternalVertexGroup ()
 
GA_PrimitiveGroupnewInternalPrimitiveGroup ()
 
GA_EdgeGroupnewInternalEdgeGroup ()
 
GA_PointGroupnewDetachedPointGroup () const
 
GA_PrimitiveGroupnewDetachedPrimitiveGroup () const
 
GA_VertexGroupnewDetachedVertexGroup () const
 
GA_EdgeGroupnewDetachedEdgeGroup () const
 
GA_PointGroupnewPointGroup (const UT_StringHolder &name, bool internal)
 
GA_PrimitiveGroupnewPrimitiveGroup (const UT_StringHolder &name, bool internal)
 
GA_VertexGroupnewVertexGroup (const UT_StringHolder &name, bool internal)
 
GA_EdgeGroupnewEdgeGroup (const UT_StringHolder &name, bool internal)
 
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
 
GA_Size 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
 
GA_Size getIntrinsic (GA_LocalIntrinsic h, UT_String &val) const
 
GA_Size getIntrinsic (GA_LocalIntrinsic h, UT_StringArray &val) const
 
GA_Size getIntrinsic (GA_LocalIntrinsic h, int64 *v, GA_Size size) const
 
GA_Size getIntrinsic (GA_LocalIntrinsic h, fpreal64 *v, GA_Size sz) const
 
bool getIntrinsic (GA_LocalIntrinsic h, float &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, int &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Vector2 &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Vector3 &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Vector4 &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Matrix2 &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Matrix3 &v) const
 
bool getIntrinsic (GA_LocalIntrinsic h, UT_Matrix4 &v) const
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const char *value)
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const UT_StringArray &value)
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const char **val, GA_Size s)
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const int64 val)
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const fpreal64 val)
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const int64 *val, GA_Size sz)
 
GA_Size setIntrinsic (GA_LocalIntrinsic h, const fpreal64 *v, GA_Size sz)
 
template<typename FUNCTOR >
SYS_FORCE_INLINE void forEachPointBreak (FUNCTOR &&functor) const
 
template<typename FUNCTOR >
SYS_FORCE_INLINE void forEachPointBreak (const GA_PointGroup *group, FUNCTOR &&functor) const
 
template<typename FUNCTOR >
SYS_FORCE_INLINE void forEachPointBreak (const GA_PointGroup *group, bool complement, FUNCTOR &&functor) const
 
template<typename FUNCTOR >
SYS_FORCE_INLINE void forEachPrimitiveBreak (FUNCTOR &&functor) const
 
template<typename FUNCTOR >
SYS_FORCE_INLINE void forEachPrimitiveBreak (const GA_PrimitiveGroup *group, FUNCTOR &&functor) const
 
template<typename FUNCTOR >
SYS_FORCE_INLINE void forEachPrimitiveBreak (const GA_PrimitiveGroup *group, bool complement, FUNCTOR &&functor) const
 
void copyAttributes (GA_AttributeOwner owner, GA_Offset destoff, GA_Offset srcoff, const GA_AttributeFilter *filter=nullptr)
 
void copyAttributes (GA_AttributeOwner owner, GA_Offset destoff, const GA_Detail &srcdetail, GA_Offset srcoff, const GA_AttributeFilter *filter=nullptr)
 
IOStatus saveClassic (const char *, const GA_SaveOptions *) const
 
IOStatus saveClassic (std::ostream &os, bool, const GA_SaveOptions *) const
 
IOStatus statFile (const char *filename, GA_Stat &stat, uint level=0xffff, const GA_LoadOptions *opts=nullptr) const
 
IOStatus stat (UT_JSONParser &p, GA_Stat &stat, uint level) const
 
void addTailInitializer (GA_Attribute *attrib)
 
bool removeTailInitializer (GA_Attribute *attrib)
 
MantraGeometry * mantraGeometry ()
 
const MantraGeometry * mantraGeometry () const
 
void setMantraGeometry (MantraGeometry *m)
 
bool saveVertexPointReferenceH9 (std::ostream &os, int binary, GA_Offset vertex_offset) const
 
bool loadVertexH9 (UT_IStream &is, GA_Offset vertex_offset, const UT_Array< GA_AttribLoadDataH9 > &vtx_l)
 
bool saveVertexH9 (std::ostream &os, int binary, GA_Offset vertex_offset, const UT_Array< GA_AttribSaveDataH9 > &vtx_l) const
 

Static Public Member Functions

static UT_Matrix4 localSpaceXformMatrix (const UT_XformOrder &order, const UT_Vector3 &forward, const UT_Vector3 &up, float tx, float ty, float tz, float rx, float ry, float rz, float sx, float sy, float sz, float s_xy, float s_xz, float s_yz, float px, float py, float pz, float prx, float pry, float prz)
 
static const char * getPointCaptureAttribName (CaptureType type)
 
static const char * getPointCaptureIndexPropertyName (CaptureType type)
 
static const char * getPointCaptureFrameAttribName (CaptureType type)
 
static const char * getPointCaptureRootAttribName (CaptureType type)
 
static const char * getPointCaptureDataPropertyName (CaptureType type)
 
static GA_TypeInfo getStdAttributeTypeInfo (const char *name, int floattuplesize)
 
static int asciiMagicH9 ()
 Magic number for ASCII geometry files. More...
 
static int binaryMagicH9 ()
 Magic number for binary geometry files. More...
 
- Static Public Member Functions inherited from GA_Detail
static
GA_IntrinsicManager::Registrar 
registerIntrinsics (GA_PrimitiveFactory &factory)
 
template<typename FUNCTOR >
static void forEachOffset (FUNCTOR &&functor, const GA_IndexMap &index_map, const GA_ElementGroup *group=nullptr, bool complement=false)
 
template<typename FUNCTOR >
static void forEachOffsetBreak (FUNCTOR &&functor, const GA_IndexMap &index_map, const GA_ElementGroup *group=nullptr, bool complement=false)
 
static int64 printMemory (UT_WorkBuffer &buffer, bool include_total=true, int indent=3, const char *title="Geometry Memory Tracking")
 Debugging output of detail. More...
 
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)
 
static bool loadAttribDataH9 (UT_IStream &is, GA_Offset offset, const UT_Array< GA_AttribLoadDataH9 > &l)
 
static bool saveAttribDataH9 (std::ostream &os, int binary, GA_Offset offset, const UT_Array< GA_AttribSaveDataH9 > &l, char delim_ch= '(')
 

Protected Member Functions

virtual GA_Size localIntrinsicTupleSize (GA_IntrinsicEval &eval) const
 
virtual GA_Size localGetIntrinsicS (GA_IntrinsicEval &eval, UT_String &value) const
 
virtual GA_Size localGetIntrinsicSA (GA_IntrinsicEval &eval, UT_StringArray &value) const
 
virtual GA_Size localGetIntrinsicI (GA_IntrinsicEval &eval, int64 *value, GA_Size size) const
 
virtual GA_Size localGetIntrinsicF (GA_IntrinsicEval &eval, fpreal64 *value, GA_Size size) const
 
virtual GA_Size localSetIntrinsicS (GA_IntrinsicEval &eval, const char *value)
 
virtual GA_Size localSetIntrinsicSA (GA_IntrinsicEval &eval, const UT_StringArray &value)
 
virtual GA_Size localSetIntrinsicSS (GA_IntrinsicEval &eval, const char **value, GA_Size size)
 
virtual GA_Size localSetIntrinsicI (GA_IntrinsicEval &eval, const int64 *value, GA_Size size)
 
virtual GA_Size localSetIntrinsicF (GA_IntrinsicEval &eval, const fpreal64 *value, GA_Size size)
 
GA_Detail::IOStatus saveH9Stream (std::ostream &os, bool binary, const GA_SaveOptions *options) const
 
GA_Detail::IOStatus loadH9 (UT_IStream &is, const GA_LoadOptions *options)
 
bool convertIndexPairDataFromH9 ()
 
bool convertIndexPairDataToH9 ()
 
template<typename FLOAT_T >
void transformInternal (const UT_Matrix4T< FLOAT_T > &mat, const GA_Range &prim_range, const GA_Range &pt_range, bool just_P, bool keep_vector_lengths, bool check_pasting, bool neg_determinant_flipvector, bool update_ptnormals, GEO_Delta *geodelta, bool updateaffectednormals, const char *attribpattern)
 
virtual void privateComputeNormal (const GA_RWHandleV3 &normalattrib, const GA_Group *group, const float cuspangledegrees, const int method) const
 
- Protected Member Functions inherited from GA_Detail
void doConstructTailInitializers (GA_AttributeOwner owner, GA_Offset start, GA_Offset size)
 
bool loadPrimitivesH9 (UT_IStream &is, int count, const GA_FileFormatH9::PrimTypeXlate &type_map, const UT_Array< GA_AttribLoadDataH9 > &prim_attribs, const UT_Array< GA_AttribLoadDataH9 > &vtx_attribs)
 
bool savePrimitivesH9 (std::ostream &os, int binary, const UT_Array< const GA_Primitive * > &list, const GA_FileFormatH9::PrimTypeXlate &type_map, const UT_Array< GA_AttribSaveDataH9 > &prim_attribs, const UT_Array< GA_AttribSaveDataH9 > &vx_attribs) const
 
void splitAnyFloat4P ()
 

Static Protected Member Functions

static
GA_IntrinsicManager::Registrar 
registerIntrinsics (GA_PrimitiveFactory &factory)
 
static GA_Detail::IOStatus statH9Basic (UT_IStream &is, GA_Stat &sbuf, bool binstream)
 
- Static Protected Member Functions inherited from GA_Detail
static void finishLoadH9 (const UT_Array< GA_AttribLoadDataH9 > &attribs)
 

Friends

class GEO_IOTable
 
class GU_IOClassic
 
std::ostream & operator<< (std::ostream &os, const GEO_Detail &d)
 

Additional Inherited Members

- Static Public Attributes inherited from GA_Detail
static const int64 INVALID_CACHE_COUNT = -1
 

Detailed Description

Member Typedef Documentation

Definition at line 1838 of file GEO_Detail.h.

Member Enumeration Documentation

Methods for manipulating capture weights (GEO_CaptureWeight.C)

Enumerator
CAPTURE_BONE 
CAPTURE_META 
CAPTURE_WIRE 
CAPTURE_CLOTH 
CAPTURE_MUSCLE 

Definition at line 915 of file GEO_Detail.h.

Enumerator
VISTYPE_SINGLE 
VISTYPE_MULTIPLE 

Definition at line 1008 of file GEO_Detail.h.

Constructor & Destructor Documentation

GEO_Detail::GEO_Detail ( GA_PrimitiveFactory factory,
bool  full_topology = true 
)
virtual GEO_Detail::~GEO_Detail ( )
virtual

Member Function Documentation

GA_Attribute* GEO_Detail::addAlphaAttribute ( GA_AttributeOwner  who,
GA_Storage  s = GA_STORE_INVALID 
)
GA_Attribute* GEO_Detail::addAngularVelocityAttribute ( GA_AttributeOwner  who,
GA_Storage  s = GA_STORE_INVALID 
)
GA_Attribute* GEO_Detail::addAttribute ( const UT_StringHolder name,
const UT_Options creation_args,
const GA_AttributeOptions attribute_options,
const UT_StringRef attribtype,
GA_AttributeOwner  who,
GA_AttributeScope  scope = GA_SCOPE_PUBLIC 
)

Some common methods for the standard guys.

bool GEO_Detail::addAverageCaptureWeight ( const GA_PointGroup ptgroup,
const UT_String root_path,
UT_StringMap< float * > &  averages 
) const

Get the average capture weight of a set of points.

GA_Attribute* GEO_Detail::addCaptureFrameAttribute ( CaptureType  t = CAPTURE_BONE,
GA_Storage  s = GA_STORE_INVALID 
)

Add the detail's capture frame attribute for capture type t.

int GEO_Detail::addCaptureRegion ( const UT_String cregion_name,
const UT_Matrix4 parent_xform,
const GEO_Detail tube_gdp 
)

Add a new bone capture region. Sets the detail's capture transforms for the new region. Returns the index for this new region or -1 for failure.

int GEO_Detail::addCaptureRegion ( const UT_String cregion_name,
CaptureType  type 
)

Add a non-bone capture capture region of type type to this detail. Returns the index for this new region, or -1 for failure.

GA_Attribute* GEO_Detail::addCaptureSkelRootAttribute ( CaptureType  t = CAPTURE_BONE)

Add the bone capture skeleton root detail attribute.

GA_Attribute* GEO_Detail::addComAttribute ( GA_AttributeOwner  who,
GA_Storage  s = GA_STORE_INVALID 
)
GA_Attribute* GEO_Detail::addDistanceAttribute ( GA_AttributeOwner  who,
GA_Storage  s = GA_STORE_INVALID 
)
GA_Attribute* GEO_Detail::addFloatArray ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringHolder name,
int  tuple_size = 1,
const UT_Options creation_args = 0,
const GA_AttributeOptions attribute_options = 0,
GA_Storage  storage = GA_STORE_REAL32,
const GA_ReuseStrategy reuse = GA_ReuseStrategy() 
)

Convenience method to add a new floating point, or int array attribute.

If there's an existing attribute of the same name, the GA_ReuseStrategy will be used. By default, this will return the existing attribute if it is the same type. If not, it will try to replace it with a new one and copy the old data over.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::addFloatArray ( GA_AttributeOwner  owner,
const UT_StringHolder name,
int  tuple_size = 1,
const UT_Options creation_args = 0,
const GA_AttributeOptions attribute_options = 0,
GA_Storage  storage = GA_STORE_REAL32,
const GA_ReuseStrategy reuse = GA_ReuseStrategy() 
)
inline

Convenience method to add a new floating point, or int array attribute.

If there's an existing attribute of the same name, the GA_ReuseStrategy will be used. By default, this will return the existing attribute if it is the same type. If not, it will try to replace it with a new one and copy the old data over.

Definition at line 2530 of file GEO_Detail.h.

GA_Attribute* GEO_Detail::addFloatTuple ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringHolder name,
int  tuple_size,
const GA_Defaults defaults = GA_Defaults(0.0),
const UT_Options creation_args = 0,
const GA_AttributeOptions attribute_options = 0,
GA_Storage  storage = GA_STORE_REAL32,
const GA_ReuseStrategy reuse = GA_ReuseStrategy() 
)

Convenience method to add a new floating point, int or string tuple attribute.

If there's an existing attribute of the same name, the GA_ReuseStrategy will be used. By default, this will return the existing attribute if it is the same type. If not, it will try to replace it with a new one and copy the old data over.

Examples:
field3d/f3d_io.C, SIM/SIM_SolverHair.C, SIM/SNOW_Solver.C, SOP/SOP_BrushHairLen.C, SOP/SOP_CustomBrush.C, SOP/SOP_DetailAttrib.C, SOP/SOP_IKSample.C, and SOP/SOP_SParticle.C.
SYS_FORCE_INLINE GA_Attribute* GEO_Detail::addFloatTuple ( GA_AttributeOwner  owner,
const UT_StringHolder name,
int  tuple_size,
const GA_Defaults defaults = GA_Defaults(0.0),
const UT_Options creation_args = 0,
const GA_AttributeOptions attribute_options = 0,
GA_Storage  storage = GA_STORE_REAL32,
const GA_ReuseStrategy reuse = GA_ReuseStrategy() 
)
inline

Convenience method to add a new floating point, int or string tuple attribute.

If there's an existing attribute of the same name, the GA_ReuseStrategy will be used. By default, this will return the existing attribute if it is the same type. If not, it will try to replace it with a new one and copy the old data over.

Definition at line 2445 of file GEO_Detail.h.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::addGlobalAttrib ( const GA_Attribute src)
inline

Note: if attrib already exists, will return pointer to existing attrib.

Definition at line 1762 of file GEO_Detail.h.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::addGlobalAttrib ( GA_AttributeScope  scope,
const UT_StringHolder n,
const UT_Options creation_args,
const GA_AttributeOptions attribute_options,
const UT_StringRef attribtype 
)
inline

Definition at line 1769 of file GEO_Detail.h.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::addGlobalAttrib ( const UT_StringHolder n,
const UT_Options creation_args,
const GA_AttributeOptions attribute_options,
const UT_StringRef attribtype 
)
inline

Definition at line 1779 of file GEO_Detail.h.

GA_Attribute* GEO_Detail::addIntArray ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringHolder name,
int  tuple_size = 1,
const UT_Options creation_args = 0,
const GA_AttributeOptions attribute_options = 0,
GA_Storage  storage = GA_STORE_INT32,
const GA_ReuseStrategy reuse = GA_ReuseStrategy() 
)

Convenience method to add a new floating point, or int array attribute.

If there's an existing attribute of the same name, the GA_ReuseStrategy will be used. By default, this will return the existing attribute if it is the same type. If not, it will try to replace it with a new one and copy the old data over.

Examples:
SOP/SOP_ArrayAttrib.C.
SYS_FORCE_INLINE GA_Attribute* GEO_Detail::addIntArray ( GA_AttributeOwner  owner,
const UT_StringHolder name,
int  tuple_size = 1,
const UT_Options creation_args = 0,
const GA_AttributeOptions attribute_options = 0,
GA_Storage  storage = GA_STORE_INT32,
const GA_ReuseStrategy reuse = GA_ReuseStrategy() 
)
inline

Convenience method to add a new floating point, or int array attribute.

If there's an existing attribute of the same name, the GA_ReuseStrategy will be used. By default, this will return the existing attribute if it is the same type. If not, it will try to replace it with a new one and copy the old data over.

Definition at line 2555 of file GEO_Detail.h.

GA_Attribute* GEO_Detail::addIntTuple ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringHolder name,
int  tuple_size,
const GA_Defaults defaults = GA_Defaults(0),
const UT_Options creation_args = 0,
const GA_AttributeOptions attribute_options = 0,
GA_Storage  storage = GA_STORE_INT32,
const GA_ReuseStrategy reuse = GA_ReuseStrategy() 
)

Convenience method to add a new floating point, int or string tuple attribute.

If there's an existing attribute of the same name, the GA_ReuseStrategy will be used. By default, this will return the existing attribute if it is the same type. If not, it will try to replace it with a new one and copy the old data over.

Examples:
euclid/SOP_Euclid.C, and field3d/f3d_io.C.
SYS_FORCE_INLINE GA_Attribute* GEO_Detail::addIntTuple ( GA_AttributeOwner  owner,
const UT_StringHolder name,
int  tuple_size,
const GA_Defaults defaults = GA_Defaults(0),
const UT_Options creation_args = 0,
const GA_AttributeOptions attribute_options = 0,
GA_Storage  storage = GA_STORE_INT32,
const GA_ReuseStrategy reuse = GA_ReuseStrategy() 
)
inline

Convenience method to add a new floating point, int or string tuple attribute.

If there's an existing attribute of the same name, the GA_ReuseStrategy will be used. By default, this will return the existing attribute if it is the same type. If not, it will try to replace it with a new one and copy the old data over.

Definition at line 2472 of file GEO_Detail.h.

GA_Attribute* GEO_Detail::addLODAttribute ( GA_AttributeOwner  who,
GA_Storage  s = GA_STORE_INVALID 
)
GA_Attribute* GEO_Detail::addNormalAttribute ( GA_AttributeOwner  who,
GA_Storage  s = GA_STORE_INVALID 
)

Some useful alias functions, they simplify your life a lot Attribute handling

These alias methods return the offset of the (new) attribute, or -1 if they failed for some reason.

GA_Attribute* GEO_Detail::addOrientAttribute ( GA_AttributeOwner  who,
GA_Storage  s = GA_STORE_INVALID 
)
SYS_FORCE_INLINE GA_Attribute* GEO_Detail::addPointAttrib ( const GA_Attribute src)
inline
Examples:
SIM/SIM_SolverHair.C, and SIM/SNOW_Solver.C.

Definition at line 1566 of file GEO_Detail.h.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::addPointAttrib ( GA_AttributeScope  scope,
const UT_StringHolder n,
const UT_Options creation_args,
const GA_AttributeOptions attribute_options,
const UT_StringRef attribtype 
)
inline

Definition at line 1573 of file GEO_Detail.h.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::addPointAttrib ( const UT_StringHolder n,
const UT_Options creation_args,
const GA_AttributeOptions attribute_options,
const UT_StringRef attribtype 
)
inline

Definition at line 1583 of file GEO_Detail.h.

GA_Attribute* GEO_Detail::addPointCaptureAlphaAttribute ( float  dflt,
GA_Storage  s = GA_STORE_INVALID 
)

Add the bone capture alpha point attribute.

GA_Attribute* GEO_Detail::addPointCaptureAttribute ( geo_NPairs  n_pairs,
CaptureType  t = CAPTURE_BONE,
GA_Storage  s = GA_STORE_INVALID 
)

Add the (index, weight) point attribute for capture type t.

Examples:
SOP/SOP_BouncyAgent.C.
SYS_FORCE_INLINE GA_Attribute* GEO_Detail::addPrimAttrib ( const GA_Attribute src)
inline
SYS_FORCE_INLINE GA_Attribute* GEO_Detail::addPrimAttrib ( GA_AttributeScope  scope,
const UT_StringHolder n,
const UT_Options creation_args,
const GA_AttributeOptions attribute_options,
const UT_StringRef attribtype 
)
inline

Definition at line 1714 of file GEO_Detail.h.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::addPrimAttrib ( const UT_StringHolder n,
const UT_Options creation_args,
const GA_AttributeOptions attribute_options,
const UT_StringRef attribtype 
)
inline

Definition at line 1723 of file GEO_Detail.h.

GA_Attribute* GEO_Detail::addPtIndexPairAttribute ( const UT_StringHolder name,
geo_NPairs  n_pairs,
GA_Storage  s = GA_STORE_INVALID 
)
GA_Attribute* GEO_Detail::addRestAttribute ( GA_AttributeOwner  who,
GA_Storage  s = GA_STORE_INVALID 
)
GA_Attribute* GEO_Detail::addStringArray ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringHolder name,
int  tuple_size = 1,
const UT_Options creation_args = 0,
const GA_AttributeOptions attribute_options = 0,
GA_Storage  storage = GA_STORE_STRING,
const GA_ReuseStrategy reuse = GA_ReuseStrategy() 
)

Convenience method to add a new floating point, or int array attribute.

If there's an existing attribute of the same name, the GA_ReuseStrategy will be used. By default, this will return the existing attribute if it is the same type. If not, it will try to replace it with a new one and copy the old data over.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::addStringArray ( GA_AttributeOwner  owner,
const UT_StringHolder name,
int  tuple_size = 1,
const UT_Options creation_args = 0,
const GA_AttributeOptions attribute_options = 0,
GA_Storage  storage = GA_STORE_STRING,
const GA_ReuseStrategy reuse = GA_ReuseStrategy() 
)
inline

Convenience method to add a new floating point, or int array attribute.

If there's an existing attribute of the same name, the GA_ReuseStrategy will be used. By default, this will return the existing attribute if it is the same type. If not, it will try to replace it with a new one and copy the old data over.

Definition at line 2579 of file GEO_Detail.h.

GA_Attribute* GEO_Detail::addStringTuple ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringHolder name,
int  tuple_size,
const UT_Options creation_args = 0,
const GA_AttributeOptions attribute_options = 0,
const GA_ReuseStrategy reuse = GA_ReuseStrategy() 
)

Convenience method to add a new floating point, int or string tuple attribute.

If there's an existing attribute of the same name, the GA_ReuseStrategy will be used. By default, this will return the existing attribute if it is the same type. If not, it will try to replace it with a new one and copy the old data over.

Examples:
field3d/f3d_io.C, GEO/GEO_VoxelTranslator.C, RAY/RAY_DemoSprite.C, SOP/SOP_BouncyAgent.C, and standalone/geo2voxel.C.
SYS_FORCE_INLINE GA_Attribute* GEO_Detail::addStringTuple ( GA_AttributeOwner  owner,
const UT_StringHolder name,
int  tuple_size,
const UT_Options creation_args = 0,
const GA_AttributeOptions attribute_options = 0,
const GA_ReuseStrategy reuse = GA_ReuseStrategy() 
)
inline

Convenience method to add a new floating point, int or string tuple attribute.

If there's an existing attribute of the same name, the GA_ReuseStrategy will be used. By default, this will return the existing attribute if it is the same type. If not, it will try to replace it with a new one and copy the old data over.

Definition at line 2498 of file GEO_Detail.h.

GA_Attribute* GEO_Detail::addTextureAttribute ( GA_AttributeOwner  who,
GA_Storage  s = GA_STORE_INVALID 
)
GA_Attribute* GEO_Detail::addTubeCaptureAttribute ( GA_Storage  s = GA_STORE_INVALID)
GA_Attribute* GEO_Detail::addTuple ( GA_Storage  storage,
GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringHolder name,
int  tuple_size,
const GA_Defaults defaults = GA_Defaults(0.0),
const UT_Options creation_args = 0,
const GA_AttributeOptions attribute_options = 0,
const GA_ReuseStrategy reuse = GA_ReuseStrategy() 
)

Convenience method for adding a float, integer or string tuple attribute.

If there's an existing attribute of the same name, the GA_ReuseStrategy will be used. By default, this will return the existing attribute if it is the same type. If not, it will try to replace it with a new one and copy the old data over.

The attribute storage will be determined by the storage parameter. For example, if it's GA_STORE_REAL32 or GA_STORE_REAL16, a floating point tuple will be added. An integer tuple would be created for GA_STORE_INT64 and a string tuple for GA_STORE_STRING.

The defaults will be ignored for string attributes.

Note
If you have a GA_StorageClass, you can call GAgetDefaultStorage(storageclass);
SYS_FORCE_INLINE GA_Attribute* GEO_Detail::addTuple ( GA_Storage  storage,
GA_AttributeOwner  owner,
const UT_StringHolder name,
int  tuple_size,
const GA_Defaults defaults = GA_Defaults(0.0),
const UT_Options creation_args = 0,
const GA_AttributeOptions attribute_options = 0,
const GA_ReuseStrategy reuse = GA_ReuseStrategy() 
)
inline

Convenience method for adding a float, integer or string tuple attribute.

If there's an existing attribute of the same name, the GA_ReuseStrategy will be used. By default, this will return the existing attribute if it is the same type. If not, it will try to replace it with a new one and copy the old data over.

The attribute storage will be determined by the storage parameter. For example, if it's GA_STORE_REAL32 or GA_STORE_REAL16, a floating point tuple will be added. An integer tuple would be created for GA_STORE_INT64 and a string tuple for GA_STORE_STRING.

The defaults will be ignored for string attributes.

Note
If you have a GA_StorageClass, you can call GAgetDefaultStorage(storageclass);

Definition at line 2404 of file GEO_Detail.h.

void GEO_Detail::addVariableName ( const char *  attr,
const char *  varname 
)
GA_Attribute* GEO_Detail::addVelocityAttribute ( GA_AttributeOwner  who,
GA_Storage  s = GA_STORE_INVALID 
)
SYS_FORCE_INLINE GA_Attribute* GEO_Detail::addVertexAttrib ( const GA_Attribute src)
inline

Definition at line 1637 of file GEO_Detail.h.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::addVertexAttrib ( GA_AttributeScope  scope,
const UT_StringHolder n,
const UT_Options creation_args,
const GA_AttributeOptions attribute_options,
const UT_StringRef attribtype 
)
inline

Definition at line 1644 of file GEO_Detail.h.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::addVertexAttrib ( const UT_StringHolder n,
const UT_Options creation_args,
const GA_AttributeOptions attribute_options,
const UT_StringRef attribtype 
)
inline

Definition at line 1653 of file GEO_Detail.h.

GA_Offset GEO_Detail::appendPointCopy ( GA_Offset  src,
GA_PointWrangler wrangler 
)
inline

Append a point, copying data from the source point.

Definition at line 1070 of file GEO_Detail.h.

GA_Offset GEO_Detail::appendPointCopy ( GA_Offset  src)
inline

Append a point, copying data from the source point.

Note
It is more efficient to use the GA_PointWrangler version.

Definition at line 1074 of file GEO_Detail.h.

SYS_FORCE_INLINE GA_Offset GEO_Detail::appendPointOffset ( )
inline
Examples:
SIM/SIM_RadialEmit.C, SIM/SIM_SolverHair.C, and SIM/SNOW_Solver.C.

Definition at line 1055 of file GEO_Detail.h.

SYS_FORCE_INLINE GEO_Primitive* GEO_Detail::appendPrimitive ( const GA_PrimitiveTypeId type)
inline
Examples:
SIM/SIM_ForceOrbit.C, and SOP/SOP_SParticle.C.

Definition at line 1148 of file GEO_Detail.h.

static int GEO_Detail::asciiMagicH9 ( )
inlinestatic

Magic number for ASCII geometry files.

Definition at line 2596 of file GEO_Detail.h.

SYS_FORCE_INLINE const GA_AttributeDict& GEO_Detail::attribs ( ) const
inline

Definition at line 1833 of file GEO_Detail.h.

static int GEO_Detail::binaryMagicH9 ( )
inlinestatic

Magic number for binary geometry files.

Definition at line 2601 of file GEO_Detail.h.

bool GEO_Detail::changeAttributeStorage ( GA_AttributeOwner  dict,
const UT_StringRef name,
GA_Storage  new_storage 
)

Change the storage type from one type to another. For example, cast an integer attribute into a floating point attribute, or vice versa. Only some casting methods have been implemented, so it's quite likely that this method may fail.

bool GEO_Detail::changeDetailAttributeStorage ( const UT_StringRef nm,
GA_Storage  s 
)
bool GEO_Detail::changePointAttributeStorage ( const UT_StringRef nm,
GA_Storage  s 
)
bool GEO_Detail::changePrimAttributeStorage ( const UT_StringRef nm,
GA_Storage  s 
)
bool GEO_Detail::changeVertexAttributeStorage ( const UT_StringRef nm,
GA_Storage  s 
)
void GEO_Detail::clampCaptureWeights ( const GA_PointGroup ptgroup = NULL,
bool  clamp_low_flag = true,
float  low_threshold = 0.0f,
float  low_val = 0.0f,
bool  clamp_hi_flag = false,
float  hi_threshold = 1.0f,
float  hi_val = 1.0f,
CaptureType  t = GEO_Detail::CAPTURE_BONE 
)

clamp the capture weights to the given low/hi values, if the corresponding flag is true and the capture weight is below/above the corresponding threshold. If low/hi flag is false, the capture weight will be unaffected for respecive clamping.

void GEO_Detail::clearAndDestroy ( void  )
inline

Clear all the points/primitives out of this detail.

Examples:
euclid/SOP_Euclid.C, SOP/SOP_CopRaster.C, SOP/SOP_HDKObject.C, SOP/SOP_NURBS.C, SOP/SOP_SParticle.C, and tetprim/SOP_Tetra.C.

Definition at line 236 of file GEO_Detail.h.

void GEO_Detail::clearCaptureWeights ( GA_Offset  ptoff,
CaptureType  t = CAPTURE_BONE 
)
void GEO_Detail::collapseIndexAttributes ( )
void GEO_Detail::colorPointsByCaptureWeight ( const UT_Array< const UT_Vector3 * > &  colors,
const UT_Vector3 zero_weight_color,
CaptureType  t = CAPTURE_BONE,
VisualizationType  vistype = VISTYPE_MULTIPLE,
UT_ColorRamp  singlevismode = UT_COLORRAMP_FALSE 
)

Color points according to their capture (normalized) weight.

void GEO_Detail::colorPointsByCaptureWeight ( const UT_Array< const UT_Vector3 * > &  colors,
const UT_Vector3 zero_weight_color,
CaptureType  t,
VisualizationType  vistype,
UT_ColorRamp  singlevismode,
bool  normalize 
)

Color points according to their capture weight, with option to normalize the weights for visualization.

void GEO_Detail::computeNormal ( const GEO_Primitive prim,
UT_Vector3 nml 
) const

This is the same as prim.computeNormal()

void GEO_Detail::computeNormal ( const GA_Edge edge,
UT_Vector3 nml 
) const

WARNING: This could be very slow! Are you sure you need no side-effects? See computeNormalInternal!

void GEO_Detail::computeNormal ( const GA_Breakpoint bkpt,
UT_Vector3 nml 
) const

WARNING: This could be very slow! Are you sure you need no side-effects? See computeNormalInternal!

void GEO_Detail::computeNormalAndTangents ( const GA_Breakpoint bkpt,
UT_Vector3 nml,
UT_Vector3 u_tangent,
UT_Vector3 v_tangent,
bool  normalize 
) const

Compute the normal, and (optionally) tangents, at the specified breakpoint. An extension of computeNormal() that also computes partial tangents.

void GEO_Detail::computeNormalInternal ( GA_Offset  ptoff,
UT_Vector3 nml 
)

The computeNormal methods compute the normals of primitives, points, edges and breakpoints. The primitive one is there for completeness. An edge normal is the average of its point normals. For internal functions: If nml_offset > -1, the attribute at that offset will be returned, else if the geometry has a normal attribute ("N"), nml_offset will be set to the offset of that attribute and that attributes value will be returned, else if the geometry has an internal normal attribute ("internalN") the value of the internal attribute will be returned and nml_offset will be set to its offset, else the "internalN" attribute is created by a call to normal(1), nml_offset is set to it, and the calculated value returned. If nml_offset is null, the case of nml_offset == -1 is followed except nml_offset is not written to. Otherwise: Recompute the normal. No side-effects happen, but this is much slower. A faster version of computeNormal which has the side effect of computing the internal normal if it's not there

void GEO_Detail::computeNormalInternal ( const GA_Edge edge,
UT_Vector3 nml 
)

A faster version of computeNormal which has the side effect of computing the internal normal if it's not there.

void GEO_Detail::computeSoftPointFalloff ( const GEO_Rolloff rolloff,
const GA_PointGroup ptgroup,
const SoftSymmetryParms symmetry,
const GA_RWHandleF falloff 
)

symmetry - the soft falloff from any points not directly on the plane of symmetry will be clamped to that plane of symmetry when provided

void GEO_Detail::computeSoftPointFalloff ( const GEO_Rolloff rolloff,
const GA_EdgeGroup edgegroup,
const SoftSymmetryParms symmetry,
const GA_RWHandleF falloff 
)
bool GEO_Detail::convertIndexPairDataFromH9 ( )
protected
bool GEO_Detail::convertIndexPairDataToH9 ( )
protected
bool GEO_Detail::copy ( const GEO_Detail src,
GEO_CopyMethod  method = GEO_COPY_ONCE,
bool  this_parameter_is_ignored = true,
bool  keep_internal_groups = true,
GA_DataIdStrategy  data_id_strategy = GA_DATA_ID_BUMP 
)

Copy the source detail into this detail.

If data_id_strategy is GA_DATA_ID_CLONE and method is GEO_COPY_ONCE, any attributes whose source has a valid data id will inherit that data id. Otherwise, each merged attribute will get a new unique data id if this detail is generating such.

Examples:
SOP/SOP_HDKObject.C.
void GEO_Detail::copyFullVertex ( GEO_Vertex  dest,
const GEO_Vertex src 
) const

Copy vertex attributes AND change the point reference of the vertex.

void GEO_Detail::copyFullVertex ( GA_Offset  dest_vtx,
GA_Offset  src_vtx,
GA_VertexWrangler vertex_wrangler 
)
inline

Copy vertex attributes AND change the point reference of the vertex.

Definition at line 1304 of file GEO_Detail.h.

void GEO_Detail::copyPointVertexAttributes ( GEO_Vertex  dest,
const GEO_Vertex src,
bool  copy_point_P = true 
) const

Copy vertex AND point attributes.

void GEO_Detail::copyPointVertexAttributes ( GA_Offset  dest_vtx,
GA_Offset  src_vtx,
const GA_AttributeRefMap vertex_attribs,
const GA_AttributeRefMap point_attribs 
)
void GEO_Detail::copyPointVertexAttributes ( GA_Offset  dest_vtx,
GA_Offset  src_vtx,
GA_VertexWrangler vertex_wrangler,
GA_PointWrangler point_wrangler,
bool  copy_point_P 
)
inline

Definition at line 1290 of file GEO_Detail.h.

void GEO_Detail::copyPrimitiveAttributes ( GEO_Primitive dest,
const GEO_Primitive src 
)

Copy primitive attributes.

void GEO_Detail::copyPrimitiveGroups ( GEO_Primitive dest,
const GEO_Primitive src 
) const
void GEO_Detail::copyVertex ( GEO_Vertex  dest,
const GEO_Vertex src,
int  shallow = 0 
) const

Create a copy of the source vertex. Regardless of the "shallow" parm, this method will copy the vertex attribute data. If not shallow, it will also copy the point attribute data and will assign the source point position to the destination point. If shallow, it will assign the source point offset to the destination.

Examples:
tetprim/GEO_PrimTetra.C.
void GEO_Detail::copyVertex ( GA_Offset  dest,
GA_Offset  src,
GA_AttributeRefMap vertex_attribs,
GA_AttributeRefMap point_attribs 
)

Create a copy of the source vertex, copying only the vertex attributes specified by "vertex_attribs" and only the point attributes specified by the optional "point_attribs". If "point_attribs" is NULL, then a shallow point copy is performed wiring the source's point (if any) to dest.

void GEO_Detail::copyVertex ( GA_Offset  dest,
GA_Offset  src,
GA_VertexWrangler vertex_wrangler,
GA_PointWrangler point_wrangler 
)

Create a copy of the source vertex using the supplied wranglers to copy attributes. If "point_wrangler" is NULL, then a shallow point copy is performed, wiring the source's point (if any) to dest.

void GEO_Detail::copyVertex ( GA_Offset  dest,
GA_Offset  src,
GA_VertexWrangler vertex_wrangler,
GA_PointWrangler point_wrangler,
bool  copy_point_p 
)

Create a copy of the source vertex using the supplied wranglers to copy attributes. Unlike the previous method which takes an optional "point_wrangler", this overload always performs a non-shallow point copy and specifies whether or not "P" should be copied, regardless of the setting of the point wrangler.

void GEO_Detail::copyVertexAttributes ( GEO_Vertex  dest,
const GEO_Vertex src 
) const

Copy vertex attributes from source to destination.

void GEO_Detail::copyVertexAttributes ( GA_Offset  dest,
GA_Offset  src,
GA_VertexWrangler wrangler 
) const
virtual void GEO_Detail::countMemory ( UT_MemoryCounter counter,
bool  inclusive 
) const
virtual

Count memory usage using a UT_MemoryCounter in order to count shared memory correctly. If inclusive is true, the size of this object is counted, else only memory owned by this object is counted. If this is pointed to by the calling object, inclusive should be true. If this is contained in the calling object, inclusive should be false. (Its memory was already counted in the size of the calling object.)

Reimplemented from GA_Detail.

Reimplemented in GU_Detail.

virtual void GEO_Detail::deleteBreakpoints ( const GA_BreakpointGroup bkptgrp)
virtual

Delete a whole group of breakpoints.

Note
The group is cleared when done (non-const operation)
SYS_FORCE_INLINE GA_Size GEO_Detail::deletePoints ( const GA_PointGroup point_group,
GA_DestroyPointMode  mode = GA_LEAVE_PRIMITIVES 
)
inline

Provide a few additional overloads of deletePoints() in addition to those available in GA_Detail.

Definition at line 1080 of file GEO_Detail.h.

GA_Size GEO_Detail::deletePoints ( const GA_Range range,
GA_DestroyPointMode  mode = GA_LEAVE_PRIMITIVES 
)
inline

GA uses "destroy" instead of "delete" as the verb. However, the old GEO/GB code made extensive use of "delete". These methods are to save the sanity of people trying to port code.

Definition at line 1129 of file GEO_Detail.h.

bool GEO_Detail::deletePrimitive ( GA_Primitive prim,
bool  and_points = false 
)
inline

GA uses "destroy" instead of "delete" as the verb. However, the old GEO/GB code made extensive use of "delete". These methods are to save the sanity of people trying to port code.

Examples:
tetprim/GEO_PrimTetra.C.

Definition at line 1134 of file GEO_Detail.h.

GA_Size GEO_Detail::deletePrimitives ( const GA_Range range,
bool  and_points = false 
)
inline

GA uses "destroy" instead of "delete" as the verb. However, the old GEO/GB code made extensive use of "delete". These methods are to save the sanity of people trying to port code.

Definition at line 1132 of file GEO_Detail.h.

GA_Size GEO_Detail::deletePrimitives ( const GA_PrimitiveGroup primGrp,
bool  and_points = false 
)

Provide a few additional overloads of deletePrimitives() in addition to those available in GA_Detail.

GA_Size GEO_Detail::deletePrimitives ( const UT_Array< GEO_Primitive * > &  prims_in,
bool  and_points = false 
)
bool GEO_Detail::demoteVertexAttrib ( GA_AttributeScope  scope,
const UT_StringRef name 
)
SYS_FORCE_INLINE bool GEO_Detail::demoteVertexAttrib ( const UT_StringRef name)
inline

Definition at line 1703 of file GEO_Detail.h.

void GEO_Detail::destroyAlphaAttribute ( GA_AttributeOwner  who)
void GEO_Detail::destroyAttribute ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringRef name,
const GA_AttributeFilter filter = 0 
)
SYS_FORCE_INLINE void GEO_Detail::destroyAttribute ( GA_AttributeOwner  owner,
const UT_StringRef name,
const GA_AttributeFilter filter = 0 
)
inline

Definition at line 2150 of file GEO_Detail.h.

void GEO_Detail::destroyCaptureFrameAttribute ( CaptureType  t = CAPTURE_BONE)

Destroy the detail's capture frame attribute for capture type t.

void GEO_Detail::destroyCaptureSkelRootAttribute ( CaptureType  t = CAPTURE_BONE)

Destroy the bone capture skeleton root detail attribute.

void GEO_Detail::destroyComAttribute ( GA_AttributeOwner  who)
void GEO_Detail::destroyDiffuseAttribute ( GA_AttributeOwner  who)
void GEO_Detail::destroyDistanceAttribute ( GA_AttributeOwner  who)
SYS_FORCE_INLINE void GEO_Detail::destroyGlobalAttrib ( GA_AttributeScope  scope,
const UT_StringRef n,
const GA_AttributeFilter filter = NULL 
)
inline

Definition at line 1797 of file GEO_Detail.h.

SYS_FORCE_INLINE void GEO_Detail::destroyGlobalAttrib ( const UT_StringRef n,
const GA_AttributeFilter filter = NULL 
)
inline

Definition at line 1802 of file GEO_Detail.h.

void GEO_Detail::destroyInternalNormalAttribute ( )
void GEO_Detail::destroyLODAttribute ( GA_AttributeOwner  who)
void GEO_Detail::destroyNormalAttribute ( GA_AttributeOwner  who)
SYS_FORCE_INLINE void GEO_Detail::destroyPointAttrib ( GA_AttributeScope  scope,
const UT_StringRef n,
const GA_AttributeFilter filter = NULL 
)
inline

Definition at line 1621 of file GEO_Detail.h.

SYS_FORCE_INLINE void GEO_Detail::destroyPointAttrib ( const UT_StringRef n,
const GA_AttributeFilter filter = NULL 
)
inline

Definition at line 1626 of file GEO_Detail.h.

void GEO_Detail::destroyPointCaptureAlphaAttribute ( )

Destroy the bone capture alpha point attribute.

void GEO_Detail::destroyPointCaptureAttribute ( CaptureType  t = CAPTURE_BONE)

Destroy the (region, weight) point capture point attribute for capture type t.

void GEO_Detail::destroyPointGroup ( GA_PointGroup g)
inline

Definition at line 2031 of file GEO_Detail.h.

bool GEO_Detail::destroyPointGroup ( const char *  name)
inline

Definition at line 2037 of file GEO_Detail.h.

SYS_FORCE_INLINE void GEO_Detail::destroyPrimAttrib ( GA_AttributeScope  scope,
const UT_StringRef n,
const GA_AttributeFilter filter = NULL 
)
inline

Definition at line 1745 of file GEO_Detail.h.

SYS_FORCE_INLINE void GEO_Detail::destroyPrimAttrib ( const UT_StringRef n,
const GA_AttributeFilter filter = NULL 
)
inline

Definition at line 1753 of file GEO_Detail.h.

void GEO_Detail::destroyPrimitiveGroup ( GA_PrimitiveGroup g)
inline

Definition at line 2033 of file GEO_Detail.h.

bool GEO_Detail::destroyPrimitiveGroup ( const char *  name)
inline

Definition at line 2040 of file GEO_Detail.h.

virtual bool GEO_Detail::destroyPrimitiveOffset ( GA_Offset  offset,
bool  and_points = false 
)
virtual

Delete the primitive at the given offset. Optionally, delete the points referenced by the primitive.

Reimplemented from GA_Detail.

virtual GA_Size GEO_Detail::destroyPrimitiveOffsets ( const GA_Range it,
bool  and_points = false 
)
virtual

Delete a range of primitives. Optionally, delete the points referenced by those primitives.

Reimplemented from GA_Detail.

void GEO_Detail::destroyPtIndexPairAttribute ( const UT_StringRef name)

Destroy a custom (index, weight) point attribute.

void GEO_Detail::destroyRestAttribute ( GA_AttributeOwner  who)
void GEO_Detail::destroyTextureAttribute ( GA_AttributeOwner  who)
void GEO_Detail::destroyTubeCaptureAttribute ( )
void GEO_Detail::destroyVelocityAttribute ( GA_AttributeOwner  who)
SYS_FORCE_INLINE void GEO_Detail::destroyVertexAttrib ( GA_AttributeScope  scope,
const UT_StringRef n,
const GA_AttributeFilter filter = NULL 
)
inline

Definition at line 1691 of file GEO_Detail.h.

SYS_FORCE_INLINE void GEO_Detail::destroyVertexAttrib ( const UT_StringRef n,
const GA_AttributeFilter filter = NULL 
)
inline

Definition at line 1696 of file GEO_Detail.h.

void GEO_Detail::destroyVertexGroup ( GA_VertexGroup g)
inline

Definition at line 2035 of file GEO_Detail.h.

bool GEO_Detail::destroyVertexGroup ( const char *  name)
inline

Definition at line 2043 of file GEO_Detail.h.

void GEO_Detail::findAllPrimitivesByName ( UT_Array< const GEO_Primitive * > &  primlist,
const char *  nametomatch,
const GA_PrimCompat::TypeMask mask = GEO_PrimTypeCompat::GEOPRIMALL,
const char *  nameattrib = "name" 
) const

Like findPrimitiveByName, but adds all matching primitives to the list.

void GEO_Detail::findAllPrimitivesByName ( UT_Array< GEO_Primitive * > &  primlist,
const char *  nametomatch,
const GA_PrimCompat::TypeMask mask = GEO_PrimTypeCompat::GEOPRIMALL,
const char *  nameattrib = "name" 
)
const GA_Attribute* GEO_Detail::findAlphaAttribute ( GA_AttributeOwner  who) const
GA_Attribute* GEO_Detail::findAlphaAttribute ( GA_AttributeOwner  who)
const GA_Attribute* GEO_Detail::findCaptureFrameAttribute ( CaptureType  t = CAPTURE_BONE) const

Find the offset for the detail's capture frame attribute for capture type t.

GA_Attribute* GEO_Detail::findCaptureFrameAttribute ( CaptureType  t = CAPTURE_BONE)
const GA_Attribute* GEO_Detail::findCaptureSkelRootAttribute ( CaptureType  t = CAPTURE_BONE) const

Find the offset for the bone capture skeleton root detail attribute.

GA_Attribute* GEO_Detail::findCaptureSkelRootAttribute ( CaptureType  t = CAPTURE_BONE)
const GA_Attribute* GEO_Detail::findComAttribute ( GA_AttributeOwner  who) const
GA_Attribute* GEO_Detail::findComAttribute ( GA_AttributeOwner  who)
const GA_Attribute* GEO_Detail::findDiffuseAttribute ( GA_AttributeOwner  who) const
GA_Attribute* GEO_Detail::findDiffuseAttribute ( GA_AttributeOwner  who)
const GA_Attribute* GEO_Detail::findDistanceAttribute ( GA_AttributeOwner  who) const
GA_Attribute* GEO_Detail::findDistanceAttribute ( GA_AttributeOwner  who)
const GA_Attribute* GEO_Detail::findFloatArray ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
) const

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

SYS_FORCE_INLINE const GA_Attribute* GEO_Detail::findFloatArray ( GA_AttributeOwner  owner,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
) const
inline

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Definition at line 2283 of file GEO_Detail.h.

GA_Attribute* GEO_Detail::findFloatArray ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
)

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::findFloatArray ( GA_AttributeOwner  owner,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
)
inline

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Definition at line 2295 of file GEO_Detail.h.

const GA_Attribute* GEO_Detail::findFloatTuple ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
) const

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Examples:
RAY/RAY_DemoSprite.C, SOP/SOP_BrushHairLen.C, SOP/SOP_CustomBrush.C, SOP/SOP_DetailAttrib.C, SOP/SOP_IKSample.C, and SOP/SOP_SParticle.C.
SYS_FORCE_INLINE const GA_Attribute* GEO_Detail::findFloatTuple ( GA_AttributeOwner  owner,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
) const
inline

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Definition at line 2167 of file GEO_Detail.h.

GA_Attribute* GEO_Detail::findFloatTuple ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
)

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::findFloatTuple ( GA_AttributeOwner  owner,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
)
inline

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Definition at line 2179 of file GEO_Detail.h.

SYS_FORCE_INLINE const GA_Attribute* GEO_Detail::findGlobalAttrib ( const GA_Attribute src) const
inline

Definition at line 1789 of file GEO_Detail.h.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::findGlobalAttrib ( const GA_Attribute src)
inline

Definition at line 1793 of file GEO_Detail.h.

const GA_Attribute* GEO_Detail::findIndexPair ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringRef name 
) const

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

SYS_FORCE_INLINE const GA_Attribute* GEO_Detail::findIndexPair ( GA_AttributeOwner  owner,
const UT_StringRef name 
) const
inline

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Definition at line 2264 of file GEO_Detail.h.

GA_Attribute* GEO_Detail::findIndexPair ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringRef name 
)

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::findIndexPair ( GA_AttributeOwner  owner,
const UT_StringRef name 
)
inline

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Definition at line 2273 of file GEO_Detail.h.

const GA_Attribute* GEO_Detail::findIntArray ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
) const

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Examples:
SOP/SOP_ArrayAttrib.C.
SYS_FORCE_INLINE const GA_Attribute* GEO_Detail::findIntArray ( GA_AttributeOwner  owner,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
) const
inline

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Definition at line 2307 of file GEO_Detail.h.

GA_Attribute* GEO_Detail::findIntArray ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
)

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::findIntArray ( GA_AttributeOwner  owner,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
)
inline

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Definition at line 2319 of file GEO_Detail.h.

const GA_Attribute* GEO_Detail::findInternalNormalAttribute ( ) const

The internal normal attribute is always a point attribute

Todo:
Remove internalN code path with the H11 viewport?
GA_Attribute* GEO_Detail::findInternalNormalAttribute ( )
const GA_Attribute* GEO_Detail::findIntTuple ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
) const

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Examples:
euclid/SOP_Euclid.C.
SYS_FORCE_INLINE const GA_Attribute* GEO_Detail::findIntTuple ( GA_AttributeOwner  owner,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
) const
inline

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Definition at line 2191 of file GEO_Detail.h.

GA_Attribute* GEO_Detail::findIntTuple ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
)

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::findIntTuple ( GA_AttributeOwner  owner,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
)
inline

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Definition at line 2203 of file GEO_Detail.h.

const GA_Attribute* GEO_Detail::findLODAttribute ( GA_AttributeOwner  who) const
GA_Attribute* GEO_Detail::findLODAttribute ( GA_AttributeOwner  who)
GA_ROHandleS GEO_Detail::findMaterialAttribute ( GA_AttributeOwner  who) const

Find the material attribute if it exists. This checks for the GEO_STD_ATTRIB_MATERIAL name.

const GA_Attribute* GEO_Detail::findNormalAttribute ( GA_AttributeOwner  who) const
GA_Attribute* GEO_Detail::findNormalAttribute ( GA_AttributeOwner  who)
const GA_Attribute* GEO_Detail::findNumericArray ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
) const

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

SYS_FORCE_INLINE const GA_Attribute* GEO_Detail::findNumericArray ( GA_AttributeOwner  owner,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
) const
inline

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Definition at line 2331 of file GEO_Detail.h.

GA_Attribute* GEO_Detail::findNumericArray ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
)

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::findNumericArray ( GA_AttributeOwner  owner,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
)
inline

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Definition at line 2343 of file GEO_Detail.h.

const GA_Attribute* GEO_Detail::findNumericTuple ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
) const

findNumericTuple will find either float or int.

SYS_FORCE_INLINE const GA_Attribute* GEO_Detail::findNumericTuple ( GA_AttributeOwner  owner,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
) const
inline

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Definition at line 2216 of file GEO_Detail.h.

GA_Attribute* GEO_Detail::findNumericTuple ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
)

findNumericTuple will find either float or int.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::findNumericTuple ( GA_AttributeOwner  owner,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
)
inline

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Definition at line 2229 of file GEO_Detail.h.

SYS_FORCE_INLINE const GA_Attribute* GEO_Detail::findPointAttrib ( const GA_Attribute src) const
inline

Replace old findPointAttribute(const char *name...) with findIntTuple(GA_ATTRIB_POINT, ...), findFloatTuple(), findStringTuple(), etc.

Definition at line 1596 of file GEO_Detail.h.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::findPointAttrib ( const GA_Attribute src)
inline

Definition at line 1600 of file GEO_Detail.h.

const GA_Attribute* GEO_Detail::findPointCaptureAlphaAttribute ( ) const

Find the offset for the bone capture alpha point attribute.

GA_Attribute* GEO_Detail::findPointCaptureAlphaAttribute ( )
const GA_Attribute* GEO_Detail::findPointCaptureAttribute ( CaptureType  t = CAPTURE_BONE) const

Find the offset for the (region, weight) point capture point attribute for capture type t.

GA_Attribute* GEO_Detail::findPointCaptureAttribute ( CaptureType  t = CAPTURE_BONE)
SYS_FORCE_INLINE const GA_Attribute* GEO_Detail::findPointVectorAttrib ( GA_AttributeScope  s,
const UT_StringRef n 
) const
inline

Looks for a 3-float point attribute.

Definition at line 1606 of file GEO_Detail.h.

SYS_FORCE_INLINE const GA_Attribute* GEO_Detail::findPointVectorAttrib ( const UT_StringRef n) const
inline

Definition at line 1610 of file GEO_Detail.h.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::findPointVectorAttrib ( GA_AttributeScope  s,
const UT_StringRef n 
)
inline

Definition at line 1613 of file GEO_Detail.h.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::findPointVectorAttrib ( const UT_StringRef n)
inline

Definition at line 1617 of file GEO_Detail.h.

SYS_FORCE_INLINE const GA_Attribute* GEO_Detail::findPrimAttrib ( const GA_Attribute src) const
inline

Replace old findPrimAttribute(const char *name...) with findIntTuple(GA_ATTRIB_PRIMITIVE, ...), findFloatTuple(), findStringTuple(), etc.

Definition at line 1736 of file GEO_Detail.h.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::findPrimAttrib ( const GA_Attribute src)
inline

Definition at line 1740 of file GEO_Detail.h.

const GEO_Primitive* GEO_Detail::findPrimitiveByName ( const char *  nametomatch,
const GA_PrimCompat::TypeMask mask = GEO_PrimTypeCompat::GEOPRIMALL,
const char *  nameattrib = "name",
int  matchnumber = 0 
) const

Searches primitive list for a primitive whose name attribute matches the given name. UT_String::multiMatch is used for comparison so searching for Cd.* will return as expected. Returns the matchnumberth matching primitive.

GEO_Primitive* GEO_Detail::findPrimitiveByName ( const char *  nametomatch,
const GA_PrimCompat::TypeMask mask = GEO_PrimTypeCompat::GEOPRIMALL,
const char *  nameattrib = "name",
int  matchnumber = 0 
)
const GA_Attribute* GEO_Detail::findPtIndexPairAttribute ( const UT_StringRef name) const

Find the offset for a custom (index, weight) point attribute.

GA_Attribute* GEO_Detail::findPtIndexPairAttribute ( const UT_StringRef name)
const GA_Attribute* GEO_Detail::findRestAttribute ( GA_AttributeOwner  who) const
GA_Attribute* GEO_Detail::findRestAttribute ( GA_AttributeOwner  who)
const GA_Attribute* GEO_Detail::findStringArray ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
) const

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

SYS_FORCE_INLINE const GA_Attribute* GEO_Detail::findStringArray ( GA_AttributeOwner  owner,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
) const
inline

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Definition at line 2355 of file GEO_Detail.h.

GA_Attribute* GEO_Detail::findStringArray ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
)

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::findStringArray ( GA_AttributeOwner  owner,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
)
inline

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Definition at line 2367 of file GEO_Detail.h.

const GA_Attribute* GEO_Detail::findStringTuple ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
) const

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Examples:
RAY/RAY_DemoSprite.C.
SYS_FORCE_INLINE const GA_Attribute* GEO_Detail::findStringTuple ( GA_AttributeOwner  owner,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
) const
inline

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Definition at line 2241 of file GEO_Detail.h.

GA_Attribute* GEO_Detail::findStringTuple ( GA_AttributeOwner  owner,
GA_AttributeScope  scope,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
)

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::findStringTuple ( GA_AttributeOwner  owner,
const UT_StringRef name,
int  min_size = 1,
int  max_size = -1 
)
inline

Convenience method to find floating point, int, or string tuples of a specified size range. If max_size or min_size are <= 0, then we won't perform the corresponding size check.

Definition at line 2253 of file GEO_Detail.h.

const GA_Attribute* GEO_Detail::findTextureAttribute ( GA_AttributeOwner  who) const
GA_Attribute* GEO_Detail::findTextureAttribute ( GA_AttributeOwner  who)
const GA_Attribute* GEO_Detail::findTubeCaptureAttribute ( ) const
GA_Attribute* GEO_Detail::findTubeCaptureAttribute ( )
const GA_Attribute* GEO_Detail::findVelocityAttribute ( GA_AttributeOwner  who) const
GA_Attribute* GEO_Detail::findVelocityAttribute ( GA_AttributeOwner  who)
SYS_FORCE_INLINE const GA_Attribute* GEO_Detail::findVertexAttrib ( const GA_Attribute src) const
inline

Replace old findVertexAttribute(const char *name...) with findIntTuple(GA_ATTRIB_VERTEX, ...), findFloatTuple(), findStringTuple(), etc.

Definition at line 1666 of file GEO_Detail.h.

SYS_FORCE_INLINE GA_Attribute* GEO_Detail::findVertexAttrib ( const GA_Attribute src)
inline

Definition at line 1670 of file GEO_Detail.h.