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.

255 lines (254 loc) 6.25 kB
import { coordinate } from '../types/coordinate'; import { ICoordinate } from '../interfaces/ICoordinate'; export declare abstract class Coordinate implements ICoordinate { x: number; y: number; /** * * @param primary coordinate * @param secondary coordinate * @returns coordinate */ static add: (primary: coordinate, secondary: coordinate) => { x: number; y: number; }; /** * * @param coordinate coordinate * @param amount number * @returns coordinate */ static addAcross: (coordinate: coordinate, amount: number) => { x: number; y: number; }; /** * * @param primary coordinate * @param secondary coordinate * @returns coordinate */ static subtract: (primary: coordinate, secondary: coordinate) => { x: number; y: number; }; /** * * @param coordinate coordinate * @param amount number * @returns coordinate */ static subtractAcross: (coordinate: coordinate, amount: number) => { x: number; y: number; }; /** * * @param primary coordinate * @param secondary coordinate * @returns coordinate */ static multiply: (primary: coordinate, secondary: coordinate) => { x: number; y: number; }; /** * * @param coordinate coordinate * @param amount number * @returns coordinate */ static multiplyAcross: (coordinate: coordinate, amount: number) => { x: number; y: number; }; /** * * @param primary coordinate * @param secondary coordinate * @returns coordinate */ static divide: (primary: coordinate, secondary: coordinate) => { x: number; y: number; }; /** * * @param coordinate coordinate * @param amount number * @returns coordinate */ static divideAcross: (coordinate: coordinate, amount: number) => { x: number; y: number; }; /** * * @param primary coordinate * @param secondary coordinate * @returns boolean */ static isEqual: (primary: coordinate, secondary: coordinate) => boolean; /** * * @param primary coordinate * @param secondary coordinate * @returns coordinate { x: -1 | 0 | 1, y: -1 | 0 | 1 } */ static compare: (primary: coordinate, secondary: coordinate) => { x: number; y: number; }; /** * * @param primary coordinate * @param target coordinate * @returns number */ static radian: (primary: coordinate, target: coordinate) => number; /** * * @param radian * @returns (origin: coordinate, target: coordinate) => number */ static offsetRadians: (radian: number) => (origin: coordinate, target: coordinate) => number; /** * * @param primary coordinate * @param target coordinate * @returns number */ static degree: (primary: coordinate, target: coordinate) => number; /** * * @param radian * @returns (origin: coordinate, target: coordinate) => number */ static offsetDegrees: (degree: number) => (origin: coordinate, target: coordinate) => number; /** * @returns coordinate { x: 0, y: 0 } */ static get zero(): { x: number; y: number; }; /** * * @param primary coordinate * @param secondary coordinate * @returns coordinate */ protected static set: (primary: coordinate, secondary: coordinate) => coordinate; /** * * @param primary * @param secondary * @returns number */ static distance: (primary: coordinate, secondary: coordinate) => number; /** * * @param coordinate coordinate * @returns this */ set: (coordinate: coordinate) => this; /** * * @param coordinate coordinate * @returns this */ add: (coordinate: coordinate) => this; /** * * @param amount number * @returns this */ addAcross: (amount: number) => this; /** * * @param coordinate coordinate * @returns this */ subtract: (coordinate: coordinate) => this; /** * * @param amount number * @returns this */ subtractAcross: (amount: number) => this; /** * * @param coordinate coordinate * @returns this */ multiply: (coordinate: coordinate) => this; /** * * @param amount number * @returns this */ multiplyAcross: (amount: number) => this; /** * * @param coordinate coordinate * @returns this */ divide: (coordinate: coordinate) => this; /** * * @param amount number * @returns this */ divideAcross: (amount: number) => this; /** * * @param target coordinate * @returns number */ radians: (target: coordinate) => number; /** * * @param radian * @returns (target: coordinate) => number */ offsetRadians: (radian: number) => (target: coordinate) => number; /** * * @param target coordinate * @returns number */ degree: (target: coordinate) => number; /** * * @param degree * @returns (target: coordinate) => number */ offsetDegrees: (degree: number) => (target: coordinate) => number; /** * * @param coordinate coordinate * @returns boolean */ isEqual: (coordinate: coordinate) => boolean; /** * * @param coordinate coordinate * @returns number */ compare: (coordinate: coordinate) => { x: number; y: number; }; /** * * @param coordinate * @returns number */ distance: (coordinate: coordinate) => number; /** * * @param coordinate coordinate | undefined */ constructor(coordinate?: coordinate); }