aboutsummaryrefslogtreecommitdiff
path: root/src/geometry/contact_generator
diff options
context:
space:
mode:
authorCrozet Sébastien <developer@crozet.re>2020-10-26 15:58:30 +0100
committerCrozet Sébastien <developer@crozet.re>2020-10-26 15:58:30 +0100
commit2b628f9580a826722346983ef42672d4e8dd8053 (patch)
tree9e72cc1645140eda69696eedb3c245fb667eb540 /src/geometry/contact_generator
parent3da333f11c93898808eb9233c0cf333743bbf906 (diff)
downloadrapier-2b628f9580a826722346983ef42672d4e8dd8053.tar.gz
rapier-2b628f9580a826722346983ef42672d4e8dd8053.tar.bz2
rapier-2b628f9580a826722346983ef42672d4e8dd8053.zip
Redefine capsules as a segment with a radius, allowing us to reuse the pfm_pfm_contact generator for it.
Diffstat (limited to 'src/geometry/contact_generator')
-rw-r--r--src/geometry/contact_generator/capsule_capsule_contact_generator.rs4
-rw-r--r--src/geometry/contact_generator/contact_dispatcher.rs4
-rw-r--r--src/geometry/contact_generator/cuboid_capsule_contact_generator.rs2
3 files changed, 6 insertions, 4 deletions
diff --git a/src/geometry/contact_generator/capsule_capsule_contact_generator.rs b/src/geometry/contact_generator/capsule_capsule_contact_generator.rs
index b24227a..ef18ad2 100644
--- a/src/geometry/contact_generator/capsule_capsule_contact_generator.rs
+++ b/src/geometry/contact_generator/capsule_capsule_contact_generator.rs
@@ -154,8 +154,8 @@ pub fn generate_contacts<'a>(
let pos12 = pos1.inverse() * pos2;
let pos21 = pos12.inverse();
- let seg1 = capsule1.segment();
- let seg2_1 = capsule2.segment().transformed(&pos12);
+ let seg1 = capsule1.segment;
+ let seg2_1 = capsule2.segment.transformed(&pos12);
let (loc1, loc2) = ncollide::query::closest_points_segment_segment_with_locations_nD(
(&seg1.a, &seg1.b),
(&seg2_1.a, &seg2_1.b),
diff --git a/src/geometry/contact_generator/contact_dispatcher.rs b/src/geometry/contact_generator/contact_dispatcher.rs
index 62a1f71..1872c7b 100644
--- a/src/geometry/contact_generator/contact_dispatcher.rs
+++ b/src/geometry/contact_generator/contact_dispatcher.rs
@@ -99,7 +99,9 @@ impl ContactDispatcher for DefaultContactDispatcher {
| (ShapeType::Cone, _)
| (_, ShapeType::Cone)
| (ShapeType::RoundCylinder, _)
- | (_, ShapeType::RoundCylinder) => (
+ | (_, ShapeType::RoundCylinder)
+ | (ShapeType::Capsule, _)
+ | (_, ShapeType::Capsule) => (
PrimitiveContactGenerator {
generate_contacts: super::generate_contacts_pfm_pfm,
..PrimitiveContactGenerator::default()
diff --git a/src/geometry/contact_generator/cuboid_capsule_contact_generator.rs b/src/geometry/contact_generator/cuboid_capsule_contact_generator.rs
index 8650a78..3fd4a17 100644
--- a/src/geometry/contact_generator/cuboid_capsule_contact_generator.rs
+++ b/src/geometry/contact_generator/cuboid_capsule_contact_generator.rs
@@ -54,7 +54,7 @@ pub fn generate_contacts<'a>(
return;
}
- let segment2 = capsule2.segment();
+ let segment2 = capsule2.segment;
/*
*