Struct parry3d::query::gjk::VoronoiSimplex
source · pub struct VoronoiSimplex { /* private fields */ }
Expand description
A simplex of dimension up to 3 that uses Voronoï regions for computing point projections.
Implementations§
source§impl VoronoiSimplex
impl VoronoiSimplex
sourcepub fn new() -> VoronoiSimplex
pub fn new() -> VoronoiSimplex
Creates a new empty simplex.
sourcepub fn proj_coord(&self, i: usize) -> Real
pub fn proj_coord(&self, i: usize) -> Real
Retrieves the barycentric coordinate associated to the i
-th by the last call to project_origin_and_reduce
.
sourcepub fn prev_proj_coord(&self, i: usize) -> Real
pub fn prev_proj_coord(&self, i: usize) -> Real
Retrieves the barycentric coordinate associated to the i
-th before the last call to project_origin_and_reduce
.
sourcepub fn prev_point(&self, i: usize) -> &CSOPoint
pub fn prev_point(&self, i: usize) -> &CSOPoint
The i-th point of the simplex before the last call to projet_origin_and_reduce
.
sourcepub fn project_origin_and_reduce(&mut self) -> Point<Real>
pub fn project_origin_and_reduce(&mut self) -> Point<Real>
Projets the origin on the boundary of this simplex and reduces self
the smallest subsimplex containing the origin.
Retruns the result of the projection or Point::origin() if the origin lies inside of the simplex.
The state of the samplex before projection is saved, and can be retrieved using the methods prefixed
by prev_
.
sourcepub fn project_origin(&mut self) -> Point<Real>
pub fn project_origin(&mut self) -> Point<Real>
Compute the projection of the origin on the boundary of this simplex.
sourcepub fn contains_point(&self, pt: &Point<Real>) -> bool
pub fn contains_point(&self, pt: &Point<Real>) -> bool
Tests if the given point is already a vertex of this simplex.
sourcepub fn dimension(&self) -> usize
pub fn dimension(&self) -> usize
The dimension of the smallest subspace that can contain this simplex.
sourcepub fn prev_dimension(&self) -> usize
pub fn prev_dimension(&self) -> usize
The dimension of the simplex before the last call to project_origin_and_reduce
.
sourcepub fn max_sq_len(&self) -> Real
pub fn max_sq_len(&self) -> Real
The maximum squared length of the vertices of this simplex.
sourcepub fn modify_pnts(&mut self, f: &dyn Fn(&mut CSOPoint))
pub fn modify_pnts(&mut self, f: &dyn Fn(&mut CSOPoint))
Apply a function to all the vertices of this simplex.
Trait Implementations§
source§impl Clone for VoronoiSimplex
impl Clone for VoronoiSimplex
source§fn clone(&self) -> VoronoiSimplex
fn clone(&self) -> VoronoiSimplex
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for VoronoiSimplex
impl Debug for VoronoiSimplex
Auto Trait Implementations§
impl Freeze for VoronoiSimplex
impl RefUnwindSafe for VoronoiSimplex
impl Send for VoronoiSimplex
impl Sync for VoronoiSimplex
impl Unpin for VoronoiSimplex
impl UnwindSafe for VoronoiSimplex
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.