The IBoneState graph node interface. More...

#include "murl_graph_i_bone_state.h"

Inheritance diagram for Murl::Graph::IBoneState:

Public Member Functions

virtual INodeGetNodeInterface ()=0
 Get the mutable Graph::INode interface. More...
 
virtual const INodeGetNodeInterface () const =0
 Get the constant Graph::INode interface. More...
 
virtual IBoneNodeTargetGetBoneNodeTarget ()=0
 Get the mutable Graph::IBoneNodeTarget container. More...
 
virtual const IBoneNodeTargetGetBoneNodeTarget () const =0
 Get the constant Graph::IBoneNodeTarget container. More...
 
- Public Member Functions inherited from Murl::Graph::IStateUnit
virtual Bool SetUnit (UInt32 unit)=0
 Set the unit index to use. More...
 
virtual UInt32 GetUnit () const =0
 Get the unit index to use. More...
 

Detailed Description

The IBoneState graph node interface.

A bone state node is used to assign a given Graph::IBone to a given unit during scene graph traversal. For the purpose of vertex skinning, a renderable geometry such as a Graph::IResourceMeshGeometry node can link to one or more bones by specifying the appropriate number of bone unit indices; during scene graph traversal, the currently active bones at the selected units will be taken to actually deform the geometry.

The correct sequence of creating and using a skeleton for performing vertex skinning is as follows:

  • Create a hierarchical skeleton made up from individual transform and bone nodes, with unique IDs assigned to each bone
  • Activate all bones needed for a specific mesh in the correct bone units, by means of individual IBoneState nodes
  • Render the geometry through e.g. a Graph::IResourceMeshGeometry node (not forgetting to also set needed material/texture states etc.)

Use the interface's GetBoneNodeTarget() method to programmatically set the bone node this state object is supposed to refer to.
Use the base interface's IStateUnit::SetUnit() method to set the actual unit index the referenced bone should be attached to.

See Output-States, Slots und Units for an overview of state handling during scene graph traversal.
See Graph::IBone for defining bones to refer to.

Member Function Documentation

◆ GetNodeInterface() [1/2]

virtual INode* Murl::Graph::IBoneState::GetNodeInterface ( )
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.

Returns
The mutable Graph::INode interface, or null if not available

◆ GetNodeInterface() [2/2]

virtual const INode* Murl::Graph::IBoneState::GetNodeInterface ( ) const
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.

Returns
The constant Graph::INode interface, or null if not available

◆ GetBoneNodeTarget() [1/2]

virtual IBoneNodeTarget* Murl::Graph::IBoneState::GetBoneNodeTarget ( )
pure virtual

Get the mutable Graph::IBoneNodeTarget container.

This method returns a mutable pointer to the node's Graph::IBoneNodeTarget container, which allows to add, remove or query the bone state node's referenced bone node.

Returns
The mutable Graph::IBoneNodeTarget container, or null if not available

◆ GetBoneNodeTarget() [2/2]

virtual const IBoneNodeTarget* Murl::Graph::IBoneState::GetBoneNodeTarget ( ) const
pure virtual

Get the constant Graph::IBoneNodeTarget container.

This method returns a mutable pointer to the node's Graph::IBoneNodeTarget container, which allows to query the bone state node's referenced bone node.

Returns
The constant Graph::IBoneNodeTarget container, or null if not available

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


Copyright © 2011-2024 Spraylight GmbH.