Trait oxygengine_physics_2d::prelude::BodySet
source · pub trait BodySet<N>where
N: RealField + Copy,{
type Handle: BodyHandle;
// Required methods
fn get(&self, handle: Self::Handle) -> Option<&(dyn Body<N> + 'static)>;
fn get_mut(
&mut self,
handle: Self::Handle
) -> Option<&mut (dyn Body<N> + 'static)>;
fn contains(&self, handle: Self::Handle) -> bool;
fn foreach(&self, f: &mut dyn FnMut(Self::Handle, &(dyn Body<N> + 'static)));
fn foreach_mut(
&mut self,
f: &mut dyn FnMut(Self::Handle, &mut (dyn Body<N> + 'static))
);
fn pop_removal_event(&mut self) -> Option<Self::Handle>;
// Provided method
fn get_pair(
&self,
handle1: Self::Handle,
handle2: Self::Handle
) -> (Option<&(dyn Body<N> + 'static)>, Option<&(dyn Body<N> + 'static)>) { ... }
}
Expand description
Trait implemented by sets of bodies.
A set of bodies maps a body handle to a body instance. In addition, it must maintain a set of
body handle of bodies that have been removed (see the pop_removal_event
method for details).
Required Associated Types§
sourcetype Handle: BodyHandle
type Handle: BodyHandle
Type of a body handle identifying a body in this set.
Required Methods§
sourcefn get(&self, handle: Self::Handle) -> Option<&(dyn Body<N> + 'static)>
fn get(&self, handle: Self::Handle) -> Option<&(dyn Body<N> + 'static)>
Gets a reference to the body identified by handle
.
sourcefn get_mut(
&mut self,
handle: Self::Handle
) -> Option<&mut (dyn Body<N> + 'static)>
fn get_mut( &mut self, handle: Self::Handle ) -> Option<&mut (dyn Body<N> + 'static)>
Gets a mutable reference to the body identified by handle
.
sourcefn contains(&self, handle: Self::Handle) -> bool
fn contains(&self, handle: Self::Handle) -> bool
Check if this set contains a body identified by handle
.
sourcefn foreach(&self, f: &mut dyn FnMut(Self::Handle, &(dyn Body<N> + 'static)))
fn foreach(&self, f: &mut dyn FnMut(Self::Handle, &(dyn Body<N> + 'static)))
Iterate through all the bodies on this set, applying the closure f
on them.
sourcefn foreach_mut(
&mut self,
f: &mut dyn FnMut(Self::Handle, &mut (dyn Body<N> + 'static))
)
fn foreach_mut( &mut self, f: &mut dyn FnMut(Self::Handle, &mut (dyn Body<N> + 'static)) )
Mutable iterate through all the bodies on this set, applying the closure f
on them.
sourcefn pop_removal_event(&mut self) -> Option<Self::Handle>
fn pop_removal_event(&mut self) -> Option<Self::Handle>
Gets the handle of one body that has been removed.
A body set must keep track (using typically a stack or a queue) of every body that has been removed from it. This is used by nphysics to perform some internal cleanup actions, or physical actions like waking bodies touching one that has been removed.
This method should return a removed body handle only once.