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