pts 0.10.5 → 0.10.9
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/es2015/Canvas.js +32 -12
- package/dist/es2015/Color.js +13 -11
- package/dist/es2015/Create.js +5 -5
- package/dist/es2015/Dom.js +1 -1
- package/dist/es2015/Form.js +1 -1
- package/dist/es2015/LinearAlgebra.js +1 -1
- package/dist/es2015/Num.js +12 -3
- package/dist/es2015/Op.js +1 -1
- package/dist/es2015/Physics.js +1 -1
- package/dist/es2015/Pt.js +2 -2
- package/dist/es2015/Space.js +31 -24
- package/dist/es2015/Svg.js +1 -1
- package/dist/es2015/Types.js +1 -1
- package/dist/es2015/Typography.js +1 -1
- package/dist/es2015/UI.js +1 -1
- package/dist/es2015/Util.js +3 -2
- package/dist/es2015/_module.js +1 -0
- package/dist/es2015/uheprng.js +69 -0
- package/dist/es5.js +195 -65
- package/dist/index.js +190 -68
- package/dist/pts.d.ts +18 -8
- package/dist/pts.js +190 -69
- package/dist/pts.min.js +2 -2
- package/package.json +2 -2
package/dist/es2015/Canvas.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*!
|
|
1
|
+
/*! Pts.js is licensed under Apache License 2.0. Copyright © 2017-current William Ngan and contributors. (https://github.com/williamngan/pts) */
|
|
2
2
|
import { MultiTouchSpace } from './Space';
|
|
3
3
|
import { VisualForm, Font } from "./Form";
|
|
4
4
|
import { Pt, Group, Bound } from "./Pt";
|
|
@@ -88,6 +88,9 @@ export class CanvasSpace extends MultiTouchSpace {
|
|
|
88
88
|
else {
|
|
89
89
|
this._offscreen = false;
|
|
90
90
|
}
|
|
91
|
+
if (opt.pixelDensity) {
|
|
92
|
+
this._pixelScale = opt.pixelDensity;
|
|
93
|
+
}
|
|
91
94
|
return this;
|
|
92
95
|
}
|
|
93
96
|
set autoResize(auto) {
|
|
@@ -104,13 +107,13 @@ export class CanvasSpace extends MultiTouchSpace {
|
|
|
104
107
|
get autoResize() { return this._autoResize; }
|
|
105
108
|
resize(b, evt) {
|
|
106
109
|
this.bound = b;
|
|
107
|
-
this._canvas.width = this.bound.size.x * this._pixelScale;
|
|
108
|
-
this._canvas.height = this.bound.size.y * this._pixelScale;
|
|
109
|
-
this._canvas.style.width = Math.
|
|
110
|
-
this._canvas.style.height = Math.
|
|
110
|
+
this._canvas.width = Math.ceil(this.bound.size.x) * this._pixelScale;
|
|
111
|
+
this._canvas.height = Math.ceil(this.bound.size.y) * this._pixelScale;
|
|
112
|
+
this._canvas.style.width = Math.ceil(this.bound.size.x) + "px";
|
|
113
|
+
this._canvas.style.height = Math.ceil(this.bound.size.y) + "px";
|
|
111
114
|
if (this._offscreen) {
|
|
112
|
-
this._offCanvas.width = this.bound.size.x * this._pixelScale;
|
|
113
|
-
this._offCanvas.height = this.bound.size.y * this._pixelScale;
|
|
115
|
+
this._offCanvas.width = Math.ceil(this.bound.size.x) * this._pixelScale;
|
|
116
|
+
this._offCanvas.height = Math.ceil(this.bound.size.y) * this._pixelScale;
|
|
114
117
|
}
|
|
115
118
|
if (this._pixelScale != 1) {
|
|
116
119
|
this._ctx.scale(this._pixelScale, this._pixelScale);
|
|
@@ -165,27 +168,29 @@ export class CanvasSpace extends MultiTouchSpace {
|
|
|
165
168
|
if (bg)
|
|
166
169
|
this._bgcolor = bg;
|
|
167
170
|
const lastColor = this._ctx.fillStyle;
|
|
171
|
+
const px = Math.ceil(this.pixelScale);
|
|
168
172
|
if (!this._bgcolor || this._bgcolor === "transparent") {
|
|
169
|
-
this._ctx.clearRect(-
|
|
173
|
+
this._ctx.clearRect(-px, -px, this._canvas.width + px, this._canvas.height + px);
|
|
170
174
|
}
|
|
171
175
|
else {
|
|
172
176
|
if (this._bgcolor.indexOf("rgba") === 0 || (this._bgcolor.length === 9 && this._bgcolor.indexOf("#") === 0)) {
|
|
173
|
-
this._ctx.clearRect(-
|
|
177
|
+
this._ctx.clearRect(-px, -px, this._canvas.width + px, this._canvas.height + px);
|
|
174
178
|
}
|
|
175
179
|
this._ctx.fillStyle = this._bgcolor;
|
|
176
|
-
this._ctx.fillRect(-
|
|
180
|
+
this._ctx.fillRect(-px, -px, this._canvas.width + px, this._canvas.height + px);
|
|
177
181
|
}
|
|
178
182
|
this._ctx.fillStyle = lastColor;
|
|
179
183
|
return this;
|
|
180
184
|
}
|
|
181
185
|
clearOffscreen(bg) {
|
|
182
186
|
if (this._offscreen) {
|
|
187
|
+
const px = Math.ceil(this.pixelScale);
|
|
183
188
|
if (bg) {
|
|
184
189
|
this._offCtx.fillStyle = bg;
|
|
185
|
-
this._offCtx.fillRect(-
|
|
190
|
+
this._offCtx.fillRect(-px, -px, this._canvas.width + px, this._canvas.height + px);
|
|
186
191
|
}
|
|
187
192
|
else {
|
|
188
|
-
this._offCtx.clearRect(-
|
|
193
|
+
this._offCtx.clearRect(-px, -px, this._offCanvas.width + px, this._offCanvas.height + px);
|
|
189
194
|
}
|
|
190
195
|
}
|
|
191
196
|
return this;
|
|
@@ -237,6 +242,8 @@ export class CanvasForm extends VisualForm {
|
|
|
237
242
|
lineWidth: 1, lineJoin: "bevel", lineCap: "butt",
|
|
238
243
|
globalAlpha: 1
|
|
239
244
|
};
|
|
245
|
+
if (!space)
|
|
246
|
+
return this;
|
|
240
247
|
const _setup = (ctx) => {
|
|
241
248
|
this._ctx = ctx;
|
|
242
249
|
this._ctx.fillStyle = this._style.fillStyle;
|
|
@@ -307,6 +314,19 @@ export class CanvasForm extends VisualForm {
|
|
|
307
314
|
}
|
|
308
315
|
return this;
|
|
309
316
|
}
|
|
317
|
+
applyFillStroke(filled = true, stroked = true, strokeWidth = 1) {
|
|
318
|
+
if (filled) {
|
|
319
|
+
if (typeof filled === 'string')
|
|
320
|
+
this.fill(filled);
|
|
321
|
+
this._ctx.fill();
|
|
322
|
+
}
|
|
323
|
+
if (stroked) {
|
|
324
|
+
if (typeof stroked === 'string')
|
|
325
|
+
this.stroke(stroked, strokeWidth);
|
|
326
|
+
this._ctx.stroke();
|
|
327
|
+
}
|
|
328
|
+
return this;
|
|
329
|
+
}
|
|
310
330
|
gradient(stops) {
|
|
311
331
|
let vals = [];
|
|
312
332
|
if (stops.length < 2)
|
package/dist/es2015/Color.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*!
|
|
1
|
+
/*! Pts.js is licensed under Apache License 2.0. Copyright © 2017-current William Ngan and contributors. (https://github.com/williamngan/pts) */
|
|
2
2
|
import { Pt, Group } from "./Pt";
|
|
3
3
|
import { Util } from "./Util";
|
|
4
4
|
import { Num, Geom } from "./Num";
|
|
@@ -252,12 +252,12 @@ export class Color extends Pt {
|
|
|
252
252
|
static XYZtoRGB(xyz, normalizedInput = false, normalizedOutput = false) {
|
|
253
253
|
let [x, y, z] = (!normalizedInput) ? xyz.$normalize() : xyz;
|
|
254
254
|
let rgb = [
|
|
255
|
-
x * 3.
|
|
256
|
-
x * -0.
|
|
257
|
-
x * 0.
|
|
255
|
+
x * 3.2406254773200533 + y * -1.5372079722103187 + z * -0.4986285986982479,
|
|
256
|
+
x * -0.9689307147293197 + y * 1.8757560608852415 + z * 0.041517523842953964,
|
|
257
|
+
x * 0.055710120445510616 + y * -0.2040210505984867 + z * 1.0569959422543882
|
|
258
258
|
];
|
|
259
259
|
for (let i = 0; i < 3; i++) {
|
|
260
|
-
rgb[i] = (rgb[i]
|
|
260
|
+
rgb[i] = (rgb[i] > 0.0031308) ? (1.055 * Math.pow(rgb[i], 1 / 2.4) - 0.055) : (12.92 * rgb[i]);
|
|
261
261
|
rgb[i] = Math.max(0, Math.min(1, rgb[i]));
|
|
262
262
|
if (!normalizedOutput)
|
|
263
263
|
rgb[i] = Math.round(rgb[i] * 255);
|
|
@@ -267,8 +267,10 @@ export class Color extends Pt {
|
|
|
267
267
|
}
|
|
268
268
|
static XYZtoLAB(xyz, normalizedInput = false, normalizedOutput = false) {
|
|
269
269
|
let c = (normalizedInput) ? xyz.$normalize(false) : xyz.clone();
|
|
270
|
+
const eps = 0.00885645167;
|
|
271
|
+
const kap = 903.296296296;
|
|
270
272
|
c.divide(Color.D65);
|
|
271
|
-
let fn = (n) => (n >
|
|
273
|
+
let fn = (n) => (n > eps) ? Math.pow(n, 1 / 3) : (kap * n + 16) / 116;
|
|
272
274
|
let cy = fn(c[1]);
|
|
273
275
|
let cc = Color.lab((116 * cy) - 16, 500 * (fn(c[0]) - cy), 200 * (cy - fn(c[2])), xyz.alpha);
|
|
274
276
|
return (normalizedOutput) ? cc.normalize() : cc;
|
|
@@ -278,12 +280,12 @@ export class Color extends Pt {
|
|
|
278
280
|
let y = (c[0] + 16) / 116;
|
|
279
281
|
let x = (c[1] / 500) + y;
|
|
280
282
|
let z = y - c[2] / 200;
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
return (nnn > 0.008856) ? nnn : (n - 16 / 116) / 7.787;
|
|
284
|
-
};
|
|
283
|
+
const eps = 0.00885645167;
|
|
284
|
+
const kap = 903.296296296;
|
|
285
285
|
let d = Color.D65;
|
|
286
|
-
|
|
286
|
+
const xxx = Math.pow(x, 3);
|
|
287
|
+
const zzz = Math.pow(z, 3);
|
|
288
|
+
let cc = Color.xyz(d[0] * ((xxx > eps) ? xxx : (116 * x - 16) / kap), d[1] * ((c[0] > kap * eps) ? Math.pow((c[0] + 16) / 116, 3) : c[0] / kap), d[2] * ((zzz > eps) ? zzz : (116 * z - 16) / kap), lab.alpha);
|
|
287
289
|
return (normalizedOutput) ? cc.normalize() : cc;
|
|
288
290
|
}
|
|
289
291
|
static XYZtoLUV(xyz, normalizedInput = false, normalizedOutput = false) {
|
package/dist/es2015/Create.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*!
|
|
1
|
+
/*! Pts.js is licensed under Apache License 2.0. Copyright © 2017-current William Ngan and contributors. (https://github.com/williamngan/pts) */
|
|
2
2
|
import { Pt, Group } from "./Pt";
|
|
3
3
|
import { Line, Triangle } from "./Op";
|
|
4
4
|
import { Const, Util } from "./Util";
|
|
@@ -8,11 +8,11 @@ export class Create {
|
|
|
8
8
|
static distributeRandom(bound, count, dimensions = 2) {
|
|
9
9
|
let pts = new Group();
|
|
10
10
|
for (let i = 0; i < count; i++) {
|
|
11
|
-
let p = [bound.x +
|
|
11
|
+
let p = [bound.x + Num.random() * bound.width];
|
|
12
12
|
if (dimensions > 1)
|
|
13
|
-
p.push(bound.y +
|
|
13
|
+
p.push(bound.y + Num.random() * bound.height);
|
|
14
14
|
if (dimensions > 2)
|
|
15
|
-
p.push(bound.z +
|
|
15
|
+
p.push(bound.z + Num.random() * bound.depth);
|
|
16
16
|
pts.push(new Pt(p));
|
|
17
17
|
}
|
|
18
18
|
return pts;
|
|
@@ -58,7 +58,7 @@ export class Create {
|
|
|
58
58
|
return g;
|
|
59
59
|
}
|
|
60
60
|
static noisePts(pts, dx = 0.01, dy = 0.01, rows = 0, columns = 0) {
|
|
61
|
-
let seed =
|
|
61
|
+
let seed = Num.random();
|
|
62
62
|
let g = new Group();
|
|
63
63
|
let i = 0;
|
|
64
64
|
for (let p of pts) {
|
package/dist/es2015/Dom.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*!
|
|
1
|
+
/*! Pts.js is licensed under Apache License 2.0. Copyright © 2017-current William Ngan and contributors. (https://github.com/williamngan/pts) */
|
|
2
2
|
import { MultiTouchSpace } from './Space';
|
|
3
3
|
import { VisualForm, Font } from "./Form";
|
|
4
4
|
import { Util } from './Util';
|
package/dist/es2015/Form.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*!
|
|
1
|
+
/*! Pts.js is licensed under Apache License 2.0. Copyright © 2017-current William Ngan and contributors. (https://github.com/williamngan/pts) */
|
|
2
2
|
export class Form {
|
|
3
3
|
constructor() {
|
|
4
4
|
this._ready = false;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*!
|
|
1
|
+
/*! Pts.js is licensed under Apache License 2.0. Copyright © 2017-current William Ngan and contributors. (https://github.com/williamngan/pts) */
|
|
2
2
|
import { Pt, Group } from "./Pt";
|
|
3
3
|
import { Line } from "./Op";
|
|
4
4
|
export class Vec {
|
package/dist/es2015/Num.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
/*!
|
|
1
|
+
/*! Pts.js is licensed under Apache License 2.0. Copyright © 2017-current William Ngan and contributors. (https://github.com/williamngan/pts) */
|
|
2
2
|
import { Const, Util } from "./Util";
|
|
3
3
|
import { Curve } from "./Op";
|
|
4
4
|
import { Pt, Group } from "./Pt";
|
|
5
5
|
import { Vec, Mat } from "./LinearAlgebra";
|
|
6
|
+
import generator from './uheprng';
|
|
6
7
|
export class Num {
|
|
7
8
|
static equals(a, b, threshold = 0.00001) {
|
|
8
9
|
return Math.abs(a - b) < threshold;
|
|
@@ -27,14 +28,14 @@ export class Num {
|
|
|
27
28
|
}
|
|
28
29
|
static randomRange(a, b = 0) {
|
|
29
30
|
let r = (a > b) ? (a - b) : (b - a);
|
|
30
|
-
return a +
|
|
31
|
+
return a + Num.random() * r;
|
|
31
32
|
}
|
|
32
33
|
static randomPt(a, b) {
|
|
33
34
|
let p = new Pt(a.length);
|
|
34
35
|
let range = b ? Vec.subtract(b, a) : a;
|
|
35
36
|
let start = b ? a : new Pt(a.length).fill(0);
|
|
36
37
|
for (let i = 0, len = p.length; i < len; i++) {
|
|
37
|
-
p[i] =
|
|
38
|
+
p[i] = Num.random() * range[i] + start[i];
|
|
38
39
|
}
|
|
39
40
|
return p;
|
|
40
41
|
}
|
|
@@ -65,6 +66,14 @@ export class Num {
|
|
|
65
66
|
let max = Math.max(targetA, targetB);
|
|
66
67
|
return Num.normalizeValue(n, currA, currB) * (max - min) + min;
|
|
67
68
|
}
|
|
69
|
+
static seed(seed) {
|
|
70
|
+
this.generator = generator(seed);
|
|
71
|
+
}
|
|
72
|
+
static random() {
|
|
73
|
+
return this.generator
|
|
74
|
+
? this.generator.random()
|
|
75
|
+
: Math.random();
|
|
76
|
+
}
|
|
68
77
|
}
|
|
69
78
|
export class Geom {
|
|
70
79
|
static boundAngle(angle) {
|
package/dist/es2015/Op.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*!
|
|
1
|
+
/*! Pts.js is licensed under Apache License 2.0. Copyright © 2017-current William Ngan and contributors. (https://github.com/williamngan/pts) */
|
|
2
2
|
import { Util } from "./Util";
|
|
3
3
|
import { Geom, Num } from "./Num";
|
|
4
4
|
import { Pt, Group } from "./Pt";
|
package/dist/es2015/Physics.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*!
|
|
1
|
+
/*! Pts.js is licensed under Apache License 2.0. Copyright © 2017-current William Ngan and contributors. (https://github.com/williamngan/pts) */
|
|
2
2
|
import { Pt, Group, Bound } from "./Pt";
|
|
3
3
|
import { Polygon, Circle } from "./Op";
|
|
4
4
|
import { Geom } from "./Num";
|
package/dist/es2015/Pt.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*!
|
|
1
|
+
/*! Pts.js is licensed under Apache License 2.0. Copyright © 2017-current William Ngan and contributors. (https://github.com/williamngan/pts) */
|
|
2
2
|
import { Util, Const } from "./Util";
|
|
3
3
|
import { Geom, Num } from "./Num";
|
|
4
4
|
import { Vec, Mat } from "./LinearAlgebra";
|
|
@@ -17,7 +17,7 @@ export class Pt extends Float32Array {
|
|
|
17
17
|
p.fill(defaultValue);
|
|
18
18
|
if (randomize) {
|
|
19
19
|
for (let i = 0, len = p.length; i < len; i++) {
|
|
20
|
-
p[i] = p[i] *
|
|
20
|
+
p[i] = p[i] * Num.random();
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
return new Pt(p);
|
package/dist/es2015/Space.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*!
|
|
1
|
+
/*! Pts.js is licensed under Apache License 2.0. Copyright © 2017-current William Ngan and contributors. (https://github.com/williamngan/pts) */
|
|
2
2
|
import { Pt, Bound } from "./Pt";
|
|
3
3
|
import { UIPointerActions as UIA } from "./UI";
|
|
4
4
|
export class Space {
|
|
@@ -91,7 +91,7 @@ export class Space {
|
|
|
91
91
|
this._time.end = t;
|
|
92
92
|
return this;
|
|
93
93
|
}
|
|
94
|
-
playOnce(duration =
|
|
94
|
+
playOnce(duration = 0) {
|
|
95
95
|
this.play();
|
|
96
96
|
this.stop(duration);
|
|
97
97
|
return this;
|
|
@@ -127,44 +127,51 @@ export class MultiTouchSpace extends Space {
|
|
|
127
127
|
bindCanvas(evt, callback, options = {}) {
|
|
128
128
|
this._canvas.addEventListener(evt, callback, options);
|
|
129
129
|
}
|
|
130
|
-
unbindCanvas(evt, callback) {
|
|
131
|
-
this._canvas.removeEventListener(evt, callback);
|
|
130
|
+
unbindCanvas(evt, callback, options = {}) {
|
|
131
|
+
this._canvas.removeEventListener(evt, callback, options);
|
|
132
132
|
}
|
|
133
133
|
bindMouse(_bind = true) {
|
|
134
134
|
if (_bind) {
|
|
135
|
-
this.
|
|
136
|
-
this.
|
|
137
|
-
this.
|
|
138
|
-
this.
|
|
139
|
-
this.
|
|
140
|
-
this.
|
|
141
|
-
this.
|
|
135
|
+
this._mouseDown = this._mouseDown.bind(this);
|
|
136
|
+
this._mouseUp = this._mouseUp.bind(this);
|
|
137
|
+
this._mouseOver = this._mouseOver.bind(this);
|
|
138
|
+
this._mouseOut = this._mouseOut.bind(this);
|
|
139
|
+
this._mouseMove = this._mouseMove.bind(this);
|
|
140
|
+
this._mouseClick = this._mouseClick.bind(this);
|
|
141
|
+
this._contextMenu = this._contextMenu.bind(this);
|
|
142
|
+
this.bindCanvas("mousedown", this._mouseDown);
|
|
143
|
+
this.bindCanvas("mouseup", this._mouseUp);
|
|
144
|
+
this.bindCanvas("mouseover", this._mouseOver);
|
|
145
|
+
this.bindCanvas("mouseout", this._mouseOut);
|
|
146
|
+
this.bindCanvas("mousemove", this._mouseMove);
|
|
147
|
+
this.bindCanvas("click", this._mouseClick);
|
|
148
|
+
this.bindCanvas("contextmenu", this._contextMenu);
|
|
142
149
|
this._hasMouse = true;
|
|
143
150
|
}
|
|
144
151
|
else {
|
|
145
|
-
this.unbindCanvas("mousedown", this._mouseDown
|
|
146
|
-
this.unbindCanvas("mouseup", this._mouseUp
|
|
147
|
-
this.unbindCanvas("mouseover", this._mouseOver
|
|
148
|
-
this.unbindCanvas("mouseout", this._mouseOut
|
|
149
|
-
this.unbindCanvas("mousemove", this._mouseMove
|
|
150
|
-
this.unbindCanvas("click", this._mouseClick
|
|
151
|
-
this.unbindCanvas("contextmenu", this._contextMenu
|
|
152
|
+
this.unbindCanvas("mousedown", this._mouseDown);
|
|
153
|
+
this.unbindCanvas("mouseup", this._mouseUp);
|
|
154
|
+
this.unbindCanvas("mouseover", this._mouseOver);
|
|
155
|
+
this.unbindCanvas("mouseout", this._mouseOut);
|
|
156
|
+
this.unbindCanvas("mousemove", this._mouseMove);
|
|
157
|
+
this.unbindCanvas("click", this._mouseClick);
|
|
158
|
+
this.unbindCanvas("contextmenu", this._contextMenu);
|
|
152
159
|
this._hasMouse = false;
|
|
153
160
|
}
|
|
154
161
|
return this;
|
|
155
162
|
}
|
|
156
|
-
bindTouch(
|
|
157
|
-
if (
|
|
158
|
-
this.bindCanvas("touchstart", this._touchStart.bind(this), { passive:
|
|
163
|
+
bindTouch(bind = true, passive = false) {
|
|
164
|
+
if (bind) {
|
|
165
|
+
this.bindCanvas("touchstart", this._touchStart.bind(this), { passive: passive });
|
|
159
166
|
this.bindCanvas("touchend", this._mouseUp.bind(this));
|
|
160
|
-
this.bindCanvas("touchmove", this._touchMove.bind(this), { passive:
|
|
167
|
+
this.bindCanvas("touchmove", this._touchMove.bind(this), { passive: passive });
|
|
161
168
|
this.bindCanvas("touchcancel", this._mouseOut.bind(this));
|
|
162
169
|
this._hasTouch = true;
|
|
163
170
|
}
|
|
164
171
|
else {
|
|
165
|
-
this.unbindCanvas("touchstart", this._touchStart.bind(this));
|
|
172
|
+
this.unbindCanvas("touchstart", this._touchStart.bind(this), { passive: passive });
|
|
166
173
|
this.unbindCanvas("touchend", this._mouseUp.bind(this));
|
|
167
|
-
this.unbindCanvas("touchmove", this._touchMove.bind(this));
|
|
174
|
+
this.unbindCanvas("touchmove", this._touchMove.bind(this), { passive: passive });
|
|
168
175
|
this.unbindCanvas("touchcancel", this._mouseOut.bind(this));
|
|
169
176
|
this._hasTouch = false;
|
|
170
177
|
}
|
package/dist/es2015/Svg.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*!
|
|
1
|
+
/*! Pts.js is licensed under Apache License 2.0. Copyright © 2017-current William Ngan and contributors. (https://github.com/williamngan/pts) */
|
|
2
2
|
import { VisualForm, Font } from "./Form";
|
|
3
3
|
import { Geom } from './Num';
|
|
4
4
|
import { Const, Util } from './Util';
|
package/dist/es2015/Types.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/*!
|
|
1
|
+
/*! Pts.js is licensed under Apache License 2.0. Copyright © 2017-current William Ngan and contributors. (https://github.com/williamngan/pts) */
|
|
2
2
|
export {};
|
|
3
3
|
//# sourceMappingURL=Types.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*!
|
|
1
|
+
/*! Pts.js is licensed under Apache License 2.0. Copyright © 2017-current William Ngan and contributors. (https://github.com/williamngan/pts) */
|
|
2
2
|
import { Pt, Bound } from "./Pt";
|
|
3
3
|
export class Typography {
|
|
4
4
|
static textWidthEstimator(fn, samples = ["M", "n", "."], distribution = [0.06, 0.8, 0.14]) {
|
package/dist/es2015/UI.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*!
|
|
1
|
+
/*! Pts.js is licensed under Apache License 2.0. Copyright © 2017-current William Ngan and contributors. (https://github.com/williamngan/pts) */
|
|
2
2
|
import { Pt, Group } from "./Pt";
|
|
3
3
|
import { Rectangle, Circle, Polygon } from "./Op";
|
|
4
4
|
export const UIShape = {
|
package/dist/es2015/Util.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
/*!
|
|
1
|
+
/*! Pts.js is licensed under Apache License 2.0. Copyright © 2017-current William Ngan and contributors. (https://github.com/williamngan/pts) */
|
|
2
|
+
import { Num } from "./Num";
|
|
2
3
|
import { Group } from "./Pt";
|
|
3
4
|
export const Const = {
|
|
4
5
|
xy: "xy",
|
|
@@ -70,7 +71,7 @@ export class Util {
|
|
|
70
71
|
}
|
|
71
72
|
static randomInt(range, start = 0) {
|
|
72
73
|
Util.warn("Util.randomInt is deprecated. Please use `Num.randomRange`");
|
|
73
|
-
return Math.floor(
|
|
74
|
+
return Math.floor(Num.random() * range) + start;
|
|
74
75
|
}
|
|
75
76
|
static split(pts, size, stride, loopBack = false, matchSize = true) {
|
|
76
77
|
let chunks = [];
|
package/dist/es2015/_module.js
CHANGED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
function Mash() {
|
|
3
|
+
var n = 0xefc8249d;
|
|
4
|
+
var mash = function (data) {
|
|
5
|
+
if (data) {
|
|
6
|
+
data = data.toString();
|
|
7
|
+
for (var i = 0; i < data.length; i++) {
|
|
8
|
+
n += data.charCodeAt(i);
|
|
9
|
+
var h = 0.02519603282416938 * n;
|
|
10
|
+
n = h >>> 0;
|
|
11
|
+
h -= n;
|
|
12
|
+
h *= n;
|
|
13
|
+
n = h >>> 0;
|
|
14
|
+
h -= n;
|
|
15
|
+
n += h * 0x100000000;
|
|
16
|
+
}
|
|
17
|
+
return (n >>> 0) * 2.3283064365386963e-10;
|
|
18
|
+
}
|
|
19
|
+
else
|
|
20
|
+
n = 0xefc8249d;
|
|
21
|
+
};
|
|
22
|
+
return mash;
|
|
23
|
+
}
|
|
24
|
+
export default function (seed) {
|
|
25
|
+
var o = 48;
|
|
26
|
+
var c = 1;
|
|
27
|
+
var p = o;
|
|
28
|
+
var s = new Array(o);
|
|
29
|
+
var i, j, k = 0;
|
|
30
|
+
var mash = Mash();
|
|
31
|
+
for (i = 0; i < o; i++)
|
|
32
|
+
s[i] = mash(Math.random().toString());
|
|
33
|
+
function initState() {
|
|
34
|
+
mash();
|
|
35
|
+
for (i = 0; i < o; i++)
|
|
36
|
+
s[i] = mash(' ');
|
|
37
|
+
c = 1;
|
|
38
|
+
p = o;
|
|
39
|
+
}
|
|
40
|
+
function cleanString(inStr) {
|
|
41
|
+
inStr = inStr.replace(/(^\s*)|(\s*$)/gi, '');
|
|
42
|
+
inStr = inStr.replace(/[\x00-\x1F]/gi, '');
|
|
43
|
+
inStr = inStr.replace(/\n /, '\n');
|
|
44
|
+
return inStr;
|
|
45
|
+
}
|
|
46
|
+
function hashString(inStr) {
|
|
47
|
+
inStr = cleanString(inStr);
|
|
48
|
+
mash(inStr);
|
|
49
|
+
for (i = 0; i < inStr.length; i++) {
|
|
50
|
+
k = inStr.charCodeAt(i);
|
|
51
|
+
for (j = 0; j < o; j++) {
|
|
52
|
+
s[j] -= mash(k.toString());
|
|
53
|
+
if (s[j] < 0)
|
|
54
|
+
s[j] += 1;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
initState();
|
|
59
|
+
hashString(seed);
|
|
60
|
+
return {
|
|
61
|
+
random() {
|
|
62
|
+
if (++p >= o)
|
|
63
|
+
p = 0;
|
|
64
|
+
var t = 1768863 * s[p] + c * 2.3283064365386963e-10;
|
|
65
|
+
return (s[p] = t - (c = t | 0));
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=uheprng.js.map
|