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
TypeScript
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);
}