diff options
| author | Sébastien Crozet <developer@crozet.re> | 2021-06-02 17:15:46 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-02 17:15:46 +0200 |
| commit | 6ba1c9dec184adcba2c68cc1851dc05587fd0bf0 (patch) | |
| tree | b672cfc4db1d2f426dad931d77098ecb4a600358 /src_testbed/nphysics_backend.rs | |
| parent | 3bac79ecacdeaa18de19127b7a6c82cbfab29d14 (diff) | |
| parent | bde6657287cd32a801abb996322c520673406418 (diff) | |
| download | rapier-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.rs | 36 |
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, )) |
