generate method
Generates curve points from the given data points.
Implementation
@override
List<Point> generate(List<Point> points) {
if (points.length < 2) return List.from(points);
final result = <Point>[];
// Add first point
result.add(points.first);
if (points.length == 2) {
result.add(points.last);
return result;
}
// Generate basis spline points
const segments = 10;
for (int i = 0; i < points.length - 1; i++) {
final p0 = i > 0 ? points[i - 1] : points[0];
final p1 = points[i];
final p2 = points[i + 1];
final p3 =
i < points.length - 2 ? points[i + 2] : points[points.length - 1];
for (int j = 1; j <= segments; j++) {
final t = j / segments;
final point = _basisPoint(p0, p1, p2, p3, t);
result.add(point);
}
}
return result;
}