The tracker used for logic processing traversals. More...
#include "murl_graph_i_process_logic_tracker.h"
Inherited by Murl::Core::GraphProcessLogicTracker.
Public Member Functions | |
virtual Bool | Init ()=0 |
Initialize the tracker. More... | |
virtual Bool | DeInit ()=0 |
Deinitialize the tracker. More... | |
virtual ITracker * | GetTrackerInterface ()=0 |
Get the tracker base class interface. More... | |
virtual Bool | BeginFrame ()=0 |
Begin a traversal frame. More... | |
virtual Bool | EndFrame ()=0 |
End a traversal frame. More... | |
virtual Bool | BeginLogicTick ()=0 |
Begin a traversal logic tick. More... | |
virtual Bool | EndLogicTick ()=0 |
End a traversal logic tick. More... | |
virtual UInt32 | GetCurrentLogicTickNumber () const =0 |
Get the current logic tick number. More... | |
virtual Double | GetCurrentLogicTickTime () const =0 |
Get the current absolute logic tick time. More... | |
virtual Double | GetCurrentLogicTickDuration () const =0 |
Get the current logic tick duration. More... | |
virtual Physics::ISimulator * | GetPhysicsSimulator () const =0 |
Get the physics simulator used to submit physics objects. More... | |
virtual const Resource::ICollection * | GetResourceCollection () const =0 |
Get the engine's main resource collection. More... | |
virtual IHandle * | GetCurrentHandle ()=0 |
Obtain a handle for the current node. More... | |
virtual IHandleInstance * | GetCurrentHandleInstance ()=0 |
Obtain a handle instance for the current node. More... | |
virtual void | SetCurrentAnchor (const IAnchor *anchor, SInt32 slot)=0 |
Bind a transform anchor to a specific slot. More... | |
virtual const IAnchor * | GetCurrentAnchor (SInt32 slot) const =0 |
Get a transform anchor bound to a specific slot. More... | |
virtual void | ClearCurrentAnchors ()=0 |
Clear the current transform anchor binding. | |
virtual void | SaveCurrentAnchors ()=0 |
Save the current transform anchor binding. | |
virtual void | RestoreCurrentAnchors ()=0 |
Restore the previous transform anchor binding. | |
virtual void | SetCurrentSurface (const ISurface *surface, SInt32 slot)=0 |
Bind a collision surface to a specific slot. More... | |
virtual const ISurface * | GetCurrentSurface (SInt32 slot) const =0 |
Get a collision surface bound to a specific slot. More... | |
virtual void | ClearCurrentSurfaces ()=0 |
Clear the current collision surface binding. | |
virtual void | SaveCurrentSurfaces ()=0 |
Save the current collision surface binding. | |
virtual void | RestoreCurrentSurfaces ()=0 |
Restore the previous collision surface binding. | |
virtual void | SetCurrentIsland (const IIsland *island, SInt32 slot)=0 |
Bind a collision island to a specific slot. More... | |
virtual const IIsland * | GetCurrentIsland (SInt32 slot) const =0 |
Get a collision island bound to a specific slot. More... | |
virtual void | ClearCurrentIslands ()=0 |
Clear the current collision island binding. | |
virtual void | SaveCurrentIslands ()=0 |
Save the current collision island binding. | |
virtual void | RestoreCurrentIslands ()=0 |
Restore the previous collision island binding. | |
virtual void | SetCurrentTimeline (const ITimeline *timeline, UInt32 unit)=0 |
Bind a timeline to a specific unit. More... | |
virtual const ITimeline * | GetCurrentTimeline (UInt32 unit) const =0 |
Get a timeline bound to a specific unit. More... | |
virtual void | ClearCurrentTimelines ()=0 |
Clear the current timeline binding. | |
virtual void | SaveCurrentTimelines ()=0 |
Save the current timeline binding. | |
virtual void | RestoreCurrentTimelines ()=0 |
Restore the previous timeline binding. | |
virtual void | SetCurrentSkeleton (const ISkeleton *skeleton)=0 |
Set the current skeletom. More... | |
virtual const ISkeleton * | GetCurrentSkeleton () const =0 |
Get the current skeleton. More... | |
virtual void | ClearCurrentSkeleton ()=0 |
Clear the current skeleton state. | |
virtual void | SaveCurrentSkeleton ()=0 |
Save the current skeleton state. | |
virtual void | RestoreCurrentSkeleton ()=0 |
Restore the previous skeleton state. | |
virtual void | SetCurrentBone (const IBone *bone, UInt32 unit)=0 |
Bind a bone to a specific unit. More... | |
virtual const IBone * | GetCurrentBone (UInt32 unit) const =0 |
Get a bone bound to a specific unit. More... | |
virtual void | ClearCurrentBones ()=0 |
Clear the current bone binding. | |
virtual void | SaveCurrentBones ()=0 |
Save the current bone binding. | |
virtual void | RestoreCurrentBones ()=0 |
Restore the previous bone binding. | |
virtual void | PushWorldTransform (const Matrix &transform)=0 |
Push a world transform matrix to the matrix stack. More... | |
virtual void | PushLocalTransform (const Matrix &transform)=0 |
Push a local transform matrix to the matrix stack. More... | |
virtual void | PopTransform ()=0 |
Pop the topmost transform matrix off the matrix stack. | |
virtual Matrix & | GetRecentWorldTransform () const =0 |
Get the most recent world transform matrix from the matrix stack. More... | |
virtual void | PushWorldScaleFactor (const Vector &scaleFactor)=0 |
Push a world scale factor vector to the scale factor stack. More... | |
virtual void | PushLocalScaleFactor (const Vector &scaleFactor)=0 |
Push a local scale factor vector to the scale factor stack. More... | |
virtual void | PopScaleFactor ()=0 |
Pop the topmost scale factor vector off the scale factor stack. | |
virtual Vector & | GetRecentWorldScaleFactor () const =0 |
Get the most recent world scale factor vector from the scale factor stack. More... | |
virtual void | PushWorldDepthOrder (SInt32 depthOrder)=0 |
Push a world depth order to the depth order stack. More... | |
virtual void | PushLocalDepthOrder (SInt32 depthOrder)=0 |
Push a local depth order to the depth order stack. More... | |
virtual void | PopDepthOrder ()=0 |
Pop the topmost depth order off the depth order stack. | |
virtual SInt32 | GetRecentWorldDepthOrder () const =0 |
Get the most recent world depth order from the depth order stack. More... | |
virtual void | PushReference (IReference *node)=0 |
Push a reference node to the reference stack. More... | |
virtual void | PopReference ()=0 |
Pop the topmost reference node off the reference stack. | |
virtual IReference * | GetRecentReference () const =0 |
Get the most recent reference node from the reference stack. More... | |
virtual void | PushNodeFlags (UInt32 nodeFlags)=0 |
Push the current node flags to the node flag stack. More... | |
virtual void | PopNodeFlags ()=0 |
Pop the topmost node flags off the node flag stack. | |
virtual UInt32 | GetRecentNodeFlags () const =0 |
Get the most recent node flags from the node flag stack. More... | |
virtual void | PushTargetBoundingVolume (IBoundingVolume *boundingVolume)=0 |
Push the current target bounding volume to the BV stack. More... | |
virtual void | PopTargetBoundingVolume ()=0 |
Pop the topmost target bounding volume off the BV stack. | |
virtual IBoundingVolume * | GetRecentTargetBoundingVolume () const =0 |
Get the most recent target bounding volume from the BV stack. More... | |
virtual void | PushNodeToFinishLogic (INode *node)=0 |
Queue up a node to have its FinishLogic() method called after traversal. More... | |
virtual Bool | ApplyCurrentPhysicsTransform () const =0 |
Apply the current world transform in the physics simulator. More... | |
virtual Bool | ApplyCurrentPhysicsIsland (SInt32 islandSlot)=0 |
Apply the current physics island in the simulator. More... | |
virtual Bool | ApplyCurrentPhysicsSurfaces (UInt32 numSlots, SInt32 *surfaceSlots) const =0 |
Apply the current collision surfaces in the physics simulator. More... | |
virtual UInt32 | ProcessCurrentBoundingVolume (IBoundingVolume *boundingVolume)=0 |
Process the current node's bounding volume. More... | |
virtual Bool | WasTraversedInCurrentLogicTick (UInt32 &tickCount) const =0 |
Check if the current node was already traversed in the current logic tick. More... | |
virtual Array< INode * > & | GetNodesToFinish ()=0 |
Get a reference to the array of nodes that need their FinishLogic() method called. More... | |
virtual UInt32 | SetTriggers (UInt32 mask)=0 |
Replace the currently set traversal triggers. More... | |
virtual UInt32 | AddTriggers (UInt32 mask)=0 |
Add given triggers to the currently set traversal triggers. More... | |
virtual UInt32 | RemoveTriggers (UInt32 mask)=0 |
Remove given triggers from the currently set traversal triggers. More... | |
virtual UInt32 | GetResponse (UInt32 mask) const =0 |
Check the traversal response for a given set of triggers. More... | |
Detailed Description
The tracker used for logic processing traversals.
This interface represents a graph state tracker used during Graph::INode::ProcessLogic traversals, as well as the respective methods in Graph::IController, Graph::IGenericNodeTarget and Graph::IGenericResourceTarget.
Member Function Documentation
◆ Init()
|
pure virtual |
Initialize the tracker.
Called by the engine.
- Returns
- true if successful.
◆ DeInit()
|
pure virtual |
Deinitialize the tracker.
Called by the engine.
- Returns
- true if successful.
◆ GetTrackerInterface()
|
pure virtual |
Get the tracker base class interface.
- Returns
- The tracker base class interface.
◆ BeginFrame()
|
pure virtual |
Begin a traversal frame.
Called by the engine.
- Returns
- true if successful.
◆ EndFrame()
|
pure virtual |
End a traversal frame.
Called by the engine.
- Returns
- true if successful.
◆ BeginLogicTick()
|
pure virtual |
Begin a traversal logic tick.
Called by the engine.
- Returns
- true if successful.
◆ EndLogicTick()
|
pure virtual |
End a traversal logic tick.
Called by the engine.
- Returns
- true if successful.
◆ GetCurrentLogicTickNumber()
|
pure virtual |
Get the current logic tick number.
- Returns
- The current logic tick number.
◆ GetCurrentLogicTickTime()
|
pure virtual |
Get the current absolute logic tick time.
- Returns
- The current logic tick time in seconds.
◆ GetCurrentLogicTickDuration()
|
pure virtual |
Get the current logic tick duration.
- Returns
- The current logic tick duration in seconds.
◆ GetPhysicsSimulator()
|
pure virtual |
Get the physics simulator used to submit physics objects.
- Returns
- The physics simulator.
◆ GetResourceCollection()
|
pure virtual |
Get the engine's main resource collection.
- Returns
- The resource collection.
◆ GetCurrentHandle()
|
pure virtual |
Obtain a handle for the current node.
- Returns
- The current node handle.
◆ GetCurrentHandleInstance()
|
pure virtual |
Obtain a handle instance for the current node.
- Returns
- The current node handle instance.
◆ SetCurrentAnchor()
|
pure virtual |
Bind a transform anchor to a specific slot.
- Parameters
-
anchor The anchor to bind. slot The slot to use, from 0 to IEnums::NUM_ANCHOR_SLOTS-1.
◆ GetCurrentAnchor()
|
pure virtual |
Get a transform anchor bound to a specific slot.
- Parameters
-
slot The slot to query, from 0 to IEnums::NUM_ANCHOR_SLOTS-1.
- Returns
- The anchor at the given slot, or null if none is bound.
◆ SetCurrentSurface()
|
pure virtual |
Bind a collision surface to a specific slot.
- Parameters
-
surface The collision surface to bind. slot The slot to use, from 0 to IEnums::NUM_SURFACE_SLOTS-1.
◆ GetCurrentSurface()
|
pure virtual |
Get a collision surface bound to a specific slot.
- Parameters
-
slot The slot to query, from 0 to IEnums::NUM_SURFACE_SLOTS-1.
- Returns
- The collision surface at the given slot, or null if none is bound.
◆ SetCurrentIsland()
|
pure virtual |
Bind a collision island to a specific slot.
- Parameters
-
island The collision island to bind. slot The slot to use, from 0 to IEnums::NUM_ISLAND_SLOTS-1.
◆ GetCurrentIsland()
|
pure virtual |
Get a collision island bound to a specific slot.
- Parameters
-
slot The slot to query, from 0 to IEnums::NUM_ISLAND_SLOTS-1.
- Returns
- The collision island at the given slot, or null if none is bound.
◆ SetCurrentTimeline()
|
pure virtual |
Bind a timeline to a specific unit.
- Parameters
-
timeline The timeline to bind. unit The unit to use, from 0 to IEnums::NUM_TIMELINE_UNITS-1.
◆ GetCurrentTimeline()
|
pure virtual |
Get a timeline bound to a specific unit.
- Parameters
-
unit The unit to query, from 0 to IEnums::NUM_TIMELINE_UNITS-1.
- Returns
- The timeline at the given unit, or null if none is bound.
◆ SetCurrentSkeleton()
|
pure virtual |
Set the current skeletom.
- Parameters
-
skeleton The skeleton.
◆ GetCurrentSkeleton()
|
pure virtual |
Get the current skeleton.
- Returns
- The skeleton.
◆ SetCurrentBone()
|
pure virtual |
Bind a bone to a specific unit.
- Parameters
-
bone The bone to bind. unit The unit to use, from 0 to IEnums::NUM_BONE_UNITS-1.
◆ GetCurrentBone()
|
pure virtual |
Get a bone bound to a specific unit.
- Parameters
-
unit The unit to query, from 0 to IEnums::NUM_BONE_UNITS-1.
- Returns
- The bone at the given unit, or null if none is bound.
◆ PushWorldTransform()
|
pure virtual |
Push a world transform matrix to the matrix stack.
- Parameters
-
transform The world transform.
◆ PushLocalTransform()
|
pure virtual |
Push a local transform matrix to the matrix stack.
- Parameters
-
transform The local transform.
◆ GetRecentWorldTransform()
|
pure virtual |
Get the most recent world transform matrix from the matrix stack.
- Returns
- The (possibly calculated) world transform.
◆ PushWorldScaleFactor()
|
pure virtual |
Push a world scale factor vector to the scale factor stack.
- Parameters
-
scaleFactor The world scale factor.
◆ PushLocalScaleFactor()
|
pure virtual |
Push a local scale factor vector to the scale factor stack.
- Parameters
-
scaleFactor The local scale factor.
◆ GetRecentWorldScaleFactor()
|
pure virtual |
Get the most recent world scale factor vector from the scale factor stack.
- Returns
- The (possibly calculated) world scale factor.
◆ PushWorldDepthOrder()
|
pure virtual |
Push a world depth order to the depth order stack.
- Parameters
-
depthOrder The world depth order.
◆ PushLocalDepthOrder()
|
pure virtual |
Push a local depth order to the depth order stack.
- Parameters
-
depthOrder The local depth order.
◆ GetRecentWorldDepthOrder()
|
pure virtual |
Get the most recent world depth order from the depth order stack.
- Returns
- The (possibly calculated) world depth order.
◆ PushReference()
|
pure virtual |
Push a reference node to the reference stack.
- Parameters
-
node The node to push.
◆ GetRecentReference()
|
pure virtual |
Get the most recent reference node from the reference stack.
- Returns
- The reference node.
◆ PushNodeFlags()
|
pure virtual |
Push the current node flags to the node flag stack.
- Parameters
-
nodeFlags The node flags to push.
◆ GetRecentNodeFlags()
|
pure virtual |
Get the most recent node flags from the node flag stack.
- Returns
- The node flags.
◆ PushTargetBoundingVolume()
|
pure virtual |
Push the current target bounding volume to the BV stack.
- Parameters
-
boundingVolume The bounding volume to push.
◆ GetRecentTargetBoundingVolume()
|
pure virtual |
Get the most recent target bounding volume from the BV stack.
- Returns
- The bounding volume.
◆ PushNodeToFinishLogic()
|
pure virtual |
Queue up a node to have its FinishLogic() method called after traversal.
- Parameters
-
node The node to queue up.
◆ ApplyCurrentPhysicsTransform()
|
pure virtual |
Apply the current world transform in the physics simulator.
- Returns
- true if successful.
◆ ApplyCurrentPhysicsIsland()
|
pure virtual |
Apply the current physics island in the simulator.
- Parameters
-
islandSlot The slot of the bound island to apply.
- Returns
- true if an island is present at the given slot, false otherwise.
◆ ApplyCurrentPhysicsSurfaces()
|
pure virtual |
Apply the current collision surfaces in the physics simulator.
- Parameters
-
numSlots The number of surface slot indices to apply. surfaceSlots An array of slot indices to apply.
- Returns
- true if successful.
◆ ProcessCurrentBoundingVolume()
|
pure virtual |
Process the current node's bounding volume.
- Parameters
-
boundingVolume The node's bounding volume.
- Returns
- The number of bounding volumes processed;
◆ WasTraversedInCurrentLogicTick()
|
pure virtual |
Check if the current node was already traversed in the current logic tick.
- Parameters
-
tickCount The tick count variable to update.
- Returns
- true if the node was previously traversed within the current tick.
◆ GetNodesToFinish()
Get a reference to the array of nodes that need their FinishLogic() method called.
- Returns
- The array of nodes to finish.
◆ SetTriggers()
Replace the currently set traversal triggers.
- Parameters
-
mask A bit mask of individual triggers, from the Graph::INode::ProcessLogicTriggers enumeration.
- Returns
- The previous triggers' bit mask.
◆ AddTriggers()
Add given triggers to the currently set traversal triggers.
- Parameters
-
mask A bit mask of individual triggers, from the Graph::INode::ProcessLogicTriggers enumeration.
- Returns
- The previous triggers' bit mask.
◆ RemoveTriggers()
Remove given triggers from the currently set traversal triggers.
- Parameters
-
mask A bit mask of individual triggers, from the Graph::INode::ProcessLogicTriggers enumeration.
- Returns
- The previous triggers' bit mask.
◆ GetResponse()
Check the traversal response for a given set of triggers.
- Parameters
-
mask A bit mask of individual triggers to query for, from the Graph::INode::ProcessLogicTriggers enumeration.
- Returns
- A bit mask of affected triggers.
The documentation for this interface was generated from the following file:
- murl_graph_i_process_logic_tracker.h