VulkanEngine 0.1
Graphics engine using Vulkan
Loading...
Searching...
No Matches
SceneState.h
1// Copyright (c) 2024 Michael Carlie. All Rights Reserved.
2//
3// This software is released under the MIT License.
4// https://opensource.org/licenses/MIT
5
6#ifndef INCLUDE_VULKANENGINE_SCENESTATE_H_
7#define INCLUDE_VULKANENGINE_SCENESTATE_H_
8
9#include <Eigen/Eigen>
10#include <memory>
11
12namespace VulkanEngine {
13
14class Scene;
15
18 public:
20 explicit SceneState(const Scene& _scene);
21
22 const Scene& getScene() const;
23
25 const Eigen::Matrix4f getTransform() const;
26
29 void setTransform(const Eigen::Matrix4f& transform);
30
32 const Eigen::Matrix4f getTotalTransform() const;
33
35 const Eigen::Matrix4f getViewMatrix() const;
36
38 void setViewMatrix(const Eigen::Matrix4f& _view_matrix);
39
41 const Eigen::Matrix4f getProjectionMatrix() const;
42
44 void setProjectionMatrix(const Eigen::Matrix4f& _projection_matrix);
45
46 private:
47 const Scene& scene;
48
50 Eigen::Matrix4f total_transform;
51
53 Eigen::Matrix4f view_matrix;
54
56 Eigen::Matrix4f projection_matrix;
57};
58
59} // namespace VulkanEngine
60
61#endif // INCLUDE_VULKANENGINE_SCENESTATE_H_
Definition: Scene.h:17
Contains information about the current state of the scene.
Definition: SceneState.h:17
const Eigen::Matrix4f getViewMatrix() const
Definition: SceneState.cpp:47
void setProjectionMatrix(const Eigen::Matrix4f &_projection_matrix)
Set the current projection matrix.
Definition: SceneState.cpp:60
void setTransform(const Eigen::Matrix4f &transform)
Definition: SceneState.cpp:39
void setViewMatrix(const Eigen::Matrix4f &_view_matrix)
Set the current view matrix.
Definition: SceneState.cpp:51
const Eigen::Matrix4f getTotalTransform() const
Definition: SceneState.cpp:43
const Eigen::Matrix4f getProjectionMatrix() const
Definition: SceneState.cpp:56
const Eigen::Matrix4f getTransform() const
Definition: SceneState.cpp:35
TODO development of this class is in progress.
Definition: Attribute.h:13