DEFINITION MODULE Rectangles; (* * REPERTOIRE * Release 1.6 * By Charles Bradford and Cole Brecheen * (c) Copyright 1985-1992 PMI * Green Bay, Wisconsin * All rights reserved * (414) 468-6040 * * $Header: D:/logfiles/defs/rectangl.dev 1.4 30 Dec 1990 18:03:54 coleb $ * *) TYPE APoint = RECORD col, row : INTEGER; END; ALine = RECORD p1, p2 : APoint; END; ARectangle = RECORD CASE : BOOLEAN OF TRUE : TopLeft, BottomRight : APoint; | FALSE : col1, row1, col2, row2 : INTEGER; END; END; PROCEDURE PointInside(VAR p : APoint; VAR r : ARectangle) : BOOLEAN; PROCEDURE Distance(p1, p2 : APoint) : CARDINAL; PROCEDURE RectsIntersect(VAR r1, r2, intersection : ARectangle) : BOOLEAN; PROCEDURE LineInside(TheLine : ALine; r : ARectangle; VAR intersection : ALine) : BOOLEAN; PROCEDURE DefineRectangle(VAR r : ARectangle; col1, row1, col2, row2 : INTEGER); PROCEDURE DefineByPoints(VAR r : ARectangle; TopLeft, BottomRight : APoint); PROCEDURE RectIsInside( VAR r1, r2 : ARectangle ): BOOLEAN; PROCEDURE ShrinkRect( VAR r : ARectangle ); PROCEDURE ExpandRect( VAR r : ARectangle ); PROCEDURE Init(); END Rectangles.