Wildvine Engine
Referencia Doxygen del codigo propio de Wildvine Engine.
Cargando...
Buscando...
Nada coincide
Entity.h
Ir a la documentación de este archivo.
1
6#pragma once
7#include "Prerequisites.h"
8#include "Component.h"
9
10class DeviceContext;
11
12class
13Entity {
14public:
15 Entity() = default;
16
20 virtual
21 ~Entity() = default;
22
23 virtual void
24 awake() = 0;
25
31 virtual void
32 init() = 0;
33
38 virtual void
39 update(float deltaTime, DeviceContext& deviceContext) = 0;
40
45 virtual void
46 render(DeviceContext& deviceContext) = 0;
47
52 virtual void
53 destroy() = 0;
54
60 template <typename T> void
62 static_assert(std::is_base_of<Component, T>::value, "T must be derived from Component");
63 m_components.push_back(component.template dynamic_pointer_cast<Component>());
64 }
65
71 template<typename T>
74 for (auto& component : m_components) {
75 EU::TSharedPointer<T> specificComponent = component.template dynamic_pointer_cast<T>();
76 if (specificComponent) {
77 return specificComponent;
78 }
79 }
80 return EU::TSharedPointer<T>();
81 }
82private:
83protected:
85 int m_id;
86 std::vector<EU::TSharedPointer<Component>> m_components;
87};
88
89
Declara la API de Component dentro del subsistema ECS.
Declara la API de Prerequisites dentro del subsistema Core.
Clase TSharedPointer para manejar la gestión de memoria compartida.
virtual void destroy()=0
Método virtual puro para destruir el componente.
bool m_isActive
Definition Entity.h:84
virtual void init()=0
Initialize the entity with a device context.
int m_id
Definition Entity.h:85
std::vector< EU::TSharedPointer< Component > > m_components
Definition Entity.h:86
void addComponent(EU::TSharedPointer< T > component)
Agrega un componente a la entidad.
Definition Entity.h:61
virtual void render(DeviceContext &deviceContext)=0
Método virtual puro para renderizar el componente.
Entity()=default
virtual void update(float deltaTime, DeviceContext &deviceContext)=0
Método virtual puro para actualizar el componente.
EU::TSharedPointer< T > getComponent()
Obtiene un componente de la entidad por su tipo.
Definition Entity.h:73
virtual ~Entity()=default
Destructor virtual.
virtual void awake()=0