Struct ncollide3d::pipeline::narrow_phase::InteractionGraph [−][src]
pub struct InteractionGraph<N: RealField, Handle: CollisionObjectHandle>(_);
A graph where nodes are collision objects and edges are contact or proximity algorithms.
Implementations
impl<N: RealField, Handle: CollisionObjectHandle> InteractionGraph<N, Handle>[src]
impl<N: RealField, Handle: CollisionObjectHandle> InteractionGraph<N, Handle>[src]pub fn new() -> Self[src]
Creates a new empty collection of collision objects.
pub fn add_node(&mut self, handle: Handle) -> CollisionObjectGraphIndex[src]
Adds a handle to this graph.
#[must_use = "The graph index of the collision object returned by this method has been changed to `id`."]pub fn remove_node(&mut self, id: CollisionObjectGraphIndex) -> Option<Handle>[src]
Removes a handle from this graph and returns a handle that must have its graph index changed to id.
When a node is removed, another node of the graph takes it place. This means that the CollisionObjectGraphIndex
of the collision object returned by this method will be equal to id. Thus if you maintain
a map between CollisionObjectSlabHandle and CollisionObjectGraphIndex, then you should update this
map to associate id to the handle returned by this method. For example:
// Let `id` be the graph index of the collision object we want to remove. if let Some(other_handle) = graph.remove_node(id) { // The graph index of `other_handle` changed to `id` due to the removal. map.insert(other_handle, id) ; }
pub fn interaction_pairs(
&self,
effective_only: bool
) -> impl Iterator<Item = (Handle, Handle, &Interaction<N>)>[src]
&self,
effective_only: bool
) -> impl Iterator<Item = (Handle, Handle, &Interaction<N>)>
All the interactions pairs on this graph.
Refer to the official user guide for details.
pub fn contact_pairs(
&self,
effective_only: bool
) -> impl Iterator<Item = (Handle, Handle, &ContactAlgorithm<N>, &ContactManifold<N>)>[src]
&self,
effective_only: bool
) -> impl Iterator<Item = (Handle, Handle, &ContactAlgorithm<N>, &ContactManifold<N>)>
All the contact pairs on this graph.
Refer to the official user guide for details.
pub fn proximity_pairs(
&self,
effective_only: bool
) -> impl Iterator<Item = (Handle, Handle, &dyn ProximityDetector<N>, Proximity)>[src]
&self,
effective_only: bool
) -> impl Iterator<Item = (Handle, Handle, &dyn ProximityDetector<N>, Proximity)>
All the proximity pairs on this graph.
Refer to the official user guide for details.
pub fn interaction_pair(
&self,
id1: CollisionObjectGraphIndex,
id2: CollisionObjectGraphIndex,
effective_only: bool
) -> Option<(Handle, Handle, &Interaction<N>)>[src]
&self,
id1: CollisionObjectGraphIndex,
id2: CollisionObjectGraphIndex,
effective_only: bool
) -> Option<(Handle, Handle, &Interaction<N>)>
The interaction between the two collision objects identified by their graph index.
Refer to the official user guide for details.
pub fn interaction_pair_mut(
&mut self,
id1: CollisionObjectGraphIndex,
id2: CollisionObjectGraphIndex
) -> Option<(Handle, Handle, &mut Interaction<N>)>[src]
&mut self,
id1: CollisionObjectGraphIndex,
id2: CollisionObjectGraphIndex
) -> Option<(Handle, Handle, &mut Interaction<N>)>
The interaction between the two collision objects identified by their graph index.
Refer to the official user guide for details.
pub fn contact_pair(
&self,
id1: CollisionObjectGraphIndex,
id2: CollisionObjectGraphIndex,
effective_only: bool
) -> Option<(Handle, Handle, &ContactAlgorithm<N>, &ContactManifold<N>)>[src]
&self,
id1: CollisionObjectGraphIndex,
id2: CollisionObjectGraphIndex,
effective_only: bool
) -> Option<(Handle, Handle, &ContactAlgorithm<N>, &ContactManifold<N>)>
The contact pair between the two collision objects identified by their graph index.
Refer to the official user guide for details.
pub fn proximity_pair(
&self,
id1: CollisionObjectGraphIndex,
id2: CollisionObjectGraphIndex,
effective_only: bool
) -> Option<(Handle, Handle, &dyn ProximityDetector<N>, Proximity)>[src]
&self,
id1: CollisionObjectGraphIndex,
id2: CollisionObjectGraphIndex,
effective_only: bool
) -> Option<(Handle, Handle, &dyn ProximityDetector<N>, Proximity)>
The proximity pair between the two collision objects identified by their graph index.
Refer to the official user guide for details.
pub fn proximity_pair_mut(
&mut self,
id1: CollisionObjectGraphIndex,
id2: CollisionObjectGraphIndex
) -> Option<(Handle, Handle, &mut dyn ProximityDetector<N>, &mut Proximity)>[src]
&mut self,
id1: CollisionObjectGraphIndex,
id2: CollisionObjectGraphIndex
) -> Option<(Handle, Handle, &mut dyn ProximityDetector<N>, &mut Proximity)>
The proximity pair between the two collision objects identified by their graph index.
Refer to the official user guide for details.
pub fn interactions_with(
&self,
id: CollisionObjectGraphIndex,
effective_only: bool
) -> impl Iterator<Item = (Handle, Handle, &Interaction<N>)>[src]
&self,
id: CollisionObjectGraphIndex,
effective_only: bool
) -> impl Iterator<Item = (Handle, Handle, &Interaction<N>)>
All the interaction involving the collision object with graph index id.
Refer to the official user guide for details.
pub fn index_interaction(
&self,
id: TemporaryInteractionIndex
) -> Option<(Handle, Handle, &Interaction<N>)>[src]
&self,
id: TemporaryInteractionIndex
) -> Option<(Handle, Handle, &Interaction<N>)>
Gets the interaction with the given index.
pub fn interactions_with_mut(
&mut self,
id: CollisionObjectGraphIndex
) -> impl Iterator<Item = (Handle, Handle, TemporaryInteractionIndex, &mut Interaction<N>)>[src]
&mut self,
id: CollisionObjectGraphIndex
) -> impl Iterator<Item = (Handle, Handle, TemporaryInteractionIndex, &mut Interaction<N>)>
All the mutable references to interactions involving the collision object with graph index id.
Refer to the official user guide for details.
pub fn proximities_with(
&self,
handle: CollisionObjectGraphIndex,
effective_only: bool
) -> impl Iterator<Item = (Handle, Handle, &dyn ProximityDetector<N>, Proximity)>[src]
&self,
handle: CollisionObjectGraphIndex,
effective_only: bool
) -> impl Iterator<Item = (Handle, Handle, &dyn ProximityDetector<N>, Proximity)>
All the proximity pairs involving the collision object with graph index id.
Refer to the official user guide for details.
pub fn contacts_with(
&self,
handle: CollisionObjectGraphIndex,
effective_only: bool
) -> impl Iterator<Item = (Handle, Handle, &ContactAlgorithm<N>, &ContactManifold<N>)>[src]
&self,
handle: CollisionObjectGraphIndex,
effective_only: bool
) -> impl Iterator<Item = (Handle, Handle, &ContactAlgorithm<N>, &ContactManifold<N>)>
All the contact pairs involving the collision object with graph index id.
Refer to the official user guide for details.
pub fn collision_objects_interacting_with<'a>(
&'a self,
id: CollisionObjectGraphIndex
) -> impl Iterator<Item = Handle> + 'a[src]
&'a self,
id: CollisionObjectGraphIndex
) -> impl Iterator<Item = Handle> + 'a
All the collision object handles of collision objects interacting with the collision object with graph index id.
Refer to the official user guide for details.
pub fn collision_objects_in_contact_with<'a>(
&'a self,
id: CollisionObjectGraphIndex
) -> impl Iterator<Item = Handle> + 'a[src]
&'a self,
id: CollisionObjectGraphIndex
) -> impl Iterator<Item = Handle> + 'a
All the collision object handles of collision objects in contact with the collision object with graph index id.
Refer to the official user guide for details.
pub fn collision_objects_in_proximity_of<'a>(
&'a self,
id: CollisionObjectGraphIndex
) -> impl Iterator<Item = Handle> + 'a[src]
&'a self,
id: CollisionObjectGraphIndex
) -> impl Iterator<Item = Handle> + 'a
All the collision object handles of collision objects in proximity of with the collision object with graph index id.
Refer to the official user guide for details.
Auto Trait Implementations
impl<N, Handle> !RefUnwindSafe for InteractionGraph<N, Handle>
impl<N, Handle> Send for InteractionGraph<N, Handle>
impl<N, Handle> Sync for InteractionGraph<N, Handle>
impl<N, Handle> Unpin for InteractionGraph<N, Handle> where
Handle: Unpin,
N: Unpin,
Handle: Unpin,
N: Unpin,
impl<N, Handle> !UnwindSafe for InteractionGraph<N, Handle>
Blanket Implementations
impl<T> DowncastSync for T where
T: Any + Send + Sync, [src]
impl<T> DowncastSync for T where
T: Any + Send + Sync, [src]impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>, [src]
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>, [src]