119 3D: Reading prepared trajectories
procedure
(ode-trajectory3d? value) → boolean?
value : any/c
procedure
(ode-trajectory3d-position trajectory time) → vec3?
trajectory : ode-trajectory3d? time : finite-real?
procedure
(ode-trajectory3d-time-range trajectory)
→ (cons/c finite-real? finite-real?) trajectory : ode-trajectory3d?
procedure
(trajectory-segment3d? value) → boolean?
value : any/c
procedure
(trajectory-segment3d-bounds segment) → aabb3?
segment : trajectory-segment3d?
procedure
(ode-trajectory3d-segments trajectory) → vector?
trajectory : ode-trajectory3d?
procedure
(ode-trajectory3d-event-hits trajectory) → vector?
trajectory : ode-trajectory3d?
procedure
(ode-trajectory3d-termination trajectory) → vector?
trajectory : ode-trajectory3d?
procedure
(ode-trajectory3d-step-size trajectory)
→ (or/c positive? false/c) trajectory : ode-trajectory3d?
procedure
(ode-trajectory3d-checkpoint-every trajectory)
→ (or/c exact-positive-integer? false/c) trajectory : ode-trajectory3d?
procedure
(ode-trajectory3d-solver trajectory) → any/c
trajectory : ode-trajectory3d?
procedure
(ode-trajectory3d-derivative trajectory time) → vec3? trajectory : ode-trajectory3d? time : finite-real?
procedure
(ode-trajectory3d-speed trajectory time) → nonnegative-real?
trajectory : ode-trajectory3d? time : finite-real?
procedure
(ode-trajectory3d-arc-length-at trajectory time) → nonnegative-real? trajectory : ode-trajectory3d? time : finite-real?
procedure
(ode-trajectory3d-time-at-arc-length trajectory arc-length) → finite-real? trajectory : ode-trajectory3d? arc-length : nonnegative-real?
procedure
(ode-trajectory3d-diagnostics trajectory) → any/c
trajectory : ode-trajectory3d?
Current limits. Arc length uses deterministic adaptive Simpson integration of each stored Hermite segment’s tangent magnitude. Each segment retains an immutable cumulative table whose intervals are measured by the same integrator; arc-length endpoints remain numerical rather than symbolic. The low-speed policy isolates ordinary interior extrema of the stored Hermite tangent magnitude and bisects the first threshold crossing; it does not yet require a configurable run of consecutive slow observations. ode-event3d detects sign-changing roots and exact/tolerance-zero endpoints, but does not search for an isolated tangency whose sampled event values retain the same sign. AABB exits are split at all dense-coordinate extrema and then bisected; numerical roots remain tolerance-limited, although an accepted face node is preserved exactly. A standalone streamline without a time limit has the documented eight-unit safety horizon. Seed sets create finite immutable points; they do not infer seeding topology from a field. Curve 'parameter spacing is the stored polyline sample index rather than a source-function parameter, surface sets require a retained parametric evaluator/range, and Poisson’s floating geometric candidates are repeatable rather than a mathematical blue-noise certificate. Streamline separation uses display-sample segments and a cell hash, so it is an explicit finite geometric policy rather than a proof about the continuous ODE. Independent sets retain canonical order but this pure layer does not concurrently call arbitrary author field procedures. Poincare extraction detects endpoint/sign-changing crossings in retained dense segments. It does not search inside a same-sign segment for an isolated tangent, and an included tangent is only an explicit endpoint contact. Return maps retain only first/second crossings, not a proof of a global map. Equilibria and local linearization are covered by their own reference chapter.