Portable Object Compiler (c) 1997,98,99.  All Rights Reserved.

Rectangle

Inherits from: Object

Class Description

Rectangle instances are pairs of Point objects.  It is mostly Squeak and Stepstone ICpak101 compatible.

Method types

Creation	- new
	- origin:corner:
	- origin:extent:
	- origin::corner::
	- origin::extent::
	- free

Motion	- origin:
	- corner:
	- origin:corner:
	- extent::
	- extent:
	- origin::
	- corner::

Comparing	- contains:
	- hash
	- isEqual:

Interrogation	- left
	- right
	- top
	- bottom
	- width
	- height
	- origin
	- topLeft
	- topRight
	- topCenter
	- corner
	- bottomLeft
	- bottomCenter
	- bottomRight
	- center
	- leftCenter
	- rightCenter
	- extent
	- quickMerge:

Arithmetic	- moveBy:
	- translateBy:
	- align:with:

Printing	- printOn:

Methods

new
+new

Returns a new rectangle with origin and corner at (0,0).

origin:corner:
+origin:pcorner:q

Returns a new rectangle with origin and corner set to p and q.

origin:extent:
+origin:pextent:q

origin::corner::
+origin:(int)x1:(int)y1corner:(int)x2:(int)y2

origin::extent::
+origin:(int)x:(int)yextent:(int)w:(int)h

free
-free

Frees the origin and corner of the Point too.

origin:
-origin:p

corner:
-corner:q

origin:corner:
-origin:pcorner:q

Sets origin and corner to p and q.

extent::
-extent:(int)w:(int)h

extent:
-extent:q

origin::
-origin:(int)x1:(int)y1

corner::
-corner:(int)x1:(int)y1

contains:
- (BOOL)contains:aPoint

Yes if inside, or on a border of, the rectangle.

hash
- (unsigned)hash

isEqual:
- (BOOL)isEqual:aRectangle

Returns YES if aRectangle is some kind of rectangle, and if corner and origin are equal.

left
- (int)left

right
- (int)right

top
- (int)top

bottom
- (int)bottom

width
- (int)width

height
- (int)height

origin
-origin

topLeft
-topLeft

Same as origin.

topRight
-topRight

Answer the point at the top right corner of the receiver's top horizontal.

topCenter
-topCenter

Answer the point at the center of the receiver's top horizontal.

corner
-corner

bottomLeft
-bottomLeft

Returns the point at the left edge of the bottom horizontal line of the receiver(or bottomLeft for short).

bottomCenter
-bottomCenter

Answer the point at the center of the receiver's bottom horizontal.

bottomRight
-bottomRight

Same as corner.

center
-center

Return the point at the center of the receiver.

leftCenter
-leftCenter

Return the point at the center of the receiver's left vertical line.

rightCenter
-rightCenter

Return the point at the center of the receiver's left vertical line.

extent
-extent

Return a new Point, set to the width and height of the rectangle.

quickMerge:
-quickMerge:rect

Return the receiver if it encloses the given rectangle or the merge of the two rectangles if it doesn't.  This method is an optimization to reduce extra rectangle creations.

moveBy:
-moveBy:aPoint

translateBy:
-translateBy:p

This method is like moveBy:, but returns a new rectangle instead of modifying the receiver.

align:with:
-align:p1with:p2

Answer a rectangle that is translated by p2 - p1.

printOn:
-printOn:(IOD)aFile