plotboilerplate 1.15.0 → 1.16.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/changelog.md +24 -0
- package/dist/index.esm.js +574 -428
- 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 +574 -428
- package/dist/plotboilerplate.min.js +1 -1
- package/package.json +1 -1
- package/src/cjs/BezierPath.d.ts +33 -1
- package/src/cjs/BezierPath.js +80 -13
- package/src/cjs/BezierPath.js.map +1 -1
- package/src/cjs/Circle.d.ts +25 -10
- package/src/cjs/Circle.js +38 -33
- package/src/cjs/Circle.js.map +1 -1
- package/src/cjs/CircleSector.d.ts +27 -13
- package/src/cjs/CircleSector.js +38 -23
- package/src/cjs/CircleSector.js.map +1 -1
- package/src/cjs/CubicBezierCurve.d.ts +17 -1
- package/src/cjs/CubicBezierCurve.js +78 -79
- package/src/cjs/CubicBezierCurve.js.map +1 -1
- package/src/cjs/KeyHandler.d.ts +10 -3
- package/src/cjs/KeyHandler.js +28 -23
- package/src/cjs/KeyHandler.js.map +1 -1
- package/src/cjs/Line.d.ts +2 -1
- package/src/cjs/Line.js +19 -18
- package/src/cjs/Line.js.map +1 -1
- package/src/cjs/MouseHandler.js +43 -53
- package/src/cjs/MouseHandler.js.map +1 -1
- package/src/cjs/PBImage.d.ts +16 -1
- package/src/cjs/PBImage.js +13 -3
- package/src/cjs/PBImage.js.map +1 -1
- package/src/cjs/PBText.d.ts +15 -1
- package/src/cjs/PBText.js +11 -1
- package/src/cjs/PBText.js.map +1 -1
- package/src/cjs/PlotBoilerplate.js +1 -1
- package/src/cjs/PlotBoilerplate.js.map +1 -1
- package/src/cjs/Polygon.d.ts +16 -1
- package/src/cjs/Polygon.js +37 -23
- package/src/cjs/Polygon.js.map +1 -1
- package/src/cjs/Triangle.d.ts +16 -1
- package/src/cjs/Triangle.js +50 -54
- package/src/cjs/Triangle.js.map +1 -1
- package/src/cjs/VEllipse.d.ts +16 -1
- package/src/cjs/VEllipse.js +25 -12
- package/src/cjs/VEllipse.js.map +1 -1
- package/src/cjs/VEllipseSector.d.ts +15 -1
- package/src/cjs/VEllipseSector.js +11 -1
- package/src/cjs/VEllipseSector.js.map +1 -1
- package/src/cjs/Vector.d.ts +3 -1
- package/src/cjs/Vector.js +32 -36
- package/src/cjs/Vector.js.map +1 -1
- package/src/cjs/VertTuple.d.ts +15 -1
- package/src/cjs/VertTuple.js +14 -19
- package/src/cjs/VertTuple.js.map +1 -1
- package/src/cjs/Vertex.d.ts +25 -1
- package/src/cjs/Vertex.js +38 -11
- package/src/cjs/Vertex.js.map +1 -1
- package/src/cjs/VertexListeners.d.ts +12 -8
- package/src/cjs/VertexListeners.js +18 -25
- package/src/cjs/VertexListeners.js.map +1 -1
- package/src/cjs/utils/creategui.js +1 -1
- package/src/cjs/utils/helpers/BezierPathInteractionHelper.d.ts +15 -0
- package/src/cjs/utils/helpers/BezierPathInteractionHelper.js +55 -28
- package/src/cjs/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
- package/src/cjs/utils/io/DndFileHandler.d.ts +63 -0
- package/src/cjs/utils/io/DndFileHandler.js +112 -0
- package/src/cjs/utils/io/DndFileHandler.js.map +1 -0
- package/src/cjs/utils/io/FileDrop.d.ts +98 -0
- package/src/cjs/utils/io/FileDrop.js +142 -0
- package/src/cjs/utils/io/FileDrop.js.map +1 -0
- package/src/esm/BezierPath.d.ts +33 -1
- package/src/esm/BezierPath.js +80 -13
- package/src/esm/BezierPath.js.map +1 -1
- package/src/esm/Circle.d.ts +25 -10
- package/src/esm/Circle.js +38 -33
- package/src/esm/Circle.js.map +1 -1
- package/src/esm/CircleSector.d.ts +27 -13
- package/src/esm/CircleSector.js +38 -23
- package/src/esm/CircleSector.js.map +1 -1
- package/src/esm/CubicBezierCurve.d.ts +17 -1
- package/src/esm/CubicBezierCurve.js +78 -79
- package/src/esm/CubicBezierCurve.js.map +1 -1
- package/src/esm/KeyHandler.d.ts +10 -3
- package/src/esm/KeyHandler.js +28 -23
- package/src/esm/KeyHandler.js.map +1 -1
- package/src/esm/Line.d.ts +2 -1
- package/src/esm/Line.js +19 -18
- package/src/esm/Line.js.map +1 -1
- package/src/esm/MouseHandler.js +43 -53
- package/src/esm/MouseHandler.js.map +1 -1
- package/src/esm/PBImage.d.ts +16 -1
- package/src/esm/PBImage.js +13 -3
- package/src/esm/PBImage.js.map +1 -1
- package/src/esm/PBText.d.ts +15 -1
- package/src/esm/PBText.js +11 -1
- package/src/esm/PBText.js.map +1 -1
- package/src/esm/PlotBoilerplate.js +1 -1
- package/src/esm/PlotBoilerplate.js.map +1 -1
- package/src/esm/Polygon.d.ts +16 -1
- package/src/esm/Polygon.js +37 -23
- package/src/esm/Polygon.js.map +1 -1
- package/src/esm/Triangle.d.ts +16 -1
- package/src/esm/Triangle.js +50 -54
- package/src/esm/Triangle.js.map +1 -1
- package/src/esm/VEllipse.d.ts +16 -1
- package/src/esm/VEllipse.js +25 -12
- package/src/esm/VEllipse.js.map +1 -1
- package/src/esm/VEllipseSector.d.ts +15 -1
- package/src/esm/VEllipseSector.js +11 -1
- package/src/esm/VEllipseSector.js.map +1 -1
- package/src/esm/Vector.d.ts +3 -1
- package/src/esm/Vector.js +32 -36
- package/src/esm/Vector.js.map +1 -1
- package/src/esm/VertTuple.d.ts +15 -1
- package/src/esm/VertTuple.js +14 -19
- package/src/esm/VertTuple.js.map +1 -1
- package/src/esm/Vertex.d.ts +25 -1
- package/src/esm/Vertex.js +38 -11
- package/src/esm/Vertex.js.map +1 -1
- package/src/esm/VertexListeners.d.ts +12 -8
- package/src/esm/VertexListeners.js +18 -25
- package/src/esm/VertexListeners.js.map +1 -1
- package/src/esm/utils/helpers/BezierPathInteractionHelper.d.ts +15 -0
- package/src/esm/utils/helpers/BezierPathInteractionHelper.js +54 -28
- package/src/esm/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
- package/src/esm/utils/io/DndFileHandler.d.ts +63 -0
- package/src/esm/utils/io/DndFileHandler.js +106 -0
- package/src/esm/utils/io/DndFileHandler.js.map +1 -0
- package/src/esm/utils/io/FileDrop.d.ts +98 -0
- package/src/esm/utils/io/FileDrop.js +136 -0
- package/src/esm/utils/io/FileDrop.js.map +1 -0
- package/src/ts/BezierPath.ts +96 -11
- package/src/ts/Circle.ts +213 -200
- package/src/ts/CircleSector.ts +171 -141
- package/src/ts/CubicBezierCurve.ts +777 -810
- package/src/ts/KeyHandler.ts +221 -212
- package/src/ts/Line.ts +77 -80
- package/src/ts/MouseHandler.ts +356 -368
- package/src/ts/PBImage.ts +81 -68
- package/src/ts/PBText.ts +20 -1
- package/src/ts/PlotBoilerplate.ts +1 -1
- package/src/ts/Polygon.ts +48 -22
- package/src/ts/Triangle.ts +484 -489
- package/src/ts/VEllipse.ts +36 -11
- package/src/ts/VEllipseSector.ts +20 -1
- package/src/ts/Vector.ts +164 -160
- package/src/ts/VertTuple.ts +333 -338
- package/src/ts/Vertex.ts +52 -10
- package/src/ts/VertexListeners.ts +248 -266
- package/src/ts/utils/helpers/BezierPathInteractionHelper.ts +61 -30
- package/src/ts/utils/io/FileDrop.ts +178 -0
package/src/esm/Circle.js
CHANGED
|
@@ -7,7 +7,9 @@
|
|
|
7
7
|
* @modified 2020-09-07 Changed the vertAt function by switching sin and cos! The old version did not return the correct vertex (by angle) accoring to the assumed circle math.
|
|
8
8
|
* @modified 2020-10-16 Added the containsCircle(...) function.
|
|
9
9
|
* @modified 2021-01-20 Added UID.
|
|
10
|
-
* @
|
|
10
|
+
* @modified 2022-02-02 Added the `destroy` method.
|
|
11
|
+
* @modified 2022-02-02 Cleared the `toSVGString` function (deprecated). Use `drawutilssvg` instead.
|
|
12
|
+
* @version 1.3.0
|
|
11
13
|
**/
|
|
12
14
|
import { Line } from "./Line";
|
|
13
15
|
import { UIDGenerator } from "./UIDGenerator";
|
|
@@ -42,7 +44,6 @@ export class Circle {
|
|
|
42
44
|
this.center = center;
|
|
43
45
|
this.radius = radius;
|
|
44
46
|
}
|
|
45
|
-
;
|
|
46
47
|
/**
|
|
47
48
|
* Check if the given circle is fully contained inside this circle.
|
|
48
49
|
*
|
|
@@ -55,7 +56,6 @@ export class Circle {
|
|
|
55
56
|
containsCircle(circle) {
|
|
56
57
|
return this.center.distance(circle.center) + circle.radius < this.radius;
|
|
57
58
|
}
|
|
58
|
-
;
|
|
59
59
|
/**
|
|
60
60
|
* Calculate the distance from this circle to the given line.
|
|
61
61
|
*
|
|
@@ -74,7 +74,6 @@ export class Circle {
|
|
|
74
74
|
const closestPointOnLine = line.getClosestPoint(this.center);
|
|
75
75
|
return closestPointOnLine.distance(this.center) - this.radius;
|
|
76
76
|
}
|
|
77
|
-
;
|
|
78
77
|
/**
|
|
79
78
|
* Get the vertex on the this circle for the given angle.
|
|
80
79
|
*
|
|
@@ -88,7 +87,6 @@ export class Circle {
|
|
|
88
87
|
// Find the point on the circle respective the angle. Then move relative to center.
|
|
89
88
|
return Circle.circleUtils.vertAt(angle, this.radius).add(this.center);
|
|
90
89
|
}
|
|
91
|
-
;
|
|
92
90
|
/**
|
|
93
91
|
* Get a tangent line of this circle for a given angle.
|
|
94
92
|
*
|
|
@@ -105,7 +103,6 @@ export class Circle {
|
|
|
105
103
|
// Construct the perpendicular of the line in point a. Then move relative to center.
|
|
106
104
|
return new Vector(pointA, new Vertex(0, 0)).add(this.center).perp();
|
|
107
105
|
}
|
|
108
|
-
;
|
|
109
106
|
/**
|
|
110
107
|
* Calculate the intersection points (if exists) with the given circle.
|
|
111
108
|
*
|
|
@@ -145,48 +142,56 @@ export class Circle {
|
|
|
145
142
|
// x4 = P2.x - h*(P1.y - P0.y)/d;
|
|
146
143
|
// y4 = P2.y + h*(P1.x - P0.x)/d;
|
|
147
144
|
// return pair<Point, Point>(Point(x3, y3), Point(x4, y4));
|
|
148
|
-
// }
|
|
145
|
+
// }
|
|
149
146
|
var p0 = this.center;
|
|
150
147
|
var p1 = circle.center;
|
|
151
148
|
var d = p0.distance(p1);
|
|
152
149
|
var a = (this.radius * this.radius - circle.radius * circle.radius + d * d) / (2 * d);
|
|
153
150
|
var h = Math.sqrt(this.radius * this.radius - a * a);
|
|
154
151
|
var p2 = p1.clone().scale(a / d, p0);
|
|
155
|
-
var x3 = p2.x + h * (p1.y - p0.y) / d;
|
|
156
|
-
var y3 = p2.y - h * (p1.x - p0.x) / d;
|
|
157
|
-
var x4 = p2.x - h * (p1.y - p0.y) / d;
|
|
158
|
-
var y4 = p2.y + h * (p1.x - p0.x) / d;
|
|
152
|
+
var x3 = p2.x + (h * (p1.y - p0.y)) / d;
|
|
153
|
+
var y3 = p2.y - (h * (p1.x - p0.x)) / d;
|
|
154
|
+
var x4 = p2.x - (h * (p1.y - p0.y)) / d;
|
|
155
|
+
var y4 = p2.y + (h * (p1.x - p0.x)) / d;
|
|
159
156
|
return new Line(new Vertex(x3, y3), new Vertex(x4, y4));
|
|
160
157
|
}
|
|
161
|
-
;
|
|
162
158
|
/**
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
159
|
+
* Create an SVG representation of this circle.
|
|
160
|
+
*
|
|
161
|
+
* @deprecated DEPRECATION Please use the drawutilssvg library and an XMLSerializer instead.
|
|
162
|
+
* @method toSVGString
|
|
163
|
+
* @param {object=} options - An optional set of options, like 'className'.
|
|
164
|
+
* @return {string} A string representing the SVG code for this vertex.
|
|
165
|
+
* @instance
|
|
166
|
+
* @memberof Circle
|
|
167
|
+
*/
|
|
172
168
|
toSVGString(options) {
|
|
173
|
-
options = options || {};
|
|
174
|
-
var buffer = [];
|
|
175
|
-
buffer.push(
|
|
176
|
-
if (options.className)
|
|
177
|
-
|
|
178
|
-
buffer.push('
|
|
179
|
-
buffer.push('
|
|
180
|
-
buffer.push(
|
|
181
|
-
buffer.
|
|
182
|
-
return
|
|
169
|
+
// options = options || {};
|
|
170
|
+
// var buffer: Array<string> = [];
|
|
171
|
+
// buffer.push("<circle");
|
|
172
|
+
// if (options.className) buffer.push(' class="' + options.className + '"');
|
|
173
|
+
// buffer.push(' cx="' + this.center.x + '"');
|
|
174
|
+
// buffer.push(' cy="' + this.center.y + '"');
|
|
175
|
+
// buffer.push(' r="' + this.radius + '"');
|
|
176
|
+
// buffer.push(" />");
|
|
177
|
+
// return buffer.join("");
|
|
178
|
+
console.warn("[Deprecation] Warning: the Circle.toSVGString method is deprecated and does not return and valid SVG data any more. Please use `drawutilssvg` instead.");
|
|
179
|
+
return "";
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* This function should invalidate any installed listeners and invalidate this object.
|
|
183
|
+
* After calling this function the object might not hold valid data any more and
|
|
184
|
+
* should not be used.
|
|
185
|
+
*/
|
|
186
|
+
destroy() {
|
|
187
|
+
this.center.destroy();
|
|
188
|
+
this.isDestroyed = true;
|
|
183
189
|
}
|
|
184
|
-
;
|
|
185
190
|
} // END class
|
|
186
191
|
Circle.circleUtils = {
|
|
187
192
|
vertAt: (angle, radius) => {
|
|
188
193
|
/* return new Vertex( Math.sin(angle) * radius,
|
|
189
|
-
|
|
194
|
+
Math.cos(angle) * radius ); */
|
|
190
195
|
return new Vertex(Math.cos(angle) * radius, Math.sin(angle) * radius);
|
|
191
196
|
}
|
|
192
197
|
};
|
package/src/esm/Circle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Circle.js","sourceRoot":"","sources":["../ts/Circle.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Circle.js","sourceRoot":"","sources":["../ts/Circle.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,10 +37,10 @@ export declare class CircleSector implements SVGSerializable {
|
|
|
37
37
|
*/
|
|
38
38
|
circle: Circle;
|
|
39
39
|
/**
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
* @member {number}
|
|
41
|
+
* @memberof CircleSector
|
|
42
|
+
* @instance
|
|
43
|
+
*/
|
|
44
44
|
startAngle: number;
|
|
45
45
|
/**
|
|
46
46
|
* @member {number}
|
|
@@ -48,6 +48,13 @@ export declare class CircleSector implements SVGSerializable {
|
|
|
48
48
|
* @instance
|
|
49
49
|
*/
|
|
50
50
|
endAngle: number;
|
|
51
|
+
/**
|
|
52
|
+
* @member isDestroyed
|
|
53
|
+
* @memberof CircleSector
|
|
54
|
+
* @type {boolean}
|
|
55
|
+
* @instance
|
|
56
|
+
*/
|
|
57
|
+
isDestroyed: boolean;
|
|
51
58
|
/**
|
|
52
59
|
* Create a new circle sector with given circle, start- and end-angle.
|
|
53
60
|
*
|
|
@@ -59,17 +66,24 @@ export declare class CircleSector implements SVGSerializable {
|
|
|
59
66
|
*/
|
|
60
67
|
constructor(circle: Circle, startAngle: number, endAngle: number);
|
|
61
68
|
/**
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
69
|
+
* Create an SVG representation of this circle.
|
|
70
|
+
*
|
|
71
|
+
* @deprecated DEPRECATION Please use the drawutilssvg library and an XMLSerializer instead.
|
|
72
|
+
* @method toSVGString
|
|
73
|
+
* @param {object=} options - An optional set of options, like 'className'.
|
|
74
|
+
* @return {string} A string representing the SVG code for this vertex.
|
|
75
|
+
* @instance
|
|
76
|
+
* @memberof Circle
|
|
77
|
+
*/
|
|
70
78
|
toSVGString(options: {
|
|
71
79
|
className?: string;
|
|
72
80
|
}): string;
|
|
81
|
+
/**
|
|
82
|
+
* This function should invalidate any installed listeners and invalidate this object.
|
|
83
|
+
* After calling this function the object might not hold valid data any more and
|
|
84
|
+
* should not be used.
|
|
85
|
+
*/
|
|
86
|
+
destroy(): void;
|
|
73
87
|
static circleSectorUtils: {
|
|
74
88
|
/**
|
|
75
89
|
* Helper function to convert polar circle coordinates to cartesian coordinates.
|
|
@@ -77,7 +91,7 @@ export declare class CircleSector implements SVGSerializable {
|
|
|
77
91
|
* TODO: generalize for ellipses (two radii).
|
|
78
92
|
*
|
|
79
93
|
* @param {number} angle - The angle in radians.
|
|
80
|
-
|
|
94
|
+
*/
|
|
81
95
|
polarToCartesian: (centerX: number, centerY: number, radius: number, angle: number) => XYCoords;
|
|
82
96
|
/**
|
|
83
97
|
* Helper function to convert a circle section as SVG arc params (for the `d` attribute).
|
package/src/esm/CircleSector.js
CHANGED
|
@@ -35,27 +35,42 @@ export class CircleSector {
|
|
|
35
35
|
this.startAngle = startAngle;
|
|
36
36
|
this.endAngle = endAngle;
|
|
37
37
|
}
|
|
38
|
-
;
|
|
39
38
|
/**
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
39
|
+
* Create an SVG representation of this circle.
|
|
40
|
+
*
|
|
41
|
+
* @deprecated DEPRECATION Please use the drawutilssvg library and an XMLSerializer instead.
|
|
42
|
+
* @method toSVGString
|
|
43
|
+
* @param {object=} options - An optional set of options, like 'className'.
|
|
44
|
+
* @return {string} A string representing the SVG code for this vertex.
|
|
45
|
+
* @instance
|
|
46
|
+
* @memberof Circle
|
|
47
|
+
*/
|
|
48
48
|
toSVGString(options) {
|
|
49
|
-
options = options || {};
|
|
50
|
-
var buffer = [];
|
|
51
|
-
buffer.push(
|
|
52
|
-
if (options.className)
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
49
|
+
// options = options || {};
|
|
50
|
+
// var buffer: Array<string> = [];
|
|
51
|
+
// buffer.push("<path ");
|
|
52
|
+
// if (options.className) buffer.push(' class="' + options.className + '"');
|
|
53
|
+
// const data: SVGPathParams = CircleSector.circleSectorUtils.describeSVGArc(
|
|
54
|
+
// this.circle.center.x,
|
|
55
|
+
// this.circle.center.y,
|
|
56
|
+
// this.circle.radius,
|
|
57
|
+
// this.startAngle,
|
|
58
|
+
// this.endAngle
|
|
59
|
+
// );
|
|
60
|
+
// buffer.push(' d="' + data.join(" ") + '" />');
|
|
61
|
+
// return buffer.join("");
|
|
62
|
+
console.warn("[Deprecation] Warning: the CircleSector.toSVGString method is deprecated and does not return and valid SVG data any more. Please use `drawutilssvg` instead.");
|
|
63
|
+
return "";
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* This function should invalidate any installed listeners and invalidate this object.
|
|
67
|
+
* After calling this function the object might not hold valid data any more and
|
|
68
|
+
* should not be used.
|
|
69
|
+
*/
|
|
70
|
+
destroy() {
|
|
71
|
+
this.circle.destroy();
|
|
72
|
+
this.isDestroyed = true;
|
|
57
73
|
}
|
|
58
|
-
;
|
|
59
74
|
} // END class
|
|
60
75
|
CircleSector.circleSectorUtils = {
|
|
61
76
|
/**
|
|
@@ -64,11 +79,11 @@ CircleSector.circleSectorUtils = {
|
|
|
64
79
|
* TODO: generalize for ellipses (two radii).
|
|
65
80
|
*
|
|
66
81
|
* @param {number} angle - The angle in radians.
|
|
67
|
-
|
|
82
|
+
*/
|
|
68
83
|
polarToCartesian: (centerX, centerY, radius, angle) => {
|
|
69
84
|
return {
|
|
70
|
-
x: centerX +
|
|
71
|
-
y: centerY +
|
|
85
|
+
x: centerX + radius * Math.cos(angle),
|
|
86
|
+
y: centerY + radius * Math.sin(angle)
|
|
72
87
|
};
|
|
73
88
|
},
|
|
74
89
|
/**
|
|
@@ -81,7 +96,7 @@ CircleSector.circleSectorUtils = {
|
|
|
81
96
|
* @return [ 'A', radiusx, radiusy, rotation=0, largeArcFlag=1|0, sweepFlag=0, endx, endy ]
|
|
82
97
|
*/
|
|
83
98
|
describeSVGArc: (x, y, radius, startAngle, endAngle, options) => {
|
|
84
|
-
if (typeof options ===
|
|
99
|
+
if (typeof options === "undefined")
|
|
85
100
|
options = { moveToStart: true };
|
|
86
101
|
const end = CircleSector.circleSectorUtils.polarToCartesian(x, y, radius, endAngle);
|
|
87
102
|
const start = CircleSector.circleSectorUtils.polarToCartesian(x, y, radius, startAngle);
|
|
@@ -106,7 +121,7 @@ CircleSector.circleSectorUtils = {
|
|
|
106
121
|
}
|
|
107
122
|
const pathData = [];
|
|
108
123
|
if (options.moveToStart) {
|
|
109
|
-
pathData.push(
|
|
124
|
+
pathData.push("M", start.x, start.y);
|
|
110
125
|
}
|
|
111
126
|
pathData.push("A", radius, radius, 0, largeArcFlag, sweepFlag, end.x, end.y);
|
|
112
127
|
return pathData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CircleSector.js","sourceRoot":"","sources":["../ts/CircleSector.ts"],"names":[],"mappings":"AAAA;;;;;;IAMI;
|
|
1
|
+
{"version":3,"file":"CircleSector.js","sourceRoot":"","sources":["../ts/CircleSector.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,9 @@
|
|
|
18
18
|
* @modified 2020-07-14 Changed the moveCurvePoint(...,Vertex) to moveCurvePoint(...,XYCoords), which is more generic.
|
|
19
19
|
* @modified 2020-07-24 Added the getClosestT function and the helper function locateIntervalByDistance(...).
|
|
20
20
|
* @modified 2021-01-20 Added UID.
|
|
21
|
-
* @
|
|
21
|
+
* @modified 2022-02-02 Added the `destroy` method.
|
|
22
|
+
* @modified 2022-02-02 Cleared the `toSVGPathData` function (deprecated). Use `drawutilssvg` instead.
|
|
23
|
+
* @version 2.6.0
|
|
22
24
|
*
|
|
23
25
|
* @file CubicBezierCurve
|
|
24
26
|
* @public
|
|
@@ -110,6 +112,13 @@ export declare class CubicBezierCurve {
|
|
|
110
112
|
* @instance
|
|
111
113
|
*/
|
|
112
114
|
arcLength: number;
|
|
115
|
+
/**
|
|
116
|
+
* @member isDestroyed
|
|
117
|
+
* @memberof CubicBezierCurve
|
|
118
|
+
* @type {boolean}
|
|
119
|
+
* @instance
|
|
120
|
+
*/
|
|
121
|
+
isDestroyed: boolean;
|
|
113
122
|
/**
|
|
114
123
|
* The constructor.
|
|
115
124
|
*
|
|
@@ -393,6 +402,12 @@ export declare class CubicBezierCurve {
|
|
|
393
402
|
* @return {boolean}
|
|
394
403
|
**/
|
|
395
404
|
equals(curve: CubicBezierCurve | undefined): boolean;
|
|
405
|
+
/**
|
|
406
|
+
* This function should invalidate any installed listeners and invalidate this object.
|
|
407
|
+
* After calling this function the object might not hold valid data any more and
|
|
408
|
+
* should not be used.
|
|
409
|
+
*/
|
|
410
|
+
destroy(): void;
|
|
396
411
|
/**
|
|
397
412
|
* Quick check for class instance.
|
|
398
413
|
* Is there a better way?
|
|
@@ -412,6 +427,7 @@ export declare class CubicBezierCurve {
|
|
|
412
427
|
* or in other words<br>
|
|
413
428
|
* <pre>'M startoint.x startPoint.y C startControlPoint.x startControlPoint.y endControlPoint.x endControlPoint.y endPoint.x endPoint.y'</pre>
|
|
414
429
|
*
|
|
430
|
+
* @deprecated DEPRECATION Please use the drawutilssvg library and an XMLSerializer instead.
|
|
415
431
|
* @method toSVGPathData
|
|
416
432
|
* @instance
|
|
417
433
|
* @memberof CubicBezierCurve
|