#include <node.h>
This is the base class for most classes in the Mudbox SDK.
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. 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... | |
Attribute * | ReferencePointer (unsigned int iIndex) const |
Returns the address of an attribute which refers to this node. The type of the attribute is always aptr. More... | |
Node * | ReferenceNode (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 void | SetStringID (const QString &sStringID) |
Sets 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... | |
virtual void | Serialize (Stream &s) |
Serializes the node. 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 void | CheckValidity (DiagnosticLevel iLevel=dgnLevel2) const |
Checks the validity of this node. More... | |
virtual void | CopyTo (Node *pNode) const |
virtual Node * | Duplicate (void) const |
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. 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... | |
Attribute methods | |
These functions are for working with attributes. | |
unsigned int | AttributeCount (void) const |
Returns the number of attributes owned by the node. More... | |
Attribute * | AttributeByIndex (int iIndex) const |
Returns a specified attribute (or 0 if iIndex is greater than the number of attributes). More... | |
Attribute * | AttributeByName (const QString &sName) const |
Returns a specified attribute by its name. Returns 0 if the attribute not found. More... | |
Attribute * | AttributeByID (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 QWidget * | CreatePropertiesWindow (QWidget *pParent) |
Create a window which displays the attributes of the node. Can be overriden to provide a custom interface. More... | |
Attribute * | AddAttribute (Attribute::AttributeType type, const QString &id) |
Allows SDK users to add attributes at runtime. More... | |
Static Public Member Functions | |
static void | StartHashing () |
This is called once in main once static ctors are done. More... | |
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. | |
static Node * | First (void) |
This function will return the first node in the memory. Used to enumerate all the current nodes. See also Next(). More... | |
static Node * | ByID (int iID) |
Returns the node with the specified ID, or zero if such a node does not exists. More... | |
static Node * | ByName (const QString &sClass, const QString &sName) |
Search for a node with the name sName. More... | |
Node * | Next (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... | |
enum DiagnosticLevel |
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 781 of file node.h.
Standard constructor.
You can specify the string id & display name of the node.
|
static |
This is called once in main once static ctors are done.
Before calling this Node::ByID is very slow. After it is very fast. It adds any existing nodes to the ID hash table when called for the first time. This is all to avoid using QHash at static ctor time – which can crash due to the undefined order of execution of static ctors.
Reimplemented in SamplerUI, and ViewPortFilter.
|
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.
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: {
if ( cAttribute == myAttribute0 )
{
...
}
else if ( cAttribute == myAttribute1 )
{
...
}
}
|
cType | Type of the event occured. |
Reimplemented in BrushOperation, AttributeWidget, and Preferences.
This function is called when a generic event occurs. See EventGate class.
Request for a deferred event, which will occur only in the main loop.
Use an external XML file to initialize the attributes.
Save current attributes as an XML template.
Returns the current version of the node. This number increases when the content of the node changed (when ContentChanged() called).
Returns the address of an attribute which refers to this node. The type of the attribute is always aptr.
Returns the address of a node referencing this node.
This function will return the first node in the memory. Used to enumerate all the current nodes. See also Next().
bool SetID | ( | int | iID | ) |
Set ID for the node.
The ID must be unique. If not, this function does nothing and returns false. Nodes are hashed by ID once static ctors are complete.
Returns the node with the specified ID, or zero if such a node does not exists.
Nodes are hashed by ID once static ctors are complete, so this should be fast.
Search for a node with the name sName.
Will return 0 if the node was not found. Currently does a linear search through the nodes, following a linked list, so it's not exactly fast – in fact, it can be quite slow. Avoid it.
Deprecated.
Call StringID() or DisplayName() instead. Returns the name of the node. Can be overwritten in derived classes.
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 TexturePool, LayerMeshData, and LayerGroup.
Returns the string id of the node.
String ID will never be translated and keep consistent in any language.
Reimplemented in BrushOperation, and ViewPortFilter.
Sets the string id of the node.
Reimplemented in LayerGroup, and TreeNode.
Returns the display name of the node.
DisplayName may be translated and different according to the language settings.
Reimplemented in BrushOperation, and ViewPortFilter.
Sets the display name of the node.
For subderived classes that represent tools such as brushes, manipulators, and hotkey actions you can use this method to set a localized name for the node that will be displayed in the UI panels in Mudbox.
Returns the help entry id of the node. Can be overwritten in derived classes.
Relink all the attributes of the source node to this one.
Returns a specified attribute (or 0 if iIndex is greater than the number of attributes).
Returns a specified attribute by its name. Returns 0 if the attribute not found.
Returns a specified attribute by its ID. Returns 0 if the attribute not found.
Set the value of an attribute from a string.
Returns the current value of an attribute as a string.
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 | ||
) |
Serializes the node.
Override this function in your plug-in to save and load attributes and custom data with the Mudbox file.
Reimplemented in MeshPartitioning, BrushOperation, Gate, Locator, LayerContainer, MudboxCurve, Topology, Preferences, SelectAllOperation, NURBSCurve, SelectionSet, CurveBase, and TreeNode.
bool IsKindOf | ( | const ClassDesc * | pClass | ) | const |
Returns true if this node is derived from the pClass class.
Warning: RTTI is not fast – don't count on it being fast.
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 |
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 MeshPartitioning, Mesh, Topology, SubdivisionLevel, and TreeNode.
Reimplemented in Mesh, MudboxCurve, Topology, TreeNode, and CurveBase.
AttributeThisPointer m_pThis |