From 036a24614171eff0f99495b8b6f1c09e58cb4f9a Mon Sep 17 00:00:00 2001 From: Crozet Sébastien Date: Tue, 3 Nov 2020 14:29:47 +0100 Subject: Make cloning rigid-bodies and colliders more idiomatic. Fix #53 --- src/geometry/collider_set.rs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/geometry/collider_set.rs') diff --git a/src/geometry/collider_set.rs b/src/geometry/collider_set.rs index 5ac9658..d2bb8cc 100644 --- a/src/geometry/collider_set.rs +++ b/src/geometry/collider_set.rs @@ -59,6 +59,10 @@ impl ColliderSet { parent_handle: RigidBodyHandle, bodies: &mut RigidBodySet, ) -> ColliderHandle { + // Make sure the internal links are reset, they may not be + // if this rigid-body was obtained by cloning another one. + coll.reset_internal_links(); + coll.parent = parent_handle; let parent = bodies .get_mut_internal(parent_handle) -- cgit From 0cf59d78bda1669226f861e438d43a08b099d747 Mon Sep 17 00:00:00 2001 From: Crozet Sébastien Date: Tue, 3 Nov 2020 14:43:21 +0100 Subject: Implement Clone for everything that can be cloned. --- src/geometry/collider_set.rs | 1 + 1 file changed, 1 insertion(+) (limited to 'src/geometry/collider_set.rs') diff --git a/src/geometry/collider_set.rs b/src/geometry/collider_set.rs index d2bb8cc..0ba5911 100644 --- a/src/geometry/collider_set.rs +++ b/src/geometry/collider_set.rs @@ -17,6 +17,7 @@ pub(crate) struct RemovedCollider { } #[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))] +#[derive(Clone)] /// A set of colliders that can be handled by a physics `World`. pub struct ColliderSet { pub(crate) removed_colliders: PubSub, -- cgit From c6af248e66c86c900d7703bcefeb1e6d185ffedf Mon Sep 17 00:00:00 2001 From: Crozet Sébastien Date: Tue, 3 Nov 2020 14:45:50 +0100 Subject: Rename reset_internal_links -> reset_internal_references. --- src/geometry/collider_set.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/geometry/collider_set.rs') diff --git a/src/geometry/collider_set.rs b/src/geometry/collider_set.rs index 0ba5911..fd94675 100644 --- a/src/geometry/collider_set.rs +++ b/src/geometry/collider_set.rs @@ -62,7 +62,7 @@ impl ColliderSet { ) -> ColliderHandle { // Make sure the internal links are reset, they may not be // if this rigid-body was obtained by cloning another one. - coll.reset_internal_links(); + coll.reset_internal_references(); coll.parent = parent_handle; let parent = bodies -- cgit