Sparkle 0.0.1
Loading...
Searching...
No Matches
spk_animation_2d.hpp
1#pragma once
2
3#include <algorithm>
4#include <cmath>
5#include <stdexcept>
6#include <vector>
7
8#include "structure/engine/2d/spk_mesh_2d.hpp"
9#include "structure/system/time/spk_duration.hpp"
10
11namespace spk
12{
18 {
19 private:
20 std::vector<spk::Mesh2D> _meshes;
21 spk::Duration _duration;
22
23 public:
28
33 void setDuration(const spk::Duration &p_duration);
38 const spk::Duration &duration() const;
39
44 void setSpriteSequence(const std::vector<spk::Mesh2D> &p_meshes);
49 void addSprite(const spk::Mesh2D &p_mesh);
54 const std::vector<spk::Mesh2D> &spriteSequence() const;
59 bool isEmpty() const;
60
66 const spk::Mesh2D &currentMesh(float p_ratio) const;
67 };
68}
const spk::Mesh2D & currentMesh(float p_ratio) const
Returns the mesh for a normalized animation ratio.
Definition spk_animation_2d.cpp:41
void setDuration(const spk::Duration &p_duration)
Sets the animation duration.
Definition spk_animation_2d.cpp:11
const std::vector< spk::Mesh2D > & spriteSequence() const
Returns the sprite sequence.
Definition spk_animation_2d.cpp:31
const spk::Duration & duration() const
Returns the animation duration.
Definition spk_animation_2d.cpp:16
bool isEmpty() const
Checks whether the sprite sequence is empty.
Definition spk_animation_2d.cpp:36
Animation2D()
Builds an empty animation with a zero duration.
Definition spk_animation_2d.cpp:5
void addSprite(const spk::Mesh2D &p_mesh)
Appends a mesh to the sprite sequence.
Definition spk_animation_2d.cpp:26
void setSpriteSequence(const std::vector< spk::Mesh2D > &p_meshes)
Replaces the sprite sequence.
Definition spk_animation_2d.cpp:21
Strongly-typed time span with cached conversions between ns/ms/s.
Definition spk_duration.hpp:15
Renderable mesh composed of 2D vertices.
Definition spk_mesh_2d.hpp:30