nudged
nudged copied to clipboard
TypeScript type declarations
Simple standalone type declarations.
Fixes #29
Wish I saw this before I made my own, oops :D Not sure if it helps...
// Type definitions for nudged (https://github.com/axelpale/nudged)
// API docs: https://github.com/axelpale/nudged/blob/master/doc/API.md
declare module "nudged" {
export interface Point {
x: number;
y: number;
}
export interface Transform {
a: number;
b: number;
x: number;
y: number;
}
export function estimate(parameters: EstimateParameters): Transform;
export namespace estimators {
function I(): Transform;
function L(domain: Point[], range: Point[], angle: number): Transform;
function X(domain: Point[], range: Point[]): Transform;
function Y(domain: Point[], range: Point[]): Transform;
function T(domain: Point[], range: Point[]): Transform;
function S(domain: Point[], range: Point[], center: Point): Transform;
function R(domain: Point[], range: Point[], center: Point): Transform;
function TS(domain: Point[], range: Point[]): Transform;
function TR(domain: Point[], range: Point[]): Transform;
function SR(domain: Point[], range: Point[], center: Point): Transform;
function TSR(domain: Point[], range: Point[]): Transform;
}
export namespace point {
function almostEqual(p: Point, q: Point, tolerance?: number): boolean;
function create(x: number, y: number): Point;
function distance(p: Point, q: Point): number;
function equal(p: Point, q: Point): boolean;
function fromArray(arrp: [number, number]): Point;
function offset(p: Point, dx: number, dy: number): Point;
function polarOffset(p: Point, distance: number, angle: number): Point;
function toArray(p: Point): [number, number];
function transform(p: Point, tr: Transform): Point;
function transformMany(points: Point[], tr: Transform): Point[];
function validate(p: Point): boolean;
}
export namespace transform {
const SINGULAR: Transform;
const IDENTITY: Transform;
const ROT45: Transform;
const ROT90: Transform;
const ROT180: Transform;
const ROT270: Transform;
const HALF: Transform;
const X2: Transform;
function almostEqual(
tr: Transform,
ts: Transform,
tolerance?: number,
): boolean;
function compose(tr: Transform, ts: Transform): Transform;
function create(a: number, b: number, x: number, y: number): Transform;
function equal(tr: Transform, ts: Transform): boolean;
function fromArray(arrtr: [number, number, number, number]): Transform;
function fromPolar(
center: Point,
scale: number,
rotation: number,
): Transform;
function fromRotation(center: Point, radians: number): Transform;
function fromScale(center: Point, multiplier: number): Transform;
function fromString(string: string): Transform;
function fromTranslation(p: Point): Transform;
function getRotation(tr: Transform): number;
function getScale(tr: Transform): number;
function getTranslation(tr: Transform): Point;
function multiply(tr: Transform, ts: Transform): Transform;
function inverse(tr: Transform): Transform;
function rotateBy(tr: Transform, center: Point, radians: number): Transform;
function rotateTo(tr: Transform, center: Point, radians: number): Transform;
function scaleBy(
tr: Transform,
center: Point,
multiplier: number,
): Transform;
function scaleTo(tr: Transform, center: Point, scale: number): Transform;
function toArray(tr: Transform): [number, number, number, number];
function toMatrix(tr: Transform): {
a: number;
b: number;
c: number;
d: number;
e: number;
f: number;
};
function toString(tr: TrandomainTransform, point: Point): Transform;
function validate(tr: Transform): boolean;
}
export namespace analysis {
function mse(tr: Transform, domain: Point[], range: Point[]): number;
function residuals(
tr: Transform,
domain: Point[],
range: Point[],
): number[];
function rss(tr: Transform, domain: Point[], range: Point[]): number;
}
export const tolerance: number;
export const version: string;
}