diff options
Diffstat (limited to 'src/geometry/collider.rs')
| -rw-r--r-- | src/geometry/collider.rs | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/geometry/collider.rs b/src/geometry/collider.rs index efe6304..95ae273 100644 --- a/src/geometry/collider.rs +++ b/src/geometry/collider.rs @@ -8,8 +8,8 @@ use crate::math::{AngVector, Isometry, Point, Real, Rotation, Vector, DIM}; use crate::parry::transformation::vhacd::VHACDParameters; use crate::pipeline::{ActiveEvents, ActiveHooks}; use na::Unit; -use parry::bounding_volume::AABB; -use parry::shape::Shape; +use parry::bounding_volume::Aabb; +use parry::shape::{Shape, TriMeshFlags}; #[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))] #[derive(Clone)] @@ -348,13 +348,13 @@ impl Collider { } /// Compute the axis-aligned bounding box of this collider. - pub fn compute_aabb(&self) -> AABB { + pub fn compute_aabb(&self) -> Aabb { self.shape.compute_aabb(&self.pos) } /// Compute the axis-aligned bounding box of this collider moving from its current position /// to the given `next_position` - pub fn compute_swept_aabb(&self, next_position: &Isometry<Real>) -> AABB { + pub fn compute_swept_aabb(&self, next_position: &Isometry<Real>) -> Aabb { self.shape.compute_swept_aabb(&self.pos, next_position) } @@ -550,6 +550,16 @@ impl ColliderBuilder { Self::new(SharedShape::trimesh(vertices, indices)) } + /// Initializes a collider builder with a triangle mesh shape defined by its vertex and index buffers and + /// flags controlling its pre-processing. + pub fn trimesh_with_flags( + vertices: Vec<Point<Real>>, + indices: Vec<[u32; 3]>, + flags: TriMeshFlags, + ) -> Self { + Self::new(SharedShape::trimesh_with_flags(vertices, indices, flags)) + } + /// Initializes a collider builder with a compound shape obtained from the decomposition of /// the given trimesh (in 3D) or polyline (in 2D) into convex parts. pub fn convex_decomposition(vertices: &[Point<Real>], indices: &[[u32; DIM]]) -> Self { |
