plotboilerplate 1.23.1 → 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.
- package/README.md +1 -1
- package/dist/index.esm.js +7055 -6751
- 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 +342 -34
- package/dist/plotboilerplate.min.js +1 -1
- package/package.json +4 -2
- package/src/cjs/PlotBoilerplate.d.ts +5 -2
- package/src/cjs/PlotBoilerplate.js +10 -4
- package/src/cjs/PlotBoilerplate.js.map +1 -1
- package/src/cjs/Polygon.d.ts +107 -4
- package/src/cjs/Polygon.js +215 -9
- package/src/cjs/Polygon.js.map +1 -1
- package/src/cjs/Triangle.d.ts +23 -3
- package/src/cjs/Triangle.js +15 -2
- package/src/cjs/Triangle.js.map +1 -1
- package/src/cjs/VertTuple.d.ts +12 -7
- package/src/cjs/VertTuple.js +14 -9
- package/src/cjs/VertTuple.js.map +1 -1
- package/src/cjs/Vertex.d.ts +2 -1
- package/src/cjs/Vertex.js +5 -2
- package/src/cjs/Vertex.js.map +1 -1
- package/src/cjs/draw.d.ts +1 -0
- package/src/cjs/draw.js +2 -1
- package/src/cjs/draw.js.map +1 -1
- package/src/cjs/drawutilssvg.d.ts +6 -1
- package/src/cjs/drawutilssvg.js +34 -6
- package/src/cjs/drawutilssvg.js.map +1 -1
- package/src/cjs/geomutils.d.ts +32 -1
- package/src/cjs/geomutils.js +47 -1
- package/src/cjs/geomutils.js.map +1 -1
- package/src/cjs/interfaces/core.d.ts +4 -2
- package/src/cjs/interfaces/core.js +1 -0
- package/src/cjs/interfaces/core.js.map +1 -1
- package/src/cjs/interfaces/externals.d.ts +30 -0
- package/src/cjs/utils/InitializationObserver.js +7 -0
- package/src/cjs/utils/InitializationObserver.js.map +1 -1
- package/src/cjs/utils/Params.d.ts +5 -3
- package/src/cjs/utils/Params.js +7 -3
- package/src/cjs/utils/Params.js.map +1 -1
- package/src/cjs/utils/algorithms/PolygonInset.d.ts +184 -0
- package/src/cjs/utils/algorithms/PolygonInset.js +431 -0
- package/src/cjs/utils/algorithms/PolygonInset.js.map +1 -0
- package/src/cjs/utils/algorithms/clearDuplicateVertices.d.ts +5 -4
- package/src/cjs/utils/algorithms/clearDuplicateVertices.js +6 -3
- package/src/cjs/utils/algorithms/clearDuplicateVertices.js.map +1 -1
- package/src/cjs/utils/algorithms/findPolygonSelfIntersections.d.ts +2 -1
- package/src/cjs/utils/algorithms/findPolygonSelfIntersections.js +3 -3
- package/src/cjs/utils/algorithms/findPolygonSelfIntersections.js.map +1 -1
- package/src/cjs/utils/algorithms/splitPolygonToNonIntersecting.d.ts +3 -2
- package/src/cjs/utils/algorithms/splitPolygonToNonIntersecting.js +11 -9
- package/src/cjs/utils/algorithms/splitPolygonToNonIntersecting.js.map +1 -1
- package/src/cjs/utils/creategui.js +69 -1
- package/src/cjs/utils/detectDarkMode.js.map +1 -1
- package/src/cjs/utils/dom/guiSizeToggler.d.ts +2 -1
- package/src/cjs/utils/dom/guiSizeToggler.js +5 -3
- package/src/cjs/utils/dom/guiSizeToggler.js.map +1 -1
- package/src/cjs/utils/gup.d.ts +1 -0
- package/src/cjs/utils/gup.js +3 -1
- package/src/cjs/utils/gup.js.map +1 -1
- package/src/esm/PlotBoilerplate.d.ts +5 -2
- package/src/esm/PlotBoilerplate.js +10 -4
- package/src/esm/PlotBoilerplate.js.map +1 -1
- package/src/esm/Polygon.d.ts +107 -4
- package/src/esm/Polygon.js +214 -9
- package/src/esm/Polygon.js.map +1 -1
- package/src/esm/Triangle.d.ts +23 -3
- package/src/esm/Triangle.js +15 -2
- package/src/esm/Triangle.js.map +1 -1
- package/src/esm/VertTuple.d.ts +12 -7
- package/src/esm/VertTuple.js +14 -9
- package/src/esm/VertTuple.js.map +1 -1
- package/src/esm/Vertex.d.ts +2 -1
- package/src/esm/Vertex.js +5 -2
- package/src/esm/Vertex.js.map +1 -1
- package/src/esm/draw.d.ts +1 -0
- package/src/esm/draw.js +2 -1
- package/src/esm/draw.js.map +1 -1
- package/src/esm/drawutilssvg.d.ts +6 -1
- package/src/esm/drawutilssvg.js +34 -6
- package/src/esm/drawutilssvg.js.map +1 -1
- package/src/esm/geomutils.d.ts +32 -1
- package/src/esm/geomutils.js +47 -1
- package/src/esm/geomutils.js.map +1 -1
- package/src/esm/interfaces/core.d.ts +4 -2
- package/src/esm/interfaces/core.js +1 -0
- package/src/esm/interfaces/core.js.map +1 -1
- package/src/esm/interfaces/externals.d.ts +30 -0
- package/src/esm/utils/InitializationObserver.js +7 -0
- package/src/esm/utils/InitializationObserver.js.map +1 -1
- package/src/esm/utils/Params.d.ts +5 -3
- package/src/esm/utils/Params.js +7 -3
- package/src/esm/utils/Params.js.map +1 -1
- package/src/esm/utils/algorithms/PolygonInset.d.ts +184 -0
- package/src/esm/utils/algorithms/PolygonInset.js +424 -0
- package/src/esm/utils/algorithms/PolygonInset.js.map +1 -0
- package/src/esm/utils/algorithms/clearDuplicateVertices.d.ts +5 -4
- package/src/esm/utils/algorithms/clearDuplicateVertices.js +6 -3
- package/src/esm/utils/algorithms/clearDuplicateVertices.js.map +1 -1
- package/src/esm/utils/algorithms/findPolygonSelfIntersections.d.ts +2 -1
- package/src/esm/utils/algorithms/findPolygonSelfIntersections.js +3 -3
- package/src/esm/utils/algorithms/findPolygonSelfIntersections.js.map +1 -1
- package/src/esm/utils/algorithms/splitPolygonToNonIntersecting.d.ts +3 -2
- package/src/esm/utils/algorithms/splitPolygonToNonIntersecting.js +11 -9
- package/src/esm/utils/algorithms/splitPolygonToNonIntersecting.js.map +1 -1
- package/src/esm/utils/detectDarkMode.js.map +1 -1
- package/src/esm/utils/dom/guiSizeToggler.d.ts +2 -1
- package/src/esm/utils/dom/guiSizeToggler.js +4 -2
- package/src/esm/utils/dom/guiSizeToggler.js.map +1 -1
- package/src/esm/utils/gup.d.ts +1 -0
- package/src/esm/utils/gup.js +3 -1
- package/src/esm/utils/gup.js.map +1 -1
- package/src/index-gl.js +3 -1
- package/src/index.js +2 -1
- package/src/ts/PlotBoilerplate.ts +11 -4
- package/src/ts/Polygon.ts +230 -9
- package/src/ts/Triangle.ts +18 -4
- package/src/ts/VertTuple.ts +15 -10
- package/src/ts/Vertex.ts +5 -2
- package/src/ts/draw.ts +2 -1
- package/src/ts/drawutilssvg.ts +46 -6
- package/src/ts/geomutils.ts +49 -1
- package/src/ts/interfaces/core.ts +5 -2
- package/src/ts/interfaces/externals.ts +34 -0
- package/src/ts/utils/InitializationObserver.ts +7 -0
- package/src/ts/utils/Params.ts +8 -3
- package/src/ts/utils/algorithms/PolygonInset.ts +529 -0
- package/src/ts/utils/algorithms/clearDuplicateVertices.ts +11 -8
- package/src/ts/utils/algorithms/findPolygonSelfIntersections.ts +25 -26
- package/src/ts/utils/algorithms/splitPolygonToNonIntersecting.ts +92 -99
- package/src/ts/utils/detectDarkMode.ts +1 -3
- package/src/ts/utils/dom/guiSizeToggler.ts +4 -2
- package/src/ts/utils/gup.ts +3 -1
|
@@ -7,17 +7,19 @@
|
|
|
7
7
|
* @author Ikaros Kappler
|
|
8
8
|
* @date 2021-07-13
|
|
9
9
|
* @modified 2023-10-28 Refactored and ported to Typescript.
|
|
10
|
-
* @
|
|
10
|
+
* @modified 2024-12-17 Simplified this method to work with generic sub types of XYCoords as well.
|
|
11
|
+
* @version 1.0.1
|
|
11
12
|
*/
|
|
12
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
14
|
exports.clearDuplicateVertices = void 0;
|
|
15
|
+
var geomutils_1 = require("../../geomutils");
|
|
14
16
|
var EPS = 0.000001;
|
|
15
17
|
/**
|
|
16
18
|
* Filter the array and clear all duplicates.
|
|
17
19
|
*
|
|
18
20
|
* The original array is left unchanged. The vertices in the array are not cloned.
|
|
19
21
|
*
|
|
20
|
-
* @param {
|
|
22
|
+
* @param {XYCoords[]} vertices
|
|
21
23
|
* @param {number=EPS} epsilon
|
|
22
24
|
* @return {Vertex[]}
|
|
23
25
|
*/
|
|
@@ -35,7 +37,8 @@ var clearDuplicateVertices = function (vertices, epsilon) {
|
|
|
35
37
|
};
|
|
36
38
|
exports.clearDuplicateVertices = clearDuplicateVertices;
|
|
37
39
|
var isCloseTo = function (vertA, vertB, eps) {
|
|
38
|
-
return vertA.distance(vertB) < eps;
|
|
40
|
+
// return vertA.distance(vertB) < eps;
|
|
41
|
+
return geomutils_1.geomutils.dist4(vertA.x, vertA.y, vertB.x, vertB.y) < eps;
|
|
39
42
|
};
|
|
40
43
|
var containsElementFrom = function (vertices, vertex, fromIndex, epsilon) {
|
|
41
44
|
for (var i = fromIndex; i < vertices.length; i++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clearDuplicateVertices.js","sourceRoot":"","sources":["../../../ts/utils/algorithms/clearDuplicateVertices.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"clearDuplicateVertices.js","sourceRoot":"","sources":["../../../ts/utils/algorithms/clearDuplicateVertices.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,6CAA4C;AAG5C,IAAM,GAAG,GAAW,QAAQ,CAAC;AAE7B;;;;;;;;GAQG;AACI,IAAM,sBAAsB,GAAG,UAAqB,QAAa,EAAE,OAAgB;IACxF,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,GAAG,GAAG,CAAC;IAChB,CAAC;IACD,IAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;YAChE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAXW,QAAA,sBAAsB,0BAWjC;AAEF,IAAM,SAAS,GAAG,UAAqB,KAAQ,EAAE,KAAQ,EAAE,GAAW;IACpE,sCAAsC;IACtC,OAAO,qBAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACnE,CAAC,CAAC;AAEF,IAAM,mBAAmB,GAAG,UAAqB,QAAkB,EAAE,MAAS,EAAE,SAAiB,EAAE,OAAe;IAChH,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* @author Ikaros Kappler
|
|
6
6
|
* @date 2020-12-04
|
|
7
7
|
* @modified 2020-12-09 Ported from vanilla JS to Typescript.
|
|
8
|
+
* @modified 2024-11-22 Fixed a type error in line 41.
|
|
8
9
|
*/
|
|
9
10
|
import { Vertex } from "../../Vertex";
|
|
10
11
|
import { XYCoords } from "../../interfaces";
|
|
@@ -15,6 +16,6 @@ import { XYCoords } from "../../interfaces";
|
|
|
15
16
|
*
|
|
16
17
|
* @name findPolygonSelfIntersections
|
|
17
18
|
* @param {Array<Vertex>} vertices - The vertices that form the polygon.
|
|
18
|
-
* @return Array<Vertex>
|
|
19
|
+
* @return {Array<Vertex>}
|
|
19
20
|
*/
|
|
20
21
|
export declare const findPolygonSelfIntersections: (vertices: Array<XYCoords>) => Array<Vertex>;
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* @author Ikaros Kappler
|
|
7
7
|
* @date 2020-12-04
|
|
8
8
|
* @modified 2020-12-09 Ported from vanilla JS to Typescript.
|
|
9
|
+
* @modified 2024-11-22 Fixed a type error in line 41.
|
|
9
10
|
*/
|
|
10
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
12
|
exports.findPolygonSelfIntersections = void 0;
|
|
@@ -18,7 +19,7 @@ var Vertex_1 = require("../../Vertex");
|
|
|
18
19
|
*
|
|
19
20
|
* @name findPolygonSelfIntersections
|
|
20
21
|
* @param {Array<Vertex>} vertices - The vertices that form the polygon.
|
|
21
|
-
* @return Array<Vertex>
|
|
22
|
+
* @return {Array<Vertex>}
|
|
22
23
|
*/
|
|
23
24
|
var findPolygonSelfIntersections = function (vertices) {
|
|
24
25
|
var pointList = [];
|
|
@@ -39,8 +40,7 @@ var findPolygonSelfIntersections = function (vertices) {
|
|
|
39
40
|
// The point is undefined if and only if both line are parallel (co-linear).
|
|
40
41
|
var intersectionPoint = lineA.intersection(lineB);
|
|
41
42
|
// Check if the intersection point is on both (finite) edges of the polygon.
|
|
42
|
-
if (intersectionPoint
|
|
43
|
-
&& lineA.hasPoint(intersectionPoint) && lineB.hasPoint(intersectionPoint)) {
|
|
43
|
+
if (intersectionPoint && lineA.hasPoint(intersectionPoint) && lineB.hasPoint(intersectionPoint)) {
|
|
44
44
|
pointList.push(intersectionPoint);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findPolygonSelfIntersections.js","sourceRoot":"","sources":["../../../ts/utils/algorithms/findPolygonSelfIntersections.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"findPolygonSelfIntersections.js","sourceRoot":"","sources":["../../../ts/utils/algorithms/findPolygonSelfIntersections.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,mCAAkC;AAClC,uCAAsC;AAGtC;;;;;;;;GAQG;AACI,IAAM,4BAA4B,GAAG,UAAC,QAAyB;IACpE,IAAM,SAAS,GAAkB,EAAE,CAAC;IACpC,IAAM,KAAK,GAAS,IAAI,WAAI,CAAC,IAAI,eAAM,EAAE,EAAE,IAAI,eAAM,EAAE,CAAC,CAAC;IACzD,IAAM,KAAK,GAAS,IAAI,WAAI,CAAC,IAAI,eAAM,EAAE,EAAE,IAAI,eAAM,EAAE,CAAC,CAAC;IACzD,IAAM,CAAC,GAAW,QAAQ,CAAC,MAAM,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,wDAAwD;YACxD,aAAa;YACb,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAAE,SAAS;YACrG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAEnC,2DAA2D;YAC3D,4EAA4E;YAC5E,IAAM,iBAAiB,GAAkB,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAEnE,4EAA4E;YAC5E,IAAI,iBAAiB,IAAI,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAChG,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AA1BW,QAAA,4BAA4B,gCA0BvC"}
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* @author Ikaros Kappler
|
|
6
6
|
* @date 2020-12-04
|
|
7
7
|
* @modified 2020-12-07 Ported from vanilla JS to typescript.
|
|
8
|
-
* @
|
|
8
|
+
* @modified 2024-11-22 Added the `insideBoundsOnly` param to the `splitPolygonToNonIntersecting` algorithm.
|
|
9
|
+
* @version 1.1.0
|
|
9
10
|
*/
|
|
10
11
|
import { Vertex } from "../../Vertex";
|
|
11
12
|
/**
|
|
@@ -24,4 +25,4 @@ import { Vertex } from "../../Vertex";
|
|
|
24
25
|
* @param {number=10} maxDepth - Number of max recursive steps (default is 10).
|
|
25
26
|
* @return {Array<Array<Vertex>>} A sequence of non-self-intersecting sub polygons.
|
|
26
27
|
*/
|
|
27
|
-
export declare const splitPolygonToNonIntersecting: (vertices: Array<Vertex>, maxDepth?: number) => Array<Array<Vertex>>;
|
|
28
|
+
export declare const splitPolygonToNonIntersecting: (vertices: Array<Vertex>, maxDepth?: number, insideBoundsOnly?: boolean) => Array<Array<Vertex>>;
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
* @author Ikaros Kappler
|
|
7
7
|
* @date 2020-12-04
|
|
8
8
|
* @modified 2020-12-07 Ported from vanilla JS to typescript.
|
|
9
|
-
* @
|
|
9
|
+
* @modified 2024-11-22 Added the `insideBoundsOnly` param to the `splitPolygonToNonIntersecting` algorithm.
|
|
10
|
+
* @version 1.1.0
|
|
10
11
|
*/
|
|
11
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
13
|
exports.splitPolygonToNonIntersecting = void 0;
|
|
@@ -33,12 +34,12 @@ exports.splitPolygonToNonIntersecting = (function () {
|
|
|
33
34
|
* @param {Array<Vertex>} vertices
|
|
34
35
|
* @param {number=10} maxDepth
|
|
35
36
|
*/
|
|
36
|
-
var splitPolygonToNonIntersecting = function (vertices, maxDepth) {
|
|
37
|
+
var splitPolygonToNonIntersecting = function (vertices, maxDepth, insideBoundsOnly) {
|
|
37
38
|
if (typeof maxDepth === "undefined")
|
|
38
39
|
maxDepth = 10;
|
|
39
|
-
return _splitPolygonToNonIntersecting(vertices, maxDepth);
|
|
40
|
+
return _splitPolygonToNonIntersecting(vertices, maxDepth, insideBoundsOnly);
|
|
40
41
|
};
|
|
41
|
-
var _splitPolygonToNonIntersecting = function (vertices, maxDepth) {
|
|
42
|
+
var _splitPolygonToNonIntersecting = function (vertices, maxDepth, insideBoundsOnly) {
|
|
42
43
|
if (maxDepth <= 0) {
|
|
43
44
|
// aborting at max depth
|
|
44
45
|
return [vertices];
|
|
@@ -56,18 +57,19 @@ exports.splitPolygonToNonIntersecting = (function () {
|
|
|
56
57
|
for (var b = 0; b < vertices.length; b++) {
|
|
57
58
|
// Equal edges or neighbour edges intersect by definition.
|
|
58
59
|
// We ignore them.
|
|
59
|
-
if (a == b || a + 1 == b || a == b + 1
|
|
60
|
-
|| (a == 0 && b + 1 == vertices.length) || (b == 0 && a + 1 == vertices.length))
|
|
60
|
+
if (a == b || a + 1 == b || a == b + 1 || (a == 0 && b + 1 == vertices.length) || (b == 0 && a + 1 == vertices.length))
|
|
61
61
|
continue;
|
|
62
62
|
lineB.a.set(vertices[b]);
|
|
63
63
|
lineB.b.set(vertices[(b + 1) % n]);
|
|
64
64
|
var intersectionPoint = lineA.intersection(lineB);
|
|
65
|
-
if (intersectionPoint &&
|
|
65
|
+
if (intersectionPoint &&
|
|
66
|
+
lineA.hasPoint(intersectionPoint, insideBoundsOnly) &&
|
|
67
|
+
lineB.hasPoint(intersectionPoint, insideBoundsOnly)) {
|
|
66
68
|
// Cut polygon into two here
|
|
67
69
|
var split = splitPolygonAt(vertices, a, b, intersectionPoint);
|
|
68
70
|
// Split has 2 elements.
|
|
69
|
-
var leftCleaned = _splitPolygonToNonIntersecting(split[0], maxDepth - 1);
|
|
70
|
-
var rightCleaned = _splitPolygonToNonIntersecting(split[1], maxDepth - 1);
|
|
71
|
+
var leftCleaned = _splitPolygonToNonIntersecting(split[0], maxDepth - 1, insideBoundsOnly);
|
|
72
|
+
var rightCleaned = _splitPolygonToNonIntersecting(split[1], maxDepth - 1, insideBoundsOnly);
|
|
71
73
|
return leftCleaned.concat(rightCleaned);
|
|
72
74
|
}
|
|
73
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"splitPolygonToNonIntersecting.js","sourceRoot":"","sources":["../../../ts/utils/algorithms/splitPolygonToNonIntersecting.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"splitPolygonToNonIntersecting.js","sourceRoot":"","sources":["../../../ts/utils/algorithms/splitPolygonToNonIntersecting.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
* @modified 2020-04-03 Added empty default global object 'utils'. Added createGUI as an optional child.
|
|
10
10
|
* @modified 2023-09-29 Added try-catch for color attributes; invalid values might break construction of whole gui.
|
|
11
11
|
* @modified 2024-06-25 Replacing dat.gui by equivalent lil-gui calls. Collapsing all lil-gui folders (are open by default).
|
|
12
|
-
* @
|
|
12
|
+
* @modified 2024-08-25 Added `CSSBackdropEffects` to the GUI (if present).
|
|
13
|
+
* @version 1.2.0
|
|
13
14
|
**/
|
|
14
15
|
var utils = (globalThis.utils = globalThis.utils || {});
|
|
15
16
|
|
|
@@ -36,6 +37,63 @@ globalThis.utils.guiFolders = globalThis.utils.guiFolders || {};
|
|
|
36
37
|
* @return {dat.gui.GUI|lil-gui.GUI|null}
|
|
37
38
|
**/
|
|
38
39
|
globalThis.utils.createGUI = (function () {
|
|
40
|
+
var _tryGetFilterGETParams = function () {
|
|
41
|
+
// Rule is:
|
|
42
|
+
// * GET PARAMS first
|
|
43
|
+
// * pre-defnined params second
|
|
44
|
+
// * default values third
|
|
45
|
+
var globalPredefinedValues =
|
|
46
|
+
typeof globalThis["cssBackdropfilterValues"] === "object" ? globalThis["cssBackdropfilterValues"] : {};
|
|
47
|
+
var preDefinedValues = Object.assign(Object.assign({}, CSSBackdropEffects.DEFAULT_FILTER_VALUES), globalPredefinedValues);
|
|
48
|
+
if (typeof gup === "undefined") {
|
|
49
|
+
return preDefinedValues; // CSSBackdropEffects.DEFAULT_FILTER_VALUES;
|
|
50
|
+
}
|
|
51
|
+
var GUP = gup();
|
|
52
|
+
var params = new Params(GUP);
|
|
53
|
+
var initialFilterValues = {
|
|
54
|
+
isBackdropFiltersEnabled: false,
|
|
55
|
+
// This is just for the global effect color
|
|
56
|
+
effectFilterColor: params.getString("filter:effectFilterColor", preDefinedValues.effectFilterColor), // "#204a87",
|
|
57
|
+
isEffectsColorEnabled: params.hasParam("filter:effectFilterColor"),
|
|
58
|
+
// These are real filter values
|
|
59
|
+
opacity: params.getNumber("filter:opacity", preDefinedValues.opacity),
|
|
60
|
+
isOpacityEnabled: params.hasParam("filter:opacity") || preDefinedValues.isOpacityEnabled,
|
|
61
|
+
invert: params.getNumber("filter:invert", preDefinedValues.invert),
|
|
62
|
+
isInvertEnabled: params.hasParam("filter:invert") || preDefinedValues.isInvertEnabled,
|
|
63
|
+
sepia: params.getNumber("filter:sepia", preDefinedValues.sepia),
|
|
64
|
+
isSepiaEnabled: params.hasParam("filter:sepia") || preDefinedValues.isSepiaEnabled,
|
|
65
|
+
blur: params.getNumber("filter:blur", preDefinedValues.blur), // px
|
|
66
|
+
isBlurEnabled: params.hasParam("filter:blur") || preDefinedValues.isBlurEnabled,
|
|
67
|
+
brightness: params.getNumber("filter:brightness", preDefinedValues.brightness),
|
|
68
|
+
isBrightnessEnabled: params.hasParam("filter:brightness") || preDefinedValues.isBrightnessEnabled,
|
|
69
|
+
contrast: params.getNumber("filter:contrast", preDefinedValues.contrast),
|
|
70
|
+
isContrastEnabled: params.hasParam("filter:contrast") || preDefinedValues.isContrastEnabled,
|
|
71
|
+
dropShadow: params.getNumber("filter:dropShadow", preDefinedValues.dropShadow), // px
|
|
72
|
+
dropShadowColor: "#00ffff", // HOW TO DISABLE THIS PROPERLY?
|
|
73
|
+
isDropShadowEnabled: params.hasParam("filter:dropShadow") || preDefinedValues.isDropShadowEnabled,
|
|
74
|
+
grayscale: params.getNumber("filter:grayscale", preDefinedValues.grayscale),
|
|
75
|
+
isGrayscaleEnabled: params.hasParam("filter:grayscale") || preDefinedValues.isGrayscaleEnabled,
|
|
76
|
+
hueRotate: params.getNumber("filter:hueRotate", preDefinedValues.hueRotate), // deg
|
|
77
|
+
isHueRotateEnabled: params.hasParam("filter:hueRotate") || preDefinedValues.isHueRotateEnabled,
|
|
78
|
+
saturate: params.getNumber("filter:saturate", preDefinedValues.saturate),
|
|
79
|
+
isSaturateEnabled: params.hasParam("filter:saturate") || preDefinedValues.isSaturateEnabled
|
|
80
|
+
};
|
|
81
|
+
initialFilterValues.isBackdropFiltersEnabled =
|
|
82
|
+
initialFilterValues.isOpacityEnabled ||
|
|
83
|
+
initialFilterValues.isEffectsColorEnabled ||
|
|
84
|
+
initialFilterValues.isInvertEnabled ||
|
|
85
|
+
initialFilterValues.isSepiaEnabled ||
|
|
86
|
+
initialFilterValues.isBlurEnabled ||
|
|
87
|
+
initialFilterValues.isBrightnessEnabled ||
|
|
88
|
+
initialFilterValues.isContrastEnabled ||
|
|
89
|
+
initialFilterValues.isDropShadowEnabled ||
|
|
90
|
+
initialFilterValues.isGrayscaleEnabled ||
|
|
91
|
+
initialFilterValues.isHueRotateEnabled ||
|
|
92
|
+
initialFilterValues.isSaturateEnabled;
|
|
93
|
+
|
|
94
|
+
return initialFilterValues;
|
|
95
|
+
};
|
|
96
|
+
|
|
39
97
|
var _tryGetGUIInstance = function (props) {
|
|
40
98
|
if (
|
|
41
99
|
globalThis.hasOwnProperty("lil") &&
|
|
@@ -356,6 +414,16 @@ globalThis.utils.createGUI = (function () {
|
|
|
356
414
|
globalThis.utils.guiFolders["editor_settings.export"] = foldExport;
|
|
357
415
|
}
|
|
358
416
|
|
|
417
|
+
if (typeof CSSBackdropEffects !== "undefined") {
|
|
418
|
+
try {
|
|
419
|
+
var backdropEffects = new CSSBackdropEffects(pb, gui, _tryGetFilterGETParams());
|
|
420
|
+
// CSSBackdropEffects.DEFAULT_FILTER_VALUES);
|
|
421
|
+
globalThis.utils["cssBackdropEffects"] = backdropEffects;
|
|
422
|
+
} catch (e) {
|
|
423
|
+
console.warn("[creategui] Failed to create backdrop effect input for gui.", e);
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
|
|
359
427
|
globalThis.utils.guiFolders["editor_settings"] = fold0;
|
|
360
428
|
globalThis.utils.guiFolders["draw_settings"] = fold01;
|
|
361
429
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detectDarkMode.js","sourceRoot":"","sources":["../../ts/utils/detectDarkMode.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;
|
|
1
|
+
{"version":3,"file":"detectDarkMode.js","sourceRoot":"","sources":["../../ts/utils/detectDarkMode.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEI,IAAM,cAAc,GAAG,UAAC,GAA4B;IACzD,oBAAoB;IACpB,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QACpF,iFAAiF;QACjF,IAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACpD,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,aAAa,CAAC;QACvB,CAAC;IACH,CAAC;IACD,IAAI,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3F,sBAAsB;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,6BAA6B;IAC7B,IAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;IACpC,IAAM,SAAS,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;IAC1C,OAAO,CAAC,SAAS,CAAC;AACpB,CAAC,CAAC;AAjBW,QAAA,cAAc,kBAiBzB"}
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* @date 2021-12-13
|
|
6
6
|
* @modified 2022-01-10
|
|
7
7
|
* @modified 2024-06-25 Ported to typescript and moved to utils/dom (was located inside demos before).
|
|
8
|
-
* @
|
|
8
|
+
* @modified 2024-10-02 Added a transition time.
|
|
9
|
+
* @version 1.1.1
|
|
9
10
|
*/
|
|
10
11
|
import { GUI } from "../../interfaces/externals";
|
|
11
12
|
interface ITogglerConfig {
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
* @date 2021-12-13
|
|
7
7
|
* @modified 2022-01-10
|
|
8
8
|
* @modified 2024-06-25 Ported to typescript and moved to utils/dom (was located inside demos before).
|
|
9
|
-
* @
|
|
9
|
+
* @modified 2024-10-02 Added a transition time.
|
|
10
|
+
* @version 1.1.1
|
|
10
11
|
*/
|
|
11
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
13
|
exports.guiSizeToggler = void 0;
|
|
@@ -31,12 +32,13 @@ var applyGuiSize = function (gui, guiDoubleSize, cssProps) {
|
|
|
31
32
|
gui.domElement.style["transform"] = transform + "scale(1.0)";
|
|
32
33
|
}
|
|
33
34
|
};
|
|
34
|
-
var guiSizeToggler
|
|
35
|
+
var guiSizeToggler = function (gui, config, cssProps) {
|
|
36
|
+
gui.domElement.style["transition"] = "transform 0.5s";
|
|
35
37
|
return {
|
|
36
38
|
update: function () {
|
|
37
39
|
applyGuiSize(gui, Boolean(config.guiDoubleSize), cssProps);
|
|
38
40
|
}
|
|
39
41
|
};
|
|
40
42
|
};
|
|
41
|
-
exports.guiSizeToggler
|
|
43
|
+
exports.guiSizeToggler = guiSizeToggler;
|
|
42
44
|
//# sourceMappingURL=guiSizeToggler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guiSizeToggler.js","sourceRoot":"","sources":["../../../ts/utils/dom/guiSizeToggler.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"guiSizeToggler.js","sourceRoot":"","sources":["../../../ts/utils/dom/guiSizeToggler.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAQH;;;;GAIG;AACH,IAAM,YAAY,GAAG,UAAC,GAAQ,EAAE,aAAsB,EAAE,QAAgC;IACtF,IAAI,QAAQ,IAAI,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACzE,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC;IACvD,CAAC;IAED,IAAM,SAAS,GAAG,QAAQ,IAAI,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtG,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACpC,IAAI,aAAa,EAAE,CAAC;QAClB,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,SAAS,GAAG,YAAY,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,SAAS,GAAG,YAAY,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC;AAEK,IAAM,cAAc,GAAG,UAAC,GAAQ,EAAE,MAAsB,EAAE,QAAgC;IAC/F,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAC;IACtD,OAAO;QACL,MAAM,EAAE;YACN,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC7D,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,cAAc,kBAOzB"}
|
package/src/cjs/utils/gup.d.ts
CHANGED
package/src/cjs/utils/gup.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* Ported to typescript.
|
|
11
11
|
* @date 2021-05-21
|
|
12
12
|
* @modified 2024-03-10 Fixed some type for Typescript 5 compatibility.
|
|
13
|
+
* @modified 2024-08-26 Decoding URI components in GET params.
|
|
13
14
|
*/
|
|
14
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
16
|
exports.gup = void 0;
|
|
@@ -21,7 +22,8 @@ exports.gup = void 0;
|
|
|
21
22
|
var gup = function () {
|
|
22
23
|
var vars = {};
|
|
23
24
|
globalThis.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (_m, key, value) {
|
|
24
|
-
|
|
25
|
+
var keyName = key;
|
|
26
|
+
return (vars[decodeURIComponent(keyName)] = value);
|
|
25
27
|
});
|
|
26
28
|
return vars;
|
|
27
29
|
};
|
package/src/cjs/utils/gup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gup.js","sourceRoot":"","sources":["../../ts/utils/gup.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"gup.js","sourceRoot":"","sources":["../../ts/utils/gup.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,sCAAsC;AACtC,EAAE;AACF,6BAA6B;AAC7B,WAAW;AACX,sKAAsK;AAC/J,IAAM,GAAG,GAAG;IACjB,IAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE,UAAC,EAAU,EAAE,GAAW,EAAE,KAAa;QACjG,IAAM,OAAO,GAAW,GAAmB,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAPW,QAAA,GAAG,OAOd"}
|
|
@@ -84,8 +84,10 @@
|
|
|
84
84
|
* @modified 2023-02-10 Adding `enableZoom` and `enablePan` (both default true) to have the option to disable these functions.
|
|
85
85
|
* @modified 2023-09-29 Adding proper dicionary key and value types to the params of `PlotBoilerplate.utils.safeMergeByKeys` (was `object` before).
|
|
86
86
|
* @modified 2024-07-08 Adding `PlotBoilerplate.getGUI()` to retrieve the GUI instance.
|
|
87
|
+
* @modified 2024-08-25 Extending main class `PlotBoilerplate` optional param `isBackdropFiltersEnabled`.
|
|
88
|
+
* @modified 2024-12-02 Adding the `triggerRedraw` to the `removeAll` method.
|
|
87
89
|
*
|
|
88
|
-
* @version 1.
|
|
90
|
+
* @version 1.20.0
|
|
89
91
|
*
|
|
90
92
|
* @file PlotBoilerplate
|
|
91
93
|
* @fileoverview The main class.
|
|
@@ -454,11 +456,12 @@ export declare class PlotBoilerplate {
|
|
|
454
456
|
*
|
|
455
457
|
* @method removeAll
|
|
456
458
|
* @param {boolean=false} keepVertices
|
|
459
|
+
* @param {boolean=true} triggerRedraw - By default this method triggers the redraw routine; passing `false` will suppress redrawing.
|
|
457
460
|
* @instance
|
|
458
461
|
* @memberof PlotBoilerplate
|
|
459
462
|
* @return {void}
|
|
460
463
|
*/
|
|
461
|
-
removeAll(keepVertices?: boolean): void;
|
|
464
|
+
removeAll(keepVertices?: boolean, triggerRedraw?: boolean): void;
|
|
462
465
|
/**
|
|
463
466
|
* Find the vertex near the given position.
|
|
464
467
|
*
|
|
@@ -84,8 +84,10 @@
|
|
|
84
84
|
* @modified 2023-02-10 Adding `enableZoom` and `enablePan` (both default true) to have the option to disable these functions.
|
|
85
85
|
* @modified 2023-09-29 Adding proper dicionary key and value types to the params of `PlotBoilerplate.utils.safeMergeByKeys` (was `object` before).
|
|
86
86
|
* @modified 2024-07-08 Adding `PlotBoilerplate.getGUI()` to retrieve the GUI instance.
|
|
87
|
+
* @modified 2024-08-25 Extending main class `PlotBoilerplate` optional param `isBackdropFiltersEnabled`.
|
|
88
|
+
* @modified 2024-12-02 Adding the `triggerRedraw` to the `removeAll` method.
|
|
87
89
|
*
|
|
88
|
-
* @version 1.
|
|
90
|
+
* @version 1.20.0
|
|
89
91
|
*
|
|
90
92
|
* @file PlotBoilerplate
|
|
91
93
|
* @fileoverview The main class.
|
|
@@ -289,7 +291,8 @@ export class PlotBoilerplate {
|
|
|
289
291
|
enableZoom: f.bool(config, "enableZoom", true), // default=true
|
|
290
292
|
enablePan: f.bool(config, "enablePan", true), // default=true
|
|
291
293
|
// Experimental (and unfinished)
|
|
292
|
-
enableGL: f.bool(config, "enableGL", false)
|
|
294
|
+
enableGL: f.bool(config, "enableGL", false),
|
|
295
|
+
isBackdropFiltersEnabled: f.bool(config, "isBackdropFiltersEnabled", true)
|
|
293
296
|
}; // END confog
|
|
294
297
|
/**
|
|
295
298
|
* Configuration for drawing things.
|
|
@@ -843,16 +846,19 @@ export class PlotBoilerplate {
|
|
|
843
846
|
*
|
|
844
847
|
* @method removeAll
|
|
845
848
|
* @param {boolean=false} keepVertices
|
|
849
|
+
* @param {boolean=true} triggerRedraw - By default this method triggers the redraw routine; passing `false` will suppress redrawing.
|
|
846
850
|
* @instance
|
|
847
851
|
* @memberof PlotBoilerplate
|
|
848
852
|
* @return {void}
|
|
849
853
|
*/
|
|
850
|
-
removeAll(keepVertices) {
|
|
854
|
+
removeAll(keepVertices, triggerRedraw) {
|
|
851
855
|
this.drawables = [];
|
|
852
856
|
if (!Boolean(keepVertices)) {
|
|
853
857
|
this.vertices = [];
|
|
854
858
|
}
|
|
855
|
-
|
|
859
|
+
if (triggerRedraw || typeof triggerRedraw === "undefined") {
|
|
860
|
+
this.redraw();
|
|
861
|
+
}
|
|
856
862
|
}
|
|
857
863
|
/**
|
|
858
864
|
* Find the vertex near the given position.
|