Geometry Class Reference

#include <geometry.h>

Class Description

Represents a 3d object in the scene.

+ Examples:

Definition at line 18 of file geometry.h.

+ Inheritance diagram for Geometry:

Public Types

enum  MatchMode { matchByVertexID, matchByUV, matchByVertexPosition }
 
- Public Types inherited from Node
enum  DiagnosticLevel { dgnLevel1, dgnLevel2, dgnLevel3 }
 Indicates the level of validity checking that is performed in CheckValidity() More...
 

Public Member Functions

virtual unsigned int LevelCount (void) const
 Returns the number of the subdivision levels in the object. More...
 
virtual SubdivisionLevelLowestLevel (void) const
 Returns a pointer to the lowest subdivision level (the one with the fewest faces). More...
 
virtual SubdivisionLevelHighestLevel (void) const
 Returns a pointer to the highest subdivision level (the one with the most faces). More...
 
virtual SubdivisionLevelLevel (unsigned int iIndex) const
 Returns a subdivision level by index. Returns NULL if index is out-of-range. More...
 
virtual void AddLevel (SubdivisionLevel *pLevel, bool bFirst=false)
 Adds a subdivision level to the object. More...
 
virtual bool RemoveHighestLevel ()
 Removes the highest subdivision level from this geometry and deletes it. More...
 
virtual bool RemoveLowestLevel ()
 Removes the lowest subdivision level from this geometry and deletes it. More...
 
virtual SubdivisionLevelActiveLevel (void) const
 Returns the active subdivision level. More...
 
virtual bool ChangeActiveLevel (const SubdivisionLevel *pNewLevel)
 Changes the active subdivision level. More...
 
virtual unsigned int LayerCount () const
 Returns the number of sculpt layers in this geometry. More...
 
virtual LayerMeshDataLayerData (const QString &sLayerName) const
 Convenience method to return a pointer to the layer delta/mask data for the specified layer. More...
 
virtual LayerMeshDataLayerData (unsigned int iLayer, const SubdivisionLevel *pLevel=NULL) const
 Returns a pointer to the layer delta/mask data for the specified layer. More...
 
virtual mudbox::MaterialMaterial (void) const
 Returns the material associated with this geometry. More...
 
virtual void SetMaterial (mudbox::Material *pMaterial)
 Sets the material associated with this geometry. More...
 
virtual mudbox::MaterialMaterialOverride (void) const
 Returns the material override associated with this geometry. More...
 
virtual void SetMaterialOverride (mudbox::Material *pMaterialOverride)
 Sets the override material. More...
 
virtual void SetActiveLevel (SubdivisionLevel *pNewActiveLevel)
 Obsolete. Do not use this method. Use ChangeActiveLevel instead. More...
 
virtual int GeometryID (void) const
 Returns the geometry ID. Geometry ID is used to make the operations that contain deleting and undo deleting geometry correct. More...
 
virtual void ImportUVs (const Geometry *pSource, MatchMode eMode=matchByVertexID, float fTolerance=0.001f)
 Imports a UV set from pSource to this Geometry. More...
 
virtual void Transform (const Matrix &mMatrix)
 
- Public Member Functions inherited from GroupNode
virtual class TransformationTransformation (void) const
 This method returns the Transformation node attached to this node (i.e., its Parent in the scene hierarchy). More...
 
- 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 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...
 
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 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< SubdivisionLevelm_pActiveLevel
 This variable contains the address of the active level. More...
 
- Public Attributes inherited from TreeNode
 DECLARE_CLASS
 
- Public Attributes inherited from Node
AttributeThisPointer m_pThis
 
 DECLARE_CLASS
 

Protected Member Functions

 Geometry (void)
 Constructor. Do not use this directly; use CreateInstance() instead. More...
 

Additional Inherited Members

- 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...
 

Member Enumeration Documentation

enum MatchMode
Enumerator
matchByVertexID 

Match vertices by their vertex IDs.

matchByUV 

Match vertices by using their UV coordinates.

matchByVertexPosition 

Match vertices by their position in world space.

Definition at line 28 of file geometry.h.

29  {
31  matchByUV,
33  };
Match vertices by their position in world space.
Definition: geometry.h:32
Match vertices by their vertex IDs.
Definition: geometry.h:30
Match vertices by using their UV coordinates.
Definition: geometry.h:31

Constructor & Destructor Documentation

Geometry ( void  )
protected

Constructor. Do not use this directly; use CreateInstance() instead.

Member Function Documentation

virtual unsigned int LevelCount ( void  ) const
virtual

Returns the number of the subdivision levels in the object.

virtual SubdivisionLevel* LowestLevel ( void  ) const
virtual

Returns a pointer to the lowest subdivision level (the one with the fewest faces).

virtual SubdivisionLevel* HighestLevel ( void  ) const
virtual

Returns a pointer to the highest subdivision level (the one with the most faces).

virtual SubdivisionLevel* Level ( unsigned int  iIndex) const
virtual

Returns a subdivision level by index. Returns NULL if index is out-of-range.

Parameters
[in]iIndexIndex of the subdivision level to be returned
virtual void AddLevel ( SubdivisionLevel pLevel,
bool  bFirst = false 
)
virtual

Adds a subdivision level to the object.

Parameters
[in]pLevelThe subdivision level.
[in]bFirsttrue to add as the first level. (if there are no levels, this parameter is ignored)
+ Examples:
virtual bool RemoveHighestLevel ( )
virtual

Removes the highest subdivision level from this geometry and deletes it.

Note that the active level cannot be removed. Returns true on success, false otherwise.

virtual bool RemoveLowestLevel ( )
virtual

Removes the lowest subdivision level from this geometry and deletes it.

Note that the active level cannot be removed. Returns true on success, false otherwise.

virtual SubdivisionLevel* ActiveLevel ( void  ) const
virtual

Returns the active subdivision level.

The active subdivision level is the level that is shown in the 3d viewport in Mudbox, and is the only level that is sculptable/paintable. Only one subdivision level is active at any time.

virtual bool ChangeActiveLevel ( const SubdivisionLevel pNewLevel)
virtual

Changes the active subdivision level.

For example, to step up levels, you can do this: pGeometry->ChangeActiveLevel( pGeometry->ActiveLevel()->NextLevel() ); Assuming you are not already on the highest level. This is equivalent to pressing Page Up in the Mudbox UI to step up to the next subdivision level. Returns true on success, false otherwise.

Parameters
[in]pNewLevelA pointer to the subdivision level to be made active.
virtual unsigned int LayerCount ( ) const
virtual

Returns the number of sculpt layers in this geometry.

virtual LayerMeshData* LayerData ( const QString sLayerName) const
virtual

Convenience method to return a pointer to the layer delta/mask data for the specified layer.

Returns NULL if there is no layer with the given name.

Parameters
[in]sLayerNameThe layer name
virtual LayerMeshData* LayerData ( unsigned int  iLayer,
const SubdivisionLevel pLevel = NULL 
) const
virtual

Returns a pointer to the layer delta/mask data for the specified layer.

Returns NULL if there is no layer data for the given subdivision level or if the layer index is out of range.

Parameters
[in]iLayerIndex to a sculpt layer.
[in]pLevelPointer to the subdivision level for the layer data. If NULL, the level locked to the layer is used.
virtual mudbox::Material* Material ( void  ) const
virtual

Returns the material associated with this geometry.

virtual void SetMaterial ( mudbox::Material pMaterial)
virtual

Sets the material associated with this geometry.

+ Examples:
virtual mudbox::Material* MaterialOverride ( void  ) const
virtual

Returns the material override associated with this geometry.

The override material is to be used as a temporary material in place of the normal material. Usage is typically as a highlight

virtual void SetMaterialOverride ( mudbox::Material pMaterialOverride)
virtual

Sets the override material.

If set to NULL then normal material is used for rendering. If set then this material is used instead. used for temporary switching of materials.

virtual void SetActiveLevel ( SubdivisionLevel pNewActiveLevel)
virtual

Obsolete. Do not use this method. Use ChangeActiveLevel instead.

+ Examples:
virtual int GeometryID ( void  ) const
virtual

Returns the geometry ID. Geometry ID is used to make the operations that contain deleting and undo deleting geometry correct.

virtual void ImportUVs ( const Geometry pSource,
MatchMode  eMode = matchByVertexID,
float  fTolerance = 0.001f 
)
virtual

Imports a UV set from pSource to this Geometry.

Note this method fails if the active level of this geometry is not equal to level 0.

Parameters
[in]pSourceThe source geometry to copy the UV set from
[in]eModeThe matching mode that will be used. Only matchByVertexID, and matchByVertexPosition are valid for this method.
[in]fToleranceThe tolerance when matching by vertex position
virtual void Transform ( const Matrix mMatrix)
virtual

Member Data Documentation

aptr<SubdivisionLevel> m_pActiveLevel

This variable contains the address of the active level.

Plugins can use this attribute to catch level change events by connecting their own attribute of the same type.

See also
Attribute::Connect()
Node::OnNodeEvent()

Definition at line 116 of file geometry.h.


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