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/box2d_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/box2d_backend.rs')
| -rw-r--r-- | src_testbed/box2d_backend.rs | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/src_testbed/box2d_backend.rs b/src_testbed/box2d_backend.rs index db0f846..f0bffa3 100644 --- a/src_testbed/box2d_backend.rs +++ b/src_testbed/box2d_backend.rs @@ -87,9 +87,11 @@ impl Box2dWorld { fn insert_colliders(&mut self, colliders: &ColliderSet) { for (_, collider) in colliders.iter() { - let b2_body_handle = self.rapier2box2d[&collider.parent()]; - let mut b2_body = self.world.body_mut(b2_body_handle); - Self::create_fixture(&collider, &mut *b2_body); + if let Some(parent) = collider.parent() { + let b2_body_handle = self.rapier2box2d[&parent]; + let mut b2_body = self.world.body_mut(b2_body_handle); + Self::create_fixture(&collider, &mut *b2_body); + } } } @@ -122,8 +124,8 @@ impl Box2dWorld { body_a, body_b, collide_connected: true, - local_anchor_a: na_vec_to_b2_vec(params.local_anchor1.translation.vector), - local_anchor_b: na_vec_to_b2_vec(params.local_anchor2.translation.vector), + local_anchor_a: na_vec_to_b2_vec(params.local_frame1.translation.vector), + local_anchor_b: na_vec_to_b2_vec(params.local_frame2.translation.vector), reference_angle: 0.0, frequency: 0.0, damping_ratio: 0.0, @@ -155,7 +157,14 @@ impl Box2dWorld { } fn create_fixture(collider: &Collider, body: &mut b2::MetaBody<NoUserData>) { - let center = na_vec_to_b2_vec(collider.position_wrt_parent().translation.vector); + let center = na_vec_to_b2_vec( + collider + .position_wrt_parent() + .copied() + .unwrap_or(na::one()) + .translation + .vector, + ); let mut fixture_def = b2::FixtureDef::new(); fixture_def.restitution = collider.material().restitution; @@ -230,7 +239,9 @@ impl Box2dWorld { for coll_handle in body.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()), + ); } } } |
