@js-basics/vector
Version:
A 3D Vector lib including arithmetic operator overloading (+ - * / % **).
118 lines (117 loc) • 2.75 kB
TypeScript
export function calc(alg: any): any;
export class Vector extends AVector {
/**
* @param {() => number} alg
* @returns {Vector & number}
*/
calc(alg: () => number): Vector & number;
clone(): Vector;
}
export class Victor extends AVector {
/**
* @returns {Vector & number}
*/
toVector(): Vector & number;
clone(): this;
}
export function vector(x: number | (() => number), y?: number, z?: number): Vector & number;
export function victor(x: number | (() => number), y?: number, z?: number): Victor & number;
export const ZERO: Victor & number;
export const FORWARD: Victor & number;
export const BACK: Victor & number;
export const LEFT: Victor & number;
export const RIGHT: Victor & number;
export const UP: Victor & number;
export const BOTTOM: Victor & number;
export const ONE: Victor & number;
declare class AVector {
constructor(...args: any[]);
valueOf(): void;
/**
* @returns {this}
*/
normalize(): this;
/**
* @returns {this}
*/
norm(): this;
dot(v: any): number;
/**
* @param {AVector} v
* @returns {this}
*/
cross(v: AVector): this;
/**
* @param {AVector} v
* @returns {this}
*/
crossNormalize(v: AVector): this;
/**
* @param {AVector} v
* @returns {this}
*/
cn(v: AVector): this;
toAngles(): {
theta: number;
phi: number;
};
/**
* @param {AVector} v
*/
angleTo(v: AVector): number;
multiply(quat: any): any;
multiplyMat3(other: any): any;
multiplyVec3({ x, y, z }: {
x: any;
y: any;
z: any;
}): any;
/**
* @param {AVector} v
*/
distance(v: AVector): number;
/**
* @param {AVector} v
*/
dist(v: AVector): number;
/**
* @returns {[number, number, number]}
*/
toArray(): [number, number, number];
swizzle(target: any): any;
calc(arg: any): void;
clone(): void;
equals(v: any): boolean;
toJSON(): {
x: any;
y: any;
z: any;
};
toString(): string;
toCSSVars(name: any, target: any): {};
set lengthSq(_: number);
get lengthSq(): number;
set length(_: number);
get length(): number;
set lensq(_: number);
get lensq(): number;
set len(_: number);
get len(): number;
set x(_: any);
get x(): any;
set y(_: any);
get y(): any;
set z(_: any);
get z(): any;
set xy(_: IPoint);
get xy(): IPoint;
set xz(_: IPoint);
get xz(): IPoint;
set yz(_: IPoint);
get yz(): IPoint;
[Symbol.iterator](): ArrayIterator<any>;
[AXES]: any[];
}
import { IPoint } from './point';
declare const AXES: unique symbol;
export {};