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.
Files changed (232) hide show
  1. package/README.md +2 -0
  2. package/changelog.md +57 -0
  3. package/dist/index.esm.js +856 -694
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.esm.min.js +1 -1
  6. package/dist/index.esm.min.js.map +1 -1
  7. package/dist/plotboilerplate.browser.min.js +1 -1
  8. package/dist/plotboilerplate.browser.min.js.map +1 -1
  9. package/dist/plotboilerplate.js +858 -598
  10. package/dist/plotboilerplate.min.js +1 -1
  11. package/package.json +1 -1
  12. package/src/cjs/BezierPath.d.ts +32 -14
  13. package/src/cjs/BezierPath.js +65 -24
  14. package/src/cjs/BezierPath.js.map +1 -1
  15. package/src/cjs/Bounds.d.ts +22 -1
  16. package/src/cjs/Bounds.js +24 -1
  17. package/src/cjs/Bounds.js.map +1 -1
  18. package/src/cjs/Circle.d.ts +15 -13
  19. package/src/cjs/Circle.js +16 -34
  20. package/src/cjs/Circle.js.map +1 -1
  21. package/src/cjs/CircleSector.d.ts +17 -16
  22. package/src/cjs/CircleSector.js +12 -24
  23. package/src/cjs/CircleSector.js.map +1 -1
  24. package/src/cjs/CubicBezierCurve.d.ts +16 -15
  25. package/src/cjs/CubicBezierCurve.js +57 -94
  26. package/src/cjs/CubicBezierCurve.js.map +1 -1
  27. package/src/cjs/KeyHandler.d.ts +10 -3
  28. package/src/cjs/KeyHandler.js +28 -23
  29. package/src/cjs/KeyHandler.js.map +1 -1
  30. package/src/cjs/Line.d.ts +2 -15
  31. package/src/cjs/Line.js +6 -31
  32. package/src/cjs/Line.js.map +1 -1
  33. package/src/cjs/MouseHandler.js +43 -53
  34. package/src/cjs/MouseHandler.js.map +1 -1
  35. package/src/cjs/PBImage.d.ts +15 -13
  36. package/src/cjs/PBImage.js +11 -15
  37. package/src/cjs/PBImage.js.map +1 -1
  38. package/src/cjs/PBText.d.ts +13 -12
  39. package/src/cjs/PBText.js +8 -12
  40. package/src/cjs/PBText.js.map +1 -1
  41. package/src/cjs/PlotBoilerplate.js +3 -2
  42. package/src/cjs/PlotBoilerplate.js.map +1 -1
  43. package/src/cjs/Polygon.d.ts +44 -14
  44. package/src/cjs/Polygon.js +116 -66
  45. package/src/cjs/Polygon.js.map +1 -1
  46. package/src/cjs/Triangle.d.ts +15 -13
  47. package/src/cjs/Triangle.js +23 -64
  48. package/src/cjs/Triangle.js.map +1 -1
  49. package/src/cjs/VEllipse.d.ts +14 -9
  50. package/src/cjs/VEllipse.js +10 -18
  51. package/src/cjs/VEllipse.js.map +1 -1
  52. package/src/cjs/VEllipseSector.d.ts +15 -1
  53. package/src/cjs/VEllipseSector.js +11 -1
  54. package/src/cjs/VEllipseSector.js.map +1 -1
  55. package/src/cjs/Vector.d.ts +3 -15
  56. package/src/cjs/Vector.js +9 -49
  57. package/src/cjs/Vector.js.map +1 -1
  58. package/src/cjs/VertTuple.d.ts +15 -1
  59. package/src/cjs/VertTuple.js +14 -19
  60. package/src/cjs/VertTuple.js.map +1 -1
  61. package/src/cjs/Vertex.d.ts +47 -13
  62. package/src/cjs/Vertex.js +62 -22
  63. package/src/cjs/Vertex.js.map +1 -1
  64. package/src/cjs/VertexListeners.d.ts +12 -8
  65. package/src/cjs/VertexListeners.js +18 -25
  66. package/src/cjs/VertexListeners.js.map +1 -1
  67. package/src/cjs/draw.d.ts +41 -2
  68. package/src/cjs/draw.js +140 -3
  69. package/src/cjs/draw.js.map +1 -1
  70. package/src/cjs/drawgl.d.ts +38 -2
  71. package/src/cjs/drawgl.js +41 -2
  72. package/src/cjs/drawgl.js.map +1 -1
  73. package/src/cjs/drawutilssvg.d.ts +66 -3
  74. package/src/cjs/drawutilssvg.js +140 -15
  75. package/src/cjs/drawutilssvg.js.map +1 -1
  76. package/src/cjs/index.d.ts +0 -1
  77. package/src/cjs/index.js +0 -1
  78. package/src/cjs/index.js.map +1 -1
  79. package/src/cjs/interfaces/DrawLib.d.ts +61 -26
  80. package/src/cjs/interfaces/DrawLib.js +2 -0
  81. package/src/cjs/interfaces/DrawLib.js.map +1 -1
  82. package/src/cjs/interfaces/core.d.ts +0 -12
  83. package/src/cjs/module.d.ts +1 -3
  84. package/src/cjs/module.js +2 -5
  85. package/src/cjs/module.js.map +1 -1
  86. package/src/cjs/utils/creategui.js +16 -2
  87. package/src/cjs/utils/datastructures/Girih.d.ts +5 -0
  88. package/src/cjs/utils/datastructures/Girih.js +18 -14
  89. package/src/cjs/utils/datastructures/Girih.js.map +1 -1
  90. package/src/cjs/utils/datastructures/GirihPenroseRhombus.js +42 -25
  91. package/src/cjs/utils/datastructures/GirihPenroseRhombus.js.map +1 -1
  92. package/src/cjs/utils/datastructures/GirihTile.js +2 -13
  93. package/src/cjs/utils/datastructures/GirihTile.js.map +1 -1
  94. package/src/cjs/utils/findInVertexArray.d.ts +19 -0
  95. package/src/cjs/utils/findInVertexArray.js +29 -0
  96. package/src/cjs/utils/findInVertexArray.js.map +1 -0
  97. package/src/cjs/utils/helpers/BezierPathInteractionHelper.d.ts +17 -1
  98. package/src/cjs/utils/helpers/BezierPathInteractionHelper.js +50 -32
  99. package/src/cjs/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
  100. package/src/cjs/utils/io/DndFileHandler.d.ts +63 -0
  101. package/src/cjs/utils/io/DndFileHandler.js +112 -0
  102. package/src/cjs/utils/io/DndFileHandler.js.map +1 -0
  103. package/src/cjs/utils/io/FileDrop.d.ts +98 -0
  104. package/src/cjs/utils/io/FileDrop.js +142 -0
  105. package/src/cjs/utils/io/FileDrop.js.map +1 -0
  106. package/src/esm/BezierPath.d.ts +32 -14
  107. package/src/esm/BezierPath.js +65 -24
  108. package/src/esm/BezierPath.js.map +1 -1
  109. package/src/esm/Bounds.d.ts +22 -1
  110. package/src/esm/Bounds.js +24 -1
  111. package/src/esm/Bounds.js.map +1 -1
  112. package/src/esm/Circle.d.ts +15 -13
  113. package/src/esm/Circle.js +16 -34
  114. package/src/esm/Circle.js.map +1 -1
  115. package/src/esm/CircleSector.d.ts +17 -16
  116. package/src/esm/CircleSector.js +12 -24
  117. package/src/esm/CircleSector.js.map +1 -1
  118. package/src/esm/CubicBezierCurve.d.ts +16 -15
  119. package/src/esm/CubicBezierCurve.js +57 -94
  120. package/src/esm/CubicBezierCurve.js.map +1 -1
  121. package/src/esm/KeyHandler.d.ts +10 -3
  122. package/src/esm/KeyHandler.js +28 -23
  123. package/src/esm/KeyHandler.js.map +1 -1
  124. package/src/esm/Line.d.ts +2 -15
  125. package/src/esm/Line.js +6 -31
  126. package/src/esm/Line.js.map +1 -1
  127. package/src/esm/MouseHandler.js +43 -53
  128. package/src/esm/MouseHandler.js.map +1 -1
  129. package/src/esm/PBImage.d.ts +15 -13
  130. package/src/esm/PBImage.js +11 -15
  131. package/src/esm/PBImage.js.map +1 -1
  132. package/src/esm/PBText.d.ts +13 -12
  133. package/src/esm/PBText.js +8 -12
  134. package/src/esm/PBText.js.map +1 -1
  135. package/src/esm/PlotBoilerplate.js +3 -2
  136. package/src/esm/PlotBoilerplate.js.map +1 -1
  137. package/src/esm/Polygon.d.ts +44 -14
  138. package/src/esm/Polygon.js +116 -66
  139. package/src/esm/Polygon.js.map +1 -1
  140. package/src/esm/Triangle.d.ts +15 -13
  141. package/src/esm/Triangle.js +23 -64
  142. package/src/esm/Triangle.js.map +1 -1
  143. package/src/esm/VEllipse.d.ts +14 -9
  144. package/src/esm/VEllipse.js +10 -18
  145. package/src/esm/VEllipse.js.map +1 -1
  146. package/src/esm/VEllipseSector.d.ts +15 -1
  147. package/src/esm/VEllipseSector.js +11 -1
  148. package/src/esm/VEllipseSector.js.map +1 -1
  149. package/src/esm/Vector.d.ts +3 -15
  150. package/src/esm/Vector.js +9 -49
  151. package/src/esm/Vector.js.map +1 -1
  152. package/src/esm/VertTuple.d.ts +15 -1
  153. package/src/esm/VertTuple.js +14 -19
  154. package/src/esm/VertTuple.js.map +1 -1
  155. package/src/esm/Vertex.d.ts +47 -13
  156. package/src/esm/Vertex.js +62 -22
  157. package/src/esm/Vertex.js.map +1 -1
  158. package/src/esm/VertexListeners.d.ts +12 -8
  159. package/src/esm/VertexListeners.js +18 -25
  160. package/src/esm/VertexListeners.js.map +1 -1
  161. package/src/esm/draw.d.ts +41 -2
  162. package/src/esm/draw.js +139 -3
  163. package/src/esm/draw.js.map +1 -1
  164. package/src/esm/drawgl.d.ts +38 -2
  165. package/src/esm/drawgl.js +41 -2
  166. package/src/esm/drawgl.js.map +1 -1
  167. package/src/esm/drawutilssvg.d.ts +66 -3
  168. package/src/esm/drawutilssvg.js +140 -15
  169. package/src/esm/drawutilssvg.js.map +1 -1
  170. package/src/esm/index.d.ts +0 -1
  171. package/src/esm/index.js +0 -1
  172. package/src/esm/index.js.map +1 -1
  173. package/src/esm/interfaces/DrawLib.d.ts +61 -26
  174. package/src/esm/interfaces/DrawLib.js +2 -0
  175. package/src/esm/interfaces/DrawLib.js.map +1 -1
  176. package/src/esm/interfaces/core.d.ts +0 -12
  177. package/src/esm/module.d.ts +1 -3
  178. package/src/esm/module.js +5 -4
  179. package/src/esm/module.js.map +1 -1
  180. package/src/esm/utils/datastructures/Girih.d.ts +5 -0
  181. package/src/esm/utils/datastructures/Girih.js +18 -14
  182. package/src/esm/utils/datastructures/Girih.js.map +1 -1
  183. package/src/esm/utils/datastructures/GirihPenroseRhombus.js +42 -25
  184. package/src/esm/utils/datastructures/GirihPenroseRhombus.js.map +1 -1
  185. package/src/esm/utils/datastructures/GirihTile.js +2 -13
  186. package/src/esm/utils/datastructures/GirihTile.js.map +1 -1
  187. package/src/esm/utils/findInVertexArray.d.ts +19 -0
  188. package/src/esm/utils/findInVertexArray.js +25 -0
  189. package/src/esm/utils/findInVertexArray.js.map +1 -0
  190. package/src/esm/utils/helpers/BezierPathInteractionHelper.d.ts +17 -1
  191. package/src/esm/utils/helpers/BezierPathInteractionHelper.js +49 -32
  192. package/src/esm/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
  193. package/src/esm/utils/io/DndFileHandler.d.ts +63 -0
  194. package/src/esm/utils/io/DndFileHandler.js +106 -0
  195. package/src/esm/utils/io/DndFileHandler.js.map +1 -0
  196. package/src/esm/utils/io/FileDrop.d.ts +98 -0
  197. package/src/esm/utils/io/FileDrop.js +136 -0
  198. package/src/esm/utils/io/FileDrop.js.map +1 -0
  199. package/src/ts/BezierPath.ts +78 -22
  200. package/src/ts/Bounds.ts +25 -1
  201. package/src/ts/Circle.ts +187 -200
  202. package/src/ts/CircleSector.ts +141 -141
  203. package/src/ts/CubicBezierCurve.ts +738 -810
  204. package/src/ts/KeyHandler.ts +221 -212
  205. package/src/ts/Line.ts +48 -80
  206. package/src/ts/MouseHandler.ts +356 -368
  207. package/src/ts/PBImage.ts +67 -69
  208. package/src/ts/PBText.ts +16 -14
  209. package/src/ts/PlotBoilerplate.ts +4 -2
  210. package/src/ts/Polygon.ts +493 -451
  211. package/src/ts/Triangle.ts +444 -489
  212. package/src/ts/VEllipse.ts +18 -17
  213. package/src/ts/VEllipseSector.ts +20 -1
  214. package/src/ts/Vector.ts +124 -160
  215. package/src/ts/VertTuple.ts +333 -338
  216. package/src/ts/Vertex.ts +75 -21
  217. package/src/ts/VertexListeners.ts +248 -266
  218. package/src/ts/draw.ts +192 -3
  219. package/src/ts/drawgl.ts +44 -2
  220. package/src/ts/drawutilssvg.ts +181 -15
  221. package/src/ts/index.ts +0 -1
  222. package/src/ts/interfaces/DrawLib.ts +69 -26
  223. package/src/ts/interfaces/core.ts +0 -11
  224. package/src/ts/module.ts +2 -4
  225. package/src/ts/utils/datastructures/Girih.ts +204 -209
  226. package/src/ts/utils/datastructures/GirihPenroseRhombus.ts +170 -152
  227. package/src/ts/utils/datastructures/GirihTile.ts +394 -419
  228. package/src/ts/utils/findInVertexArray.ts +28 -0
  229. package/src/ts/utils/helpers/BezierPathInteractionHelper.ts +56 -34
  230. package/src/ts/utils/io/FileDrop.ts +178 -0
  231. package/src/ts/SVGBuilder.ts +0 -109
  232. package/src/ts/utils/algorithms/sh-tmp.ts~ +0 -59
@@ -20,7 +20,12 @@
20
20
  * @modified 2021-01-29 Added the `isClockwise` function.
21
21
  * @modified 2021-01-29 Added the `area` function.
22
22
  * @modified 2021-01-29 Changed the param type for `containsVert` from Vertex to XYCoords.
23
- * @version 1.7.0
23
+ * @modified 2021-12-14 Added the `perimeter()` function.
24
+ * @modified 2021-12-16 Added the `getEvenDistributionPolygon()` function.
25
+ * @modified 2022-02-02 Added the `destroy` method.
26
+ * @modified 2022-02-02 Cleared the `Polygon.toSVGString` function (deprecated). Use `drawutilssvg` instead.
27
+ * @modified 2022-03-08 Added the `Polygon.clone()` function.
28
+ * @version 1.10.0
24
29
  *
25
30
  * @file Polygon
26
31
  * @public
@@ -57,12 +62,11 @@ var Polygon = /** @class */ (function () {
57
62
  **/
58
63
  this.className = "Polygon";
59
64
  this.uid = UIDGenerator_1.UIDGenerator.next();
60
- if (typeof vertices == 'undefined')
65
+ if (typeof vertices == "undefined")
61
66
  vertices = [];
62
67
  this.vertices = vertices;
63
68
  this.isOpen = isOpen;
64
69
  }
65
- ;
66
70
  /**
67
71
  * Add a vertex to the end of the `vertices` array.
68
72
  *
@@ -74,7 +78,6 @@ var Polygon = /** @class */ (function () {
74
78
  Polygon.prototype.addVertex = function (vert) {
75
79
  this.vertices.push(vert);
76
80
  };
77
- ;
78
81
  /**
79
82
  * Get the polygon vertex at the given position (index).
80
83
  *
@@ -97,7 +100,6 @@ var Polygon = /** @class */ (function () {
97
100
  else
98
101
  return this.vertices[index % this.vertices.length];
99
102
  };
100
- ;
101
103
  /**
102
104
  * Move the polygon's vertices by the given amount.
103
105
  *
@@ -107,13 +109,12 @@ var Polygon = /** @class */ (function () {
107
109
  * @memberof Polygon
108
110
  * @return {Polygon} this for chaining
109
111
  **/
110
- Polygon.prototype.move = function (vert) {
112
+ Polygon.prototype.move = function (amount) {
111
113
  for (var i in this.vertices) {
112
- this.vertices[i].add(vert);
114
+ this.vertices[i].add(amount);
113
115
  }
114
116
  return this;
115
117
  };
116
- ;
117
118
  /**
118
119
  * Check if the given vertex is inside this polygon.<br>
119
120
  * <br>
@@ -133,14 +134,12 @@ var Polygon = /** @class */ (function () {
133
134
  for (var i = 0, j = this.vertices.length - 1; i < this.vertices.length; j = i++) {
134
135
  var xi = this.vertices[i].x, yi = this.vertices[i].y;
135
136
  var xj = this.vertices[j].x, yj = this.vertices[j].y;
136
- var intersect = ((yi > vert.y) != (yj > vert.y))
137
- && (vert.x < (xj - xi) * (vert.y - yi) / (yj - yi) + xi);
137
+ var intersect = yi > vert.y != yj > vert.y && vert.x < ((xj - xi) * (vert.y - yi)) / (yj - yi) + xi;
138
138
  if (intersect)
139
139
  inside = !inside;
140
140
  }
141
141
  return inside;
142
142
  };
143
- ;
144
143
  /**
145
144
  * Calculate the area of the given polygon (unsigned).
146
145
  *
@@ -154,7 +153,6 @@ var Polygon = /** @class */ (function () {
154
153
  Polygon.prototype.area = function () {
155
154
  return Polygon.utils.area(this.vertices);
156
155
  };
157
- ;
158
156
  /**
159
157
  * Calulate the signed polyon area by interpreting the polygon as a matrix
160
158
  * and calculating its determinant.
@@ -167,7 +165,6 @@ var Polygon = /** @class */ (function () {
167
165
  Polygon.prototype.signedArea = function () {
168
166
  return Polygon.utils.signedArea(this.vertices);
169
167
  };
170
- ;
171
168
  /**
172
169
  * Get the winding order of this polgon: clockwise or counterclockwise.
173
170
  *
@@ -179,7 +176,28 @@ var Polygon = /** @class */ (function () {
179
176
  Polygon.prototype.isClockwise = function () {
180
177
  return Polygon.utils.signedArea(this.vertices) < 0;
181
178
  };
182
- ;
179
+ /**
180
+ * Get the perimeter of this polygon.
181
+ * The perimeter is the absolute length of the outline.
182
+ *
183
+ * If this polygon is open then the last segment (connecting the first and the
184
+ * last vertex) will be skipped.
185
+ *
186
+ * @method perimeter
187
+ * @instance
188
+ * @memberof Polygon
189
+ * @return {number}
190
+ */
191
+ Polygon.prototype.perimeter = function () {
192
+ var length = 0;
193
+ for (var i = 1; i < this.vertices.length; i++) {
194
+ length += this.vertices[i - 1].distance(this.vertices[i]);
195
+ }
196
+ if (!this.isOpen && this.vertices.length > 1) {
197
+ length += this.vertices[0].distance(this.vertices[this.vertices.length - 1]);
198
+ }
199
+ return length;
200
+ };
183
201
  /**
184
202
  * Scale the polygon relative to the given center.
185
203
  *
@@ -192,14 +210,13 @@ var Polygon = /** @class */ (function () {
192
210
  **/
193
211
  Polygon.prototype.scale = function (factor, center) {
194
212
  for (var i in this.vertices) {
195
- if (typeof this.vertices[i].scale == 'function')
213
+ if (typeof this.vertices[i].scale == "function")
196
214
  this.vertices[i].scale(factor, center);
197
215
  else
198
- console.log('There seems to be a null vertex!', this.vertices[i]);
216
+ console.log("There seems to be a null vertex!", this.vertices[i]);
199
217
  }
200
218
  return this;
201
219
  };
202
- ;
203
220
  /**
204
221
  * Rotate the polygon around the given center.
205
222
  *
@@ -216,7 +233,52 @@ var Polygon = /** @class */ (function () {
216
233
  }
217
234
  return this;
218
235
  };
219
- ;
236
+ /**
237
+ * Convert this polygon into a new polygon with n evenly distributed vertices.
238
+ *
239
+ * @param {number} pointCount - Must not be negative.
240
+ */
241
+ Polygon.prototype.getEvenDistributionPolygon = function (pointCount) {
242
+ if (pointCount <= 0) {
243
+ throw new Error("pointCount must be larger than zero; is " + pointCount + ".");
244
+ }
245
+ var result = new Polygon([], this.isOpen);
246
+ if (this.vertices.length === 0) {
247
+ return result;
248
+ }
249
+ // Fetch and add the start point from the source polygon
250
+ var polygonPoint = new Vertex_1.Vertex(this.vertices[0]);
251
+ result.vertices.push(polygonPoint);
252
+ if (this.vertices.length === 1) {
253
+ return result;
254
+ }
255
+ var perimeter = this.perimeter();
256
+ var stepSize = perimeter / pointCount;
257
+ var n = this.vertices.length;
258
+ var polygonIndex = 1;
259
+ var nextPolygonPoint = new Vertex_1.Vertex(this.vertices[1]);
260
+ var segmentLength = polygonPoint.distance(nextPolygonPoint);
261
+ var loopMax = this.isOpen ? n : n + 1;
262
+ var curSegmentU = stepSize;
263
+ var i = 1;
264
+ while (i < pointCount && polygonIndex < loopMax) {
265
+ // Check if next eq point is inside this segment
266
+ if (curSegmentU < segmentLength) {
267
+ var newPoint = polygonPoint.clone().lerpAbs(nextPolygonPoint, curSegmentU);
268
+ result.vertices.push(newPoint);
269
+ curSegmentU += stepSize;
270
+ i++;
271
+ }
272
+ else {
273
+ polygonIndex++;
274
+ polygonPoint = nextPolygonPoint;
275
+ nextPolygonPoint = new Vertex_1.Vertex(this.vertices[polygonIndex % n]);
276
+ curSegmentU = curSegmentU - segmentLength;
277
+ segmentLength = polygonPoint.distance(nextPolygonPoint);
278
+ }
279
+ }
280
+ return result;
281
+ };
220
282
  /**
221
283
  * Get the bounding box (bounds) of this polygon.
222
284
  *
@@ -228,7 +290,14 @@ var Polygon = /** @class */ (function () {
228
290
  Polygon.prototype.getBounds = function () {
229
291
  return Bounds_1.Bounds.computeFromVertices(this.vertices);
230
292
  };
231
- ;
293
+ /**
294
+ * Create a deep copy of this polygon.
295
+ *
296
+ * @return {Polygon} The cloned polygon.
297
+ */
298
+ Polygon.prototype.clone = function () {
299
+ return new Polygon(this.vertices.map(function (vert) { return vert.clone(); }), this.isOpen);
300
+ };
232
301
  /**
233
302
  * Convert this polygon to a sequence of quadratic Bézier curves.<br>
234
303
  * <br>
@@ -260,7 +329,6 @@ var Polygon = /** @class */ (function () {
260
329
  }
261
330
  return qbezier;
262
331
  };
263
- ;
264
332
  /**
265
333
  * Convert this polygon to a quadratic bezier curve, represented as an SVG data string.
266
334
  *
@@ -273,13 +341,12 @@ var Polygon = /** @class */ (function () {
273
341
  var qdata = this.toQuadraticBezierData();
274
342
  if (qdata.length == 0)
275
343
  return "";
276
- var buffer = ['M ' + qdata[0].x + ' ' + qdata[0].y];
344
+ var buffer = ["M " + qdata[0].x + " " + qdata[0].y];
277
345
  for (var i = 1; i < qdata.length; i += 2) {
278
- buffer.push('Q ' + qdata[i].x + ' ' + qdata[i].y + ', ' + qdata[i + 1].x + ' ' + qdata[i + 1].y);
346
+ buffer.push("Q " + qdata[i].x + " " + qdata[i].y + ", " + qdata[i + 1].x + " " + qdata[i + 1].y);
279
347
  }
280
- return buffer.join(' ');
348
+ return buffer.join(" ");
281
349
  };
282
- ;
283
350
  /**
284
351
  * Convert this polygon to a sequence of cubic Bézier curves.<br>
285
352
  * <br>
@@ -296,7 +363,7 @@ var Polygon = /** @class */ (function () {
296
363
  * @memberof Polygon
297
364
  **/
298
365
  Polygon.prototype.toCubicBezierData = function (threshold) {
299
- if (typeof threshold == 'undefined')
366
+ if (typeof threshold == "undefined")
300
367
  threshold = 1.0;
301
368
  if (this.vertices.length < 3)
302
369
  return [];
@@ -320,7 +387,6 @@ var Polygon = /** @class */ (function () {
320
387
  }
321
388
  return cbezier;
322
389
  };
323
- ;
324
390
  /**
325
391
  * Convert this polygon to a cubic bezier curve, represented as an SVG data string.
326
392
  *
@@ -333,13 +399,23 @@ var Polygon = /** @class */ (function () {
333
399
  var qdata = this.toCubicBezierData(threshold);
334
400
  if (qdata.length == 0)
335
401
  return "";
336
- var buffer = ['M ' + qdata[0].x + ' ' + qdata[0].y];
402
+ var buffer = ["M " + qdata[0].x + " " + qdata[0].y];
337
403
  for (var i = 1; i < qdata.length; i += 3) {
338
- buffer.push('C ' + qdata[i].x + ' ' + qdata[i].y + ', ' + qdata[i + 1].x + ' ' + qdata[i + 1].y + ', ' + qdata[i + 2].x + ' ' + qdata[i + 2].y);
404
+ buffer.push("C " +
405
+ qdata[i].x +
406
+ " " +
407
+ qdata[i].y +
408
+ ", " +
409
+ qdata[i + 1].x +
410
+ " " +
411
+ qdata[i + 1].y +
412
+ ", " +
413
+ qdata[i + 2].x +
414
+ " " +
415
+ qdata[i + 2].y);
339
416
  }
340
- return buffer.join(' ');
417
+ return buffer.join(" ");
341
418
  };
342
- ;
343
419
  /**
344
420
  * Convert this polygon to a cubic bezier path instance.
345
421
  *
@@ -358,43 +434,17 @@ var Polygon = /** @class */ (function () {
358
434
  }
359
435
  return BezierPath_1.BezierPath.fromArray(pathdata);
360
436
  };
361
- ;
362
437
  /**
363
- * Create an SVG representation of this polygon.
364
- *
365
- * @deprecated DEPRECATION Please use the drawutilssvg library and an XMLSerializer instead.
366
- * @method toSVGString
367
- * @param {object=} options - An optional set of options, like 'className'.
368
- * @return {string} The SVG string.
369
- * @instance
370
- * @memberof Polygon
371
- **/
372
- Polygon.prototype.toSVGString = function (options) {
373
- options = options || {};
374
- var buffer = [];
375
- buffer.push('<path');
376
- if (options.className)
377
- buffer.push(' class="' + options.className + '"');
378
- buffer.push(' d="');
379
- if (this.vertices.length > 0) {
380
- buffer.push('M ');
381
- buffer.push(this.vertices[0].x.toString());
382
- buffer.push(' ');
383
- buffer.push(this.vertices[0].y.toString());
384
- for (var i = 1; i < this.vertices.length; i++) {
385
- buffer.push(' L ');
386
- buffer.push(this.vertices[i].x.toString());
387
- buffer.push(' ');
388
- buffer.push(this.vertices[i].y.toString());
389
- }
390
- if (!this.isOpen) {
391
- buffer.push(' Z');
392
- }
438
+ * This function should invalidate any installed listeners and invalidate this object.
439
+ * After calling this function the object might not hold valid data any more and
440
+ * should not be used.
441
+ */
442
+ Polygon.prototype.destroy = function () {
443
+ for (var i = 0; i < this.vertices.length; i++) {
444
+ this.vertices[i].destroy();
393
445
  }
394
- buffer.push('" />');
395
- return buffer.join('');
446
+ this.isDestroyed = true;
396
447
  };
397
- ;
398
448
  Polygon.utils = {
399
449
  /**
400
450
  * Calculate the area of the given polygon (unsigned).
@@ -413,8 +463,8 @@ var Polygon = /** @class */ (function () {
413
463
  var addY = vertices[(i + 1) % l].y;
414
464
  var subX = vertices[(i + 1) % l].x;
415
465
  var subY = vertices[i].y;
416
- total += (addX * addY * 0.5);
417
- total -= (subX * subY * 0.5);
466
+ total += addX * addY * 0.5;
467
+ total -= subX * subY * 0.5;
418
468
  }
419
469
  return Math.abs(total);
420
470
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Polygon.js","sourceRoot":"","sources":["../ts/Polygon.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;IAyBI;;;AAEJ,2CAA0C;AAC1C,mCAAkC;AAClC,+CAA8C;AAC9C,mCAAkC;AAIlC;;;;;;;;;;GAUG;AACH;IAsCI;;;;;;;QAOI;IACJ,iBAAa,QAAuB,EAAE,MAAe;QA3CrD;;YAEI;QACK,cAAS,GAAY,SAAS,CAAC;QAyC3C,IAAI,CAAC,GAAG,GAAG,2BAAY,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,OAAO,QAAQ,IAAI,WAAW;YAC9B,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAClB,CAAC;IAAA,CAAC;IAGF;;;;;;;QAOI;IACJ,2BAAS,GAAT,UAAW,IAAW;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACxB,CAAC;IAAA,CAAC;IAGF;;;;;;;;;;;;;;;QAeI;IACJ,6BAAW,GAAX,UAAa,KAAY;QAC5B,IAAI,KAAK,GAAG,CAAC;YACT,OAAO,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAE,CAAC;;YAEtF,OAAO,IAAI,CAAC,QAAQ,CAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAE,CAAC;IACtD,CAAC;IAAA,CAAC;IAGF;;;;;;;;QAQI;IACJ,sBAAI,GAAJ,UAAM,IAAa;QACtB,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAG;YAC1B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAE,IAAI,CAAE,CAAC;SAChC;QACD,OAAO,IAAI,CAAC;IACT,CAAC;IAAA,CAAC;IAGF;;;;;;;;;;;QAWI;IACJ,8BAAY,GAAZ,UAAc,IAAa;QAC9B,iCAAiC;QACjC,4EAA4E;QAC5E,IAAI,MAAM,GAAa,KAAK,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE;YACtE,IAAI,EAAE,GAAY,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAY,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,IAAI,EAAE,GAAY,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAY,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvE,IAAI,SAAS,GAAa,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;mBACjE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;YAC/C,IAAI,SAAS;gBAAE,MAAM,GAAG,CAAC,MAAM,CAAC;SAC1C;QACD,OAAO,MAAM,CAAC;IACX,CAAC;IAAA,CAAC;IAGF;;;;;;;;;OASG;IACH,sBAAI,GAAJ;QACH,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAAA,CAAC;IAGF;;;;;;;;OAQG;IACH,4BAAU,GAAV;QACH,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC3C,CAAC;IAAA,CAAC;IAGF;;;;;;;OAOG;IACH,6BAAW,GAAX;QACH,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IAAA,CAAC;IAIF;;;;;;;;;QASI;IACJ,uBAAK,GAAL,UAAO,MAAa,EAAE,MAAa;QACtC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAG;YAC1B,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,UAAU;gBAClD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAE,MAAM,EAAE,MAAM,CAAE,CAAC;;gBAEzC,OAAO,CAAC,GAAG,CAAE,kCAAkC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAC;SACpE;QACD,OAAO,IAAI,CAAC;IACT,CAAC;IAAA,CAAC;IAGF;;;;;;;;;QASI;IACJ,wBAAM,GAAN,UAAQ,KAAY,EAAE,MAAa;QACtC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAG;YAC1B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAE,KAAK,EAAE,MAAM,CAAE,CAAC;SAC5C;QACD,OAAO,IAAI,CAAC;IACT,CAAC;IAAA,CAAC;IAGF;;;;;;;QAOI;IACJ,2BAAS,GAAT;QACH,OAAO,eAAM,CAAC,mBAAmB,CAAE,IAAI,CAAC,QAAQ,CAAE,CAAC;IAChD,CAAC;IAAA,CAAC;IAGF;;;;;;;;;;;QAWI;IACJ,uCAAqB,GAArB;QACH,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACxB,OAAO,EAAE,CAAC;QACd,IAAI,OAAO,GAAmB,EAAE,CAAC;QACjC,IAAI,GAAG,GAAY,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,GAAG,GAAY,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,UAAU,GAAY,IAAI,eAAM,CAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC,CAAC,GAAC,CAAC,EACnD,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC,CAAC,GAAC,CAAC,CAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAE,UAAU,CAAE,CAAC;QAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC;QACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAG;YAC7B,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAE,CAAC,GAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAE,CAAC;YAC9C,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAE,CAAC,CAAC,GAAC,CAAC,CAAC,GAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAE,CAAC;YAClD,IAAI,UAAU,GAAY,IAAI,eAAM,CAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC,CAAC,GAAC,CAAC,EAC1D,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC,CAAC,GAAC,CAAC,CAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAE,GAAG,CAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAE,UAAU,CAAE,CAAC;YAC3B,GAAG,GAAG,GAAG,CAAC;SACb;QACD,OAAO,OAAO,CAAC;IACZ,CAAC;IAAA,CAAC;IAGF;;;;;;;QAOI;IACJ,4CAA0B,GAA1B;QACH,IAAI,KAAK,GAAmB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACzD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;YACjB,OAAO,EAAE,CAAC;QACd,IAAI,MAAM,GAAG,CAAE,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,GAAG,GAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAE,CAAC,EAAG;YACrC,MAAM,CAAC,IAAI,CAAE,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,GAAG,GAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,GAAC,GAAG,GAAC,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC;SAC1F;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAAA,CAAC;IAIF;;;;;;;;;;;;;;QAcI;IACJ,mCAAiB,GAAjB,UAAmB,SAA0B;QAChD,IAAI,OAAO,SAAS,IAAI,WAAW;YAC/B,SAAS,GAAG,GAAG,CAAC;QAEpB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACxB,OAAO,EAAE,CAAC;QACd,IAAI,OAAO,GAAmB,EAAE,CAAC;QACjC,IAAI,CAAC,GAAY,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,GAAY,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,UAAU,GAAG,IAAI,eAAM,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,EAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAE,CAAC;QACtE,OAAO,CAAC,IAAI,CAAE,UAAU,CAAE,CAAC;QAE3B,IAAI,KAAK,GAAY,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACjF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAG;YAC7B,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAE,CAAC,GAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAE,CAAC;YAChD,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAE,CAAC,CAAC,GAAC,CAAC,CAAC,GAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAE,CAAC;YACpD,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAE,CAAC,CAAC,GAAC,CAAC,CAAC,GAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAE,CAAC;YAEpD,IAAI,OAAO,GAAY,IAAI,eAAM,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,EAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAE,CAAC;YAC5E,IAAI,OAAO,GAAY,IAAI,eAAM,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,EAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAE,CAAC;YAE5E,IAAI,EAAE,GAAY,IAAI,eAAM,CAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAC,OAAO,CAAC,CAAC,CAAC,GAAC,SAAS,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAC,OAAO,CAAC,CAAC,CAAC,GAAC,SAAS,CAAE,CAAC;YAC7G,IAAI,EAAE,GAAY,IAAI,eAAM,CAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAC,OAAO,CAAC,CAAC,CAAC,GAAC,SAAS,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAC,OAAO,CAAC,CAAC,CAAC,GAAC,SAAS,CAAE,CAAC;YAE7G,OAAO,CAAC,IAAI,CAAE,EAAE,CAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAE,EAAE,CAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAE,OAAO,CAAE,CAAC;SAE3B;QACD,OAAO,OAAO,CAAC;IAEZ,CAAC;IAAA,CAAC;IAIF;;;;;;;QAOI;IACJ,wCAAsB,GAAtB,UAAwB,SAAgB;QAC3C,IAAI,KAAK,GAAmB,IAAI,CAAC,iBAAiB,CAAE,SAAS,CAAE,CAAC;QAChE,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;YACjB,OAAO,EAAE,CAAC;QACd,IAAI,MAAM,GAAG,CAAE,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,GAAG,GAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAE,CAAC,EAAG;YACrC,MAAM,CAAC,IAAI,CAAE,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,GAAG,GAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,GAAC,GAAG,GAAC,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC;SACrI;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAAA,CAAC;IAIF;;;;;;;;QAQI;IACJ,mCAAiB,GAAjB,UAAmB,SAAgB;QACtC,IAAI,KAAK,GAAmB,IAAI,CAAC,iBAAiB,CAAE,SAAS,CAAE,CAAC;QAChE,kEAAkE;QAClE,IAAI,QAAQ,GAA0B,EAAE,CAAC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAE,CAAC,EAAG;YACvC,QAAQ,CAAC,IAAI,CAAE,CAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAE,CAAE,CAAC;SACrE;QACD,OAAO,uBAAU,CAAC,SAAS,CAAE,QAAQ,CAAE,CAAC;IACrC,CAAC;IAAA,CAAC;IAGF;;;;;;;;;QASI;IACJ,6BAAW,GAAX,UAAa,OAAyC;QACzD,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QACxB,IAAI,MAAM,GAAmB,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAE,OAAO,CAAE,CAAC;QACvB,IAAI,OAAO,CAAC,SAAS;YACjB,MAAM,CAAC,IAAI,CAAE,UAAU,GAAG,OAAO,CAAC,SAAS,GAAG,GAAG,CAAE,CAAC;QACxD,MAAM,CAAC,IAAI,CAAE,MAAM,CAAE,CAAC;QACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAG;YAC3B,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAE,CAAA;YAC5C,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAE,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAG;gBACnD,MAAM,CAAC,IAAI,CAAE,KAAK,CAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAE,CAAA;gBAC5C,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAE,CAAC;aACzC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAG;gBACtB,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;aAChB;SACJ;QACD,MAAM,CAAC,IAAI,CAAE,MAAM,CAAE,CAAC;QACtB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IAAA,CAAC;IAEK,aAAK,GAAG;QAElB;;;;;;;WAOG;QACH,IAAI,EAAJ,UAAM,QAA0B;YAC5B,YAAY;YACZ,2EAA2E;YAC3E,IAAI,KAAK,GAAY,GAAG,CAAC;YAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpD,IAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE3B,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;gBAC7B,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;aACzB;YACD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAGD;;;;;;WAMG;QACH,UAAU,EAAV,UAAY,QAA0B;YAClC,IAAI,GAAG,GAAY,CAAC,CAAC;YACrB,IAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAG;gBAChC,IAAM,CAAC,GAAG,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpB,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACrE;YACD,OAAO,GAAG,CAAC;QACf,CAAC;KAEG,CAAC;IAEN,cAAC;CAAA,AA9cD,IA8cC;AA9cY,0BAAO"}
1
+ {"version":3,"file":"Polygon.js","sourceRoot":"","sources":["../ts/Polygon.ts"],"names":[],"mappings":"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"}
@@ -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
- * @version 2.5.1
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
- * Create an SVG representation of this triangle.
309
- *
310
- * @deprecated DEPRECATION Please use the drawutilssvg library and an XMLSerializer instead.
311
- * @method toSVGString
312
- * @param {object=} options - An optional set of options, like 'className'.
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
  }
@@ -20,7 +20,9 @@
20
20
  * @modified 2020-12-28 Added the `getArea` function.
21
21
  * @modified 2021-01-20 Added UID.
22
22
  * @modified 2021-01-22 Always updating circumcircle when retieving it.
23
- * @version 2.5.1
23
+ * @modified 2022-02-02 Added the `destroy` method.
24
+ * @modified 2022-02-02 Cleared the `Triangle.toSVGString` function (deprecated). Use `drawutilssvg` instead.
25
+ * @version 2.6.0
24
26
  *
25
27
  * @file Triangle
26
28
  * @fileoverview A simple triangle class: three vertices.
@@ -90,7 +92,6 @@ var Triangle = /** @class */ (function () {
90
92
  throw "Cannot create triangle from array with less than three vertices (" + arr.length + ")";
91
93
  return new Triangle(arr[0], arr[1], arr[2]);
92
94
  };
93
- ;
94
95
  /**
95
96
  * Get the area of this triangle. The returned area is never negative.
96
97
  *
@@ -106,7 +107,6 @@ var Triangle = /** @class */ (function () {
106
107
  Triangle.prototype.getArea = function () {
107
108
  return Math.abs(Triangle.utils.signedArea(this.a.x, this.a.y, this.b.x, this.b.y, this.c.x, this.c.y));
108
109
  };
109
- ;
110
110
  /**
111
111
  * Get the centroid of this triangle.
112
112
  *
@@ -120,7 +120,6 @@ var Triangle = /** @class */ (function () {
120
120
  Triangle.prototype.getCentroid = function () {
121
121
  return new Vertex_1.Vertex((this.a.x + this.b.x + this.c.x) / 3, (this.a.y + this.b.y + this.c.y) / 3);
122
122
  };
123
- ;
124
123
  /**
125
124
  * Scale the triangle towards its centroid.
126
125
  *
@@ -137,7 +136,6 @@ var Triangle = /** @class */ (function () {
137
136
  this.c.scale(factor, centroid);
138
137
  return this;
139
138
  };
140
- ;
141
139
  /**
142
140
  * Get the circumcircle of this triangle.
143
141
  *
@@ -154,11 +152,10 @@ var Triangle = /** @class */ (function () {
154
152
  * @memberof Triangle
155
153
  */
156
154
  Triangle.prototype.getCircumcircle = function () {
157
- // if( !this.center || !this.radius )
155
+ // if( !this.center || !this.radius )
158
156
  this.calcCircumcircle();
159
157
  return new Circle_1.Circle(this.center.clone(), this.radius);
160
158
  };
161
- ;
162
159
  /**
163
160
  * Check if this triangle and the passed triangle share an
164
161
  * adjacent edge.
@@ -178,7 +175,6 @@ var Triangle = /** @class */ (function () {
178
175
  var c = this.c.equals(tri.a) || this.c.equals(tri.b) || this.c.equals(tri.c);
179
176
  return (a && b) || (a && c) || (b && c);
180
177
  };
181
- ;
182
178
  /**
183
179
  * Get that vertex of this triangle (a,b,c) that is not vert1 nor vert2 of
184
180
  * the passed two.
@@ -191,14 +187,13 @@ var Triangle = /** @class */ (function () {
191
187
  * @memberof Triangle
192
188
  */
193
189
  Triangle.prototype.getThirdVertex = function (vert1, vert2) {
194
- if (this.a.equals(vert1) && this.b.equals(vert2) || this.a.equals(vert2) && this.b.equals(vert1))
190
+ if ((this.a.equals(vert1) && this.b.equals(vert2)) || (this.a.equals(vert2) && this.b.equals(vert1)))
195
191
  return this.c;
196
- if (this.b.equals(vert1) && this.c.equals(vert2) || this.b.equals(vert2) && this.c.equals(vert1))
192
+ if ((this.b.equals(vert1) && this.c.equals(vert2)) || (this.b.equals(vert2) && this.c.equals(vert1)))
197
193
  return this.a;
198
194
  //if( this.c.equals(vert1) && this.a.equals(vert2) || this.c.equals(vert2) && this.a.equals(vert1) )
199
195
  return this.b;
200
196
  };
201
- ;
202
197
  /**
203
198
  * Re-compute the circumcircle of this triangle (if the vertices
204
199
  * have changed).
@@ -238,8 +233,7 @@ var Triangle = /** @class */ (function () {
238
233
  }
239
234
  this.radius_squared = dx * dx + dy * dy;
240
235
  this.radius = Math.sqrt(this.radius_squared);
241
- };
242
- ; // END calcCircumcircle
236
+ }; // END calcCircumcircle
243
237
  /**
244
238
  * Check if the passed vertex is inside this triangle's
245
239
  * circumcircle.
@@ -254,9 +248,8 @@ var Triangle = /** @class */ (function () {
254
248
  var dx = this.center.x - v.x;
255
249
  var dy = this.center.y - v.y;
256
250
  var dist_squared = dx * dx + dy * dy;
257
- return (dist_squared <= this.radius_squared);
251
+ return dist_squared <= this.radius_squared;
258
252
  };
259
- ;
260
253
  /**
261
254
  * Get the rectangular bounds for this triangle.
262
255
  *
@@ -268,7 +261,6 @@ var Triangle = /** @class */ (function () {
268
261
  Triangle.prototype.bounds = function () {
269
262
  return new Bounds_1.Bounds(new Vertex_1.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_1.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)));
270
263
  };
271
- ;
272
264
  /**
273
265
  * Convert this triangle to a polygon instance.
274
266
  *
@@ -282,7 +274,6 @@ var Triangle = /** @class */ (function () {
282
274
  Triangle.prototype.toPolygon = function () {
283
275
  return new Polygon_1.Polygon([this.a, this.b, this.c]);
284
276
  };
285
- ;
286
277
  /**
287
278
  * Get the determinant of this triangle.
288
279
  *
@@ -295,7 +286,6 @@ var Triangle = /** @class */ (function () {
295
286
  // (b.y - a.y)*(c.x - b.x) - (c.y - b.y)*(b.x - a.x);
296
287
  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);
297
288
  };
298
- ;
299
289
  /**
300
290
  * Checks if the passed vertex (p) is inside this triangle.
301
291
  *
@@ -310,7 +300,6 @@ var Triangle = /** @class */ (function () {
310
300
  Triangle.prototype.containsPoint = function (p) {
311
301
  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);
312
302
  };
313
- ;
314
303
  /**
315
304
  * Get that inner triangle which defines the maximal incircle.
316
305
  *
@@ -329,7 +318,6 @@ var Triangle = /** @class */ (function () {
329
318
  var circleIntersC = lineC.getClosestPoint(intersection);
330
319
  return new Triangle(circleIntersA, circleIntersB, circleIntersC);
331
320
  };
332
- ;
333
321
  /**
334
322
  * Get the incircle of this triangle. That is the circle that touches each side
335
323
  * of this triangle in exactly one point.
@@ -341,7 +329,6 @@ var Triangle = /** @class */ (function () {
341
329
  Triangle.prototype.getIncircle = function () {
342
330
  return this.getIncircularTriangle().getCircumcircle();
343
331
  };
344
- ;
345
332
  /**
346
333
  * Get the incenter of this triangle (which is the center of the circumcircle).
347
334
  *
@@ -355,7 +342,6 @@ var Triangle = /** @class */ (function () {
355
342
  this.calcCircumcircle();
356
343
  return this.center.clone();
357
344
  };
358
- ;
359
345
  /**
360
346
  * Converts this triangle into a human-readable string.
361
347
  *
@@ -365,46 +351,19 @@ var Triangle = /** @class */ (function () {
365
351
  * @memberof Triangle
366
352
  */
367
353
  Triangle.prototype.toString = function () {
368
- return '{ a : ' + this.a.toString() + ', b : ' + this.b.toString() + ', c : ' + this.c.toString() + '}';
354
+ return "{ a : " + this.a.toString() + ", b : " + this.b.toString() + ", c : " + this.c.toString() + "}";
369
355
  };
370
- ;
371
356
  /**
372
- * Create an SVG representation of this triangle.
373
- *
374
- * @deprecated DEPRECATION Please use the drawutilssvg library and an XMLSerializer instead.
375
- * @method toSVGString
376
- * @param {object=} options - An optional set of options, like 'className'.
377
- * @return {string} The SVG string.
378
- * @instance
379
- * @memberof Triangle
380
- **/
381
- Triangle.prototype.toSVGString = function (options) {
382
- options = options || {};
383
- var buffer = [];
384
- buffer.push('<path');
385
- if (options.className)
386
- buffer.push(' class="' + options.className + '"');
387
- buffer.push(' d="');
388
- var vertices = [this.a, this.b, this.c];
389
- if (vertices.length > 0) {
390
- buffer.push('M ');
391
- buffer.push(vertices[0].x);
392
- buffer.push(' ');
393
- buffer.push(vertices[0].y);
394
- for (var i = 1; i < vertices.length; i++) {
395
- buffer.push(' L ');
396
- buffer.push(vertices[i].x);
397
- buffer.push(' ');
398
- buffer.push(vertices[i].y);
399
- }
400
- //if( !this.isOpen ) {
401
- buffer.push(' Z');
402
- //}
403
- }
404
- buffer.push('" />');
405
- return buffer.join('');
357
+ * This function should invalidate any installed listeners and invalidate this object.
358
+ * After calling this function the object might not hold valid data any more and
359
+ * should not be used.
360
+ */
361
+ Triangle.prototype.destroy = function () {
362
+ this.a.destroy();
363
+ this.b.destroy();
364
+ this.c.destroy();
365
+ this.isDestroyed = true;
406
366
  };
407
- ;
408
367
  /**
409
368
  * An epsilon for comparison.
410
369
  * This should be the same epsilon as in Vertex.
@@ -415,10 +374,10 @@ var Triangle = /** @class */ (function () {
415
374
  Triangle.utils = {
416
375
  // Used in the bounds() function.
417
376
  max3: function (a, b, c) {
418
- return (a >= b && a >= c) ? a : (b >= a && b >= c) ? b : c;
377
+ return a >= b && a >= c ? a : b >= a && b >= c ? b : c;
419
378
  },
420
379
  min3: function (a, b, c) {
421
- return (a <= b && a <= c) ? a : (b <= a && b <= c) ? b : c;
380
+ return a <= b && a <= c ? a : b <= a && b <= c ? b : c;
422
381
  },
423
382
  signedArea: function (p0x, p0y, p1x, p1y, p2x, p2y) {
424
383
  return 0.5 * (-p1y * p2x + p0y * (-p1x + p2x) + p0x * (p1y - p2y) + p1x * p2y);
@@ -434,9 +393,9 @@ var Triangle = /** @class */ (function () {
434
393
  // http://stackoverflow.com/questions/2049582/how-to-determine-a-point-in-a-2d-triangle
435
394
  // var area : number = 1/2*(-p1y*p2x + p0y*(-p1x + p2x) + p0x*(p1y - p2y) + p1x*p2y);
436
395
  var area = Triangle.utils.signedArea(p0x, p0y, p1x, p1y, p2x, p2y);
437
- var s = 1 / (2 * area) * (p0y * p2x - p0x * p2y + (p2y - p0y) * px + (p0x - p2x) * py);
438
- var t = 1 / (2 * area) * (p0x * p1y - p0y * p1x + (p0y - p1y) * px + (p1x - p0x) * py);
439
- return s > 0 && t > 0 && (1 - s - t) > 0;
396
+ var s = (1 / (2 * area)) * (p0y * p2x - p0x * p2y + (p2y - p0y) * px + (p0x - p2x) * py);
397
+ var t = (1 / (2 * area)) * (p0x * p1y - p0y * p1x + (p0y - p1y) * px + (p1x - p0x) * py);
398
+ return s > 0 && t > 0 && 1 - s - t > 0;
440
399
  }
441
400
  };
442
401
  return Triangle;