diff options
| author | Sébastien Crozet <developer@crozet.re> | 2022-04-19 18:57:40 +0200 |
|---|---|---|
| committer | Sébastien Crozet <sebastien@crozet.re> | 2022-04-20 19:02:49 +0200 |
| commit | 2b1374c596957ac8cabe085859be3b823a1ba0c6 (patch) | |
| tree | a7f37ec29199a5a2c6198a6b001e665524fdab96 /src/geometry/collider_set.rs | |
| parent | ee679427cda6363e4de94a59e293d01133a44d1f (diff) | |
| download | rapier-2b1374c596957ac8cabe085859be3b823a1ba0c6.tar.gz rapier-2b1374c596957ac8cabe085859be3b823a1ba0c6.tar.bz2 rapier-2b1374c596957ac8cabe085859be3b823a1ba0c6.zip | |
First round deleting the component sets.
Diffstat (limited to 'src/geometry/collider_set.rs')
| -rw-r--r-- | src/geometry/collider_set.rs | 64 |
1 files changed, 1 insertions, 63 deletions
diff --git a/src/geometry/collider_set.rs b/src/geometry/collider_set.rs index a25fd1e..de182e7 100644 --- a/src/geometry/collider_set.rs +++ b/src/geometry/collider_set.rs @@ -1,11 +1,6 @@ use crate::data::arena::Arena; -use crate::data::{ComponentSet, ComponentSetMut, ComponentSetOption}; use crate::dynamics::{IslandManager, RigidBodyHandle, RigidBodySet}; -use crate::geometry::{ - Collider, ColliderBroadPhaseData, ColliderFlags, ColliderMassProps, ColliderMaterial, - ColliderParent, ColliderPosition, ColliderShape, ColliderType, -}; -use crate::geometry::{ColliderChanges, ColliderHandle}; +use crate::geometry::{Collider, ColliderChanges, ColliderHandle, ColliderParent}; use crate::math::Isometry; use std::ops::{Index, IndexMut}; @@ -18,63 +13,6 @@ pub struct ColliderSet { pub(crate) removed_colliders: Vec<ColliderHandle>, } -macro_rules! impl_field_component_set( - ($T: ty, $field: ident) => { - impl ComponentSetOption<$T> for ColliderSet { - fn get(&self, handle: crate::data::Index) -> Option<&$T> { - self.get(ColliderHandle(handle)).map(|b| &b.$field) - } - } - - impl ComponentSet<$T> for ColliderSet { - fn size_hint(&self) -> usize { - self.len() - } - - #[inline(always)] - fn for_each(&self, mut f: impl FnMut(crate::data::Index, &$T)) { - for (handle, body) in self.colliders.iter() { - f(handle, &body.$field) - } - } - } - - impl ComponentSetMut<$T> for ColliderSet { - fn set_internal(&mut self, handle: crate::data::Index, val: $T) { - if let Some(rb) = self.get_mut_internal(ColliderHandle(handle)) { - rb.$field = val; - } - } - - #[inline(always)] - fn map_mut_internal<Result>( - &mut self, - handle: crate::data::Index, - f: impl FnOnce(&mut $T) -> Result, - ) -> Option<Result> { - self.get_mut_internal(ColliderHandle(handle)).map(|rb| f(&mut rb.$field)) - } - } - } -); - -impl_field_component_set!(ColliderType, co_type); -impl_field_component_set!(ColliderShape, co_shape); -impl_field_component_set!(ColliderMassProps, co_mprops); -impl_field_component_set!(ColliderChanges, co_changes); -impl_field_component_set!(ColliderPosition, co_pos); -impl_field_component_set!(ColliderMaterial, co_material); -impl_field_component_set!(ColliderFlags, co_flags); -impl_field_component_set!(ColliderBroadPhaseData, co_bf_data); - -impl ComponentSetOption<ColliderParent> for ColliderSet { - #[inline(always)] - fn get(&self, handle: crate::data::Index) -> Option<&ColliderParent> { - self.get(ColliderHandle(handle)) - .and_then(|b| b.co_parent.as_ref()) - } -} - impl ColliderSet { /// Create a new empty set of colliders. pub fn new() -> Self { |
