aboutsummaryrefslogtreecommitdiff
path: root/src/accelerate/bvh.cpp
diff options
context:
space:
mode:
authorFate Bussey <lafayette_bussey@brown.edu>2023-12-12 14:04:17 -0500
committerFate Bussey <lafayette_bussey@brown.edu>2023-12-12 14:04:17 -0500
commitba17c6e047e817078b433838a2aedbe5d3ce1d21 (patch)
tree56b8946e1aad840d7c575eaa3943bd07c74f33c0 /src/accelerate/bvh.cpp
parent2117034251eaa124ec9c6bec4524e490a0ee9ec0 (diff)
parent33082ca5ec4c20d34b79b3b1f24f3b3152db2816 (diff)
normals complete
Diffstat (limited to 'src/accelerate/bvh.cpp')
-rw-r--r--src/accelerate/bvh.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/accelerate/bvh.cpp b/src/accelerate/bvh.cpp
index ce104a0..19f9390 100644
--- a/src/accelerate/bvh.cpp
+++ b/src/accelerate/bvh.cpp
@@ -83,6 +83,18 @@ float intersectRegion(
return tMin;
}
+void updateAfterCollision(RenderShapeData& objA, RenderShapeData& objB) {
+ glm::vec3 vA_prime = ((objA.mass - objB.mass) * objA.velocity + 2 * objB.mass * objB.velocity) / (objA.mass + objB.mass);
+ glm::vec3 vB_prime = ((objB.mass - objA.mass) * objB.velocity + 2 * objA.mass * objA.velocity) / (objA.mass + objB.mass);
+
+ objA.velocity = glm::vec4(vA_prime, 0.f);
+ objB.velocity = glm::vec4(vB_prime, 0.f);
+
+ objA.position += objA.velocity;
+ objB.position += objB.velocity;
+
+}
+
float RayTracer::traverseBVH(
glm::vec4 p,
glm::vec4 d,