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.
Files changed (213) hide show
  1. package/README.md +5 -1
  2. package/changelog.md +50 -0
  3. package/dist/index.esm.js +999 -510
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.esm.min.js +1 -1
  6. package/dist/index.esm.min.js.map +1 -1
  7. package/dist/plotboilerplate.browser.min.js +1 -1
  8. package/dist/plotboilerplate.browser.min.js.map +1 -1
  9. package/dist/plotboilerplate.js +1013 -509
  10. package/dist/plotboilerplate.min.js +1 -1
  11. package/package.json +1 -1
  12. package/src/cjs/BezierPath.d.ts +45 -2
  13. package/src/cjs/BezierPath.js +114 -18
  14. package/src/cjs/BezierPath.js.map +1 -1
  15. package/src/cjs/Circle.d.ts +25 -10
  16. package/src/cjs/Circle.js +38 -33
  17. package/src/cjs/Circle.js.map +1 -1
  18. package/src/cjs/CircleSector.d.ts +27 -13
  19. package/src/cjs/CircleSector.js +38 -23
  20. package/src/cjs/CircleSector.js.map +1 -1
  21. package/src/cjs/CubicBezierCurve.d.ts +17 -1
  22. package/src/cjs/CubicBezierCurve.js +78 -79
  23. package/src/cjs/CubicBezierCurve.js.map +1 -1
  24. package/src/cjs/KeyHandler.d.ts +10 -3
  25. package/src/cjs/KeyHandler.js +28 -23
  26. package/src/cjs/KeyHandler.js.map +1 -1
  27. package/src/cjs/Line.d.ts +2 -1
  28. package/src/cjs/Line.js +19 -18
  29. package/src/cjs/Line.js.map +1 -1
  30. package/src/cjs/MouseHandler.js +43 -53
  31. package/src/cjs/MouseHandler.js.map +1 -1
  32. package/src/cjs/PBImage.d.ts +16 -1
  33. package/src/cjs/PBImage.js +13 -3
  34. package/src/cjs/PBImage.js.map +1 -1
  35. package/src/cjs/PBText.d.ts +130 -0
  36. package/src/cjs/PBText.js +76 -0
  37. package/src/cjs/PBText.js.map +1 -0
  38. package/src/cjs/PlotBoilerplate.d.ts +2 -1
  39. package/src/cjs/PlotBoilerplate.js +44 -16
  40. package/src/cjs/PlotBoilerplate.js.map +1 -1
  41. package/src/cjs/Polygon.d.ts +37 -1
  42. package/src/cjs/Polygon.js +131 -54
  43. package/src/cjs/Polygon.js.map +1 -1
  44. package/src/cjs/Triangle.d.ts +16 -1
  45. package/src/cjs/Triangle.js +50 -54
  46. package/src/cjs/Triangle.js.map +1 -1
  47. package/src/cjs/VEllipse.d.ts +16 -1
  48. package/src/cjs/VEllipse.js +25 -12
  49. package/src/cjs/VEllipse.js.map +1 -1
  50. package/src/cjs/VEllipseSector.d.ts +15 -1
  51. package/src/cjs/VEllipseSector.js +11 -1
  52. package/src/cjs/VEllipseSector.js.map +1 -1
  53. package/src/cjs/Vector.d.ts +3 -1
  54. package/src/cjs/Vector.js +32 -36
  55. package/src/cjs/Vector.js.map +1 -1
  56. package/src/cjs/VertTuple.d.ts +15 -1
  57. package/src/cjs/VertTuple.js +14 -19
  58. package/src/cjs/VertTuple.js.map +1 -1
  59. package/src/cjs/Vertex.d.ts +66 -4
  60. package/src/cjs/Vertex.js +99 -17
  61. package/src/cjs/Vertex.js.map +1 -1
  62. package/src/cjs/VertexListeners.d.ts +12 -8
  63. package/src/cjs/VertexListeners.js +18 -25
  64. package/src/cjs/VertexListeners.js.map +1 -1
  65. package/src/cjs/draw.d.ts +30 -2
  66. package/src/cjs/draw.js +51 -6
  67. package/src/cjs/draw.js.map +1 -1
  68. package/src/cjs/drawgl.d.ts +29 -2
  69. package/src/cjs/drawgl.js +21 -4
  70. package/src/cjs/drawgl.js.map +1 -1
  71. package/src/cjs/drawutilssvg.d.ts +25 -7
  72. package/src/cjs/drawutilssvg.js +62 -14
  73. package/src/cjs/drawutilssvg.js.map +1 -1
  74. package/src/cjs/entry.js +1 -0
  75. package/src/cjs/index.d.ts +1 -0
  76. package/src/cjs/index.js +1 -0
  77. package/src/cjs/index.js.map +1 -1
  78. package/src/cjs/interfaces/DrawLib.d.ts +27 -6
  79. package/src/cjs/interfaces/DrawLib.js +3 -0
  80. package/src/cjs/interfaces/DrawLib.js.map +1 -1
  81. package/src/cjs/interfaces/core.d.ts +9 -1
  82. package/src/cjs/interfaces/core.js +1 -0
  83. package/src/cjs/interfaces/core.js.map +1 -1
  84. package/src/cjs/utils/creategui.js +1 -1
  85. package/src/cjs/utils/findInVertexArray.d.ts +19 -0
  86. package/src/cjs/utils/findInVertexArray.js +29 -0
  87. package/src/cjs/utils/findInVertexArray.js.map +1 -0
  88. package/src/cjs/utils/helpers/BezierPathInteractionHelper.d.ts +15 -0
  89. package/src/cjs/utils/helpers/BezierPathInteractionHelper.js +55 -28
  90. package/src/cjs/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
  91. package/src/cjs/utils/io/DndFileHandler.d.ts +63 -0
  92. package/src/cjs/utils/io/DndFileHandler.js +112 -0
  93. package/src/cjs/utils/io/DndFileHandler.js.map +1 -0
  94. package/src/cjs/utils/io/FileDrop.d.ts +98 -0
  95. package/src/cjs/utils/io/FileDrop.js +142 -0
  96. package/src/cjs/utils/io/FileDrop.js.map +1 -0
  97. package/src/esm/BezierPath.d.ts +45 -2
  98. package/src/esm/BezierPath.js +114 -18
  99. package/src/esm/BezierPath.js.map +1 -1
  100. package/src/esm/Circle.d.ts +25 -10
  101. package/src/esm/Circle.js +38 -33
  102. package/src/esm/Circle.js.map +1 -1
  103. package/src/esm/CircleSector.d.ts +27 -13
  104. package/src/esm/CircleSector.js +38 -23
  105. package/src/esm/CircleSector.js.map +1 -1
  106. package/src/esm/CubicBezierCurve.d.ts +17 -1
  107. package/src/esm/CubicBezierCurve.js +78 -79
  108. package/src/esm/CubicBezierCurve.js.map +1 -1
  109. package/src/esm/KeyHandler.d.ts +10 -3
  110. package/src/esm/KeyHandler.js +28 -23
  111. package/src/esm/KeyHandler.js.map +1 -1
  112. package/src/esm/Line.d.ts +2 -1
  113. package/src/esm/Line.js +19 -18
  114. package/src/esm/Line.js.map +1 -1
  115. package/src/esm/MouseHandler.js +43 -53
  116. package/src/esm/MouseHandler.js.map +1 -1
  117. package/src/esm/PBImage.d.ts +16 -1
  118. package/src/esm/PBImage.js +13 -3
  119. package/src/esm/PBImage.js.map +1 -1
  120. package/src/esm/PBText.d.ts +130 -0
  121. package/src/esm/PBText.js +71 -0
  122. package/src/esm/PBText.js.map +1 -0
  123. package/src/esm/PlotBoilerplate.d.ts +2 -1
  124. package/src/esm/PlotBoilerplate.js +44 -16
  125. package/src/esm/PlotBoilerplate.js.map +1 -1
  126. package/src/esm/Polygon.d.ts +37 -1
  127. package/src/esm/Polygon.js +131 -54
  128. package/src/esm/Polygon.js.map +1 -1
  129. package/src/esm/Triangle.d.ts +16 -1
  130. package/src/esm/Triangle.js +50 -54
  131. package/src/esm/Triangle.js.map +1 -1
  132. package/src/esm/VEllipse.d.ts +16 -1
  133. package/src/esm/VEllipse.js +25 -12
  134. package/src/esm/VEllipse.js.map +1 -1
  135. package/src/esm/VEllipseSector.d.ts +15 -1
  136. package/src/esm/VEllipseSector.js +11 -1
  137. package/src/esm/VEllipseSector.js.map +1 -1
  138. package/src/esm/Vector.d.ts +3 -1
  139. package/src/esm/Vector.js +32 -36
  140. package/src/esm/Vector.js.map +1 -1
  141. package/src/esm/VertTuple.d.ts +15 -1
  142. package/src/esm/VertTuple.js +14 -19
  143. package/src/esm/VertTuple.js.map +1 -1
  144. package/src/esm/Vertex.d.ts +66 -4
  145. package/src/esm/Vertex.js +99 -17
  146. package/src/esm/Vertex.js.map +1 -1
  147. package/src/esm/VertexListeners.d.ts +12 -8
  148. package/src/esm/VertexListeners.js +18 -25
  149. package/src/esm/VertexListeners.js.map +1 -1
  150. package/src/esm/draw.d.ts +30 -2
  151. package/src/esm/draw.js +51 -6
  152. package/src/esm/draw.js.map +1 -1
  153. package/src/esm/drawgl.d.ts +29 -2
  154. package/src/esm/drawgl.js +21 -4
  155. package/src/esm/drawgl.js.map +1 -1
  156. package/src/esm/drawutilssvg.d.ts +25 -7
  157. package/src/esm/drawutilssvg.js +62 -14
  158. package/src/esm/drawutilssvg.js.map +1 -1
  159. package/src/esm/entry.js +1 -0
  160. package/src/esm/index.d.ts +1 -0
  161. package/src/esm/index.js +1 -0
  162. package/src/esm/index.js.map +1 -1
  163. package/src/esm/interfaces/DrawLib.d.ts +27 -6
  164. package/src/esm/interfaces/DrawLib.js +3 -0
  165. package/src/esm/interfaces/DrawLib.js.map +1 -1
  166. package/src/esm/interfaces/core.d.ts +9 -1
  167. package/src/esm/interfaces/core.js +1 -0
  168. package/src/esm/interfaces/core.js.map +1 -1
  169. package/src/esm/utils/findInVertexArray.d.ts +19 -0
  170. package/src/esm/utils/findInVertexArray.js +25 -0
  171. package/src/esm/utils/findInVertexArray.js.map +1 -0
  172. package/src/esm/utils/helpers/BezierPathInteractionHelper.d.ts +15 -0
  173. package/src/esm/utils/helpers/BezierPathInteractionHelper.js +54 -28
  174. package/src/esm/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
  175. package/src/esm/utils/io/DndFileHandler.d.ts +63 -0
  176. package/src/esm/utils/io/DndFileHandler.js +106 -0
  177. package/src/esm/utils/io/DndFileHandler.js.map +1 -0
  178. package/src/esm/utils/io/FileDrop.d.ts +98 -0
  179. package/src/esm/utils/io/FileDrop.js +136 -0
  180. package/src/esm/utils/io/FileDrop.js.map +1 -0
  181. package/src/ts/BezierPath.ts +133 -16
  182. package/src/ts/Circle.ts +213 -200
  183. package/src/ts/CircleSector.ts +171 -141
  184. package/src/ts/CubicBezierCurve.ts +777 -810
  185. package/src/ts/KeyHandler.ts +221 -212
  186. package/src/ts/Line.ts +77 -80
  187. package/src/ts/MouseHandler.ts +356 -368
  188. package/src/ts/PBImage.ts +81 -68
  189. package/src/ts/PBText.ts +166 -0
  190. package/src/ts/PlotBoilerplate.ts +48 -20
  191. package/src/ts/Polygon.ts +519 -451
  192. package/src/ts/Triangle.ts +484 -489
  193. package/src/ts/VEllipse.ts +36 -11
  194. package/src/ts/VEllipseSector.ts +20 -1
  195. package/src/ts/Vector.ts +164 -160
  196. package/src/ts/VertTuple.ts +333 -338
  197. package/src/ts/Vertex.ts +117 -16
  198. package/src/ts/VertexListeners.ts +248 -266
  199. package/src/ts/draw.ts +71 -8
  200. package/src/ts/drawgl.ts +48 -8
  201. package/src/ts/drawutilssvg.ts +94 -17
  202. package/src/ts/index.ts +1 -0
  203. package/src/ts/interfaces/DrawLib.ts +30 -4
  204. package/src/ts/interfaces/core.ts +9 -0
  205. package/src/ts/utils/findInVertexArray.ts +28 -0
  206. package/src/ts/utils/helpers/BezierPathInteractionHelper.ts +61 -30
  207. package/src/ts/utils/io/FileDrop.ts +178 -0
  208. package/dist/plotboilerplate.browser.min.js.LICENSE.txt +0 -8
  209. package/src/ts/utils/algorithms/clearPolygonDuplicateVertices.ts~ +0 -5
  210. package/src/ts/utils/algorithms/findPolygonSelfIntersections.ts~ +0 -45
  211. package/src/ts/utils/algorithms/sh-tmp.ts~ +0 -59
  212. package/src/ts/utils/algorithms/splitPolygonToNonIntersecting.ts~ +0 -113
  213. package/src/ts/utils/algorithms/sutherlandHodgman.ts~ +0 -88
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ /**
3
+ * A basic IO handler for file drop (Drag-and-drop).
4
+ *
5
+ * Example use:
6
+ * ```javascript
7
+ * var body = document.getElememtByTagName("body")[0];
8
+ * var fileDrop = new FileDrop(body);
9
+ * fileDrop.onFileJSONDropped(function (jsonObject) {
10
+ * console.log("jsonObject", jsonObject);
11
+ * });
12
+ * ```
13
+ *
14
+ * @author Ikaros Kappler
15
+ * @date 2021-10-13
16
+ * @modified 2022-01-31 (ported from the ngdg project, then generalized)
17
+ * @version 2.0.0
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.FileDrop = void 0;
21
+ var FileDrop = /** @class */ (function () {
22
+ /**
23
+ *
24
+ * @param {HTMLElement} element - The element you wish to operate as the drop zone (like <body/>).
25
+ */
26
+ function FileDrop(element) {
27
+ var _this = this;
28
+ /**
29
+ * Internally handle a drop event.
30
+ *
31
+ * @param {DragEvent} event
32
+ * @returns {void}
33
+ */
34
+ this.handleDropEvent = function (event) {
35
+ event.preventDefault();
36
+ event.stopPropagation();
37
+ _this.element.style.opacity = "1.0";
38
+ if (!event.dataTransfer.files || event.dataTransfer.files.length === 0) {
39
+ // No files were dropped
40
+ return;
41
+ }
42
+ if (event.dataTransfer.files.length > 1) {
43
+ // Multiple file drop is not nupported
44
+ return;
45
+ }
46
+ if (!_this.fileDroppedCallbackJSON) {
47
+ // No handling callback defined.
48
+ return;
49
+ }
50
+ if (event.dataTransfer.files[0]) {
51
+ var file_1 = event.dataTransfer.files[0];
52
+ // console.log("file", file);
53
+ if (file_1.type.match(/json.*/) && _this.fileDroppedCallbackJSON) {
54
+ var reader = new FileReader();
55
+ reader.onload = function (readEvent) {
56
+ // Finished reading file data.
57
+ var jsonObject = JSON.parse(readEvent.target.result);
58
+ // TODO: what happens on fail?
59
+ _this.fileDroppedCallbackJSON(jsonObject);
60
+ };
61
+ reader.readAsText(file_1); // start reading the file data.
62
+ }
63
+ else if (file_1.type.match(/text\/plain.*/) && _this.fileDroppedCallbackText) {
64
+ var reader = new FileReader();
65
+ reader.onload = function (readEvent) {
66
+ // Finished reading file data.
67
+ _this.fileDroppedCallbackText(readEvent.target.result);
68
+ };
69
+ reader.readAsText(file_1); // start reading the file data.
70
+ }
71
+ else if (_this.fileDroppedCallbackBinary) {
72
+ var reader = new FileReader();
73
+ reader.onload = function (readEvent) {
74
+ // Finished reading file data.
75
+ _this.fileDroppedCallbackBinary(new Blob([readEvent.target.result]), file_1);
76
+ };
77
+ reader.readAsBinaryString(file_1); // start reading the file data.
78
+ }
79
+ }
80
+ };
81
+ /**
82
+ * Toggles the drop sensitive element's opacity to 0.5.
83
+ *
84
+ * @param {DragEvent} event - The event.
85
+ */
86
+ this.handleDragOverEvent = function (event) {
87
+ event.preventDefault();
88
+ event.stopPropagation();
89
+ _this.element.style.opacity = "0.5";
90
+ };
91
+ /**
92
+ * Restored the drop sensitive element's opacity back to 1.0.
93
+ *
94
+ * @param {DragEvent} event - The event.
95
+ */
96
+ this.handleDragLeaveEvent = function (event) {
97
+ event.preventDefault();
98
+ event.stopPropagation();
99
+ _this.element.style.opacity = "1.0";
100
+ };
101
+ this.element = element;
102
+ // Init the drop listeners
103
+ element.addEventListener("drop", this.handleDropEvent.bind(this));
104
+ element.addEventListener("dragover", this.handleDragOverEvent.bind(this));
105
+ element.addEventListener("dragleave", this.handleDragLeaveEvent.bind(this));
106
+ }
107
+ /**
108
+ * Install the JSON (MIME type json*) file drop callback. Note than only one callback can be installed
109
+ * in this implementation. Calling this method multiple times will overwrite previously
110
+ * installed listeners.
111
+ *
112
+ * The callback will receive the dropped file content as an object (parsed JSON).
113
+ *
114
+ * @param {(data:object)=>void} callback
115
+ */
116
+ FileDrop.prototype.onFileJSONDropped = function (callback) {
117
+ this.fileDroppedCallbackJSON = callback;
118
+ };
119
+ /**
120
+ * Install the text file (MIME type text/plain) drop callback. Note than only one callback can be installed
121
+ * in this implementation. Calling this method multiple times will overwrite previously
122
+ * installed listeners.
123
+ *
124
+ * The callback will receive the dropped file content as a string.
125
+ *
126
+ * @param {(data:object)=>void} callback
127
+ */
128
+ FileDrop.prototype.onFileTextDropped = function (callback) {
129
+ this.fileDroppedCallbackText = callback;
130
+ };
131
+ /**
132
+ * Removes all listeners (drop, dragover and dragleave).
133
+ */
134
+ FileDrop.prototype.destroy = function () {
135
+ this.element.removeEventListener("drop", this.handleDropEvent);
136
+ this.element.removeEventListener("dragover", this.handleDragOverEvent);
137
+ this.element.removeEventListener("dragleave", this.handleDragLeaveEvent);
138
+ };
139
+ return FileDrop;
140
+ }());
141
+ exports.FileDrop = FileDrop;
142
+ //# sourceMappingURL=FileDrop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileDrop.js","sourceRoot":"","sources":["../../../ts/utils/io/FileDrop.ts"],"names":[],"mappings":"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"}
@@ -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
- * @version 2.3.1
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
@@ -87,6 +90,13 @@ export declare class BezierPath implements SVGSerializable {
87
90
  * @instance
88
91
  */
89
92
  bezierCurves: Array<CubicBezierCurve>;
93
+ /**
94
+ * @member {boolean}
95
+ * @memberof BezierPath
96
+ * @type {boolean}
97
+ * @instance
98
+ */
99
+ isDestroyed: boolean;
90
100
  /** @constant {number} */
91
101
  static START_POINT: number;
92
102
  /** @constant {number} */
@@ -261,6 +271,17 @@ export declare class BezierPath implements SVGSerializable {
261
271
  * @return {BezierPath} this for chaining
262
272
  **/
263
273
  translate(amount: Vertex): BezierPath;
274
+ /**
275
+ * Scale the whole bezier path by the given uniform factor.
276
+ *
277
+ * @method scale
278
+ * @param {Vertex} anchor - The scale origin to scale from.
279
+ * @param {number} scaleFactor - The scalar to be multiplied with.
280
+ * @instance
281
+ * @memberof BezierPath
282
+ * @return {BezierPath} this for chaining.
283
+ **/
284
+ scale(anchor: Vertex, scaleFactor: number): BezierPath;
264
285
  /**
265
286
  * Scale the whole bezier path by the given (x,y)-factors.
266
287
  *
@@ -271,7 +292,7 @@ export declare class BezierPath implements SVGSerializable {
271
292
  * @memberof BezierPath
272
293
  * @return {BezierPath} this for chaining.
273
294
  **/
274
- scale(anchor: Vertex, scaling: number): BezierPath;
295
+ scaleXY(scaleFactors: XYCoords, anchor?: XYCoords): BezierPath;
275
296
  /**
276
297
  * Rotate the whole bezier path around a point..
277
298
  *
@@ -459,6 +480,22 @@ export declare class BezierPath implements SVGSerializable {
459
480
  * @return {Bounds} The bounds of this Bézier path.
460
481
  **/
461
482
  getBounds(): Bounds;
483
+ /**
484
+ * Get n 'equally' distributed vertices along this Bézier path.
485
+ *
486
+ * As the changing curvature of the B slines makes prediction of distances difficult, the
487
+ * returned vertices' distances are only relatively equal:
488
+ * - the distance grows where curvature is large.
489
+ * - the distance shrinks where curvature is small.
490
+ *
491
+ * Only the distance mean of all consecutive is 1/n-th of the total arc length.
492
+ *
493
+ * Usually this approximation is good enough for most use cases.
494
+ *
495
+ * @param {number} pointCount - (must be at least 2) The number of desired points (start and end point included).
496
+ * @return {Array<Vertex>}
497
+ */
498
+ getEvenDistributionVertices(pointCount: number): Array<Vertex>;
462
499
  /**
463
500
  * Clone this BezierPath (deep clone).
464
501
  *
@@ -492,6 +529,12 @@ export declare class BezierPath implements SVGSerializable {
492
529
  toSVGString(options: {
493
530
  className?: string;
494
531
  }): string;
532
+ /**
533
+ * This function should invalidate any installed listeners and invalidate this object.
534
+ * After calling this function the object might not hold valid data any more and
535
+ * should not be used.
536
+ */
537
+ destroy(): void;
495
538
  /**
496
539
  * Create a JSON string representation of this bézier curve.
497
540
  *
@@ -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
- * @version 2.3.1
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
@@ -455,6 +458,35 @@ export class BezierPath {
455
458
  this.updateArcLengths();
456
459
  return this;
457
460
  }
461
+ /**
462
+ * Scale the whole bezier path by the given uniform factor.
463
+ *
464
+ * @method scale
465
+ * @param {Vertex} anchor - The scale origin to scale from.
466
+ * @param {number} scaleFactor - The scalar to be multiplied with.
467
+ * @instance
468
+ * @memberof BezierPath
469
+ * @return {BezierPath} this for chaining.
470
+ **/
471
+ scale(anchor, scaleFactor) {
472
+ // var scaleFactors : XYCoords = { x : scaleFactor, y : scaleFactor };
473
+ // for (var i = 0; i < this.bezierCurves.length; i++) {
474
+ // var curve = this.bezierCurves[i];
475
+ // curve.getStartPoint().scale(scaleFactor, anchor);
476
+ // curve.getStartControlPoint().scale(scaleFactor, anchor);
477
+ // curve.getEndControlPoint().scale(scaleFactor, anchor);
478
+ // // Do NOT scale the end point here!
479
+ // // Don't forget that the curves are connected and on curve's end point
480
+ // // the the successor's start point (same instance)!
481
+ // }
482
+ // // Finally move the last end point (was not scaled yet)
483
+ // if (this.bezierCurves.length > 0 && !this.adjustCircular) {
484
+ // this.bezierCurves[this.bezierCurves.length - 1].getEndPoint().scale(scaleFactor, anchor);
485
+ // }
486
+ // this.updateArcLengths();
487
+ // return this;
488
+ return this.scaleXY({ x: scaleFactor, y: scaleFactor }, anchor);
489
+ }
458
490
  /**
459
491
  * Scale the whole bezier path by the given (x,y)-factors.
460
492
  *
@@ -465,19 +497,19 @@ export class BezierPath {
465
497
  * @memberof BezierPath
466
498
  * @return {BezierPath} this for chaining.
467
499
  **/
468
- scale(anchor, scaling) {
500
+ scaleXY(scaleFactors, anchor) {
469
501
  for (var i = 0; i < this.bezierCurves.length; i++) {
470
502
  var curve = this.bezierCurves[i];
471
- curve.getStartPoint().scale(scaling, anchor);
472
- curve.getStartControlPoint().scale(scaling, anchor);
473
- curve.getEndControlPoint().scale(scaling, anchor);
503
+ curve.getStartPoint().scaleXY(scaleFactors, anchor);
504
+ curve.getStartControlPoint().scaleXY(scaleFactors, anchor);
505
+ curve.getEndControlPoint().scaleXY(scaleFactors, anchor);
474
506
  // Do NOT scale the end point here!
475
507
  // Don't forget that the curves are connected and on curve's end point
476
508
  // the the successor's start point (same instance)!
477
509
  }
478
510
  // Finally move the last end point (was not scaled yet)
479
511
  if (this.bezierCurves.length > 0 && !this.adjustCircular) {
480
- this.bezierCurves[this.bezierCurves.length - 1].getEndPoint().scale(scaling, anchor);
512
+ this.bezierCurves[this.bezierCurves.length - 1].getEndPoint().scaleXY(scaleFactors, anchor);
481
513
  }
482
514
  this.updateArcLengths();
483
515
  return this;
@@ -886,6 +918,59 @@ export class BezierPath {
886
918
  }
887
919
  return new Bounds(min, max);
888
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
+ }
889
974
  /**
890
975
  * Clone this BezierPath (deep clone).
891
976
  *
@@ -943,19 +1028,30 @@ export class BezierPath {
943
1028
  * @return {string} The SVG string.
944
1029
  **/
945
1030
  toSVGString(options) {
946
- options = options || {};
947
- var buffer = [];
948
- buffer.push("<path");
949
- if (options.className)
950
- buffer.push(' class="' + options.className + '"');
951
- buffer.push(' d="');
952
- for (var c = 0; c < this.bezierCurves.length; c++) {
953
- if (c > 0)
954
- buffer.push(" ");
955
- buffer.push(this.bezierCurves[c].toSVGPathData());
1031
+ // options = options || {};
1032
+ // var buffer: Array<string> = [];
1033
+ // buffer.push("<path");
1034
+ // if (options.className) buffer.push(' class="' + options.className + '"');
1035
+ // buffer.push(' d="');
1036
+ // for (var c = 0; c < this.bezierCurves.length; c++) {
1037
+ // if (c > 0) buffer.push(" ");
1038
+ // buffer.push(this.bezierCurves[c].toSVGPathData());
1039
+ // }
1040
+ // buffer.push('" />');
1041
+ // return buffer.join("");
1042
+ console.warn("[Deprecation] Warning: the BezierPath.toSVGString method is deprecated and does not return and valid SVG data any more. Please use `drawutilssvg` instead.");
1043
+ return "";
1044
+ }
1045
+ /**
1046
+ * This function should invalidate any installed listeners and invalidate this object.
1047
+ * After calling this function the object might not hold valid data any more and
1048
+ * should not be used.
1049
+ */
1050
+ destroy() {
1051
+ for (var i = 0; i < this.bezierCurves.length; i++) {
1052
+ this.bezierCurves[i].destroy();
956
1053
  }
957
- buffer.push('" />');
958
- return buffer.join("");
1054
+ this.isDestroyed = true;
959
1055
  }
960
1056
  /**
961
1057
  * 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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"}
@@ -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
- * @version 1.2.0
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,24 @@ export declare class Circle implements SVGSerializable {
118
127
  **/
119
128
  circleIntersection(circle: Circle): Line | null;
120
129
  /**
121
- * Create an SVG representation of this circle.
122
- *
123
- * @deprecated DEPRECATION Please use the drawutilssvg library and an XMLSerializer instead.
124
- * @method toSVGString
125
- * @param {object=} options - An optional set of options, like 'className'.
126
- * @return {string} A string representing the SVG code for this vertex.
127
- * @instance
128
- * @memberof Circle
129
- */
130
+ * Create an SVG representation of this circle.
131
+ *
132
+ * @deprecated DEPRECATION Please use the drawutilssvg library and an XMLSerializer instead.
133
+ * @method toSVGString
134
+ * @param {object=} options - An optional set of options, like 'className'.
135
+ * @return {string} A string representing the SVG code for this vertex.
136
+ * @instance
137
+ * @memberof Circle
138
+ */
130
139
  toSVGString(options: {
131
140
  className?: string;
132
141
  }): string;
142
+ /**
143
+ * This function should invalidate any installed listeners and invalidate this object.
144
+ * After calling this function the object might not hold valid data any more and
145
+ * should not be used.
146
+ */
147
+ destroy(): void;
133
148
  static circleUtils: {
134
149
  vertAt: (angle: number, radius: number) => Vertex;
135
150
  };