parry2d/query/point/
point_cuboid.rs

1use crate::bounding_volume::Aabb;
2use crate::math::{Real, Vector};
3use crate::query::{PointProjection, PointQuery};
4use crate::shape::{Cuboid, FeatureId};
5
6impl PointQuery for Cuboid {
7    #[inline]
8    fn project_local_point(&self, pt: Vector, solid: bool) -> PointProjection {
9        let dl = -self.half_extents;
10        let ur = self.half_extents;
11        Aabb::new(dl, ur).project_local_point(pt, solid)
12    }
13
14    #[inline]
15    fn project_local_point_and_get_feature(&self, pt: Vector) -> (PointProjection, FeatureId) {
16        let dl = -self.half_extents;
17        let ur = self.half_extents;
18        Aabb::new(dl, ur).project_local_point_and_get_feature(pt)
19    }
20
21    #[inline]
22    fn distance_to_local_point(&self, pt: Vector, solid: bool) -> Real {
23        let dl = -self.half_extents;
24        let ur = self.half_extents;
25        Aabb::new(dl, ur).distance_to_local_point(pt, solid)
26    }
27
28    #[inline]
29    fn contains_local_point(&self, pt: Vector) -> bool {
30        let dl = -self.half_extents;
31        let ur = self.half_extents;
32        Aabb::new(dl, ur).contains_local_point(pt)
33    }
34}