Plasma Engine  2.0
Loading...
Searching...
No Matches
EventTrackEditData.h
1#pragma once
2
3#include <Foundation/Containers/DynamicArray.h>
4#include <Foundation/Reflection/Reflection.h>
5#include <Foundation/Strings/HashedString.h>
6#include <GuiFoundation/GuiFoundationDLL.h>
7
8class plEventTrack;
9
10class PL_GUIFOUNDATION_DLL plEventTrackControlPointData : public plReflectedClass
11{
12 PL_ADD_DYNAMIC_REFLECTION(plEventTrackControlPointData, plReflectedClass);
13
14public:
15 plTime GetTickAsTime() const { return plTime::MakeFromSeconds(m_iTick / 4800.0); }
16 void SetTickFromTime(plTime time, plInt64 iFps);
17 const char* GetEventName() const { return m_sEvent.GetData(); }
18 void SetEventName(const char* szSz) { m_sEvent.Assign(szSz); }
19
20 plInt64 m_iTick; // 4800 ticks per second
21 plHashedString m_sEvent;
22};
23
24class PL_GUIFOUNDATION_DLL plEventTrackData : public plReflectedClass
25{
26 PL_ADD_DYNAMIC_REFLECTION(plEventTrackData, plReflectedClass);
27
28public:
29 plInt64 TickFromTime(plTime time) const;
30 void ConvertToRuntimeData(plEventTrack& out_result) const;
31
32 plUInt16 m_uiFramesPerSecond = 60;
34};
35
36class PL_GUIFOUNDATION_DLL plEventSet
37{
38public:
39 bool IsModified() const { return m_bModified; }
40
41 const plSet<plString>& GetAvailableEvents() const { return m_AvailableEvents; }
42
43 void AddAvailableEvent(plStringView sEvent);
44
45 plResult WriteToDDL(const char* szFile);
46 plResult ReadFromDDL(const char* szFile);
47
48private:
49 bool m_bModified = false;
50 plSet<plString> m_AvailableEvents;
51};
Definition DynamicArray.h:81
Definition EventTrackEditData.h:37
Definition EventTrackEditData.h:11
Definition EventTrackEditData.h:25
An event track is a time line that contains named events.
Definition EventTrack.h:15
This class is optimized to take nearly no memory (sizeof(void*)) and to allow very fast checks whethe...
Definition HashedString.h:25
All classes that should be dynamically reflectable, need to be derived from this base class.
Definition DynamicRTTI.h:86
Definition Set.h:238
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12
PL_ALWAYS_INLINE static constexpr plTime MakeFromSeconds(double fSeconds)
Creates an instance of plTime that was initialized from seconds.
Definition Time.h:30