plotboilerplate 1.23.2 → 1.23.3

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 (101) hide show
  1. package/dist/index.esm.js +7052 -6754
  2. package/dist/index.esm.js.map +1 -1
  3. package/dist/index.esm.min.js +1 -1
  4. package/dist/index.esm.min.js.map +1 -1
  5. package/dist/plotboilerplate.browser.min.js +1 -1
  6. package/dist/plotboilerplate.browser.min.js.map +1 -1
  7. package/dist/plotboilerplate.js +329 -27
  8. package/dist/plotboilerplate.min.js +1 -1
  9. package/package.json +4 -2
  10. package/src/cjs/PlotBoilerplate.d.ts +4 -2
  11. package/src/cjs/PlotBoilerplate.js +7 -3
  12. package/src/cjs/PlotBoilerplate.js.map +1 -1
  13. package/src/cjs/Polygon.d.ts +107 -4
  14. package/src/cjs/Polygon.js +215 -9
  15. package/src/cjs/Polygon.js.map +1 -1
  16. package/src/cjs/Triangle.d.ts +23 -3
  17. package/src/cjs/Triangle.js +15 -2
  18. package/src/cjs/Triangle.js.map +1 -1
  19. package/src/cjs/VertTuple.d.ts +12 -7
  20. package/src/cjs/VertTuple.js +14 -9
  21. package/src/cjs/VertTuple.js.map +1 -1
  22. package/src/cjs/Vertex.d.ts +2 -1
  23. package/src/cjs/Vertex.js +5 -2
  24. package/src/cjs/Vertex.js.map +1 -1
  25. package/src/cjs/draw.d.ts +1 -0
  26. package/src/cjs/draw.js +2 -1
  27. package/src/cjs/draw.js.map +1 -1
  28. package/src/cjs/drawutilssvg.js +24 -0
  29. package/src/cjs/drawutilssvg.js.map +1 -1
  30. package/src/cjs/geomutils.d.ts +32 -1
  31. package/src/cjs/geomutils.js +47 -1
  32. package/src/cjs/geomutils.js.map +1 -1
  33. package/src/cjs/utils/algorithms/PolygonInset.d.ts +184 -0
  34. package/src/cjs/utils/algorithms/PolygonInset.js +431 -0
  35. package/src/cjs/utils/algorithms/PolygonInset.js.map +1 -0
  36. package/src/cjs/utils/algorithms/clearDuplicateVertices.d.ts +5 -4
  37. package/src/cjs/utils/algorithms/clearDuplicateVertices.js +6 -3
  38. package/src/cjs/utils/algorithms/clearDuplicateVertices.js.map +1 -1
  39. package/src/cjs/utils/algorithms/findPolygonSelfIntersections.d.ts +2 -1
  40. package/src/cjs/utils/algorithms/findPolygonSelfIntersections.js +3 -3
  41. package/src/cjs/utils/algorithms/findPolygonSelfIntersections.js.map +1 -1
  42. package/src/cjs/utils/algorithms/splitPolygonToNonIntersecting.d.ts +3 -2
  43. package/src/cjs/utils/algorithms/splitPolygonToNonIntersecting.js +11 -9
  44. package/src/cjs/utils/algorithms/splitPolygonToNonIntersecting.js.map +1 -1
  45. package/src/cjs/utils/detectDarkMode.js.map +1 -1
  46. package/src/cjs/utils/dom/guiSizeToggler.d.ts +2 -1
  47. package/src/cjs/utils/dom/guiSizeToggler.js +5 -3
  48. package/src/cjs/utils/dom/guiSizeToggler.js.map +1 -1
  49. package/src/esm/PlotBoilerplate.d.ts +4 -2
  50. package/src/esm/PlotBoilerplate.js +7 -3
  51. package/src/esm/PlotBoilerplate.js.map +1 -1
  52. package/src/esm/Polygon.d.ts +107 -4
  53. package/src/esm/Polygon.js +214 -9
  54. package/src/esm/Polygon.js.map +1 -1
  55. package/src/esm/Triangle.d.ts +23 -3
  56. package/src/esm/Triangle.js +15 -2
  57. package/src/esm/Triangle.js.map +1 -1
  58. package/src/esm/VertTuple.d.ts +12 -7
  59. package/src/esm/VertTuple.js +14 -9
  60. package/src/esm/VertTuple.js.map +1 -1
  61. package/src/esm/Vertex.d.ts +2 -1
  62. package/src/esm/Vertex.js +5 -2
  63. package/src/esm/Vertex.js.map +1 -1
  64. package/src/esm/draw.d.ts +1 -0
  65. package/src/esm/draw.js +2 -1
  66. package/src/esm/draw.js.map +1 -1
  67. package/src/esm/drawutilssvg.js +24 -0
  68. package/src/esm/drawutilssvg.js.map +1 -1
  69. package/src/esm/geomutils.d.ts +32 -1
  70. package/src/esm/geomutils.js +47 -1
  71. package/src/esm/geomutils.js.map +1 -1
  72. package/src/esm/utils/algorithms/PolygonInset.d.ts +184 -0
  73. package/src/esm/utils/algorithms/PolygonInset.js +424 -0
  74. package/src/esm/utils/algorithms/PolygonInset.js.map +1 -0
  75. package/src/esm/utils/algorithms/clearDuplicateVertices.d.ts +5 -4
  76. package/src/esm/utils/algorithms/clearDuplicateVertices.js +6 -3
  77. package/src/esm/utils/algorithms/clearDuplicateVertices.js.map +1 -1
  78. package/src/esm/utils/algorithms/findPolygonSelfIntersections.d.ts +2 -1
  79. package/src/esm/utils/algorithms/findPolygonSelfIntersections.js +3 -3
  80. package/src/esm/utils/algorithms/findPolygonSelfIntersections.js.map +1 -1
  81. package/src/esm/utils/algorithms/splitPolygonToNonIntersecting.d.ts +3 -2
  82. package/src/esm/utils/algorithms/splitPolygonToNonIntersecting.js +11 -9
  83. package/src/esm/utils/algorithms/splitPolygonToNonIntersecting.js.map +1 -1
  84. package/src/esm/utils/detectDarkMode.js.map +1 -1
  85. package/src/esm/utils/dom/guiSizeToggler.d.ts +2 -1
  86. package/src/esm/utils/dom/guiSizeToggler.js +4 -2
  87. package/src/esm/utils/dom/guiSizeToggler.js.map +1 -1
  88. package/src/ts/PlotBoilerplate.ts +7 -3
  89. package/src/ts/Polygon.ts +230 -9
  90. package/src/ts/Triangle.ts +18 -4
  91. package/src/ts/VertTuple.ts +15 -10
  92. package/src/ts/Vertex.ts +5 -2
  93. package/src/ts/draw.ts +2 -1
  94. package/src/ts/drawutilssvg.ts +29 -0
  95. package/src/ts/geomutils.ts +49 -1
  96. package/src/ts/utils/algorithms/PolygonInset.ts +529 -0
  97. package/src/ts/utils/algorithms/clearDuplicateVertices.ts +11 -8
  98. package/src/ts/utils/algorithms/findPolygonSelfIntersections.ts +25 -26
  99. package/src/ts/utils/algorithms/splitPolygonToNonIntersecting.ts +92 -99
  100. package/src/ts/utils/detectDarkMode.ts +1 -3
  101. package/src/ts/utils/dom/guiSizeToggler.ts +4 -2
@@ -29,7 +29,11 @@
29
29
  * @modified 2023-09-25 Added the `Polygon.lineIntersections(Line,boolean)` function.
30
30
  * @modified 2023-09-29 Added the `Polygon.closestLineIntersection(Line,boolean)` function.
31
31
  * @modified 2023-11-24 Added the `Polygon.containsPolygon(Polygon)' function.
32
- * @version 1.12.0
32
+ * @modified 2024-10-12 Added the `getEdgeAt` method.
33
+ * @modified 2024-10-30 Added the `getEdges` method.
34
+ * @modified 2024-12-02 Added the `elimitateColinearEdges` method.
35
+ * @modified 2025-02-12 Added the `containsVerts` method to test multiple vertices for containment.
36
+ * @version 1.14.0
33
37
  *
34
38
  * @file Polygon
35
39
  * @public
@@ -39,8 +43,10 @@ exports.Polygon = void 0;
39
43
  var BezierPath_1 = require("./BezierPath");
40
44
  var Bounds_1 = require("./Bounds");
41
45
  var Line_1 = require("./Line");
46
+ var Triangle_1 = require("./Triangle");
42
47
  var UIDGenerator_1 = require("./UIDGenerator");
43
48
  var Vertex_1 = require("./Vertex");
49
+ var geomutils_1 = require("./geomutils");
44
50
  /**
45
51
  * @classdesc A polygon class. Any polygon consists of an array of vertices; polygons can be open or closed.
46
52
  *
@@ -67,15 +73,16 @@ var Polygon = /** @class */ (function () {
67
73
  **/
68
74
  this.className = "Polygon";
69
75
  this.uid = UIDGenerator_1.UIDGenerator.next();
70
- if (typeof vertices == "undefined")
76
+ if (typeof vertices == "undefined") {
71
77
  vertices = [];
78
+ }
72
79
  this.vertices = vertices;
73
80
  this.isOpen = isOpen || false;
74
81
  }
75
82
  /**
76
83
  * Add a vertex to the end of the `vertices` array.
77
84
  *
78
- * @method addVert
85
+ * @method addVertex
79
86
  * @param {Vertex} vert - The vertex to add.
80
87
  * @instance
81
88
  * @memberof Polygon
@@ -83,6 +90,108 @@ var Polygon = /** @class */ (function () {
83
90
  Polygon.prototype.addVertex = function (vert) {
84
91
  this.vertices.push(vert);
85
92
  };
93
+ /**
94
+ * Add a vertex at a particular position of the `vertices` array.
95
+ *
96
+ * @method addVertexAt
97
+ * @param {Vertex} vert - The vertex to add.
98
+ * @param {number} index - The position to add the vertex at. Will be handled modulo.
99
+ * @instance
100
+ * @memberof Polygon
101
+ **/
102
+ Polygon.prototype.addVertexAt = function (vert, index) {
103
+ // var moduloIndex = index % (this.vertices.length + 1);
104
+ this.vertices.splice(index, 0, vert);
105
+ };
106
+ /**
107
+ * Get a new instance of the line at the given start index. The returned line will consist
108
+ * of the vertex at `vertIndex` and `vertIndex+1` (will be handled modulo).
109
+ *
110
+ * @method getEdgeAt
111
+ * @param {number} vertIndex - The vertex index of the line to start.
112
+ * @instance
113
+ * @memberof Polygon
114
+ * @return {Line}
115
+ **/
116
+ Polygon.prototype.getEdgeAt = function (vertIndex) {
117
+ return new Line_1.Line(this.getVertexAt(vertIndex), this.getVertexAt(vertIndex + 1));
118
+ };
119
+ /**
120
+ * Converts this polygon into a sequence of lines. Please note that each time
121
+ * this method is called new lines are created. The underlying line vertices are no clones
122
+ * (instances).
123
+ *
124
+ * @method getEdges
125
+ * @instance
126
+ * @memberof Polygon
127
+ * @return {Array<Line>}
128
+ */
129
+ Polygon.prototype.getEdges = function () {
130
+ var lines = [];
131
+ for (var i = 0; i + 1 < this.vertices.length; i++) {
132
+ // var line = this.getLineAt(i).clone();
133
+ lines.push(this.getEdgeAt(i));
134
+ }
135
+ if (!this.isOpen && this.vertices.length > 0) {
136
+ lines.push(this.getEdgeAt(this.vertices.length - 1));
137
+ }
138
+ return lines;
139
+ };
140
+ /**
141
+ * Checks if the angle at the given polygon vertex (index) is acute. Please not that this is
142
+ * only working for clockwise polygons. If this polygon is not clockwise please use the
143
+ * `isClockwise` method and reverse polygon vertices if needed.
144
+ *
145
+ * @method isAngleAcute
146
+ * @instance
147
+ * @memberof Polygon
148
+ * @param {number} vertIndex - The index of the polygon vertex to check.
149
+ * @returns {boolean} `true` is angle is acute, `false` is obtuse.
150
+ */
151
+ Polygon.prototype.getInnerAngleAt = function (vertIndex) {
152
+ var p2 = this.vertices[vertIndex];
153
+ var p1 = this.vertices[(vertIndex + this.vertices.length - 1) % this.vertices.length].clone();
154
+ var p3 = this.vertices[(vertIndex + 1) % this.vertices.length].clone();
155
+ // See
156
+ // https://math.stackexchange.com/questions/149959/how-to-find-the-interior-angle-of-an-irregular-pentagon-or-polygon
157
+ // π−arccos((P2−P1)⋅(P3−P2)|P2−P1||P3−P2|)
158
+ // Check if triangle is acute (will be used later)
159
+ // Acute angles and obtuse angles need to be handled differently.
160
+ var isAcute = this.isAngleAcute(vertIndex);
161
+ // Differences
162
+ var zero = new Vertex_1.Vertex(0, 0);
163
+ var p2mp1 = new Vertex_1.Vertex(p2.x - p1.x, p2.y - p1.y);
164
+ var p3mp2 = new Vertex_1.Vertex(p3.x - p2.x, p3.y - p2.y);
165
+ var p2mp1_len = zero.distance(p2mp1);
166
+ var p3mp2_len = zero.distance(p3mp2);
167
+ // Dot products
168
+ var dotProduct = geomutils_1.geomutils.dotProduct(p2mp1, p3mp2);
169
+ var lengthProduct = p2mp1_len * p3mp2_len;
170
+ if (isAcute) {
171
+ return Math.PI - Math.acos(dotProduct / lengthProduct);
172
+ }
173
+ else {
174
+ return Math.PI + Math.acos(dotProduct / lengthProduct);
175
+ }
176
+ };
177
+ /**
178
+ * Checks if the angle at the given polygon vertex (index) is acute.
179
+ *
180
+ * @method isAngleAcute
181
+ * @instance
182
+ * @memberof Polygon
183
+ * @param {number} vertIndex - The index of the polygon vertex to check.
184
+ * @returns {boolean} `true` is angle is acute, `false` is obtuse.
185
+ */
186
+ Polygon.prototype.isAngleAcute = function (vertIndex) {
187
+ var A = this.vertices[(vertIndex + this.vertices.length - 1) % this.vertices.length].clone();
188
+ var B = this.vertices[vertIndex];
189
+ var C = this.vertices[(vertIndex + 1) % this.vertices.length].clone();
190
+ // Find local winding number for triangle A B C
191
+ var windingNumber = Triangle_1.Triangle.utils.determinant(A, B, C);
192
+ // console.log("vertIndex", vertIndex, "windingNumber", windingNumber);
193
+ return windingNumber < 0;
194
+ };
86
195
  /**
87
196
  * Get the polygon vertex at the given position (index).
88
197
  *
@@ -93,17 +202,19 @@ var Polygon = /** @class */ (function () {
93
202
  * - getVertexAt( vertices.length + k ) == getVertexAt( k )
94
203
  * - getVertexAt( -k ) == getVertexAt( vertices.length -k )
95
204
  *
96
- * @metho getVertexAt
205
+ * @method getVertexAt
97
206
  * @param {number} index - The index of the desired vertex.
98
207
  * @instance
99
208
  * @memberof Polygon
100
209
  * @return {Vertex} At the given index.
101
210
  **/
102
211
  Polygon.prototype.getVertexAt = function (index) {
103
- if (index < 0)
212
+ if (index < 0) {
104
213
  return this.vertices[this.vertices.length - (Math.abs(index) % this.vertices.length)];
105
- else
214
+ }
215
+ else {
106
216
  return this.vertices[index % this.vertices.length];
217
+ }
107
218
  };
108
219
  /**
109
220
  * Move the polygon's vertices by the given amount.
@@ -127,7 +238,7 @@ var Polygon = /** @class */ (function () {
127
238
  * https://stackoverflow.com/questions/22521982/check-if-point-inside-a-polygon
128
239
  *
129
240
  * @method containsVert
130
- * @param {XYCoords} vert - The vertex to check. The new x-component.
241
+ * @param {XYCoords} vert - The vertex to check.
131
242
  * @return {boolean} True if the passed vertex is inside this polygon. The polygon is considered closed.
132
243
  * @instance
133
244
  * @memberof Polygon
@@ -145,6 +256,21 @@ var Polygon = /** @class */ (function () {
145
256
  }
146
257
  return inside;
147
258
  };
259
+ /**
260
+ * Check if all given vertices are inside this polygon.<br>
261
+ * <br>
262
+ * This method just uses the `Polygon.containsVert` method.
263
+ *
264
+ * @method containsVerts
265
+ * @param {XYCoords[]} verts - The vertices to check.
266
+ * @return {boolean} True if all passed vertices are inside this polygon. The polygon is considered closed.
267
+ * @instance
268
+ * @memberof Polygon
269
+ **/
270
+ Polygon.prototype.containsVerts = function (verts) {
271
+ var _this = this;
272
+ return verts.every(function (vert) { return _this.containsVert(vert); });
273
+ };
148
274
  /**
149
275
  * Check if the passed polygon is completly contained inside this polygon.
150
276
  *
@@ -207,7 +333,8 @@ var Polygon = /** @class */ (function () {
207
333
  * @return {boolean}
208
334
  */
209
335
  Polygon.prototype.isClockwise = function () {
210
- return Polygon.utils.signedArea(this.vertices) < 0;
336
+ // return Polygon.utils.signedArea(this.vertices) < 0;
337
+ return Polygon.utils.isClockwise(this.vertices);
211
338
  };
212
339
  /**
213
340
  * Get the perimeter of this polygon.
@@ -266,6 +393,28 @@ var Polygon = /** @class */ (function () {
266
393
  }
267
394
  return this;
268
395
  };
396
+ /**
397
+ * Get the mean `center` of this polygon by calculating the mean value of all vertices.
398
+ *
399
+ * Mean: (v[0] + v[1] + ... v[n-1]) / n
400
+ *
401
+ * @method getMeanCenter
402
+ * @instance
403
+ * @memberof Polygon
404
+ * @return {Vertex|null} `null` is no vertices are available.
405
+ */
406
+ Polygon.prototype.getMeanCenter = function () {
407
+ if (this.vertices.length === 0) {
408
+ return null;
409
+ }
410
+ var center = this.vertices[0].clone();
411
+ for (var i = 1; i < this.vertices.length; i++) {
412
+ center.add(this.vertices[i]);
413
+ }
414
+ center.x /= this.vertices.length;
415
+ center.y /= this.vertices.length;
416
+ return center;
417
+ };
269
418
  /**
270
419
  * Get all line intersections with this polygon.
271
420
  *
@@ -408,11 +557,64 @@ var Polygon = /** @class */ (function () {
408
557
  /**
409
558
  * Create a deep copy of this polygon.
410
559
  *
560
+ * @method clone
561
+ * @instance
562
+ * @memberof Polygon
411
563
  * @return {Polygon} The cloned polygon.
412
564
  */
413
565
  Polygon.prototype.clone = function () {
414
566
  return new Polygon(this.vertices.map(function (vert) { return vert.clone(); }), this.isOpen);
415
567
  };
568
+ /**
569
+ * Create a new polygon without colinear adjacent edges. This method does not midify the current polygon
570
+ * but creates a new one.
571
+ *
572
+ * Please note that this method does NOT create deep clones of the vertices. Use Polygon.clone() if you need to.
573
+ *
574
+ * Please also note that the `tolerance` may become really large here, as the denominator of two closely
575
+ * parallel lines is usually pretty large. See the demo `57-eliminate-colinear-polygon-edges` to get
576
+ * an impression of how denominators work.
577
+ *
578
+ * @method elimitateColinearEdges
579
+ * @instance
580
+ * @memberof Polygon
581
+ * @param {number?} tolerance - (default is 1.0) The epsilon to detect co-linear edges.
582
+ * @return {Polygon} A new polygon without co-linear adjacent edges – respective the given epsilon.
583
+ */
584
+ Polygon.prototype.elimitateColinearEdges = function (tolerance) {
585
+ var eps = typeof tolerance === "undefined" ? 1.0 : tolerance;
586
+ var verts = this.vertices.slice(); // Creates a shallow copy
587
+ var i = 0;
588
+ var lineA = new Line_1.Line(new Vertex_1.Vertex(), new Vertex_1.Vertex());
589
+ var lineB = new Line_1.Line(new Vertex_1.Vertex(), new Vertex_1.Vertex());
590
+ while (i + 1 < verts.length && verts.length > 2) {
591
+ var vertA = verts[i];
592
+ var vertB = verts[(i + 1) % verts.length];
593
+ lineA.a = vertA;
594
+ lineA.b = vertB;
595
+ lineB.a = vertB;
596
+ var areColinear = false;
597
+ var j = i + 2;
598
+ do {
599
+ var vertC = verts[j % verts.length];
600
+ lineB.b = vertC;
601
+ areColinear = lineA.colinear(lineB, eps);
602
+ // console.log("are colinear?", i, i + 1, j, areColinear);
603
+ if (areColinear) {
604
+ j++;
605
+ }
606
+ } while (areColinear);
607
+ // Now j points to the first vertex that's NOT colinear to the current lineA
608
+ // -> delete all vertices in between
609
+ if (j - i > 2) {
610
+ // Means: there have been 'colinear vertices' in between
611
+ // console.log("Splice", "i", i, "j", j, i + 1, j - i - 1);
612
+ verts.splice(i + 1, j - i - 2);
613
+ }
614
+ i++;
615
+ }
616
+ return new Polygon(verts, this.isOpen);
617
+ };
416
618
  /**
417
619
  * Convert this polygon to a sequence of quadratic Bézier curves.<br>
418
620
  * <br>
@@ -512,8 +714,9 @@ var Polygon = /** @class */ (function () {
512
714
  **/
513
715
  Polygon.prototype.toCubicBezierSVGString = function (threshold) {
514
716
  var qdata = this.toCubicBezierData(threshold);
515
- if (qdata.length == 0)
717
+ if (qdata.length == 0) {
516
718
  return "";
719
+ }
517
720
  var buffer = ["M " + qdata[0].x + " " + qdata[0].y];
518
721
  for (var i = 1; i < qdata.length; i += 3) {
519
722
  buffer.push("C " +
@@ -583,6 +786,9 @@ var Polygon = /** @class */ (function () {
583
786
  }
584
787
  return Math.abs(total);
585
788
  },
789
+ isClockwise: function (vertices) {
790
+ return Polygon.utils.signedArea(vertices) < 0;
791
+ },
586
792
  /**
587
793
  * Calulate the signed polyon area by interpreting the polygon as a matrix
588
794
  * and calculating its determinant.
@@ -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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"}
@@ -21,7 +21,9 @@
21
21
  * @modified 2021-01-22 Always updating circumcircle when retieving it.
22
22
  * @modified 2022-02-02 Added the `destroy` method.
23
23
  * @modified 2022-02-02 Cleared the `Triangle.toSVGString` function (deprecated). Use `drawutilssvg` instead.
24
- * @version 2.6.0
24
+ * @modified 2024-11-22 Added static utility function Triangle.utils.determinant; adapted method `determinant`.
25
+ * @modified 2024-11-22 Changing visibility of `Triangle.utils` from `private` to `public`.
26
+ * @version 2.8.0
25
27
  *
26
28
  * @file Triangle
27
29
  * @fileoverview A simple triangle class: three vertices.
@@ -31,7 +33,7 @@ import { Bounds } from "./Bounds";
31
33
  import { Circle } from "./Circle";
32
34
  import { Polygon } from "./Polygon";
33
35
  import { Vertex } from "./Vertex";
34
- import { SVGSerializable, UID } from "./interfaces";
36
+ import { SVGSerializable, UID, XYCoords } from "./interfaces";
35
37
  /**
36
38
  * @classdesc A triangle class for triangulations.
37
39
  *
@@ -319,5 +321,23 @@ export declare class Triangle implements SVGSerializable {
319
321
  * should not be used.
320
322
  */
321
323
  destroy(): void;
322
- private static utils;
324
+ static utils: {
325
+ max3(a: number, b: number, c: number): number;
326
+ min3(a: number, b: number, c: number): number;
327
+ signedArea(p0x: number, p0y: number, p1x: number, p1y: number, p2x: number, p2y: number): number;
328
+ /**
329
+ * Used by the containsPoint() function.
330
+ *
331
+ * @private
332
+ **/
333
+ pointIsInTriangle(px: number, py: number, p0x: number, p0y: number, p1x: number, p1y: number, p2x: number, p2y: number): boolean;
334
+ /**
335
+ * Calculate the determinant of the three vertices a, b and c (in this order).
336
+ * @param {XYCords} a - The first vertex.
337
+ * @param {XYCords} b - The first vertex.
338
+ * @param {XYCords} c - The first vertex.
339
+ * @returns {nmber}
340
+ */
341
+ determinant(a: XYCoords, b: XYCoords, c: XYCoords): number;
342
+ };
323
343
  }
@@ -22,7 +22,9 @@
22
22
  * @modified 2021-01-22 Always updating circumcircle when retieving it.
23
23
  * @modified 2022-02-02 Added the `destroy` method.
24
24
  * @modified 2022-02-02 Cleared the `Triangle.toSVGString` function (deprecated). Use `drawutilssvg` instead.
25
- * @version 2.6.0
25
+ * @modified 2024-11-22 Added static utility function Triangle.utils.determinant; adapted method `determinant`.
26
+ * @modified 2024-11-22 Changing visibility of `Triangle.utils` from `private` to `public`.
27
+ * @version 2.8.0
26
28
  *
27
29
  * @file Triangle
28
30
  * @fileoverview A simple triangle class: three vertices.
@@ -284,7 +286,8 @@ var Triangle = /** @class */ (function () {
284
286
  */
285
287
  Triangle.prototype.determinant = function () {
286
288
  // (b.y - a.y)*(c.x - b.x) - (c.y - b.y)*(b.x - a.x);
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);
289
+ // 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);
290
+ return Triangle.utils.determinant(this.a, this.b, this.c);
288
291
  };
289
292
  /**
290
293
  * Checks if the passed vertex (p) is inside this triangle.
@@ -397,6 +400,16 @@ var Triangle = /** @class */ (function () {
397
400
  var s = (1 / (2 * area)) * (p0y * p2x - p0x * p2y + (p2y - p0y) * px + (p0x - p2x) * py);
398
401
  var t = (1 / (2 * area)) * (p0x * p1y - p0y * p1x + (p0y - p1y) * px + (p1x - p0x) * py);
399
402
  return s > 0 && t > 0 && 1 - s - t > 0;
403
+ },
404
+ /**
405
+ * Calculate the determinant of the three vertices a, b and c (in this order).
406
+ * @param {XYCords} a - The first vertex.
407
+ * @param {XYCords} b - The first vertex.
408
+ * @param {XYCords} c - The first vertex.
409
+ * @returns {nmber}
410
+ */
411
+ determinant: function (a, b, c) {
412
+ return (b.y - a.y) * (c.x - b.x) - (c.y - b.y) * (b.x - a.x);
400
413
  }
401
414
  };
402
415
  return Triangle;
@@ -1 +1 @@
1
- {"version":3,"file":"Triangle.js","sourceRoot":"","sources":["../ts/Triangle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Triangle.js","sourceRoot":"","sources":["../ts/Triangle.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,10 @@
10
10
  * @modified 2021-01-20 Added UID.
11
11
  * @modified 2022-02-02 Added the `destroy` method.
12
12
  * @modified 2023-09-29 Fixed a calculation error in the VertTuple.hasPoint() function; distance measure was broken!
13
- * @version 1.2.1
13
+ * @modified 2024-09-10 Chaging the first param of `pointDistance` from `Vertex` to less strict type `XYCoords`. This should not break anything.
14
+ * @modified 2024-09-10 Adding the optional `epsilon` param to the `hasPoint` method.
15
+ * @modified 2024-12-02 Added the `epsilon` param to the `colinear` method. Default is 1.0e-6.
16
+ * @version 1.3.0
14
17
  */
15
18
  import { Vertex } from "./Vertex";
16
19
  import { XYCoords, UID } from "./interfaces";
@@ -172,11 +175,12 @@ export declare class VertTuple<T extends VertTuple<T>> {
172
175
  *
173
176
  * @method colinear
174
177
  * @param {VertTuple} line
178
+ * @param {epsilon?=1.0e-6} epsilon - The epsilon to use (default is 1.0e-6).
175
179
  * @instance
176
180
  * @memberof VertTuple
177
181
  * @return true if both lines are co-linear.
178
182
  */
179
- colinear(line: VertTuple<T>): boolean;
183
+ colinear(line: VertTuple<T>, epsilon?: number): boolean;
180
184
  /**
181
185
  * Get the closest position T from this line to the specified point.
182
186
  *
@@ -195,13 +199,14 @@ export declare class VertTuple<T extends VertTuple<T>> {
195
199
  * that point is located between point `a` and `b`.
196
200
  *
197
201
  * @method hasPoint
198
- * @param {Vertex} point The point to check.
199
- * @param {boolean=} insideBoundsOnly If set to to true (default=false) the point must be between start and end point of the line.
202
+ * @param {Vertex} point - The point to check.
203
+ * @param {boolean=} insideBoundsOnly - [optional] If set to to true (default=false) the point must be between start and end point of the line.
204
+ * @param {number=Vertex.EPSILON} epsilon - [optional] A tolerance.
200
205
  * @return {boolean} True if the given point is on this line.
201
206
  * @instance
202
207
  * @memberof VertTuple
203
208
  */
204
- hasPoint(point: XYCoords, insideBoundsOnly?: boolean): boolean;
209
+ hasPoint(point: XYCoords, insideBoundsOnly?: boolean, epsilon?: number): boolean;
205
210
  /**
206
211
  * Get the closest point on this line to the specified point.
207
212
  *
@@ -216,12 +221,12 @@ export declare class VertTuple<T extends VertTuple<T>> {
216
221
  * The the minimal distance between this line and the specified point.
217
222
  *
218
223
  * @method pointDistance
219
- * @param {Vertex} p The point (vertex) to measre the distance to.
224
+ * @param {XYCoords} p The point (vertex) to measre the distance to.
220
225
  * @return {number} The absolute minimal distance.
221
226
  * @instance
222
227
  * @memberof VertTuple
223
228
  **/
224
- pointDistance(p: Vertex): number;
229
+ pointDistance(p: XYCoords): number;
225
230
  /**
226
231
  * Create a deep clone of this instance.
227
232
  *