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);
			}
		}