X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmodel%2FPart.hpp;h=6499bb7478ed30ec34cd5077e702e34dbfbea85c;hb=dcd54cacda98c2c0f7cf0c7a9131fb858d8ee10a;hp=f71efc5425a1580a992ba1b857e38e8ef9797a44;hpb=7e782291e0ce39eb2d4e8c1df28f682c313e6f8d;p=blank.git diff --git a/src/model/Part.hpp b/src/model/Part.hpp index f71efc5..6499bb7 100644 --- a/src/model/Part.hpp +++ b/src/model/Part.hpp @@ -1,25 +1,24 @@ #ifndef BLAMK_MODEL_PART_HPP_ #define BLAMK_MODEL_PART_HPP_ -#include "geometry.hpp" +#include "../graphics/EntityMesh.hpp" +#include "../graphics/glm.hpp" #include #include #include #include -#include #include namespace blank { class DirectionalLighting; -class EntityMesh; class Instance; class Model; +class ResourceIndex; class Shape; class ShapeRegistry; -class TextureIndex; class TokenStreamReader; struct Part { @@ -33,7 +32,7 @@ public: Part(); ~Part(); - void Read(TokenStreamReader &, TextureIndex &, const ShapeRegistry &); + void Read(TokenStreamReader &, ResourceIndex &, const ShapeRegistry &); Part &AddChild(); const std::list &Children() const noexcept { return children; } @@ -41,6 +40,8 @@ public: std::uint16_t Enumerate(std::uint16_t) noexcept; void Index(std::vector &) noexcept; + std::uint16_t ID() const noexcept { return id; } + glm::mat4 LocalTransform(const Instance &) const noexcept; glm::mat4 GlobalTransform(const Instance &) const noexcept; @@ -56,8 +57,8 @@ private: std::vector tex_map; mutable std::unique_ptr mesh; State initial; - glm::vec3 hsl_mod; - glm::vec3 rgb_mod; + EntityMesh::ColorMod hsl_mod; + EntityMesh::ColorMod rgb_mod; std::uint16_t id; };