in commons-geometry-euclidean/src/main/java/org/apache/commons/geometry/euclidean/internal/AbstractPathConnector.java [226:249]
protected E selectPointConnection(final E incoming, final List<E> outgoingList) {
double angle;
boolean isUnconnected;
double smallestAngle = 0.0;
E bestElement = null;
boolean bestIsUnconnected = false;
for (final E outgoing : outgoingList) {
angle = Math.abs(incoming.getRelativeAngle(outgoing));
isUnconnected = !outgoing.hasNext();
if (bestElement == null || (!bestIsUnconnected && isUnconnected) ||
(bestIsUnconnected == isUnconnected && angle < smallestAngle)) {
smallestAngle = angle;
bestElement = outgoing;
bestIsUnconnected = isUnconnected;
}
}
return bestElement;
}