Wildvine Engine
Referencia Doxygen del codigo propio de Wildvine Engine.
Cargando...
Buscando...
Nada coincide
MeshRendererComponent.h
Ir a la documentación de este archivo.
1
6#pragma once
7#include "Prerequisites.h"
8#include "ECS/Component.h"
9
10class Mesh;
12class DeviceContext;
13
14class
16public:
19
20 void init() override {}
21 void update(float deltaTime) override {}
22 void render(DeviceContext& deviceContext) override {}
23 void destroy() override {}
24
25 void setMesh(Mesh* mesh) { m_mesh = mesh; }
26 Mesh* getMesh() const { return m_mesh; }
27
28 void setMaterialInstance(MaterialInstance* materialInstance) {
29 m_materialInstance = materialInstance;
30 m_materialInstances.clear();
31 if (materialInstance) {
32 m_materialInstances.push_back(materialInstance);
33 }
34 }
35 MaterialInstance* getMaterialInstance() const { return m_materialInstance; }
36
37 void setMaterialInstances(const std::vector<MaterialInstance*>& materialInstances) {
38 m_materialInstances = materialInstances;
39 m_materialInstance = m_materialInstances.empty() ? nullptr : m_materialInstances.front();
40 }
41
42 void addMaterialInstance(MaterialInstance* materialInstance) {
43 if (!materialInstance) {
44 return;
45 }
46 if (!m_materialInstance) {
47 m_materialInstance = materialInstance;
48 }
49 m_materialInstances.push_back(materialInstance);
50 }
51
52 const std::vector<MaterialInstance*>& getMaterialInstances() const { return m_materialInstances; }
53
54 bool isVisible() const { return m_visible; }
55 void setVisible(bool visible) { m_visible = visible; }
56
57 bool canCastShadow() const { return m_castShadow; }
58 void setCastShadow(bool value) { m_castShadow = value; }
59
60private:
61 Mesh* m_mesh = nullptr;
62 MaterialInstance* m_materialInstance = nullptr;
63 std::vector<MaterialInstance*> m_materialInstances;
64 bool m_visible = true;
65 bool m_castShadow = true;
66};
67
68
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.
@ MESH
Componente de malla.
Clase base abstracta para todos los componentes del juego.
Definition Component.h:18
Agrupa un material base con sus texturas y parametros concretos.
void setVisible(bool visible)
void addMaterialInstance(MaterialInstance *materialInstance)
void setMaterialInstance(MaterialInstance *materialInstance)
void setMaterialInstances(const std::vector< MaterialInstance * > &materialInstances)
void render(DeviceContext &deviceContext) override
Método virtual puro para renderizar el componente.
void update(float deltaTime) override
Método virtual puro para actualizar el componente.
std::vector< MaterialInstance * > m_materialInstances
MaterialInstance * getMaterialInstance() const
const std::vector< MaterialInstance * > & getMaterialInstances() const
Agrupa una coleccion de submallas listas para ser renderizadas.
Definition Mesh.h:28