Wildvine Engine
Referencia Doxygen del codigo propio de Wildvine Engine.
Cargando...
Buscando...
Nada coincide
HierarchyComponent.h
Ir a la documentación de este archivo.
1
6#pragma once
7#include "Prerequisites.h"
8#include "ECS/Component.h"
9
10class DeviceContext;
11class Entity;
12
13class
15public:
18
19 void
20 init() override {}
21
22 void
23 update(float) override {}
24
25 void
26 render(DeviceContext& deviceContext) override {}
27
28 void
29 destroy() override {
30 m_children.clear();
31 m_parent = nullptr;
32 }
33
34 // API SceneGraph
35 void
36 setParent(Entity* parent) {
37 m_parent = parent;
38 }
39
40 bool
41 isRoot() const {
42 return m_parent == nullptr;
43 }
44
45 bool
46 hasChildren() const {
47 return !m_children.empty();
48 }
49
50 void
51 addChild(Entity* child) {
52 if(!child) {
53 return;
54 }
55
56 if (std::find(m_children.begin(), m_children.end(), child) != m_children.end()) {
57 return;
58 }
59 m_children.push_back(child);
60 }
61
62 void
64 if (!child) return;
65
66 m_children.erase(
67 std::remove(m_children.begin(), m_children.end(), child),
68 m_children.end()
69 );
70 }
71
72public:
73 Entity* m_parent = nullptr;
74 std::vector<Entity*> m_children;
75};
76
Declara la API de Component dentro del subsistema ECS.
Declara la API de Prerequisites dentro del subsistema Core.
ComponentType
Tipos de componentes disponibles en el juego.
@ HIERARCHY
Componente de jerarquía.
Clase base abstracta para todos los componentes del juego.
Definition Component.h:18
void setParent(Entity *parent)
void render(DeviceContext &deviceContext) override
Método virtual puro para renderizar el componente.
std::vector< Entity * > m_children
void update(float) override
Método virtual puro para actualizar el componente.
void destroy() override
void addChild(Entity *child)
void removeChild(Entity *child)
~HierarchyComponent()=default