private void cmdDuplicateAll_Click(object sender, RoutedEventArgs e) { if (gCodeObject.gCodeList.Count < 1) { return; } double distXDir = HelperClass.ShowInputBox("Distance between Macros in X Direction"); int numXDir = Convert.ToInt32(HelperClass.ShowInputBox("Number of Macros in X Direction")); double distYDir = HelperClass.ShowInputBox("Distance between Macros in Y Direction"); int numYDir = Convert.ToInt32(HelperClass.ShowInputBox("Number of Macros in Y Direction")); List <Gcode> DuplicatedList = new List <Gcode>(); foreach (Gcode item in gCodeObject.gCodeList) { Gcode gcodeToCopy = CloneClass.CloneObject <Gcode>(item); DuplicatedList.Add(gcodeToCopy); double distX = item.xStart; double distY = item.yStart; double distYDirFixed = distYDir; for (int x = 0; x <= numXDir; x++) { for (int y = 1; y < numYDir; y++) { distY += distYDirFixed; Gcode copyY = CloneClass.CloneObject <Gcode>(gcodeToCopy); copyY.xStart = distX; copyY.yStart = distY; DuplicatedList.Add(copyY); } distYDirFixed *= -1; distX += distXDir; if (x >= numXDir - 1) { break; } Gcode copyX = CloneClass.CloneObject <Gcode>(gcodeToCopy); copyX.xStart = distX; copyX.yStart = distY; DuplicatedList.Add(copyX); } } gCodeObject.gCodeList = DuplicatedList; gCodeObject.DrawObjects(ref MainCanvas, ref MainCanvasScale, ref GCodeView, ref Arrow, xMeasure, yMeasure); }
public void CloneObjectTest() { // Arrange EditorModel Model = new EditorModel(); // Act EditorModel Cloned = CloneClass.CloneObject <EditorModel>(Model); // Assert Assert.AreNotEqual(Model, Cloned); }
private void DuplicateGcode(double distXDir, int numXDir, double distYDir, int numYDir, int index) { Gcode gcodeToCopy = CloneClass.CloneObject <Gcode>(gCodeObject.gCodeList[index]); double distX = gCodeObject.gCodeList[index].xStart; double distY = gCodeObject.gCodeList[index].yStart; for (int x = 0; x <= numXDir; x++) { for (int y = 1; y < numYDir; y++) { distY += distYDir; Gcode copyY = CloneClass.CloneObject <Gcode>(gcodeToCopy); copyY.xStart = distX; copyY.yStart = distY; gCodeObject.gCodeList.Add(copyY); } distYDir *= -1; distX += distXDir; if (x >= numXDir - 1) { break; } Gcode copyX = CloneClass.CloneObject <Gcode>(gcodeToCopy); copyX.xStart = distX; copyX.yStart = distY; gCodeObject.gCodeList.Add(copyX); } gCodeObject.DrawObjects(ref MainCanvas, ref MainCanvasScale, ref GCodeView, ref Arrow, xMeasure, yMeasure); }