Polyphase Game Engine
Loading...
Searching...
No Matches
TimelineTypes.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
Maths.h
"
4
5
#include <cstdint>
6
#include <string>
7
8
enum class
InterpMode
: uint8_t
9
{
10
Linear
,
11
Step
,
12
Cubic
,
13
14
Count
15
};
16
17
struct
TransformKeyframe
18
{
19
float
mTime
= 0.0f;
20
glm::vec3
mPosition
= glm::vec3(0.0f);
21
glm::quat
mRotation
= glm::quat(1.0f, 0.0f, 0.0f, 0.0f);
22
glm::vec3
mScale
= glm::vec3(1.0f);
23
InterpMode
mInterpMode
=
InterpMode::Linear
;
24
std::string
mSignal
;
25
26
static
TransformKeyframe
Lerp
(
const
TransformKeyframe
& a,
const
TransformKeyframe
& b,
float
t)
27
{
28
if
(a.
mInterpMode
==
InterpMode::Step
|| t <= 0.0f)
29
{
30
return
a;
31
}
32
33
if
(t >= 1.0f)
34
{
35
return
b;
36
}
37
38
TransformKeyframe
out;
39
out.
mTime
= glm::mix(a.
mTime
, b.
mTime
, t);
40
out.
mPosition
= glm::mix(a.
mPosition
, b.
mPosition
, t);
41
out.
mRotation
= glm::slerp(a.
mRotation
, b.
mRotation
, t);
42
out.
mScale
= glm::mix(a.
mScale
, b.
mScale
, t);
43
out.
mInterpMode
= a.
mInterpMode
;
44
out.
mSignal
= a.
mSignal
;
45
return
out;
46
}
47
};
48
49
class
Node
;
50
void
ApplyTransformKeyframeToNode
(
Node
* target,
const
TransformKeyframe
& kf);
Maths.h
InterpMode
InterpMode
Definition
TimelineTypes.h:9
InterpMode::Linear
@ Linear
InterpMode::Step
@ Step
InterpMode::Count
@ Count
InterpMode::Cubic
@ Cubic
ApplyTransformKeyframeToNode
void ApplyTransformKeyframeToNode(Node *target, const TransformKeyframe &kf)
Definition
TimelineTypes.cpp:7
Node
Definition
Node.h:67
TransformKeyframe
Definition
TimelineTypes.h:18
TransformKeyframe::mTime
float mTime
Definition
TimelineTypes.h:19
TransformKeyframe::mInterpMode
InterpMode mInterpMode
Definition
TimelineTypes.h:23
TransformKeyframe::Lerp
static TransformKeyframe Lerp(const TransformKeyframe &a, const TransformKeyframe &b, float t)
Definition
TimelineTypes.h:26
TransformKeyframe::mScale
glm::vec3 mScale
Definition
TimelineTypes.h:22
TransformKeyframe::mRotation
glm::quat mRotation
Definition
TimelineTypes.h:21
TransformKeyframe::mSignal
std::string mSignal
Definition
TimelineTypes.h:24
TransformKeyframe::mPosition
glm::vec3 mPosition
Definition
TimelineTypes.h:20
Engine
Source
Engine
Timeline
TimelineTypes.h
Generated by
1.9.8