private static IEnumerator DoWaitTrue(ReturnBoolDelegate func) { while (!func()) { yield return(null); } }
/// <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); } }
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()); }