plotboilerplate 1.14.0 → 1.17.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 +2 -0
- package/changelog.md +57 -0
- package/dist/index.esm.js +856 -694
- 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 +858 -598
- package/dist/plotboilerplate.min.js +1 -1
- package/package.json +1 -1
- package/src/cjs/BezierPath.d.ts +32 -14
- package/src/cjs/BezierPath.js +65 -24
- package/src/cjs/BezierPath.js.map +1 -1
- package/src/cjs/Bounds.d.ts +22 -1
- package/src/cjs/Bounds.js +24 -1
- package/src/cjs/Bounds.js.map +1 -1
- package/src/cjs/Circle.d.ts +15 -13
- package/src/cjs/Circle.js +16 -34
- package/src/cjs/Circle.js.map +1 -1
- package/src/cjs/CircleSector.d.ts +17 -16
- package/src/cjs/CircleSector.js +12 -24
- package/src/cjs/CircleSector.js.map +1 -1
- package/src/cjs/CubicBezierCurve.d.ts +16 -15
- package/src/cjs/CubicBezierCurve.js +57 -94
- 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 -15
- package/src/cjs/Line.js +6 -31
- 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 +15 -13
- package/src/cjs/PBImage.js +11 -15
- package/src/cjs/PBImage.js.map +1 -1
- package/src/cjs/PBText.d.ts +13 -12
- package/src/cjs/PBText.js +8 -12
- package/src/cjs/PBText.js.map +1 -1
- package/src/cjs/PlotBoilerplate.js +3 -2
- package/src/cjs/PlotBoilerplate.js.map +1 -1
- package/src/cjs/Polygon.d.ts +44 -14
- package/src/cjs/Polygon.js +116 -66
- package/src/cjs/Polygon.js.map +1 -1
- package/src/cjs/Triangle.d.ts +15 -13
- package/src/cjs/Triangle.js +23 -64
- package/src/cjs/Triangle.js.map +1 -1
- package/src/cjs/VEllipse.d.ts +14 -9
- package/src/cjs/VEllipse.js +10 -18
- 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 -15
- package/src/cjs/Vector.js +9 -49
- 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 +47 -13
- package/src/cjs/Vertex.js +62 -22
- 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 +41 -2
- package/src/cjs/draw.js +140 -3
- package/src/cjs/draw.js.map +1 -1
- package/src/cjs/drawgl.d.ts +38 -2
- package/src/cjs/drawgl.js +41 -2
- package/src/cjs/drawgl.js.map +1 -1
- package/src/cjs/drawutilssvg.d.ts +66 -3
- package/src/cjs/drawutilssvg.js +140 -15
- package/src/cjs/drawutilssvg.js.map +1 -1
- package/src/cjs/index.d.ts +0 -1
- package/src/cjs/index.js +0 -1
- package/src/cjs/index.js.map +1 -1
- package/src/cjs/interfaces/DrawLib.d.ts +61 -26
- package/src/cjs/interfaces/DrawLib.js +2 -0
- package/src/cjs/interfaces/DrawLib.js.map +1 -1
- package/src/cjs/interfaces/core.d.ts +0 -12
- package/src/cjs/module.d.ts +1 -3
- package/src/cjs/module.js +2 -5
- package/src/cjs/module.js.map +1 -1
- package/src/cjs/utils/creategui.js +16 -2
- package/src/cjs/utils/datastructures/Girih.d.ts +5 -0
- package/src/cjs/utils/datastructures/Girih.js +18 -14
- package/src/cjs/utils/datastructures/Girih.js.map +1 -1
- package/src/cjs/utils/datastructures/GirihPenroseRhombus.js +42 -25
- package/src/cjs/utils/datastructures/GirihPenroseRhombus.js.map +1 -1
- package/src/cjs/utils/datastructures/GirihTile.js +2 -13
- package/src/cjs/utils/datastructures/GirihTile.js.map +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 +17 -1
- package/src/cjs/utils/helpers/BezierPathInteractionHelper.js +50 -32
- 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 +32 -14
- package/src/esm/BezierPath.js +65 -24
- package/src/esm/BezierPath.js.map +1 -1
- package/src/esm/Bounds.d.ts +22 -1
- package/src/esm/Bounds.js +24 -1
- package/src/esm/Bounds.js.map +1 -1
- package/src/esm/Circle.d.ts +15 -13
- package/src/esm/Circle.js +16 -34
- package/src/esm/Circle.js.map +1 -1
- package/src/esm/CircleSector.d.ts +17 -16
- package/src/esm/CircleSector.js +12 -24
- package/src/esm/CircleSector.js.map +1 -1
- package/src/esm/CubicBezierCurve.d.ts +16 -15
- package/src/esm/CubicBezierCurve.js +57 -94
- 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 -15
- package/src/esm/Line.js +6 -31
- 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 +15 -13
- package/src/esm/PBImage.js +11 -15
- package/src/esm/PBImage.js.map +1 -1
- package/src/esm/PBText.d.ts +13 -12
- package/src/esm/PBText.js +8 -12
- package/src/esm/PBText.js.map +1 -1
- package/src/esm/PlotBoilerplate.js +3 -2
- package/src/esm/PlotBoilerplate.js.map +1 -1
- package/src/esm/Polygon.d.ts +44 -14
- package/src/esm/Polygon.js +116 -66
- package/src/esm/Polygon.js.map +1 -1
- package/src/esm/Triangle.d.ts +15 -13
- package/src/esm/Triangle.js +23 -64
- package/src/esm/Triangle.js.map +1 -1
- package/src/esm/VEllipse.d.ts +14 -9
- package/src/esm/VEllipse.js +10 -18
- 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 -15
- package/src/esm/Vector.js +9 -49
- 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 +47 -13
- package/src/esm/Vertex.js +62 -22
- 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 +41 -2
- package/src/esm/draw.js +139 -3
- package/src/esm/draw.js.map +1 -1
- package/src/esm/drawgl.d.ts +38 -2
- package/src/esm/drawgl.js +41 -2
- package/src/esm/drawgl.js.map +1 -1
- package/src/esm/drawutilssvg.d.ts +66 -3
- package/src/esm/drawutilssvg.js +140 -15
- package/src/esm/drawutilssvg.js.map +1 -1
- package/src/esm/index.d.ts +0 -1
- package/src/esm/index.js +0 -1
- package/src/esm/index.js.map +1 -1
- package/src/esm/interfaces/DrawLib.d.ts +61 -26
- package/src/esm/interfaces/DrawLib.js +2 -0
- package/src/esm/interfaces/DrawLib.js.map +1 -1
- package/src/esm/interfaces/core.d.ts +0 -12
- package/src/esm/module.d.ts +1 -3
- package/src/esm/module.js +5 -4
- package/src/esm/module.js.map +1 -1
- package/src/esm/utils/datastructures/Girih.d.ts +5 -0
- package/src/esm/utils/datastructures/Girih.js +18 -14
- package/src/esm/utils/datastructures/Girih.js.map +1 -1
- package/src/esm/utils/datastructures/GirihPenroseRhombus.js +42 -25
- package/src/esm/utils/datastructures/GirihPenroseRhombus.js.map +1 -1
- package/src/esm/utils/datastructures/GirihTile.js +2 -13
- package/src/esm/utils/datastructures/GirihTile.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 +17 -1
- package/src/esm/utils/helpers/BezierPathInteractionHelper.js +49 -32
- 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 +78 -22
- package/src/ts/Bounds.ts +25 -1
- package/src/ts/Circle.ts +187 -200
- package/src/ts/CircleSector.ts +141 -141
- package/src/ts/CubicBezierCurve.ts +738 -810
- package/src/ts/KeyHandler.ts +221 -212
- package/src/ts/Line.ts +48 -80
- package/src/ts/MouseHandler.ts +356 -368
- package/src/ts/PBImage.ts +67 -69
- package/src/ts/PBText.ts +16 -14
- package/src/ts/PlotBoilerplate.ts +4 -2
- package/src/ts/Polygon.ts +493 -451
- package/src/ts/Triangle.ts +444 -489
- package/src/ts/VEllipse.ts +18 -17
- package/src/ts/VEllipseSector.ts +20 -1
- package/src/ts/Vector.ts +124 -160
- package/src/ts/VertTuple.ts +333 -338
- package/src/ts/Vertex.ts +75 -21
- package/src/ts/VertexListeners.ts +248 -266
- package/src/ts/draw.ts +192 -3
- package/src/ts/drawgl.ts +44 -2
- package/src/ts/drawutilssvg.ts +181 -15
- package/src/ts/index.ts +0 -1
- package/src/ts/interfaces/DrawLib.ts +69 -26
- package/src/ts/interfaces/core.ts +0 -11
- package/src/ts/module.ts +2 -4
- package/src/ts/utils/datastructures/Girih.ts +204 -209
- package/src/ts/utils/datastructures/GirihPenroseRhombus.ts +170 -152
- package/src/ts/utils/datastructures/GirihTile.ts +394 -419
- package/src/ts/utils/findInVertexArray.ts +28 -0
- package/src/ts/utils/helpers/BezierPathInteractionHelper.ts +56 -34
- package/src/ts/utils/io/FileDrop.ts +178 -0
- package/src/ts/SVGBuilder.ts +0 -109
- package/src/ts/utils/algorithms/sh-tmp.ts~ +0 -59
package/src/esm/BezierPath.js
CHANGED
|
@@ -20,7 +20,10 @@
|
|
|
20
20
|
* @modified 2020-07-24 Added the getClosestT(Vertex) function.
|
|
21
21
|
* @modified 2020-12-29 Constructor is now private (no explicit use intended).
|
|
22
22
|
* @modified 2021-05-25 Added BezierPath.fromReducedList( Array<number> ).
|
|
23
|
-
* @
|
|
23
|
+
* @modified 2022-01-31 Added `BezierPath.getEvenDistributionVertices(number)`.
|
|
24
|
+
* @modified 2022-02-02 Added the `destroy` method.
|
|
25
|
+
* @modified 2022-02-02 Cleared the `toSVGString` function (deprecated). Use `drawutilssvg` instead.
|
|
26
|
+
* @version 2.5.0
|
|
24
27
|
*
|
|
25
28
|
* @file BezierPath
|
|
26
29
|
* @public
|
|
@@ -915,6 +918,59 @@ export class BezierPath {
|
|
|
915
918
|
}
|
|
916
919
|
return new Bounds(min, max);
|
|
917
920
|
}
|
|
921
|
+
/**
|
|
922
|
+
* Get n 'equally' distributed vertices along this Bézier path.
|
|
923
|
+
*
|
|
924
|
+
* As the changing curvature of the B slines makes prediction of distances difficult, the
|
|
925
|
+
* returned vertices' distances are only relatively equal:
|
|
926
|
+
* - the distance grows where curvature is large.
|
|
927
|
+
* - the distance shrinks where curvature is small.
|
|
928
|
+
*
|
|
929
|
+
* Only the distance mean of all consecutive is 1/n-th of the total arc length.
|
|
930
|
+
*
|
|
931
|
+
* Usually this approximation is good enough for most use cases.
|
|
932
|
+
*
|
|
933
|
+
* @param {number} pointCount - (must be at least 2) The number of desired points (start and end point included).
|
|
934
|
+
* @return {Array<Vertex>}
|
|
935
|
+
*/
|
|
936
|
+
getEvenDistributionVertices(pointCount) {
|
|
937
|
+
if (pointCount < 2) {
|
|
938
|
+
throw new Error("pointCount must be larger than one; is " + pointCount + ".");
|
|
939
|
+
}
|
|
940
|
+
const result = [];
|
|
941
|
+
if (this.bezierCurves.length === 0) {
|
|
942
|
+
return result;
|
|
943
|
+
}
|
|
944
|
+
// Fetch and add the start point from the source polygon
|
|
945
|
+
var polygonPoint = new Vertex(this.bezierCurves[0].startPoint);
|
|
946
|
+
result.push(polygonPoint);
|
|
947
|
+
// if (this.bezierCurves.length === 1) {
|
|
948
|
+
// return result;
|
|
949
|
+
// }
|
|
950
|
+
const perimeter = this.totalArcLength;
|
|
951
|
+
const stepSize = perimeter / (pointCount - 1);
|
|
952
|
+
const n = this.bezierCurves.length;
|
|
953
|
+
let curveIndex = 0;
|
|
954
|
+
let segmentLength = this.bezierCurves[0].arcLength;
|
|
955
|
+
let curSegmentU = stepSize;
|
|
956
|
+
let i = 1;
|
|
957
|
+
while (i < pointCount && curveIndex < n) {
|
|
958
|
+
// Check if next eq point is inside this segment
|
|
959
|
+
if (curSegmentU < segmentLength) {
|
|
960
|
+
var newPoint = this.bezierCurves[curveIndex].getPoint(curSegmentU);
|
|
961
|
+
result.push(newPoint);
|
|
962
|
+
curSegmentU += stepSize;
|
|
963
|
+
i++;
|
|
964
|
+
}
|
|
965
|
+
else {
|
|
966
|
+
curveIndex++;
|
|
967
|
+
curSegmentU = curSegmentU - segmentLength;
|
|
968
|
+
segmentLength = curveIndex < n ? this.bezierCurves[curveIndex].arcLength : 0;
|
|
969
|
+
}
|
|
970
|
+
}
|
|
971
|
+
result.push(new Vertex(this.bezierCurves[n - 1].endPoint));
|
|
972
|
+
return result;
|
|
973
|
+
}
|
|
918
974
|
/**
|
|
919
975
|
* Clone this BezierPath (deep clone).
|
|
920
976
|
*
|
|
@@ -961,30 +1017,15 @@ export class BezierPath {
|
|
|
961
1017
|
return true;
|
|
962
1018
|
}
|
|
963
1019
|
/**
|
|
964
|
-
*
|
|
965
|
-
*
|
|
966
|
-
*
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
* @memberof BezierPath
|
|
972
|
-
* @return {string} The SVG string.
|
|
973
|
-
**/
|
|
974
|
-
toSVGString(options) {
|
|
975
|
-
options = options || {};
|
|
976
|
-
var buffer = [];
|
|
977
|
-
buffer.push("<path");
|
|
978
|
-
if (options.className)
|
|
979
|
-
buffer.push(' class="' + options.className + '"');
|
|
980
|
-
buffer.push(' d="');
|
|
981
|
-
for (var c = 0; c < this.bezierCurves.length; c++) {
|
|
982
|
-
if (c > 0)
|
|
983
|
-
buffer.push(" ");
|
|
984
|
-
buffer.push(this.bezierCurves[c].toSVGPathData());
|
|
1020
|
+
* This function should invalidate any installed listeners and invalidate this object.
|
|
1021
|
+
* After calling this function the object might not hold valid data any more and
|
|
1022
|
+
* should not be used.
|
|
1023
|
+
*/
|
|
1024
|
+
destroy() {
|
|
1025
|
+
for (var i = 0; i < this.bezierCurves.length; i++) {
|
|
1026
|
+
this.bezierCurves[i].destroy();
|
|
985
1027
|
}
|
|
986
|
-
|
|
987
|
-
return buffer.join("");
|
|
1028
|
+
this.isDestroyed = true;
|
|
988
1029
|
}
|
|
989
1030
|
/**
|
|
990
1031
|
* Create a JSON string representation of this bézier curve.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BezierPath.js","sourceRoot":"","sources":["../ts/BezierPath.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BezierPath.js","sourceRoot":"","sources":["../ts/BezierPath.ts"],"names":[],"mappings":"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"}
|
package/src/esm/Bounds.d.ts
CHANGED
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* @modified 2020-11-19 Set min, max, width and height to private.
|
|
6
6
|
* @modified 2021-02-02 Added the `toPolygon` method.
|
|
7
7
|
* @modified 2021-06-21 (mid-summer) Added `getCenter` method.
|
|
8
|
-
* @
|
|
8
|
+
* @modified 2022-02-01 Added the `toString` function.
|
|
9
|
+
* @version 1.4.0
|
|
9
10
|
**/
|
|
10
11
|
import { Polygon } from "./Polygon";
|
|
11
12
|
import { XYCoords, IBounds, XYDimension } from "./interfaces";
|
|
@@ -64,7 +65,27 @@ export declare class Bounds implements IBounds, XYDimension {
|
|
|
64
65
|
* @return {Polygon} This bound rectangle as a polygon.
|
|
65
66
|
*/
|
|
66
67
|
toPolygon(): Polygon;
|
|
68
|
+
/**
|
|
69
|
+
* Get the center of this boinding box.
|
|
70
|
+
*
|
|
71
|
+
* @method getCenter
|
|
72
|
+
* @instance
|
|
73
|
+
* @memberof Bounds
|
|
74
|
+
* @returns {Vertex} The center of these bounds.
|
|
75
|
+
*/
|
|
67
76
|
getCenter(): Vertex;
|
|
77
|
+
/**
|
|
78
|
+
* Convert these bounds to a human readable form.
|
|
79
|
+
*
|
|
80
|
+
* Note: the returned format might change in the future, so please do not
|
|
81
|
+
* rely on the returned string format.
|
|
82
|
+
*
|
|
83
|
+
* @method toString
|
|
84
|
+
* @instance
|
|
85
|
+
* @memberof Bounds
|
|
86
|
+
* @returns {string} Get these bounds in a human readable form.
|
|
87
|
+
*/
|
|
88
|
+
toString(): string;
|
|
68
89
|
/**
|
|
69
90
|
* Compute the minimal bounding box for a given set of vertices.
|
|
70
91
|
*
|
package/src/esm/Bounds.js
CHANGED
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* @modified 2020-11-19 Set min, max, width and height to private.
|
|
6
6
|
* @modified 2021-02-02 Added the `toPolygon` method.
|
|
7
7
|
* @modified 2021-06-21 (mid-summer) Added `getCenter` method.
|
|
8
|
-
* @
|
|
8
|
+
* @modified 2022-02-01 Added the `toString` function.
|
|
9
|
+
* @version 1.4.0
|
|
9
10
|
**/
|
|
10
11
|
import { Polygon } from "./Polygon";
|
|
11
12
|
import { Vertex } from "./Vertex";
|
|
@@ -42,9 +43,31 @@ export class Bounds {
|
|
|
42
43
|
toPolygon() {
|
|
43
44
|
return new Polygon([new Vertex(this.min), new Vertex(this.max.x, this.min.y), new Vertex(this.max), new Vertex(this.min.x, this.max.y)], false);
|
|
44
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Get the center of this boinding box.
|
|
48
|
+
*
|
|
49
|
+
* @method getCenter
|
|
50
|
+
* @instance
|
|
51
|
+
* @memberof Bounds
|
|
52
|
+
* @returns {Vertex} The center of these bounds.
|
|
53
|
+
*/
|
|
45
54
|
getCenter() {
|
|
46
55
|
return new Vertex(this.min.x + (this.max.x - this.min.x) / 2.0, this.min.y + (this.max.y - this.min.y) / 2);
|
|
47
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Convert these bounds to a human readable form.
|
|
59
|
+
*
|
|
60
|
+
* Note: the returned format might change in the future, so please do not
|
|
61
|
+
* rely on the returned string format.
|
|
62
|
+
*
|
|
63
|
+
* @method toString
|
|
64
|
+
* @instance
|
|
65
|
+
* @memberof Bounds
|
|
66
|
+
* @returns {string} Get these bounds in a human readable form.
|
|
67
|
+
*/
|
|
68
|
+
toString() {
|
|
69
|
+
return `{ min: ${this.min.toString()}, max : ${this.max.toString()}, width: ${this.width}, height : ${this.height} }`;
|
|
70
|
+
}
|
|
48
71
|
/**
|
|
49
72
|
* Compute the minimal bounding box for a given set of vertices.
|
|
50
73
|
*
|
package/src/esm/Bounds.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bounds.js","sourceRoot":"","sources":["../ts/Bounds.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Bounds.js","sourceRoot":"","sources":["../ts/Bounds.ts"],"names":[],"mappings":"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"}
|
package/src/esm/Circle.d.ts
CHANGED
|
@@ -7,7 +7,9 @@
|
|
|
7
7
|
* @modified 2020-09-07 Changed the vertAt function by switching sin and cos! The old version did not return the correct vertex (by angle) accoring to the assumed circle math.
|
|
8
8
|
* @modified 2020-10-16 Added the containsCircle(...) function.
|
|
9
9
|
* @modified 2021-01-20 Added UID.
|
|
10
|
-
* @
|
|
10
|
+
* @modified 2022-02-02 Added the `destroy` method.
|
|
11
|
+
* @modified 2022-02-02 Cleared the `toSVGString` function (deprecated). Use `drawutilssvg` instead.
|
|
12
|
+
* @version 1.3.0
|
|
11
13
|
**/
|
|
12
14
|
import { Line } from "./Line";
|
|
13
15
|
import { Vector } from "./Vector";
|
|
@@ -51,6 +53,13 @@ export declare class Circle implements SVGSerializable {
|
|
|
51
53
|
* @instance
|
|
52
54
|
*/
|
|
53
55
|
radius: number;
|
|
56
|
+
/**
|
|
57
|
+
* @member isDestroyed
|
|
58
|
+
* @memberof CubicBezierCurve
|
|
59
|
+
* @type {boolean}
|
|
60
|
+
* @instance
|
|
61
|
+
*/
|
|
62
|
+
isDestroyed: boolean;
|
|
54
63
|
/**
|
|
55
64
|
* Create a new circle with given center point and radius.
|
|
56
65
|
*
|
|
@@ -118,18 +127,11 @@ export declare class Circle implements SVGSerializable {
|
|
|
118
127
|
**/
|
|
119
128
|
circleIntersection(circle: Circle): Line | null;
|
|
120
129
|
/**
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
* @return {string} A string representing the SVG code for this vertex.
|
|
127
|
-
* @instance
|
|
128
|
-
* @memberof Circle
|
|
129
|
-
*/
|
|
130
|
-
toSVGString(options: {
|
|
131
|
-
className?: string;
|
|
132
|
-
}): string;
|
|
130
|
+
* This function should invalidate any installed listeners and invalidate this object.
|
|
131
|
+
* After calling this function the object might not hold valid data any more and
|
|
132
|
+
* should not be used.
|
|
133
|
+
*/
|
|
134
|
+
destroy(): void;
|
|
133
135
|
static circleUtils: {
|
|
134
136
|
vertAt: (angle: number, radius: number) => Vertex;
|
|
135
137
|
};
|
package/src/esm/Circle.js
CHANGED
|
@@ -7,7 +7,9 @@
|
|
|
7
7
|
* @modified 2020-09-07 Changed the vertAt function by switching sin and cos! The old version did not return the correct vertex (by angle) accoring to the assumed circle math.
|
|
8
8
|
* @modified 2020-10-16 Added the containsCircle(...) function.
|
|
9
9
|
* @modified 2021-01-20 Added UID.
|
|
10
|
-
* @
|
|
10
|
+
* @modified 2022-02-02 Added the `destroy` method.
|
|
11
|
+
* @modified 2022-02-02 Cleared the `toSVGString` function (deprecated). Use `drawutilssvg` instead.
|
|
12
|
+
* @version 1.3.0
|
|
11
13
|
**/
|
|
12
14
|
import { Line } from "./Line";
|
|
13
15
|
import { UIDGenerator } from "./UIDGenerator";
|
|
@@ -42,7 +44,6 @@ export class Circle {
|
|
|
42
44
|
this.center = center;
|
|
43
45
|
this.radius = radius;
|
|
44
46
|
}
|
|
45
|
-
;
|
|
46
47
|
/**
|
|
47
48
|
* Check if the given circle is fully contained inside this circle.
|
|
48
49
|
*
|
|
@@ -55,7 +56,6 @@ export class Circle {
|
|
|
55
56
|
containsCircle(circle) {
|
|
56
57
|
return this.center.distance(circle.center) + circle.radius < this.radius;
|
|
57
58
|
}
|
|
58
|
-
;
|
|
59
59
|
/**
|
|
60
60
|
* Calculate the distance from this circle to the given line.
|
|
61
61
|
*
|
|
@@ -74,7 +74,6 @@ export class Circle {
|
|
|
74
74
|
const closestPointOnLine = line.getClosestPoint(this.center);
|
|
75
75
|
return closestPointOnLine.distance(this.center) - this.radius;
|
|
76
76
|
}
|
|
77
|
-
;
|
|
78
77
|
/**
|
|
79
78
|
* Get the vertex on the this circle for the given angle.
|
|
80
79
|
*
|
|
@@ -88,7 +87,6 @@ export class Circle {
|
|
|
88
87
|
// Find the point on the circle respective the angle. Then move relative to center.
|
|
89
88
|
return Circle.circleUtils.vertAt(angle, this.radius).add(this.center);
|
|
90
89
|
}
|
|
91
|
-
;
|
|
92
90
|
/**
|
|
93
91
|
* Get a tangent line of this circle for a given angle.
|
|
94
92
|
*
|
|
@@ -105,7 +103,6 @@ export class Circle {
|
|
|
105
103
|
// Construct the perpendicular of the line in point a. Then move relative to center.
|
|
106
104
|
return new Vector(pointA, new Vertex(0, 0)).add(this.center).perp();
|
|
107
105
|
}
|
|
108
|
-
;
|
|
109
106
|
/**
|
|
110
107
|
* Calculate the intersection points (if exists) with the given circle.
|
|
111
108
|
*
|
|
@@ -145,48 +142,33 @@ export class Circle {
|
|
|
145
142
|
// x4 = P2.x - h*(P1.y - P0.y)/d;
|
|
146
143
|
// y4 = P2.y + h*(P1.x - P0.x)/d;
|
|
147
144
|
// return pair<Point, Point>(Point(x3, y3), Point(x4, y4));
|
|
148
|
-
// }
|
|
145
|
+
// }
|
|
149
146
|
var p0 = this.center;
|
|
150
147
|
var p1 = circle.center;
|
|
151
148
|
var d = p0.distance(p1);
|
|
152
149
|
var a = (this.radius * this.radius - circle.radius * circle.radius + d * d) / (2 * d);
|
|
153
150
|
var h = Math.sqrt(this.radius * this.radius - a * a);
|
|
154
151
|
var p2 = p1.clone().scale(a / d, p0);
|
|
155
|
-
var x3 = p2.x + h * (p1.y - p0.y) / d;
|
|
156
|
-
var y3 = p2.y - h * (p1.x - p0.x) / d;
|
|
157
|
-
var x4 = p2.x - h * (p1.y - p0.y) / d;
|
|
158
|
-
var y4 = p2.y + h * (p1.x - p0.x) / d;
|
|
152
|
+
var x3 = p2.x + (h * (p1.y - p0.y)) / d;
|
|
153
|
+
var y3 = p2.y - (h * (p1.x - p0.x)) / d;
|
|
154
|
+
var x4 = p2.x - (h * (p1.y - p0.y)) / d;
|
|
155
|
+
var y4 = p2.y + (h * (p1.x - p0.x)) / d;
|
|
159
156
|
return new Line(new Vertex(x3, y3), new Vertex(x4, y4));
|
|
160
157
|
}
|
|
161
|
-
;
|
|
162
158
|
/**
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
* @memberof Circle
|
|
171
|
-
*/
|
|
172
|
-
toSVGString(options) {
|
|
173
|
-
options = options || {};
|
|
174
|
-
var buffer = [];
|
|
175
|
-
buffer.push('<circle');
|
|
176
|
-
if (options.className)
|
|
177
|
-
buffer.push(' class="' + options.className + '"');
|
|
178
|
-
buffer.push(' cx="' + this.center.x + '"');
|
|
179
|
-
buffer.push(' cy="' + this.center.y + '"');
|
|
180
|
-
buffer.push(' r="' + this.radius + '"');
|
|
181
|
-
buffer.push(' />');
|
|
182
|
-
return buffer.join('');
|
|
159
|
+
* This function should invalidate any installed listeners and invalidate this object.
|
|
160
|
+
* After calling this function the object might not hold valid data any more and
|
|
161
|
+
* should not be used.
|
|
162
|
+
*/
|
|
163
|
+
destroy() {
|
|
164
|
+
this.center.destroy();
|
|
165
|
+
this.isDestroyed = true;
|
|
183
166
|
}
|
|
184
|
-
;
|
|
185
167
|
} // END class
|
|
186
168
|
Circle.circleUtils = {
|
|
187
169
|
vertAt: (angle, radius) => {
|
|
188
170
|
/* return new Vertex( Math.sin(angle) * radius,
|
|
189
|
-
|
|
171
|
+
Math.cos(angle) * radius ); */
|
|
190
172
|
return new Vertex(Math.cos(angle) * radius, Math.sin(angle) * radius);
|
|
191
173
|
}
|
|
192
174
|
};
|
package/src/esm/Circle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Circle.js","sourceRoot":"","sources":["../ts/Circle.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Circle.js","sourceRoot":"","sources":["../ts/Circle.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,10 +37,10 @@ export declare class CircleSector implements SVGSerializable {
|
|
|
37
37
|
*/
|
|
38
38
|
circle: Circle;
|
|
39
39
|
/**
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
* @member {number}
|
|
41
|
+
* @memberof CircleSector
|
|
42
|
+
* @instance
|
|
43
|
+
*/
|
|
44
44
|
startAngle: number;
|
|
45
45
|
/**
|
|
46
46
|
* @member {number}
|
|
@@ -48,6 +48,13 @@ export declare class CircleSector implements SVGSerializable {
|
|
|
48
48
|
* @instance
|
|
49
49
|
*/
|
|
50
50
|
endAngle: number;
|
|
51
|
+
/**
|
|
52
|
+
* @member isDestroyed
|
|
53
|
+
* @memberof CircleSector
|
|
54
|
+
* @type {boolean}
|
|
55
|
+
* @instance
|
|
56
|
+
*/
|
|
57
|
+
isDestroyed: boolean;
|
|
51
58
|
/**
|
|
52
59
|
* Create a new circle sector with given circle, start- and end-angle.
|
|
53
60
|
*
|
|
@@ -59,17 +66,11 @@ export declare class CircleSector implements SVGSerializable {
|
|
|
59
66
|
*/
|
|
60
67
|
constructor(circle: Circle, startAngle: number, endAngle: number);
|
|
61
68
|
/**
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
* @instance
|
|
68
|
-
* @memberof Circle
|
|
69
|
-
*/
|
|
70
|
-
toSVGString(options: {
|
|
71
|
-
className?: string;
|
|
72
|
-
}): string;
|
|
69
|
+
* This function should invalidate any installed listeners and invalidate this object.
|
|
70
|
+
* After calling this function the object might not hold valid data any more and
|
|
71
|
+
* should not be used.
|
|
72
|
+
*/
|
|
73
|
+
destroy(): void;
|
|
73
74
|
static circleSectorUtils: {
|
|
74
75
|
/**
|
|
75
76
|
* Helper function to convert polar circle coordinates to cartesian coordinates.
|
|
@@ -77,7 +78,7 @@ export declare class CircleSector implements SVGSerializable {
|
|
|
77
78
|
* TODO: generalize for ellipses (two radii).
|
|
78
79
|
*
|
|
79
80
|
* @param {number} angle - The angle in radians.
|
|
80
|
-
|
|
81
|
+
*/
|
|
81
82
|
polarToCartesian: (centerX: number, centerY: number, radius: number, angle: number) => XYCoords;
|
|
82
83
|
/**
|
|
83
84
|
* Helper function to convert a circle section as SVG arc params (for the `d` attribute).
|
package/src/esm/CircleSector.js
CHANGED
|
@@ -35,27 +35,15 @@ export class CircleSector {
|
|
|
35
35
|
this.startAngle = startAngle;
|
|
36
36
|
this.endAngle = endAngle;
|
|
37
37
|
}
|
|
38
|
-
;
|
|
39
38
|
/**
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
*/
|
|
48
|
-
toSVGString(options) {
|
|
49
|
-
options = options || {};
|
|
50
|
-
var buffer = [];
|
|
51
|
-
buffer.push('<path ');
|
|
52
|
-
if (options.className)
|
|
53
|
-
buffer.push(' class="' + options.className + '"');
|
|
54
|
-
const data = CircleSector.circleSectorUtils.describeSVGArc(this.circle.center.x, this.circle.center.y, this.circle.radius, this.startAngle, this.endAngle);
|
|
55
|
-
buffer.push(' d="' + data.join(" ") + '" />');
|
|
56
|
-
return buffer.join('');
|
|
39
|
+
* This function should invalidate any installed listeners and invalidate this object.
|
|
40
|
+
* After calling this function the object might not hold valid data any more and
|
|
41
|
+
* should not be used.
|
|
42
|
+
*/
|
|
43
|
+
destroy() {
|
|
44
|
+
this.circle.destroy();
|
|
45
|
+
this.isDestroyed = true;
|
|
57
46
|
}
|
|
58
|
-
;
|
|
59
47
|
} // END class
|
|
60
48
|
CircleSector.circleSectorUtils = {
|
|
61
49
|
/**
|
|
@@ -64,11 +52,11 @@ CircleSector.circleSectorUtils = {
|
|
|
64
52
|
* TODO: generalize for ellipses (two radii).
|
|
65
53
|
*
|
|
66
54
|
* @param {number} angle - The angle in radians.
|
|
67
|
-
|
|
55
|
+
*/
|
|
68
56
|
polarToCartesian: (centerX, centerY, radius, angle) => {
|
|
69
57
|
return {
|
|
70
|
-
x: centerX +
|
|
71
|
-
y: centerY +
|
|
58
|
+
x: centerX + radius * Math.cos(angle),
|
|
59
|
+
y: centerY + radius * Math.sin(angle)
|
|
72
60
|
};
|
|
73
61
|
},
|
|
74
62
|
/**
|
|
@@ -81,7 +69,7 @@ CircleSector.circleSectorUtils = {
|
|
|
81
69
|
* @return [ 'A', radiusx, radiusy, rotation=0, largeArcFlag=1|0, sweepFlag=0, endx, endy ]
|
|
82
70
|
*/
|
|
83
71
|
describeSVGArc: (x, y, radius, startAngle, endAngle, options) => {
|
|
84
|
-
if (typeof options ===
|
|
72
|
+
if (typeof options === "undefined")
|
|
85
73
|
options = { moveToStart: true };
|
|
86
74
|
const end = CircleSector.circleSectorUtils.polarToCartesian(x, y, radius, endAngle);
|
|
87
75
|
const start = CircleSector.circleSectorUtils.polarToCartesian(x, y, radius, startAngle);
|
|
@@ -106,7 +94,7 @@ CircleSector.circleSectorUtils = {
|
|
|
106
94
|
}
|
|
107
95
|
const pathData = [];
|
|
108
96
|
if (options.moveToStart) {
|
|
109
|
-
pathData.push(
|
|
97
|
+
pathData.push("M", start.x, start.y);
|
|
110
98
|
}
|
|
111
99
|
pathData.push("A", radius, radius, 0, largeArcFlag, sweepFlag, end.x, end.y);
|
|
112
100
|
return pathData;
|