25#include <glm/gtc/matrix_transform.hpp>
26#include <glm/gtc/quaternion.hpp>
27#include <glm/mat4x4.hpp>
28#include <glm/vec3.hpp>
30#include <utility/graphic/orientation.hpp>
31#include <utility/graphic/pose.hpp>
32#include <utility/graphic/scale.hpp>
34namespace utility::graphic
46 inline glm::mat4 orientationToMatrix(
const OrientationF &orientation)
48 return glm::mat4_cast(
49 static_cast<const glm::qua<float> &
>(orientation));
62 inline glm::mat4 poseToMatrix(
const PoseF &pose)
64 const PositionF &position = pose.getPosition();
66 return glm::translate(
68 glm::vec3(position.getX(), position.getY(), position.getZ()))
69 * orientationToMatrix(pose.getOrientation());
82 inline glm::mat4 modelMatrix(
const PoseF &pose,
const ScaleF &scale)
84 const PositionF &position = pose.getPosition();
86 return glm::translate(
88 glm::vec3(position.getX(), position.getY(), position.getZ()))
89 * orientationToMatrix(pose.getOrientation())
90 * glm::scale(glm::mat4(1.0f),
91 glm::vec3(scale.getX(), scale.getY(), scale.getZ()));