Polyphase Game Engine
Loading...
Searching...
No Matches
TimelineClip.h
Go to the documentation of this file.
1#pragma once
2
3#include "Factory.h"
4#include "Object.h"
5#include "Property.h"
6#include "Stream.h"
8
9#include <string>
10#include <vector>
11
12class Node;
13
14#define DECLARE_CLIP(Class, Parent) \
15 DECLARE_FACTORY(Class, TimelineClip); \
16 DECLARE_OBJECT(Class, Parent); \
17 typedef Parent Super;
18
19#define DEFINE_CLIP(Class) \
20 DEFINE_FACTORY(Class, TimelineClip); \
21 DEFINE_OBJECT(Class);
22
23class TimelineClip : public Object
24{
25public:
26
30
32 virtual ~TimelineClip();
33
34 virtual void SaveStream(Stream& stream);
35 virtual void LoadStream(Stream& stream, uint32_t version);
36
37 virtual void GatherProperties(std::vector<Property>& outProps) override;
38
39 float GetStartTime() const { return mStartTime; }
40 void SetStartTime(float time) { mStartTime = time; }
41
42 float GetDuration() const { return mDuration; }
43 void SetDuration(float duration) { mDuration = duration; }
44
45 float GetEndTime() const { return mStartTime + mDuration; }
46
47 float GetClipInTime() const { return mClipInTime; }
48 void SetClipInTime(float time) { mClipInTime = time; }
49
50 float GetClipOutTime() const { return mClipOutTime; }
51 void SetClipOutTime(float time) { mClipOutTime = time; }
52
53 float GetSpeed() const { return mSpeed; }
54 void SetSpeed(float speed) { mSpeed = speed; }
55
56 bool ContainsTime(float globalTime) const;
57 float GetLocalTime(float globalTime) const;
58 bool OverlapsWith(const TimelineClip* other) const;
59
60 virtual bool SupportsKeyframes() const { return false; }
61 virtual uint32_t GetNumKeyframes() const { return 0; }
62 virtual float GetKeyframeTime(uint32_t index) const { return 0.0f; }
63 virtual void AddKeyframeAtTime(float localTime, Node* targetNode) {}
64 virtual void SetKeyframeTime(uint32_t index, float time) {}
65 virtual void RemoveKeyframe(uint32_t index) {}
66
67protected:
68
69#if EDITOR
70 void GetKeyframeDisplayRange(uint32_t& outStart, uint32_t& outEnd) const;
71#endif
72
73 float mStartTime = 0.0f;
74 float mDuration = 1.0f;
75 float mClipInTime = 0.0f;
76 float mClipOutTime = 0.0f;
77 float mSpeed = 1.0f;
78};
Definition Node.h:67
Definition Object.h:13
Definition Stream.h:21
Definition TimelineClip.h:24
float mClipOutTime
Definition TimelineClip.h:76
virtual bool SupportsKeyframes() const
Definition TimelineClip.h:60
virtual void LoadStream(Stream &stream, uint32_t version)
Definition TimelineClip.cpp:30
bool OverlapsWith(const TimelineClip *other) const
Definition TimelineClip.cpp:77
DECLARE_FACTORY(TimelineClip, TimelineClip)
float GetDuration() const
Definition TimelineClip.h:42
float GetStartTime() const
Definition TimelineClip.h:39
void SetSpeed(float speed)
Definition TimelineClip.h:54
float mDuration
Definition TimelineClip.h:74
bool ContainsTime(float globalTime) const
Definition TimelineClip.cpp:50
float mSpeed
Definition TimelineClip.h:77
DECLARE_FACTORY_MANAGER(TimelineClip)
virtual ~TimelineClip()
Definition TimelineClip.cpp:17
void SetClipOutTime(float time)
Definition TimelineClip.h:51
float GetClipOutTime() const
Definition TimelineClip.h:50
float GetSpeed() const
Definition TimelineClip.h:53
virtual void SetKeyframeTime(uint32_t index, float time)
Definition TimelineClip.h:64
void SetStartTime(float time)
Definition TimelineClip.h:40
virtual void RemoveKeyframe(uint32_t index)
Definition TimelineClip.h:65
virtual void SaveStream(Stream &stream)
Definition TimelineClip.cpp:21
virtual uint32_t GetNumKeyframes() const
Definition TimelineClip.h:61
virtual float GetKeyframeTime(uint32_t index) const
Definition TimelineClip.h:62
TimelineClip()
Definition TimelineClip.cpp:13
float mClipInTime
Definition TimelineClip.h:75
void SetClipInTime(float time)
Definition TimelineClip.h:48
float GetClipInTime() const
Definition TimelineClip.h:47
float GetEndTime() const
Definition TimelineClip.h:45
DECLARE_OBJECT(TimelineClip, Object)
virtual void GatherProperties(std::vector< Property > &outProps) override
Definition TimelineClip.cpp:39
void SetDuration(float duration)
Definition TimelineClip.h:43
virtual void AddKeyframeAtTime(float localTime, Node *targetNode)
Definition TimelineClip.h:63
float mStartTime
Definition TimelineClip.h:73
float GetLocalTime(float globalTime) const
Definition TimelineClip.cpp:55