-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathObject.cpp
More file actions
37 lines (32 loc) · 942 Bytes
/
Object.cpp
File metadata and controls
37 lines (32 loc) · 942 Bytes
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
28
29
30
31
32
33
34
35
36
37
#include"Object.h"
namespace violet {
mat4 Object::localToParent() {
return glm::mat4(//transit
glm::vec4(1.f, 0.f, 0.f, 0.f),
glm::vec4(0.f, 1.f, 0.f, 0.f),
glm::vec4(0.f, 0.f, 1.f, 0.f),
glm::vec4(_posi.x, _posi.y, _posi.z, 1.f))
* math::rotatez(_rotate.z)//rotate
* math::rotatey(_rotate.y)
* math::rotatex(_rotate.x)
*glm::mat4(//scale
glm::vec4(_scaler.x, 0.f, 0.f, 0.f),
glm::vec4(0.f, _scaler.y, 0.f, 0.f),
glm::vec4(0.f, 0.f, _scaler.z, 0.f),
glm::vec4(0.f, 0.f, 0.f, 1.f));
}
mat4 Object::getToWorldMat() {
if(_parent.get())
return _parent->getToWorldMat() * localToParent();
return localToParent();
}
vec3 Object::getForward() {
return normalize(vec3(math::rotate(_rotate) * math::forward));
}
vec3 Object::getUp() {
return normalize(vec3(math::rotate(_rotate) * math::up));
}
vec3 Object::getRight() {
return normalize(vec3(math::rotate(_rotate) * math::right));
}
}