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
a set of velocities for the objects which, when integrated, respect the constraint errors:
v + (geometricError / timestep) = velocityTarget
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
-
struct Px1DConstraint::[anonymous]::SpringModifiers spring
-
struct Px1DConstraint::[anonymous]::RestitutionModifiers bounce
-
union Px1DConstraint::[anonymous] mods
-
PxU16 solveHint
constraint optimization hint, should be an element of PxConstraintSolveHint