1 #ifndef BLAMK_MODEL_PART_HPP_
2 #define BLAMK_MODEL_PART_HPP_
4 #include "geometry.hpp"
10 #include <glm/gtc/quaternion.hpp>
15 class DirectionalLighting;
24 glm::vec3 position = glm::vec3(0.0f, 0.0f, 0.0f);
25 glm::quat orientation = glm::quat(1.0f, 0.0f, 0.0f, 0.0f);
27 const EntityMesh *mesh;
33 const std::list<Part> &Children() const noexcept { return children; }
35 std::uint16_t Enumerate(std::uint16_t) noexcept;
36 void Index(std::vector<Part *> &) noexcept;
38 glm::mat4 LocalTransform(const std::vector<State> &) const noexcept;
39 glm::mat4 GlobalTransform(const std::vector<State> &) const noexcept;
41 void Render(const glm::mat4 &, const std::vector<State> &, DirectionalLighting &) const;
45 std::list<Part> children;