Example #1
0
        /// <summary>
        /// Calculate and apply any internal forces due to deformation
        /// to the particles connected to this spring
        /// </summary>
        public void ApplyForces()
        {
            if (StartParticle != null && EndParticle != null)
            {
                Vector dir    = EndParticle.Position - StartParticle.Position;
                double length = dir.Magnitude();
                dir /= length;
                double extension = length - RestLength;
                double T         = extension * Stiffness;
                if ((Compression && extension < 0) ||
                    (Tension && extension > 0))
                {
                    // Apply force:

                    Vector force = dir * T;
                    StartParticle.ApplyForce(force);
                    EndParticle.ApplyForce(-force);
                }
            }
        }