Struct collision::algorithm::broad_phase::SweepAndPrune [] [src]

pub struct SweepAndPrune<V> { /* fields omitted */ }

Sweep and prune broad phase collision detection algorithm.

Will sort the bounding boxes of the collision world along some axis, and will then sweep the sorted list, and compare the bounds along the sweep axis, adding them to an active list when they are encountered, and removing them from the active list when the end extent is passed.

Any shape pairs found by the base algorithm, will then do a bounding box intersection test, before adding to the resulting pairs list.

Type parameters:

  • V: Variance type used for computing what axis to use on the next iteration. Should be either Variance2 or Variance3.

Methods

impl<V> SweepAndPrune<V> where
    V: Variance
[src]

[src]

Create a new sweep and prune algorithm, will use the X axis as the first sweep axis

[src]

Create a new sweep and prune algorithm, starting with the given axis as the first sweep axis

[src]

Get sweep axis

[src]

Find all potentially colliding pairs of shapes

Parameters

  • shapes: Shapes to do find potential collisions for

Returns

Returns tuples with indices into the shapes list, of all potentially colliding pairs. The first value in the tuple will always be first in the list.

Side effects:

The shapes list might have been resorted. The indices in the return values will be for the sorted list.

Trait Implementations

Auto Trait Implementations

impl<V> Send for SweepAndPrune<V> where
    V: Send

impl<V> Sync for SweepAndPrune<V> where
    V: Sync