public static LineConvexSubset3D subsetFromInterval()

in commons-geometry-euclidean/src/main/java/org/apache/commons/geometry/euclidean/threed/line/Lines3D.java [237:260]


    public static LineConvexSubset3D subsetFromInterval(final Line3D line, final double a, final double b) {
        final double min = Math.min(a, b);
        final double max = Math.max(a, b);

        final boolean hasMin = Double.isFinite(min);
        final boolean hasMax = Double.isFinite(max);

        if (hasMin) {
            if (hasMax) {
                // has both
                return new Segment3D(line, min, max);
            }
            // min only
            return new Ray3D(line, min);
        } else if (hasMax) {
            // max only
            return new ReverseRay3D(line, max);
        } else if (Double.isInfinite(min) && Double.isInfinite(max) && Double.compare(min, max) < 0) {
            return new LineSpanningSubset3D(line);
        }

        throw new IllegalArgumentException(MessageFormat.format(
                "Invalid line convex subset interval: {0}, {1}", Double.toString(a), Double.toString(b)));
    }