Skip to content

Commit

Permalink
feat: make vector functions more flexible
Browse files Browse the repository at this point in the history
  • Loading branch information
PeenScreeker committed Sep 13, 2024
1 parent 91e72db commit 3028525
Showing 1 changed file with 3 additions and 11 deletions.
14 changes: 3 additions & 11 deletions scripts/util/math.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,18 @@ export function magnitude(vec: vec2 | vec3): number {
return Math.sqrt(sumOfSquares(vec));
}

export function magnitude2D(vec: vec2): number {
export function magnitude2D(vec: vec2 | vec3): number {
return Math.sqrt(sumOfSquares2D(vec));
}

export function magnitude3D(vec: vec3): number {
return Math.sqrt(sumOfSquares3D(vec));
}

// Note: Math.hypot performs additional bounds checking on V8 which which makes it considerably
// slower than below implementations.
export function sumOfSquares2D(vec: vec2): number {
export function sumOfSquares2D(vec: vec2 | vec3): number {
return vec.x ** 2 + vec.y ** 2;
}

export function sumOfSquares3D(vec: vec3): number {
return vec.x ** 2 + vec.y ** 2 + vec.z ** 2;
}

export function sumOfSquares(vec: vec2 | vec3): number {
return 'z' in vec ? vec.x ** 2 + vec.y ** 2 + vec.z ** 2 : vec.x ** 2 + vec.y ** 2;
return 'z' in vec ? vec.x ** 2 + vec.y ** 2 + vec.z ** 2 : sumOfSquares2D(vec);
}

/**
Expand Down

0 comments on commit 3028525

Please sign in to comment.