Expand description
Waypoint-based spline path construction and evaluation kernels.
Most users should construct waypoint paths through
Path::from_waypoints, passing a
SplineConfig when the default spline settings
need to be changed. This module contains the lower-level spline
implementation used by that constructor.
§Design
All splines are odd-order: $$ p = 2m + 1,\quad m \ge 1. $$
- order 3 (m=1): C2 cubic, boundary specifies v at both ends
- order 5 (m=2): C4 quintic, boundary specifies v,a at both ends
- order 7 (m=3): C6 septic, boundary specifies v,a,j at both ends
The user supplies start_state and end_state matrices of shape (dim, m),
where column r-1 contains the r-th derivative value at the endpoint.
None means all-zero (the most common default).
Internally, all orders share a single solve_general_thomas solver that
implements the O(N) block-Thomas algorithm on the m x m block-tridiagonal
system arising from Hermite parametrisation and
$$
C^{m+1}, \ldots, C^{2m}
$$
continuity.
Structs§
- Spline
Config - Configuration for waypoint-spline path construction.
- Spline
Path - Low-level piecewise-polynomial path in normalised segment coordinates.
Enums§
- Parametrization
- Parameter assignment policy for waypoint splines.