RangeExtension

object RangeExtension

A collection of extension functions that enrich ClosedRange.

Functions

Link copied to clipboard
fun <T : Comparable<T>> ClosedRange<T>.coincidesWith(other: ClosedRange<T>): Boolean

Checks whether two ranges coincide. It's a different way of checking if they're equals, which doesn't depend on their actual implementation. Note that the way you obtain a range may influence the actual class used, and you can have two coincident ranges which are not equal because of different classes.

Link copied to clipboard
fun <T : Comparable<T>> ClosedRange<T>.contains(other: ClosedRange<T>): Boolean

Checks whether the range contains the other one. This method is faster than checking if the range contains both of the endpoints of other.

Link copied to clipboard
fun <V : Vector2D<V>> List<V>.findExtremeCoordsOnX(): ClosedRange<Double>

Given a non empty list of points represented as vectors, this method finds the extreme coordinates (i.e. min and max coordinates) on the X-axis, these are used to create the returned ClosedRange.

Link copied to clipboard
fun <V : Vector2D<V>> List<V>.findExtremeCoordsOnY(): ClosedRange<Double>

Given a non empty list of points represented as vectors, this method finds the extreme coordinates (i.e. min and max coordinates) on the Y-axis, these are used to create the returned ClosedRange.

Link copied to clipboard
fun <T : Comparable<T>> ClosedRange<T>.intersect(other: ClosedRange<T>): ClosedRange<T>?

Finds the intersection between two ranges, the resulting range may feature a single value (if the ranges only share an endpoint) or can be null, if they don't intersect at all.

Link copied to clipboard
fun <T : Comparable<T>> ClosedRange<T>.intersects(other: ClosedRange<T>): Boolean

Checks whether the range intersects the other one.

Link copied to clipboard
fun <T : Comparable<T>> ClosedRange<T>.intersectsBoundsExcluded(other: ClosedRange<T>): Boolean

Checks whether two ranges intersect, excluding their bounds (i.e., excluding both ClosedRange.start and ClosedRange.endInclusive). This means false is returned in case the ranges share a single endpoint.

Link copied to clipboard
infix operator fun <T : Comparable<T>> ClosedRange<T>.minus(other: ClosedRange<T>): List<ClosedRange<T>>

Performs a subtraction between ranges. The operation can produce an empty list (e.g. if the current range is contained in the other one), a list featuring a single element, or a list featuring two elements (e.g. if the current range contains the other one).

Link copied to clipboard
fun <T : Comparable<T>> rangeFromUnordered(bound1: T, bound2: T): ClosedRange<T>

Creates a ClosedRange from a couple of unordered values.

Link copied to clipboard
fun <T : Comparable<T>> ClosedRange<T>.subtractAll(others: List<ClosedRange<T>>): List<ClosedRange<T>>

Subtracts all the given ranges from the current one. See ClosedRange.minus.