aboutsummaryrefslogtreecommitdiff
path: root/src/geometry/collider.rs
diff options
context:
space:
mode:
authorCrozet Sébastien <developer@crozet.re>2020-12-14 15:51:43 +0100
committerCrozet Sébastien <developer@crozet.re>2020-12-29 11:31:00 +0100
commitcc6d1b973002b4d366bc81ec6bf9e8240ad7b404 (patch)
tree66827195ef82f22e545fc9ee4e0bade9baa8031b /src/geometry/collider.rs
parent9bf1321f8f1d2e116f44c2461a53f302c4ef4171 (diff)
downloadrapier-cc6d1b973002b4d366bc81ec6bf9e8240ad7b404.tar.gz
rapier-cc6d1b973002b4d366bc81ec6bf9e8240ad7b404.tar.bz2
rapier-cc6d1b973002b4d366bc81ec6bf9e8240ad7b404.zip
Outsource the Shape trait, wquadtree, and shape types.
Diffstat (limited to 'src/geometry/collider.rs')
-rw-r--r--src/geometry/collider.rs18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/geometry/collider.rs b/src/geometry/collider.rs
index 8154554..1275358 100644
--- a/src/geometry/collider.rs
+++ b/src/geometry/collider.rs
@@ -1,12 +1,13 @@
+use crate::buckler::shape::HalfSpace;
use crate::dynamics::{MassProperties, RigidBodyHandle, RigidBodySet};
-use crate::geometry::{
- Ball, Capsule, Cuboid, HeightField, InteractionGroups, Segment, Shape, ShapeType, Triangle,
- Trimesh,
-};
-#[cfg(feature = "dim3")]
-use crate::geometry::{Cone, Cylinder, RoundCylinder};
+use crate::geometry::InteractionGroups;
use crate::math::{AngVector, Isometry, Point, Rotation, Vector};
use buckler::bounding_volume::AABB;
+use buckler::shape::{
+ Ball, Capsule, Cuboid, HeightField, Segment, Shape, ShapeType, TriMesh, Triangle,
+};
+#[cfg(feature = "dim3")]
+use buckler::shape::{Cone, Cylinder, RoundCylinder};
use na::Point3;
use std::ops::Deref;
use std::sync::Arc;
@@ -77,7 +78,7 @@ impl ColliderShape {
/// Initializes a triangle mesh shape defined by its vertex and index buffers.
pub fn trimesh(vertices: Vec<Point<f32>>, indices: Vec<Point3<u32>>) -> Self {
- ColliderShape(Arc::new(Trimesh::new(vertices, indices)))
+ ColliderShape(Arc::new(TriMesh::new(vertices, indices)))
}
/// Initializes an heightfield shape defined by its set of height and a scale
@@ -165,8 +166,9 @@ impl<'de> serde::Deserialize<'de> for ColliderShape {
Some(ShapeType::Capsule) => deser::<A, Capsule>(&mut seq)?,
Some(ShapeType::Triangle) => deser::<A, Triangle>(&mut seq)?,
Some(ShapeType::Segment) => deser::<A, Segment>(&mut seq)?,
- Some(ShapeType::Trimesh) => deser::<A, Trimesh>(&mut seq)?,
+ Some(ShapeType::TriMesh) => deser::<A, TriMesh>(&mut seq)?,
Some(ShapeType::HeightField) => deser::<A, HeightField>(&mut seq)?,
+ Some(ShapeType::HalfSpace) => deser::<A, HalfSpace>(&mut seq)?,
#[cfg(feature = "dim3")]
Some(ShapeType::Cylinder) => deser::<A, Cylinder>(&mut seq)?,
#[cfg(feature = "dim3")]