pub struct ContactPoint<S: PhysicsSpace> {
pub world_point: S::Point,
pub anchor_a: S::Vector,
pub anchor_b: S::Vector,
pub normal: S::Vector,
pub penetration: f32,
pub normal_impulse: f32,
pub tangent_dir: S::Vector,
pub tangent_impulse: f32,
pub velocity_bias: f32,
}Fields§
§world_point: S::Point§anchor_a: S::VectorWitness in A’s local frame.
anchor_b: S::VectorWitness in B’s local frame.
normal: S::VectorUnit, from A toward B.
penetration: f32§normal_impulse: f32§tangent_dir: S::VectorValid within one step only: the slide direction can flip.
tangent_impulse: f32Cleared before each step; stored as a magnitude.
velocity_bias: f32Snapshot before the warm-start, constant across the PGS iterations.
Trait Implementations§
Source§impl<S: PhysicsSpace> Clone for ContactPoint<S>
impl<S: PhysicsSpace> Clone for ContactPoint<S>
impl<S: PhysicsSpace> Copy for ContactPoint<S>
Auto Trait Implementations§
impl<S> Freeze for ContactPoint<S>
impl<S> RefUnwindSafe for ContactPoint<S>
impl<S> Send for ContactPoint<S>
impl<S> Sync for ContactPoint<S>
impl<S> Unpin for ContactPoint<S>
impl<S> UnsafeUnpin for ContactPoint<S>
impl<S> UnwindSafe for ContactPoint<S>
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