diff options
| author | Sébastien Crozet <developer@crozet.re> | 2020-11-03 15:33:11 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-03 15:33:11 +0100 |
| commit | f70a840f79943aa6da49db2590e13dcd3f3a89ed (patch) | |
| tree | 1c743ed924b10ebd0eb0982e5c7d798235c12cee /src/geometry/collider_set.rs | |
| parent | 0cc850dc505a4034103d229fdce22f9ec7bc410a (diff) | |
| parent | 71611d3e30ce2fddee20832db3c3e0c8b6ba0d07 (diff) | |
| download | rapier-f70a840f79943aa6da49db2590e13dcd3f3a89ed.tar.gz rapier-f70a840f79943aa6da49db2590e13dcd3f3a89ed.tar.bz2 rapier-f70a840f79943aa6da49db2590e13dcd3f3a89ed.zip | |
Merge pull request #54 from dimforge/idiomatic_clone
Allow cloning all the physics components worth cloning
Diffstat (limited to 'src/geometry/collider_set.rs')
| -rw-r--r-- | src/geometry/collider_set.rs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/geometry/collider_set.rs b/src/geometry/collider_set.rs index 5ac9658..fd94675 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<RemovedCollider>, @@ -59,6 +60,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_references(); + coll.parent = parent_handle; let parent = bodies .get_mut_internal(parent_handle) |
