You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
935 B
JavaScript
40 lines
935 B
JavaScript
7 years ago
|
export default class Rect {
|
||
|
/**
|
||
|
* Class for representing rectangular regions.
|
||
|
* https://github.com/google/closure-library/blob/master/closure/goog/math/rect.js
|
||
|
* @param {number} x Left.
|
||
|
* @param {number} y Top.
|
||
|
* @param {number} w Width.
|
||
|
* @param {number} h Height.
|
||
|
* @param {number} id Identifier
|
||
|
* @constructor
|
||
|
*/
|
||
|
constructor(x, y, w, h, id) {
|
||
|
this.id = id;
|
||
|
|
||
|
/** @type {number} */
|
||
|
this.left = x;
|
||
|
|
||
|
/** @type {number} */
|
||
|
this.top = y;
|
||
|
|
||
|
/** @type {number} */
|
||
|
this.width = w;
|
||
|
|
||
|
/** @type {number} */
|
||
|
this.height = h;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns whether two rectangles intersect.
|
||
|
* @param {Rect} a A Rectangle.
|
||
|
* @param {Rect} b A Rectangle.
|
||
|
* @return {boolean} Whether a and b intersect.
|
||
|
*/
|
||
|
static intersects(a, b) {
|
||
|
return (
|
||
|
a.left < b.left + b.width && b.left < a.left + a.width &&
|
||
|
a.top < b.top + b.height && b.top < a.top + a.height);
|
||
|
}
|
||
|
}
|