removeDuplicatedPoints method
List<Vector2>
removeDuplicatedPoints(
- List<Vector?> points
)
Implementation
List<Vector2> removeDuplicatedPoints(List<Vector?> points) {
// Creates a new array if necessary with duplicated points removed.
// This does not remove duplicated initial and ending points of a closed path.
bool dupPoints = false;
final List<Vector2> convPoints = [];
for (int i = 0; i < points.length-1; i++) {
if (points[i]!.distanceTo(points[i + 1]!) < minDistance) {
dupPoints = true;
break;
}
convPoints.add(Vector2(points[i]!.x,points[i]!.y));
}
convPoints.add(Vector2(points[points.length - 1]!.x,points[points.length - 1]!.y));
if (!dupPoints) return convPoints;
final List<Vector2> newPoints = [];
newPoints.add(Vector2(points[0]!.x,points[0]!.y));
for (int i = 1, n = points.length - 1; i < n; i++) {
if (points[i]!.distanceTo(points[i + 1]!) >= minDistance) {
newPoints.add(Vector2(points[i]!.x,points[i]!.y));
}
}
newPoints.add(Vector2(points[points.length - 1]!.x,points[points.length - 1]!.y));
return newPoints;
}