aboutsummaryrefslogtreecommitdiff
path: root/src/intersect/normals.cpp
diff options
context:
space:
mode:
authorsotech117 <michael_foiani@brown.edu>2023-12-13 13:47:44 -0500
committersotech117 <michael_foiani@brown.edu>2023-12-13 13:47:44 -0500
commit33a1cdc3532d145944b00a4ca03fd01d4d5b9532 (patch)
tree833760d85ed92c39c1f9ffbd591dde4cf619689e /src/intersect/normals.cpp
parent4fb06778c1a19914c759ab5db495754b1fd9e2c3 (diff)
get the collision detections for cubes and sphers to work using specific cases of separate axis theorem. however, the velocities are no longer flipping.
Diffstat (limited to 'src/intersect/normals.cpp')
-rw-r--r--src/intersect/normals.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/intersect/normals.cpp b/src/intersect/normals.cpp
index 84db534..f9b0ea1 100644
--- a/src/intersect/normals.cpp
+++ b/src/intersect/normals.cpp
@@ -2,6 +2,7 @@
// Created by Michael Foiani on 11/4/23.
//
+#include <iostream>
#include "raytracer/raytracer.h"
glm::vec4 getConeNormal(
@@ -11,7 +12,7 @@ glm::vec4 getConeNormal(
{
return {0.f, -1.f, 0.f, 0.f};
}
- if (RayTracer::floatEquals(intersectPointObject[3], -.5f)) // normal for w base
+ if (RayTracer::floatEquals(intersectPointObject.w, -.5f)) // normal for w base
{
return {0.f, 0.f, 0.f, -1.f};
}
@@ -19,7 +20,7 @@ glm::vec4 getConeNormal(
{
return {0.f, 1.f, 0.f, 0.f};
}
- if (RayTracer::floatEquals(intersectPointObject[3], .5f)) // normal for w top
+ if (RayTracer::floatEquals(intersectPointObject.w, .5f)) // normal for w top
{
return {0.f, 0.f, 0.f, 1.f};
}
@@ -81,11 +82,11 @@ glm::vec4 getCubeNormal(
{
return {0.f, 0.f, 1.f, 0.f};
}
- if (RayTracer::floatEquals(intersectPointObject[3], -.5f)) // neg w
+ if (RayTracer::floatEquals(intersectPointObject.w, -.5f)) // neg w
{
return {0.f, 0.f, 0.f, -1.f};
}
- if (RayTracer::floatEquals(intersectPointObject[3], .5f)) // pos w
+ if (RayTracer::floatEquals(intersectPointObject.w, .5f)) // pos w
{
return {0.f, 0.f, 0.f, 1.f};
}