Example #1
0
        private static double TorqueCallback(DampedRotarySpring spring, double force)
        {
            var sb = (StringBuilder)spring.Data;

            sb.Append("TorqueCallback");
            return(force);
        }
Example #2
0
        public void DampedRotarySpringProperties()
        {
            double restAngle = 1.2222;
            double stiffness = 0.888;
            double damping   = 0.9090;

            space.Gravity = new Vect(0, -10);

            var spring = new DampedRotarySpring(bodyA,
                                                bodyB,
                                                restAngle, stiffness, damping);
            var sb = new StringBuilder();

            spring.Data = sb;

            spring.TorqueFunction = TorqueCallback;

            space.AddConstraint(spring);

            space.Step(1.0);

            Assert.AreEqual("TorqueCallback", sb.ToString(), "#0");

            spring.TorqueFunction = null;

            space.Step(1.0);

            Assert.AreEqual("TorqueCallback", sb.ToString(), "#0.1");

            spring.TorqueFunction = TorqueCallback;

            space.Step(1.0);

            Assert.AreEqual("TorqueCallbackTorqueCallback", sb.ToString(), "#0.2");

            Assert.AreEqual(restAngle, spring.RestAngle, "#1");
            Assert.AreEqual(stiffness, spring.Stiffness, "#2");
            Assert.AreEqual(damping, spring.Damping, "#3");

            spring.RestAngle = 2.0;
            spring.Stiffness = 1.0;
            spring.Damping   = 1.1;

            Assert.AreEqual(2.0, spring.RestAngle, "#4");
            Assert.AreEqual(1.0, spring.Stiffness, "#5");
            Assert.AreEqual(1.1, spring.Damping, "#6");

            Assert.IsTrue(DampedRotarySpring.IsDampedRotarySpring(spring), "#7");
        }