tangentAt method
The unit tangent at natural parameter t (clamped to 0..1).
Implementation
@override
Vector3 tangentAt(double t) {
final (segment, s) = _segmentOf(t, _points.length - 1);
final (p0, p1, p2, p3) = _controlPoints(segment);
final derivative =
((p2 - p0) +
(p0 * 2.0 - p1 * 5.0 + p2 * 4.0 - p3) * (2.0 * s) +
(p1 * 3.0 - p0 - p2 * 3.0 + p3) * (3.0 * s * s)) *
0.5;
if (derivative.length2 < 1e-12) return Vector3(1.0, 0.0, 0.0);
return derivative.normalized();
}