Fix 2D compilation.
This commit is contained in:
@@ -39,8 +39,8 @@ pub fn generate_contacts<'a>(
|
|||||||
let pos12 = pos1.inverse() * pos2;
|
let pos12 = pos1.inverse() * pos2;
|
||||||
let pos21 = pos12.inverse();
|
let pos21 = pos12.inverse();
|
||||||
|
|
||||||
let seg1 = capsule1.segment();
|
let seg1 = capsule1.segment;
|
||||||
let seg2_1 = capsule2.segment().transformed(&pos12);
|
let seg2_1 = capsule2.segment.transformed(&pos12);
|
||||||
let (loc1, loc2) = ncollide::query::closest_points_segment_segment_with_locations_nD(
|
let (loc1, loc2) = ncollide::query::closest_points_segment_segment_with_locations_nD(
|
||||||
(&seg1.a, &seg1.b),
|
(&seg1.a, &seg1.b),
|
||||||
(&seg2_1.a, &seg2_1.b),
|
(&seg2_1.a, &seg2_1.b),
|
||||||
|
|||||||
@@ -109,12 +109,9 @@ fn do_generate_contacts(
|
|||||||
let shape_type2 = collider2.shape().shape_type();
|
let shape_type2 = collider2.shape().shape_type();
|
||||||
|
|
||||||
heightfield1.map_elements_in_local_aabb(&ls_aabb2, &mut |i, part1, _| {
|
heightfield1.map_elements_in_local_aabb(&ls_aabb2, &mut |i, part1, _| {
|
||||||
let position1 = *collider1.position();
|
let position1 = collider1.position();
|
||||||
#[cfg(feature = "dim2")]
|
#[cfg(feature = "dim2")]
|
||||||
let (position1, dpos1, sub_shape1) = {
|
let sub_shape1 = Capsule::new(part1.a, part1.b, 0.0);
|
||||||
let (dpos, half_height) = crate::utils::segment_to_capsule(&part1.a, &part1.b);
|
|
||||||
(position1 * dpos, dpos, Capsule::new(half_height, 0.0))
|
|
||||||
};
|
|
||||||
#[cfg(feature = "dim3")]
|
#[cfg(feature = "dim3")]
|
||||||
let sub_shape1 = *part1;
|
let sub_shape1 = *part1;
|
||||||
|
|
||||||
@@ -154,7 +151,7 @@ fn do_generate_contacts(
|
|||||||
shape1: collider2.shape(),
|
shape1: collider2.shape(),
|
||||||
shape2: &sub_shape1,
|
shape2: &sub_shape1,
|
||||||
position1: collider2.position(),
|
position1: collider2.position(),
|
||||||
position2: &position1,
|
position2: position1,
|
||||||
manifold,
|
manifold,
|
||||||
workspace: sub_detector.workspace.as_deref_mut(),
|
workspace: sub_detector.workspace.as_deref_mut(),
|
||||||
}
|
}
|
||||||
@@ -165,20 +162,13 @@ fn do_generate_contacts(
|
|||||||
collider2,
|
collider2,
|
||||||
shape1: &sub_shape1,
|
shape1: &sub_shape1,
|
||||||
shape2: collider2.shape(),
|
shape2: collider2.shape(),
|
||||||
position1: &position1,
|
position1: position1,
|
||||||
position2: collider2.position(),
|
position2: collider2.position(),
|
||||||
manifold,
|
manifold,
|
||||||
workspace: sub_detector.workspace.as_deref_mut(),
|
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)
|
(sub_detector.generator.generate_contacts)(&mut ctxt2)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -221,6 +221,7 @@ impl Shape for Capsule {
|
|||||||
ShapeType::Capsule
|
ShapeType::Capsule
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "dim3")]
|
||||||
fn as_polygonal_feature_map(&self) -> Option<(&dyn PolygonalFeatureMap, f32)> {
|
fn as_polygonal_feature_map(&self) -> Option<(&dyn PolygonalFeatureMap, f32)> {
|
||||||
Some((&self.segment as &dyn PolygonalFeatureMap, self.radius))
|
Some((&self.segment as &dyn PolygonalFeatureMap, self.radius))
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user