Kemena3D
Loading...
Searching...
No Matches
kanimation.h
Go to the documentation of this file.
1
13
14#ifndef KANIMATION_H
15#define KANIMATION_H
16
17#include "kdatatype.h"
18
19#include <vector>
20#include <map>
21
22namespace kemena
23{
32 {
34 std::vector<kKeyPosition> positions;
35 std::vector<kKeyRotation> rotations;
36 std::vector<kKeyScale> scales;
37 };
38
48 {
49 public:
51 kAnimation() = default;
52
54 void addTrack(const kObjectAnimTrack &track);
55
57 const std::vector<kObjectAnimTrack> &getTracks() const;
58
60 const kObjectAnimTrack *findTrack(const kString &uuid) const;
61
66 void setName(const kString &n) { name = n; }
71 kString getName() const { return name; }
72
77 void setDuration(float d) { duration = d; }
82 float getDuration() const { return duration; }
83
88 void setTicksPerSecond(float t) { ticksPerSecond = t; }
93 float getTicksPerSecond() const { return ticksPerSecond; }
94
99 void setSpeed(float s) { speed = s; }
104 float getSpeed() const { return speed; }
105
106 private:
107 kString name;
108 float duration = 0.0f;
109 float ticksPerSecond = 25.0f;
110 float speed = 1.0f;
111 std::vector<kObjectAnimTrack> tracks;
112 };
113}
114
115#endif // KANIMATION_H
kString getName() const
Get the clip name.
Definition kanimation.h:71
float getTicksPerSecond() const
Get the tick rate.
Definition kanimation.h:93
void setSpeed(float s)
Set the playback speed multiplier.
Definition kanimation.h:99
void setName(const kString &n)
Set the clip name.
Definition kanimation.h:66
kAnimation()=default
Construct an empty clip with default duration / tick rate.
float getDuration() const
Get the total clip length in ticks.
Definition kanimation.h:82
const kObjectAnimTrack * findTrack(const kString &uuid) const
Find a track by its target UUID, or nullptr if absent.
const std::vector< kObjectAnimTrack > & getTracks() const
All tracks in this clip.
float getSpeed() const
Get the playback speed multiplier.
Definition kanimation.h:104
void setDuration(float d)
Set the total clip length in ticks.
Definition kanimation.h:77
void setTicksPerSecond(float t)
Set the tick rate used to convert ticks to seconds.
Definition kanimation.h:88
void addTrack(const kObjectAnimTrack &track)
Append a transform track for one target object.
Core type aliases, enumerations, structs, and utility functions used throughout the engine.
Top-level Kemena3D engine namespace.
Definition kanimation.h:23
std::string kString
Standard string alias.
Definition kdatatype.h:42
A single transform track for one target object inside a clip.
Definition kanimation.h:32
std::vector< kKeyRotation > rotations
Rotation channel keyframes.
Definition kanimation.h:35
std::vector< kKeyPosition > positions
Position channel keyframes.
Definition kanimation.h:34
std::vector< kKeyScale > scales
Scale channel keyframes.
Definition kanimation.h:36
kString targetUuid
kObject UUID the track drives.
Definition kanimation.h:33