parry3d/bounding_volume/
aabb_support_map.rs1use crate::bounding_volume;
2use crate::bounding_volume::Aabb;
3use crate::math::{Isometry, Real};
4use crate::shape::Segment;
5#[cfg(feature = "dim3")]
6use crate::shape::{Cone, Cylinder};
7
8#[cfg(feature = "dim3")]
9impl Cone {
10 #[inline]
12 pub fn aabb(&self, pos: &Isometry<Real>) -> Aabb {
13 bounding_volume::details::support_map_aabb(pos, self)
14 }
15
16 #[inline]
18 pub fn local_aabb(&self) -> Aabb {
19 bounding_volume::details::local_support_map_aabb(self)
20 }
21}
22
23#[cfg(feature = "dim3")]
24impl Cylinder {
25 #[inline]
27 pub fn aabb(&self, pos: &Isometry<Real>) -> Aabb {
28 bounding_volume::details::support_map_aabb(pos, self)
29 }
30
31 #[inline]
33 pub fn local_aabb(&self) -> Aabb {
34 bounding_volume::details::local_support_map_aabb(self)
35 }
36}
37
38impl Segment {
39 #[inline]
41 pub fn aabb(&self, pos: &Isometry<Real>) -> Aabb {
42 self.transformed(pos).local_aabb()
43 }
44
45 #[inline]
47 pub fn local_aabb(&self) -> Aabb {
48 bounding_volume::details::local_support_map_aabb(self)
49 }
50}