Mesh Class Reference

#include <mesh.h>

Class Description

A Mesh is a collection of vertices organized into faces, and optional Texture Coordinate information.

Mudbox models are represented by objects of the class Geometry. Each Geometry object contains a list of Meshes, one for each subdivision level. Each mesh is either entirely triangles, or entirely quads.

+ Examples:

Definition at line 452 of file mesh.h.

+ Inheritance diagram for Mesh:

Public Member Functions

virtual class GeometryGeometry (void) const
 Returns a pointer to the Geometry object that this mesh belongs to. More...
 
virtual class MeshRendererRenderer (float fLODLevel=1.0f)
 Returns a pointer to a MeshRenderer with the desired level-of-detail (see MeshRenderer for more information) More...
 
virtual void CopyTo (Node *pNode) const
 Copy the content of this mesh to another one. More...
 
virtual class MaterialMaterial (void) const
 Returns a pointer to the Material associated with this mesh. More...
 
virtual class MaterialMaterialOverride (void) const
 Material override. More...
 
unsigned int VertexCount (void) const
 Returns the number of vertices in the mesh. More...
 
void SetVertexCount (unsigned int iVertexCount)
 Sets the number of vertices in the mesh. Any existing data (that fits) will be kept. More...
 
unsigned int TCCount (void) const
 Returns the number of texture coordinates in the mesh. More...
 
virtual void SetTCCount (unsigned int iTCCount)
 Sets the number of texture coordinate vertices in the mesh. More...
 
bool HasTC (bool bIgnorePtexUV=false) const
 Returns true if the mesh has texture coordinates. More...
 
virtual unsigned int UVlessPaintingStatus (void) const
 Return the status of UV-less setup. 0 means no uv-less setup, 1 means the mesh is being set up, 2 means the mesh is uv-less setup. More...
 
virtual void SetUVlessPaintingStatus (unsigned int iStatus)
 Setup the status of UV-less setup. More...
 
const VertexVertexArray (void) const
 This method returns a pointer to the actual array data. More...
 
const VertexVertexData (unsigned int iVertexIndex) const
 Returns a vertex. More...
 
VertexVertexData (unsigned int iVertexIndex)
 Returns a vertex. More...
 
const VectorVertexPosition (unsigned int iVertexIndex) const
 Returns the x,y,z position of the vertex with the given index. More...
 
VectorVertexPosition (unsigned int iVertexIndex)
 Returns the x,y,z position of the vertex with the given index. More...
 
virtual const VectorVertexOriginalPosition (unsigned int iVertexIndex) const
 Returns the position of the vertex before the current sculpting-brush stroke. More...
 
const TCVertexTC (unsigned int iVertexTCIndex) const
 Returns the specified texture coordinate. More...
 
Vector VertexNormal (unsigned int iVertexIndex) const
 Returns the normal of the vertex with the given index. More...
 
unsigned int VertexStrokeID (unsigned int iVertexIndex) const
 Internal use only. Do not call this method. More...
 
float VertexMask (unsigned int iVertexIndex) const
 Returns the layer mask of the vertex with the given index for the current sculpt layer. More...
 
float VertexFreeze (unsigned int iVertexIndex) const
 Returns the freeze value of the vertex with the given index. More...
 
virtual unsigned int FrozenVertexCount (void) const
 Returns the number of vertices having a non-zero freeze value. More...
 
const tnormalVertexNormalArray (unsigned int iVertexIndex) const
 Returns the normal of the vertex with the given index as an array of 16-bit signed values. More...
 
tnormalv VertexNormalValue (unsigned int iVertexIndex) const
 Returns the normal of the vertex with the given index as a single 64-bit signed value. More...
 
const NormalVertexNormalArray (void) const
 
unsigned int VertexNormalCount (void) const
 
virtual AxisAlignedBoundingBox BoundingBox (bool bRecalculate=false) const
 Returns the bounding box of the mesh in local space. More...
 
virtual void SetBoundingBox (const AxisAlignedBoundingBox &cBox)
 
virtual AxisAlignedBoundingBox StrokeBoundingBox () const
 Returns region of the mesh that has changed in the current brush stroke in local space. More...
 
virtual void SetStrokeBoundingBox (const AxisAlignedBoundingBox &cBox)
 
virtual AxisAlignedBoundingBox TCBoundingBox (void) const
 Returns the bounding box of the UV shell of the mesh. More...
 
void SetVertexPosition (unsigned int iVertexIndex, const Vector &vPosition)
 Sets the position of the vertex with the given index. More...
 
void AddVertexPosition (unsigned int iVertexIndex, const Vector &vPosition)
 Adds vPosition to the current position of the vertex with the given index. More...
 
void SetVertexNormal (unsigned int iVertexIndex, int *pNormal)
 Internal use only. Do not call. More...
 
void SetVertexNormal (unsigned int iVertexIndex, const Vector &vNormal)
 Sets the normal of the vertex with the given index. More...
 
void SetVertexTC (unsigned int iTCIndex, const TC &tc)
 Sets the Texture Coordinated(UV) value at the given index. More...
 
virtual void SetVertexFreeze (unsigned int iVertexIndex, unsigned int iFaceIndex, float fFreeze)
 Sets the freeze value for the vertex with the given index. More...
 
virtual void SetFreezeValues (Store< float > &aNewFreeze)
 Sets the freeze values for the whole mesh from the given array. More...
 
void SetVertexMask (unsigned int iVertexIndex, unsigned int iFaceIndex, float fFMask)
 Internal use only. Do not call. More...
 
void SetVertexStrokeID (unsigned int iVertexIndex, unsigned int iStrokeID) const
 Internal use only. Do not call. More...
 
unsigned intGetVertexID (unsigned int iIndex)
 Not part of the Mesh API – used internally. More...
 
void MarkVertex (unsigned int iVertexIndex)
 Mark a particular vertex. More...
 
bool IsVertexMarked (unsigned int iVertexIndex)
 Returns true if a particular vertex is marked. More...
 
void ClearVertexMarks (void)
 Clears all vertex marks. More...
 
virtual unsigned int VertexExternalIndex (unsigned int iVertexIndex) const
 Returns the external vertex index for a given vertex. More...
 
virtual void SetVertexExternalIndex (unsigned int iVertexIndex, unsigned int iExternalVertexIndex)
 Sets the external vertex index for a given internal vertex index in the Mudbox mesh. More...
 
const VectorTriangleVertexPosition (unsigned int iTriangleIndex, unsigned int iCornerIndex) const
 Returns the position of a corner of a mesh face. More...
 
const VectorQuadVertexPosition (unsigned int iQuadIndex, unsigned int iCornerIndex) const
 Returns the position of a corner of a mesh face. Can be used for quadric meshes only. More...
 
const TCTriangleVertexTC (unsigned int iTriangleIndex, unsigned int iCornerIndex) const
 Returns the texture coordinates of a corner of a mesh face. More...
 
const TCQuadVertexTC (unsigned int iQuadIndex, unsigned int iCornerIndex) const
 Returns the texture coordinates of a corner of a mesh face. Can be used for quadric meshes only. More...
 
Vector TriangleVertexNormal (unsigned int iTriangleIndex, unsigned int iCornerIndex) const
 Returns the normal of a corner of a mesh face. Can be used for triangular meshes only. More...
 
Vector QuadVertexNormal (unsigned int iQuadIndex, unsigned int iCornerIndex) const
 Returns the normal of a corner of a mesh face. Can be used for quad meshes only. More...
 
Vector TriangleVertexCreaseNormal (unsigned int iTriangleIndex, unsigned int iCornerIndex) const
 Returns the normal of a corner of a mesh face. Can be used for triangular meshes only. More...
 
Vector QuadVertexCreaseNormal (unsigned int iQuadIndex, unsigned int iCornerIndex) const
 Returns the normal of a corner of a mesh face. Can be used for quad meshes only. More...
 
float TriangleVertexFreeze (unsigned int iTriangleIndex, unsigned int iCornerIndex) const
 Returns the freeze value of a corner of a mesh face. Can be used for triangular meshes only. More...
 
float QuadVertexFreeze (unsigned int iQuadIndex, unsigned int iCornerIndex) const
 Returns the freeze value of a corner of a mesh face. More...
 
const tnormalTriangleVertexNormalArray (unsigned int iTriangleIndex, unsigned int iCornerIndex) const
 Returns the normal of a corner of a triangle mesh face as an array of 16-bit signed values. More...
 
const tnormalQuadVertexNormalArray (unsigned int iQuadIndex, unsigned int iCornerIndex) const
 Returns the normal of a corner of a quad mesh face as an array of 16-bit signed values. More...
 
tnormalv TriangleVertexNormalValue (unsigned int iTriangleIndex, unsigned int iCornerIndex) const
 Returns the normal a corner of a triangle mesh face as a single 64-bit signed value. More...
 
tnormalv QuadVertexNormalValue (unsigned int iQuadIndex, unsigned int iCornerIndex) const
 Returns the normal a corner of a quad mesh face as a single 64-bit signed value. More...
 
virtual void EnumerateFaces (unsigned int iFaceIndex, FaceEnumerator *pEnumerator, bool bSymmetry=false)
 This method takes an operation that you define (derived from FaceEnumerator) and applies it to the specified face, and sequentially to its neighbors, then the neighbors of those faces, until the mesh has been covered. More...
 
virtual void EnumerateNearestFaces (unsigned int iFaceIndex, FaceEnumerator *pOperation)
 This method takes an operation that you define (derived from FaceEnumerator) and applies it to the specified face, and sequentially to its immediate neighbours. More...
 
virtual void EnumerateNeighboringFaces (unsigned int iFaceIndex, FaceEnumerator *pOperation)
 This method takes an operation that you define (derived from FaceEnumerator) and applies it to faces that are neighbors to the given face. More...
 
virtual void EnumerateFaces (FaceEnumerator *pEnumerator, SpatialGrid *pGrid, const AxisAlignedBoundingBox &cVolume)
 Enumerate all of the faces contained within the volume given by cVolume. More...
 
virtual void EnumerateVertices (unsigned int iFaceIndex, VertexEnumerator *pEnumerator)
 This method takes an operation that you define (derived from VertexEnumerator) and applies it to all the vertices of the specified face. More...
 
unsigned int EnumerateAdjacentVertices (AdjacentVertexEnumerator *pEnumerator, unsigned int iVertexIndex, unsigned int iFaceIndex)
 This method takes an operation that you define (derived from VertexEnumerator) and applies it to all the vertices adjacent to the specified one. More...
 
virtual void EnumerateVertices (VertexEnumerator *pEnumerator, SpatialGrid *pGrid, const AxisAlignedBoundingBox &cVolume)
 Enumerate all of the vertices contained within the volume given by cVolume. More...
 
virtual int MeshVersion (void) const
 Obsolete method; do not use. More...
 
virtual void SmoothTextureCoordinates (float fStrength)
 Obsolete method; do not use. More...
 
virtual void RecalculateNormals (bool bKeep=false)
 Recalculates all the vertex normals. This is called after the mesh shape has changed. More...
 
virtual bool RecalculateAdjacency (bool bForce=true, bool bCheckTShapes=true)
 Causes the mesh to build internal adjacency tables, if they don't exist already. Returns false if the operation failed, true otherwise. More...
 
unsigned int CollectionID (void) const
 Obsolete method; do not use. More...
 
void SetCollectionID (unsigned int id)
 
void IncreaseCollectionID (void)
 Obsolete method; do not use. More...
 
virtual bool IsSelected (void)
 Returns true if the whole mesh is selected. More...
 
virtual void SetSelected (bool bOn=true, bool bMerge=false)
 Selects or unselects the whole mesh. It can merge the operation with the current undo stack. More...
 
virtual class LayerMeshDataAddLayer (Layer *pLayer=NULL)
 Add a sculpt layer for this mesh, and makes it current. More...
 
virtual void RemoveLayer (LayerMeshData *pLayer)
 Removes a sculpt layer from the mesh and deletes it. More...
 
virtual class LayerMeshDataActiveLayer (void) const
 Returns a pointer to the current sculpt layer for this mesh. More...
 
virtual bool IsActiveLevel (void) const
 Returns true if this mesh is the currently displayed mesh of the Geometry object it is part of. More...
 
virtual bool Lock (class MeshUnlocker *pUnlocker=NULL )
 Locks the mesh for exclusive modifications. More...
 
virtual bool Unlock (void)
 Unlock the mesh. More...
 
virtual bool IsLocked (void)
 Returns true if the mesh is locked. More...
 
virtual class MeshChangeStartChange (void)
 This method must be called by any plugin before it modifies vertex data. More...
 
virtual void EndChange (bool bUndo=true, bool bMerge=false)
 This method must be called after a plugin has finished modifying data with StartChange() More...
 
virtual bool IsNSided (void) const
 Returns if the mesh contains non tri or quad faces. More...
 
virtual GenericFaceFace (unsigned int iIndex)
 Returns a polygon from generic face representation of the mesh. More...
 
virtual unsigned int GenericFaceCount (void)
 Returns the number of original faces. More...
 
virtual void ClearGenericFaces ()
 
virtual bool HasExpandedTCs (void) const
 Returns if the mesh has edge bleeded TC layout. More...
 
virtual void CreateExpandedTCs (void)
 Calculates the edge bleeded TC layout. More...
 
virtual TCExpandedTC (unsigned int index)
 Returns the Expanded TC value for the given vertex. More...
 
virtual bool SupportsTangentMirror () const
 Returns if the mesh supports tangent mirror mode. More...
 
virtual unsigned int TangentMirroredFaceIndex (unsigned int iFaceIndex) const
 Returns the index of tangent mirrored face. More...
 
virtual unsigned int TangentMirroredVertexIndex (unsigned int iFaceIndex, unsigned int iCornerIndex, unsigned int &iOppositeFaceIndex, unsigned int &iOppositeCornerIndex) const
 Returns the index of tangent mirrored vertex. More...
 
virtual bool InitializeTopologicalSymmetry (unsigned int iFaceIndex0, unsigned int iFaceIndex1, bool bSelectWhenFailed=true)
 This function initializes the topological symmetry for the mesh. More...
 
virtual bool IsTopologicalSymmetryInitialized (unsigned int &iFaceIndex0, unsigned int &iFaceIndex1) const
 This function returns true if topological symmetry is initialized properly for the mesh. More...
 
virtual void RecalculateTopologicalSymmetry (void)
 This function recalculates topological symmetry information from the lower subdivision levels if has any. More...
 
virtual SurfacePoint MirrorSurfacePoint (const SurfacePoint &cPoint)
 Mirrors a surface point using the topological symmetry. More...
 
virtual int TopologicalSide (unsigned int iFaceIndex)
 Retuns the index of side where the given face index is. More...
 
virtual unsigned int PrimaryCount (bool bNeedToUseTC)
 
virtual unsigned int QuadPrimaryIndex (bool bNeedToUseTC, unsigned int iFaceIndex, unsigned int iCornerIndex)
 Returns the primary index of a corner of a quad. More...
 
virtual unsigned int TrianglePrimaryIndex (bool bNeedToUseTC, unsigned int iFaceIndex, unsigned int iCornerIndex)
 Returns the primary index of a corner of a triangle. More...
 
virtual bool RecalculateVertexAdjacency (bool bForce=true)
 Causes the mesh to build internal vertex adjacency tables, if they don't exist already. Returns false if the operation failed, true otherwise. More...
 
void SetVertexAdjacency (unsigned int iVertexIndex, unsigned int iFaceIndex, unsigned int iCornerIndex)
 Sets the adjacency data for a specified vertex. If this vertex is not touching any faces, the face index and corner index should be set to 0xffffffff. More...
 
struct mudbox::VertexAdjacency VertexAdjacency (unsigned int iVertexIndex) const
 Returns the adjacency data for a specified vertex. If this vertex is not touching any face in the mesh the returned face index will be set to 0xffffffff. More...
 
virtual void Transform (const Matrix &mMatrix)
 
virtual void CheckValidity (DiagnosticLevel iLevel=dgnLevel2) const
 See the documentation for Node::CheckValidity. More...
 
unsigned int GetRestoreCount () const
 
const StoredVertexInfoGetRestoreVertexInfo (unsigned int i) const
 This is not part of the API – do not use. (it is here for performance reasons.) More...
 
unsigned intGetRestoreCountRef ()
 This is not part of the API – do not use. (it is here for performance reasons.) More...
 
Store< StoredVertexInfo > & GetRestoreBufferRef ()
 This is not part of the API – do not use. (it is here for performance reasons.) More...
 
SpatialGridGrid ()
 
- Public Member Functions inherited from Topology
void MoveTo (Topology *pDestination)
 Move the content of this object to another one. This is a fast function. More...
 
void CopyTo (Node *pNode) const
 Copy the content of this object to another one, while keeps the content of the current object. More...
 
void Serialize (Stream &s)
 serializes the content of the object into/from a stream. More...
 
FaceType Type (void) const
 Returns the type of the topology. Can be full triangular or full quadric. More...
 
void SetType (FaceType eType)
 Sets the type of the object. This call also clears all the content of the object. More...
 
int SideCount (void) const
 Returns the number of sides in the faces. This is three if the topology is triangle based, and four if its quad based. More...
 
unsigned int FaceCount (void) const
 Returns the number of faces in the topology. More...
 
virtual Vector FaceNormal (unsigned int iFaceIndex) const
 Returns the normal vector for a face in the topology. More...
 
void SetFaceID (unsigned int iFaceIndex, unsigned int iID)
 This function is used only internally. More...
 
unsigned int FaceID (unsigned int iFaceIndex) const
 This function is used only internally. More...
 
virtual void SetFakeTriangleCount (unsigned int iFakeTriangleCount)
 Call this method to indicate how many fake triangles are in the topology. More...
 
unsigned int QuadIndex (unsigned int iFaceIndex, unsigned int iCornerIndex) const
 Returns the vertex position index of a corner of a quad. More...
 
void SetQuadIndex (unsigned int iFaceIndex, unsigned int iCornerIndex, unsigned int iValue)
 Sets the vertex position index of a corner of a quad. More...
 
unsigned int QuadCreaseNormalIndex (unsigned int iFaceIndex, unsigned int iCornerIndex) const
 Returns the vertex crease/hard normal index of a corner of quad, if there is crease/hard normal of this corner, otherwise it is the vertex normal index. More...
 
void SetQuadCreaseNormalIndex (unsigned int iFaceIndex, unsigned int iCornerIndex, unsigned int iValue)
 Sets the vertex normal index of a corner of a quad. More...
 
unsigned int QuadTCI (unsigned int iFaceIndex, unsigned int iCornerIndex) const
 Returns the vertex texture coordinate index of a corner of a quad. More...
 
void SetQuadTCI (unsigned int iFaceIndex, unsigned int iCornerIndex, unsigned int iValue)
 Sets the vertex texture coordinate index of a corner of a quad. More...
 
virtual unsigned int QuadAdjacency (unsigned int iFaceIndex, unsigned int iSideIndex) const
 Returns the vertex adjacency information index of a side of a quad. More...
 
unsigned int QuadAdjacency_ForcedInline (unsigned int iFaceIndex, unsigned int iSideIndex) const
 
virtual void SetQuadAdjacency (unsigned int iFaceIndex, unsigned int iSideIndex, unsigned int iValue)
 Sets the adjacency info for a side of a quad. See QuadAdjacency for details. More...
 
bool HasAdjacentQuad (unsigned int iFaceIndex, unsigned int iSideIndex) const
 Returns true if the given edge of a quad has an adjacent quad on the other side. More...
 
unsigned int TriangleIndex (unsigned int iFaceIndex, unsigned int iCornerIndex) const
 Returns the vertex position index of a corner of a triangle. More...
 
void SetTriangleIndex (unsigned int iFaceIndex, unsigned int iCornerIndex, unsigned int iValue)
 Sets the vertex position index of a corner of a triangle. More...
 
unsigned int TriangleCreaseNormalIndex (unsigned int iFaceIndex, unsigned int iCornerIndex) const
 Returns the vertex crease/hard normal index of a corner of triangle, if there is crease/hard normal of this corner, otherwise it is the vertex normal index. More...
 
void SetTriangleCreaseNormalIndex (unsigned int iFaceIndex, unsigned int iCornerIndex, unsigned int iValue)
 Sets the vertex normal index of a corner of a triangle. More...
 
unsigned int TriangleTCI (unsigned int iFaceIndex, unsigned int iCornerIndex) const
 Returns the vertex texture coordinate index of a corner of a triangle. More...
 
void SetTriangleTCI (unsigned int iFaceIndex, unsigned int iCornerIndex, unsigned int iValue)
 Sets the vertex texture coordinate index of a corner of a triangle. More...
 
virtual unsigned int TriangleAdjacency (unsigned int iFaceIndex, unsigned int iSideIndex) const
 Returns the vertex adjacency information index of a side of a triangle. More...
 
virtual void SetTriangleAdjacency (unsigned int iFaceIndex, unsigned int iSideIndex, unsigned int iValue)
 Sets the adjacency info for a side of a triangle. See TriangleAdjacency for details. More...
 
bool HasAdjacentTriangle (unsigned int iFaceIndex, unsigned int iSideIndex) const
 Returns true if the given edge of a triangle has an adjacent triangle on the other side. More...
 
unsigned char & FaceState (unsigned int iFaceIndex)
 Returns the state of a face. See FaceState. More...
 
unsigned char FaceState (unsigned int iFaceIndex) const
 Sets the state of a face. More...
 
bool IsFaceSelected (unsigned int iFaceIndex) const
 Returns true if the given face is selected. More...
 
virtual void SetFaceSelected (unsigned int iFaceIndex, bool bSelected=true, bool bUpdateVertexSelection=false, bool bBatchSelection=false)
 Sets selection state for a face. More...
 
virtual unsigned int SelectedFaceCount () const
 Returns the number of selected faces. More...
 
bool IsFaceVisible (unsigned int iFaceIndex) const
 Returns true if the given face is visible. More...
 
virtual void SetFaceVisible (unsigned int iFaceIndex, bool bVisible=true)
 Sets the visibility of a given face. More...
 
bool IsFaceActive (unsigned int iFaceIndex) const
 
void SetFaceActive (unsigned int iFaceIndex, bool bSelected=true)
 
bool IsFaceMapped (unsigned int iFaceIndex) const
 Used only internally. More...
 
void SetFaceMapped (unsigned int iFaceIndex, bool bSelected=true)
 Used only internally. More...
 
bool IsFaceIsolated (unsigned int iFaceIndex) const
 Returns true if the given face is in the set of Isolated faces. More...
 
virtual void SetFaceIsolated (unsigned int iFaceIndex, bool bIsolated=true)
 Sets the Isolation state of a given face. More...
 
bool IsFakeTriangle (unsigned int iTriangleIndex) const
 This function can only be used for triangular meshes. More...
 
void SetFakeTriangle (unsigned int iTriangleIndex, bool b)
 
bool IsFaceTemp (unsigned int iFaceIndex) const
 
void SetFaceTemp (unsigned int iFaceIndex, bool bSelected=true)
 
void ClearFaceTempStates ()
 
virtual void AddFaceComponent (FaceComponent eComponentToAdd)
 Adds new face component(s) to the object. More...
 
virtual void RemoveFaceComponent (FaceComponent eComponentToRemove)
 Removes face component(s) from the object. This might delete some data from the memory. More...
 
unsigned int FaceComponents (void) const
 Returns the current face components for the object. More...
 
virtual void SetFaceCount (unsigned int iFaceCount)
 Sets the number of faces in the object. Existing face data will be kept. More...
 
virtual bool SetAdjacencyCount (unsigned int iCount, bool bKeepContent=true, bool bForced=false)
 Sets the size of the adjacency array. More...
 
unsigned int AdjacencyCount (void) const
 Returns the size of the adjacency matrix. More...
 
virtual bool HasTShape () const
 Returns true if these is edge shared by more than two faces. More...
 
virtual const Store< unsigned int > & TShapeFaces (void) const
 Returns the list of faces contained in T-shapes. More...
 
virtual void SetTopologyHint (TopologyHint eHint)
 Sets the usage hint for this Topology. More...
 
virtual enum TopologyHint TopologyHint () const
 
- Public Member Functions inherited from TreeNode
 TreeNode (void)
 
 ~TreeNode (void)
 
virtual void AddChild (TreeNode *pChild, bool bFirst=false) const
 Adds a node/subtree to the list of children. The added node will be removed from the current parent if it has one. More...
 
virtual void RemoveChild (TreeNode *pChild) const
 Removes a node/subtree from the list of children. More...
 
virtual TreeNodeFirstChild (void) const
 Returns the first node from the child list. More...
 
virtual TreeNodeParent (void) const
 Returns the parent node. More...
 
virtual TreeNodeNextSibling (void) const
 Returns the next linked node with the same parent. More...
 
virtual TreeNodePrevSibling (void) const
 Returns the previous linked node with the same parent. More...
 
virtual void MoveChild (TreeNode *pChild, TreeNode *pAfter)
 Moves the child after the given node in order. More...
 
virtual TreeNodeChildByClass (const ClassDesc *pClass, bool bAutoCreate=true) const
 Returns the first child with the specified type. When the bAutoCreate parameter is true and such a child does not exists, it creates it with the preferred descedant type. More...
 
template<typename type >
typeChildByClass (bool bAutoCreate=true) const
 Same as above, a most confortable version. More...
 
virtual TreeNodeChildByClass (const ClassDesc *pClass, unsigned int iIndex=0) const
 Returns the first child with the specified type, or returns zero if no child found. More...
 
template<typename type >
typeChildByClass (unsigned int iIndex=0) const
 Same as above, a most confortable version. More...
 
virtual void DeleteChildByClass (const ClassDesc *pClass)
 Deletes all child which is derived from a specific class. More...
 
virtual QString Info (void) const
 Returns descriptive information about the node. More...
 
virtual bool Visible (void) const
 Returns if the node is visible. Should be overridden in derived classes. More...
 
virtual void SetVisible (bool b)
 Sets the node visibility Should be overridden in derived classes. More...
 
virtual bool Locked (void) const
 Returns if the node is locked. Should be overridden in derived classes. More...
 
virtual void SetLocked (bool b)
 Sets the locking of the node. Should be overridden in derived classes. More...
 
virtual bool HiddenFromUI (void) const
 Returns true if the node cannot be seen from UI. More...
 
virtual void SetHiddenFromUI (bool b)
 Sets visibility in UI. More...
 
virtual void OnLinked (const TreeNode *pOldParent)
 This function is called then the node is linked to a new parent. More...
 
QString UniqueChildName (const TreeNode *pChild, const QString &sPrefix="") const
 Finds a node name that is unique among the children of this node. More...
 
virtual void SetStringID (const QString &sName)
 This method does the same thing as Node::SetStringID, except it ensures the name is unique among this node's siblings. More...
 
- Public Member Functions inherited from Node
 Node (const QString &sStringID="", const QString &sDisplayName="")
 Standard constructor. More...
 
virtual ~Node (void)
 
virtual void Initialize (void)
 
void LoadTemplate (const QString &sFileName="", bool bStartEvent=false)
 Use an external XML file to initialize the attributes. More...
 
void SaveTemplate (const QString &sFileName="", bool bSaveOnlyVisible=false)
 Save current attributes as an XML template. More...
 
unsigned int Version (void) const
 Returns the current version of the node. This number increases when the content of the node changed (when ContentChanged() called). More...
 
void SetVersion (unsigned int iVersion)
 Sets the current version number for the node. More...
 
unsigned int ReferenceCount (void) const
 Returns the number of pointers referencing this node. More...
 
AttributeReferencePointer (unsigned int iIndex) const
 Returns the address of an attribute which refers to this node. The type of the attribute is always aptr. More...
 
NodeReferenceNode (unsigned int iIndex) const
 Returns the address of a node referencing this node. More...
 
virtual QString Name (const ClassDesc *pClass=0) const
 Deprecated. More...
 
virtual void SetName (const QString &sName)
 Deprecated. More...
 
virtual QString StringID (const ClassDesc *pClass=0) const
 Returns the string id of the node. More...
 
virtual QString DisplayName (void) const
 Returns the display name of the node. More...
 
virtual void SetDisplayName (const QString &sDisplayName)
 Sets the display name of the node. More...
 
virtual QString HelpID (void) const
 Returns the help entry id of the node. Can be overwritten in derived classes. More...
 
virtual void SetHelpID (const QString &sHelpID)
 Sets the help entry id of the node. More...
 
void Annex (Node *pSource, const QString &sCategory="")
 Relink all the attributes of the source node to this one. More...
 
bool IsKindOf (const ClassDesc *pClass) const
 Returns true if this node is derived from the pClass class. More...
 
void ContentChanged (void) const
 This function must be called if the content of the node is changed. More...
 
virtual NodeDuplicate (void) const
 
virtual void OnNodeEvent (const Attribute &cAttribute, NodeEventType cType)
 This function is called if an event occurs with any of the attributes of the node. More...
 
virtual void OnEvent (const EventGate &cEvent)
 This function is called when a generic event occurs. See EventGate class. More...
 
void RequestDeferredEvent (Attribute &cAttribute)
 Request for a deferred event, which will occur only in the main loop. More...
 
unsigned int AttributeCount (void) const
 Returns the number of attributes owned by the node. More...
 
AttributeAttributeByIndex (int iIndex) const
 Returns a specified attribute (or 0 if iIndex is greater than the number of attributes). More...
 
AttributeAttributeByName (const QString &sName) const
 Returns a specified attribute by its name. Returns 0 if the attribute not found. More...
 
AttributeAttributeByID (const QString &sID) const
 Returns a specified attribute by its ID. Returns 0 if the attribute not found. More...
 
void SetAttributeValue (const QString &sAttributeID, const QString &sNewValue)
 Set the value of an attribute from a string. More...
 
QString AttributeValue (const QString &sAttributeID) const
 Returns the current value of an attribute as a string. More...
 
void LogAttributes (void) const
 Write all attributes into the log file. More...
 
virtual QWidgetCreatePropertiesWindow (QWidget *pParent)
 Create a window which displays the attributes of the node. Can be overriden to provide a custom interface. More...
 
AttributeAddAttribute (Attribute::AttributeType type, const QString &id)
 Allows SDK users to add attributes at runtime. More...
 
NodeNext (void) const
 Returns the next node in the chain. Used to enumerate the current nodes. See also First(). More...
 
int ID (void) const
 Returns an ID for the node. The ID is unique in the whole application life. More...
 
bool SetID (int iID)
 Set ID for the node. More...
 

Public Attributes

aptr< LayerMeshDataActiveSculptLayer
 This is a readonly pointer containing the address of the active sculpt layer or null if there is no active layer. More...
 
Store< TCm_pTCs
 
aevent Modified
 This event is triggered when the mesh has been editer. During a sculpt stroke this event is only triggered once at the end. More...
 
aevent TopologyChange
 This event is triggered when the mesh's topology has been editer. More...
 
- Public Attributes inherited from Topology
Store< unsigned intm_pIndices
 
- Public Attributes inherited from TreeNode
 DECLARE_CLASS
 
- Public Attributes inherited from Node
AttributeThisPointer m_pThis
 
 DECLARE_CLASS
 

Protected Member Functions

 Mesh (FaceType eFaceType=typeQuadric)
 Constructor. More...
 
- Protected Member Functions inherited from Topology
 Topology (void)
 Do not use constructors directly. Use CreateInstances() instead. More...
 
 Topology (FaceType eType)
 Constructs the object with zero faces. More...
 

Protected Attributes

unsigned int m_iVertexCount
 
unsigned int m_iCollectionID
 
Store< Vertexm_pVertices
 
Store< Normalm_pVertexNormals
 
Store< mudbox::VertexAdjacencym_aVertexAdjacency
 
bool m_bHasVertexAdjacency
 
bool m_bBuildVertexAdjacency
 
unsigned int m_iRestoreCount
 
Store< StoredVertexInfom_aRestoreBuffer
 
SpatialGridm_pGrid
 
- Protected Attributes inherited from Topology
Store< unsigned intm_pTCI
 
Store< unsigned intm_pAdjacency
 
Store< unsigned intm_pNormalIndices
 
TopologyHint m_eTopologyHint
 

Additional Inherited Members

- Public Types inherited from Topology
enum  FaceState {
  fsSelected = 0x01, fsVisible = 0x02, fsFake = 0x04, fsActive = 0x08,
  fsMapped = 0x10, fsIsolated = 0x20
}
 
enum  FaceComponent {
  fcIndex = 1, fcAdjacency = 2, fcTCIndex = 4, fcNormal = 8,
  fcID = 16, fcOctree = 32, fcFreeze = 64, fcState = 128
}
 
enum  FaceType { typeTriangular, typeQuadric }
 
enum  TopologyHint { eStaticTopology, eDynamicTopology }
 
- Public Types inherited from Node
enum  DiagnosticLevel { dgnLevel1, dgnLevel2, dgnLevel3 }
 Indicates the level of validity checking that is performed in CheckValidity() More...
 
- Static Public Member Functions inherited from Node
static void StartHashing ()
 This is called once in main once static ctors are done. More...
 
static NodeFirst (void)
 This function will return the first node in the memory. Used to enumerate all the current nodes. See also Next(). More...
 
static NodeByID (int iID)
 Returns the node with the specified ID, or zero if such a node does not exists. More...
 
static NodeByName (const QString &sClass, const QString &sName)
 Search for a node with the name sName. More...
 

Constructor & Destructor Documentation

Mesh ( FaceType  eFaceType = typeQuadric)
protected

Constructor.

Do not use directly.

Instead of constructing Meshes directly, you should use CreateInstance() like this:

Mesh *myNewMesh = CreateInstance<Mesh>();
Parameters
[in]eFaceTypeMust be one of Topology::typeQuadric or Topology::typeTriangular

Member Function Documentation

virtual class Geometry* Geometry ( void  ) const
virtual

Returns a pointer to the Geometry object that this mesh belongs to.

Reimplemented in SubdivisionLevel.

+ Examples:
virtual class MeshRenderer* Renderer ( float  fLODLevel = 1.0f)
virtual

Returns a pointer to a MeshRenderer with the desired level-of-detail (see MeshRenderer for more information)

Parameters
[in]fLODLevelthe desired level-of-detail
virtual void CopyTo ( Node pNode) const
virtual

Copy the content of this mesh to another one.

Reimplemented from TreeNode.

virtual class Material* Material ( void  ) const
virtual

Returns a pointer to the Material associated with this mesh.

virtual class Material* MaterialOverride ( void  ) const
virtual

Material override.

Allows user to set an alternate material to render to do temporary rendering (e.g. selection)

unsigned int VertexCount ( void  ) const
inline

Returns the number of vertices in the mesh.

+ Examples:

Definition at line 490 of file mesh.h.

490 { return m_iVertexCount; };
unsigned int m_iVertexCount
Definition: mesh.h:1074
void SetVertexCount ( unsigned int  iVertexCount)

Sets the number of vertices in the mesh. Any existing data (that fits) will be kept.

Parameters
[in]iVertexCountthe number of vertices that should be in the mesh
+ Examples:
unsigned int TCCount ( void  ) const
inline

Returns the number of texture coordinates in the mesh.

+ Examples:

Definition at line 498 of file mesh.h.

498 { return m_pTCs.ItemCount(); };
Store< TC > m_pTCs
Definition: mesh.h:1021
virtual void SetTCCount ( unsigned int  iTCCount)
virtual

Sets the number of texture coordinate vertices in the mesh.

Parameters
[in]iTCCountthe number of texture coordinate vertices in the mesh
+ Examples:
bool HasTC ( bool  bIgnorePtexUV = false) const

Returns true if the mesh has texture coordinates.

+ Examples:
virtual unsigned int UVlessPaintingStatus ( void  ) const
virtual

Return the status of UV-less setup. 0 means no uv-less setup, 1 means the mesh is being set up, 2 means the mesh is uv-less setup.

virtual void SetUVlessPaintingStatus ( unsigned int  iStatus)
virtual

Setup the status of UV-less setup.

Parameters
[in]iStatusstatus value ranging from 0 to 2. 0 means no uv-less setup, 1 means the mesh is being set up, 2 means the mesh is uv-less setup.
const Vertex* VertexArray ( void  ) const
inline

This method returns a pointer to the actual array data.

This is used in cases where very fast access to the array data is required (i.e. not going through methods)

Definition at line 521 of file mesh.h.

521 { return &m_pVertices[0]; };
Store< Vertex > m_pVertices
Definition: mesh.h:1076
const Vertex& VertexData ( unsigned int  iVertexIndex) const
inline

Returns a vertex.

Parameters
[in]iVertexIndexindex of the vertex to be retrieved

Definition at line 524 of file mesh.h.

526  { return m_pVertices[iVertexIndex]; };
Store< Vertex > m_pVertices
Definition: mesh.h:1076
Vertex& VertexData ( unsigned int  iVertexIndex)
inline

Returns a vertex.

Parameters
[in]iVertexIndexindex of the vertex to be retrieved

Definition at line 529 of file mesh.h.

531  { return m_pVertices[iVertexIndex]; };
Store< Vertex > m_pVertices
Definition: mesh.h:1076
const Vector& VertexPosition ( unsigned int  iVertexIndex) const
inline

Returns the x,y,z position of the vertex with the given index.

Parameters
[in]iVertexIndexindex of the vertex

Definition at line 534 of file mesh.h.

536  { return m_pVertices[iVertexIndex].m_vPos; };
Store< Vertex > m_pVertices
Definition: mesh.h:1076
Vector& VertexPosition ( unsigned int  iVertexIndex)
inline

Returns the x,y,z position of the vertex with the given index.

Parameters
[in]iVertexIndexindex of the vertex

Definition at line 539 of file mesh.h.

541  { return m_pVertices[iVertexIndex].m_vPos; };
Store< Vertex > m_pVertices
Definition: mesh.h:1076
virtual const Vector& VertexOriginalPosition ( unsigned int  iVertexIndex) const
inlinevirtual

Returns the position of the vertex before the current sculpting-brush stroke.

If no stroke is in progress, result is the same as VertexPosition().

Parameters
[in]iVertexIndexindex of the vertex

Definition at line 546 of file mesh.h.

548  { return m_pVertices[iVertexIndex].m_vPos; };
Store< Vertex > m_pVertices
Definition: mesh.h:1076
const TC& VertexTC ( unsigned int  iVertexTCIndex) const
inline

Returns the specified texture coordinate.

Parameters
[in]iVertexTCIndexindex of the texture coordinate (not the same as a vertex index)

Definition at line 551 of file mesh.h.

553  { return m_pTCs[iVertexTCIndex]; };
Store< TC > m_pTCs
Definition: mesh.h:1021
Vector VertexNormal ( unsigned int  iVertexIndex) const
inline

Returns the normal of the vertex with the given index.

Parameters
[in]iVertexIndexindex of the vertex

Definition at line 556 of file mesh.h.

558  { return Vector( m_pVertexNormals[iVertexIndex].m_vNormal ); };
Store< Normal > m_pVertexNormals
Definition: mesh.h:1077
unsigned int VertexStrokeID ( unsigned int  iVertexIndex) const
inline

Internal use only. Do not call this method.

Definition at line 561 of file mesh.h.

562  { return m_pVertices[iVertexIndex].m_iStrokeID; };
Store< Vertex > m_pVertices
Definition: mesh.h:1076
float VertexMask ( unsigned int  iVertexIndex) const
inline

Returns the layer mask of the vertex with the given index for the current sculpt layer.

Each sculpt layer contains vertex offsets for some subset of vertices in the mesh. Each vertex in a mesh has a mask value for each sculpt layer associated with it. This mask determines how much the vertex offset of that sculpt layer contributes to the final position of the vertex when all the sculpt layers are composited together. This mask is a multiplier, so 0.0 means the layer offset is completely masked, and 1.0 means it is not masked at all.

Parameters
[in]iVertexIndexindex of the vertex

Definition at line 574 of file mesh.h.

576  { return m_pVertices[iVertexIndex].Mask(); };
Store< Vertex > m_pVertices
Definition: mesh.h:1076
float VertexFreeze ( unsigned int  iVertexIndex) const
inline

Returns the freeze value of the vertex with the given index.

(0.0 is not frozen; 1.0 is completely frozen)

The freeze value is used to lock parts of the mesh so they are less affected by sculpting brushes. It is the responsibility of every sculpt brush to take into account the Freeze values on vertices it is modifying.

Parameters
[in]iVertexIndexindex of the vertex

Definition at line 585 of file mesh.h.

587  { return m_pVertices[iVertexIndex].Freeze(); };
Store< Vertex > m_pVertices
Definition: mesh.h:1076
virtual unsigned int FrozenVertexCount ( void  ) const
virtual

Returns the number of vertices having a non-zero freeze value.

If the result is 0, no part of the mesh is frozen.

const tnormal* VertexNormalArray ( unsigned int  iVertexIndex) const
inline

Returns the normal of the vertex with the given index as an array of 16-bit signed values.

Parameters
[in]iVertexIndexindex of the vertex

Definition at line 595 of file mesh.h.

597  { return m_pVertexNormals[iVertexIndex].m_vNormal; };
Store< Normal > m_pVertexNormals
Definition: mesh.h:1077
tnormalv VertexNormalValue ( unsigned int  iVertexIndex) const
inline

Returns the normal of the vertex with the given index as a single 64-bit signed value.

Parameters
[in]iVertexIndexindex of the vertex

Definition at line 601 of file mesh.h.

603  { return m_pVertexNormals[iVertexIndex].m_iNormal; };
Store< Normal > m_pVertexNormals
Definition: mesh.h:1077
const Normal* VertexNormalArray ( void  ) const
inline

Definition at line 605 of file mesh.h.

605 { return &m_pVertexNormals[0]; };
Store< Normal > m_pVertexNormals
Definition: mesh.h:1077
unsigned int VertexNormalCount ( void  ) const
inline
+ Examples:

Definition at line 607 of file mesh.h.

607 { return m_pVertexNormals.ItemCount(); }
Store< Normal > m_pVertexNormals
Definition: mesh.h:1077
virtual AxisAlignedBoundingBox BoundingBox ( bool  bRecalculate = false) const
virtual

Returns the bounding box of the mesh in local space.

virtual void SetBoundingBox ( const AxisAlignedBoundingBox cBox)
virtual
virtual AxisAlignedBoundingBox StrokeBoundingBox ( ) const
virtual

Returns region of the mesh that has changed in the current brush stroke in local space.

virtual void SetStrokeBoundingBox ( const AxisAlignedBoundingBox cBox)
virtual
virtual AxisAlignedBoundingBox TCBoundingBox ( void  ) const
virtual

Returns the bounding box of the UV shell of the mesh.

void SetVertexPosition ( unsigned int  iVertexIndex,
const Vector vPosition 
)
inline

Sets the position of the vertex with the given index.

Parameters
[in]iVertexIndexindex of the vertex
[in]vPositionthe new vertex x,y,z position in local space
+ Examples:

Definition at line 623 of file mesh.h.

626  { m_pVertices[iVertexIndex].m_vPos = vPosition; };
Store< Vertex > m_pVertices
Definition: mesh.h:1076
void AddVertexPosition ( unsigned int  iVertexIndex,
const Vector vPosition 
)
inline

Adds vPosition to the current position of the vertex with the given index.

Parameters
[in]iVertexIndexindex of the vertex
[in]vPositionx,y,z offset to be added to the current position in local space

Definition at line 629 of file mesh.h.

633  { m_pVertices[iVertexIndex].m_vPos += vPosition; };
Store< Vertex > m_pVertices
Definition: mesh.h:1076
void SetVertexNormal ( unsigned int  iVertexIndex,
int pNormal 
)
inline

Internal use only. Do not call.

Definition at line 636 of file mesh.h.

637  {
638  m_pVertexNormals[iVertexIndex].m_vNormal[0] = tnormal(pNormal[3]);
639  m_pVertexNormals[iVertexIndex].m_vNormal[1] = tnormal(pNormal[2]);
640  m_pVertexNormals[iVertexIndex].m_vNormal[2] = tnormal(pNormal[1]);
641  };
Store< Normal > m_pVertexNormals
Definition: mesh.h:1077
short int tnormal
Type of one component in a normal vector.
Definition: topology.h:20
void SetVertexNormal ( unsigned int  iVertexIndex,
const Vector vNormal 
)
inline

Sets the normal of the vertex with the given index.

Parameters
[in]iVertexIndexindex of the vertex
[in]vNormalthe new vertex normal in local space, need to be normalized.

Definition at line 644 of file mesh.h.

648  {
649  m_pVertexNormals[iVertexIndex].m_vNormal[0] = tnormal(vNormal.x * MB_NORMALMAX);
650  m_pVertexNormals[iVertexIndex].m_vNormal[1] = tnormal(vNormal.y * MB_NORMALMAX);
651  m_pVertexNormals[iVertexIndex].m_vNormal[2] = tnormal(vNormal.z * MB_NORMALMAX);
652  };
Store< Normal > m_pVertexNormals
Definition: mesh.h:1077
short int tnormal
Type of one component in a normal vector.
Definition: topology.h:20
#define MB_NORMALMAX
Definition: mesh.h:34
void SetVertexTC ( unsigned int  iTCIndex,
const TC tc 
)
inline

Sets the Texture Coordinated(UV) value at the given index.

Parameters
[in]iTCIndexindex of the vertex tc
[in]tcthe vertex tc value
+ Examples:

Definition at line 661 of file mesh.h.

664  { m_pTCs[iTCIndex] = tc; }
const GLfloat * tc
Definition: GLee.h:5439
Store< TC > m_pTCs
Definition: mesh.h:1021
virtual void SetVertexFreeze ( unsigned int  iVertexIndex,
unsigned int  iFaceIndex,
float  fFreeze 
)
virtual

Sets the freeze value for the vertex with the given index.

Parameters
[in]iVertexIndexindex of the vertex
fFreezeWHY DO WE NEED A FACE INDEX HERE? [in] New freeze value, ranging from 0.0 (not frozen) to 1.0 (completely frozen)
virtual void SetFreezeValues ( Store< float > &  aNewFreeze)
virtual

Sets the freeze values for the whole mesh from the given array.

Parameters
[in]aNewFreezethe array of freeze values
void SetVertexMask ( unsigned int  iVertexIndex,
unsigned int  iFaceIndex,
float  fFMask 
)

Internal use only. Do not call.

void SetVertexStrokeID ( unsigned int  iVertexIndex,
unsigned int  iStrokeID 
) const
inline

Internal use only. Do not call.

Definition at line 683 of file mesh.h.

684  { m_pVertices[iVertexIndex].m_iStrokeID = iStrokeID; };
Store< Vertex > m_pVertices
Definition: mesh.h:1076
unsigned int& GetVertexID ( unsigned int  iIndex)
inline

Not part of the Mesh API – used internally.

Inlined here for performance of Markvertex & IsVertexMarked – these methods must be fast, and a virtual fcn call is not a good idea from a performance standpoint.

Definition at line 689 of file mesh.h.

690  {
691  Vertex &v = m_pVertices[iIndex];
692  if ( v.m_iStrokeID < m_iRestoreCount && m_aRestoreBuffer[v.m_iStrokeID].m_iVertexIndex == iIndex )
693  return m_aRestoreBuffer[v.m_iStrokeID].m_iID;
694  return v.m_iStrokeID;
695  };
Store< Vertex > m_pVertices
Definition: mesh.h:1076
Store< StoredVertexInfo > m_aRestoreBuffer
Definition: mesh.h:1083
const GLdouble * v
Definition: GLee.h:1174
unsigned int m_iRestoreCount
Definition: mesh.h:1082
void MarkVertex ( unsigned int  iVertexIndex)
inline

Mark a particular vertex.

This method, along with Mesh::IsVertexMarked() and Mesh::ClearVertexMarks() is used to aid in traversing all the vertices in a mesh. An algorithm can mark the vertices as it visits them to ensure that it don't visit any twice, and then clear all the marks when complete.

Definition at line 703 of file mesh.h.

704  {
705  GetVertexID( iVertexIndex ) = CollectionID();
706  };
unsigned int & GetVertexID(unsigned int iIndex)
Not part of the Mesh API – used internally.
Definition: mesh.h:689
unsigned int CollectionID(void) const
Obsolete method; do not use.
Definition: mesh.h:931
bool IsVertexMarked ( unsigned int  iVertexIndex)
inline

Returns true if a particular vertex is marked.

This method, along with Mesh::MarkVertex() and Mesh::ClearVertexMarks() is used to aid in traversing all the vertices in a mesh. An algorithm can mark the vertices as it visits them to ensure that it don't visit any twice, and then clear all the marks when complete.

Definition at line 714 of file mesh.h.

715  {
716  return GetVertexID( iVertexIndex ) == CollectionID();
717  };
unsigned int & GetVertexID(unsigned int iIndex)
Not part of the Mesh API – used internally.
Definition: mesh.h:689
unsigned int CollectionID(void) const
Obsolete method; do not use.
Definition: mesh.h:931
void ClearVertexMarks ( void  )
inline

Clears all vertex marks.

This method, along with Mesh::MarkVertex() and Mesh::IsVertexMarked() is used to aid in traversing all the vertices in a mesh. An algorithm can mark the vertices as it visits them to ensure that it don't visit any twice, and then clear all the marks when complete. This is a very fast function.

Definition at line 727 of file mesh.h.

728  {
730  };
void IncreaseCollectionID(void)
Obsolete method; do not use.
Definition: mesh.h:937
virtual unsigned int VertexExternalIndex ( unsigned int  iVertexIndex) const
virtual

Returns the external vertex index for a given vertex.

Internally, Mudbox may reorganize the layout of an imported mesh to optimize performance. This can change the vertex indices and make it difficult to re-import newer versions of the same mesh for tasks like importing a mesh as a sculpt layer. This method can be used to determine the original vertex index is for a given internal vertex index in the Mudbox mesh. When exporting meshes from Mudbox or when trying to map vertices from an imported mesh to this mesh's vertices, you should always use the external vertex indices.

Parameters
[in]iVertexIndexInternal vertex index within the Mesh
virtual void SetVertexExternalIndex ( unsigned int  iVertexIndex,
unsigned int  iExternalVertexIndex 
)
virtual

Sets the external vertex index for a given internal vertex index in the Mudbox mesh.

See VertexExternalIndex()

Parameters
[in]iVertexIndexInternal vertex index
[in]iExternalVertexIndexThe new external vertex index that the internal index should map to.
const Vector& TriangleVertexPosition ( unsigned int  iTriangleIndex,
unsigned int  iCornerIndex 
) const
inline

Returns the position of a corner of a mesh face.

Can be used for triangular meshes only.

Parameters
[in]iTriangleIndexindex of a triangular face
[in]iCornerIndexindex of a corner in that face (0, 1, or 2)

Definition at line 755 of file mesh.h.

758  { return VertexPosition( TriangleIndex( iTriangleIndex, iCornerIndex ) ); };
const Vector & VertexPosition(unsigned int iVertexIndex) const
Returns the x,y,z position of the vertex with the given index.
Definition: mesh.h:534
unsigned int TriangleIndex(unsigned int iFaceIndex, unsigned int iCornerIndex) const
Returns the vertex position index of a corner of a triangle.
Definition: topology.h:173
const Vector& QuadVertexPosition ( unsigned int  iQuadIndex,
unsigned int  iCornerIndex 
) const
inline

Returns the position of a corner of a mesh face. Can be used for quadric meshes only.

Parameters
[in]iQuadIndexindex of a quad face
[in]iCornerIndexindex of a corner of that face (0, 1, 2, or 3)

Definition at line 761 of file mesh.h.

764  { return VertexPosition( QuadIndex( iQuadIndex, iCornerIndex ) ); };
unsigned int QuadIndex(unsigned int iFaceIndex, unsigned int iCornerIndex) const
Returns the vertex position index of a corner of a quad.
Definition: topology.h:144
const Vector & VertexPosition(unsigned int iVertexIndex) const
Returns the x,y,z position of the vertex with the given index.
Definition: mesh.h:534
const TC& TriangleVertexTC ( unsigned int  iTriangleIndex,
unsigned int  iCornerIndex 
) const
inline

Returns the texture coordinates of a corner of a mesh face.

Can be used for triangular meshes only.

Parameters
[in]iTriangleIndexindex of a triangular face
[in]iCornerIndexindex of a corner in that face (0, 1, or 2)

Definition at line 768 of file mesh.h.

771  { return VertexTC( TriangleTCI( iTriangleIndex, iCornerIndex ) ); };
const TC & VertexTC(unsigned int iVertexTCIndex) const
Returns the specified texture coordinate.
Definition: mesh.h:551
unsigned int TriangleTCI(unsigned int iFaceIndex, unsigned int iCornerIndex) const
Returns the vertex texture coordinate index of a corner of a triangle.
Definition: topology.h:184
const TC& QuadVertexTC ( unsigned int  iQuadIndex,
unsigned int  iCornerIndex 
) const
inline

Returns the texture coordinates of a corner of a mesh face. Can be used for quadric meshes only.

Parameters
[in]iQuadIndexindex of a quad face
[in]iCornerIndexindex of a corner of that face (0, 1, 2, or 3)

Definition at line 774 of file mesh.h.

777  { return VertexTC( QuadTCI( iQuadIndex, iCornerIndex ) ); };
const TC & VertexTC(unsigned int iVertexTCIndex) const
Returns the specified texture coordinate.
Definition: mesh.h:551
unsigned int QuadTCI(unsigned int iFaceIndex, unsigned int iCornerIndex) const
Returns the vertex texture coordinate index of a corner of a quad.
Definition: topology.h:156
Vector TriangleVertexNormal ( unsigned int  iTriangleIndex,
unsigned int  iCornerIndex 
) const
inline

Returns the normal of a corner of a mesh face. Can be used for triangular meshes only.

Parameters
[in]iTriangleIndexindex of a triangular face
[in]iCornerIndexindex of a corner in that face (0, 1, or 2)

Definition at line 780 of file mesh.h.

783  { return VertexNormal( TriangleIndex( iTriangleIndex, iCornerIndex ) ); };
Vector VertexNormal(unsigned int iVertexIndex) const
Returns the normal of the vertex with the given index.
Definition: mesh.h:556
unsigned int TriangleIndex(unsigned int iFaceIndex, unsigned int iCornerIndex) const
Returns the vertex position index of a corner of a triangle.
Definition: topology.h:173
Vector QuadVertexNormal ( unsigned int  iQuadIndex,
unsigned int  iCornerIndex 
) const
inline

Returns the normal of a corner of a mesh face. Can be used for quad meshes only.

Parameters
[in]iQuadIndexindex of a quad face
[in]iCornerIndexindex of a corner of that face (0, 1, 2, or 3)

Definition at line 786 of file mesh.h.

789  { return VertexNormal( QuadIndex( iQuadIndex, iCornerIndex ) ); };
Vector VertexNormal(unsigned int iVertexIndex) const
Returns the normal of the vertex with the given index.
Definition: mesh.h:556
unsigned int QuadIndex(unsigned int iFaceIndex, unsigned int iCornerIndex) const
Returns the vertex position index of a corner of a quad.
Definition: topology.h:144
Vector TriangleVertexCreaseNormal ( unsigned int  iTriangleIndex,
unsigned int  iCornerIndex 
) const
inline

Returns the normal of a corner of a mesh face. Can be used for triangular meshes only.

Parameters
[in]iTriangleIndexindex of a triangular face
[in]iCornerIndexindex of a corner in that face (0, 1, or 2)

Definition at line 792 of file mesh.h.

795  { return VertexNormal( TriangleCreaseNormalIndex( iTriangleIndex, iCornerIndex ) ); };
Vector VertexNormal(unsigned int iVertexIndex) const
Returns the normal of the vertex with the given index.
Definition: mesh.h:556
unsigned int TriangleCreaseNormalIndex(unsigned int iFaceIndex, unsigned int iCornerIndex) const
Returns the vertex crease/hard normal index of a corner of triangle, if there is crease/hard normal o...
Definition: topology.h:180
Vector QuadVertexCreaseNormal ( unsigned int  iQuadIndex,
unsigned int  iCornerIndex 
) const
inline

Returns the normal of a corner of a mesh face. Can be used for quad meshes only.

Parameters
[in]iQuadIndexindex of a quad face
[in]iCornerIndexindex of a corner of that face (0, 1, 2, or 3)

Definition at line 798 of file mesh.h.

801  { return VertexNormal( QuadCreaseNormalIndex( iQuadIndex, iCornerIndex ) ); };
Vector VertexNormal(unsigned int iVertexIndex) const
Returns the normal of the vertex with the given index.
Definition: mesh.h:556
unsigned int QuadCreaseNormalIndex(unsigned int iFaceIndex, unsigned int iCornerIndex) const
Returns the vertex crease/hard normal index of a corner of quad, if there is crease/hard normal of th...
Definition: topology.h:152
float TriangleVertexFreeze ( unsigned int  iTriangleIndex,
unsigned int  iCornerIndex 
) const
inline

Returns the freeze value of a corner of a mesh face. Can be used for triangular meshes only.

Parameters
[in]iTriangleIndexindex of a triangular face
[in]iCornerIndexindex of a corner in that face (0, 1, or 2)

Definition at line 804 of file mesh.h.

807  { return VertexFreeze( TriangleIndex( iTriangleIndex, iCornerIndex ) ); };
unsigned int TriangleIndex(unsigned int iFaceIndex, unsigned int iCornerIndex) const
Returns the vertex position index of a corner of a triangle.
Definition: topology.h:173
float VertexFreeze(unsigned int iVertexIndex) const
Returns the freeze value of the vertex with the given index.
Definition: mesh.h:585
float QuadVertexFreeze ( unsigned int  iQuadIndex,
unsigned int  iCornerIndex 
) const
inline

Returns the freeze value of a corner of a mesh face.

(0.0 is not frozen, 1.0 is completely frozen) Can be used for quadric meshes only.

Parameters
[in]iQuadIndexindex of a quad face
[in]iCornerIndexindex of a corner of that face (0, 1, 2, or 3)

Definition at line 811 of file mesh.h.

814  { return VertexFreeze( QuadIndex( iQuadIndex, iCornerIndex ) ); };
unsigned int QuadIndex(unsigned int iFaceIndex, unsigned int iCornerIndex) const
Returns the vertex position index of a corner of a quad.
Definition: topology.h:144
float VertexFreeze(unsigned int iVertexIndex) const
Returns the freeze value of the vertex with the given index.
Definition: mesh.h:585
const tnormal* TriangleVertexNormalArray ( unsigned int  iTriangleIndex,
unsigned int  iCornerIndex 
) const
inline

Returns the normal of a corner of a triangle mesh face as an array of 16-bit signed values.

Parameters
[in]iTriangleIndexindex of a triangular face
[in]iCornerIndexindex of a corner in that face (0, 1, or 2)

Definition at line 817 of file mesh.h.

820  { return VertexNormalArray( TriangleIndex( iTriangleIndex, iCornerIndex ) ); };
const Normal * VertexNormalArray(void) const
Definition: mesh.h:605
unsigned int TriangleIndex(unsigned int iFaceIndex, unsigned int iCornerIndex) const
Returns the vertex position index of a corner of a triangle.
Definition: topology.h:173
const tnormal* QuadVertexNormalArray ( unsigned int  iQuadIndex,
unsigned int  iCornerIndex 
) const
inline

Returns the normal of a corner of a quad mesh face as an array of 16-bit signed values.

Parameters
[in]iQuadIndexindex of a quad face
[in]iCornerIndexindex of a corner of that face (0, 1, 2, or 3)

Definition at line 823 of file mesh.h.

826  { return VertexNormalArray( QuadIndex( iQuadIndex, iCornerIndex ) ); };
const Normal * VertexNormalArray(void) const
Definition: mesh.h:605
unsigned int QuadIndex(unsigned int iFaceIndex, unsigned int iCornerIndex) const
Returns the vertex position index of a corner of a quad.
Definition: topology.h:144
tnormalv TriangleVertexNormalValue ( unsigned int  iTriangleIndex,
unsigned int  iCornerIndex 
) const
inline

Returns the normal a corner of a triangle mesh face as a single 64-bit signed value.

Parameters
[in]iTriangleIndexindex of a triangular face
[in]iCornerIndexindex of a corner in that face (0, 1, or 2)

Definition at line 829 of file mesh.h.

832  { return VertexNormalValue( TriangleIndex( iTriangleIndex, iCornerIndex ) ); };
tnormalv VertexNormalValue(unsigned int iVertexIndex) const
Returns the normal of the vertex with the given index as a single 64-bit signed value.
Definition: mesh.h:601
unsigned int TriangleIndex(unsigned int iFaceIndex, unsigned int iCornerIndex) const
Returns the vertex position index of a corner of a triangle.
Definition: topology.h:173
tnormalv QuadVertexNormalValue ( unsigned int  iQuadIndex,
unsigned int  iCornerIndex 
) const
inline

Returns the normal a corner of a quad mesh face as a single 64-bit signed value.

Parameters
[in]iQuadIndexindex of a quad face
[in]iCornerIndexindex of a corner of that face (0, 1, 2, or 3)

Definition at line 835 of file mesh.h.

838  { return VertexNormalValue( QuadIndex( iQuadIndex, iCornerIndex ) ); };
tnormalv VertexNormalValue(unsigned int iVertexIndex) const
Returns the normal of the vertex with the given index as a single 64-bit signed value.
Definition: mesh.h:601
unsigned int QuadIndex(unsigned int iFaceIndex, unsigned int iCornerIndex) const
Returns the vertex position index of a corner of a quad.
Definition: topology.h:144
virtual void EnumerateFaces ( unsigned int  iFaceIndex,
FaceEnumerator pEnumerator,
bool  bSymmetry = false 
)
virtual

This method takes an operation that you define (derived from FaceEnumerator) and applies it to the specified face, and sequentially to its neighbors, then the neighbors of those faces, until the mesh has been covered.

In normal use, the entire mesh would not be covered. The FaceEnumerator's Tester() function returns false to limit the spread to a particular area. For example, this is used by sculpt operations to touch all the faces inside the brush ring.

See FaceEnumerator for more details.

Parameters
[in]iFaceIndexthe index of the starting face
[in]pEnumeratora pointer to a FaceEnumerator that you define
[in]bSymmetrymake the enumerator follow the defined symmetry. This will probably be removed in future; you should set this to false.
virtual void EnumerateNearestFaces ( unsigned int  iFaceIndex,
FaceEnumerator pOperation 
)
virtual

This method takes an operation that you define (derived from FaceEnumerator) and applies it to the specified face, and sequentially to its immediate neighbours.

See FaceEnumerator for more details.

Parameters
[in]iFaceIndexthe index of the starting face
[in]pOperationa pointer to a FaceEnumerator that you define
virtual void EnumerateNeighboringFaces ( unsigned int  iFaceIndex,
FaceEnumerator pOperation 
)
virtual

This method takes an operation that you define (derived from FaceEnumerator) and applies it to faces that are neighbors to the given face.

See FaceEnumerator for more details.

virtual void EnumerateFaces ( FaceEnumerator pEnumerator,
SpatialGrid pGrid,
const AxisAlignedBoundingBox cVolume 
)
virtual

Enumerate all of the faces contained within the volume given by cVolume.

Parameters
[in]pEnumeratora pointer to a FaceEnumerator that you define
[in]pGrida pointer to a SpatialGrid accelleration struture for this mesh
[in]cVolumeA local-space volume. All vertices within this volume will be enumerated
virtual void EnumerateVertices ( unsigned int  iFaceIndex,
VertexEnumerator pEnumerator 
)
virtual

This method takes an operation that you define (derived from VertexEnumerator) and applies it to all the vertices of the specified face.

See VertexEnumerator for more details.

Parameters
[in]iFaceIndexthe index of the starting face
[in]pEnumeratora pointer to a VertexEnumerator that you define
unsigned int EnumerateAdjacentVertices ( AdjacentVertexEnumerator pEnumerator,
unsigned int  iVertexIndex,
unsigned int  iFaceIndex 
)

This method takes an operation that you define (derived from VertexEnumerator) and applies it to all the vertices adjacent to the specified one.

It returns the number of vertices that were visited.

See AdjacentVertexEnumerator for more details.

Parameters
[in]pEnumeratora pointer to a AdjacentVertexEnumerator that you define
[in]iVertexIndexthe index of the starting vertex
[in]iFaceIndexindex of any face adjacent to that vertex
virtual void EnumerateVertices ( VertexEnumerator pEnumerator,
SpatialGrid pGrid,
const AxisAlignedBoundingBox cVolume 
)
virtual

Enumerate all of the vertices contained within the volume given by cVolume.

Parameters
[in]pEnumeratora pointer to a VertexEnumerator that you define
[in]pGrida pointer to a SpatialGrid accelleration struture for this mesh
[in]cVolumeA local-space volume. All vertices within this volume will be enumerated
virtual int MeshVersion ( void  ) const
virtual

Obsolete method; do not use.

virtual void SmoothTextureCoordinates ( float  fStrength)
virtual

Obsolete method; do not use.

virtual void RecalculateNormals ( bool  bKeep = false)
virtual

Recalculates all the vertex normals. This is called after the mesh shape has changed.

Parameters
bKeepNot used
+ Examples:
virtual bool RecalculateAdjacency ( bool  bForce = true,
bool  bCheckTShapes = true 
)
virtual

Causes the mesh to build internal adjacency tables, if they don't exist already. Returns false if the operation failed, true otherwise.

Parameters
[in]bForceForce the tables to be re-built, even if they already exist.
[in]bCheckTShapesCheck t-shapes in the mesh, and report them to the user.
+ Examples:
unsigned int CollectionID ( void  ) const
inline

Obsolete method; do not use.

Definition at line 931 of file mesh.h.

931 { return m_iCollectionID; }; // this *must* be inline for performance on large meshes.
unsigned int m_iCollectionID
Definition: mesh.h:1075
void SetCollectionID ( unsigned int  id)
inline

Definition at line 934 of file mesh.h.

934 { m_iCollectionID = id; }; // this *must* be inline for performance on large meshes.
unsigned int m_iCollectionID
Definition: mesh.h:1075
GLuint id
Definition: GLee.h:1552
void IncreaseCollectionID ( void  )
inline

Obsolete method; do not use.

Definition at line 937 of file mesh.h.

937 { ++m_iCollectionID; }; // this *must* be inline for performance on large meshes.
unsigned int m_iCollectionID
Definition: mesh.h:1075
virtual bool IsSelected ( void  )
virtual

Returns true if the whole mesh is selected.

virtual void SetSelected ( bool  bOn = true,
bool  bMerge = false 
)
virtual

Selects or unselects the whole mesh. It can merge the operation with the current undo stack.

virtual class LayerMeshData* AddLayer ( Layer pLayer = NULL)
virtual

Add a sculpt layer for this mesh, and makes it current.

A LayerMeshData is created & returned if necessary. If NULL, a new empty layer will be created & returned.

virtual void RemoveLayer ( LayerMeshData pLayer)
virtual

Removes a sculpt layer from the mesh and deletes it.

Users should not reference pLayer after calling this method.

Parameters
[in]pLayerThe layer to remove.
virtual class LayerMeshData* ActiveLayer ( void  ) const
virtual

Returns a pointer to the current sculpt layer for this mesh.

virtual bool IsActiveLevel ( void  ) const
virtual

Returns true if this mesh is the currently displayed mesh of the Geometry object it is part of.

virtual bool Lock ( class MeshUnlocker pUnlocker = NULL)
virtual

Locks the mesh for exclusive modifications.

The caller of this function will get exclusive rights to modify the data stored in the mesh if the return value is true. In other words, mudbox guarantees that no other code will modify the mesh until it is unlocked. The caller can pass the address of a MeshUnlocker objects, which will be used to determine if the mesh can be unlocked, and can perform actions before the unlock happens.

Parameters
[in]pUnlockerAddress of the unlocker object. If this parameter is NULL, the object can be unlocked any time
virtual bool Unlock ( void  )
virtual

Unlock the mesh.

Returns true if the operation was executed successfully, or if the mesh was unlocked at the time of the call. If the mesh was locked, and a MeshUnlocker object was specified by the Lock call, that MeshUnlocker object will be used to determine if the mesh can be unlocked.

virtual bool IsLocked ( void  )
virtual

Returns true if the mesh is locked.

virtual class MeshChange* StartChange ( void  )
virtual

This method must be called by any plugin before it modifies vertex data.

It returns a MeshChange object that will hold the needed undo information.

virtual void EndChange ( bool  bUndo = true,
bool  bMerge = false 
)
virtual

This method must be called after a plugin has finished modifying data with StartChange()

virtual bool IsNSided ( void  ) const
virtual

Returns if the mesh contains non tri or quad faces.

virtual GenericFace& Face ( unsigned int  iIndex)
virtual

Returns a polygon from generic face representation of the mesh.

virtual unsigned int GenericFaceCount ( void  )
virtual

Returns the number of original faces.

virtual void ClearGenericFaces ( )
virtual
virtual bool HasExpandedTCs ( void  ) const
virtual

Returns if the mesh has edge bleeded TC layout.

Can be used instead of the normal TC layot if we want to modify texture without artifact at shell borders.

virtual void CreateExpandedTCs ( void  )
virtual

Calculates the edge bleeded TC layout.

virtual TC& ExpandedTC ( unsigned int  index)
virtual

Returns the Expanded TC value for the given vertex.

virtual bool SupportsTangentMirror ( ) const
virtual

Returns if the mesh supports tangent mirror mode.

virtual unsigned int TangentMirroredFaceIndex ( unsigned int  iFaceIndex) const
virtual

Returns the index of tangent mirrored face.

virtual unsigned int TangentMirroredVertexIndex ( unsigned int  iFaceIndex,
unsigned int  iCornerIndex,
unsigned int iOppositeFaceIndex,
unsigned int iOppositeCornerIndex 
) const
virtual

Returns the index of tangent mirrored vertex.

virtual bool InitializeTopologicalSymmetry ( unsigned int  iFaceIndex0,
unsigned int  iFaceIndex1,
bool  bSelectWhenFailed = true 
)
virtual

This function initializes the topological symmetry for the mesh.

The two specified faces must be adjacent, they define the topological axis. Based on the bool param it selects the faces when initialization fails.

virtual bool IsTopologicalSymmetryInitialized ( unsigned int iFaceIndex0,
unsigned int iFaceIndex1 
) const
virtual

This function returns true if topological symmetry is initialized properly for the mesh.

If so, it puts the indices of two adjacent faces into the references.

virtual void RecalculateTopologicalSymmetry ( void  )
virtual

This function recalculates topological symmetry information from the lower subdivision levels if has any.

virtual SurfacePoint MirrorSurfacePoint ( const SurfacePoint cPoint)
virtual

Mirrors a surface point using the topological symmetry.

virtual int TopologicalSide ( unsigned int  iFaceIndex)
virtual

Retuns the index of side where the given face index is.

virtual unsigned int PrimaryCount ( bool  bNeedToUseTC)
virtual
virtual unsigned int QuadPrimaryIndex ( bool  bNeedToUseTC,
unsigned int  iFaceIndex,
unsigned int  iCornerIndex 
)
virtual

Returns the primary index of a corner of a quad.

When two vertices has the same primary index, then that means that all the data for the two vertices are the same (including pos, tc, normal). In other words, this index would be used by the renderer when it creates the hardware index buffers.

virtual unsigned int TrianglePrimaryIndex ( bool  bNeedToUseTC,
unsigned int  iFaceIndex,
unsigned int  iCornerIndex 
)
virtual

Returns the primary index of a corner of a triangle.

When two vertices has the same index, then that means that all the data for the two vertices are the same (including pos, tc, normal). In other words, this index would be used by the renderer when it creates the hardware index buffers.

virtual bool RecalculateVertexAdjacency ( bool  bForce = true)
virtual

Causes the mesh to build internal vertex adjacency tables, if they don't exist already. Returns false if the operation failed, true otherwise.

Parameters
[in]bForceForce the tables to be re-built, even if they already exist.
void SetVertexAdjacency ( unsigned int  iVertexIndex,
unsigned int  iFaceIndex,
unsigned int  iCornerIndex 
)
inline

Sets the adjacency data for a specified vertex. If this vertex is not touching any faces, the face index and corner index should be set to 0xffffffff.

Parameters
[in]iVertexIndexThe vertex index to update
[in]iFaceIndexA face that is touching this vertex
[in]iCornerIndexThe corner of the face that is touching this vertex

Definition at line 1057 of file mesh.h.

1062  {
1063  m_aVertexAdjacency[iVertexIndex] = mudbox::VertexAdjacency( iFaceIndex, iCornerIndex );
1064  };
Store< mudbox::VertexAdjacency > m_aVertexAdjacency
Definition: mesh.h:1078
Represents face adjacency data for a vertex.
Definition: mesh.h:183
struct mudbox::VertexAdjacency VertexAdjacency ( unsigned int  iVertexIndex) const
inline

Returns the adjacency data for a specified vertex. If this vertex is not touching any face in the mesh the returned face index will be set to 0xffffffff.

Definition at line 1067 of file mesh.h.

1067 { return m_aVertexAdjacency[iVertexIndex]; }
Store< mudbox::VertexAdjacency > m_aVertexAdjacency
Definition: mesh.h:1078
virtual void Transform ( const Matrix mMatrix)
virtual
virtual void CheckValidity ( DiagnosticLevel  iLevel = dgnLevel2) const
virtual

See the documentation for Node::CheckValidity.

Reimplemented from Topology.

Reimplemented in SubdivisionLevel.

unsigned int GetRestoreCount ( ) const
inline

Definition at line 1086 of file mesh.h.

1086 { return m_iRestoreCount; }
unsigned int m_iRestoreCount
Definition: mesh.h:1082
const StoredVertexInfo& GetRestoreVertexInfo ( unsigned int  i) const
inline

This is not part of the API – do not use. (it is here for performance reasons.)

Definition at line 1089 of file mesh.h.

1089 { return m_aRestoreBuffer[i]; }
Store< StoredVertexInfo > m_aRestoreBuffer
Definition: mesh.h:1083
unsigned int& GetRestoreCountRef ( )
inline

This is not part of the API – do not use. (it is here for performance reasons.)

Definition at line 1095 of file mesh.h.

1095 { return m_iRestoreCount; }
unsigned int m_iRestoreCount
Definition: mesh.h:1082
Store<StoredVertexInfo>& GetRestoreBufferRef ( )
inline

This is not part of the API – do not use. (it is here for performance reasons.)

Definition at line 1097 of file mesh.h.

1097 { return m_aRestoreBuffer; }
Store< StoredVertexInfo > m_aRestoreBuffer
Definition: mesh.h:1083
SpatialGrid* Grid ( )

Member Data Documentation

aptr<LayerMeshData> ActiveSculptLayer

This is a readonly pointer containing the address of the active sculpt layer or null if there is no active layer.

Plugins can watch this pointer by connecting their own copy to it, and respond to the event when the active layer switches.

Definition at line 962 of file mesh.h.

Store<TC> m_pTCs

Definition at line 1021 of file mesh.h.

aevent Modified

This event is triggered when the mesh has been editer. During a sculpt stroke this event is only triggered once at the end.

Definition at line 1024 of file mesh.h.

This event is triggered when the mesh's topology has been editer.

Definition at line 1026 of file mesh.h.

unsigned int m_iVertexCount
protected

Definition at line 1074 of file mesh.h.

unsigned int m_iCollectionID
mutableprotected

Definition at line 1075 of file mesh.h.

Store<Vertex> m_pVertices
protected

Definition at line 1076 of file mesh.h.

Store<Normal> m_pVertexNormals
protected

Definition at line 1077 of file mesh.h.

Store<mudbox::VertexAdjacency> m_aVertexAdjacency
protected

Definition at line 1078 of file mesh.h.

bool m_bHasVertexAdjacency
protected

Definition at line 1079 of file mesh.h.

bool m_bBuildVertexAdjacency
protected

Definition at line 1080 of file mesh.h.

unsigned int m_iRestoreCount
protected

Definition at line 1082 of file mesh.h.

Store<StoredVertexInfo> m_aRestoreBuffer
protected

Definition at line 1083 of file mesh.h.

SpatialGrid* m_pGrid
mutableprotected

Definition at line 1100 of file mesh.h.


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