You.i Engine
YiTimelineKeyTime.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_TIMELINE_KEY_TIME_H_
3 #define _YI_TIMELINE_KEY_TIME_H_
4 
5 #include "framework/YiPredef.h"
6 #include "animation/YiVariant.h"
9 
10 class CYITimelineKeyTimePriv;
11 
23 {
24 public:
29  {
33  };
34 
38  struct EASE
39  {
40  float fSpeedIn;
41  float fInfluenceIn;
42  float fSpeedOut;
44  };
45 
51  struct SPATIAL_EASE
52  {
53  float fX;
54  float fY;
55  float fZ;
56  };
57 
62  {
63  KEYTIME_SETUP();
64 
74  uint32_t uTime;
86  std::vector<EASE> easeValues;
95  };
96 
100  static const uint32_t MAX_EASE_DIMENSIONS = 3;
101 
103  virtual ~CYITimelineKeyTime();
104 
108  void CalculateValue(const CYITimelineKeyTime *pPrevious, float fDataPositions[MAX_EASE_DIMENSIONS], uint32_t uDimensionCount, CYIVariant &rOutValue) const;
109 
115  void ClearInterpolators();
116 
122  uint32_t GetDuration() const;
126  void SetDuration(uint32_t uDuration);
127 
133  uint32_t GetAbsoluteTime() const;
137  void SetAbsoluteTime(uint32_t uAbsoluteTime);
138 
144  const EASE *GetEase(uint32_t uDimensionIndex) const;
150  uint32_t GetEaseDimensionCount() const;
163  const CYIVariant &GetKeyValue() const;
164 
172  float GetKeyValueAsFloat(uint32_t nDimensionIndex) const;
173 
179  const SPATIAL_EASE *GetSpatialEaseIn() const;
185  const SPATIAL_EASE *GetSpatialEaseOut() const;
191  CYITimeInterpolator *GetTimeInterpolator(uint32_t uValueIndex);
192 
196  void InitKeyTime(const CYITimelineKeyTime::KEYTIME_SETUP *pKeytimeSetup);
197 
201  void SetSpatialInterpolator(float fC0, float fC1, float fC2, float fC3, uint32_t uDimensionIndex);
205  void SetTimeInterpolator(std::unique_ptr<CYITimeInterpolator> pInterpolator, uint32_t uDimensionIndex);
206 
211 
215  int32_t GetApproximateSize() const;
216 
217 private:
218 
220  const CYITimelineKeyTime &operator =(const CYITimelineKeyTime &);
221  CYITimelineKeyTimePriv *m_pPriv;
222 };
223 
228 #endif // _YI_TIMELINE_KEY_TIME_H_
void SetAbsoluteTime(uint32_t uAbsoluteTime)
float fInfluenceIn
Definition: YiTimelineKeyTime.h:41
Container for basic interpolator functions.
Definition: YiTimeInterpolator.h:21
A container class for common data types.
Definition: YiVariant.h:33
float fSpeedOut
Definition: YiTimelineKeyTime.h:42
CYITimeInterpolator * GetTimeInterpolator(uint32_t uValueIndex)
Definition: YiTimelineKeyTime.h:38
const EASE * GetEase(uint32_t uDimensionIndex) const
void DumpSpatialInterpolatorData()
Definition: YiTimelineKeyTime.h:61
Definition: YiTimelineKeyTime.h:51
An individual point in a CYITimelineTrack which represents a CYISceneNode property value for a specif...
Definition: YiTimelineKeyTime.h:22
INTERPOLATION_TYPE
Definition: YiTimelineKeyTime.h:28
float fX
Definition: YiTimelineKeyTime.h:53
float fY
Definition: YiTimelineKeyTime.h:54
float fZ
Definition: YiTimelineKeyTime.h:55
float GetKeyValueAsFloat(uint32_t nDimensionIndex) const
static const uint32_t MAX_EASE_DIMENSIONS
Definition: YiTimelineKeyTime.h:100
The base class for an object accessible from script source code.
Definition: YiScriptableObject.h:28
const CYIVariant & GetKeyValue() const
const SPATIAL_EASE * GetSpatialEaseIn() const
void SetSpatialInterpolator(float fC0, float fC1, float fC2, float fC3, uint32_t uDimensionIndex)
void InitKeyTime(const CYITimelineKeyTime::KEYTIME_SETUP *pKeytimeSetup)
CYIVariant value
Definition: YiTimelineKeyTime.h:78
void SetDuration(uint32_t uDuration)
SPATIAL_EASE spatialEaseIn
Definition: YiTimelineKeyTime.h:90
int32_t GetApproximateSize() const
void SetTimeInterpolator(std::unique_ptr< CYITimeInterpolator > pInterpolator, uint32_t uDimensionIndex)
uint32_t GetEaseDimensionCount() const
uint32_t uTime
Definition: YiTimelineKeyTime.h:74
SPATIAL_EASE spatialEaseOut
Definition: YiTimelineKeyTime.h:94
uint32_t GetAbsoluteTime() const
virtual ~CYITimelineKeyTime()
uint32_t GetDuration() const
Definition: YiTimelineKeyTime.h:32
const SPATIAL_EASE * GetSpatialEaseOut() const
std::vector< EASE > easeValues
Definition: YiTimelineKeyTime.h:86
INTERPOLATION_TYPE GetInterpolationType() const
void CalculateValue(const CYITimelineKeyTime *pPrevious, float fDataPositions[MAX_EASE_DIMENSIONS], uint32_t uDimensionCount, CYIVariant &rOutValue) const
Definition: YiTimelineKeyTime.h:31
float fSpeedIn
Definition: YiTimelineKeyTime.h:40
float fInfluenceOut
Definition: YiTimelineKeyTime.h:43
INTERPOLATION_TYPE eInterpolationType
Definition: YiTimelineKeyTime.h:70
Definition: YiTimelineKeyTime.h:30