UNPKG

@js-basics/vector

Version:

A 3D Vector lib including arithmetic operator overloading (+ - * / % **).

118 lines (117 loc) 2.75 kB
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 {};