diff options
| author | Fate Bussey <lafayette_bussey@brown.edu> | 2023-12-12 14:04:17 -0500 |
|---|---|---|
| committer | Fate Bussey <lafayette_bussey@brown.edu> | 2023-12-12 14:04:17 -0500 |
| commit | ba17c6e047e817078b433838a2aedbe5d3ce1d21 (patch) | |
| tree | 56b8946e1aad840d7c575eaa3943bd07c74f33c0 /src/accelerate/bvh.cpp | |
| parent | 2117034251eaa124ec9c6bec4524e490a0ee9ec0 (diff) | |
| parent | 33082ca5ec4c20d34b79b3b1f24f3b3152db2816 (diff) | |
normals complete
Diffstat (limited to 'src/accelerate/bvh.cpp')
| -rw-r--r-- | src/accelerate/bvh.cpp | 12 |
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, |
