![]() |
Murl Engine API
Version 2018.3
|
The basic scene graph node interface. More...
#include <murl_graph_i_node.h>
The basic scene graph node interface.
Any class that is supposed to be part of a scene graph hierarchy must implement this interface.
See SetId() for a description of valid node IDs.
See Graph::INamespace for details about the hierarchical organization of node IDs.
Public Member Functions | |
virtual INode * | GetNodeInterface ()=0 |
Get the mutable INode interface. More... | |
virtual const INode * | GetNodeInterface () const =0 |
Get the constant INode interface. More... | |
virtual Bool | DeserializeNode (IDeserializeAttributeTracker *tracker)=0 |
Deserialize the node. More... | |
virtual Bool | DeserializeAttribute (IDeserializeAttributeTracker *tracker)=0 |
Deserialize a node attribute. More... | |
virtual Bool | AddChild (INode *child)=0 |
Add a child node. More... | |
virtual Bool | InsertChild (INode *child, UInt32 index)=0 |
Insert a child node at a given position. More... | |
virtual INode * | RemoveChild (INode *child)=0 |
Remove a child. More... | |
virtual INode * | RemoveChild (UInt32 index)=0 |
Remove a child from a given position. More... | |
virtual const INodeArray & | GetChildren () const =0 |
Get this node's children. More... | |
virtual INode * | GetChild (UInt32 index)=0 |
Return the child at a given position. More... | |
virtual INode * | GetChild (const String &id)=0 |
Return the first child with a given ID. More... | |
virtual const INode * | GetChild (UInt32 index) const =0 |
Return the child at a given position. More... | |
virtual const INode * | GetChild (const String &id) const =0 |
Return the first child with a given ID. More... | |
virtual SInt32 | GetChildIndex (const INode *node) const =0 |
Return the index of a given child. More... | |
virtual SInt32 | GetChildIndex (const String &id) const =0 |
Return the index of a child with a given ID. More... | |
virtual UInt32 | GetNumberOfChildren () const =0 |
Return the number of this node's children. More... | |
virtual Bool | AddParent (INode *parent)=0 |
Add a node parent at the end of the array of current parents. More... | |
virtual Bool | InsertParent (INode *parent, UInt32 index)=0 |
Insert a node parent at a given index. More... | |
virtual INode * | RemoveParent (INode *parent)=0 |
Remove a given parent. More... | |
virtual INode * | RemoveParent (UInt32 index)=0 |
Remove the parent from a given index. More... | |
virtual const INodeArray & | GetParents () const =0 |
Get a constant array of the node's parents. More... | |
virtual INode * | GetParent (UInt32 index)=0 |
Get a mutable pointer to the node's parent at a given index. More... | |
virtual INode * | GetParent (const String &id)=0 |
Get a mutable pointer to the node's parent with the given node ID. More... | |
virtual const INode * | GetParent (UInt32 index) const =0 |
Get a constant pointer to the node's parent at a given index. More... | |
virtual const INode * | GetParent (const String &id) const =0 |
Get a constant pointer to the node's parent with the given node ID. More... | |
virtual SInt32 | GetParentIndex (const INode *node) const =0 |
Return the index of a given parent. More... | |
virtual SInt32 | GetParentIndex (const String &id) const =0 |
Return the index of a parent with a given ID. More... | |
virtual UInt32 | GetNumberOfParents () const =0 |
Return the number of this node's parents. More... | |
virtual Bool | AddController (IController *controller)=0 |
Add a node controller. More... | |
virtual Bool | InsertController (IController *controller, UInt32 index)=0 |
Insert a node controller at a given position. More... | |
virtual IController * | RemoveController (IController *controller)=0 |
Remove a node controller. More... | |
virtual IController * | RemoveController (UInt32 index)=0 |
Remove a node controller from a given position. More... | |
virtual const IControllerArray & | GetControllers () const =0 |
Get a constant array of the node's controllers. More... | |
virtual IController * | GetController (UInt32 index)=0 |
Get a mutable pointer to the node's controller at a given index. More... | |
virtual const IController * | GetController (UInt32 index) const =0 |
Get a constant pointer to the node's controller at a given index. More... | |
virtual SInt32 | GetControllerIndex (const IController *controller) const =0 |
Return the index of a given controller. More... | |
virtual UInt32 | GetNumberOfControllers () const =0 |
Return the number of this node's controllers. More... | |
virtual INamespace * | GetCurrentNamespace ()=0 |
Get a mutable pointer to the namespace node this node belongs to. More... | |
virtual const INamespace * | GetCurrentNamespace () const =0 |
Get a constant pointer to the namespace node this node belongs to. More... | |
virtual INamespace * | GetParentNamespace ()=0 |
Get a mutable pointer to the namespace node this node's parent belongs to. More... | |
virtual const INamespace * | GetParentNamespace () const =0 |
Get a constant pointer to the namespace node this node's parent belongs to. More... | |
virtual INamespace * | GetRootNamespace ()=0 |
Get a mutable pointer to the root namespace node. More... | |
virtual const INamespace * | GetRootNamespace () const =0 |
Get a constant pointer to the root namespace node. More... | |
virtual Bool | SetId (const String &id)=0 |
Set the node ID. More... | |
virtual const String & | GetId () const =0 |
Get the node ID. More... | |
virtual String | GetPath () const =0 |
Calculate the absolute path to the node. More... | |
virtual Bool | IsPrivate () const =0 |
Check if this node is considered private. More... | |
virtual Bool | SetHead (Bool isHead)=0 |
Define whether this node represents the head of a sub-graph. More... | |
virtual Bool | IsHead () const =0 |
Check whether this node represents the head of a sub-graph. More... | |
virtual Bool | SetLocked (Bool isLocked)=0 |
Lock/unlock the node. More... | |
virtual Bool | IsLocked () const =0 |
Check if this node is locked for regular traversals. More... | |
virtual Bool | SetSwapped (Bool isSwapped)=0 |
Set/clear the node's initial swap state. More... | |
virtual Bool | IsSwapped () const =0 |
Check if this node is initially in the swapped state. More... | |
virtual Bool | SetAutomaticSwappingEnabled (Bool enabled)=0 |
Enable/disable auto-swapping for this node. More... | |
virtual Bool | IsAutomaticSwappingEnabled () const =0 |
Check if auto-swapping is enabled for this node. More... | |
virtual Bool | SetManualSwappingEnabled (Bool enabled)=0 |
Enable/disable manual swapping for this node. More... | |
virtual Bool | IsManualSwappingEnabled () const =0 |
Check if manual swapping is enabled for this node. More... | |
virtual Bool | SetStateRecordingEnabled (Bool enabled)=0 |
Enable/disable state recording for this node. More... | |
virtual Bool | IsStateRecordingEnabled () const =0 |
Check if state recording is enabled for this node. More... | |
virtual Bool | SetInitialized (Bool isInitialized)=0 |
Set/reset the initialized state of the node. More... | |
virtual Bool | IsInitialized () const =0 |
Check if this node is initialized. More... | |
virtual Bool | SetFinishLogicPending (Bool pending)=0 |
Set/reset whether the finish logic traversal is pending. More... | |
virtual Bool | IsFinishLogicPending () const =0 |
Check whether the finish logic traversal is pending. More... | |
virtual Bool | SetFinishInputPending (Bool pending)=0 |
Set/reset whether the finish input traversal is pending. More... | |
virtual Bool | IsFinishInputPending () const =0 |
Check whether the finish input traversal is pending. More... | |
virtual Bool | SetFinishOutputPending (Bool pending)=0 |
Set/reset whether the finish output traversal is pending. More... | |
virtual Bool | IsFinishOutputPending () const =0 |
Check whether the finish output traversal is pending. More... | |
virtual Bool | SetBoundingVolumeModified (Bool isModified)=0 |
Set/reset the "bounding volume modified" state of the node. More... | |
virtual Bool | IsBoundingVolumeModified () const =0 |
Check if the overall bounding volume was modified. More... | |
virtual Bool | SetActiveModified ()=0 |
Set the "active modified" state of the node. More... | |
virtual Bool | SetVisibleModified ()=0 |
Set the "visible modified" state of the node. More... | |
virtual Bool | SetModifiedFlags (UInt32 flags)=0 |
Set a combination of "modified" flags. More... | |
virtual Bool | ClearModifiedFlags (UInt32 flags)=0 |
Clear a combination of "modified" flags. More... | |
virtual Bool | SetNodeFlags (UInt32 flags)=0 |
set current flags. More... | |
virtual UInt32 | GetNodeFlags () const =0 |
Get current flags. More... | |
virtual UInt32 | GetModifiedTraversalStates () const =0 |
Get the traversal states that are modified by the node and its sub-graph. More... | |
virtual Bool | AddReference ()=0 |
Increment the node's internal reference counter by 1. More... | |
virtual Bool | RemoveReference ()=0 |
Increment the node's internal reference counter by 1. More... | |
virtual Bool | Init (IInitTracker *tracker)=0 |
Initialize the node and its sub-graph. More... | |
virtual Bool | DeInit (IDeInitTracker *tracker)=0 |
Deinitialize the node and its sub-graph. More... | |
virtual Bool | Suspend (IDeInitTracker *tracker)=0 |
Suspend the node and its sub-graph. More... | |
virtual Bool | Resume (IInitTracker *tracker)=0 |
Resume the node and its sub-graph. More... | |
virtual Bool | ConfigChangedLogic (IConfigChangedTracker *tracker)=0 |
Signal a configuration change relevant for the node's logic traversal. More... | |
virtual Bool | ConfigChangedOutput (IConfigChangedTracker *tracker)=0 |
Signal a configuration change relevant for the node's output traversal. More... | |
virtual Bool | ProcessLogic (IProcessLogicTracker *tracker)=0 |
Perform a logic traversal on the node and its sub-graph. More... | |
virtual Bool | ProcessInput (IProcessInputTracker *tracker)=0 |
Perform an input traversal on the node and its sub-graph. More... | |
virtual Bool | ProcessOutput (IProcessOutputTracker *tracker)=0 |
Perform an output traversal on the node and its sub-graph. More... | |
virtual Bool | FinishLogic (IFinishLogicTracker *tracker)=0 |
Finalize the logic traversal if requested by the node. More... | |
virtual Bool | FinishInput (IFinishInputTracker *tracker)=0 |
Finalize the input traversal if requested by the node. More... | |
virtual Bool | FinishOutput (IFinishOutputTracker *tracker)=0 |
Finalize the output traversal if requested by the node. More... | |
virtual Bool | WasParentActiveSet (IProcessLogicTracker *tracker) const =0 |
Check if a parent was recently activated. More... | |
virtual Bool | WasParentVisibleSet (IProcessOutputTracker *tracker) const =0 |
Check if a parent was recently set visible. More... | |
virtual Bool | SetHandle (IHandle *handle)=0 |
Set the node handle used to store unique information during traversal. More... | |
virtual IHandle * | GetHandle ()=0 |
Get the node handle used during traversal, or null if not used. More... | |
virtual const IHandle * | GetHandle () const =0 |
Get the node handle used during traversal, or null if not used. More... | |
virtual Bool | SetUserData (void *userData)=0 |
Set a custom user data object. More... | |
virtual void * | GetUserData ()=0 |
Get the node's user data object, or null if not set. More... | |
virtual const void * | GetUserData () const =0 |
Get the node's user data object, or null if not set. More... | |
virtual IBoundingVolume * | CreateBoundingVolume () const =0 |
Create a bounding volume. More... | |
virtual Bool | DestroyBoundingVolume (IBoundingVolume *&boundingVolume) const =0 |
Destroy a given bounding volume. More... | |
virtual IBoundingVolume * | GetBoundingVolume ()=0 |
Get the node's bounding volume, if present. More... | |
virtual const IBoundingVolume * | GetBoundingVolume () const =0 |
Get the node's bounding volume, if present. More... | |
virtual UInt32 | GetConfigChangedTriggers (UInt32 mask) const =0 |
Get the node's active triggers for config change traversal. More... | |
virtual UInt32 | GetProcessLogicTriggers (UInt32 mask) const =0 |
Get the node's active triggers for logic traversal. More... | |
virtual UInt32 | GetProcessInputTriggers (UInt32 mask) const =0 |
Get the node's active triggers for input traversal. More... | |
virtual UInt32 | GetProcessOutputTriggers (UInt32 mask) const =0 |
Get the node's active triggers for output traversal. More... | |
virtual UInt32 | GetConfigChangedResponse () const =0 |
Get the node's active response for config change traversal. More... | |
virtual UInt32 | GetProcessLogicResponse () const =0 |
Get the node's active response for logic traversal. More... | |
virtual UInt32 | GetProcessInputResponse () const =0 |
Get the node's active response for input traversal. More... | |
virtual UInt32 | GetProcessOutputResponse () const =0 |
Get the node's active response for output traversal. More... | |
virtual Bool | AddChildConfigChangedResponse (UInt32 mask)=0 |
Add the response of a node's child to a config change traversal. More... | |
virtual Bool | AddChildProcessLogicResponse (UInt32 mask)=0 |
Add the response of a node's child to a logic traversal. More... | |
virtual Bool | AddChildProcessInputResponse (UInt32 mask)=0 |
Add the response of a node's child to a input traversal. More... | |
virtual Bool | AddChildProcessOutputResponse (UInt32 mask)=0 |
Add the response of a node's child to a output traversal. More... | |
virtual const IController::ClassInfo & | GetDefaultControllerClassInfo () const =0 |
Get the class info structure of the default controller for this node. More... | |
virtual Bool | PrintTree (UInt32 indent=0, UInt32 includeNodeFlags=UInt32(~0), UInt32 excludeNodeFlags=0) const =0 |
Print the node and its sub-graph to the system console. More... | |
![]() | |
virtual | ~IFactoryObject () |
The destructor. More... | |
virtual const ClassInfo * | GetObjectClassInfo () const=0 |
Get the object instance's class info, if present. More... | |
virtual void | ResetObjectProperties ()=0 |
Reset the object instance's properties to their default values. | |
![]() | |
virtual Bool | SetActive (Bool isActive)=0 |
Enable/disable logic traversals. More... | |
virtual Bool | IsActive () const =0 |
Check if logic traversals are enabled. More... | |
virtual Bool | SetVisible (Bool isVisible)=0 |
Enable/disable output traversals. More... | |
virtual Bool | IsVisible () const =0 |
Check if output traversals are enabled. More... | |
virtual Bool | SetActiveAndVisible (Bool enabled)=0 |
Enable/disable both logic and output traversals. More... | |
virtual Bool | IsActiveAndVisible () const =0 |
Check if both logic and output traversals are enabled. More... | |
Additional Inherited Members | |
![]() | |
typedef Array< const ClassInfo *> | ClassInfoArray |
Definition of an array of ClassInfo objects. More... | |
![]() | |
static const PropertyInfo * | GetPropertyInfo () |
Get the class' property info struct. More... | |
static const AttributeInfo * | GetAttributeInfo () |
Get the class' attribute info struct. More... | |
static void | ResetProperties (IFactoryObject< INode > *object) |
Reset an object instance's properties to their default values. More... | |
|
pure virtual |
|
pure virtual |
|
pure virtual |
Deserialize the node.
If a node is created from a read-only Resource::IGraph object, the factory calls this method once so that the newly created node can obtain the respective Resource::IGraphNode it was created from via the given tracker.
tracker | The tracker used. |
|
pure virtual |
Deserialize a node attribute.
A scene graph (or actually its individual nodes) may be created and initialized from e.g. a read-only Resource::IGraph object that can be retrieved from a Resource::ICollection instance. Setting all relevant node attributes from this resource object can be done by iterating over all given attributes and calling this method on the newly created node.
tracker | The tracker used. |
Add a child node.
Add a given node as the next child of the current node.
child | The child node to add. |
Insert a child node at a given position.
Insert a given node at a given position of the current node's children.
child | The child node to add. |
index | The zero-based index where to insert the node. |
Remove a child.
Remove the first instance of a given child node from this node's children.
child | The child node to remove. |
Remove a child from a given position.
Remove the child node specified by a given index.
index | The zero-based index of the child to remove. |
|
pure virtual |
Get this node's children.
This returns a constant reference to this node's internal array of child nodes.
Return the child at a given position.
This returns a mutable pointer to this node's child at a given index.
index | The zero-based index of the child. |
Return the first child with a given ID.
This returns a mutable pointer to this node's child that has a given ID.
id | The ID of the child to search for. |
Return the child at a given position.
This returns a constant pointer to this node's child at a given index.
index | The zero-based index of the child. |
Return the first child with a given ID.
This returns a constant pointer to this node's child that has a given ID.
id | The ID of the child to search for. |
Return the index of a given child.
node | The child node to query. |
Return the index of a child with a given ID.
id | The ID of the child node to query. |
|
pure virtual |
Return the number of this node's children.
Add a node parent at the end of the array of current parents.
By convention, the node's parent at index 0 represents the "real" parent, which is defined during scene graph creation. Any parents at an index greater than 0 are considered "virtual" parents, which result from a node being referenced multiple times by e.g. a Graph::IReference node.
parent | The parent to add. |
Insert a node parent at a given index.
parent | The parent to add. |
index | The zero-based index into the array of parents. |
Remove a given parent.
parent | The parent to remove from the node's array of parents. |
Remove the parent from a given index.
index | The index into the node's array of parents. |
|
pure virtual |
Get a constant array of the node's parents.
Get a mutable pointer to the node's parent at a given index.
index | The index into the node's array of parents. |
Get a mutable pointer to the node's parent with the given node ID.
id | The node ID of the parent to retrieve. |
Get a constant pointer to the node's parent at a given index.
index | The index into the node's array of parents. |
Get a constant pointer to the node's parent with the given node ID.
id | The node ID of the parent to retrieve. |
Return the index of a given parent.
node | The parent node to query. |
Return the index of a parent with a given ID.
id | The ID of the parent node to query. |
|
pure virtual |
Return the number of this node's parents.
|
pure virtual |
Add a node controller.
controller | The controller to add |
|
pure virtual |
Insert a node controller at a given position.
Insert a given controller at a given position of the current node's controller array.
controller | The controller to insert. |
index | The zero-based index where to insert the controller. |
|
pure virtual |
Remove a node controller.
Remove the first instance of a given controller from this node's controller array.
controller | The controller to remove. |
|
pure virtual |
Remove a node controller from a given position.
Remove the controller specified by a given index.
index | The zero-based index of the controller to remove. |
|
pure virtual |
Get a constant array of the node's controllers.
|
pure virtual |
Get a mutable pointer to the node's controller at a given index.
index | The index into the node's array of controllers. |
|
pure virtual |
Get a constant pointer to the node's controller at a given index.
index | The index into the node's array of controllers. |
|
pure virtual |
Return the index of a given controller.
controller | The controller to query. |
|
pure virtual |
Return the number of this node's controllers.
|
pure virtual |
Get a mutable pointer to the namespace node this node belongs to.
|
pure virtual |
Get a constant pointer to the namespace node this node belongs to.
|
pure virtual |
Get a mutable pointer to the namespace node this node's parent belongs to.
|
pure virtual |
Get a constant pointer to the namespace node this node's parent belongs to.
|
pure virtual |
Get a mutable pointer to the root namespace node.
|
pure virtual |
Get a constant pointer to the root namespace node.
Set the node ID.
A node may have an optional ID, by which it can later be referenced from another node in the scene graph, or from a Logic::IProcessor to directly manipulate the node's properties from code. A valid node ID can only contain underscores ('_'), digits ('0'..'9') and/or alphabetic characters ('a'..'z' and 'A'..'Z'), and must not begin with a digit. In addition, node IDs must be unique within a common namespace.
See Graph::INamespace for examples of how to refer to individual nodes by their ID.
id | The node ID to set. |
|
pure virtual |
Get the node ID.
|
pure virtual |
Calculate the absolute path to the node.
|
pure virtual |
Check if this node is considered private.
If a node is marked private, it is not possible to reference that node or any of its children from outside the sub-graph beneath that node.
Define whether this node represents the head of a sub-graph.
When a sub-graph is created and added as a child of an existing scene graph node, this method must be called on the sub-graph's top node with isHead set to true. This must be done in order to detect any sub-graphs that were not correctly detached and destroyed before their respective parent graph is destroyed. Failing to do so may result in memory leaks or invalid node pointers.
isHead | If true, the node is set to be a head node. |
|
pure virtual |
Check whether this node represents the head of a sub-graph.
Lock/unlock the node.
Creating and destroying sub-graphs is usually an asynchronous task that is carried out in multiple stages. To prevent interference with regular graph traversals, it is necessary to have a sub-graph locked whenever it being initialized or deinitialized while it is linked to another scene graph node. Therefore, this method must be called with isLocked set to true prior to inserting it into the scene graph or prior to deinitializing it. The sub-graph may only be safely unlocked after it has been fully initialized, or detached from its parent.
isLocked | If true, the node gets locked for regular traversals. |
|
pure virtual |
Set/clear the node's initial swap state.
The node's swapped state is used as a hint to the engine, so that the node may decide to delay creation of any internal objects until they are actually used. This is usually the case for e.g. textures, which consume a large amount of video memory. Here, setting the node's swapped state results in not creating the video memory resources until the texture is referenced for the first time. By default, the swapped state is disabled. Note that this property can only be set before the node is initialized, after that the method returns false.
isSwapped | The swap state of the node. |
|
pure virtual |
Check if this node is initially in the swapped state.
See SetSwapped().
Enable/disable auto-swapping for this node.
When enabled, the engine may decide to swap-out any node-specific resources when they have not been used during the last frame. Like the initial swap state set via SetSwapped(), this is only a hint and applies to certain nodes only, such as textures. By default, this feature is disabled. Note also that auto-swapping can only be set before the node is initialized. When auto-swapping is enabled, it is usually a good idea to also set the initial swap state to true (via SetSwapped()), as otherwise the node's resources are created at initialization and possibly immediately swapped out when the node is not being used in the following frame.
enabled | If true, auto swapping is enabled. |
|
pure virtual |
Check if auto-swapping is enabled for this node.
See SetSwappable().
Enable/disable manual swapping for this node.
When enabled, the user can trigger a swap-out of any node-specific resources when they have not been used during the last frame, by calling the TriggerSwapping() method on the Graph::IRoot object that can be accessed e.g. via the Logic::IState object. See SetAutomaticSwappingEnabled().
enabled | If true, manual swapping is enabled. |
|
pure virtual |
Check if manual swapping is enabled for this node.
See SetManualSwappingEnabled().
Enable/disable state recording for this node.
enabled | If true, state recording is enabled. |
|
pure virtual |
Check if state recording is enabled for this node.
See SetStateRecordingEnabled().
Set/reset the initialized state of the node.
isInitialized | If true, the node is set to the initialized state. |
|
pure virtual |
Check if this node is initialized.
Set/reset whether the finish logic traversal is pending.
pending | The pending state. |
|
pure virtual |
Check whether the finish logic traversal is pending.
Set/reset whether the finish input traversal is pending.
pending | The pending state. |
|
pure virtual |
Check whether the finish input traversal is pending.
Set/reset whether the finish output traversal is pending.
pending | The pending state. |
|
pure virtual |
Check whether the finish output traversal is pending.
Set/reset the "bounding volume modified" state of the node.
The "bounding volume modified" state signals that there was some modification of one or more of the nodes within this node's sub-graph which affects this node's overall bounding volume. If isModified is true, the change is propagated to all of the node's parents, whereas a value of false clears this state in all of the node's child sub-graphs. This propagation is only done when the node is not locked. See SetModifiedFlags() and ClearModifiedFlags(), together with NODE_FLAG_IS_BOUNDING_VOLUME_MODIFIED.
isModified | If true, the bounding volume is flagged as modified. |
|
pure virtual |
Check if the overall bounding volume was modified.
|
pure virtual |
Set the "active modified" state of the node.
|
pure virtual |
Set the "visible modified" state of the node.
Set a combination of "modified" flags.
This method sets the given flag bits in the node's internal state. The change is propagated to all of the node's parents when the node is unlocked. See SetBoundingVolumeModified().
flags | The bit mask of flags to set. |
Clear a combination of "modified" flags.
This method clears the given flag bits in the node's internal state. The change is propagated to all of the node's child sub-graphs when the node is unlocked. See SetBoundingVolumeModified().
flags | The bit mask of flags to clear. |
set current flags.
(!) Use with caution! Messing around with node flags may cause undefined behavior.
flags | The flags bit mask. |
|
pure virtual |
Get current flags.
|
pure virtual |
Get the traversal states that are modified by the node and its sub-graph.
|
pure virtual |
Increment the node's internal reference counter by 1.
Whenever a node is persistently referenced from a different location in the application, this method must be called to indicate that it must not be destroyed, to prevent existing pointers to become invalid. Using a Graph::IReference node automatically performs this task together with its counterpart RemoveReference(), as do the individual Logic::GraphNodeT helpers. If a node is directly referenced from user code, it is up to the user to correctly increment/decrement the node's reference counter. A sub-graph can only be correctly destroyed when all of its children have a reference counter of 0.
|
pure virtual |
Increment the node's internal reference counter by 1.
See AddReference().
|
pure virtual |
Initialize the node and its sub-graph.
tracker | The tracker used for initialization. |
|
pure virtual |
Deinitialize the node and its sub-graph.
tracker | The tracker used for deinitialization. |
|
pure virtual |
Suspend the node and its sub-graph.
tracker | The tracker used for suspension. |
|
pure virtual |
Resume the node and its sub-graph.
tracker | The tracker used for resumption. |
|
pure virtual |
Signal a configuration change relevant for the node's logic traversal.
tracker | The tracker used. |
|
pure virtual |
Signal a configuration change relevant for the node's output traversal.
tracker | The tracker used. |
|
pure virtual |
Perform a logic traversal on the node and its sub-graph.
tracker | The tracker used for traversal. |
|
pure virtual |
Perform an input traversal on the node and its sub-graph.
tracker | The tracker used for traversal. |
|
pure virtual |
Perform an output traversal on the node and its sub-graph.
tracker | The tracker used for traversal. |
|
pure virtual |
Finalize the logic traversal if requested by the node.
tracker | The tracker used. |
|
pure virtual |
Finalize the input traversal if requested by the node.
tracker | The tracker used. |
|
pure virtual |
Finalize the output traversal if requested by the node.
tracker | The tracker used. |
|
pure virtual |
Check if a parent was recently activated.
tracker | The tracker used. |
|
pure virtual |
Check if a parent was recently set visible.
tracker | The tracker used. |
Set the node handle used to store unique information during traversal.
handle | The node handle to set. |
|
pure virtual |
Get the node handle used during traversal, or null if not used.
|
pure virtual |
Get the node handle used during traversal, or null if not used.
|
pure virtual |
Set a custom user data object.
userData | The user data object to set, or null to remove. |
|
pure virtual |
Get the node's user data object, or null if not set.
|
pure virtual |
Get the node's user data object, or null if not set.
|
pure virtual |
Create a bounding volume.
|
pure virtual |
Destroy a given bounding volume.
boundingVolume | A reference to the bounding volume pointer. After destruction, the pointer will be set to null. |
|
pure virtual |
Get the node's bounding volume, if present.
|
pure virtual |
Get the node's bounding volume, if present.
Get the node's active triggers for config change traversal.
mask | A bit mask of triggers to check, from the ConfigChangedTriggers enumeration. |
Get the node's active triggers for logic traversal.
mask | A bit mask of triggers to check, from the ProcessLogicTriggers enumeration. |
Get the node's active triggers for input traversal.
mask | A bit mask of triggers to check, from the ProcessInputTriggers enumeration. |
Get the node's active triggers for output traversal.
mask | A bit mask of triggers to check, from the ProcessOutputTriggers enumeration. |
|
pure virtual |
Get the node's active response for config change traversal.
|
pure virtual |
Get the node's active response for logic traversal.
|
pure virtual |
Get the node's active response for input traversal.
|
pure virtual |
Get the node's active response for output traversal.
Add the response of a node's child to a config change traversal.
mask | A bit mask of triggers to add to the traversal response, from the ConfigChangedTriggers enumeration. |
Add the response of a node's child to a logic traversal.
mask | A bit mask of triggers to add to the traversal response, from the ProcessLogicTriggers enumeration. |
Add the response of a node's child to a input traversal.
mask | A bit mask of triggers to add to the traversal response, from the ProcessInputTriggers enumeration. |
Add the response of a node's child to a output traversal.
mask | A bit mask of triggers to add to the traversal response, from the ProcessOutputTriggers enumeration. |
|
pure virtual |
Get the class info structure of the default controller for this node.
|
pure virtual |
Print the node and its sub-graph to the system console.
indent | The number of spaces to add in front of each output text line. |
includeNodeFlags | A bit mask made up from individual NodeFlags values specifying the nodes to include into the output (default is all flags). |
excludeNodeFlags | A bit mask made up from individual NodeFlags values specifying the nodes to exclude from the output (default is no flags). |