public void DeleteFaces(FaceSelectionState faceSelectionState)
        {
            var selectedFaceCount    = faceSelectionState.CurrentSelection().Count() * 3;
            var totalObjectFaceCount = faceSelectionState.RenderObject.Geometry.GetIndexCount();

            if (selectedFaceCount == totalObjectFaceCount)
            {
                var command = new DeleteObjectsCommand(new List <ISelectable>()
                {
                    faceSelectionState.RenderObject
                });
                _commandManager.ExecuteCommand(command);
            }
            else
            {
                var command = new DeleteFaceCommand(faceSelectionState.RenderObject.Geometry, faceSelectionState.CurrentSelection());
                _commandManager.ExecuteCommand(command);
            }
        }
        public void GrowSelection(FaceSelectionState faceSelectionState)
        {
            var selectedFaceIndecies = new List <ushort>();
            var indexBuffer          = faceSelectionState.RenderObject.Geometry.GetIndexBuffer();

            foreach (var face in faceSelectionState.SelectedFaces)
            {
                selectedFaceIndecies.Add(indexBuffer[face]);
                selectedFaceIndecies.Add(indexBuffer[face + 1]);
                selectedFaceIndecies.Add(indexBuffer[face + 2]);
            }

            var meshService  = new MeshSplitterService();
            var newSelection = meshService.GrowSelection(faceSelectionState.RenderObject.Geometry, selectedFaceIndecies);

            var selectCmd = new FaceSelectionCommand(newSelection);

            _commandManager.ExecuteCommand(selectCmd);
        }
        public void ConvertSelectionToVertex(FaceSelectionState faceSelectionState)
        {
            var selectCmd = new ConvertFacesToVertexSelectionCommand(faceSelectionState);

            _commandManager.ExecuteCommand(selectCmd);
        }
        public void DuplicatedSelectedFacesToNewMesh(FaceSelectionState faceSelectionState, bool deleteOriginal)
        {
            var selectCmd = new DuplicateFacesCommand(faceSelectionState.RenderObject, faceSelectionState.SelectedFaces, deleteOriginal);

            _commandManager.ExecuteCommand(selectCmd);
        }
 public ConvertFacesToVertexSelectionCommand(FaceSelectionState selectionState)
 {
     _selectionState = selectionState;
 }