parry3d/query/distance/
distance_halfspace_support_map.rs1use crate::math::{Isometry, Real};
2use crate::shape::HalfSpace;
3use crate::shape::SupportMap;
4use na;
5
6pub fn distance_halfspace_support_map<G: ?Sized + SupportMap>(
8 pos12: &Isometry<Real>,
9 halfspace: &HalfSpace,
10 other: &G,
11) -> Real {
12 let deepest = other.support_point_toward(pos12, &-halfspace.normal);
13 halfspace.normal.dot(&deepest.coords).max(na::zero())
14}
15
16pub fn distance_support_map_halfspace<G: ?Sized + SupportMap>(
18 pos12: &Isometry<Real>,
19 other: &G,
20 halfspace: &HalfSpace,
21) -> Real {
22 distance_halfspace_support_map(&pos12.inverse(), halfspace, other)
23}