VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
animation.h
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2// Copyright 2025-2026 Arnis Lektauers
3#pragma once
4
5#include <string>
6#include <unordered_map>
7#include <vector>
8
10#include "core/math/vector3.h"
11
12namespace visutwin::canvas
13{
27
29 {
30 public:
31 void setName(const std::string& value) { _name = value; }
32 const std::string& name() const { return _name; }
33
34 void addKey(const AnimationKey& key) { _keys.push_back(key); }
35 std::vector<AnimationKey>& keys() { return _keys; }
36 const std::vector<AnimationKey>& keys() const { return _keys; }
37
38 private:
39 std::string _name;
40 std::vector<AnimationKey> _keys;
41 };
42
44 {
45 public:
46 void setName(const std::string& value) { _name = value; }
47 const std::string& name() const { return _name; }
48
49 void setDuration(float value) { _duration = value; }
50 float duration() const { return _duration; }
51
52 AnimationNode* getNode(const std::string& nodeName);
53 const AnimationNode* getNode(const std::string& nodeName) const;
54
55 void addNode(const AnimationNode& node);
56
57 std::vector<AnimationNode>& nodes() { return _nodes; }
58 const std::vector<AnimationNode>& nodes() const { return _nodes; }
59
60 private:
61 std::string _name;
62 float _duration = 0.0f;
63
64 std::vector<AnimationNode> _nodes;
65 std::unordered_map<std::string, size_t> _nodeDict;
66 };
67}
const std::vector< AnimationNode > & nodes() const
Definition animation.h:58
void setName(const std::string &value)
Definition animation.h:46
void addNode(const AnimationNode &node)
Definition animation.cpp:27
void setDuration(float value)
Definition animation.h:49
std::vector< AnimationNode > & nodes()
Definition animation.h:57
AnimationNode * getNode(const std::string &nodeName)
Definition animation.cpp:7
const std::string & name() const
Definition animation.h:47
AnimationKey(float time, const Vector3 &position, const Quaternion &rotation, const Vector3 &scale)
Definition animation.h:17
std::vector< AnimationKey > & keys()
Definition animation.h:35
const std::vector< AnimationKey > & keys() const
Definition animation.h:36
const std::string & name() const
Definition animation.h:32
void setName(const std::string &value)
Definition animation.h:31
void addKey(const AnimationKey &key)
Definition animation.h:34
Unit quaternion for rotation representation with SIMD-accelerated slerp and multiply.
Definition quaternion.h:20
3D vector for positions, directions, and normals with multi-backend SIMD acceleration.
Definition vector3.h:29