Class Intervals


  • public class Intervals
    extends java.lang.Object
    Convenience methods for manipulating Intervals.
    Author:
    Tobias Pietzsch
    • Constructor Detail

      • Intervals

        public Intervals()
    • Method Detail

      • createMinSize

        public static FinalInterval createMinSize​(long... minsize)
        Create a FinalInterval from a parameter list comprising minimum coordinates and size. For example, to create a 2D interval from (10, 10) to (20, 40) use createMinSize( 10, 10, 11, 31 ).
        Parameters:
        minsize - a list of 2*n parameters to create a n -dimensional interval. The first n parameters specify the minimum of the interval, the next n parameters specify the dimensions of the interval.
        Returns:
        interval with the specified boundaries
      • createMinMax

        public static FinalInterval createMinMax​(long... minmax)
        Create a FinalInterval from a parameter list comprising minimum and maximum coordinates. For example, to create a 2D interval from (10, 10) to (20, 40) use createMinMax( 10, 10, 20, 40 ).
        Parameters:
        minmax - a list of 2*n parameters to create a n -dimensional interval. The first n parameters specify the minimum of the interval, the next n parameters specify the maximum of the interval.
        Returns:
        interval with the specified boundaries
      • createMinSizeReal

        @Deprecated
        public static FinalRealInterval createMinSizeReal​(double... minsize)
        Deprecated.
        THIS METHOD WILL BE REMOVED IN A FUTURE RELEASE. It was mistakenly introduced, analogous to createMinSize(long...) for integer intervals. Dimension is not defined for RealInterval and computing the max as min + dim - 1 does not make sense.

        Create a FinalRealInterval from a parameter list comprising minimum coordinates and size. For example, to create a 2D interval from (10, 10) to (20, 40) use createMinSize( 10, 10, 11, 31 ).

        Parameters:
        minsize - a list of 2*n parameters to create a n -dimensional interval. The first n parameters specify the minimum of the interval, the next n parameters specify the dimensions of the interval.
        Returns:
        interval with the specified boundaries
      • createMinMaxReal

        public static FinalRealInterval createMinMaxReal​(double... minmax)
        Create a FinalRealInterval from a parameter list comprising minimum and maximum coordinates. For example, to create a 2D interval from (10, 10) to (20, 40) use createMinMax( 10, 10, 20, 40 ).
        Parameters:
        minmax - a list of 2*n parameters to create a n -dimensional interval. The first n parameters specify the minimum of the interval, the next n parameters specify the maximum of the interval.
        Returns:
        interval with the specified boundaries
      • expand

        public static FinalInterval expand​(Interval interval,
                                           long border)
        Grow/shrink an interval in all dimensions. Create a FinalInterval , which is the input interval plus border pixels on every side, in every dimension.
        Parameters:
        interval - the input interval
        border - how many pixels to add on every side
        Returns:
        expanded interval
      • expand

        public static FinalInterval expand​(Interval interval,
                                           long... border)
        Grow/shrink an interval in all dimensions. Create a FinalInterval, which is the input interval plus border pixels on every side, in every dimension.
        Parameters:
        interval - the input interval
        border - how many pixels to add on every side
        Returns:
        expanded interval
      • expand

        public static FinalInterval expand​(Interval interval,
                                           Dimensions border)
        Grow/shrink an interval in all dimensions. Create a FinalInterval, which is the input interval plus border pixels on every side, in every dimension.
        Parameters:
        interval - the input interval
        border - how many pixels to add on every side
        Returns:
        expanded interval
      • expand

        public static FinalInterval expand​(Interval interval,
                                           long border,
                                           int d)
        Grow/shrink an interval in one dimensions. Create a FinalInterval , which is the input interval plus border pixels on every side, in dimension d.
        Parameters:
        interval - the input interval
        border - how many pixels to add on every side
        d - in which dimension
        Returns:
        expanded interval
      • translate

        public static FinalInterval translate​(Interval interval,
                                              long t,
                                              int d)
        Translate an interval in one dimension. Create a FinalInterval , which is the input interval shifted by t in dimension d.
        Parameters:
        interval - the input interval
        t - by how many pixels to shift the interval
        d - in which dimension
        Returns:
        translated interval
      • intersect

        public static FinalInterval intersect​(Interval intervalA,
                                              Interval intervalB)
        Compute the intersection of two intervals. Create a FinalInterval , which is the intersection of the input intervals (i.e., the area contained in both input intervals).
        Parameters:
        intervalA - input interval
        intervalB - input interval
        Returns:
        intersection of input intervals
      • intersect

        public static FinalRealInterval intersect​(RealInterval intervalA,
                                                  RealInterval intervalB)
        Compute the intersection of two intervals. Create a RealInterval , which is the intersection of the input intervals (i.e., the area contained in both input intervals).
        Parameters:
        intervalA - input interval
        intervalB - input interval
        Returns:
        intersection of input intervals
      • union

        public static FinalInterval union​(Interval intervalA,
                                          Interval intervalB)
        Compute the smallest interval that contains both input intervals. Create a FinalInterval that represents that interval.
        Parameters:
        intervalA - input interval
        intervalB - input interval
        Returns:
        union of input intervals
      • union

        public static FinalRealInterval union​(RealInterval intervalA,
                                              RealInterval intervalB)
        Compute the smallest interval that contains both input intervals. Create a RealInterval that represents that interval.
        Parameters:
        intervalA - input interval
        intervalB - input interval
        Returns:
        union of input intervals
      • smallestContainingInterval

        public static Interval smallestContainingInterval​(RealInterval ri)
        Compute the smallest Interval containing the specified RealInterval.
        Parameters:
        ri - input interval.
        Returns:
        the smallest integer interval that completely contains the input interval.
      • largestContainedInterval

        public static Interval largestContainedInterval​(RealInterval ri)
        Compute the largest Interval that is contained in the specified RealInterval.
        Parameters:
        ri - input interval.
        Returns:
        the largest integer interval that is completely contained in the input interval.
      • isEmpty

        public static boolean isEmpty​(Interval interval)
        Check whether the given interval is empty, that is, the maximum is smaller than the minimum in some dimension.
        Parameters:
        interval - interval to check
        Returns:
        true when the interval is empty, that is, the maximum is smaller than the minimum in some dimension.
      • isEmpty

        public static boolean isEmpty​(RealInterval interval)
        Check whether the given interval is empty, that is, the maximum is smaller than the minimum in some dimension.
        Parameters:
        interval - interval to check
        Returns:
        true when the interval is empty, that is, the maximum is smaller than the minimum in some dimension.
      • contains

        public static boolean contains​(Interval containing,
                                       Localizable contained)
        Test whether the containing interval contains the contained point. The interval is closed, that is, boundary points are contained.
        Returns:
        true, iff contained is in containing.
      • contains

        public static boolean contains​(RealInterval containing,
                                       RealLocalizable contained)
        Test whether the containing interval contains the contained point. The interval is closed, that is, boundary points are contained.
        Returns:
        true, iff contained is in containing.
      • contains

        public static final boolean contains​(Interval containing,
                                             Interval contained)
        Test whether the containing interval completely contains the contained interval.
      • contains

        public static final boolean contains​(RealInterval containing,
                                             RealInterval contained)
        Test whether the containing interval completely contains the contained interval.
      • numElements

        public static long numElements​(Dimensions interval)
        Compute the number of elements contained in an (integer) Interval .
        Returns:
        number of elements in interval.
      • numElements

        public static long numElements​(int... dimensions)
        Compute the number of elements contained in an (integer) interval.
        Parameters:
        dimensions - dimensions of the interval.
        Returns:
        number of elements in the interval.
      • numElements

        public static long numElements​(long... dimensions)
        Compute the number of elements contained in an (integer) interval.
        Parameters:
        dimensions - dimensions of the interval.
        Returns:
        number of elements in the interval.
      • equals

        public static boolean equals​(Interval a,
                                     Interval b)
        Tests weather two intervals are equal in their min / max
      • equalDimensions

        public static boolean equalDimensions​(Interval a,
                                              Interval b)
        Tests weather two intervals have equal dimensions (same size)
      • dimensionsAsLongArray

        public static long[] dimensionsAsLongArray​(Dimensions dimensions)
        Create a long[] with the dimensions of a Dimensions.

        Keep in mind that creating arrays wildly is not good practice and consider using the interval directly. See Dimensions.dimensions(long[]).

        Parameters:
        dimensions - something which has dimensions
        Returns:
        dimensions as a new long[]
      • dimensionsAsIntArray

        public static int[] dimensionsAsIntArray​(Dimensions dimensions)
        Create a int[] with the dimensions of an Interval.

        Keep in mind that creating arrays wildly is not good practice and consider using the interval directly.

        Parameters:
        dimensions - something which has dimensions
        Returns:
        dimensions as a new int[]
      • minAsLongArray

        public static long[] minAsLongArray​(Interval interval)
        Create a long[] with the minimum of an Interval.

        Keep in mind that creating arrays wildly is not good practice and consider using the interval directly. See Interval.min(long[]).

        Parameters:
        interval - something with interval boundaries
        Returns:
        minimum as a new long[]
      • minAsIntArray

        public static int[] minAsIntArray​(Interval interval)
        Create a int[] with the minimum of an Interval.

        Keep in mind that creating arrays wildly is not good practice and consider using the interval directly.

        Parameters:
        interval - something with interval boundaries
        Returns:
        minimum as a new int[]
      • maxAsLongArray

        public static long[] maxAsLongArray​(Interval interval)
        Create a long[] with the maximum of an Interval.

        Keep in mind that creating arrays wildly is not good practice and consider using the interval directly. See Interval.max(long[]).

        Parameters:
        interval - something with interval boundaries
        Returns:
        maximum as a new long[]
      • maxAsIntArray

        public static int[] maxAsIntArray​(Interval interval)
        Create a int[] with the maximum of an Interval.

        Keep in mind that creating arrays wildly is not good practice and consider using the interval directly.

        Parameters:
        interval - something with interval boundaries
        Returns:
        maximum as a new int[]
      • maxAsDoubleArray

        public static double[] maxAsDoubleArray​(RealInterval interval)
        Create a double[] with the maximum of a RealInterval .

        Keep in mind that creating arrays wildly is not good practice and consider using the interval directly. See RealInterval.realMax(double[]).

        Parameters:
        interval - something with interval boundaries
        Returns:
        maximum as a new double[]
      • minAsDoubleArray

        public static double[] minAsDoubleArray​(RealInterval interval)
        Create a double[] with the minimum of a RealInterval .

        Keep in mind that creating arrays wildly is not good practice and consider using the interval directly. See RealInterval.realMin(double[]).

        Parameters:
        interval - something with interval boundaries
        Returns:
        minimum as a new double[]