void Start() { _PointCloudManager = _ViveCtrl.PointCloudManagerGet(); _VRCamera = _ViveCtrl.GetVRCamera(); _LeftHand = _ViveCtrl.GetLeftHand(); _RightController = _ViveCtrl.GetRightHand(); GameObject leftCollider = Instantiate(_ColliderPrefab); leftCollider.name = "StartView_LeftCollider"; leftCollider.transform.parent = _LeftHand.transform; leftCollider.transform.localPosition = new Vector3(-0.0015f, -0.0372f, 0.0073f); leftCollider.transform.localEulerAngles = new Vector3(57.497f, 19.942f, 12.817f); GameObject rightCollider = Instantiate(_ColliderPrefab); rightCollider.name = "StartView_RightCollider"; rightCollider.transform.parent = _RightController.transform; rightCollider.transform.localPosition = new Vector3(-0.0015f, -0.0372f, 0.0073f); rightCollider.transform.localEulerAngles = new Vector3(57.497f, 19.942f, 12.817f); transform.localPosition = new Vector3(0f, 1.5f, 0f); transform.localEulerAngles = new Vector3(0.0f, 0f, 0.0f); _ImportStart.OnTransitionDoneEvent += OnTransitionDone; _LoadStart.OnTransitionDoneEvent += OnTransitionDone; _ImportStart.SetPointCloudManager(_PointCloudManager); _LoadStart.SetPointCloudManager(_PointCloudManager); _PointCloudManager.OnProgress += OnProgressEvent; _PointCloudManager.OnGPUSetDataDone += OnLoadComplete; _SpinnerCtrl.SetActive(false); SetComponentsActive(true); }
void Start() { _ColorBy = ColorByParam.NONE; _ExportFormat = ExportFormat.LAS; _ButtonExportAsLAS.SetActive(true); _Screens = transform.Find("Screens").gameObject; _UserCamera = _ViveCtrl.GetVRCamera(); _RightHandTransform = _ViveCtrl.GetRightHand().transform; _LeftHandTransform = _ViveCtrl.GetLeftHand().transform; // Position menu on back of left controller transform.parent = _LeftHandTransform; transform.localPosition = new Vector3(0f, -0.06f, -0.09f); transform.localRotation = Quaternion.Euler(-90.0f, 0f, 180f); GameObject pointerBase = new GameObject(); pointerBase.transform.parent = _RightHandTransform; pointerBase.transform.localPosition = new Vector3(0.0f, -0.087f, 0.063f); pointerBase.transform.localRotation = Quaternion.Euler(60.0f, 0.0f, 0.0f); pointerBase.name = "pointerBase"; _MenuPointer = Instantiate(_MenuPointerPrefab); _MenuPointer.name = "MenuPointer_CtrlMeny"; _MenuPointer.transform.parent = pointerBase.transform; _MenuPointer.transform.localScale = new Vector3(0.01f, 0.01f, 0.03f); _MenuPointer.transform.localPosition = new Vector3(0.0f, 0.0f, 0.0f); _MenuPointer.transform.localRotation = Quaternion.Euler(0.0f, 0.0f, 0.0f); _MenuPointer.AddComponent <MenuPointerCtrl>(); _MenuPointer.GetComponent <Renderer>().material = _MenuPointerMaterial; _MenuPointer.AddComponent <BoxCollider>(); _MenuPointer.GetComponent <BoxCollider>().isTrigger = true; _MenuPointer.GetComponent <BoxCollider>().center = new Vector3(0.0104362f, 0.0007376721f, 0.5f); _MenuPointer.GetComponent <BoxCollider>().size = new Vector3(0.14f, 0.12f, 1f); _MenuPointer.GetComponent <Renderer>().material.SetColor("_Color", Color.red); _MenuPointer.SetActive(false); // Listen to click events from the pointer _MenuPointer.GetComponent <MenuPointerCtrl>().OnPointerTriggerEnterEvent += OnPointerClick; // Register listerners for all buttons _ButtonMeasureToggle.OnToggleEvent += OnButtonMeasureToggleEvent; _ButtonMeasureBack.OnToggleEvent += OnButtonMeasureBackEvent; _ButtonMeasureSnap.OnToggleEvent += OnMeasureSnapToggleEvent; _ButtonMeasureRestrictXZ.OnToggleEvent += OnMeasureRestrictXZToggleEvent; _ButtonMeasureRestrictY.OnToggleEvent += OnMeasureRestrictYToggleEvent; _ButtonEditToggle.OnToggleEvent += OnButtonEditToggleEvent; _ButtonEditBack.OnToggleEvent += OnButtonEditBackEvent; _ButtonDeleteSelected.OnToggleEvent += OnButtonDeleteSelected; _ButtonSelectInverse.OnToggleEvent += OnButtonSelectInverse; _ButtonSelectNone.OnToggleEvent += OnButtonSelectNone; _ButtonVisualsToggle.OnToggleEvent += OnButtonVisualsToggleEvent; _ButtonVisualsBack.OnToggleEvent += OnButtonVisualsBackEvent; _ButtonAddIntensityToColor.OnToggleEvent += OnButtonAddIntensityToColorToggleEvent; _ButtonColorByRGB.OnToggleEvent += OnButtonColorByEvent; _ButtonColorByRGB.transform.gameObject.GetComponent <ButtonXR>()._ColorBy = ColorByParam.RGB; _ButtonColorByClass.OnToggleEvent += OnButtonColorByEvent; _ButtonColorByClass.transform.gameObject.GetComponent <ButtonXR>()._ColorBy = ColorByParam.CLASS; _ButtonColorByHight.OnToggleEvent += OnButtonColorByEvent; _ButtonColorByHight.transform.gameObject.GetComponent <ButtonXR>()._ColorBy = ColorByParam.HEIGHT; _ButtonColorByIntensity.OnToggleEvent += OnButtonColorByEvent; _ButtonColorByIntensity.transform.gameObject.GetComponent <ButtonXR>()._ColorBy = ColorByParam.INTENSITY; _ButtonColorByPointSourceID.OnToggleEvent += OnButtonColorByEvent; _ButtonColorByPointSourceID.transform.gameObject.GetComponent <ButtonXR>()._ColorBy = ColorByParam.POINT_SOURCE_ID; _ButtonSave.OnToggleEvent += OnButtonSaveToggleEvent; _ButtonExport.OnToggleEvent += OnButtonExportToggleEvent; _ButtonExport.PulseGlowOn(true); _ButtonSaveSelected.OnToggleEvent += OnButtonSaveSelectedToggleEvent; _ButtonExportSelected.OnToggleEvent += OnButtonExportSelectedToggleEvent; _ButtonExportAsXYZ.OnToggleEvent += OnButtonExportAsXYZToggle; _ButtonExportAsLAS.OnToggleEvent += OnButtonExportAsLASToggle; _ButtonStartMeny.OnToggleEvent += OnStartMeny; _ButtonQuit.OnToggleEvent += OnButtonQuit; _ButtonSetUserPosition.OnToggleEvent += OnButtonSetUserPositionToggleEvent; _ButtonFrustumCulling.OnToggleEvent += OnButtonFrustumCullingToggleEvent; _PointCloudManager.OnPointCloudLoaded += OnPointCloudLoaded; ResetScreens(); _ButtonList = new List <ButtonXR>(); _ButtonList.Add(_ButtonMeasureToggle); _ButtonList.Add(_ButtonMeasureSnap); _ButtonList.Add(_ButtonMeasureRestrictXZ); _ButtonList.Add(_ButtonMeasureRestrictY); _ButtonList.Add(_ButtonEditToggle); _ButtonList.Add(_ButtonDeleteSelected); _ButtonList.Add(_ButtonSelectInverse); _ButtonList.Add(_ButtonSelectNone); _ButtonList.Add(_ButtonSave); _ButtonList.Add(_ButtonExport); _ButtonList.Add(_ButtonSaveSelected); _ButtonList.Add(_ButtonExportSelected); _ButtonList.Add(_ButtonExportAsXYZ); _ButtonList.Add(_ButtonExportAsLAS); _ButtonList.Add(_ButtonStartMeny); _ButtonList.Add(_ButtonQuit); _ButtonList.Add(_ButtonSetUserPosition); _ButtonList.Add(_ButtonColorByIntensity); _ButtonList.Add(_ButtonAddIntensityToColor); _SliderGeometrySizeXR = _SliderGeometrySize.transform.GetComponentInChildren <SliderXR>(); _SliderGeometrySizeXR.SetMin(0.001f); _SliderGeometrySizeXR.SetMax(0.1f); _SliderGeometrySizeXR.OnValueChangeEvent += OnGeometrySizeChanged; _SliderThrottleXR = _SliderThrottle.transform.GetComponentInChildren <SliderXR>(); _SliderThrottleXR.SetMin(1f); _SliderThrottleXR.SetMax(6f); _SliderThrottleXR.OnValueChangeEvent += OnThrottleChanged; EnableButtonsForPointCloud(false); // Always starts in StartView scene, no pointcloud loaded. MenuUpdate(); ChildrenSetActive(false); }