blob: 7b256af42719d691f03a0bface58b569ca0900b4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#include "transform.h"
#include "camera.h"
#include <glm/gtx/transform.hpp>
Transform::Transform(glm::vec3 pos, glm::vec3 rot, glm::vec3 scale) : pos {pos}, rot {rot}, scale {scale} { }
glm::mat4
Transform::GetModel() const
{
const auto posMat = glm::translate(pos);
const auto scaleMat = glm::scale(scale);
const auto rotX = glm::rotate(rot.x, glm::vec3(1.0, 0.0, 0.0));
const auto rotY = glm::rotate(rot.y, glm::vec3(0.0, 1.0, 0.0));
const auto rotZ = glm::rotate(rot.z, glm::vec3(0.0, 0.0, 1.0));
const auto rotMat = rotX * rotY * rotZ;
return posMat * rotMat * scaleMat;
}
glm::mat4
Transform::GetMVP(const Camera & camera) const
{
const auto VP = camera.GetViewProjection();
const auto M = GetModel();
return VP * M;
}
|