Struct parry3d::query::QueryDispatcherChain
source · pub struct QueryDispatcherChain<T, U>(/* private fields */);
Expand description
The composition of two dispatchers
Trait Implementations§
source§impl<ManifoldData, ContactData, T, U> PersistentQueryDispatcher<ManifoldData, ContactData> for QueryDispatcherChain<T, U>where
T: PersistentQueryDispatcher<ManifoldData, ContactData>,
U: PersistentQueryDispatcher<ManifoldData, ContactData>,
impl<ManifoldData, ContactData, T, U> PersistentQueryDispatcher<ManifoldData, ContactData> for QueryDispatcherChain<T, U>where
T: PersistentQueryDispatcher<ManifoldData, ContactData>,
U: PersistentQueryDispatcher<ManifoldData, ContactData>,
source§fn contact_manifolds(
&self,
pos12: &Isometry<Real>,
g1: &dyn Shape,
g2: &dyn Shape,
prediction: Real,
manifolds: &mut Vec<ContactManifold<ManifoldData, ContactData>>,
workspace: &mut Option<ContactManifoldsWorkspace>
) -> Result<(), Unsupported>
fn contact_manifolds( &self, pos12: &Isometry<Real>, g1: &dyn Shape, g2: &dyn Shape, prediction: Real, manifolds: &mut Vec<ContactManifold<ManifoldData, ContactData>>, workspace: &mut Option<ContactManifoldsWorkspace> ) -> Result<(), Unsupported>
Compute all the contacts between two shapes. Read more
source§fn contact_manifold_convex_convex(
&self,
pos12: &Isometry<Real>,
g1: &dyn Shape,
g2: &dyn Shape,
normal_constraints1: Option<&dyn NormalConstraints>,
normal_constraints2: Option<&dyn NormalConstraints>,
prediction: Real,
manifold: &mut ContactManifold<ManifoldData, ContactData>
) -> Result<(), Unsupported>
fn contact_manifold_convex_convex( &self, pos12: &Isometry<Real>, g1: &dyn Shape, g2: &dyn Shape, normal_constraints1: Option<&dyn NormalConstraints>, normal_constraints2: Option<&dyn NormalConstraints>, prediction: Real, manifold: &mut ContactManifold<ManifoldData, ContactData> ) -> Result<(), Unsupported>
Computes the contact-manifold between two convex shapes.
source§impl<T, U> QueryDispatcher for QueryDispatcherChain<T, U>where
T: QueryDispatcher,
U: QueryDispatcher,
impl<T, U> QueryDispatcher for QueryDispatcherChain<T, U>where
T: QueryDispatcher,
U: QueryDispatcher,
source§fn intersection_test(
&self,
pos12: &Isometry<Real>,
g1: &dyn Shape,
g2: &dyn Shape
) -> Result<bool, Unsupported>
fn intersection_test( &self, pos12: &Isometry<Real>, g1: &dyn Shape, g2: &dyn Shape ) -> Result<bool, Unsupported>
Tests whether two shapes are intersecting.
source§fn distance(
&self,
pos12: &Isometry<Real>,
g1: &dyn Shape,
g2: &dyn Shape
) -> Result<Real, Unsupported>
fn distance( &self, pos12: &Isometry<Real>, g1: &dyn Shape, g2: &dyn Shape ) -> Result<Real, Unsupported>
Computes the minimum distance separating two shapes. Read more
source§fn contact(
&self,
pos12: &Isometry<Real>,
g1: &dyn Shape,
g2: &dyn Shape,
prediction: Real
) -> Result<Option<Contact>, Unsupported>
fn contact( &self, pos12: &Isometry<Real>, g1: &dyn Shape, g2: &dyn Shape, prediction: Real ) -> Result<Option<Contact>, Unsupported>
Computes one pair of contact points point between two shapes. Read more
source§fn closest_points(
&self,
pos12: &Isometry<Real>,
g1: &dyn Shape,
g2: &dyn Shape,
max_dist: Real
) -> Result<ClosestPoints, Unsupported>
fn closest_points( &self, pos12: &Isometry<Real>, g1: &dyn Shape, g2: &dyn Shape, max_dist: Real ) -> Result<ClosestPoints, Unsupported>
Computes the pair of closest points between two shapes. Read more
source§fn cast_shapes(
&self,
pos12: &Isometry<Real>,
vel12: &Vector<Real>,
g1: &dyn Shape,
g2: &dyn Shape,
options: ShapeCastOptions
) -> Result<Option<ShapeCastHit>, Unsupported>
fn cast_shapes( &self, pos12: &Isometry<Real>, vel12: &Vector<Real>, g1: &dyn Shape, g2: &dyn Shape, options: ShapeCastOptions ) -> Result<Option<ShapeCastHit>, Unsupported>
Computes the smallest time when two shapes under translational movement are separated by a
distance smaller or equal to
distance
. Read moresource§fn cast_shapes_nonlinear(
&self,
motion1: &NonlinearRigidMotion,
g1: &dyn Shape,
motion2: &NonlinearRigidMotion,
g2: &dyn Shape,
start_time: Real,
end_time: Real,
stop_at_penetration: bool
) -> Result<Option<ShapeCastHit>, Unsupported>
fn cast_shapes_nonlinear( &self, motion1: &NonlinearRigidMotion, g1: &dyn Shape, motion2: &NonlinearRigidMotion, g2: &dyn Shape, start_time: Real, end_time: Real, stop_at_penetration: bool ) -> Result<Option<ShapeCastHit>, Unsupported>
Computes the smallest time of impact of two shapes under translational and rotational movement. Read more
source§fn chain<U: QueryDispatcher>(self, other: U) -> QueryDispatcherChain<Self, U>where
Self: Sized,
fn chain<U: QueryDispatcher>(self, other: U) -> QueryDispatcherChain<Self, U>where
Self: Sized,
Construct a
QueryDispatcher
that falls back on other
for cases not handled by self
Auto Trait Implementations§
impl<T, U> Freeze for QueryDispatcherChain<T, U>
impl<T, U> RefUnwindSafe for QueryDispatcherChain<T, U>where
T: RefUnwindSafe,
U: RefUnwindSafe,
impl<T, U> Send for QueryDispatcherChain<T, U>
impl<T, U> Sync for QueryDispatcherChain<T, U>
impl<T, U> Unpin for QueryDispatcherChain<T, U>
impl<T, U> UnwindSafe for QueryDispatcherChain<T, U>where
T: UnwindSafe,
U: UnwindSafe,
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
Mutably borrows from an owned value. Read more
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>
Convert
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>
Convert
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)
Convert
&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)
Convert
&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>
Converts
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>
Converts
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>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
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
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.