# Class goog.math.Box

code »

Class for representing a box. A box is specified as a top, right, bottom, and left. A box is useful for representing margins and padding. This class assumes 'screen coordinates': larger Y coordinates are further from the top of the screen.

## Constructor

goog.math.Box ( top, right, bottom, left )

Parameters
top: `number` Top. right: `number` Right. bottom: `number` Bottom. left: `number` Left.

Show:Public Protected Private

## Instance Methods

code »ceil ( ) ⇒ `!goog.math.Box`

Rounds the fields to the next larger integer values.

Returns
This box with ceil'd fields.

code »clone ( ) ⇒ `!goog.math.Box`

Creates a copy of the box with the same dimensions.

Returns
A clone of this Box.

code »contains ( other ) ⇒ `boolean`

Returns whether the box contains a coordinate or another box.

Parameters
other: `(goog.math.Coordinate|goog.math.Box)` A Coordinate or a Box.
Returns
Whether the box contains the coordinate or other box.

code »expand ( top, opt_right, opt_bottom, opt_left ) ⇒ `!goog.math.Box`

Expands box with the given margins.

Parameters
top: `(number|goog.math.Box)` Top margin or box with all margins. opt_right: `number=` Right margin. opt_bottom: `number=` Bottom margin. opt_left: `number=` Left margin.
Returns
A reference to this Box.

code »expandToInclude ( box )

Expand this box to include another box. NOTE(user): This is used in code that needs to be very fast, please don't add functionality to this function at the expense of speed (variable arguments, accepting multiple argument types, etc).

Parameters
box: `goog.math.Box` The box to include in this one.

code »floor ( ) ⇒ `!goog.math.Box`

Rounds the fields to the next smaller integer values.

Returns
This box with floored fields.

code »getHeight ( ) ⇒ `number`

Returns
height The height of this Box.

code »getWidth ( ) ⇒ `number`

Returns
width The width of this Box.

code »round ( ) ⇒ `!goog.math.Box`

Rounds the fields to nearest integer values.

Returns
This box with rounded fields.

code »scale ( sx, opt_sy ) ⇒ `!goog.math.Box`

Scales this coordinate by the given scale factors. The x and y dimension values are scaled by `sx` and `opt_sy` respectively. If `opt_sy` is not given, then `sx` is used for both x and y.

Parameters
sx: `number` The scale factor to use for the x dimension. opt_sy: `number=` The scale factor to use for the y dimension.
Returns
This box after scaling.

code »toString ( ) ⇒ `string`

Returns a nice string representing the box.

Returns
In the form (50t, 73r, 24b, 13l).

code »translate ( tx, opt_ty ) ⇒ `!goog.math.Box`

Translates this box by the given offsets. If a `goog.math.Coordinate` is given, then the left and right values are translated by the coordinate's x value and the top and bottom values are translated by the coordinate's y value. Otherwise, `tx` and `opt_ty` are used to translate the x and y dimension values.

Parameters
tx: `(number|goog.math.Coordinate)` The value to translate the x dimension values by or the the coordinate to translate this box by. opt_ty: `number=` The value to translate y dimension values by.
Returns
This box after translating.

## Instance Properties

code »bottom : `number`

Bottom

code »left : `number`

Left

code »right : `number`

Right

code »top : `number`

Top

## Static Functions

code »goog.math.Box.boundingBox ( var_args ) ⇒ `!goog.math.Box`

Creates a Box by bounding a collection of goog.math.Coordinate objects

Parameters
var_args: `...goog.math.Coordinate` Coordinates to be included inside the box.
Returns
A Box containing all the specified Coordinates.

code »goog.math.Box.contains ( box, other ) ⇒ `boolean`

Returns whether a box contains a coordinate or another box.

Parameters
box: `goog.math.Box` A Box. other: `(goog.math.Coordinate|goog.math.Box)` A Coordinate or a Box.
Returns
Whether the box contains the coordinate or other box.

code »goog.math.Box.distance ( box, coord ) ⇒ `number`

Returns the distance between a coordinate and the nearest corner/side of a box. Returns zero if the coordinate is inside the box.

Parameters
box: `goog.math.Box` A Box. coord: `goog.math.Coordinate` A Coordinate.
Returns
The distance between `coord` and the nearest corner/side of `box`, or zero if `coord` is inside `box`.

code »goog.math.Box.equals ( a, b ) ⇒ `boolean`

Compares boxes for equality.

Parameters
a: `goog.math.Box` A Box. b: `goog.math.Box` A Box.
Returns
True iff the boxes are equal, or if both are null.

code »goog.math.Box.intersects ( a, b ) ⇒ `boolean`

Returns whether two boxes intersect.

Parameters
a: `goog.math.Box` A Box. b: `goog.math.Box` A second Box.
Returns
Whether the boxes intersect.

code »goog.math.Box.intersectsWithPadding ( a, b, padding ) ⇒ `boolean`

Returns whether two boxes would intersect with additional padding.

Parameters
a: `goog.math.Box` A Box. b: `goog.math.Box` A second Box. padding: `number` The additional padding.
Returns
Whether the boxes intersect.

code »goog.math.Box.relativePositionX ( box, coord ) ⇒ `number`

Returns the relative x position of a coordinate compared to a box. Returns zero if the coordinate is inside the box.

Parameters
box: `goog.math.Box` A Box. coord: `goog.math.Coordinate` A Coordinate.
Returns
The x position of `coord` relative to the nearest side of `box`, or zero if `coord` is inside `box`.

code »goog.math.Box.relativePositionY ( box, coord ) ⇒ `number`

Returns the relative y position of a coordinate compared to a box. Returns zero if the coordinate is inside the box.

Parameters
box: `goog.math.Box` A Box. coord: `goog.math.Coordinate` A Coordinate.
Returns
The y position of `coord` relative to the nearest side of `box`, or zero if `coord` is inside `box`.