Murl::Graph::IProcessInputTracker Interface Referenceabstract

The tracker used for input processing traversals. More...

#include "murl_graph_i_process_input_tracker.h"

Inherited by Murl::Core::GraphProcessInputTracker.

Public Member Functions

virtual Bool Init ()=0
 Initialize the tracker. More...
 
virtual Bool DeInit ()=0
 Deinitialize the tracker. More...
 
virtual ITrackerGetTrackerInterface ()=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 Input::ITouchableHandlerGetTouchableHandler () const =0
 Get the input touchable handler used to submit input objects. More...
 
virtual const Resource::ICollectionGetResourceCollection () const =0
 Get the engine's main resource collection. More...
 
virtual IHandleGetCurrentHandle ()=0
 Obtain a handle for the current node. More...
 
virtual IHandleInstanceGetCurrentHandleInstance ()=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 IAnchorGetCurrentAnchor (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 SetCurrentListener (const IListener *listener, SInt32 slot)=0
 Bind a listener to a specific slot. More...
 
virtual const IListenerGetCurrentListener (SInt32 slot) const =0
 Get a listener bound to a specific slot. More...
 
virtual void ClearCurrentListeners ()=0
 Clear the current listener binding.
 
virtual void SaveCurrentListeners ()=0
 Save the current listener binding.
 
virtual void RestoreCurrentListeners ()=0
 Restore the previous listener binding.
 
virtual void SetCurrentCamera (const ICamera *camera, SInt32 slot)=0
 Bind a camera to a specific slot. More...
 
virtual const ICameraGetCurrentCamera (SInt32 slot) const =0
 Get a camera bound to a specific slot. More...
 
virtual void ClearCurrentCameras ()=0
 Clear the current camera binding.
 
virtual void SaveCurrentCameras ()=0
 Save the current camera binding.
 
virtual void RestoreCurrentCameras ()=0
 Restore the previous camera binding.
 
virtual void SetCurrentLayer (UInt32 index)=0
 Set the current input layer. More...
 
virtual UInt32 GetCurrentLayer () const =0
 Get the current input layer. More...
 
virtual void ClearCurrentLayer ()=0
 Clear the current input layer state.
 
virtual void SaveCurrentLayer ()=0
 Save the current input layer state.
 
virtual void RestoreCurrentLayer ()=0
 Restore the previous input layer state.
 
virtual void SetCurrentSkeleton (const ISkeleton *skeleton)=0
 Set the current skeletom. More...
 
virtual const ISkeletonGetCurrentSkeleton () 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 IBoneGetCurrentBone (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 MatrixGetRecentWorldTransform () 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 VectorGetRecentWorldScaleFactor () 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 IReferenceGetRecentReference () 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 IBoundingVolumeGetRecentTargetBoundingVolume () const =0
 Get the most recent target bounding volume from the BV stack. More...
 
virtual void PushNodeToFinishInput (INode *node)=0
 Queue up a node to have its FinishInput() method called after traversal. More...
 
virtual Bool ApplyCurrentInputTransform () const =0
 Apply the current world transform in the touchable handler. More...
 
virtual Bool ApplyCurrentInputProjection (SInt32 slot)=0
 Apply the current projection in the touchable handler. More...
 
virtual Bool ApplyCurrentLayer ()=0
 Apply the current input layer in the touchable handler. 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 FinishInput() 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 input processing traversals.

This interface represents a graph state tracker used during Graph::INode::ProcessInput traversals, as well as the respective methods in Graph::IGenericNodeTarget and Graph::IGenericResourceTarget.

Member Function Documentation

◆ Init()

virtual Bool Murl::Graph::IProcessInputTracker::Init ( )
pure virtual

Initialize the tracker.

Called by the engine.

Returns
true if successful.

◆ DeInit()

virtual Bool Murl::Graph::IProcessInputTracker::DeInit ( )
pure virtual

Deinitialize the tracker.

Called by the engine.

Returns
true if successful.

◆ GetTrackerInterface()

virtual ITracker* Murl::Graph::IProcessInputTracker::GetTrackerInterface ( )
pure virtual

Get the tracker base class interface.

Returns
The tracker base class interface.

◆ BeginFrame()

virtual Bool Murl::Graph::IProcessInputTracker::BeginFrame ( )
pure virtual

Begin a traversal frame.

Called by the engine.

Returns
true if successful.

◆ EndFrame()

virtual Bool Murl::Graph::IProcessInputTracker::EndFrame ( )
pure virtual

End a traversal frame.

Called by the engine.

Returns
true if successful.

◆ BeginLogicTick()

virtual Bool Murl::Graph::IProcessInputTracker::BeginLogicTick ( )
pure virtual

Begin a traversal logic tick.

Called by the engine.

Returns
true if successful.

◆ EndLogicTick()

virtual Bool Murl::Graph::IProcessInputTracker::EndLogicTick ( )
pure virtual

End a traversal logic tick.

Called by the engine.

Returns
true if successful.

◆ GetCurrentLogicTickNumber()

virtual UInt32 Murl::Graph::IProcessInputTracker::GetCurrentLogicTickNumber ( ) const
pure virtual

Get the current logic tick number.

Returns
The current logic tick number.

◆ GetCurrentLogicTickTime()

virtual Double Murl::Graph::IProcessInputTracker::GetCurrentLogicTickTime ( ) const
pure virtual

Get the current absolute logic tick time.

Returns
The current logic tick time in seconds.

◆ GetCurrentLogicTickDuration()

virtual Double Murl::Graph::IProcessInputTracker::GetCurrentLogicTickDuration ( ) const
pure virtual

Get the current logic tick duration.

Returns
The current logic tick duration in seconds.

◆ GetTouchableHandler()

virtual Input::ITouchableHandler* Murl::Graph::IProcessInputTracker::GetTouchableHandler ( ) const
pure virtual

Get the input touchable handler used to submit input objects.

Returns
The input touchable handler.

◆ GetResourceCollection()

virtual const Resource::ICollection* Murl::Graph::IProcessInputTracker::GetResourceCollection ( ) const
pure virtual

Get the engine's main resource collection.

Returns
The resource collection.

◆ GetCurrentHandle()

virtual IHandle* Murl::Graph::IProcessInputTracker::GetCurrentHandle ( )
pure virtual

Obtain a handle for the current node.

Returns
The current node handle.

◆ GetCurrentHandleInstance()

virtual IHandleInstance* Murl::Graph::IProcessInputTracker::GetCurrentHandleInstance ( )
pure virtual

Obtain a handle instance for the current node.

Returns
The current node handle instance.

◆ SetCurrentAnchor()

virtual void Murl::Graph::IProcessInputTracker::SetCurrentAnchor ( const IAnchor anchor,
SInt32  slot 
)
pure virtual

Bind a transform anchor to a specific slot.

Parameters
anchorThe anchor to bind.
slotThe slot to use, from 0 to IEnums::NUM_ANCHOR_SLOTS-1.

◆ GetCurrentAnchor()

virtual const IAnchor* Murl::Graph::IProcessInputTracker::GetCurrentAnchor ( SInt32  slot) const
pure virtual

Get a transform anchor bound to a specific slot.

Parameters
slotThe slot to query, from 0 to IEnums::NUM_ANCHOR_SLOTS-1.
Returns
The anchor at the given slot, or null if none is bound.

◆ SetCurrentListener()

virtual void Murl::Graph::IProcessInputTracker::SetCurrentListener ( const IListener listener,
SInt32  slot 
)
pure virtual

Bind a listener to a specific slot.

Parameters
listenerThe listener to bind.
slotThe slot to use. Currently only slot 0 is allowed.

◆ GetCurrentListener()

virtual const IListener* Murl::Graph::IProcessInputTracker::GetCurrentListener ( SInt32  slot) const
pure virtual

Get a listener bound to a specific slot.

Parameters
slotThe slot to query. Currently only slot 0 is allowed.
Returns
The listener at the given slot, or null if none is bound.

◆ SetCurrentCamera()

virtual void Murl::Graph::IProcessInputTracker::SetCurrentCamera ( const ICamera camera,
SInt32  slot 
)
pure virtual

Bind a camera to a specific slot.

Parameters
cameraThe camera to bind.
slotThe slot to use. Currently only slot 0 is allowed.

◆ GetCurrentCamera()

virtual const ICamera* Murl::Graph::IProcessInputTracker::GetCurrentCamera ( SInt32  slot) const
pure virtual

Get a camera bound to a specific slot.

Parameters
slotThe slot to query. Currently only slot 0 is allowed.
Returns
The camera at the given slot, or null if none is bound.

◆ SetCurrentLayer()

virtual void Murl::Graph::IProcessInputTracker::SetCurrentLayer ( UInt32  index)
pure virtual

Set the current input layer.

Parameters
indexThe layer index.

◆ GetCurrentLayer()

virtual UInt32 Murl::Graph::IProcessInputTracker::GetCurrentLayer ( ) const
pure virtual

Get the current input layer.

Returns
The layer index.

◆ SetCurrentSkeleton()

virtual void Murl::Graph::IProcessInputTracker::SetCurrentSkeleton ( const ISkeleton skeleton)
pure virtual

Set the current skeletom.

Parameters
skeletonThe skeleton.

◆ GetCurrentSkeleton()

virtual const ISkeleton* Murl::Graph::IProcessInputTracker::GetCurrentSkeleton ( ) const
pure virtual

Get the current skeleton.

Returns
The skeleton.

◆ SetCurrentBone()

virtual void Murl::Graph::IProcessInputTracker::SetCurrentBone ( const IBone bone,
UInt32  unit 
)
pure virtual

Bind a bone to a specific unit.

Parameters
boneThe bone to bind.
unitThe unit to use, from 0 to IEnums::NUM_BONE_UNITS-1.

◆ GetCurrentBone()

virtual const IBone* Murl::Graph::IProcessInputTracker::GetCurrentBone ( UInt32  unit) const
pure virtual

Get a bone bound to a specific unit.

Parameters
unitThe 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()

virtual void Murl::Graph::IProcessInputTracker::PushWorldTransform ( const Matrix transform)
pure virtual

Push a world transform matrix to the matrix stack.

Parameters
transformThe world transform.

◆ PushLocalTransform()

virtual void Murl::Graph::IProcessInputTracker::PushLocalTransform ( const Matrix transform)
pure virtual

Push a local transform matrix to the matrix stack.

Parameters
transformThe local transform.

◆ GetRecentWorldTransform()

virtual Matrix& Murl::Graph::IProcessInputTracker::GetRecentWorldTransform ( ) const
pure virtual

Get the most recent world transform matrix from the matrix stack.

Returns
The (possibly calculated) world transform.

◆ PushWorldScaleFactor()

virtual void Murl::Graph::IProcessInputTracker::PushWorldScaleFactor ( const Vector scaleFactor)
pure virtual

Push a world scale factor vector to the scale factor stack.

Parameters
scaleFactorThe world scale factor.

◆ PushLocalScaleFactor()

virtual void Murl::Graph::IProcessInputTracker::PushLocalScaleFactor ( const Vector scaleFactor)
pure virtual

Push a local scale factor vector to the scale factor stack.

Parameters
scaleFactorThe local scale factor.

◆ GetRecentWorldScaleFactor()

virtual Vector& Murl::Graph::IProcessInputTracker::GetRecentWorldScaleFactor ( ) const
pure virtual

Get the most recent world scale factor vector from the scale factor stack.

Returns
The (possibly calculated) world scale factor.

◆ PushWorldDepthOrder()

virtual void Murl::Graph::IProcessInputTracker::PushWorldDepthOrder ( SInt32  depthOrder)
pure virtual

Push a world depth order to the depth order stack.

Parameters
depthOrderThe world depth order.

◆ PushLocalDepthOrder()

virtual void Murl::Graph::IProcessInputTracker::PushLocalDepthOrder ( SInt32  depthOrder)
pure virtual

Push a local depth order to the depth order stack.

Parameters
depthOrderThe local depth order.

◆ GetRecentWorldDepthOrder()

virtual SInt32 Murl::Graph::IProcessInputTracker::GetRecentWorldDepthOrder ( ) const
pure virtual

Get the most recent world depth order from the depth order stack.

Returns
The (possibly calculated) world depth order.

◆ PushReference()

virtual void Murl::Graph::IProcessInputTracker::PushReference ( IReference node)
pure virtual

Push a reference node to the reference stack.

Parameters
nodeThe node to push.

◆ GetRecentReference()

virtual IReference* Murl::Graph::IProcessInputTracker::GetRecentReference ( ) const
pure virtual

Get the most recent reference node from the reference stack.

Returns
The reference node.

◆ PushNodeFlags()

virtual void Murl::Graph::IProcessInputTracker::PushNodeFlags ( UInt32  nodeFlags)
pure virtual

Push the current node flags to the node flag stack.

Parameters
nodeFlagsThe node flags to push.

◆ GetRecentNodeFlags()

virtual UInt32 Murl::Graph::IProcessInputTracker::GetRecentNodeFlags ( ) const
pure virtual

Get the most recent node flags from the node flag stack.

Returns
The node flags.

◆ PushTargetBoundingVolume()

virtual void Murl::Graph::IProcessInputTracker::PushTargetBoundingVolume ( IBoundingVolume boundingVolume)
pure virtual

Push the current target bounding volume to the BV stack.

Parameters
boundingVolumeThe bounding volume to push.

◆ GetRecentTargetBoundingVolume()

virtual IBoundingVolume* Murl::Graph::IProcessInputTracker::GetRecentTargetBoundingVolume ( ) const
pure virtual

Get the most recent target bounding volume from the BV stack.

Returns
The bounding volume.

◆ PushNodeToFinishInput()

virtual void Murl::Graph::IProcessInputTracker::PushNodeToFinishInput ( INode node)
pure virtual

Queue up a node to have its FinishInput() method called after traversal.

Parameters
nodeThe node to queue up.

◆ ApplyCurrentInputTransform()

virtual Bool Murl::Graph::IProcessInputTracker::ApplyCurrentInputTransform ( ) const
pure virtual

Apply the current world transform in the touchable handler.

Returns
true if successful.

◆ ApplyCurrentInputProjection()

virtual Bool Murl::Graph::IProcessInputTracker::ApplyCurrentInputProjection ( SInt32  slot)
pure virtual

Apply the current projection in the touchable handler.

Parameters
slotThe camera slot to use. Currently only slot 0 is allowed.
Returns
true if a camera is present at the given slot, false otherwise.

◆ ApplyCurrentLayer()

virtual Bool Murl::Graph::IProcessInputTracker::ApplyCurrentLayer ( )
pure virtual

Apply the current input layer in the touchable handler.

Returns
true if successful.

◆ ProcessCurrentBoundingVolume()

virtual UInt32 Murl::Graph::IProcessInputTracker::ProcessCurrentBoundingVolume ( IBoundingVolume boundingVolume)
pure virtual

Process the current node's bounding volume.

Parameters
boundingVolumeThe node's bounding volume.
Returns
The number of bounding volumes processed;

◆ WasTraversedInCurrentLogicTick()

virtual Bool Murl::Graph::IProcessInputTracker::WasTraversedInCurrentLogicTick ( UInt32 tickCount) const
pure virtual

Check if the current node was already traversed in the current logic tick.

Parameters
tickCountThe tick count variable to update.
Returns
true if the node was previously traversed within the current tick.

◆ GetNodesToFinish()

virtual Array<INode*>& Murl::Graph::IProcessInputTracker::GetNodesToFinish ( )
pure virtual

Get a reference to the array of nodes that need their FinishInput() method called.

Returns
The array of nodes to finish.

◆ SetTriggers()

virtual UInt32 Murl::Graph::IProcessInputTracker::SetTriggers ( UInt32  mask)
pure virtual

Replace the currently set traversal triggers.

Parameters
maskA bit mask of individual triggers, from the Graph::INode::ProcessInputTriggers enumeration.
Returns
The previous triggers' bit mask.

◆ AddTriggers()

virtual UInt32 Murl::Graph::IProcessInputTracker::AddTriggers ( UInt32  mask)
pure virtual

Add given triggers to the currently set traversal triggers.

Parameters
maskA bit mask of individual triggers, from the Graph::INode::ProcessInputTriggers enumeration.
Returns
The previous triggers' bit mask.

◆ RemoveTriggers()

virtual UInt32 Murl::Graph::IProcessInputTracker::RemoveTriggers ( UInt32  mask)
pure virtual

Remove given triggers from the currently set traversal triggers.

Parameters
maskA bit mask of individual triggers, from the Graph::INode::ProcessInputTriggers enumeration.
Returns
The previous triggers' bit mask.

◆ GetResponse()

virtual UInt32 Murl::Graph::IProcessInputTracker::GetResponse ( UInt32  mask) const
pure virtual

Check the traversal response for a given set of triggers.

Parameters
maskA bit mask of individual triggers to query for, from the Graph::INode::ProcessInputTriggers enumeration.
Returns
A bit mask of affected triggers.

The documentation for this interface was generated from the following file:
  • murl_graph_i_process_input_tracker.h


Copyright © 2011-2024 Spraylight GmbH.