Anim 0.1
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Protected Member Functions | Friends | List of all members
AnimationSystem::Mesh::BlendTree::LinearBlendNode Class Reference

A node with two children that linearly blends the results of each child node together. More...

#include <LinearBlendNode.h>

Inheritance diagram for AnimationSystem::Mesh::BlendTree::LinearBlendNode:
Collaboration diagram for AnimationSystem::Mesh::BlendTree::LinearBlendNode:

Classes

struct  DataBlock
 

Public Types

enum class  ChildNodes { First = 0 , Second = 1 }
 

Public Member Functions

virtual void InvertAnimatorBlend ()
 Swap the blend values of each animator. More...
 
template<typename T >
ValueResult< std::reference_wrapper< T > > CreateOrReplaceFirstChild (string const &name)
 Creates a new node of type T in the tree with the name provided, this will become the first of two children. More...
 
template<typename T >
ValueResult< std::reference_wrapper< T > > CreateOrReplaceSecondChild (string const &name)
 Creates a new node of type T in the tree with the name provided, this will become the second of two children. More...
 
- Public Member Functions inherited from AnimationSystem::Mesh::BlendTree::NodeBase
 NodeBase (NodeBase const &other)=delete
 
NodeBaseoperator= (NodeBase const &other)=delete
 
template<typename T >
ValueResult< std::reference_wrapper< T > > ModifyData () const
 Gets the DataBlock of this node allowing the data to be queried / modified. More...
 

Protected Member Functions

 LinearBlendNode (string const &name, NodeBase const *parent, AnimationBlendTree &animationBlendTree)
 
 LinearBlendNode (string const &name, NodeBase const *parent, AnimationBlendTree &animationBlendTree, std::unique_ptr< DataBlock > data)
 
ValueResult< gef::SkeletonPose > Update (float const deltaTime, vector< gef::SkeletonPose > &&childPoseResults) override
 
- Protected Member Functions inherited from AnimationSystem::Mesh::BlendTree::RegularNode
 RegularNode (string const &name, NodeBase const *parent, AnimationBlendTree &animationBlendTree, unique_ptr< DataBlockBase > dataBlock)
 
virtual ValueResult< gef::SkeletonPose > Update (float deltaTime, vector< gef::SkeletonPose > &&childPoseResults)=0
 
template<typename T >
ValueResult< std::reference_wrapper< T > > CreateAndSetChild (NodeBase &parent, int index, string const &name)
 
virtual PureResult SetChild (int const index, std::unique_ptr< NodeBase > &&node)
 
template<typename T >
ValueResult< std::reference_wrapper< T > > GetChild (int index)
 
- Protected Member Functions inherited from AnimationSystem::Mesh::BlendTree::NodeBase
template<typename T >
T & GetData () const
 Gets the DataBlock of this node.
 
PureResult RegisterSelf ()
 
 NodeBase (string name, NodeBase const *parent, AnimationBlendTree &blendTree, unique_ptr< DataBlockBase > dataBlock)
 

Friends

class NodeFactory
 

Additional Inherited Members

- Public Attributes inherited from AnimationSystem::Mesh::BlendTree::NodeBase
std::string const Name
 
- Static Protected Member Functions inherited from AnimationSystem::Mesh::BlendTree::NodeBase
static AnimatedMesh const & GetMeshObject (AnimationBlendTree const &blendTree)
 
- Protected Attributes inherited from AnimationSystem::Mesh::BlendTree::NodeBase
NodeBase const *const parent_ {}
 
AnimationBlendTreeblend_tree_
 
AnimatedMesh const & mesh_object_ref_
 

Detailed Description

A node with two children that linearly blends the results of each child node together.

Member Function Documentation

◆ CreateOrReplaceFirstChild()

template<typename T >
ValueResult< std::reference_wrapper< T > > AnimationSystem::Mesh::BlendTree::LinearBlendNode::CreateOrReplaceFirstChild ( string const &  name)
inline

Creates a new node of type T in the tree with the name provided, this will become the first of two children.

Template Parameters
TThe type of node being created, T must inherit from BaseNode or it's derivatives

◆ CreateOrReplaceSecondChild()

template<typename T >
ValueResult< std::reference_wrapper< T > > AnimationSystem::Mesh::BlendTree::LinearBlendNode::CreateOrReplaceSecondChild ( string const &  name)
inline

Creates a new node of type T in the tree with the name provided, this will become the second of two children.

Template Parameters
TThe type of node being created, T must inherit from BaseNode or it's derivatives

◆ InvertAnimatorBlend()

virtual void AnimationSystem::Mesh::BlendTree::LinearBlendNode::InvertAnimatorBlend ( )
inlinevirtual

Swap the blend values of each animator.

Reimplemented in AnimationSystem::Mesh::BlendTree::TwoAnimatorsLinearTransitionNode.

◆ Update()

ValueResult< gef::SkeletonPose > AnimationSystem::Mesh::BlendTree::LinearBlendNode::Update ( float const  deltaTime,
vector< gef::SkeletonPose > &&  childPoseResults 
)
inlineoverrideprotectedvirtual

The documentation for this class was generated from the following file: