Polyphase Game Engine
Loading...
Searching...
No Matches
TimelineInstance.h
Go to the documentation of this file.
1#pragma once
2
3#include "EngineTypes.h"
4#include "Maths.h"
5
6#include <vector>
7#include <unordered_map>
8
9class Node;
10class World;
11class TimelineTrack;
12
14{
15 Node* mResolvedNode = nullptr;
16 bool mBindingResolved = false;
17
18 // Pre-play state snapshots for editor preview undo
19 glm::vec3 mPrePlayPosition = {};
20 glm::quat mPrePlayRotation = glm::quat(1.0f, 0.0f, 0.0f, 0.0f);
21 glm::vec3 mPrePlayScale = glm::vec3(1.0f);
22 bool mPrePlayActive = true;
23 bool mPrePlayVisible = true;
24 bool mStateSnapshotted = false;
25
26 // Track-specific runtime state
27 bool mClipPlaying = false;
29};
30
32{
33public:
34
37
38 void SetTrackCount(uint32_t count);
39 uint32_t GetTrackCount() const { return (uint32_t)mTrackData.size(); }
40
41 TrackInstanceData& GetTrackData(uint32_t index);
42
43 void ResolveBindings(World* world, const std::vector<TimelineTrack*>& tracks);
44
45 void CapturePrePlayState(const std::vector<TimelineTrack*>& tracks);
46 void RestorePrePlayState(const std::vector<TimelineTrack*>& tracks);
47
48 void ResetAll();
49
50private:
51
52 std::vector<TrackInstanceData> mTrackData;
53};
Definition Node.h:67
Definition TimelineInstance.h:32
void SetTrackCount(uint32_t count)
Definition TimelineInstance.cpp:15
TrackInstanceData & GetTrackData(uint32_t index)
Definition TimelineInstance.cpp:20
~TimelineInstance()
Definition TimelineInstance.cpp:11
void CapturePrePlayState(const std::vector< TimelineTrack * > &tracks)
Definition TimelineInstance.cpp:45
void RestorePrePlayState(const std::vector< TimelineTrack * > &tracks)
Definition TimelineInstance.cpp:70
void ResetAll()
Definition TimelineInstance.cpp:95
TimelineInstance()
Definition TimelineInstance.cpp:7
void ResolveBindings(World *world, const std::vector< TimelineTrack * > &tracks)
Definition TimelineInstance.cpp:25
uint32_t GetTrackCount() const
Definition TimelineInstance.h:39
Definition TimelineTrack.h:25
Definition World.h:24
Definition TimelineInstance.h:14
bool mBindingResolved
Definition TimelineInstance.h:16
int32_t mLastEvaluatedClipIndex
Definition TimelineInstance.h:28
glm::vec3 mPrePlayScale
Definition TimelineInstance.h:21
bool mClipPlaying
Definition TimelineInstance.h:27
bool mStateSnapshotted
Definition TimelineInstance.h:24
glm::quat mPrePlayRotation
Definition TimelineInstance.h:20
Node * mResolvedNode
Definition TimelineInstance.h:15
bool mPrePlayActive
Definition TimelineInstance.h:22
glm::vec3 mPrePlayPosition
Definition TimelineInstance.h:19
bool mPrePlayVisible
Definition TimelineInstance.h:23