16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-22 03:29:19 +02:00

use glm instead of Math3D in vehicle

WARNING: Model rotation is broken
This commit is contained in:
docentYT
2026-04-27 13:07:38 +02:00
parent b712ca4d68
commit fae68642bc
16 changed files with 168 additions and 140 deletions

View File

@@ -34,6 +34,13 @@ glm::vec3 RotateY(glm::vec3 v, float angle)
return glm::vec3(c * v.x + s * v.z, v.y, c * v.z - s * v.x);
}
glm::dvec3 RotateY(glm::dvec3 v, double angle)
{
double s = sin(angle);
double c = cos(angle);
return glm::vec3(c * v.x + s * v.z, v.y, c * v.z - s * v.x);
}
void vector3::RotateZ(double angle)
{

View File

@@ -15,6 +15,27 @@ namespace Math3D
{
glm::vec3 RotateY(glm::vec3 v, float angle);
glm::dvec3 RotateY(glm::dvec3 v, double angle);
inline glm::dmat4 BasisChange(glm::dvec3 u, glm::dvec3 v, glm::dvec3 n)
{
glm::dmat4 M(1.0);
M[0] = glm::dvec4(u, 0.0); // kolumna 0
M[1] = glm::dvec4(v, 0.0); // kolumna 1
M[2] = glm::dvec4(n, 0.0); // kolumna 2
M[3] = glm::dvec4(0.0, 0.0, 0.0, 1.0); // kolumna 3
return M;
}
inline glm::dmat4 BasisChange(glm::dvec3 v, glm::dvec3 n)
{
glm::dvec3 u = glm::cross(v, n);
return BasisChange(u, v, n);
}
// Define this to have Math3D.cp generate a main which tests these classes
//#define TEST_MATH3D