VulkanEngine 0.1
Graphics engine using Vulkan
Loading...
Searching...
No Matches
SceneObject.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_SCENEOBJECT_H_
7#define INCLUDE_VULKANENGINE_SCENEOBJECT_H_
8
9#include <VulkanEngine/SceneState.h>
10
11#include <memory>
12#include <vector>
13
14namespace VulkanEngine {
15
18 public:
21
24 void addChildren(const std::vector<std::shared_ptr<SceneObject>>& _children);
25
28 const Eigen::Matrix4f getTransform() const;
29
32 void setTransform(const Eigen::Matrix4f& _transform);
33
34 protected:
38 virtual void preUpdate(std::shared_ptr<SceneState> scene_state);
39
43 virtual void update(std::shared_ptr<SceneState> scene_state);
44
48 virtual void postUpdate(std::shared_ptr<SceneState> scene_state);
49
52 Eigen::Matrix4f transform;
53
54 private:
56 std::vector<std::shared_ptr<SceneObject>> children;
57};
58
59} // namespace VulkanEngine
60
61#endif // INCLUDE_VULKANENGINE_SCENEOBJECT_H_
Represents an object in a scene.
Definition: SceneObject.h:17
void setTransform(const Eigen::Matrix4f &_transform)
Definition: SceneObject.cpp:68
virtual void update(std::shared_ptr< SceneState > scene_state)
Definition: SceneObject.cpp:38
Eigen::Matrix4f transform
Definition: SceneObject.h:52
virtual void preUpdate(std::shared_ptr< SceneState > scene_state)
Definition: SceneObject.cpp:33
virtual void postUpdate(std::shared_ptr< SceneState > scene_state)
Definition: SceneObject.cpp:53
SceneObject()
Contructor.
Definition: SceneObject.cpp:27
void addChildren(const std::vector< std::shared_ptr< SceneObject > > &_children)
Definition: SceneObject.cpp:59
const Eigen::Matrix4f getTransform() const
Definition: SceneObject.cpp:64
TODO development of this class is in progress.
Definition: Attribute.h:13