summaryrefslogtreecommitdiff
path: root/lib/maths.cpp
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2021-11-16 00:07:48 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2021-11-16 00:07:48 +0000
commitb7fadd730a78671a0eaf55c36df24c04661ef2c3 (patch)
treea9d5bce62b3c6e42008d7e0f637665aa97b73764 /lib/maths.cpp
parentDon't write null value for pointers (diff)
downloadilt-b7fadd730a78671a0eaf55c36df24c04661ef2c3.tar.bz2
ilt-b7fadd730a78671a0eaf55c36df24c04661ef2c3.tar.xz
ilt-b7fadd730a78671a0eaf55c36df24c04661ef2c3.zip
Swap y,z axis
This was a pain... but all the coords make much more sense now and a lot of mystery negation has disappeared.
Diffstat (limited to 'lib/maths.cpp')
-rw-r--r--lib/maths.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/lib/maths.cpp b/lib/maths.cpp
index 0298363..e894d02 100644
--- a/lib/maths.cpp
+++ b/lib/maths.cpp
@@ -9,7 +9,7 @@ glm::mat4
flat_orientation(const glm::vec3 & diff)
{
static const auto oneeighty {glm::rotate(pi, up)};
- const auto flatdiff {glm::normalize(glm::vec3 {diff.x, 0, diff.z})};
+ const auto flatdiff {glm::normalize(!!diff)};
auto e {glm::orientation(flatdiff, north)};
// Handle if diff is exactly opposite to north
return (std::isnan(e[0][0])) ? oneeighty : e;
@@ -42,16 +42,16 @@ rotate_flat(float a)
return rotation<glm::mat2>(a, {0, 0}, {0, 1}, {1, 1}, {1, 0});
}
-// Create a roll transformation matrix
+// Create a yaw transformation matrix
glm::mat4
-rotate_roll(float a)
+rotate_yaw(float a)
{
- return rotation<glm::mat4>(a, {0, 0}, {0, 1}, {1, 1}, {1, 0});
+ return rotation<glm::mat4>(a, {0, 0}, {1, 0}, {1, 1}, {0, 1});
}
-// Create a yaw transformation matrix
+// Create a roll transformation matrix
glm::mat4
-rotate_yaw(float a)
+rotate_roll(float a)
{
return rotation<glm::mat4>(a, {0, 0}, {2, 0}, {2, 2}, {0, 2});
}
@@ -63,7 +63,7 @@ rotate_pitch(float a)
return rotation<glm::mat4>(a, {1, 1}, {1, 2}, {2, 2}, {2, 1});
}
-// Create a bomcined yaw, pitch, roll transformation matrix
+// Create a combined yaw, pitch, roll transformation matrix
glm::mat4
rotate_ypr(glm::vec3 a)
{
@@ -73,13 +73,13 @@ rotate_ypr(glm::vec3 a)
float
vector_yaw(const glm::vec3 & diff)
{
- return std::atan2(diff.x, diff.z);
+ return std::atan2(diff.x, diff.y);
}
float
vector_pitch(const glm::vec3 & diff)
{
- return std::atan(diff.y);
+ return std::atan(diff.z);
}
float