plotboilerplate 1.23.3 → 1.24.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.
- package/README.md +6 -0
- package/dist/index.esm.js +1390 -265
- 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 +1264 -99
- package/dist/plotboilerplate.min.js +1 -1
- package/package.json +1 -1
- package/src/cjs/BezierPath.d.ts +41 -5
- package/src/cjs/BezierPath.js +52 -2
- package/src/cjs/BezierPath.js.map +1 -1
- package/src/cjs/Bounds.d.ts +67 -3
- package/src/cjs/Bounds.js +101 -3
- package/src/cjs/Bounds.js.map +1 -1
- package/src/cjs/Circle.d.ts +46 -4
- package/src/cjs/Circle.js +82 -3
- package/src/cjs/Circle.js.map +1 -1
- package/src/cjs/CircleSector.d.ts +51 -2
- package/src/cjs/CircleSector.js +112 -3
- package/src/cjs/CircleSector.js.map +1 -1
- package/src/cjs/CubicBezierCurve.d.ts +113 -7
- package/src/cjs/CubicBezierCurve.js +281 -33
- package/src/cjs/CubicBezierCurve.js.map +1 -1
- package/src/cjs/Line.d.ts +38 -3
- package/src/cjs/Line.js +64 -1
- package/src/cjs/Line.js.map +1 -1
- package/src/cjs/PlotBoilerplate.js +2 -9
- package/src/cjs/PlotBoilerplate.js.map +1 -1
- package/src/cjs/Polygon.d.ts +48 -4
- package/src/cjs/Polygon.js +91 -16
- package/src/cjs/Polygon.js.map +1 -1
- package/src/cjs/Triangle.d.ts +52 -3
- package/src/cjs/Triangle.js +80 -1
- package/src/cjs/Triangle.js.map +1 -1
- package/src/cjs/VEllipse.d.ts +62 -3
- package/src/cjs/VEllipse.js +181 -17
- package/src/cjs/VEllipse.js.map +1 -1
- package/src/cjs/VEllipseSector.d.ts +86 -2
- package/src/cjs/VEllipseSector.js +148 -4
- package/src/cjs/VEllipseSector.js.map +1 -1
- package/src/cjs/Vector.d.ts +12 -2
- package/src/cjs/Vector.js +15 -2
- package/src/cjs/Vector.js.map +1 -1
- package/src/cjs/VertTuple.d.ts +28 -4
- package/src/cjs/VertTuple.js +36 -3
- package/src/cjs/VertTuple.js.map +1 -1
- package/src/cjs/Vertex.d.ts +17 -2
- package/src/cjs/Vertex.js +18 -1
- package/src/cjs/Vertex.js.map +1 -1
- package/src/cjs/interfaces/core.d.ts +39 -0
- package/src/cjs/interfaces/core.js +2 -0
- package/src/cjs/interfaces/core.js.map +1 -1
- package/src/cjs/utils/algorithms/convexPolygonIncircle.d.ts +2 -1
- package/src/cjs/utils/algorithms/convexPolygonIncircle.js +14 -6
- package/src/cjs/utils/algorithms/convexPolygonIncircle.js.map +1 -1
- package/src/cjs/utils/createRandomizedPolygon.d.ts +14 -0
- package/src/cjs/utils/createRandomizedPolygon.js +32 -0
- package/src/cjs/utils/createRandomizedPolygon.js.map +1 -0
- package/src/cjs/utils/helpers/BezierPathInteractionHelper.d.ts +9 -7
- package/src/cjs/utils/helpers/BezierPathInteractionHelper.js +37 -23
- package/src/cjs/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
- package/src/cjs/utils/helpers/CircleSectorHelper.d.ts +10 -1
- package/src/cjs/utils/helpers/CircleSectorHelper.js +19 -20
- package/src/cjs/utils/helpers/CircleSectorHelper.js.map +1 -1
- package/src/cjs/utils/helpers/VEllipseHelper.d.ts +30 -0
- package/src/cjs/utils/helpers/VEllipseHelper.js +86 -0
- package/src/cjs/utils/helpers/VEllipseHelper.js.map +1 -0
- package/src/cjs/utils/helpers/VEllipseSectorHelper.d.ts +42 -3
- package/src/cjs/utils/helpers/VEllipseSectorHelper.js +107 -25
- package/src/cjs/utils/helpers/VEllipseSectorHelper.js.map +1 -1
- package/src/createDemoDrawables.js +3 -1
- package/src/esm/BezierPath.d.ts +41 -5
- package/src/esm/BezierPath.js +50 -2
- package/src/esm/BezierPath.js.map +1 -1
- package/src/esm/Bounds.d.ts +67 -3
- package/src/esm/Bounds.js +101 -3
- package/src/esm/Bounds.js.map +1 -1
- package/src/esm/Circle.d.ts +46 -4
- package/src/esm/Circle.js +79 -3
- package/src/esm/Circle.js.map +1 -1
- package/src/esm/CircleSector.d.ts +51 -2
- package/src/esm/CircleSector.js +108 -3
- package/src/esm/CircleSector.js.map +1 -1
- package/src/esm/CubicBezierCurve.d.ts +113 -7
- package/src/esm/CubicBezierCurve.js +277 -33
- package/src/esm/CubicBezierCurve.js.map +1 -1
- package/src/esm/Line.d.ts +38 -3
- package/src/esm/Line.js +62 -1
- package/src/esm/Line.js.map +1 -1
- package/src/esm/PlotBoilerplate.js +2 -9
- package/src/esm/PlotBoilerplate.js.map +1 -1
- package/src/esm/Polygon.d.ts +48 -4
- package/src/esm/Polygon.js +89 -16
- package/src/esm/Polygon.js.map +1 -1
- package/src/esm/Triangle.d.ts +52 -3
- package/src/esm/Triangle.js +77 -1
- package/src/esm/Triangle.js.map +1 -1
- package/src/esm/VEllipse.d.ts +62 -3
- package/src/esm/VEllipse.js +178 -17
- package/src/esm/VEllipse.js.map +1 -1
- package/src/esm/VEllipseSector.d.ts +86 -2
- package/src/esm/VEllipseSector.js +146 -7
- package/src/esm/VEllipseSector.js.map +1 -1
- package/src/esm/Vector.d.ts +12 -2
- package/src/esm/Vector.js +15 -2
- package/src/esm/Vector.js.map +1 -1
- package/src/esm/VertTuple.d.ts +28 -4
- package/src/esm/VertTuple.js +36 -3
- package/src/esm/VertTuple.js.map +1 -1
- package/src/esm/Vertex.d.ts +17 -2
- package/src/esm/Vertex.js +18 -1
- package/src/esm/Vertex.js.map +1 -1
- package/src/esm/interfaces/core.d.ts +39 -0
- package/src/esm/interfaces/core.js +2 -0
- package/src/esm/interfaces/core.js.map +1 -1
- package/src/esm/utils/algorithms/convexPolygonIncircle.d.ts +2 -1
- package/src/esm/utils/algorithms/convexPolygonIncircle.js +15 -7
- package/src/esm/utils/algorithms/convexPolygonIncircle.js.map +1 -1
- package/src/esm/utils/algorithms/createRandomizedPolygon.d.ts +14 -0
- package/src/esm/utils/algorithms/createRandomizedPolygon.js +28 -0
- package/src/esm/utils/algorithms/createRandomizedPolygon.js.map +1 -0
- package/src/esm/utils/createRandomizedPolygon.d.ts +14 -0
- package/src/esm/utils/createRandomizedPolygon.js +28 -0
- package/src/esm/utils/createRandomizedPolygon.js.map +1 -0
- package/src/esm/utils/helpers/BezierPathInteractionHelper.d.ts +9 -7
- package/src/esm/utils/helpers/BezierPathInteractionHelper.js +35 -22
- package/src/esm/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
- package/src/esm/utils/helpers/CircleSectorHelper.d.ts +10 -1
- package/src/esm/utils/helpers/CircleSectorHelper.js +19 -20
- package/src/esm/utils/helpers/CircleSectorHelper.js.map +1 -1
- package/src/esm/utils/helpers/VEllipseHelper.d.ts +30 -0
- package/src/esm/utils/helpers/VEllipseHelper.js +81 -0
- package/src/esm/utils/helpers/VEllipseHelper.js.map +1 -0
- package/src/esm/utils/helpers/VEllipseSectorHelper.d.ts +42 -3
- package/src/esm/utils/helpers/VEllipseSectorHelper.js +106 -24
- package/src/esm/utils/helpers/VEllipseSectorHelper.js.map +1 -1
- package/src/ts/BezierPath.ts +58 -5
- package/src/ts/Bounds.ts +110 -6
- package/src/ts/Circle.ts +87 -5
- package/src/ts/CircleSector.ts +115 -5
- package/src/ts/CubicBezierCurve.ts +332 -42
- package/src/ts/Line.ts +66 -3
- package/src/ts/PlotBoilerplate.ts +3 -9
- package/src/ts/Polygon.ts +103 -22
- package/src/ts/Triangle.ts +85 -3
- package/src/ts/VEllipse.ts +214 -19
- package/src/ts/VEllipseSector.ts +154 -8
- package/src/ts/Vector.ts +16 -2
- package/src/ts/VertTuple.ts +39 -4
- package/src/ts/Vertex.ts +20 -2
- package/src/ts/interfaces/core.ts +42 -0
- package/src/ts/utils/algorithms/convexPolygonIncircle.ts +82 -78
- package/src/ts/utils/createRandomizedPolygon.ts +31 -0
- package/src/ts/utils/helpers/BezierPathInteractionHelper.ts +45 -29
- package/src/ts/utils/helpers/CircleSectorHelper.ts +115 -125
- package/src/ts/utils/helpers/VEllipseHelper.ts +113 -0
- package/src/ts/utils/helpers/VEllipseSectorHelper.ts +142 -25
|
@@ -23,14 +23,26 @@
|
|
|
23
23
|
* @modified 2022-10-17 The `CubicBezierCurve` class now implements the new `PathSegment` interface.
|
|
24
24
|
* @modified 2023-09-30 Added the function `CubicbezierCurve.getSubCurve(number,number)` – similar to `getSubCurveAt(...)` but with absolute position parameters.
|
|
25
25
|
* @modified 2023-10-07 Added the `trimEnd`, `trimEndAt`, `trimStart`, `trimStartAt` methods.
|
|
26
|
-
* @
|
|
26
|
+
* @modified 2025-04-09 Added the `CubicBezierCurve.move` method to match the convention – which just calls `translate`.
|
|
27
|
+
* @modified 2025-04-09 Modified the `CubicBezierCurve.translate` method: chaning parameter `Vertex` to more generalized `XYCoords`.
|
|
28
|
+
* @modified 2025-04-13 Changed visibility of `CubicBezierCurve.utils` from 'private' to 'public'.
|
|
29
|
+
* @modified 2025-04-13 Added helper function `CubicBezierCurve.utils.bezierCoeffs`.
|
|
30
|
+
* @modified 2025-04-13 Added helper functopn `CubicBezierCurve.utils.sgn(number)` for division safe sign calculation.
|
|
31
|
+
* @modified 2025-03-13 Class `CubicBezierCurve` is now implementing interface `Intersectable`.
|
|
32
|
+
* @modified 2025-04-18 Added evaluation method for cubic Bézier curves `CubicBezierCurve.utils.evaluateT`.
|
|
33
|
+
* @modified 2025-04-18 Refactored method `CubicBezierCurve.getPointAt` to use `evaluateT`.
|
|
34
|
+
* @modified 2025-04-18 Fixed the `CubicBezierCurve.getBounds` method: now returning the real bounding box. Before it was an approximated one.
|
|
35
|
+
* @modified 2025-ß4-18 Added helper methods for bounding box calculation `CubucBezierCurve.util.cubicPolyMinMax` and `cubicPoly`.
|
|
36
|
+
* @version 2.9.0
|
|
27
37
|
*
|
|
28
38
|
* @file CubicBezierCurve
|
|
29
39
|
* @public
|
|
30
40
|
**/
|
|
31
41
|
import { Bounds } from "./Bounds";
|
|
32
42
|
import { Vertex } from "./Vertex";
|
|
33
|
-
import {
|
|
43
|
+
import { Vector } from "./Vector";
|
|
44
|
+
import { XYCoords, UID, PathSegment, Intersectable, IBounded } from "./interfaces";
|
|
45
|
+
import { VertTuple } from "./VertTuple";
|
|
34
46
|
/**
|
|
35
47
|
* @classdesc A refactored cubic bezier curve class.
|
|
36
48
|
*
|
|
@@ -41,7 +53,7 @@ import { XYCoords, UID, PathSegment } from "./interfaces";
|
|
|
41
53
|
* @requires UID
|
|
42
54
|
* @requires UIDGenerator
|
|
43
55
|
*/
|
|
44
|
-
export declare class CubicBezierCurve implements PathSegment {
|
|
56
|
+
export declare class CubicBezierCurve implements IBounded, Intersectable, PathSegment {
|
|
45
57
|
/** @constant {number} */
|
|
46
58
|
static readonly START_POINT: number;
|
|
47
59
|
/** @constant {number} */
|
|
@@ -151,12 +163,22 @@ export declare class CubicBezierCurve implements PathSegment {
|
|
|
151
163
|
* Translate the whole curve by the given {x,y} amount: moves all four points.
|
|
152
164
|
*
|
|
153
165
|
* @method translate
|
|
154
|
-
* @param {
|
|
166
|
+
* @param {XYCoords} amount - The amount to translate this curve by.
|
|
155
167
|
* @instance
|
|
156
168
|
* @memberof CubicBezierCurve
|
|
157
169
|
* @return {CubicBezierCurve} this (for chaining).
|
|
158
170
|
**/
|
|
159
|
-
translate(amount:
|
|
171
|
+
translate(amount: XYCoords): CubicBezierCurve;
|
|
172
|
+
/**
|
|
173
|
+
* Translate the whole curve by the given {x,y} amount: moves all four points.
|
|
174
|
+
*
|
|
175
|
+
* @method translate
|
|
176
|
+
* @param {XYCoords} amount - The amount to translate this curve by.
|
|
177
|
+
* @instance
|
|
178
|
+
* @memberof CubicBezierCurve
|
|
179
|
+
* @return {CubicBezierCurve} this (for chaining).
|
|
180
|
+
**/
|
|
181
|
+
move(amount: XYCoords): CubicBezierCurve;
|
|
160
182
|
/**
|
|
161
183
|
* Reverse this curve, means swapping start- and end-point and swapping
|
|
162
184
|
* start-control- and end-control-point.
|
|
@@ -203,6 +225,9 @@ export declare class CubicBezierCurve implements PathSegment {
|
|
|
203
225
|
*
|
|
204
226
|
* This function uses a recursive approach by cutting the curve into several linear segments.
|
|
205
227
|
*
|
|
228
|
+
* @method getClosestT
|
|
229
|
+
* @instance
|
|
230
|
+
* @memberof CubicBezierCurve
|
|
206
231
|
* @param {Vertex} p - The point to find the closest position ('t' on the curve).
|
|
207
232
|
* @return {number}
|
|
208
233
|
**/
|
|
@@ -228,7 +253,10 @@ export declare class CubicBezierCurve implements PathSegment {
|
|
|
228
253
|
* The bounds are approximated by the underlying segment buffer; the more segment there are,
|
|
229
254
|
* the more accurate will be the returned bounds.
|
|
230
255
|
*
|
|
231
|
-
* @
|
|
256
|
+
* @method getClosestT
|
|
257
|
+
* @instance
|
|
258
|
+
* @memberof CubicBezierCurve
|
|
259
|
+
* @return {Bounds} The bounds of this ellipse.
|
|
232
260
|
**/
|
|
233
261
|
getBounds(): Bounds;
|
|
234
262
|
/**
|
|
@@ -470,6 +498,27 @@ export declare class CubicBezierCurve implements PathSegment {
|
|
|
470
498
|
* @return {Vertex} The end point of the ending point's tangent.
|
|
471
499
|
*/
|
|
472
500
|
getEndTangent(): Vertex;
|
|
501
|
+
/**
|
|
502
|
+
* Get all line intersections with this shape.
|
|
503
|
+
*
|
|
504
|
+
* This method returns all intersections (as vertices) with this shape. The returned array of vertices is in no specific order.
|
|
505
|
+
*
|
|
506
|
+
* @param {VertTuple} line - The line to find intersections with.
|
|
507
|
+
* @param {boolean} inVectorBoundsOnly - If set to true only intersecion points on the passed vector are returned (located strictly between start and end vertex).
|
|
508
|
+
* @returns {Array<Vertex>} - An array of all intersections with the shape outline.
|
|
509
|
+
*/
|
|
510
|
+
lineIntersections(line: VertTuple<any>, inVectorBoundsOnly?: boolean): Array<Vertex>;
|
|
511
|
+
/**
|
|
512
|
+
* Get all line intersections of this polygon and their tangents along the shape.
|
|
513
|
+
*
|
|
514
|
+
* This method returns all intersection tangents (as vectors) with this shape. The returned array of vectors is in no specific order.
|
|
515
|
+
*
|
|
516
|
+
* @param line
|
|
517
|
+
* @param lineIntersectionTangents
|
|
518
|
+
* @returns
|
|
519
|
+
*/
|
|
520
|
+
lineIntersectionTangents(line: VertTuple<any>, inVectorBoundsOnly?: boolean): Array<Vector>;
|
|
521
|
+
lineIntersectionTs(line: VertTuple<any>): Array<number>;
|
|
473
522
|
/**
|
|
474
523
|
* Check if this and the specified curve are equal.<br>
|
|
475
524
|
* <br>
|
|
@@ -546,5 +595,62 @@ export declare class CubicBezierCurve implements PathSegment {
|
|
|
546
595
|
/**
|
|
547
596
|
* Helper utils.
|
|
548
597
|
*/
|
|
549
|
-
|
|
598
|
+
static utils: {
|
|
599
|
+
evaluateT: (p0: number, p1: number, p2: number, p3: number, t: number) => number;
|
|
600
|
+
cubicPolyMinMax: (p0: number, p1: number, p2: number, p3: number) => {
|
|
601
|
+
min: number;
|
|
602
|
+
max: number;
|
|
603
|
+
};
|
|
604
|
+
/**
|
|
605
|
+
* Get the points of a sub curve at the given start end end offsets (values between 0.0 and 1.0).
|
|
606
|
+
*
|
|
607
|
+
* tStart >= tEnd is allowed, you will get a reversed sub curve then.
|
|
608
|
+
*
|
|
609
|
+
* @method getSubCurvePointsAt
|
|
610
|
+
* @param {CubicBezierCurve} curve – The curve to get the sub curve points from.
|
|
611
|
+
* @param {number} tStart – The start offset of the desired sub curve (must be in [0..1]).
|
|
612
|
+
* @param {number} tEnd – The end offset if the desired cub curve (must be in [0..1]).
|
|
613
|
+
* @instance
|
|
614
|
+
* @memberof CubicBezierCurve
|
|
615
|
+
* @return {CubicBezierCurve} The sub curve as a new curve.
|
|
616
|
+
**/
|
|
617
|
+
getSubCurvePointsAt: (curve: CubicBezierCurve, tStart: number, tEnd: number) => [Vertex, Vertex, Vertex, Vertex];
|
|
618
|
+
/**
|
|
619
|
+
* Compute the cubic roots for the given cubic polynomial coefficients.
|
|
620
|
+
*
|
|
621
|
+
* Based on
|
|
622
|
+
* http://mysite.verizon.net/res148h4j/javascript/script_exact_cubic.html#the%20source%20code
|
|
623
|
+
* Inspired by
|
|
624
|
+
* https://www.particleincell.com/2013/cubic-line-intersection/
|
|
625
|
+
* Thanks to Stephan Schmitt and Particle-In-Cell!
|
|
626
|
+
*
|
|
627
|
+
* @param poly
|
|
628
|
+
* @returns
|
|
629
|
+
*/
|
|
630
|
+
cubicRoots: (poly: number[]) => number[];
|
|
631
|
+
/**
|
|
632
|
+
* Compute the Bézier coefficients from the given Bézier point coordinates.
|
|
633
|
+
*
|
|
634
|
+
* @param {number} p0 - The start point coordinate.
|
|
635
|
+
* @param {number} p1 - The start control point coordinate.
|
|
636
|
+
* @param {number} p2 - The end control point coordinate.
|
|
637
|
+
* @param {number} p3 - The end point coordinate.
|
|
638
|
+
* @returns {[number,number,number,number]}
|
|
639
|
+
*/
|
|
640
|
+
bezierCoeffs: (p0: number, p1: number, p2: number, p3: number) => [number, number, number, number];
|
|
641
|
+
/**
|
|
642
|
+
* Calculate the cubic polynomial coefficients used to find the bounding box.
|
|
643
|
+
*
|
|
644
|
+
* @param {number} p0 - The start point coordinate.
|
|
645
|
+
* @param {number} p1 - The start control point coordinate.
|
|
646
|
+
* @param {number} p2 - The end control point coordinate.
|
|
647
|
+
* @param {number} p3 - The end point coordinate.
|
|
648
|
+
* @returns {[number,number,number]}
|
|
649
|
+
*/
|
|
650
|
+
cubicPoly: (p0: number, p1: number, p2: number, p3: number) => [number, number, number];
|
|
651
|
+
/**
|
|
652
|
+
* sign of number, but is division safe: no zero returned :)
|
|
653
|
+
*/
|
|
654
|
+
sgn(x: number): number;
|
|
655
|
+
};
|
|
550
656
|
}
|
|
@@ -24,7 +24,17 @@
|
|
|
24
24
|
* @modified 2022-10-17 The `CubicBezierCurve` class now implements the new `PathSegment` interface.
|
|
25
25
|
* @modified 2023-09-30 Added the function `CubicbezierCurve.getSubCurve(number,number)` – similar to `getSubCurveAt(...)` but with absolute position parameters.
|
|
26
26
|
* @modified 2023-10-07 Added the `trimEnd`, `trimEndAt`, `trimStart`, `trimStartAt` methods.
|
|
27
|
-
* @
|
|
27
|
+
* @modified 2025-04-09 Added the `CubicBezierCurve.move` method to match the convention – which just calls `translate`.
|
|
28
|
+
* @modified 2025-04-09 Modified the `CubicBezierCurve.translate` method: chaning parameter `Vertex` to more generalized `XYCoords`.
|
|
29
|
+
* @modified 2025-04-13 Changed visibility of `CubicBezierCurve.utils` from 'private' to 'public'.
|
|
30
|
+
* @modified 2025-04-13 Added helper function `CubicBezierCurve.utils.bezierCoeffs`.
|
|
31
|
+
* @modified 2025-04-13 Added helper functopn `CubicBezierCurve.utils.sgn(number)` for division safe sign calculation.
|
|
32
|
+
* @modified 2025-03-13 Class `CubicBezierCurve` is now implementing interface `Intersectable`.
|
|
33
|
+
* @modified 2025-04-18 Added evaluation method for cubic Bézier curves `CubicBezierCurve.utils.evaluateT`.
|
|
34
|
+
* @modified 2025-04-18 Refactored method `CubicBezierCurve.getPointAt` to use `evaluateT`.
|
|
35
|
+
* @modified 2025-04-18 Fixed the `CubicBezierCurve.getBounds` method: now returning the real bounding box. Before it was an approximated one.
|
|
36
|
+
* @modified 2025-ß4-18 Added helper methods for bounding box calculation `CubucBezierCurve.util.cubicPolyMinMax` and `cubicPoly`.
|
|
37
|
+
* @version 2.9.0
|
|
28
38
|
*
|
|
29
39
|
* @file CubicBezierCurve
|
|
30
40
|
* @public
|
|
@@ -119,7 +129,7 @@ var CubicBezierCurve = /** @class */ (function () {
|
|
|
119
129
|
* Translate the whole curve by the given {x,y} amount: moves all four points.
|
|
120
130
|
*
|
|
121
131
|
* @method translate
|
|
122
|
-
* @param {
|
|
132
|
+
* @param {XYCoords} amount - The amount to translate this curve by.
|
|
123
133
|
* @instance
|
|
124
134
|
* @memberof CubicBezierCurve
|
|
125
135
|
* @return {CubicBezierCurve} this (for chaining).
|
|
@@ -131,6 +141,18 @@ var CubicBezierCurve = /** @class */ (function () {
|
|
|
131
141
|
this.endPoint.add(amount);
|
|
132
142
|
return this;
|
|
133
143
|
};
|
|
144
|
+
/**
|
|
145
|
+
* Translate the whole curve by the given {x,y} amount: moves all four points.
|
|
146
|
+
*
|
|
147
|
+
* @method translate
|
|
148
|
+
* @param {XYCoords} amount - The amount to translate this curve by.
|
|
149
|
+
* @instance
|
|
150
|
+
* @memberof CubicBezierCurve
|
|
151
|
+
* @return {CubicBezierCurve} this (for chaining).
|
|
152
|
+
**/
|
|
153
|
+
CubicBezierCurve.prototype.move = function (amount) {
|
|
154
|
+
return this.translate(amount);
|
|
155
|
+
};
|
|
134
156
|
/**
|
|
135
157
|
* Reverse this curve, means swapping start- and end-point and swapping
|
|
136
158
|
* start-control- and end-control-point.
|
|
@@ -211,6 +233,9 @@ var CubicBezierCurve = /** @class */ (function () {
|
|
|
211
233
|
*
|
|
212
234
|
* This function uses a recursive approach by cutting the curve into several linear segments.
|
|
213
235
|
*
|
|
236
|
+
* @method getClosestT
|
|
237
|
+
* @instance
|
|
238
|
+
* @memberof CubicBezierCurve
|
|
214
239
|
* @param {Vertex} p - The point to find the closest position ('t' on the curve).
|
|
215
240
|
* @return {number}
|
|
216
241
|
**/
|
|
@@ -260,27 +285,35 @@ var CubicBezierCurve = /** @class */ (function () {
|
|
|
260
285
|
tNext: tStart + tDiff * (Math.min(stepCount, minIndex + 1) / stepCount)
|
|
261
286
|
};
|
|
262
287
|
};
|
|
288
|
+
//--- BEGIN --- Implement interface `IBounded`
|
|
263
289
|
/**
|
|
264
290
|
* Get the bounds of this bezier curve.
|
|
265
291
|
*
|
|
266
292
|
* The bounds are approximated by the underlying segment buffer; the more segment there are,
|
|
267
293
|
* the more accurate will be the returned bounds.
|
|
268
294
|
*
|
|
269
|
-
* @
|
|
295
|
+
* @method getClosestT
|
|
296
|
+
* @instance
|
|
297
|
+
* @memberof CubicBezierCurve
|
|
298
|
+
* @return {Bounds} The bounds of this ellipse.
|
|
270
299
|
**/
|
|
271
300
|
CubicBezierCurve.prototype.getBounds = function () {
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
var
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
301
|
+
// Thanks to Richard "RM" for the Bézier bounds calculatin
|
|
302
|
+
// https://jsfiddle.net/SalixAlba/QQnvm/4/
|
|
303
|
+
var xMinMax = CubicBezierCurve.utils.cubicPolyMinMax(this.startPoint.x, this.startControlPoint.x, this.endControlPoint.x, this.endPoint.x);
|
|
304
|
+
var xl = xMinMax.min;
|
|
305
|
+
var xh = xMinMax.max;
|
|
306
|
+
var yMinMax = CubicBezierCurve.utils.cubicPolyMinMax(this.startPoint.y, this.startControlPoint.y, this.endControlPoint.y, this.endPoint.y);
|
|
307
|
+
var yl = yMinMax.min;
|
|
308
|
+
var yh = yMinMax.max;
|
|
309
|
+
return Bounds_1.Bounds.computeFromVertices([
|
|
310
|
+
{ x: xl, y: yl },
|
|
311
|
+
{ x: xl, y: yh },
|
|
312
|
+
{ x: xh, y: yh },
|
|
313
|
+
{ x: xh, y: yl }
|
|
314
|
+
]);
|
|
283
315
|
};
|
|
316
|
+
//--- END --- Implement interface `IBounded`
|
|
284
317
|
/**
|
|
285
318
|
* Get the start point of the curve.<br>
|
|
286
319
|
* <br>
|
|
@@ -367,14 +400,19 @@ var CubicBezierCurve = /** @class */ (function () {
|
|
|
367
400
|
**/
|
|
368
401
|
CubicBezierCurve.prototype.getPointAt = function (t) {
|
|
369
402
|
// Perform some powerful math magic
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
403
|
+
// TODO: cleanup
|
|
404
|
+
// const x: number =
|
|
405
|
+
// this.startPoint.x * Math.pow(1.0 - t, 3) +
|
|
406
|
+
// this.startControlPoint.x * 3 * t * Math.pow(1.0 - t, 2) +
|
|
407
|
+
// this.endControlPoint.x * 3 * Math.pow(t, 2) * (1.0 - t) +
|
|
408
|
+
// this.endPoint.x * Math.pow(t, 3);
|
|
409
|
+
// const y: number =
|
|
410
|
+
// this.startPoint.y * Math.pow(1.0 - t, 3) +
|
|
411
|
+
// this.startControlPoint.y * 3 * t * Math.pow(1.0 - t, 2) +
|
|
412
|
+
// this.endControlPoint.y * 3 * Math.pow(t, 2) * (1.0 - t) +
|
|
413
|
+
// this.endPoint.y * Math.pow(t, 3);
|
|
414
|
+
var x = CubicBezierCurve.utils.evaluateT(this.startPoint.x, this.startControlPoint.x, this.endControlPoint.x, this.endPoint.x, t);
|
|
415
|
+
var y = CubicBezierCurve.utils.evaluateT(this.startPoint.y, this.startControlPoint.y, this.endControlPoint.y, this.endPoint.y, t);
|
|
378
416
|
return new Vertex_1.Vertex(x, y);
|
|
379
417
|
};
|
|
380
418
|
/**
|
|
@@ -515,17 +553,7 @@ var CubicBezierCurve = /** @class */ (function () {
|
|
|
515
553
|
* @return {CubicBezierCurve} The sub curve as a new curve.
|
|
516
554
|
**/
|
|
517
555
|
CubicBezierCurve.prototype.getSubCurveAt = function (tStart, tEnd) {
|
|
518
|
-
//
|
|
519
|
-
// const endVec: Vector = new Vector(this.getPointAt(tEnd), this.getTangentAt(tEnd).inv());
|
|
520
|
-
// // Tangents are relative. Make absolute.
|
|
521
|
-
// startVec.b.add(startVec.a);
|
|
522
|
-
// endVec.b.add(endVec.a);
|
|
523
|
-
// // This 'splits' the curve at the given point at t.
|
|
524
|
-
// startVec.scale(0.33333333 * (tEnd - tStart));
|
|
525
|
-
// endVec.scale(0.33333333 * (tEnd - tStart));
|
|
526
|
-
// // Draw the bezier curve
|
|
527
|
-
// // pb.draw.cubicBezier( startVec.a, endVec.a, startVec.b, endVec.b, '#8800ff', 2 );
|
|
528
|
-
// return new CubicBezierCurve(startVec.a, endVec.a, startVec.b, endVec.b);
|
|
556
|
+
// This 'splits' the curve at the given point at t.
|
|
529
557
|
var subCurbePoints = CubicBezierCurve.utils.getSubCurvePointsAt(this, tStart, tEnd);
|
|
530
558
|
return new CubicBezierCurve(subCurbePoints[0], subCurbePoints[1], subCurbePoints[2], subCurbePoints[3]);
|
|
531
559
|
};
|
|
@@ -617,6 +645,73 @@ var CubicBezierCurve = /** @class */ (function () {
|
|
|
617
645
|
return this.endControlPoint;
|
|
618
646
|
};
|
|
619
647
|
//---END PathSegment-------------------------
|
|
648
|
+
//--- BEGIN --- Implement interface `Intersectable`
|
|
649
|
+
/**
|
|
650
|
+
* Get all line intersections with this shape.
|
|
651
|
+
*
|
|
652
|
+
* This method returns all intersections (as vertices) with this shape. The returned array of vertices is in no specific order.
|
|
653
|
+
*
|
|
654
|
+
* @param {VertTuple} line - The line to find intersections with.
|
|
655
|
+
* @param {boolean} inVectorBoundsOnly - If set to true only intersecion points on the passed vector are returned (located strictly between start and end vertex).
|
|
656
|
+
* @returns {Array<Vertex>} - An array of all intersections with the shape outline.
|
|
657
|
+
*/
|
|
658
|
+
CubicBezierCurve.prototype.lineIntersections = function (line, inVectorBoundsOnly) {
|
|
659
|
+
var _this = this;
|
|
660
|
+
if (inVectorBoundsOnly === void 0) { inVectorBoundsOnly = false; }
|
|
661
|
+
var intersectionTs = this.lineIntersectionTs(line);
|
|
662
|
+
var intersectionPoints = intersectionTs.map(function (t) {
|
|
663
|
+
return _this.getPointAt(t);
|
|
664
|
+
});
|
|
665
|
+
if (inVectorBoundsOnly) {
|
|
666
|
+
// const maxDist = line.length();
|
|
667
|
+
return intersectionPoints.filter(function (vert) { return line.hasPoint(vert, true); });
|
|
668
|
+
}
|
|
669
|
+
else {
|
|
670
|
+
return intersectionPoints;
|
|
671
|
+
}
|
|
672
|
+
};
|
|
673
|
+
/**
|
|
674
|
+
* Get all line intersections of this polygon and their tangents along the shape.
|
|
675
|
+
*
|
|
676
|
+
* This method returns all intersection tangents (as vectors) with this shape. The returned array of vectors is in no specific order.
|
|
677
|
+
*
|
|
678
|
+
* @param line
|
|
679
|
+
* @param lineIntersectionTangents
|
|
680
|
+
* @returns
|
|
681
|
+
*/
|
|
682
|
+
CubicBezierCurve.prototype.lineIntersectionTangents = function (line, inVectorBoundsOnly) {
|
|
683
|
+
var _this = this;
|
|
684
|
+
if (inVectorBoundsOnly === void 0) { inVectorBoundsOnly = false; }
|
|
685
|
+
var intersectionTs = this.lineIntersectionTs(line);
|
|
686
|
+
var intersectionTangents = intersectionTs.map(function (t) {
|
|
687
|
+
var startPoint = _this.getPointAt(t);
|
|
688
|
+
var endPoint = _this.getTangentAt(t);
|
|
689
|
+
return new Vector_1.Vector(startPoint, endPoint.add(startPoint));
|
|
690
|
+
});
|
|
691
|
+
if (inVectorBoundsOnly) {
|
|
692
|
+
return intersectionTangents.filter(function (vec) { return line.hasPoint(vec.a, true); });
|
|
693
|
+
}
|
|
694
|
+
else {
|
|
695
|
+
return intersectionTangents;
|
|
696
|
+
}
|
|
697
|
+
};
|
|
698
|
+
//--- END --- Implement interface `Intersectable`
|
|
699
|
+
CubicBezierCurve.prototype.lineIntersectionTs = function (line) {
|
|
700
|
+
var A = line.b.y - line.a.y; // A=y2-y1
|
|
701
|
+
var B = line.a.x - line.b.x; // B=x1-x2
|
|
702
|
+
var C = line.a.x * (line.a.y - line.b.y) + line.a.y * (line.b.x - line.a.x); //C=x1*(y1-y2)+y1*(x2-x1)
|
|
703
|
+
// var bx = bezierCoeffs(px[0], px[1], px[2], px[3]);
|
|
704
|
+
// var by = bezierCoeffs(py[0], py[1], py[2], py[3]);
|
|
705
|
+
var bx = CubicBezierCurve.utils.bezierCoeffs(this.startPoint.x, this.startControlPoint.x, this.endControlPoint.x, this.endPoint.x);
|
|
706
|
+
var by = CubicBezierCurve.utils.bezierCoeffs(this.startPoint.y, this.startControlPoint.y, this.endControlPoint.y, this.endPoint.y);
|
|
707
|
+
var poly = Array(4);
|
|
708
|
+
poly[0] = A * bx[0] + B * by[0]; /*t^3*/
|
|
709
|
+
poly[1] = A * bx[1] + B * by[1]; /*t^2*/
|
|
710
|
+
poly[2] = A * bx[2] + B * by[2]; /*t*/
|
|
711
|
+
poly[3] = A * bx[3] + B * by[3] + C; /*1*/
|
|
712
|
+
var roots = CubicBezierCurve.utils.cubicRoots(poly);
|
|
713
|
+
return roots.filter(function (root) { return root != -1; });
|
|
714
|
+
};
|
|
620
715
|
/**
|
|
621
716
|
* Check if this and the specified curve are equal.<br>
|
|
622
717
|
* <br>
|
|
@@ -783,6 +878,71 @@ var CubicBezierCurve = /** @class */ (function () {
|
|
|
783
878
|
* Helper utils.
|
|
784
879
|
*/
|
|
785
880
|
CubicBezierCurve.utils = {
|
|
881
|
+
evaluateT: function (p0, p1, p2, p3, t) {
|
|
882
|
+
return p0 * Math.pow(1.0 - t, 3) +
|
|
883
|
+
p1 * 3 * t * Math.pow(1.0 - t, 2) +
|
|
884
|
+
p2 * 3 * Math.pow(t, 2) * (1.0 - t) +
|
|
885
|
+
p3 * Math.pow(t, 3);
|
|
886
|
+
},
|
|
887
|
+
cubicPolyMinMax: function (p0, p1, p2, p3) {
|
|
888
|
+
// var polyX = CubicBezierCurve.utils.cubicPoly2(
|
|
889
|
+
// p0, // P[0].X, // bezierCurve.startPoint.x,
|
|
890
|
+
// p1, // P[1].X, // bezierCurve.startControlPoint.x,
|
|
891
|
+
// p2, // P[2].X, // bezierCurve.endControlPoint.x,
|
|
892
|
+
// p3 // P[3].X // bezierCurve.endPoint.x
|
|
893
|
+
// );
|
|
894
|
+
// var a = polyX.a;
|
|
895
|
+
// var b = polyX.b;
|
|
896
|
+
// var c = polyX.c;
|
|
897
|
+
// var disc = polyX.b * polyX.b - 4 * polyX.a * polyX.c;
|
|
898
|
+
var polyX = CubicBezierCurve.utils.cubicPoly(p0, // P[0].X, // bezierCurve.startPoint.x,
|
|
899
|
+
p1, // P[1].X, // bezierCurve.startControlPoint.x,
|
|
900
|
+
p2, // P[2].X, // bezierCurve.endControlPoint.x,
|
|
901
|
+
p3 // P[3].X // bezierCurve.endPoint.x
|
|
902
|
+
);
|
|
903
|
+
var a = polyX[0]; // .a;
|
|
904
|
+
var b = polyX[1]; // .b;
|
|
905
|
+
var c = polyX[2]; // .c;
|
|
906
|
+
//alert("a "+a+" "+b+" "+c);
|
|
907
|
+
// var disc = b * b - 4 * a * c;
|
|
908
|
+
var disc = polyX[1] * polyX[1] - 4 * polyX[0] * polyX[2];
|
|
909
|
+
// var polyX = CubicBezierCurve.utils.bezierCoeffs(p3,p2,p1,p0);
|
|
910
|
+
// var a = polyX[0]; //polyX.a;
|
|
911
|
+
// var b = polyX[1]; // .b;
|
|
912
|
+
// var c = polyX[2]; //.c;
|
|
913
|
+
// var disc = polyX[1] * polyX[1] - 4 * polyX[0] * polyX[2];
|
|
914
|
+
// var xl = Math.min(bCurve.endPoint.x, bCurve.startPoint.x); // P[0].X;
|
|
915
|
+
// var xh = Math.max(bCurve.endPoint.x, bCurve.startPoint.x); // P[0].X;
|
|
916
|
+
var xl = Math.min(p3, p0); // P[0].X;
|
|
917
|
+
var xh = Math.max(p3, p0); // P[0].X;
|
|
918
|
+
// if (P[3].X < xl) xl = P[3].X;
|
|
919
|
+
// if (P[3].X > xh) xh = P[3].X;
|
|
920
|
+
if (disc >= 0) {
|
|
921
|
+
var t1 = (-b + Math.sqrt(disc)) / (2 * a);
|
|
922
|
+
// alert("t1 " + t1);
|
|
923
|
+
if (t1 > 0 && t1 < 1) {
|
|
924
|
+
// var x1 = evalBez(PX, t1);
|
|
925
|
+
// var x1 = bCurve.getPointAt(t1).x;
|
|
926
|
+
var x1 = CubicBezierCurve.utils.evaluateT(p0, p1, p2, p3, t1); // bCurve.getPointAt(t1).x;
|
|
927
|
+
if (x1 < xl)
|
|
928
|
+
xl = x1;
|
|
929
|
+
if (x1 > xh)
|
|
930
|
+
xh = x1;
|
|
931
|
+
}
|
|
932
|
+
var t2 = (-b - Math.sqrt(disc)) / (2 * a);
|
|
933
|
+
// alert("t2 " + t2);
|
|
934
|
+
if (t2 > 0 && t2 < 1) {
|
|
935
|
+
// var x2 = evalBez(PX, t2);
|
|
936
|
+
// var x2 = bCurve.getPointAt(t2).x;
|
|
937
|
+
var x2 = CubicBezierCurve.utils.evaluateT(p0, p1, p2, p3, t2); //
|
|
938
|
+
if (x2 < xl)
|
|
939
|
+
xl = x2;
|
|
940
|
+
if (x2 > xh)
|
|
941
|
+
xh = x2;
|
|
942
|
+
}
|
|
943
|
+
}
|
|
944
|
+
return { min: xl, max: xh };
|
|
945
|
+
},
|
|
786
946
|
/**
|
|
787
947
|
* Get the points of a sub curve at the given start end end offsets (values between 0.0 and 1.0).
|
|
788
948
|
*
|
|
@@ -806,6 +966,94 @@ var CubicBezierCurve = /** @class */ (function () {
|
|
|
806
966
|
startVec.scale(0.33333333 * (tEnd - tStart));
|
|
807
967
|
endVec.scale(0.33333333 * (tEnd - tStart));
|
|
808
968
|
return [startVec.a, endVec.a, startVec.b, endVec.b];
|
|
969
|
+
},
|
|
970
|
+
/**
|
|
971
|
+
* Compute the cubic roots for the given cubic polynomial coefficients.
|
|
972
|
+
*
|
|
973
|
+
* Based on
|
|
974
|
+
* http://mysite.verizon.net/res148h4j/javascript/script_exact_cubic.html#the%20source%20code
|
|
975
|
+
* Inspired by
|
|
976
|
+
* https://www.particleincell.com/2013/cubic-line-intersection/
|
|
977
|
+
* Thanks to Stephan Schmitt and Particle-In-Cell!
|
|
978
|
+
*
|
|
979
|
+
* @param poly
|
|
980
|
+
* @returns
|
|
981
|
+
*/
|
|
982
|
+
cubicRoots: function (poly) {
|
|
983
|
+
var a = poly[0];
|
|
984
|
+
var b = poly[1];
|
|
985
|
+
var c = poly[2];
|
|
986
|
+
var d = poly[3];
|
|
987
|
+
var A = b / a;
|
|
988
|
+
var B = c / a;
|
|
989
|
+
var C = d / a;
|
|
990
|
+
var S, T, Im;
|
|
991
|
+
var Q = (3 * B - Math.pow(A, 2)) / 9;
|
|
992
|
+
var R = (9 * A * B - 27 * C - 2 * Math.pow(A, 3)) / 54;
|
|
993
|
+
var D = Math.pow(Q, 3) + Math.pow(R, 2); // polynomial discriminant
|
|
994
|
+
var ts = []; // Array();
|
|
995
|
+
if (D >= 0) {
|
|
996
|
+
// complex or duplicate roots
|
|
997
|
+
S = CubicBezierCurve.utils.sgn(R + Math.sqrt(D)) * Math.pow(Math.abs(R + Math.sqrt(D)), 1 / 3);
|
|
998
|
+
T = CubicBezierCurve.utils.sgn(R - Math.sqrt(D)) * Math.pow(Math.abs(R - Math.sqrt(D)), 1 / 3);
|
|
999
|
+
ts[0] = -A / 3 + (S + T); // real root
|
|
1000
|
+
ts[1] = -A / 3 - (S + T) / 2; // real part of complex root
|
|
1001
|
+
ts[2] = -A / 3 - (S + T) / 2; // real part of complex root
|
|
1002
|
+
Im = Math.abs((Math.sqrt(3) * (S - T)) / 2); // complex part of root pair
|
|
1003
|
+
// Mark complex roots to be discarded
|
|
1004
|
+
if (Im != 0) {
|
|
1005
|
+
ts[1] = -1;
|
|
1006
|
+
ts[2] = -1;
|
|
1007
|
+
}
|
|
1008
|
+
} // distinct real roots
|
|
1009
|
+
else {
|
|
1010
|
+
var th = Math.acos(R / Math.sqrt(-Math.pow(Q, 3)));
|
|
1011
|
+
ts[0] = 2 * Math.sqrt(-Q) * Math.cos(th / 3) - A / 3;
|
|
1012
|
+
ts[1] = 2 * Math.sqrt(-Q) * Math.cos((th + 2 * Math.PI) / 3) - A / 3;
|
|
1013
|
+
ts[2] = 2 * Math.sqrt(-Q) * Math.cos((th + 4 * Math.PI) / 3) - A / 3;
|
|
1014
|
+
Im = 0.0;
|
|
1015
|
+
}
|
|
1016
|
+
// Discard all t's out of spec and sort the rest
|
|
1017
|
+
return ts.filter(function (t) { return t >= 0 && t <= 1.0; }).sort();
|
|
1018
|
+
},
|
|
1019
|
+
/**
|
|
1020
|
+
* Compute the Bézier coefficients from the given Bézier point coordinates.
|
|
1021
|
+
*
|
|
1022
|
+
* @param {number} p0 - The start point coordinate.
|
|
1023
|
+
* @param {number} p1 - The start control point coordinate.
|
|
1024
|
+
* @param {number} p2 - The end control point coordinate.
|
|
1025
|
+
* @param {number} p3 - The end point coordinate.
|
|
1026
|
+
* @returns {[number,number,number,number]}
|
|
1027
|
+
*/
|
|
1028
|
+
bezierCoeffs: function (p0, p1, p2, p3) {
|
|
1029
|
+
var coeffs = [NaN, NaN, NaN, NaN]; //Array(4);
|
|
1030
|
+
coeffs[0] = -p0 + 3 * p1 + -3 * p2 + p3;
|
|
1031
|
+
coeffs[1] = 3 * p0 - 6 * p1 + 3 * p2;
|
|
1032
|
+
coeffs[2] = -3 * p0 + 3 * p1;
|
|
1033
|
+
coeffs[3] = p0;
|
|
1034
|
+
return coeffs;
|
|
1035
|
+
},
|
|
1036
|
+
/**
|
|
1037
|
+
* Calculate the cubic polynomial coefficients used to find the bounding box.
|
|
1038
|
+
*
|
|
1039
|
+
* @param {number} p0 - The start point coordinate.
|
|
1040
|
+
* @param {number} p1 - The start control point coordinate.
|
|
1041
|
+
* @param {number} p2 - The end control point coordinate.
|
|
1042
|
+
* @param {number} p3 - The end point coordinate.
|
|
1043
|
+
* @returns {[number,number,number]}
|
|
1044
|
+
*/
|
|
1045
|
+
cubicPoly: function (p0, p1, p2, p3) {
|
|
1046
|
+
return [
|
|
1047
|
+
3 * p3 - 9 * p2 + 9 * p1 - 3 * p0,
|
|
1048
|
+
6 * p0 - 12 * p1 + 6 * p2,
|
|
1049
|
+
3 * p1 - 3 * p0
|
|
1050
|
+
];
|
|
1051
|
+
},
|
|
1052
|
+
/**
|
|
1053
|
+
* sign of number, but is division safe: no zero returned :)
|
|
1054
|
+
*/
|
|
1055
|
+
sgn: function (x) {
|
|
1056
|
+
return x < 0.0 ? -1 : 1;
|
|
809
1057
|
}
|
|
810
1058
|
};
|
|
811
1059
|
return CubicBezierCurve;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CubicBezierCurve.js","sourceRoot":"","sources":["../ts/CubicBezierCurve.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CubicBezierCurve.js","sourceRoot":"","sources":["../ts/CubicBezierCurve.ts"],"names":[],"mappings":"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"}
|