plotboilerplate 1.27.1 → 1.28.1

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 (78) hide show
  1. package/dist/index.esm.js +135 -36
  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 +96 -17
  8. package/dist/plotboilerplate.min.js +1 -1
  9. package/package.json +2 -1
  10. package/src/cjs/PlotBoilerplate.d.ts +11 -1
  11. package/src/cjs/PlotBoilerplate.js +23 -7
  12. package/src/cjs/PlotBoilerplate.js.map +1 -1
  13. package/src/cjs/VertexListeners.d.ts +2 -1
  14. package/src/cjs/VertexListeners.js +5 -1
  15. package/src/cjs/VertexListeners.js.map +1 -1
  16. package/src/cjs/draw.d.ts +18 -2
  17. package/src/cjs/draw.js +21 -2
  18. package/src/cjs/draw.js.map +1 -1
  19. package/src/cjs/drawgl.d.ts +18 -3
  20. package/src/cjs/drawgl.js +19 -2
  21. package/src/cjs/drawgl.js.map +1 -1
  22. package/src/cjs/drawutilssvg.d.ts +19 -1
  23. package/src/cjs/drawutilssvg.js +28 -5
  24. package/src/cjs/drawutilssvg.js.map +1 -1
  25. package/src/cjs/interfaces/DrawLib.d.ts +18 -1
  26. package/src/cjs/interfaces/DrawLib.js +2 -0
  27. package/src/cjs/interfaces/DrawLib.js.map +1 -1
  28. package/src/cjs/utils/Params.d.ts +3 -2
  29. package/src/cjs/utils/Params.js +11 -3
  30. package/src/cjs/utils/Params.js.map +1 -1
  31. package/src/cjs/utils/WebColors.d.ts +2 -1
  32. package/src/cjs/utils/WebColors.js +15 -2
  33. package/src/cjs/utils/WebColors.js.map +1 -1
  34. package/src/cjs/utils/algorithms/HobbyPath.js +13 -16
  35. package/src/cjs/utils/algorithms/HobbyPath.js.map +1 -1
  36. package/src/cjs/utils/helpers/BezierResizeHelper.d.ts +144 -0
  37. package/src/cjs/utils/helpers/BezierResizeHelper.js +319 -0
  38. package/src/cjs/utils/helpers/BezierResizeHelper.js.map +1 -0
  39. package/src/esm/PlotBoilerplate.d.ts +11 -1
  40. package/src/esm/PlotBoilerplate.js +23 -7
  41. package/src/esm/PlotBoilerplate.js.map +1 -1
  42. package/src/esm/VertexListeners.d.ts +2 -1
  43. package/src/esm/VertexListeners.js +5 -1
  44. package/src/esm/VertexListeners.js.map +1 -1
  45. package/src/esm/draw.d.ts +18 -2
  46. package/src/esm/draw.js +21 -2
  47. package/src/esm/draw.js.map +1 -1
  48. package/src/esm/drawgl.d.ts +18 -3
  49. package/src/esm/drawgl.js +19 -2
  50. package/src/esm/drawgl.js.map +1 -1
  51. package/src/esm/drawutilssvg.d.ts +19 -1
  52. package/src/esm/drawutilssvg.js +28 -5
  53. package/src/esm/drawutilssvg.js.map +1 -1
  54. package/src/esm/interfaces/DrawLib.d.ts +18 -1
  55. package/src/esm/interfaces/DrawLib.js +2 -0
  56. package/src/esm/interfaces/DrawLib.js.map +1 -1
  57. package/src/esm/utils/Params.d.ts +3 -2
  58. package/src/esm/utils/Params.js +11 -3
  59. package/src/esm/utils/Params.js.map +1 -1
  60. package/src/esm/utils/WebColors.d.ts +2 -1
  61. package/src/esm/utils/WebColors.js +15 -2
  62. package/src/esm/utils/WebColors.js.map +1 -1
  63. package/src/esm/utils/algorithms/HobbyPath.js +13 -16
  64. package/src/esm/utils/algorithms/HobbyPath.js.map +1 -1
  65. package/src/esm/utils/helpers/BezierResizeHelper.d.ts +144 -0
  66. package/src/esm/utils/helpers/BezierResizeHelper.js +314 -0
  67. package/src/esm/utils/helpers/BezierResizeHelper.js.map +1 -0
  68. package/src/ts/PlotBoilerplate.ts +37 -11
  69. package/src/ts/VertexListeners.ts +5 -1
  70. package/src/ts/draw.ts +32 -2
  71. package/src/ts/drawgl.ts +38 -3
  72. package/src/ts/drawutilssvg.ts +33 -6
  73. package/src/ts/interfaces/DrawLib.ts +19 -1
  74. package/src/ts/utils/Params.ts +11 -3
  75. package/src/ts/utils/WebColors.ts +15 -2
  76. package/src/ts/utils/algorithms/HobbyPath.ts +248 -272
  77. package/src/ts/utils/helpers/BezierResizeHelper.ts +390 -0
  78. package/src/cjs/utils/_gup.js_ +0 -13
@@ -26,11 +26,13 @@
26
26
  * @modified 2023-09-29 Added the `lineDashes` attribute.
27
27
  * @modified 2023-09-30 Adding `strokeOptions` param to these draw function: line, arrow, cubicBezierArrow, cubicBezier, cubicBezierPath, circle, circleArc, ellipse, square, rect, polygon, polyline.
28
28
  * @modified 2026-01-04 Adding optional `lineJoin` attribute to the `StrokeOptions` interface.
29
+ * @modified 2026-04-04 Added the method `bounds`.
30
+ * @modified 2026-04-04 Added the `lineCap` attribute to the `StrokeOptions`.
29
31
  **/
30
32
  import { Bounds } from "../Bounds";
31
33
  import { Polygon } from "../Polygon";
32
34
  import { Vertex } from "../Vertex";
33
- import { SVGPathParams, UID, XYCoords } from "./core";
35
+ import { IBounds, SVGPathParams, UID, XYCoords } from "./core";
34
36
  export interface DrawLibConfiguration {
35
37
  blendMode?: 'source-over' | 'source-in' | 'source-out' | 'source-atop' | 'destination-over' | 'destination-in' | 'destination-out' | 'destination-atop' | 'lighter' | 'copy' | 'xor' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity' | null;
36
38
  }
@@ -59,6 +61,7 @@ export interface StrokeOptions {
59
61
  dashOffset?: number;
60
62
  dashArray?: Array<number>;
61
63
  lineJoin?: "round" | "bevel" | "miter";
64
+ lineCap?: "butt" | "round" | "square";
62
65
  }
63
66
  /**
64
67
  * An interface all drawing libraries must implement to be used with PlotBoilerplate.
@@ -379,6 +382,20 @@ export interface DrawLib<R> {
379
382
  * @memberof DrawLib
380
383
  */
381
384
  rect: (upperLeft: XYCoords, width: number, height: number, color: string, lineWidth?: number, strokeOptions?: StrokeOptions) => R;
385
+ /**
386
+ * Draw a rectangle at the given bounds; and with the specified line width and (CSS-) color.<br>
387
+ *
388
+ * @method bounds
389
+ * @param {IBounds} bounds - The bounds rectangle to be drawn.
390
+ * @param {string} color - The CSS color to draw the rectangle with.
391
+ * @param {number=} lineWidth - (optional) The line width to use; default is 1.
392
+ * @param {StrokeOptions=} strokeOptions - (optional) Stroke settings to use.
393
+ *
394
+ * @return {R}
395
+ * @instance
396
+ * @memberof DrawLib
397
+ */
398
+ bounds: (bounds: IBounds, color: string, lineWidth?: number, strokeOptions?: StrokeOptions) => R;
382
399
  /**
383
400
  * Draw a grid of horizontal and vertical lines with the given (CSS-) color.
384
401
  *
@@ -26,6 +26,8 @@
26
26
  * @modified 2023-09-29 Added the `lineDashes` attribute.
27
27
  * @modified 2023-09-30 Adding `strokeOptions` param to these draw function: line, arrow, cubicBezierArrow, cubicBezier, cubicBezierPath, circle, circleArc, ellipse, square, rect, polygon, polyline.
28
28
  * @modified 2026-01-04 Adding optional `lineJoin` attribute to the `StrokeOptions` interface.
29
+ * @modified 2026-04-04 Added the method `bounds`.
30
+ * @modified 2026-04-04 Added the `lineCap` attribute to the `StrokeOptions`.
29
31
  **/
30
32
  export {};
31
33
  //# sourceMappingURL=DrawLib.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DrawLib.js","sourceRoot":"","sources":["../../ts/interfaces/DrawLib.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4BI"}
1
+ {"version":3,"file":"DrawLib.js","sourceRoot":"","sources":["../../ts/interfaces/DrawLib.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8BI"}
@@ -6,12 +6,13 @@
6
6
  * @version 1.0.0
7
7
  * @date 2023-03-13
8
8
  * @modified 2024-08-26 Added the `hasParam` method.
9
+ * @modified 2026-05-22 Added the `isValueAllowed` function param to the getter methods.
9
10
  */
10
11
  export declare class Params {
11
12
  baseParams: Record<string, string>;
12
13
  constructor(baseParams: Record<string, string>);
13
14
  hasParam(name: string): boolean;
14
- getString(name: string, fallback: string): string;
15
- getNumber(name: string, fallback: number): number;
15
+ getString(name: string, fallback: string, isValueAllowed?: (value: string) => boolean): string;
16
+ getNumber(name: string, fallback: number, isValueAllowed?: (value: number) => boolean): number;
16
17
  getBoolean(name: string, fallback: boolean): boolean;
17
18
  }
@@ -6,6 +6,7 @@
6
6
  * @version 1.0.0
7
7
  * @date 2023-03-13
8
8
  * @modified 2024-08-26 Added the `hasParam` method.
9
+ * @modified 2026-05-22 Added the `isValueAllowed` function param to the getter methods.
9
10
  */
10
11
  export class Params {
11
12
  constructor(baseParams) {
@@ -14,19 +15,26 @@ export class Params {
14
15
  hasParam(name) {
15
16
  return this.baseParams.hasOwnProperty(name);
16
17
  }
17
- getString(name, fallback) {
18
+ getString(name, fallback, isValueAllowed) {
18
19
  let value = this.baseParams[name];
19
20
  if (typeof value === "undefined" || !value || (value = value.trim()).length === 0) {
20
21
  return fallback;
21
22
  }
23
+ if (isValueAllowed && !isValueAllowed(value)) {
24
+ return fallback;
25
+ }
22
26
  return value;
23
27
  }
24
- getNumber(name, fallback) {
28
+ getNumber(name, fallback, isValueAllowed) {
25
29
  let value = this.baseParams[name];
26
30
  if (typeof value === "undefined" || !value || (value = value.trim()).length === 0) {
27
31
  return fallback;
28
32
  }
29
- return Number(value);
33
+ var numericValue = Number(value);
34
+ if (isValueAllowed && !isValueAllowed(numericValue)) {
35
+ return fallback;
36
+ }
37
+ return numericValue;
30
38
  }
31
39
  getBoolean(name, fallback) {
32
40
  let value = this.baseParams[name];
@@ -1 +1 @@
1
- {"version":3,"file":"Params.js","sourceRoot":"","sources":["../../ts/utils/Params.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,OAAO,MAAM;IAGjB,YAAY,UAAkC;QAC5C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,QAAgB;QACtC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClF,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,QAAgB;QACtC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClF,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,UAAU,CAAC,IAAY,EAAE,QAAiB;QACxC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClF,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,KAAK,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAClC,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;YAC7G,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;YACnH,OAAO,KAAK,CAAC;QACf,CAAC;aAAM,CAAC;YACN,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"Params.js","sourceRoot":"","sources":["../../ts/utils/Params.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,OAAO,MAAM;IAGjB,YAAY,UAAkC;QAC5C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,QAAgB,EAAE,cAA2C;QACnF,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClF,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,cAAc,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7C,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,QAAgB,EAAE,cAA2C;QACnF,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClF,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,cAAc,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;YACpD,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,UAAU,CAAC,IAAY,EAAE,QAAiB;QACxC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClF,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,KAAK,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAClC,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;YAC7G,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;YACnH,OAAO,KAAK,CAAC;QACf,CAAC;aAAM,CAAC;YACN,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;CACF"}
@@ -4,7 +4,8 @@
4
4
  * @modified 2020-10-23 Ported to Typescript.
5
5
  * @modified 2020-10-30 Exporting each color under its name globally.
6
6
  * @modified 2025-12-08 Replaying self defined colors by official web colors.
7
- * @version 1.0.2
7
+ * @modified 2026-03-18 Fixing global `WebColors` array.
8
+ * @version 1.0.3
8
9
  **/
9
10
  import { Color } from "./datastructures/Color";
10
11
  export declare const Red: Color;
@@ -4,7 +4,8 @@
4
4
  * @modified 2020-10-23 Ported to Typescript.
5
5
  * @modified 2020-10-30 Exporting each color under its name globally.
6
6
  * @modified 2025-12-08 Replaying self defined colors by official web colors.
7
- * @version 1.0.2
7
+ * @modified 2026-03-18 Fixing global `WebColors` array.
8
+ * @version 1.0.3
8
9
  **/
9
10
  import { Color } from "./datastructures/Color";
10
11
  export const Red = Color.Red; // Color.makeRGB(255,67,55);
@@ -27,7 +28,19 @@ export const LightGreen = Color.LightGreen; // Color.makeRGB(141,195,67);
27
28
  * @requires Color
28
29
  *
29
30
  */
30
- export const WebColors = [Red, Pink, Purple, DeepPurple, Indigo, Blue, LightBlue, Cyan, Teal, Green, LightGreen];
31
+ export const WebColors = [
32
+ Color.Red,
33
+ Color.Pink,
34
+ Color.Purple,
35
+ Color.DeepPink,
36
+ Color.Indigo,
37
+ Color.Blue,
38
+ Color.LightBlue,
39
+ Color.Cyan,
40
+ Color.Teal,
41
+ Color.Green,
42
+ Color.LightGreen
43
+ ];
31
44
  /**
32
45
  * A helper function to shuffle the colors into a new order.
33
46
  */
@@ -1 +1 @@
1
- {"version":3,"file":"WebColors.js","sourceRoot":"","sources":["../../ts/utils/WebColors.ts"],"names":[],"mappings":"AAAA;;;;;;;IAOI;AAEJ,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C,MAAM,CAAC,MAAM,GAAG,GAAU,KAAK,CAAC,GAAG,CAAC,CAAC,4BAA4B;AACjE,MAAM,CAAC,MAAM,IAAI,GAAU,KAAK,CAAC,IAAI,CAAC,CAAC,6BAA6B;AACpE,MAAM,CAAC,MAAM,MAAM,GAAU,KAAK,CAAC,MAAM,CAAC,CAAC,6BAA6B;AACxE,MAAM,CAAC,MAAM,UAAU,GAAU,KAAK,CAAC,QAAQ,CAAC,CAAC,6BAA6B;AAC9E,MAAM,CAAC,MAAM,MAAM,GAAU,KAAK,CAAC,MAAM,CAAC,CAAC,4BAA4B;AACvE,MAAM,CAAC,MAAM,IAAI,GAAU,KAAK,CAAC,IAAI,CAAC,CAAC,6BAA6B;AACpE,MAAM,CAAC,MAAM,SAAS,GAAU,KAAK,CAAC,SAAS,CAAC,CAAC,4BAA4B;AAC7E,MAAM,CAAC,MAAM,IAAI,GAAU,KAAK,CAAC,IAAI,CAAC,CAAC,4BAA4B;AACnE,MAAM,CAAC,MAAM,IAAI,GAAU,KAAK,CAAC,IAAI,CAAC,CAAC,4BAA4B;AACnE,MAAM,CAAC,MAAM,KAAK,GAAU,KAAK,CAAC,KAAK,CAAC,CAAC,4BAA4B;AACrE,MAAM,CAAC,MAAM,UAAU,GAAU,KAAK,CAAC,UAAU,CAAC,CAAC,6BAA6B;AAEhF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,SAAS,GAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAE/H;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAoB,EAAE,EAAE;IACvD,MAAM,MAAM,GAAiB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
1
+ {"version":3,"file":"WebColors.js","sourceRoot":"","sources":["../../ts/utils/WebColors.ts"],"names":[],"mappings":"AAAA;;;;;;;;IAQI;AAEJ,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C,MAAM,CAAC,MAAM,GAAG,GAAU,KAAK,CAAC,GAAG,CAAC,CAAC,4BAA4B;AACjE,MAAM,CAAC,MAAM,IAAI,GAAU,KAAK,CAAC,IAAI,CAAC,CAAC,6BAA6B;AACpE,MAAM,CAAC,MAAM,MAAM,GAAU,KAAK,CAAC,MAAM,CAAC,CAAC,6BAA6B;AACxE,MAAM,CAAC,MAAM,UAAU,GAAU,KAAK,CAAC,QAAQ,CAAC,CAAC,6BAA6B;AAC9E,MAAM,CAAC,MAAM,MAAM,GAAU,KAAK,CAAC,MAAM,CAAC,CAAC,4BAA4B;AACvE,MAAM,CAAC,MAAM,IAAI,GAAU,KAAK,CAAC,IAAI,CAAC,CAAC,6BAA6B;AACpE,MAAM,CAAC,MAAM,SAAS,GAAU,KAAK,CAAC,SAAS,CAAC,CAAC,4BAA4B;AAC7E,MAAM,CAAC,MAAM,IAAI,GAAU,KAAK,CAAC,IAAI,CAAC,CAAC,4BAA4B;AACnE,MAAM,CAAC,MAAM,IAAI,GAAU,KAAK,CAAC,IAAI,CAAC,CAAC,4BAA4B;AACnE,MAAM,CAAC,MAAM,KAAK,GAAU,KAAK,CAAC,KAAK,CAAC,CAAC,4BAA4B;AACrE,MAAM,CAAC,MAAM,UAAU,GAAU,KAAK,CAAC,UAAU,CAAC,CAAC,6BAA6B;AAEhF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,SAAS,GAAiB;IACrC,KAAK,CAAC,GAAG;IACT,KAAK,CAAC,IAAI;IACV,KAAK,CAAC,MAAM;IACZ,KAAK,CAAC,QAAQ;IACd,KAAK,CAAC,MAAM;IACZ,KAAK,CAAC,IAAI;IACV,KAAK,CAAC,SAAS;IACf,KAAK,CAAC,IAAI;IACV,KAAK,CAAC,IAAI;IACV,KAAK,CAAC,KAAK;IACX,KAAK,CAAC,UAAU;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAoB,EAAE,EAAE;IACvD,MAAM,MAAM,GAAiB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -17,7 +17,6 @@
17
17
  **/
18
18
  import { CubicBezierCurve } from "../../CubicBezierCurve";
19
19
  import { Vertex } from "../../Vertex";
20
- ;
21
20
  /**
22
21
  * @classdesc A HobbyCurve/HobbyPath calculation class: compute a set of optimal
23
22
  * cubic Bézier curves from a sequence of vertices.
@@ -34,7 +33,6 @@ export class HobbyPath {
34
33
  constructor(vertices) {
35
34
  this.vertices = vertices ? vertices : [];
36
35
  }
37
- ;
38
36
  /**
39
37
  * Add a new point to the end of the vertex sequence.
40
38
  *
@@ -46,7 +44,6 @@ export class HobbyPath {
46
44
  addPoint(p) {
47
45
  this.vertices.push(p);
48
46
  }
49
- ;
50
47
  /**
51
48
  * Generate a sequence of cubic Bézier curves from the point set.
52
49
  *
@@ -79,7 +76,6 @@ export class HobbyPath {
79
76
  return [];
80
77
  }
81
78
  }
82
- ;
83
79
  /**
84
80
  * Computes the control point coordinates for a Hobby curve through
85
81
  * the points given.
@@ -93,13 +89,17 @@ export class HobbyPath {
93
89
  **/
94
90
  hobbyControls(circular, omega) {
95
91
  // This is a version that works for both, closed and non-closed paths.
96
- if (typeof omega === 'undefined')
92
+ if (typeof omega === "undefined")
97
93
  omega = 0;
98
94
  let n = this.vertices.length - (circular ? 0 : 1);
99
95
  let D = new Array(n);
100
96
  let ds = new Array(n);
101
- var succ = (i) => { return circular ? ((i + 1) % n) : (i + 1); };
102
- var pred = (i) => { return circular ? ((i + n - 1) % n) : (i - 1); };
97
+ var succ = (i) => {
98
+ return circular ? (i + 1) % n : i + 1;
99
+ };
100
+ var pred = (i) => {
101
+ return circular ? (i + n - 1) % n : i - 1;
102
+ };
103
103
  for (let i = 0; i < n; i++) {
104
104
  // the "next" point in a modular way
105
105
  let j = succ(i);
@@ -107,7 +107,7 @@ export class HobbyPath {
107
107
  D[i] = Math.sqrt(ds[i].x * ds[i].x + ds[i].y * ds[i].y);
108
108
  }
109
109
  let gamma = new Array(n + (circular ? 0 : 1));
110
- for (let i = (circular ? 0 : 1); i < n; i++) {
110
+ for (let i = circular ? 0 : 1; i < n; i++) {
111
111
  // the "previous" point in a modular way
112
112
  let k = pred(i);
113
113
  let sin = ds[k].y / D[k];
@@ -121,7 +121,7 @@ export class HobbyPath {
121
121
  let b = new Array(n + (circular ? 0 : 1));
122
122
  let c = new Array(n + (circular ? 0 : 1));
123
123
  let d = new Array(n + (circular ? 0 : 1));
124
- for (let i = (circular ? 0 : 1); i < n; i++) {
124
+ for (let i = circular ? 0 : 1; i < n; i++) {
125
125
  // j is the "next" point, k the "previous" one
126
126
  let j = succ(i);
127
127
  let k = pred(i);
@@ -171,18 +171,16 @@ export class HobbyPath {
171
171
  let endControlPoints = new Array(n);
172
172
  for (let i = 0; i < n; i++) {
173
173
  let j = succ(i);
174
- let a = HobbyPath.utils.rho(alpha[i], beta[i]) * D[i] / 3;
175
- let b = HobbyPath.utils.rho(beta[i], alpha[i]) * D[i] / 3;
174
+ let a = (HobbyPath.utils.rho(alpha[i], beta[i]) * D[i]) / 3;
175
+ let b = (HobbyPath.utils.rho(beta[i], alpha[i]) * D[i]) / 3;
176
176
  let v = HobbyPath.utils.normalize(HobbyPath.utils.rotateAngle(ds[i], alpha[i]));
177
177
  startControlPoints[i] = new Vertex(this.vertices[i].x + a * v.x, this.vertices[i].y + a * v.y);
178
178
  v = HobbyPath.utils.normalize(HobbyPath.utils.rotateAngle(ds[i], -beta[i]));
179
179
  endControlPoints[i] = new Vertex(this.vertices[j].x - b * v.x, this.vertices[j].y - b * v.y);
180
180
  }
181
- return { startControlPoints: startControlPoints,
182
- endControlPoints: endControlPoints
183
- };
181
+ return { startControlPoints: startControlPoints, endControlPoints: endControlPoints };
184
182
  }
185
- }
183
+ } // END class
186
184
  HobbyPath.utils = {
187
185
  // rotates a vector [x, y] about an angle; the angle is implicitly
188
186
  // determined by its sine and cosine
@@ -269,5 +267,4 @@ HobbyPath.utils = {
269
267
  return x;
270
268
  }
271
269
  };
272
- ; // END class
273
270
  //# sourceMappingURL=HobbyPath.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HobbyPath.js","sourceRoot":"","sources":["../../../ts/utils/algorithms/HobbyPath.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HobbyPath.js","sourceRoot":"","sources":["../../../ts/utils/algorithms/HobbyPath.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * A helper to resize bezier paths in horizontal and vertical orientation.
3
+ *
4
+ * @requires PlotBoilerplate
5
+ * @requires BezierPath
6
+ * @requires Vertex
7
+ *
8
+ * @author Ikaros Kappler
9
+ * @date 2026-04-04 Copied from the ngdg project, made minor type adaptions.
10
+ * @version 1.2.0
11
+ *
12
+ */
13
+ import { BezierPath } from "../../BezierPath";
14
+ import PlotBoilerplate from "../../PlotBoilerplate";
15
+ import { Vertex } from "../../Vertex";
16
+ import { DrawLib, XYCoords } from "../../interfaces";
17
+ export declare class BezierResizeHelper {
18
+ private pb;
19
+ readonly bezierPath: BezierPath;
20
+ readonly topResizeHandle: Vertex;
21
+ readonly leftResizeHandle: Vertex;
22
+ readonly bottomResizeHandle: Vertex;
23
+ readonly rightResizeHandle: Vertex;
24
+ topHandleDragStartPosition: XYCoords;
25
+ leftHandleDragStartPosition: XYCoords;
26
+ bottomHandleDragStartPosition: XYCoords;
27
+ rightHandleDragStartPosition: XYCoords;
28
+ __listeners: Array<() => void>;
29
+ /**
30
+ * The constructor.
31
+ *
32
+ * @param {PlotBoilerplate} pb
33
+ * @param {BezierPath} bezierPath
34
+ * @param {function} updateCallback
35
+ */
36
+ constructor(pb: PlotBoilerplate, bezierPath: BezierPath, updateCallback: () => void);
37
+ draw(draw: DrawLib<any>, fill: DrawLib<any>): void;
38
+ /**
39
+ * Call this method from the outside to see active helper lines for those edges
40
+ * that are currently dragged.
41
+ *
42
+ * @param {DrawLib<any>} draw
43
+ * @param {DrawLib<any>} fill
44
+ * @param {string} lineColor
45
+ */
46
+ drawHandleLines(draw: DrawLib<any>, fill: DrawLib<any>, lineColor: string): void;
47
+ drawTriangles(draw: DrawLib<any>, _fill: DrawLib<any>, color: string): void;
48
+ /**
49
+ * Draws an up-trinangle at the top handle position.
50
+ *
51
+ * @param draw
52
+ * @param position
53
+ * @param color
54
+ */
55
+ drawTopTriangle(draw: DrawLib<any>, _fill: DrawLib<any>, color: string): void;
56
+ /**
57
+ * Draws an up-trinangle at the top handle position.
58
+ *
59
+ * @param draw
60
+ * @param position
61
+ * @param color
62
+ */
63
+ drawLeftTriangle(draw: DrawLib<any>, _fill: DrawLib<any>, color: string): void;
64
+ /**
65
+ * Draws an up-trinangle at the top handle position.
66
+ *
67
+ * @param draw
68
+ * @param position
69
+ * @param color
70
+ */
71
+ drawBottomTriangle(draw: DrawLib<any>, _fill: DrawLib<any>, color: string): void;
72
+ /**
73
+ * Draws an right-trinangle at the top handle position.
74
+ *
75
+ * @param draw
76
+ * @param position
77
+ * @param color
78
+ */
79
+ drawRightTriangle(draw: DrawLib<any>, _fill: DrawLib<any>, color: string): void;
80
+ /**
81
+ * Draws an up-trinangle at the top handle position.
82
+ *
83
+ * @param draw
84
+ * @param position
85
+ * @param color
86
+ */
87
+ private __drawUpTriangle;
88
+ /**
89
+ * Draws an left-trinangle at the left handle position.
90
+ *
91
+ * @param draw
92
+ * @param position
93
+ * @param color
94
+ */
95
+ private __drawLeftTriangle;
96
+ /**
97
+ * Draws a down-trinangle at the top handle position.
98
+ *
99
+ * @param draw
100
+ * @param position
101
+ * @param color
102
+ */
103
+ private __drawDownTriangle;
104
+ /**
105
+ * Draws an left-trinangle at the left handle position.
106
+ *
107
+ * @param draw
108
+ * @param position
109
+ * @param color
110
+ */
111
+ private __drawRightTriangle;
112
+ /**
113
+ * Destroys this helper by removing all previously installed vertex listeners.
114
+ */
115
+ destroy(): void;
116
+ /**
117
+ * Install all required drag-start and drag-end listeners.
118
+ */
119
+ private __installListeners;
120
+ /**
121
+ * @param {BezierPath} bezierPath - The path to update.
122
+ * @param {number} heightAmount - The height difference to apply. Can be positive or negative or zero.
123
+ */
124
+ private __changePathHeightTop;
125
+ /**
126
+ * @param {BezierPath} bezierPath - The path to update.
127
+ * @param {number} widthAmount - The width difference to apply. Can be positive or negative or zero.
128
+ */
129
+ private __changePathWidthLeft;
130
+ /**
131
+ * @param {BezierPath} bezierPath - The path to update.
132
+ * @param {number} heightAmount - The height difference to apply. Can be positive or negative or zero.
133
+ */
134
+ private __changePathHeightBottom;
135
+ /**
136
+ * @param {BezierPath} bezierPath - The path to update.
137
+ * @param {number} widthAmount - The width difference to apply. Can be positive or negative or zero.
138
+ */
139
+ private __changePathWidthRight;
140
+ /**
141
+ * Set the handles to the new position after the path was resized.
142
+ */
143
+ updateResizeHandles(): void;
144
+ }