PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
transform_resolution.h
1#pragma once
2
3#include "pixelbullet/scene/animation_evaluation.h"
4#include "pixelbullet/scene/components/transform.h"
5#include "pixelbullet/scene/entity_id.h"
6
7#include <glm/glm.hpp>
8
9#include <optional>
10#include <unordered_map>
11
12namespace pixelbullet
13{
14class Scene;
15
17{
18 std::unordered_map<EntityId::ValueType, EntityId> resolved_parents;
19 std::unordered_map<EntityId::ValueType, Transform> local_transforms;
20 std::unordered_map<EntityId::ValueType, Transform> world_transforms;
21 std::unordered_map<EntityId::ValueType, glm::mat4> world_matrices;
22
23 [[nodiscard]] const EntityId* FindResolvedParent(EntityId entity) const noexcept;
24 [[nodiscard]] const Transform* FindLocalTransform(EntityId entity) const noexcept;
25 [[nodiscard]] const Transform* FindWorldTransform(EntityId entity) const noexcept;
26 [[nodiscard]] const glm::mat4* FindWorldMatrix(EntityId entity) const noexcept;
27};
28
30{
31public:
32 [[nodiscard]] static SceneResolvedTransforms Resolve(const Scene& scene, const SceneTransformOverrides* transform_overrides = nullptr);
33 [[nodiscard]] static std::optional<EntityId> ResolveStoredParent(const Scene& scene, EntityId entity) noexcept;
34};
35} // namespace pixelbullet
Definition entity_id.h:11
Definition transform_resolution.h:30
Definition scene.h:23
Definition transform_resolution.h:17
Definition animation_evaluation.h:16
Definition transform.h:14