refactor: delegate Program.Rotate(angle) to Rotate(angle, origin)
The parameterless rotation is equivalent to rotating around (0,0), so delegate to the origin overload to eliminate 30-line duplicate. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -51,37 +51,7 @@ namespace OpenNest.CNC
|
|||||||
mode = Mode.Absolute;
|
mode = Mode.Absolute;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Rotate(double angle)
|
public virtual void Rotate(double angle) => Rotate(angle, new Vector(0, 0));
|
||||||
{
|
|
||||||
var mode = Mode;
|
|
||||||
|
|
||||||
SetModeAbs();
|
|
||||||
|
|
||||||
for (int i = 0; i < Codes.Count; ++i)
|
|
||||||
{
|
|
||||||
var code = Codes[i];
|
|
||||||
|
|
||||||
if (code.Type == CodeType.SubProgramCall)
|
|
||||||
{
|
|
||||||
var subpgm = (SubProgramCall)code;
|
|
||||||
|
|
||||||
if (subpgm.Program != null)
|
|
||||||
subpgm.Program.Rotate(angle);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (code is Motion == false)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
var code2 = (Motion)code;
|
|
||||||
|
|
||||||
code2.Rotate(angle);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mode == Mode.Incremental)
|
|
||||||
SetModeInc();
|
|
||||||
|
|
||||||
Rotation = Angle.NormalizeRad(Rotation + angle);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user