public void SetLimitCone() { using (var core = CreatePhysicsAndScene()) { var box1 = CreateBoxActor(core.Scene, new Vector3(5, 5, 5), new Vector3(0, 10, 0)); var box2 = CreateBoxActor(core.Scene, new Vector3(5, 5, 5), new Vector3(0, 20, 0)); SphericalJoint joint = core.Scene.CreateJoint <SphericalJoint>(box1, Matrix4x4.Identity, box2, Matrix4x4.Identity); // Set the limit cone var limit = new JointLimitCone() { YLimitAngle = 0.5f, // [0 - PI/2] ZLimitAngle = 0.6f, // [0 - PI/2] Stiffness = 3, Damping = 4, Restitution = 0.7f // [0 - 1] }; joint.SetLimitCone(limit); // Get the limit cone back and compare the values to make sure they've been stored var retrievedLimitCone = joint.GetLimitCone(); Assert.AreEqual(0.5f, retrievedLimitCone.YLimitAngle); Assert.AreEqual(0.6f, retrievedLimitCone.ZLimitAngle); Assert.AreEqual(3, retrievedLimitCone.Stiffness); Assert.AreEqual(4, retrievedLimitCone.Damping); Assert.AreEqual(0.7f, retrievedLimitCone.Restitution); } }
public void SetLimitCone() { using (var core = CreatePhysicsAndScene()) { var box1 = CreateBoxActor(core.Scene, new Vector3(5, 5, 5), new Vector3(0, 10, 0)); var box2 = CreateBoxActor(core.Scene, new Vector3(5, 5, 5), new Vector3(0, 20, 0)); SphericalJoint joint = core.Scene.CreateJoint<SphericalJoint>(box1, Matrix4x4.Identity, box2, Matrix4x4.Identity); // Set the limit cone var limit = new JointLimitCone() { YLimitAngle = 0.5f, // [0 - PI/2] ZLimitAngle = 0.6f, // [0 - PI/2] Stiffness = 3, Damping = 4, Restitution = 0.7f // [0 - 1] }; joint.SetLimitCone(limit); // Get the limit cone back and compare the values to make sure they've been stored var retrievedLimitCone = joint.GetLimitCone(); Assert.AreEqual(0.5f, retrievedLimitCone.YLimitAngle); Assert.AreEqual(0.6f, retrievedLimitCone.ZLimitAngle); Assert.AreEqual(3, retrievedLimitCone.Stiffness); Assert.AreEqual(4, retrievedLimitCone.Damping); Assert.AreEqual(0.7f, retrievedLimitCone.Restitution); } }