using System; using System.Threading; namespace MultiWheelC.TrajectoryPlanning.EMPlanner; /// Public lateral-planning entry point backed by the solver-neutral SQP optimizer. public sealed class LateralPlanner { private readonly SequentialConvexOptimizer _optimizer; public LateralPlanner(IQpSolver qpSolver) { _optimizer = new SequentialConvexOptimizer(qpSolver ?? throw new ArgumentNullException(nameof(qpSolver))); } public LateralPlanningResult Plan(LateralPlanningInput input, CancellationToken cancellationToken) { return _optimizer.Optimize(input, cancellationToken); } }