crashcat docs
    Preparing search index...

    A single contact point with full constraint data. Links world-space geometry to constraint solving.

    Each contact point has 3 constraint axes:

    • Normal: prevents penetration (1 DOF)
    • Tangent1: friction in first direction (1 DOF)
    • Tangent2: friction in second direction (1 DOF) Total: 3 DOF per contact point (max 4 points = 12 DOF per manifold)
    type WorldContactPoint = {
        localPositionA: Vec3;
        localPositionB: Vec3;
        normalConstraint: axisConstraintPart.AxisConstraintPart;
        positionA: Vec3;
        positionB: Vec3;
        tangentConstraint1: axisConstraintPart.AxisConstraintPart;
        tangentConstraint2: axisConstraintPart.AxisConstraintPart;
    }
    Index

    Properties

    localPositionA: Vec3

    Contact point position in body A's local/relative space (center of mass space). Constant - used to recompute world position when body moves.

    localPositionB: Vec3

    Contact point position in body B's local/relative space (center of mass space). Constant - used to recompute world position when body moves.

    normalConstraint: axisConstraintPart.AxisConstraintPart

    Normal constraint: prevents interpenetration. Direction: contact normal (perpendicular to contact surface). Lambda clamping: normalLambda >= 0 (push only, no pull).

    positionA: Vec3

    Contact point position on body A (world space). Recomputed each solving iteration from local position + body transform.

    positionB: Vec3

    Contact point position on body B (world space). Recomputed each solving iteration from local position + body transform.

    tangentConstraint1: axisConstraintPart.AxisConstraintPart

    Friction constraint 1: resists motion in first tangent direction. Direction: first tangent (perpendicular to normal). Lambda clamping: |tangentLambda1| <= friction * normalLambda.

    tangentConstraint2: axisConstraintPart.AxisConstraintPart

    Friction constraint 2: resists motion in second tangent direction. Direction: second tangent (perpendicular to normal and tangent1). Lambda clamping: |tangentLambda2| <= friction * normalLambda.