You.i Engine
YiSceneManager.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_SCENE_MANAGER_H_
3 #define _YI_SCENE_MANAGER_H_
4 
5 #include "asset/YiAsset.h"
6 #include "event/YiEvent.h"
7 #include "event/YiEventHandler.h"
8 #include "event/YiEventTarget.h"
9 #include "framework/YiPredef.h"
11 #include "renderer/YiSurface.h"
12 #include "scenetree/YiSceneNode.h"
13 #include "signal/YiSignalHandler.h"
14 #include "thread/YiLocklessCache.h"
15 #include "utility/YiFocus.h"
16 #include "utility/YiRtti.h"
17 
18 #include <glm/fwd.hpp>
19 
20 class CYIActionEvent;
21 class CYIColor;
22 class CYIFocusState;
23 class CYIMeshFactory;
25 class CYIRay;
26 class CYISceneManagerPriv;
27 class CYISceneView;
28 class CYISceneNode;
29 class CYITimeline;
30 class CYITimer;
31 class CYIViewport;
32 class IYIBufferFactory;
33 class IYIMaterialFactory;
34 
40 const uint8_t YI_MAX_POINTER_ID = 10;
41 const int32_t YI_DELAYED_DOWN_EVENT_DELAY = 115; // 115 ms, same as Android
42 const int32_t YI_LONG_PRESS_DELAY = 1000; // 1 second
43 const int32_t YI_LONG_PRESS_MOVE_TOLERANCE = 10; // 10 pixels
44 
74 {
75  friend class CYIFocusPriv;
80  friend class CYISceneManagerPriv;
81  friend class CYISceneNode;
83 
84 public:
85 
94  {
97  };
98 
105  {
111  };
112 
119  {
123  };
124 
131  {
135  };
136 
143  {
146  };
147 
148  CYISceneManager();
149  virtual ~CYISceneManager();
150 
158  std::unique_ptr<CYISceneView> LoadScene(const CYIString &filename,
159  SCALE_TYPE scaleType = SCALE_STRETCH,
160  V_ALIGN_TYPE vAlign = V_ALIGN_CENTER,
161  H_ALIGN_TYPE hAlign = H_ALIGN_CENTER,
162  MISSING_CLASS_HANDLING_MODE eMissingHandlingMode = ABORT);
163 
171  std::unique_ptr<CYISceneView> LoadScene(const CYIString &filename,
172  const YI_RECT_REL &screenRegion,
173  SCALE_TYPE scaleType = SCALE_STRETCH,
174  V_ALIGN_TYPE vAlign = V_ALIGN_CENTER,
175  H_ALIGN_TYPE hAlign = H_ALIGN_CENTER,
176  MISSING_CLASS_HANDLING_MODE eMissingHandlingMode = ABORT);
177 
184  void UpdateScene(CYISceneView *pRoot);
185 
186 
193  void UpdateScene (CYISceneView *pRoot,
194  SCALE_TYPE scaleType,
195  V_ALIGN_TYPE vAlign,
196  H_ALIGN_TYPE hAlign);
197 
204  void UpdateScene(CYISceneView *pRoot,
205  const YI_RECT_REL &screenRegion,
206  SCALE_TYPE scaleType = SCALE_STRETCH,
207  V_ALIGN_TYPE vAlign = V_ALIGN_CENTER,
208  H_ALIGN_TYPE hAlign = H_ALIGN_CENTER);
209 
216  void UpdateStagedScenes();
217 
224  void UpdateUnstagedScenes();
225 
232  void UpdateAllScenes();
233 
239  void UpdateBackground();
240 
247  void OnSurfaceSizeChanged();
248 
257  bool GetSceneUpdateProperties(CYISceneView *pRoot, SCALE_TYPE &eScaleType, V_ALIGN_TYPE &eVAlign, H_ALIGN_TYPE &eHAlign) const;
258 
259  std::unique_ptr<CYITimeline> ImportTimeline(CYISceneNode *pRootNode, const CYIString &filename);
260 
278  bool AddScene(const CYIString &name, std::unique_ptr<CYISceneNode> pSceneNode, int32_t nLayerIndex = 0, LAYER_TYPE eLayerType = LAYER_OPAQUE, const CYIViewport *pCustomViewport = nullptr);
279 
285  std::unique_ptr<CYISceneNode> RemoveScene(CYISceneNode *pSceneNode);
286 
290  std::unique_ptr<CYISceneNode> RemoveScene(const CYIString &name);
291 
301  bool UpdateSceneProperties(const CYIString &name, LAYER_TYPE eLayerType = LAYER_OPAQUE, const CYIViewport *pCustomViewport = nullptr);
302 
310  bool GetSceneProperties(const CYIString &name, LAYER_TYPE &eLayerType, CYIViewport &viewport) const;
311 
315  uint32_t GetStagedSceneCount() const;
316 
324  CYISceneNode *GetStagedScene(uint32_t uIndex) const;
325 
331  CYISceneNode *GetStagedScene(const CYIString & name) const;
332 
340  std::vector<CYISceneNode *> GetStagedScenes() const;
341 
345  uint32_t GetUnstagedSceneCount() const;
346 
354  CYISceneNode *GetUnstagedScene(uint32_t uIndex) const;
355 
361  CYISceneNode *GetUnstagedScene(const CYIString &name) const;
362 
370  std::vector<CYISceneNode *> GetUnstagedScenes() const;
371 
375  uint32_t GetSceneCount() const;
376 
384  CYISceneNode *GetScene(uint32_t uIndex) const;
385 
391  CYISceneNode *GetScene(const CYIString &name) const;
392 
400  std::vector<CYISceneNode *> GetScenes() const;
401 
405  const CYIString &GetSceneName(CYISceneNode *pScene) const;
406 
410  void ShowStagedScenes();
411 
415  void HideStagedScenes();
416 
420  void ShowScene(const CYIString & name);
421 
425  void HideScene(const CYIString & name);
426 
434  bool UpdateSceneLayerIndex(const CYIString &name, int32_t nLayerIndex);
435 
439  bool GetSceneLayerIndex(const CYIString &name, int32_t &nLayerIndex);
440 
446  bool StageScene(const CYIString & name);
447 
453  bool StageSceneBefore(const CYIString &name, const CYIString &nameRelative);
454 
460  bool StageSceneAfter(const CYIString &name, const CYIString &nameRelative);
461 
467  bool StageSceneAtFront(const CYIString &name);
468 
474  bool StageSceneAtBack(const CYIString &name);
475 
481  bool UnstageScene(const CYIString &name);
482 
486  bool IsSceneStaged(const CYIString &name) const;
487 
491  void DestroyScenes();
492 
499  CYISceneNode *GetNode(const CYIString & name) const;
500 
504  bool MoveBefore(const CYIString &nameToMove, const CYIString &nameRelative);
505 
509  bool MoveAfter(const CYIString &nameToMove, const CYIString &nameRelative);
510 
514  bool BringToFront(const CYIString &name);
515 
519  bool SendToBack(const CYIString &name);
520 
524  bool MoveForward(const CYIString &name);
525 
529  bool MoveBackward(const CYIString &name);
530 
536  CYISceneNode *GetNode(const CYIString & name, const CYIRuntimeTypeInfo &enforceClassType) const;
537 
543  template <class YI_SCENE_NODE_SUBCLASS> YI_SCENE_NODE_SUBCLASS *GetNode(const CYIString & name) const;
544 
550  bool Update(bool bForceDirty, bool bForceRender = false);
551 
559  bool Layout(CYISceneNode *pNode);
560 
566  void Draw() const;
567 
574 
579 
587  void SetPointerCaptureNode(CYISceneNode *pNode, uint8_t uPointerID);
588 
592  CYISceneNode *GetPointerCaptureNode(uint8_t uPointerID);
593 
600 
605 
612 
617 
624 
631 
636 
640  bool IsReachable(const CYISceneNode *pNode) const;
641 
646 
651  CYISceneView *GetViewWithFocus(const CYISceneNode *pRootNode) const;
652 
665 
674 
678  void ClearFocus();
679 
689  bool CanBeFocused(const CYISceneView *pView) const;
690 
697 
702  void QueueTimelineForPlayback(CYITimeline *pTimeline);
703 
707  CYISceneNode *GetTargetNodeAtScreenLocation(int32_t nScreenX, int32_t nScreenY) const;
708 
717  void SetBackgroundColor(const CYIColor &color);
718 
724  const CYIColor &GetBackgroundColor();
725 
730 
735 
736 protected:
741  bool DispatchEvent(const std::shared_ptr<CYIEventDispatcher> &pDispatcher, CYIEvent *pEvent, CYISceneNode *pTarget);
742 
746  virtual bool HandleEvent(const std::shared_ptr<CYIEventDispatcher> &pDispatcher, CYIEvent *pEvent) override;
747 
748 private:
749  struct SCENE_PROPERTIES
750  {
751  SCALE_TYPE eScaleType;
752  H_ALIGN_TYPE eHorizontalAlignType;
753  V_ALIGN_TYPE eVerticalAlignType;
754  };
755 
761  class LongPressHandler : public CYISignalHandler
762  {
763  public:
764  LongPressHandler(CYISceneManager *pSceneManager, uint8_t nID);
765  virtual ~LongPressHandler();
766  void OnLongPress();
767 
768  uint8_t m_unPointerID;
769  std::unique_ptr<CYITimer> m_pTimer;
770  std::unique_ptr<CYIActionEvent> m_pActionEvent;
771  CYISceneManager *m_pSceneManager;
772 
773  private:
774  YI_DISALLOW_COPY_AND_ASSIGN(LongPressHandler)
775  };
776 
786  class DelayedDownHandler : public CYISignalHandler
787  {
788  public:
789  DelayedDownHandler(CYISceneManager *pSceneManager, uint8_t nID);
790  virtual ~DelayedDownHandler();
791  void OnDelayedDown();
792 
793  uint8_t m_uPointerID;
794  std::unique_ptr<CYITimer> m_pTimer;
795  std::unique_ptr<CYIActionEvent> m_pActionEvent;
796  CYISceneManager *m_pSceneManager;
797  std::shared_ptr<CYISceneNodeProxy> m_target;
798 
799  private:
800  YI_DISALLOW_COPY_AND_ASSIGN(DelayedDownHandler)
801  };
802 
803  bool OnMoveEvent(const std::shared_ptr<CYIEventDispatcher> &pDispatcher, CYIActionEvent *pActionEvent, CYISceneNode *pNewMoveTarget);
804  bool OnDownEvent(const std::shared_ptr<CYIEventDispatcher> &pDispatcher, CYIActionEvent *pActionEvent, CYISceneNode *pNewMoveTarget);
805  bool OnUpEvent(const std::shared_ptr<CYIEventDispatcher> &pDispatcher, CYIActionEvent *pActionEvent, CYISceneNode *pNewMoveTarget);
806 
810  void CancelAllActions();
816  void CancelLastActionForPointer(uint8_t uPointerID);
823  void CancelLastActionUnder(CYISceneNode *pNode);
824 
825  bool DispatchEventAs(const std::shared_ptr<CYIEventDispatcher> &pDispatcher, CYIActionEvent *pSrcEvent, CYISceneNode *pTarget, YI_EVENT_TYPE eType);
826 
830  void OnPlayTimeline(const std::shared_ptr<CYITimelineProxy> &pProxy);
831 
832  void SetSpecialEventTarget(YI_SPECIAL_EVENT_TARGET_TYPE eSpecialType, uint8_t uPointerID, CYISceneNode *pNode);
833  CYISceneNode *GetSpecialEventTarget(YI_SPECIAL_EVENT_TARGET_TYPE eSpecialType, uint8_t uPointerID) const;
834 
835  void CreatePickRay(CYIActionEvent *pActionEvent);
836 
837  void Shutdown();
838 
839  void PutRootNodeBefore(std::unique_ptr<CYISceneNode> pNode, CYISceneNode *pRelativeNode);
840  void PutRootNodeAfter(std::unique_ptr<CYISceneNode> pNode, CYISceneNode *pRelativeNode);
841  void PutRootNodeAtFront(std::unique_ptr<CYISceneNode> pNode);
842  void PutRootNodeAtBack(std::unique_ptr<CYISceneNode> pNode);
843  void InsertRootNodeAtIndex(CYISceneNode *pNode, int32_t nLayer);
844  void AddChildAtRealIndex(std::unique_ptr<CYISceneNode> pNode);
845 
846  std::list<std::pair<CYISceneNode *, int32_t>>::iterator rootListFind(const CYISceneNode *pNode)
847  {
848  std::list<std::pair<CYISceneNode *, int32_t>>::iterator it = m_RootSceneNodes.begin(), end = m_RootSceneNodes.end();
849 
850  for (; it != end; ++it)
851  {
852  if (it->first == pNode)
853  {
854  return it;
855  }
856  }
857 
858  return end;
859  }
860 
861  std::map<CYISceneNode *, SCENE_PROPERTIES>::const_iterator scenePropertyFind(const CYISceneNode *pView) const
862  {
863  std::map<CYISceneNode *, SCENE_PROPERTIES>::const_iterator it = m_SceneProperties.begin(), end = m_SceneProperties.end();
864 
865  for (; it != end; ++it)
866  {
867  if (it->first == pView)
868  {
869  return it;
870  }
871  }
872 
873  return end;
874  }
875 
877 
881  std::map<CYIString, CYISceneNode *> m_StagedRootSceneNodes;
882 
886  std::map<CYIString, std::unique_ptr<CYISceneNode>> m_UnstagedRootSceneNodes;
887 
888  std::list<std::pair<CYISceneNode *, int32_t>> m_RootSceneNodes;
889  std::map<CYISceneNode *, SCENE_PROPERTIES> m_SceneProperties;
890  static const SCENE_PROPERTIES s_eDefaultSceneProperties;
891 
895  CYICameraController m_CameraController;
896 
897  CYISceneNode *m_pLogicalRoot;
898 
899  CYISceneNode *m_LastMoveTarget[YI_MAX_POINTER_ID];
900  CYISceneNode *m_LastDownTarget[YI_MAX_POINTER_ID];
901  CYISceneNode *m_PointerCaptureTarget[YI_MAX_POINTER_ID];
902  LongPressHandler *m_LongPressHandlers[YI_MAX_POINTER_ID]; // array of long press handlers, 1 for each pointer.
903  DelayedDownHandler *m_DelayedDownHandlers[YI_MAX_POINTER_ID]; // array of delayed down events handlers, 1 for each pointer.
904  CYISceneNode *m_pKeyboardCaptureTarget;
905  CYISceneNode *m_pCaptureRootNodeTarget;
906  CYISceneNode *m_pTrackpadCaptureTarget;
907 
908  float m_fCameraScrollAnchorY;
909 
910  CYIFocusState *m_pFocusState;
911 
912  std::vector<IYIRenderer::Command> m_defaultRenderList;
913 
914  bool m_bLayingOut;
915  bool m_bShuttingDown;
916 
917  std::unique_ptr<CYISceneManagerPriv> m_pPriv;
918 
919 private:
921 };
922 
925 
927 template <class YI_SCENE_NODE_SUBCLASS> inline YI_SCENE_NODE_SUBCLASS *CYISceneManager::GetNode(const CYIString & name) const
928 {
929  return YiDynamicCast<YI_SCENE_NODE_SUBCLASS>(GetNode(name));
930 }
931 
932 #endif // _YI_SCENE_MANAGER_H_
bool IsReachable(const CYISceneNode *pNode) const
void SetKeyboardCaptureNode(CYISceneNode *pNode)
friend class CYIFocusPriv
Definition: YiSceneManager.h:75
CYISceneNode * GetNode(const CYIString &name) const
uint32_t GetStagedSceneCount() const
LAYER_TYPE
Specifies layering rules on a scene. Transparent scenes may be drawn over other scenes.
Definition: YiSceneManager.h:93
void SetEventCaptureRootNode(CYISceneNode *pNode)
#define YI_DISALLOW_COPY_AND_ASSIGN(TypeName)
Delete the copy constructor and assignment operator (and consequently the move constructor as well) ...
Definition: YiPredef.h:114
A class containing focus search options.
Definition: YiFocusSearchOptions.h:23
bool SendToBack(const CYIString &name)
const int32_t YI_LONG_PRESS_DELAY
Definition: YiSceneManager.h:42
Allows registering of event filters which can be used to perform processing on an event before and af...
Definition: YiEventHandler.h:25
Scene trees composed of CYISceneNode objects are registered with the scene manager in order for them ...
Definition: YiSceneManager.h:73
void ShowStagedScenes()
Definition: YiPredef.h:234
const uint8_t YI_MAX_POINTER_ID
Definition: YiSceneManager.h:40
CYICameraController & GetCameraController()
bool RemoveGlobalEventListener(YI_EVENT_TYPE eEventType, CYIEventHandler *pListener, CYIEventTarget::EVENT_PHASE ePhase=CYIEventTarget::BUBBLE)
A timeline which sources its data from a backing store.
Definition: YiTimeline.h:54
Base class for events.
Definition: YiEvent.h:489
The base class for all view types. Views are containers of renderable elements that often define inte...
Definition: YiSceneView.h:47
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
bool UnstageScene(const CYIString &name)
Definition: YiSceneManager.h:106
void Draw() const
bool CanBeFocused(const CYISceneView *pView) const
Definition: YiSceneManager.h:96
void HideStagedScenes()
YI_EVENT_TYPE
The event type of the CYIEvent class instance.
Definition: YiEvent.h:23
bool MoveAfter(const CYIString &nameToMove, const CYIString &nameRelative)
Definition: YiOrthographicCameraSceneNode.h:27
CYISceneNode * GetTrackpadCaptureNode() const
bool MoveForward(const CYIString &name)
bool StageScene(const CYIString &name)
void OnSurfaceSizeChanged()
bool MoveFocus(CYIFocus::FOCUS_DIRECTION eDirection, const CYIFocusSearchOptions &options=CYIFocusSearchOptions())
Material Factory interface for the generation of all things texture and shader related.
Definition: YiMaterialFactory.h:23
virtual ~CYISceneManager()
std::unique_ptr< CYISceneView > LoadScene(const CYIString &filename, SCALE_TYPE scaleType=SCALE_STRETCH, V_ALIGN_TYPE vAlign=V_ALIGN_CENTER, H_ALIGN_TYPE hAlign=H_ALIGN_CENTER, MISSING_CLASS_HANDLING_MODE eMissingHandlingMode=ABORT)
YI_SPECIAL_EVENT_TARGET_TYPE
Definition: YiEventTarget.h:18
CYISignal< const CYIString &, CYISceneNode * > SceneUnstaged
Definition: YiSceneManager.h:734
CYISceneNode * GetKeyboardCaptureNode() const
The base class for an object accessible from script source code.
Definition: YiScriptableObject.h:28
std::vector< CYISceneNode * > GetUnstagedScenes() const
void DestroyScenes()
Definition: YiEventTarget.h:44
Definition: YiSceneManager.h:108
Definition: YiSceneManager.h:134
H_ALIGN_TYPE
Horizontal alignment.
Definition: YiSceneManager.h:130
CYISceneNode * GetPointerCaptureNode(uint8_t uPointerID)
Definition: YiSceneManager.h:120
Definition: YiSceneManager.h:122
bool GetSceneProperties(const CYIString &name, LAYER_TYPE &eLayerType, CYIViewport &viewport) const
void SetTrackpadCaptureNode(CYISceneNode *pNode)
std::vector< CYISceneNode * > GetScenes() const
Definition: YiViewport.h:12
const int32_t YI_DELAYED_DOWN_EVENT_DELAY
Definition: YiSceneManager.h:41
CYISceneNode * GetTargetNodeAtScreenLocation(int32_t nScreenX, int32_t nScreenY) const
Encapsulates the origin and direction points of a ray.
Definition: YiRay.h:33
void SetPointerCaptureNode(CYISceneNode *pNode, uint8_t uPointerID)
CYISceneView * GetViewWithFocus() const
SCALE_TYPE
Scaling rules define how the scene adapts to having different dimensions.
Definition: YiSceneManager.h:104
CYISceneNode * GetUnstagedScene(uint32_t uIndex) const
Definition: YiSceneManager.h:109
EVENT_PHASE
Definition: YiEventTarget.h:42
std::unique_ptr< CYITimeline > ImportTimeline(CYISceneNode *pRootNode, const CYIString &filename)
CYISceneNode * GetScene(uint32_t uIndex) const
bool UpdateSceneProperties(const CYIString &name, LAYER_TYPE eLayerType=LAYER_OPAQUE, const CYIViewport *pCustomViewport=nullptr)
A low-precision timer driven by the update loop.
Definition: YiTimer.h:29
void UpdateBackground()
bool StageSceneBefore(const CYIString &name, const CYIString &nameRelative)
bool BringToFront(const CYIString &name)
CYISceneNode * GetEventCaptureRootNode()
bool IsSceneStaged(const CYIString &name) const
Definition: YiSceneManager.h:133
Definition: YiSceneManager.h:121
FOCUS_ROOT_RULE
Definition: YiFocus.h:60
Definition: YiSceneManager.h:132
bool AddGlobalEventListener(YI_EVENT_TYPE eEventType, CYIEventHandler *pListener, CYIEventTarget::EVENT_PHASE ePhase=CYIEventTarget::BUBBLE)
bool MoveBackward(const CYIString &name)
bool RequestFocus(const CYISceneView *pViewToFocus, CYIFocus::FOCUS_ROOT_RULE eFocusRootRule=CYIFocus::FOCUS_ROOT_DESCENDANTS_UPDATE_CONTEXT)
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
bool UpdateSceneLayerIndex(const CYIString &name, int32_t nLayerIndex)
void UpdateUnstagedScenes()
std::vector< CYISceneNode * > GetStagedScenes() const
void SetBackgroundColor(const CYIColor &color)
The abstract runtime representation of a C++ type.
Definition: YiRtti.h:48
bool GetSceneLayerIndex(const CYIString &name, int32_t &nLayerIndex)
uint32_t GetSceneCount() const
bool Layout(CYISceneNode *pNode)
Definition: YiSignalHandler.h:174
Factory for the creation of Vertex and Index buffers.
Definition: YiBufferFactory.h:18
Definition: YiSceneManager.h:144
const CYIColor & GetBackgroundColor()
Factory for the creation of meshes.
Definition: YiMeshFactory.h:20
bool DispatchEvent(const std::shared_ptr< CYIEventDispatcher > &pDispatcher, CYIEvent *pEvent, CYISceneNode *pTarget)
bool AddScene(const CYIString &name, std::unique_ptr< CYISceneNode > pSceneNode, int32_t nLayerIndex=0, LAYER_TYPE eLayerType=LAYER_OPAQUE, const CYIViewport *pCustomViewport=nullptr)
FOCUS_DIRECTION
Definition: YiFocus.h:44
const CYIString & GetSceneName(CYISceneNode *pScene) const
bool MoveBefore(const CYIString &nameToMove, const CYIString &nameRelative)
virtual bool HandleEvent(const std::shared_ptr< CYIEventDispatcher > &pDispatcher, CYIEvent *pEvent) override
bool StageSceneAtFront(const CYIString &name)
CYISceneNode * GetStagedScene(uint32_t uIndex) const
bool StageSceneAfter(const CYIString &name, const CYIString &nameRelative)
V_ALIGN_TYPE
Vertical alignment.
Definition: YiSceneManager.h:118
void ShowScene(const CYIString &name)
CYISignal< const CYIString &, CYISceneNode * > SceneStaged
Definition: YiSceneManager.h:729
Definition: YiCameraController.h:22
void OnSpecialEventTargetDestroyed(CYISceneNode *pNode)
std::unique_ptr< CYISceneNode > RemoveScene(CYISceneNode *pSceneNode)
bool GetSceneUpdateProperties(CYISceneView *pRoot, SCALE_TYPE &eScaleType, V_ALIGN_TYPE &eVAlign, H_ALIGN_TYPE &eHAlign) const
This file contains the classes and macros used to implement RTTI in You.i Engine. ...
Definition: YiSceneManager.h:110
A class used to represent a color value.
Definition: YiColor.h:31
Definition: YiSceneManager.h:107
friend class CYISceneManagerPriv
Definition: YiSceneManager.h:80
void UpdateAllScenes()
bool Update(bool bForceDirty, bool bForceRender=false)
Definition: YiSceneManager.h:95
MISSING_CLASS_HANDLING_MODE
Optional fallback rules for missing view types during scene loading.
Definition: YiSceneManager.h:142
void UpdateStagedScenes()
void UpdateScene(CYISceneView *pRoot)
const int32_t YI_LONG_PRESS_MOVE_TOLERANCE
Definition: YiSceneManager.h:43
Definition: YiSceneManager.h:145
Stores data related to a user Action event.
Definition: YiActionEvent.h:18
uint32_t GetUnstagedSceneCount() const
void QueueTimelineForPlayback(CYITimeline *pTimeline)
void HideScene(const CYIString &name)
friend class CYISceneNodeUtilityPriv
Definition: YiSceneManager.h:82
bool StageSceneAtBack(const CYIString &name)