コード例 #1
0
ファイル: EditToolCtrl.cs プロジェクト: mhzse/PointcloudXR
    public Color[] GetModeColors(EditToolMode mode)
    {
        Color[] mode_colors = new Color[2];

        if (mode == EditToolMode.SELECT)
        {
            mode_colors[0] = _SelectColor;
            mode_colors[1] = _SelectRimColor;
        }

        if (mode == EditToolMode.DESELECT)
        {
            mode_colors[0] = _DeselectColor;
            mode_colors[1] = _DeselectRimColor;
        }

        if (mode == EditToolMode.DELETE)
        {
            mode_colors[0] = _DeleteColor;
            mode_colors[1] = _DeleteRimColor;
        }

        if (mode == EditToolMode.NONE)
        {
            mode_colors[0] = _InactiveColor;
            mode_colors[1] = _InactiveColor;
        }

        return(mode_colors);
    }
コード例 #2
0
ファイル: ViveCtrl.cs プロジェクト: mhzse/PointcloudXR
    private void EditToolTogleModeButtonPress(SteamVR_Action_Boolean fromAction, SteamVR_Input_Sources fromSource, bool newState)
    {
        EditToolMode mode     = _EditTool.GetAction();
        EditToolMode new_mode = EditToolMode.NONE;

        if (mode == EditToolMode.NONE)
        {
            new_mode = EditToolMode.SELECT;
        }

        if (mode == EditToolMode.SELECT)
        {
            new_mode = EditToolMode.DESELECT;
        }

        if (mode == EditToolMode.DESELECT)
        {
            new_mode = EditToolMode.DELETE;
        }

        if (mode == EditToolMode.DELETE)
        {
            new_mode = EditToolMode.NONE;
        }

        EditToolSetMode(new_mode);
    }
コード例 #3
0
ファイル: ViveCtrl.cs プロジェクト: mhzse/PointcloudXR
    public void EditToolSetMode(EditToolMode mode)
    {
        _EditTool.SetMode(mode);

        Material material = new Material(_EditTool.GetMaterial());

        MenuButtonLeftMaterialSet(material);
    }
コード例 #4
0
ファイル: EditToolCtrl.cs プロジェクト: mhzse/PointcloudXR
    public void UpdateMaterialColors()
    {
        EditToolMode editToolMode = _point_cloud_manager.GetEditToolMode();

        Color[] actionColors = GetModeColors(editToolMode);

        _Material.SetColor("_ColorTint", actionColors[0]);
        _Material.SetColor("_RimColor", actionColors[1]);
    }
コード例 #5
0
    private void SelectionStart(RaycastHit hit)
    {
        editToolMode = EditToolMode.Selecting;

        // Start Selection
        selectionFaceNormalA = new Vector3(Mathf.Round(hit.normal.x), Mathf.Round(hit.normal.y), Mathf.Round(hit.normal.z));
        selectionBlockPosA   = hit.point + (hit.normal * 0.5f);
        selectionBlockPosA   = new Vector3(Mathf.Round(selectionBlockPosA.x), Mathf.Round(selectionBlockPosA.y), Mathf.Round(selectionBlockPosA.z));
        selectionFacePosA    = selectionBlockPosA - (selectionFaceNormalA * 0.5f);

        Debug.Log("Block World Pos: " + selectionBlockPosA);
    }
コード例 #6
0
ファイル: MenuCtrl.cs プロジェクト: mhzse/PointcloudXR
    private void EditToolSetAction(EditToolMode action)
    {
        if (_ViveCtrl.EditToolGetAction() != action)
        {
            _ViveCtrl.EditToolSetMode(action);
        }
        else
        {
            _ViveCtrl.EditToolSetMode(EditToolMode.NONE);
        }

        MenuUpdate();
    }
コード例 #7
0
ファイル: EditToolCtrl.cs プロジェクト: mhzse/PointcloudXR
    public void SetMode(EditToolMode mode)
    {
        _mode = mode;

        Color[] mode_colors = GetModeColors(_mode);

        _Material.SetColor("_ColorTint", mode_colors[0]);
        _Material.SetColor("_RimColor", mode_colors[1]);
        _Material.SetFloat("_RimPower", 6);

        // Update shader to current EditToolMode
        _point_cloud_manager.EditToolSetMode(mode);
    }
コード例 #8
0
    private void ManipulationStart(RaycastHit hit)
    {
        editToolMode = EditToolMode.Manipulating;

        manipulationBlockDirectional    = Directional.Unspecified;
        manipulationPointStart          = hit.point;
        manipulationSelectionPosInitial = selectionPos;
        manipulationSelectionPosCurrent = manipulationSelectionPosInitial;

        // Adjust Manipulator Planes
        manipulatorPlaneX.transform.position = hit.point;
        manipulatorPlaneY.transform.position = hit.point;
        manipulatorPlaneZ.transform.position = hit.point;

        if (selectionType == SelectionType.Face)
        {
            if (selectionFaceNormalA.x != 0)
            {
                manipulatorPlaneX.gameObject.SetActive(false);
                manipulatorPlaneY.gameObject.SetActive(true);
                manipulatorPlaneZ.gameObject.SetActive(true);
            }
            else if (selectionFaceNormalA.y != 0)
            {
                manipulatorPlaneX.gameObject.SetActive(true);
                manipulatorPlaneY.gameObject.SetActive(false);
                manipulatorPlaneZ.gameObject.SetActive(true);
            }
            else if (selectionFaceNormalA.z != 0)
            {
                manipulatorPlaneX.gameObject.SetActive(true);
                manipulatorPlaneY.gameObject.SetActive(true);
                manipulatorPlaneZ.gameObject.SetActive(false);
            }
        }
        else
        {
            manipulatorPlaneX.gameObject.SetActive(true);
            manipulatorPlaneY.gameObject.SetActive(true);
            manipulatorPlaneZ.gameObject.SetActive(true);
        }
    }
コード例 #9
0
    void ChangeEditTool(EditToolMode newMode)
    {
        //対象のツール画像にアクティブを移動
        switch (newMode)
        {
        case EditToolMode.Hand:
            toolSelectImage.anchoredPosition = toolHandImage.anchoredPosition;

            break;

        case EditToolMode.Pen:
            toolSelectImage.anchoredPosition = toolPenImage.anchoredPosition;

            break;

        case EditToolMode.FillRect:
            toolSelectImage.anchoredPosition = toolFillRectImage.anchoredPosition;

            break;

        default:
            break;
        }

        //ハンドツール時はクリックでスクロールができる
        bool canScroll = newMode == EditToolMode.Hand;

        viewScroll.horizontal = canScroll;
        viewScroll.vertical   = canScroll;
        foreach (var item in generateViewImage)
        {
            item.gameObject.GetComponent <EventTrigger>().enabled = !canScroll;
        }

        //モードを変更
        currentTool = newMode;
    }
コード例 #10
0
ファイル: EditModePanel.xaml.cs プロジェクト: furinji/MapQuiz
 void addButton_Click(object sender, RoutedEventArgs e)
 {
     ToolMode = EditToolMode.Add;
 }
コード例 #11
0
ファイル: EditModePanel.xaml.cs プロジェクト: furinji/MapQuiz
 void selectButton_Click(object sender, RoutedEventArgs e)
 {
     ToolMode = EditToolMode.Select;
 }
コード例 #12
0
ファイル: EditModePanel.xaml.cs プロジェクト: furinji/MapQuiz
 void handButton_Click(object sender, RoutedEventArgs e)
 {
     ToolMode = EditToolMode.Hand;
 }