Box2D.Dynamics.Joints.ConstantVolumeJoint.InitVelocityConstraints C# (CSharp) Method

InitVelocityConstraints() public method

public InitVelocityConstraints ( SolverData data ) : void
data SolverData
return void
        public override void InitVelocityConstraints(SolverData data)
        {
            Vec2[] d = Pool.GetVec2Array(Bodies.Length);

            for (int i = 0; i < Bodies.Length; ++i)
            {
                int prev = (i == 0) ? Bodies.Length - 1 : i - 1;
                int next = (i == Bodies.Length - 1) ? 0 : i + 1;
                d[i].Set(Bodies[next].WorldCenter);
                d[i].SubLocal(Bodies[prev].WorldCenter);
            }

            if (data.Step.WarmStarting)
            {
                m_impulse *= data.Step.DtRatio;
                // float lambda = -2.0f * crossMassSum / dotMassSum;
                // System.out.println(crossMassSum + " " +dotMassSum);
                // lambda = MathUtils.clamp(lambda, -Settings.maxLinearCorrection,
                // Settings.maxLinearCorrection);
                // m_impulse = lambda;
                for (int i = 0; i < Bodies.Length; ++i)
                {
                    Bodies[i].LinearVelocity.X += Bodies[i].InvMass * d[i].Y * .5f * m_impulse;
                    Bodies[i].LinearVelocity.Y += Bodies[i].InvMass * (-d[i].X) * .5f * m_impulse;
                }
            }
            else
            {
                m_impulse = 0.0f;
            }
        }