Divide Framework 0.1
A free and open-source 3D Framework under heavy development
Loading...
Searching...
No Matches
Divide::AnimEvaluator Class Reference

#include <AnimationEvaluator.h>

Classes

struct  FrameIndex
 

Public Member Functions

 AnimEvaluator ()=default
 
 AnimEvaluator (const aiAnimation *pAnim, U32 idx) noexcept
 
void evaluate (D64 dt, Bone *skeleton)
 
FrameIndex frameIndexAt (D64 elapsedTimeS) const noexcept
 
U32 frameCount () const noexcept
 
vector< BoneTransform > & transforms () noexcept
 
const vector< BoneTransform > & transforms () const noexcept
 
BoneTransformtransforms (const U32 frameIndex)
 
const BoneTransformtransforms (const U32 frameIndex) const
 
BoneTransformtransforms (const D64 elapsedTime, I32 &resultingFrameIndex)
 
BoneTransformtransforms (const D64 elapsedTime)
 
const BoneTransformtransforms (const D64 elapsedTime, I32 &resultingFrameIndex) const
 
const BoneTransformtransforms (const D64 elapsedTime) const
 
bool initBuffers (GFXDevice &context)
 
 PROPERTY_RW (D64, ticksPerSecond, 0.0)
 
 PROPERTY_RW (bool, playAnimationForward, true)
 
 PROPERTY_R_IW (D64, duration, 0.0)
 
 PROPERTY_R_IW (string, name, "")
 
ShaderBufferboneBuffer () const
 

Static Public Member Functions

static void save (const AnimEvaluator &evaluator, ByteBuffer &dataOut)
 
static void load (AnimEvaluator &evaluator, ByteBuffer &dataIn)
 

Protected Attributes

vector< BoneTransform_transforms
 Array to return transformations results inside.
 
vector< vec3< U32 > > _lastPositions
 
vector< AnimationChannel_channels
 vector that holds all bone channels
 
ShaderBuffer_uptr _boneBuffer = nullptr
 GPU buffer to hold bone transforms.
 
D64 _lastTime = 0.0
 

Detailed Description

Definition at line 73 of file AnimationEvaluator.h.

Constructor & Destructor Documentation

◆ AnimEvaluator() [1/2]

Divide::AnimEvaluator::AnimEvaluator ( )
default

◆ AnimEvaluator() [2/2]

Divide::AnimEvaluator::AnimEvaluator ( const aiAnimation *  pAnim,
U32  idx 
)
explicitnoexcept

Definition at line 18 of file AnimationEvaluator.cpp.

Member Function Documentation

◆ boneBuffer()

ShaderBuffer * Divide::AnimEvaluator::boneBuffer ( ) const
inline

Definition at line 136 of file AnimationEvaluator.h.

◆ evaluate()

void Divide::AnimEvaluator::evaluate ( D64  dt,
Bone skeleton 
)

Definition at line 130 of file AnimationEvaluator.cpp.

◆ frameCount()

U32 Divide::AnimEvaluator::frameCount ( ) const
inlinenoexcept

Definition at line 90 of file AnimationEvaluator.h.

◆ frameIndexAt()

AnimEvaluator::FrameIndex Divide::AnimEvaluator::frameIndexAt ( D64  elapsedTimeS) const
noexcept

Definition at line 96 of file AnimationEvaluator.cpp.

◆ initBuffers()

bool Divide::AnimEvaluator::initBuffers ( GFXDevice context)

Definition at line 57 of file AnimationEvaluator.cpp.

◆ load()

void Divide::AnimEvaluator::load ( AnimEvaluator evaluator,
ByteBuffer dataIn 
)
static

Definition at line 71 of file SceneAnimatorFileIO.cpp.

◆ PROPERTY_R_IW() [1/2]

Divide::AnimEvaluator::PROPERTY_R_IW ( D64  ,
duration  ,
0.  0 
)

◆ PROPERTY_R_IW() [2/2]

Divide::AnimEvaluator::PROPERTY_R_IW ( string  ,
name  ,
""   
)

◆ PROPERTY_RW() [1/2]

Divide::AnimEvaluator::PROPERTY_RW ( bool  ,
playAnimationForward  ,
true   
)

◆ PROPERTY_RW() [2/2]

Divide::AnimEvaluator::PROPERTY_RW ( D64  ,
ticksPerSecond  ,
0.  0 
)

◆ save()

void Divide::AnimEvaluator::save ( const AnimEvaluator evaluator,
ByteBuffer dataOut 
)
static

Definition at line 13 of file SceneAnimatorFileIO.cpp.

◆ transforms() [1/8]

const vector< BoneTransform > & Divide::AnimEvaluator::transforms ( ) const
inlinenoexcept

Definition at line 94 of file AnimationEvaluator.h.

◆ transforms() [2/8]

vector< BoneTransform > & Divide::AnimEvaluator::transforms ( )
inlinenoexcept

Definition at line 92 of file AnimationEvaluator.h.

◆ transforms() [3/8]

BoneTransform & Divide::AnimEvaluator::transforms ( const D64  elapsedTime)
inline

Definition at line 111 of file AnimationEvaluator.h.

◆ transforms() [4/8]

const BoneTransform & Divide::AnimEvaluator::transforms ( const D64  elapsedTime) const
inline

Definition at line 121 of file AnimationEvaluator.h.

◆ transforms() [5/8]

BoneTransform & Divide::AnimEvaluator::transforms ( const D64  elapsedTime,
I32 resultingFrameIndex 
)
inline

Definition at line 106 of file AnimationEvaluator.h.

◆ transforms() [6/8]

const BoneTransform & Divide::AnimEvaluator::transforms ( const D64  elapsedTime,
I32 resultingFrameIndex 
) const
inline

Definition at line 116 of file AnimationEvaluator.h.

◆ transforms() [7/8]

BoneTransform & Divide::AnimEvaluator::transforms ( const U32  frameIndex)
inline

Definition at line 96 of file AnimationEvaluator.h.

◆ transforms() [8/8]

const BoneTransform & Divide::AnimEvaluator::transforms ( const U32  frameIndex) const
inline

Definition at line 101 of file AnimationEvaluator.h.

Member Data Documentation

◆ _boneBuffer

ShaderBuffer_uptr Divide::AnimEvaluator::_boneBuffer = nullptr
protected

GPU buffer to hold bone transforms.

Definition at line 145 of file AnimationEvaluator.h.

◆ _channels

vector<AnimationChannel> Divide::AnimEvaluator::_channels
protected

vector that holds all bone channels

Definition at line 143 of file AnimationEvaluator.h.

◆ _lastPositions

vector<vec3<U32> > Divide::AnimEvaluator::_lastPositions
protected

Definition at line 141 of file AnimationEvaluator.h.

◆ _lastTime

D64 Divide::AnimEvaluator::_lastTime = 0.0
protected

Definition at line 146 of file AnimationEvaluator.h.

◆ _transforms

vector<BoneTransform> Divide::AnimEvaluator::_transforms
protected

Array to return transformations results inside.

Definition at line 140 of file AnimationEvaluator.h.


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