Lambda_Connector.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "../Animation/AnimNode.hpp"
5 #include <type_traits>
6 
7 namespace iv
8 {
9 
13 {
14 public:
17 
18 //----------------------------- Lambda_Connector -------------------------------------------------------------------
19  Lambda_Connector( Instance * inst );
21 
22  //------------------------- AnimConnector ------------------------------------------------------
23  virtual void anim_eachChild( std::function< void( AnimNodeI * ) > const & ) override;
24  virtual void anim_childDisconnect( AnimNodeI * node ) override;
25 
26  virtual void anim_eachParent( std::function< void( AnimNodeI * ) > const & ) override;
27  virtual void anim_parentDisconnect( AnimNodeI * node ) override;
28 
29  virtual void UpdatePass_Down() override;
30  virtual void UpdatePass_Up() override;
31 
32  //------------------------- parents nodes ------------------------------------------------------
37 
42  void Retargeting( std::function< void( bool warping ) > const & );
43 
46  void Retarget( bool warping = false );
47 
48 private:
49  std::unordered_set< AnimNodeI * > _parents;
50  std::unordered_set< AnimNodeI * > _children;
51  std::function< void( bool ) > _retargeting;
52  bool _retarget;
53 };
54 
55 }