aboutsummaryrefslogtreecommitdiff
path: root/src/Utils.ts
diff options
context:
space:
mode:
authorbob <bcz@cs.brown.edu>2019-10-17 16:02:37 -0400
committerbob <bcz@cs.brown.edu>2019-10-17 16:02:37 -0400
commitdcdefb2a5a80d3c4d5451d6c7fc7213565d5ea5f (patch)
treedc0d50ed9d9f5d3b5e34e12c3782dcf779d105d6 /src/Utils.ts
parent17042f9598e20615668830a7c139a8a31dc6c109 (diff)
initial working version of draggable link anchors.
Diffstat (limited to 'src/Utils.ts')
-rw-r--r--src/Utils.ts23
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);