pts 0.10.11 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{pts.d.ts → index.d.ts} +1245 -1207
- package/dist/index.js +6825 -6660
- package/dist/index.mjs +6785 -0
- package/package.json +12 -33
- package/tsup.browser.js +21 -0
- package/tsup.min.js +23 -0
- package/tsup.module.js +15 -0
- package/dist/es2015/Canvas.js +0 -684
- package/dist/es2015/Canvas.js.map +0 -1
- package/dist/es2015/Color.js +0 -337
- package/dist/es2015/Color.js.map +0 -1
- package/dist/es2015/Create.js +0 -275
- package/dist/es2015/Create.js.map +0 -1
- package/dist/es2015/Dom.js +0 -448
- package/dist/es2015/Dom.js.map +0 -1
- package/dist/es2015/Form.js +0 -80
- package/dist/es2015/Form.js.map +0 -1
- package/dist/es2015/Image.js +0 -220
- package/dist/es2015/Image.js.map +0 -1
- package/dist/es2015/LinearAlgebra.js +0 -286
- package/dist/es2015/LinearAlgebra.js.map +0 -1
- package/dist/es2015/Num.js +0 -477
- package/dist/es2015/Num.js.map +0 -1
- package/dist/es2015/Op.js +0 -978
- package/dist/es2015/Op.js.map +0 -1
- package/dist/es2015/Physics.js +0 -383
- package/dist/es2015/Physics.js.map +0 -1
- package/dist/es2015/Play.js +0 -339
- package/dist/es2015/Play.js.map +0 -1
- package/dist/es2015/Pt.js +0 -463
- package/dist/es2015/Pt.js.map +0 -1
- package/dist/es2015/Space.js +0 -331
- package/dist/es2015/Space.js.map +0 -1
- package/dist/es2015/Svg.js +0 -367
- package/dist/es2015/Svg.js.map +0 -1
- package/dist/es2015/Types.js +0 -3
- package/dist/es2015/Types.js.map +0 -1
- package/dist/es2015/Typography.js +0 -40
- package/dist/es2015/Typography.js.map +0 -1
- package/dist/es2015/UI.js +0 -273
- package/dist/es2015/UI.js.map +0 -1
- package/dist/es2015/Util.js +0 -200
- package/dist/es2015/Util.js.map +0 -1
- package/dist/es2015/_lib.js +0 -45
- package/dist/es2015/_lib.js.map +0 -1
- package/dist/es2015/_module.js +0 -18
- package/dist/es2015/_module.js.map +0 -1
- package/dist/es2015/uheprng.js +0 -69
- package/dist/es2015/uheprng.js.map +0 -1
- package/dist/es5.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/pts.module.js.map +0 -1
package/dist/es2015/Image.js
DELETED
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import { CanvasForm } from "./Canvas";
|
|
11
|
-
import { Pt } from "./Pt";
|
|
12
|
-
import { Mat } from "./LinearAlgebra";
|
|
13
|
-
export class Img {
|
|
14
|
-
constructor(editable = false, space, crossOrigin) {
|
|
15
|
-
this._scale = 1;
|
|
16
|
-
this._loaded = false;
|
|
17
|
-
this._editable = editable;
|
|
18
|
-
this._space = space;
|
|
19
|
-
this._scale = this._space ? this._space.pixelScale : 1;
|
|
20
|
-
this._img = new Image();
|
|
21
|
-
if (crossOrigin)
|
|
22
|
-
this._img.crossOrigin = "Anonymous";
|
|
23
|
-
}
|
|
24
|
-
static load(src, editable = false, space, ready) {
|
|
25
|
-
const img = new Img(editable, space);
|
|
26
|
-
img.load(src).then(res => {
|
|
27
|
-
if (ready)
|
|
28
|
-
ready(res);
|
|
29
|
-
});
|
|
30
|
-
return img;
|
|
31
|
-
}
|
|
32
|
-
static loadAsync(src, editable = false, space) {
|
|
33
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
-
const img = yield new Img(editable, space).load(src);
|
|
35
|
-
return img;
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
static loadPattern(src, space, repeat = 'repeat', editable = false) {
|
|
39
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
-
const img = yield Img.loadAsync(src, editable, space);
|
|
41
|
-
return img.pattern(repeat);
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
static blank(size, space, scale) {
|
|
45
|
-
let img = new Img(true, space);
|
|
46
|
-
const s = scale ? scale : space.pixelScale;
|
|
47
|
-
img.initCanvas(size[0], size[1], s);
|
|
48
|
-
return img;
|
|
49
|
-
}
|
|
50
|
-
load(src) {
|
|
51
|
-
return new Promise((resolve, reject) => {
|
|
52
|
-
if (this._editable && !document) {
|
|
53
|
-
reject("Cannot create html canvas element. document not found.");
|
|
54
|
-
}
|
|
55
|
-
this._img.src = src;
|
|
56
|
-
this._img.onload = () => {
|
|
57
|
-
if (this._editable) {
|
|
58
|
-
if (!this._cv)
|
|
59
|
-
this._cv = document.createElement("canvas");
|
|
60
|
-
this._drawToScale(this._scale, this._img);
|
|
61
|
-
this._data = this._ctx.getImageData(0, 0, this._cv.width, this._cv.height);
|
|
62
|
-
}
|
|
63
|
-
this._loaded = true;
|
|
64
|
-
resolve(this);
|
|
65
|
-
};
|
|
66
|
-
this._img.onerror = (evt) => {
|
|
67
|
-
reject(evt);
|
|
68
|
-
};
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
_drawToScale(canvasScale, img) {
|
|
72
|
-
const nw = img.width;
|
|
73
|
-
const nh = img.height;
|
|
74
|
-
this.initCanvas(nw, nh, canvasScale);
|
|
75
|
-
if (img)
|
|
76
|
-
this._ctx.drawImage(img, 0, 0, nw, nh, 0, 0, this._cv.width, this._cv.height);
|
|
77
|
-
}
|
|
78
|
-
initCanvas(width, height, canvasScale = 1) {
|
|
79
|
-
if (!this._editable) {
|
|
80
|
-
console.error('Cannot initiate canvas because this Img is not set to be editable');
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
if (!this._cv)
|
|
84
|
-
this._cv = document.createElement("canvas");
|
|
85
|
-
const cms = (typeof canvasScale === 'number') ? [canvasScale, canvasScale] : canvasScale;
|
|
86
|
-
this._cv.width = width * cms[0];
|
|
87
|
-
this._cv.height = height * cms[1];
|
|
88
|
-
this._ctx = this._cv.getContext('2d');
|
|
89
|
-
this._loaded = true;
|
|
90
|
-
}
|
|
91
|
-
bitmap(size) {
|
|
92
|
-
const w = (size) ? size[0] : this._cv.width;
|
|
93
|
-
const h = (size) ? size[1] : this._cv.height;
|
|
94
|
-
return createImageBitmap(this._cv, 0, 0, w, h);
|
|
95
|
-
}
|
|
96
|
-
pattern(reptition = 'repeat', dynamic = false) {
|
|
97
|
-
if (!this._space)
|
|
98
|
-
throw "Cannot find CanvasSpace ctx to create image pattern";
|
|
99
|
-
return this._space.ctx.createPattern(dynamic ? this._cv : this._img, reptition);
|
|
100
|
-
}
|
|
101
|
-
sync() {
|
|
102
|
-
if (this._scale !== 1) {
|
|
103
|
-
this.bitmap().then(b => {
|
|
104
|
-
this._drawToScale(1 / this._scale, b);
|
|
105
|
-
this.load(this.toBase64());
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
this._img.src = this.toBase64();
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
pixel(p, rescale = true) {
|
|
113
|
-
const s = (typeof rescale == 'number') ? rescale : (rescale ? this._scale : 1);
|
|
114
|
-
return Img.getPixel(this._data, [p[0] * s, p[1] * s]);
|
|
115
|
-
}
|
|
116
|
-
static getPixel(imgData, p) {
|
|
117
|
-
const no = new Pt(0, 0, 0, 0);
|
|
118
|
-
if (p[0] >= imgData.width || p[1] >= imgData.height)
|
|
119
|
-
return no;
|
|
120
|
-
const i = Math.floor(p[1]) * (imgData.width * 4) + (Math.floor(p[0]) * 4);
|
|
121
|
-
const d = imgData.data;
|
|
122
|
-
if (i >= d.length - 4)
|
|
123
|
-
return no;
|
|
124
|
-
return new Pt(d[i], d[i + 1], d[i + 2], d[i + 3]);
|
|
125
|
-
}
|
|
126
|
-
resize(sizeOrScale, asScale = false) {
|
|
127
|
-
let s = asScale ? sizeOrScale : [sizeOrScale[0] / this._img.naturalWidth, sizeOrScale[1] / this._img.naturalHeight];
|
|
128
|
-
this._drawToScale(s, this._img);
|
|
129
|
-
this._data = this._ctx.getImageData(0, 0, this._cv.width, this._cv.height);
|
|
130
|
-
return this;
|
|
131
|
-
}
|
|
132
|
-
crop(box) {
|
|
133
|
-
let p = box.topLeft.scale(this._scale);
|
|
134
|
-
let s = box.size.scale(this._scale);
|
|
135
|
-
return this._ctx.getImageData(p.x, p.y, s.x, s.y);
|
|
136
|
-
}
|
|
137
|
-
filter(css) {
|
|
138
|
-
this._ctx.filter = css;
|
|
139
|
-
this._ctx.drawImage(this._cv, 0, 0);
|
|
140
|
-
this._ctx.filter = "none";
|
|
141
|
-
return this;
|
|
142
|
-
}
|
|
143
|
-
cleanup() {
|
|
144
|
-
if (this._cv)
|
|
145
|
-
this._cv.remove();
|
|
146
|
-
if (this._img)
|
|
147
|
-
this._img.remove();
|
|
148
|
-
this._data = null;
|
|
149
|
-
}
|
|
150
|
-
static fromBlob(blob, editable = false, space) {
|
|
151
|
-
let url = URL.createObjectURL(blob);
|
|
152
|
-
return new Img(editable, space).load(url);
|
|
153
|
-
}
|
|
154
|
-
static imageDataToBlob(data) {
|
|
155
|
-
return new Promise(function (resolve, reject) {
|
|
156
|
-
if (!document) {
|
|
157
|
-
reject("Cannot create html canvas element. document not found.");
|
|
158
|
-
}
|
|
159
|
-
let cv = document.createElement("canvas");
|
|
160
|
-
cv.width = data.width;
|
|
161
|
-
cv.height = data.height;
|
|
162
|
-
cv.getContext("2d").putImageData(data, 0, 0);
|
|
163
|
-
cv.toBlob(blob => {
|
|
164
|
-
resolve(blob);
|
|
165
|
-
cv.remove();
|
|
166
|
-
});
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
toBase64() {
|
|
170
|
-
return this._cv.toDataURL();
|
|
171
|
-
}
|
|
172
|
-
toBlob() {
|
|
173
|
-
return new Promise((resolve) => {
|
|
174
|
-
this._cv.toBlob(blob => resolve(blob));
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
getForm() {
|
|
178
|
-
if (!this._editable) {
|
|
179
|
-
console.error("Cannot get a CanvasForm because this Img is not editable");
|
|
180
|
-
}
|
|
181
|
-
return this._ctx ? new CanvasForm(this._ctx) : undefined;
|
|
182
|
-
}
|
|
183
|
-
get current() {
|
|
184
|
-
return this._editable ? this._cv : this._img;
|
|
185
|
-
}
|
|
186
|
-
get image() {
|
|
187
|
-
return this._img;
|
|
188
|
-
}
|
|
189
|
-
get canvas() {
|
|
190
|
-
return this._cv;
|
|
191
|
-
}
|
|
192
|
-
get data() {
|
|
193
|
-
return this._data;
|
|
194
|
-
}
|
|
195
|
-
get ctx() {
|
|
196
|
-
return this._ctx;
|
|
197
|
-
}
|
|
198
|
-
get loaded() {
|
|
199
|
-
return this._loaded;
|
|
200
|
-
}
|
|
201
|
-
get pixelScale() {
|
|
202
|
-
return this._scale;
|
|
203
|
-
}
|
|
204
|
-
get imageSize() {
|
|
205
|
-
if (!this._img.width || !this._img.height) {
|
|
206
|
-
return this.canvasSize.$divide(this._scale);
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
return new Pt(this._img.width, this._img.height);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
get canvasSize() {
|
|
213
|
-
return new Pt(this._cv.width, this._cv.height);
|
|
214
|
-
}
|
|
215
|
-
get scaledMatrix() {
|
|
216
|
-
const s = 1 / this._scale;
|
|
217
|
-
return new Mat().scale2D([s, s]);
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
//# sourceMappingURL=Image.js.map
|
package/dist/es2015/Image.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Image.js","sourceRoot":"","sources":["../../src/Image.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,286 +0,0 @@
|
|
|
1
|
-
/*! Pts.js is licensed under Apache License 2.0. Copyright © 2017-current William Ngan and contributors. (https://github.com/williamngan/pts) */
|
|
2
|
-
import { Pt, Group } from "./Pt";
|
|
3
|
-
import { Line } from "./Op";
|
|
4
|
-
export class Vec {
|
|
5
|
-
static add(a, b) {
|
|
6
|
-
if (typeof b == "number") {
|
|
7
|
-
for (let i = 0, len = a.length; i < len; i++)
|
|
8
|
-
a[i] += b;
|
|
9
|
-
}
|
|
10
|
-
else {
|
|
11
|
-
for (let i = 0, len = a.length; i < len; i++)
|
|
12
|
-
a[i] += b[i] || 0;
|
|
13
|
-
}
|
|
14
|
-
return a;
|
|
15
|
-
}
|
|
16
|
-
static subtract(a, b) {
|
|
17
|
-
if (typeof b == "number") {
|
|
18
|
-
for (let i = 0, len = a.length; i < len; i++)
|
|
19
|
-
a[i] -= b;
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
for (let i = 0, len = a.length; i < len; i++)
|
|
23
|
-
a[i] -= b[i] || 0;
|
|
24
|
-
}
|
|
25
|
-
return a;
|
|
26
|
-
}
|
|
27
|
-
static multiply(a, b) {
|
|
28
|
-
if (typeof b == "number") {
|
|
29
|
-
for (let i = 0, len = a.length; i < len; i++)
|
|
30
|
-
a[i] *= b;
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
if (a.length != b.length) {
|
|
34
|
-
throw new Error(`Cannot do element-wise multiply since the array lengths don't match: ${a.toString()} multiply-with ${b.toString()}`);
|
|
35
|
-
}
|
|
36
|
-
for (let i = 0, len = a.length; i < len; i++)
|
|
37
|
-
a[i] *= b[i];
|
|
38
|
-
}
|
|
39
|
-
return a;
|
|
40
|
-
}
|
|
41
|
-
static divide(a, b) {
|
|
42
|
-
if (typeof b == "number") {
|
|
43
|
-
if (b === 0)
|
|
44
|
-
throw new Error("Cannot divide by zero");
|
|
45
|
-
for (let i = 0, len = a.length; i < len; i++)
|
|
46
|
-
a[i] /= b;
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
if (a.length != b.length) {
|
|
50
|
-
throw new Error(`Cannot do element-wise divide since the array lengths don't match. ${a.toString()} divide-by ${b.toString()}`);
|
|
51
|
-
}
|
|
52
|
-
for (let i = 0, len = a.length; i < len; i++)
|
|
53
|
-
a[i] /= b[i];
|
|
54
|
-
}
|
|
55
|
-
return a;
|
|
56
|
-
}
|
|
57
|
-
static dot(a, b) {
|
|
58
|
-
if (a.length != b.length)
|
|
59
|
-
throw new Error("Array lengths don't match");
|
|
60
|
-
let d = 0;
|
|
61
|
-
for (let i = 0, len = a.length; i < len; i++) {
|
|
62
|
-
d += a[i] * b[i];
|
|
63
|
-
}
|
|
64
|
-
return d;
|
|
65
|
-
}
|
|
66
|
-
static cross2D(a, b) {
|
|
67
|
-
return a[0] * b[1] - a[1] * b[0];
|
|
68
|
-
}
|
|
69
|
-
static cross(a, b) {
|
|
70
|
-
return new Pt((a[1] * b[2] - a[2] * b[1]), (a[2] * b[0] - a[0] * b[2]), (a[0] * b[1] - a[1] * b[0]));
|
|
71
|
-
}
|
|
72
|
-
static magnitude(a) {
|
|
73
|
-
return Math.sqrt(Vec.dot(a, a));
|
|
74
|
-
}
|
|
75
|
-
static unit(a, magnitude = undefined) {
|
|
76
|
-
let m = (magnitude === undefined) ? Vec.magnitude(a) : magnitude;
|
|
77
|
-
if (m === 0)
|
|
78
|
-
return Pt.make(a.length);
|
|
79
|
-
return Vec.divide(a, m);
|
|
80
|
-
}
|
|
81
|
-
static abs(a) {
|
|
82
|
-
return Vec.map(a, Math.abs);
|
|
83
|
-
}
|
|
84
|
-
static floor(a) {
|
|
85
|
-
return Vec.map(a, Math.floor);
|
|
86
|
-
}
|
|
87
|
-
static ceil(a) {
|
|
88
|
-
return Vec.map(a, Math.ceil);
|
|
89
|
-
}
|
|
90
|
-
static round(a) {
|
|
91
|
-
return Vec.map(a, Math.round);
|
|
92
|
-
}
|
|
93
|
-
static max(a) {
|
|
94
|
-
let m = Number.MIN_VALUE;
|
|
95
|
-
let index = 0;
|
|
96
|
-
for (let i = 0, len = a.length; i < len; i++) {
|
|
97
|
-
m = Math.max(m, a[i]);
|
|
98
|
-
if (m === a[i])
|
|
99
|
-
index = i;
|
|
100
|
-
}
|
|
101
|
-
return { value: m, index: index };
|
|
102
|
-
}
|
|
103
|
-
static min(a) {
|
|
104
|
-
let m = Number.MAX_VALUE;
|
|
105
|
-
let index = 0;
|
|
106
|
-
for (let i = 0, len = a.length; i < len; i++) {
|
|
107
|
-
m = Math.min(m, a[i]);
|
|
108
|
-
if (m === a[i])
|
|
109
|
-
index = i;
|
|
110
|
-
}
|
|
111
|
-
return { value: m, index: index };
|
|
112
|
-
}
|
|
113
|
-
static sum(a) {
|
|
114
|
-
let s = 0;
|
|
115
|
-
for (let i = 0, len = a.length; i < len; i++)
|
|
116
|
-
s += a[i];
|
|
117
|
-
return s;
|
|
118
|
-
}
|
|
119
|
-
static map(a, fn) {
|
|
120
|
-
for (let i = 0, len = a.length; i < len; i++) {
|
|
121
|
-
a[i] = fn(a[i], i, a);
|
|
122
|
-
}
|
|
123
|
-
return a;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
export class Mat {
|
|
127
|
-
constructor() {
|
|
128
|
-
this.reset();
|
|
129
|
-
}
|
|
130
|
-
get value() {
|
|
131
|
-
return this._33;
|
|
132
|
-
}
|
|
133
|
-
get domMatrix() {
|
|
134
|
-
return new DOMMatrix(Mat.toDOMMatrix(this._33));
|
|
135
|
-
}
|
|
136
|
-
reset() {
|
|
137
|
-
this._33 = Mat.scale2DMatrix(1, 1);
|
|
138
|
-
}
|
|
139
|
-
scale2D(val, at = [0, 0]) {
|
|
140
|
-
const m = Mat.scaleAt2DMatrix(val[0] || 1, val[1] || 1, at);
|
|
141
|
-
this._33 = Mat.multiply(this._33, m);
|
|
142
|
-
return this;
|
|
143
|
-
}
|
|
144
|
-
rotate2D(ang, at = [0, 0]) {
|
|
145
|
-
const m = Mat.rotateAt2DMatrix(Math.cos(ang), Math.sin(ang), at);
|
|
146
|
-
this._33 = Mat.multiply(this._33, m);
|
|
147
|
-
return this;
|
|
148
|
-
}
|
|
149
|
-
translate2D(val) {
|
|
150
|
-
const m = Mat.translate2DMatrix(val[0] || 0, val[1] || 0);
|
|
151
|
-
this._33 = Mat.multiply(this._33, m);
|
|
152
|
-
return this;
|
|
153
|
-
}
|
|
154
|
-
shear2D(val, at = [0, 0]) {
|
|
155
|
-
const m = Mat.shearAt2DMatrix(Math.tan(val[0] || 0), Math.tan(val[1] || 1), at);
|
|
156
|
-
this._33 = Mat.multiply(this._33, m);
|
|
157
|
-
return this;
|
|
158
|
-
}
|
|
159
|
-
static add(a, b) {
|
|
160
|
-
if (typeof b != "number") {
|
|
161
|
-
if (a[0].length != b[0].length)
|
|
162
|
-
throw new Error("Cannot add matrix if rows' and columns' size don't match.");
|
|
163
|
-
if (a.length != b.length)
|
|
164
|
-
throw new Error("Cannot add matrix if rows' and columns' size don't match.");
|
|
165
|
-
}
|
|
166
|
-
let g = new Group();
|
|
167
|
-
let isNum = typeof b == "number";
|
|
168
|
-
for (let i = 0, len = a.length; i < len; i++) {
|
|
169
|
-
g.push(a[i].$add((isNum) ? b : b[i]));
|
|
170
|
-
}
|
|
171
|
-
return g;
|
|
172
|
-
}
|
|
173
|
-
static multiply(a, b, transposed = false, elementwise = false) {
|
|
174
|
-
let g = new Group();
|
|
175
|
-
if (typeof b != "number") {
|
|
176
|
-
if (elementwise) {
|
|
177
|
-
if (a.length != b.length)
|
|
178
|
-
throw new Error("Cannot multiply matrix element-wise because the matrices' sizes don't match.");
|
|
179
|
-
for (let ai = 0, alen = a.length; ai < alen; ai++) {
|
|
180
|
-
g.push(a[ai].$multiply(b[ai]));
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
else {
|
|
184
|
-
if (!transposed && a[0].length != b.length)
|
|
185
|
-
throw new Error("Cannot multiply matrix if rows in matrix-a don't match columns in matrix-b.");
|
|
186
|
-
if (transposed && a[0].length != b[0].length)
|
|
187
|
-
throw new Error("Cannot multiply matrix if transposed and the columns in both matrices don't match.");
|
|
188
|
-
if (!transposed)
|
|
189
|
-
b = Mat.transpose(b);
|
|
190
|
-
for (let ai = 0, alen = a.length; ai < alen; ai++) {
|
|
191
|
-
let p = Pt.make(b.length, 0);
|
|
192
|
-
for (let bi = 0, blen = b.length; bi < blen; bi++) {
|
|
193
|
-
p[bi] = Vec.dot(a[ai], b[bi]);
|
|
194
|
-
}
|
|
195
|
-
g.push(p);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
else {
|
|
200
|
-
for (let ai = 0, alen = a.length; ai < alen; ai++) {
|
|
201
|
-
g.push(a[ai].$multiply(b));
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
return g;
|
|
205
|
-
}
|
|
206
|
-
static zipSlice(g, index, defaultValue = false) {
|
|
207
|
-
let z = [];
|
|
208
|
-
for (let i = 0, len = g.length; i < len; i++) {
|
|
209
|
-
if (g[i].length - 1 < index && defaultValue === false)
|
|
210
|
-
throw `Index ${index} is out of bounds`;
|
|
211
|
-
z.push(g[i][index] || defaultValue);
|
|
212
|
-
}
|
|
213
|
-
return new Pt(z);
|
|
214
|
-
}
|
|
215
|
-
static zip(g, defaultValue = false, useLongest = false) {
|
|
216
|
-
let ps = new Group();
|
|
217
|
-
let len = (useLongest) ? g.reduce((a, b) => Math.max(a, b.length), 0) : g[0].length;
|
|
218
|
-
for (let i = 0; i < len; i++) {
|
|
219
|
-
ps.push(Mat.zipSlice(g, i, defaultValue));
|
|
220
|
-
}
|
|
221
|
-
return ps;
|
|
222
|
-
}
|
|
223
|
-
static transpose(g, defaultValue = false, useLongest = false) {
|
|
224
|
-
return Mat.zip(g, defaultValue, useLongest);
|
|
225
|
-
}
|
|
226
|
-
static toDOMMatrix(m) {
|
|
227
|
-
return [m[0][0], m[0][1], m[1][0], m[1][1], m[2][0], m[2][1]];
|
|
228
|
-
}
|
|
229
|
-
static transform2D(pt, m) {
|
|
230
|
-
let x = pt[0] * m[0][0] + pt[1] * m[1][0] + m[2][0];
|
|
231
|
-
let y = pt[0] * m[0][1] + pt[1] * m[1][1] + m[2][1];
|
|
232
|
-
return new Pt(x, y);
|
|
233
|
-
}
|
|
234
|
-
static scale2DMatrix(x, y) {
|
|
235
|
-
return new Group(new Pt(x, 0, 0), new Pt(0, y, 0), new Pt(0, 0, 1));
|
|
236
|
-
}
|
|
237
|
-
static rotate2DMatrix(cosA, sinA) {
|
|
238
|
-
return new Group(new Pt(cosA, sinA, 0), new Pt(-sinA, cosA, 0), new Pt(0, 0, 1));
|
|
239
|
-
}
|
|
240
|
-
static shear2DMatrix(tanX, tanY) {
|
|
241
|
-
return new Group(new Pt(1, tanX, 0), new Pt(tanY, 1, 0), new Pt(0, 0, 1));
|
|
242
|
-
}
|
|
243
|
-
static translate2DMatrix(x, y) {
|
|
244
|
-
return new Group(new Pt(1, 0, 0), new Pt(0, 1, 0), new Pt(x, y, 1));
|
|
245
|
-
}
|
|
246
|
-
static scaleAt2DMatrix(sx, sy, at) {
|
|
247
|
-
let m = Mat.scale2DMatrix(sx, sy);
|
|
248
|
-
m[2][0] = -at[0] * sx + at[0];
|
|
249
|
-
m[2][1] = -at[1] * sy + at[1];
|
|
250
|
-
return m;
|
|
251
|
-
}
|
|
252
|
-
static rotateAt2DMatrix(cosA, sinA, at) {
|
|
253
|
-
let m = Mat.rotate2DMatrix(cosA, sinA);
|
|
254
|
-
m[2][0] = at[0] * (1 - cosA) + at[1] * sinA;
|
|
255
|
-
m[2][1] = at[1] * (1 - cosA) - at[0] * sinA;
|
|
256
|
-
return m;
|
|
257
|
-
}
|
|
258
|
-
static shearAt2DMatrix(tanX, tanY, at) {
|
|
259
|
-
let m = Mat.shear2DMatrix(tanX, tanY);
|
|
260
|
-
m[2][0] = -at[1] * tanY;
|
|
261
|
-
m[2][1] = -at[0] * tanX;
|
|
262
|
-
return m;
|
|
263
|
-
}
|
|
264
|
-
static reflectAt2DMatrix(p1, p2) {
|
|
265
|
-
let intercept = Line.intercept(p1, p2);
|
|
266
|
-
if (intercept == undefined) {
|
|
267
|
-
return [
|
|
268
|
-
new Pt([-1, 0, 0]),
|
|
269
|
-
new Pt([0, 1, 0]),
|
|
270
|
-
new Pt([p1[0] + p2[0], 0, 1])
|
|
271
|
-
];
|
|
272
|
-
}
|
|
273
|
-
else {
|
|
274
|
-
let yi = intercept.yi;
|
|
275
|
-
let ang2 = Math.atan(intercept.slope) * 2;
|
|
276
|
-
let cosA = Math.cos(ang2);
|
|
277
|
-
let sinA = Math.sin(ang2);
|
|
278
|
-
return [
|
|
279
|
-
new Pt([cosA, sinA, 0]),
|
|
280
|
-
new Pt([sinA, -cosA, 0]),
|
|
281
|
-
new Pt([-yi * sinA, yi + yi * cosA, 1])
|
|
282
|
-
];
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
//# sourceMappingURL=LinearAlgebra.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LinearAlgebra.js","sourceRoot":"","sources":["../../src/LinearAlgebra.ts"],"names":[],"mappings":"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"}
|