positionAt method

  1. @override
Vector3 positionAt(
  1. double t
)
override

The point on the curve at natural parameter t (clamped to 0..1).

Implementation

@override
Vector3 positionAt(double t) {
  final (segment, s) = _segmentOf(t, _points.length - 1);
  final (p0, p1, p2, p3) = _controlPoints(segment);
  final s2 = s * s;
  final s3 = s2 * s;
  return (p1 * 2.0 +
          (p2 - p0) * s +
          (p0 * 2.0 - p1 * 5.0 + p2 * 4.0 - p3) * s2 +
          (p1 * 3.0 - p0 - p2 * 3.0 + p3) * s3) *
      0.5;
}