Esempio n. 1
0
 // Initialize value of controllers in the menu
 void InitializeControllerValues()
 {
     _SliderGeometrySizeXR.SetValue(_PointCloudManager.GetShaderGeometrySize());
     _SliderThrottleXR.SetValue(_ViveCtrl.GetThrottle());
     _ButtonAddIntensityToColor.SetActive(_PointCloudManager.GetAddIntensityToColor());
     _ButtonFrustumCulling.SetActive(_PointCloudManager._culling_enabled);
 }
Esempio n. 2
0
 void OnButtonExportAsLASToggle(object sender, ButtonToggleEvent e)
 {
     if (e._Active)
     {
         _ExportFormat = ExportFormat.LAS;
         _ButtonExportAsXYZ.SetActive(false);
     }
 }
Esempio n. 3
0
    void OnMeasureRestrictYToggleEvent(object sender, ButtonToggleEvent e)
    {
        if (e._Active)
        {
            if (_MeasureTool.RestrictModeGet() == RestrictMode.XZ)
            {
                _ButtonMeasureRestrictXZ.SetActive(false);
            }

            MeasureRestrictModeSet(RestrictMode.Y);
        }
        else
        {
            MeasureRestrictModeSet(RestrictMode.none);
        }
    }
Esempio n. 4
0
    private void EnableButtonsForPointCloud(bool enabled)
    {
        for (int i = 0; i < _ButtonList.Count; i++)
        {
            _ButtonList[i].Enable(enabled);
        }

        _ButtonStartMeny.Reset();
        _ButtonStartMeny.SetActive(false);
        _ButtonQuit.SetActive(false);

        if (enabled)
        {
            _PointsInCloud.text = _PointCloudManager.GetPointCloudFormat().NumberOfPoints.ToString("N0", CultureInfo.CreateSpecificCulture("sv-SE")) + " points in cloud";
        }
    }
Esempio n. 5
0
    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);
    }
Esempio n. 6
0
    void OnButtonColorByEvent(object sender, ButtonToggleEvent e)
    {
        // Deactivate all other ColorBy* buttons. Change layout to the one used in Edit screen
        // for mode selection.
        ColorByParam color_by = ((ButtonXR)sender)._ColorBy;

        if (color_by == ColorByParam.RGB)
        {
            if (e._Active)
            {
                SetColorBy(color_by);

                _ButtonColorByClass.SetActive(false);
                _ButtonColorByHight.SetActive(false);
                _ButtonColorByIntensity.SetActive(false);
                _ButtonColorByPointSourceID.SetActive(false);
            }
            else
            {
                SetColorBy(ColorByParam.NONE);
            }
        }

        if (color_by == ColorByParam.CLASS)
        {
            if (e._Active)
            {
                SetColorBy(color_by);

                _ButtonColorByRGB.SetActive(false);
                _ButtonColorByHight.SetActive(false);
                _ButtonColorByIntensity.SetActive(false);
                _ButtonColorByPointSourceID.SetActive(false);
            }
            else
            {
                SetColorBy(ColorByParam.NONE);
            }
        }

        if (color_by == ColorByParam.HEIGHT)
        {
            if (e._Active)
            {
                SetColorBy(color_by);

                _ButtonColorByRGB.SetActive(false);
                _ButtonColorByClass.SetActive(false);
                _ButtonColorByIntensity.SetActive(false);
                _ButtonColorByPointSourceID.SetActive(false);
            }
            else
            {
                SetColorBy(ColorByParam.NONE);
            }
        }

        if (color_by == ColorByParam.INTENSITY)
        {
            if (e._Active)
            {
                SetColorBy(color_by);

                _ButtonColorByRGB.SetActive(false);
                _ButtonColorByClass.SetActive(false);
                _ButtonColorByHight.SetActive(false);
                _ButtonColorByPointSourceID.SetActive(false);
            }
            else
            {
                SetColorBy(ColorByParam.NONE);
            }
        }

        if (color_by == ColorByParam.POINT_SOURCE_ID)
        {
            if (e._Active)
            {
                SetColorBy(color_by);

                _ButtonColorByRGB.SetActive(false);
                _ButtonColorByClass.SetActive(false);
                _ButtonColorByHight.SetActive(false);
                _ButtonColorByIntensity.SetActive(false);
            }
            else
            {
                SetColorBy(ColorByParam.NONE);
            }
        }
    }
Esempio n. 7
0
 void OnPointCloudExportSelectedListener(object sender, EventArgs e)
 {
     _PointCloudManager.OnPointCloudExported -= OnPointCloudExportSelectedListener;
     _ButtonExportSelected.SetActive(false);
 }
Esempio n. 8
0
 void OnPointCloudSavedListener(object sender, EventArgs e)
 {
     _ButtonSave.SetActive(false);
 }
Esempio n. 9
0
    IEnumerator SetButtonInactiveDelay(ButtonXR button, float time)
    {
        yield return(new WaitForSeconds(time));

        button.SetActive(false);
    }
Esempio n. 10
0
 void OnButtonVisualsBackEvent(object sender, ButtonToggleEvent e)
 {
     _ButtonVisualsBack.SetActive(false);
     VisualsSetActive(!e._Active);
 }
Esempio n. 11
0
 void OnButtonEditBackEvent(object sender, ButtonToggleEvent e)
 {
     _ButtonEditBack.SetActive(false);
     EditSetActive(!e._Active);
 }
Esempio n. 12
0
 void OnButtonMeasureBackEvent(object sender, ButtonToggleEvent e)
 {
     _ButtonMeasureBack.SetActive(false);
     MeasureSetActive(!e._Active);
 }