Beispiel #1
0
 private static IEnumerator DoWaitTrue(ReturnBoolDelegate func)
 {
     while (!func())
     {
         yield return(null);
     }
 }
Beispiel #2
0
 /// <summary>
 /// Returns whether the shortest dubins path
 /// should always be the one displayed.
 /// </summary>
 /// <returns></returns>
 public bool UseShortestIsChecked()
 {
     // Same game as in SetHelpText - if neccessary, the method is
     // invoked in the thread the the control element was created for.
     if (!checkBoxUseShortest.InvokeRequired)
     {
         return(checkBoxUseShortest.Checked);
     }
     else
     {
         ReturnBoolDelegate myDelegate = UseShortestIsChecked;
         bool isChecked = (bool)helpBox.Invoke(myDelegate);
         return(isChecked);
     }
 }
Beispiel #3
0
 public static Coroutine WaitTrue(ReturnBoolDelegate func)
 {
     return(StartConroutine(DoWaitTrue(func)));
 }
        private void TestInvalidationSystemCore(bool parentIsCollapsed, ReturnBoolDelegate getArrangeHasBeenCalledVal)
        {
            var worldMatrix = Matrix.Zero;

            ResetElementState();

            onMeasureOverride += SetMeasureOverrideToCalled;
            onArrageOverride += SetArrangeOverrideToCalled;
            onCollapsedOverride += SetCollapseOverrideToCalled;

            Measure(Vector3.Zero);
            Arrange(Vector3.Zero, parentIsCollapsed);
            Assert.IsTrue(IsMeasureValid);
            Assert.IsTrue(IsArrangeValid);

            measureOverrideHasBeenCalled = false;
            arrangeOverrideHasBeenCalled = false;
            collapseOverrideHasBeenCalled = false;

            InvalidateMeasure();
            Assert.IsFalse(IsMeasureValid);
            Assert.IsFalse(IsArrangeValid);
            Measure(Vector3.Zero);
            Assert.IsTrue(IsMeasureValid);
            Assert.IsFalse(IsArrangeValid);
            Assert.IsTrue(measureOverrideHasBeenCalled);
            Arrange(Vector3.Zero, parentIsCollapsed);
            Assert.IsTrue(IsArrangeValid);
            Assert.IsTrue(IsMeasureValid);
            Assert.IsTrue(getArrangeHasBeenCalledVal());
            worldMatrix.M11 = 2;
            UpdateWorldMatrix(ref worldMatrix, false); // check that invalidation of arrange force the update of the world matrix
            Assert.AreEqual(worldMatrix.M11, WorldMatrix.M11);

            measureOverrideHasBeenCalled = false;
            arrangeOverrideHasBeenCalled = false;
            collapseOverrideHasBeenCalled = false;

            InvalidateArrange();
            Assert.IsTrue(IsMeasureValid);
            Assert.IsFalse(IsArrangeValid);
            Measure(Vector3.Zero);
            Assert.IsTrue(IsMeasureValid);
            Assert.IsFalse(IsArrangeValid);
            Assert.IsFalse(measureOverrideHasBeenCalled);
            Arrange(Vector3.Zero, parentIsCollapsed);
            Assert.IsTrue(IsMeasureValid);
            Assert.IsTrue(IsArrangeValid);
            Assert.IsTrue(getArrangeHasBeenCalledVal());
            worldMatrix.M11 = 3;
            UpdateWorldMatrix(ref worldMatrix, false); // check that invalidation of arrange force the update of the world matrix
            Assert.AreEqual(worldMatrix.M11, WorldMatrix.M11);

            measureOverrideHasBeenCalled = false;
            arrangeOverrideHasBeenCalled = false;
            collapseOverrideHasBeenCalled = false;

            Measure(Vector3.Zero);
            Assert.IsTrue(IsMeasureValid);
            Assert.IsTrue(IsArrangeValid);
            Assert.IsFalse(measureOverrideHasBeenCalled);
            Arrange(Vector3.Zero, parentIsCollapsed);
            Assert.IsTrue(IsMeasureValid);
            Assert.IsTrue(IsArrangeValid);
            Assert.IsFalse(getArrangeHasBeenCalledVal());
            worldMatrix.M11 = 4;
            UpdateWorldMatrix(ref worldMatrix, false); // check that the world matrix is not re-calculated if the arrangement is not invalidated
            Assert.AreEqual(3, WorldMatrix.M11);
            
            measureOverrideHasBeenCalled = false;
            arrangeOverrideHasBeenCalled = false;
            collapseOverrideHasBeenCalled = false;

            Measure(Vector3.One); // check that measuring with a new value force the re-measurement but not re-arrangement
            Assert.IsTrue(IsMeasureValid);
            Assert.IsFalse(IsArrangeValid);
            Assert.IsTrue(measureOverrideHasBeenCalled);
            Arrange(Vector3.Zero, parentIsCollapsed);
            Assert.IsTrue(IsMeasureValid);
            Assert.IsTrue(IsArrangeValid);
            Assert.IsFalse(getArrangeHasBeenCalledVal());

            measureOverrideHasBeenCalled = false;
            arrangeOverrideHasBeenCalled = false;
            collapseOverrideHasBeenCalled = false;

            Measure(Vector3.One);
            Assert.IsTrue(IsMeasureValid);
            Assert.IsTrue(IsArrangeValid);
            Assert.IsFalse(measureOverrideHasBeenCalled);
            Arrange(Vector3.One, parentIsCollapsed); // check that arranging with a new value force the re-arrangement
            Assert.IsTrue(IsMeasureValid);
            Assert.IsTrue(IsArrangeValid);
            Assert.IsTrue(getArrangeHasBeenCalledVal());

            Measure(Vector3.One);
            Assert.IsTrue(IsMeasureValid);
            Assert.IsTrue(IsArrangeValid);
            Assert.IsFalse(measureOverrideHasBeenCalled);
            Arrange(Vector3.One, !parentIsCollapsed); // check that arranging with a new value of the parent collapse state force the re-arrangement
            Assert.IsTrue(IsMeasureValid);
            Assert.IsTrue(IsArrangeValid);
            Assert.IsTrue(getArrangeHasBeenCalledVal());
        }