summaryrefslogtreecommitdiffstats
path: root/Lib/lib-stdwin/rect.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/lib-stdwin/rect.py')
-rw-r--r--Lib/lib-stdwin/rect.py89
1 files changed, 0 insertions, 89 deletions
diff --git a/Lib/lib-stdwin/rect.py b/Lib/lib-stdwin/rect.py
deleted file mode 100644
index 393eafd..0000000
--- a/Lib/lib-stdwin/rect.py
+++ /dev/null
@@ -1,89 +0,0 @@
-# Module 'rect'.
-#
-# Operations on rectangles.
-# There is some normalization: all results return the object 'empty'
-# if their result would contain no points.
-
-
-# Exception.
-#
-error = 'rect.error'
-
-
-# The empty rectangle.
-#
-empty = (0, 0), (0, 0)
-
-
-# Check if a rectangle is empty.
-#
-def is_empty(r):
- (left, top), (right, bottom) = r
- return left >= right or top >= bottom
-
-
-# Compute the intersection or two or more rectangles.
-# This works with a list or tuple argument.
-#
-def intersect(list):
- if not list: raise error, 'intersect called with empty list'
- if is_empty(list[0]): return empty
- (left, top), (right, bottom) = list[0]
- for rect in list[1:]:
- if is_empty(rect):
- return empty
- (l, t), (r, b) = rect
- if left < l: left = l
- if top < t: top = t
- if right > r: right = r
- if bottom > b: bottom = b
- if is_empty(((left, top), (right, bottom))):
- return empty
- return (left, top), (right, bottom)
-
-
-# Compute the smallest rectangle containing all given rectangles.
-# This works with a list or tuple argument.
-#
-def union(list):
- (left, top), (right, bottom) = list[0]
- for (l, t), (r, b) in list[1:]:
- if not is_empty(((l, t), (r, b))):
- if l < left: left = l
- if t < top: top = t
- if r > right: right = r
- if b > bottom: bottom = b
- res = (left, top), (right, bottom)
- if is_empty(res):
- return empty
- return res
-
-
-# Check if a point is in a rectangle.
-#
-def pointinrect((h, v), ((left, top), (right, bottom))):
- return left <= h < right and top <= v < bottom
-
-
-# Return a rectangle that is dh, dv inside another
-#
-def inset(((left, top), (right, bottom)), (dh, dv)):
- left = left + dh
- top = top + dv
- right = right - dh
- bottom = bottom - dv
- r = (left, top), (right, bottom)
- if is_empty(r):
- return empty
- else:
- return r
-
-
-# Conversions between rectangles and 'geometry tuples',
-# given as origin (h, v) and dimensions (width, height).
-#
-def rect2geom((left, top), (right, bottom)):
- return (left, top), (right-left, bottom-top)
-
-def geom2rect((h, v), (width, height)):
- return (h, v), (h+width, v+height)