#[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: b3Vec3Location of the contact point relative to the bodyA center of mass in world space.
anchorB: b3Vec3Location of the contact point relative to the bodyB center of mass in world space.
separation: f32The separation of the contact point, negative if penetrating
baseSeparation: f32Cached separation used for contact recycling
normalImpulse: f32The impulse along the manifold normal vector. Since Box3D uses sub-stepping, this is result from the final sub-step.
totalNormalImpulse: f32The total normal impulse applied during sub-stepping. This is important to identify speculative contact points that had an interaction in the time step.
normalVelocity: f32Relative 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: u32Local point for matching Uniquely identifies a contact point between two shapes
triangleIndex: c_intTriangle index if one of the shapes is a mesh or height field
persisted: boolDid this contact point exist in the previous step?
Trait Implementations§
Source§impl Clone for b3ManifoldPoint
impl Clone for b3ManifoldPoint
Source§fn clone(&self) -> b3ManifoldPoint
fn clone(&self) -> b3ManifoldPoint
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more