#pragma once #include "component.h" #include "../../gfx/model.h" #include "../../gfx/material.h" #include #include namespace simpleengine { /** * @brief A Model is a object that will be shown on the screen by a renderer. * */ class ModelComponent : public simpleengine::Component { public: gfx::Model model; //gfx::Material material; ModelComponent(gfx::Model model) : model(model) { } ModelComponent(std::vector vertices, std::vector indicies, gfx::Material material, bool calculate_normals = false): model(vertices, indicies, material) { if (calculate_normals) { model.calculate_normals(); } } ModelComponent(std::vector vertices, std::vector indicies = std::vector(), std::optional material = std::nullopt, bool calculate_normals = false) : model(vertices, indicies, material) { if (calculate_normals) { model.calculate_normals(); } } virtual void update(const float& delta_time) override { std::cout << "Model Component update" << std::endl; } }; }