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.
Files changed (136) hide show
  1. package/README.md +1 -1
  2. package/dist/index.esm.js +7055 -6751
  3. package/dist/index.esm.js.map +1 -1
  4. package/dist/index.esm.min.js +1 -1
  5. package/dist/index.esm.min.js.map +1 -1
  6. package/dist/plotboilerplate.browser.min.js +1 -1
  7. package/dist/plotboilerplate.browser.min.js.map +1 -1
  8. package/dist/plotboilerplate.js +342 -34
  9. package/dist/plotboilerplate.min.js +1 -1
  10. package/package.json +4 -2
  11. package/src/cjs/PlotBoilerplate.d.ts +5 -2
  12. package/src/cjs/PlotBoilerplate.js +10 -4
  13. package/src/cjs/PlotBoilerplate.js.map +1 -1
  14. package/src/cjs/Polygon.d.ts +107 -4
  15. package/src/cjs/Polygon.js +215 -9
  16. package/src/cjs/Polygon.js.map +1 -1
  17. package/src/cjs/Triangle.d.ts +23 -3
  18. package/src/cjs/Triangle.js +15 -2
  19. package/src/cjs/Triangle.js.map +1 -1
  20. package/src/cjs/VertTuple.d.ts +12 -7
  21. package/src/cjs/VertTuple.js +14 -9
  22. package/src/cjs/VertTuple.js.map +1 -1
  23. package/src/cjs/Vertex.d.ts +2 -1
  24. package/src/cjs/Vertex.js +5 -2
  25. package/src/cjs/Vertex.js.map +1 -1
  26. package/src/cjs/draw.d.ts +1 -0
  27. package/src/cjs/draw.js +2 -1
  28. package/src/cjs/draw.js.map +1 -1
  29. package/src/cjs/drawutilssvg.d.ts +6 -1
  30. package/src/cjs/drawutilssvg.js +34 -6
  31. package/src/cjs/drawutilssvg.js.map +1 -1
  32. package/src/cjs/geomutils.d.ts +32 -1
  33. package/src/cjs/geomutils.js +47 -1
  34. package/src/cjs/geomutils.js.map +1 -1
  35. package/src/cjs/interfaces/core.d.ts +4 -2
  36. package/src/cjs/interfaces/core.js +1 -0
  37. package/src/cjs/interfaces/core.js.map +1 -1
  38. package/src/cjs/interfaces/externals.d.ts +30 -0
  39. package/src/cjs/utils/InitializationObserver.js +7 -0
  40. package/src/cjs/utils/InitializationObserver.js.map +1 -1
  41. package/src/cjs/utils/Params.d.ts +5 -3
  42. package/src/cjs/utils/Params.js +7 -3
  43. package/src/cjs/utils/Params.js.map +1 -1
  44. package/src/cjs/utils/algorithms/PolygonInset.d.ts +184 -0
  45. package/src/cjs/utils/algorithms/PolygonInset.js +431 -0
  46. package/src/cjs/utils/algorithms/PolygonInset.js.map +1 -0
  47. package/src/cjs/utils/algorithms/clearDuplicateVertices.d.ts +5 -4
  48. package/src/cjs/utils/algorithms/clearDuplicateVertices.js +6 -3
  49. package/src/cjs/utils/algorithms/clearDuplicateVertices.js.map +1 -1
  50. package/src/cjs/utils/algorithms/findPolygonSelfIntersections.d.ts +2 -1
  51. package/src/cjs/utils/algorithms/findPolygonSelfIntersections.js +3 -3
  52. package/src/cjs/utils/algorithms/findPolygonSelfIntersections.js.map +1 -1
  53. package/src/cjs/utils/algorithms/splitPolygonToNonIntersecting.d.ts +3 -2
  54. package/src/cjs/utils/algorithms/splitPolygonToNonIntersecting.js +11 -9
  55. package/src/cjs/utils/algorithms/splitPolygonToNonIntersecting.js.map +1 -1
  56. package/src/cjs/utils/creategui.js +69 -1
  57. package/src/cjs/utils/detectDarkMode.js.map +1 -1
  58. package/src/cjs/utils/dom/guiSizeToggler.d.ts +2 -1
  59. package/src/cjs/utils/dom/guiSizeToggler.js +5 -3
  60. package/src/cjs/utils/dom/guiSizeToggler.js.map +1 -1
  61. package/src/cjs/utils/gup.d.ts +1 -0
  62. package/src/cjs/utils/gup.js +3 -1
  63. package/src/cjs/utils/gup.js.map +1 -1
  64. package/src/esm/PlotBoilerplate.d.ts +5 -2
  65. package/src/esm/PlotBoilerplate.js +10 -4
  66. package/src/esm/PlotBoilerplate.js.map +1 -1
  67. package/src/esm/Polygon.d.ts +107 -4
  68. package/src/esm/Polygon.js +214 -9
  69. package/src/esm/Polygon.js.map +1 -1
  70. package/src/esm/Triangle.d.ts +23 -3
  71. package/src/esm/Triangle.js +15 -2
  72. package/src/esm/Triangle.js.map +1 -1
  73. package/src/esm/VertTuple.d.ts +12 -7
  74. package/src/esm/VertTuple.js +14 -9
  75. package/src/esm/VertTuple.js.map +1 -1
  76. package/src/esm/Vertex.d.ts +2 -1
  77. package/src/esm/Vertex.js +5 -2
  78. package/src/esm/Vertex.js.map +1 -1
  79. package/src/esm/draw.d.ts +1 -0
  80. package/src/esm/draw.js +2 -1
  81. package/src/esm/draw.js.map +1 -1
  82. package/src/esm/drawutilssvg.d.ts +6 -1
  83. package/src/esm/drawutilssvg.js +34 -6
  84. package/src/esm/drawutilssvg.js.map +1 -1
  85. package/src/esm/geomutils.d.ts +32 -1
  86. package/src/esm/geomutils.js +47 -1
  87. package/src/esm/geomutils.js.map +1 -1
  88. package/src/esm/interfaces/core.d.ts +4 -2
  89. package/src/esm/interfaces/core.js +1 -0
  90. package/src/esm/interfaces/core.js.map +1 -1
  91. package/src/esm/interfaces/externals.d.ts +30 -0
  92. package/src/esm/utils/InitializationObserver.js +7 -0
  93. package/src/esm/utils/InitializationObserver.js.map +1 -1
  94. package/src/esm/utils/Params.d.ts +5 -3
  95. package/src/esm/utils/Params.js +7 -3
  96. package/src/esm/utils/Params.js.map +1 -1
  97. package/src/esm/utils/algorithms/PolygonInset.d.ts +184 -0
  98. package/src/esm/utils/algorithms/PolygonInset.js +424 -0
  99. package/src/esm/utils/algorithms/PolygonInset.js.map +1 -0
  100. package/src/esm/utils/algorithms/clearDuplicateVertices.d.ts +5 -4
  101. package/src/esm/utils/algorithms/clearDuplicateVertices.js +6 -3
  102. package/src/esm/utils/algorithms/clearDuplicateVertices.js.map +1 -1
  103. package/src/esm/utils/algorithms/findPolygonSelfIntersections.d.ts +2 -1
  104. package/src/esm/utils/algorithms/findPolygonSelfIntersections.js +3 -3
  105. package/src/esm/utils/algorithms/findPolygonSelfIntersections.js.map +1 -1
  106. package/src/esm/utils/algorithms/splitPolygonToNonIntersecting.d.ts +3 -2
  107. package/src/esm/utils/algorithms/splitPolygonToNonIntersecting.js +11 -9
  108. package/src/esm/utils/algorithms/splitPolygonToNonIntersecting.js.map +1 -1
  109. package/src/esm/utils/detectDarkMode.js.map +1 -1
  110. package/src/esm/utils/dom/guiSizeToggler.d.ts +2 -1
  111. package/src/esm/utils/dom/guiSizeToggler.js +4 -2
  112. package/src/esm/utils/dom/guiSizeToggler.js.map +1 -1
  113. package/src/esm/utils/gup.d.ts +1 -0
  114. package/src/esm/utils/gup.js +3 -1
  115. package/src/esm/utils/gup.js.map +1 -1
  116. package/src/index-gl.js +3 -1
  117. package/src/index.js +2 -1
  118. package/src/ts/PlotBoilerplate.ts +11 -4
  119. package/src/ts/Polygon.ts +230 -9
  120. package/src/ts/Triangle.ts +18 -4
  121. package/src/ts/VertTuple.ts +15 -10
  122. package/src/ts/Vertex.ts +5 -2
  123. package/src/ts/draw.ts +2 -1
  124. package/src/ts/drawutilssvg.ts +46 -6
  125. package/src/ts/geomutils.ts +49 -1
  126. package/src/ts/interfaces/core.ts +5 -2
  127. package/src/ts/interfaces/externals.ts +34 -0
  128. package/src/ts/utils/InitializationObserver.ts +7 -0
  129. package/src/ts/utils/Params.ts +8 -3
  130. package/src/ts/utils/algorithms/PolygonInset.ts +529 -0
  131. package/src/ts/utils/algorithms/clearDuplicateVertices.ts +11 -8
  132. package/src/ts/utils/algorithms/findPolygonSelfIntersections.ts +25 -26
  133. package/src/ts/utils/algorithms/splitPolygonToNonIntersecting.ts +92 -99
  134. package/src/ts/utils/detectDarkMode.ts +1 -3
  135. package/src/ts/utils/dom/guiSizeToggler.ts +4 -2
  136. 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
- * @version 1.0.0
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 {Vertex[]} vertices
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;;;;;;;;;GASG;;;AAIH,IAAM,GAAG,GAAW,QAAQ,CAAC;AAE7B;;;;;;;;GAQG;AACI,IAAM,sBAAsB,GAAG,UAAC,QAAkB,EAAE,OAAgB;IACzE,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,GAAG,GAAG,CAAC;IAChB,CAAC;IACD,IAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,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,UAAC,KAAa,EAAE,KAAa,EAAE,GAAW;IAC1D,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;AACrC,CAAC,CAAC;AAEF,IAAM,mBAAmB,GAAG,UAAC,QAAuB,EAAE,MAAc,EAAE,SAAiB,EAAE,OAAe;IACtG,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"}
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;;;;;;;GAOG;;;AAEH,mCAAkC;AAClC,uCAAsC;AAGtC;;;;;;;;GAQG;AACI,IAAM,4BAA4B,GAAG,UAAE,QAAwB;IAClE,IAAM,SAAS,GAAmB,EAAE,CAAC;IACrC,IAAM,KAAK,GAAU,IAAI,WAAI,CAAE,IAAI,eAAM,EAAE,EAAE,IAAI,eAAM,EAAE,CAAE,CAAC;IAC5D,IAAM,KAAK,GAAU,IAAI,WAAI,CAAE,IAAI,eAAM,EAAE,EAAE,IAAI,eAAM,EAAE,CAAE,CAAC;IAC5D,IAAM,CAAC,GAAY,QAAQ,CAAC,MAAM,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAG,CAAC;QACjC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAE,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAC;QAC3B,KAAK,CAAC,CAAC,CAAC,GAAG,CAAE,QAAQ,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAE,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAG,CAAC;YAC1B,wDAAwD;YACxD,aAAa;YACb,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAC,CAAC,IAAI,CAAC,CAAC,IAAE,CAAC,IAAE,CAAC,GAAC,CAAC,IAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAE,CAAC,IAAE,CAAC,GAAC,CAAC,IAAE,CAAC,CAAC;gBACzE,SAAS;YACN,KAAK,CAAC,CAAC,CAAC,GAAG,CAAE,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAC;YAC3B,KAAK,CAAC,CAAC,CAAC,GAAG,CAAE,QAAQ,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAE,CAAC;YAEjC,2DAA2D;YAC3D,4EAA4E;YAC5E,IAAM,iBAAiB,GAAsB,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAEvE,4EAA4E;YAC5E,IAAI,iBAAiB;mBACrB,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAG,CAAC;gBAC7E,SAAS,CAAC,IAAI,CAAE,iBAAiB,CAAE,CAAC;YACjC,CAAC;QACL,CAAC;IACE,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AA5BW,QAAA,4BAA4B,gCA4BvC"}
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
- * @version 1.0.1
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
- * @version 1.0.1
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 && lineA.hasPoint(intersectionPoint) && lineB.hasPoint(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":"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"}
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
- * @version 1.1.0
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;;;AAII,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"}
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
- * @version 1.1.0
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
- * @version 1.1.0
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 /* gst */ = function (gui, config, cssProps) {
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 /* gst */ = 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;;;;;;;;GAQG;;;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,CAAC,SAAS,GAAG,UAAC,GAAQ,EAAE,MAAsB,EAAE,QAAgC;IACzG,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;AANW,QAAA,cAAc,CAAC,SAAS,kBAMnC"}
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"}
@@ -9,5 +9,6 @@
9
9
  * Ported to typescript.
10
10
  * @date 2021-05-21
11
11
  * @modified 2024-03-10 Fixed some type for Typescript 5 compatibility.
12
+ * @modified 2024-08-26 Decoding URI components in GET params.
12
13
  */
13
14
  export declare const gup: () => Record<string, string>;
@@ -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
- return (vars[key] = value);
25
+ var keyName = key;
26
+ return (vars[decodeURIComponent(keyName)] = value);
25
27
  });
26
28
  return vars;
27
29
  };
@@ -1 +1 @@
1
- {"version":3,"file":"gup.js","sourceRoot":"","sources":["../../ts/utils/gup.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;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,OAAO,CAAC,IAAI,CAAC,GAAmB,CAAC,GAAG,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AANW,QAAA,GAAG,OAMd"}
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.18.0
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.18.0
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
- this.redraw();
859
+ if (triggerRedraw || typeof triggerRedraw === "undefined") {
860
+ this.redraw();
861
+ }
856
862
  }
857
863
  /**
858
864
  * Find the vertex near the given position.