Struct rhusics_core::Contact
source · pub struct Contact<P>where
P: EuclideanSpace,{
pub strategy: CollisionStrategy,
pub normal: <P as EuclideanSpace>::Diff,
pub penetration_depth: <P as EuclideanSpace>::Scalar,
pub contact_point: P,
pub time_of_impact: <P as EuclideanSpace>::Scalar,
}
Expand description
Fields
strategy: CollisionStrategy
The collision strategy used for this contact.
normal: <P as EuclideanSpace>::Diff
The collision normal. Only applicable if the collision strategy is not CollisionOnly
penetration_depth: <P as EuclideanSpace>::Scalar
The penetration depth. Only applicable if the collision strategy is not CollisionOnly
contact_point: P
The contact point. Only applicable if the collision strategy is not CollisionOnly
time_of_impact: <P as EuclideanSpace>::Scalar
The time of impact, only applicable for continuous collision detection, value is in range 0.0..1.0
Implementations
sourceimpl<P> Contact<P>where
P: EuclideanSpace,
<P as EuclideanSpace>::Diff: VectorSpace + Zero,
impl<P> Contact<P>where
P: EuclideanSpace,
<P as EuclideanSpace>::Diff: VectorSpace + Zero,
sourcepub fn new(strategy: CollisionStrategy) -> Contact<P>
pub fn new(strategy: CollisionStrategy) -> Contact<P>
Create a new contact manifold, with default collision normal and penetration depth
sourcepub fn new_impl(
strategy: CollisionStrategy,
normal: <P as EuclideanSpace>::Diff,
penetration_depth: <P as EuclideanSpace>::Scalar
) -> Contact<P>
pub fn new_impl(
strategy: CollisionStrategy,
normal: <P as EuclideanSpace>::Diff,
penetration_depth: <P as EuclideanSpace>::Scalar
) -> Contact<P>
Create a new contact manifold, with the given collision normal and penetration depth
sourcepub fn new_with_point(
strategy: CollisionStrategy,
normal: <P as EuclideanSpace>::Diff,
penetration_depth: <P as EuclideanSpace>::Scalar,
contact_point: P
) -> Contact<P>
pub fn new_with_point(
strategy: CollisionStrategy,
normal: <P as EuclideanSpace>::Diff,
penetration_depth: <P as EuclideanSpace>::Scalar,
contact_point: P
) -> Contact<P>
Create a new contact manifold, complete with contact point
Trait Implementations
sourceimpl<P> Clone for Contact<P>where
P: Clone + EuclideanSpace,
<P as EuclideanSpace>::Diff: Clone,
<P as EuclideanSpace>::Scalar: Clone,
impl<P> Clone for Contact<P>where
P: Clone + EuclideanSpace,
<P as EuclideanSpace>::Diff: Clone,
<P as EuclideanSpace>::Scalar: Clone,
Auto Trait Implementations
impl<P> RefUnwindSafe for Contact<P>where
P: RefUnwindSafe,
<P as EuclideanSpace>::Diff: RefUnwindSafe,
<P as EuclideanSpace>::Scalar: RefUnwindSafe,
impl<P> Send for Contact<P>where
P: Send,
<P as EuclideanSpace>::Diff: Send,
<P as EuclideanSpace>::Scalar: Send,
impl<P> Sync for Contact<P>where
P: Sync,
<P as EuclideanSpace>::Diff: Sync,
<P as EuclideanSpace>::Scalar: Sync,
impl<P> Unpin for Contact<P>where
P: Unpin,
<P as EuclideanSpace>::Diff: Unpin,
<P as EuclideanSpace>::Scalar: Unpin,
impl<P> UnwindSafe for Contact<P>where
P: UnwindSafe,
<P as EuclideanSpace>::Diff: UnwindSafe,
<P as EuclideanSpace>::Scalar: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more