namespace MultiWheelC.TrajectoryPlanning.EMPlanner;

public sealed class SolverConfiguration
{
    public int MaximumOuterIterations { get; set; }
    public int MaximumOsqpIterations { get; set; }
    public double AbsoluteTolerance { get; set; }
    public double RelativeTolerance { get; set; }
    public double StrictResidualTolerance { get; set; }
    public bool WarmStart { get; set; }
    public bool Polish { get; set; }
    public bool NativeVerbose { get; set; }

    internal SolverConfiguration Copy()
    {
        return new SolverConfiguration
        {
            MaximumOuterIterations = MaximumOuterIterations,
            MaximumOsqpIterations = MaximumOsqpIterations,
            AbsoluteTolerance = AbsoluteTolerance,
            RelativeTolerance = RelativeTolerance,
            StrictResidualTolerance = StrictResidualTolerance,
            WarmStart = WarmStart,
            Polish = Polish,
            NativeVerbose = NativeVerbose,
        };
    }
}
