Polyphase Game Engine
Loading...
Searching...
No Matches
TransformClip.h
Go to the documentation of this file.
1#pragma once
2
4#include "Maths.h"
5
6#include <vector>
7
9{
10 float mTime = 0.0f;
11 glm::vec3 mPosition = glm::vec3(0.0f);
12 glm::quat mRotation = glm::quat(1.0f, 0.0f, 0.0f, 0.0f);
13 glm::vec3 mScale = glm::vec3(1.0f);
15};
16
18{
19public:
20
22
24 virtual ~TransformClip();
25
26 virtual void SaveStream(Stream& stream) override;
27 virtual void LoadStream(Stream& stream, uint32_t version) override;
28 virtual void GatherProperties(std::vector<Property>& outProps) override;
29
30 virtual bool SupportsKeyframes() const override { return true; }
31 virtual uint32_t GetNumKeyframes() const override { return (uint32_t)mKeyframes.size(); }
32 virtual float GetKeyframeTime(uint32_t index) const override { return mKeyframes[index].mTime; }
33 virtual void AddKeyframeAtTime(float localTime, Node* targetNode) override;
34 virtual void SetKeyframeTime(uint32_t index, float time) override;
35 virtual void RemoveKeyframe(uint32_t index) override;
36
37 const TransformKeyframe& GetKeyframe(uint32_t index) const { return mKeyframes[index]; }
38 void AddKeyframe(const TransformKeyframe& kf);
39 void SetKeyframe(uint32_t index, const TransformKeyframe& kf);
40
41 void EvaluateAtLocalTime(float localTime, glm::vec3& outPos, glm::quat& outRot, glm::vec3& outScale) const;
42
43protected:
44
45 std::vector<TransformKeyframe> mKeyframes;
46
47#if EDITOR
48 mutable std::vector<glm::vec3> mEditorRotationEuler;
49#endif
50};
InterpMode
Definition TimelineTypes.h:6
Definition Node.h:67
Definition Stream.h:21
Definition TimelineClip.h:24
Definition TransformClip.h:18
virtual float GetKeyframeTime(uint32_t index) const override
Definition TransformClip.h:32
virtual void AddKeyframeAtTime(float localTime, Node *targetNode) override
Definition TransformClip.cpp:145
void SetKeyframe(uint32_t index, const TransformKeyframe &kf)
Definition TransformClip.cpp:177
virtual ~TransformClip()
Definition TransformClip.cpp:12
std::vector< TransformKeyframe > mKeyframes
Definition TransformClip.h:45
virtual void GatherProperties(std::vector< Property > &outProps) override
Definition TransformClip.cpp:80
virtual void LoadStream(Stream &stream, uint32_t version) override
Definition TransformClip.cpp:32
TransformClip()
Definition TransformClip.cpp:8
void EvaluateAtLocalTime(float localTime, glm::vec3 &outPos, glm::quat &outRot, glm::vec3 &outScale) const
Definition TransformClip.cpp:185
virtual void SaveStream(Stream &stream) override
Definition TransformClip.cpp:16
virtual void RemoveKeyframe(uint32_t index) override
Definition TransformClip.cpp:169
virtual uint32_t GetNumKeyframes() const override
Definition TransformClip.h:31
DECLARE_CLIP(TransformClip, TimelineClip)
const TransformKeyframe & GetKeyframe(uint32_t index) const
Definition TransformClip.h:37
virtual void SetKeyframeTime(uint32_t index, float time) override
Definition TransformClip.cpp:161
void AddKeyframe(const TransformKeyframe &kf)
Definition TransformClip.cpp:125
virtual bool SupportsKeyframes() const override
Definition TransformClip.h:30
Definition TransformClip.h:9
float mTime
Definition TransformClip.h:10
InterpMode mInterpMode
Definition TransformClip.h:14
glm::vec3 mScale
Definition TransformClip.h:13
glm::quat mRotation
Definition TransformClip.h:12
glm::vec3 mPosition
Definition TransformClip.h:11