diff options
| author | Crozet Sébastien <developer@crozet.re> | 2020-10-26 15:58:30 +0100 |
|---|---|---|
| committer | Crozet Sébastien <developer@crozet.re> | 2020-10-26 15:58:30 +0100 |
| commit | 2b628f9580a826722346983ef42672d4e8dd8053 (patch) | |
| tree | 9e72cc1645140eda69696eedb3c245fb667eb540 /src/geometry/contact_generator | |
| parent | 3da333f11c93898808eb9233c0cf333743bbf906 (diff) | |
| download | rapier-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')
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; /* * |
