diff --git a/lib/src/models/rectangle.ts b/lib/src/models/rectangle.ts index 8151356..dfe94d1 100644 --- a/lib/src/models/rectangle.ts +++ b/lib/src/models/rectangle.ts @@ -58,6 +58,27 @@ export class Rectangle { throw new Error("Not implemented!"); } + scale(scaleX: number, scaleY: number, fromCenter = false): Rectangle { + if (fromCenter) { + const centerX = this.x + this.width / 2; + const centerY = this.y + this.height / 2; + + const newWidth = this.width * scaleX; + const newHeight = this.height * scaleY; + + const newX = centerX - newWidth / 2; + const newY = centerY - newHeight / 2; + + return new Rectangle(newX, newY, newWidth, newHeight); + } else { + return new Rectangle(this.x, this.y, this.width * scaleX, this.height * scaleY); + } + } + + translate(x: number, y: number): Rectangle { + return new Rectangle(this.x + x, this.y + y, this.width, this.height); + } + static fromPoints(left: number, top: number, right: number, bottom: number) { return new Rectangle(left, top, right - left, bottom - top); } diff --git a/lib/src/package.json b/lib/src/package.json index 04402cc..7ec9cfb 100644 --- a/lib/src/package.json +++ b/lib/src/package.json @@ -1,6 +1,6 @@ { "name": "@gxc-solutions/math", - "version": "0.0.3", + "version": "0.0.4", "main": "index.js", "author": "GXC Solutions", "publishConfig": {