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]