-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathindex.d.ts
169 lines (159 loc) · 4.53 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
// Type definitions for nudged version 2.x
// Project: nudged
export function estimate(params: EstimatorParams): Transform;
export namespace estimators {
export function I(domain?: any, range?: any): Transform;
export function L(
domain: Point[],
range: Point[],
angle: number
): Transform;
export function X(domain: Point[], range: Point[]): Transform;
export function Y(domain: Point[], range: Point[]): Transform;
export function T(domain: Point[], range: Point[]): Transform;
export function S(
domain: Point[],
range: Point[],
center: Point
): Transform;
export function R(
domain: Point[],
range: Point[],
center: Point
): Transform;
export function TS(domain: Point[], range: Point[]): Transform;
export function TR(domain: Point[], range: Point[]): Transform;
export function SR(
domain: Point[],
range: Point[],
center: Point
): Transform;
export function TSR(domain: Point[], range: Point[]): Transform;
}
export namespace point {
export function almostEqual(
p: Point,
q: Point,
tolerance?: number
): boolean;
export function create(x: number, y: number): Point;
export function distance(p: Point, q: Point): number;
export function equal(p: Point, q: Point): boolean;
export function fromArray(arrp: [number, number]): Point;
export function offset(p: Point, dx: number, dy: number): Point;
export function polarOffset(
p: Point,
distance: number,
angle: number
): Point;
export function toArray(p: Point): [number, number];
export function transform(p: Point, tr: Transform): Point;
export function transformMany(points: Point[], tr: Transform): Point[];
export function validate(p: any): boolean;
}
export namespace transform {
export const SINGULAR: Transform;
export const IDENTITY: Transform;
export const ROT45: Transform;
export const ROT90: Transform;
export const ROT180: Transform;
export const ROT270: Transform;
export const HALF: Transform;
export const X2: Transform;
export function almostEqual(
tr: Transform,
ts: Transform,
tolerance?: number
): boolean;
export function compose(tr: Transform, ts: Transform): Transform;
export function create(
a: number,
b: number,
x: number,
y: number
): Transform;
export function equal(tr: Transform, ts: Transform): boolean;
export function fromArray(
arrtr: [number, number, number, number]
): Transform;
export function fromPolar(
center: Point,
scale: number,
rotation: number
): Transform;
export function fromRotation(center: Point, radians: number): Transform;
export function fromScale(center: Point, multiplier: number): Transform;
export function fromString(str: string): Transform;
export function fromTranslation(p: Point): Transform;
export function getRotation(tr: Transform): number;
export function getScale(tr: Transform): number;
export function getTranslation(tr: Transform): Point;
export { compose as multiply };
export function inverse(tr: Transform): Transform;
export function rotateBy(
tr: Transform,
center: Point,
radians: number
): Transform;
export function rotateTo(
tr: Transform,
center: Point,
radians: number
): Transform;
export function scaleBy(
tr: Transform,
center: Point,
multiplier: number
): Transform;
export function scaleTo(
tr: Transform,
center: Point,
scale: number
): Transform;
export function toArray(tr: Transform): [number, number, number, number];
export function toMatrix(tr: Transform): Matrix;
export function toString(tr: Transform): string;
export function translateBy(tr: Transform, vec: Vector): Transform;
export function translateTo(tr: Transform, point: Point): Transform;
export function validate(tr: any): boolean;
}
export namespace analysis {
export function mse(tr: Transform, domain: Point[], range: Point[]): number;
export function residuals(
tr: Transform,
domain: Point[],
range: Point[]
): number[];
export function rss(tr: Transform, domain: Point[], range: Point[]): number;
}
export const tolerance: number;
export const version: string;
export interface EstimatorParams {
estimator: string;
domain: Point[];
range: Point[];
center?: Point;
angle?: number;
}
export interface Transform {
a: number;
b: number;
x: number;
y: number;
}
export interface Point {
x: number;
y: number;
}
export interface Matrix {
a: number;
b: number;
c: number;
d: number;
e: number;
f: number;
}
export interface Vector {
x: number;
y: number;
}