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
|
*
|
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
* @modified 2023-09-29 Added the `lineDashes` attribute.
|
|
28
28
|
* @modified 2023-09-30 Adding `strokeOptions` param to these draw function: line, arrow, cubicBezierArrow, cubicBezier, cubicBezierPath, circle, circleArc, ellipse, square, rect, polygon, polyline.
|
|
29
29
|
* @modified 2026-01-04 Adding optional `lineJoin` attribute to the `StrokeOptions` interface.
|
|
30
|
+
* @modified 2026-04-04 Added the method `bounds`.
|
|
31
|
+
* @modified 2026-04-04 Added the `lineCap` attribute to the `StrokeOptions`.
|
|
30
32
|
**/
|
|
31
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
34
|
//# 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/cjs/utils/Params.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* @version 1.0.0
|
|
8
8
|
* @date 2023-03-13
|
|
9
9
|
* @modified 2024-08-26 Added the `hasParam` method.
|
|
10
|
+
* @modified 2026-05-22 Added the `isValueAllowed` function param to the getter methods.
|
|
10
11
|
*/
|
|
11
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
13
|
exports.Params = void 0;
|
|
@@ -17,19 +18,26 @@ var Params = /** @class */ (function () {
|
|
|
17
18
|
Params.prototype.hasParam = function (name) {
|
|
18
19
|
return this.baseParams.hasOwnProperty(name);
|
|
19
20
|
};
|
|
20
|
-
Params.prototype.getString = function (name, fallback) {
|
|
21
|
+
Params.prototype.getString = function (name, fallback, isValueAllowed) {
|
|
21
22
|
var value = this.baseParams[name];
|
|
22
23
|
if (typeof value === "undefined" || !value || (value = value.trim()).length === 0) {
|
|
23
24
|
return fallback;
|
|
24
25
|
}
|
|
26
|
+
if (isValueAllowed && !isValueAllowed(value)) {
|
|
27
|
+
return fallback;
|
|
28
|
+
}
|
|
25
29
|
return value;
|
|
26
30
|
};
|
|
27
|
-
Params.prototype.getNumber = function (name, fallback) {
|
|
31
|
+
Params.prototype.getNumber = function (name, fallback, isValueAllowed) {
|
|
28
32
|
var value = this.baseParams[name];
|
|
29
33
|
if (typeof value === "undefined" || !value || (value = value.trim()).length === 0) {
|
|
30
34
|
return fallback;
|
|
31
35
|
}
|
|
32
|
-
|
|
36
|
+
var numericValue = Number(value);
|
|
37
|
+
if (isValueAllowed && !isValueAllowed(numericValue)) {
|
|
38
|
+
return fallback;
|
|
39
|
+
}
|
|
40
|
+
return numericValue;
|
|
33
41
|
};
|
|
34
42
|
Params.prototype.getBoolean = function (name, fallback) {
|
|
35
43
|
var 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;IAGE,gBAAY,UAAkC;QAC5C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,yBAAQ,GAAR,UAAS,IAAY;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,0BAAS,GAAT,UAAU,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,0BAAS,GAAT,UAAU,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,2BAAU,GAAV,UAAW,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;IACH,aAAC;AAAD,CAAC,AAhDD,IAgDC;AAhDY,wBAAM"}
|
|
@@ -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;
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* @modified 2020-10-23 Ported to Typescript.
|
|
6
6
|
* @modified 2020-10-30 Exporting each color under its name globally.
|
|
7
7
|
* @modified 2025-12-08 Replaying self defined colors by official web colors.
|
|
8
|
-
* @
|
|
8
|
+
* @modified 2026-03-18 Fixing global `WebColors` array.
|
|
9
|
+
* @version 1.0.3
|
|
9
10
|
**/
|
|
10
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
12
|
exports.shuffleWebColors = exports.WebColors = exports.LightGreen = exports.Green = exports.Teal = exports.Cyan = exports.LightBlue = exports.Blue = exports.Indigo = exports.DeepPurple = exports.Purple = exports.Pink = exports.Red = void 0;
|
|
@@ -30,7 +31,19 @@ exports.LightGreen = Color_1.Color.LightGreen; // Color.makeRGB(141,195,67);
|
|
|
30
31
|
* @requires Color
|
|
31
32
|
*
|
|
32
33
|
*/
|
|
33
|
-
exports.WebColors = [
|
|
34
|
+
exports.WebColors = [
|
|
35
|
+
Color_1.Color.Red,
|
|
36
|
+
Color_1.Color.Pink,
|
|
37
|
+
Color_1.Color.Purple,
|
|
38
|
+
Color_1.Color.DeepPink,
|
|
39
|
+
Color_1.Color.Indigo,
|
|
40
|
+
Color_1.Color.Blue,
|
|
41
|
+
Color_1.Color.LightBlue,
|
|
42
|
+
Color_1.Color.Cyan,
|
|
43
|
+
Color_1.Color.Teal,
|
|
44
|
+
Color_1.Color.Green,
|
|
45
|
+
Color_1.Color.LightGreen
|
|
46
|
+
];
|
|
34
47
|
/**
|
|
35
48
|
* A helper function to shuffle the colors into a new order.
|
|
36
49
|
*/
|
|
@@ -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,gDAA+C;AAElC,QAAA,GAAG,GAAU,aAAK,CAAC,GAAG,CAAC,CAAC,4BAA4B;AACpD,QAAA,IAAI,GAAU,aAAK,CAAC,IAAI,CAAC,CAAC,6BAA6B;AACvD,QAAA,MAAM,GAAU,aAAK,CAAC,MAAM,CAAC,CAAC,6BAA6B;AAC3D,QAAA,UAAU,GAAU,aAAK,CAAC,QAAQ,CAAC,CAAC,6BAA6B;AACjE,QAAA,MAAM,GAAU,aAAK,CAAC,MAAM,CAAC,CAAC,4BAA4B;AAC1D,QAAA,IAAI,GAAU,aAAK,CAAC,IAAI,CAAC,CAAC,6BAA6B;AACvD,QAAA,SAAS,GAAU,aAAK,CAAC,SAAS,CAAC,CAAC,4BAA4B;AAChE,QAAA,IAAI,GAAU,aAAK,CAAC,IAAI,CAAC,CAAC,4BAA4B;AACtD,QAAA,IAAI,GAAU,aAAK,CAAC,IAAI,CAAC,CAAC,4BAA4B;AACtD,QAAA,KAAK,GAAU,aAAK,CAAC,KAAK,CAAC,CAAC,4BAA4B;AACxD,QAAA,UAAU,GAAU,aAAK,CAAC,UAAU,CAAC,CAAC,6BAA6B;AAEhF;;;;;;;;GAQG;AACU,QAAA,SAAS,GAAiB;IACrC,aAAK,CAAC,GAAG;IACT,aAAK,CAAC,IAAI;IACV,aAAK,CAAC,MAAM;IACZ,aAAK,CAAC,QAAQ;IACd,aAAK,CAAC,MAAM;IACZ,aAAK,CAAC,IAAI;IACV,aAAK,CAAC,SAAS;IACf,aAAK,CAAC,IAAI;IACV,aAAK,CAAC,IAAI;IACV,aAAK,CAAC,KAAK;IACX,aAAK,CAAC,UAAU;CACjB,CAAC;AAEF;;GAEG;AACI,IAAM,gBAAgB,GAAG,UAAC,KAAoB;IACnD,IAAM,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,iBAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,iBAAS,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AANW,QAAA,gBAAgB,oBAM3B"}
|
|
@@ -20,7 +20,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
20
20
|
exports.HobbyPath = void 0;
|
|
21
21
|
var CubicBezierCurve_1 = require("../../CubicBezierCurve");
|
|
22
22
|
var Vertex_1 = require("../../Vertex");
|
|
23
|
-
;
|
|
24
23
|
/**
|
|
25
24
|
* @classdesc A HobbyCurve/HobbyPath calculation class: compute a set of optimal
|
|
26
25
|
* cubic Bézier curves from a sequence of vertices.
|
|
@@ -37,7 +36,6 @@ var HobbyPath = /** @class */ (function () {
|
|
|
37
36
|
function HobbyPath(vertices) {
|
|
38
37
|
this.vertices = vertices ? vertices : [];
|
|
39
38
|
}
|
|
40
|
-
;
|
|
41
39
|
/**
|
|
42
40
|
* Add a new point to the end of the vertex sequence.
|
|
43
41
|
*
|
|
@@ -49,7 +47,6 @@ var HobbyPath = /** @class */ (function () {
|
|
|
49
47
|
HobbyPath.prototype.addPoint = function (p) {
|
|
50
48
|
this.vertices.push(p);
|
|
51
49
|
};
|
|
52
|
-
;
|
|
53
50
|
/**
|
|
54
51
|
* Generate a sequence of cubic Bézier curves from the point set.
|
|
55
52
|
*
|
|
@@ -82,7 +79,6 @@ var HobbyPath = /** @class */ (function () {
|
|
|
82
79
|
return [];
|
|
83
80
|
}
|
|
84
81
|
};
|
|
85
|
-
;
|
|
86
82
|
/**
|
|
87
83
|
* Computes the control point coordinates for a Hobby curve through
|
|
88
84
|
* the points given.
|
|
@@ -96,13 +92,17 @@ var HobbyPath = /** @class */ (function () {
|
|
|
96
92
|
**/
|
|
97
93
|
HobbyPath.prototype.hobbyControls = function (circular, omega) {
|
|
98
94
|
// This is a version that works for both, closed and non-closed paths.
|
|
99
|
-
if (typeof omega ===
|
|
95
|
+
if (typeof omega === "undefined")
|
|
100
96
|
omega = 0;
|
|
101
97
|
var n = this.vertices.length - (circular ? 0 : 1);
|
|
102
98
|
var D = new Array(n);
|
|
103
99
|
var ds = new Array(n);
|
|
104
|
-
var succ = function (i) {
|
|
105
|
-
|
|
100
|
+
var succ = function (i) {
|
|
101
|
+
return circular ? (i + 1) % n : i + 1;
|
|
102
|
+
};
|
|
103
|
+
var pred = function (i) {
|
|
104
|
+
return circular ? (i + n - 1) % n : i - 1;
|
|
105
|
+
};
|
|
106
106
|
for (var i = 0; i < n; i++) {
|
|
107
107
|
// the "next" point in a modular way
|
|
108
108
|
var j = succ(i);
|
|
@@ -110,7 +110,7 @@ var HobbyPath = /** @class */ (function () {
|
|
|
110
110
|
D[i] = Math.sqrt(ds[i].x * ds[i].x + ds[i].y * ds[i].y);
|
|
111
111
|
}
|
|
112
112
|
var gamma = new Array(n + (circular ? 0 : 1));
|
|
113
|
-
for (var i =
|
|
113
|
+
for (var i = circular ? 0 : 1; i < n; i++) {
|
|
114
114
|
// the "previous" point in a modular way
|
|
115
115
|
var k = pred(i);
|
|
116
116
|
var sin = ds[k].y / D[k];
|
|
@@ -124,7 +124,7 @@ var HobbyPath = /** @class */ (function () {
|
|
|
124
124
|
var b = new Array(n + (circular ? 0 : 1));
|
|
125
125
|
var c = new Array(n + (circular ? 0 : 1));
|
|
126
126
|
var d = new Array(n + (circular ? 0 : 1));
|
|
127
|
-
for (var i =
|
|
127
|
+
for (var i = circular ? 0 : 1; i < n; i++) {
|
|
128
128
|
// j is the "next" point, k the "previous" one
|
|
129
129
|
var j = succ(i);
|
|
130
130
|
var k = pred(i);
|
|
@@ -174,16 +174,14 @@ var HobbyPath = /** @class */ (function () {
|
|
|
174
174
|
var endControlPoints = new Array(n);
|
|
175
175
|
for (var i = 0; i < n; i++) {
|
|
176
176
|
var j = succ(i);
|
|
177
|
-
var a_1 = HobbyPath.utils.rho(alpha[i], beta[i]) * D[i] / 3;
|
|
178
|
-
var b_1 = HobbyPath.utils.rho(beta[i], alpha[i]) * D[i] / 3;
|
|
177
|
+
var a_1 = (HobbyPath.utils.rho(alpha[i], beta[i]) * D[i]) / 3;
|
|
178
|
+
var b_1 = (HobbyPath.utils.rho(beta[i], alpha[i]) * D[i]) / 3;
|
|
179
179
|
var v = HobbyPath.utils.normalize(HobbyPath.utils.rotateAngle(ds[i], alpha[i]));
|
|
180
180
|
startControlPoints[i] = new Vertex_1.Vertex(this.vertices[i].x + a_1 * v.x, this.vertices[i].y + a_1 * v.y);
|
|
181
181
|
v = HobbyPath.utils.normalize(HobbyPath.utils.rotateAngle(ds[i], -beta[i]));
|
|
182
182
|
endControlPoints[i] = new Vertex_1.Vertex(this.vertices[j].x - b_1 * v.x, this.vertices[j].y - b_1 * v.y);
|
|
183
183
|
}
|
|
184
|
-
return { startControlPoints: startControlPoints,
|
|
185
|
-
endControlPoints: endControlPoints
|
|
186
|
-
};
|
|
184
|
+
return { startControlPoints: startControlPoints, endControlPoints: endControlPoints };
|
|
187
185
|
};
|
|
188
186
|
HobbyPath.utils = {
|
|
189
187
|
// rotates a vector [x, y] about an angle; the angle is implicitly
|
|
@@ -272,7 +270,6 @@ var HobbyPath = /** @class */ (function () {
|
|
|
272
270
|
}
|
|
273
271
|
};
|
|
274
272
|
return HobbyPath;
|
|
275
|
-
}());
|
|
273
|
+
}()); // END class
|
|
276
274
|
exports.HobbyPath = HobbyPath;
|
|
277
|
-
; // END class
|
|
278
275
|
//# 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":";AAAA;;;;;;;;;;;;;;;;IAgBI;;;AAEJ,2DAA0D;AAC1D,uCAAsC;AAOtC;;;;;;GAMG;AACH;IASE;;;;QAII;IACJ,mBAAY,QAAwB;QAClC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,CAAC;IAED;;;;;;;QAOI;IACJ,4BAAQ,GAAR,UAAS,CAAS;QAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED;;;;;;;;;QASI;IACJ,iCAAa,GAAb,UAAc,QAAkB,EAAE,KAAc;QAC9C,IAAI,CAAC,GAAW,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACX,4CAA4C;gBAC5C,OAAO,CAAC,IAAI,mCAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxG,CAAC;iBAAM,CAAC;gBACN,IAAM,MAAM,GAA4B,EAAE,CAAC;gBAC3C,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAChD,iDAAiD;oBACjD,IAAI,CAAC,GAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,4BAA4B;oBACzD,MAAM,CAAC,IAAI,CACT,IAAI,mCAAgB,CAClB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAChB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAChB,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,EACnC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAClC,CACF,CAAC;gBACJ,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;;;;;;;QAUI;IACI,iCAAa,GAArB,UAAsB,QAAkB,EAAE,KAAc;QACtD,sEAAsE;QAEtE,IAAI,OAAO,KAAK,KAAK,WAAW;YAAE,KAAK,GAAG,CAAC,CAAC;QAE5C,IAAI,CAAC,GAAW,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,GAAkB,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;QAE5C,IAAI,EAAE,GAAkB,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;QAC7C,IAAI,IAAI,GAAG,UAAC,CAAS;YACnB,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC,CAAC;QACF,IAAI,IAAI,GAAG,UAAC,CAAS;YACnB,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5C,CAAC,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,oCAAoC;YACpC,IAAI,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;YACxB,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,KAAK,GAAkB,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,wCAAwC;YACxC,IAAI,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACnD,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAkB,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,GAAkB,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,GAAkB,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,GAAkB,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,8CAA8C;YAC9C,IAAI,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;YACxB,8BAA8B;YAC9B,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,oEAAoE;QACpE,IAAI,KAAoB,CAAC;QACzB,IAAI,IAAmB,CAAC;QACxB,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,GAAW,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,kBAAkB;YAChD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACT,IAAI,CAAC,GAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,kBAAkB;YACpD,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACb,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAClD,IAAI,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChD,eAAe;gBACf,IAAI,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,iEAAiE;YACjE,oEAAoE;YACpE,+DAA+D;YAC/D,kBAAkB;YAClB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACjB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACjB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACT,0DAA0D;YAC1D,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3C,4CAA4C;YAC5C,IAAI,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACvE,+BAA+B;YAC/B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,kBAAkB,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;QAC9C,IAAI,gBAAgB,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,IAAI,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,GAAC,GAAW,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpE,IAAI,GAAC,GAAW,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpE,IAAI,CAAC,GAAW,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxF,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/F,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5E,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,CAAC;QACD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACxF,CAAC;IAEM,eAAK,GAAG;QACb,kEAAkE;QAClE,oCAAoC;QACpC,MAAM,EAAE,UAAC,IAAY,EAAE,GAAW,EAAE,GAAW;YAC7C,OAAO,IAAI,eAAM,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAC9E,CAAC;QACD,gDAAgD;QAChD,WAAW,EAAE,UAAC,IAAY,EAAE,KAAa;YACvC,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,6CAA6C;QAC7C,SAAS,EAAE,UAAC,GAAW;YACrB,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,eAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;gBAC/B,OAAO,IAAI,eAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB;QACpE,CAAC;QACD,sEAAsE;QACtE,sEAAsE;QACtE,mEAAmE;QACnE,4BAA4B;QAC5B,GAAG,EAAE,UAAC,CAAS,EAAE,CAAS;YACxB,wBAAwB;YACxB,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YACzE,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;YAC5C,OAAO,GAAG,GAAG,GAAG,CAAC;QACnB,CAAC;QACD,qEAAqE;QACrE,kEAAkE;QAClE,sEAAsE;QACtE,2BAA2B;QAC3B,MAAM,EAAE,UAAC,CAAgB,EAAE,CAAgB,EAAE,CAAgB,EAAE,CAAgB;YAC7E,IAAI,CAAC,GAAW,CAAC,CAAC,MAAM,CAAC;YACzB,IAAI,EAAE,GAAkB,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;YAC7C,IAAI,EAAE,GAAkB,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;YAC7C,gBAAgB;YAChB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACpB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,GAAG,GAAW,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1C,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBACnB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YAC1C,CAAC;YACD,IAAI,CAAC,GAAkB,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;YAC5C,oBAAoB;YACpB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACjE,OAAO,CAAC,CAAC;QACX,CAAC;QACD,6DAA6D;QAC7D,mEAAmE;QACnE,iEAAiE;QACjE,iEAAiE;QACjE,mEAAmE;QACnE,gEAAgE;QAChE,iEAAiE;QACjE,8CAA8C;QAC9C,OAAO,EAAE,UAAC,CAAgB,EAAE,CAAgB,EAAE,CAAgB,EAAE,CAAgB,EAAE,CAAS,EAAE,CAAS;YACpG,IAAM,CAAC,GAAW,CAAC,CAAC,MAAM,CAAC;YAC3B,IAAM,CAAC,GAAkB,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;YAC9C,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACT,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACb,IAAI,CAAC,GAAkB,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;YAC5C,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACT,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACb,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACV,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YACd,mEAAmE;YACnE,IAAM,EAAE,GAAkB,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7D,IAAM,EAAE,GAAkB,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7D,IAAM,MAAM,GAAW,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrF,IAAM,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,CAAC;QACX,CAAC;KACF,CAAC;IACJ,gBAAC;CAAA,AA/PD,IA+PC,CAAC,YAAY;AA/PD,8BAAS"}
|
|
@@ -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
|
+
}
|