aboutsummaryrefslogtreecommitdiff
path: root/src_testbed/nphysics_backend.rs
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2021-06-02 17:15:46 +0200
committerGitHub <noreply@github.com>2021-06-02 17:15:46 +0200
commit6ba1c9dec184adcba2c68cc1851dc05587fd0bf0 (patch)
treeb672cfc4db1d2f426dad931d77098ecb4a600358 /src_testbed/nphysics_backend.rs
parent3bac79ecacdeaa18de19127b7a6c82cbfab29d14 (diff)
parentbde6657287cd32a801abb996322c520673406418 (diff)
downloadrapier-6ba1c9dec184adcba2c68cc1851dc05587fd0bf0.tar.gz
rapier-6ba1c9dec184adcba2c68cc1851dc05587fd0bf0.tar.bz2
rapier-6ba1c9dec184adcba2c68cc1851dc05587fd0bf0.zip
Merge pull request #196 from dimforge/api_changes
More API changes
Diffstat (limited to 'src_testbed/nphysics_backend.rs')
-rw-r--r--src_testbed/nphysics_backend.rs36
1 files changed, 20 insertions, 16 deletions
diff --git a/src_testbed/nphysics_backend.rs b/src_testbed/nphysics_backend.rs
index 2657b19..c7d6c0e 100644
--- a/src_testbed/nphysics_backend.rs
+++ b/src_testbed/nphysics_backend.rs
@@ -55,15 +55,17 @@ impl NPhysicsWorld {
}
for (_, collider) in colliders.iter() {
- let parent = &bodies[collider.parent()];
- let nphysics_rb_handle = rapier2nphysics[&collider.parent()];
- if let Some(collider) =
- nphysics_collider_from_rapier_collider(&collider, parent.is_dynamic())
- {
- let nphysics_collider = collider.build(BodyPartHandle(nphysics_rb_handle, 0));
- nphysics_colliders.insert(nphysics_collider);
- } else {
- eprintln!("Creating shape unknown to the nphysics backend.")
+ if let Some(parent_handle) = collider.parent() {
+ let parent = &bodies[parent_handle];
+ let nphysics_rb_handle = rapier2nphysics[&parent_handle];
+ if let Some(collider) =
+ nphysics_collider_from_rapier_collider(&collider, parent.is_dynamic())
+ {
+ let nphysics_collider = collider.build(BodyPartHandle(nphysics_rb_handle, 0));
+ nphysics_colliders.insert(nphysics_collider);
+ } else {
+ eprintln!("Creating shape unknown to the nphysics backend.")
+ }
}
}
@@ -76,10 +78,10 @@ impl NPhysicsWorld {
let c = FixedConstraint::new(
b1,
b2,
- params.local_anchor1.translation.vector.into(),
- params.local_anchor1.rotation,
- params.local_anchor2.translation.vector.into(),
- params.local_anchor2.rotation,
+ params.local_frame1.translation.vector.into(),
+ params.local_frame1.rotation,
+ params.local_frame2.translation.vector.into(),
+ params.local_frame2.rotation,
);
nphysics_joints.insert(c);
}
@@ -172,7 +174,9 @@ impl NPhysicsWorld {
for coll_handle in rb.colliders() {
let collider = &mut colliders[*coll_handle];
- collider.set_position_debug(pos * collider.position_wrt_parent());
+ collider.set_position(
+ pos * collider.position_wrt_parent().copied().unwrap_or(na::one()),
+ );
}
}
}
@@ -183,7 +187,7 @@ fn nphysics_collider_from_rapier_collider(
is_dynamic: bool,
) -> Option<ColliderDesc<f32>> {
let mut margin = ColliderDesc::<f32>::default_margin();
- let mut pos = *collider.position_wrt_parent();
+ let mut pos = collider.position_wrt_parent().copied().unwrap_or(na::one());
let shape = collider.shape();
let shape = if let Some(cuboid) = shape.as_cuboid() {
@@ -209,7 +213,7 @@ fn nphysics_collider_from_rapier_collider(
trimesh
.indices()
.iter()
- .map(|idx| na::Point3::new(idx[0] as usize, idx[1] as usize, idx[2] as usize))
+ .map(|idx| na::point![idx[0] as usize, idx[1] as usize, idx[2] as usize])
.collect(),
None,
))