[−][src]Struct ncollide3d::query::algorithms::epa3::EPA
The Expanding Polytope Algorithm in 3D.
Methods
impl<N: RealField> EPA<N>
[src]
pub fn new() -> Self
[src]
Creates a new instance of the 3D 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]
&mut self,
m: &Isometry<N>,
g: &G,
simplex: &VoronoiSimplex<N>
) -> Option<Point<N>> where
G: SupportMap<N>,
Projects the origin on boundary of 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]
&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>,
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.
Auto Trait Implementations
impl<N> RefUnwindSafe for EPA<N> where
N: RefUnwindSafe + Scalar,
N: RefUnwindSafe + Scalar,
impl<N> Send for EPA<N> where
N: Scalar,
N: Scalar,
impl<N> Sync for EPA<N> where
N: Scalar,
N: Scalar,
impl<N> Unpin for EPA<N> where
N: Scalar + Unpin,
N: Scalar + Unpin,
impl<N> UnwindSafe for EPA<N> where
N: Scalar + UnwindSafe,
N: Scalar + UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Downcast for T where
T: Any,
T: Any,
fn into_any(self: Box<T>) -> Box<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn as_any(&self) -> &(dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
impl<T> DowncastSync for T where
T: Send + Sync + Any,
T: Send + Sync + Any,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn is_in_subset(&self) -> bool
unsafe fn to_subset_unchecked(&self) -> SS
fn from_subset(element: &SS) -> SP
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,