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
package/src/ts/Vertex.ts
CHANGED
|
@@ -22,7 +22,13 @@
|
|
|
22
22
|
* @modified 2020-05-26 Added functions addX(number) and addY(number).
|
|
23
23
|
* @modified 2020-10-30 Changed the warnings in `sub(...)` and `add(...)` into real errors.
|
|
24
24
|
* @modified 2021-03-01 Changed the second param `center` in the `rotate` function from Vertex to XYCoords.
|
|
25
|
-
* @
|
|
25
|
+
* @modified 2021-12-01 Changed the type of param of `scale` to XYCoords.
|
|
26
|
+
* @modified 2021-12-01 Added function `scaleXY` for non uniform scaling.
|
|
27
|
+
* @modified 2021-12-17 Added the functions `lerp` and `lerpAbs` for linear interpolations.
|
|
28
|
+
* @modified 2022-01-31 Added `Vertex.utils.arrayToJSON`.
|
|
29
|
+
* @modified 2022-02-02 Added the `destroy` method.
|
|
30
|
+
* @modified 2022-02-02 Cleared the `Vertex.toSVGString` function (deprecated). Use `drawutilssvg` instead.
|
|
31
|
+
* @version 2.7.0
|
|
26
32
|
*
|
|
27
33
|
* @file Vertex
|
|
28
34
|
* @public
|
|
@@ -101,6 +107,14 @@ export class Vertex implements XYCoords, SVGSerializable {
|
|
|
101
107
|
**/
|
|
102
108
|
listeners: VertexListeners;
|
|
103
109
|
|
|
110
|
+
/**
|
|
111
|
+
* @member isDestroyed
|
|
112
|
+
* @memberof Vertex
|
|
113
|
+
* @type {boolean}
|
|
114
|
+
* @instance
|
|
115
|
+
*/
|
|
116
|
+
isDestroyed: boolean;
|
|
117
|
+
|
|
104
118
|
/**
|
|
105
119
|
* The constructor for the vertex class.
|
|
106
120
|
*
|
|
@@ -406,19 +420,75 @@ export class Vertex implements XYCoords, SVGSerializable {
|
|
|
406
420
|
|
|
407
421
|
/**
|
|
408
422
|
* This is a vector-like behavior and 'scales' this vertex
|
|
409
|
-
* towards/from a given center.
|
|
423
|
+
* towards/from a given center by one uniform scale factor.
|
|
410
424
|
*
|
|
411
425
|
* @method scale
|
|
412
426
|
* @param {number} factor - The factor to 'scale' this vertex; 1.0 means no change.
|
|
413
|
-
* @param {
|
|
427
|
+
* @param {XYCoords=} center - The origin of scaling; default is (0,0).
|
|
414
428
|
* @return {Vertex} this
|
|
415
429
|
* @instance
|
|
416
430
|
* @memberof Vertex
|
|
417
431
|
**/
|
|
418
|
-
scale(factor: number, center?:
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
432
|
+
scale(factor: number, center?: XYCoords): Vertex {
|
|
433
|
+
return this.scaleXY({ x: factor, y: factor }, center);
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
/**
|
|
437
|
+
* Perform a linear interpolation towards the given target vertex.
|
|
438
|
+
* The amount value `t` is relative, `t=0.0` means no change, `t=1.0`
|
|
439
|
+
* means this point will be moved to the exact target position.
|
|
440
|
+
*
|
|
441
|
+
* `t=0.5` will move this point to the middle of the connecting
|
|
442
|
+
* linear segment.
|
|
443
|
+
*
|
|
444
|
+
* @param {XYCoords} target - The target position to lerp this vertex to.
|
|
445
|
+
* @param {number} t - The relative amount, usually in [0..1], but other values will work, too.
|
|
446
|
+
* @returns
|
|
447
|
+
*/
|
|
448
|
+
lerp(target: XYCoords, t: number): Vertex {
|
|
449
|
+
var diff = this.difference(target);
|
|
450
|
+
// return new Vertex(this.x + diff.x * t, this.y + diff.y * t);
|
|
451
|
+
this.x += diff.x * t;
|
|
452
|
+
this.y += diff.y * t;
|
|
453
|
+
return this;
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
/**
|
|
457
|
+
* Perform a linear interpolation towards the given target vertex (absolute variant).
|
|
458
|
+
* The amount value `t` is absolute, which means the lerp amount is a direct distance
|
|
459
|
+
* value. This point will have move the amount of the passed distance `u`.
|
|
460
|
+
*
|
|
461
|
+
* @param {XYCoords} target - The target position to lerp this vertex to.
|
|
462
|
+
* @param {number} t - The absolute move amount to use to lerping.
|
|
463
|
+
* @returns
|
|
464
|
+
*/
|
|
465
|
+
lerpAbs(target: XYCoords, u: number): Vertex {
|
|
466
|
+
var dist = this.distance(target);
|
|
467
|
+
var diff = this.difference(target);
|
|
468
|
+
var step = { x: diff.x / dist, y: diff.y / dist };
|
|
469
|
+
// return new Vertex(this.x + step.x * u, this.y + step.y * u);
|
|
470
|
+
this.x += step.x * u;
|
|
471
|
+
this.y += step.y * u;
|
|
472
|
+
return this;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
/**
|
|
476
|
+
* This is a vector-like behavior and 'scales' this vertex
|
|
477
|
+
* towards/from a given center by two independent x- and y- scale factors.
|
|
478
|
+
*
|
|
479
|
+
* @method scale
|
|
480
|
+
* @param {number} factor - The factor to 'scale' this vertex; 1.0 means no change.
|
|
481
|
+
* @param {XYCoords=} center - The origin of scaling; default is (0,0).
|
|
482
|
+
* @return {Vertex} this
|
|
483
|
+
* @instance
|
|
484
|
+
* @memberof Vertex
|
|
485
|
+
**/
|
|
486
|
+
scaleXY(factors: XYCoords, center?: XYCoords): Vertex {
|
|
487
|
+
if (!center || typeof center === "undefined") {
|
|
488
|
+
center = { x: 0, y: 0 };
|
|
489
|
+
}
|
|
490
|
+
this.x = center.x + (this.x - center.x) * factors.x;
|
|
491
|
+
this.y = center.y + (this.y - center.y) * factors.y;
|
|
422
492
|
return this;
|
|
423
493
|
}
|
|
424
494
|
|
|
@@ -513,20 +583,35 @@ export class Vertex implements XYCoords, SVGSerializable {
|
|
|
513
583
|
* @return {string} A string representing the SVG code for this vertex.
|
|
514
584
|
* @instance
|
|
515
585
|
* @memberof Vertex
|
|
586
|
+
* @deprecated
|
|
516
587
|
**/
|
|
517
588
|
toSVGString(options: { className?: string }): string {
|
|
518
|
-
options = options || {};
|
|
519
|
-
var buffer = [];
|
|
520
|
-
buffer.push("<circle");
|
|
521
|
-
if (options.className) buffer.push(' class="' + options.className + '"');
|
|
522
|
-
buffer.push(' cx="' + this.x + '"');
|
|
523
|
-
buffer.push(' cy="' + this.y + '"');
|
|
524
|
-
buffer.push(' r="2"');
|
|
525
|
-
buffer.push(" />");
|
|
526
|
-
return buffer.join("");
|
|
589
|
+
// options = options || {};
|
|
590
|
+
// var buffer = [];
|
|
591
|
+
// buffer.push("<circle");
|
|
592
|
+
// if (options.className) buffer.push(' class="' + options.className + '"');
|
|
593
|
+
// buffer.push(' cx="' + this.x + '"');
|
|
594
|
+
// buffer.push(' cy="' + this.y + '"');
|
|
595
|
+
// buffer.push(' r="2"');
|
|
596
|
+
// buffer.push(" />");
|
|
597
|
+
// return buffer.join("");
|
|
598
|
+
console.warn(
|
|
599
|
+
"[Deprecation] Warning: the Vertex.toSVGString method is deprecated and does not return and valid SVG data any more. Please use `drawutilssvg` instead."
|
|
600
|
+
);
|
|
601
|
+
return "";
|
|
527
602
|
}
|
|
528
603
|
// END Vertex
|
|
529
604
|
|
|
605
|
+
/**
|
|
606
|
+
* This function should invalidate any installed listeners and invalidate this object.
|
|
607
|
+
* After calling this function the object might not hold valid data any more and
|
|
608
|
+
* should not be used.
|
|
609
|
+
*/
|
|
610
|
+
destroy() {
|
|
611
|
+
this.listeners.removeAllListeners();
|
|
612
|
+
this.isDestroyed = true;
|
|
613
|
+
}
|
|
614
|
+
|
|
530
615
|
/**
|
|
531
616
|
* Create a new random vertex inside the given viewport.
|
|
532
617
|
*
|
|
@@ -588,6 +673,22 @@ export class Vertex implements XYCoords, SVGSerializable {
|
|
|
588
673
|
);
|
|
589
674
|
|
|
590
675
|
return vertices;
|
|
676
|
+
},
|
|
677
|
+
|
|
678
|
+
/**
|
|
679
|
+
* Convert the given vertices (array) to a JSON string.
|
|
680
|
+
*
|
|
681
|
+
* @param {number?} precision - (optional) The numeric precision to be used (number of precision digits).
|
|
682
|
+
* @returns {string}
|
|
683
|
+
*/
|
|
684
|
+
arrayToJSON(vertices: Array<XYCoords>, precision?: number) {
|
|
685
|
+
return JSON.stringify(
|
|
686
|
+
vertices.map(function (vert) {
|
|
687
|
+
return typeof precision === undefined
|
|
688
|
+
? { x: vert.x, y: vert.y }
|
|
689
|
+
: { x: Number(vert.x.toFixed(precision)), y: Number(vert.y.toFixed(precision)) };
|
|
690
|
+
})
|
|
691
|
+
);
|
|
591
692
|
}
|
|
592
693
|
};
|
|
593
694
|
}
|