plotboilerplate 1.27.0 → 1.28.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 (1107) hide show
  1. package/dist/index.esm.js +11286 -166
  2. package/dist/index.esm.js.map +1 -1
  3. package/dist/index.esm.min.js +1 -1
  4. package/dist/index.esm.min.js.map +1 -1
  5. package/dist/plotboilerplate.browser.min.js +1 -1
  6. package/dist/plotboilerplate.browser.min.js.map +1 -1
  7. package/dist/plotboilerplate.js +96 -17
  8. package/dist/plotboilerplate.min.js +1 -1
  9. package/package.json +2 -1
  10. package/src/_cjs/BezierPath.d.ts +610 -0
  11. package/src/_cjs/BezierPath.js +1127 -0
  12. package/src/_cjs/BezierPath.js.map +1 -0
  13. package/src/_cjs/Bounds.d.ts +252 -0
  14. package/src/_cjs/Bounds.js +320 -0
  15. package/src/_cjs/Bounds.js.map +1 -0
  16. package/src/_cjs/Circle.d.ts +214 -0
  17. package/src/_cjs/Circle.js +339 -0
  18. package/src/_cjs/Circle.js.map +1 -0
  19. package/src/_cjs/CircleSector.d.ts +211 -0
  20. package/src/_cjs/CircleSector.js +364 -0
  21. package/src/_cjs/CircleSector.js.map +1 -0
  22. package/src/_cjs/CubicBezierCurve.d.ts +656 -0
  23. package/src/_cjs/CubicBezierCurve.js +1062 -0
  24. package/src/_cjs/CubicBezierCurve.js.map +1 -0
  25. package/src/_cjs/Grid.d.ts +83 -0
  26. package/src/_cjs/Grid.js +90 -0
  27. package/src/_cjs/Grid.js.map +1 -0
  28. package/src/_cjs/KeyHandler.d.ts +177 -0
  29. package/src/_cjs/KeyHandler.js +435 -0
  30. package/src/_cjs/KeyHandler.js.map +1 -0
  31. package/src/_cjs/Line.d.ts +134 -0
  32. package/src/_cjs/Line.js +220 -0
  33. package/src/_cjs/Line.js.map +1 -0
  34. package/src/_cjs/MouseHandler.d.ts +283 -0
  35. package/src/_cjs/MouseHandler.js +423 -0
  36. package/src/_cjs/MouseHandler.js.map +1 -0
  37. package/src/_cjs/PBImage.d.ts +81 -0
  38. package/src/_cjs/PBImage.js +61 -0
  39. package/src/_cjs/PBImage.js.map +1 -0
  40. package/src/_cjs/PBText.d.ts +118 -0
  41. package/src/_cjs/PBText.js +63 -0
  42. package/src/_cjs/PBText.js.map +1 -0
  43. package/src/_cjs/PlotBoilerplate.d.ts +899 -0
  44. package/src/_cjs/PlotBoilerplate.js +2348 -0
  45. package/src/_cjs/PlotBoilerplate.js.map +1 -0
  46. package/src/_cjs/Polygon.d.ts +520 -0
  47. package/src/_cjs/Polygon.js +933 -0
  48. package/src/_cjs/Polygon.js.map +1 -0
  49. package/src/_cjs/SVGBuilder.d.ts +47 -0
  50. package/src/_cjs/SVGBuilder.js +100 -0
  51. package/src/_cjs/SVGBuilder.js.map +1 -0
  52. package/src/_cjs/Triangle.d.ts +392 -0
  53. package/src/_cjs/Triangle.js +497 -0
  54. package/src/_cjs/Triangle.js.map +1 -0
  55. package/src/_cjs/UIDGenerator.d.ts +12 -0
  56. package/src/_cjs/UIDGenerator.js +21 -0
  57. package/src/_cjs/UIDGenerator.js.map +1 -0
  58. package/src/_cjs/VEllipse.d.ts +319 -0
  59. package/src/_cjs/VEllipse.js +578 -0
  60. package/src/_cjs/VEllipse.js.map +1 -0
  61. package/src/_cjs/VEllipseSector.d.ts +230 -0
  62. package/src/_cjs/VEllipseSector.js +428 -0
  63. package/src/_cjs/VEllipseSector.js.map +1 -0
  64. package/src/_cjs/Vector.d.ts +126 -0
  65. package/src/_cjs/Vector.js +199 -0
  66. package/src/_cjs/Vector.js.map +1 -0
  67. package/src/_cjs/VertTuple.d.ts +284 -0
  68. package/src/_cjs/VertTuple.js +348 -0
  69. package/src/_cjs/VertTuple.js.map +1 -0
  70. package/src/_cjs/Vertex.d.ts +498 -0
  71. package/src/_cjs/Vertex.js +703 -0
  72. package/src/_cjs/Vertex.js.map +1 -0
  73. package/src/_cjs/VertexAttr.d.ts +72 -0
  74. package/src/_cjs/VertexAttr.js +59 -0
  75. package/src/_cjs/VertexAttr.js.map +1 -0
  76. package/src/_cjs/VertexListeners.d.ts +208 -0
  77. package/src/_cjs/VertexListeners.js +267 -0
  78. package/src/_cjs/VertexListeners.js.map +1 -0
  79. package/src/_cjs/draw.d.ts +657 -0
  80. package/src/_cjs/draw.js +1164 -0
  81. package/src/_cjs/draw.js.map +1 -0
  82. package/src/_cjs/drawgl.d.ts +544 -0
  83. package/src/_cjs/drawgl.js +794 -0
  84. package/src/_cjs/drawgl.js.map +1 -0
  85. package/src/_cjs/drawutilssvg.d.ts +954 -0
  86. package/src/_cjs/drawutilssvg.js +1713 -0
  87. package/src/_cjs/drawutilssvg.js.map +1 -0
  88. package/src/_cjs/entry-glsupport.js +28 -0
  89. package/src/_cjs/entry.js +29 -0
  90. package/src/_cjs/geomutils.d.ts +77 -0
  91. package/src/_cjs/geomutils.js +126 -0
  92. package/src/_cjs/geomutils.js.map +1 -0
  93. package/src/_cjs/index.d.ts +102 -0
  94. package/src/_cjs/index.js +128 -0
  95. package/src/_cjs/index.js.map +1 -0
  96. package/src/_cjs/interfaces/DrawLib.d.ts +582 -0
  97. package/src/_cjs/interfaces/DrawLib.js +32 -0
  98. package/src/_cjs/interfaces/DrawLib.js.map +1 -0
  99. package/src/_cjs/interfaces/additionals.d.ts +95 -0
  100. package/src/_cjs/interfaces/additionals.js +3 -0
  101. package/src/_cjs/interfaces/additionals.js.map +1 -0
  102. package/src/_cjs/interfaces/core.d.ts +286 -0
  103. package/src/_cjs/interfaces/core.js +30 -0
  104. package/src/_cjs/interfaces/core.js.map +1 -0
  105. package/src/_cjs/interfaces/externals.d.ts +56 -0
  106. package/src/_cjs/interfaces/externals.js +8 -0
  107. package/src/_cjs/interfaces/externals.js.map +1 -0
  108. package/src/_cjs/interfaces/index.d.ts +4 -0
  109. package/src/_cjs/interfaces/index.js +21 -0
  110. package/src/_cjs/interfaces/index.js.map +1 -0
  111. package/src/_cjs/module.d.ts +26 -0
  112. package/src/_cjs/module.js +60 -0
  113. package/src/_cjs/module.js.map +1 -0
  114. package/src/_cjs/utils/InitializationObserver.d.ts +18 -0
  115. package/src/_cjs/utils/InitializationObserver.js +63 -0
  116. package/src/_cjs/utils/InitializationObserver.js.map +1 -0
  117. package/src/_cjs/utils/LissajousFigure.d.ts +34 -0
  118. package/src/_cjs/utils/LissajousFigure.js +100 -0
  119. package/src/_cjs/utils/LissajousFigure.js.map +1 -0
  120. package/src/_cjs/utils/NGons.d.ts +13 -0
  121. package/src/_cjs/utils/NGons.js +36 -0
  122. package/src/_cjs/utils/NGons.js.map +1 -0
  123. package/src/_cjs/utils/Params.d.ts +17 -0
  124. package/src/_cjs/utils/Params.js +53 -0
  125. package/src/_cjs/utils/Params.js.map +1 -0
  126. package/src/_cjs/utils/PerlinNoise.d.ts +19 -0
  127. package/src/_cjs/utils/PerlinNoise.js +352 -0
  128. package/src/_cjs/utils/PerlinNoise.js.map +1 -0
  129. package/src/_cjs/utils/SVGPathUtils.d.ts +22 -0
  130. package/src/_cjs/utils/SVGPathUtils.js +45 -0
  131. package/src/_cjs/utils/SVGPathUtils.js.map +1 -0
  132. package/src/_cjs/utils/WebColors.d.ts +35 -0
  133. package/src/_cjs/utils/WebColors.js +58 -0
  134. package/src/_cjs/utils/WebColors.js.map +1 -0
  135. package/src/_cjs/utils/WebColorsContrast.d.ts +6 -0
  136. package/src/_cjs/utils/WebColorsContrast.js +12 -0
  137. package/src/_cjs/utils/WebColorsContrast.js.map +1 -0
  138. package/src/_cjs/utils/WebColorsMalachite.d.ts +12 -0
  139. package/src/_cjs/utils/WebColorsMalachite.js +28 -0
  140. package/src/_cjs/utils/WebColorsMalachite.js.map +1 -0
  141. package/src/_cjs/utils/algorithms/CatmullRomPath.d.ts +60 -0
  142. package/src/_cjs/utils/algorithms/CatmullRomPath.js +108 -0
  143. package/src/_cjs/utils/algorithms/CatmullRomPath.js.map +1 -0
  144. package/src/_cjs/utils/algorithms/CircleIntersections.d.ts +170 -0
  145. package/src/_cjs/utils/algorithms/CircleIntersections.js +310 -0
  146. package/src/_cjs/utils/algorithms/CircleIntersections.js.map +1 -0
  147. package/src/_cjs/utils/algorithms/ContourLineDetection.d.ts +150 -0
  148. package/src/_cjs/utils/algorithms/ContourLineDetection.js +367 -0
  149. package/src/_cjs/utils/algorithms/ContourLineDetection.js.map +1 -0
  150. package/src/_cjs/utils/algorithms/CubicSplinePath.d.ts +63 -0
  151. package/src/_cjs/utils/algorithms/CubicSplinePath.js +175 -0
  152. package/src/_cjs/utils/algorithms/CubicSplinePath.js.map +1 -0
  153. package/src/_cjs/utils/algorithms/HobbyPath.d.ts +81 -0
  154. package/src/_cjs/utils/algorithms/HobbyPath.js +278 -0
  155. package/src/_cjs/utils/algorithms/HobbyPath.js.map +1 -0
  156. package/src/_cjs/utils/algorithms/Metaballs.d.ts +30 -0
  157. package/src/_cjs/utils/algorithms/Metaballs.js +114 -0
  158. package/src/_cjs/utils/algorithms/Metaballs.js.map +1 -0
  159. package/src/_cjs/utils/algorithms/PolygonInset.d.ts +184 -0
  160. package/src/_cjs/utils/algorithms/PolygonInset.js +431 -0
  161. package/src/_cjs/utils/algorithms/PolygonInset.js.map +1 -0
  162. package/src/_cjs/utils/algorithms/PolygonTesselationOutlines.d.ts +145 -0
  163. package/src/_cjs/utils/algorithms/PolygonTesselationOutlines.js +269 -0
  164. package/src/_cjs/utils/algorithms/PolygonTesselationOutlines.js.map +1 -0
  165. package/src/_cjs/utils/algorithms/arrayFill.d.ts +8 -0
  166. package/src/_cjs/utils/algorithms/arrayFill.js +18 -0
  167. package/src/_cjs/utils/algorithms/arrayFill.js.map +1 -0
  168. package/src/_cjs/utils/algorithms/arrayResize.d.ts +8 -0
  169. package/src/_cjs/utils/algorithms/arrayResize.js +24 -0
  170. package/src/_cjs/utils/algorithms/arrayResize.js.map +1 -0
  171. package/src/_cjs/utils/algorithms/arrayShuffle.d.ts +8 -0
  172. package/src/_cjs/utils/algorithms/arrayShuffle.js +15 -0
  173. package/src/_cjs/utils/algorithms/arrayShuffle.js.map +1 -0
  174. package/src/_cjs/utils/algorithms/clearDuplicateVertices.d.ts +22 -0
  175. package/src/_cjs/utils/algorithms/clearDuplicateVertices.js +51 -0
  176. package/src/_cjs/utils/algorithms/clearDuplicateVertices.js.map +1 -0
  177. package/src/_cjs/utils/algorithms/clearPolygonDuplicateVertices.d.ts +24 -0
  178. package/src/_cjs/utils/algorithms/clearPolygonDuplicateVertices.js +61 -0
  179. package/src/_cjs/utils/algorithms/clearPolygonDuplicateVertices.js.map +1 -0
  180. package/src/_cjs/utils/algorithms/convexHull.d.ts +23 -0
  181. package/src/_cjs/utils/algorithms/convexHull.js +71 -0
  182. package/src/_cjs/utils/algorithms/convexHull.js.map +1 -0
  183. package/src/_cjs/utils/algorithms/convexPolygonIncircle.d.ts +41 -0
  184. package/src/_cjs/utils/algorithms/convexPolygonIncircle.js +145 -0
  185. package/src/_cjs/utils/algorithms/convexPolygonIncircle.js.map +1 -0
  186. package/src/_cjs/utils/algorithms/delaunay.d.ts +30 -0
  187. package/src/_cjs/utils/algorithms/delaunay.js +158 -0
  188. package/src/_cjs/utils/algorithms/delaunay.js.map +1 -0
  189. package/src/_cjs/utils/algorithms/delaunay2voronoi.d.ts +25 -0
  190. package/src/_cjs/utils/algorithms/delaunay2voronoi.js +104 -0
  191. package/src/_cjs/utils/algorithms/delaunay2voronoi.js.map +1 -0
  192. package/src/_cjs/utils/algorithms/detectPaths.d.ts +21 -0
  193. package/src/_cjs/utils/algorithms/detectPaths.js +169 -0
  194. package/src/_cjs/utils/algorithms/detectPaths.js.map +1 -0
  195. package/src/_cjs/utils/algorithms/findPolygonSelfIntersections.d.ts +21 -0
  196. package/src/_cjs/utils/algorithms/findPolygonSelfIntersections.js +51 -0
  197. package/src/_cjs/utils/algorithms/findPolygonSelfIntersections.js.map +1 -0
  198. package/src/_cjs/utils/algorithms/getContrastColor.d.ts +13 -0
  199. package/src/_cjs/utils/algorithms/getContrastColor.js +26 -0
  200. package/src/_cjs/utils/algorithms/getContrastColor.js.map +1 -0
  201. package/src/_cjs/utils/algorithms/matrixFill.d.ts +10 -0
  202. package/src/_cjs/utils/algorithms/matrixFill.js +21 -0
  203. package/src/_cjs/utils/algorithms/matrixFill.js.map +1 -0
  204. package/src/_cjs/utils/algorithms/pixelCornersToRoundPaths.d.ts +23 -0
  205. package/src/_cjs/utils/algorithms/pixelCornersToRoundPaths.js +270 -0
  206. package/src/_cjs/utils/algorithms/pixelCornersToRoundPaths.js.map +1 -0
  207. package/src/_cjs/utils/algorithms/splitPolygonToNonIntersecting.d.ts +28 -0
  208. package/src/_cjs/utils/algorithms/splitPolygonToNonIntersecting.js +102 -0
  209. package/src/_cjs/utils/algorithms/splitPolygonToNonIntersecting.js.map +1 -0
  210. package/src/_cjs/utils/algorithms/sutherlandHodgman.d.ts +16 -0
  211. package/src/_cjs/utils/algorithms/sutherlandHodgman.js +76 -0
  212. package/src/_cjs/utils/algorithms/sutherlandHodgman.js.map +1 -0
  213. package/src/_cjs/utils/cloneVertexArray.d.ts +13 -0
  214. package/src/_cjs/utils/cloneVertexArray.js +23 -0
  215. package/src/_cjs/utils/cloneVertexArray.js.map +1 -0
  216. package/src/_cjs/utils/createRandomizedPolygon.d.ts +14 -0
  217. package/src/_cjs/utils/createRandomizedPolygon.js +32 -0
  218. package/src/_cjs/utils/createRandomizedPolygon.js.map +1 -0
  219. package/src/_cjs/utils/creategui.js +434 -0
  220. package/src/_cjs/utils/dat.gui.arrowbounce.polyfill.js +128 -0
  221. package/src/_cjs/utils/dat.gui.title.polyfill.js +35 -0
  222. package/src/_cjs/utils/datastructures/CircularIntervalSet.d.ts +83 -0
  223. package/src/_cjs/utils/datastructures/CircularIntervalSet.js +163 -0
  224. package/src/_cjs/utils/datastructures/CircularIntervalSet.js.map +1 -0
  225. package/src/_cjs/utils/datastructures/Color.d.ts +391 -0
  226. package/src/_cjs/utils/datastructures/Color.js +1084 -0
  227. package/src/_cjs/utils/datastructures/Color.js.map +1 -0
  228. package/src/_cjs/utils/datastructures/ColorGradient.d.ts +81 -0
  229. package/src/_cjs/utils/datastructures/ColorGradient.js +176 -0
  230. package/src/_cjs/utils/datastructures/ColorGradient.js.map +1 -0
  231. package/src/_cjs/utils/datastructures/DataGrid2d.d.ts +53 -0
  232. package/src/_cjs/utils/datastructures/DataGrid2d.js +20 -0
  233. package/src/_cjs/utils/datastructures/DataGrid2d.js.map +1 -0
  234. package/src/_cjs/utils/datastructures/DataGrid2dArrayMatrix.d.ts +88 -0
  235. package/src/_cjs/utils/datastructures/DataGrid2dArrayMatrix.js +155 -0
  236. package/src/_cjs/utils/datastructures/DataGrid2dArrayMatrix.js.map +1 -0
  237. package/src/_cjs/utils/datastructures/DataGrid2dListAdapter.d.ts +59 -0
  238. package/src/_cjs/utils/datastructures/DataGrid2dListAdapter.js +84 -0
  239. package/src/_cjs/utils/datastructures/DataGrid2dListAdapter.js.map +1 -0
  240. package/src/_cjs/utils/datastructures/GenericPath.d.ts +86 -0
  241. package/src/_cjs/utils/datastructures/GenericPath.js +122 -0
  242. package/src/_cjs/utils/datastructures/GenericPath.js.map +1 -0
  243. package/src/_cjs/utils/datastructures/GeometryMesh.d.ts +49 -0
  244. package/src/_cjs/utils/datastructures/GeometryMesh.js +58 -0
  245. package/src/_cjs/utils/datastructures/GeometryMesh.js.map +1 -0
  246. package/src/_cjs/utils/datastructures/Girih.d.ts +181 -0
  247. package/src/_cjs/utils/datastructures/Girih.js +266 -0
  248. package/src/_cjs/utils/datastructures/Girih.js.map +1 -0
  249. package/src/_cjs/utils/datastructures/GirihBowtie.d.ts +37 -0
  250. package/src/_cjs/utils/datastructures/GirihBowtie.js +152 -0
  251. package/src/_cjs/utils/datastructures/GirihBowtie.js.map +1 -0
  252. package/src/_cjs/utils/datastructures/GirihDecagon.d.ts +52 -0
  253. package/src/_cjs/utils/datastructures/GirihDecagon.js +132 -0
  254. package/src/_cjs/utils/datastructures/GirihDecagon.js.map +1 -0
  255. package/src/_cjs/utils/datastructures/GirihHexagon.d.ts +39 -0
  256. package/src/_cjs/utils/datastructures/GirihHexagon.js +200 -0
  257. package/src/_cjs/utils/datastructures/GirihHexagon.js.map +1 -0
  258. package/src/_cjs/utils/datastructures/GirihPenroseRhombus.d.ts +46 -0
  259. package/src/_cjs/utils/datastructures/GirihPenroseRhombus.js +189 -0
  260. package/src/_cjs/utils/datastructures/GirihPenroseRhombus.js.map +1 -0
  261. package/src/_cjs/utils/datastructures/GirihPentagon.d.ts +37 -0
  262. package/src/_cjs/utils/datastructures/GirihPentagon.js +109 -0
  263. package/src/_cjs/utils/datastructures/GirihPentagon.js.map +1 -0
  264. package/src/_cjs/utils/datastructures/GirihRhombus.d.ts +38 -0
  265. package/src/_cjs/utils/datastructures/GirihRhombus.js +155 -0
  266. package/src/_cjs/utils/datastructures/GirihRhombus.js.map +1 -0
  267. package/src/_cjs/utils/datastructures/GirihTile.d.ts +283 -0
  268. package/src/_cjs/utils/datastructures/GirihTile.js +308 -0
  269. package/src/_cjs/utils/datastructures/GirihTile.js.map +1 -0
  270. package/src/_cjs/utils/datastructures/Matrix4x4.d.ts +244 -0
  271. package/src/_cjs/utils/datastructures/Matrix4x4.js +262 -0
  272. package/src/_cjs/utils/datastructures/Matrix4x4.js.map +1 -0
  273. package/src/_cjs/utils/datastructures/VoronoiCell.d.ts +122 -0
  274. package/src/_cjs/utils/datastructures/VoronoiCell.js +183 -0
  275. package/src/_cjs/utils/datastructures/VoronoiCell.js.map +1 -0
  276. package/src/_cjs/utils/datastructures/interfaces.d.ts +13 -0
  277. package/src/_cjs/utils/datastructures/interfaces.js +10 -0
  278. package/src/_cjs/utils/datastructures/interfaces.js.map +1 -0
  279. package/src/_cjs/utils/detectDarkMode.d.ts +10 -0
  280. package/src/_cjs/utils/detectDarkMode.js +41 -0
  281. package/src/_cjs/utils/detectDarkMode.js.map +1 -0
  282. package/src/_cjs/utils/dom/components/ColorGradientPicker.d.ts +246 -0
  283. package/src/_cjs/utils/dom/components/ColorGradientPicker.js +667 -0
  284. package/src/_cjs/utils/dom/components/ColorGradientPicker.js.map +1 -0
  285. package/src/_cjs/utils/dom/components/ColorGradientPickerJSX.d.ts +129 -0
  286. package/src/_cjs/utils/dom/components/ColorGradientPickerJSX.js +520 -0
  287. package/src/_cjs/utils/dom/components/ColorGradientPickerJSX.js.map +1 -0
  288. package/src/_cjs/utils/dom/components/ColorGradientSelector.d.ts +118 -0
  289. package/src/_cjs/utils/dom/components/ColorGradientSelector.js +327 -0
  290. package/src/_cjs/utils/dom/components/ColorGradientSelector.js.map +1 -0
  291. package/src/_cjs/utils/dom/components/Test.d.ts +7 -0
  292. package/src/_cjs/utils/dom/components/Test.js +30 -0
  293. package/src/_cjs/utils/dom/components/Test.js.map +1 -0
  294. package/src/_cjs/utils/dom/getAvailableContainerSpace.d.ts +2 -0
  295. package/src/_cjs/utils/dom/getAvailableContainerSpace.js +29 -0
  296. package/src/_cjs/utils/dom/getAvailableContainerSpace.js.map +1 -0
  297. package/src/_cjs/utils/dom/getFProp.d.ts +5 -0
  298. package/src/_cjs/utils/dom/getFProp.js +12 -0
  299. package/src/_cjs/utils/dom/getFProp.js.map +1 -0
  300. package/src/_cjs/utils/dom/guiSizeToggler.d.ts +18 -0
  301. package/src/_cjs/utils/dom/guiSizeToggler.js +44 -0
  302. package/src/_cjs/utils/dom/guiSizeToggler.js.map +1 -0
  303. package/src/_cjs/utils/findInVertexArray.d.ts +19 -0
  304. package/src/_cjs/utils/findInVertexArray.js +29 -0
  305. package/src/_cjs/utils/findInVertexArray.js.map +1 -0
  306. package/src/_cjs/utils/getFProp.d.ts +5 -0
  307. package/src/_cjs/utils/getFProp.js +12 -0
  308. package/src/_cjs/utils/getFProp.js.map +1 -0
  309. package/src/_cjs/utils/gup.d.ts +14 -0
  310. package/src/_cjs/utils/gup.js +31 -0
  311. package/src/_cjs/utils/gup.js.map +1 -0
  312. package/src/_cjs/utils/helpers/BezierPathInteractionHelper.d.ts +272 -0
  313. package/src/_cjs/utils/helpers/BezierPathInteractionHelper.js +655 -0
  314. package/src/_cjs/utils/helpers/BezierPathInteractionHelper.js.map +1 -0
  315. package/src/_cjs/utils/helpers/CircleHelper.d.ts +73 -0
  316. package/src/_cjs/utils/helpers/CircleHelper.js +93 -0
  317. package/src/_cjs/utils/helpers/CircleHelper.js.map +1 -0
  318. package/src/_cjs/utils/helpers/CircleSectorHelper.d.ts +90 -0
  319. package/src/_cjs/utils/helpers/CircleSectorHelper.js +114 -0
  320. package/src/_cjs/utils/helpers/CircleSectorHelper.js.map +1 -0
  321. package/src/_cjs/utils/helpers/TriangleHelper.d.ts +57 -0
  322. package/src/_cjs/utils/helpers/TriangleHelper.js +83 -0
  323. package/src/_cjs/utils/helpers/TriangleHelper.js.map +1 -0
  324. package/src/_cjs/utils/helpers/VEllipseHelper.d.ts +32 -0
  325. package/src/_cjs/utils/helpers/VEllipseHelper.js +88 -0
  326. package/src/_cjs/utils/helpers/VEllipseHelper.js.map +1 -0
  327. package/src/_cjs/utils/helpers/VEllipseSectorHelper.d.ts +52 -0
  328. package/src/_cjs/utils/helpers/VEllipseSectorHelper.js +135 -0
  329. package/src/_cjs/utils/helpers/VEllipseSectorHelper.js.map +1 -0
  330. package/src/_cjs/utils/io/DndFileHandler.d.ts +63 -0
  331. package/src/_cjs/utils/io/DndFileHandler.js +112 -0
  332. package/src/_cjs/utils/io/DndFileHandler.js.map +1 -0
  333. package/src/_cjs/utils/io/FileDrop.d.ts +110 -0
  334. package/src/_cjs/utils/io/FileDrop.js +177 -0
  335. package/src/_cjs/utils/io/FileDrop.js.map +1 -0
  336. package/src/_cjs/utils/lil.gui.arrowbounce.polyfill.js +133 -0
  337. package/src/_cjs/utils/lil.gui.title.polyfill.js +32 -0
  338. package/src/_cjs/utils/module.js +18 -0
  339. package/src/_cjs/utils/parsers/LinearColorGradientParser.d.ts +78 -0
  340. package/src/_cjs/utils/parsers/LinearColorGradientParser.js +224 -0
  341. package/src/_cjs/utils/parsers/LinearColorGradientParser.js.map +1 -0
  342. package/src/_cjs/utils/parsers/OBJParser.d.ts +24 -0
  343. package/src/_cjs/utils/parsers/OBJParser.js +77 -0
  344. package/src/_cjs/utils/parsers/OBJParser.js.map +1 -0
  345. package/src/_cjs/utils/parsers/STLParser.d.ts +61 -0
  346. package/src/_cjs/utils/parsers/STLParser.js +182 -0
  347. package/src/_cjs/utils/parsers/STLParser.js.map +1 -0
  348. package/src/_cjs/utils/parsers/svg/parseSVGPathData.d.ts +27 -0
  349. package/src/_cjs/utils/parsers/svg/parseSVGPathData.js +486 -0
  350. package/src/_cjs/utils/parsers/svg/parseSVGPathData.js.map +1 -0
  351. package/src/_cjs/utils/parsers/svg/splitSVGPathData.d.ts +20 -0
  352. package/src/_cjs/utils/parsers/svg/splitSVGPathData.js +53 -0
  353. package/src/_cjs/utils/parsers/svg/splitSVGPathData.js.map +1 -0
  354. package/src/_cjs/utils/parsers/svg/types.d.ts +63 -0
  355. package/src/_cjs/utils/parsers/svg/types.js +17 -0
  356. package/src/_cjs/utils/parsers/svg/types.js.map +1 -0
  357. package/src/_cjs/utils/ts-runner.js +146 -0
  358. package/src/_cjs/utils/tsAsyncScriptLoader.js +74 -0
  359. package/src/_esm/BezierPath.d.ts +610 -0
  360. package/src/_esm/BezierPath.js +1124 -0
  361. package/src/_esm/BezierPath.js.map +1 -0
  362. package/src/_esm/Bounds.d.ts +252 -0
  363. package/src/_esm/Bounds.js +317 -0
  364. package/src/_esm/Bounds.js.map +1 -0
  365. package/src/_esm/Circle.d.ts +214 -0
  366. package/src/_esm/Circle.js +335 -0
  367. package/src/_esm/Circle.js.map +1 -0
  368. package/src/_esm/CircleSector.d.ts +211 -0
  369. package/src/_esm/CircleSector.js +359 -0
  370. package/src/_esm/CircleSector.js.map +1 -0
  371. package/src/_esm/CubicBezierCurve.d.ts +656 -0
  372. package/src/_esm/CubicBezierCurve.js +1057 -0
  373. package/src/_esm/CubicBezierCurve.js.map +1 -0
  374. package/src/_esm/Grid.d.ts +83 -0
  375. package/src/_esm/Grid.js +89 -0
  376. package/src/_esm/Grid.js.map +1 -0
  377. package/src/_esm/KeyHandler.d.ts +177 -0
  378. package/src/_esm/KeyHandler.js +434 -0
  379. package/src/_esm/KeyHandler.js.map +1 -0
  380. package/src/_esm/Line.d.ts +134 -0
  381. package/src/_esm/Line.js +200 -0
  382. package/src/_esm/Line.js.map +1 -0
  383. package/src/_esm/MouseHandler.d.ts +283 -0
  384. package/src/_esm/MouseHandler.js +397 -0
  385. package/src/_esm/MouseHandler.js.map +1 -0
  386. package/src/_esm/PBImage.d.ts +81 -0
  387. package/src/_esm/PBImage.js +60 -0
  388. package/src/_esm/PBImage.js.map +1 -0
  389. package/src/_esm/PBText.d.ts +118 -0
  390. package/src/_esm/PBText.js +62 -0
  391. package/src/_esm/PBText.js.map +1 -0
  392. package/src/_esm/PlotBoilerplate.d.ts +899 -0
  393. package/src/_esm/PlotBoilerplate.js +2347 -0
  394. package/src/_esm/PlotBoilerplate.js.map +1 -0
  395. package/src/_esm/Polygon.d.ts +520 -0
  396. package/src/_esm/Polygon.js +924 -0
  397. package/src/_esm/Polygon.js.map +1 -0
  398. package/src/_esm/SVGBuilder.d.ts +47 -0
  399. package/src/_esm/SVGBuilder.js +95 -0
  400. package/src/_esm/SVGBuilder.js.map +1 -0
  401. package/src/_esm/Triangle.d.ts +392 -0
  402. package/src/_esm/Triangle.js +493 -0
  403. package/src/_esm/Triangle.js.map +1 -0
  404. package/src/_esm/UIDGenerator.d.ts +12 -0
  405. package/src/_esm/UIDGenerator.js +18 -0
  406. package/src/_esm/UIDGenerator.js.map +1 -0
  407. package/src/_esm/VEllipse.d.ts +319 -0
  408. package/src/_esm/VEllipse.js +574 -0
  409. package/src/_esm/VEllipse.js.map +1 -0
  410. package/src/_esm/VEllipseSector.d.ts +230 -0
  411. package/src/_esm/VEllipseSector.js +422 -0
  412. package/src/_esm/VEllipseSector.js.map +1 -0
  413. package/src/_esm/Vector.d.ts +126 -0
  414. package/src/_esm/Vector.js +181 -0
  415. package/src/_esm/Vector.js.map +1 -0
  416. package/src/_esm/VertTuple.d.ts +284 -0
  417. package/src/_esm/VertTuple.js +347 -0
  418. package/src/_esm/VertTuple.js.map +1 -0
  419. package/src/_esm/Vertex.d.ts +498 -0
  420. package/src/_esm/Vertex.js +702 -0
  421. package/src/_esm/Vertex.js.map +1 -0
  422. package/src/_esm/VertexAttr.d.ts +72 -0
  423. package/src/_esm/VertexAttr.js +58 -0
  424. package/src/_esm/VertexAttr.js.map +1 -0
  425. package/src/_esm/VertexListeners.d.ts +209 -0
  426. package/src/_esm/VertexListeners.js +270 -0
  427. package/src/_esm/VertexListeners.js.map +1 -0
  428. package/src/_esm/draw.d.ts +657 -0
  429. package/src/_esm/draw.js +1159 -0
  430. package/src/_esm/draw.js.map +1 -0
  431. package/src/_esm/drawgl.d.ts +544 -0
  432. package/src/_esm/drawgl.js +812 -0
  433. package/src/_esm/drawgl.js.map +1 -0
  434. package/src/_esm/drawutilssvg.d.ts +954 -0
  435. package/src/_esm/drawutilssvg.js +1705 -0
  436. package/src/_esm/drawutilssvg.js.map +1 -0
  437. package/src/_esm/entry-glsupport.js +28 -0
  438. package/src/_esm/entry.js +29 -0
  439. package/src/_esm/geomutils.d.ts +77 -0
  440. package/src/_esm/geomutils.js +126 -0
  441. package/src/_esm/geomutils.js.map +1 -0
  442. package/src/_esm/index.d.ts +102 -0
  443. package/src/_esm/index.js +128 -0
  444. package/src/_esm/index.js.map +1 -0
  445. package/src/_esm/interfaces/DrawLib.d.ts +582 -0
  446. package/src/_esm/interfaces/DrawLib.js +32 -0
  447. package/src/_esm/interfaces/DrawLib.js.map +1 -0
  448. package/src/_esm/interfaces/additionals.d.ts +95 -0
  449. package/src/_esm/interfaces/additionals.js +3 -0
  450. package/src/_esm/interfaces/additionals.js.map +1 -0
  451. package/src/_esm/interfaces/core.d.ts +286 -0
  452. package/src/_esm/interfaces/core.js +30 -0
  453. package/src/_esm/interfaces/core.js.map +1 -0
  454. package/src/_esm/interfaces/externals.d.ts +56 -0
  455. package/src/_esm/interfaces/externals.js +8 -0
  456. package/src/_esm/interfaces/externals.js.map +1 -0
  457. package/src/_esm/interfaces/index.d.ts +4 -0
  458. package/src/_esm/interfaces/index.js +21 -0
  459. package/src/_esm/interfaces/index.js.map +1 -0
  460. package/src/_esm/module.d.ts +26 -0
  461. package/src/_esm/module.js +60 -0
  462. package/src/_esm/module.js.map +1 -0
  463. package/src/_esm/src/ts/BezierPath.d.ts +610 -0
  464. package/src/_esm/src/ts/BezierPath.js +1120 -0
  465. package/src/_esm/src/ts/BezierPath.js.map +1 -0
  466. package/src/_esm/src/ts/Bounds.d.ts +252 -0
  467. package/src/_esm/src/ts/Bounds.js +313 -0
  468. package/src/_esm/src/ts/Bounds.js.map +1 -0
  469. package/src/_esm/src/ts/Circle.d.ts +214 -0
  470. package/src/_esm/src/ts/Circle.js +331 -0
  471. package/src/_esm/src/ts/Circle.js.map +1 -0
  472. package/src/_esm/src/ts/CircleSector.d.ts +211 -0
  473. package/src/_esm/src/ts/CircleSector.js +355 -0
  474. package/src/_esm/src/ts/CircleSector.js.map +1 -0
  475. package/src/_esm/src/ts/CubicBezierCurve.d.ts +656 -0
  476. package/src/_esm/src/ts/CubicBezierCurve.js +1053 -0
  477. package/src/_esm/src/ts/CubicBezierCurve.js.map +1 -0
  478. package/src/_esm/src/ts/Grid.d.ts +83 -0
  479. package/src/_esm/src/ts/Grid.js +85 -0
  480. package/src/_esm/src/ts/Grid.js.map +1 -0
  481. package/src/_esm/src/ts/KeyHandler.d.ts +177 -0
  482. package/src/_esm/src/ts/KeyHandler.js +430 -0
  483. package/src/_esm/src/ts/KeyHandler.js.map +1 -0
  484. package/src/_esm/src/ts/Line.d.ts +134 -0
  485. package/src/_esm/src/ts/Line.js +196 -0
  486. package/src/_esm/src/ts/Line.js.map +1 -0
  487. package/src/_esm/src/ts/MouseHandler.d.ts +283 -0
  488. package/src/_esm/src/ts/MouseHandler.js +391 -0
  489. package/src/_esm/src/ts/MouseHandler.js.map +1 -0
  490. package/src/_esm/src/ts/PBImage.d.ts +81 -0
  491. package/src/_esm/src/ts/PBImage.js +56 -0
  492. package/src/_esm/src/ts/PBImage.js.map +1 -0
  493. package/src/_esm/src/ts/PBText.d.ts +118 -0
  494. package/src/_esm/src/ts/PBText.js +58 -0
  495. package/src/_esm/src/ts/PBText.js.map +1 -0
  496. package/src/_esm/src/ts/PlotBoilerplate.d.ts +899 -0
  497. package/src/_esm/src/ts/PlotBoilerplate.js +2340 -0
  498. package/src/_esm/src/ts/PlotBoilerplate.js.map +1 -0
  499. package/src/_esm/src/ts/Polygon.d.ts +520 -0
  500. package/src/_esm/src/ts/Polygon.js +920 -0
  501. package/src/_esm/src/ts/Polygon.js.map +1 -0
  502. package/src/_esm/src/ts/Triangle.d.ts +392 -0
  503. package/src/_esm/src/ts/Triangle.js +489 -0
  504. package/src/_esm/src/ts/Triangle.js.map +1 -0
  505. package/src/_esm/src/ts/UIDGenerator.d.ts +12 -0
  506. package/src/_esm/src/ts/UIDGenerator.js +14 -0
  507. package/src/_esm/src/ts/UIDGenerator.js.map +1 -0
  508. package/src/_esm/src/ts/VEllipse.d.ts +319 -0
  509. package/src/_esm/src/ts/VEllipse.js +570 -0
  510. package/src/_esm/src/ts/VEllipse.js.map +1 -0
  511. package/src/_esm/src/ts/VEllipseSector.d.ts +230 -0
  512. package/src/_esm/src/ts/VEllipseSector.js +418 -0
  513. package/src/_esm/src/ts/VEllipseSector.js.map +1 -0
  514. package/src/_esm/src/ts/Vector.d.ts +126 -0
  515. package/src/_esm/src/ts/Vector.js +177 -0
  516. package/src/_esm/src/ts/Vector.js.map +1 -0
  517. package/src/_esm/src/ts/VertTuple.d.ts +284 -0
  518. package/src/_esm/src/ts/VertTuple.js +343 -0
  519. package/src/_esm/src/ts/VertTuple.js.map +1 -0
  520. package/src/_esm/src/ts/Vertex.d.ts +498 -0
  521. package/src/_esm/src/ts/Vertex.js +698 -0
  522. package/src/_esm/src/ts/Vertex.js.map +1 -0
  523. package/src/_esm/src/ts/VertexAttr.d.ts +72 -0
  524. package/src/_esm/src/ts/VertexAttr.js +54 -0
  525. package/src/_esm/src/ts/VertexAttr.js.map +1 -0
  526. package/src/_esm/src/ts/VertexListeners.d.ts +209 -0
  527. package/src/_esm/src/ts/VertexListeners.js +266 -0
  528. package/src/_esm/src/ts/VertexListeners.js.map +1 -0
  529. package/src/_esm/src/ts/draw.d.ts +657 -0
  530. package/src/_esm/src/ts/draw.js +1155 -0
  531. package/src/_esm/src/ts/draw.js.map +1 -0
  532. package/src/_esm/src/ts/drawgl.d.ts +544 -0
  533. package/src/_esm/src/ts/drawgl.js +808 -0
  534. package/src/_esm/src/ts/drawgl.js.map +1 -0
  535. package/src/_esm/src/ts/drawutilssvg.d.ts +954 -0
  536. package/src/_esm/src/ts/drawutilssvg.js +1701 -0
  537. package/src/_esm/src/ts/drawutilssvg.js.map +1 -0
  538. package/src/_esm/src/ts/geomutils.d.ts +77 -0
  539. package/src/_esm/src/ts/geomutils.js +123 -0
  540. package/src/_esm/src/ts/geomutils.js.map +1 -0
  541. package/src/_esm/src/ts/index.d.ts +102 -0
  542. package/src/_esm/src/ts/index.js +112 -0
  543. package/src/_esm/src/ts/index.js.map +1 -0
  544. package/src/_esm/src/ts/interfaces/DrawLib.d.ts +582 -0
  545. package/src/_esm/src/ts/interfaces/DrawLib.js +31 -0
  546. package/src/_esm/src/ts/interfaces/DrawLib.js.map +1 -0
  547. package/src/_esm/src/ts/interfaces/additionals.d.ts +95 -0
  548. package/src/_esm/src/ts/interfaces/additionals.js +2 -0
  549. package/src/_esm/src/ts/interfaces/additionals.js.map +1 -0
  550. package/src/_esm/src/ts/interfaces/core.d.ts +286 -0
  551. package/src/_esm/src/ts/interfaces/core.js +29 -0
  552. package/src/_esm/src/ts/interfaces/core.js.map +1 -0
  553. package/src/_esm/src/ts/interfaces/externals.d.ts +56 -0
  554. package/src/_esm/src/ts/interfaces/externals.js +7 -0
  555. package/src/_esm/src/ts/interfaces/externals.js.map +1 -0
  556. package/src/_esm/src/ts/interfaces/index.d.ts +4 -0
  557. package/src/_esm/src/ts/interfaces/index.js +5 -0
  558. package/src/_esm/src/ts/interfaces/index.js.map +1 -0
  559. package/src/_esm/src/ts/module.d.ts +26 -0
  560. package/src/_esm/src/ts/module.js +38 -0
  561. package/src/_esm/src/ts/module.js.map +1 -0
  562. package/src/_esm/src/ts/utils/InitializationObserver.d.ts +18 -0
  563. package/src/_esm/src/ts/utils/InitializationObserver.js +57 -0
  564. package/src/_esm/src/ts/utils/InitializationObserver.js.map +1 -0
  565. package/src/_esm/src/ts/utils/LissajousFigure.d.ts +34 -0
  566. package/src/_esm/src/ts/utils/LissajousFigure.js +95 -0
  567. package/src/_esm/src/ts/utils/LissajousFigure.js.map +1 -0
  568. package/src/_esm/src/ts/utils/NGons.d.ts +13 -0
  569. package/src/_esm/src/ts/utils/NGons.js +33 -0
  570. package/src/_esm/src/ts/utils/NGons.js.map +1 -0
  571. package/src/_esm/src/ts/utils/Params.d.ts +17 -0
  572. package/src/_esm/src/ts/utils/Params.js +48 -0
  573. package/src/_esm/src/ts/utils/Params.js.map +1 -0
  574. package/src/_esm/src/ts/utils/PerlinNoise.d.ts +19 -0
  575. package/src/_esm/src/ts/utils/PerlinNoise.js +346 -0
  576. package/src/_esm/src/ts/utils/PerlinNoise.js.map +1 -0
  577. package/src/_esm/src/ts/utils/SVGPathUtils.d.ts +22 -0
  578. package/src/_esm/src/ts/utils/SVGPathUtils.js +42 -0
  579. package/src/_esm/src/ts/utils/SVGPathUtils.js.map +1 -0
  580. package/src/_esm/src/ts/utils/WebColors.d.ts +35 -0
  581. package/src/_esm/src/ts/utils/WebColors.js +54 -0
  582. package/src/_esm/src/ts/utils/WebColors.js.map +1 -0
  583. package/src/_esm/src/ts/utils/WebColorsContrast.d.ts +6 -0
  584. package/src/_esm/src/ts/utils/WebColorsContrast.js +9 -0
  585. package/src/_esm/src/ts/utils/WebColorsContrast.js.map +1 -0
  586. package/src/_esm/src/ts/utils/WebColorsMalachite.d.ts +12 -0
  587. package/src/_esm/src/ts/utils/WebColorsMalachite.js +25 -0
  588. package/src/_esm/src/ts/utils/WebColorsMalachite.js.map +1 -0
  589. package/src/_esm/src/ts/utils/algorithms/CatmullRomPath.d.ts +60 -0
  590. package/src/_esm/src/ts/utils/algorithms/CatmullRomPath.js +103 -0
  591. package/src/_esm/src/ts/utils/algorithms/CatmullRomPath.js.map +1 -0
  592. package/src/_esm/src/ts/utils/algorithms/CircleIntersections.d.ts +170 -0
  593. package/src/_esm/src/ts/utils/algorithms/CircleIntersections.js +303 -0
  594. package/src/_esm/src/ts/utils/algorithms/CircleIntersections.js.map +1 -0
  595. package/src/_esm/src/ts/utils/algorithms/ContourLineDetection.d.ts +150 -0
  596. package/src/_esm/src/ts/utils/algorithms/ContourLineDetection.js +362 -0
  597. package/src/_esm/src/ts/utils/algorithms/ContourLineDetection.js.map +1 -0
  598. package/src/_esm/src/ts/utils/algorithms/CubicSplinePath.d.ts +63 -0
  599. package/src/_esm/src/ts/utils/algorithms/CubicSplinePath.js +170 -0
  600. package/src/_esm/src/ts/utils/algorithms/CubicSplinePath.js.map +1 -0
  601. package/src/_esm/src/ts/utils/algorithms/HobbyPath.d.ts +81 -0
  602. package/src/_esm/src/ts/utils/algorithms/HobbyPath.js +273 -0
  603. package/src/_esm/src/ts/utils/algorithms/HobbyPath.js.map +1 -0
  604. package/src/_esm/src/ts/utils/algorithms/Metaballs.d.ts +30 -0
  605. package/src/_esm/src/ts/utils/algorithms/Metaballs.js +109 -0
  606. package/src/_esm/src/ts/utils/algorithms/Metaballs.js.map +1 -0
  607. package/src/_esm/src/ts/utils/algorithms/PolygonInset.d.ts +184 -0
  608. package/src/_esm/src/ts/utils/algorithms/PolygonInset.js +424 -0
  609. package/src/_esm/src/ts/utils/algorithms/PolygonInset.js.map +1 -0
  610. package/src/_esm/src/ts/utils/algorithms/PolygonTesselationOutlines.d.ts +145 -0
  611. package/src/_esm/src/ts/utils/algorithms/PolygonTesselationOutlines.js +262 -0
  612. package/src/_esm/src/ts/utils/algorithms/PolygonTesselationOutlines.js.map +1 -0
  613. package/src/_esm/src/ts/utils/algorithms/arrayFill.d.ts +8 -0
  614. package/src/_esm/src/ts/utils/algorithms/arrayFill.js +14 -0
  615. package/src/_esm/src/ts/utils/algorithms/arrayFill.js.map +1 -0
  616. package/src/_esm/src/ts/utils/algorithms/arrayResize.d.ts +8 -0
  617. package/src/_esm/src/ts/utils/algorithms/arrayResize.js +20 -0
  618. package/src/_esm/src/ts/utils/algorithms/arrayResize.js.map +1 -0
  619. package/src/_esm/src/ts/utils/algorithms/arrayShuffle.d.ts +8 -0
  620. package/src/_esm/src/ts/utils/algorithms/arrayShuffle.js +11 -0
  621. package/src/_esm/src/ts/utils/algorithms/arrayShuffle.js.map +1 -0
  622. package/src/_esm/src/ts/utils/algorithms/clearDuplicateVertices.d.ts +22 -0
  623. package/src/_esm/src/ts/utils/algorithms/clearDuplicateVertices.js +47 -0
  624. package/src/_esm/src/ts/utils/algorithms/clearDuplicateVertices.js.map +1 -0
  625. package/src/_esm/src/ts/utils/algorithms/clearPolygonDuplicateVertices.d.ts +24 -0
  626. package/src/_esm/src/ts/utils/algorithms/clearPolygonDuplicateVertices.js +57 -0
  627. package/src/_esm/src/ts/utils/algorithms/clearPolygonDuplicateVertices.js.map +1 -0
  628. package/src/_esm/src/ts/utils/algorithms/convexHull.d.ts +23 -0
  629. package/src/_esm/src/ts/utils/algorithms/convexHull.js +67 -0
  630. package/src/_esm/src/ts/utils/algorithms/convexHull.js.map +1 -0
  631. package/src/_esm/src/ts/utils/algorithms/convexPolygonIncircle.d.ts +41 -0
  632. package/src/_esm/src/ts/utils/algorithms/convexPolygonIncircle.js +141 -0
  633. package/src/_esm/src/ts/utils/algorithms/convexPolygonIncircle.js.map +1 -0
  634. package/src/_esm/src/ts/utils/algorithms/delaunay.d.ts +30 -0
  635. package/src/_esm/src/ts/utils/algorithms/delaunay.js +153 -0
  636. package/src/_esm/src/ts/utils/algorithms/delaunay.js.map +1 -0
  637. package/src/_esm/src/ts/utils/algorithms/delaunay2voronoi.d.ts +25 -0
  638. package/src/_esm/src/ts/utils/algorithms/delaunay2voronoi.js +99 -0
  639. package/src/_esm/src/ts/utils/algorithms/delaunay2voronoi.js.map +1 -0
  640. package/src/_esm/src/ts/utils/algorithms/detectPaths.d.ts +21 -0
  641. package/src/_esm/src/ts/utils/algorithms/detectPaths.js +165 -0
  642. package/src/_esm/src/ts/utils/algorithms/detectPaths.js.map +1 -0
  643. package/src/_esm/src/ts/utils/algorithms/findPolygonSelfIntersections.d.ts +21 -0
  644. package/src/_esm/src/ts/utils/algorithms/findPolygonSelfIntersections.js +47 -0
  645. package/src/_esm/src/ts/utils/algorithms/findPolygonSelfIntersections.js.map +1 -0
  646. package/src/_esm/src/ts/utils/algorithms/getContrastColor.d.ts +13 -0
  647. package/src/_esm/src/ts/utils/algorithms/getContrastColor.js +22 -0
  648. package/src/_esm/src/ts/utils/algorithms/getContrastColor.js.map +1 -0
  649. package/src/_esm/src/ts/utils/algorithms/matrixFill.d.ts +10 -0
  650. package/src/_esm/src/ts/utils/algorithms/matrixFill.js +17 -0
  651. package/src/_esm/src/ts/utils/algorithms/matrixFill.js.map +1 -0
  652. package/src/_esm/src/ts/utils/algorithms/pixelCornersToRoundPaths.d.ts +23 -0
  653. package/src/_esm/src/ts/utils/algorithms/pixelCornersToRoundPaths.js +266 -0
  654. package/src/_esm/src/ts/utils/algorithms/pixelCornersToRoundPaths.js.map +1 -0
  655. package/src/_esm/src/ts/utils/algorithms/splitPolygonToNonIntersecting.d.ts +28 -0
  656. package/src/_esm/src/ts/utils/algorithms/splitPolygonToNonIntersecting.js +99 -0
  657. package/src/_esm/src/ts/utils/algorithms/splitPolygonToNonIntersecting.js.map +1 -0
  658. package/src/_esm/src/ts/utils/algorithms/sutherlandHodgman.d.ts +16 -0
  659. package/src/_esm/src/ts/utils/algorithms/sutherlandHodgman.js +72 -0
  660. package/src/_esm/src/ts/utils/algorithms/sutherlandHodgman.js.map +1 -0
  661. package/src/_esm/src/ts/utils/cloneVertexArray.d.ts +13 -0
  662. package/src/_esm/src/ts/utils/cloneVertexArray.js +19 -0
  663. package/src/_esm/src/ts/utils/cloneVertexArray.js.map +1 -0
  664. package/src/_esm/src/ts/utils/createRandomizedPolygon.d.ts +14 -0
  665. package/src/_esm/src/ts/utils/createRandomizedPolygon.js +28 -0
  666. package/src/_esm/src/ts/utils/createRandomizedPolygon.js.map +1 -0
  667. package/src/_esm/src/ts/utils/datastructures/CircularIntervalSet.d.ts +83 -0
  668. package/src/_esm/src/ts/utils/datastructures/CircularIntervalSet.js +158 -0
  669. package/src/_esm/src/ts/utils/datastructures/CircularIntervalSet.js.map +1 -0
  670. package/src/_esm/src/ts/utils/datastructures/Color.d.ts +391 -0
  671. package/src/_esm/src/ts/utils/datastructures/Color.js +1063 -0
  672. package/src/_esm/src/ts/utils/datastructures/Color.js.map +1 -0
  673. package/src/_esm/src/ts/utils/datastructures/ColorGradient.d.ts +81 -0
  674. package/src/_esm/src/ts/utils/datastructures/ColorGradient.js +171 -0
  675. package/src/_esm/src/ts/utils/datastructures/ColorGradient.js.map +1 -0
  676. package/src/_esm/src/ts/utils/datastructures/DataGrid2d.d.ts +53 -0
  677. package/src/_esm/src/ts/utils/datastructures/DataGrid2d.js +19 -0
  678. package/src/_esm/src/ts/utils/datastructures/DataGrid2d.js.map +1 -0
  679. package/src/_esm/src/ts/utils/datastructures/DataGrid2dArrayMatrix.d.ts +88 -0
  680. package/src/_esm/src/ts/utils/datastructures/DataGrid2dArrayMatrix.js +150 -0
  681. package/src/_esm/src/ts/utils/datastructures/DataGrid2dArrayMatrix.js.map +1 -0
  682. package/src/_esm/src/ts/utils/datastructures/DataGrid2dListAdapter.d.ts +59 -0
  683. package/src/_esm/src/ts/utils/datastructures/DataGrid2dListAdapter.js +79 -0
  684. package/src/_esm/src/ts/utils/datastructures/DataGrid2dListAdapter.js.map +1 -0
  685. package/src/_esm/src/ts/utils/datastructures/GenericPath.d.ts +86 -0
  686. package/src/_esm/src/ts/utils/datastructures/GenericPath.js +117 -0
  687. package/src/_esm/src/ts/utils/datastructures/GenericPath.js.map +1 -0
  688. package/src/_esm/src/ts/utils/datastructures/GeometryMesh.d.ts +49 -0
  689. package/src/_esm/src/ts/utils/datastructures/GeometryMesh.js +53 -0
  690. package/src/_esm/src/ts/utils/datastructures/GeometryMesh.js.map +1 -0
  691. package/src/_esm/src/ts/utils/datastructures/Girih.d.ts +181 -0
  692. package/src/_esm/src/ts/utils/datastructures/Girih.js +261 -0
  693. package/src/_esm/src/ts/utils/datastructures/Girih.js.map +1 -0
  694. package/src/_esm/src/ts/utils/datastructures/GirihBowtie.d.ts +37 -0
  695. package/src/_esm/src/ts/utils/datastructures/GirihBowtie.js +130 -0
  696. package/src/_esm/src/ts/utils/datastructures/GirihBowtie.js.map +1 -0
  697. package/src/_esm/src/ts/utils/datastructures/GirihDecagon.d.ts +52 -0
  698. package/src/_esm/src/ts/utils/datastructures/GirihDecagon.js +110 -0
  699. package/src/_esm/src/ts/utils/datastructures/GirihDecagon.js.map +1 -0
  700. package/src/_esm/src/ts/utils/datastructures/GirihHexagon.d.ts +39 -0
  701. package/src/_esm/src/ts/utils/datastructures/GirihHexagon.js +178 -0
  702. package/src/_esm/src/ts/utils/datastructures/GirihHexagon.js.map +1 -0
  703. package/src/_esm/src/ts/utils/datastructures/GirihPenroseRhombus.d.ts +46 -0
  704. package/src/_esm/src/ts/utils/datastructures/GirihPenroseRhombus.js +167 -0
  705. package/src/_esm/src/ts/utils/datastructures/GirihPenroseRhombus.js.map +1 -0
  706. package/src/_esm/src/ts/utils/datastructures/GirihPentagon.d.ts +37 -0
  707. package/src/_esm/src/ts/utils/datastructures/GirihPentagon.js +87 -0
  708. package/src/_esm/src/ts/utils/datastructures/GirihPentagon.js.map +1 -0
  709. package/src/_esm/src/ts/utils/datastructures/GirihRhombus.d.ts +38 -0
  710. package/src/_esm/src/ts/utils/datastructures/GirihRhombus.js +133 -0
  711. package/src/_esm/src/ts/utils/datastructures/GirihRhombus.js.map +1 -0
  712. package/src/_esm/src/ts/utils/datastructures/GirihTile.d.ts +283 -0
  713. package/src/_esm/src/ts/utils/datastructures/GirihTile.js +286 -0
  714. package/src/_esm/src/ts/utils/datastructures/GirihTile.js.map +1 -0
  715. package/src/_esm/src/ts/utils/datastructures/Matrix4x4.d.ts +244 -0
  716. package/src/_esm/src/ts/utils/datastructures/Matrix4x4.js +246 -0
  717. package/src/_esm/src/ts/utils/datastructures/Matrix4x4.js.map +1 -0
  718. package/src/_esm/src/ts/utils/datastructures/VoronoiCell.d.ts +122 -0
  719. package/src/_esm/src/ts/utils/datastructures/VoronoiCell.js +178 -0
  720. package/src/_esm/src/ts/utils/datastructures/VoronoiCell.js.map +1 -0
  721. package/src/_esm/src/ts/utils/datastructures/interfaces.d.ts +13 -0
  722. package/src/_esm/src/ts/utils/datastructures/interfaces.js +9 -0
  723. package/src/_esm/src/ts/utils/datastructures/interfaces.js.map +1 -0
  724. package/src/_esm/src/ts/utils/detectDarkMode.d.ts +10 -0
  725. package/src/_esm/src/ts/utils/detectDarkMode.js +37 -0
  726. package/src/_esm/src/ts/utils/detectDarkMode.js.map +1 -0
  727. package/src/_esm/src/ts/utils/dom/components/ColorGradientPicker.d.ts +246 -0
  728. package/src/_esm/src/ts/utils/dom/components/ColorGradientPicker.js +743 -0
  729. package/src/_esm/src/ts/utils/dom/components/ColorGradientPicker.js.map +1 -0
  730. package/src/_esm/src/ts/utils/dom/components/ColorGradientSelector.d.ts +118 -0
  731. package/src/_esm/src/ts/utils/dom/components/ColorGradientSelector.js +339 -0
  732. package/src/_esm/src/ts/utils/dom/components/ColorGradientSelector.js.map +1 -0
  733. package/src/_esm/src/ts/utils/dom/components/Test.d.ts +7 -0
  734. package/src/_esm/src/ts/utils/dom/components/Test.js +26 -0
  735. package/src/_esm/src/ts/utils/dom/components/Test.js.map +1 -0
  736. package/src/_esm/src/ts/utils/dom/getAvailableContainerSpace.d.ts +2 -0
  737. package/src/_esm/src/ts/utils/dom/getAvailableContainerSpace.js +25 -0
  738. package/src/_esm/src/ts/utils/dom/getAvailableContainerSpace.js.map +1 -0
  739. package/src/_esm/src/ts/utils/dom/getFProp.d.ts +5 -0
  740. package/src/_esm/src/ts/utils/dom/getFProp.js +8 -0
  741. package/src/_esm/src/ts/utils/dom/getFProp.js.map +1 -0
  742. package/src/_esm/src/ts/utils/dom/guiSizeToggler.d.ts +18 -0
  743. package/src/_esm/src/ts/utils/dom/guiSizeToggler.js +40 -0
  744. package/src/_esm/src/ts/utils/dom/guiSizeToggler.js.map +1 -0
  745. package/src/_esm/src/ts/utils/findInVertexArray.d.ts +19 -0
  746. package/src/_esm/src/ts/utils/findInVertexArray.js +25 -0
  747. package/src/_esm/src/ts/utils/findInVertexArray.js.map +1 -0
  748. package/src/_esm/src/ts/utils/gup.d.ts +14 -0
  749. package/src/_esm/src/ts/utils/gup.js +27 -0
  750. package/src/_esm/src/ts/utils/gup.js.map +1 -0
  751. package/src/_esm/src/ts/utils/helpers/BezierPathInteractionHelper.d.ts +272 -0
  752. package/src/_esm/src/ts/utils/helpers/BezierPathInteractionHelper.js +648 -0
  753. package/src/_esm/src/ts/utils/helpers/BezierPathInteractionHelper.js.map +1 -0
  754. package/src/_esm/src/ts/utils/helpers/CircleHelper.d.ts +73 -0
  755. package/src/_esm/src/ts/utils/helpers/CircleHelper.js +88 -0
  756. package/src/_esm/src/ts/utils/helpers/CircleHelper.js.map +1 -0
  757. package/src/_esm/src/ts/utils/helpers/CircleSectorHelper.d.ts +90 -0
  758. package/src/_esm/src/ts/utils/helpers/CircleSectorHelper.js +109 -0
  759. package/src/_esm/src/ts/utils/helpers/CircleSectorHelper.js.map +1 -0
  760. package/src/_esm/src/ts/utils/helpers/TriangleHelper.d.ts +57 -0
  761. package/src/_esm/src/ts/utils/helpers/TriangleHelper.js +78 -0
  762. package/src/_esm/src/ts/utils/helpers/TriangleHelper.js.map +1 -0
  763. package/src/_esm/src/ts/utils/helpers/VEllipseHelper.d.ts +32 -0
  764. package/src/_esm/src/ts/utils/helpers/VEllipseHelper.js +83 -0
  765. package/src/_esm/src/ts/utils/helpers/VEllipseHelper.js.map +1 -0
  766. package/src/_esm/src/ts/utils/helpers/VEllipseSectorHelper.d.ts +52 -0
  767. package/src/_esm/src/ts/utils/helpers/VEllipseSectorHelper.js +130 -0
  768. package/src/_esm/src/ts/utils/helpers/VEllipseSectorHelper.js.map +1 -0
  769. package/src/_esm/src/ts/utils/io/FileDrop.d.ts +110 -0
  770. package/src/_esm/src/ts/utils/io/FileDrop.js +171 -0
  771. package/src/_esm/src/ts/utils/io/FileDrop.js.map +1 -0
  772. package/src/_esm/src/ts/utils/parsers/LinearColorGradientParser.d.ts +78 -0
  773. package/src/_esm/src/ts/utils/parsers/LinearColorGradientParser.js +217 -0
  774. package/src/_esm/src/ts/utils/parsers/LinearColorGradientParser.js.map +1 -0
  775. package/src/_esm/src/ts/utils/parsers/OBJParser.d.ts +24 -0
  776. package/src/_esm/src/ts/utils/parsers/OBJParser.js +72 -0
  777. package/src/_esm/src/ts/utils/parsers/OBJParser.js.map +1 -0
  778. package/src/_esm/src/ts/utils/parsers/STLParser.d.ts +61 -0
  779. package/src/_esm/src/ts/utils/parsers/STLParser.js +175 -0
  780. package/src/_esm/src/ts/utils/parsers/STLParser.js.map +1 -0
  781. package/src/_esm/src/ts/utils/parsers/svg/parseSVGPathData.d.ts +27 -0
  782. package/src/_esm/src/ts/utils/parsers/svg/parseSVGPathData.js +482 -0
  783. package/src/_esm/src/ts/utils/parsers/svg/parseSVGPathData.js.map +1 -0
  784. package/src/_esm/src/ts/utils/parsers/svg/splitSVGPathData.d.ts +20 -0
  785. package/src/_esm/src/ts/utils/parsers/svg/splitSVGPathData.js +49 -0
  786. package/src/_esm/src/ts/utils/parsers/svg/splitSVGPathData.js.map +1 -0
  787. package/src/_esm/src/ts/utils/parsers/svg/types.d.ts +63 -0
  788. package/src/_esm/src/ts/utils/parsers/svg/types.js +16 -0
  789. package/src/_esm/src/ts/utils/parsers/svg/types.js.map +1 -0
  790. package/src/_esm/utils/InitializationObserver.d.ts +18 -0
  791. package/src/_esm/utils/InitializationObserver.js +61 -0
  792. package/src/_esm/utils/InitializationObserver.js.map +1 -0
  793. package/src/_esm/utils/LissajousFigure.d.ts +34 -0
  794. package/src/_esm/utils/LissajousFigure.js +99 -0
  795. package/src/_esm/utils/LissajousFigure.js.map +1 -0
  796. package/src/_esm/utils/NGons.d.ts +13 -0
  797. package/src/_esm/utils/NGons.js +36 -0
  798. package/src/_esm/utils/NGons.js.map +1 -0
  799. package/src/_esm/utils/Params.d.ts +17 -0
  800. package/src/_esm/utils/Params.js +52 -0
  801. package/src/_esm/utils/Params.js.map +1 -0
  802. package/src/_esm/utils/PerlinNoise.d.ts +19 -0
  803. package/src/_esm/utils/PerlinNoise.js +350 -0
  804. package/src/_esm/utils/PerlinNoise.js.map +1 -0
  805. package/src/_esm/utils/SVGPathUtils.d.ts +22 -0
  806. package/src/_esm/utils/SVGPathUtils.js +45 -0
  807. package/src/_esm/utils/SVGPathUtils.js.map +1 -0
  808. package/src/_esm/utils/WebColors.d.ts +35 -0
  809. package/src/_esm/utils/WebColors.js +58 -0
  810. package/src/_esm/utils/WebColors.js.map +1 -0
  811. package/src/_esm/utils/WebColorsContrast.d.ts +6 -0
  812. package/src/_esm/utils/WebColorsContrast.js +12 -0
  813. package/src/_esm/utils/WebColorsContrast.js.map +1 -0
  814. package/src/_esm/utils/WebColorsMalachite.d.ts +12 -0
  815. package/src/_esm/utils/WebColorsMalachite.js +28 -0
  816. package/src/_esm/utils/WebColorsMalachite.js.map +1 -0
  817. package/src/_esm/utils/algorithms/CatmullRomPath.d.ts +60 -0
  818. package/src/_esm/utils/algorithms/CatmullRomPath.js +107 -0
  819. package/src/_esm/utils/algorithms/CatmullRomPath.js.map +1 -0
  820. package/src/_esm/utils/algorithms/CircleIntersections.d.ts +170 -0
  821. package/src/_esm/utils/algorithms/CircleIntersections.js +307 -0
  822. package/src/_esm/utils/algorithms/CircleIntersections.js.map +1 -0
  823. package/src/_esm/utils/algorithms/ContourLineDetection.d.ts +150 -0
  824. package/src/_esm/utils/algorithms/ContourLineDetection.js +366 -0
  825. package/src/_esm/utils/algorithms/ContourLineDetection.js.map +1 -0
  826. package/src/_esm/utils/algorithms/CubicSplinePath.d.ts +63 -0
  827. package/src/_esm/utils/algorithms/CubicSplinePath.js +174 -0
  828. package/src/_esm/utils/algorithms/CubicSplinePath.js.map +1 -0
  829. package/src/_esm/utils/algorithms/HobbyPath.d.ts +81 -0
  830. package/src/_esm/utils/algorithms/HobbyPath.js +277 -0
  831. package/src/_esm/utils/algorithms/HobbyPath.js.map +1 -0
  832. package/src/_esm/utils/algorithms/Metaballs.d.ts +30 -0
  833. package/src/_esm/utils/algorithms/Metaballs.js +113 -0
  834. package/src/_esm/utils/algorithms/Metaballs.js.map +1 -0
  835. package/src/_esm/utils/algorithms/PolygonInset.d.ts +184 -0
  836. package/src/_esm/utils/algorithms/PolygonInset.js +428 -0
  837. package/src/_esm/utils/algorithms/PolygonInset.js.map +1 -0
  838. package/src/_esm/utils/algorithms/PolygonTesselationOutlines.d.ts +145 -0
  839. package/src/_esm/utils/algorithms/PolygonTesselationOutlines.js +267 -0
  840. package/src/_esm/utils/algorithms/PolygonTesselationOutlines.js.map +1 -0
  841. package/src/_esm/utils/algorithms/arrayFill.d.ts +8 -0
  842. package/src/_esm/utils/algorithms/arrayFill.js +18 -0
  843. package/src/_esm/utils/algorithms/arrayFill.js.map +1 -0
  844. package/src/_esm/utils/algorithms/arrayResize.d.ts +8 -0
  845. package/src/_esm/utils/algorithms/arrayResize.js +24 -0
  846. package/src/_esm/utils/algorithms/arrayResize.js.map +1 -0
  847. package/src/_esm/utils/algorithms/arrayShuffle.d.ts +8 -0
  848. package/src/_esm/utils/algorithms/arrayShuffle.js +15 -0
  849. package/src/_esm/utils/algorithms/arrayShuffle.js.map +1 -0
  850. package/src/_esm/utils/algorithms/clearDuplicateVertices.d.ts +22 -0
  851. package/src/_esm/utils/algorithms/clearDuplicateVertices.js +51 -0
  852. package/src/_esm/utils/algorithms/clearDuplicateVertices.js.map +1 -0
  853. package/src/_esm/utils/algorithms/clearPolygonDuplicateVertices.d.ts +24 -0
  854. package/src/_esm/utils/algorithms/clearPolygonDuplicateVertices.js +61 -0
  855. package/src/_esm/utils/algorithms/clearPolygonDuplicateVertices.js.map +1 -0
  856. package/src/_esm/utils/algorithms/convexHull.d.ts +23 -0
  857. package/src/_esm/utils/algorithms/convexHull.js +71 -0
  858. package/src/_esm/utils/algorithms/convexHull.js.map +1 -0
  859. package/src/_esm/utils/algorithms/convexPolygonIncircle.d.ts +41 -0
  860. package/src/_esm/utils/algorithms/convexPolygonIncircle.js +145 -0
  861. package/src/_esm/utils/algorithms/convexPolygonIncircle.js.map +1 -0
  862. package/src/_esm/utils/algorithms/createRandomizedPolygon.d.ts +14 -0
  863. package/src/_esm/utils/algorithms/createRandomizedPolygon.js +28 -0
  864. package/src/_esm/utils/algorithms/createRandomizedPolygon.js.map +1 -0
  865. package/src/_esm/utils/algorithms/delaunay.d.ts +30 -0
  866. package/src/_esm/utils/algorithms/delaunay.js +157 -0
  867. package/src/_esm/utils/algorithms/delaunay.js.map +1 -0
  868. package/src/_esm/utils/algorithms/delaunay2voronoi.d.ts +25 -0
  869. package/src/_esm/utils/algorithms/delaunay2voronoi.js +103 -0
  870. package/src/_esm/utils/algorithms/delaunay2voronoi.js.map +1 -0
  871. package/src/_esm/utils/algorithms/detectPaths.d.ts +21 -0
  872. package/src/_esm/utils/algorithms/detectPaths.js +169 -0
  873. package/src/_esm/utils/algorithms/detectPaths.js.map +1 -0
  874. package/src/_esm/utils/algorithms/findPolygonSelfIntersections.d.ts +21 -0
  875. package/src/_esm/utils/algorithms/findPolygonSelfIntersections.js +51 -0
  876. package/src/_esm/utils/algorithms/findPolygonSelfIntersections.js.map +1 -0
  877. package/src/_esm/utils/algorithms/getContrastColor.d.ts +13 -0
  878. package/src/_esm/utils/algorithms/getContrastColor.js +26 -0
  879. package/src/_esm/utils/algorithms/getContrastColor.js.map +1 -0
  880. package/src/_esm/utils/algorithms/matrixFill.d.ts +10 -0
  881. package/src/_esm/utils/algorithms/matrixFill.js +21 -0
  882. package/src/_esm/utils/algorithms/matrixFill.js.map +1 -0
  883. package/src/_esm/utils/algorithms/pixelCornersToRoundPaths.d.ts +23 -0
  884. package/src/_esm/utils/algorithms/pixelCornersToRoundPaths.js +270 -0
  885. package/src/_esm/utils/algorithms/pixelCornersToRoundPaths.js.map +1 -0
  886. package/src/_esm/utils/algorithms/splitPolygonToNonIntersecting.d.ts +28 -0
  887. package/src/_esm/utils/algorithms/splitPolygonToNonIntersecting.js +102 -0
  888. package/src/_esm/utils/algorithms/splitPolygonToNonIntersecting.js.map +1 -0
  889. package/src/_esm/utils/algorithms/sutherlandHodgman.d.ts +16 -0
  890. package/src/_esm/utils/algorithms/sutherlandHodgman.js +76 -0
  891. package/src/_esm/utils/algorithms/sutherlandHodgman.js.map +1 -0
  892. package/src/_esm/utils/cloneVertexArray.d.ts +13 -0
  893. package/src/_esm/utils/cloneVertexArray.js +23 -0
  894. package/src/_esm/utils/cloneVertexArray.js.map +1 -0
  895. package/src/_esm/utils/createRandomizedPolygon.d.ts +14 -0
  896. package/src/_esm/utils/createRandomizedPolygon.js +32 -0
  897. package/src/_esm/utils/createRandomizedPolygon.js.map +1 -0
  898. package/src/_esm/utils/datastructures/CircularIntervalSet.d.ts +83 -0
  899. package/src/_esm/utils/datastructures/CircularIntervalSet.js +162 -0
  900. package/src/_esm/utils/datastructures/CircularIntervalSet.js.map +1 -0
  901. package/src/_esm/utils/datastructures/Color.d.ts +391 -0
  902. package/src/_esm/utils/datastructures/Color.js +1067 -0
  903. package/src/_esm/utils/datastructures/Color.js.map +1 -0
  904. package/src/_esm/utils/datastructures/ColorGradient.d.ts +81 -0
  905. package/src/_esm/utils/datastructures/ColorGradient.js +175 -0
  906. package/src/_esm/utils/datastructures/ColorGradient.js.map +1 -0
  907. package/src/_esm/utils/datastructures/DataGrid2d.d.ts +53 -0
  908. package/src/_esm/utils/datastructures/DataGrid2d.js +20 -0
  909. package/src/_esm/utils/datastructures/DataGrid2d.js.map +1 -0
  910. package/src/_esm/utils/datastructures/DataGrid2dArrayMatrix.d.ts +88 -0
  911. package/src/_esm/utils/datastructures/DataGrid2dArrayMatrix.js +154 -0
  912. package/src/_esm/utils/datastructures/DataGrid2dArrayMatrix.js.map +1 -0
  913. package/src/_esm/utils/datastructures/DataGrid2dListAdapter.d.ts +59 -0
  914. package/src/_esm/utils/datastructures/DataGrid2dListAdapter.js +83 -0
  915. package/src/_esm/utils/datastructures/DataGrid2dListAdapter.js.map +1 -0
  916. package/src/_esm/utils/datastructures/GenericPath.d.ts +86 -0
  917. package/src/_esm/utils/datastructures/GenericPath.js +121 -0
  918. package/src/_esm/utils/datastructures/GenericPath.js.map +1 -0
  919. package/src/_esm/utils/datastructures/GeometryMesh.d.ts +49 -0
  920. package/src/_esm/utils/datastructures/GeometryMesh.js +57 -0
  921. package/src/_esm/utils/datastructures/GeometryMesh.js.map +1 -0
  922. package/src/_esm/utils/datastructures/Girih.d.ts +181 -0
  923. package/src/_esm/utils/datastructures/Girih.js +265 -0
  924. package/src/_esm/utils/datastructures/Girih.js.map +1 -0
  925. package/src/_esm/utils/datastructures/GirihBowtie.d.ts +37 -0
  926. package/src/_esm/utils/datastructures/GirihBowtie.js +134 -0
  927. package/src/_esm/utils/datastructures/GirihBowtie.js.map +1 -0
  928. package/src/_esm/utils/datastructures/GirihDecagon.d.ts +52 -0
  929. package/src/_esm/utils/datastructures/GirihDecagon.js +114 -0
  930. package/src/_esm/utils/datastructures/GirihDecagon.js.map +1 -0
  931. package/src/_esm/utils/datastructures/GirihHexagon.d.ts +39 -0
  932. package/src/_esm/utils/datastructures/GirihHexagon.js +182 -0
  933. package/src/_esm/utils/datastructures/GirihHexagon.js.map +1 -0
  934. package/src/_esm/utils/datastructures/GirihPenroseRhombus.d.ts +46 -0
  935. package/src/_esm/utils/datastructures/GirihPenroseRhombus.js +171 -0
  936. package/src/_esm/utils/datastructures/GirihPenroseRhombus.js.map +1 -0
  937. package/src/_esm/utils/datastructures/GirihPentagon.d.ts +37 -0
  938. package/src/_esm/utils/datastructures/GirihPentagon.js +91 -0
  939. package/src/_esm/utils/datastructures/GirihPentagon.js.map +1 -0
  940. package/src/_esm/utils/datastructures/GirihRhombus.d.ts +38 -0
  941. package/src/_esm/utils/datastructures/GirihRhombus.js +137 -0
  942. package/src/_esm/utils/datastructures/GirihRhombus.js.map +1 -0
  943. package/src/_esm/utils/datastructures/GirihTile.d.ts +283 -0
  944. package/src/_esm/utils/datastructures/GirihTile.js +290 -0
  945. package/src/_esm/utils/datastructures/GirihTile.js.map +1 -0
  946. package/src/_esm/utils/datastructures/Matrix4x4.d.ts +244 -0
  947. package/src/_esm/utils/datastructures/Matrix4x4.js +250 -0
  948. package/src/_esm/utils/datastructures/Matrix4x4.js.map +1 -0
  949. package/src/_esm/utils/datastructures/VoronoiCell.d.ts +122 -0
  950. package/src/_esm/utils/datastructures/VoronoiCell.js +182 -0
  951. package/src/_esm/utils/datastructures/VoronoiCell.js.map +1 -0
  952. package/src/_esm/utils/datastructures/interfaces.d.ts +13 -0
  953. package/src/_esm/utils/datastructures/interfaces.js +10 -0
  954. package/src/_esm/utils/datastructures/interfaces.js.map +1 -0
  955. package/src/_esm/utils/detectDarkMode.d.ts +10 -0
  956. package/src/_esm/utils/detectDarkMode.js +41 -0
  957. package/src/_esm/utils/detectDarkMode.js.map +1 -0
  958. package/src/_esm/utils/dom/components/ColorGradientPicker.d.ts +246 -0
  959. package/src/_esm/utils/dom/components/ColorGradientPicker.js +780 -0
  960. package/src/_esm/utils/dom/components/ColorGradientPicker.js.map +1 -0
  961. package/src/_esm/utils/dom/components/ColorGradientPickerJSX.d.ts +129 -0
  962. package/src/_esm/utils/dom/components/ColorGradientPickerJSX.js +582 -0
  963. package/src/_esm/utils/dom/components/ColorGradientPickerJSX.js.map +1 -0
  964. package/src/_esm/utils/dom/components/ColorGradientSelector.d.ts +118 -0
  965. package/src/_esm/utils/dom/components/ColorGradientSelector.js +376 -0
  966. package/src/_esm/utils/dom/components/ColorGradientSelector.js.map +1 -0
  967. package/src/_esm/utils/dom/components/Test.d.ts +7 -0
  968. package/src/_esm/utils/dom/components/Test.js +63 -0
  969. package/src/_esm/utils/dom/components/Test.js.map +1 -0
  970. package/src/_esm/utils/dom/getAvailableContainerSpace.d.ts +2 -0
  971. package/src/_esm/utils/dom/getAvailableContainerSpace.js +29 -0
  972. package/src/_esm/utils/dom/getAvailableContainerSpace.js.map +1 -0
  973. package/src/_esm/utils/dom/getFProp.d.ts +5 -0
  974. package/src/_esm/utils/dom/getFProp.js +12 -0
  975. package/src/_esm/utils/dom/getFProp.js.map +1 -0
  976. package/src/_esm/utils/dom/guiSizeToggler.d.ts +18 -0
  977. package/src/_esm/utils/dom/guiSizeToggler.js +44 -0
  978. package/src/_esm/utils/dom/guiSizeToggler.js.map +1 -0
  979. package/src/_esm/utils/findInVertexArray.d.ts +19 -0
  980. package/src/_esm/utils/findInVertexArray.js +29 -0
  981. package/src/_esm/utils/findInVertexArray.js.map +1 -0
  982. package/src/_esm/utils/getFProp.d.ts +5 -0
  983. package/src/_esm/utils/getFProp.js +8 -0
  984. package/src/_esm/utils/getFProp.js.map +1 -0
  985. package/src/_esm/utils/gup.d.ts +14 -0
  986. package/src/_esm/utils/gup.js +31 -0
  987. package/src/_esm/utils/gup.js.map +1 -0
  988. package/src/_esm/utils/helpers/BezierPathInteractionHelper.d.ts +272 -0
  989. package/src/_esm/utils/helpers/BezierPathInteractionHelper.js +655 -0
  990. package/src/_esm/utils/helpers/BezierPathInteractionHelper.js.map +1 -0
  991. package/src/_esm/utils/helpers/CircleHelper.d.ts +73 -0
  992. package/src/_esm/utils/helpers/CircleHelper.js +92 -0
  993. package/src/_esm/utils/helpers/CircleHelper.js.map +1 -0
  994. package/src/_esm/utils/helpers/CircleSectorHelper.d.ts +90 -0
  995. package/src/_esm/utils/helpers/CircleSectorHelper.js +113 -0
  996. package/src/_esm/utils/helpers/CircleSectorHelper.js.map +1 -0
  997. package/src/_esm/utils/helpers/TriangleHelper.d.ts +57 -0
  998. package/src/_esm/utils/helpers/TriangleHelper.js +82 -0
  999. package/src/_esm/utils/helpers/TriangleHelper.js.map +1 -0
  1000. package/src/_esm/utils/helpers/VEllipseHelper.d.ts +32 -0
  1001. package/src/_esm/utils/helpers/VEllipseHelper.js +87 -0
  1002. package/src/_esm/utils/helpers/VEllipseHelper.js.map +1 -0
  1003. package/src/_esm/utils/helpers/VEllipseSectorHelper.d.ts +52 -0
  1004. package/src/_esm/utils/helpers/VEllipseSectorHelper.js +134 -0
  1005. package/src/_esm/utils/helpers/VEllipseSectorHelper.js.map +1 -0
  1006. package/src/_esm/utils/io/DndFileHandler.d.ts +63 -0
  1007. package/src/_esm/utils/io/DndFileHandler.js +106 -0
  1008. package/src/_esm/utils/io/DndFileHandler.js.map +1 -0
  1009. package/src/_esm/utils/io/FileDrop.d.ts +110 -0
  1010. package/src/_esm/utils/io/FileDrop.js +175 -0
  1011. package/src/_esm/utils/io/FileDrop.js.map +1 -0
  1012. package/src/_esm/utils/parsers/LinearColorGradientParser.d.ts +78 -0
  1013. package/src/_esm/utils/parsers/LinearColorGradientParser.js +223 -0
  1014. package/src/_esm/utils/parsers/LinearColorGradientParser.js.map +1 -0
  1015. package/src/_esm/utils/parsers/OBJParser.d.ts +25 -0
  1016. package/src/_esm/utils/parsers/OBJParser.js +78 -0
  1017. package/src/_esm/utils/parsers/OBJParser.js.map +1 -0
  1018. package/src/_esm/utils/parsers/STLParser.d.ts +61 -0
  1019. package/src/_esm/utils/parsers/STLParser.js +179 -0
  1020. package/src/_esm/utils/parsers/STLParser.js.map +1 -0
  1021. package/src/_esm/utils/parsers/svg/parseSVGPathData.d.ts +27 -0
  1022. package/src/_esm/utils/parsers/svg/parseSVGPathData.js +486 -0
  1023. package/src/_esm/utils/parsers/svg/parseSVGPathData.js.map +1 -0
  1024. package/src/_esm/utils/parsers/svg/splitSVGPathData.d.ts +20 -0
  1025. package/src/_esm/utils/parsers/svg/splitSVGPathData.js +53 -0
  1026. package/src/_esm/utils/parsers/svg/splitSVGPathData.js.map +1 -0
  1027. package/src/_esm/utils/parsers/svg/types.d.ts +63 -0
  1028. package/src/_esm/utils/parsers/svg/types.js +17 -0
  1029. package/src/_esm/utils/parsers/svg/types.js.map +1 -0
  1030. package/src/cjs/PlotBoilerplate.d.ts +11 -1
  1031. package/src/cjs/PlotBoilerplate.js +23 -7
  1032. package/src/cjs/PlotBoilerplate.js.map +1 -1
  1033. package/src/cjs/VertexListeners.d.ts +2 -1
  1034. package/src/cjs/VertexListeners.js +5 -1
  1035. package/src/cjs/VertexListeners.js.map +1 -1
  1036. package/src/cjs/draw.d.ts +18 -2
  1037. package/src/cjs/draw.js +21 -2
  1038. package/src/cjs/draw.js.map +1 -1
  1039. package/src/cjs/drawgl.d.ts +18 -3
  1040. package/src/cjs/drawgl.js +19 -2
  1041. package/src/cjs/drawgl.js.map +1 -1
  1042. package/src/cjs/drawutilssvg.d.ts +19 -1
  1043. package/src/cjs/drawutilssvg.js +28 -5
  1044. package/src/cjs/drawutilssvg.js.map +1 -1
  1045. package/src/cjs/index.d.ts +75 -0
  1046. package/src/cjs/index.js +84 -0
  1047. package/src/cjs/index.js.map +1 -1
  1048. package/src/cjs/interfaces/DrawLib.d.ts +18 -1
  1049. package/src/cjs/interfaces/DrawLib.js +2 -0
  1050. package/src/cjs/interfaces/DrawLib.js.map +1 -1
  1051. package/src/cjs/utils/Params.d.ts +3 -2
  1052. package/src/cjs/utils/Params.js +11 -3
  1053. package/src/cjs/utils/Params.js.map +1 -1
  1054. package/src/cjs/utils/WebColors.d.ts +2 -1
  1055. package/src/cjs/utils/WebColors.js +15 -2
  1056. package/src/cjs/utils/WebColors.js.map +1 -1
  1057. package/src/cjs/utils/WebColorsContrast.d.ts +1 -1
  1058. package/src/cjs/utils/algorithms/HobbyPath.js +13 -16
  1059. package/src/cjs/utils/algorithms/HobbyPath.js.map +1 -1
  1060. package/src/cjs/utils/helpers/BezierResizeHelper.d.ts +144 -0
  1061. package/src/cjs/utils/helpers/BezierResizeHelper.js +319 -0
  1062. package/src/cjs/utils/helpers/BezierResizeHelper.js.map +1 -0
  1063. package/src/esm/PlotBoilerplate.d.ts +11 -1
  1064. package/src/esm/PlotBoilerplate.js +23 -7
  1065. package/src/esm/PlotBoilerplate.js.map +1 -1
  1066. package/src/esm/VertexListeners.d.ts +2 -1
  1067. package/src/esm/VertexListeners.js +5 -1
  1068. package/src/esm/VertexListeners.js.map +1 -1
  1069. package/src/esm/draw.d.ts +18 -2
  1070. package/src/esm/draw.js +21 -2
  1071. package/src/esm/draw.js.map +1 -1
  1072. package/src/esm/drawgl.d.ts +18 -3
  1073. package/src/esm/drawgl.js +19 -2
  1074. package/src/esm/drawgl.js.map +1 -1
  1075. package/src/esm/drawutilssvg.d.ts +19 -1
  1076. package/src/esm/drawutilssvg.js +28 -5
  1077. package/src/esm/drawutilssvg.js.map +1 -1
  1078. package/src/esm/index.d.ts +75 -0
  1079. package/src/esm/index.js +84 -0
  1080. package/src/esm/index.js.map +1 -1
  1081. package/src/esm/interfaces/DrawLib.d.ts +18 -1
  1082. package/src/esm/interfaces/DrawLib.js +2 -0
  1083. package/src/esm/interfaces/DrawLib.js.map +1 -1
  1084. package/src/esm/utils/Params.d.ts +3 -2
  1085. package/src/esm/utils/Params.js +11 -3
  1086. package/src/esm/utils/Params.js.map +1 -1
  1087. package/src/esm/utils/WebColors.d.ts +2 -1
  1088. package/src/esm/utils/WebColors.js +15 -2
  1089. package/src/esm/utils/WebColors.js.map +1 -1
  1090. package/src/esm/utils/WebColorsContrast.d.ts +1 -1
  1091. package/src/esm/utils/algorithms/HobbyPath.js +13 -16
  1092. package/src/esm/utils/algorithms/HobbyPath.js.map +1 -1
  1093. package/src/esm/utils/helpers/BezierResizeHelper.d.ts +144 -0
  1094. package/src/esm/utils/helpers/BezierResizeHelper.js +314 -0
  1095. package/src/esm/utils/helpers/BezierResizeHelper.js.map +1 -0
  1096. package/src/ts/PlotBoilerplate.ts +37 -11
  1097. package/src/ts/VertexListeners.ts +5 -1
  1098. package/src/ts/draw.ts +32 -2
  1099. package/src/ts/drawgl.ts +38 -3
  1100. package/src/ts/drawutilssvg.ts +33 -6
  1101. package/src/ts/index.ts +94 -0
  1102. package/src/ts/interfaces/DrawLib.ts +19 -1
  1103. package/src/ts/utils/Params.ts +11 -3
  1104. package/src/ts/utils/WebColors.ts +15 -2
  1105. package/src/ts/utils/algorithms/HobbyPath.ts +248 -272
  1106. package/src/ts/utils/helpers/BezierResizeHelper.ts +390 -0
  1107. /package/src/{cjs → _cjs}/utils/_gup.js_ +0 -0
@@ -0,0 +1,428 @@
1
+ "use strict";
2
+ /**
3
+ * Calculate the inset of any non-self-overlapping polygon.
4
+ *
5
+ * The polygon may be
6
+ * - convex or non-convex
7
+ * - self-intersecting
8
+ *
9
+ * The algorithms will
10
+ * - first construct a general offset polygon which may be corrupt due to ouf-of-bounds or in illegal-area problems.
11
+ * - then dissect the possibly self-intersecting inset polygon into separate simple polygons.
12
+ * - then detect for each if it's out of bounds or in some illegal area.
13
+ * - keeping only the valid ones.
14
+ *
15
+ * @required sutherlandHodgman
16
+ * @required splitPolygonToNonIntersecting
17
+ *
18
+ * @author Ikaros Kappler
19
+ * @date 2024-11-04 Ported the script to a class.
20
+ * @modified 2024-12-02 Ported to Typescript.
21
+ */
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.PolygonInset = void 0;
24
+ const Line_1 = require("../../Line");
25
+ const Polygon_1 = require("../../Polygon");
26
+ const Vector_1 = require("../../Vector");
27
+ const splitPolygonToNonIntersecting_1 = require("./splitPolygonToNonIntersecting");
28
+ const sutherlandHodgman_1 = require("./sutherlandHodgman");
29
+ class PolygonInset {
30
+ /**
31
+ * Constructs a new PolygonInset instance with the underlying given polygon to work with.
32
+ *
33
+ * Please note that the algorithm will reverse the vertex order if the given polygon
34
+ * is not clockwise.
35
+ *
36
+ * @param {Polygon} polygon - The polygon to calculate the offset for.
37
+ */
38
+ constructor(polygon) {
39
+ /**
40
+ * The original polygon as a sequence of line objects. This is easier to use than a list of points.
41
+ */
42
+ this.originalPolygonLines = [];
43
+ /**
44
+ * The simple inset lines, directly generated by offsetting the original polygon lines by the given amount.
45
+ */
46
+ this.insetLines = [];
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
+ this.insetPolygonLines = [];
52
+ /**
53
+ * The inset polygon split up into simple non-self-intersecting polygons.
54
+ * Represented as a list of vertex-lists. Each sub-list represents a single polygon.
55
+ */
56
+ this.splitPolygons = [];
57
+ this.polygon = polygon;
58
+ }
59
+ /**
60
+ * This is the main method.
61
+ *
62
+ * Call this with the required option params to compute your desired offset polygon(s).
63
+ *
64
+ * @param {number} options.innerPolygonOffset - The offset to use. Should be a positive number. Correct result for negative numbers are not guaranteed.
65
+ * @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.
66
+ * @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.
67
+ * @returns {Array<Array<Vertex>>} A list of vertex-lists, each one representing a simple polygon from the offset-polygons.
68
+ */
69
+ computeOutputPolygons(options) {
70
+ var _a;
71
+ // No offset implies: no change.
72
+ if (options.innerPolygonOffset === 0) {
73
+ return [this.polygon.vertices]; // No change
74
+ }
75
+ // This algorithm only works with polygon in clockwise vertex order.
76
+ // If the polygon is not clockwise: revert.
77
+ PolygonInset._assertPolygonIsClockwise(this.polygon.vertices);
78
+ // The potential result polygons might overlap with other parts. These are not part of the desired
79
+ // result set and need to be filtered out.
80
+ // Define an intersection-epsilon: minimal critical overlaps might result of rounding errors and
81
+ // don't represent real overlaps.
82
+ const intersectionEpsilon = options.intersectionEpsilon;
83
+ // This will create a deep clone
84
+ this.optimizedPolygon = this.polygon.clone();
85
+ // In case the potential result polygons are self intersecting we need to split them apart later.
86
+ // Using the initial vertex number as the upper split limit should be safe here.
87
+ const maxPolygonSplitDepth = (_a = options === null || options === void 0 ? void 0 : options.maxPolygonSplitDepth) !== null && _a !== void 0 ? _a : this.optimizedPolygon.vertices.length;
88
+ // For calculations of initial inset rectagles we need the original polygon's lines.
89
+ this.originalPolygonLines = this.optimizedPolygon.getEdges();
90
+ this._collectInsetLines(this.originalPolygonLines, options.innerPolygonOffset);
91
+ this._collectInsetPolygonLines(this.insetLines);
92
+ this.insetRectanglePolygons = this._collectRectangularPolygonInsets(this.originalPolygonLines, this.insetLines);
93
+ // Optimize inset polygon AND the insetRectanglePolygons?
94
+ if (options.removeEars) {
95
+ // console.log("Remove ears");
96
+ // This will modify both params!
97
+ PolygonInset._optimizeInsetPolygon(this.optimizedPolygon, this.insetRectanglePolygons);
98
+ }
99
+ // Create a naive first inset polygon for later optimization.
100
+ this.insetPolygon = PolygonInset.convertToBasicInsetPolygon(this.insetPolygonLines);
101
+ // // Optimize inset polygon AND the insetRectanglePolygons!
102
+ // if (options.removeEars) {
103
+ // // This will modify both params!
104
+ // PolygonInset._optimizeInsetPolygon(this.insetPolygon, this.insetRectanglePolygons);
105
+ // }
106
+ // The resulting polygon will likely intersect itself multiple times.
107
+ // For further calculations split apart into non-self-intersecting.
108
+ this.splitPolygons = (0, splitPolygonToNonIntersecting_1.splitPolygonToNonIntersecting)(this.insetPolygon.vertices, maxPolygonSplitDepth, true); // insideBoundsOnly
109
+ // This method was initially meant to calculate inset-polygons only.
110
+ // But with a simple filter we COULD also create outer offset-polygons.
111
+ // Maybe this is a task for the future
112
+ // console.log("DEBUG", DEBUG);
113
+ // DEBUG("TEST");
114
+ if (options.innerPolygonOffset < 0) {
115
+ // return [this.polygon.vertices]; // No change
116
+ }
117
+ // console.log("splitPolygons.length", this.splitPolygons.length);
118
+ // Assert all polygons are clockwise!
119
+ PolygonInset._assertAllPolygonsAreClockwise(this.splitPolygons);
120
+ this.filteredSplitPolygons = PolygonInset._filterInnerSplitPolygonsByCoverage(this.splitPolygons, this.insetRectanglePolygons, intersectionEpsilon);
121
+ // console.log("[0] filteredSplitPolygons.length", this.filteredSplitPolygons.length);
122
+ this.filteredSplitPolygons = PolygonInset._filterInnerSplitPolygonsByOriginalBounds(this.filteredSplitPolygons, this.polygon);
123
+ // console.log("[1] filteredSplitPolygons.length", this.filteredSplitPolygons.length);
124
+ return this.filteredSplitPolygons;
125
+ }
126
+ /**
127
+ * This method transforms each polygon line into a new line
128
+ * by moving it to the inside direction of the polygon (by the given `insetAmount`).
129
+ *
130
+ * @param {Array<Line>} polygonLines
131
+ * @param {number} insetAmount
132
+ * @return {Array<Line>} The transformed lines. The result array has the same length and order as the input array.
133
+ */
134
+ _collectInsetLines(polygonLines, insetAmount) {
135
+ const insetLines = []; // Array<Line>
136
+ for (var i = 0; i < polygonLines.length; i++) {
137
+ const line = polygonLines[i];
138
+ const perp = new Vector_1.Vector(line.a, line.b).perp();
139
+ const t = insetAmount / perp.length();
140
+ const offsetOnPerp = perp.vertAt(t);
141
+ const diff = line.a.difference(offsetOnPerp);
142
+ // Polygon is is clockwise order.
143
+ // Move line inside polygon
144
+ const movedLine = line.clone();
145
+ movedLine.a.add(diff);
146
+ movedLine.b.add(diff);
147
+ insetLines.push(movedLine);
148
+ }
149
+ this.insetLines = insetLines;
150
+ return insetLines;
151
+ }
152
+ /**
153
+ * For a sequence of inset polygon lines get the inset polygon by detecting
154
+ * useful intersections (by cropping or extending them).
155
+ *
156
+ * The returned lines resemble a new polygon.
157
+ *
158
+ * Please note that the returned polygon can be self-intersecting!
159
+ *
160
+ * @param {Array<Line>} insetLines
161
+ * @returns {Array<Line>} The cropped or exented inset polygon lines.
162
+ */
163
+ _collectInsetPolygonLines(insetLines) {
164
+ if (insetLines.length <= 1) {
165
+ return [];
166
+ }
167
+ const insetPolygonLines = [];
168
+ // Collect first intersection at beginning :)
169
+ const lastInsetLine = insetLines[insetLines.length - 1];
170
+ const firstInsetLine = insetLines[0];
171
+ let lastIntersectionPoint = lastInsetLine.intersection(firstInsetLine); // Must not be null
172
+ for (var i = 0; i < insetLines.length; i++) {
173
+ const insetLine = insetLines[i];
174
+ const nextInsetLine = insetLines[(i + 1) % insetLines.length];
175
+ // Find desired intersection
176
+ const intersection = insetLine.intersection(nextInsetLine);
177
+ if (intersection == null) {
178
+ console.warn("[collectInsetPolygon] WARN intersection line must not be null", i, nextInsetLine);
179
+ }
180
+ else {
181
+ // By construction they MUST have any non-null intersection!
182
+ if (lastIntersectionPoint != null) {
183
+ const resultLine = new Line_1.Line(lastIntersectionPoint, intersection);
184
+ insetPolygonLines.push(resultLine);
185
+ }
186
+ }
187
+ lastIntersectionPoint = intersection;
188
+ }
189
+ // Store intermediate result for later retrieval.
190
+ this.insetPolygonLines = insetPolygonLines;
191
+ return insetPolygonLines;
192
+ }
193
+ /**
194
+ * Converts two lists (same length) of original polygon lines and inset lines (interpreted as
195
+ * pairs) to a list of rectangular polyons.
196
+ *
197
+ * @static
198
+ * @param {Array<Line>} originalPolygonLines
199
+ * @param {Array<Line>} insetLines
200
+ * @returns {Array<Polygon>} A list of rectangular polygons; each returned polyon has exactly four vertices.
201
+ */
202
+ _collectRectangularPolygonInsets(originalPolygonLines, insetLines) {
203
+ // Convert to rectangle polygon
204
+ const insetRectanglePolygons = originalPolygonLines.map((polygonLine, index) => {
205
+ const rectPolygon = new Polygon_1.Polygon([], false);
206
+ // Add in original order
207
+ rectPolygon.vertices.push(polygonLine.a.clone());
208
+ rectPolygon.vertices.push(polygonLine.b.clone());
209
+ // Add in reverse order
210
+ const insetLine = insetLines[index];
211
+ rectPolygon.vertices.push(insetLine.b.clone());
212
+ rectPolygon.vertices.push(insetLine.a.clone());
213
+ return rectPolygon;
214
+ });
215
+ return insetRectanglePolygons;
216
+ }
217
+ /**
218
+ * Converts a sequence of (hopefully adjacent) lines to a polygon by using all second line vertices `b`.
219
+ *
220
+ * @static
221
+ * @param insetPolygonLines
222
+ * @returns
223
+ */
224
+ static convertToBasicInsetPolygon(insetPolygonLines) {
225
+ const insetPolygon = new Polygon_1.Polygon([], false);
226
+ insetPolygonLines.forEach((insetLine) => {
227
+ insetPolygon.vertices.push(insetLine.a);
228
+ });
229
+ return insetPolygon;
230
+ }
231
+ /**
232
+ * Filter split polygons: only keep those whose vertices are all contained inside the original polygon.
233
+ * Reason: scaling too much will result in excessive translation beyond the opposite bounds of the polygon (like more than 200% of possible insetting).
234
+ *
235
+ * @param {Array<Array<Vertex>>} splitPolygonsVertices
236
+ * @param {Polygon} originalPolygon
237
+ * @return {Array<Array<Vertex>>} The filtered polygon list.
238
+ */
239
+ static _filterInnerSplitPolygonsByOriginalBounds(splitPolygonsVertices, originalPolygon) {
240
+ return splitPolygonsVertices.filter((splitPolyVerts, _splitPolyIndex) => {
241
+ return splitPolyVerts.every((splitPVert) => {
242
+ return originalPolygon.containsVert(splitPVert);
243
+ });
244
+ });
245
+ }
246
+ /**
247
+ * Filter split polygons: only keep those that do not (signifiantly) interset with any rectangles.
248
+ *
249
+ * @static
250
+ * @param {Array<Array<Vertex>>} splitPolygonsVertices
251
+ * @param {Array<Polygon>} insetRectanglePolygons
252
+ * @param {number?=1.0} intersectionEpsilon - (optional, default is 1.0) A epsislon to define a tolerance for checking if two polygons intersect.
253
+ */
254
+ static _filterInnerSplitPolygonsByCoverage(splitPolygonsVertices, insetRectanglePolygons, intersectionEpsilon) {
255
+ // TEST: Add some jitter
256
+ // splitPolygonsVertices.forEach(split => {
257
+ // split.forEach(vert => {
258
+ // vert.x += (0.5 - Math.random()) * 0.01;
259
+ // vert.y += (0.5 - Math.random()) * 0.01;
260
+ // });
261
+ // });
262
+ splitPolygonsVertices.forEach((split, index) => {
263
+ const isCW = Polygon_1.Polygon.utils.isClockwise(split);
264
+ if (!isCW) {
265
+ console.warn("------ split is not isClockwise!", index, isCW);
266
+ }
267
+ });
268
+ insetRectanglePolygons.forEach((rect, index) => {
269
+ const isCW = rect.isClockwise();
270
+ if (!isCW) {
271
+ console.warn("------ rect is not isClockwise!", index, isCW);
272
+ }
273
+ });
274
+ const eps = intersectionEpsilon === undefined || typeof intersectionEpsilon === "undefined" ? 1.0 : intersectionEpsilon;
275
+ return splitPolygonsVertices.filter((splitPolyVerts, _splitPolyIndex) => {
276
+ const intersectionTestCallback = PolygonInset._hasIntersectionCallback(splitPolyVerts, eps, _splitPolyIndex);
277
+ const intersectsWithAnyRect = insetRectanglePolygons.some(intersectionTestCallback);
278
+ return !intersectsWithAnyRect;
279
+ });
280
+ }
281
+ /**
282
+ * This private method will reverse each polygon's vertex order that's not clockwise.
283
+ *
284
+ * @param {Array<Vertex[]>} polygons
285
+ */
286
+ static _assertAllPolygonsAreClockwise(polygons) {
287
+ polygons.forEach((polygonVerts, _polyIndex) => {
288
+ // if (!Polygon.utils.isClockwise(polygonVerts)) {
289
+ // polygonVerts.reverse(); // Attention: this happens in-place (Array.reverse is destructive!)
290
+ // }
291
+ PolygonInset._assertPolygonIsClockwise(polygonVerts);
292
+ });
293
+ }
294
+ /**
295
+ * This private method will revert the vertex order if the polygon is not clockwise.
296
+ *
297
+ * @param {Vertex[]} polygonVerts
298
+ */
299
+ static _assertPolygonIsClockwise(polygonVerts) {
300
+ if (!Polygon_1.Polygon.utils.isClockwise(polygonVerts)) {
301
+ polygonVerts.reverse(); // Attention: this happens in-place (Array.reverse is destructive!)
302
+ }
303
+ }
304
+ }
305
+ exports.PolygonInset = PolygonInset;
306
+ /**
307
+ * Optimize the inset polygon by removing critical `ear` edges.
308
+ * Such an is identified by: the edge itself is completely located inside its neighbours inset rectangle.
309
+ *
310
+ * In this process multiple edges from the ear might be dropped and two adjacent edges get a new
311
+ * common intersection point.
312
+ *
313
+ * Note: this method is not working as expected in all cases and quite experimental.
314
+ *
315
+ * @param insetPolygon
316
+ * @param insetRectangles
317
+ */
318
+ PolygonInset._optimizeInsetPolygon = (insetPolygon, insetRectangles) => {
319
+ // Locate edge that can be removed:
320
+ var earEdgeIndex = -1;
321
+ var maxLimit = insetPolygon.vertices.length;
322
+ var i = 0;
323
+ while (i++ < maxLimit &&
324
+ insetPolygon.vertices.length > 3 &&
325
+ (earEdgeIndex = PolygonInset._locateExcessiveEarEdge(insetPolygon, insetRectangles)) != -1) {
326
+ // console.log("REMOVE EAR EDGE", earEdgeIndex);
327
+ // As this is an ear edge: don't just remove the vertex.
328
+ // i) Remove the vertex and calculate the new intersection point of neighbour edges.
329
+ // ii) Update neightbour rectangles
330
+ var leftEdge = insetPolygon.getEdgeAt(earEdgeIndex - 2);
331
+ var rightEdge = insetPolygon.getEdgeAt(earEdgeIndex + 1);
332
+ var newIntersection = leftEdge.intersection(rightEdge);
333
+ newIntersection && rightEdge.a.set(newIntersection);
334
+ // Update rectangles
335
+ // ...
336
+ insetPolygon.vertices.splice(earEdgeIndex, 1);
337
+ insetRectangles.splice(earEdgeIndex, 1);
338
+ }
339
+ // TODO remove if not -1
340
+ };
341
+ PolygonInset._locateExcessiveEarEdge = (insetPolygon, insetRectangles) => {
342
+ for (var i = 0; i < insetPolygon.vertices.length; i++) {
343
+ const thisEdge = insetPolygon.getEdgeAt(i);
344
+ const leftIndex = i == 0 ? insetPolygon.vertices.length - 1 : i - 1;
345
+ // const rightIndex = i + 1 >= insetPolygon.vertices.length ? 0 : i + 1;
346
+ const leftRect = insetRectangles[leftIndex];
347
+ // const rightRect = insetRectangles[rightIndex];
348
+ const leftRectContainsThisEdge = PolygonInset._rectangleFullyContainsLine(leftRect, thisEdge);
349
+ if (leftRectContainsThisEdge) {
350
+ return i;
351
+ }
352
+ const leftEdge = insetPolygon.getEdgeAt(leftIndex);
353
+ const thisRect = insetRectangles[i];
354
+ const thisRectContainsLeftEdge = PolygonInset._rectangleFullyContainsLine(thisRect, leftEdge);
355
+ if (thisRectContainsLeftEdge) {
356
+ return i; // leftIndex;
357
+ }
358
+ }
359
+ return -1;
360
+ };
361
+ // Pre: rectangle.vertices.length === 4
362
+ PolygonInset._rectangleFullyContainsLine = (rectangle, edge) => {
363
+ var rectWidth = rectangle.getEdgeAt(0).length();
364
+ var rectHeight = rectangle.getEdgeAt(1).length();
365
+ // Both line corners must be at least 1% within the rectangle limits.
366
+ const eps = Math.min(rectWidth, rectHeight) / 100;
367
+ const edgeLen = edge.length();
368
+ var epsPointA = edge.vertAt(0.01); // edgeLen * eps);
369
+ var epsPointB = edge.vertAt(0.99); // 1.0 - edgeLen * eps);
370
+ var centerPoint = edge.vertAt(0.5);
371
+ return rectangle.containsVerts([epsPointA, epsPointB, centerPoint]);
372
+ };
373
+ /**
374
+ * For simplification I'm using a callback generator function here.
375
+ *
376
+ * @param splitPolyVerts
377
+ * @param eps
378
+ * @param _splitPolyIndex
379
+ * @returns {Function} The callback for an `Array.some` parameter.
380
+ */
381
+ PolygonInset._hasIntersectionCallback = (splitPolyVerts, eps, _splitPolyIndex) => (rectanglePoly, _rectanglePolyIndex) => {
382
+ // const intersectionVerts: XYCoords[] = sutherlandHodgman(splitPolyVerts, rectanglePoly.vertices);
383
+ const intersectionVerts = (0, sutherlandHodgman_1.sutherlandHodgman)(rectanglePoly.vertices, splitPolyVerts);
384
+ // var intersection = GreinerHorman.intersection(sourcePolygon.vertices, clipPolygon.vertices);
385
+ // const uniqueIntersectionVerts = clearDuplicateVertices(intersectionVerts);
386
+ const intersectionAreaSize = Polygon_1.Polygon.utils.area(intersectionVerts);
387
+ if (intersectionAreaSize < 0) {
388
+ console.warn("%cFound a polygon split with negative area. Counterclockwise against all odds?", "color: red; background: black;", // font-size: 30px",
389
+ "intersectionAreaSize", intersectionAreaSize, "_splitPolyIndex", _splitPolyIndex, "_rectanglePolyIndex", _rectanglePolyIndex, "intersectionVerts", intersectionVerts
390
+ // "uniqueIntersectionVerts",
391
+ // uniqueIntersectionVerts
392
+ );
393
+ }
394
+ // if (intersectionAreaSize >= eps) {
395
+ // console.log(
396
+ // "%cFound a polygon split for removal",
397
+ // "color: orange; background: grey;", // font-size: 30px",
398
+ // "intersectionAreaSize",
399
+ // intersectionAreaSize,
400
+ // "_splitPolyIndex",
401
+ // _splitPolyIndex,
402
+ // "_rectanglePolyIndex",
403
+ // _rectanglePolyIndex,
404
+ // "intersectionVerts",
405
+ // intersectionVerts
406
+ // // "uniqueIntersectionVerts",
407
+ // // uniqueIntersectionVerts
408
+ // );
409
+ // }
410
+ // if (intersectionAreaSize < eps) {
411
+ // // console.log("%cHello", "color: green; background: yellow; font-size: 30px");
412
+ // console.log(
413
+ // "Polygon split can be kept. Area is position but below epsilon.",
414
+ // "intersectionAreaSize",
415
+ // intersectionAreaSize,
416
+ // "_splitPolyIndex",
417
+ // _splitPolyIndex,
418
+ // "_rectanglePolyIndex",
419
+ // _rectanglePolyIndex,
420
+ // "intersectionVerts",
421
+ // intersectionVerts
422
+ // // "uniqueIntersectionVerts",
423
+ // // uniqueIntersectionVerts
424
+ // );
425
+ // }
426
+ return intersectionAreaSize >= eps;
427
+ };
428
+ //# sourceMappingURL=PolygonInset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolygonInset.js","sourceRoot":"","sources":["../../../ts/utils/algorithms/PolygonInset.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Find the outer hull outlines of a (not necessarily full connected) polygon tesellation.
3
+ *
4
+ * The method `findAllOutlinesGraph` will return a simple graph containing all vertices and edges
5
+ * that belong to the outer hull.
6
+ *
7
+ * The method `findAllOutlinesPolygons` will detect connected paths inside the graph and return
8
+ * an array of Polygons.
9
+ *
10
+ *
11
+ * @require detectPaths
12
+ *
13
+ * @author Ikaros Kappler
14
+ * @date 2026-01-20
15
+ * @version 1.0.0
16
+ */
17
+ import { Polygon } from "../../Polygon";
18
+ import { Vertex } from "../../Vertex";
19
+ import { IndexPair } from "../datastructures/interfaces";
20
+ export interface PolygonTesselationOutlinesOptions {
21
+ tolerance?: number;
22
+ removeUnusedVertices?: boolean;
23
+ }
24
+ export interface TesselationGraph {
25
+ vertices: Array<Vertex>;
26
+ edges: Array<IndexPair>;
27
+ }
28
+ /**
29
+ * Convert any non-intersecting tesselation to a graph.
30
+ * Adjadent tiles (polygons) will result in duplicate edges.
31
+ *
32
+ * @param {Polygon[]} polygons - The polygon tesselation to use.
33
+ * @return {TesselationGraph} A tesselation graph.
34
+ */
35
+ export declare const polygonTesselationToGraph: (polygons: Polygon[]) => TesselationGraph;
36
+ /**
37
+ * A class to calculate the tesselation's outer hull.
38
+ */
39
+ export declare class PolygonTesselationOutlines {
40
+ static readonly DEFAULT_TOLERANCE = 0.01;
41
+ private readonly polygons;
42
+ private readonly tolerance;
43
+ private readonly removeUnusedVertices;
44
+ /**
45
+ * @constructor
46
+ * @param {Polygon[]} polygons - The polygon tesselation to use.
47
+ * @param {PolygonTesselationOutlinesOptions} options - (optional)
48
+ */
49
+ constructor(polygons: Polygon[], options?: PolygonTesselationOutlinesOptions);
50
+ /**
51
+ * Clears duplicate edges.
52
+ *
53
+ * Note: this works only for duplicates. Triplets will not be removed.
54
+ *
55
+ * @name __eliminateDuplicateEdges
56
+ * @private
57
+ * @memberof TesselationGraph
58
+ * @instance
59
+ * @param {TesselationGraph} tesselationGraph - The tesselation graph to remove duplicate edges from.
60
+ * @return {TesselationGraph} A new tesselation graph with cleaned up edges.
61
+ */
62
+ private __eliminateDuplicateEdges;
63
+ /**
64
+ * Locate some edge that adjacent to the given vertex index
65
+ *
66
+ * @name __locateEdgeWithVertIndex
67
+ * @private
68
+ * @memberof TesselationGraph
69
+ * @instance
70
+ * @param {number} vertIndex - The vertex index to find an edge for.
71
+ * @param {TesselationGraph} tesselationGraph - The tesselation graph to remove unused vertices from.
72
+ * @return {number} The edge index that's adjacent to the given vertex index.
73
+ * @return -1 if no such edge is found.
74
+ */
75
+ private __locateEdgeWithVertIndex;
76
+ /**
77
+ * Removes all unused vertices from the graph and re-matps the edges.
78
+ *
79
+ * @name __removeUnusedVertices
80
+ * @private
81
+ * @memberof TesselationGraph
82
+ * @instance
83
+ * @param {TesselationGraph} tesselationGraph - The tesselation graph to remove unused vertices from.
84
+ * @return {TesselationGraph} A new tesselation graph.
85
+ */
86
+ private __removeUnusedVertices;
87
+ /**
88
+ * Creates a tesselation graph and removes all inner edges.
89
+ *
90
+ * @name findAllOutlinesGraph
91
+ * @private
92
+ * @memberof PolygonTesselationOutlines
93
+ * @instance
94
+ * @return {TesselationGraph} A tesselation graph containing the outer hull edges only.
95
+ */
96
+ findAllOutlinesGraph(): TesselationGraph;
97
+ /**
98
+ * Convert any generic path to a polygon. Each path segment (start point and end point)
99
+ * are interpreted as a linear segment here.
100
+ *
101
+ * @name __convertGenericPathToPolygon
102
+ * @private
103
+ * @memberof PolygonTesselationOutlines
104
+ * @instance
105
+ * @param {GenericPath} path - The path to convert.
106
+ */
107
+ private __convertGenericPathToPolygon;
108
+ /**
109
+ * Creates a tesselation graph and removes all inner edges.
110
+ *
111
+ * @name findAllOutlinesPolygons
112
+ * @private
113
+ * @memberof PolygonTesselationOutlines
114
+ * @instance
115
+ * @param {TesselationGraph} tesselationGraph - Find all outlines on the tesselation graph.
116
+ */
117
+ findAllOutlinesPolygons(tesselationGraph: TesselationGraph): Array<Polygon>;
118
+ /**
119
+ * Checks if two vertices are equal – regarding to the current tolerance setting.
120
+ *
121
+ * @name __isEqualPoint
122
+ * @private
123
+ * @memberof PolygonTesselationOutlines
124
+ * @instance
125
+ * @param {boolean} vertA - The first point.
126
+ * @param {boolean} vertB - The second point.
127
+ * @return True if the vertices are equal.
128
+ */
129
+ private __isEqualPoint;
130
+ /**
131
+ * Checks if two edges (identified as two pairs of vertices) are equal – regarding to the
132
+ * current tolerance setting.
133
+ *
134
+ * @name __isEqualEdge
135
+ * @private
136
+ * @memberof PolygonTesselationOutlines
137
+ * @instance
138
+ * @param {boolean} edgeAvertA - The first edge's point A.
139
+ * @param {boolean} edgeAvertB - The first edge's point B.
140
+ * @param {boolean} edgeBvertA - The second edge's point A.
141
+ * @param {boolean} edgeBvertB - The second edge's point B.
142
+ * @return True if the edges are equal.
143
+ */
144
+ private __isEqualEdge;
145
+ }