plotboilerplate 1.14.0 → 1.17.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 +2 -0
- package/changelog.md +57 -0
- package/dist/index.esm.js +856 -694
- 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 +858 -598
- package/dist/plotboilerplate.min.js +1 -1
- package/package.json +1 -1
- package/src/cjs/BezierPath.d.ts +32 -14
- package/src/cjs/BezierPath.js +65 -24
- package/src/cjs/BezierPath.js.map +1 -1
- package/src/cjs/Bounds.d.ts +22 -1
- package/src/cjs/Bounds.js +24 -1
- package/src/cjs/Bounds.js.map +1 -1
- package/src/cjs/Circle.d.ts +15 -13
- package/src/cjs/Circle.js +16 -34
- package/src/cjs/Circle.js.map +1 -1
- package/src/cjs/CircleSector.d.ts +17 -16
- package/src/cjs/CircleSector.js +12 -24
- package/src/cjs/CircleSector.js.map +1 -1
- package/src/cjs/CubicBezierCurve.d.ts +16 -15
- package/src/cjs/CubicBezierCurve.js +57 -94
- 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 -15
- package/src/cjs/Line.js +6 -31
- 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 +15 -13
- package/src/cjs/PBImage.js +11 -15
- package/src/cjs/PBImage.js.map +1 -1
- package/src/cjs/PBText.d.ts +13 -12
- package/src/cjs/PBText.js +8 -12
- package/src/cjs/PBText.js.map +1 -1
- package/src/cjs/PlotBoilerplate.js +3 -2
- package/src/cjs/PlotBoilerplate.js.map +1 -1
- package/src/cjs/Polygon.d.ts +44 -14
- package/src/cjs/Polygon.js +116 -66
- package/src/cjs/Polygon.js.map +1 -1
- package/src/cjs/Triangle.d.ts +15 -13
- package/src/cjs/Triangle.js +23 -64
- package/src/cjs/Triangle.js.map +1 -1
- package/src/cjs/VEllipse.d.ts +14 -9
- package/src/cjs/VEllipse.js +10 -18
- 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 -15
- package/src/cjs/Vector.js +9 -49
- 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 +47 -13
- package/src/cjs/Vertex.js +62 -22
- 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/draw.d.ts +41 -2
- package/src/cjs/draw.js +140 -3
- package/src/cjs/draw.js.map +1 -1
- package/src/cjs/drawgl.d.ts +38 -2
- package/src/cjs/drawgl.js +41 -2
- package/src/cjs/drawgl.js.map +1 -1
- package/src/cjs/drawutilssvg.d.ts +66 -3
- package/src/cjs/drawutilssvg.js +140 -15
- package/src/cjs/drawutilssvg.js.map +1 -1
- package/src/cjs/index.d.ts +0 -1
- package/src/cjs/index.js +0 -1
- package/src/cjs/index.js.map +1 -1
- package/src/cjs/interfaces/DrawLib.d.ts +61 -26
- package/src/cjs/interfaces/DrawLib.js +2 -0
- package/src/cjs/interfaces/DrawLib.js.map +1 -1
- package/src/cjs/interfaces/core.d.ts +0 -12
- package/src/cjs/module.d.ts +1 -3
- package/src/cjs/module.js +2 -5
- package/src/cjs/module.js.map +1 -1
- package/src/cjs/utils/creategui.js +16 -2
- package/src/cjs/utils/datastructures/Girih.d.ts +5 -0
- package/src/cjs/utils/datastructures/Girih.js +18 -14
- package/src/cjs/utils/datastructures/Girih.js.map +1 -1
- package/src/cjs/utils/datastructures/GirihPenroseRhombus.js +42 -25
- package/src/cjs/utils/datastructures/GirihPenroseRhombus.js.map +1 -1
- package/src/cjs/utils/datastructures/GirihTile.js +2 -13
- package/src/cjs/utils/datastructures/GirihTile.js.map +1 -1
- package/src/cjs/utils/findInVertexArray.d.ts +19 -0
- package/src/cjs/utils/findInVertexArray.js +29 -0
- package/src/cjs/utils/findInVertexArray.js.map +1 -0
- package/src/cjs/utils/helpers/BezierPathInteractionHelper.d.ts +17 -1
- package/src/cjs/utils/helpers/BezierPathInteractionHelper.js +50 -32
- 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 +32 -14
- package/src/esm/BezierPath.js +65 -24
- package/src/esm/BezierPath.js.map +1 -1
- package/src/esm/Bounds.d.ts +22 -1
- package/src/esm/Bounds.js +24 -1
- package/src/esm/Bounds.js.map +1 -1
- package/src/esm/Circle.d.ts +15 -13
- package/src/esm/Circle.js +16 -34
- package/src/esm/Circle.js.map +1 -1
- package/src/esm/CircleSector.d.ts +17 -16
- package/src/esm/CircleSector.js +12 -24
- package/src/esm/CircleSector.js.map +1 -1
- package/src/esm/CubicBezierCurve.d.ts +16 -15
- package/src/esm/CubicBezierCurve.js +57 -94
- 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 -15
- package/src/esm/Line.js +6 -31
- 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 +15 -13
- package/src/esm/PBImage.js +11 -15
- package/src/esm/PBImage.js.map +1 -1
- package/src/esm/PBText.d.ts +13 -12
- package/src/esm/PBText.js +8 -12
- package/src/esm/PBText.js.map +1 -1
- package/src/esm/PlotBoilerplate.js +3 -2
- package/src/esm/PlotBoilerplate.js.map +1 -1
- package/src/esm/Polygon.d.ts +44 -14
- package/src/esm/Polygon.js +116 -66
- package/src/esm/Polygon.js.map +1 -1
- package/src/esm/Triangle.d.ts +15 -13
- package/src/esm/Triangle.js +23 -64
- package/src/esm/Triangle.js.map +1 -1
- package/src/esm/VEllipse.d.ts +14 -9
- package/src/esm/VEllipse.js +10 -18
- 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 -15
- package/src/esm/Vector.js +9 -49
- 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 +47 -13
- package/src/esm/Vertex.js +62 -22
- 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/draw.d.ts +41 -2
- package/src/esm/draw.js +139 -3
- package/src/esm/draw.js.map +1 -1
- package/src/esm/drawgl.d.ts +38 -2
- package/src/esm/drawgl.js +41 -2
- package/src/esm/drawgl.js.map +1 -1
- package/src/esm/drawutilssvg.d.ts +66 -3
- package/src/esm/drawutilssvg.js +140 -15
- package/src/esm/drawutilssvg.js.map +1 -1
- package/src/esm/index.d.ts +0 -1
- package/src/esm/index.js +0 -1
- package/src/esm/index.js.map +1 -1
- package/src/esm/interfaces/DrawLib.d.ts +61 -26
- package/src/esm/interfaces/DrawLib.js +2 -0
- package/src/esm/interfaces/DrawLib.js.map +1 -1
- package/src/esm/interfaces/core.d.ts +0 -12
- package/src/esm/module.d.ts +1 -3
- package/src/esm/module.js +5 -4
- package/src/esm/module.js.map +1 -1
- package/src/esm/utils/datastructures/Girih.d.ts +5 -0
- package/src/esm/utils/datastructures/Girih.js +18 -14
- package/src/esm/utils/datastructures/Girih.js.map +1 -1
- package/src/esm/utils/datastructures/GirihPenroseRhombus.js +42 -25
- package/src/esm/utils/datastructures/GirihPenroseRhombus.js.map +1 -1
- package/src/esm/utils/datastructures/GirihTile.js +2 -13
- package/src/esm/utils/datastructures/GirihTile.js.map +1 -1
- package/src/esm/utils/findInVertexArray.d.ts +19 -0
- package/src/esm/utils/findInVertexArray.js +25 -0
- package/src/esm/utils/findInVertexArray.js.map +1 -0
- package/src/esm/utils/helpers/BezierPathInteractionHelper.d.ts +17 -1
- package/src/esm/utils/helpers/BezierPathInteractionHelper.js +49 -32
- 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 +78 -22
- package/src/ts/Bounds.ts +25 -1
- package/src/ts/Circle.ts +187 -200
- package/src/ts/CircleSector.ts +141 -141
- package/src/ts/CubicBezierCurve.ts +738 -810
- package/src/ts/KeyHandler.ts +221 -212
- package/src/ts/Line.ts +48 -80
- package/src/ts/MouseHandler.ts +356 -368
- package/src/ts/PBImage.ts +67 -69
- package/src/ts/PBText.ts +16 -14
- package/src/ts/PlotBoilerplate.ts +4 -2
- package/src/ts/Polygon.ts +493 -451
- package/src/ts/Triangle.ts +444 -489
- package/src/ts/VEllipse.ts +18 -17
- package/src/ts/VEllipseSector.ts +20 -1
- package/src/ts/Vector.ts +124 -160
- package/src/ts/VertTuple.ts +333 -338
- package/src/ts/Vertex.ts +75 -21
- package/src/ts/VertexListeners.ts +248 -266
- package/src/ts/draw.ts +192 -3
- package/src/ts/drawgl.ts +44 -2
- package/src/ts/drawutilssvg.ts +181 -15
- package/src/ts/index.ts +0 -1
- package/src/ts/interfaces/DrawLib.ts +69 -26
- package/src/ts/interfaces/core.ts +0 -11
- package/src/ts/module.ts +2 -4
- package/src/ts/utils/datastructures/Girih.ts +204 -209
- package/src/ts/utils/datastructures/GirihPenroseRhombus.ts +170 -152
- package/src/ts/utils/datastructures/GirihTile.ts +394 -419
- package/src/ts/utils/findInVertexArray.ts +28 -0
- package/src/ts/utils/helpers/BezierPathInteractionHelper.ts +56 -34
- package/src/ts/utils/io/FileDrop.ts +178 -0
- package/src/ts/SVGBuilder.ts +0 -109
- package/src/ts/utils/algorithms/sh-tmp.ts~ +0 -59
package/src/esm/Polygon.js
CHANGED
|
@@ -19,7 +19,12 @@
|
|
|
19
19
|
* @modified 2021-01-29 Added the `isClockwise` function.
|
|
20
20
|
* @modified 2021-01-29 Added the `area` function.
|
|
21
21
|
* @modified 2021-01-29 Changed the param type for `containsVert` from Vertex to XYCoords.
|
|
22
|
-
* @
|
|
22
|
+
* @modified 2021-12-14 Added the `perimeter()` function.
|
|
23
|
+
* @modified 2021-12-16 Added the `getEvenDistributionPolygon()` function.
|
|
24
|
+
* @modified 2022-02-02 Added the `destroy` method.
|
|
25
|
+
* @modified 2022-02-02 Cleared the `Polygon.toSVGString` function (deprecated). Use `drawutilssvg` instead.
|
|
26
|
+
* @modified 2022-03-08 Added the `Polygon.clone()` function.
|
|
27
|
+
* @version 1.10.0
|
|
23
28
|
*
|
|
24
29
|
* @file Polygon
|
|
25
30
|
* @public
|
|
@@ -54,12 +59,11 @@ export class Polygon {
|
|
|
54
59
|
**/
|
|
55
60
|
this.className = "Polygon";
|
|
56
61
|
this.uid = UIDGenerator.next();
|
|
57
|
-
if (typeof vertices ==
|
|
62
|
+
if (typeof vertices == "undefined")
|
|
58
63
|
vertices = [];
|
|
59
64
|
this.vertices = vertices;
|
|
60
65
|
this.isOpen = isOpen;
|
|
61
66
|
}
|
|
62
|
-
;
|
|
63
67
|
/**
|
|
64
68
|
* Add a vertex to the end of the `vertices` array.
|
|
65
69
|
*
|
|
@@ -71,7 +75,6 @@ export class Polygon {
|
|
|
71
75
|
addVertex(vert) {
|
|
72
76
|
this.vertices.push(vert);
|
|
73
77
|
}
|
|
74
|
-
;
|
|
75
78
|
/**
|
|
76
79
|
* Get the polygon vertex at the given position (index).
|
|
77
80
|
*
|
|
@@ -94,7 +97,6 @@ export class Polygon {
|
|
|
94
97
|
else
|
|
95
98
|
return this.vertices[index % this.vertices.length];
|
|
96
99
|
}
|
|
97
|
-
;
|
|
98
100
|
/**
|
|
99
101
|
* Move the polygon's vertices by the given amount.
|
|
100
102
|
*
|
|
@@ -104,13 +106,12 @@ export class Polygon {
|
|
|
104
106
|
* @memberof Polygon
|
|
105
107
|
* @return {Polygon} this for chaining
|
|
106
108
|
**/
|
|
107
|
-
move(
|
|
109
|
+
move(amount) {
|
|
108
110
|
for (var i in this.vertices) {
|
|
109
|
-
this.vertices[i].add(
|
|
111
|
+
this.vertices[i].add(amount);
|
|
110
112
|
}
|
|
111
113
|
return this;
|
|
112
114
|
}
|
|
113
|
-
;
|
|
114
115
|
/**
|
|
115
116
|
* Check if the given vertex is inside this polygon.<br>
|
|
116
117
|
* <br>
|
|
@@ -130,14 +131,12 @@ export class Polygon {
|
|
|
130
131
|
for (var i = 0, j = this.vertices.length - 1; i < this.vertices.length; j = i++) {
|
|
131
132
|
let xi = this.vertices[i].x, yi = this.vertices[i].y;
|
|
132
133
|
let xj = this.vertices[j].x, yj = this.vertices[j].y;
|
|
133
|
-
var intersect =
|
|
134
|
-
&& (vert.x < (xj - xi) * (vert.y - yi) / (yj - yi) + xi);
|
|
134
|
+
var intersect = yi > vert.y != yj > vert.y && vert.x < ((xj - xi) * (vert.y - yi)) / (yj - yi) + xi;
|
|
135
135
|
if (intersect)
|
|
136
136
|
inside = !inside;
|
|
137
137
|
}
|
|
138
138
|
return inside;
|
|
139
139
|
}
|
|
140
|
-
;
|
|
141
140
|
/**
|
|
142
141
|
* Calculate the area of the given polygon (unsigned).
|
|
143
142
|
*
|
|
@@ -151,7 +150,6 @@ export class Polygon {
|
|
|
151
150
|
area() {
|
|
152
151
|
return Polygon.utils.area(this.vertices);
|
|
153
152
|
}
|
|
154
|
-
;
|
|
155
153
|
/**
|
|
156
154
|
* Calulate the signed polyon area by interpreting the polygon as a matrix
|
|
157
155
|
* and calculating its determinant.
|
|
@@ -164,7 +162,6 @@ export class Polygon {
|
|
|
164
162
|
signedArea() {
|
|
165
163
|
return Polygon.utils.signedArea(this.vertices);
|
|
166
164
|
}
|
|
167
|
-
;
|
|
168
165
|
/**
|
|
169
166
|
* Get the winding order of this polgon: clockwise or counterclockwise.
|
|
170
167
|
*
|
|
@@ -176,7 +173,28 @@ export class Polygon {
|
|
|
176
173
|
isClockwise() {
|
|
177
174
|
return Polygon.utils.signedArea(this.vertices) < 0;
|
|
178
175
|
}
|
|
179
|
-
|
|
176
|
+
/**
|
|
177
|
+
* Get the perimeter of this polygon.
|
|
178
|
+
* The perimeter is the absolute length of the outline.
|
|
179
|
+
*
|
|
180
|
+
* If this polygon is open then the last segment (connecting the first and the
|
|
181
|
+
* last vertex) will be skipped.
|
|
182
|
+
*
|
|
183
|
+
* @method perimeter
|
|
184
|
+
* @instance
|
|
185
|
+
* @memberof Polygon
|
|
186
|
+
* @return {number}
|
|
187
|
+
*/
|
|
188
|
+
perimeter() {
|
|
189
|
+
let length = 0;
|
|
190
|
+
for (var i = 1; i < this.vertices.length; i++) {
|
|
191
|
+
length += this.vertices[i - 1].distance(this.vertices[i]);
|
|
192
|
+
}
|
|
193
|
+
if (!this.isOpen && this.vertices.length > 1) {
|
|
194
|
+
length += this.vertices[0].distance(this.vertices[this.vertices.length - 1]);
|
|
195
|
+
}
|
|
196
|
+
return length;
|
|
197
|
+
}
|
|
180
198
|
/**
|
|
181
199
|
* Scale the polygon relative to the given center.
|
|
182
200
|
*
|
|
@@ -189,14 +207,13 @@ export class Polygon {
|
|
|
189
207
|
**/
|
|
190
208
|
scale(factor, center) {
|
|
191
209
|
for (var i in this.vertices) {
|
|
192
|
-
if (typeof this.vertices[i].scale ==
|
|
210
|
+
if (typeof this.vertices[i].scale == "function")
|
|
193
211
|
this.vertices[i].scale(factor, center);
|
|
194
212
|
else
|
|
195
|
-
console.log(
|
|
213
|
+
console.log("There seems to be a null vertex!", this.vertices[i]);
|
|
196
214
|
}
|
|
197
215
|
return this;
|
|
198
216
|
}
|
|
199
|
-
;
|
|
200
217
|
/**
|
|
201
218
|
* Rotate the polygon around the given center.
|
|
202
219
|
*
|
|
@@ -213,7 +230,52 @@ export class Polygon {
|
|
|
213
230
|
}
|
|
214
231
|
return this;
|
|
215
232
|
}
|
|
216
|
-
|
|
233
|
+
/**
|
|
234
|
+
* Convert this polygon into a new polygon with n evenly distributed vertices.
|
|
235
|
+
*
|
|
236
|
+
* @param {number} pointCount - Must not be negative.
|
|
237
|
+
*/
|
|
238
|
+
getEvenDistributionPolygon(pointCount) {
|
|
239
|
+
if (pointCount <= 0) {
|
|
240
|
+
throw new Error("pointCount must be larger than zero; is " + pointCount + ".");
|
|
241
|
+
}
|
|
242
|
+
const result = new Polygon([], this.isOpen);
|
|
243
|
+
if (this.vertices.length === 0) {
|
|
244
|
+
return result;
|
|
245
|
+
}
|
|
246
|
+
// Fetch and add the start point from the source polygon
|
|
247
|
+
let polygonPoint = new Vertex(this.vertices[0]);
|
|
248
|
+
result.vertices.push(polygonPoint);
|
|
249
|
+
if (this.vertices.length === 1) {
|
|
250
|
+
return result;
|
|
251
|
+
}
|
|
252
|
+
const perimeter = this.perimeter();
|
|
253
|
+
const stepSize = perimeter / pointCount;
|
|
254
|
+
const n = this.vertices.length;
|
|
255
|
+
let polygonIndex = 1;
|
|
256
|
+
let nextPolygonPoint = new Vertex(this.vertices[1]);
|
|
257
|
+
let segmentLength = polygonPoint.distance(nextPolygonPoint);
|
|
258
|
+
let loopMax = this.isOpen ? n : n + 1;
|
|
259
|
+
let curSegmentU = stepSize;
|
|
260
|
+
var i = 1;
|
|
261
|
+
while (i < pointCount && polygonIndex < loopMax) {
|
|
262
|
+
// Check if next eq point is inside this segment
|
|
263
|
+
if (curSegmentU < segmentLength) {
|
|
264
|
+
let newPoint = polygonPoint.clone().lerpAbs(nextPolygonPoint, curSegmentU);
|
|
265
|
+
result.vertices.push(newPoint);
|
|
266
|
+
curSegmentU += stepSize;
|
|
267
|
+
i++;
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
polygonIndex++;
|
|
271
|
+
polygonPoint = nextPolygonPoint;
|
|
272
|
+
nextPolygonPoint = new Vertex(this.vertices[polygonIndex % n]);
|
|
273
|
+
curSegmentU = curSegmentU - segmentLength;
|
|
274
|
+
segmentLength = polygonPoint.distance(nextPolygonPoint);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
return result;
|
|
278
|
+
}
|
|
217
279
|
/**
|
|
218
280
|
* Get the bounding box (bounds) of this polygon.
|
|
219
281
|
*
|
|
@@ -225,7 +287,14 @@ export class Polygon {
|
|
|
225
287
|
getBounds() {
|
|
226
288
|
return Bounds.computeFromVertices(this.vertices);
|
|
227
289
|
}
|
|
228
|
-
|
|
290
|
+
/**
|
|
291
|
+
* Create a deep copy of this polygon.
|
|
292
|
+
*
|
|
293
|
+
* @return {Polygon} The cloned polygon.
|
|
294
|
+
*/
|
|
295
|
+
clone() {
|
|
296
|
+
return new Polygon(this.vertices.map(vert => vert.clone()), this.isOpen);
|
|
297
|
+
}
|
|
229
298
|
/**
|
|
230
299
|
* Convert this polygon to a sequence of quadratic Bézier curves.<br>
|
|
231
300
|
* <br>
|
|
@@ -257,7 +326,6 @@ export class Polygon {
|
|
|
257
326
|
}
|
|
258
327
|
return qbezier;
|
|
259
328
|
}
|
|
260
|
-
;
|
|
261
329
|
/**
|
|
262
330
|
* Convert this polygon to a quadratic bezier curve, represented as an SVG data string.
|
|
263
331
|
*
|
|
@@ -270,13 +338,12 @@ export class Polygon {
|
|
|
270
338
|
var qdata = this.toQuadraticBezierData();
|
|
271
339
|
if (qdata.length == 0)
|
|
272
340
|
return "";
|
|
273
|
-
var buffer = [
|
|
341
|
+
var buffer = ["M " + qdata[0].x + " " + qdata[0].y];
|
|
274
342
|
for (var i = 1; i < qdata.length; i += 2) {
|
|
275
|
-
buffer.push(
|
|
343
|
+
buffer.push("Q " + qdata[i].x + " " + qdata[i].y + ", " + qdata[i + 1].x + " " + qdata[i + 1].y);
|
|
276
344
|
}
|
|
277
|
-
return buffer.join(
|
|
345
|
+
return buffer.join(" ");
|
|
278
346
|
}
|
|
279
|
-
;
|
|
280
347
|
/**
|
|
281
348
|
* Convert this polygon to a sequence of cubic Bézier curves.<br>
|
|
282
349
|
* <br>
|
|
@@ -293,7 +360,7 @@ export class Polygon {
|
|
|
293
360
|
* @memberof Polygon
|
|
294
361
|
**/
|
|
295
362
|
toCubicBezierData(threshold) {
|
|
296
|
-
if (typeof threshold ==
|
|
363
|
+
if (typeof threshold == "undefined")
|
|
297
364
|
threshold = 1.0;
|
|
298
365
|
if (this.vertices.length < 3)
|
|
299
366
|
return [];
|
|
@@ -317,7 +384,6 @@ export class Polygon {
|
|
|
317
384
|
}
|
|
318
385
|
return cbezier;
|
|
319
386
|
}
|
|
320
|
-
;
|
|
321
387
|
/**
|
|
322
388
|
* Convert this polygon to a cubic bezier curve, represented as an SVG data string.
|
|
323
389
|
*
|
|
@@ -330,13 +396,23 @@ export class Polygon {
|
|
|
330
396
|
var qdata = this.toCubicBezierData(threshold);
|
|
331
397
|
if (qdata.length == 0)
|
|
332
398
|
return "";
|
|
333
|
-
var buffer = [
|
|
399
|
+
var buffer = ["M " + qdata[0].x + " " + qdata[0].y];
|
|
334
400
|
for (var i = 1; i < qdata.length; i += 3) {
|
|
335
|
-
buffer.push(
|
|
401
|
+
buffer.push("C " +
|
|
402
|
+
qdata[i].x +
|
|
403
|
+
" " +
|
|
404
|
+
qdata[i].y +
|
|
405
|
+
", " +
|
|
406
|
+
qdata[i + 1].x +
|
|
407
|
+
" " +
|
|
408
|
+
qdata[i + 1].y +
|
|
409
|
+
", " +
|
|
410
|
+
qdata[i + 2].x +
|
|
411
|
+
" " +
|
|
412
|
+
qdata[i + 2].y);
|
|
336
413
|
}
|
|
337
|
-
return buffer.join(
|
|
414
|
+
return buffer.join(" ");
|
|
338
415
|
}
|
|
339
|
-
;
|
|
340
416
|
/**
|
|
341
417
|
* Convert this polygon to a cubic bezier path instance.
|
|
342
418
|
*
|
|
@@ -355,43 +431,17 @@ export class Polygon {
|
|
|
355
431
|
}
|
|
356
432
|
return BezierPath.fromArray(pathdata);
|
|
357
433
|
}
|
|
358
|
-
;
|
|
359
434
|
/**
|
|
360
|
-
*
|
|
361
|
-
*
|
|
362
|
-
*
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
* @memberof Polygon
|
|
368
|
-
**/
|
|
369
|
-
toSVGString(options) {
|
|
370
|
-
options = options || {};
|
|
371
|
-
var buffer = [];
|
|
372
|
-
buffer.push('<path');
|
|
373
|
-
if (options.className)
|
|
374
|
-
buffer.push(' class="' + options.className + '"');
|
|
375
|
-
buffer.push(' d="');
|
|
376
|
-
if (this.vertices.length > 0) {
|
|
377
|
-
buffer.push('M ');
|
|
378
|
-
buffer.push(this.vertices[0].x.toString());
|
|
379
|
-
buffer.push(' ');
|
|
380
|
-
buffer.push(this.vertices[0].y.toString());
|
|
381
|
-
for (var i = 1; i < this.vertices.length; i++) {
|
|
382
|
-
buffer.push(' L ');
|
|
383
|
-
buffer.push(this.vertices[i].x.toString());
|
|
384
|
-
buffer.push(' ');
|
|
385
|
-
buffer.push(this.vertices[i].y.toString());
|
|
386
|
-
}
|
|
387
|
-
if (!this.isOpen) {
|
|
388
|
-
buffer.push(' Z');
|
|
389
|
-
}
|
|
435
|
+
* This function should invalidate any installed listeners and invalidate this object.
|
|
436
|
+
* After calling this function the object might not hold valid data any more and
|
|
437
|
+
* should not be used.
|
|
438
|
+
*/
|
|
439
|
+
destroy() {
|
|
440
|
+
for (var i = 0; i < this.vertices.length; i++) {
|
|
441
|
+
this.vertices[i].destroy();
|
|
390
442
|
}
|
|
391
|
-
|
|
392
|
-
return buffer.join('');
|
|
443
|
+
this.isDestroyed = true;
|
|
393
444
|
}
|
|
394
|
-
;
|
|
395
445
|
}
|
|
396
446
|
Polygon.utils = {
|
|
397
447
|
/**
|
|
@@ -411,8 +461,8 @@ Polygon.utils = {
|
|
|
411
461
|
const addY = vertices[(i + 1) % l].y;
|
|
412
462
|
const subX = vertices[(i + 1) % l].x;
|
|
413
463
|
const subY = vertices[i].y;
|
|
414
|
-
total +=
|
|
415
|
-
total -=
|
|
464
|
+
total += addX * addY * 0.5;
|
|
465
|
+
total -= subX * subY * 0.5;
|
|
416
466
|
}
|
|
417
467
|
return Math.abs(total);
|
|
418
468
|
},
|
package/src/esm/Polygon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Polygon.js","sourceRoot":"","sources":["../ts/Polygon.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Polygon.js","sourceRoot":"","sources":["../ts/Polygon.ts"],"names":[],"mappings":"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"}
|
package/src/esm/Triangle.d.ts
CHANGED
|
@@ -19,7 +19,9 @@
|
|
|
19
19
|
* @modified 2020-12-28 Added the `getArea` function.
|
|
20
20
|
* @modified 2021-01-20 Added UID.
|
|
21
21
|
* @modified 2021-01-22 Always updating circumcircle when retieving it.
|
|
22
|
-
* @
|
|
22
|
+
* @modified 2022-02-02 Added the `destroy` method.
|
|
23
|
+
* @modified 2022-02-02 Cleared the `Triangle.toSVGString` function (deprecated). Use `drawutilssvg` instead.
|
|
24
|
+
* @version 2.6.0
|
|
23
25
|
*
|
|
24
26
|
* @file Triangle
|
|
25
27
|
* @fileoverview A simple triangle class: three vertices.
|
|
@@ -107,6 +109,13 @@ export declare class Triangle implements SVGSerializable {
|
|
|
107
109
|
* @private
|
|
108
110
|
*/
|
|
109
111
|
private radius;
|
|
112
|
+
/**
|
|
113
|
+
* @member isDestroyed
|
|
114
|
+
* @memberof Triangle
|
|
115
|
+
* @type {boolean}
|
|
116
|
+
* @instance
|
|
117
|
+
*/
|
|
118
|
+
isDestroyed: boolean;
|
|
110
119
|
/**
|
|
111
120
|
* The constructor.
|
|
112
121
|
*
|
|
@@ -305,17 +314,10 @@ export declare class Triangle implements SVGSerializable {
|
|
|
305
314
|
*/
|
|
306
315
|
toString(): string;
|
|
307
316
|
/**
|
|
308
|
-
*
|
|
309
|
-
*
|
|
310
|
-
*
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
* @return {string} The SVG string.
|
|
314
|
-
* @instance
|
|
315
|
-
* @memberof Triangle
|
|
316
|
-
**/
|
|
317
|
-
toSVGString(options: {
|
|
318
|
-
className?: string;
|
|
319
|
-
}): string;
|
|
317
|
+
* This function should invalidate any installed listeners and invalidate this object.
|
|
318
|
+
* After calling this function the object might not hold valid data any more and
|
|
319
|
+
* should not be used.
|
|
320
|
+
*/
|
|
321
|
+
destroy(): void;
|
|
320
322
|
private static utils;
|
|
321
323
|
}
|
package/src/esm/Triangle.js
CHANGED
|
@@ -19,7 +19,9 @@
|
|
|
19
19
|
* @modified 2020-12-28 Added the `getArea` function.
|
|
20
20
|
* @modified 2021-01-20 Added UID.
|
|
21
21
|
* @modified 2021-01-22 Always updating circumcircle when retieving it.
|
|
22
|
-
* @
|
|
22
|
+
* @modified 2022-02-02 Added the `destroy` method.
|
|
23
|
+
* @modified 2022-02-02 Cleared the `Triangle.toSVGString` function (deprecated). Use `drawutilssvg` instead.
|
|
24
|
+
* @version 2.6.0
|
|
23
25
|
*
|
|
24
26
|
* @file Triangle
|
|
25
27
|
* @fileoverview A simple triangle class: three vertices.
|
|
@@ -87,7 +89,6 @@ export class Triangle {
|
|
|
87
89
|
throw `Cannot create triangle from array with less than three vertices (${arr.length})`;
|
|
88
90
|
return new Triangle(arr[0], arr[1], arr[2]);
|
|
89
91
|
}
|
|
90
|
-
;
|
|
91
92
|
/**
|
|
92
93
|
* Get the area of this triangle. The returned area is never negative.
|
|
93
94
|
*
|
|
@@ -103,7 +104,6 @@ export class Triangle {
|
|
|
103
104
|
getArea() {
|
|
104
105
|
return Math.abs(Triangle.utils.signedArea(this.a.x, this.a.y, this.b.x, this.b.y, this.c.x, this.c.y));
|
|
105
106
|
}
|
|
106
|
-
;
|
|
107
107
|
/**
|
|
108
108
|
* Get the centroid of this triangle.
|
|
109
109
|
*
|
|
@@ -117,7 +117,6 @@ export class Triangle {
|
|
|
117
117
|
getCentroid() {
|
|
118
118
|
return new Vertex((this.a.x + this.b.x + this.c.x) / 3, (this.a.y + this.b.y + this.c.y) / 3);
|
|
119
119
|
}
|
|
120
|
-
;
|
|
121
120
|
/**
|
|
122
121
|
* Scale the triangle towards its centroid.
|
|
123
122
|
*
|
|
@@ -134,7 +133,6 @@ export class Triangle {
|
|
|
134
133
|
this.c.scale(factor, centroid);
|
|
135
134
|
return this;
|
|
136
135
|
}
|
|
137
|
-
;
|
|
138
136
|
/**
|
|
139
137
|
* Get the circumcircle of this triangle.
|
|
140
138
|
*
|
|
@@ -151,11 +149,10 @@ export class Triangle {
|
|
|
151
149
|
* @memberof Triangle
|
|
152
150
|
*/
|
|
153
151
|
getCircumcircle() {
|
|
154
|
-
// if( !this.center || !this.radius )
|
|
152
|
+
// if( !this.center || !this.radius )
|
|
155
153
|
this.calcCircumcircle();
|
|
156
154
|
return new Circle(this.center.clone(), this.radius);
|
|
157
155
|
}
|
|
158
|
-
;
|
|
159
156
|
/**
|
|
160
157
|
* Check if this triangle and the passed triangle share an
|
|
161
158
|
* adjacent edge.
|
|
@@ -175,7 +172,6 @@ export class Triangle {
|
|
|
175
172
|
var c = this.c.equals(tri.a) || this.c.equals(tri.b) || this.c.equals(tri.c);
|
|
176
173
|
return (a && b) || (a && c) || (b && c);
|
|
177
174
|
}
|
|
178
|
-
;
|
|
179
175
|
/**
|
|
180
176
|
* Get that vertex of this triangle (a,b,c) that is not vert1 nor vert2 of
|
|
181
177
|
* the passed two.
|
|
@@ -188,14 +184,13 @@ export class Triangle {
|
|
|
188
184
|
* @memberof Triangle
|
|
189
185
|
*/
|
|
190
186
|
getThirdVertex(vert1, vert2) {
|
|
191
|
-
if (this.a.equals(vert1) && this.b.equals(vert2) || this.a.equals(vert2) && this.b.equals(vert1))
|
|
187
|
+
if ((this.a.equals(vert1) && this.b.equals(vert2)) || (this.a.equals(vert2) && this.b.equals(vert1)))
|
|
192
188
|
return this.c;
|
|
193
|
-
if (this.b.equals(vert1) && this.c.equals(vert2) || this.b.equals(vert2) && this.c.equals(vert1))
|
|
189
|
+
if ((this.b.equals(vert1) && this.c.equals(vert2)) || (this.b.equals(vert2) && this.c.equals(vert1)))
|
|
194
190
|
return this.a;
|
|
195
191
|
//if( this.c.equals(vert1) && this.a.equals(vert2) || this.c.equals(vert2) && this.a.equals(vert1) )
|
|
196
192
|
return this.b;
|
|
197
193
|
}
|
|
198
|
-
;
|
|
199
194
|
/**
|
|
200
195
|
* Re-compute the circumcircle of this triangle (if the vertices
|
|
201
196
|
* have changed).
|
|
@@ -235,8 +230,7 @@ export class Triangle {
|
|
|
235
230
|
}
|
|
236
231
|
this.radius_squared = dx * dx + dy * dy;
|
|
237
232
|
this.radius = Math.sqrt(this.radius_squared);
|
|
238
|
-
}
|
|
239
|
-
; // END calcCircumcircle
|
|
233
|
+
} // END calcCircumcircle
|
|
240
234
|
/**
|
|
241
235
|
* Check if the passed vertex is inside this triangle's
|
|
242
236
|
* circumcircle.
|
|
@@ -251,9 +245,8 @@ export class Triangle {
|
|
|
251
245
|
const dx = this.center.x - v.x;
|
|
252
246
|
const dy = this.center.y - v.y;
|
|
253
247
|
const dist_squared = dx * dx + dy * dy;
|
|
254
|
-
return
|
|
248
|
+
return dist_squared <= this.radius_squared;
|
|
255
249
|
}
|
|
256
|
-
;
|
|
257
250
|
/**
|
|
258
251
|
* Get the rectangular bounds for this triangle.
|
|
259
252
|
*
|
|
@@ -265,7 +258,6 @@ export class Triangle {
|
|
|
265
258
|
bounds() {
|
|
266
259
|
return new Bounds(new Vertex(Triangle.utils.min3(this.a.x, this.b.x, this.c.x), Triangle.utils.min3(this.a.y, this.b.y, this.c.y)), new Vertex(Triangle.utils.max3(this.a.x, this.b.x, this.c.x), Triangle.utils.max3(this.a.y, this.b.y, this.c.y)));
|
|
267
260
|
}
|
|
268
|
-
;
|
|
269
261
|
/**
|
|
270
262
|
* Convert this triangle to a polygon instance.
|
|
271
263
|
*
|
|
@@ -279,7 +271,6 @@ export class Triangle {
|
|
|
279
271
|
toPolygon() {
|
|
280
272
|
return new Polygon([this.a, this.b, this.c]);
|
|
281
273
|
}
|
|
282
|
-
;
|
|
283
274
|
/**
|
|
284
275
|
* Get the determinant of this triangle.
|
|
285
276
|
*
|
|
@@ -292,7 +283,6 @@ export class Triangle {
|
|
|
292
283
|
// (b.y - a.y)*(c.x - b.x) - (c.y - b.y)*(b.x - a.x);
|
|
293
284
|
return (this.b.y - this.a.y) * (this.c.x - this.b.x) - (this.c.y - this.b.y) * (this.b.x - this.a.x);
|
|
294
285
|
}
|
|
295
|
-
;
|
|
296
286
|
/**
|
|
297
287
|
* Checks if the passed vertex (p) is inside this triangle.
|
|
298
288
|
*
|
|
@@ -307,7 +297,6 @@ export class Triangle {
|
|
|
307
297
|
containsPoint(p) {
|
|
308
298
|
return Triangle.utils.pointIsInTriangle(p.x, p.y, this.a.x, this.a.y, this.b.x, this.b.y, this.c.x, this.c.y);
|
|
309
299
|
}
|
|
310
|
-
;
|
|
311
300
|
/**
|
|
312
301
|
* Get that inner triangle which defines the maximal incircle.
|
|
313
302
|
*
|
|
@@ -326,7 +315,6 @@ export class Triangle {
|
|
|
326
315
|
const circleIntersC = lineC.getClosestPoint(intersection);
|
|
327
316
|
return new Triangle(circleIntersA, circleIntersB, circleIntersC);
|
|
328
317
|
}
|
|
329
|
-
;
|
|
330
318
|
/**
|
|
331
319
|
* Get the incircle of this triangle. That is the circle that touches each side
|
|
332
320
|
* of this triangle in exactly one point.
|
|
@@ -338,7 +326,6 @@ export class Triangle {
|
|
|
338
326
|
getIncircle() {
|
|
339
327
|
return this.getIncircularTriangle().getCircumcircle();
|
|
340
328
|
}
|
|
341
|
-
;
|
|
342
329
|
/**
|
|
343
330
|
* Get the incenter of this triangle (which is the center of the circumcircle).
|
|
344
331
|
*
|
|
@@ -352,7 +339,6 @@ export class Triangle {
|
|
|
352
339
|
this.calcCircumcircle();
|
|
353
340
|
return this.center.clone();
|
|
354
341
|
}
|
|
355
|
-
;
|
|
356
342
|
/**
|
|
357
343
|
* Converts this triangle into a human-readable string.
|
|
358
344
|
*
|
|
@@ -362,46 +348,19 @@ export class Triangle {
|
|
|
362
348
|
* @memberof Triangle
|
|
363
349
|
*/
|
|
364
350
|
toString() {
|
|
365
|
-
return
|
|
351
|
+
return "{ a : " + this.a.toString() + ", b : " + this.b.toString() + ", c : " + this.c.toString() + "}";
|
|
366
352
|
}
|
|
367
|
-
;
|
|
368
353
|
/**
|
|
369
|
-
*
|
|
370
|
-
*
|
|
371
|
-
*
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
toSVGString(options) {
|
|
379
|
-
options = options || {};
|
|
380
|
-
var buffer = [];
|
|
381
|
-
buffer.push('<path');
|
|
382
|
-
if (options.className)
|
|
383
|
-
buffer.push(' class="' + options.className + '"');
|
|
384
|
-
buffer.push(' d="');
|
|
385
|
-
var vertices = [this.a, this.b, this.c];
|
|
386
|
-
if (vertices.length > 0) {
|
|
387
|
-
buffer.push('M ');
|
|
388
|
-
buffer.push(vertices[0].x);
|
|
389
|
-
buffer.push(' ');
|
|
390
|
-
buffer.push(vertices[0].y);
|
|
391
|
-
for (var i = 1; i < vertices.length; i++) {
|
|
392
|
-
buffer.push(' L ');
|
|
393
|
-
buffer.push(vertices[i].x);
|
|
394
|
-
buffer.push(' ');
|
|
395
|
-
buffer.push(vertices[i].y);
|
|
396
|
-
}
|
|
397
|
-
//if( !this.isOpen ) {
|
|
398
|
-
buffer.push(' Z');
|
|
399
|
-
//}
|
|
400
|
-
}
|
|
401
|
-
buffer.push('" />');
|
|
402
|
-
return buffer.join('');
|
|
354
|
+
* This function should invalidate any installed listeners and invalidate this object.
|
|
355
|
+
* After calling this function the object might not hold valid data any more and
|
|
356
|
+
* should not be used.
|
|
357
|
+
*/
|
|
358
|
+
destroy() {
|
|
359
|
+
this.a.destroy();
|
|
360
|
+
this.b.destroy();
|
|
361
|
+
this.c.destroy();
|
|
362
|
+
this.isDestroyed = true;
|
|
403
363
|
}
|
|
404
|
-
;
|
|
405
364
|
}
|
|
406
365
|
/**
|
|
407
366
|
* An epsilon for comparison.
|
|
@@ -413,10 +372,10 @@ Triangle.EPSILON = 1.0e-6;
|
|
|
413
372
|
Triangle.utils = {
|
|
414
373
|
// Used in the bounds() function.
|
|
415
374
|
max3(a, b, c) {
|
|
416
|
-
return
|
|
375
|
+
return a >= b && a >= c ? a : b >= a && b >= c ? b : c;
|
|
417
376
|
},
|
|
418
377
|
min3(a, b, c) {
|
|
419
|
-
return
|
|
378
|
+
return a <= b && a <= c ? a : b <= a && b <= c ? b : c;
|
|
420
379
|
},
|
|
421
380
|
signedArea(p0x, p0y, p1x, p1y, p2x, p2y) {
|
|
422
381
|
return 0.5 * (-p1y * p2x + p0y * (-p1x + p2x) + p0x * (p1y - p2y) + p1x * p2y);
|
|
@@ -432,9 +391,9 @@ Triangle.utils = {
|
|
|
432
391
|
// http://stackoverflow.com/questions/2049582/how-to-determine-a-point-in-a-2d-triangle
|
|
433
392
|
// var area : number = 1/2*(-p1y*p2x + p0y*(-p1x + p2x) + p0x*(p1y - p2y) + p1x*p2y);
|
|
434
393
|
var area = Triangle.utils.signedArea(p0x, p0y, p1x, p1y, p2x, p2y);
|
|
435
|
-
var s = 1 / (2 * area) * (p0y * p2x - p0x * p2y + (p2y - p0y) * px + (p0x - p2x) * py);
|
|
436
|
-
var t = 1 / (2 * area) * (p0x * p1y - p0y * p1x + (p0y - p1y) * px + (p1x - p0x) * py);
|
|
437
|
-
return s > 0 && t > 0 &&
|
|
394
|
+
var s = (1 / (2 * area)) * (p0y * p2x - p0x * p2y + (p2y - p0y) * px + (p0x - p2x) * py);
|
|
395
|
+
var t = (1 / (2 * area)) * (p0x * p1y - p0y * p1x + (p0y - p1y) * px + (p1x - p0x) * py);
|
|
396
|
+
return s > 0 && t > 0 && 1 - s - t > 0;
|
|
438
397
|
}
|
|
439
398
|
};
|
|
440
399
|
//# sourceMappingURL=Triangle.js.map
|