You.i Engine
YiAbstractTimeline.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_ABSTRACT_TIMELINE_H_
3 #define _YI_ABSTRACT_TIMELINE_H_
4 
8 #include "signal/YiSignal.h"
9 
10 #include <glm/fwd.hpp>
11 
12 class CYIAbstractTimelinePriv;
13 class CYISceneNode;
14 class CYISceneNodeProxy;
15 
30 {
31  friend class CYITimelineGroup;
32  friend class CYISerialTimelineGroup;
34  friend class CYITimelineLoop;
35 
36 public:
41  {
50  };
51 
55  enum STATUS
56  {
59  };
60 
64  enum DIRECTION
65  {
68  };
69 
70  virtual ~CYIAbstractTimeline();
71 
76  void Start();
77 
82  void Finish();
83 
88  void Pause();
89 
94  void Continue();
95 
100  void SetDirection(DIRECTION direction);
101 
105  DIRECTION GetDirection() const;
106 
110  STATUS GetStatus() const;
111 
115  uint64_t GetStartTime() const;
116 
120  uint64_t GetCurrentTime() const;
121 
125  float GetTimeAsPercentage() const;
126 
130  uint64_t GetTotalTime() const;
131 
137  void SeekToPercentage(float fPercentage);
138 
144  void SeekToTime(uint64_t uMillis);
145 
150  void Abort();
151 
155  void SetDisablesInput(bool bDisablesInput);
156 
166  void Track();
167 
168  void Untrack();
169 
175  void StartForward();
176 
182  void StartReverse();
183 
189  void ContinueForward();
190 
196  void ContinueReverse();
197 
202  void SetDirectionForward();
203 
208  void SetDirectionReverse();
209 
220  void SetFrameModes(YI_FRAME_MODE eStartFrameMode, YI_FRAME_MODE eEndFrameMode);
221 
233  bool SetSourcePositions(CYISceneNode *pNode, const glm::vec3 &vPosition);
234 
244  bool ClearSourcePositions(CYISceneNode *pNode);
245 
257  bool SetTargetPositions(CYISceneNode *pNode, const glm::vec3 &vPosition);
258 
268  bool ClearTargetPositions(CYISceneNode *pNode);
269 
274  const std::shared_ptr<CYITimelineProxy> &GetProxy() const;
275 
283  void SetRootNode(CYISceneNode *pRootNode);
284 
290  const std::shared_ptr<CYISceneNodeProxy> &GetRootNode() const;
291 
292  /* signals */
298 
299  /* supplemental signals */
308 
309 protected:
310  CYIAbstractTimeline(CYIAbstractTimelinePriv *pPriv);
311  CYIAbstractTimelinePriv *m_pPriv;
312 
313 private:
314  YI_DISALLOW_COPY_AND_ASSIGN(CYIAbstractTimeline);
315  YI_TYPE_BASES_WITH_SCRIPTABLE_BASE(CYIAbstractTimeline)
316 };
317 
322 #endif /* _YI_ABSTRACT_TIMELINE_H_ */
CYISignal CompletedReverse
same as Completed, but triggered only when direction is reverse
Definition: YiAbstractTimeline.h:307
The base class for the timeline framework.
Definition: YiAbstractTimeline.h:29
bool ClearSourcePositions(CYISceneNode *pNode)
The base class for an C++ object that has RTTI information and is accesible from script source code...
Definition: YiScriptableRTTIObject.h:28
DIRECTION
Definition: YiAbstractTimeline.h:64
Definition: YiAbstractTimeline.h:66
CYISignal PausedReverse
same as Paused, but triggered only when direction is reverse
Definition: YiAbstractTimeline.h:303
CYISignal PlayingForward
same as Playing, but triggered only when direction is forward
Definition: YiAbstractTimeline.h:300
void SetDirection(DIRECTION direction)
const std::shared_ptr< CYISceneNodeProxy > & GetRootNode() const
The base class for types of timeline groups.
Definition: YiTimelineGroup.h:25
Definition: YiAbstractTimeline.h:58
CYISignal Paused
called whenever the timeline stops playing, including if the timeline execution completes normally ...
Definition: YiAbstractTimeline.h:294
CYISignal CompletedForward
same as Completed, but triggered only when direction is forward
Definition: YiAbstractTimeline.h:306
uint64_t GetCurrentTime() const
CYISignal PausedForward
same as Paused, but triggered only when direction is forward
Definition: YiAbstractTimeline.h:302
void SeekToTime(uint64_t uMillis)
A class used to proxy access to a CYISceneNode.
Definition: YiSceneNodeProxy.h:19
void SetDisablesInput(bool bDisablesInput)
Definition: YiAbstractTimeline.h:45
Definition: YiAbstractTimeline.h:49
STATUS
Definition: YiAbstractTimeline.h:55
void SeekToPercentage(float fPercentage)
CYISignal Completed
called when playback of the timeline completes normally (or when the Finish() function is called) ...
Definition: YiAbstractTimeline.h:297
const std::shared_ptr< CYITimelineProxy > & GetProxy() const
bool SetSourcePositions(CYISceneNode *pNode, const glm::vec3 &vPosition)
bool SetTargetPositions(CYISceneNode *pNode, const glm::vec3 &vPosition)
A scene node is the base type for all nodes which are used by the scene manager; it is an integral pa...
Definition: YiSceneNode.h:114
void SetRootNode(CYISceneNode *pRootNode)
STATUS GetStatus() const
CYISignal PlayingReverse
same as Playing, but triggered only when direction is reverse
Definition: YiAbstractTimeline.h:301
Definition: YiAbstractTimeline.h:57
Definition: YiSignalHandler.h:174
CYISignal Aborted
called when the timeline execution is aborted by the Abort() function
Definition: YiAbstractTimeline.h:295
uint64_t GetTotalTime() const
float GetTimeAsPercentage() const
bool ClearTargetPositions(CYISceneNode *pNode)
DIRECTION GetDirection() const
This kind of timeline group will play its children in parallel, possibly with specified offsets (dela...
Definition: YiParallelTimelineGroup.h:21
CYIAbstractTimelinePriv * m_pPriv
Definition: YiAbstractTimeline.h:311
YI_FRAME_MODE
Definition: YiAbstractTimeline.h:40
virtual ~CYIAbstractTimeline()
Definition: YiAbstractTimeline.h:67
Repeats a timeline.
Definition: YiTimelineLoop.h:18
void SetFrameModes(YI_FRAME_MODE eStartFrameMode, YI_FRAME_MODE eEndFrameMode)
This kind of timeline group will play its children in sequence, possibly with specified offsets (dela...
Definition: YiSerialTimelineGroup.h:22
CYISignal StartedReverse
same as Started, but triggered only when direction is reverse
Definition: YiAbstractTimeline.h:305
Signals and slots are a thread-safe and flexible communication framework that will allow various obje...
Definition: YiSignal.h:164
CYIAbstractTimeline(CYIAbstractTimelinePriv *pPriv)
CYISignal Started
called when playback of the timeline is initiated by one of the Start() functions ...
Definition: YiAbstractTimeline.h:296
CYISignal Playing
called whenever the timeline starts playing (from any position)
Definition: YiAbstractTimeline.h:293
CYISignal StartedForward
same as Started, but triggered only when direction is forward
Definition: YiAbstractTimeline.h:304
uint64_t GetStartTime() const