Example #1
0
        void OnProjectOpenButtonClick(Project project)
        {
            if (!ReflectProjectsManager.IsReadyForOpening(project))
            {
                return;
            }

            var activeProject = m_ActiveProjectGetter.GetValue();

            if (activeProject?.serverProjectId == project.serverProjectId)
            {
                Dispatcher.Dispatch(OpenDialogAction.From(OpenDialogAction.DialogType.None));
                //if the project already opened, just close landing screen
                return;
            }
            Dispatcher.Dispatch(SetWalkEnableAction.From(false));

            activeProject = project;

            if (activeProject != Project.Empty)
            {
                if (m_NavigationModeGetter.GetValue() != SetNavigationModeAction.NavigationMode.VR)
                {
                    // switch to orbit mode
                    var data = new SetForceNavigationModeAction.ForceNavigationModeTrigger((int)SetNavigationModeAction.NavigationMode.Orbit);
                    Dispatcher.Dispatch(SetForceNavigationModeAction.From(data));
                }

                // first close current Project if open
                Dispatcher.Dispatch(SetStatusMessage.From("Closing {UIStateManager.current.projectStateData.activeProject.name}..."));
            }
            Dispatcher.Dispatch(SetStatusMessage.From($"Opening {activeProject.name}..."));
            Dispatcher.Dispatch(CloseAllDialogsAction.From(null));

            Dispatcher.Dispatch(SetIsOpenWithLinkSharingAction.From(false));
            Dispatcher.Dispatch(SetCachedLinkTokenAction.From(string.Empty));

            Dispatcher.Dispatch(OpenProjectActions <Project> .From(activeProject));
            Dispatcher.Dispatch(ToggleMeasureToolAction.From(ToggleMeasureToolAction.ToggleMeasureToolData.defaultData));
        }
Example #2
0
        void OnForceNavigationMode(SetForceNavigationModeAction.ForceNavigationModeTrigger data)
        {
            if (data.trigger)
            {
                IEnumerator WaitOneFrame()
                {
                    yield return(null);

                    switch ((SetNavigationModeAction.NavigationMode)data.mode)
                    {
                    case SetNavigationModeAction.NavigationMode.Orbit:
                    case SetNavigationModeAction.NavigationMode.Fly:
                    {
                        OnFlyButtonClicked();
                        break;
                    }

                    case SetNavigationModeAction.NavigationMode.Walk:
                    {
                        OnWalkButtonClicked();
                        break;
                    }

                    case SetNavigationModeAction.NavigationMode.AR:
                    {
                        OnARButtonClicked();
                        break;
                    }

                    case SetNavigationModeAction.NavigationMode.VR:
                    {
                        OnVRButtonClicked();
                        break;
                    }
                    }
                }

                StartCoroutine(WaitOneFrame());
            }
        }
Example #3
0
        public void Cancel()
        {
            if (m_MarkerController != null)
            {
                m_MarkerController?.CancelBarcode();
                if (m_MarkerController.ImageTracker != null)
                {
                    m_MarkerController.ImageTracker.OnTrackedFound          -= HandleTrackableFound;
                    m_MarkerController.ImageTracker.OnTrackedPositionUpdate -= HandleTrackableUpdate;
                    m_MarkerController?.ImageTracker?.Stop();
                }
            }

            PauseAR(false);
            Dispatcher.Dispatch(SetAREnabledAction.From(false));
            Dispatcher.Dispatch(ClearStatusAction.From(false));
            Dispatcher.Dispatch(ShowModelAction.From(true));
            m_CurrentState = MarkerBasedInstructionUIState.Init;
            m_ARModeUIController.StartCoroutine(AcknowledgeCancel());
            // Kick back to Orbit mode
            var data = new SetForceNavigationModeAction.ForceNavigationModeTrigger((int)SetNavigationModeAction.NavigationMode.Orbit);

            Dispatcher.Dispatch(SetForceNavigationModeAction.From(data));
        }