What is missing
The library has three fixed compile-time caps because its working set is statically sized and the implementation avoids dynamic allocation.
| Constant |
Value |
Header |
kMaxPathKnots |
65 |
include/motionkit/core/cartesian.hpp:20 |
kMaxWaypoints |
16 |
include/motionkit/core/cartesian.hpp:90 |
kMaxObstacles |
32 |
include/motionkit/core/collision.hpp:17 |
These limits are documented in the headers.
They are not documented in the README.
As a result, somebody evaluating the library cannot discover, for example, that a route with 20 waypoints cannot currently be represented without reading the source or hitting TooManyWaypoints.
Why it matters
A 16-waypoint cap is a real constraint on a real application.
The reason for the cap is also legitimate: fixed storage preserves the library's no-allocation behaviour.
A constraint with a deliberate engineering reason should be advertised rather than discovered at runtime.
Acceptance criteria
What is missing
The library has three fixed compile-time caps because its working set is statically sized and the implementation avoids dynamic allocation.
kMaxPathKnotsinclude/motionkit/core/cartesian.hpp:20kMaxWaypointsinclude/motionkit/core/cartesian.hpp:90kMaxObstaclesinclude/motionkit/core/collision.hpp:17These limits are documented in the headers.
They are not documented in the README.
As a result, somebody evaluating the library cannot discover, for example, that a route with 20 waypoints cannot currently be represented without reading the source or hitting
TooManyWaypoints.Why it matters
A 16-waypoint cap is a real constraint on a real application.
The reason for the cap is also legitimate: fixed storage preserves the library's no-allocation behaviour.
A constraint with a deliberate engineering reason should be advertised rather than discovered at runtime.
Acceptance criteria