Vulkan Schnee 0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
Engine::Assets::Animation Class Reference

Animation clip loaded from glTF animation data. More...

#include <AnimationAsset.h>

Collaboration diagram for Engine::Assets::Animation:

Public Member Functions

 Animation ()=default
float getDuration () const
const std::string & getName () const
const std::vector< Engine::Animation::AnimationChannel > & getChannels () const
void sample (uint32_t channelIndex, float time, glm::vec3 &outTranslation, glm::quat &outRotation, glm::vec3 &outScale) const
 Sample a specific channel at the given time.

Public Attributes

std::string name_
float duration_ = 0.0f
std::vector< Engine::Animation::AnimationChannelchannels_

Detailed Description

Animation clip loaded from glTF animation data.

Contains keyframe tracks for joint transforms. Supports linear, step, and cubic spline interpolation. One AnimationAsset can be shared by multiple entity instances.

Definition at line 49 of file AnimationAsset.h.

Constructor & Destructor Documentation

◆ Animation()

Engine::Assets::Animation::Animation ( )
default

Member Function Documentation

◆ getChannels()

const std::vector< Engine::Animation::AnimationChannel > & Engine::Assets::Animation::getChannels ( ) const
inlinenodiscard

Definition at line 64 of file AnimationAsset.h.

References channels_.

◆ getDuration()

float Engine::Assets::Animation::getDuration ( ) const
inlinenodiscard

Definition at line 54 of file AnimationAsset.h.

References duration_.

◆ getName()

const std::string & Engine::Assets::Animation::getName ( ) const
inlinenodiscard

Definition at line 59 of file AnimationAsset.h.

References name_.

◆ sample()

void Engine::Assets::Animation::sample ( uint32_t channelIndex,
float time,
glm::vec3 & outTranslation,
glm::quat & outRotation,
glm::vec3 & outScale ) const

Sample a specific channel at the given time.

Performs binary search on keyframes and interpolates based on the channel's interpolation type.

Parameters
channelIndexIndex into the channels vector
timePlayback time in seconds
outTranslationOutput translation (only valid for Translation channels)
outRotationOutput rotation (only valid for Rotation channels)
outScaleOutput scale (only valid for Scale channels)

Member Data Documentation

◆ channels_

std::vector<Engine::Animation::AnimationChannel> Engine::Assets::Animation::channels_

Definition at line 93 of file AnimationAsset.h.

Referenced by getChannels().

◆ duration_

float Engine::Assets::Animation::duration_ = 0.0f

Definition at line 91 of file AnimationAsset.h.

Referenced by getDuration().

◆ name_

std::string Engine::Assets::Animation::name_

Definition at line 90 of file AnimationAsset.h.

Referenced by getName().


The documentation for this class was generated from the following file:
  • /home/magerbeton/Documents/gl3-vulkan/Engine/include/Engine/Animation/AnimationAsset.h