X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmodel%2FInstance.hpp;fp=src%2Fmodel%2FInstance.hpp;h=60c0212793e132934cf2e2c808c05835ec6868a0;hb=a26ca06878d45d3ce77cbc28b574f2553e121944;hp=9de1a5db8e3382414131a77f2d4766b881118566;hpb=bc2806164f55b7ac48dbb6d224b7d4b55683decf;p=blank.git diff --git a/src/model/Instance.hpp b/src/model/Instance.hpp index 9de1a5d..60c0212 100644 --- a/src/model/Instance.hpp +++ b/src/model/Instance.hpp @@ -3,6 +3,7 @@ #include "Part.hpp" +#include #include #include #include @@ -10,24 +11,40 @@ namespace blank { -class Model; class DirectionalLighting; +class EntityMesh; +class Model; +class Part; class Instance { friend class Model; + friend class Part; public: Instance(); + ~Instance(); + + Instance(const Instance &); + Instance &operator =(const Instance &); operator bool() const noexcept { return model; } const Model &GetModel() const noexcept { return *model; } - void Render(const glm::mat4 &, DirectionalLighting &) const; + void Render(const glm::mat4 &, DirectionalLighting &); + + void SetTextures(const std::vector &t); + void SetHSLModifier(const glm::vec3 &m); + void SetRGBModifier(const glm::vec3 &m); private: const Model *model; std::vector state; + std::vector> mesh; + + std::vector tex_map; + glm::vec3 hsl_mod; + glm::vec3 rgb_mod; };