protected E selectPointConnection()

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;
    }