RotationalVelocityEquation Class
Syncs rotational velocity of two bodies, or sets a relative velocity (motor).
Item Index
Methods
Methods
addToWlambda
-
deltalambda
Add constraint velocity to the bodies.
Parameters:
-
deltalambda
Number
computeB
()
Number
Computes the RHS of the SPOOK equation
Returns:
computeGiMf
()
Number
Computes Ginv(M)f, where M is the mass matrix with diagonal blocks for each body, and f are the forces on the bodies.
Returns:
computeGiMGt
()
Number
Computes Ginv(M)G'
Returns:
computeGq
()
Number
Computes G*q, where q are the generalized body coordinates
Returns:
computeGW
()
Number
Computes G*W, where W are the body velocities
Returns:
computeGWlambda
()
Number
Computes G*Wlambda, where W are the body velocities
Returns:
computeInvC
-
eps
Compute the denominator part of the SPOOK equation: C = Ginv(M)G' + eps
Parameters:
-
eps
Number
Returns:
gmult
()
Number
Multiply a jacobian entry with corresponding positions or velocities
Returns:
update
()
Compute SPOOK parameters .a, .b and .epsilon according to the current parameters. See equations 9, 10 and 11 in the SPOOK notes.
Properties
enabled
Boolean
Whether this equation is enabled or not. If true, it will be added to the solver.
G
Array
The Jacobian entry of this equation. 6 numbers, 3 per body (x,y,angle).
maxForce
Number
Max force to apply when solving.
minForce
Number
Minimum force to apply when solving.
multiplier
Number
The resulting constraint multiplier from the last solve. This is mostly equivalent to the force produced by the constraint.
needsUpdate
Boolean
Indicates if stiffness or relaxation was changed.
relativeVelocity
Number
Relative velocity.
relaxation
Number
The number of time steps needed to stabilize the constraint equation. Typically between 3 and 5 time steps.
stiffness
Number
The stiffness of this equation. Typically chosen to a large number (~1e7), but can be chosen somewhat freely to get a stable simulation.