Skip to content
Snippets Groups Projects
Commit 3e3b71d2 authored by Alexander Rose's avatar Alexander Rose
Browse files

added Interval.ofLength

parent 18692926
Branches
Tags
No related merge requests found
...@@ -9,6 +9,7 @@ import Tuple from '../tuple' ...@@ -9,6 +9,7 @@ import Tuple from '../tuple'
export const Empty = Tuple.Zero; export const Empty = Tuple.Zero;
export function ofRange(min: number, max: number) { return max < min ? Tuple.create(min, min) : Tuple.create(min, max + 1); } export function ofRange(min: number, max: number) { return max < min ? Tuple.create(min, min) : Tuple.create(min, max + 1); }
export function ofBounds(start: number, end: number) { return end <= start ? Tuple.create(start, start) : Tuple.create(start, end); } export function ofBounds(start: number, end: number) { return end <= start ? Tuple.create(start, start) : Tuple.create(start, end); }
export function ofLength(length: number) { return length < 0 ? Tuple.create(0, 0) : Tuple.create(0, length); }
export const is = Tuple.is; export const is = Tuple.is;
export const start = Tuple.fst; export const start = Tuple.fst;
......
...@@ -14,6 +14,8 @@ namespace Interval { ...@@ -14,6 +14,8 @@ namespace Interval {
export const ofRange: <T extends number = number>(min: T, max: T) => Interval<T> = Impl.ofRange as any; export const ofRange: <T extends number = number>(min: T, max: T) => Interval<T> = Impl.ofRange as any;
/** Create interval from bounds [start, end), i.e. [start, end - 1] */ /** Create interval from bounds [start, end), i.e. [start, end - 1] */
export const ofBounds: <T extends number = number>(start: T, end: T) => Interval<T> = Impl.ofBounds as any; export const ofBounds: <T extends number = number>(start: T, end: T) => Interval<T> = Impl.ofBounds as any;
/** Create interval from length [0, length), i.e. [0, length - 1] */
export const ofLength: <T extends number = number>(length: T) => Interval<T> = Impl.ofLength as any;
export const is: <T extends number = number>(v: any) => v is Interval<T> = Impl.is as any; export const is: <T extends number = number>(v: any) => v is Interval<T> = Impl.is as any;
/** Test if a value is within the bounds of the interval */ /** Test if a value is within the bounds of the interval */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment