protected boolean updateNearFar()

in commons-geometry-euclidean/src/main/java/org/apache/commons/geometry/euclidean/AbstractBounds.java [295:326]


        protected boolean updateNearFar(final ToDoubleFunction<P> coordinateFn) {
            final double dir = coordinateFn.applyAsDouble(getLineDir());
            final double origin = coordinateFn.applyAsDouble(getLineOrigin());

            final double minCoord = coordinateFn.applyAsDouble(min);
            final double maxCoord = coordinateFn.applyAsDouble(max);

            double t1 = (minCoord - origin) / dir;
            double t2 = (maxCoord - origin) / dir;

            if (!Double.isFinite(t1) || !Double.isFinite(t2)) {
                // the line is parallel to this dimension; only continue if the
                // line origin lies between the min and max for this dimension
                return precision.gte(origin, minCoord) && precision.lte(origin, maxCoord);
            }

            if (t1 > t2) {
                final double temp = t1;
                t1 = t2;
                t2 = temp;
            }

            if (t1 > near) {
                near = t1;
            }

            if (t2 < far) {
                far = t2;
            }

            return precision.lte(near, far);
        }