namespace MultiWheelC.TrajectoryPlanning.PathSmoothing;

/// <summary>局部 G2 区域未替换原始路径的稳定原因；该枚举解释保留原始几何，而非发布未验证候选。</summary>
public enum PathSmoothingRegionFailureReason
{
    /// <summary>区域已改进或无需拒绝原因。</summary>
    None,
    /// <summary>无法在同一方向段内构造满足长度约束的窗口。</summary>
    WindowUnavailable,
    /// <summary>候选曲线无法生成或不满足基本几何条件。</summary>
    CandidateGenerationFailed,
    /// <summary>候选车体或扫掠与地图障碍发生碰撞。</summary>
    Collision,
    /// <summary>候选未达到所需最小净空，单位要求见配置。</summary>
    InsufficientClearance,
    /// <summary>候选车辆曲率超过最大允许值，单位 1/m。</summary>
    CurvatureExceeded,
    /// <summary>候选在连续采样或拼接处出现曲率超限。</summary>
    CurvatureOvershoot,
    /// <summary>候选相对原始路径的偏移超过最大限制，单位 m。</summary>
    DeviationExceeded,
    /// <summary>候选未满足峰值梯度改善阈值。</summary>
    InsufficientImprovement,
    /// <summary>候选曲率变化代价相对原始路径退化超过允许比例。</summary>
    VariationCostRegression,
    /// <summary>局部候选通过但整条路径独立复核失败，已回滚到原始几何。</summary>
    GlobalValidationRollback,
}
