AnimConnector.hpp
Go to the documentation of this file.
1 #pragma once
2 
4 
5 namespace iv
6 {
7 
9 
10 class AnimNodeI;
11 
12 template< class T >
13 class AnimNode;
14 
18 {
19 public:
21 
22  AnimConnector( Instance * inst );
23  Instance * instance() const;
24 
25  void Activate();
26 
27  //--------------------- anim graph ----------------------------------------------------
28  virtual void anim_eachChild( std::function< void( AnimNodeI * ) > const & ){}
29  virtual void anim_childDisconnect( AnimNodeI * node ){}
30 
31  virtual void anim_eachParent( std::function< void( AnimNodeI * ) > const & ){}
32  virtual void anim_parentDisconnect( AnimNodeI * node ){}
33 
34  //-------------------------------------------------------------------------------------
38  void parentChanged_Set();
39  bool parentChanged_Get();
40  void parentChanged_Clear();
41 
45  void childArrived_Set();
46  bool childArrived_Get();
47  void childArrived_Clear();
48 
49  //-------------------------------------------------------------------------------------
56  virtual void UpdatePass_Down() = 0;
57 
63  virtual void UpdatePass_Up() = 0;
64 
65 private:
66  Instance * inst;
67  bool _parent_changed;
68  bool _child_arrived;
69 };
70 
71 }