private void OnClear(object sender, EventArgs e)
        {
            SmoothGroupEditor editor = (SmoothGroupEditor)sender;
            PBMesh            pbMesh = editor.Data.PBMesh;

            IMeshEditor     meshEditor = m_proBuilderTool.GetEditor();
            MeshEditorState oldState   = meshEditor.GetState(false);

            PBSmoothing.ClearGroup(pbMesh, meshEditor.GetSelection());

            m_smoothGroups[pbMesh].Rebuild(pbMesh);
            m_proBuilderTool.TryUpdatePivotTransform();

            MeshEditorState newState = meshEditor.GetState(false);

            m_proBuilderTool.RecordState(oldState, newState, true);
        }
        private void OnExpandSelection(object sender, EventArgs e)
        {
            IMeshEditor     meshEditor = m_proBuilderTool.GetEditor();
            MeshSelection   selection  = meshEditor.GetSelection();
            MeshEditorState oldState   = meshEditor.GetState(false);

            selection = PBSmoothing.ExpandSelection(selection);
            if (m_proBuilderTool.Mode == ProBuilderToolMode.Vertex)
            {
                selection = selection.ToVertices(false);
            }
            else if (m_proBuilderTool.Mode == ProBuilderToolMode.Edge)
            {
                selection = selection.ToEdges(false);
            }

            meshEditor.SetSelection(selection);
            m_proBuilderTool.TryUpdatePivotTransform();

            MeshEditorState newState = meshEditor.GetState(false);

            m_proBuilderTool.RecordState(oldState, newState, true);
        }