LayerMeshData Class Reference

#include <layer.h>

Class Description

This class represents a Sculpt Layer.

A sculpt layer stores offsets (deltas) to the vertex positions of a mesh. When the layer is visible, the offsets are added to the mesh (scaled according to the transparency factor). Sculpt layers also support Masking, where each vertex in the sculpt layer also has a mask value, which it is multiplied by. This allows the content of the layer to be attenuated locally (using the mask) or globally (using the transparency value) with no loss of data.

Sculpt layers only keep offset information for those vertices that have actually changed. For that reason, the index of a vertex within a sculpt layer is not the same as the index of a vertex within the model.

See also Mesh::AddLayer().

Definition at line 216 of file layer.h.

+ Inheritance diagram for LayerMeshData:

Public Member Functions

virtual void SetName (const QString &sName)
 Set the name of the layer. More...
 
virtual class LayerLayer (void) const
 Returns the address of the layer object belongs to this LayerMeshData object. More...
 
virtual QString Name (void) const
 Gets the name of the layer. More...
 
virtual bool Visible () const
 Gets the visibility of the layer. More...
 
virtual void SetVisible (bool bVisible, bool bLeaveMesh=false)
 Sets the visibility of the layer. More...
 
virtual mudbox::MeshMesh () const
 Returns the mesh that this layer affects. More...
 
virtual void SetTransparency (float fTransparency, bool bLeaveMesh=false)
 Sets the transparency of the layer. More...
 
virtual float Transparency (void) const
 Returns the current transparency of the layer. 0 is fully transparent, 1 is opaque. More...
 
virtual unsigned int LayerVertexIndex (unsigned int iVertexIndex, bool bCreate=true)
 Returns the index of a vertex in a sculpt layer. More...
 
virtual void SetVertexCount (unsigned int iVertexCount)
 Set the number of vertices in the layer. More...
 
virtual unsigned int VertexCount () const
 Returns the number of vertex deltas in this layer. More...
 
virtual unsigned int MeshVertexIndex (unsigned int iLayerVertexIndex) const
 Returns the mesh's vertex index for the corresponding layer vertex index. More...
 
virtual void SetVertexData (unsigned int iVertexLayerIndex, unsigned int iGlobalVertexIndex, float fMask)
 Set the mask value belonging to a vertex in the layer. More...
 
virtual Vector SetVertexDelta (unsigned int iVertexLayerIndex, unsigned int iGlobalVertexIndex, const Vector &vDelta, bool bUpdate=true)
 Set the delta position stored for a vertex in the layer. More...
 
virtual void SetVertexMask (unsigned int iVertexLayerIndex, float fMask)
 Sets the mask of a vertex in the layer. More...
 
virtual float VertexMask (unsigned int iVertexLayerIndex)
 Returns the mask of a vertex in the layer. More...
 
virtual Vector VertexDelta (unsigned int iVertexLayerIndex)
 Returns the current delta value associated to a vertex. More...
 
virtual bool FinishChanges ()
 After creating new vertex deltas (by calling LayerVertexIndex with bCreate set to true) call this method to commit the changes into the layer. More...
 
virtual void Transform (const Matrix &mMatrix)
 
- Public Member Functions inherited from TreeNode
 TreeNode (void)
 
 ~TreeNode (void)
 
virtual void Serialize (Stream &s)
 Serializes the node. More...
 
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 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...
 
virtual void CheckValidity (Node::DiagnosticLevel iLevel=dgnLevel2) const
 See the documentation for Node::CheckValidity. 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...
 
virtual void CopyTo (Node *pNode) const
 
- 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 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...
 

Additional Inherited Members

- 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...
 
- Public Attributes inherited from TreeNode
 DECLARE_CLASS
 
- Public Attributes inherited from Node
AttributeThisPointer m_pThis
 
 DECLARE_CLASS
 

Member Function Documentation

virtual void SetName ( const QString sName)
virtual

Set the name of the layer.

Parameters
[in]sNamethe new layer name

Reimplemented from Node.

virtual class Layer* Layer ( void  ) const
virtual

Returns the address of the layer object belongs to this LayerMeshData object.

virtual QString Name ( void  ) const
virtual

Gets the name of the layer.

virtual bool Visible ( ) const
virtual

Gets the visibility of the layer.

Reimplemented from TreeNode.

virtual void SetVisible ( bool  bVisible,
bool  bLeaveMesh = false 
)
virtual

Sets the visibility of the layer.

virtual mudbox::Mesh* Mesh ( ) const
virtual

Returns the mesh that this layer affects.

virtual void SetTransparency ( float  fTransparency,
bool  bLeaveMesh = false 
)
virtual

Sets the transparency of the layer.

Parameters
[in]fTransparencyTransparency value, between 0 and 1. 0 is fully transparent, 1 is opaque.
[in]bLeaveMeshIf true, the mesh will not be modified.
virtual float Transparency ( void  ) const
virtual

Returns the current transparency of the layer. 0 is fully transparent, 1 is opaque.

virtual unsigned int LayerVertexIndex ( unsigned int  iVertexIndex,
bool  bCreate = true 
)
virtual

Returns the index of a vertex in a sculpt layer.

Vertices in a sculpt layer do not have the same index as vertices in a mesh. This method takes a mesh vertex index and finds the corresponding sculpt layer vertex index.

Note: This is a slow function, so return values should be cached if the index will be used multiple times to modify/get vertex data.

Parameters
[in]iVertexIndexIndex of the vertex inside the mesh.
[in]bCreateCreate the index if it doesn't exist
virtual void SetVertexCount ( unsigned int  iVertexCount)
virtual

Set the number of vertices in the layer.

The number of vertices in a sculpt layer may be smaller than the number of vertices in a model level, because the sculpt layer only keeps information on vertices that have changed.

Parameters
[in]iVertexCountThe desired number of vertices for the layer
virtual unsigned int VertexCount ( ) const
virtual

Returns the number of vertex deltas in this layer.

See SetVertexCount()

virtual unsigned int MeshVertexIndex ( unsigned int  iLayerVertexIndex) const
virtual

Returns the mesh's vertex index for the corresponding layer vertex index.

See SetVertexCount()

Parameters
[in]iLayerVertexIndexThe index inside the layer. Valid range is 0 to VertexCount() - 1
virtual void SetVertexData ( unsigned int  iVertexLayerIndex,
unsigned int  iGlobalVertexIndex,
float  fMask 
)
virtual

Set the mask value belonging to a vertex in the layer.

Parameters
[in]iVertexLayerIndexIndex of the vertex inside the layer. See LayerVertexIndex().
[in]iGlobalVertexIndexIndex of the vertex inside the mesh.
[in]fMaskNew mask value for the vertex, which must be between 0 and 1. 0 means no mask; 1 is completely masked.
virtual Vector SetVertexDelta ( unsigned int  iVertexLayerIndex,
unsigned int  iGlobalVertexIndex,
const Vector vDelta,
bool  bUpdate = true 
)
virtual

Set the delta position stored for a vertex in the layer.

Parameters
[in]iVertexLayerIndexIndex of the vertex inside the layer. See LayerVertexIndex().
[in]iGlobalVertexIndexIndex of the vertex inside the mesh.
[in]vDeltaNew delta vector for the vertex. This vector will be added to the world space position of the vertex when the layer becomes visible.
[in]bUpdateTrue to automatically update the mesh's corresponding vertex positions, false to only update the sculpt layer's delta.
virtual void SetVertexMask ( unsigned int  iVertexLayerIndex,
float  fMask 
)
virtual

Sets the mask of a vertex in the layer.

Parameters
[in]iVertexLayerIndexIndex of the vertex inside the layer. See LayerVertexIndex().
[in]fMaskNew mask value for the vertex, which must be between 0 and 1. 0 means no mask; 1 is completely masked.
virtual float VertexMask ( unsigned int  iVertexLayerIndex)
virtual

Returns the mask of a vertex in the layer.

Parameters
[in]iVertexLayerIndexIndex of the vertex inside the layer. See LayerVertexIndex().
virtual Vector VertexDelta ( unsigned int  iVertexLayerIndex)
virtual

Returns the current delta value associated to a vertex.

Parameters
[in]iVertexLayerIndexIndex of the vertex inside the layer. See LayerVertexIndex().
virtual bool FinishChanges ( )
virtual

After creating new vertex deltas (by calling LayerVertexIndex with bCreate set to true) call this method to commit the changes into the layer.

This method can be called once, after all vertex data has been set for the operation. Returns true on success, false otherwise.

virtual void Transform ( const Matrix mMatrix)
virtual

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