Vulkan Schnee 0.0.1 (22840dc8)
High-performance rendering engine
Loading...
Searching...
No Matches
SceneComponent.h
1#pragma once
2#include "Engine/Component/LogicComponent.h"
3#include "Engine/Entity/Actor.h"
4
5#include <entt/entity/entity.hpp>
6#include <glm/gtx/quaternion.hpp>
7#include <glm/mat4x4.hpp>
8
9namespace Engine::Ecs
10{
11 struct Parent;
12} // namespace Engine::Ecs
13
14namespace Ecs
15{
16 struct Parent;
17 struct LocalTransform;
18} // namespace Ecs
19
20namespace Engine::Components {
21
25 class Scene : public Logic {
26 public:
31 explicit Scene(Entities::Scene* scene);
32
39 explicit Scene(Entities::Scene* scene, const entt::entity& parent, const glm::mat4& transform);
40
47 explicit Scene(Entities::Scene* scene, const entt::entity& parent, const glm::vec3& position);
48
56 explicit Scene(Entities::Scene* scene, const entt::entity& parent,
57 const glm::vec3& position,
58 const glm::quat& rotation);
59
67 explicit Scene(Entities::Scene* scene, const entt::entity& parent,
68 const glm::vec3& position,
69 const glm::vec3& rotation);
70
79 explicit Scene(
80 Entities::Scene* scene,
81 const entt::entity& parent,
82 const glm::vec3& position,
83 const glm::quat& rotation,
84 const glm::vec3& scale);
85
86 protected:
90 entt::entity component = entt::null;
91
94
95 private:
96 void setParent( const entt::entity& parent);
97 };
98}
Logic(Entities::Scene *owningScene)
Constructs a logic component owned by a scene.
Scene(Entities::Scene *scene, const entt::entity &parent, const glm::vec3 &position, const glm::quat &rotation, const glm::vec3 &scale)
Constructs a scene component with local position, rotation, and scale.
Scene(Entities::Scene *scene, const entt::entity &parent, const glm::vec3 &position)
Constructs a scene component at a local position.
Ecs::Transform * transformComponent
Transform data stored on the created ECS component entity.
void setParent(const entt::entity &parent)
entt::entity component
Stores the data.
Scene(Entities::Scene *scene, const entt::entity &parent, const glm::vec3 &position, const glm::vec3 &rotation)
Constructs a scene component at a local position and Euler rotation.
Scene(Entities::Scene *scene, const entt::entity &parent, const glm::mat4 &transform)
Constructs a scene component with an explicit local transform matrix.
Scene(Entities::Scene *scene)
Constructs a scene component without creating a transform entity.
Ecs::Parent * parentComponent
Parent relationship stored on the transform hierarchy entity.
Scene(Entities::Scene *scene, const entt::entity &parent, const glm::vec3 &position, const glm::quat &rotation)
Constructs a scene component at a local position and quaternion rotation.
Owns scene entities, actor lifetime, and the scene graph root.
Definition Scene.h:84
EnTT component data used by engine systems.
Parent entity link for component-owned ECS entities.
Definition EcsData.h:83
Local transform matrix and helpers for translation, rotation, and scale.
Definition EcsData.h:476