From 73f66797fbc9986c79ed1768f50693db64192c1a Mon Sep 17 00:00:00 2001 From: Alexander Rose <alexander.rose@weirdbyte.de> Date: Wed, 11 Jul 2018 19:25:51 -0700 Subject: [PATCH] OrderedSet improvements --- src/mol-data/int/ordered-set.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/mol-data/int/ordered-set.ts b/src/mol-data/int/ordered-set.ts index 038b11830..ff1aee372 100644 --- a/src/mol-data/int/ordered-set.ts +++ b/src/mol-data/int/ordered-set.ts @@ -23,11 +23,14 @@ namespace OrderedSet { export const min: <T extends number = number>(set: OrderedSet<T>) => T = Base.min as any; export const max: <T extends number = number>(set: OrderedSet<T>) => T = Base.max as any; + export const start: <T extends number = number>(set: OrderedSet<T>) => T = Base.start as any; + export const end: <T extends number = number>(set: OrderedSet<T>) => T = Base.end as any; export const size: <T extends number = number>(set: OrderedSet<T>) => number = Base.size as any; export const hashCode: <T extends number = number>(set: OrderedSet<T>) => number = Base.hashCode as any; export const areEqual: <T extends number = number>(a: OrderedSet<T>, b: OrderedSet<T>) => boolean = Base.areEqual as any; export const areIntersecting: <T extends number = number>(a: OrderedSet<T>, b: OrderedSet<T>) => boolean = Base.areIntersecting as any; + /** Check if the 2nd argument is a subset of the 1st */ export const isSubset: <T extends number = number>(a: OrderedSet<T>, b: OrderedSet<T>) => boolean = Base.isSubset as any; export const union: <T extends number = number>(a: OrderedSet<T>, b: OrderedSet<T>) => OrderedSet<T> = Base.union as any; @@ -49,6 +52,12 @@ namespace OrderedSet { export function isSortedArray<T extends number = number>(set: OrderedSet<T>): set is SortedArray<T> { return !Interval.is(set); } + + export function toArray<T extends number = number>(set: OrderedSet<T>): T[] { + const array: T[] = [] + OrderedSet.forEach(set, v => array.push(v)) + return array + } } /** Represents bla */ -- GitLab