#pragma once #include #include namespace wowee { namespace rendering { class Shader; class Texture; class Material { public: Material() = default; ~Material() = default; void setShader(std::shared_ptr shader) { this->shader = shader; } void setTexture(std::shared_ptr texture) { this->texture = texture; } void setColor(const glm::vec4& color) { this->color = color; } std::shared_ptr getShader() const { return shader; } std::shared_ptr getTexture() const { return texture; } const glm::vec4& getColor() const { return color; } private: std::shared_ptr shader; std::shared_ptr texture; glm::vec4 color = glm::vec4(1.0f); }; } // namespace rendering } // namespace wowee