Px1DConstraint

Defined in include/PxConstraintDesc.h

struct Px1DConstraint

A one-dimensional constraint.

A constraint is expressed as a set of 1-dimensional constraint rows which define the required constraint on the objects’ velocities.

Each constraint is either a hard constraint or a spring. We define the velocity at the constraint to be the quantity

v = body0vel.dot(lin0,ang0) - body1vel.dot(lin1, ang1)

For a hard constraint, the solver attempts to generate

  1. a set of velocities for the objects which, when integrated, respect the constraint errors:

    v + (geometricError / timestep) = velocityTarget

  2. a set of velocities for the objects which respect the constraints:

    v = velocityTarget

Hard constraints support restitution: if the impact velocity exceeds the bounce threshold, then the target velocity of the constraint will be set to restitution * -v

Alternatively, the solver can attempt to resolve the velocity constraint as an implicit spring:

F = stiffness * -geometricError + damping * (velocityTarget - v)

where F is the constraint force or acceleration. Springs are fully implicit: that is, the force or acceleration is a function of the position and velocity after the solve.

All constraints support limits on the minimum or maximum impulse applied.

Public Members

PxVec3 linear0

linear component of velocity jacobian in world space

PxReal geometricError

geometric error of the constraint along this axis

PxVec3 angular0

angular component of velocity jacobian in world space

PxReal velocityTarget

velocity target for the constraint along this axis

PxVec3 linear1

linear component of velocity jacobian in world space

PxReal minImpulse

minimum impulse the solver may apply to enforce this constraint

PxVec3 angular1

angular component of velocity jacobian in world space

PxReal maxImpulse

maximum impulse the solver may apply to enforce this constraint

PxReal stiffness

spring parameter, for spring constraints

PxReal damping

damping parameter, for spring constraints

struct Px1DConstraint::[anonymous]::SpringModifiers spring
PxReal restitution

restitution parameter for determining additional “bounce”

PxReal velocityThreshold

minimum impact velocity for bounce

struct Px1DConstraint::[anonymous]::RestitutionModifiers bounce
union Px1DConstraint::[anonymous] mods
PxReal forInternalUse

for internal use only

PxU16 flags

a set of Px1DConstraintFlags

PxU16 solveHint

constraint optimization hint, should be an element of PxConstraintSolveHint