diff options
author | bob <bcz@cs.brown.edu> | 2019-10-17 16:02:37 -0400 |
---|---|---|
committer | bob <bcz@cs.brown.edu> | 2019-10-17 16:02:37 -0400 |
commit | dcdefb2a5a80d3c4d5451d6c7fc7213565d5ea5f (patch) | |
tree | dc0d50ed9d9f5d3b5e34e12c3782dcf779d105d6 /src/Utils.ts | |
parent | 17042f9598e20615668830a7c139a8a31dc6c109 (diff) |
initial working version of draggable link anchors.
Diffstat (limited to 'src/Utils.ts')
-rw-r--r-- | src/Utils.ts | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/Utils.ts b/src/Utils.ts index 6889936b8..66ed8be5d 100644 --- a/src/Utils.ts +++ b/src/Utils.ts @@ -149,6 +149,29 @@ export namespace Utils { } + export function clamp(n: number, lower: number, upper: number) { + return Math.max(lower, Math.min(upper, n)); + } + + export function getNearestPointInPerimeter(l: number, t: number, w: number, h: number, x: number, y: number) { + var r = l + w, + b = t + h; + + var x = clamp(x, l, r), + y = clamp(y, t, b); + + var dl = Math.abs(x - l), + dr = Math.abs(x - r), + dt = Math.abs(y - t), + db = Math.abs(y - b); + + var m = Math.min(dl, dr, dt, db); + + return (m === dt) ? [x, t] : + (m === db) ? [x, b] : + (m === dl) ? [l, y] : [r, y]; + } + export function GetClipboardText(): string { var textArea = document.createElement("textarea"); document.body.appendChild(textArea); |