1.0.2 • Published 7 months ago

numeric-ninja v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

numeric-ninja

Table of content

Vector

export declare class Vector2 {
  x: number;
  y: number;

  constructor(x: number = 0, y: number = 0);

  set(x: number, y: number): void;
  setVector2(vector: Vector2): void;

  add(value: Vector2): Vector2;
  add(value: number): Vector2;

  sub(value: Vector2): Vector2;
  sub(value: number): Vector2;

  mul(value: Vector2): Vector2;
  mul(value: number): Vector2;

  div(value: Vector2): Vector2;
  div(value: number): Vector2;

  isEqual(vector: Vector2): boolean;
  getMagnitude(): number;
  getSqrMagnitude(): number;
  getNormalized(): Vector2;
  normalize(): void;

  static lerp(v1: Vector2, v2: Vector2, t: number): Vector2;
  static lerpUnclamped(v1: Vector2, v2: Vector2, t: number): Vector2;
  static dotProduct(v1: Vector2, v2: Vector2): number;
  static reflect(v1: Vector2, v2: Vector2): Vector2;
  static angle(from: Vector2, to: Vector2): number;
  static distance(v1: Vector2, v2: Vector2): number;

  static zeroVector(): Vector2;
  static oneVector(): Vector2;
  static upVector(): Vector2;
  static downVector(): Vector2;
  static leftVector(): Vector2;
  static rightVector(): Vector2;

  toString(): string;
  clone(): Vector2;
}
export declare class Vector3 {
  x: number;
  y: number;
  z: number;

  constructor(x: number = 0, y: number = 0, z: number = 0);

  set(x: number, y: number, z: number): void;
  setVector3(vector: Vector3): void;

  add(value: Vector3): Vector3;
  add(value: number): Vector3;

  sub(value: Vector3): Vector3;
  sub(value: number): Vector3;

  mul(value: Vector3): Vector3;
  mul(value: number): Vector3;

  div(value: Vector3): Vector3;
  div(value: number): Vector3;

  isEqual(vector: Vector3): boolean;
  getMagnitude(): number;
  getSqrMagnitude(): number;
  getNormalized(): Vector3;
  normalize(): void;

  static lerp(v1: Vector3, v2: Vector3, t: number): Vector3;
  static lerpUnclamped(v1: Vector3, v2: Vector3, t: number): Vector3;
  static dotProduct(v1: Vector3, v2: Vector3): number;
  static reflect(v1: Vector3, v2: Vector3): Vector3;
  static angle(from: Vector3, to: Vector3): number;
  static distance(v1: Vector3, v2: Vector3): number;

  static zeroVector(): Vector3;
  static oneVector(): Vector3;
  static upVector(): Vector3;
  static downVector(): Vector3;
  static leftVector(): Vector3;
  static rightVector(): Vector3;

  toString(): string;
  clone(): Vector3;
}

public

Components of the vector

Vector2

x: number;
y: number;

Vector3

x: number;
y: number;
z: number;

set and setVector

Sets values to the current class

Vector2

set(x: number, y: number): void;
setVector2(vector: Vector2): void;

Vector3

set(x: number, y: number, z: number): void;
setVector3(vector: Vector3): void;

add, sub, mul and div

All arithmetic operations return a new vector instance

Vector2

// addition
add(value: Vector2): Vector2;
add(value: number): Vector2;

// subtract
sub(value: Vector2): Vector2;
sub(value: number): Vector2;

// multiplication
mul(value: Vector2): Vector2;
mul(value: number): Vector2;

// division
div(value: Vector2): Vector2;
div(value: number): Vector2;

Vector3

// addition
add(value: Vector3): Vector3;
add(value: number): Vector3;

// subtract
sub(value: Vector3): Vector3;
sub(value: number): Vector3;

// multiplication
mul(value: Vector3): Vector3;
mul(value: number): Vector3;

// division
div(value: Vector3): Vector3;
div(value: number): Vector3;

isEqual

Returns true if the given vector is equal to this vector.

Vector2

isEqual(vector: Vector2): boolean;

Vector3

isEqual(vector: Vector3): boolean;

getMagnitude()

Returns the length of this vector

Vector2 and Vector3

getMagnitude(): number;

getSqrMagnitude()

Returns the squared length of this vector

Vector2 and Vector3

  getSqrMagnitude(): number;

getNormalized()

Returns this vector with a magnitude of 1

Vector2

  getNormalized(): Vector2;

Vector3

  getNormalized(): Vector3;

normalize()

Makes this vector have a magnitude of 1

Vector2 and Vector3

  normalize(): void;

toString()

Returns a vector in string representation

Vector2

  toString(): string; // `x: 0, y: 0`

Vector3

  toString(): string; // `x: 0, y: 0, z: 0`

clone()

Returns a copy of the current vector

Vector2

  clone(): Vector2;

Vector3

  clone(): Vector3;

Static

lerp

Linearly interpolates between vectors v1 and v2 by t.

Vector2

lerp(v1: Vector2, v2: Vector2, t: number): Vector2;

Vector3

lerp(v1: Vector3, v2: Vector3, t: number): Vector3;

lerpUnclamped

Linearly interpolates between vectors v1 and v2 by t.

Vector2

lerpUnclamped(v1: Vector2, v2: Vector2, t: number): Vector2;

Vector3

lerpUnclamped(v1: Vector3, v2: Vector3, t: number): Vector3;

dotProduct

Dot Product of two vectors.

Vector2

dotProduct(v1: Vector2, v2: Vector2): number;

Vector3

dotProduct(v1: Vector3, v2: Vector3): number;

reflect

Reflects a vector off the vector defined by a normal.

Vector2

reflect(v1: Vector2, v2: Vector2): Vector2;

Vector3

reflect(v1: Vector3, v2: Vector3): Vector3;

angle

Gets the unsigned angle in degrees between from and to.

Vector2

angle(from: Vector2, to: Vector2): number;

Vector3

angle(from: Vector3, to: Vector3): number;

distance

Returns the distance between v1 and v2.

Vector2

distance(v1: Vector2, v2: Vector2): number;

Vector3

distance(v1: Vector3, v2: Vector3): number;

Vector2 constants

zeroVector(): Vector2; // new Vector2(0, 0)
oneVector(): Vector2; // new Vector2(1, 1);
upVector(): Vector2; // new Vector2(0, 1);
downVector(): Vector2; // new Vector2(0, -1);
leftVector(): Vector2; // new Vector2(-1, 0);
rightVector(): Vector2; // new Vector2(1, 0);

Vector3 constants

zeroVector(): Vector3; // new Vector3(0, 0, 0);
oneVector(): Vector3; // new Vector3(1, 1, 1);
upVector(): Vector3; // new Vector3(0, 1, 0);
downVector(): Vector3; // new Vector3(0, -1, 0);
leftVector(): Vector3; // new Vector3(-1, 0, 0);
rightVector(): Vector3; // new Vector3(1, 0, 0);
forwardVector(): Vector3; // new Vector3(0, 0, 1);
backVector(): Vector3; // new Vector3(0, 0, -1);

Utils

export declare class Utils {
  static degToRad: number;
  static radToDeg: number;
  static halfFullAngleInDeg: number; // 180
  static fullAngleInDeg: number; // 360

  static clamp(value: number, minValue: number, maxValue: number): number;
  static clamp01(value: number): number;
  static lerp(a: number, b: number, t: number): number;
  static lerpUnclamped(a: number, b: number, t: number): number;
  static inverseLerp(a: number, b: number, value: number): number;
  static lerpAngle(a: number, b: number, t: number): number;
  static repeat(value: number, length: number): number;
  static pingPong(value: number, length: number): number;
  static deltaAngle(current: number, target: number): number;
  static isEqualNum(x: number, y: number): boolean;
  static getRandomFloatInRange01(minInclusive: number, maxExclusive: number): number;
  static getRandomIntInRange(minInclusive: number, maxExclusive: number): number;
  static isNumber(value: number): boolean;
  static isNumeric(value: number | string): boolean;
}
1.0.2

7 months ago

1.0.1

7 months ago

1.0.0

7 months ago