in commons-geometry-spherical/src/main/java/org/apache/commons/geometry/spherical/twod/ConvexArea2S.java [240:276]
public static ConvexArea2S fromVertices(final Collection<Point2S> vertices, final boolean close,
final Precision.DoubleEquivalence precision) {
if (vertices.isEmpty()) {
return full();
}
final List<GreatCircle> circles = new ArrayList<>();
Point2S first = null;
Point2S prev = null;
Point2S cur = null;
for (final Point2S vertex : vertices) {
cur = vertex;
if (first == null) {
first = cur;
}
if (prev != null && !cur.eq(prev, precision)) {
circles.add(GreatCircles.fromPoints(prev, cur, precision));
}
prev = cur;
}
if (close && cur != null && !cur.eq(first, precision)) {
circles.add(GreatCircles.fromPoints(cur, first, precision));
}
if (!vertices.isEmpty() && circles.isEmpty()) {
throw new IllegalStateException("Unable to create convex area: only a single unique vertex provided");
}
return fromBounds(circles);
}