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>

Inheritance diagram for Engine::Assets::Animation:
Collaboration diagram for Engine::Assets::Animation:

Public Member Functions

 Animation ()
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 Member Functions inherited from Asset::AssetBase
 AssetBase (bool initializeDefaultEntity=false)
virtual ~AssetBase ()
CpuLoadingState getLoadingState ()
 Gets the loading state of this asset.
void requestLoad ()
 If this asset is in the UNLOADED state it will get added to the assets to load.
virtual void unload ()
 Base function for unloading the ecs data.
entt::entity getEntity () const
 Getter for data.

Public Attributes

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

Additional Inherited Members

Protected Member Functions inherited from Asset::AssetBase
virtual void updateLoadingState ()
Protected Attributes inherited from Asset::AssetBase
CpuLoadingState loadingState = UNLOADED
entt::registry & mainRegistry
entt::entity data

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 56 of file AnimationAsset.h.

Constructor & Destructor Documentation

◆ Animation()

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

Member Function Documentation

◆ getChannels()

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

Definition at line 71 of file AnimationAsset.h.

References channels_.

◆ getDuration()

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

Definition at line 61 of file AnimationAsset.h.

References duration_.

◆ getName()

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

Definition at line 66 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 100 of file AnimationAsset.h.

Referenced by getChannels().

◆ duration_

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

Definition at line 98 of file AnimationAsset.h.

Referenced by getDuration().

◆ name_

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

Definition at line 97 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