![]() |
Murl Engine API
Version 2018.3
|
The ISubState graph node interface. More...
#include <murl_graph_i_sub_state.h>
The ISubState graph node interface.
Graph::ISubState nodes can be used to encapsulate scene graph traversal state changes, so that the user does not have to track all changes to e.g. material states, texture states etc.
By default, when it gets initialized, a sub state node determines the states that get actually changed during traversal of its sub-graph. When the scene graph gets traversed, only those states are preserved. It is possible to manually override this behavior by setting a state bit mask via SetPreservedStatesIncludeMask() and SetPreservedStatesExcludeMask(), to either include additional preserved states or force the node to not include specific ones.
State preserving is not free; the more states are changing within the sub-graph, the more information must be kept at each traversal. Especially when a lot of texture and/or material state slots are involved, this can be a costly operation.
Public Member Functions | |
virtual INode * | GetNodeInterface ()=0 |
Get the mutable Graph::INode interface. More... | |
virtual const INode * | GetNodeInterface () const =0 |
Get the constant Graph::INode interface. More... | |
virtual Bool | SetPreservedStatesIncludeMask (UInt32 mask)=0 |
Set the traversal states to be preserved. More... | |
virtual UInt32 | GetPreservedStatesIncludeMask () const =0 |
Get the traversal states to be preserved. More... | |
virtual Bool | SetPreservedStatesExcludeMask (UInt32 mask)=0 |
Set the traversal states to be explicitly not preserved. More... | |
virtual UInt32 | GetPreservedStatesExcludeMask () const =0 |
Get the traversal states to be explicitly not preserved. More... | |
|
pure virtual |
Get the mutable Graph::INode interface.
This method returns a mutable pointer to the node's Graph::INode interface, to be able to query or modify common node properties such as active state, visibility or ID.
|
pure virtual |
Get the constant Graph::INode interface.
This method returns a constant pointer to the node's Graph::INode interface, to be able to query common node properties such as active state, visibility or ID.
Set the traversal states to be preserved.
mask | A bit mask of individual traversal states. See IEnums::TraversalState. |
|
pure virtual |
Get the traversal states to be preserved.
Set the traversal states to be explicitly not preserved.
mask | A bit mask of individual traversal states. See IEnums::TraversalState. |
|
pure virtual |
Get the traversal states to be explicitly not preserved.