Toggle navigation
ivorium
iv_components
Example project
GitHub
Main Page
Modules
Classes
Files
File List
File Members
ivorium_graphics
Animation
Connectors
Lambda_Connector.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "../Animation/AnimNode.hpp"
4
#include <
ivorium_core/ivorium_core.hpp
>
5
#include <type_traits>
6
7
namespace
iv
8
{
9
12
class
Lambda_Connector
:
private
AnimConnector
13
{
14
public
:
15
using
AnimConnector::instance
;
16
ClientMarker
cm
;
17
18
//----------------------------- Lambda_Connector -------------------------------------------------------------------
19
Lambda_Connector
(
Instance
* inst );
20
~Lambda_Connector
();
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 ------------------------------------------------------
35
Lambda_Connector
*
AddParent
(
AnimNodeI
* node );
36
Lambda_Connector
*
AddChild
(
AnimNodeI
* node );
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
}