BEPUphysics.Constraints.TwoEntity.Joints.NoRotationJoint.SolveIteration C# (CSharp) Method

SolveIteration() public method

Applies the corrective impulses required by the constraint.
public SolveIteration ( ) : float
return float
        public override float SolveIteration()
        {
            Vector3 velocityDifference;
            Vector3.Subtract(ref connectionB.angularVelocity, ref connectionA.angularVelocity, out velocityDifference);
            Vector3 softnessVector;
            Vector3.Multiply(ref accumulatedImpulse, softness, out softnessVector);

            Vector3 lambda;
            Vector3.Add(ref velocityDifference, ref biasVelocity, out lambda);
            Vector3.Subtract(ref lambda, ref softnessVector, out lambda);
            Matrix3x3.Transform(ref lambda, ref effectiveMassMatrix, out lambda);

            Vector3.Add(ref lambda, ref accumulatedImpulse, out accumulatedImpulse);
            if (connectionA.isDynamic)
            {
                connectionA.ApplyAngularImpulse(ref lambda);
            }
            if (connectionB.isDynamic)
            {
                Vector3 torqueB;
                Vector3.Negate(ref lambda, out torqueB);
                connectionB.ApplyAngularImpulse(ref torqueB);
            }

            return Math.Abs(lambda.X) + Math.Abs(lambda.Y) + Math.Abs(lambda.Z);
        }