solid_point_query3d/
solid_point_query3d.rs

1use parry3d::math::{Pose, Vector};
2use parry3d::query::PointQuery;
3use parry3d::shape::Cuboid;
4
5fn main() {
6    let cuboid = Cuboid::new(Vector::new(1.0, 2.0, 2.0));
7    let pt_inside = Vector::ZERO;
8    let pt_outside = Vector::new(2.0, 2.0, 2.0);
9
10    // Solid projection.
11    assert_eq!(
12        cuboid.distance_to_point(&Pose::identity(), pt_inside, true),
13        0.0
14    );
15
16    // Non-solid projection.
17    assert_eq!(
18        cuboid.distance_to_point(&Pose::identity(), pt_inside, false),
19        -1.0
20    );
21
22    // The other point is outside of the cuboid so the `solid` flag has no effect.
23    assert_eq!(
24        cuboid.distance_to_point(&Pose::identity(), pt_outside, false),
25        1.0
26    );
27    assert_eq!(
28        cuboid.distance_to_point(&Pose::identity(), pt_outside, true),
29        1.0
30    );
31}