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/cjs/Polygon.js
CHANGED
|
@@ -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
|
-
* @
|
|
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 ==
|
|
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 (
|
|
112
|
+
Polygon.prototype.move = function (amount) {
|
|
111
113
|
for (var i in this.vertices) {
|
|
112
|
-
this.vertices[i].add(
|
|
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 =
|
|
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 ==
|
|
213
|
+
if (typeof this.vertices[i].scale == "function")
|
|
196
214
|
this.vertices[i].scale(factor, center);
|
|
197
215
|
else
|
|
198
|
-
console.log(
|
|
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 = [
|
|
344
|
+
var buffer = ["M " + qdata[0].x + " " + qdata[0].y];
|
|
277
345
|
for (var i = 1; i < qdata.length; i += 2) {
|
|
278
|
-
buffer.push(
|
|
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 ==
|
|
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 = [
|
|
402
|
+
var buffer = ["M " + qdata[0].x + " " + qdata[0].y];
|
|
337
403
|
for (var i = 1; i < qdata.length; i += 3) {
|
|
338
|
-
buffer.push(
|
|
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
|
-
*
|
|
364
|
-
*
|
|
365
|
-
*
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
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
|
-
|
|
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 +=
|
|
417
|
-
total -=
|
|
466
|
+
total += addX * addY * 0.5;
|
|
467
|
+
total -= subX * subY * 0.5;
|
|
418
468
|
}
|
|
419
469
|
return Math.abs(total);
|
|
420
470
|
},
|
package/src/cjs/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/cjs/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/cjs/Triangle.js
CHANGED
|
@@ -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
|
-
* @
|
|
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
|
|
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
|
|
354
|
+
return "{ a : " + this.a.toString() + ", b : " + this.b.toString() + ", c : " + this.c.toString() + "}";
|
|
369
355
|
};
|
|
370
|
-
;
|
|
371
356
|
/**
|
|
372
|
-
*
|
|
373
|
-
*
|
|
374
|
-
*
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
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
|
|
377
|
+
return a >= b && a >= c ? a : b >= a && b >= c ? b : c;
|
|
419
378
|
},
|
|
420
379
|
min3: function (a, b, c) {
|
|
421
|
-
return
|
|
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 &&
|
|
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;
|