Polyphase Game Engine
Loading...
Searching...
No Matches
TransformAnimationAsset.h
Go to the documentation of this file.
1#pragma once
2
3#include "Asset.h"
4#include "Factory.h"
6
7#include <vector>
8
10{
11public:
12
14
17
18 virtual void LoadStream(Stream& stream, Platform platform) override;
19 virtual void SaveStream(Stream& stream, Platform platform) override;
20 virtual void Create() override;
21 virtual void Destroy() override;
22
23 virtual void GatherProperties(std::vector<Property>& outProps) override;
24 virtual glm::vec4 GetTypeColor() override;
25 virtual const char* GetTypeName() override;
26
27 TransformKeyframe Sample(float time) const;
28
29 size_t GetKeyframeCount() const { return mKeyframes.size(); }
30 const TransformKeyframe& GetKeyframe(size_t i) const { return mKeyframes[i]; }
31 const std::vector<TransformKeyframe>& GetKeyframes() const { return mKeyframes; }
32 std::vector<TransformKeyframe>& GetKeyframesMutable() { return mKeyframes; }
33
34 void SetKeyframes(const std::vector<TransformKeyframe>& keyframes);
35 void AddKeyframe(const TransformKeyframe& kf);
36 void RemoveKeyframe(size_t index);
37 void ClearKeyframes();
38
39 float GetDuration() const { return mDuration; }
40 void SetDuration(float duration) { mDuration = duration; }
41
42 bool IsLooping() const { return mLoop; }
43 void SetLooping(bool loop) { mLoop = loop; }
44
45 float GetPlayRate() const { return mPlayRate; }
46 void SetPlayRate(float rate) { mPlayRate = rate; }
47
48protected:
49
50 std::vector<TransformKeyframe> mKeyframes;
51 float mDuration = 1.0f;
52 bool mLoop = false;
53 float mPlayRate = 1.0f;
54};
Platform
Definition EngineTypes.h:31
Definition Asset.h:119
Definition Stream.h:21
Definition TransformAnimationAsset.h:10
TransformKeyframe Sample(float time) const
Definition TransformAnimationAsset.cpp:91
void SetPlayRate(float rate)
Definition TransformAnimationAsset.h:46
float mPlayRate
Definition TransformAnimationAsset.h:53
std::vector< TransformKeyframe > mKeyframes
Definition TransformAnimationAsset.h:50
virtual void Destroy() override
Definition TransformAnimationAsset.cpp:65
virtual glm::vec4 GetTypeColor() override
Definition TransformAnimationAsset.cpp:81
void ClearKeyframes()
Definition TransformAnimationAsset.cpp:157
DECLARE_ASSET(TransformAnimationAsset, Asset)
bool IsLooping() const
Definition TransformAnimationAsset.h:42
float GetDuration() const
Definition TransformAnimationAsset.h:39
const TransformKeyframe & GetKeyframe(size_t i) const
Definition TransformAnimationAsset.h:30
void RemoveKeyframe(size_t index)
Definition TransformAnimationAsset.cpp:149
std::vector< TransformKeyframe > & GetKeyframesMutable()
Definition TransformAnimationAsset.h:32
TransformAnimationAsset()
Definition TransformAnimationAsset.cpp:8
void SetDuration(float duration)
Definition TransformAnimationAsset.h:40
void AddKeyframe(const TransformKeyframe &kf)
Definition TransformAnimationAsset.cpp:135
bool mLoop
Definition TransformAnimationAsset.h:52
const std::vector< TransformKeyframe > & GetKeyframes() const
Definition TransformAnimationAsset.h:31
virtual void LoadStream(Stream &stream, Platform platform) override
Definition TransformAnimationAsset.cpp:17
void SetKeyframes(const std::vector< TransformKeyframe > &keyframes)
Definition TransformAnimationAsset.cpp:130
virtual void SaveStream(Stream &stream, Platform platform) override
Definition TransformAnimationAsset.cpp:39
size_t GetKeyframeCount() const
Definition TransformAnimationAsset.h:29
void SetLooping(bool loop)
Definition TransformAnimationAsset.h:43
float mDuration
Definition TransformAnimationAsset.h:51
virtual const char * GetTypeName() override
Definition TransformAnimationAsset.cpp:86
virtual void GatherProperties(std::vector< Property > &outProps) override
Definition TransformAnimationAsset.cpp:71
~TransformAnimationAsset()
Definition TransformAnimationAsset.cpp:13
virtual void Create() override
Definition TransformAnimationAsset.cpp:60
float GetPlayRate() const
Definition TransformAnimationAsset.h:45
Definition TimelineTypes.h:18