From 73848865123ce04c4fcf651897d4b3e5c2d89fd8 Mon Sep 17 00:00:00 2001 From: Rhys Lloyd Date: Thu, 20 Nov 2025 09:05:29 -0800 Subject: [PATCH] work --- engine/physics/src/minimum_difference.rs | 93 ++++++++++++------------ 1 file changed, 47 insertions(+), 46 deletions(-) diff --git a/engine/physics/src/minimum_difference.rs b/engine/physics/src/minimum_difference.rs index 11abdda3..3a776fd5 100644 --- a/engine/physics/src/minimum_difference.rs +++ b/engine/physics/src/minimum_difference.rs @@ -5,11 +5,6 @@ use crate::model::TransformedMesh; // This algorithm is based on Lua code // written by Trey Reynolds in 2021 -// local function minimumDifference( -// queryP, radiusP, -// queryQ, radiusQ, -// exitRadius, testIntersection -// ) pub struct MinimumDifference{ distance:Planar64, @@ -19,6 +14,11 @@ pub struct MinimumDifference{ q_norm:Planar64Vec3, } +// local function minimumDifference( +// queryP, radiusP, +// queryQ, radiusQ, +// exitRadius, testIntersection +// ) pub fn minimum_difference(p:&TransformedMesh,q:&TransformedMesh)->Option{ // local initialAxis = queryQ() - queryP() // local newPoint0 = queryP(initialAxis) @@ -27,51 +27,52 @@ pub fn minimum_difference(p:&TransformedMesh,q:&TransformedMesh)->Option (exitRadius + radiusP + radiusQ)*direction.magnitude then - // return false - // end - - // if - // direction:Dot(newPoint - a) <= 0 or - // absDet(newPoint, a, b, c) < 1e-6 - // then - // local norm = direction.unit - // local dist = a:Dot(norm) - // local hits = -dist < radiusP + radiusQ - // if testIntersection then - // return hits - // end - // if -dist <= exitRadius + radiusP + radiusQ then - // local posP, posQ = decompose(Vector3.zero, a0, a1, b0, b1, c0, c1) - // return hits, -dist - radiusP - radiusQ, - // posP - radiusP*norm, -norm, - // posQ + radiusQ*norm, norm - // end - // return false - // end - // end + // if -direction:Dot(newPoint) > (exitRadius + radiusP + radiusQ)*direction.magnitude then + // return false + // end + // if + // direction:Dot(newPoint - a) <= 0 or + // absDet(newPoint, a, b, c) < 1e-6 + // then + // local norm = direction.unit + // local dist = a:Dot(norm) + // local hits = -dist < radiusP + radiusQ + // if testIntersection then + // return hits + // end + // if -dist <= exitRadius + radiusP + radiusQ then + // local posP, posQ = decompose(Vector3.zero, a0, a1, b0, b1, c0, c1) + // return hits, -dist - radiusP - radiusQ, + // posP - radiusP*norm, -norm, + // posQ + radiusQ*norm, norm + // end + // return false + // end + panic!("quit underlining all my code!"); + } // return nil None }