namespace MultiWheelC.TrajectoryPlanning.CoarsePath;

/// <summary>
/// 粗路径规划使用的二维连续位姿。
/// 位置以世界坐标 m 表示，航向以 rad 表示；此值对象不在构造时归一化航向，调用方可保留展开航向。
/// </summary>
public sealed class Pose2D
{
    /// <summary>
    /// 创建二维位姿。
    /// 参数：xMeters、yMeters 为世界坐标，单位 m；headingRadians 为车头航向，单位 rad。
    /// </summary>
    public Pose2D(double xMeters, double yMeters, double headingRadians)
    {
        X = xMeters;
        Y = yMeters;
        Heading = headingRadians;
    }

    /// <summary>世界 X 坐标，单位 m。</summary>
    public double X { get; }

    /// <summary>世界 Y 坐标，单位 m。</summary>
    public double Y { get; }

    /// <summary>车头航向，单位 rad；可以是已展开的连续航向。</summary>
    public double Heading { get; }
}
