tangentAt method
The unit tangent at natural parameter t (clamped to 0..1).
Implementation
@override
Vector3 tangentAt(double t) {
final (segment, s) = _segmentOf(t, _segments);
final base = segment * 3;
final p0 = _points[base];
final p1 = _points[base + 1];
final p2 = _points[base + 2];
final p3 = _points[base + 3];
final u = 1.0 - s;
final derivative =
(p1 - p0) * (3.0 * u * u) +
(p2 - p1) * (6.0 * u * s) +
(p3 - p2) * (3.0 * s * s);
if (derivative.length2 < 1e-12) return Vector3(1.0, 0.0, 0.0);
return derivative.normalized();
}