[][src]Trait nphysics3d::object::BodySet

pub trait BodySet<N: RealField> {
    type Body: ?Sized + Body<N>;
    type Handle: BodyHandle;
    fn get(&self, handle: Self::Handle) -> Option<&Self::Body>;
fn get_mut(&mut self, handle: Self::Handle) -> Option<&mut Self::Body>;
fn get_pair_mut(
        &mut self,
        handle1: Self::Handle,
        handle2: Self::Handle
    ) -> (Option<&mut Self::Body>, Option<&mut Self::Body>);
fn contains(&self, handle: Self::Handle) -> bool;
fn foreach(&self, f: impl FnMut(Self::Handle, &Self::Body));
fn foreach_mut(&mut self, f: impl FnMut(Self::Handle, &mut Self::Body));
fn pop_removal_event(&mut self) -> Option<Self::Handle>; fn get_pair(
        &self,
        handle1: Self::Handle,
        handle2: Self::Handle
    ) -> (Option<&Self::Body>, Option<&Self::Body>) { ... } }

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).

Associated Types

type Body: ?Sized + Body<N>

Type of a body stored in this set.

type Handle: BodyHandle

Type of a body handle identifying a body in this set.

Loading content...

Required methods

fn get(&self, handle: Self::Handle) -> Option<&Self::Body>

Gets a reference to the body identified by handle.

fn get_mut(&mut self, handle: Self::Handle) -> Option<&mut Self::Body>

Gets a mutable reference to the body identified by handle.

fn get_pair_mut(
    &mut self,
    handle1: Self::Handle,
    handle2: Self::Handle
) -> (Option<&mut Self::Body>, Option<&mut Self::Body>)

Gets a mutable reference to the two bodies identified by handle1 and handle2.

Panics if both handles are equal.

fn contains(&self, handle: Self::Handle) -> bool

Check if this set contains a body identified by handle.

fn foreach(&self, f: impl FnMut(Self::Handle, &Self::Body))

Iterate through all the bodies on this set, applying the closure f on them.

fn foreach_mut(&mut self, f: impl FnMut(Self::Handle, &mut Self::Body))

Mutable iterate through all the bodies on this set, applying the closure f on them.

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.

Loading content...

Provided methods

fn get_pair(
    &self,
    handle1: Self::Handle,
    handle2: Self::Handle
) -> (Option<&Self::Body>, Option<&Self::Body>)

Gets a reference to the two bodies identified by handle1 and handle2.

Both handles are allowed to be equal.

Loading content...

Implementors

impl<N: RealField> BodySet<N> for DefaultBodySet<N>[src]

type Body = dyn Body<N>

type Handle = DefaultBodyHandle

Loading content...