Update constructor signatures
This commit is contained in:
parent
2870230eff
commit
06d9da662d
|
|
@ -20,7 +20,8 @@
|
||||||
"predeploy": "npm run dist",
|
"predeploy": "npm run dist",
|
||||||
"lint": "eslint src --ext .ts",
|
"lint": "eslint src --ext .ts",
|
||||||
"lint:fix": "eslint src --ext .ts --fix",
|
"lint:fix": "eslint src --ext .ts --fix",
|
||||||
"format": "prettier --write ./src/**/*.ts"
|
"format": "prettier --write ./src/**/*.ts",
|
||||||
|
"test": "jest"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@jest/globals": "^29.7.0",
|
"@jest/globals": "^29.7.0",
|
||||||
|
|
|
||||||
|
|
@ -120,11 +120,11 @@ describe("Vector2D", () => {
|
||||||
expect(result.getY()).toBeCloseTo(1);
|
expect(result.getY()).toBeCloseTo(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('lerp interpolates correctly', () => {
|
test("lerp interpolates correctly", () => {
|
||||||
const vector1 = new Vector2D(0, 0);
|
const vector1 = new Vector2D(0, 0);
|
||||||
const vector2 = new Vector2D(10, 10);
|
const vector2 = new Vector2D(10, 10);
|
||||||
const result = vector1.lerp(vector2, 0.5);
|
const result = vector1.lerp(vector2, 0.5);
|
||||||
expect(result.getX()).toBe(5);
|
expect(result.getX()).toBe(5);
|
||||||
expect(result.getY()).toBe(5);
|
expect(result.getY()).toBe(5);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -2,14 +2,32 @@ export class Vector2D {
|
||||||
private x: number;
|
private x: number;
|
||||||
private y: number;
|
private y: number;
|
||||||
|
|
||||||
|
constructor();
|
||||||
|
/**
|
||||||
|
* Creates a new vector with coordinates of provided Vector2D.
|
||||||
|
* @param {Vector2D} vec - The x-coordinate.
|
||||||
|
*/
|
||||||
|
constructor(vec: Vector2D);
|
||||||
/**
|
/**
|
||||||
* Creates a new vector with coordinates (x, y).
|
* Creates a new vector with coordinates (x, y).
|
||||||
* @param {number} x - The x-coordinate.
|
* @param {number} a - The x-coordinate.
|
||||||
* @param {number} y - The y-coordinate.
|
* @param {number} b - The y-coordinate.
|
||||||
*/
|
*/
|
||||||
constructor(x: number = 0, y: number = 0) {
|
constructor(a: number, b: number);
|
||||||
this.x = x;
|
|
||||||
this.y = y;
|
constructor(a?: number | Vector2D, b?: number) {
|
||||||
|
if (a === undefined && b === undefined) {
|
||||||
|
this.x = this.y = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (a instanceof Vector2D) {
|
||||||
|
this.x = a.x ?? 0;
|
||||||
|
this.y = a.y ?? 0;
|
||||||
|
} else {
|
||||||
|
this.x = a ?? 0;
|
||||||
|
this.y = b ?? 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -130,7 +148,7 @@ export class Vector2D {
|
||||||
* @returns {Vector2D} The cloned vector.
|
* @returns {Vector2D} The cloned vector.
|
||||||
*/
|
*/
|
||||||
clone(): Vector2D {
|
clone(): Vector2D {
|
||||||
return new Vector2D(this.x, this.y);
|
return new Vector2D(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue