addMargin
contains
containsPoint
containsRect
copy
equalTo
equals
grow
inflate
intersect
intersectRect
intersects
intersectsRect
isEmpty
isReal
offset
set
setPoint
setSize
setSpot
setTo
subtractMargin
union
unionPoint
unionRect
contains
intersects
intersectsLineSegment
parse
stringify
stringifyFixed

: number

Gets or sets the y-axis value of the bottom of the Rect. This is equal to the sum of the y value and the height.

: Point

Gets or sets the Point at the center of this Rect. Setting this property just shifts the X and Y values.

: number

Gets or sets the horizontal center X coordinate of the Rect.

: number

Gets or sets the vertical center Y coordinate of the Rect.

: number

Gets or sets the height of the Rect. The value must not be negative.

: number

Gets or sets the leftmost value of the Rect. This is the same as the X value.

: Point

Gets or sets the x- and y-axis position of the Rect as a Point.

: number

Gets or sets the x-axis value of the right of the Rect. This is equal to the sum of the x value and the width.

: Size

Gets or sets the width and height of the Rect as a Size.

: number

Gets or sets the topmost value of the Rect. This is the same as the Y value.

: number

Gets or sets the width of the Rect. The value must not be negative.

: number

Gets or sets the top-left x coordinate of the Rect.

: number

Gets or sets the top-left y coordinate of the Rect.

- contains(x: number, y: number, w?: number, h?: number): boolean
Indicates whether this Rect contains the given Point/Rect.

#### Parameters

##### x: number

The X coordinate of the Point or Rect to include in the new bounds.

##### y: number

The Y coordinate of the Point or Rect to include in the new bounds.

`Optional`

w: numberThe Width of the Rect to include in the new bounds, defaults to zero.

`Optional`

h: numberThe Height of the Rect to include in the new bounds, defaults to zero.

#### Returns boolean

True if the Point/Rect is contained within this Rect, false otherwise.

`Virtual`

copy- grow(t: number, r: number, b: number, l: number): Rect
Modifies this Rect by adding some distance to each side of the Rect.

#### Parameters

##### t: number

the amount to move the top side upwards; may be negative.

##### r: number

the amount to move the right side rightwards; may be negative.

##### b: number

the amount to move the bottom side downwards; may be negative.

##### l: number

the amount to move the left side leftwards; may be negative.

#### Returns Rect

this modified Rect.

- inflate(w: number, h: number): Rect
Modify this Rect so that its width and height are changed on all four sides, equally on the left and right sides, and equally on the top and bottom sides. When the arguments are negative, this operation deflates this Rect, but not beyond zero.

#### Parameters

##### w: number

The additional width on each side, left and right; may be negative.

##### h: number

The additional height on each side, top and bottom; may be negative.

#### Returns Rect

this.

- set
Spot (x: number, y: number, spot: Spot): Rect Modify this Rect so that a given Spot is at a given (x,y) point using this Rect's size. Return this rectangle for which the spot is at that point, without modifying the size.

The result is meaningless if Spot.isNoSpot is true.

#### Parameters

##### x: number

the point where the spot should be.

##### y: number

the point where the spot should be.

##### spot: Spot

a Spot; Spot.isSpot must be true.

#### Returns Rect

this.

- union(x: number, y: number, w?: number, h?: number): Rect
Modify this Rect to be exactly big enough to contain both the original Rect and the given rectangular area.

#### Parameters

##### x: number

The X coordinate of the Point or Rect to include in the new bounds.

##### y: number

The Y coordinate of the Point or Rect to include in the new bounds.

`Optional`

w: numberThe Width of the Rect to include in the new bounds, defaults to zero.

`Optional`

h: numberThe Height of the Rect to include in the new bounds, defaults to zero.

#### Returns Rect

this.

`Static`

contains- contains(rx: number, ry: number, rw: number, rh: number, x: number, y: number, w?: number, h?: number): boolean
This static function indicates whether a Rect contains the given Point/Rect.

#### Parameters

##### rx: number

The X coordinate of a Rect.

##### ry: number

The Y coordinate of a Rect.

##### rw: number

The Width of a Rect.

##### rh: number

The Height of a Rect.

##### x: number

The X coordinate of the Point or Rect that might be in the bounds (RX, RY, RW, RH).

##### y: number

The Y coordinate of the Point or Rect that might be in the bounds (RX, RY, RW, RH).

`Optional`

w: numberThe Width of the Rect to include in the new bounds, defaults to zero.

`Optional`

h: numberThe Height of the Rect to include in the new bounds, defaults to zero.

#### Returns boolean

True if the Point/Rect is contained within this Rect, false otherwise.

`Static`

intersects- intersects(rx: number, ry: number, rw: number, rh: number, x: number, y: number, w: number, h: number): boolean
This static function indicates whether a Rect partly or wholly overlaps the given Rect.

#### Parameters

##### rx: number

The X coordinate of a Rect.

##### ry: number

The Y coordinate of a Rect.

##### rw: number

The Width of a Rect.

##### rh: number

The Height of a Rect.

##### x: number

The X coordinate of the Point or Rect that might overlap the bounds (RX, RY, RW, RH).

##### y: number

The Y coordinate of the Point or Rect that might overlap the bounds (RX, RY, RW, RH).

##### w: number

##### h: number

#### Returns boolean

true if there is any overlap.

`Static`

intersects- intersects
Line (x: number, y: number, w: number, h: number, p1x: number, p1y: number, p2x: number, p2y: number): booleanSegment This static function is true if a rectangular area is intersected by a finite straight line segment.

#### Parameters

##### x: number

The X coordinate of the rectangle to check for intersection with the line segment.

##### y: number

The Y coordinate of the rectangle to check for intersection with the line segment.

##### w: number

The Width of the rectangle to check for intersection with the line segment.

##### h: number

The Height of the rectangle to check for intersection with the line segment.

##### p1x: number

The X coordinate of one end of the line segment.

##### p1y: number

The Y coordinate of one end of the line segment.

##### p2x: number

The X coordinate of other end of the line segment.

##### p2y: number

The Y coordinate of other end of the line segment.

#### Returns boolean

True if the given finite line segment intersects with the given rectangular area, false otherwise.

`Static`

parse- parse(str: string): Rect
This static function can be used to read in a Rect from a string that was produced by Rect.stringify.

`go.Rect.parse("1 2 3 4")`

produces the Rect`new go.Rect(1, 2, 3, 4)`

.#### Parameters

##### str: string

#### Returns Rect

`Static`

stringify- stringify(val: Rect): string
This static function can be used to write out a Rect as a string that can be read by Rect.parse.

`go.Rect.stringify(new go.Rect(1, 2, 3, 4))`

produces the string "1 2 3 4".#### Parameters

##### val: Rect

#### Returns string

`Static`

stringify- stringify
Fixed (digits: number): ((val: Rect) => string) This static function returns a function that can be used as a back converter for a Binding to write out a Rect's values as numbers with a fixed number of digits after the decimal point.

This is useful for limiting the size of JSON output and making it more legible. It might also be useful for regression testing.

#### Parameters

##### digits: number

must be a non-negative integer

#### Returns ((val: Rect) => string)

a function that converts a Rect to a string without so many decimals

- (val: Rect): string
This static function returns a function that can be used as a back converter for a Binding to write out a Rect's values as numbers with a fixed number of digits after the decimal point.

This is useful for limiting the size of JSON output and making it more legible. It might also be useful for regression testing.

#### Parameters

##### val: Rect

#### Returns string

a function that converts a Rect to a string without so many decimals

Copyright © 1998-2024 by Northwoods Software Corporation.

A Rect describes a rectangular two-dimensional area as a top-left point (x and y values) and a size (width and height values).

Use the static functions Rect.parse and Rect.stringify to convert to and from a standard string representation that is independent of the current locale.

When an instance of this class is the value of a property of a GraphObject class or Diagram or CommandHandler or a Tool class, you should treat the object as if it were frozen or read-only -- you cannot modify its properties. This allows the property to return a value without allocating a new instance. If you need to do your own calculations with the value, call copy to make a new instance with the same values that you can modify.

Many methods modify the object's properties and then return a reference to "this" object. The only instance method to allocate a new object is the copy method. The static Rect.parse method also allocates a new object. The center, position, and size properties all allocate and return a new object.

The "Debug" implementation of this class is significantly slower than the "Release" implementation, mostly due to additional error checking.

You cannot inherit from this class.