aboutsummaryrefslogtreecommitdiff
path: root/src/vec4ops/vec4ops.cpp
diff options
context:
space:
mode:
authorDavid Doan <daviddoan@Davids-MacBook-Pro-193.local>2023-12-13 01:31:00 -0500
committerDavid Doan <daviddoan@Davids-MacBook-Pro-193.local>2023-12-13 01:31:00 -0500
commit086dff023dc8a13d5e3a8867a845d6244409c8ef (patch)
tree38fb8b60f69dc307e7c61f06817d3821f5a6a9a7 /src/vec4ops/vec4ops.cpp
parente5e01a62cd12a338b66c0a33775e91854a305ec4 (diff)
parent07776876eb4638a224fd332944ce9ddca1f5a592 (diff)
Merge branch 'main' of https://github.com/NicholasBottone/the-all-americans-in-cs1230
grinds and merge:
Diffstat (limited to 'src/vec4ops/vec4ops.cpp')
-rw-r--r--src/vec4ops/vec4ops.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/vec4ops/vec4ops.cpp b/src/vec4ops/vec4ops.cpp
index 9bd29e8..3ef939a 100644
--- a/src/vec4ops/vec4ops.cpp
+++ b/src/vec4ops/vec4ops.cpp
@@ -23,7 +23,6 @@ glm::vec4 Vec4Ops::cross4(
result[1] = -(u[0] * f) + (u[2] * c) - (u[3] * b);
result[2] = (u[0] * e) - (u[1] * c) + (u[3] * a);
result[3] = -(u[0] * d) + (u[1] * b) - (u[2] * a);
-
return result;
}
@@ -34,8 +33,8 @@ glm::vec4 Vec4Ops::dot4(
}
glm::mat4 Vec4Ops::getViewMatrix4(
- glm::vec4 upVector,
glm::vec4 lookVector,
+ glm::vec4 upVector,
glm::vec4 overVector) {
// start with the e3 basis vector, the normalized look vector
glm::vec4 e3 = glm::normalize(lookVector);
@@ -43,14 +42,14 @@ glm::mat4 Vec4Ops::getViewMatrix4(
// calculate e0 basis vector, from the combinatory cross of up and over with e3
glm::vec4 e0 = cross4(upVector, overVector, e3);
e0 = glm::normalize(e0);
- if (glm::distance(e0, glm::vec4{0, 0, 0, 0}) < 0.0001f) {
+ if (glm::isnan(e0[0]) || glm::isnan(e0[1]) || glm::isnan(e0[2]) || glm::isnan(e0[3])) {
throw std::runtime_error("invalid up vector");
}
// calculate e1 basis vector, from the cross of only the over vector
glm::vec4 e1 = cross4(overVector, e3, e0);
e1 = glm::normalize(e1);
- if (glm::distance(e1, glm::vec4{0, 0, 0, 0}) < 0.0001f) {
+ if (glm::isnan(e1[0]) || glm::isnan(e1[1]) || glm::isnan(e1[2]) || glm::isnan(e1[3])) {
throw std::runtime_error("invalid over vector");
}