#include <GEO_Detail.h>

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 ®ions, 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_Point * | insertPoint (const GEO_Point *beforeWhich=0) |
| GEO_Point * | appendPoint () |
| GEO_Point * | insertPoint (const GEO_Point &src, const GEO_Point *beforeWhich=0) |
| SYS_DEPRECATED GEO_Point * | insertPoint (const UT_Vector4 &pos, GB_AttributeData &adata, short stealattrib=0, const GEO_Point *beforeWhich=0) |
| GEO_Point * | appendPoint (const GEO_Point &src) |
| SYS_DEPRECATED GEO_Point * | appendPoint (const UT_Vector4 &pos, GB_AttributeData &adata, short stealattrib=0) |
| GEO_Point * | allocateTempPoint () |
| void | deleteTempPoint (GEO_Point *pt) |
| GEO_Vertex * | allocateTempVertex (GEO_Point *pt) |
| void | deleteTempVertex (GEO_Vertex *vtx) |
| GEO_Primitive * | insertPrimitive (unsigned type, const GEO_Primitive *beforeWhich=0, const GEO_Primitive *src=0, GEO_Point **ptredirect=0) |
| GEO_Primitive * | appendPrimitive (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_Breakpoint * | allocBreakpoint () 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_Attribute * | findInternalChangedPointsAttribute () 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_PointList & | points () |
| Query the internal structures:. | |
| GEO_PrimList & | primitives () |
| GEO_PointAttribDict & | pointAttribs () |
| GEO_PrimAttribDict & | primitiveAttribs () |
| GEO_VertexAttribDict & | vertexAttribs () |
| GB_AttributeTable & | attribs () |
| const GEO_PointList & | points () const |
| const GEO_PrimList & | primitives () const |
| const GEO_PointAttribDict & | pointAttribs () const |
| const GEO_PrimAttribDict & | primitiveAttribs () const |
| const GEO_VertexAttribDict & | vertexAttribs () const |
| const GB_AttributeTable & | attribs () 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_MetaExpression * | getMetaExpression (GB_PrimitiveGroup *primGroup=0) |
| GEO_MetaExpression * | getGeoMetaExpression () |
| 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_AttributeDict * | getAttributeDict (GEO_AttributeOwner own) const |
| void | buildPointTree () |
| void | buildPointTree (UT_DMatrix4 &xform) |
| GEO_PointTree * | getPointTree () |
| Returns our current point tree. | |
| void | destroyPointTree () |
| const GEO_Primitive * | findPrimitiveByName (const char *nametomatch, unsigned primmask=GEOPRIMALL, const char *nameattrib="name") const |
| GEO_Primitive * | findPrimitiveByName (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_Primitive * | newPrimitive (unsigned type)=0 |
| virtual GB_Primitive * | appendNewPrimitive (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) |
Definition at line 163 of file GEO_Detail.h.
Methods for manipulating capture weights (GEO_CaptureWeight.C).
Definition at line 457 of file GEO_Detail.h.
| GEO_Detail::GEO_Detail | ( | ) |
| virtual GEO_Detail::~GEO_Detail | ( | ) | [virtual] |
| 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.
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] |
Definition at line 985 of file GEO_Detail.h.
| 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] |
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] |
| SYS_DEPRECATED GEO_Point* GEO_Detail::appendPoint | ( | const UT_Vector4 & | pos, | |
| GB_AttributeData & | adata, | |||
| short | stealattrib = 0 | |||
| ) |
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] |
Definition at line 590 of file GEO_Detail.h.
| GEO_Primitive* GEO_Detail::appendPrimitive | ( | unsigned | type, | |
| const GEO_Primitive * | src = 0, |
|||
| GEO_Point ** | ptredirect = 0 | |||
| ) | [inline] |
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] |
| 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] |
| 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 | |||
| ) |
| void GEO_Detail::copyFullVertex | ( | GEO_Vertex & | dest, | |
| const GEO_Vertex & | src | |||
| ) | const |
Copy vertex attributes AND change the point reference of the vertex.
Copy point attribute data from the source point to the dest.
| 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] |
| 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] |
| 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 | ( | ) |
| 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] |
Definition at line 995 of file GEO_Detail.h.
| 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 |
| 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.
| 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] |
| 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 | |||
| ) |
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.
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] |
| virtual int GEO_Detail::load | ( | const char * | , | |
| const UT_Options * | options | |||
| ) | [pure virtual] |
| 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.
| 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] |
| 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 | |||
| ) |
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] |
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] |
Query the internal structures:.
Definition at line 1087 of file GEO_Detail.h.
| const GEO_PrimAttribDict& GEO_Detail::primitiveAttribs | ( | ) | const [inline] |
Definition at line 1109 of file GEO_Detail.h.
| GEO_PrimAttribDict& GEO_Detail::primitiveAttribs | ( | ) | [inline] |
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] |
Definition at line 1091 of file GEO_Detail.h.
| 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] |
| virtual int GEO_Detail::save | ( | const char * | , | |
| int | binary, | |||
| const UT_Options * | options | |||
| ) | const [pure virtual] |
| 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
| 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.
| 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.
| ostream& operator<< | ( | ostream & | os, | |
| const GEO_Detail & | d | |||
| ) | [friend] |
Definition at line 1360 of file GEO_Detail.h.
UT_PtrArray<GEO_Point *> GEO_Detail::myStashedPoints [protected] |
Definition at line 1257 of file GEO_Detail.h.
UT_PtrArray<GEO_Primitive *> GEO_Detail::myStashedPrims [protected] |
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.
1.5.9