UNPKG

ts-useful

Version:

Functions for animation, color transitions, ecliptic, bezier, decasteljau, curves, three dimensional curves, smooth scrolling, random range, randomItem, mobius index, vectors, physics vectors, and easing.

79 lines (78 loc) 1.86 kB
import { coordinate } from '../types'; import { IVector } from '../interfaces/IVector'; import { Coordinate } from './coordinate'; export declare abstract class Vect extends Coordinate implements IVector { private static distanceSquare; private static hypot; /** * * @param vector IVector * @returns number */ static hypotenuse(vector: IVector): number; /** * * @param main IVector * @param target IVector * @param force number * @returns IVector */ static addForce: (main: IVector, target: IVector, force: number) => IVector; /** * * @param main IVector * @param target IVector * @param force number * @returns IVector */ static subForce: (main: IVector, target: IVector, force: number) => IVector; /** * * @param target Type of IVector */ static normalize<T extends IVector>(target: T): void; /** * * @param vector IVector * @returns number */ static magnitude(vector: IVector): number; /** * * @param vector IVector * @param force number * @returns this */ addForce: (vector: IVector, force: number) => this; /** * * @param vector IVector * @param force number * @returns this */ subForce: (vector: IVector, force: number) => this; /** * Normalize the vector */ normalize: () => void; /** * @returns number */ get abs(): { x: number; y: number; }; /** * @returns number */ get hypotenuse(): number; /** * @returns number */ get magnitude(): number; /** * * @param coordinate coordinate optional */ constructor(coordinate?: coordinate); }