fix: enforce Local G2 total window length

This commit is contained in:
梁薄云
2026-07-31 15:47:33 +08:00
parent c623c9b529
commit 1ac3dbda8d
3 changed files with 236 additions and 33 deletions
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using MultiWheelC.TrajectoryPlanning.Utils;
namespace MultiWheelC.TrajectoryPlanning.PathSmoothing.LocalG2;
@@ -40,8 +41,11 @@ internal sealed class LocalG2SmoothingRegion
IReadOnlyList<LocalG2WindowVariant> windowVariants)
{
if (segmentIndex < 0 || transitions == null || transitions.Count == 0 ||
maximumStartArcLengthMeters < 0d || maximumEndArcLengthMeters < maximumStartArcLengthMeters ||
windowVariants == null)
!NumericGuard.IsFinite(maximumStartArcLengthMeters) ||
!NumericGuard.IsFinite(maximumEndArcLengthMeters) ||
maximumStartArcLengthMeters < 0d ||
maximumEndArcLengthMeters < maximumStartArcLengthMeters ||
windowVariants == null || windowVariants.Count == 0)
{
throw new ArgumentOutOfRangeException(nameof(transitions));
}