AnimHeap.hpp
Go to the documentation of this file.
1 #pragma once
2 
10 #include <unordered_set>
11 
12 namespace iv
13 {
14 
15 class AnimHeap
16 {
17 public:
19  AnimHeap( Instance * inst );
20  ~AnimHeap();
21 
22  Instance * instance() const;
23 
24  std::unordered_set< AnimNodeI * > const & Debug_Nodes() const { return this->nodes; }
25 
26  //--------------------- Nodes ------------------------------------
27  template< class T >
28  AnimNode< T > * Node( T const & initial_value );
29 
34  AnimNodeI * VoidNode();
35 
36  template< class T >
37  AnimNode< T > * Attribute_SourceNode( Attr< T > * attr, T const & default_value );
38 
39  template< class T >
40  AnimNode< T > * Attribute_DestinationNode( Attr< T > * attr, T const & initial_value );
41 
46  template< class T >
47  AnimNode< T > * State_DestinationNode( T const & initial_value );
48 
49  //--------------------- Connectors -------------------------------
51 
52  template< class T >
54 
55  template< class T >
57 
58 private:
59  Instance * inst;
60  Heap heap;
61 
62  std::unordered_set< AnimNodeI * > nodes;
63 };
64 
65 
66 }
67 
68 #include "AnimHeap.inl"