46 lines
No EOL
1.5 KiB
C#
46 lines
No EOL
1.5 KiB
C#
using MatterHackers.Agg.UI;
|
|
using MatterHackers.PolygonMesh;
|
|
using MatterHackers.VectorMath;
|
|
|
|
namespace MatterHackers.MatterControl.PartPreviewWindow
|
|
{
|
|
internal class CopyUndoCommand : IUndoRedoCommand
|
|
{
|
|
private int newItemIndex;
|
|
private View3DWidget view3DWidget;
|
|
private Matrix4X4 newItemTransform;
|
|
PlatingMeshGroupData newItemPlatingData;
|
|
|
|
MeshGroup meshGroupThatWasDeleted;
|
|
|
|
public CopyUndoCommand(View3DWidget view3DWidget, int newItemIndex)
|
|
{
|
|
this.view3DWidget = view3DWidget;
|
|
this.newItemIndex = newItemIndex;
|
|
meshGroupThatWasDeleted = view3DWidget.MeshGroups[newItemIndex];
|
|
newItemTransform = view3DWidget.MeshGroupTransforms[newItemIndex];
|
|
newItemPlatingData = view3DWidget.MeshGroupExtraData[newItemIndex];
|
|
}
|
|
|
|
public void Undo()
|
|
{
|
|
view3DWidget.MeshGroups.RemoveAt(newItemIndex);
|
|
view3DWidget.MeshGroupExtraData.RemoveAt(newItemIndex);
|
|
view3DWidget.MeshGroupTransforms.RemoveAt(newItemIndex);
|
|
if(view3DWidget.SelectedMeshGroupIndex >= view3DWidget.MeshGroups.Count)
|
|
{
|
|
view3DWidget.SelectedMeshGroupIndex = view3DWidget.MeshGroups.Count - 1;
|
|
}
|
|
view3DWidget.PartHasBeenChanged();
|
|
}
|
|
|
|
public void Do()
|
|
{
|
|
view3DWidget.MeshGroups.Insert(newItemIndex, meshGroupThatWasDeleted);
|
|
view3DWidget.MeshGroupTransforms.Insert(newItemIndex, newItemTransform);
|
|
view3DWidget.MeshGroupExtraData.Insert(newItemIndex, newItemPlatingData);
|
|
view3DWidget.Invalidate();
|
|
view3DWidget.SelectedMeshGroupIndex = view3DWidget.MeshGroups.Count - 1;
|
|
}
|
|
}
|
|
} |