summaryrefslogtreecommitdiff
path: root/packages/web/src/math/Rect.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/web/src/math/Rect.ts')
-rw-r--r--packages/web/src/math/Rect.ts104
1 files changed, 0 insertions, 104 deletions
diff --git a/packages/web/src/math/Rect.ts b/packages/web/src/math/Rect.ts
deleted file mode 100644
index f52a2f7..0000000
--- a/packages/web/src/math/Rect.ts
+++ /dev/null
@@ -1,104 +0,0 @@
-import Coord from "./Coord";
-
-/** A rectangle on a grid whose origin is in the top left. */
-export default class Rect {
- private readonly _topLeft: Coord;
- private readonly _width: number;
- private readonly _height: number;
-
- constructor(
- topLeftX: number,
- topLeftY: number,
- width: number,
- height: number,
- ) {
- this._topLeft = new Coord(topLeftX, topLeftY);
- this._width = width;
- this._height = height;
- }
-
- /** Width of this rectangle. */
- get width(): number {
- return this._width;
- }
-
- /** Height of this rectangle. */
- get height(): number {
- return this._height;
- }
-
- /** Coord of the top-left point of this rectangle. */
- get topLeft(): Coord {
- return this._topLeft;
- }
-
- /** Coord of the bottom-right point of this rectangle. */
- get bottomRight(): Coord {
- return new Coord(
- this._topLeft.x + this._width,
- this._topLeft.y + this._height,
- );
- }
-
- get center(): Coord {
- return new Coord(
- this.topLeft.x + (this.bottomRight.x - this.topLeft.x) / 2,
- this.topLeft.y + (this.bottomRight.y - this.topLeft.y) / 2,
- );
- }
-
- /** Determine if this rectangle contains the point at `coord`. */
- containsCoord(coord: Coord): boolean {
- return (
- this.topLeft.x <= coord.x &&
- coord.x <= this.bottomRight.x &&
- this.topLeft.y <= coord.y &&
- coord.y <= this.bottomRight.y
- );
- }
-
- verticallyContainsCoord(coord: Coord): boolean {
- return this.topLeft.y <= coord.y && coord.y <= this.bottomRight.y;
- }
-
- horizontallyContainsCoord(coord: Coord): boolean {
- return this.topLeft.x <= coord.x && coord.x <= this.bottomRight.x;
- }
-
- extend(other: Rect): Rect {
- const topLeftX = Math.min(
- this.topLeft.x,
- this.bottomRight.x,
- other.topLeft.x,
- other.bottomRight.x,
- );
-
- const topLeftY = Math.min(
- this.topLeft.y,
- this.bottomRight.y,
- other.topLeft.y,
- other.bottomRight.y,
- );
-
- const bottomRightX = Math.max(
- this.topLeft.x,
- this.bottomRight.x,
- other.topLeft.x,
- other.bottomRight.x,
- );
-
- const bottomRightY = Math.max(
- this.topLeft.y,
- this.bottomRight.y,
- other.topLeft.y,
- other.bottomRight.y,
- );
-
- return new Rect(
- topLeftX,
- topLeftY,
- bottomRightX - topLeftX,
- bottomRightY - topLeftY,
- );
- }
-}