diff options
Diffstat (limited to 'Lib/lib-stdwin/rect.py')
-rw-r--r-- | Lib/lib-stdwin/rect.py | 89 |
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) |