diff options
| author | mrmr1993 | 2017-07-04 12:50:30 +0100 |
|---|---|---|
| committer | mrmr1993 | 2017-11-01 07:48:39 +0000 |
| commit | 60ca3238e5e5d35f3ed6acbbadd370f432b746ef (patch) | |
| tree | fbef3a3857578be9503f65ba28242c85abce1081 | |
| parent | e424bb942b58e5cee3506e42b6f3aa9008eb7b17 (diff) | |
| download | vimium-60ca3238e5e5d35f3ed6acbbadd370f432b746ef.tar.bz2 | |
Rename Rect.rectOverlaps to Rect.intersectsStrict, clarify the comment
| -rw-r--r-- | content_scripts/link_hints.coffee | 2 | ||||
| -rw-r--r-- | lib/rect.coffee | 10 | ||||
| -rw-r--r-- | tests/unit_tests/rect_test.coffee | 22 |
3 files changed, 17 insertions, 17 deletions
diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee index 33a876e0..198a64f3 100644 --- a/content_scripts/link_hints.coffee +++ b/content_scripts/link_hints.coffee @@ -321,7 +321,7 @@ class LinkHintsMode rotateHints: do -> markerOverlapsStack = (marker, stack) -> for otherMarker in stack - return true if Rect.rectsOverlap marker.markerRect, otherMarker.markerRect + return true if Rect.intersectsStrict marker.markerRect, otherMarker.markerRect false -> diff --git a/lib/rect.coffee b/lib/rect.coffee index 703c640c..0e9c3417 100644 --- a/lib/rect.coffee +++ b/lib/rect.coffee @@ -74,6 +74,11 @@ Rect = rect1.bottom > rect2.top and rect1.top < rect2.bottom + # Determine whether two rects overlap, including 0-width intersections at borders. + intersectsStrict: (rect1, rect2) -> + rect1.right >= rect2.left and rect1.left <= rect2.right and + rect1.bottom >= rect2.top and rect1.top <= rect2.bottom + equals: (rect1, rect2) -> for property in ["top", "bottom", "left", "right", "width", "height"] return false if rect1[property] != rect2[property] @@ -83,11 +88,6 @@ Rect = @create (Math.max rect1.left, rect2.left), (Math.max rect1.top, rect2.top), (Math.min rect1.right, rect2.right), (Math.min rect1.bottom, rect2.bottom) - # Determine whether two rects overlap. - rectsOverlap: (rect1, rect2) -> - rect1.right >= rect2.left and rect1.left <= rect2.right and - rect1.bottom >= rect2.top and rect1.top <= rect2.bottom - root = exports ? (window.root ?= {}) root.Rect = Rect extend window, root unless exports? diff --git a/tests/unit_tests/rect_test.coffee b/tests/unit_tests/rect_test.coffee index 78985bf8..5054e029 100644 --- a/tests/unit_tests/rect_test.coffee +++ b/tests/unit_tests/rect_test.coffee @@ -234,55 +234,55 @@ context "Rect subtraction", context "Rect overlaps", should "detect that a rect overlaps itself", -> rect = Rect.create 2, 2, 4, 4 - assert.isTrue Rect.rectsOverlap rect, rect + assert.isTrue Rect.intersectsStrict rect, rect should "detect that non-overlapping rectangles do not overlap on the left", -> rect1 = Rect.create 2, 2, 4, 4 rect2 = Rect.create 0, 2, 1, 4 - assert.isFalse Rect.rectsOverlap rect1, rect2 + assert.isFalse Rect.intersectsStrict rect1, rect2 should "detect that non-overlapping rectangles do not overlap on the right", -> rect1 = Rect.create 2, 2, 4, 4 rect2 = Rect.create 5, 2, 6, 4 - assert.isFalse Rect.rectsOverlap rect1, rect2 + assert.isFalse Rect.intersectsStrict rect1, rect2 should "detect that non-overlapping rectangles do not overlap on the top", -> rect1 = Rect.create 2, 2, 4, 4 rect2 = Rect.create 2, 0, 2, 1 - assert.isFalse Rect.rectsOverlap rect1, rect2 + assert.isFalse Rect.intersectsStrict rect1, rect2 should "detect that non-overlapping rectangles do not overlap on the bottom", -> rect1 = Rect.create 2, 2, 4, 4 rect2 = Rect.create 2, 5, 2, 6 - assert.isFalse Rect.rectsOverlap rect1, rect2 + assert.isFalse Rect.intersectsStrict rect1, rect2 should "detect overlapping rectangles on the left", -> rect1 = Rect.create 2, 2, 4, 4 rect2 = Rect.create 0, 2, 2, 4 - assert.isTrue Rect.rectsOverlap rect1, rect2 + assert.isTrue Rect.intersectsStrict rect1, rect2 should "detect overlapping rectangles on the right", -> rect1 = Rect.create 2, 2, 4, 4 rect2 = Rect.create 4, 2, 5, 4 - assert.isTrue Rect.rectsOverlap rect1, rect2 + assert.isTrue Rect.intersectsStrict rect1, rect2 should "detect overlapping rectangles on the top", -> rect1 = Rect.create 2, 2, 4, 4 rect2 = Rect.create 2, 4, 4, 5 - assert.isTrue Rect.rectsOverlap rect1, rect2 + assert.isTrue Rect.intersectsStrict rect1, rect2 should "detect overlapping rectangles on the bottom", -> rect1 = Rect.create 2, 2, 4, 4 rect2 = Rect.create 2, 0, 4, 2 - assert.isTrue Rect.rectsOverlap rect1, rect2 + assert.isTrue Rect.intersectsStrict rect1, rect2 should "detect overlapping rectangles when second rectangle is contained in first", -> rect1 = Rect.create 1, 1, 4, 4 rect2 = Rect.create 2, 2, 3, 3 - assert.isTrue Rect.rectsOverlap rect1, rect2 + assert.isTrue Rect.intersectsStrict rect1, rect2 should "detect overlapping rectangles when first rectangle is contained in second", -> rect1 = Rect.create 1, 1, 4, 4 rect2 = Rect.create 2, 2, 3, 3 - assert.isTrue Rect.rectsOverlap rect2, rect1 + assert.isTrue Rect.intersectsStrict rect2, rect1 |
