# [−][src]Struct ncollide2d::query::algorithms::epa2::EPA

`pub struct EPA<N: RealField> { /* fields omitted */ }`

The Expanding Polytope Algorithm in 2D.

## Methods

### `impl<N: RealField> EPA<N>`[src]

#### `pub fn new() -> Self`[src]

Creates a new instance of the 2D Expanding Polytope Algorithm.

#### `pub fn project_origin<G: ?Sized>(    &mut self,     m: &Isometry<N>,     g: &G,     simplex: &VoronoiSimplex<N>) -> Option<Point<N>> where    G: SupportMap<N>, `[src]

Projects the origin on boundary the given shape.

The origin is assumed to be inside of the shape. If it is outside, use the GJK algorithm instead. Return `None` if the origin is not inside of the shape or if the EPA algorithm failed to compute the projection.

#### `pub fn closest_points<G1: ?Sized, G2: ?Sized>(    &mut self,     m1: &Isometry<N>,     g1: &G1,     m2: &Isometry<N>,     g2: &G2,     simplex: &VoronoiSimplex<N>) -> Option<(Point<N>, Point<N>, Unit<Vector<N>>)> where    G1: SupportMap<N>,    G2: SupportMap<N>, `[src]

Projects the origin on a shape unsing the EPA algorithm.

The origin is assumed to be located inside of the shape. Returns `None` if the EPA fails to converge or if `g1` and `g2` are not penetrating.

## Blanket Implementations

### `impl<T> Same<T> for T`

#### `type Output = T`

Should always be `Self`

### `impl<T, U> TryFrom<U> for T where    U: Into<T>, `[src]

#### `type Error = Infallible`

The type returned in the event of a conversion error.

### `impl<T, U> TryInto<U> for T where    U: TryFrom<T>, `[src]

#### `type Error = <U as TryFrom<T>>::Error`

The type returned in the event of a conversion error.