diff options
| author | Crozet Sébastien <developer@crozet.re> | 2020-10-26 16:18:44 +0100 |
|---|---|---|
| committer | Crozet Sébastien <developer@crozet.re> | 2020-10-26 16:18:44 +0100 |
| commit | 3fd4a62a2e4d6f5d97412bf80561c23ba43e40a5 (patch) | |
| tree | bd3cb4afb71201a1c8fbbf80771a631bbc98cf62 /src/geometry | |
| parent | d725aa4557b4c26343ba57b294d1ae5b337703e6 (diff) | |
| download | rapier-3fd4a62a2e4d6f5d97412bf80561c23ba43e40a5.tar.gz rapier-3fd4a62a2e4d6f5d97412bf80561c23ba43e40a5.tar.bz2 rapier-3fd4a62a2e4d6f5d97412bf80561c23ba43e40a5.zip | |
Fix 2D compilation.
Diffstat (limited to 'src/geometry')
| -rw-r--r-- | src/geometry/contact_generator/capsule_capsule_contact_generator.rs | 4 | ||||
| -rw-r--r-- | src/geometry/contact_generator/heightfield_shape_contact_generator.rs | 18 | ||||
| -rw-r--r-- | src/geometry/shape.rs | 1 |
3 files changed, 7 insertions, 16 deletions
diff --git a/src/geometry/contact_generator/capsule_capsule_contact_generator.rs b/src/geometry/contact_generator/capsule_capsule_contact_generator.rs index ef18ad2..3104496 100644 --- a/src/geometry/contact_generator/capsule_capsule_contact_generator.rs +++ b/src/geometry/contact_generator/capsule_capsule_contact_generator.rs @@ -39,8 +39,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/heightfield_shape_contact_generator.rs b/src/geometry/contact_generator/heightfield_shape_contact_generator.rs index e66bbac..d48eb1d 100644 --- a/src/geometry/contact_generator/heightfield_shape_contact_generator.rs +++ b/src/geometry/contact_generator/heightfield_shape_contact_generator.rs @@ -109,12 +109,9 @@ fn do_generate_contacts( let shape_type2 = collider2.shape().shape_type(); heightfield1.map_elements_in_local_aabb(&ls_aabb2, &mut |i, part1, _| { - let position1 = *collider1.position(); + let position1 = collider1.position(); #[cfg(feature = "dim2")] - let (position1, dpos1, sub_shape1) = { - let (dpos, half_height) = crate::utils::segment_to_capsule(&part1.a, &part1.b); - (position1 * dpos, dpos, Capsule::new(half_height, 0.0)) - }; + let sub_shape1 = Capsule::new(part1.a, part1.b, 0.0); #[cfg(feature = "dim3")] let sub_shape1 = *part1; @@ -154,7 +151,7 @@ fn do_generate_contacts( shape1: collider2.shape(), shape2: &sub_shape1, position1: collider2.position(), - position2: &position1, + position2: position1, manifold, workspace: sub_detector.workspace.as_deref_mut(), } @@ -165,20 +162,13 @@ fn do_generate_contacts( collider2, shape1: &sub_shape1, shape2: collider2.shape(), - position1: &position1, + position1: position1, position2: collider2.position(), manifold, workspace: sub_detector.workspace.as_deref_mut(), } }; - #[cfg(feature = "dim2")] - if coll_pair.collider1 != ctxt2.manifold.pair.collider1 { - ctxt2.manifold.delta2 = collider1.position_wrt_parent() * dpos1; - } else { - ctxt2.manifold.delta1 = collider1.position_wrt_parent() * dpos1; - } - (sub_detector.generator.generate_contacts)(&mut ctxt2) }); diff --git a/src/geometry/shape.rs b/src/geometry/shape.rs index 3f1ca04..54a156b 100644 --- a/src/geometry/shape.rs +++ b/src/geometry/shape.rs @@ -221,6 +221,7 @@ impl Shape for Capsule { ShapeType::Capsule } + #[cfg(feature = "dim3")] fn as_polygonal_feature_map(&self) -> Option<(&dyn PolygonalFeatureMap, f32)> { Some((&self.segment as &dyn PolygonalFeatureMap, self.radius)) } |
