Skip to main content

b3ManifoldPoint

Struct b3ManifoldPoint 

Source
#[repr(C)]
pub struct b3ManifoldPoint { pub anchorA: b3Vec3, pub anchorB: b3Vec3, pub separation: f32, pub baseSeparation: f32, pub normalImpulse: f32, pub totalNormalImpulse: f32, pub normalVelocity: f32, pub featureId: u32, pub triangleIndex: c_int, pub persisted: bool, }
Expand description

A manifold point is a contact point belonging to a contact manifold. It holds details related to the geometry and dynamics of the contact points. Box3D uses speculative collision so some contact points may be separated. You may use the maxNormalImpulse to determine if there was an interaction during the time step.

Fields§

§anchorA: b3Vec3

Location of the contact point relative to the bodyA center of mass in world space.

§anchorB: b3Vec3

Location of the contact point relative to the bodyB center of mass in world space.

§separation: f32

The separation of the contact point, negative if penetrating

§baseSeparation: f32

Cached separation used for contact recycling

§normalImpulse: f32

The impulse along the manifold normal vector. Since Box3D uses sub-stepping, this is result from the final sub-step.

§totalNormalImpulse: f32

The total normal impulse applied during sub-stepping. This is important to identify speculative contact points that had an interaction in the time step.

§normalVelocity: f32

Relative normal velocity pre-solve. Used for hit events. If the normal impulse is zero then there was no hit. Negative means shapes are approaching.

§featureId: u32

Local point for matching Uniquely identifies a contact point between two shapes

§triangleIndex: c_int

Triangle index if one of the shapes is a mesh or height field

§persisted: bool

Did this contact point exist in the previous step?

Trait Implementations§

Source§

impl Clone for b3ManifoldPoint

Source§

fn clone(&self) -> b3ManifoldPoint

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for b3ManifoldPoint

Source§

impl Debug for b3ManifoldPoint

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.