plotboilerplate 1.23.2 → 1.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/README.md +6 -0
  2. package/dist/index.esm.js +8351 -6928
  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 +1590 -123
  9. package/dist/plotboilerplate.min.js +1 -1
  10. package/package.json +4 -2
  11. package/src/cjs/BezierPath.d.ts +41 -5
  12. package/src/cjs/BezierPath.js +52 -2
  13. package/src/cjs/BezierPath.js.map +1 -1
  14. package/src/cjs/Bounds.d.ts +67 -3
  15. package/src/cjs/Bounds.js +101 -3
  16. package/src/cjs/Bounds.js.map +1 -1
  17. package/src/cjs/Circle.d.ts +46 -4
  18. package/src/cjs/Circle.js +82 -3
  19. package/src/cjs/Circle.js.map +1 -1
  20. package/src/cjs/CircleSector.d.ts +51 -2
  21. package/src/cjs/CircleSector.js +112 -3
  22. package/src/cjs/CircleSector.js.map +1 -1
  23. package/src/cjs/CubicBezierCurve.d.ts +113 -7
  24. package/src/cjs/CubicBezierCurve.js +281 -33
  25. package/src/cjs/CubicBezierCurve.js.map +1 -1
  26. package/src/cjs/Line.d.ts +38 -3
  27. package/src/cjs/Line.js +64 -1
  28. package/src/cjs/Line.js.map +1 -1
  29. package/src/cjs/PlotBoilerplate.d.ts +4 -2
  30. package/src/cjs/PlotBoilerplate.js +9 -12
  31. package/src/cjs/PlotBoilerplate.js.map +1 -1
  32. package/src/cjs/Polygon.d.ts +153 -6
  33. package/src/cjs/Polygon.js +304 -23
  34. package/src/cjs/Polygon.js.map +1 -1
  35. package/src/cjs/Triangle.d.ts +73 -4
  36. package/src/cjs/Triangle.js +94 -2
  37. package/src/cjs/Triangle.js.map +1 -1
  38. package/src/cjs/VEllipse.d.ts +62 -3
  39. package/src/cjs/VEllipse.js +181 -17
  40. package/src/cjs/VEllipse.js.map +1 -1
  41. package/src/cjs/VEllipseSector.d.ts +86 -2
  42. package/src/cjs/VEllipseSector.js +148 -4
  43. package/src/cjs/VEllipseSector.js.map +1 -1
  44. package/src/cjs/Vector.d.ts +12 -2
  45. package/src/cjs/Vector.js +15 -2
  46. package/src/cjs/Vector.js.map +1 -1
  47. package/src/cjs/VertTuple.d.ts +39 -10
  48. package/src/cjs/VertTuple.js +49 -11
  49. package/src/cjs/VertTuple.js.map +1 -1
  50. package/src/cjs/Vertex.d.ts +18 -2
  51. package/src/cjs/Vertex.js +22 -2
  52. package/src/cjs/Vertex.js.map +1 -1
  53. package/src/cjs/draw.d.ts +1 -0
  54. package/src/cjs/draw.js +2 -1
  55. package/src/cjs/draw.js.map +1 -1
  56. package/src/cjs/drawutilssvg.js +24 -0
  57. package/src/cjs/drawutilssvg.js.map +1 -1
  58. package/src/cjs/geomutils.d.ts +32 -1
  59. package/src/cjs/geomutils.js +47 -1
  60. package/src/cjs/geomutils.js.map +1 -1
  61. package/src/cjs/interfaces/core.d.ts +39 -0
  62. package/src/cjs/interfaces/core.js +2 -0
  63. package/src/cjs/interfaces/core.js.map +1 -1
  64. package/src/cjs/utils/algorithms/PolygonInset.d.ts +184 -0
  65. package/src/cjs/utils/algorithms/PolygonInset.js +431 -0
  66. package/src/cjs/utils/algorithms/PolygonInset.js.map +1 -0
  67. package/src/cjs/utils/algorithms/clearDuplicateVertices.d.ts +5 -4
  68. package/src/cjs/utils/algorithms/clearDuplicateVertices.js +6 -3
  69. package/src/cjs/utils/algorithms/clearDuplicateVertices.js.map +1 -1
  70. package/src/cjs/utils/algorithms/convexPolygonIncircle.d.ts +2 -1
  71. package/src/cjs/utils/algorithms/convexPolygonIncircle.js +14 -6
  72. package/src/cjs/utils/algorithms/convexPolygonIncircle.js.map +1 -1
  73. package/src/cjs/utils/algorithms/findPolygonSelfIntersections.d.ts +2 -1
  74. package/src/cjs/utils/algorithms/findPolygonSelfIntersections.js +3 -3
  75. package/src/cjs/utils/algorithms/findPolygonSelfIntersections.js.map +1 -1
  76. package/src/cjs/utils/algorithms/splitPolygonToNonIntersecting.d.ts +3 -2
  77. package/src/cjs/utils/algorithms/splitPolygonToNonIntersecting.js +11 -9
  78. package/src/cjs/utils/algorithms/splitPolygonToNonIntersecting.js.map +1 -1
  79. package/src/cjs/utils/createRandomizedPolygon.d.ts +14 -0
  80. package/src/cjs/utils/createRandomizedPolygon.js +32 -0
  81. package/src/cjs/utils/createRandomizedPolygon.js.map +1 -0
  82. package/src/cjs/utils/detectDarkMode.js.map +1 -1
  83. package/src/cjs/utils/dom/guiSizeToggler.d.ts +2 -1
  84. package/src/cjs/utils/dom/guiSizeToggler.js +5 -3
  85. package/src/cjs/utils/dom/guiSizeToggler.js.map +1 -1
  86. package/src/cjs/utils/helpers/BezierPathInteractionHelper.d.ts +9 -7
  87. package/src/cjs/utils/helpers/BezierPathInteractionHelper.js +37 -23
  88. package/src/cjs/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
  89. package/src/cjs/utils/helpers/CircleSectorHelper.d.ts +10 -1
  90. package/src/cjs/utils/helpers/CircleSectorHelper.js +19 -20
  91. package/src/cjs/utils/helpers/CircleSectorHelper.js.map +1 -1
  92. package/src/cjs/utils/helpers/VEllipseHelper.d.ts +30 -0
  93. package/src/cjs/utils/helpers/VEllipseHelper.js +86 -0
  94. package/src/cjs/utils/helpers/VEllipseHelper.js.map +1 -0
  95. package/src/cjs/utils/helpers/VEllipseSectorHelper.d.ts +42 -3
  96. package/src/cjs/utils/helpers/VEllipseSectorHelper.js +107 -25
  97. package/src/cjs/utils/helpers/VEllipseSectorHelper.js.map +1 -1
  98. package/src/createDemoDrawables.js +3 -1
  99. package/src/esm/BezierPath.d.ts +41 -5
  100. package/src/esm/BezierPath.js +50 -2
  101. package/src/esm/BezierPath.js.map +1 -1
  102. package/src/esm/Bounds.d.ts +67 -3
  103. package/src/esm/Bounds.js +101 -3
  104. package/src/esm/Bounds.js.map +1 -1
  105. package/src/esm/Circle.d.ts +46 -4
  106. package/src/esm/Circle.js +79 -3
  107. package/src/esm/Circle.js.map +1 -1
  108. package/src/esm/CircleSector.d.ts +51 -2
  109. package/src/esm/CircleSector.js +108 -3
  110. package/src/esm/CircleSector.js.map +1 -1
  111. package/src/esm/CubicBezierCurve.d.ts +113 -7
  112. package/src/esm/CubicBezierCurve.js +277 -33
  113. package/src/esm/CubicBezierCurve.js.map +1 -1
  114. package/src/esm/Line.d.ts +38 -3
  115. package/src/esm/Line.js +62 -1
  116. package/src/esm/Line.js.map +1 -1
  117. package/src/esm/PlotBoilerplate.d.ts +4 -2
  118. package/src/esm/PlotBoilerplate.js +9 -12
  119. package/src/esm/PlotBoilerplate.js.map +1 -1
  120. package/src/esm/Polygon.d.ts +153 -6
  121. package/src/esm/Polygon.js +301 -23
  122. package/src/esm/Polygon.js.map +1 -1
  123. package/src/esm/Triangle.d.ts +73 -4
  124. package/src/esm/Triangle.js +91 -2
  125. package/src/esm/Triangle.js.map +1 -1
  126. package/src/esm/VEllipse.d.ts +62 -3
  127. package/src/esm/VEllipse.js +178 -17
  128. package/src/esm/VEllipse.js.map +1 -1
  129. package/src/esm/VEllipseSector.d.ts +86 -2
  130. package/src/esm/VEllipseSector.js +146 -7
  131. package/src/esm/VEllipseSector.js.map +1 -1
  132. package/src/esm/Vector.d.ts +12 -2
  133. package/src/esm/Vector.js +15 -2
  134. package/src/esm/Vector.js.map +1 -1
  135. package/src/esm/VertTuple.d.ts +39 -10
  136. package/src/esm/VertTuple.js +49 -11
  137. package/src/esm/VertTuple.js.map +1 -1
  138. package/src/esm/Vertex.d.ts +18 -2
  139. package/src/esm/Vertex.js +22 -2
  140. package/src/esm/Vertex.js.map +1 -1
  141. package/src/esm/draw.d.ts +1 -0
  142. package/src/esm/draw.js +2 -1
  143. package/src/esm/draw.js.map +1 -1
  144. package/src/esm/drawutilssvg.js +24 -0
  145. package/src/esm/drawutilssvg.js.map +1 -1
  146. package/src/esm/geomutils.d.ts +32 -1
  147. package/src/esm/geomutils.js +47 -1
  148. package/src/esm/geomutils.js.map +1 -1
  149. package/src/esm/interfaces/core.d.ts +39 -0
  150. package/src/esm/interfaces/core.js +2 -0
  151. package/src/esm/interfaces/core.js.map +1 -1
  152. package/src/esm/utils/algorithms/PolygonInset.d.ts +184 -0
  153. package/src/esm/utils/algorithms/PolygonInset.js +424 -0
  154. package/src/esm/utils/algorithms/PolygonInset.js.map +1 -0
  155. package/src/esm/utils/algorithms/clearDuplicateVertices.d.ts +5 -4
  156. package/src/esm/utils/algorithms/clearDuplicateVertices.js +6 -3
  157. package/src/esm/utils/algorithms/clearDuplicateVertices.js.map +1 -1
  158. package/src/esm/utils/algorithms/convexPolygonIncircle.d.ts +2 -1
  159. package/src/esm/utils/algorithms/convexPolygonIncircle.js +15 -7
  160. package/src/esm/utils/algorithms/convexPolygonIncircle.js.map +1 -1
  161. package/src/esm/utils/algorithms/createRandomizedPolygon.d.ts +14 -0
  162. package/src/esm/utils/algorithms/createRandomizedPolygon.js +28 -0
  163. package/src/esm/utils/algorithms/createRandomizedPolygon.js.map +1 -0
  164. package/src/esm/utils/algorithms/findPolygonSelfIntersections.d.ts +2 -1
  165. package/src/esm/utils/algorithms/findPolygonSelfIntersections.js +3 -3
  166. package/src/esm/utils/algorithms/findPolygonSelfIntersections.js.map +1 -1
  167. package/src/esm/utils/algorithms/splitPolygonToNonIntersecting.d.ts +3 -2
  168. package/src/esm/utils/algorithms/splitPolygonToNonIntersecting.js +11 -9
  169. package/src/esm/utils/algorithms/splitPolygonToNonIntersecting.js.map +1 -1
  170. package/src/esm/utils/createRandomizedPolygon.d.ts +14 -0
  171. package/src/esm/utils/createRandomizedPolygon.js +28 -0
  172. package/src/esm/utils/createRandomizedPolygon.js.map +1 -0
  173. package/src/esm/utils/detectDarkMode.js.map +1 -1
  174. package/src/esm/utils/dom/guiSizeToggler.d.ts +2 -1
  175. package/src/esm/utils/dom/guiSizeToggler.js +4 -2
  176. package/src/esm/utils/dom/guiSizeToggler.js.map +1 -1
  177. package/src/esm/utils/helpers/BezierPathInteractionHelper.d.ts +9 -7
  178. package/src/esm/utils/helpers/BezierPathInteractionHelper.js +35 -22
  179. package/src/esm/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
  180. package/src/esm/utils/helpers/CircleSectorHelper.d.ts +10 -1
  181. package/src/esm/utils/helpers/CircleSectorHelper.js +19 -20
  182. package/src/esm/utils/helpers/CircleSectorHelper.js.map +1 -1
  183. package/src/esm/utils/helpers/VEllipseHelper.d.ts +30 -0
  184. package/src/esm/utils/helpers/VEllipseHelper.js +81 -0
  185. package/src/esm/utils/helpers/VEllipseHelper.js.map +1 -0
  186. package/src/esm/utils/helpers/VEllipseSectorHelper.d.ts +42 -3
  187. package/src/esm/utils/helpers/VEllipseSectorHelper.js +106 -24
  188. package/src/esm/utils/helpers/VEllipseSectorHelper.js.map +1 -1
  189. package/src/ts/BezierPath.ts +58 -5
  190. package/src/ts/Bounds.ts +110 -6
  191. package/src/ts/Circle.ts +87 -5
  192. package/src/ts/CircleSector.ts +115 -5
  193. package/src/ts/CubicBezierCurve.ts +332 -42
  194. package/src/ts/Line.ts +66 -3
  195. package/src/ts/PlotBoilerplate.ts +10 -12
  196. package/src/ts/Polygon.ts +329 -27
  197. package/src/ts/Triangle.ts +101 -5
  198. package/src/ts/VEllipse.ts +214 -19
  199. package/src/ts/VEllipseSector.ts +154 -8
  200. package/src/ts/Vector.ts +16 -2
  201. package/src/ts/VertTuple.ts +53 -13
  202. package/src/ts/Vertex.ts +24 -3
  203. package/src/ts/draw.ts +2 -1
  204. package/src/ts/drawutilssvg.ts +29 -0
  205. package/src/ts/geomutils.ts +49 -1
  206. package/src/ts/interfaces/core.ts +42 -0
  207. package/src/ts/utils/algorithms/PolygonInset.ts +529 -0
  208. package/src/ts/utils/algorithms/clearDuplicateVertices.ts +11 -8
  209. package/src/ts/utils/algorithms/convexPolygonIncircle.ts +82 -78
  210. package/src/ts/utils/algorithms/findPolygonSelfIntersections.ts +25 -26
  211. package/src/ts/utils/algorithms/splitPolygonToNonIntersecting.ts +92 -99
  212. package/src/ts/utils/createRandomizedPolygon.ts +31 -0
  213. package/src/ts/utils/detectDarkMode.ts +1 -3
  214. package/src/ts/utils/dom/guiSizeToggler.ts +4 -2
  215. package/src/ts/utils/helpers/BezierPathInteractionHelper.ts +45 -29
  216. package/src/ts/utils/helpers/CircleSectorHelper.ts +115 -125
  217. package/src/ts/utils/helpers/VEllipseHelper.ts +113 -0
  218. package/src/ts/utils/helpers/VEllipseSectorHelper.ts +142 -25
@@ -1 +1 @@
1
- {"version":3,"file":"drawutilssvg.js","sourceRoot":"","sources":["../ts/drawutilssvg.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drawutilssvg.js","sourceRoot":"","sources":["../ts/drawutilssvg.ts"],"names":[],"mappings":"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"}
@@ -2,16 +2,47 @@
2
2
  * @author Ikaros Kappler
3
3
  * @date 2019-02-03
4
4
  * @modified 2021-03-01 Added `wrapMax` function.
5
- * @version 1.1.0
5
+ * @modified 2024-11-15 Adding helper function `geomutils.mapAngleTo2PI(number)` for mapping any value into the interval [0,2*PI).
6
+ * @modified 2024-11-22 Adding helper function `geomutils.dotProduct(number)` for calculating the dot product of two vertices (as vectors).
7
+ *
8
+ * @version 1.2.0
6
9
  **/
7
10
  import { Line } from "./Line";
8
11
  import { Vertex } from "./Vertex";
12
+ import { XYCoords } from "./interfaces";
9
13
  /**
10
14
  * A collection of usefull geometry utilities.
11
15
  *
12
16
  * @global
13
17
  **/
14
18
  export declare const geomutils: {
19
+ /**
20
+ * Map any angle (any numeric value) to [0, Math.PI).
21
+ *
22
+ * @param {number} angle - The numeric value to map.
23
+ * @return {number} The mapped angle inside [0,PI*2].
24
+ **/
25
+ mapAngleTo2PI(angle: number): number;
26
+ /**
27
+ * Calculate the euclidean distance between two points given by four coordinates (two coordinates each).
28
+ *
29
+ * @param {number} x1
30
+ * @param {number} y1
31
+ * @param {number} x2
32
+ * @param {number} y2
33
+ * @returns {number}
34
+ */
35
+ dist4(x1: number, y1: number, x2: number, y2: number): number;
36
+ /**
37
+ * Map any angle (any numeric value) to [0, Math.PI).
38
+ *
39
+ * A × B := (A.x * B.x) + (A.y * B.y)
40
+ *
41
+ * @param {XYCoords} vertA - The first vertex.
42
+ * @param {XYCoords} vertB - The second vertex.
43
+ * @return {number} The dot product of the two vertices.
44
+ **/
45
+ dotProduct(vertA: XYCoords, vertB: XYCoords): number;
15
46
  /**
16
47
  * Compute the n-section of the angle – described as a triangle (A,B,C) – in point A.
17
48
  *
@@ -2,7 +2,10 @@
2
2
  * @author Ikaros Kappler
3
3
  * @date 2019-02-03
4
4
  * @modified 2021-03-01 Added `wrapMax` function.
5
- * @version 1.1.0
5
+ * @modified 2024-11-15 Adding helper function `geomutils.mapAngleTo2PI(number)` for mapping any value into the interval [0,2*PI).
6
+ * @modified 2024-11-22 Adding helper function `geomutils.dotProduct(number)` for calculating the dot product of two vertices (as vectors).
7
+ *
8
+ * @version 1.2.0
6
9
  **/
7
10
  import { Line } from "./Line";
8
11
  import { Triangle } from "./Triangle";
@@ -12,6 +15,49 @@ import { Triangle } from "./Triangle";
12
15
  * @global
13
16
  **/
14
17
  export const geomutils = {
18
+ /**
19
+ * Map any angle (any numeric value) to [0, Math.PI).
20
+ *
21
+ * @param {number} angle - The numeric value to map.
22
+ * @return {number} The mapped angle inside [0,PI*2].
23
+ **/
24
+ mapAngleTo2PI(angle) {
25
+ // Source: https://forums.codeguru.com/showthread.php?384172-get-angle-into-range-0-2*pi
26
+ const new_angle = Math.asin(Math.sin(angle));
27
+ if (Math.cos(angle) < 0) {
28
+ return Math.PI - new_angle;
29
+ }
30
+ else if (new_angle < 0) {
31
+ return new_angle + 2 * Math.PI;
32
+ }
33
+ else {
34
+ return new_angle;
35
+ }
36
+ },
37
+ /**
38
+ * Calculate the euclidean distance between two points given by four coordinates (two coordinates each).
39
+ *
40
+ * @param {number} x1
41
+ * @param {number} y1
42
+ * @param {number} x2
43
+ * @param {number} y2
44
+ * @returns {number}
45
+ */
46
+ dist4(x1, y1, x2, y2) {
47
+ return Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y1 - y2, 2));
48
+ },
49
+ /**
50
+ * Map any angle (any numeric value) to [0, Math.PI).
51
+ *
52
+ * A × B := (A.x * B.x) + (A.y * B.y)
53
+ *
54
+ * @param {XYCoords} vertA - The first vertex.
55
+ * @param {XYCoords} vertB - The second vertex.
56
+ * @return {number} The dot product of the two vertices.
57
+ **/
58
+ dotProduct(vertA, vertB) {
59
+ return vertA.x * vertB.x + vertA.y * vertB.y;
60
+ },
15
61
  /**
16
62
  * Compute the n-section of the angle – described as a triangle (A,B,C) – in point A.
17
63
  *
@@ -1 +1 @@
1
- {"version":3,"file":"geomutils.js","sourceRoot":"","sources":["../ts/geomutils.ts"],"names":[],"mappings":"AAAA;;;;;IAKI;AAEJ,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC;;;;IAII;AACJ,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,CAAS;QACtD,MAAM,QAAQ,GAAa,IAAI,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,MAAM,GAAS,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACtC,MAAM,MAAM,GAAS,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACtC,8DAA8D;QAC9D,IAAI,WAAW,GAAW,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/C,iEAAiE;QACjE,2DAA2D;QAC3D,MAAM,SAAS,GAAY,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAEtD,yDAAyD;QACzD,IAAI,WAAW,GAAG,CAAC;YAAE,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC;QAC7D,IAAI,CAAC,SAAS;YAAE,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAE/D,+DAA+D;QAC/D,MAAM,UAAU,GAAW,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,MAAM,WAAW,GAAW,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAEzD,IAAI,MAAM,GAAgB,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,qCAAqC;YACrC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAS,CAAC,CAAC;QACtG,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,CAAS,EAAE,GAAW;QAC5B,WAAW;QACX,6FAA6F;QAC7F,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IACjC,CAAC;IAED;;;;;;;;OAQG;IACH,oBAAoB;IACpB,UAAU,CAAC,CAAS,EAAE,GAAW,EAAE,GAAW;QAC5C,OAAO,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;IACrD,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"geomutils.js","sourceRoot":"","sources":["../ts/geomutils.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,8 @@
20
20
  * @modified 2023-02-10 All non-function attributes of the `Config` interface are now mandatory.
21
21
  * @modified 2023-09-29 Added the `randomPoint(...)` function declaration to the IBounds interface.
22
22
  * @modified 2024-08-25 Added the `CSSBackdropFilterParams` params to the global params (all optional).
23
+ * @modified 2025-03-29 Added interface `Intersectable`.
24
+ * @modified 2025-04-16 Added interface `IBounded`.
23
25
  **/
24
26
  import { Vertex } from "../Vertex";
25
27
  import { Vector } from "../Vector";
@@ -36,6 +38,7 @@ import { PlotBoilerplate } from "../PlotBoilerplate";
36
38
  import { DrawLib } from "./DrawLib";
37
39
  import { PBText } from "../PBText";
38
40
  import { CSSBackdropFilterParams } from "./externals";
41
+ import { VertTuple } from "../VertTuple";
39
42
  /**
40
43
  * @classdesc Coordinates (x,y) on the plane.
41
44
  *
@@ -217,3 +220,39 @@ export interface IDraggable {
217
220
  isVertex(): boolean;
218
221
  setVIndex(vindex: number): IDraggable;
219
222
  }
223
+ /**
224
+ * Shapes should implement this interface if they support intersection calculation.
225
+ */
226
+ export interface Intersectable {
227
+ /**
228
+ * Get all line intersections with this polygon.
229
+ *
230
+ * This method returns all intersections (as vertices) with this shape. The returned array of vertices is in no specific order.
231
+ *
232
+ * See demo `47-closest-vector-projection-on-polygon` for how it works.
233
+ *
234
+ * @param {VertTuple} line - The line to find intersections with.
235
+ * @param {boolean} inVectorBoundsOnly - (default=false) If set to true only intersecion points on the passed vector are returned (located strictly between start and end vertex).
236
+ * @returns {Array<Vertex>} - An array of all intersections within this shape's bounds.
237
+ */
238
+ lineIntersections(line: VertTuple<any>, inVectorBoundsOnly?: boolean): Array<Vertex>;
239
+ /**
240
+ * Get all line intersections of this polygon and their tangents along the shape.
241
+ *
242
+ * This method returns all intersection tangents (as vectors) with this shape. The returned array of vectors is in no specific order.
243
+ *
244
+ * @param {VertTuple} line - The line to find intersections with.
245
+ * @param {boolean} inVectorBoundsOnly - (default=false) If set to true only intersecion points on the passed vector are returned (located strictly between start and end vertex).
246
+ * @returns {Array<Vector>} - An array of all intersection tangents within this shape's bounds.
247
+ */
248
+ lineIntersectionTangents(line: VertTuple<any>, inVectorBoundsOnly?: boolean): Array<Vector>;
249
+ }
250
+ export interface IBounded {
251
+ /**
252
+ * Get the bounding box (bounds) of this shape.
253
+ *
254
+ * @method getBounds
255
+ * @return {Bounds} The rectangular bounds of this shape.
256
+ **/
257
+ getBounds(): IBounds;
258
+ }
@@ -20,6 +20,8 @@
20
20
  * @modified 2023-02-10 All non-function attributes of the `Config` interface are now mandatory.
21
21
  * @modified 2023-09-29 Added the `randomPoint(...)` function declaration to the IBounds interface.
22
22
  * @modified 2024-08-25 Added the `CSSBackdropFilterParams` params to the global params (all optional).
23
+ * @modified 2025-03-29 Added interface `Intersectable`.
24
+ * @modified 2025-04-16 Added interface `IBounded`.
23
25
  **/
24
26
  export {};
25
27
  //# sourceMappingURL=core.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../ts/interfaces/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;IAsBI"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../ts/interfaces/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;IAwBI"}
@@ -0,0 +1,184 @@
1
+ /**
2
+ * Calculate the inset of any non-self-overlapping polygon.
3
+ *
4
+ * The polygon may be
5
+ * - convex or non-convex
6
+ * - self-intersecting
7
+ *
8
+ * The algorithms will
9
+ * - first construct a general offset polygon which may be corrupt due to ouf-of-bounds or in illegal-area problems.
10
+ * - then dissect the possibly self-intersecting inset polygon into separate simple polygons.
11
+ * - then detect for each if it's out of bounds or in some illegal area.
12
+ * - keeping only the valid ones.
13
+ *
14
+ * @required sutherlandHodgman
15
+ * @required splitPolygonToNonIntersecting
16
+ *
17
+ * @author Ikaros Kappler
18
+ * @date 2024-11-04 Ported the script to a class.
19
+ * @modified 2024-12-02 Ported to Typescript.
20
+ */
21
+ import { Line } from "../../Line";
22
+ import { Polygon } from "../../Polygon";
23
+ import { Vertex } from "../../Vertex";
24
+ export interface IPolygonInsetOptions {
25
+ innerPolygonOffset: number;
26
+ maxPolygonSplitDepth?: number;
27
+ intersectionEpsilon?: number;
28
+ removeEars?: boolean;
29
+ }
30
+ export declare class PolygonInset {
31
+ /**
32
+ * The polygon to work with.
33
+ */
34
+ readonly polygon: Polygon;
35
+ /**
36
+ * The input polygon, but without ear edges.
37
+ */
38
+ optimizedPolygon: Polygon;
39
+ /**
40
+ * The original polygon as a sequence of line objects. This is easier to use than a list of points.
41
+ */
42
+ originalPolygonLines: Array<Line>;
43
+ /**
44
+ * The simple inset lines, directly generated by offsetting the original polygon lines by the given amount.
45
+ */
46
+ insetLines: Array<Line>;
47
+ /**
48
+ * The cropped inset lines that makes up the first direct iteration of the inset polygon.
49
+ * This one will probably be self-intersecting.
50
+ */
51
+ insetPolygonLines: Array<Line>;
52
+ /**
53
+ * The inset polygon lines resembling an actual polygon instance (not just a sequence of lines).
54
+ */
55
+ insetPolygon: Polygon;
56
+ /**
57
+ * Each polygon line and it's offsetted inset-line resemble a rectangular polygon.
58
+ * Array<Polygon> with 4 vertices each
59
+ **/
60
+ insetRectanglePolygons: Array<Polygon>;
61
+ /**
62
+ * The inset polygon split up into simple non-self-intersecting polygons.
63
+ * Represented as a list of vertex-lists. Each sub-list represents a single polygon.
64
+ */
65
+ splitPolygons: Array<Array<Vertex>>;
66
+ /**
67
+ * The final result: all valid split-polygons. These are making up the actual polygon inset.
68
+ * Note: list may be empty. Depending on the offset amount there is not a guaranteed offset polygon existing.
69
+ */
70
+ filteredSplitPolygons: Array<Array<Vertex>>;
71
+ /**
72
+ * Constructs a new PolygonInset instance with the underlying given polygon to work with.
73
+ *
74
+ * Please note that the algorithm will reverse the vertex order if the given polygon
75
+ * is not clockwise.
76
+ *
77
+ * @param {Polygon} polygon - The polygon to calculate the offset for.
78
+ */
79
+ constructor(polygon: Polygon);
80
+ /**
81
+ * This is the main method.
82
+ *
83
+ * Call this with the required option params to compute your desired offset polygon(s).
84
+ *
85
+ * @param {number} options.innerPolygonOffset - The offset to use. Should be a positive number. Correct result for negative numbers are not guaranteed.
86
+ * @param {number?} options.maxPolygonSplitDepth - (default is the number of polygon.vertices) The maximum amount of recursive stepts to simplify the complex first iteration of the offset polygon.
87
+ * @param {number?} options.intersectionEpsilon - (default is 1.0) The epsilon to use for detecting overlapping polygons. This indicates a tolerance value, because directly adjecent polygons may have a little arithmetic intersection area.
88
+ * @returns {Array<Array<Vertex>>} A list of vertex-lists, each one representing a simple polygon from the offset-polygons.
89
+ */
90
+ computeOutputPolygons(options: IPolygonInsetOptions): Array<Array<Vertex>>;
91
+ /**
92
+ * This method transforms each polygon line into a new line
93
+ * by moving it to the inside direction of the polygon (by the given `insetAmount`).
94
+ *
95
+ * @param {Array<Line>} polygonLines
96
+ * @param {number} insetAmount
97
+ * @return {Array<Line>} The transformed lines. The result array has the same length and order as the input array.
98
+ */
99
+ private _collectInsetLines;
100
+ /**
101
+ * For a sequence of inset polygon lines get the inset polygon by detecting
102
+ * useful intersections (by cropping or extending them).
103
+ *
104
+ * The returned lines resemble a new polygon.
105
+ *
106
+ * Please note that the returned polygon can be self-intersecting!
107
+ *
108
+ * @param {Array<Line>} insetLines
109
+ * @returns {Array<Line>} The cropped or exented inset polygon lines.
110
+ */
111
+ private _collectInsetPolygonLines;
112
+ /**
113
+ * Converts two lists (same length) of original polygon lines and inset lines (interpreted as
114
+ * pairs) to a list of rectangular polyons.
115
+ *
116
+ * @static
117
+ * @param {Array<Line>} originalPolygonLines
118
+ * @param {Array<Line>} insetLines
119
+ * @returns {Array<Polygon>} A list of rectangular polygons; each returned polyon has exactly four vertices.
120
+ */
121
+ private _collectRectangularPolygonInsets;
122
+ /**
123
+ * Converts a sequence of (hopefully adjacent) lines to a polygon by using all second line vertices `b`.
124
+ *
125
+ * @static
126
+ * @param insetPolygonLines
127
+ * @returns
128
+ */
129
+ private static convertToBasicInsetPolygon;
130
+ /**
131
+ * Optimize the inset polygon by removing critical `ear` edges.
132
+ * Such an is identified by: the edge itself is completely located inside its neighbours inset rectangle.
133
+ *
134
+ * In this process multiple edges from the ear might be dropped and two adjacent edges get a new
135
+ * common intersection point.
136
+ *
137
+ * Note: this method is not working as expected in all cases and quite experimental.
138
+ *
139
+ * @param insetPolygon
140
+ * @param insetRectangles
141
+ */
142
+ private static _optimizeInsetPolygon;
143
+ private static _locateExcessiveEarEdge;
144
+ private static _rectangleFullyContainsLine;
145
+ /**
146
+ * Filter split polygons: only keep those whose vertices are all contained inside the original polygon.
147
+ * Reason: scaling too much will result in excessive translation beyond the opposite bounds of the polygon (like more than 200% of possible insetting).
148
+ *
149
+ * @param {Array<Array<Vertex>>} splitPolygonsVertices
150
+ * @param {Polygon} originalPolygon
151
+ * @return {Array<Array<Vertex>>} The filtered polygon list.
152
+ */
153
+ private static _filterInnerSplitPolygonsByOriginalBounds;
154
+ /**
155
+ * Filter split polygons: only keep those that do not (signifiantly) interset with any rectangles.
156
+ *
157
+ * @static
158
+ * @param {Array<Array<Vertex>>} splitPolygonsVertices
159
+ * @param {Array<Polygon>} insetRectanglePolygons
160
+ * @param {number?=1.0} intersectionEpsilon - (optional, default is 1.0) A epsislon to define a tolerance for checking if two polygons intersect.
161
+ */
162
+ private static _filterInnerSplitPolygonsByCoverage;
163
+ /**
164
+ * This private method will reverse each polygon's vertex order that's not clockwise.
165
+ *
166
+ * @param {Array<Vertex[]>} polygons
167
+ */
168
+ private static _assertAllPolygonsAreClockwise;
169
+ /**
170
+ * This private method will revert the vertex order if the polygon is not clockwise.
171
+ *
172
+ * @param {Vertex[]} polygonVerts
173
+ */
174
+ private static _assertPolygonIsClockwise;
175
+ /**
176
+ * For simplification I'm using a callback generator function here.
177
+ *
178
+ * @param splitPolyVerts
179
+ * @param eps
180
+ * @param _splitPolyIndex
181
+ * @returns {Function} The callback for an `Array.some` parameter.
182
+ */
183
+ private static _hasIntersectionCallback;
184
+ }