new Rectangle(xopt, yopt, widthopt, heightopt)
This object represents a rectangular area within an abstract 2-dimensional matrix.
The unit of measure is typically pixels. (If used to model computer graphics, vertical coordinates are typically measured downwards from the top of the window. This convention however is not inherent in this object.)
Normally, the x and y parameters to the constructor describe the upper left corner of the rect.
However, negative values of width and height will be added to the given x and y. That is,
a negative value of the width parameter will extend the rect to the left of the given x and
a negative value of the height parameter will extend the rect above the given y.
In any case, after instantiation the following are guaranteed to always be true:
- The
extent,width, andheightproperties always give positive values. - The
origin,top, andleftproperties always reflect the upper left corner. - The
corner,bottom, andrightproperties always reflect the lower right corner.
Note: This object should be instantiated with the new keyword.
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
x |
number |
<optional> |
0 | Horizontal coordinate of some corner of the rect. |
y |
number |
<optional> |
0 | Vertical coordinate of some corner of the rect. |
width |
number |
<optional> |
0 | Width of the new rect. May be negative (see above). |
height |
number |
<optional> |
0 | Height of the new rect. May be negative (see above). |
Members
area :number
Area of this rect.
(Formerly a function; now a getter.)
Type:
- number
bottom :number
Maximum vertical coordinate of this rect + 1.
(Formerly a function; now a getter.)
Type:
- number
(abstract) center :Point
Center of this rect.
Created upon instantiation by the constructor.
Type:
(abstract) corner :Point
Lower right corner of this rect.
This is a calculated value created upon instantiation by the constructor. It is origin offset by extent.
Note: These coordinates actually point to the pixel one below and one to the right of the rect's actual lower right pixel.
Type:
(abstract) extent :Point
this rect's width and height.
Unlike the other Point properties, extent is not a global coordinate pair; rather it consists of a width (x, always positive) and a height (y, always positive).
This object might be more legitimately typed as something like Area with properties width and height; however we wanted it to be able to use it efficiently with a point's plus and minus methods (that is, without those methods having to check and branch on the type of its parameter).
Created upon instantiation by the constructor.
Type:
- See:
-
- The
cornermethod.
- The
height :number
Height of this rect (always positive).
(Formerly a function; now a getter.)
Type:
- number
left :number
Minimum horizontal coordinate of this rect.
(Formerly a function; now a getter.)
Type:
- number
(abstract) origin :Point
Upper left corner of this rect.
Created upon instantiation by the constructor.
Type:
right :number
Maximum horizontal coordinate of this rect + 1.
(Formerly a function; now a getter.)
Type:
- number
top :number
Minimum vertical coordinate of this rect.
(Formerly a function; now a getter.)
Type:
- number
width :number
Width of this rect (always positive).
(Formerly a function; now a getter.)
Type:
- number
Methods
contains(pointOrRect) → {boolean}
Parameters:
| Name | Type | Description |
|---|---|---|
pointOrRect |
Point | The point or rect to test for containment. |
Returns:
true iff given point entirely contained within this rect.
- Type
- boolean
flattenXAt(x) → {Rectangle}
Parameters:
| Name | Type | Description |
|---|---|---|
x |
number | Horizontal coordinate of the new rect. |
Returns:
A copy of this rect but with horizontal position reset to given x and no width.
- Type
- Rectangle
flattenYAt(y) → {Rectangle}
Parameters:
| Name | Type | Description |
|---|---|---|
y |
number | Vertical coordinate of the new rect. |
Returns:
A copy of this rect but with vertical position reset to given y and no height.
- Type
- Rectangle
forEach(iteratee, contextopt)
iterate over all points within this rect, invoking iteratee for each.
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
iteratee |
function | Function to call for each point.
Bound to |
||
context |
object |
<optional> |
this | Context to bind to |
growBy(padding) → {Rectangle}
(Formerly: insetBy.)
Parameters:
| Name | Type | Description |
|---|---|---|
padding |
number | Amount by which to increase (+) or decrease (-) this rect |
- See:
-
- The
shrinkBymethod.
- The
Returns:
That is enlarged/shrunk by given padding.
- Type
- Rectangle
intersect(rect, ifNoneActionopt, contextopt) → {Rectangle}
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
rect |
Rectangle | The rectangle to intersect with this rect. |
||
ifNoneAction |
function |
<optional> |
When no intersection, invoke and return result.
Bound to |
|
context |
object |
<optional> |
this | Context to bind to |
Returns:
One of:
- If this rect intersects with the given
rect: a new rect representing that intersection. - If it doesn't intersect and
ifNoneActiondefined: result of callingifNoneAction. - If it doesn't intersect and
ifNoneActionundefined:null.
- Type
- Rectangle
intersects(rect) → {boolean}
Parameters:
| Name | Type | Description |
|---|---|---|
rect |
Rectangle | The rectangle to intersect with this rect. |
Returns:
true iff this rect overlaps with given rect.
- Type
- boolean
shrinkBy(padding) → {Rectangle}
Parameters:
| Name | Type | Description |
|---|---|---|
padding |
number | Amount by which to decrease (+) or increase (-) this rect. |
- See:
-
- The
growBymethod.
- The
Returns:
That is enlarged/shrunk by given padding.
- Type
- Rectangle
union(rect) → {Rectangle}
Parameters:
| Name | Type | Description |
|---|---|---|
rect |
Rectangle | The rectangle to union with this rect. |
Returns:
Bounding rect that contains both this rect and the given rect.
- Type
- Rectangle
within(rect) → {boolean}
(Formerly isContainedWithinRectangle.)
Parameters:
| Name | Type | Description |
|---|---|---|
rect |
Rectangle | Rectangle to test against this rect. |
Returns:
true iff this rect is entirely contained within given rect.
- Type
- boolean