1 #ifndef BLANK_MODEL_MODEL_HPP_
2 #define BLANK_MODEL_MODEL_HPP_
5 #include "../graphics/glm.hpp"
10 #include <glm/gtc/quaternion.hpp>
23 Model(const Model &) = delete;
24 Model &operator =(const Model &) = delete;
26 std::uint32_t ID() const noexcept { return id; }
27 void ID(std::uint32_t i) noexcept { id = i; }
29 Part &RootPart() noexcept { return root; }
30 const Part &RootPart() const noexcept { return root; }
31 Part &GetPart(std::size_t i) noexcept { return *part[i]; }
32 const Part &GetPart(std::size_t i) const noexcept { return *part[i]; }
34 void SetBody(std::uint16_t id) { body_id = id; }
35 const Part &GetBodyPart() const noexcept { return GetPart(body_id); }
37 void SetEyes(std::uint16_t id) { eyes_id = id; }
38 const Part &GetEyesPart() const noexcept { return GetPart(eyes_id); }
41 void Instantiate(Instance &) const;
46 std::vector<Part *> part;
47 std::uint16_t body_id;
48 std::uint16_t eyes_id;