diff options
author | sotech117 <michael_foiani@brown.edu> | 2023-12-13 13:47:44 -0500 |
---|---|---|
committer | sotech117 <michael_foiani@brown.edu> | 2023-12-13 13:47:44 -0500 |
commit | 33a1cdc3532d145944b00a4ca03fd01d4d5b9532 (patch) | |
tree | 833760d85ed92c39c1f9ffbd591dde4cf619689e /src/intersect/normals.cpp | |
parent | 4fb06778c1a19914c759ab5db495754b1fd9e2c3 (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.cpp | 9 |
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}; } |