Toggle navigation
ivorium
iv_components
Example project
GitHub
Main Page
Modules
Classes
Files
File List
File Members
ivorium_graphics
Animation
Connectors
TimeTransform_Connector.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "
TimeTransform.hpp
"
4
#include "
Transform_ConnectorI.hpp
"
5
#include <
ivorium_core/ivorium_core.hpp
>
6
#include <cmath>
7
8
namespace
iv
9
{
10
13
template
<
class
T >
14
class
TimeTransform_Connector
:
public
Transform_ConnectorI
< T, T >
15
{
16
public
:
17
using
Transform_ConnectorI< T, T >::instance
;
18
ClientMarker
cm
;
19
20
//----------------------------- TimeTransform_Connector -------------------------------------------------------------------
21
TimeTransform_Connector
(
Instance
* inst );
22
void
status
(
iv::TableDebugView
* view );
23
24
//-------------------------- configuration -----------------------------------------------------
29
void
transform
(
TimeTransform
const
& );
30
31
protected
:
32
//----------------------------- AnimConnector ------------------------------------------------------
33
virtual
void
UpdatePass_Down
()
override
;
34
virtual
void
UpdatePass_Up
()
override
;
35
36
private
:
37
TimeTransform
_transform;
38
39
Anim_float
current_source_time;
40
Anim_float
current_total_time;
41
42
Anim_float
current_distance;
43
std::optional< Anim_float > reset_remainder_distance;
44
45
static
const
constexpr
Anim_float
DistanceChangeRatioThatCausesReset = 0.05;
46
};
47
48
extern
iv::TableId
TimeTransform_Connector_DebugTable
;
49
50
}
51
52
#include "
TimeTransform_Connector.inl
"