namespace RobotNet10.NavigationTune.Shared.Models;
///
/// Edge in a custom path
/// Represents a segment of the path with start, end, and optional control points for curves
///
public class PathEdge
{
///
/// Start point X coordinate (meters)
///
public double StartX { get; set; }
///
/// Start point Y coordinate (meters)
///
public double StartY { get; set; }
///
/// End point X coordinate (meters)
///
public double EndX { get; set; }
///
/// End point Y coordinate (meters)
///
public double EndY { get; set; }
///
/// Degree of the curve (1 = linear, 2 = quadratic Bezier, 3 = cubic Bezier)
///
public int Degree { get; set; } = 1;
///
/// First control point X (for Degree 2 and 3)
///
public double? ControlPoint1X { get; set; }
///
/// First control point Y (for Degree 2 and 3)
///
public double? ControlPoint1Y { get; set; }
///
/// Second control point X (for Degree 3 only)
///
public double? ControlPoint2X { get; set; }
///
/// Second control point Y (for Degree 3 only)
///
public double? ControlPoint2Y { get; set; }
///
/// Direction of movement along this edge
///
public RobotDirection Direction { get; set; } = RobotDirection.FORWARD;
}