1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use crate::bounding_volume::AABB;
use crate::math::{Isometry, Real, Vector};
use crate::shape::Capsule;
impl Capsule {
#[inline]
pub fn aabb(&self, pos: &Isometry<Real>) -> AABB {
self.transform_by(pos).local_aabb()
}
#[inline]
pub fn local_aabb(&self) -> AABB {
let a = self.segment.a;
let b = self.segment.b;
let mins = a.coords.inf(&b.coords) - Vector::repeat(self.radius);
let maxs = a.coords.sup(&b.coords) + Vector::repeat(self.radius);
AABB::new(mins.into(), maxs.into())
}
}