GEO_Detail Class Reference

#include <GEO_Detail.h>

Inheritance diagram for GEO_Detail:

GB_Detail GU_Detail GOP_Guide

List of all members.

Public Types

enum  CaptureType { CAPTURE_BONE = 0, CAPTURE_META, CAPTURE_WIRE }
 Methods for manipulating capture weights (GEO_CaptureWeight.C). More...
enum  VisualizationType { VISTYPE_SINGLE, VISTYPE_MULTIPLE }

Public Member Functions

 GEO_Detail ()
virtual ~GEO_Detail ()
virtual void clearAndDestroy ()
 Clear all the points/primitives out of this detail.
virtual int save (const char *, int binary, const UT_Options *options) const =0
 Stream I/O METHODS.
virtual int save (ostream &os, int binary, const UT_Options *options) const
virtual int load (const char *, const UT_Options *options)=0
virtual bool load (UT_IStream &is, const UT_Options *options)
virtual int saveVertex (ostream &os, const GB_Vertex &vtx, int b) const
virtual bool loadVertex (UT_IStream &is, GB_Vertex &vtx)
bool loadPoint (UT_IStream &is, GEO_Point &pt)
int saveBinaryPoint (ostream &os, const GEO_Point &pt) const
int saveASCIIPoint (ostream &os, const GEO_Point &pt) const
void merge (GEO_Detail &src, const GB_PrimitiveGroup *primGrp=0, int mergePrimGroup=1, int insertPrimsAtHead=0, GEO_PointRedirectArray *dest_to_src_ptarray=0, bool keep_internal_groups=true)
 Merge the whole detail, or only a group of prims, or only some points.
void mergePoints (const GEO_Detail &src, const GB_PointGroup *ptGrp=0, GEO_Point **ptredirect=0, int merge_groups=1, bool keep_internal_groups=true)
void merge (GEO_Primitive &sprim, int insertPrimAtHead=0)
int copy (const GEO_Detail &src, int method=GB_COPY_ONCE, bool collapse_on_end=true, bool keep_internal_groups=true)
void collapseIndexAttributes ()
void mirror (GEO_MirrorParms &parms)
 Mirrors a portion of the gdp across some plane.
void transform (const UT_Matrix4 &mat, const GB_PrimitiveGroup *primGrp=0, const GB_PointGroup *pointClosure=0, int quickxform=0, int keep_vector_lengths=1, int check_pasting=1, int neg_determinant_flipvector=1, int update_ptnormals=0, GEO_Delta *geodelta=0)
void transformRange (const UT_Matrix4 &mat, int min_ptnum, int max_ptnum, int min_primnum, int max_primnum, int quickxform=0, int keep_vector_lengths=1, int check_pasting=1, int neg_determinant_flipvector=1, int update_ptnormals=0, GEO_Delta *geodelta=0)
void translate (const UT_Vector3 &delta, const GB_PrimitiveGroup *primGrp=0, const GB_PointGroup *pointClosure=0, int check_pasting=1, int update_ptnormals=0, GEO_Delta *geodelta=0)
void transformPoints (const UT_Matrix4 &mat, const GB_PointGroup *pointGroup=0, const GB_PrimitiveGroup *primClosure=0, int quickxform=0, int keep_vector_lengths=1, int check_pasting=1, int neg_determinant_flipvector=1, int update_ptnormals=0, GEO_Delta *geodelta=0)
 Transform/translate all or some of the points.
void translatePoints (const UT_Vector3 &delta, const GB_PointGroup *pointGroup=0, int check_pasting=1, int update_ptnormals=0, GEO_Delta *geodelta=0)
void transformEdges (const UT_Matrix4 &mat, const GB_EdgeGroup *edgegrp=0, const GB_PrimitiveGroup *primclosure=0, int quickxform=0, int keep_vector_lengths=1, int check_pasting=1, int neg_determinant_flipvector=1, int update_ptnormals=0, GEO_Delta *geodelta=0)
void translateEdges (const UT_Vector3 &delta, const GB_EdgeGroup *edgegrp=0, int check_pasting=1, int update_ptnormals=0, GEO_Delta *geodelta=0)
void transformBreakpoints (const UT_Matrix4 &mat, const GB_BreakpointGroup *grp=0, int quickxform=0, int update_ptnormals=0, GEO_Delta *geodelta=0)
 Transforms breakpoints.
void translateBreakpoints (const UT_Vector3 &delta, const GB_BreakpointGroup *grp=0, int update_ptnormals=0, GEO_Delta *geodelta=0)
void transformGroup (const UT_Matrix4 &mat, const GB_BaseGroup &grp, int quickxform=0, int keep_vector_lengths=1, int check_pasting=1, int neg_determinant_flipvector=1, const GB_PointGroup *ptclosure=0, const GB_PrimitiveGroup *primclosure=0, int update_ptnormals=0, GEO_Delta *geodelta=0)
void translateGroup (const UT_Vector3 &delta, const GB_BaseGroup &grp, int check_pasting=1, const GB_PointGroup *ptclosure=0, int update_ptnormals=0, GEO_Delta *geodelta=0)
void visualizeSoftPoints (const GEO_Rolloff &rolloff, const GB_PointGroup *ptgroup, UT_ColorRamp ramp)
void computeNormal (const GEO_Point &point, UT_Vector3 &nml) const
void computeNormalInternal (const GEO_Point &point, UT_Vector3 &nml)
void computeNormal (const GEO_Primitive &prim, UT_Vector3 &nml) const
 This is the same as prim.computeNormal().
void computeNormal (const GB_Edge &edge, UT_Vector3 &nml) const
void computeNormalInternal (const GB_Edge &edge, UT_Vector3 &nml)
void computeNormal (const GB_Breakpoint &bkpt, UT_Vector3 &nml) const
void normalTranslatePoints (float length=1.0F, int check_pasting=1, const GB_PointGroup *grp=0, int update_ptnormals=0, GEO_Delta *geodelta=0)
void normalTranslatePrimitives (float length=1.0F, int check_pasting=1, const GB_PrimitiveGroup *grp=0, int update_ptnormals=0, GEO_Delta *geodelta=0)
void normalTranslate (const GB_PointGroup &grp, float length=1.0F, int check_pasting=1, int update_ptnormals=0, GEO_Delta *geodelta=0)
void normalTranslate (const GB_PrimitiveGroup &grp, float length=1.0F, int check_pasting=1, int update_ptnormals=0, GEO_Delta *geodelta=0)
void normalTranslate (const GB_EdgeGroup &grp, float length=1.0F, int check_pasting=1, int update_ptnormals=0, GEO_Delta *geodelta=0)
void normalTranslate (const GB_BreakpointGroup &grp, float length=1.0F, int check_pasting=1, int update_ptnormals=0, GEO_Delta *geodelta=0)
void normalTranslateGroup (const GB_BaseGroup &grp, float length=1.0F, int check_pasting=1, int update_ptnormals=0, GEO_Delta *geodelta=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, const GEO_Rolloff &rolloff, const GB_PointGroup *ptgroup=0, int quickxform=0, int keep_vector_lengths=1, int check_pasting=1, int neg_determinant_flipvector=1, int update_ptnormals=0, GEO_Delta *geodelta=0)
 Transform points using soft-selections (proportional xform):.
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, const GEO_Rolloff &rolloff, const GB_EdgeGroup *edgegrp=0, int quickxform=0, int keep_vector_lengths=1, int check_pasting=1, int neg_determinant_flipvector=1, int update_ptnormals=0, GEO_Delta *geodelta=0)
void softTranslatePoints (const UT_Vector3 &delta, const GEO_Rolloff &rolloff, const GB_PointGroup *ptgroup=0, int check_pasting=1, int update_ptnormals=0, GEO_Delta *geodelta=0)
 Translate points using soft-selections (proportional xlate):.
void softTranslateEdges (const UT_Vector3 &delta, const GEO_Rolloff &rolloff, const GB_EdgeGroup *edgegrp=0, int check_pasting=1, int update_ptnormals=0, GEO_Delta *geodelta=0)
void softNormalTranslatePoints (float distance, const GEO_Rolloff &rolloff, const GB_PointGroup *ptgroup=0, int along_lead_normal=1, int check_pasting=1, int update_ptnormals=0, GEO_Delta *geodelta=0)
 Translate points along their normals using soft-selections.
virtual GB_AttributeRef normal (int internal=0, GB_PrimitiveGroup *primgroup=0)=0
virtual void normal (UT_Vector3Array &output, bool use_internaln=true) const =0
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 GB_PointGroup *ptgroup=0, GEO_Delta *geodelta=0, int add_weight=0, int clamp_negative=0, int normalizeweight=0, CaptureType t=CAPTURE_BONE)
 Set the capture weight on a group of points.
void setCaptureWeight (int cregion_index, float weight, GEO_Point *ppt, GEO_Delta *geodelta=0, int add_weight=0, int clamp_negative=0, int normalizeweight=0, CaptureType t=CAPTURE_BONE)
 Set the capture weight on a point.
float getCaptureWeight (int cregion_index, const GEO_Point *ppt, CaptureType t=CAPTURE_BONE) const
 Get the capture weight of a point.
int addAverageCaptureWeight (const GB_PointGroup *ptgroup, const UT_String &root_path, UT_HashTable &averages) const
 Get the average capture weight of a set of points.
void getCaptureWeights (const GEO_Point *ppt, UT_IntArray &regions, UT_FloatArray &weights, CaptureType t=CAPTURE_BONE) const
void clearCaptureWeights (GEO_Point *ppt, CaptureType t=CAPTURE_BONE)
void colorPointsByCaptureWeight (const UT_PtrArray< 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 weight.
void normalizeCaptureWeights (const GB_PointGroup *ptgroup=0, CaptureType t=CAPTURE_BONE)
void clampCaptureWeights (const GB_PointGroup *ptgroup=0, 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, GEO_Point *pt, GEO_Delta *delta=0)
 This specifies a capture index that is exempt from normalization.
GEO_PointinsertPoint (const GEO_Point *beforeWhich=0)
GEO_PointappendPoint ()
GEO_PointinsertPoint (const GEO_Point &src, const GEO_Point *beforeWhich=0)
SYS_DEPRECATED GEO_PointinsertPoint (const UT_Vector4 &pos, GB_AttributeData &adata, short stealattrib=0, const GEO_Point *beforeWhich=0)
GEO_PointappendPoint (const GEO_Point &src)
SYS_DEPRECATED GEO_PointappendPoint (const UT_Vector4 &pos, GB_AttributeData &adata, short stealattrib=0)
GEO_PointallocateTempPoint ()
void deleteTempPoint (GEO_Point *pt)
GEO_VertexallocateTempVertex (GEO_Point *pt)
void deleteTempVertex (GEO_Vertex *vtx)
GEO_PrimitiveinsertPrimitive (unsigned type, const GEO_Primitive *beforeWhich=0, const GEO_Primitive *src=0, GEO_Point **ptredirect=0)
GEO_PrimitiveappendPrimitive (unsigned type, const GEO_Primitive *src=0, GEO_Point **ptredirect=0)
virtual void deletePrimitive (GB_Primitive &p, int andpoints=0)
 Delete a primitive:.
virtual void deletePrimitive (unsigned int num, int andpoints=0)
virtual void deletePrimitives (const GB_PrimitiveGroup &primGrp, int andpoints=0)
 Delete a whole group of primitives:.
virtual void deletePrimitives (UT_PtrArray< GEO_Primitive * > &prims_in, int andpoints=0)
virtual GB_BreakpointallocBreakpoint () const
virtual void deleteBreakpoints (GB_BreakpointGroup &bkptgrp)
 Delete a whole group of breakpoints, the group is cleared when done.
virtual int getPointBBox (UT_BoundingBox *bbox, const GB_PointGroup *g=0) const
virtual int getPointBBox (UT_BoundingBox &bbox, const UT_Matrix4 &transform, const GB_PointGroup *g=0) const
virtual int getPointBSphere (UT_BoundingSphere *bsphere, const GB_PointGroup *g=0, int accuratebounds=0) const
virtual int getVertexBBox (UT_BoundingBox *bbox, const GB_VertexGroup *g=0) const
virtual int getVertexBBox (UT_BoundingBox &bbox, const UT_Matrix4 &transform, const GB_VertexGroup *g=0) const
virtual int getEdgeBBox (UT_BoundingBox &bbox, const GB_EdgeGroup &grp) const
virtual int getEdgeBBox (UT_BoundingBox &bbox, const UT_Matrix4 &transform, const GB_EdgeGroup &grp) const
virtual int getEdgeBSphere (UT_BoundingSphere &bsphere, const GB_EdgeGroup &grp, int accuratebounds=0) const
virtual int getBreakpointBBox (UT_BoundingBox &bbox, const GB_BreakpointGroup &grp) const
virtual int getBreakpointBBox (UT_BoundingBox &bbox, const UT_Matrix4 &transform, const GB_BreakpointGroup &grp) const
virtual int getBreakpointBSphere (UT_BoundingSphere &bsphere, const GB_BreakpointGroup &grp, int accuratebounds=0) const
virtual int getGroupBBox (UT_BoundingBox *bbox, const GB_BaseGroup *grp) const
virtual int getGroupBBox (UT_BoundingBox &bbox, const UT_Matrix4 &transform, const GB_BaseGroup *grp) const
virtual int getGroupBSphere (UT_BoundingSphere *bsphere, const GB_BaseGroup *grp, int accuratebounds) const
int getPointAttribBBox (const char *name, UT_BoundingBox *bbox, const GB_PointGroup *g=0) const
int getPointAttribBBox (const char *name, UT_BoundingBox *bbox, const GB_PrimitiveGroup &g) const
int getPointAttribBBox (const char *name, UT_BoundingBox *bbox, const GB_EdgeGroup &g) const
int getPointAttribBBox (const char *name, UT_BoundingBox *bbox, const GB_VertexGroup &g) const
int getPointAttribGroupBBox (const char *name, UT_BoundingBox *bbox, const GB_BaseGroup *grp) const
int getVertexAttribBBox (const char *name, UT_BoundingBox *bbox, const GB_PointGroup *g=0) const
int getVertexAttribBBox (const char *name, UT_BoundingBox *bbox, const GB_PrimitiveGroup &g) const
int getVertexAttribBBox (const char *name, UT_BoundingBox *bbox, const GB_EdgeGroup &g) const
int getVertexAttribBBox (const char *name, UT_BoundingBox *bbox, const GB_VertexGroup &g) const
int getVertexAttribGroupBBox (const char *name, UT_BoundingBox *bbox, const GB_BaseGroup *grp) const
void copyPointAttributes (GEO_Point &dest, const GEO_Point &src) const
 Copy point attribute data from the source point to the dest.
void copyVertexAttributes (GEO_Vertex &dest, const GEO_Vertex &src) const
 Copy vertex attributes from source to destination.
void copyPointVertexAttributes (GEO_Vertex &dest, const GEO_Vertex &src) const
 Copy vertex AND point attributes.
void copyFullVertex (GEO_Vertex &dest, const GEO_Vertex &src) const
 Copy vertex attributes AND change the point reference of the vertex.
void copyPrimitiveAttributes (GEO_Primitive &dest, const GEO_Primitive &src) const
 Copy primitive attributes.
void copyPointGroups (GEO_Point &dest, const GEO_Point &src) const
void copyPrimitiveGroups (GEO_Primitive &dest, const GEO_Primitive &src) const
void copyVertex (GEO_Vertex &dest, const GEO_Vertex &src, int shallow=0) const
void SYS_DEPRECATED blendVertex (GEO_Vertex &dest, const GEO_Vertex &src, float bias, GB_FloatOffsets *ptarray, GB_FloatOffsets *vtxarray) const
 Blend the vertex attributes, point position and attributes.
void fixSplineWeights ()
GB_AttributeRef addNormalAttribute (GEO_AttributeOwner who)
GB_AttributeRef addTextureAttribute (GEO_AttributeOwner who)
GB_AttributeRef addVelocityAttribute (GEO_AttributeOwner who)
GB_AttributeRef addAlphaAttribute (GEO_AttributeOwner who)
GB_AttributeRef addComAttribute (GEO_AttributeOwner who)
GB_AttributeRef addDiffuseAttribute (GEO_AttributeOwner who)
GB_AttributeRef addDistanceAttribute (GEO_AttributeOwner who)
GB_AttributeRef addLODAttribute (GEO_AttributeOwner who)
GB_AttributeRef addRestAttribute (GEO_AttributeOwner who)
GB_AttributeRef addTubeCaptureAttribute ()
GB_AttributeRef addCaptureFrameAttribute (CaptureType t=CAPTURE_BONE)
 Add the detail's capture frame attribute for capture type t.
GB_AttributeRef addCaptureSkelRootAttribute (CaptureType t=CAPTURE_BONE)
 Add the bone capture skeleton root detail attribute.
GB_AttributeRef addPtCapturePathAttribute (CaptureType t=CAPTURE_BONE)
 Add the detail's index attribute used when storing capture weights.
GB_AttributeRef addPtCaptureAttribute (int num_xforms, CaptureType t=CAPTURE_BONE)
GB_AttributeRef addPtIndexPairAttribute (const char *name, int size_bytes)
 Add a new custom (index, weight) point attribute.
GB_AttributeRef addPointCaptureAttribute (int size, CaptureType t=CAPTURE_BONE)
 Add the (index, weight) point attribute for capture type t.
GB_AttributeRef addPointCaptureAlphaAttribute (float dflt)
 Add the bone capture alpha point attribute.
GB_AttributeRef addMetaRestTransformsAttribute (int num_xforms)
 Add a rest anchor transform attribute.
GB_AttributeRef addInternalChangedPointsAttribute (const UT_IntArray &changed_points)
GB_AttributeRef findNormalAttribute (GEO_AttributeOwner who) const
GB_AttributeRef findTextureAttribute (GEO_AttributeOwner who) const
GB_AttributeRef findVelocityAttribute (GEO_AttributeOwner who) const
GB_AttributeRef findAlphaAttribute (GEO_AttributeOwner who) const
GB_AttributeRef findComAttribute (GEO_AttributeOwner who) const
GB_AttributeRef findDiffuseAttribute (GEO_AttributeOwner who) const
GB_AttributeRef findDistanceAttribute (GEO_AttributeOwner who) const
GB_AttributeRef findLODAttribute (GEO_AttributeOwner who) const
GB_AttributeRef findRestAttribute (GEO_AttributeOwner who) const
GB_AttributeRef findTubeCaptureAttribute () const
GB_AttributeRef findCaptureFrameAttribute (CaptureType t=CAPTURE_BONE) const
GB_AttributeRef findCaptureSkelRootAttribute (CaptureType t=CAPTURE_BONE) const
 Find the offset for the bone capture skeleton root detail attribute.
GB_AttributeRef findPtCapturePathAttribute (CaptureType t=CAPTURE_BONE) const
GB_AttributeRef findPtCaptureAttribute (CaptureType t=CAPTURE_BONE) const
 Find the offset for the detail's capture data attribute.
GB_AttributeRef findPointCaptureAttribute (CaptureType t=CAPTURE_BONE) const
GB_AttributeRef findPointCaptureAlphaAttribute () const
 Find the offset for the bone capture alpha point attribute.
GB_AttributeRef findPtIndexPairAttribute (const char *name) const
 Find the offset for a custom (index, weight) point attribute.
GB_AttributefindInternalChangedPointsAttribute () const
 Find the offset for a internalChangedPoints detail attribute.
GB_AttributeRef getInternalChangedPointsAttribute (UT_IntArray &changed_points) const
GB_AttributeRef findMetaRestTransformsAttribute () const
 Find the offset for the rest anchor transforms attribute.
void destroyNormalAttribute (GEO_AttributeOwner who)
void destroyTextureAttribute (GEO_AttributeOwner who)
void destroyVelocityAttribute (GEO_AttributeOwner who)
void destroyAlphaAttribute (GEO_AttributeOwner who)
void destroyComAttribute (GEO_AttributeOwner who)
void destroyDiffuseAttribute (GEO_AttributeOwner who)
void destroyDistanceAttribute (GEO_AttributeOwner who)
void destroyLODAttribute (GEO_AttributeOwner who)
void destroyRestAttribute (GEO_AttributeOwner who)
void destroyTubeCaptureAttribute ()
void destroyCaptureFrameAttribute (CaptureType t=CAPTURE_BONE)
 Destroy the detail's capture frame attribute for capture type t.
void destroyCaptureSkelRootAttribute (CaptureType t=CAPTURE_BONE)
 Destroy the bone capture skeleton root detail attribute.
void destroyPtCapturePathAttribute (CaptureType t=CAPTURE_BONE)
void destroyPtCaptureAttribute (CaptureType t=CAPTURE_BONE)
 Destroy the detail's capture data attribute.
void destroyPointCaptureAttribute (CaptureType t=CAPTURE_BONE)
void destroyPointCaptureAlphaAttribute ()
 Destroy the bone capture alpha point attribute.
void destroyPtIndexPairAttribute (const char *name)
 Destroy a custom (index, weight) point attribute.
void destroyInternalChangedPointsAttribute ()
 Destroy the internalChangedPoints detail attribute.
void destroyMetaRestTransformsAttribute ()
 Destroy the rest transforms attribute.
bool getMetaRestAnchorPath (UT_String &anchorPath)
const char * getStdAttributeName (GEO_Standard_Attributes name, int layer=-1) const
void setStdAttributeName (GEO_Standard_Attributes name, const char *newname)
int getAttributeLayer (const char *attr_name) const
int getCurrentLayer () const
 These handle layers:.
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:.
void getLayerMerge (int &preclear, int &mask, int &srcblend, int &dstblend)
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:.
GB_AttributeRef growPtCaptureAttribute (int num_added_xforms, CaptureType t=CAPTURE_BONE)
 increase the memory size of the attribute
GB_AttributeRef growPointCaptureAttribute (int added_size, CaptureType t=CAPTURE_BONE)
GB_AttributeRef shrinkPtCaptureAttribute (int index, int offset, CaptureType t=CAPTURE_BONE)
 delete the capture attribute deleting data at offset
GB_AttributeRef addIndexAttribute (const char *n, const char *dv, GEO_AttributeOwner who)
GB_AttributeRef findIndexAttribute (const char *n, GEO_AttributeOwner who) const
void destroyIndexAttribute (const char *n, GEO_AttributeOwner who)
GB_AttributeRef addPointAttrib (const GB_Attribute *src)
GB_AttributeRef addPointAttrib (const char *n, int s, GB_AttribType t, GB_AttribTypeInfo f, const void *dv)
GB_AttributeRef addPointAttrib (const char *n, int s, GB_AttribType t, const void *dv)
GB_AttributeRef findPointAttrib (const GB_Attribute *src) const
GB_AttributeRef findPointAttrib (const char *n, int s, GB_AttribType t) const
GB_AttributeRef findPointAttrib (const char *n, GB_AttribType t) const
GB_AttributeRef findPointVectorAttrib (const char *n) const
void destroyPointAttrib (const char *n, int s, GB_AttribType t)
GB_AttributeRef addVertexAttrib (const GB_Attribute *src)
GB_AttributeRef addVertexAttrib (const char *n, int s, GB_AttribType t, GB_AttribTypeInfo f, const void *dv)
GB_AttributeRef addVertexAttrib (const char *n, int s, GB_AttribType t, const void *dv)
GB_AttributeRef findVertexAttrib (const GB_Attribute *src) const
GB_AttributeRef findVertexAttrib (const char *n, int s, GB_AttribType t) const
void destroyVertexAttrib (const char *n, int s, GB_AttribType t)
GB_AttributeRef addPrimAttrib (const GB_Attribute *src)
GB_AttributeRef addPrimAttrib (const char *n, int s, GB_AttribType t, GB_AttribTypeInfo f, const void *dv)
GB_AttributeRef addPrimAttrib (const char *n, int s, GB_AttribType t, const void *dv)
GB_AttributeRef findPrimAttrib (const GB_Attribute *src) const
GB_AttributeRef findPrimAttrib (const char *n, int s, GB_AttribType t) const
void destroyPrimAttrib (const char *n, int s, GB_AttribType t)
GB_AttributeRef addAttrib (GB_Attribute *src)
GB_AttributeRef addAttrib (const char *n, int s, GB_AttribType t, const void *dv)
GB_AttributeRef addAttrib (const char *n, int s, GB_AttribType t, GB_AttribTypeInfo f, const void *dv)
GB_AttributeRef findAttrib (const GB_Attribute *src) const
GB_AttributeRef findAttrib (const char *n, int s, GB_AttribType t) const
GB_AttributeRef findAttrib (const char *n, GB_AttribType t) const
void destroyAttrib (const char *n, int s, GB_AttribType t)
void destroyAttrib (const char *n, GB_AttribType t)
void sortAllAttributes (const GEO_Detail &src)
GEO_PointListpoints ()
 Query the internal structures:.
GEO_PrimListprimitives ()
GEO_PointAttribDictpointAttribs ()
GEO_PrimAttribDictprimitiveAttribs ()
GEO_VertexAttribDictvertexAttribs ()
GB_AttributeTableattribs ()
const GEO_PointListpoints () const
const GEO_PrimListprimitives () const
const GEO_PointAttribDictpointAttribs () const
const GEO_PrimAttribDictprimitiveAttribs () const
const GEO_VertexAttribDictvertexAttribs () const
const GB_AttributeTableattribs () const
void addMetaRef (void)
void delMetaRef (void)
void addPasteRef (void)
void addParticleRef (void)
void delPasteRef (void)
void addQuadricRef (void)
void delQuadricRef (void)
void delParticleRef (void)
void addVolumeRef ()
void delVolumeRef ()
int metaCount () const
 The number of metaball primitives in this gdp.
int pasteCount () const
int quadricCount () const
int particleCount () const
int volumeCount () const
TS_MetaExpressiongetMetaExpression (GB_PrimitiveGroup *primGroup=0)
GEO_MetaExpressiongetGeoMetaExpression ()
unsigned getStandardAttributes (const char *s, GEO_Standard_Attributes &a)
void stashAll ()
void destroyStashed ()
void mergeCapturePathAndData (const GEO_Detail &src, const GB_Attribute *src_path_atr, const GB_Attribute *my_path_atr, int src_size, int my_size, int *&new_indices)
GEO_AttributeHandle getPointAttribute (const char *attrib_name) const
 Methods for dealing with attribute handles.
GEO_AttributeHandle getPrimAttribute (const char *attrib_name) const
GEO_AttributeHandle getVertexAttribute (const char *attrib_name) const
GEO_AttributeHandle getDetailAttribute (const char *attrib_name) const
GEO_AttributeHandle getAttribute (GEO_AttributeOwner dict, const char *attrib_name) const
bool changeAttributeStorage (GEO_AttributeOwner dict, const char *name, GB_AttribType new_type)
bool changePointAttributeStorage (const char *nm, GB_AttribType t)
bool changeVertexAttributeStorage (const char *nm, GB_AttribType t)
bool changePrimAttributeStorage (const char *nm, GB_AttribType t)
bool changeDetailAttributeStorage (const char *nm, GB_AttribType t)
bool setDetailAttributeS (const char *aname, const char *value)
bool setDetailAttributeR (const char *aname, const UT_Ramp &ramp)
bool setDetailAttributeF (const char *aname, float v)
bool setDetailAttributeF (const char *aname, float v1, float v2)
bool setDetailAttributeI (const char *aname, int v)
GEO_AttributeOwner getAttributeOwner (const GB_AttributeDict &dict) const
const GB_AttributeDictgetAttributeDict (GEO_AttributeOwner own) const
void buildPointTree ()
void buildPointTree (UT_DMatrix4 &xform)
GEO_PointTreegetPointTree ()
 Returns our current point tree.
void destroyPointTree ()
const GEO_PrimitivefindPrimitiveByName (const char *nametomatch, unsigned primmask=GEOPRIMALL, const char *nameattrib="name") const
GEO_PrimitivefindPrimitiveByName (const char *nametomatch, unsigned primmask=GEOPRIMALL, const char *nameattrib="name")
void findAllPrimitivesByName (UT_PtrArray< const GEO_Primitive * > &primlist, const char *nametomatch, unsigned primmask=GEOPRIMALL, const char *nameattrib="name") const
 Like findPrimitiveByName, but adds all matching primitives to the list.
void findAllPrimitivesByName (UT_PtrArray< GEO_Primitive * > &primlist, const char *nametomatch, unsigned primmask=GEOPRIMALL, const char *nameattrib="name")
void mergeDetailAttributes (const GEO_Detail &src, int num_pts_prev)
GB_AttributeRef addAttribute (const char *, int, GB_AttribType, const void *dv, GEO_AttributeOwner)
 Some common methods for the standard guys.
GB_AttributeRef addAttribute (const char *, int, GB_AttribType, GB_AttribTypeInfo, const void *dv, GEO_AttributeOwner)
GB_AttributeRef growAttribute (const char *name, int added_size, GB_AttribType type, GEO_AttributeOwner)
GB_AttributeRef findAttribute (const char *, int, GB_AttribType, GEO_AttributeOwner) const
GB_AttributeRef findAttribute (const char *, GB_AttribType, GEO_AttributeOwner) const
void destroyAttribute (const char *, int size, GB_AttribType, GEO_AttributeOwner)
void destroyAttribute (const char *, GB_AttribType, GEO_AttributeOwner)

Static Public Member Functions

static const char * getPointCaptureAttribName (CaptureType type)
static const char * getPointCaptureIndexAttribName (CaptureType type)
static const char * getPointCaptureFrameAttribName (CaptureType type)
static const char * getPointCaptureRootAttribName (CaptureType type)
static const char * getPointCaptureDataAttribName (CaptureType type)
static int getPointCaptureDataAttribEntrySize (CaptureType t)

Protected Member Functions

void transformInternal (const UT_Matrix4 &mat, const GB_PrimitiveGroup *primGrp, const GB_PointGroup *pointClosure, bool userange, int min_ptnum, int max_ptnum, int min_primnum, int max_primnum, int quickxform, int keep_vector_lengths, int check_pasting, int neg_determinant_flipvector, int update_ptnormals, GEO_Delta *geodelta)
virtual GEO_PrimitivenewPrimitive (unsigned type)=0
virtual GB_PrimitiveappendNewPrimitive (unsigned type)
 Create a primitive of a specific type:.
virtual unsigned getPrimitiveType (const char *name) const
virtual const char * getPrimitiveName (unsigned type) const

Protected Attributes

UT_PtrArray< GEO_Point * > myStashedPoints
UT_PtrArray< GEO_Primitive * > myStashedPrims
GEO_TempPointCache * myTemporaryPoints
GEO_TempVertexCache * myTemporaryVertices

Friends

ostream & operator<< (ostream &os, const GEO_Detail &d)


Detailed Description

Definition at line 163 of file GEO_Detail.h.


Member Enumeration Documentation

Methods for manipulating capture weights (GEO_CaptureWeight.C).

Enumerator:
CAPTURE_BONE 
CAPTURE_META 
CAPTURE_WIRE 

Definition at line 457 of file GEO_Detail.h.

Enumerator:
VISTYPE_SINGLE 
VISTYPE_MULTIPLE 

Definition at line 554 of file GEO_Detail.h.


Constructor & Destructor Documentation

GEO_Detail::GEO_Detail (  ) 

virtual GEO_Detail::~GEO_Detail (  )  [virtual]


Member Function Documentation

GB_AttributeRef GEO_Detail::addAlphaAttribute ( GEO_AttributeOwner  who  ) 

GB_AttributeRef GEO_Detail::addAttrib ( const char *  n,
int  s,
GB_AttribType  t,
GB_AttribTypeInfo  f,
const void *  dv 
) [inline]

Definition at line 1061 of file GEO_Detail.h.

GB_AttributeRef GEO_Detail::addAttrib ( const char *  n,
int  s,
GB_AttribType  t,
const void *  dv 
) [inline]

Definition at line 1058 of file GEO_Detail.h.

GB_AttributeRef GEO_Detail::addAttrib ( GB_Attribute src  )  [inline]

Note: if attrib already exists, will return offset of existing attrib.

Examples:
SOP/SOP_DetailAttrib.C.

Definition at line 1056 of file GEO_Detail.h.

GB_AttributeRef GEO_Detail::addAttribute ( const char *  ,
int  ,
GB_AttribType  ,
GB_AttribTypeInfo  ,
const void *  dv,
GEO_AttributeOwner   
)

GB_AttributeRef GEO_Detail::addAttribute ( const char *  ,
int  ,
GB_AttribType  ,
const void *  dv,
GEO_AttributeOwner   
)

Some common methods for the standard guys.

int GEO_Detail::addAverageCaptureWeight ( const GB_PointGroup ptgroup,
const UT_String root_path,
UT_HashTable averages 
) const

Get the average capture weight of a set of points.

GB_AttributeRef GEO_Detail::addCaptureFrameAttribute ( CaptureType  t = CAPTURE_BONE  ) 

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

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.

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.

GB_AttributeRef GEO_Detail::addCaptureSkelRootAttribute ( CaptureType  t = CAPTURE_BONE  ) 

Add the bone capture skeleton root detail attribute.

GB_AttributeRef GEO_Detail::addComAttribute ( GEO_AttributeOwner  who  ) 

GB_AttributeRef GEO_Detail::addDiffuseAttribute ( GEO_AttributeOwner  who  ) 

GB_AttributeRef GEO_Detail::addDistanceAttribute ( GEO_AttributeOwner  who  ) 

GB_AttributeRef GEO_Detail::addIndexAttribute ( const char *  n,
const char *  dv,
GEO_AttributeOwner  who 
)

GB_AttributeRef GEO_Detail::addInternalChangedPointsAttribute ( const UT_IntArray changed_points  ) 

Set the internalChangedPoints detail attribute from array of point numbers. This will return the new offset of the detail attribute NB: If the attribute already exists, we will grow it as necessary, returning a possibly new offset.

GB_AttributeRef GEO_Detail::addLODAttribute ( GEO_AttributeOwner  who  ) 

void GEO_Detail::addMetaRef ( void   )  [inline]

Definition at line 1113 of file GEO_Detail.h.

GB_AttributeRef GEO_Detail::addMetaRestTransformsAttribute ( int  num_xforms  ) 

Add a rest anchor transform attribute.

GB_AttributeRef GEO_Detail::addNormalAttribute ( GEO_AttributeOwner  who  ) 

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.

void GEO_Detail::addParticleRef ( void   )  [inline]

Definition at line 1116 of file GEO_Detail.h.

void GEO_Detail::addPasteRef ( void   )  [inline]

Definition at line 1115 of file GEO_Detail.h.

GB_AttributeRef GEO_Detail::addPointAttrib ( const char *  n,
int  s,
GB_AttribType  t,
const void *  dv 
) [inline]

Definition at line 991 of file GEO_Detail.h.

GB_AttributeRef GEO_Detail::addPointAttrib ( const char *  n,
int  s,
GB_AttribType  t,
GB_AttribTypeInfo  f,
const void *  dv 
) [inline]

Definition at line 987 of file GEO_Detail.h.

GB_AttributeRef GEO_Detail::addPointAttrib ( const GB_Attribute src  )  [inline]

GB_AttributeRef GEO_Detail::addPointCaptureAlphaAttribute ( float  dflt  ) 

Add the bone capture alpha point attribute.

GB_AttributeRef GEO_Detail::addPointCaptureAttribute ( int  size,
CaptureType  t = CAPTURE_BONE 
)

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

GB_AttributeRef GEO_Detail::addPrimAttrib ( const char *  n,
int  s,
GB_AttribType  t,
const void *  dv 
) [inline]

Definition at line 1040 of file GEO_Detail.h.

GB_AttributeRef GEO_Detail::addPrimAttrib ( const char *  n,
int  s,
GB_AttribType  t,
GB_AttribTypeInfo  f,
const void *  dv 
) [inline]

Definition at line 1037 of file GEO_Detail.h.

GB_AttributeRef GEO_Detail::addPrimAttrib ( const GB_Attribute src  )  [inline]

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

Definition at line 1035 of file GEO_Detail.h.

GB_AttributeRef GEO_Detail::addPtCaptureAttribute ( int  num_xforms,
CaptureType  t = CAPTURE_BONE 
)

Add the detail's capture data attribute, which usually stores xforms (and possibly some extra data).

GB_AttributeRef GEO_Detail::addPtCapturePathAttribute ( CaptureType  t = CAPTURE_BONE  ) 

Add the detail's index attribute used when storing capture weights.

GB_AttributeRef GEO_Detail::addPtIndexPairAttribute ( const char *  name,
int  size_bytes 
)

Add a new custom (index, weight) point attribute.

void GEO_Detail::addQuadricRef ( void   )  [inline]

Definition at line 1118 of file GEO_Detail.h.

GB_AttributeRef GEO_Detail::addRestAttribute ( GEO_AttributeOwner  who  ) 

GB_AttributeRef GEO_Detail::addTextureAttribute ( GEO_AttributeOwner  who  ) 

GB_AttributeRef GEO_Detail::addTubeCaptureAttribute (  ) 

void GEO_Detail::addVariableName ( const char *  attr,
const char *  varname 
)

GB_AttributeRef GEO_Detail::addVelocityAttribute ( GEO_AttributeOwner  who  ) 

GB_AttributeRef GEO_Detail::addVertexAttrib ( const char *  n,
int  s,
GB_AttribType  t,
const void *  dv 
) [inline]

Definition at line 1021 of file GEO_Detail.h.

GB_AttributeRef GEO_Detail::addVertexAttrib ( const char *  n,
int  s,
GB_AttribType  t,
GB_AttribTypeInfo  f,
const void *  dv 
) [inline]

Definition at line 1017 of file GEO_Detail.h.

GB_AttributeRef GEO_Detail::addVertexAttrib ( const GB_Attribute src  )  [inline]

Definition at line 1015 of file GEO_Detail.h.

void GEO_Detail::addVolumeRef (  )  [inline]

Definition at line 1121 of file GEO_Detail.h.

GEO_Point* GEO_Detail::allocateTempPoint (  ) 

Allocate/free temporaray points. These points will have invalid point indicies, but can be used to access point attributes for temporary storage. Please use GEO_TempPointH instead of calling these directly.

GEO_Vertex* GEO_Detail::allocateTempVertex ( GEO_Point pt  ) 

Allocate/free temporaray points. These points will have invalid point indicies, but can be used to access point attributes for temporary storage. Please use GEO_TempVertexH instead of calling these directly.

virtual GB_Breakpoint* GEO_Detail::allocBreakpoint (  )  const [virtual]

A virtual hook so that GEO_Detail can allocate GEO_Breakpoint for the GB_BreakpointGroup::load() method.

Reimplemented from GB_Detail.

virtual GB_Primitive* GEO_Detail::appendNewPrimitive ( unsigned  type  )  [protected, virtual]

Create a primitive of a specific type:.

Implements GB_Detail.

SYS_DEPRECATED GEO_Point* GEO_Detail::appendPoint ( const UT_Vector4 pos,
GB_AttributeData adata,
short  stealattrib = 0 
)

GEO_Point* GEO_Detail::appendPoint ( const GEO_Point src  )  [inline]

Append a point, copying data from the source point. If the source point is from another detail, that detail's point attribute dictionary must be an extension of ours, not typically the case.

Definition at line 607 of file GEO_Detail.h.

GEO_Point* GEO_Detail::appendPoint (  )  [inline]

GEO_Primitive* GEO_Detail::appendPrimitive ( unsigned  type,
const GEO_Primitive src = 0,
GEO_Point **  ptredirect = 0 
) [inline]

Examples:
SIM/SIM_ForceOrbit.C, and SOP/SOP_SParticle.C.

Definition at line 637 of file GEO_Detail.h.

const GB_AttributeTable& GEO_Detail::attribs (  )  const [inline]

Definition at line 1111 of file GEO_Detail.h.

GB_AttributeTable& GEO_Detail::attribs (  )  [inline]

Examples:
SOP/SOP_DetailAttrib.C.

Definition at line 1098 of file GEO_Detail.h.

void SYS_DEPRECATED GEO_Detail::blendVertex ( GEO_Vertex dest,
const GEO_Vertex src,
float  bias,
GB_FloatOffsets ptarray,
GB_FloatOffsets vtxarray 
) const

Blend the vertex attributes, point position and attributes.

void GEO_Detail::buildPointTree ( UT_DMatrix4 xform  ) 

void GEO_Detail::buildPointTree (  ) 

Functions for building and accessing a point tree. The second call is used to transform each point before inserting it in to the tree.

bool GEO_Detail::changeAttributeStorage ( GEO_AttributeOwner  dict,
const char *  name,
GB_AttribType  new_type 
)

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 char *  nm,
GB_AttribType  t 
)

bool GEO_Detail::changePointAttributeStorage ( const char *  nm,
GB_AttribType  t 
)

bool GEO_Detail::changePrimAttributeStorage ( const char *  nm,
GB_AttribType  t 
)

bool GEO_Detail::changeVertexAttributeStorage ( const char *  nm,
GB_AttribType  t 
)

void GEO_Detail::clampCaptureWeights ( const GB_PointGroup ptgroup = 0,
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.

virtual void GEO_Detail::clearAndDestroy (  )  [virtual]

Clear all the points/primitives out of this detail.

Reimplemented from GB_Detail.

Reimplemented in GU_Detail.

void GEO_Detail::clearCaptureWeights ( GEO_Point ppt,
CaptureType  t = CAPTURE_BONE 
)

void GEO_Detail::collapseIndexAttributes (  ) 

void GEO_Detail::colorPointsByCaptureWeight ( const UT_PtrArray< 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 weight.

void GEO_Detail::computeNormal ( const GB_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::computeNormal ( const GB_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 GEO_Primitive prim,
UT_Vector3 nml 
) const

This is the same as prim.computeNormal().

void GEO_Detail::computeNormal ( const GEO_Point point,
UT_Vector3 nml 
) const

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. WARNING: This could be very slow! Are you sure you need no side-effects? See computeNormalInternal!

void GEO_Detail::computeNormalInternal ( const GB_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::computeNormalInternal ( const GEO_Point point,
UT_Vector3 nml 
)

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

int GEO_Detail::copy ( const GEO_Detail src,
int  method = GB_COPY_ONCE,
bool  collapse_on_end = true,
bool  keep_internal_groups = true 
)

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::copyPointAttributes ( GEO_Point dest,
const GEO_Point src 
) const

Copy point attribute data from the source point to the dest.

void GEO_Detail::copyPointGroups ( GEO_Point dest,
const GEO_Point src 
) const

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

Copy vertex AND point attributes.

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

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 GEO_Point pointer to the destination.

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

Copy vertex attributes from source to destination.

virtual void GEO_Detail::deleteBreakpoints ( GB_BreakpointGroup bkptgrp  )  [virtual]

Delete a whole group of breakpoints, the group is cleared when done.

virtual void GEO_Detail::deletePrimitive ( unsigned int  num,
int  andpoints = 0 
) [virtual]

Reimplemented from GB_Detail.

virtual void GEO_Detail::deletePrimitive ( GB_Primitive p,
int  andpoints = 0 
) [inline, virtual]

Delete a primitive:.

Reimplemented from GB_Detail.

Definition at line 645 of file GEO_Detail.h.

virtual void GEO_Detail::deletePrimitives ( UT_PtrArray< GEO_Primitive * > &  prims_in,
int  andpoints = 0 
) [virtual]

virtual void GEO_Detail::deletePrimitives ( const GB_PrimitiveGroup primGrp,
int  andpoints = 0 
) [virtual]

Delete a whole group of primitives:.

Reimplemented from GB_Detail.

void GEO_Detail::deleteTempPoint ( GEO_Point pt  ) 

void GEO_Detail::deleteTempVertex ( GEO_Vertex vtx  ) 

void GEO_Detail::delMetaRef ( void   )  [inline]

Definition at line 1114 of file GEO_Detail.h.

void GEO_Detail::delParticleRef ( void   )  [inline]

Definition at line 1120 of file GEO_Detail.h.

void GEO_Detail::delPasteRef ( void   )  [inline]

Definition at line 1117 of file GEO_Detail.h.

void GEO_Detail::delQuadricRef ( void   )  [inline]

Definition at line 1119 of file GEO_Detail.h.

void GEO_Detail::delVolumeRef (  )  [inline]

Definition at line 1122 of file GEO_Detail.h.

void GEO_Detail::destroyAlphaAttribute ( GEO_AttributeOwner  who  ) 

void GEO_Detail::destroyAttrib ( const char *  n,
GB_AttribType  t 
) [inline]

Definition at line 1075 of file GEO_Detail.h.

void GEO_Detail::destroyAttrib ( const char *  n,
int  s,
GB_AttribType  t 
) [inline]

Definition at line 1073 of file GEO_Detail.h.

void GEO_Detail::destroyAttribute ( const char *  ,
GB_AttribType  ,
GEO_AttributeOwner   
)

void GEO_Detail::destroyAttribute ( const char *  ,
int  size,
GB_AttribType  ,
GEO_AttributeOwner   
)

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 ( GEO_AttributeOwner  who  ) 

void GEO_Detail::destroyDiffuseAttribute ( GEO_AttributeOwner  who  ) 

void GEO_Detail::destroyDistanceAttribute ( GEO_AttributeOwner  who  ) 

void GEO_Detail::destroyIndexAttribute ( const char *  n,
GEO_AttributeOwner  who 
)

void GEO_Detail::destroyInternalChangedPointsAttribute (  ) 

Destroy the internalChangedPoints detail attribute.

void GEO_Detail::destroyLODAttribute ( GEO_AttributeOwner  who  ) 

void GEO_Detail::destroyMetaRestTransformsAttribute (  ) 

Destroy the rest transforms attribute.

void GEO_Detail::destroyNormalAttribute ( GEO_AttributeOwner  who  ) 

void GEO_Detail::destroyPointAttrib ( const char *  n,
int  s,
GB_AttribType  t 
) [inline]

Definition at line 1011 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::destroyPointTree (  ) 

void GEO_Detail::destroyPrimAttrib ( const char *  n,
int  s,
GB_AttribType  t 
) [inline]

Definition at line 1050 of file GEO_Detail.h.

void GEO_Detail::destroyPtCaptureAttribute ( CaptureType  t = CAPTURE_BONE  ) 

Destroy the detail's capture data attribute.

void GEO_Detail::destroyPtCapturePathAttribute ( CaptureType  t = CAPTURE_BONE  ) 

Destroy the detail's index attribute used when storing capture weights for capture type t.

void GEO_Detail::destroyPtIndexPairAttribute ( const char *  name  ) 

Destroy a custom (index, weight) point attribute.

void GEO_Detail::destroyRestAttribute ( GEO_AttributeOwner  who  ) 

void GEO_Detail::destroyStashed (  ) 

Examples:
SOP/SOP_Surface.C.

void GEO_Detail::destroyTextureAttribute ( GEO_AttributeOwner  who  ) 

void GEO_Detail::destroyTubeCaptureAttribute (  ) 

void GEO_Detail::destroyVelocityAttribute ( GEO_AttributeOwner  who  ) 

void GEO_Detail::destroyVertexAttrib ( const char *  n,
int  s,
GB_AttribType  t 
) [inline]

Definition at line 1031 of file GEO_Detail.h.

void GEO_Detail::findAllPrimitivesByName ( UT_PtrArray< GEO_Primitive * > &  primlist,
const char *  nametomatch,
unsigned  primmask = GEOPRIMALL,
const char *  nameattrib = "name" 
)

void GEO_Detail::findAllPrimitivesByName ( UT_PtrArray< const GEO_Primitive * > &  primlist,
const char *  nametomatch,
unsigned  primmask = GEOPRIMALL,
const char *  nameattrib = "name" 
) const

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

GB_AttributeRef GEO_Detail::findAlphaAttribute ( GEO_AttributeOwner  who  )  const

GB_AttributeRef GEO_Detail::findAttrib ( const char *  n,
GB_AttribType  t 
) const [inline]

Definition at line 1070 of file GEO_Detail.h.

GB_AttributeRef GEO_Detail::findAttrib ( const char *  n,
int  s,
GB_AttribType  t 
) const [inline]

Definition at line 1067 of file GEO_Detail.h.

GB_AttributeRef GEO_Detail::findAttrib ( const GB_Attribute src  )  const [inline]

Definition at line 1065 of file GEO_Detail.h.

GB_AttributeRef GEO_Detail::findAttribute ( const char *  ,
GB_AttribType  ,
GEO_AttributeOwner   
) const

GB_AttributeRef GEO_Detail::findAttribute ( const char *  ,
int  ,
GB_AttribType  ,
GEO_AttributeOwner   
) const

GB_AttributeRef GEO_Detail::findCaptureFrameAttribute ( CaptureType  t = CAPTURE_BONE  )  const

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

GB_AttributeRef GEO_Detail::findCaptureSkelRootAttribute ( CaptureType  t = CAPTURE_BONE  )  const

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

GB_AttributeRef GEO_Detail::findComAttribute ( GEO_AttributeOwner  who  )  const

GB_AttributeRef GEO_Detail::findDiffuseAttribute ( GEO_AttributeOwner  who  )  const

GB_AttributeRef GEO_Detail::findDistanceAttribute ( GEO_AttributeOwner  who  )  const

GB_AttributeRef GEO_Detail::findIndexAttribute ( const char *  n,
GEO_AttributeOwner  who 
) const

GB_Attribute* GEO_Detail::findInternalChangedPointsAttribute (  )  const

Find the offset for a internalChangedPoints detail attribute.

GB_AttributeRef GEO_Detail::findLODAttribute ( GEO_AttributeOwner  who  )  const

GB_AttributeRef GEO_Detail::findMetaRestTransformsAttribute (  )  const

Find the offset for the rest anchor transforms attribute.

GB_AttributeRef GEO_Detail::findNormalAttribute ( GEO_AttributeOwner  who  )  const

GB_AttributeRef GEO_Detail::findPointAttrib ( const char *  n,
GB_AttribType  t 
) const [inline]

Definition at line 1001 of file GEO_Detail.h.

GB_AttributeRef GEO_Detail::findPointAttrib ( const char *  n,
int  s,
GB_AttribType  t 
) const [inline]

Definition at line 997 of file GEO_Detail.h.

GB_AttributeRef GEO_Detail::findPointAttrib ( const GB_Attribute src  )  const [inline]

GB_AttributeRef GEO_Detail::findPointCaptureAlphaAttribute (  )  const

Find the offset for the bone capture alpha point attribute.

GB_AttributeRef GEO_Detail::findPointCaptureAttribute ( CaptureType  t = CAPTURE_BONE  )  const

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

GB_AttributeRef GEO_Detail::findPointVectorAttrib ( const char *  n  )  const [inline]

Definition at line 1006 of file GEO_Detail.h.

GB_AttributeRef GEO_Detail::findPrimAttrib ( const char *  n,
int  s,
GB_AttribType  t 
) const [inline]

Definition at line 1046 of file GEO_Detail.h.

GB_AttributeRef GEO_Detail::findPrimAttrib ( const GB_Attribute src  )  const [inline]

Definition at line 1044 of file GEO_Detail.h.

GEO_Primitive* GEO_Detail::findPrimitiveByName ( const char *  nametomatch,
unsigned  primmask = GEOPRIMALL,
const char *  nameattrib = "name" 
)

const GEO_Primitive* GEO_Detail::findPrimitiveByName ( const char *  nametomatch,
unsigned  primmask = GEOPRIMALL,
const char *  nameattrib = "name" 
) 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 first matching primitive.

GB_AttributeRef GEO_Detail::findPtCaptureAttribute ( CaptureType  t = CAPTURE_BONE  )  const

Find the offset for the detail's capture data attribute.

GB_AttributeRef GEO_Detail::findPtCapturePathAttribute ( CaptureType  t = CAPTURE_BONE  )  const

Find the offset for the detail's index/path attribute, used when storing capture weights, for capture type t.

GB_AttributeRef GEO_Detail::findPtIndexPairAttribute ( const char *  name  )  const

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

GB_AttributeRef GEO_Detail::findRestAttribute ( GEO_AttributeOwner  who  )  const

GB_AttributeRef GEO_Detail::findTextureAttribute ( GEO_AttributeOwner  who  )  const

GB_AttributeRef GEO_Detail::findTubeCaptureAttribute (  )  const

GB_AttributeRef GEO_Detail::findVelocityAttribute ( GEO_AttributeOwner  who  )  const

GB_AttributeRef GEO_Detail::findVertexAttrib ( const char *  n,
int  s,
GB_AttribType  t 
) const [inline]

Definition at line 1027 of file GEO_Detail.h.

GB_AttributeRef GEO_Detail::findVertexAttrib ( const GB_Attribute src  )  const [inline]

Definition at line 1025 of file GEO_Detail.h.

void GEO_Detail::fixSplineWeights (  ) 

The following method will fix all rational curve/patch weights by flagging the curve/patch appropriately. It is quite expensive since it traverses the entire primitive list. Only call it as a last resort.

GEO_AttributeHandle GEO_Detail::getAttribute ( GEO_AttributeOwner  dict,
const char *  attrib_name 
) const

Examples:
SOP/SOP_CPPWave.C.

const GB_AttributeDict* GEO_Detail::getAttributeDict ( GEO_AttributeOwner  own  )  const

int GEO_Detail::getAttributeLayer ( const char *  attr_name  )  const

GEO_AttributeOwner GEO_Detail::getAttributeOwner ( const GB_AttributeDict dict  )  const

virtual int GEO_Detail::getBreakpointBBox ( UT_BoundingBox bbox,
const UT_Matrix4 transform,
const GB_BreakpointGroup grp 
) const [virtual]

virtual int GEO_Detail::getBreakpointBBox ( UT_BoundingBox bbox,
const GB_BreakpointGroup grp 
) const [virtual]

virtual int GEO_Detail::getBreakpointBSphere ( UT_BoundingSphere bsphere,
const GB_BreakpointGroup grp,
int  accuratebounds = 0 
) const [virtual]

int GEO_Detail::getCaptureRegionIndex ( const UT_String cregion_name,
CaptureType  t = CAPTURE_BONE 
)

Given a string representing a capture region for type t, return that region's index. -1 is returned if no index exists.

bool GEO_Detail::getCaptureRegionRootPath ( UT_String root_path,
CaptureType  t = CAPTURE_BONE 
) const

float GEO_Detail::getCaptureWeight ( int  cregion_index,
const GEO_Point ppt,
CaptureType  t = CAPTURE_BONE 
) const

Get the capture weight of a point.

void GEO_Detail::getCaptureWeights ( const GEO_Point ppt,
UT_IntArray regions,
UT_FloatArray weights,
CaptureType  t = CAPTURE_BONE 
) const

int GEO_Detail::getCurrentLayer (  )  const

These handle layers:.

GEO_AttributeHandle GEO_Detail::getDetailAttribute ( const char *  attrib_name  )  const

virtual int GEO_Detail::getEdgeBBox ( UT_BoundingBox bbox,
const UT_Matrix4 transform,
const GB_EdgeGroup grp 
) const [virtual]

virtual int GEO_Detail::getEdgeBBox ( UT_BoundingBox bbox,
const GB_EdgeGroup grp 
) const [virtual]

virtual int GEO_Detail::getEdgeBSphere ( UT_BoundingSphere bsphere,
const GB_EdgeGroup grp,
int  accuratebounds = 0 
) const [virtual]

GEO_MetaExpression* GEO_Detail::getGeoMetaExpression (  )  [inline]

Definition at line 1137 of file GEO_Detail.h.

virtual int GEO_Detail::getGroupBBox ( UT_BoundingBox bbox,
const UT_Matrix4 transform,
const GB_BaseGroup grp 
) const [virtual]

virtual int GEO_Detail::getGroupBBox ( UT_BoundingBox bbox,
const GB_BaseGroup grp 
) const [virtual]

virtual int GEO_Detail::getGroupBSphere ( UT_BoundingSphere bsphere,
const GB_BaseGroup grp,
int  accuratebounds 
) const [virtual]

GB_AttributeRef GEO_Detail::getInternalChangedPointsAttribute ( UT_IntArray changed_points  )  const

Find the offset for a internalChangedPoints detail attribute and get its data at the same time. Returns the offset (-1 if not found).

void GEO_Detail::getLayerMerge ( int &  preclear,
int &  mask,
int &  srcblend,
int &  dstblend 
)

TS_MetaExpression* GEO_Detail::getMetaExpression ( GB_PrimitiveGroup primGroup = 0  ) 

Warning: This function is very expensive. Please cache the value for later use yourself...

bool GEO_Detail::getMetaRestAnchorPath ( UT_String anchorPath  ) 

Retrieve the restAnchor string attribute from this gdp, if it exists - return true if successful

int GEO_Detail::getNumLayers (  )  const

int GEO_Detail::getPointAttribBBox ( const char *  name,
UT_BoundingBox bbox,
const GB_VertexGroup g 
) const

int GEO_Detail::getPointAttribBBox ( const char *  name,
UT_BoundingBox bbox,
const GB_EdgeGroup g 
) const

int GEO_Detail::getPointAttribBBox ( const char *  name,
UT_BoundingBox bbox,
const GB_PrimitiveGroup g 
) const

int GEO_Detail::getPointAttribBBox ( const char *  name,
UT_BoundingBox bbox,
const GB_PointGroup g = 0 
) const

The following method computes either a 2D or 3D bounding box for the specified GB_ATTRIB_FLOAT attribute.

int GEO_Detail::getPointAttribGroupBBox ( const char *  name,
UT_BoundingBox bbox,
const GB_BaseGroup grp 
) const

GEO_AttributeHandle GEO_Detail::getPointAttribute ( const char *  attrib_name  )  const

Methods for dealing with attribute handles.

Examples:
POP/POP_CircleForce.C, SIM/SNOW_Solver.C, and SOP/SOP_TimeCompare.C.

virtual int GEO_Detail::getPointBBox ( UT_BoundingBox bbox,
const UT_Matrix4 transform,
const GB_PointGroup g = 0 
) const [virtual]

Implements GB_Detail.

virtual int GEO_Detail::getPointBBox ( UT_BoundingBox bbox,
const GB_PointGroup g = 0 
) const [virtual]

Find the bounding box (optionally of a group of points) instantiation. Return 0 if the box is empty and 1 otherwise.

Implements GB_Detail.

virtual int GEO_Detail::getPointBSphere ( UT_BoundingSphere bsphere,
const GB_PointGroup g = 0,
int  accuratebounds = 0 
) const [virtual]

Implements GB_Detail.

static const char* GEO_Detail::getPointCaptureAttribName ( CaptureType  type  )  [static]

Get the name of the point attribute which contains (region, weight) pairs of capture data.

static int GEO_Detail::getPointCaptureDataAttribEntrySize ( CaptureType  t  )  [static]

Get the size of a point capture data attribute entry, in number of floats. This is one entry in the detail attribute mentioned in getPointCaptureDataAttribName, above. Returns -1 if a capture type doesn't use a point capture data attribute.

static const char* GEO_Detail::getPointCaptureDataAttribName ( CaptureType  type  )  [static]

Get the name of the detail attribute for capture data (usually, a linear array of transformation matrices + possibly other data). Returns NULL if a capture type doesn't use a capture data attribute.

static const char* GEO_Detail::getPointCaptureFrameAttribName ( CaptureType  type  )  [static]

Get the name of the detail attribute for capture frame. Returns NULL if a capture type doesn't use capture frame.

static const char* GEO_Detail::getPointCaptureIndexAttribName ( CaptureType  type  )  [static]

Get the name of the detail attribute which contains an index of region names (like capture regions and metaball groups). Returns NULL if no such region mapping exists for a type.

static const char* GEO_Detail::getPointCaptureRootAttribName ( CaptureType  type  )  [static]

Get the name of the detail attribute for capture root. Returns NULL if a capture type doesn't use capture frame.

GEO_PointTree* GEO_Detail::getPointTree (  )  [inline]

Returns our current point tree.

Definition at line 1199 of file GEO_Detail.h.

GEO_AttributeHandle GEO_Detail::getPrimAttribute ( const char *  attrib_name  )  const

virtual const char* GEO_Detail::getPrimitiveName ( unsigned  type  )  const [protected, virtual]

Implements GB_Detail.

virtual unsigned GEO_Detail::getPrimitiveType ( const char *  name  )  const [protected, virtual]

Implements GB_Detail.

unsigned GEO_Detail::getStandardAttributes ( const char *  s,
GEO_Standard_Attributes a 
)

const char* GEO_Detail::getStdAttributeName ( GEO_Standard_Attributes  name,
int  layer = -1 
) const

You should never assume that "uv" is textures! Note that Point capture is still special cased. If the supplied layer is <= 0, then the current layer is used. To extract all the layers names, one should do: for (layer = 1; layer <= getNumLayers(); layer++) layername[layer] = getStdAttributeName(..., layer);

void GEO_Detail::getVariableNameMap ( UT_String result  )  const

This gets a raw list of the variable maps suitable for caching to see if they changed.

int GEO_Detail::getVertexAttribBBox ( const char *  name,
UT_BoundingBox bbox,
const GB_VertexGroup g 
) const

int GEO_Detail::getVertexAttribBBox ( const char *  name,
UT_BoundingBox bbox,
const GB_EdgeGroup g 
) const

int GEO_Detail::getVertexAttribBBox ( const char *  name,
UT_BoundingBox bbox,
const GB_PrimitiveGroup g 
) const

int GEO_Detail::getVertexAttribBBox ( const char *  name,
UT_BoundingBox bbox,
const GB_PointGroup g = 0 
) const

int GEO_Detail::getVertexAttribGroupBBox ( const char *  name,
UT_BoundingBox bbox,
const GB_BaseGroup grp 
) const

GEO_AttributeHandle GEO_Detail::getVertexAttribute ( const char *  attrib_name  )  const

virtual int GEO_Detail::getVertexBBox ( UT_BoundingBox bbox,
const UT_Matrix4 transform,
const GB_VertexGroup g = 0 
) const [virtual]

virtual int GEO_Detail::getVertexBBox ( UT_BoundingBox bbox,
const GB_VertexGroup g = 0 
) const [virtual]

GB_AttributeRef GEO_Detail::growAttribute ( const char *  name,
int  added_size,
GB_AttribType  type,
GEO_AttributeOwner   
)

GB_AttributeRef GEO_Detail::growPointCaptureAttribute ( int  added_size,
CaptureType  t = CAPTURE_BONE 
)

GB_AttributeRef GEO_Detail::growPtCaptureAttribute ( int  num_added_xforms,
CaptureType  t = CAPTURE_BONE 
)

increase the memory size of the attribute

SYS_DEPRECATED GEO_Point* GEO_Detail::insertPoint ( const UT_Vector4 pos,
GB_AttributeData adata,
short  stealattrib = 0,
const GEO_Point beforeWhich = 0 
)

Deprecated:
in favour of insertPoint(const GEO_Point &src)

GEO_Point* GEO_Detail::insertPoint ( const GEO_Point src,
const GEO_Point beforeWhich = 0 
)

Insert a point, copying data from the source point. If the source point is from another detail, that detail's point attribute dictionary must be an extension of ours, not typically the case. If the beforeWhich point isn't specified, the point will be added at the end of the point list.

GEO_Point* GEO_Detail::insertPoint ( const GEO_Point beforeWhich = 0  ) 

Methods for adding to the point list. The methods that take an attribute data reference "steal" the data pointer and set adata's data pointer to zero.

GEO_Primitive* GEO_Detail::insertPrimitive ( unsigned  type,
const GEO_Primitive beforeWhich = 0,
const GEO_Primitive src = 0,
GEO_Point **  ptredirect = 0 
)

Inserting and appending a new primitive Insertion works the same way as insertion of points. However, the primitive is not allocated beforehand, leaving this to the allocator. If the source primitive is from another detail, our primitive attribute dictionary must be an extension of that detail's (see sortAllAttributes()). Note that this last condition is the reverse of that for inserting or appending a copy of a point.

virtual bool GEO_Detail::load ( UT_IStream is,
const UT_Options options 
) [virtual]

Implements GB_Detail.

Reimplemented in GU_Detail.

virtual int GEO_Detail::load ( const char *  ,
const UT_Options options 
) [pure virtual]

Implements GB_Detail.

Implemented in GU_Detail.

bool GEO_Detail::loadPoint ( UT_IStream is,
GEO_Point pt 
)

virtual bool GEO_Detail::loadVertex ( UT_IStream is,
GB_Vertex vtx 
) [virtual]

Reimplemented from GB_Detail.

void GEO_Detail::merge ( GEO_Primitive sprim,
int  insertPrimAtHead = 0 
)

void GEO_Detail::merge ( GEO_Detail src,
const GB_PrimitiveGroup primGrp = 0,
int  mergePrimGroup = 1,
int  insertPrimsAtHead = 0,
GEO_PointRedirectArray dest_to_src_ptarray = 0,
bool  keep_internal_groups = true 
)

Merge the whole detail, or only a group of prims, or only some points.

Examples:
VRAY/VRAY_DemoSprite.C.

void GEO_Detail::mergeCapturePathAndData ( const GEO_Detail src,
const GB_Attribute src_path_atr,
const GB_Attribute my_path_atr,
int  src_size,
int  my_size,
int *&  new_indices 
)

void GEO_Detail::mergeDetailAttributes ( const GEO_Detail src,
int  num_pts_prev 
)

Merges attributes from 'src' into this detail. Capture attributes for newly merged points are also updated. Newly merged points are identified by point numbers beginning from 'num_pts_prev'.

void GEO_Detail::mergePoints ( const GEO_Detail src,
const GB_PointGroup ptGrp = 0,
GEO_Point **  ptredirect = 0,
int  merge_groups = 1,
bool  keep_internal_groups = true 
)

int GEO_Detail::metaCount (  )  const [inline]

The number of metaball primitives in this gdp.

Definition at line 1125 of file GEO_Detail.h.

void GEO_Detail::mirror ( GEO_MirrorParms parms  ) 

Mirrors a portion of the gdp across some plane.

virtual GEO_Primitive* GEO_Detail::newPrimitive ( unsigned  type  )  [protected, pure virtual]

Implemented in GU_Detail.

virtual void GEO_Detail::normal ( UT_Vector3Array output,
bool  use_internaln = true 
) const [pure virtual]

Implemented in GU_Detail.

virtual GB_AttributeRef GEO_Detail::normal ( int  internal = 0,
GB_PrimitiveGroup primgroup = 0 
) [pure virtual]

Add and compute normal attributes. Returns the normal offset. If given a primgroup, only points within the selection are used in the calculation, all others are zeroed.

Implemented in GU_Detail.

void GEO_Detail::normalizeCaptureWeights ( const GB_PointGroup ptgroup = 0,
CaptureType  t = CAPTURE_BONE 
)

void GEO_Detail::normalizeRelativeCaptureWeights ( int  idx,
GEO_Point pt,
GEO_Delta delta = 0 
)

This specifies a capture index that is exempt from normalization.

void GEO_Detail::normalTranslate ( const GB_BreakpointGroup grp,
float  length = 1.0F,
int  check_pasting = 1,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

void GEO_Detail::normalTranslate ( const GB_EdgeGroup grp,
float  length = 1.0F,
int  check_pasting = 1,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

void GEO_Detail::normalTranslate ( const GB_PrimitiveGroup grp,
float  length = 1.0F,
int  check_pasting = 1,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

void GEO_Detail::normalTranslate ( const GB_PointGroup grp,
float  length = 1.0F,
int  check_pasting = 1,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

void GEO_Detail::normalTranslateGroup ( const GB_BaseGroup grp,
float  length = 1.0F,
int  check_pasting = 1,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

void GEO_Detail::normalTranslatePoints ( float  length = 1.0F,
int  check_pasting = 1,
const GB_PointGroup grp = 0,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

The normalTranslate* methods translate points, prims, edges or breakpoints along each of their normals.

void GEO_Detail::normalTranslatePrimitives ( float  length = 1.0F,
int  check_pasting = 1,
const GB_PrimitiveGroup grp = 0,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

int GEO_Detail::particleCount (  )  const [inline]

Definition at line 1128 of file GEO_Detail.h.

int GEO_Detail::pasteCount (  )  const [inline]

Definition at line 1126 of file GEO_Detail.h.

const GEO_PointAttribDict& GEO_Detail::pointAttribs (  )  const [inline]

Definition at line 1108 of file GEO_Detail.h.

GEO_PointAttribDict& GEO_Detail::pointAttribs (  )  [inline]

Examples:
SOP/SOP_BrushHairLen.C, and VRAY/VRAY_DemoSprite.C.

Definition at line 1095 of file GEO_Detail.h.

const GEO_PointList& GEO_Detail::points ( void   )  const [inline]

Definition at line 1100 of file GEO_Detail.h.

GEO_PointList& GEO_Detail::points ( void   )  [inline]

const GEO_PrimAttribDict& GEO_Detail::primitiveAttribs (  )  const [inline]

Definition at line 1109 of file GEO_Detail.h.

GEO_PrimAttribDict& GEO_Detail::primitiveAttribs (  )  [inline]

Examples:
SOP/SOP_PrimVOP.C, and VRAY/VRAY_DemoSprite.C.

Definition at line 1096 of file GEO_Detail.h.

const GEO_PrimList& GEO_Detail::primitives ( void   )  const [inline]

Definition at line 1104 of file GEO_Detail.h.

GEO_PrimList& GEO_Detail::primitives ( void   )  [inline]

int GEO_Detail::quadricCount (  )  const [inline]

Definition at line 1127 of file GEO_Detail.h.

int GEO_Detail::removeCaptureRegion ( const UT_String cregion_name,
CaptureType  t = CAPTURE_BONE 
)

Delete a capture region (detail and point attributes) data. Return index of deleted attribute, -1 if cannot delete capture region

void GEO_Detail::removeVariableName ( const char *  varname  )  [inline]

Definition at line 957 of file GEO_Detail.h.

virtual int GEO_Detail::save ( ostream &  os,
int  binary,
const UT_Options options 
) const [virtual]

Implements GB_Detail.

Reimplemented in GU_Detail.

virtual int GEO_Detail::save ( const char *  ,
int  binary,
const UT_Options options 
) const [pure virtual]

Stream I/O METHODS.

Implements GB_Detail.

Implemented in GU_Detail.

int GEO_Detail::saveASCIIPoint ( ostream &  os,
const GEO_Point pt 
) const

int GEO_Detail::saveBinaryPoint ( ostream &  os,
const GEO_Point pt 
) const

virtual int GEO_Detail::saveVertex ( ostream &  os,
const GB_Vertex vtx,
int  b 
) const [virtual]

The methods for saving/loading point references should only be called for saving binary data

Reimplemented from GB_Detail.

bool GEO_Detail::setCaptureRegionRootPath ( const UT_String root_path,
CaptureType  t = CAPTURE_BONE 
)

void GEO_Detail::setCaptureWeight ( int  cregion_index,
float  weight,
GEO_Point ppt,
GEO_Delta geodelta = 0,
int  add_weight = 0,
int  clamp_negative = 0,
int  normalizeweight = 0,
CaptureType  t = CAPTURE_BONE 
)

Set the capture weight on a point.

void GEO_Detail::setCaptureWeight ( int  cregion_index,
float  weight,
const GB_PointGroup ptgroup = 0,
GEO_Delta geodelta = 0,
int  add_weight = 0,
int  clamp_negative = 0,
int  normalizeweight = 0,
CaptureType  t = CAPTURE_BONE 
)

Set the capture weight on a group of points.

void GEO_Detail::setCurrentLayer ( int  layer  ) 

bool GEO_Detail::setDetailAttributeF ( const char *  aname,
float  v1,
float  v2 
)

bool GEO_Detail::setDetailAttributeF ( const char *  aname,
float  v 
)

bool GEO_Detail::setDetailAttributeI ( const char *  aname,
int  v 
)

bool GEO_Detail::setDetailAttributeR ( const char *  aname,
const UT_Ramp ramp 
)

bool GEO_Detail::setDetailAttributeS ( const char *  aname,
const char *  value 
)

Convenience functions to set a detail attribute to a specific value, and also create the attribute if it doesn't exist.

void GEO_Detail::setLayerMerge ( int  preclear,
int  mask,
int  srcblend,
int  dstblend 
)

These get and set the CURRENT layer's merge mode:.

void GEO_Detail::setNumLayers ( int  numlayer  ) 

void GEO_Detail::setStdAttributeName ( GEO_Standard_Attributes  name,
const char *  newname 
)

GB_AttributeRef GEO_Detail::shrinkPtCaptureAttribute ( int  index,
int  offset,
CaptureType  t = CAPTURE_BONE 
)

delete the capture attribute deleting data at offset

void GEO_Detail::softNormalTranslatePoints ( float  distance,
const GEO_Rolloff rolloff,
const GB_PointGroup ptgroup = 0,
int  along_lead_normal = 1,
int  check_pasting = 1,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

Translate points along their normals using soft-selections.

void GEO_Detail::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,
const GEO_Rolloff rolloff,
const GB_EdgeGroup edgegrp = 0,
int  quickxform = 0,
int  keep_vector_lengths = 1,
int  check_pasting = 1,
int  neg_determinant_flipvector = 1,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

void GEO_Detail::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,
const GEO_Rolloff rolloff,
const GB_PointGroup ptgroup = 0,
int  quickxform = 0,
int  keep_vector_lengths = 1,
int  check_pasting = 1,
int  neg_determinant_flipvector = 1,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

Transform points using soft-selections (proportional xform):.

void GEO_Detail::softTranslateEdges ( const UT_Vector3 delta,
const GEO_Rolloff rolloff,
const GB_EdgeGroup edgegrp = 0,
int  check_pasting = 1,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

void GEO_Detail::softTranslatePoints ( const UT_Vector3 delta,
const GEO_Rolloff rolloff,
const GB_PointGroup ptgroup = 0,
int  check_pasting = 1,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

Translate points using soft-selections (proportional xlate):.

void GEO_Detail::sortAllAttributes ( const GEO_Detail src  ) 

These methods will sort the attributes into a specific order They are basically used for making two details mergable. Attributes will be added if they don't already exist. At the conclusion, the attribute list will be identical to the table...

void GEO_Detail::stashAll (  ) 

These two functions should be used instead of the more destructive clearAndDestroy() when it it likely the geometry it relatively stable between operations

Examples:
SOP/SOP_Surface.C.

void GEO_Detail::transform ( const UT_Matrix4 mat,
const GB_PrimitiveGroup primGrp = 0,
const GB_PointGroup pointClosure = 0,
int  quickxform = 0,
int  keep_vector_lengths = 1,
int  check_pasting = 1,
int  neg_determinant_flipvector = 1,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

Transform/translate all or some of the primitives. The methods will run more efficiently if you happen to know the point closure apriori. If 'quickxform' is true, we don't transform the attributes and don't check for reflection matrix.

Examples:
SOP/SOP_HDKObject.C.

void GEO_Detail::transformBreakpoints ( const UT_Matrix4 mat,
const GB_BreakpointGroup grp = 0,
int  quickxform = 0,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

Transforms breakpoints.

void GEO_Detail::transformEdges ( const UT_Matrix4 mat,
const GB_EdgeGroup edgegrp = 0,
const GB_PrimitiveGroup primclosure = 0,
int  quickxform = 0,
int  keep_vector_lengths = 1,
int  check_pasting = 1,
int  neg_determinant_flipvector = 1,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

Transforms edges, calls transformPoints on the point closure of the edges.

void GEO_Detail::transformGroup ( const UT_Matrix4 mat,
const GB_BaseGroup grp,
int  quickxform = 0,
int  keep_vector_lengths = 1,
int  check_pasting = 1,
int  neg_determinant_flipvector = 1,
const GB_PointGroup ptclosure = 0,
const GB_PrimitiveGroup primclosure = 0,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

Convenience function, will call the appropriate transform/translate depending on the type of group

void GEO_Detail::transformInternal ( const UT_Matrix4 mat,
const GB_PrimitiveGroup primGrp,
const GB_PointGroup pointClosure,
bool  userange,
int  min_ptnum,
int  max_ptnum,
int  min_primnum,
int  max_primnum,
int  quickxform,
int  keep_vector_lengths,
int  check_pasting,
int  neg_determinant_flipvector,
int  update_ptnormals,
GEO_Delta geodelta 
) [protected]

void GEO_Detail::transformPoints ( const UT_Matrix4 mat,
const GB_PointGroup pointGroup = 0,
const GB_PrimitiveGroup primClosure = 0,
int  quickxform = 0,
int  keep_vector_lengths = 1,
int  check_pasting = 1,
int  neg_determinant_flipvector = 1,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

Transform/translate all or some of the points.

void GEO_Detail::transformRange ( const UT_Matrix4 mat,
int  min_ptnum,
int  max_ptnum,
int  min_primnum,
int  max_primnum,
int  quickxform = 0,
int  keep_vector_lengths = 1,
int  check_pasting = 1,
int  neg_determinant_flipvector = 1,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

void GEO_Detail::translate ( const UT_Vector3 delta,
const GB_PrimitiveGroup primGrp = 0,
const GB_PointGroup pointClosure = 0,
int  check_pasting = 1,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

void GEO_Detail::translateBreakpoints ( const UT_Vector3 delta,
const GB_BreakpointGroup grp = 0,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

void GEO_Detail::translateEdges ( const UT_Vector3 delta,
const GB_EdgeGroup edgegrp = 0,
int  check_pasting = 1,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

void GEO_Detail::translateGroup ( const UT_Vector3 delta,
const GB_BaseGroup grp,
int  check_pasting = 1,
const GB_PointGroup ptclosure = 0,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

void GEO_Detail::translatePoints ( const UT_Vector3 delta,
const GB_PointGroup pointGroup = 0,
int  check_pasting = 1,
int  update_ptnormals = 0,
GEO_Delta geodelta = 0 
)

void GEO_Detail::traverseVariableNames ( int(*)(const char *attr, const char *varname, void *data function,
void *  data 
) const

Traverses the variable name mappings currently present:.

const GEO_VertexAttribDict& GEO_Detail::vertexAttribs (  )  const [inline]

Definition at line 1110 of file GEO_Detail.h.

GEO_VertexAttribDict& GEO_Detail::vertexAttribs (  )  [inline]

Definition at line 1097 of file GEO_Detail.h.

void GEO_Detail::visualizeSoftPoints ( const GEO_Rolloff rolloff,
const GB_PointGroup ptgroup,
UT_ColorRamp  ramp 
)

int GEO_Detail::volumeCount (  )  const [inline]

Definition at line 1130 of file GEO_Detail.h.


Friends And Related Function Documentation

ostream& operator<< ( ostream &  os,
const GEO_Detail d 
) [friend]

Definition at line 1360 of file GEO_Detail.h.


Member Data Documentation

Definition at line 1257 of file GEO_Detail.h.

Definition at line 1258 of file GEO_Detail.h.

GEO_TempPointCache* GEO_Detail::myTemporaryPoints [protected]

Definition at line 1260 of file GEO_Detail.h.

GEO_TempVertexCache* GEO_Detail::myTemporaryVertices [protected]

Definition at line 1261 of file GEO_Detail.h.


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

Generated on Mon Jan 28 00:48:22 2013 for HDK by  doxygen 1.5.9