plotboilerplate 1.20.2 → 1.21.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 (127) hide show
  1. package/dist/index.esm.js +1985 -1368
  2. package/dist/index.esm.js.map +1 -1
  3. package/dist/index.esm.min.js +1 -1
  4. package/dist/index.esm.min.js.map +1 -1
  5. package/dist/plotboilerplate.browser.min.js +1 -1
  6. package/dist/plotboilerplate.browser.min.js.map +1 -1
  7. package/dist/plotboilerplate.js +1170 -541
  8. package/dist/plotboilerplate.min.js +1 -1
  9. package/package.json +1 -1
  10. package/src/cjs/BezierPath.d.ts +27 -49
  11. package/src/cjs/BezierPath.js +67 -234
  12. package/src/cjs/BezierPath.js.map +1 -1
  13. package/src/cjs/Bounds.d.ts +14 -1
  14. package/src/cjs/Bounds.js +21 -1
  15. package/src/cjs/Bounds.js.map +1 -1
  16. package/src/cjs/CubicBezierCurve.d.ts +70 -1
  17. package/src/cjs/CubicBezierCurve.js +130 -12
  18. package/src/cjs/CubicBezierCurve.js.map +1 -1
  19. package/src/cjs/Line.d.ts +2 -1
  20. package/src/cjs/Line.js +1 -0
  21. package/src/cjs/Line.js.map +1 -1
  22. package/src/cjs/PBText.d.ts +2 -1
  23. package/src/cjs/PBText.js +10 -9
  24. package/src/cjs/PBText.js.map +1 -1
  25. package/src/cjs/PlotBoilerplate.d.ts +4 -13
  26. package/src/cjs/PlotBoilerplate.js +61 -15
  27. package/src/cjs/PlotBoilerplate.js.map +1 -1
  28. package/src/cjs/Polygon.d.ts +35 -1
  29. package/src/cjs/Polygon.js +87 -1
  30. package/src/cjs/Polygon.js.map +1 -1
  31. package/src/cjs/VEllipse.js +1 -1
  32. package/src/cjs/VEllipse.js.map +1 -1
  33. package/src/cjs/Vector.d.ts +4 -4
  34. package/src/cjs/Vector.js +2 -2
  35. package/src/cjs/Vector.js.map +1 -1
  36. package/src/cjs/VertTuple.d.ts +2 -1
  37. package/src/cjs/VertTuple.js +4 -3
  38. package/src/cjs/VertTuple.js.map +1 -1
  39. package/src/cjs/Vertex.d.ts +14 -3
  40. package/src/cjs/Vertex.js +18 -3
  41. package/src/cjs/Vertex.js.map +1 -1
  42. package/src/cjs/draw.d.ts +154 -75
  43. package/src/cjs/draw.js +308 -137
  44. package/src/cjs/draw.js.map +1 -1
  45. package/src/cjs/drawgl.d.ts +87 -50
  46. package/src/cjs/drawgl.js +86 -31
  47. package/src/cjs/drawgl.js.map +1 -1
  48. package/src/cjs/drawutilssvg.d.ts +226 -53
  49. package/src/cjs/drawutilssvg.js +374 -92
  50. package/src/cjs/drawutilssvg.js.map +1 -1
  51. package/src/cjs/interfaces/DrawLib.d.ts +157 -79
  52. package/src/cjs/interfaces/DrawLib.js +6 -0
  53. package/src/cjs/interfaces/DrawLib.js.map +1 -1
  54. package/src/cjs/interfaces/core.d.ts +13 -2
  55. package/src/cjs/interfaces/core.js +1 -0
  56. package/src/cjs/interfaces/core.js.map +1 -1
  57. package/src/cjs/utils/creategui.js +16 -10
  58. package/src/cjs/utils/detectDarkMode.d.ts +10 -0
  59. package/src/cjs/utils/detectDarkMode.js +32 -0
  60. package/src/cjs/utils/detectDarkMode.js.map +1 -0
  61. package/src/esm/BezierPath.d.ts +27 -49
  62. package/src/esm/BezierPath.js +67 -234
  63. package/src/esm/BezierPath.js.map +1 -1
  64. package/src/esm/Bounds.d.ts +14 -1
  65. package/src/esm/Bounds.js +19 -1
  66. package/src/esm/Bounds.js.map +1 -1
  67. package/src/esm/CubicBezierCurve.d.ts +70 -1
  68. package/src/esm/CubicBezierCurve.js +130 -12
  69. package/src/esm/CubicBezierCurve.js.map +1 -1
  70. package/src/esm/Line.d.ts +2 -1
  71. package/src/esm/Line.js +1 -0
  72. package/src/esm/Line.js.map +1 -1
  73. package/src/esm/PBText.d.ts +2 -1
  74. package/src/esm/PBText.js +10 -9
  75. package/src/esm/PBText.js.map +1 -1
  76. package/src/esm/PlotBoilerplate.d.ts +4 -13
  77. package/src/esm/PlotBoilerplate.js +62 -16
  78. package/src/esm/PlotBoilerplate.js.map +1 -1
  79. package/src/esm/Polygon.d.ts +35 -1
  80. package/src/esm/Polygon.js +85 -1
  81. package/src/esm/Polygon.js.map +1 -1
  82. package/src/esm/VEllipse.js +1 -1
  83. package/src/esm/VEllipse.js.map +1 -1
  84. package/src/esm/Vector.d.ts +4 -4
  85. package/src/esm/Vector.js +2 -2
  86. package/src/esm/Vector.js.map +1 -1
  87. package/src/esm/VertTuple.d.ts +2 -1
  88. package/src/esm/VertTuple.js +4 -3
  89. package/src/esm/VertTuple.js.map +1 -1
  90. package/src/esm/Vertex.d.ts +14 -3
  91. package/src/esm/Vertex.js +18 -3
  92. package/src/esm/Vertex.js.map +1 -1
  93. package/src/esm/draw.d.ts +154 -75
  94. package/src/esm/draw.js +304 -135
  95. package/src/esm/draw.js.map +1 -1
  96. package/src/esm/drawgl.d.ts +87 -50
  97. package/src/esm/drawgl.js +86 -31
  98. package/src/esm/drawgl.js.map +1 -1
  99. package/src/esm/drawutilssvg.d.ts +226 -53
  100. package/src/esm/drawutilssvg.js +369 -92
  101. package/src/esm/drawutilssvg.js.map +1 -1
  102. package/src/esm/interfaces/DrawLib.d.ts +157 -79
  103. package/src/esm/interfaces/DrawLib.js +6 -0
  104. package/src/esm/interfaces/DrawLib.js.map +1 -1
  105. package/src/esm/interfaces/core.d.ts +13 -2
  106. package/src/esm/interfaces/core.js +1 -0
  107. package/src/esm/interfaces/core.js.map +1 -1
  108. package/src/esm/utils/detectDarkMode.d.ts +10 -0
  109. package/src/esm/utils/detectDarkMode.js +28 -0
  110. package/src/esm/utils/detectDarkMode.js.map +1 -0
  111. package/src/ts/BezierPath.ts +72 -241
  112. package/src/ts/Bounds.ts +25 -1
  113. package/src/ts/CubicBezierCurve.ts +139 -12
  114. package/src/ts/Line.ts +2 -1
  115. package/src/ts/PBText.ts +10 -9
  116. package/src/ts/PlotBoilerplate.ts +56 -19
  117. package/src/ts/Polygon.ts +91 -1
  118. package/src/ts/VEllipse.ts +2 -2
  119. package/src/ts/Vector.ts +4 -4
  120. package/src/ts/VertTuple.ts +4 -3
  121. package/src/ts/Vertex.ts +20 -4
  122. package/src/ts/draw.ts +311 -115
  123. package/src/ts/drawgl.ts +133 -71
  124. package/src/ts/drawutilssvg.ts +543 -121
  125. package/src/ts/interfaces/DrawLib.ts +219 -83
  126. package/src/ts/interfaces/core.ts +14 -2
  127. package/src/ts/utils/detectDarkMode.ts +30 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectDarkMode.js","sourceRoot":"","sources":["../../ts/utils/detectDarkMode.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAII,IAAM,cAAc,GAAG,UAAC,GAA4B;IACzD,oBAAoB;IACpB,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,EAAE;QACnF,iFAAiF;QACjF,IAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACpD,IAAI,aAAa,KAAK,IAAI,EAAE;YAC1B,OAAO,aAAa,CAAC;SACtB;KACF;IACD,IAAI,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO,EAAE;QAC1F,sBAAsB;QACtB,OAAO,IAAI,CAAC;KACb;IACD,6BAA6B;IAC7B,IAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;IACpC,IAAM,SAAS,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;IAC1C,OAAO,CAAC,SAAS,CAAC;AACpB,CAAC,CAAC;AAjBW,QAAA,cAAc,kBAiBzB"}
@@ -23,7 +23,9 @@
23
23
  * @modified 2022-01-31 Added `BezierPath.getEvenDistributionVertices(number)`.
24
24
  * @modified 2022-02-02 Added the `destroy` method.
25
25
  * @modified 2022-02-02 Cleared the `toSVGString` function (deprecated). Use `drawutilssvg` instead.
26
- * @version 2.5.0
26
+ * @modified 2023-10-06 Adding the `BezierPath.toPathPoints()` method.
27
+ * @modified 2023-10-07 Adding the `BezierPath.fromCurve(CubicBezierCurve)` static function.
28
+ * @version 2.6.0
27
29
  *
28
30
  * @file BezierPath
29
31
  * @public
@@ -212,54 +214,6 @@ export declare class BezierPath implements SVGSerializable {
212
214
  * @return {CubicBezierCurve} The curve at the specified index.
213
215
  **/
214
216
  getCurveAt(curveIndex: number): CubicBezierCurve;
215
- /**
216
- * Remove the end point of this path (which removes the last curve from this path).<br>
217
- * <br>
218
- * Please note that this function does never remove the first curve, thus the path
219
- * cannot be empty after this call.
220
- *
221
- * @method removeEndPoint
222
- * @instance
223
- * @memberof BezierPath
224
- * @return {boolean} Indicating if the last curve was removed.
225
- **/
226
- /**
227
- * Remove the start point of this path (which removes the first curve from this path).<br>
228
- * <br>
229
- * Please note that this function does never remove the last curve, thus the path
230
- * cannot be empty after this call.<br>
231
- *
232
- * @method removeStartPoint
233
- * @instance
234
- * @memberof BezierPath
235
- * @return {boolean} Indicating if the first curve was removed.
236
- **/
237
- /**
238
- * Removes a path point inside the path.
239
- *
240
- * This function joins the bezier curve at the given index with
241
- * its predecessor, which means that the start point at the given
242
- * curve index will be removed.
243
- *
244
- * @method joinAt
245
- * @param {number} curveIndex - The index of the curve to be joined with its predecessor.
246
- * @instance
247
- * @memberof BezierPath
248
- * @return {boolean} True if the passed index indicated an inner vertex and the two curves were joined.
249
- **/
250
- /**
251
- * Add a new inner curve point to the path.<br>
252
- * <br>
253
- * This function splits the bezier curve at the given index and given
254
- * curve segment index.
255
- *
256
- * @method splitAt
257
- * @param {number} curveIndex - The index of the curve to split.
258
- * @param {nunber} segmentIndex - The index of the curve segment where the split should be performed.
259
- * @instance
260
- * @memberof BezierPath
261
- * @return {boolean} True if the passed indices were valid and the path was split.
262
- **/
263
217
  /**
264
218
  * Move the whole bezier path by the given (x,y)-amount.
265
219
  *
@@ -519,8 +473,22 @@ export declare class BezierPath implements SVGSerializable {
519
473
  * This function should invalidate any installed listeners and invalidate this object.
520
474
  * After calling this function the object might not hold valid data any more and
521
475
  * should not be used.
476
+ *
477
+ * @method destroy
478
+ * @instance
479
+ * @memberof BezierPath
522
480
  */
523
481
  destroy(): void;
482
+ /**
483
+ * Convert this path to an array of path points that can be drawn by the default DrawLib
484
+ * implementations.
485
+ *
486
+ * @method toPathPoints
487
+ * @instance
488
+ * @memberof BezierPath
489
+ * @return {Array<XYCoords>}
490
+ */
491
+ toPathPoints(): Array<XYCoords>;
524
492
  /**
525
493
  * Create a JSON string representation of this bézier curve.
526
494
  *
@@ -542,6 +510,16 @@ export declare class BezierPath implements SVGSerializable {
542
510
  * @return {BezierPath} The parsed bezier path instance.
543
511
  **/
544
512
  static fromJSON(jsonString: string): BezierPath;
513
+ /**
514
+ * Construct a new path with a single curve. Adding more curves is always possible.
515
+ *
516
+ * @method fromCurve
517
+ * @param {CubicBezierCurve} curve - The curve to construct a new path from.
518
+ * @static
519
+ * @memberof BezierPath
520
+ * @return {BezierPath} The constructed bezier path instance.
521
+ */
522
+ static fromCurve(curve: CubicBezierCurve): BezierPath;
545
523
  /**
546
524
  * Create a BezierPath instance from the given array.
547
525
  *
@@ -23,7 +23,9 @@
23
23
  * @modified 2022-01-31 Added `BezierPath.getEvenDistributionVertices(number)`.
24
24
  * @modified 2022-02-02 Added the `destroy` method.
25
25
  * @modified 2022-02-02 Cleared the `toSVGString` function (deprecated). Use `drawutilssvg` instead.
26
- * @version 2.5.0
26
+ * @modified 2023-10-06 Adding the `BezierPath.toPathPoints()` method.
27
+ * @modified 2023-10-07 Adding the `BezierPath.fromCurve(CubicBezierCurve)` static function.
28
+ * @version 2.6.0
27
29
  *
28
30
  * @file BezierPath
29
31
  * @public
@@ -58,7 +60,7 @@ export class BezierPath {
58
60
  * @name BezierPath
59
61
  * @param {Vertex[]} pathPoints - An array of path vertices (no control points).
60
62
  **/
61
- constructor(pathPoints) {
63
+ constructor() {
62
64
  /**
63
65
  * Required to generate proper CSS classes and other class related IDs.
64
66
  **/
@@ -71,9 +73,11 @@ export class BezierPath {
71
73
  this.END_CONTROL_POINT = 2;
72
74
  /** @constant {number} */
73
75
  this.END_POINT = 3;
76
+ // pathPoints: Array<Vertex> | undefined | null) {
74
77
  this.uid = UIDGenerator.next();
75
- if (!pathPoints)
76
- pathPoints = [];
78
+ // if (!pathPoints) {
79
+ // pathPoints = [];
80
+ // }
77
81
  this.totalArcLength = 0.0;
78
82
  // Set this flag to true if you want the first point and
79
83
  // last point of the path to be auto adjusted, too.
@@ -226,215 +230,6 @@ export class BezierPath {
226
230
  getCurveAt(curveIndex) {
227
231
  return this.bezierCurves[curveIndex];
228
232
  }
229
- /**
230
- * Remove the end point of this path (which removes the last curve from this path).<br>
231
- * <br>
232
- * Please note that this function does never remove the first curve, thus the path
233
- * cannot be empty after this call.
234
- *
235
- * @method removeEndPoint
236
- * @instance
237
- * @memberof BezierPath
238
- * @return {boolean} Indicating if the last curve was removed.
239
- **/
240
- /*
241
- BezierPath.prototype.removeEndPoint = function() {
242
- if( this.bezierCurves.length <= 1 )
243
- return false;
244
-
245
- var newArray = [ this.bezierCurves.length-1 ];
246
- for( var i = 0; i < this.bezierCurves.length-1; i++ ) {
247
- newArray[i] = this.bezierCurves[i];
248
- }
249
-
250
- // Update arc length
251
- this.totalArcLength -= this.bezierCurves[ this.bezierCurves.length-1 ].getLength();
252
- this.bezierCurves = newArray;
253
- return true;
254
- }
255
- */
256
- /**
257
- * Remove the start point of this path (which removes the first curve from this path).<br>
258
- * <br>
259
- * Please note that this function does never remove the last curve, thus the path
260
- * cannot be empty after this call.<br>
261
- *
262
- * @method removeStartPoint
263
- * @instance
264
- * @memberof BezierPath
265
- * @return {boolean} Indicating if the first curve was removed.
266
- **/
267
- /*
268
- BezierPath.prototype.removeStartPoint = function() {
269
-
270
- if( this.bezierCurves.length <= 1 )
271
- return false;
272
-
273
- var newArray = [ this.bezierCurves.length-1 ];
274
- for( var i = 1; i < this.bezierCurves.length; i++ ) {
275
-
276
- newArray[i-1] = this.bezierCurves[i];
277
-
278
- }
279
-
280
- // Update arc length
281
- this.totalArcLength -= this.bezierCurves[ 0 ].getLength();
282
- this.bezierCurves = newArray;
283
-
284
- return true;
285
- }
286
- */
287
- /**
288
- * Removes a path point inside the path.
289
- *
290
- * This function joins the bezier curve at the given index with
291
- * its predecessor, which means that the start point at the given
292
- * curve index will be removed.
293
- *
294
- * @method joinAt
295
- * @param {number} curveIndex - The index of the curve to be joined with its predecessor.
296
- * @instance
297
- * @memberof BezierPath
298
- * @return {boolean} True if the passed index indicated an inner vertex and the two curves were joined.
299
- **/
300
- /*
301
- BezierPath.prototype.joinAt = function( curveIndex ) {
302
-
303
- if( curveIndex < 0 || curveIndex >= this.bezierCurves.length )
304
- return false;
305
-
306
- var leftCurve = this.bezierCurves[ curveIndex-1 ];
307
- var rightCurve = this.bezierCurves[ curveIndex ];
308
-
309
- // Make the length of the new handle double that long
310
- var leftControlPoint = leftCurve.getStartControlPoint().clone();
311
- leftControlPoint.sub( leftCurve.getStartPoint() );
312
- leftControlPoint.multiplyScalar( 2.0 );
313
- leftControlPoint.add( leftCurve.getStartPoint() );
314
-
315
- var rightControlPoint = rightCurve.getEndControlPoint().clone();
316
- rightControlPoint.sub( rightCurve.getEndPoint() );
317
- rightControlPoint.multiplyScalar( 2.0 );
318
- rightControlPoint.add( rightCurve.getEndPoint() );
319
-
320
- var newCurve = new IKRS.CubicBezierCurve( leftCurve.getStartPoint(),
321
- rightCurve.getEndPoint(),
322
- leftControlPoint,
323
- rightControlPoint
324
- );
325
- // Place into array
326
- var newArray = [ this.bezierCurves.length - 1 ];
327
-
328
- for( var i = 0; i < curveIndex-1; i++ )
329
- newArray[ i ] = this.bezierCurves[i];
330
-
331
- newArray[ curveIndex-1 ] = newCurve;
332
-
333
- // Shift trailing curves left
334
- for( var i = curveIndex; i+1 < this.bezierCurves.length; i++ )
335
- newArray[ i ] = this.bezierCurves[ i+1 ];
336
-
337
- this.bezierCurves = newArray;
338
- this.updateArcLengths();
339
-
340
- return true;
341
- }
342
- */
343
- /**
344
- * Add a new inner curve point to the path.<br>
345
- * <br>
346
- * This function splits the bezier curve at the given index and given
347
- * curve segment index.
348
- *
349
- * @method splitAt
350
- * @param {number} curveIndex - The index of the curve to split.
351
- * @param {nunber} segmentIndex - The index of the curve segment where the split should be performed.
352
- * @instance
353
- * @memberof BezierPath
354
- * @return {boolean} True if the passed indices were valid and the path was split.
355
- **/
356
- /*
357
- BezierPath.prototype.splitAt = function( curveIndex,
358
- segmentIndex
359
- ) {
360
- // Must be a valid curve index
361
- if( curveIndex < 0 || curveIndex >= this.bezierCurves.length )
362
- return false;
363
-
364
- var oldCurve = this.bezierCurves[ curveIndex ];
365
-
366
- // Segment must be an INNER point!
367
- // (the outer points are already bezier end/start points!)
368
- if( segmentIndex < 1 || segmentIndex-1 >= oldCurve.segmentCache.length )
369
- return false;
370
-
371
- // Make room for a new curve
372
- for( var c = this.bezierCurves.length; c > curveIndex; c-- ) {
373
- // Move one position to the right
374
- this.bezierCurves[ c ] = this.bezierCurves[ c-1 ];
375
- }
376
-
377
- // Accumulate segment lengths
378
- var u = 0;
379
- for( var i = 0; i < segmentIndex; i++ )
380
- u += oldCurve.segmentLengths[i];
381
- //var tangent = oldCurve.getTangentAt( u );
382
- var tangent = oldCurve.getTangent( u );
383
- tangent = tangent.multiplyScalar( 0.25 );
384
-
385
- var leftEndControlPoint = oldCurve.segmentCache[ segmentIndex ].clone();
386
- leftEndControlPoint.sub( tangent );
387
-
388
- var rightStartControlPoint = oldCurve.segmentCache[ segmentIndex ].clone();
389
- rightStartControlPoint.add( tangent );
390
-
391
- // Make the old existing handles a quarter that long
392
- var leftStartControlPoint = oldCurve.getStartControlPoint().clone();
393
- // move to (0,0)
394
- leftStartControlPoint.sub( oldCurve.getStartPoint() );
395
- leftStartControlPoint.multiplyScalar( 0.25 );
396
- leftStartControlPoint.add( oldCurve.getStartPoint() );
397
-
398
- var rightEndControlPoint = oldCurve.getEndControlPoint().clone();
399
- // move to (0,0)
400
- rightEndControlPoint.sub( oldCurve.getEndPoint() );
401
- rightEndControlPoint.multiplyScalar( 0.25 );
402
- rightEndControlPoint.add( oldCurve.getEndPoint() );
403
-
404
- var newLeft = new CubicBezierCurve( oldCurve.getStartPoint(), // old start point
405
- oldCurve.segmentCache[ segmentIndex ], // new end point
406
- leftStartControlPoint, // old start control point
407
- leftEndControlPoint // new end control point
408
- );
409
- var newRight = new CubicBezierCurve( oldCurve.segmentCache[ segmentIndex ], // new start point
410
- oldCurve.getEndPoint(), // old end point
411
- rightStartControlPoint, // new start control point
412
- rightEndControlPoint // old end control point
413
- );
414
-
415
- // Insert split curve(s) at free index
416
- this.bezierCurves[ curveIndex ] = newLeft;
417
- this.bezierCurves[ curveIndex + 1 ] = newRight;
418
-
419
- // Update total arc length, even if there is only a very little change!
420
- this.totalArcLength -= oldCurve.getLength();
421
- this.totalArcLength += newLeft.getLength();
422
- this.totalArcLength += newRight.getLength();
423
-
424
- return true;
425
- };
426
- */
427
- /*
428
- insertVertexAt( t:number ) : void {
429
- console.log('Inserting vertex at', t );
430
- // Find the curve index
431
- var u : number = 0;
432
- var curveIndex : number = -1;
433
- var localT : number = 0.0;
434
- for( var i = 0; curveIndex == -1 && i < this.bezierCurves.length; i++ ) {
435
-
436
- }
437
- }; */
438
233
  /**
439
234
  * Move the whole bezier path by the given (x,y)-amount.
440
235
  *
@@ -469,22 +264,6 @@ export class BezierPath {
469
264
  * @return {BezierPath} this for chaining.
470
265
  **/
471
266
  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
267
  return this.scaleXY({ x: scaleFactor, y: scaleFactor }, anchor);
489
268
  }
490
269
  /**
@@ -980,7 +759,7 @@ export class BezierPath {
980
759
  * @return {BezierPath}
981
760
  **/
982
761
  clone() {
983
- var path = new BezierPath(undefined);
762
+ var path = new BezierPath(); // undefined);
984
763
  for (var i = 0; i < this.bezierCurves.length; i++) {
985
764
  path.bezierCurves.push(this.bezierCurves[i].clone());
986
765
  // Connect splines
@@ -1020,6 +799,10 @@ export class BezierPath {
1020
799
  * This function should invalidate any installed listeners and invalidate this object.
1021
800
  * After calling this function the object might not hold valid data any more and
1022
801
  * should not be used.
802
+ *
803
+ * @method destroy
804
+ * @instance
805
+ * @memberof BezierPath
1023
806
  */
1024
807
  destroy() {
1025
808
  for (var i = 0; i < this.bezierCurves.length; i++) {
@@ -1027,6 +810,40 @@ export class BezierPath {
1027
810
  }
1028
811
  this.isDestroyed = true;
1029
812
  }
813
+ /**
814
+ * Convert this path to an array of path points that can be drawn by the default DrawLib
815
+ * implementations.
816
+ *
817
+ * @method toPathPoints
818
+ * @instance
819
+ * @memberof BezierPath
820
+ * @return {Array<XYCoords>}
821
+ */
822
+ toPathPoints() {
823
+ if (this.bezierCurves.length === 0) {
824
+ return [];
825
+ }
826
+ if (this.bezierCurves.length === 1) {
827
+ return [
828
+ this.bezierCurves[0].startPoint,
829
+ this.bezierCurves[0].startControlPoint,
830
+ this.bezierCurves[0].endControlPoint,
831
+ this.bezierCurves[0].endPoint
832
+ ];
833
+ }
834
+ const arr = [];
835
+ arr.push(this.bezierCurves[0].startPoint);
836
+ arr.push(this.bezierCurves[0].startControlPoint);
837
+ for (var i = 1; i < this.bezierCurves.length; i++) {
838
+ arr.push(this.bezierCurves[i - 1].endControlPoint);
839
+ arr.push(this.bezierCurves[i - 1].endPoint);
840
+ arr.push(this.bezierCurves[i].startPoint);
841
+ arr.push(this.bezierCurves[i].startControlPoint);
842
+ }
843
+ arr.push(this.bezierCurves[0].endControlPoint);
844
+ arr.push(this.bezierCurves[0].endPoint);
845
+ return arr;
846
+ }
1030
847
  /**
1031
848
  * Create a JSON string representation of this bézier curve.
1032
849
  *
@@ -1067,6 +884,20 @@ export class BezierPath {
1067
884
  var obj = JSON.parse(jsonString);
1068
885
  return BezierPath.fromArray(obj);
1069
886
  }
887
+ /**
888
+ * Construct a new path with a single curve. Adding more curves is always possible.
889
+ *
890
+ * @method fromCurve
891
+ * @param {CubicBezierCurve} curve - The curve to construct a new path from.
892
+ * @static
893
+ * @memberof BezierPath
894
+ * @return {BezierPath} The constructed bezier path instance.
895
+ */
896
+ static fromCurve(curve) {
897
+ const path = new BezierPath(); // []);
898
+ path.addCurve(curve);
899
+ return path;
900
+ }
1070
901
  /**
1071
902
  * Create a BezierPath instance from the given array.
1072
903
  *
@@ -1078,13 +909,15 @@ export class BezierPath {
1078
909
  * @return {BezierPath} The bezier path instance retrieved from the array data.
1079
910
  **/
1080
911
  static fromArray(obj) {
1081
- if (!Array.isArray(obj))
912
+ if (!Array.isArray(obj)) {
1082
913
  throw "[BezierPath.fromArray] Passed object must be an array.";
914
+ }
1083
915
  const arr = obj; // FORCE?
1084
- if (arr.length < 1)
916
+ if (arr.length < 1) {
1085
917
  throw "[BezierPath.fromArray] Passed array must contain at least one bezier curve (has " + arr.length + ").";
918
+ }
1086
919
  // Create an empty bezier path
1087
- var bPath = new BezierPath(undefined);
920
+ var bPath = new BezierPath(); // undefined);
1088
921
  var lastCurve = null;
1089
922
  for (var i = 0; i < arr.length; i++) {
1090
923
  // Convert object (or array?) to bezier curve
@@ -1194,7 +1027,7 @@ export class BezierPath {
1194
1027
  */
1195
1028
  static fromReducedList(pointArray, adjustCircular) {
1196
1029
  // Convert to object
1197
- var bezierPath = new BezierPath(null); // No points yet
1030
+ var bezierPath = new BezierPath(); // null); // No points yet
1198
1031
  var startPoint = new Vertex();
1199
1032
  var startControlPoint;
1200
1033
  var endControlPoint;
@@ -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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"}
@@ -8,7 +8,8 @@
8
8
  * @modified 2022-02-01 Added the `toString` function.
9
9
  * @modified 2022-10-09 Added the `fromDimension` function.
10
10
  * @modified 2022-11-28 Added the `clone` method.
11
- * @version 1.6.0
11
+ * @modified 2023-09-29 Added the `randomPoint` method.
12
+ * @version 1.7.0
12
13
  **/
13
14
  import { Polygon } from "./Polygon";
14
15
  import { XYCoords, IBounds, XYDimension } from "./interfaces";
@@ -76,6 +77,18 @@ export declare class Bounds implements IBounds, XYDimension {
76
77
  * @returns {Vertex} The center of these bounds.
77
78
  */
78
79
  getCenter(): Vertex;
80
+ /**
81
+ * Generate a random point inside this bounds object. Safe areas at the border to avoid
82
+ * included.
83
+ *
84
+ * @method randomPoint
85
+ * @instance
86
+ * @memberof Bounds
87
+ * @param {horizontalSafeArea} - (optional) The horizonal (left and right) safe area. No vertex will be created here. Can be used as percent in (0.0 ... 0.1) interval.
88
+ * @param {verticalSafeArea} - (optional) The vertical (top and bottom) safe area. No vertex will be created here. Can be used as percent in (0.0 ... 0.1) interval
89
+ * @returns {Vertex} A pseudo random point inside these bounds.
90
+ */
91
+ randomPoint(horizontalSafeArea?: number, verticalSafeArea?: number): Vertex;
79
92
  /**
80
93
  * Convert these bounds to a human readable form.
81
94
  *
package/src/esm/Bounds.js CHANGED
@@ -8,7 +8,8 @@
8
8
  * @modified 2022-02-01 Added the `toString` function.
9
9
  * @modified 2022-10-09 Added the `fromDimension` function.
10
10
  * @modified 2022-11-28 Added the `clone` method.
11
- * @version 1.6.0
11
+ * @modified 2023-09-29 Added the `randomPoint` method.
12
+ * @version 1.7.0
12
13
  **/
13
14
  import { Polygon } from "./Polygon";
14
15
  import { Vertex } from "./Vertex";
@@ -56,6 +57,23 @@ export class Bounds {
56
57
  getCenter() {
57
58
  return new Vertex(this.min.x + (this.max.x - this.min.x) / 2.0, this.min.y + (this.max.y - this.min.y) / 2);
58
59
  }
60
+ /**
61
+ * Generate a random point inside this bounds object. Safe areas at the border to avoid
62
+ * included.
63
+ *
64
+ * @method randomPoint
65
+ * @instance
66
+ * @memberof Bounds
67
+ * @param {horizontalSafeArea} - (optional) The horizonal (left and right) safe area. No vertex will be created here. Can be used as percent in (0.0 ... 0.1) interval.
68
+ * @param {verticalSafeArea} - (optional) The vertical (top and bottom) safe area. No vertex will be created here. Can be used as percent in (0.0 ... 0.1) interval
69
+ * @returns {Vertex} A pseudo random point inside these bounds.
70
+ */
71
+ randomPoint(horizontalSafeArea = 0, verticalSafeArea = 0) {
72
+ // Check if the safe areas are meant as percent
73
+ const absHorizontalSafeArea = horizontalSafeArea > 0 && horizontalSafeArea < 1 ? this.width * horizontalSafeArea : horizontalSafeArea;
74
+ const absVerticalSafeArea = verticalSafeArea > 0 && verticalSafeArea < 1 ? this.height * verticalSafeArea : verticalSafeArea;
75
+ return new Vertex(this.min.x + absHorizontalSafeArea + Math.random() * (this.width - 2 * absHorizontalSafeArea), this.min.y + absVerticalSafeArea + Math.random() * (this.height - 2 * absVerticalSafeArea));
76
+ }
59
77
  /**
60
78
  * Convert these bounds to a human readable form.
61
79
  *