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.
- package/dist/index.esm.js +135 -36
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js +1 -1
- package/dist/index.esm.min.js.map +1 -1
- package/dist/plotboilerplate.browser.min.js +1 -1
- package/dist/plotboilerplate.browser.min.js.map +1 -1
- package/dist/plotboilerplate.js +96 -17
- package/dist/plotboilerplate.min.js +1 -1
- package/package.json +2 -1
- package/src/cjs/PlotBoilerplate.d.ts +11 -1
- package/src/cjs/PlotBoilerplate.js +23 -7
- package/src/cjs/PlotBoilerplate.js.map +1 -1
- package/src/cjs/VertexListeners.d.ts +2 -1
- package/src/cjs/VertexListeners.js +5 -1
- package/src/cjs/VertexListeners.js.map +1 -1
- package/src/cjs/draw.d.ts +18 -2
- package/src/cjs/draw.js +21 -2
- package/src/cjs/draw.js.map +1 -1
- package/src/cjs/drawgl.d.ts +18 -3
- package/src/cjs/drawgl.js +19 -2
- package/src/cjs/drawgl.js.map +1 -1
- package/src/cjs/drawutilssvg.d.ts +19 -1
- package/src/cjs/drawutilssvg.js +28 -5
- package/src/cjs/drawutilssvg.js.map +1 -1
- package/src/cjs/interfaces/DrawLib.d.ts +18 -1
- package/src/cjs/interfaces/DrawLib.js +2 -0
- package/src/cjs/interfaces/DrawLib.js.map +1 -1
- package/src/cjs/utils/Params.d.ts +3 -2
- package/src/cjs/utils/Params.js +11 -3
- package/src/cjs/utils/Params.js.map +1 -1
- package/src/cjs/utils/WebColors.d.ts +2 -1
- package/src/cjs/utils/WebColors.js +15 -2
- package/src/cjs/utils/WebColors.js.map +1 -1
- package/src/cjs/utils/algorithms/HobbyPath.js +13 -16
- package/src/cjs/utils/algorithms/HobbyPath.js.map +1 -1
- package/src/cjs/utils/helpers/BezierResizeHelper.d.ts +144 -0
- package/src/cjs/utils/helpers/BezierResizeHelper.js +319 -0
- package/src/cjs/utils/helpers/BezierResizeHelper.js.map +1 -0
- package/src/esm/PlotBoilerplate.d.ts +11 -1
- package/src/esm/PlotBoilerplate.js +23 -7
- package/src/esm/PlotBoilerplate.js.map +1 -1
- package/src/esm/VertexListeners.d.ts +2 -1
- package/src/esm/VertexListeners.js +5 -1
- package/src/esm/VertexListeners.js.map +1 -1
- package/src/esm/draw.d.ts +18 -2
- package/src/esm/draw.js +21 -2
- package/src/esm/draw.js.map +1 -1
- package/src/esm/drawgl.d.ts +18 -3
- package/src/esm/drawgl.js +19 -2
- package/src/esm/drawgl.js.map +1 -1
- package/src/esm/drawutilssvg.d.ts +19 -1
- package/src/esm/drawutilssvg.js +28 -5
- package/src/esm/drawutilssvg.js.map +1 -1
- package/src/esm/interfaces/DrawLib.d.ts +18 -1
- package/src/esm/interfaces/DrawLib.js +2 -0
- package/src/esm/interfaces/DrawLib.js.map +1 -1
- package/src/esm/utils/Params.d.ts +3 -2
- package/src/esm/utils/Params.js +11 -3
- package/src/esm/utils/Params.js.map +1 -1
- package/src/esm/utils/WebColors.d.ts +2 -1
- package/src/esm/utils/WebColors.js +15 -2
- package/src/esm/utils/WebColors.js.map +1 -1
- package/src/esm/utils/algorithms/HobbyPath.js +13 -16
- package/src/esm/utils/algorithms/HobbyPath.js.map +1 -1
- package/src/esm/utils/helpers/BezierResizeHelper.d.ts +144 -0
- package/src/esm/utils/helpers/BezierResizeHelper.js +314 -0
- package/src/esm/utils/helpers/BezierResizeHelper.js.map +1 -0
- package/src/ts/PlotBoilerplate.ts +37 -11
- package/src/ts/VertexListeners.ts +5 -1
- package/src/ts/draw.ts +32 -2
- package/src/ts/drawgl.ts +38 -3
- package/src/ts/drawutilssvg.ts +33 -6
- package/src/ts/interfaces/DrawLib.ts +19 -1
- package/src/ts/utils/Params.ts +11 -3
- package/src/ts/utils/WebColors.ts +15 -2
- package/src/ts/utils/algorithms/HobbyPath.ts +248 -272
- package/src/ts/utils/helpers/BezierResizeHelper.ts +390 -0
- 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
|
|
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
|
}
|
package/src/esm/utils/Params.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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 = [
|
|
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
|
|
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 ===
|
|
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) => {
|
|
102
|
-
|
|
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 =
|
|
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 =
|
|
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
|
+
}
|