Example #1
0
        public IEnumerator BoundaryPoints()
        {
            AddExtension(MockRuntime.XR_UNITY_mock_test);

            base.InitializeAndStart();

            yield return(null);

            Assert.IsTrue(base.IsRunning <XRInputSubsystem>(), "Input subsystem failed to properly start!");

            MockRuntime.SetReferenceSpaceBounds(XrReferenceSpaceType.Stage, new Vector2 {
                x = 1.0f, y = 3.0f
            });

            yield return(null);

            var input = Loader.GetLoadedSubsystem <XRInputSubsystem>();

            Assert.That(() => input, Is.Not.Null);

            input.TrySetTrackingOriginMode(TrackingOriginModeFlags.Floor);

            yield return(null);

            var points = new List <Vector3>();

            Assert.IsTrue(input.TryGetBoundaryPoints(points), "Failed to get boundary points!");
            Assert.That(() => points.Count, Is.EqualTo(4), "Incorrect number of boundary points received!");

            var comparer = new Vector3EqualityComparer(10e-6f);

            Assert.That(points[0], Is.EqualTo(new Vector3 {
                x = -1.0f, y = 0.0f, z = -3.0f
            }).Using(comparer));
            Assert.That(points[1], Is.EqualTo(new Vector3 {
                x = -1.0f, y = 0.0f, z = 3.0f
            }).Using(comparer));
            Assert.That(points[2], Is.EqualTo(new Vector3 {
                x = 1.0f, y = 0.0f, z = 3.0f
            }).Using(comparer));
            Assert.That(points[3], Is.EqualTo(new Vector3 {
                x = 1.0f, y = 0.0f, z = -3.0f
            }).Using(comparer));
        }