Node Class Reference


Detailed Description

This is the base class for most classes in the Mudbox SDK.

Examples:

CurveBrush/CurveDisplayer.h, FileEventHandler/FileEventHandler.h, and FrameCounter/FrameCounter.h.

Definition at line 684 of file node.h.

#include <node.h>

Inheritance diagram for Node:
Inheritance graph
[legend]

List of all members.

Public Types

enum   DiagnosticLevel { dgnLevel1, dgnLevel2, dgnLevel3 }
 

Indicates the level of validity checking that is performed in CheckValidity()

More...

Public Member Functions

  Node (const QString &sStringID="", const QString &sDisplayName="")
  Standard constructor.
virtual  ~Node (void)
virtual void  Initialize (void)
void  LoadTemplate (const QString &sFileName="", bool bStartEvent=false)
  Use an external XML file to initialize the attributes.
void  SaveTemplate (const QString &sFileName="", bool bSaveOnlyVisible=false)
  Save current attributes as an XML template.
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).
void  SetVersion (unsigned int iVersion)
  Sets the current version number for the node.
virtual QString  Name (const ClassDesc *pClass=0) const
  Deprecated.
virtual void  SetName (const QString &sName)
  Deprecated.
virtual QString  StringID (const ClassDesc *pClass=0) const
  Returns the string id of the node.
virtual void  SetStringID (const QString &sStringID)
  Sets the string id of the node.
virtual QString  DisplayName (void) const
  Returns the display name of the node.
virtual void  SetDisplayName (const QString &sDisplayName)
  Sets the display name of the node.
virtual QString  HelpID (void) const
  Returns the help entry id of the node. Can be overwritten in derived classes.
virtual void  SetHelpID (const QString &sHelpID)
  Sets the help entry id of the node.
void  Annex (Node *pSource, const QString &sCategory="")
  Relink all the attributes of the source node to this one.
virtual void  Serialize (Stream &s)
  Serializes the node.
bool  IsKindOf (const ClassDesc *pClass) const
  Returns true if this node is derived from the pClass class.
void  ContentChanged (void) const
  This function must be called if the content of the node is changed.
virtual void  CheckValidity (DiagnosticLevel iLevel=dgnLevel2) const
  Checks the validity of this node.
Event functions

These functions are used for working with node events, such as notifications to changes to an attribute.

virtual void  OnNodeEvent (const Attribute &cAttribute, NodeEventType cType)
  This function is called if an event occurs with any of the attributes of the node.
virtual void  OnEvent (const EventGate &cEvent)
  This function is called when a generic event occurs. See EventGate class.
void  RequestDeferredEvent (Attribute &cAttribute)
  Request for a deferred event, which will occur only in the main loop.
Attribute methods

These functions are for working with attributes.

unsigned int  AttributeCount (void) const
  Returns the number of attributes owned by the node.
Attribute AttributeByIndex (int iIndex) const
  Returns a specified attribute (or 0 if iIndex is greater than the number of attributes).
Attribute AttributeByName (const QString &sName) const
  Returns a specified attribute by its name. Returns 0 if the attribute not found.
Attribute AttributeByID (const QString &sID) const
  Returns a specified attribute by its ID. Returns 0 if the attribute not found.
void  SetAttributeValue (const QString &sAttributeID, const QString &sNewValue)
  Set the value of an attribute from a string.
QString  AttributeValue (const QString &sAttributeID) const
  Returns the current value of an attribute as a string.
void  LogAttributes (void) const
  Write all attributes into the log file.
virtual QWidget *  CreatePropertiesWindow (QWidget *pParent)
  Create a window which displays the attributes of the node. Can be overriden to provide a custom interface.
Attribute AddAttribute (Attribute::AttributeType type, const QString &id)
  Allows SDK users to add attributes at runtime.

Public Attributes

AttributeThisPointer  m_pThis
  DECLARE_CLASS

Friends

struct  Attribute
class  Stream
class  EventGate

Node enumeration and retrieval function

The following functions are used for enumerating over nodes.
Node Next (void) const
  Returns the next node in the chain. Used to enumerate the current nodes. See also First().
int  ID (void) const
  Returns an ID for the node. The ID is unique in the whole application life.
static Node First (void)
  This function will return the first node in the memory. Used to enumerate all the current nodes. See also Next().
static Node ByID (int iID)
  Returns the node with the specified ID, or zero if such a node does not exists.
static Node ByName (const QString &sClass, const QString &sName)
  Search for a node with the name sName. Will return 0 if the node was not found.

Member Enumeration Documentation

Indicates the level of validity checking that is performed in CheckValidity()

Enumerator:
dgnLevel1 

Very fast, cursory check.

dgnLevel2 

Fairly quick check.

dgnLevel3 

Through check, which can be slower than the others.

Definition at line 699 of file node.h.


Constructor & Destructor Documentation

Node ( const QString &  sStringID = "",
const QString &  sDisplayName = "" 
)

Standard constructor.

You can specify the string id & display name of the node.

See also:
StringID(), DisplayName()
virtual ~Node ( void  ) [virtual]

Member Function Documentation

virtual void Initialize ( void  ) [virtual]
virtual void OnNodeEvent ( const Attribute cAttribute,
NodeEventType  cType 
) [virtual]

This function is called if an event occurs with any of the attributes of the node.

All derived classes should override this function to be able to handle attribute events.

Parameters:
cAttribute The attribute which caused the event. The attribute has a special == operator to make it easier to implement this function. You can write the following:
        void MyClass::OnNodeEvent( const Attribute &cAttribute, NodeEventType cType )
        {
            if ( cAttribute == myAttribute0 )
            {
                ...
            }
            else if ( cAttribute == myAttribute1 )
            {
                ...
            }
        }

This comparison will check the address of the two attributes and NOT their values.

cType Type of the event occured.

Reimplemented in Preferences, and AttributeWidget.

virtual void OnEvent ( const EventGate cEvent ) [virtual]

This function is called when a generic event occurs. See EventGate class.

void RequestDeferredEvent ( Attribute cAttribute )

Request for a deferred event, which will occur only in the main loop.

void LoadTemplate ( const QString &  sFileName = "",
bool  bStartEvent = false 
)

Use an external XML file to initialize the attributes.

void SaveTemplate ( const QString &  sFileName = "",
bool  bSaveOnlyVisible = false 
)

Save current attributes as an XML template.

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

Reimplemented in Stream.

void SetVersion ( unsigned int  iVersion )

Sets the current version number for the node.

static Node* First ( void  ) [static]

This function will return the first node in the memory. Used to enumerate all the current nodes. See also Next().

Node* Next ( void  ) const

Returns the next node in the chain. Used to enumerate the current nodes. See also First().

Reimplemented in Layer, and ViewPortFilter.

int ID ( void  ) const

Returns an ID for the node. The ID is unique in the whole application life.

static Node* ByID ( int  iID ) [static]

Returns the node with the specified ID, or zero if such a node does not exists.

static Node* ByName ( const QString &  sClass,
const QString &  sName 
) [static]

Search for a node with the name sName. Will return 0 if the node was not found.

virtual QString Name ( const ClassDesc pClass = 0 ) const [virtual]

Deprecated.

Call StringID() or DisplayName() instead. Returns the name of the node. Can be overwritten in derived classes.

virtual void SetName ( const QString &  sName ) [virtual]

Deprecated.

Call SetStringID() or SetDisplayName() instead. Sets the name of the node. Has no effect if Name() is overwritten in a derived class.

Reimplemented in LayerMeshData, TexturePool, and TreeNode.

virtual QString StringID ( const ClassDesc pClass = 0 ) const [virtual]

Returns the string id of the node.

String ID will never be translated and keep consistent in any language.

Reimplemented in ViewPortFilter.

virtual void SetStringID ( const QString &  sStringID ) [virtual]

Sets the string id of the node.

virtual QString DisplayName ( void  ) const [virtual]

Returns the display name of the node.

DisplayName may be translated and different according to the language settings.

Reimplemented in ViewPortFilter.

virtual void SetDisplayName ( const QString &  sDisplayName ) [virtual]

Sets the display name of the node.

virtual QString HelpID ( void  ) const [virtual]

Returns the help entry id of the node. Can be overwritten in derived classes.

virtual void SetHelpID ( const QString &  sHelpID ) [virtual]

Sets the help entry id of the node.

void Annex ( Node pSource,
const QString &  sCategory = "" 
)

Relink all the attributes of the source node to this one.

unsigned int AttributeCount ( void  ) const

Returns the number of attributes owned by the node.

Attribute* AttributeByIndex ( int  iIndex ) const

Returns a specified attribute (or 0 if iIndex is greater than the number of attributes).

Attribute* AttributeByName ( const QString &  sName ) const

Returns a specified attribute by its name. Returns 0 if the attribute not found.

Attribute* AttributeByID ( const QString &  sID ) const

Returns a specified attribute by its ID. Returns 0 if the attribute not found.

void SetAttributeValue ( const QString &  sAttributeID,
const QString &  sNewValue 
)

Set the value of an attribute from a string.

QString AttributeValue ( const QString &  sAttributeID ) const

Returns the current value of an attribute as a string.

void LogAttributes ( void  ) const

Write all attributes into the log file.

virtual QWidget* CreatePropertiesWindow ( QWidget *  pParent ) [virtual]

Create a window which displays the attributes of the node. Can be overriden to provide a custom interface.

Attribute* AddAttribute ( Attribute::AttributeType  type,
const QString &  id 
)

Allows SDK users to add attributes at runtime.

Attribute UI visibility is set to false. The Node controls the memory of the attribute (it will delete it) Note that the attribute will be serialized when the node is serialized.

virtual void Serialize ( Stream s ) [virtual]

Serializes the node.

Override this function in your plug-in to save and load attributes and custom data with the Mudbox file.

Reimplemented in LayerContainer, NURBSCurve, Preferences, SelectionSet, Topology, and TreeNode.

bool IsKindOf ( const ClassDesc pClass ) const

Returns true if this node is derived from the pClass class.

void ContentChanged ( void  ) const

This function must be called if the content of the node is changed.

All other nodes which has an AttributePointer pointing to this node will receive a event notficiation of type etPointerContentChanged (See NodeEventType).

virtual void CheckValidity ( DiagnosticLevel  iLevel = dgnLevel2 ) const [virtual]

Checks the validity of this node.

Implementors should always call the CheckValidity method of their base class in their subclasses CheckValidity call. throws a mudbox::Error if this node is invalid.

Reimplemented in TreeNode.


Friends And Related Function Documentation

friend struct Attribute [friend]

Definition at line 693 of file node.h.

friend class Stream [friend]

Definition at line 694 of file node.h.

friend class EventGate [friend]

Definition at line 841 of file node.h.


Member Data Documentation


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

Node Node Node Node Node Node Node Node Node Node
Node Node Node Node Node Node Node Node Node Node