37#ifndef ANIMATION_EVALUATOR_H_
38#define ANIMATION_EVALUATOR_H_
41#include <assimp/anim.h>
112 I32 resultingFrameIndex = 0;
113 return transforms(elapsedTime, resultingFrameIndex);
122 I32 resultingFrameIndex = 0;
123 return transforms(elapsedTime, resultingFrameIndex);
vector< BoneTransform > & transforms() noexcept
bool initBuffers(GFXDevice &context)
FrameIndex frameIndexAt(D64 elapsedTimeS) const noexcept
ShaderBuffer_uptr _boneBuffer
GPU buffer to hold bone transforms.
BoneTransform & transforms(const U32 frameIndex)
const BoneTransform & transforms(const U32 frameIndex) const
PROPERTY_RW(D64, ticksPerSecond, 0.0)
static void save(const AnimEvaluator &evaluator, ByteBuffer &dataOut)
U32 frameCount() const noexcept
const vector< BoneTransform > & transforms() const noexcept
vector< AnimationChannel > _channels
vector that holds all bone channels
PROPERTY_RW(bool, playAnimationForward, true)
void evaluate(D64 dt, Bone *skeleton)
PROPERTY_R_IW(D64, duration, 0.0)
vector< BoneTransform > _transforms
Array to return transformations results inside.
PROPERTY_R_IW(string, name, "")
const BoneTransform & transforms(const D64 elapsedTime, I32 &resultingFrameIndex) const
BoneTransform & transforms(const D64 elapsedTime, I32 &resultingFrameIndex)
vector< vec3< U32 > > _lastPositions
BoneTransform & transforms(const D64 elapsedTime)
const BoneTransform & transforms(const D64 elapsedTime) const
ShaderBuffer * boneBuffer() const
Rough around the edges Adapter pattern abstracting the actual rendering API and access to the GPU.
Handle console commands that start with a forward slash.
constexpr U32 to_U32(const T value)
eastl::vector< Type > vector
vector< aiVectorKey > _positionKeys
vector< aiQuatKey > _rotationKeys
vector< aiVectorKey > _scalingKeys