3#include <Foundation/Containers/DynamicArray.h>
4#include <Foundation/Math/Color8UNorm.h>
5#include <Foundation/Math/Vec2.h>
6#include <Foundation/Reflection/Reflection.h>
7#include <Foundation/Tracks/Curve1D.h>
8#include <GuiFoundation/GuiFoundationDLL.h>
15void FindNearestControlPoints(
plArrayPtr<T> cps, plInt64 iTick, T*& ref_pLlhs, T*& lhs, T*& rhs, T*& ref_pRrhs)
26 for (
decltype(
auto) cp : cps)
28 if (cp.m_iTick <= iTick)
30 if (cp.m_iTick > lhsTick)
38 else if (cp.m_iTick > llhsTick)
41 llhsTick = cp.m_iTick;
45 if (cp.m_iTick > iTick)
47 if (cp.m_iTick < rhsTick)
55 else if (cp.m_iTick < rrhsTick)
58 rrhsTick = cp.m_iTick;
70 void SetTickFromTime(
plTime time, plInt64 iFps);
76 bool m_bTangentsLinked =
true;
89 void ConvertToRuntimeData(
plCurve1D& out_result)
const;
90 double Evaluate(plInt64 iTick)
const;
99 plCurveExtentsAttribute(
double fLowerExtent,
bool bLowerExtentFixed,
double fUpperExtent,
bool bUpperExtentFixed);
101 double m_fLowerExtent = 0.0;
102 double m_fUpperExtent = 1.0;
103 bool m_bLowerExtentFixed =
false;
104 bool m_bUpperExtentFixed =
false;
125 bool m_bOwnsData =
true;
127 plUInt16 m_uiFramesPerSecond = 60;
129 plInt64 TickFromTime(
plTime time)
const;
131 void ConvertToRuntimeData(plUInt32 uiCurveIdx,
plCurve1D& out_result)
const;
136 PL_DECLARE_POD_TYPE();
This class encapsulates an array and it's size. It is recommended to use this class instead of plain ...
Definition ArrayPtr.h:37
A 8bit per channel unsigned normalized (values interpreted as 0-1) color storage format that represen...
Definition Color8UNorm.h:99
A 1D curve for animating a single value over time.
Definition Curve1D.h:29
Definition CurveEditData.h:65
Definition CurveEditData.h:94
Definition CurveEditData.h:109
Definition DynamicArray.h:81
Base class of all attributes can be used to decorate a RTTI property.
Definition PropertyAttributes.h:11
All classes that should be dynamically reflectable, need to be derived from this base class.
Definition DynamicRTTI.h:86
Definition CurveEditData.h:82
constexpr TYPE MaxValue()
Returns the largest possible positive value (that is not infinity).
constexpr TYPE MinValue()
Returns the smallest possible value (that is not -infinity). Usually zero or -MaxValue()....
A custom enum implementation that allows to define the underlying storage type to control its memory ...
Definition Enum.h:37
Definition CurveEditData.h:135
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