diff options
author | Bob Zeleznik <zzzman@gmail.com> | 2019-09-25 00:16:55 -0400 |
---|---|---|
committer | Bob Zeleznik <zzzman@gmail.com> | 2019-09-25 00:16:55 -0400 |
commit | b69106994f5450e2ac2c515f28dacceb2e13b78b (patch) | |
tree | c024c795d0ee7e488bd0aafead0c80b5b1617c9b /src/Utils.ts | |
parent | e2ab8ba370ecd01a4327492a491c4fa88de09eaf (diff) |
refactored collection view to be cleaner and more modular for supporting things like PivotView. fixed pivot view selection bug.
Diffstat (limited to 'src/Utils.ts')
-rw-r--r-- | src/Utils.ts | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/Utils.ts b/src/Utils.ts index 65eb3cffd..4fac53c7d 100644 --- a/src/Utils.ts +++ b/src/Utils.ts @@ -235,6 +235,21 @@ export function timenow() { return now.toLocaleDateString() + ' ' + h + ':' + m + ' ' + ampm; } +export function aggregateBounds(boundsList: { x: number, y: number, width: number, height: number }[]) { + return boundsList.reduce((bounds, b) => { + var [sptX, sptY] = [b.x, b.y]; + let [bptX, bptY] = [sptX + b.width, sptY + b.height]; + return { + x: Math.min(sptX, bounds.x), y: Math.min(sptY, bounds.y), + r: Math.max(bptX, bounds.r), b: Math.max(bptY, bounds.b) + }; + }, { x: Number.MAX_VALUE, y: Number.MAX_VALUE, r: -Number.MAX_VALUE, b: -Number.MAX_VALUE }); +} +export function intersectRect(r1: { left: number, top: number, width: number, height: number }, + r2: { left: number, top: number, width: number, height: number }) { + return !(r2.left > r1.left + r1.width || r2.left + r2.width < r1.left || r2.top > r1.top + r1.height || r2.top + r2.height < r1.top); +} + export function percent2frac(percent: string) { return Number(percent.substr(0, percent.length - 1)) / 100; } |