Polyphase Game Engine
Loading...
Searching...
No Matches
Timeline.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
9class Timeline : public Asset
10{
11public:
12
14
15 Timeline();
16 ~Timeline();
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 uint32_t GetNumTracks() const { return (uint32_t)mTracks.size(); }
28 TimelineTrack* GetTrack(uint32_t index) const;
29 const std::vector<TimelineTrack*>& GetTracks() const { return mTracks; }
30
31 TimelineTrack* AddTrack(TypeId trackType);
32 void RemoveTrack(uint32_t index);
33 void MoveTrack(uint32_t from, uint32_t to);
34 void InsertTrack(TimelineTrack* track, uint32_t index);
35
36 float GetDuration() const { return mDuration; }
37 void SetDuration(float duration) { mDuration = duration; }
38
39 float GetPlayRate() const { return mPlayRate; }
40 void SetPlayRate(float rate) { mPlayRate = rate; }
41
42 bool IsLooping() const { return mLoop; }
43 void SetLooping(bool loop) { mLoop = loop; }
44
45 bool IsAutoPlay() const { return mAutoPlay; }
46 void SetAutoPlay(bool autoPlay) { mAutoPlay = autoPlay; }
47
48protected:
49
50 std::vector<TimelineTrack*> mTracks;
51 float mDuration = 5.0f;
52 float mPlayRate = 1.0f;
53 bool mLoop = false;
54 bool mAutoPlay = false;
55};
Platform
Definition EngineTypes.h:31
uint32_t TypeId
Definition EngineTypes.h:64
Definition Asset.h:113
Definition Stream.h:21
Definition TimelineTrack.h:25
Definition Timeline.h:10
void SetPlayRate(float rate)
Definition Timeline.h:40
void MoveTrack(uint32_t from, uint32_t to)
Definition Timeline.cpp:125
void SetDuration(float duration)
Definition Timeline.h:37
float mPlayRate
Definition Timeline.h:52
~Timeline()
Definition Timeline.cpp:13
virtual void GatherProperties(std::vector< Property > &outProps) override
Definition Timeline.cpp:77
bool IsLooping() const
Definition Timeline.h:42
TimelineTrack * AddTrack(TypeId trackType)
Definition Timeline.cpp:106
bool mLoop
Definition Timeline.h:53
bool mAutoPlay
Definition Timeline.h:54
virtual void Destroy() override
Definition Timeline.cpp:66
float GetDuration() const
Definition Timeline.h:36
uint32_t GetNumTracks() const
Definition Timeline.h:27
bool IsAutoPlay() const
Definition Timeline.h:45
virtual glm::vec4 GetTypeColor() override
Definition Timeline.cpp:87
void RemoveTrack(uint32_t index)
Definition Timeline.cpp:116
TimelineTrack * GetTrack(uint32_t index) const
Definition Timeline.cpp:97
const std::vector< TimelineTrack * > & GetTracks() const
Definition Timeline.h:29
virtual void LoadStream(Stream &stream, Platform platform) override
Definition Timeline.cpp:17
void SetAutoPlay(bool autoPlay)
Definition Timeline.h:46
void SetLooping(bool loop)
Definition Timeline.h:43
virtual void SaveStream(Stream &stream, Platform platform) override
Definition Timeline.cpp:44
float GetPlayRate() const
Definition Timeline.h:39
std::vector< TimelineTrack * > mTracks
Definition Timeline.h:50
float mDuration
Definition Timeline.h:51
void InsertTrack(TimelineTrack *track, uint32_t index)
Definition Timeline.cpp:141
virtual const char * GetTypeName() override
Definition Timeline.cpp:92
virtual void Create() override
Definition Timeline.cpp:61
DECLARE_ASSET(Timeline, Asset)
Timeline()
Definition Timeline.cpp:8