2#ifdef StevEngine_RENDERER_GL
3#include "main/Component.hpp"
4#include "utilities/Model.hpp"
5#include "utilities/Quaternion.hpp"
6#include "utilities/Vector3.hpp"
7#include "visuals/renderer/Object.hpp"
8#include "visuals/Material.hpp"
11#define MODEL_RENDERER_TYPE "ModelRenderer"
13namespace StevEngine::Visuals {
47 std::string
GetType()
const {
return MODEL_RENDERER_TYPE; }
108 std::vector<Renderer::Object> objects;
109 std::map<Renderer::ShaderType, Renderer::ShaderProgram> shaders;
Component()
Create new component.
Definition Component.cpp:10
static bool RegisterComponentType(std::string type)
Register a component type for creation.
Definition Component.hpp:133
Standard renderable mesh object.
Definition Object.hpp:41
Visuals::Material material
Material used for rendering.
Definition Object.hpp:65
Compiled and linked shader program.
Definition ShaderProgram.hpp:22
4x4 matrix for 3D transformations
Definition Matrix4.hpp:12
3D model data container
Definition Model.hpp:46
Quaternion for 3D rotations.
Definition Quaternion.hpp:19
Stream for serialization of data.
Definition Stream.hpp:20
3D vector class
Definition Vector3.hpp:19
Material properties for rendering.
Definition Material.hpp:14
void AddShader(Renderer::ShaderProgram program)
Add shader program.
Definition ModelRenderer.cpp:69
std::string GetType() const
Get component type.
Definition ModelRenderer.hpp:47
void RemoveShader(Renderer::ShaderType type)
Remove shader of specified type.
Definition ModelRenderer.cpp:74
Renderer::Object & GetObject(uint index)
Get renderable object for mesh.
Definition ModelRenderer.hpp:74
Utilities::Vector3 scale
Local scale modifier.
Definition ModelRenderer.hpp:61
size_t MeshCount() const
Get number of meshes in model.
Definition ModelRenderer.hpp:67
Utilities::Stream Export(Utilities::StreamType type) const
Serialize component to a stream.
Definition ModelRenderer.cpp:44
~ModelRenderer()
Clean up component resources.
Definition ModelRenderer.cpp:54
ModelRenderer(const Utilities::Model &model, const Material &material=Material(), Utilities::Vector3 position=Utilities::Vector3(), Utilities::Quaternion rotation=Utilities::Quaternion(), Utilities::Vector3 scale=Utilities::Vector3(1))
Create model renderer.
Definition ModelRenderer.cpp:32
void Draw(const Utilities::Matrix4 &transform)
Draw model with transform.
Definition ModelRenderer.cpp:61
Utilities::Vector3 position
Local position offset.
Definition ModelRenderer.hpp:57
Utilities::Quaternion rotation
Local rotation offset.
Definition ModelRenderer.hpp:59
Visuals::Material & GetMaterials(uint index)
Get material for mesh.
Definition ModelRenderer.hpp:81