using System; using MultiWheelC.TrajectoryPlanning.CoarsePath; using MultiWheelC.TrajectoryPlanning.Mapping; using MultiWheelC.TrajectoryPlanning.PathSmoothing.Processing; namespace MultiWheelC.TrajectoryPlanning.PathSmoothing.Algorithms; /// 单次算法运行共享的已预处理路径和独立复核上下文。 internal sealed class SmoothingAlgorithmInput { internal SmoothingAlgorithmInput( PreparedPath originalPath, PlanningGridMap map, VehicleParameters vehicle, double maximumCollisionCheckStepMeters, double minimumClearanceReserveMeters, SmoothingOptionsSnapshot options) { OriginalPath = originalPath ?? throw new ArgumentNullException(nameof(originalPath)); Map = map ?? throw new ArgumentNullException(nameof(map)); Vehicle = vehicle ?? throw new ArgumentNullException(nameof(vehicle)); MaximumCollisionCheckStepMeters = maximumCollisionCheckStepMeters; MinimumClearanceReserveMeters = minimumClearanceReserveMeters; Options = options ?? throw new ArgumentNullException(nameof(options)); } /// 已校验并按方向分段的原始路径。 internal PreparedPath OriginalPath { get; } /// 用于完整车体复核的不可变规划地图。 internal PlanningGridMap Map { get; } /// 用于曲率和足迹复核的车辆参数快照。 internal VehicleParameters Vehicle { get; } /// 连续车体碰撞检查的最大步长,单位 m。 internal double MaximumCollisionCheckStepMeters { get; } /// 候选几何必须从原始保守净空中预留的最小安全余量,单位 m。 internal double MinimumClearanceReserveMeters { get; } /// 本次算法运行使用的已验证方法选项快照。 internal SmoothingOptionsSnapshot Options { get; } }