aboutsummaryrefslogtreecommitdiff
path: root/src/accelerate/bvh.cpp
diff options
context:
space:
mode:
authorDavid Doan <daviddoan@Davids-MacBook-Pro-100.local>2023-12-12 13:59:38 -0500
committerDavid Doan <daviddoan@Davids-MacBook-Pro-100.local>2023-12-12 13:59:38 -0500
commit33082ca5ec4c20d34b79b3b1f24f3b3152db2816 (patch)
tree7adb26edf8302ec33e53645a516ceaa3803fbe83 /src/accelerate/bvh.cpp
parent58c896801817ac67913644ccd9373cd18774232a (diff)
should be building
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,