Example #1
0
        public void EulerToQuaternion_QuaternionToEuler_ResultingOrientationIsCloseToOriginal(
            [Values] math.RotationOrder rotationOrder,
            [Values(-90f, -45, 0f, 45, 90f)] float x,
            [Values(-90f, -45, 0f, 45, 90f)] float y,
            [Values(-90f, -45, 0f, 45, 90f)] float z
            )
        {
            var inputEulerAngles = new EulerAngles {
                RotationOrder = rotationOrder, Value = new float3(x, y, z)
            };
            var inputQuaternion = (quaternion)inputEulerAngles;

            Assume.That(math.abs(math.length(inputQuaternion.value)), Is.EqualTo(1.0f).Within(1e-05));

            EulerAngles outputEulerAngles = new EulerAngles {
                RotationOrder = inputEulerAngles.RotationOrder
            };

            outputEulerAngles.SetValue(inputQuaternion);
            quaternion outputQuaternion = (quaternion)outputEulerAngles;

            Assume.That(math.abs(math.length(outputQuaternion.value)), Is.EqualTo(1.0f).Within(1e-05));

            Assert.That(outputQuaternion, Is.OrientedEquivalentTo(inputQuaternion));
        }
        public void SetValue_WhenRotationOrder_ReturnsExpectedValue(
            math.RotationOrder rotationOrder, quaternion value, float3 expectedEulerAngles
            )
        {
            var eulerAngles = new EulerAngles {
                RotationOrder = rotationOrder
            };

            eulerAngles.SetValue(value);

            Assert.That(eulerAngles.Value, Is.PrettyCloseTo(expectedEulerAngles));
        }