[API](/solutions/geotoolkit/geotoolkit_js/apis/readme) / [geotoolkit](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit) / [util](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.util) / [Rect](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.util#rect) / Rect

# Class: Rect

[util](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.util).[Rect](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.util#rect).Rect

Represents a rectangle with sides parallel to the axes. This rectangle has methods that allow the geometry
to be queried and modified. The geometry that makes up a rectangle consists
of two coordinate points that define the diagonal between the left bottom
corner and the right top corner. Note that the bottom vertical coordinate is
guaranteed to be less than the top vertical coordinate, and that the left
horizontal coordinate is less than the right horizontal coordinate.

**`Example`**

```ts
const r1 = new Rect({'x': 4,
'y': 3,
'width': 2,
'height': 1
});

const r2 = new Rect(r1);
const r3 = new Rect(4, 3, 6, 4);  // x1, y1, x2, y2
// r1, r2, and r3 are now equal
```

## Hierarchy

- [`Area`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.area.area)
↳ **`Rect`**
↳↳ [`BubbleRect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.shapes-1.bubblechart.bubblerect)
↳↳ [`ReadOnlyRect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.readonlyrect.readonlyrect)


## Table of contents

Constructors
| [new Rect()](/solutions/geotoolkit/GeoToolkit_JS/apis/classes/geotoolkit.util.rect.rect.md#new rect()) | [new Rect(properties)](/solutions/geotoolkit/GeoToolkit_JS/apis/classes/geotoolkit.util.rect.rect.md#new rect(properties)) | [new Rect(rect)](/solutions/geotoolkit/GeoToolkit_JS/apis/classes/geotoolkit.util.rect.rect.md#new rect(rect)) |
|  --- | --- | --- |
| [new Rect(x1, y1, x2, y2)](/solutions/geotoolkit/GeoToolkit_JS/apis/classes/geotoolkit.util.rect.rect.md#new rect(x1, y1, x2, y2)) |


Methods
| [clipLine](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#clipline) | [clone](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#clone) | [contains](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#contains) |
|  --- | --- | --- |
| [containsPolygon](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#containspolygon) | [containsRect](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#containsrect) | [equalsRect](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#equalsrect) |
| [getBottom](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#getbottom) | [getBottomCenter](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#getbottomcenter) | [getBounds](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#getbounds) |
| [getCenter](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#getcenter) | [getCenterX](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#getcenterx) | [getCenterY](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#getcentery) |
| [getClassName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#getclassname) | [getDiagonalLength](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#getdiagonallength) | [getHeight](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#getheight) |
| [getLeft](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#getleft) | [getLeftBottom](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#getleftbottom) | [getLeftCenter](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#getleftcenter) |
| [getLeftTop](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#getlefttop) | [getProperties](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#getproperties) | [getRight](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#getright) |
| [getRightBottom](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#getrightbottom) | [getRightCenter](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#getrightcenter) | [getRightTop](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#getrighttop) |
| [getTop](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#gettop) | [getTopCenter](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#gettopcenter) | [getWidth](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#getwidth) |
| [getX](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#getx) | [getY](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#gety) | [inflate](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#inflate) |
| [intersect](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#intersect) | [intersects](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#intersects) | [isEmpty](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#isempty) |
| [isReadOnly](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#isreadonly) | [lock](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#lock) | [merge](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#merge) |
| [round](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#round) | [setCenter](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#setcenter) | [setHeight](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#setheight) |
| [setProperties](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#setproperties) | [setRect](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#setrect) | [setWidth](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#setwidth) |
| [setX](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#setx) | [setY](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#sety) | [toString](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#tostring) |
| [translate](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#translate) | [union](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#union) | [unionPoint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#unionpoint) |
| [containsRect](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#containsrect-1) | [fromObject](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#fromobject) | [getClassName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#getclassname-1) |
| [inflateRect](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#inflaterect) | [intersectsRect](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#intersectsrect) | [merge](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#merge-1) |


Css Properties
| Name  | Type  | Description |
|  --- | --- | --- |
| `height` | `number` | Height |
| `readonly` | `boolean` | Readonly |
| `width` | `number` | Width |
| `x` | `number` | Left |
| `y` | `number` | Top |


## Contents

Constructors
#### new Rect()

• **new Rect**()

#### Overrides

Area.constructor

#### new Rect(properties)

• **new Rect**(`properties`)

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `properties` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.util#rect#options) | object to copy |


#### Overrides

Area.constructor

#### new Rect(rect)

• **new Rect**(`rect`)

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `rect` | [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect) | Rect instance to copy |


#### Overrides

Area.constructor

#### new Rect(x1, y1, x2, y2)

• **new Rect**(`x1`, `y1`, `x2`, `y2`)

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `x1` | `number` | left |
| `y1` | `number` | top |
| `x2` | `number` | right |
| `y2` | `number` | bottom |


#### Overrides

Area.constructor

Methods
#### clipLine

▸ **clipLine**(`a1`, `a2`, `result1?`, `result2?`): `number`

Clips a line by rectangle.

a1 [IN] the start position of the line. a2 [IN] the end position of the
line. result1 [OUT] the first point of the clipped line. result2 [OUT]
the end point of the clipped line. return true if clipped rectangle
intersects line or line is inside of the rectangle.

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `a1` | [`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point) | the first input point |
| `a2` | [`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point) | the second input point |
| `Optional` `result1` | [`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point) | the first output point |
| `Optional` `result2` | [`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point) | the second output point |


#### Returns

`number`

how many times line intersects rectangle

#### clone

▸ **clone**(): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

Return clone object.

#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

clone a copy of this object

#### contains

▸ **contains**(`x`, `y?`): `boolean`

Check if the area contains point

**`Throws`**

if illegal argument count

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `x` | `number` | [`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point) | x position of the point |
| `Optional` `y` | `number` | y position of the point |


#### Returns

`boolean`

#### Overrides

[Area](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.area.area).[contains](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.area.area#contains)

#### containsPolygon

▸ **containsPolygon**(`polygon`): `boolean`

Check if rectangle contains polygon

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `polygon` | [`Polygon`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.polygon.polygon) | polygon |


#### Returns

`boolean`

true if contains, else false

#### containsRect

▸ **containsRect**(`x`, `y`, `w`, `h`): `boolean`

Check if rectangle contains rectangle

**`Throws`**

if illegal argument count

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `x` | `number` | x position |
| `y` | `number` | y position |
| `w` | `number` | width |
| `h` | `number` | height |


#### Returns

`boolean`

▸ **containsRect**(`rect`): `boolean`

Check if rectangle contains rectangle

**`Throws`**

if illegal argument count

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `rect` | [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect) | rect |


#### Returns

`boolean`

#### equalsRect

▸ **equalsRect**(`rect`, `epsilon?`): `boolean`

Returns true if rectangles are identical

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `rect` | [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect) | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.util#rect#options) | rect to compare to |
| `Optional` `epsilon` | `number` | acceptance criteria |


#### Returns

`boolean`

equals this and rect have same x, y, width, height

#### getBottom

▸ **getBottom**(): `number`

Return bottom coordinate (always top < bottom)

#### Returns

`number`

y

#### getBottomCenter

▸ **getBottomCenter**(): [`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

Return Bottom center position

#### Returns

[`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

a new point to specify right bottom position

#### getBounds

▸ **getBounds**(): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

Return bounds

#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

bounds

#### Overrides

[Area](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.area.area).[getBounds](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.area.area#getbounds)

#### getCenter

▸ **getCenter**(): [`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

Gets coordinates of the rectangle's center

#### Returns

[`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

coordinates of the center

#### getCenterX

▸ **getCenterX**(): `number`

Gets X coordinate of the rectangle's center

#### Returns

`number`

X coordinate of the center

#### getCenterY

▸ **getCenterY**(): `number`

Gets Y coordinate of the rectangle's center

#### Returns

`number`

Y coordinate of the center

#### getClassName

▸ **getClassName**(): `string`

#### Returns

`string`

#### Inherited from

[Area](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.area.area).[getClassName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.area.area#getclassname)

#### getDiagonalLength

▸ **getDiagonalLength**(): `number`

Get diagonal length of rectangle

#### Returns

`number`

diagonal length

#### getHeight

▸ **getHeight**(): `number`

Return height

#### Returns

`number`

#### getLeft

▸ **getLeft**(): `number`

Return coordinate of left corner

#### Returns

`number`

x

#### getLeftBottom

▸ **getLeftBottom**(): [`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

Return left bottom position

#### Returns

[`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

a new point to specify right bottom position

#### getLeftCenter

▸ **getLeftCenter**(): [`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

Return Left center position

#### Returns

[`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

a new point to specify right bottom position

#### getLeftTop

▸ **getLeftTop**(): [`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

Return left top position

#### Returns

[`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

a new point to specify left top position

#### getProperties

▸ **getProperties**(): [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.util#rect#options)

Gets all the properties pertaining to this object

#### Returns

[`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.util#rect#options)

#### Overrides

[Area](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.area.area).[getProperties](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.area.area#getproperties)

#### getRight

▸ **getRight**(): `number`

Return coordinate of right corner

#### Returns

`number`

x

#### getRightBottom

▸ **getRightBottom**(): [`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

Return right bottom position

#### Returns

[`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

a new point to specify right bottom position

#### getRightCenter

▸ **getRightCenter**(): [`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

Return Right center position

#### Returns

[`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

a new point to specify right bottom position

#### getRightTop

▸ **getRightTop**(): [`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

Return left top position

#### Returns

[`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

a new point to specify left top position

#### getTop

▸ **getTop**(): `number`

Return top coordinate

#### Returns

`number`

y

#### getTopCenter

▸ **getTopCenter**(): [`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

Return Top center position

#### Returns

[`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

a new point to specify right bottom position

#### getWidth

▸ **getWidth**(): `number`

Return width

#### Returns

`number`

#### getX

▸ **getX**(): `number`

Return left position

#### Returns

`number`

#### getY

▸ **getY**(): `number`

Return top position

#### Returns

`number`

y

#### inflate

▸ **inflate**(`width`, `height?`): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

Inflate rectangle from each side by width and height

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `width` | `number` | extend in horizontal direction |
| `Optional` `height` | `number` | extend in vertical direction |


#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

#### intersect

▸ **intersect**(`x`, `y`, `width`, `height`): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

Intersects this rectangle with the specified one

**`Throws`**

if the rect is null or if illegal arguments

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `x` | `number` | The x coordinate |
| `y` | `number` | The y coordinate |
| `width` | `number` | The width |
| `height` | `number` | The height |


#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

this

▸ **intersect**(`rect`): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

Intersects this rectangle with the specified one

**`Throws`**

if the rect is null or if illegal arguments

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `rect` | [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect) | rectangle to intersect with |


#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

this

#### intersects

▸ **intersects**(`rect`): `boolean`

Determines whether or not this Rectangle and the specified Rectangle
intersection. Two rectangles intersect if their intersection is non-empty or if they touch on either side.

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `rect` | [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect) | The x coordinate or another rectangle |


#### Returns

`boolean`

▸ **intersects**(`x`, `y`, `w`, `h`): `boolean`

Determines whether or not this Rectangle and the specified Rectangle
intersection. Two rectangles intersect if their intersection is non-empty or if they touch on either side.

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `x` | `number` | The x coordinate |
| `y` | `number` | The y coordinate |
| `w` | `number` | The width |
| `h` | `number` | The height |


#### Returns

`boolean`

#### isEmpty

▸ **isEmpty**(): `boolean`

returns Rect state

#### Returns

`boolean`

true if width or height == 0

#### isReadOnly

▸ **isReadOnly**(): `boolean`

return Rect state. If true, rect cannot be modified.

#### Returns

`boolean`

readOnly

#### lock

▸ **lock**(): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

protect Rect instance from modification.

#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

this

#### merge

▸ **merge**(`newRect`, `operation?`): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

Merges with provided rectangular area according to the operation applied.

**`Throws`**

if the rects provided is null

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `newRect` | [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect) | rect to be merged with the current |
| `Optional` `operation` | [`GeometryOperation`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.util#geometryoperation) | operation to apply |


#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

this

#### round

▸ **round**(): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

Round this rectangle to integer values for coordinates.
This method sets the largest whole numbers less than or equal to the current
values of left-top corner and sets the smallest whole numbers greater than or equal
to the current values of right-bottom corner of the rectangle.

#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

this

#### setCenter

▸ **setCenter**(`x`, `y`): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

Sets rectangle center

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `x` | `number` | X coordinate of the rectangle's center |
| `y` | `number` | Y coordinate of the rectangle's center |


#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

the actual instance

#### setHeight

▸ **setHeight**(`h`): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

Sets height

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `h` | `number` | height |


#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

#### setProperties

▸ **setProperties**(`properties?`): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

Sets all the properties pertaining to this object

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `Optional` `properties` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.util#rect#options) | object containing the properties to set |


#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

this

#### Overrides

[Area](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.area.area).[setProperties](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.area.area#setproperties)

#### setRect

▸ **setRect**(`rect`): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

Sets rectangle

**`Throws`**

if illegal argument count

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `rect` | [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect) | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.util#rect#options) | rect or params |


#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

this

▸ **setRect**(`x1`, `y1`, `x2`, `y2`): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

Sets rectangle

**`Throws`**

if illegal argument count

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `x1` | `number` | the x-coordinate of one corner |
| `y1` | `number` | the y-coordinate of one corner |
| `x2` | `number` | the x-coordinate of the opposite corner |
| `y2` | `number` | the y coordinate of the opposite corner |


#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

this

#### setWidth

▸ **setWidth**(`w`): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

Sets width

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `w` | `number` | width |


#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

#### setX

▸ **setX**(`x`): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

Set left position

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `x` | `number` | left position |


#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

this

#### setY

▸ **setY**(`y`): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

Set top position

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `y` | `number` | top position |


#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

this

#### toString

▸ **toString**(): `string`

Returns string like: "Rect: x1,y1:x2,y2"
With x1 left
With y1 top
With x2 right
With y2 bottom

#### Returns

`string`

string value

#### translate

▸ **translate**(`tx`, `ty`): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

Translates rectangle a specified distance

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `tx` | `number` | x translation |
| `ty` | `number` | y translation |


#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

this

#### union

▸ **union**(`rect`): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

Union this Rect with the specified

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `rect` | [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect) | The rect to union with current one |


#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

this

#### unionPoint

▸ **unionPoint**(`x`, `y`): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

Unions this Rect with the specified x,y-point

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `x` | `number` | The x coordinate |
| `y` | `number` | The y coordinate |


#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

this

#### containsRect

▸ `Static` **containsRect**(`rect1`, `rect2`): `boolean`

Check if rectangle1 contains rectangle2

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `rect1` | [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect) | rectangle 1 |
| `rect2` | [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect) | rectangle 2 |


#### Returns

`boolean`

true if contains, else false

#### fromObject

▸ `Static` **fromObject**(`object?`): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

Create or get rect from object

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `Optional` `object` | [`Type`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.util#rect#type) | object can be in format of constructor of [Rect](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect) |


#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

rect

#### getClassName

▸ `Static` **getClassName**(): `string`

#### Returns

`string`

#### Inherited from

[Area](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.area.area).[getClassName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.area.area#getclassname-1)

#### inflateRect

▸ `Static` **inflateRect**(`source`, `w`, `h`): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

Inflate rectangle

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `source` | [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect) | rect to be inflated |
| `w` | `number` | The width to inflate |
| `h` | `number` | The height to inflate |


#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

a new inflated rectangle

#### intersectsRect

▸ `Static` **intersectsRect**(`rect1`, `rect2`): `boolean`

Check if rectangle1 intersects rectangle2.
Two rectangles intersect if their intersection is non-empty or if they touch on either side.

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `rect1` | [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect) | rectangle 1 |
| `rect2` | [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect) | rectangle 2 |


#### Returns

`boolean`

true if intersects, else false

#### merge

▸ `Static` **merge**(`oldRect`, `newRect`, `operation?`, `dstRect?`): [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

Merges provided rectangular areas according to the operation applied.

**`Throws`**

if either of the rects provided is null

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `oldRect` | [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect) | 1st rect to merge |
| `newRect` | [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect) | 2nd rect to merge |
| `Optional` `operation` | [`GeometryOperation`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.util#geometryoperation) | operation to be performed on the new rect |
| `Optional` `dstRect` | [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect) | destination rectangular geometry |


#### Returns

[`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect)

merged rectangular geometry