more naming things

This commit is contained in:
2025-11-24 14:18:06 -08:00
parent ee50f8dc1e
commit 0048306236

View File

@@ -460,7 +460,7 @@ pub struct Details{
pub fn contains_point(mesh:&MinkowskiMesh,point:Planar64Vec3)->bool{
const ENABLE_FAST_FAIL:bool=true;
minimum_difference::<ENABLE_FAST_FAIL,_>(mesh,point,
// exact
// on_exact
|_simplex|{
// local norm = direction.unit
// local dist = a:Dot(norm)
@@ -468,7 +468,7 @@ pub fn contains_point(mesh:&MinkowskiMesh,point:Planar64Vec3)->bool{
// return hits
unimplemented!()
},
// approximate
// on_intersecting
|_simplex|{
// intersection is guaranteed at this point
true
@@ -480,9 +480,9 @@ pub fn contains_point(mesh:&MinkowskiMesh,point:Planar64Vec3)->bool{
pub fn closest_fev(mesh:&MinkowskiMesh,point:Planar64Vec3)->Topology{
const ENABLE_FAST_FAIL:bool=false;
minimum_difference::<ENABLE_FAST_FAIL,_>(mesh,point,
// exact
// on_exact
|simplex|Topology{simplex},
// approximate
// on_intersecting
|simplex|{
// local norm, dist, u0, u1, v0, v1, w0, w1 = expand(queryP, queryQ, a0, a1, b0, b1, c0, c1, d0, d1, 1e-5)
let simplex=refine_to_exact(mesh,simplex);
@@ -501,9 +501,9 @@ pub fn closest_fev(mesh:&MinkowskiMesh,point:Planar64Vec3)->Topology{
fn minimum_difference<const ENABLE_FAST_FAIL:bool,T>(
mesh:&MinkowskiMesh,
rel_pos:Planar64Vec3,
exact:impl Fn(Simplex)->T,
approximate:impl Fn(Simplex)->T,
fast_fail:T,
on_exact:impl Fn(Simplex)->T,
on_intersecting:impl Fn(Simplex)->T,
on_fast_fail:T,
)->T{
// local initialAxis = queryQ() - queryP()
// local new_point_p = queryP(initialAxis)
@@ -518,7 +518,9 @@ fn minimum_difference<const ENABLE_FAST_FAIL:bool,T>(
loop{
// if a and b and c and d then
if simplex.len()==SIMPLEX_TETRAHEDRON{
return approximate(simplex);
// Enough information to conclude that the meshes are intersecting.
// Topology information is computed if needed.
return on_intersecting(simplex);
}
// new_point_p = queryP(-direction)
@@ -528,7 +530,7 @@ fn minimum_difference<const ENABLE_FAST_FAIL:bool,T>(
// if -direction:Dot(next_point) > (exitRadius + radiusP + radiusQ)*direction.magnitude then
if ENABLE_FAST_FAIL&&direction.dot(mesh.vert(next_point)+rel_pos).is_negative(){
return fast_fail;
return on_fast_fail;
}
// push_front
@@ -546,7 +548,8 @@ fn minimum_difference<const ENABLE_FAST_FAIL:bool,T>(
// absDet(next_point, a, b, c) < 1e-6
if !direction.dot(mesh.vert(simplex[0])-mesh.vert(simplex[1])).is_positive()
||simplex_abs_det_is_zero(mesh,&simplex){
return exact(simplex);
// Found enough information to compute the exact closest point.
return on_exact(simplex);
}
// direction, a0, a1, b0, b1, c0, c1, d0, d1 = reduceSimplex(new_point_p, new_point_q, a0, a1, b0, b1, c0, c1)