Esempio n. 1
0
 public void Start()
 {
     m_FrameCount      = 14;
     TestPrefab        = QueryTestObjectSettings.instance.SimplePlaneConditionProxy;
     m_QueryBackend    = ModuleLoaderCore.instance.GetModule <MARSQueryBackend>();
     m_SchedulerModule = ModuleLoaderCore.instance.GetModule <EvaluationSchedulerModule>();
     // block automatic solving on interval
     m_PreviousSchedulerMode = m_SchedulerModule.ActiveMode;
     m_SchedulerModule.SetMode(MarsSceneEvaluationMode.WaitForRequest);
 }
Esempio n. 2
0
        internal void SetMode(MarsSceneEvaluationMode mode)
        {
            if (mode == MarsSceneEvaluationMode.EvaluateOnInterval && ActiveMode == MarsSceneEvaluationMode.WaitForRequest)
            {
                // if we're evaluating when we get a request to change to interval mode,
                // we need to let the current evaluation finish and queue another one.
                if (CurrentlyEvaluating)
                {
                    EvaluationQueued = true;
                }
                // otherwise we can immediately start a new evaluation
                else
                {
                    OnEvaluationStart();
                }
            }

            ActiveMode = mode;
        }
Esempio n. 3
0
 /// <summary>
 /// Set the scheduling mode for evaluating the MARS scene.
 /// Changing the mode to EvaluateOnInterval will queue an evaluation.
 /// </summary>
 /// <param name="mode">The mode to set</param>
 public static void SetEvaluationMode(this IUsesMarsSceneEvaluation caller, MarsSceneEvaluationMode mode)
 {
     IUsesMarsSceneEvaluationMethods.SetEvaluationMode(mode);
 }