RobotNet/RobotNet.MapShares/Models/MapEditorBackupModel.cs
2025-10-15 15:15:53 +07:00

75 lines
1.7 KiB
C#

using RobotNet.MapShares.Dtos;
using RobotNet.MapShares.Enums;
namespace RobotNet.MapShares.Models;
public enum MapEditorBackupType
{
Node,
ControlPoint1Edge,
ControlPoint2Edge,
Zone,
MoveNode,
MoveEdge,
Copy,
MergeNode,
SplitNode
}
public class MapEditorBackup
{
public MapEditorBackupType Type { get; set; }
public Guid Id { get; set; }
public object Obj { get; set; } = null!;
}
public class MapEditorBackupModel
{
public MapEditorBackup[] Steps { get; set; } = [];
}
public class PositionBackup
{
public Guid Id { get; set; }
public double X { get; set; }
public double Y { get; set; }
}
public class EdgeBackup
{
public Guid Id { get; set; }
public TrajectoryDegree TrajectoryDegree { get; set; }
public double StartX { get; set; }
public double StartY { get; set; }
public double EndX { get; set; }
public double EndY { get; set; }
public double ControlPoint1X { get; set; }
public double ControlPoint1Y { get; set; }
public double ControlPoint2X { get; set; }
public double ControlPoint2Y { get; set; }
}
public class ZoneShapeBackup
{
public int NodeChange { get; set; }
public double X1 { get; set; }
public double Y1 { get; set; }
public double X2 { get; set; }
public double Y2 { get; set; }
public double X3 { get; set; }
public double Y3 { get; set; }
public double X4 { get; set; }
public double Y4 { get; set; }
}
public class SplitNodeBackup
{
public Guid NodeId { get; set; }
public Dictionary<Guid, NodeDto> EdgeSplit { get; set; } = [];
}
public class MergeNodeUpdate
{
public Guid NodeId { get; set; }
public Dictionary<Guid, Guid> EdgesMerge { get; set; } = [];
}