plotboilerplate 1.12.10 → 1.16.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/README.md +5 -1
- package/changelog.md +50 -0
- package/dist/index.esm.js +999 -510
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js +1 -1
- package/dist/index.esm.min.js.map +1 -1
- package/dist/plotboilerplate.browser.min.js +1 -1
- package/dist/plotboilerplate.browser.min.js.map +1 -1
- package/dist/plotboilerplate.js +1013 -509
- package/dist/plotboilerplate.min.js +1 -1
- package/package.json +1 -1
- package/src/cjs/BezierPath.d.ts +45 -2
- package/src/cjs/BezierPath.js +114 -18
- package/src/cjs/BezierPath.js.map +1 -1
- package/src/cjs/Circle.d.ts +25 -10
- package/src/cjs/Circle.js +38 -33
- package/src/cjs/Circle.js.map +1 -1
- package/src/cjs/CircleSector.d.ts +27 -13
- package/src/cjs/CircleSector.js +38 -23
- package/src/cjs/CircleSector.js.map +1 -1
- package/src/cjs/CubicBezierCurve.d.ts +17 -1
- package/src/cjs/CubicBezierCurve.js +78 -79
- package/src/cjs/CubicBezierCurve.js.map +1 -1
- package/src/cjs/KeyHandler.d.ts +10 -3
- package/src/cjs/KeyHandler.js +28 -23
- package/src/cjs/KeyHandler.js.map +1 -1
- package/src/cjs/Line.d.ts +2 -1
- package/src/cjs/Line.js +19 -18
- package/src/cjs/Line.js.map +1 -1
- package/src/cjs/MouseHandler.js +43 -53
- package/src/cjs/MouseHandler.js.map +1 -1
- package/src/cjs/PBImage.d.ts +16 -1
- package/src/cjs/PBImage.js +13 -3
- package/src/cjs/PBImage.js.map +1 -1
- package/src/cjs/PBText.d.ts +130 -0
- package/src/cjs/PBText.js +76 -0
- package/src/cjs/PBText.js.map +1 -0
- package/src/cjs/PlotBoilerplate.d.ts +2 -1
- package/src/cjs/PlotBoilerplate.js +44 -16
- package/src/cjs/PlotBoilerplate.js.map +1 -1
- package/src/cjs/Polygon.d.ts +37 -1
- package/src/cjs/Polygon.js +131 -54
- package/src/cjs/Polygon.js.map +1 -1
- package/src/cjs/Triangle.d.ts +16 -1
- package/src/cjs/Triangle.js +50 -54
- package/src/cjs/Triangle.js.map +1 -1
- package/src/cjs/VEllipse.d.ts +16 -1
- package/src/cjs/VEllipse.js +25 -12
- package/src/cjs/VEllipse.js.map +1 -1
- package/src/cjs/VEllipseSector.d.ts +15 -1
- package/src/cjs/VEllipseSector.js +11 -1
- package/src/cjs/VEllipseSector.js.map +1 -1
- package/src/cjs/Vector.d.ts +3 -1
- package/src/cjs/Vector.js +32 -36
- package/src/cjs/Vector.js.map +1 -1
- package/src/cjs/VertTuple.d.ts +15 -1
- package/src/cjs/VertTuple.js +14 -19
- package/src/cjs/VertTuple.js.map +1 -1
- package/src/cjs/Vertex.d.ts +66 -4
- package/src/cjs/Vertex.js +99 -17
- package/src/cjs/Vertex.js.map +1 -1
- package/src/cjs/VertexListeners.d.ts +12 -8
- package/src/cjs/VertexListeners.js +18 -25
- package/src/cjs/VertexListeners.js.map +1 -1
- package/src/cjs/draw.d.ts +30 -2
- package/src/cjs/draw.js +51 -6
- package/src/cjs/draw.js.map +1 -1
- package/src/cjs/drawgl.d.ts +29 -2
- package/src/cjs/drawgl.js +21 -4
- package/src/cjs/drawgl.js.map +1 -1
- package/src/cjs/drawutilssvg.d.ts +25 -7
- package/src/cjs/drawutilssvg.js +62 -14
- package/src/cjs/drawutilssvg.js.map +1 -1
- package/src/cjs/entry.js +1 -0
- package/src/cjs/index.d.ts +1 -0
- package/src/cjs/index.js +1 -0
- package/src/cjs/index.js.map +1 -1
- package/src/cjs/interfaces/DrawLib.d.ts +27 -6
- package/src/cjs/interfaces/DrawLib.js +3 -0
- package/src/cjs/interfaces/DrawLib.js.map +1 -1
- package/src/cjs/interfaces/core.d.ts +9 -1
- package/src/cjs/interfaces/core.js +1 -0
- package/src/cjs/interfaces/core.js.map +1 -1
- package/src/cjs/utils/creategui.js +1 -1
- package/src/cjs/utils/findInVertexArray.d.ts +19 -0
- package/src/cjs/utils/findInVertexArray.js +29 -0
- package/src/cjs/utils/findInVertexArray.js.map +1 -0
- package/src/cjs/utils/helpers/BezierPathInteractionHelper.d.ts +15 -0
- package/src/cjs/utils/helpers/BezierPathInteractionHelper.js +55 -28
- package/src/cjs/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
- package/src/cjs/utils/io/DndFileHandler.d.ts +63 -0
- package/src/cjs/utils/io/DndFileHandler.js +112 -0
- package/src/cjs/utils/io/DndFileHandler.js.map +1 -0
- package/src/cjs/utils/io/FileDrop.d.ts +98 -0
- package/src/cjs/utils/io/FileDrop.js +142 -0
- package/src/cjs/utils/io/FileDrop.js.map +1 -0
- package/src/esm/BezierPath.d.ts +45 -2
- package/src/esm/BezierPath.js +114 -18
- package/src/esm/BezierPath.js.map +1 -1
- package/src/esm/Circle.d.ts +25 -10
- package/src/esm/Circle.js +38 -33
- package/src/esm/Circle.js.map +1 -1
- package/src/esm/CircleSector.d.ts +27 -13
- package/src/esm/CircleSector.js +38 -23
- package/src/esm/CircleSector.js.map +1 -1
- package/src/esm/CubicBezierCurve.d.ts +17 -1
- package/src/esm/CubicBezierCurve.js +78 -79
- package/src/esm/CubicBezierCurve.js.map +1 -1
- package/src/esm/KeyHandler.d.ts +10 -3
- package/src/esm/KeyHandler.js +28 -23
- package/src/esm/KeyHandler.js.map +1 -1
- package/src/esm/Line.d.ts +2 -1
- package/src/esm/Line.js +19 -18
- package/src/esm/Line.js.map +1 -1
- package/src/esm/MouseHandler.js +43 -53
- package/src/esm/MouseHandler.js.map +1 -1
- package/src/esm/PBImage.d.ts +16 -1
- package/src/esm/PBImage.js +13 -3
- package/src/esm/PBImage.js.map +1 -1
- package/src/esm/PBText.d.ts +130 -0
- package/src/esm/PBText.js +71 -0
- package/src/esm/PBText.js.map +1 -0
- package/src/esm/PlotBoilerplate.d.ts +2 -1
- package/src/esm/PlotBoilerplate.js +44 -16
- package/src/esm/PlotBoilerplate.js.map +1 -1
- package/src/esm/Polygon.d.ts +37 -1
- package/src/esm/Polygon.js +131 -54
- package/src/esm/Polygon.js.map +1 -1
- package/src/esm/Triangle.d.ts +16 -1
- package/src/esm/Triangle.js +50 -54
- package/src/esm/Triangle.js.map +1 -1
- package/src/esm/VEllipse.d.ts +16 -1
- package/src/esm/VEllipse.js +25 -12
- package/src/esm/VEllipse.js.map +1 -1
- package/src/esm/VEllipseSector.d.ts +15 -1
- package/src/esm/VEllipseSector.js +11 -1
- package/src/esm/VEllipseSector.js.map +1 -1
- package/src/esm/Vector.d.ts +3 -1
- package/src/esm/Vector.js +32 -36
- package/src/esm/Vector.js.map +1 -1
- package/src/esm/VertTuple.d.ts +15 -1
- package/src/esm/VertTuple.js +14 -19
- package/src/esm/VertTuple.js.map +1 -1
- package/src/esm/Vertex.d.ts +66 -4
- package/src/esm/Vertex.js +99 -17
- package/src/esm/Vertex.js.map +1 -1
- package/src/esm/VertexListeners.d.ts +12 -8
- package/src/esm/VertexListeners.js +18 -25
- package/src/esm/VertexListeners.js.map +1 -1
- package/src/esm/draw.d.ts +30 -2
- package/src/esm/draw.js +51 -6
- package/src/esm/draw.js.map +1 -1
- package/src/esm/drawgl.d.ts +29 -2
- package/src/esm/drawgl.js +21 -4
- package/src/esm/drawgl.js.map +1 -1
- package/src/esm/drawutilssvg.d.ts +25 -7
- package/src/esm/drawutilssvg.js +62 -14
- package/src/esm/drawutilssvg.js.map +1 -1
- package/src/esm/entry.js +1 -0
- package/src/esm/index.d.ts +1 -0
- package/src/esm/index.js +1 -0
- package/src/esm/index.js.map +1 -1
- package/src/esm/interfaces/DrawLib.d.ts +27 -6
- package/src/esm/interfaces/DrawLib.js +3 -0
- package/src/esm/interfaces/DrawLib.js.map +1 -1
- package/src/esm/interfaces/core.d.ts +9 -1
- package/src/esm/interfaces/core.js +1 -0
- package/src/esm/interfaces/core.js.map +1 -1
- package/src/esm/utils/findInVertexArray.d.ts +19 -0
- package/src/esm/utils/findInVertexArray.js +25 -0
- package/src/esm/utils/findInVertexArray.js.map +1 -0
- package/src/esm/utils/helpers/BezierPathInteractionHelper.d.ts +15 -0
- package/src/esm/utils/helpers/BezierPathInteractionHelper.js +54 -28
- package/src/esm/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
- package/src/esm/utils/io/DndFileHandler.d.ts +63 -0
- package/src/esm/utils/io/DndFileHandler.js +106 -0
- package/src/esm/utils/io/DndFileHandler.js.map +1 -0
- package/src/esm/utils/io/FileDrop.d.ts +98 -0
- package/src/esm/utils/io/FileDrop.js +136 -0
- package/src/esm/utils/io/FileDrop.js.map +1 -0
- package/src/ts/BezierPath.ts +133 -16
- package/src/ts/Circle.ts +213 -200
- package/src/ts/CircleSector.ts +171 -141
- package/src/ts/CubicBezierCurve.ts +777 -810
- package/src/ts/KeyHandler.ts +221 -212
- package/src/ts/Line.ts +77 -80
- package/src/ts/MouseHandler.ts +356 -368
- package/src/ts/PBImage.ts +81 -68
- package/src/ts/PBText.ts +166 -0
- package/src/ts/PlotBoilerplate.ts +48 -20
- package/src/ts/Polygon.ts +519 -451
- package/src/ts/Triangle.ts +484 -489
- package/src/ts/VEllipse.ts +36 -11
- package/src/ts/VEllipseSector.ts +20 -1
- package/src/ts/Vector.ts +164 -160
- package/src/ts/VertTuple.ts +333 -338
- package/src/ts/Vertex.ts +117 -16
- package/src/ts/VertexListeners.ts +248 -266
- package/src/ts/draw.ts +71 -8
- package/src/ts/drawgl.ts +48 -8
- package/src/ts/drawutilssvg.ts +94 -17
- package/src/ts/index.ts +1 -0
- package/src/ts/interfaces/DrawLib.ts +30 -4
- package/src/ts/interfaces/core.ts +9 -0
- package/src/ts/utils/findInVertexArray.ts +28 -0
- package/src/ts/utils/helpers/BezierPathInteractionHelper.ts +61 -30
- package/src/ts/utils/io/FileDrop.ts +178 -0
- package/dist/plotboilerplate.browser.min.js.LICENSE.txt +0 -8
- package/src/ts/utils/algorithms/clearPolygonDuplicateVertices.ts~ +0 -5
- package/src/ts/utils/algorithms/findPolygonSelfIntersections.ts~ +0 -45
- package/src/ts/utils/algorithms/sh-tmp.ts~ +0 -59
- package/src/ts/utils/algorithms/splitPolygonToNonIntersecting.ts~ +0 -113
- package/src/ts/utils/algorithms/sutherlandHodgman.ts~ +0 -88
|
@@ -18,7 +18,9 @@
|
|
|
18
18
|
* @modified 2020-07-14 Changed the moveCurvePoint(...,Vertex) to moveCurvePoint(...,XYCoords), which is more generic.
|
|
19
19
|
* @modified 2020-07-24 Added the getClosestT function and the helper function locateIntervalByDistance(...).
|
|
20
20
|
* @modified 2021-01-20 Added UID.
|
|
21
|
-
* @
|
|
21
|
+
* @modified 2022-02-02 Added the `destroy` method.
|
|
22
|
+
* @modified 2022-02-02 Cleared the `toSVGPathData` function (deprecated). Use `drawutilssvg` instead.
|
|
23
|
+
* @version 2.6.0
|
|
22
24
|
*
|
|
23
25
|
* @file CubicBezierCurve
|
|
24
26
|
* @public
|
|
@@ -71,7 +73,6 @@ export class CubicBezierCurve {
|
|
|
71
73
|
this.arcLength = null;
|
|
72
74
|
this.updateArcLengths();
|
|
73
75
|
}
|
|
74
|
-
;
|
|
75
76
|
/**
|
|
76
77
|
* Move the given curve point (the start point, end point or one of the two
|
|
77
78
|
* control points).
|
|
@@ -108,7 +109,6 @@ export class CubicBezierCurve {
|
|
|
108
109
|
if (updateArcLengths)
|
|
109
110
|
this.updateArcLengths();
|
|
110
111
|
}
|
|
111
|
-
;
|
|
112
112
|
/**
|
|
113
113
|
* Translate the whole curve by the given {x,y} amount: moves all four points.
|
|
114
114
|
*
|
|
@@ -125,7 +125,6 @@ export class CubicBezierCurve {
|
|
|
125
125
|
this.endPoint.add(amount);
|
|
126
126
|
return this;
|
|
127
127
|
}
|
|
128
|
-
;
|
|
129
128
|
/**
|
|
130
129
|
* Reverse this curve, means swapping start- and end-point and swapping
|
|
131
130
|
* start-control- and end-control-point.
|
|
@@ -144,7 +143,6 @@ export class CubicBezierCurve {
|
|
|
144
143
|
this.endControlPoint = tmp;
|
|
145
144
|
return this;
|
|
146
145
|
}
|
|
147
|
-
;
|
|
148
146
|
/**
|
|
149
147
|
* Get the total curve length.<br>
|
|
150
148
|
* <br>
|
|
@@ -163,7 +161,6 @@ export class CubicBezierCurve {
|
|
|
163
161
|
getLength() {
|
|
164
162
|
return this.arcLength;
|
|
165
163
|
}
|
|
166
|
-
;
|
|
167
164
|
/**
|
|
168
165
|
* Uptate the internal arc segment buffer and their lengths.<br>
|
|
169
166
|
* <br>
|
|
@@ -201,7 +198,6 @@ export class CubicBezierCurve {
|
|
|
201
198
|
}
|
|
202
199
|
this.arcLength = newLength;
|
|
203
200
|
}
|
|
204
|
-
;
|
|
205
201
|
/**
|
|
206
202
|
* Get a 't' (relative position on curve) with the closest distance to point 'p'.
|
|
207
203
|
*
|
|
@@ -224,7 +220,6 @@ export class CubicBezierCurve {
|
|
|
224
220
|
} while (iteration < 4 && this.getPointAt(result.tPrev).distance(this.getPointAt(result.tNext)) > desiredEpsilon);
|
|
225
221
|
return result.t;
|
|
226
222
|
}
|
|
227
|
-
;
|
|
228
223
|
/**
|
|
229
224
|
* This helper function locates the 't' on a fixed step interval with the minimal distance
|
|
230
225
|
* between the curve (at 't') and the given point.
|
|
@@ -253,12 +248,12 @@ export class CubicBezierCurve {
|
|
|
253
248
|
minDist = dist;
|
|
254
249
|
}
|
|
255
250
|
}
|
|
256
|
-
return {
|
|
251
|
+
return {
|
|
252
|
+
t: tStart + tDiff * (minIndex / stepCount),
|
|
257
253
|
tPrev: tStart + tDiff * (Math.max(0, minIndex - 1) / stepCount),
|
|
258
254
|
tNext: tStart + tDiff * (Math.min(stepCount, minIndex + 1) / stepCount)
|
|
259
255
|
};
|
|
260
256
|
}
|
|
261
|
-
;
|
|
262
257
|
/**
|
|
263
258
|
* Get the bounds of this bezier curve.
|
|
264
259
|
*
|
|
@@ -280,7 +275,6 @@ export class CubicBezierCurve {
|
|
|
280
275
|
}
|
|
281
276
|
return new Bounds(min, max);
|
|
282
277
|
}
|
|
283
|
-
;
|
|
284
278
|
/**
|
|
285
279
|
* Get the start point of the curve.<br>
|
|
286
280
|
* <br>
|
|
@@ -294,7 +288,6 @@ export class CubicBezierCurve {
|
|
|
294
288
|
getStartPoint() {
|
|
295
289
|
return this.startPoint;
|
|
296
290
|
}
|
|
297
|
-
;
|
|
298
291
|
/**
|
|
299
292
|
* Get the end point of the curve.<br>
|
|
300
293
|
* <br>
|
|
@@ -308,7 +301,6 @@ export class CubicBezierCurve {
|
|
|
308
301
|
getEndPoint() {
|
|
309
302
|
return this.endPoint;
|
|
310
303
|
}
|
|
311
|
-
;
|
|
312
304
|
/**
|
|
313
305
|
* Get the start control point of the curve.<br>
|
|
314
306
|
* <br>
|
|
@@ -322,7 +314,6 @@ export class CubicBezierCurve {
|
|
|
322
314
|
getStartControlPoint() {
|
|
323
315
|
return this.startControlPoint;
|
|
324
316
|
}
|
|
325
|
-
;
|
|
326
317
|
/**
|
|
327
318
|
* Get the end control point of the curve.<br>
|
|
328
319
|
* <br>
|
|
@@ -336,7 +327,6 @@ export class CubicBezierCurve {
|
|
|
336
327
|
getEndControlPoint() {
|
|
337
328
|
return this.endControlPoint;
|
|
338
329
|
}
|
|
339
|
-
;
|
|
340
330
|
/**
|
|
341
331
|
* Get one of the four curve points specified by the passt point ID.
|
|
342
332
|
*
|
|
@@ -357,7 +347,6 @@ export class CubicBezierCurve {
|
|
|
357
347
|
return this.endControlPoint;
|
|
358
348
|
throw new Error(`Invalid point ID '${id}'.`);
|
|
359
349
|
}
|
|
360
|
-
;
|
|
361
350
|
/**
|
|
362
351
|
* Get the curve point at a given position t, where t is in [0,1].<br>
|
|
363
352
|
* <br>
|
|
@@ -372,13 +361,16 @@ export class CubicBezierCurve {
|
|
|
372
361
|
**/
|
|
373
362
|
getPointAt(t) {
|
|
374
363
|
// Perform some powerful math magic
|
|
375
|
-
const x = this.startPoint.x * Math.pow(1.0 - t, 3) +
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
364
|
+
const x = this.startPoint.x * Math.pow(1.0 - t, 3) +
|
|
365
|
+
this.startControlPoint.x * 3 * t * Math.pow(1.0 - t, 2) +
|
|
366
|
+
this.endControlPoint.x * 3 * Math.pow(t, 2) * (1.0 - t) +
|
|
367
|
+
this.endPoint.x * Math.pow(t, 3);
|
|
368
|
+
const y = this.startPoint.y * Math.pow(1.0 - t, 3) +
|
|
369
|
+
this.startControlPoint.y * 3 * t * Math.pow(1.0 - t, 2) +
|
|
370
|
+
this.endControlPoint.y * 3 * Math.pow(t, 2) * (1.0 - t) +
|
|
371
|
+
this.endPoint.y * Math.pow(t, 3);
|
|
379
372
|
return new Vertex(x, y);
|
|
380
373
|
}
|
|
381
|
-
;
|
|
382
374
|
/**
|
|
383
375
|
* Get the curve point at a given position u, where u is in [0,arcLength].<br>
|
|
384
376
|
* <br>
|
|
@@ -394,7 +386,6 @@ export class CubicBezierCurve {
|
|
|
394
386
|
getPoint(u) {
|
|
395
387
|
return this.getPointAt(u / this.arcLength);
|
|
396
388
|
}
|
|
397
|
-
;
|
|
398
389
|
/**
|
|
399
390
|
* Get the curve tangent vector at a given absolute curve position t in [0,1].<br>
|
|
400
391
|
* <br>
|
|
@@ -415,18 +406,11 @@ export class CubicBezierCurve {
|
|
|
415
406
|
const t2 = t * t;
|
|
416
407
|
// (1 - t)^2 = (1-t)*(1-t) = 1 - t - t + t^2 = 1 - 2*t + t^2
|
|
417
408
|
const nt2 = 1 - 2 * t + t2;
|
|
418
|
-
const tX = -3 * a.x * nt2 +
|
|
419
|
-
|
|
420
|
-
c.x * (6 * (t - t2) - 3 * t2) +
|
|
421
|
-
3 * d.x * t2;
|
|
422
|
-
const tY = -3 * a.y * nt2 +
|
|
423
|
-
b.y * (3 * nt2 - 6 * (t - t2)) +
|
|
424
|
-
c.y * (6 * (t - t2) - 3 * t2) +
|
|
425
|
-
3 * d.y * t2;
|
|
409
|
+
const tX = -3 * a.x * nt2 + b.x * (3 * nt2 - 6 * (t - t2)) + c.x * (6 * (t - t2) - 3 * t2) + 3 * d.x * t2;
|
|
410
|
+
const tY = -3 * a.y * nt2 + b.y * (3 * nt2 - 6 * (t - t2)) + c.y * (6 * (t - t2) - 3 * t2) + 3 * d.y * t2;
|
|
426
411
|
// Note: my implementation does NOT normalize tangent vectors!
|
|
427
412
|
return new Vertex(tX, tY);
|
|
428
413
|
}
|
|
429
|
-
;
|
|
430
414
|
/**
|
|
431
415
|
* Get a sub curve at the given start end end offsets (values between 0.0 and 1.0).
|
|
432
416
|
*
|
|
@@ -452,7 +436,6 @@ export class CubicBezierCurve {
|
|
|
452
436
|
// pb.draw.cubicBezier( startVec.a, endVec.a, startVec.b, endVec.b, '#8800ff', 2 );
|
|
453
437
|
return new CubicBezierCurve(startVec.a, endVec.a, startVec.b, endVec.b);
|
|
454
438
|
}
|
|
455
|
-
;
|
|
456
439
|
/**
|
|
457
440
|
* Convert a relative curve position u to the absolute curve position t.
|
|
458
441
|
*
|
|
@@ -463,9 +446,8 @@ export class CubicBezierCurve {
|
|
|
463
446
|
* @return {number}
|
|
464
447
|
**/
|
|
465
448
|
convertU2T(u) {
|
|
466
|
-
return Math.max(0.0, Math.min(1.0,
|
|
449
|
+
return Math.max(0.0, Math.min(1.0, u / this.arcLength));
|
|
467
450
|
}
|
|
468
|
-
;
|
|
469
451
|
/**
|
|
470
452
|
* Get the curve tangent vector at a given relative position u in [0,arcLength].<br>
|
|
471
453
|
* <br>
|
|
@@ -480,7 +462,6 @@ export class CubicBezierCurve {
|
|
|
480
462
|
getTangent(u) {
|
|
481
463
|
return this.getTangentAt(this.convertU2T(u));
|
|
482
464
|
}
|
|
483
|
-
;
|
|
484
465
|
/**
|
|
485
466
|
* Get the curve perpendicular at a given relative position u in [0,arcLength] as a vector.<br>
|
|
486
467
|
* <br>
|
|
@@ -495,7 +476,6 @@ export class CubicBezierCurve {
|
|
|
495
476
|
getPerpendicular(u) {
|
|
496
477
|
return this.getPerpendicularAt(this.convertU2T(u));
|
|
497
478
|
}
|
|
498
|
-
;
|
|
499
479
|
/**
|
|
500
480
|
* Get the curve perpendicular at a given absolute position t in [0,1] as a vector.<br>
|
|
501
481
|
* <br>
|
|
@@ -511,7 +491,6 @@ export class CubicBezierCurve {
|
|
|
511
491
|
const tangentVector = this.getTangentAt(t);
|
|
512
492
|
return new Vertex(tangentVector.y, -tangentVector.x);
|
|
513
493
|
}
|
|
514
|
-
;
|
|
515
494
|
/**
|
|
516
495
|
* Clone this Bézier curve (deep clone).
|
|
517
496
|
*
|
|
@@ -523,7 +502,6 @@ export class CubicBezierCurve {
|
|
|
523
502
|
clone() {
|
|
524
503
|
return new CubicBezierCurve(this.getStartPoint().clone(), this.getEndPoint().clone(), this.getStartControlPoint().clone(), this.getEndControlPoint().clone());
|
|
525
504
|
}
|
|
526
|
-
;
|
|
527
505
|
/**
|
|
528
506
|
* Check if this and the specified curve are equal.<br>
|
|
529
507
|
* <br>
|
|
@@ -542,17 +520,25 @@ export class CubicBezierCurve {
|
|
|
542
520
|
// Let's see if this restricted version works out.
|
|
543
521
|
if (!curve)
|
|
544
522
|
return false;
|
|
545
|
-
if (!curve.startPoint ||
|
|
546
|
-
!curve.endPoint ||
|
|
547
|
-
!curve.startControlPoint ||
|
|
548
|
-
!curve.endControlPoint)
|
|
523
|
+
if (!curve.startPoint || !curve.endPoint || !curve.startControlPoint || !curve.endControlPoint)
|
|
549
524
|
return false;
|
|
550
|
-
return this.startPoint.equals(curve.startPoint)
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
525
|
+
return (this.startPoint.equals(curve.startPoint) &&
|
|
526
|
+
this.endPoint.equals(curve.endPoint) &&
|
|
527
|
+
this.startControlPoint.equals(curve.startControlPoint) &&
|
|
528
|
+
this.endControlPoint.equals(curve.endControlPoint));
|
|
529
|
+
}
|
|
530
|
+
/**
|
|
531
|
+
* This function should invalidate any installed listeners and invalidate this object.
|
|
532
|
+
* After calling this function the object might not hold valid data any more and
|
|
533
|
+
* should not be used.
|
|
534
|
+
*/
|
|
535
|
+
destroy() {
|
|
536
|
+
this.startPoint.destroy();
|
|
537
|
+
this.endPoint.destroy();
|
|
538
|
+
this.startControlPoint.destroy();
|
|
539
|
+
this.endControlPoint.destroy();
|
|
540
|
+
this.isDestroyed = true;
|
|
554
541
|
}
|
|
555
|
-
;
|
|
556
542
|
/**
|
|
557
543
|
* Quick check for class instance.
|
|
558
544
|
* Is there a better way?
|
|
@@ -578,7 +564,6 @@ export class CubicBezierCurve {
|
|
|
578
564
|
*/
|
|
579
565
|
return obj instanceof CubicBezierCurve;
|
|
580
566
|
}
|
|
581
|
-
;
|
|
582
567
|
/**
|
|
583
568
|
* Create an SVG path data representation of this bézier curve.
|
|
584
569
|
*
|
|
@@ -587,32 +572,34 @@ export class CubicBezierCurve {
|
|
|
587
572
|
* or in other words<br>
|
|
588
573
|
* <pre>'M startoint.x startPoint.y C startControlPoint.x startControlPoint.y endControlPoint.x endControlPoint.y endPoint.x endPoint.y'</pre>
|
|
589
574
|
*
|
|
575
|
+
* @deprecated DEPRECATION Please use the drawutilssvg library and an XMLSerializer instead.
|
|
590
576
|
* @method toSVGPathData
|
|
591
577
|
* @instance
|
|
592
578
|
* @memberof CubicBezierCurve
|
|
593
579
|
* @return {string} The SVG path data string.
|
|
594
580
|
**/
|
|
595
581
|
toSVGPathData() {
|
|
596
|
-
var buffer = [];
|
|
597
|
-
buffer.push(
|
|
598
|
-
buffer.push(this.startPoint.x.toString());
|
|
599
|
-
buffer.push(
|
|
600
|
-
buffer.push(this.startPoint.y.toString());
|
|
601
|
-
buffer.push(
|
|
602
|
-
buffer.push(this.startControlPoint.x.toString());
|
|
603
|
-
buffer.push(
|
|
604
|
-
buffer.push(this.startControlPoint.y.toString());
|
|
605
|
-
buffer.push(
|
|
606
|
-
buffer.push(this.endControlPoint.x.toString());
|
|
607
|
-
buffer.push(
|
|
608
|
-
buffer.push(this.endControlPoint.y.toString());
|
|
609
|
-
buffer.push(
|
|
610
|
-
buffer.push(this.endPoint.x.toString());
|
|
611
|
-
buffer.push(
|
|
612
|
-
buffer.push(this.endPoint.y.toString());
|
|
613
|
-
return buffer.join(
|
|
582
|
+
// var buffer: Array<string> = [];
|
|
583
|
+
// buffer.push("M ");
|
|
584
|
+
// buffer.push(this.startPoint.x.toString());
|
|
585
|
+
// buffer.push(" ");
|
|
586
|
+
// buffer.push(this.startPoint.y.toString());
|
|
587
|
+
// buffer.push(" C ");
|
|
588
|
+
// buffer.push(this.startControlPoint.x.toString());
|
|
589
|
+
// buffer.push(" ");
|
|
590
|
+
// buffer.push(this.startControlPoint.y.toString());
|
|
591
|
+
// buffer.push(" ");
|
|
592
|
+
// buffer.push(this.endControlPoint.x.toString());
|
|
593
|
+
// buffer.push(" ");
|
|
594
|
+
// buffer.push(this.endControlPoint.y.toString());
|
|
595
|
+
// buffer.push(" ");
|
|
596
|
+
// buffer.push(this.endPoint.x.toString());
|
|
597
|
+
// buffer.push(" ");
|
|
598
|
+
// buffer.push(this.endPoint.y.toString());
|
|
599
|
+
// return buffer.join("");
|
|
600
|
+
console.warn("[Deprecation] Warning: the CubicBezierCurve.toSVGPathData method is deprecated and does not return and valid SVG data any more. Please use `drawutilssvg` instead.");
|
|
601
|
+
return "";
|
|
614
602
|
}
|
|
615
|
-
;
|
|
616
603
|
/**
|
|
617
604
|
* Convert this curve to a JSON string.
|
|
618
605
|
*
|
|
@@ -625,18 +612,33 @@ export class CubicBezierCurve {
|
|
|
625
612
|
toJSON(prettyFormat) {
|
|
626
613
|
var jsonString = "{ " + // begin object
|
|
627
614
|
(prettyFormat ? "\n\t" : "") +
|
|
628
|
-
"
|
|
615
|
+
'"startPoint" : [' +
|
|
616
|
+
this.getStartPoint().x +
|
|
617
|
+
"," +
|
|
618
|
+
this.getStartPoint().y +
|
|
619
|
+
"], " +
|
|
629
620
|
(prettyFormat ? "\n\t" : "") +
|
|
630
|
-
"
|
|
621
|
+
'"endPoint" : [' +
|
|
622
|
+
this.getEndPoint().x +
|
|
623
|
+
"," +
|
|
624
|
+
this.getEndPoint().y +
|
|
625
|
+
"], " +
|
|
631
626
|
(prettyFormat ? "\n\t" : "") +
|
|
632
|
-
"
|
|
627
|
+
'"startControlPoint": [' +
|
|
628
|
+
this.getStartControlPoint().x +
|
|
629
|
+
"," +
|
|
630
|
+
this.getStartControlPoint().y +
|
|
631
|
+
"], " +
|
|
633
632
|
(prettyFormat ? "\n\t" : "") +
|
|
634
|
-
"
|
|
633
|
+
'"endControlPoint" : [' +
|
|
634
|
+
this.getEndControlPoint().x +
|
|
635
|
+
"," +
|
|
636
|
+
this.getEndControlPoint().y +
|
|
637
|
+
"]" +
|
|
635
638
|
(prettyFormat ? "\n\t" : "") +
|
|
636
639
|
" }"; // end object
|
|
637
640
|
return jsonString;
|
|
638
641
|
}
|
|
639
|
-
;
|
|
640
642
|
/**
|
|
641
643
|
* Parse a Bézier curve from the given JSON string.
|
|
642
644
|
*
|
|
@@ -651,7 +653,6 @@ export class CubicBezierCurve {
|
|
|
651
653
|
var obj = JSON.parse(jsonString);
|
|
652
654
|
return CubicBezierCurve.fromObject(obj);
|
|
653
655
|
}
|
|
654
|
-
;
|
|
655
656
|
/**
|
|
656
657
|
* Try to convert the passed object to a CubicBezierCurve.
|
|
657
658
|
*
|
|
@@ -666,16 +667,15 @@ export class CubicBezierCurve {
|
|
|
666
667
|
if (typeof obj !== "object")
|
|
667
668
|
throw "Can only build from object.";
|
|
668
669
|
if (!obj.startPoint)
|
|
669
|
-
throw
|
|
670
|
+
throw 'Object member "startPoint" missing.';
|
|
670
671
|
if (!obj.endPoint)
|
|
671
|
-
throw
|
|
672
|
+
throw 'Object member "endPoint" missing.';
|
|
672
673
|
if (!obj.startControlPoint)
|
|
673
|
-
throw
|
|
674
|
+
throw 'Object member "startControlPoint" missing.';
|
|
674
675
|
if (!obj.endControlPoint)
|
|
675
|
-
throw
|
|
676
|
+
throw 'Object member "endControlPoint" missing.';
|
|
676
677
|
return new CubicBezierCurve(new Vertex(obj.startPoint[0], obj.startPoint[1]), new Vertex(obj.endPoint[0], obj.endPoint[1]), new Vertex(obj.startControlPoint[0], obj.startControlPoint[1]), new Vertex(obj.endControlPoint[0], obj.endControlPoint[1]));
|
|
677
678
|
}
|
|
678
|
-
;
|
|
679
679
|
/**
|
|
680
680
|
* Convert a 4-element array of vertices to a cubic bézier curve.
|
|
681
681
|
*
|
|
@@ -692,7 +692,6 @@ export class CubicBezierCurve {
|
|
|
692
692
|
throw "Can only build from array with four elements.";
|
|
693
693
|
return new CubicBezierCurve(arr[0], arr[1], arr[2], arr[3]);
|
|
694
694
|
}
|
|
695
|
-
;
|
|
696
695
|
}
|
|
697
696
|
/** @constant {number} */
|
|
698
697
|
CubicBezierCurve.START_POINT = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CubicBezierCurve.js","sourceRoot":"","sources":["../ts/CubicBezierCurve.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CubicBezierCurve.js","sourceRoot":"","sources":["../ts/CubicBezierCurve.ts"],"names":[],"mappings":"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"}
|
package/src/esm/KeyHandler.d.ts
CHANGED
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* @modified 2020-07-28 Changed the `delete` key code from 8 to 46.
|
|
6
6
|
* @modified 2020-10-04 Changed `window` to `globalThis`.
|
|
7
7
|
* @modified 2020-10-04 Added extended JSDoc.
|
|
8
|
-
* @
|
|
8
|
+
* @modified 2022-02-02 Added the `destroy` method.
|
|
9
|
+
* @version 1.1.0
|
|
9
10
|
*
|
|
10
11
|
* @file KeyHandler
|
|
11
12
|
* @public
|
|
@@ -45,9 +46,9 @@ export declare class KeyHandler {
|
|
|
45
46
|
* @memberof KeyHandler
|
|
46
47
|
* @param {HTMLElement} options.element (optional) The HTML element to listen on; if null then 'window' will be used.
|
|
47
48
|
* @param {boolean} options.trackAll (optional) Set to true if you want to keep track of _all_ keys (keyStatus).
|
|
48
|
-
|
|
49
|
+
**/
|
|
49
50
|
constructor(options: {
|
|
50
|
-
element?: HTMLElement | Window |
|
|
51
|
+
element?: HTMLElement | Window | typeof globalThis;
|
|
51
52
|
trackAll?: boolean;
|
|
52
53
|
});
|
|
53
54
|
/**
|
|
@@ -161,6 +162,12 @@ export declare class KeyHandler {
|
|
|
161
162
|
* @param {string|number} key - Any key identifier, key code or one from the KEY_CODES list.
|
|
162
163
|
*/
|
|
163
164
|
isDown(key: string | number): boolean;
|
|
165
|
+
/**
|
|
166
|
+
* This function should invalidate any installed listeners and invalidate this object.
|
|
167
|
+
* After calling this function the object might not hold valid data any more and
|
|
168
|
+
* should not be used any more.
|
|
169
|
+
*/
|
|
170
|
+
destroy(): void;
|
|
164
171
|
}
|
|
165
172
|
export interface XKeyListener {
|
|
166
173
|
key: string;
|
package/src/esm/KeyHandler.js
CHANGED
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* @modified 2020-07-28 Changed the `delete` key code from 8 to 46.
|
|
6
6
|
* @modified 2020-10-04 Changed `window` to `globalThis`.
|
|
7
7
|
* @modified 2020-10-04 Added extended JSDoc.
|
|
8
|
-
* @
|
|
8
|
+
* @modified 2022-02-02 Added the `destroy` method.
|
|
9
|
+
* @version 1.1.0
|
|
9
10
|
*
|
|
10
11
|
* @file KeyHandler
|
|
11
12
|
* @public
|
|
@@ -36,7 +37,7 @@ export class KeyHandler {
|
|
|
36
37
|
* @memberof KeyHandler
|
|
37
38
|
* @param {HTMLElement} options.element (optional) The HTML element to listen on; if null then 'window' will be used.
|
|
38
39
|
* @param {boolean} options.trackAll (optional) Set to true if you want to keep track of _all_ keys (keyStatus).
|
|
39
|
-
|
|
40
|
+
**/
|
|
40
41
|
constructor(options) {
|
|
41
42
|
this.downListeners = [];
|
|
42
43
|
this.pressListeners = [];
|
|
@@ -55,7 +56,6 @@ export class KeyHandler {
|
|
|
55
56
|
// Install the listeners
|
|
56
57
|
this.installListeners();
|
|
57
58
|
}
|
|
58
|
-
;
|
|
59
59
|
/**
|
|
60
60
|
* A helper function to fire key events from this KeyHandler.
|
|
61
61
|
*
|
|
@@ -73,7 +73,6 @@ export class KeyHandler {
|
|
|
73
73
|
}
|
|
74
74
|
return hasListener;
|
|
75
75
|
}
|
|
76
|
-
;
|
|
77
76
|
/**
|
|
78
77
|
* Internal function to fire a new keydown event to all listeners.
|
|
79
78
|
* You should not call this function on your own unless you know what you do.
|
|
@@ -89,10 +88,9 @@ export class KeyHandler {
|
|
|
89
88
|
fireDownEvent(e, handler) {
|
|
90
89
|
if (handler.fireEvent(e, handler.downListeners) || handler.trackAllKeys) {
|
|
91
90
|
// Down event has listeners. Update key state.
|
|
92
|
-
handler.keyStates[e.keyCode] =
|
|
91
|
+
handler.keyStates[e.keyCode] = "down";
|
|
93
92
|
}
|
|
94
93
|
}
|
|
95
|
-
;
|
|
96
94
|
/**
|
|
97
95
|
* Internal function to fire a new keypress event to all listeners.
|
|
98
96
|
* You should not call this function on your own unless you know what you do.
|
|
@@ -108,7 +106,6 @@ export class KeyHandler {
|
|
|
108
106
|
firePressEvent(e, handler) {
|
|
109
107
|
handler.fireEvent(e, handler.pressListeners);
|
|
110
108
|
}
|
|
111
|
-
;
|
|
112
109
|
/**
|
|
113
110
|
* Internal function to fire a new keyup event to all listeners.
|
|
114
111
|
* You should not call this function on your own unless you know what you do.
|
|
@@ -127,20 +124,18 @@ export class KeyHandler {
|
|
|
127
124
|
delete handler.keyStates[e.keyCode];
|
|
128
125
|
}
|
|
129
126
|
}
|
|
130
|
-
;
|
|
131
127
|
/**
|
|
132
128
|
* Resolve the key/name code.
|
|
133
129
|
*/
|
|
134
130
|
static key2code(key) {
|
|
135
|
-
if (typeof key ==
|
|
131
|
+
if (typeof key == "number")
|
|
136
132
|
return key;
|
|
137
|
-
if (typeof key !=
|
|
133
|
+
if (typeof key != "string")
|
|
138
134
|
throw "Unknown key name or key type (should be a string or integer): " + key;
|
|
139
135
|
if (KeyHandler.KEY_CODES[key])
|
|
140
136
|
return KeyHandler.KEY_CODES[key];
|
|
141
137
|
throw "Unknown key (cannot resolve key code): " + key;
|
|
142
138
|
}
|
|
143
|
-
;
|
|
144
139
|
/**
|
|
145
140
|
* Install the required listeners into the initially passed element.
|
|
146
141
|
*
|
|
@@ -149,20 +144,24 @@ export class KeyHandler {
|
|
|
149
144
|
*/
|
|
150
145
|
installListeners() {
|
|
151
146
|
var _self = this;
|
|
152
|
-
this.element.addEventListener(
|
|
153
|
-
|
|
154
|
-
|
|
147
|
+
this.element.addEventListener("keydown", (this._keyDownListener = (e) => {
|
|
148
|
+
_self.fireDownEvent(e, _self);
|
|
149
|
+
}));
|
|
150
|
+
this.element.addEventListener("keypress", (this._keyPressListener = (e) => {
|
|
151
|
+
_self.firePressEvent(e, _self);
|
|
152
|
+
}));
|
|
153
|
+
this.element.addEventListener("keyup", (this._keyUpListener = (e) => {
|
|
154
|
+
_self.fireUpEvent(e, _self);
|
|
155
|
+
}));
|
|
155
156
|
}
|
|
156
|
-
;
|
|
157
157
|
/**
|
|
158
158
|
* Remove all installed event listeners from the underlying element.
|
|
159
159
|
*/
|
|
160
160
|
releaseListeners() {
|
|
161
|
-
this.element.removeEventListener(
|
|
162
|
-
this.element.removeEventListener(
|
|
163
|
-
this.element.removeEventListener(
|
|
161
|
+
this.element.removeEventListener("keydown", this._keyDownListener);
|
|
162
|
+
this.element.removeEventListener("keypress", this._keyPressListener);
|
|
163
|
+
this.element.removeEventListener("keyup", this._keyUpListener);
|
|
164
164
|
}
|
|
165
|
-
;
|
|
166
165
|
/**
|
|
167
166
|
* Listen for key down. This function allows chaining.
|
|
168
167
|
*
|
|
@@ -179,7 +178,6 @@ export class KeyHandler {
|
|
|
179
178
|
this.downListeners.push({ key: key, keyCode: KeyHandler.key2code(key), listener: listener });
|
|
180
179
|
return this;
|
|
181
180
|
}
|
|
182
|
-
;
|
|
183
181
|
/**
|
|
184
182
|
* Listen for key press.
|
|
185
183
|
*
|
|
@@ -196,7 +194,6 @@ export class KeyHandler {
|
|
|
196
194
|
this.pressListeners.push({ key: key, keyCode: KeyHandler.key2code(key), listener: listener });
|
|
197
195
|
return this;
|
|
198
196
|
}
|
|
199
|
-
;
|
|
200
197
|
/**
|
|
201
198
|
* Listen for key up.
|
|
202
199
|
*
|
|
@@ -213,23 +210,31 @@ export class KeyHandler {
|
|
|
213
210
|
this.upListeners.push({ key: key, keyCode: KeyHandler.key2code(key), listener: listener });
|
|
214
211
|
return this;
|
|
215
212
|
}
|
|
216
|
-
;
|
|
217
213
|
/**
|
|
218
214
|
* Check if a specific key is currently held pressed.
|
|
219
215
|
*
|
|
220
216
|
* @param {string|number} key - Any key identifier, key code or one from the KEY_CODES list.
|
|
221
217
|
*/
|
|
222
218
|
isDown(key) {
|
|
223
|
-
if (typeof key ==
|
|
219
|
+
if (typeof key == "number")
|
|
224
220
|
return this.keyStates[key] ? true : false;
|
|
225
221
|
else
|
|
226
222
|
return this.keyStates[KeyHandler.key2code(key)] ? true : false;
|
|
227
223
|
}
|
|
224
|
+
/**
|
|
225
|
+
* This function should invalidate any installed listeners and invalidate this object.
|
|
226
|
+
* After calling this function the object might not hold valid data any more and
|
|
227
|
+
* should not be used any more.
|
|
228
|
+
*/
|
|
229
|
+
destroy() {
|
|
230
|
+
this.releaseListeners();
|
|
231
|
+
}
|
|
228
232
|
}
|
|
229
233
|
/**
|
|
230
234
|
* Source:
|
|
231
235
|
* https://keycode.info/
|
|
232
236
|
*/
|
|
237
|
+
// prettier-ignore
|
|
233
238
|
KeyHandler.KEY_CODES = {
|
|
234
239
|
'break': 3,
|
|
235
240
|
'backspace': 8,
|