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
@@ -1 +1 @@
1
- {"version":3,"file":"Bounds.js","sourceRoot":"","sources":["../ts/Bounds.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;IAWI;AAEJ,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;;;;IAMI;AACJ,MAAM,OAAO,MAAM;IAiCjB;;;;;;;QAOI;IACJ,YAAY,GAAa,EAAE,GAAa;QACtC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;;OAOG;IACH,SAAS;QACP,OAAO,IAAI,OAAO,CAChB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACpH,KAAK,CACN,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,SAAS;QACP,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9G,CAAC;IAED;;;;;;;;;;OAUG;IACH,QAAQ;QACN,OAAO,UAAU,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,IAAI,CAAC,KAAK,cAAc,IAAI,CAAC,MAAM,IAAI,CAAC;IACxH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK;QACH,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACxF,CAAC;IAED;;;;;;;;;;QAUI;IACJ,MAAM,CAAC,mBAAmB,CAAC,QAAuB;QAChD,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEhF,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzB,IAAI,IAAY,CAAC;QACjB,KAAK,IAAI,CAAC,IAAI,QAAQ,EAAE;YACtB,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACnB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;SAC/B;QACD,OAAO,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,aAAa,CAAC,KAAa,EAAE,MAAc,EAAE,MAAiB;QACnE,OAAO,IAAI,MAAM,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;IAC3H,CAAC;CACF,CAAC,mBAAmB"}
1
+ {"version":3,"file":"Bounds.js","sourceRoot":"","sources":["../ts/Bounds.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,9 @@
21
21
  * @modified 2022-02-02 Added the `destroy` method.
22
22
  * @modified 2022-02-02 Cleared the `toSVGPathData` function (deprecated). Use `drawutilssvg` instead.
23
23
  * @modified 2022-10-17 The `CubicBezierCurve` class now implements the new `PathSegment` interface.
24
- * @version 2.7.1
24
+ * @modified 2023-09-30 Added the function `CubicbezierCurve.getSubCurve(number,number)` – similar to `getSubCurveAt(...)` but with absolute position parameters.
25
+ * @modified 2023-10-07 Added the `trimEnd`, `trimEndAt`, `trimStart`, `trimStartAt` methods.
26
+ * @version 2.8.0
25
27
  *
26
28
  * @file CubicBezierCurve
27
29
  * @public
@@ -321,6 +323,69 @@ export declare class CubicBezierCurve implements PathSegment {
321
323
  * @return {Vertex}
322
324
  **/
323
325
  getTangentAt(t: number): Vertex;
326
+ /**
327
+ * Trim off a start section of this curve. The position parameter `uValue` is the absolute position on the
328
+ * curve in `[0...arcLength]`.
329
+ * The remaining curve will be the one in the bounds `[uValue,1]` (so `[0.0,uValue]` is cut off).
330
+ *
331
+ * Note this function just converts the absolute parameter to a relative one and call `trimStartAt`.
332
+ *
333
+ * @method trimStart
334
+ * @instance
335
+ * @memberof CubicBezierCurve
336
+ * @param {number} uValue - The absolute position parameter where to cut off the head curve.
337
+ * @returns {CubicBezierCurve} `this` for chanining.
338
+ */
339
+ trimStart(uValue: number): CubicBezierCurve;
340
+ /**
341
+ * Trim off a start section of this curve. The position parameter `t` is the relative position in [0..1].
342
+ * The remaining curve will be the one in the bounds `[uValue,1]` (so `[0.0,uValue]` is cut off).
343
+ *
344
+ * @method trimStartAt
345
+ * @instance
346
+ * @memberof CubicBezierCurve
347
+ * @param {number} t - The relative position parameter where to cut off the head curve.
348
+ * @returns {CubicBezierCurve} `this` for chanining.
349
+ */
350
+ trimStartAt(t: number): CubicBezierCurve;
351
+ /**
352
+ * Trim off the end of this curve. The position parameter `uValue` is the absolute position on the
353
+ * curve in `[0...arcLength]`.
354
+ * The remaining curve will be the one in the bounds `[0,uValue]` (so `[1.0-uValue,1.0]` is cut off).
355
+ *
356
+ * Note this function just converts the absolute parameter to a relative one and call `trimEndAt`.
357
+ *
358
+ * @method trimEnd
359
+ * @instance
360
+ * @memberof CubicBezierCurve
361
+ * @param {number} uValue - The absolute position parameter where to cut off the tail curve.
362
+ * @returns {CubicBezierCurve} `this` for chanining.
363
+ */
364
+ trimEnd(uValue: number): CubicBezierCurve;
365
+ /**
366
+ * Trim off the end of this curve. The position parameter `t` is the relative position in [0..1].
367
+ * The remaining curve will be the one in the bounds `[0,t]` (so `[1.0-t,1.0]` is cut off).
368
+ *
369
+ * @method trimEndAt
370
+ * @instance
371
+ * @memberof CubicBezierCurve
372
+ * @param {number} t - The relative position parameter where to cut off the tail curve.
373
+ * @returns {CubicBezierCurve} `this` for chanining.
374
+ */
375
+ trimEndAt(t: number): CubicBezierCurve;
376
+ /**
377
+ * Get a sub curve at the given start end end positions (values on the curve's length, between 0 and curve.arcLength).
378
+ *
379
+ * tStart >= tEnd is allowed, you will get a reversed sub curve then.
380
+ *
381
+ * @method getSubCurve
382
+ * @param {number} tStart – The start position of the desired sub curve (must be in [0..arcLength]).
383
+ * @param {number} tEnd – The end position if the desired cub curve (must be in [0..arcLength]).
384
+ * @instance
385
+ * @memberof CubicBezierCurve
386
+ * @return {CubicBezierCurve} The sub curve as a new curve.
387
+ **/
388
+ getSubCurve(uStart: number, uEnd: number): CubicBezierCurve;
324
389
  /**
325
390
  * Get a sub curve at the given start end end offsets (values between 0.0 and 1.0).
326
391
  *
@@ -478,4 +543,8 @@ export declare class CubicBezierCurve implements PathSegment {
478
543
  * @return {CubicBezierCurve}
479
544
  **/
480
545
  static fromArray(arr: Array<Vertex>): CubicBezierCurve;
546
+ /**
547
+ * Helper utils.
548
+ */
549
+ private static utils;
481
550
  }
@@ -21,7 +21,9 @@
21
21
  * @modified 2022-02-02 Added the `destroy` method.
22
22
  * @modified 2022-02-02 Cleared the `toSVGPathData` function (deprecated). Use `drawutilssvg` instead.
23
23
  * @modified 2022-10-17 The `CubicBezierCurve` class now implements the new `PathSegment` interface.
24
- * @version 2.7.1
24
+ * @modified 2023-09-30 Added the function `CubicbezierCurve.getSubCurve(number,number)` – similar to `getSubCurveAt(...)` but with absolute position parameters.
25
+ * @modified 2023-10-07 Added the `trimEnd`, `trimEndAt`, `trimStart`, `trimStartAt` methods.
26
+ * @version 2.8.0
25
27
  *
26
28
  * @file CubicBezierCurve
27
29
  * @public
@@ -412,6 +414,91 @@ export class CubicBezierCurve {
412
414
  // Note: my implementation does NOT normalize tangent vectors!
413
415
  return new Vertex(tX, tY);
414
416
  }
417
+ /**
418
+ * Trim off a start section of this curve. The position parameter `uValue` is the absolute position on the
419
+ * curve in `[0...arcLength]`.
420
+ * The remaining curve will be the one in the bounds `[uValue,1]` (so `[0.0,uValue]` is cut off).
421
+ *
422
+ * Note this function just converts the absolute parameter to a relative one and call `trimStartAt`.
423
+ *
424
+ * @method trimStart
425
+ * @instance
426
+ * @memberof CubicBezierCurve
427
+ * @param {number} uValue - The absolute position parameter where to cut off the head curve.
428
+ * @returns {CubicBezierCurve} `this` for chanining.
429
+ */
430
+ trimStart(uValue) {
431
+ return this.trimStartAt(this.convertU2T(uValue));
432
+ }
433
+ /**
434
+ * Trim off a start section of this curve. The position parameter `t` is the relative position in [0..1].
435
+ * The remaining curve will be the one in the bounds `[uValue,1]` (so `[0.0,uValue]` is cut off).
436
+ *
437
+ * @method trimStartAt
438
+ * @instance
439
+ * @memberof CubicBezierCurve
440
+ * @param {number} t - The relative position parameter where to cut off the head curve.
441
+ * @returns {CubicBezierCurve} `this` for chanining.
442
+ */
443
+ trimStartAt(t) {
444
+ const subCurbePoints = CubicBezierCurve.utils.getSubCurvePointsAt(this, t, 1.0);
445
+ this.startPoint.set(subCurbePoints[0]);
446
+ this.startControlPoint.set(subCurbePoints[2]);
447
+ this.endPoint.set(subCurbePoints[1]);
448
+ this.endControlPoint.set(subCurbePoints[3]);
449
+ this.updateArcLengths();
450
+ return this;
451
+ }
452
+ /**
453
+ * Trim off the end of this curve. The position parameter `uValue` is the absolute position on the
454
+ * curve in `[0...arcLength]`.
455
+ * The remaining curve will be the one in the bounds `[0,uValue]` (so `[1.0-uValue,1.0]` is cut off).
456
+ *
457
+ * Note this function just converts the absolute parameter to a relative one and call `trimEndAt`.
458
+ *
459
+ * @method trimEnd
460
+ * @instance
461
+ * @memberof CubicBezierCurve
462
+ * @param {number} uValue - The absolute position parameter where to cut off the tail curve.
463
+ * @returns {CubicBezierCurve} `this` for chanining.
464
+ */
465
+ trimEnd(uValue) {
466
+ return this.trimEndAt(this.convertU2T(uValue));
467
+ }
468
+ /**
469
+ * Trim off the end of this curve. The position parameter `t` is the relative position in [0..1].
470
+ * The remaining curve will be the one in the bounds `[0,t]` (so `[1.0-t,1.0]` is cut off).
471
+ *
472
+ * @method trimEndAt
473
+ * @instance
474
+ * @memberof CubicBezierCurve
475
+ * @param {number} t - The relative position parameter where to cut off the tail curve.
476
+ * @returns {CubicBezierCurve} `this` for chanining.
477
+ */
478
+ trimEndAt(t) {
479
+ const subCurbePoints = CubicBezierCurve.utils.getSubCurvePointsAt(this, 0.0, t);
480
+ this.startPoint.set(subCurbePoints[0]);
481
+ this.startControlPoint.set(subCurbePoints[2]);
482
+ this.endPoint.set(subCurbePoints[1]);
483
+ this.endControlPoint.set(subCurbePoints[3]);
484
+ this.updateArcLengths();
485
+ return this;
486
+ }
487
+ /**
488
+ * Get a sub curve at the given start end end positions (values on the curve's length, between 0 and curve.arcLength).
489
+ *
490
+ * tStart >= tEnd is allowed, you will get a reversed sub curve then.
491
+ *
492
+ * @method getSubCurve
493
+ * @param {number} tStart – The start position of the desired sub curve (must be in [0..arcLength]).
494
+ * @param {number} tEnd – The end position if the desired cub curve (must be in [0..arcLength]).
495
+ * @instance
496
+ * @memberof CubicBezierCurve
497
+ * @return {CubicBezierCurve} The sub curve as a new curve.
498
+ **/
499
+ getSubCurve(uStart, uEnd) {
500
+ return this.getSubCurveAt(this.convertU2T(uStart), this.convertU2T(uEnd));
501
+ }
415
502
  /**
416
503
  * Get a sub curve at the given start end end offsets (values between 0.0 and 1.0).
417
504
  *
@@ -425,17 +512,19 @@ export class CubicBezierCurve {
425
512
  * @return {CubicBezierCurve} The sub curve as a new curve.
426
513
  **/
427
514
  getSubCurveAt(tStart, tEnd) {
428
- const startVec = new Vector(this.getPointAt(tStart), this.getTangentAt(tStart));
429
- const endVec = new Vector(this.getPointAt(tEnd), this.getTangentAt(tEnd).inv());
430
- // Tangents are relative. Make absolute.
431
- startVec.b.add(startVec.a);
432
- endVec.b.add(endVec.a);
433
- // This 'splits' the curve at the given point at t.
434
- startVec.scale(0.33333333 * (tEnd - tStart));
435
- endVec.scale(0.33333333 * (tEnd - tStart));
436
- // Draw the bezier curve
437
- // pb.draw.cubicBezier( startVec.a, endVec.a, startVec.b, endVec.b, '#8800ff', 2 );
438
- return new CubicBezierCurve(startVec.a, endVec.a, startVec.b, endVec.b);
515
+ // const startVec: Vector = new Vector(this.getPointAt(tStart), this.getTangentAt(tStart));
516
+ // const endVec: Vector = new Vector(this.getPointAt(tEnd), this.getTangentAt(tEnd).inv());
517
+ // // Tangents are relative. Make absolute.
518
+ // startVec.b.add(startVec.a);
519
+ // endVec.b.add(endVec.a);
520
+ // // This 'splits' the curve at the given point at t.
521
+ // startVec.scale(0.33333333 * (tEnd - tStart));
522
+ // endVec.scale(0.33333333 * (tEnd - tStart));
523
+ // // Draw the bezier curve
524
+ // // pb.draw.cubicBezier( startVec.a, endVec.a, startVec.b, endVec.b, '#8800ff', 2 );
525
+ // return new CubicBezierCurve(startVec.a, endVec.a, startVec.b, endVec.b);
526
+ const subCurbePoints = CubicBezierCurve.utils.getSubCurvePointsAt(this, tStart, tEnd);
527
+ return new CubicBezierCurve(subCurbePoints[0], subCurbePoints[1], subCurbePoints[2], subCurbePoints[3]);
439
528
  }
440
529
  /**
441
530
  * Convert a relative curve position u to the absolute curve position t.
@@ -688,4 +777,33 @@ CubicBezierCurve.START_CONTROL_POINT = 1;
688
777
  CubicBezierCurve.END_CONTROL_POINT = 2;
689
778
  /** @constant {number} */
690
779
  CubicBezierCurve.END_POINT = 3;
780
+ /**
781
+ * Helper utils.
782
+ */
783
+ CubicBezierCurve.utils = {
784
+ /**
785
+ * Get the points of a sub curve at the given start end end offsets (values between 0.0 and 1.0).
786
+ *
787
+ * tStart >= tEnd is allowed, you will get a reversed sub curve then.
788
+ *
789
+ * @method getSubCurvePointsAt
790
+ * @param {CubicBezierCurve} curve – The curve to get the sub curve points from.
791
+ * @param {number} tStart – The start offset of the desired sub curve (must be in [0..1]).
792
+ * @param {number} tEnd – The end offset if the desired cub curve (must be in [0..1]).
793
+ * @instance
794
+ * @memberof CubicBezierCurve
795
+ * @return {CubicBezierCurve} The sub curve as a new curve.
796
+ **/
797
+ getSubCurvePointsAt: (curve, tStart, tEnd) => {
798
+ const startVec = new Vector(curve.getPointAt(tStart), curve.getTangentAt(tStart));
799
+ const endVec = new Vector(curve.getPointAt(tEnd), curve.getTangentAt(tEnd).inv());
800
+ // Tangents are relative. Make absolute.
801
+ startVec.b.add(startVec.a);
802
+ endVec.b.add(endVec.a);
803
+ // This 'splits' the curve at the given point at t.
804
+ startVec.scale(0.33333333 * (tEnd - tStart));
805
+ endVec.scale(0.33333333 * (tEnd - tStart));
806
+ return [startVec.a, endVec.a, startVec.b, endVec.b];
807
+ }
808
+ };
691
809
  //# sourceMappingURL=CubicBezierCurve.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CubicBezierCurve.js","sourceRoot":"","sources":["../ts/CubicBezierCurve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2BI;AAEJ,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC;;;;;;;;;GASG;AACH,MAAM,OAAO,gBAAgB;IA6F3B;;;;;;;;;QASI;IACJ,YAAY,UAAkB,EAAE,QAAgB,EAAE,iBAAyB,EAAE,eAAuB;QA7FpG,yBAAyB;QAChB,gBAAW,GAAW,gBAAgB,CAAC,WAAW,CAAC;QAC5D,yBAAyB;QAChB,wBAAmB,GAAW,gBAAgB,CAAC,mBAAmB,CAAC;QAC5E,yBAAyB;QAChB,sBAAiB,GAAW,gBAAgB,CAAC,iBAAiB,CAAC;QACxE,yBAAyB;QAChB,cAAS,GAAW,gBAAgB,CAAC,SAAS,CAAC;QAuFtD,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,uBAAuB;QACvB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,qBAAqB;QACrB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,QAAQ;QACR,yBAAyB;QAEzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED;;;;;;;;;;;;QAYI;IACJ,cAAc,CAAC,OAAe,EAAE,UAAoB,EAAE,gBAAyB,EAAE,gBAAyB;QACxG,IAAI,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE;YAC/B,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACrC,IAAI,gBAAgB;gBAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SACnE;aAAM,IAAI,OAAO,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC9C,IAAI,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SAC7C;aAAM,IAAI,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC5C,IAAI,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SAC3C;aAAM,IAAI,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;YACpC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACnC,IAAI,gBAAgB;gBAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SACjE;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,8CAA8C,OAAO,YAAY,CAAC,CAAC;SAChF;QAED,IAAI,gBAAgB;YAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAChD,CAAC;IAED;;;;;;;;QAQI;IACJ,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;QAQI;IACJ,OAAO;QACL,IAAI,GAAG,GAAW,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACpB,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;QAcI;IACJ,SAAS;QACP,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;QAWI;IACJ,gBAAgB;QACd,IAAI,MAAM,GAAW,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC7C,IAAI,MAAM,GAAW,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtC,IAAI,SAAS,GAAW,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC;QAElD,sBAAsB;QACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,+BAA+B;QAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,SAAS,GAAW,GAAG,CAAC;QAE5B,IAAI,CAAC,GAAW,GAAG,CAAC;QACpB,IAAI,SAAiB,CAAC;QACtB,OAAO,CAAC,IAAI,GAAG,EAAE;YACf,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAE5B,yBAAyB;YACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE/B,2BAA2B;YAC3B,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpC,SAAS,IAAI,SAAS,CAAC;YAEvB,MAAM,GAAG,MAAM,CAAC;YAChB,CAAC,IAAI,SAAS,CAAC;SAChB;QACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;;;;;;;;QASI;IACJ,WAAW,CAAC,CAAS;QACnB,6DAA6D;QAC7D,IAAI,cAAc,GAAW,GAAG,CAAC;QAEjC,IAAI,MAAM,GAAgD,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QAC3F,IAAI,SAAS,GAAW,CAAC,CAAC;QAC1B,GAAG;YACD,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3F,SAAS,EAAE,CAAC;YACZ,mCAAmC;SACpC,QAAQ,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,cAAc,EAAE;QAClH,OAAO,MAAM,CAAC,CAAC,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;QAaI;IACI,wBAAwB,CAC9B,CAAS,EACT,MAAc,EACd,IAAY,EACZ,SAAiB;QAEjB,IAAI,QAAQ,GAAW,CAAC,CAAC,CAAC;QAC1B,IAAI,OAAO,GAAW,CAAC,CAAC;QACxB,IAAI,CAAC,GAAW,GAAG,CAAC;QACpB,MAAM,KAAK,GAAW,IAAI,GAAG,MAAM,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE;YACnC,CAAC,GAAG,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;YACrC,IAAI,IAAI,GAAW,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,IAAI,GAAW,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,OAAO,EAAE;gBACpC,QAAQ,GAAG,CAAC,CAAC;gBACb,OAAO,GAAG,IAAI,CAAC;aAChB;SACF;QACD,OAAO;YACL,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC1C,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;YAC/D,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;SACxE,CAAC;IACJ,CAAC;IAED;;;;;;;QAOI;IACJ,SAAS;QACP,IAAI,GAAG,GAAW,IAAI,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACjF,IAAI,GAAG,GAAW,IAAI,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACjF,IAAI,CAAS,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACzB,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9B;QACD,OAAO,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;;;;QASI;IACJ,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;;;;;;QASI;IACJ,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;;;;;;QASI;IACJ,oBAAoB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;;;;;;;;QASI;IACJ,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;;;;;;QAQI;IACJ,YAAY,CAAC,EAAU;QACrB,IAAI,EAAE,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC;QACnD,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;QAC/C,IAAI,EAAE,IAAI,IAAI,CAAC,mBAAmB;YAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAClE,IAAI,EAAE,IAAI,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;;;;;QAWI;IACJ,UAAU,CAAC,CAAS;QAClB,mCAAmC;QACnC,MAAM,CAAC,GACL,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;YACvD,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,GACL,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;YACvD,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,OAAO,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;;;;;;;QAWI;IACJ,QAAQ,CAAC,CAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;;;QAUI;IACJ,YAAY,CAAC,CAAS;QACpB,MAAM,CAAC,GAAW,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,MAAM,CAAC,GAAW,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9C,MAAM,CAAC,GAAW,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAW,IAAI,CAAC,WAAW,EAAE,CAAC;QAErC,4BAA4B;QAC5B,MAAM,EAAE,GAAW,CAAC,GAAG,CAAC,CAAC;QACzB,4DAA4D;QAC5D,MAAM,GAAG,GAAW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAEnC,MAAM,EAAE,GAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAClH,MAAM,EAAE,GAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAElH,8DAA8D;QAC9D,OAAO,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;;QAWI;IACJ,aAAa,CAAC,MAAc,EAAE,IAAY;QACxC,MAAM,QAAQ,GAAW,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QACxF,MAAM,MAAM,GAAW,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAExF,wCAAwC;QACxC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEvB,mDAAmD;QACnD,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC;QAE3C,wBAAwB;QACxB,mFAAmF;QACnF,OAAO,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;;;QAQI;IACJ,UAAU,CAAC,CAAS;QAClB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;;;QAUI;IACJ,UAAU,CAAC,CAAS;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;;;;QAUI;IACJ,gBAAgB,CAAC,CAAS;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;;;QAUI;IACJ,kBAAkB,CAAC,CAAS;QAC1B,MAAM,aAAa,GAAW,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnD,OAAO,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;;QAOI;IACJ,KAAK;QACH,OAAO,IAAI,gBAAgB,CACzB,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAC5B,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAC1B,IAAI,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,EACnC,IAAI,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,CAClC,CAAC;IACJ,CAAC;IAED,+CAA+C;IAC/C;;;;;;OAMG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;;;;;OAMG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IACD,6CAA6C;IAE7C;;;;;;;;;;;;QAYI;IACJ,MAAM,CAAC,KAAmC;QACxC,gFAAgF;QAChF,wDAAwD;QACxD,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,eAAe;YAAE,OAAO,KAAK,CAAC;QAC7G,OAAO,CACL,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;YACpC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC;YACtD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CACnD,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;;;;;;;;QASI;IACJ,MAAM,CAAC,UAAU,CAAC,GAAQ;QACxB,yBAAyB;QACzB,mCAAmC;QACnC;;;;;;;;;UASD;QACC,OAAO,GAAG,YAAY,gBAAgB,CAAC;IACzC,CAAC;IAED;;;;;;;;QAQI;IACJ,MAAM,CAAC,YAAqB;QAC1B,IAAI,UAAU,GACZ,IAAI,GAAG,eAAe;YACtB,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,kBAAkB;YAClB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YACtB,GAAG;YACH,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YACtB,KAAK;YACL,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,gBAAgB;YAChB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACpB,GAAG;YACH,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACpB,KAAK;YACL,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,wBAAwB;YACxB,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;YAC7B,GAAG;YACH,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;YAC7B,KAAK;YACL,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,uBAAuB;YACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC3B,GAAG;YACH,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC3B,GAAG;YACH,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,aAAa;QACrB,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;;;;QASI;IACJ,MAAM,CAAC,QAAQ,CAAC,UAAkB;QAChC,IAAI,GAAG,GAAW,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACzC,OAAO,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;;;;QASI;IACJ,MAAM,CAAC,UAAU,CAAC,GAAQ;QACxB,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,MAAM,6BAA6B,CAAC;QAEjE,IAAI,CAAC,GAAG,CAAC,UAAU;YAAE,MAAM,qCAAqC,CAAC;QACjE,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,MAAM,mCAAmC,CAAC;QAC7D,IAAI,CAAC,GAAG,CAAC,iBAAiB;YAAE,MAAM,4CAA4C,CAAC;QAC/E,IAAI,CAAC,GAAG,CAAC,eAAe;YAAE,MAAM,0CAA0C,CAAC;QAE3E,OAAO,IAAI,gBAAgB,CACzB,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAChD,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC5C,IAAI,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAC9D,IAAI,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAC3D,CAAC;IACJ,CAAC;IAED;;;;;;;;QAQI;IACJ,MAAM,CAAC,SAAS,CAAC,GAAkB;QACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,MAAM,6BAA6B,CAAC;QAC7D,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;YAAE,MAAM,+CAA+C,CAAC;QAC3E,OAAO,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;;AAhwBD,yBAAyB;AACT,4BAAW,GAAW,CAAC,CAAC;AACxC,yBAAyB;AACT,oCAAmB,GAAW,CAAC,CAAC;AAChD,yBAAyB;AACT,kCAAiB,GAAW,CAAC,CAAC;AAC9C,yBAAyB;AACT,0BAAS,GAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"CubicBezierCurve.js","sourceRoot":"","sources":["../ts/CubicBezierCurve.ts"],"names":[],"mappings":"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"}
package/src/esm/Line.d.ts CHANGED
@@ -15,6 +15,7 @@
15
15
  * @modified 2022-02-02 Added the `destroy` method.
16
16
  * @modified 2022-10-09 Changed the actual return value of the `intersection` function to null (was undefined before).
17
17
  * @modified 2022-10-17 Adding these methods from the `PathSegment` interface: getStartPoint, getEndPoint, revert.
18
+ * @modified 2023-09-25 Changed param type of `intersection()` from Line to VertTuple.
18
19
  * @version 2.3.0
19
20
  *
20
21
  * @file Line
@@ -54,7 +55,7 @@ export declare class Line extends VertTuple<Line> implements SVGSerializable, Pa
54
55
  * @instance
55
56
  * @memberof Line
56
57
  **/
57
- intersection(line: Line): Vertex | null;
58
+ intersection(line: VertTuple<any>): Vertex | null;
58
59
  /**
59
60
  * Get the start point of this path segment.
60
61
  *
package/src/esm/Line.js CHANGED
@@ -15,6 +15,7 @@
15
15
  * @modified 2022-02-02 Added the `destroy` method.
16
16
  * @modified 2022-10-09 Changed the actual return value of the `intersection` function to null (was undefined before).
17
17
  * @modified 2022-10-17 Adding these methods from the `PathSegment` interface: getStartPoint, getEndPoint, revert.
18
+ * @modified 2023-09-25 Changed param type of `intersection()` from Line to VertTuple.
18
19
  * @version 2.3.0
19
20
  *
20
21
  * @file Line
@@ -1 +1 @@
1
- {"version":3,"file":"Line.js","sourceRoot":"","sources":["../ts/Line.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Line.js","sourceRoot":"","sources":["../ts/Line.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;IAsBI;AAEJ,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC;;;;;;;GAOG;AACH,MAAM,OAAO,IAAK,SAAQ,SAAe;IAMvC;;;;;;;QAOI;IACJ,YAAY,CAAS,EAAE,CAAS;QAC9B,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAdxD;;YAEI;QACK,cAAS,GAAW,MAAM,CAAC;IAYpC,CAAC;IAED;;;;;;;;QAQI;IACJ,+BAA+B;IAC/B,YAAY,CAAC,IAAoB;QAC/B,MAAM,WAAW,GAAW,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,WAAW,IAAI,CAAC,EAAE;YACpB,OAAO,IAAI,CAAC;SACb;QAED,IAAI,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,UAAU,GAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACjF,MAAM,UAAU,GAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACjF,CAAC,GAAG,UAAU,GAAG,WAAW,CAAC,CAAC,wBAAwB;QACtD,CAAC,GAAG,UAAU,GAAG,WAAW,CAAC;QAE7B,aAAa;QACb,MAAM,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvD,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;YACpC,OAAO,IAAI,CAAC;SACb;QAED,6EAA6E;QAC7E,OAAO,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,+BAA+B;IAC/B;;;;;;OAMG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,CAAC,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,CAAC,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,CAAC,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,CAAC,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,OAAO;QACL,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;CAEF"}
@@ -2,7 +2,8 @@
2
2
  * @author Ikaros Kappler
3
3
  * @date 2021-11-16
4
4
  * @modified 2022-02-02 Added the `destroy` method.
5
- * @version 1.1.0
5
+ * @modified 2023-09-25 Fixed a type error in the constructor. Nothing vital.
6
+ * @version 1.1.1
6
7
  **/
7
8
  import { Vertex } from "./Vertex";
8
9
  import { FontOptions, FontStyle, FontWeight, SVGSerializable, UID } from "./interfaces";
package/src/esm/PBText.js CHANGED
@@ -2,7 +2,8 @@
2
2
  * @author Ikaros Kappler
3
3
  * @date 2021-11-16
4
4
  * @modified 2022-02-02 Added the `destroy` method.
5
- * @version 1.1.0
5
+ * @modified 2023-09-25 Fixed a type error in the constructor. Nothing vital.
6
+ * @version 1.1.1
6
7
  **/
7
8
  import { UIDGenerator } from "./UIDGenerator";
8
9
  import { Vertex } from "./Vertex";
@@ -35,14 +36,14 @@ export class PBText {
35
36
  this.uid = UIDGenerator.next();
36
37
  this.text = text;
37
38
  this.anchor = anchor !== null && anchor !== void 0 ? anchor : new Vertex();
38
- this.color = options.color;
39
- this.fontFamily = options.fontFamily;
40
- this.fontSize = options.fontSize;
41
- this.fontStyle = options.fontStyle;
42
- this.fontWeight = options.fontWeight;
43
- this.lineHeight = options.lineHeight;
44
- this.textAlign = options.textAlign;
45
- this.rotation = options.rotation;
39
+ this.color = options === null || options === void 0 ? void 0 : options.color;
40
+ this.fontFamily = options === null || options === void 0 ? void 0 : options.fontFamily;
41
+ this.fontSize = options === null || options === void 0 ? void 0 : options.fontSize;
42
+ this.fontStyle = options === null || options === void 0 ? void 0 : options.fontStyle;
43
+ this.fontWeight = options === null || options === void 0 ? void 0 : options.fontWeight;
44
+ this.lineHeight = options === null || options === void 0 ? void 0 : options.lineHeight;
45
+ this.textAlign = options === null || options === void 0 ? void 0 : options.textAlign;
46
+ this.rotation = options === null || options === void 0 ? void 0 : options.rotation;
46
47
  }
47
48
  /**
48
49
  * This function should invalidate any installed listeners and invalidate this object.
@@ -1 +1 @@
1
- {"version":3,"file":"PBText.js","sourceRoot":"","sources":["../ts/PBText.ts"],"names":[],"mappings":"AAAA;;;;;IAKI;AAEJ,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC;;;;;;;;;;;IAWI;AACJ,MAAM,OAAO,MAAM;IA8FjB;;;;;;;OAOG;IACH,YAAY,IAAY,EAAE,MAAe,EAAE,OAAqB;QArGhE;;YAEI;QACK,cAAS,GAAW,QAAQ,CAAC;QAmGpC,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI,MAAM,EAAE,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;CACF,CAAC,YAAY"}
1
+ {"version":3,"file":"PBText.js","sourceRoot":"","sources":["../ts/PBText.ts"],"names":[],"mappings":"AAAA;;;;;;IAMI;AAEJ,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC;;;;;;;;;;;IAWI;AACJ,MAAM,OAAO,MAAM;IA8FjB;;;;;;;OAOG;IACH,YAAY,IAAY,EAAE,MAAe,EAAE,OAAqB;QArGhE;;YAEI;QACK,cAAS,GAAW,QAAQ,CAAC;QAmGpC,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI,MAAM,EAAE,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;CACF,CAAC,YAAY"}
@@ -82,7 +82,8 @@
82
82
  * @modified 2023-02-10 Fixing an issue of the `style.position` setting when `fitToParent=true` from `absolute` to `static` (default).
83
83
  * @modified 2023-02-10 Cleaning up most type errors in the main class (mostly null checks).
84
84
  * @modified 2023-02-10 Adding `enableZoom` and `enablePan` (both default true) to have the option to disable these functions.
85
- * @version 1.17.2
85
+ * @modified 2023-09-29 Adding proper dicionary key and value types to the params of `PlotBoilerplate.utils.safeMergeByKeys` (was `object` before).
86
+ * @version 1.17.3
86
87
  *
87
88
  * @file PlotBoilerplate
88
89
  * @fileoverview The main class.
@@ -796,17 +797,7 @@ export declare class PlotBoilerplate {
796
797
  * @param {Object} extension
797
798
  * @return {Object} base extended by the new attributes.
798
799
  **/
799
- safeMergeByKeys: (base: Object, extension: Object) => Object;
800
- /**
801
- * A helper function to scale elements (usually the canvas) using CSS.
802
- *
803
- * transform-origin is at (0,0).
804
- *
805
- * @param {HTMLElement} element - The DOM element to scale.
806
- * @param {number} scaleX The - X scale factor.
807
- * @param {number} scaleY The - Y scale factor.
808
- * @return {void}
809
- **/
800
+ safeMergeByKeys: <KeyType_1 extends string | number | symbol, ValueType>(base: Record<KeyType_1, ValueType>, extension: Record<KeyType_1, ValueType>) => Record<KeyType_1, ValueType>;
810
801
  setCSSscale: (element: HTMLElement | SVGElement, scaleX: number, scaleY: number) => void;
811
802
  fetch: {
812
803
  /**
@@ -834,7 +825,7 @@ export declare class PlotBoilerplate {
834
825
  * @param {boolean} fallback - A default value if the key does not exist.
835
826
  * @return {boolean}
836
827
  **/
837
- bool: (obj: any, key: string, fallback: boolean) => any;
828
+ bool: (obj: any, key: string, fallback: boolean | null) => any;
838
829
  /**
839
830
  * A helper function to the the object property function-value specified by the given key.
840
831
  *
@@ -82,7 +82,8 @@
82
82
  * @modified 2023-02-10 Fixing an issue of the `style.position` setting when `fitToParent=true` from `absolute` to `static` (default).
83
83
  * @modified 2023-02-10 Cleaning up most type errors in the main class (mostly null checks).
84
84
  * @modified 2023-02-10 Adding `enableZoom` and `enablePan` (both default true) to have the option to disable these functions.
85
- * @version 1.17.2
85
+ * @modified 2023-09-29 Adding proper dicionary key and value types to the params of `PlotBoilerplate.utils.safeMergeByKeys` (was `object` before).
86
+ * @version 1.17.3
86
87
  *
87
88
  * @file PlotBoilerplate
88
89
  * @fileoverview The main class.
@@ -221,7 +222,7 @@ export class PlotBoilerplate {
221
222
  draggable: true,
222
223
  visible: true
223
224
  };
224
- if (typeof config.canvas == "undefined") {
225
+ if (typeof config.canvas === "undefined") {
225
226
  throw "No canvas specified.";
226
227
  }
227
228
  /**
@@ -313,6 +314,10 @@ export class PlotBoilerplate {
313
314
  fill: true
314
315
  }
315
316
  },
317
+ // bezierPath: {
318
+ // color: "#0022a8",
319
+ // lineWidth: 1
320
+ // },
316
321
  polygon: {
317
322
  color: "#0022a8",
318
323
  lineWidth: 1
@@ -372,7 +377,10 @@ export class PlotBoilerplate {
372
377
  // +-------------------------------
373
378
  this.grid = new Grid(new Vertex(0, 0), new Vertex(50, 50));
374
379
  this.canvasSize = { width: PlotBoilerplate.DEFAULT_CANVAS_WIDTH, height: PlotBoilerplate.DEFAULT_CANVAS_HEIGHT };
375
- const canvasElement = typeof config.canvas == "string" ? document.querySelector(config.canvas) : config.canvas;
380
+ const canvasElement = typeof config.canvas === "string" ? document.querySelector(config.canvas) : config.canvas;
381
+ if (typeof canvasElement === "undefined") {
382
+ throw `Cannot initialize PlotBoilerplate with a null canvas (element "${config.canvas} not found).`;
383
+ }
376
384
  // Which renderer to use: Canvas2D, WebGL (experimental) or SVG?
377
385
  if (canvasElement.tagName.toLowerCase() === "canvas") {
378
386
  this.canvas = canvasElement;
@@ -1020,10 +1028,10 @@ export class PlotBoilerplate {
1020
1028
  if (this.drawConfig.drawBezierHandleLines && this.drawConfig.drawHandleLines) {
1021
1029
  draw.setCurrentId(`${d.uid}_l0`);
1022
1030
  draw.setCurrentClassName(`${d.className}-start-line`);
1023
- draw.line(d.bezierCurves[c].startPoint, d.bezierCurves[c].startControlPoint, this.drawConfig.bezier.handleLine.color, this.drawConfig.bezier.handleLine.lineWidth);
1031
+ draw.handleLine(d.bezierCurves[c].startPoint, d.bezierCurves[c].startControlPoint);
1024
1032
  draw.setCurrentId(`${d.uid}_l1`);
1025
1033
  draw.setCurrentClassName(`${d.className}-end-line`);
1026
- draw.line(d.bezierCurves[c].endPoint, d.bezierCurves[c].endControlPoint, this.drawConfig.bezier.handleLine.color, this.drawConfig.bezier.handleLine.lineWidth);
1034
+ draw.handleLine(d.bezierCurves[c].endPoint, d.bezierCurves[c].endControlPoint);
1027
1035
  }
1028
1036
  curveIndex++;
1029
1037
  } // END for
@@ -1046,11 +1054,11 @@ export class PlotBoilerplate {
1046
1054
  draw.setCurrentId(`${d.uid}_e0`);
1047
1055
  draw.setCurrentClassName(`${d.className}-v-line`);
1048
1056
  // draw.line( d.center.clone().add(0,d.axis.y-d.center.y), d.axis, '#c8c8c8' );
1049
- draw.line(d.center.clone().add(0, d.signedRadiusV()).rotate(d.rotation, d.center), d.axis, "#c8c8c8");
1057
+ draw.handleLine(d.center.clone().add(0, d.signedRadiusV()).rotate(d.rotation, d.center), d.axis); // , "#c8c8c8");
1050
1058
  draw.setCurrentId(`${d.uid}_e1`);
1051
1059
  draw.setCurrentClassName(`${d.className}-h-line`);
1052
1060
  // draw.line( d.center.clone().add(d.axis.x-d.center.x,0), d.axis, '#c8c8c8' );
1053
- draw.line(d.center.clone().add(d.signedRadiusH(), 0).rotate(d.rotation, d.center), d.axis, "#c8c8c8");
1061
+ draw.handleLine(d.center.clone().add(d.signedRadiusH(), 0).rotate(d.rotation, d.center), d.axis); // , "#c8c8c8");
1054
1062
  }
1055
1063
  draw.setCurrentId(d.uid);
1056
1064
  draw.setCurrentClassName(`${d.className}`);
@@ -1986,22 +1994,35 @@ PlotBoilerplate.utils = {
1986
1994
  **/
1987
1995
  safeMergeByKeys: (base, extension) => {
1988
1996
  for (var k in extension) {
1989
- if (!extension.hasOwnProperty(k))
1997
+ if (!extension.hasOwnProperty(k)) {
1990
1998
  continue;
1999
+ }
1991
2000
  if (base.hasOwnProperty(k)) {
1992
- var typ = typeof base[k];
2001
+ const typ = typeof base[k];
2002
+ const extVal = extension[k];
1993
2003
  try {
1994
- if (typ == "boolean")
1995
- base[k] = !!JSON.parse(extension[k]);
1996
- else if (typ == "number")
1997
- base[k] = JSON.parse(extension[k]) * 1;
1998
- else if (typ == "function" && typeof extension[k] == "function")
2004
+ if (typ == "boolean") {
2005
+ if (typeof extVal === "string")
2006
+ base[k] = Boolean(!!JSON.parse(extVal));
2007
+ else
2008
+ base[k] = extVal;
2009
+ }
2010
+ else if (typ == "number") {
2011
+ if (typeof extVal === "string")
2012
+ base[k] = Number(JSON.parse(extVal) * 1);
2013
+ else
2014
+ base[k] = extension[k];
2015
+ }
2016
+ else if (typ == "function" && typeof extVal == "function") {
1999
2017
  base[k] = extension[k];
2000
- else
2018
+ }
2019
+ else {
2020
+ // Probably a sting
2001
2021
  base[k] = extension[k];
2022
+ }
2002
2023
  }
2003
2024
  catch (e) {
2004
- console.error("error in key ", k, extension[k], e);
2025
+ console.error("error in key ", k, extVal, e);
2005
2026
  }
2006
2027
  }
2007
2028
  else {
@@ -2010,6 +2031,31 @@ PlotBoilerplate.utils = {
2010
2031
  }
2011
2032
  return base;
2012
2033
  },
2034
+ /*
2035
+ __safeMergeByKeys: <KeyType extends string | number | symbol, ValueType extends boolean | number | string | Function>(
2036
+ base: Record<KeyType, ValueType>,
2037
+ extension: Record<KeyType, string>
2038
+ ): Record<KeyType, ValueType> => {
2039
+ for (var k in extension) {
2040
+ if (!extension.hasOwnProperty(k)) continue;
2041
+ if (base.hasOwnProperty(k)) {
2042
+ var typ = typeof base[k];
2043
+ try {
2044
+ if (typ == "boolean") base[k] = !!JSON.parse(extension[k]);
2045
+ else if (typ == "number") base[k] = JSON.parse(extension[k]) * 1;
2046
+ else if (typ == "function" && typeof extension[k] == "function") base[k] = extension[k];
2047
+ else base[k] = extension[k];
2048
+ } catch (e) {
2049
+ console.error("error in key ", k, extension[k], e);
2050
+ }
2051
+ } else {
2052
+ base[k] = extension[k];
2053
+ }
2054
+ }
2055
+ return base;
2056
+ },
2057
+ *()
2058
+
2013
2059
  /**
2014
2060
  * A helper function to scale elements (usually the canvas) using CSS.
2015
2061
  *