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; }