plotboilerplate 1.28.0 → 1.29.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 (1087) hide show
  1. package/README.md +8 -0
  2. package/dist/index.esm.js +335 -39
  3. package/dist/index.esm.js.map +1 -1
  4. package/dist/index.esm.min.js +1 -1
  5. package/dist/index.esm.min.js.map +1 -1
  6. package/dist/plotboilerplate.browser.min.js +1 -1
  7. package/dist/plotboilerplate.browser.min.js.map +1 -1
  8. package/dist/plotboilerplate.js +335 -37
  9. package/dist/plotboilerplate.min.js +1 -1
  10. package/package.json +1 -1
  11. package/src/cjs/Circle.d.ts +70 -3
  12. package/src/cjs/Circle.js +159 -4
  13. package/src/cjs/Circle.js.map +1 -1
  14. package/src/cjs/Triangle.d.ts +40 -4
  15. package/src/cjs/Triangle.js +127 -31
  16. package/src/cjs/Triangle.js.map +1 -1
  17. package/src/cjs/VertTuple.d.ts +4 -1
  18. package/src/cjs/VertTuple.js +6 -1
  19. package/src/cjs/VertTuple.js.map +1 -1
  20. package/src/cjs/Vertex.d.ts +25 -2
  21. package/src/cjs/Vertex.js +43 -1
  22. package/src/cjs/Vertex.js.map +1 -1
  23. package/src/cjs/utils/algorithms/minimalContainingCircleFromPoints.d.ts +21 -0
  24. package/src/cjs/utils/algorithms/minimalContainingCircleFromPoints.js +73 -0
  25. package/src/cjs/utils/algorithms/minimalContainingCircleFromPoints.js.map +1 -0
  26. package/src/cjs/utils/algorithms/minimalEnclosingCircleFromPoints.d.ts +21 -0
  27. package/src/cjs/utils/algorithms/minimalEnclosingCircleFromPoints.js +73 -0
  28. package/src/cjs/utils/algorithms/minimalEnclosingCircleFromPoints.js.map +1 -0
  29. package/src/cjs/utils/algorithms/pointsMinimalContainingCircle.d.ts +21 -0
  30. package/src/cjs/utils/algorithms/pointsMinimalContainingCircle.js +73 -0
  31. package/src/cjs/utils/algorithms/pointsMinimalContainingCircle.js.map +1 -0
  32. package/src/cjs/utils/algorithms/solveApollonius3.d.ts +69 -0
  33. package/src/cjs/utils/algorithms/solveApollonius3.js +118 -0
  34. package/src/cjs/utils/algorithms/solveApollonius3.js.map +1 -0
  35. package/src/esm/Circle.d.ts +70 -3
  36. package/src/esm/Circle.js +159 -4
  37. package/src/esm/Circle.js.map +1 -1
  38. package/src/esm/Triangle.d.ts +40 -4
  39. package/src/esm/Triangle.js +128 -32
  40. package/src/esm/Triangle.js.map +1 -1
  41. package/src/esm/VertTuple.d.ts +4 -1
  42. package/src/esm/VertTuple.js +6 -1
  43. package/src/esm/VertTuple.js.map +1 -1
  44. package/src/esm/Vertex.d.ts +25 -2
  45. package/src/esm/Vertex.js +44 -2
  46. package/src/esm/Vertex.js.map +1 -1
  47. package/src/esm/utils/algorithms/minimalContainingCircleFromPoints.d.ts +21 -0
  48. package/src/esm/utils/algorithms/minimalContainingCircleFromPoints.js +69 -0
  49. package/src/esm/utils/algorithms/minimalContainingCircleFromPoints.js.map +1 -0
  50. package/src/esm/utils/algorithms/minimalEnclosingCircleFromPoints.d.ts +21 -0
  51. package/src/esm/utils/algorithms/minimalEnclosingCircleFromPoints.js +69 -0
  52. package/src/esm/utils/algorithms/minimalEnclosingCircleFromPoints.js.map +1 -0
  53. package/src/esm/utils/algorithms/pointsMinimalContainingCircle.d.ts +21 -0
  54. package/src/esm/utils/algorithms/pointsMinimalContainingCircle.js +69 -0
  55. package/src/esm/utils/algorithms/pointsMinimalContainingCircle.js.map +1 -0
  56. package/src/esm/utils/algorithms/solveApollonius3.d.ts +69 -0
  57. package/src/esm/utils/algorithms/solveApollonius3.js +114 -0
  58. package/src/esm/utils/algorithms/solveApollonius3.js.map +1 -0
  59. package/src/index-gl.js +5 -2
  60. package/src/index.js +25 -17
  61. package/src/ts/Circle.ts +178 -5
  62. package/src/ts/Triangle.ts +148 -41
  63. package/src/ts/VertTuple.ts +14 -1
  64. package/src/ts/Vertex.ts +44 -2
  65. package/src/ts/utils/algorithms/minimalEnclosingCircleFromPoints.ts +69 -0
  66. package/src/ts/utils/algorithms/solveApollonius3.ts +132 -0
  67. package/src/_cjs/BezierPath.d.ts +0 -610
  68. package/src/_cjs/BezierPath.js +0 -1127
  69. package/src/_cjs/BezierPath.js.map +0 -1
  70. package/src/_cjs/Bounds.d.ts +0 -252
  71. package/src/_cjs/Bounds.js +0 -320
  72. package/src/_cjs/Bounds.js.map +0 -1
  73. package/src/_cjs/Circle.d.ts +0 -214
  74. package/src/_cjs/Circle.js +0 -339
  75. package/src/_cjs/Circle.js.map +0 -1
  76. package/src/_cjs/CircleSector.d.ts +0 -211
  77. package/src/_cjs/CircleSector.js +0 -364
  78. package/src/_cjs/CircleSector.js.map +0 -1
  79. package/src/_cjs/CubicBezierCurve.d.ts +0 -656
  80. package/src/_cjs/CubicBezierCurve.js +0 -1062
  81. package/src/_cjs/CubicBezierCurve.js.map +0 -1
  82. package/src/_cjs/Grid.d.ts +0 -83
  83. package/src/_cjs/Grid.js +0 -90
  84. package/src/_cjs/Grid.js.map +0 -1
  85. package/src/_cjs/KeyHandler.d.ts +0 -177
  86. package/src/_cjs/KeyHandler.js +0 -435
  87. package/src/_cjs/KeyHandler.js.map +0 -1
  88. package/src/_cjs/Line.d.ts +0 -134
  89. package/src/_cjs/Line.js +0 -220
  90. package/src/_cjs/Line.js.map +0 -1
  91. package/src/_cjs/MouseHandler.d.ts +0 -283
  92. package/src/_cjs/MouseHandler.js +0 -423
  93. package/src/_cjs/MouseHandler.js.map +0 -1
  94. package/src/_cjs/PBImage.d.ts +0 -81
  95. package/src/_cjs/PBImage.js +0 -61
  96. package/src/_cjs/PBImage.js.map +0 -1
  97. package/src/_cjs/PBText.d.ts +0 -118
  98. package/src/_cjs/PBText.js +0 -63
  99. package/src/_cjs/PBText.js.map +0 -1
  100. package/src/_cjs/PlotBoilerplate.d.ts +0 -899
  101. package/src/_cjs/PlotBoilerplate.js +0 -2348
  102. package/src/_cjs/PlotBoilerplate.js.map +0 -1
  103. package/src/_cjs/Polygon.d.ts +0 -520
  104. package/src/_cjs/Polygon.js +0 -933
  105. package/src/_cjs/Polygon.js.map +0 -1
  106. package/src/_cjs/SVGBuilder.d.ts +0 -47
  107. package/src/_cjs/SVGBuilder.js +0 -100
  108. package/src/_cjs/SVGBuilder.js.map +0 -1
  109. package/src/_cjs/Triangle.d.ts +0 -392
  110. package/src/_cjs/Triangle.js +0 -497
  111. package/src/_cjs/Triangle.js.map +0 -1
  112. package/src/_cjs/UIDGenerator.d.ts +0 -12
  113. package/src/_cjs/UIDGenerator.js +0 -21
  114. package/src/_cjs/UIDGenerator.js.map +0 -1
  115. package/src/_cjs/VEllipse.d.ts +0 -319
  116. package/src/_cjs/VEllipse.js +0 -578
  117. package/src/_cjs/VEllipse.js.map +0 -1
  118. package/src/_cjs/VEllipseSector.d.ts +0 -230
  119. package/src/_cjs/VEllipseSector.js +0 -428
  120. package/src/_cjs/VEllipseSector.js.map +0 -1
  121. package/src/_cjs/Vector.d.ts +0 -126
  122. package/src/_cjs/Vector.js +0 -199
  123. package/src/_cjs/Vector.js.map +0 -1
  124. package/src/_cjs/VertTuple.d.ts +0 -284
  125. package/src/_cjs/VertTuple.js +0 -348
  126. package/src/_cjs/VertTuple.js.map +0 -1
  127. package/src/_cjs/Vertex.d.ts +0 -498
  128. package/src/_cjs/Vertex.js +0 -703
  129. package/src/_cjs/Vertex.js.map +0 -1
  130. package/src/_cjs/VertexAttr.d.ts +0 -72
  131. package/src/_cjs/VertexAttr.js +0 -59
  132. package/src/_cjs/VertexAttr.js.map +0 -1
  133. package/src/_cjs/VertexListeners.d.ts +0 -208
  134. package/src/_cjs/VertexListeners.js +0 -267
  135. package/src/_cjs/VertexListeners.js.map +0 -1
  136. package/src/_cjs/draw.d.ts +0 -657
  137. package/src/_cjs/draw.js +0 -1164
  138. package/src/_cjs/draw.js.map +0 -1
  139. package/src/_cjs/drawgl.d.ts +0 -544
  140. package/src/_cjs/drawgl.js +0 -794
  141. package/src/_cjs/drawgl.js.map +0 -1
  142. package/src/_cjs/drawutilssvg.d.ts +0 -954
  143. package/src/_cjs/drawutilssvg.js +0 -1713
  144. package/src/_cjs/drawutilssvg.js.map +0 -1
  145. package/src/_cjs/entry-glsupport.js +0 -28
  146. package/src/_cjs/entry.js +0 -29
  147. package/src/_cjs/geomutils.d.ts +0 -77
  148. package/src/_cjs/geomutils.js +0 -126
  149. package/src/_cjs/geomutils.js.map +0 -1
  150. package/src/_cjs/index.d.ts +0 -102
  151. package/src/_cjs/index.js +0 -128
  152. package/src/_cjs/index.js.map +0 -1
  153. package/src/_cjs/interfaces/DrawLib.d.ts +0 -582
  154. package/src/_cjs/interfaces/DrawLib.js +0 -32
  155. package/src/_cjs/interfaces/DrawLib.js.map +0 -1
  156. package/src/_cjs/interfaces/additionals.d.ts +0 -95
  157. package/src/_cjs/interfaces/additionals.js +0 -3
  158. package/src/_cjs/interfaces/additionals.js.map +0 -1
  159. package/src/_cjs/interfaces/core.d.ts +0 -286
  160. package/src/_cjs/interfaces/core.js +0 -30
  161. package/src/_cjs/interfaces/core.js.map +0 -1
  162. package/src/_cjs/interfaces/externals.d.ts +0 -56
  163. package/src/_cjs/interfaces/externals.js +0 -8
  164. package/src/_cjs/interfaces/externals.js.map +0 -1
  165. package/src/_cjs/interfaces/index.d.ts +0 -4
  166. package/src/_cjs/interfaces/index.js +0 -21
  167. package/src/_cjs/interfaces/index.js.map +0 -1
  168. package/src/_cjs/module.d.ts +0 -26
  169. package/src/_cjs/module.js +0 -60
  170. package/src/_cjs/module.js.map +0 -1
  171. package/src/_cjs/utils/InitializationObserver.d.ts +0 -18
  172. package/src/_cjs/utils/InitializationObserver.js +0 -63
  173. package/src/_cjs/utils/InitializationObserver.js.map +0 -1
  174. package/src/_cjs/utils/LissajousFigure.d.ts +0 -34
  175. package/src/_cjs/utils/LissajousFigure.js +0 -100
  176. package/src/_cjs/utils/LissajousFigure.js.map +0 -1
  177. package/src/_cjs/utils/NGons.d.ts +0 -13
  178. package/src/_cjs/utils/NGons.js +0 -36
  179. package/src/_cjs/utils/NGons.js.map +0 -1
  180. package/src/_cjs/utils/Params.d.ts +0 -17
  181. package/src/_cjs/utils/Params.js +0 -53
  182. package/src/_cjs/utils/Params.js.map +0 -1
  183. package/src/_cjs/utils/PerlinNoise.d.ts +0 -19
  184. package/src/_cjs/utils/PerlinNoise.js +0 -352
  185. package/src/_cjs/utils/PerlinNoise.js.map +0 -1
  186. package/src/_cjs/utils/SVGPathUtils.d.ts +0 -22
  187. package/src/_cjs/utils/SVGPathUtils.js +0 -45
  188. package/src/_cjs/utils/SVGPathUtils.js.map +0 -1
  189. package/src/_cjs/utils/WebColors.d.ts +0 -35
  190. package/src/_cjs/utils/WebColors.js +0 -58
  191. package/src/_cjs/utils/WebColors.js.map +0 -1
  192. package/src/_cjs/utils/WebColorsContrast.d.ts +0 -6
  193. package/src/_cjs/utils/WebColorsContrast.js +0 -12
  194. package/src/_cjs/utils/WebColorsContrast.js.map +0 -1
  195. package/src/_cjs/utils/WebColorsMalachite.d.ts +0 -12
  196. package/src/_cjs/utils/WebColorsMalachite.js +0 -28
  197. package/src/_cjs/utils/WebColorsMalachite.js.map +0 -1
  198. package/src/_cjs/utils/_gup.js_ +0 -13
  199. package/src/_cjs/utils/algorithms/CatmullRomPath.d.ts +0 -60
  200. package/src/_cjs/utils/algorithms/CatmullRomPath.js +0 -108
  201. package/src/_cjs/utils/algorithms/CatmullRomPath.js.map +0 -1
  202. package/src/_cjs/utils/algorithms/CircleIntersections.d.ts +0 -170
  203. package/src/_cjs/utils/algorithms/CircleIntersections.js +0 -310
  204. package/src/_cjs/utils/algorithms/CircleIntersections.js.map +0 -1
  205. package/src/_cjs/utils/algorithms/ContourLineDetection.d.ts +0 -150
  206. package/src/_cjs/utils/algorithms/ContourLineDetection.js +0 -367
  207. package/src/_cjs/utils/algorithms/ContourLineDetection.js.map +0 -1
  208. package/src/_cjs/utils/algorithms/CubicSplinePath.d.ts +0 -63
  209. package/src/_cjs/utils/algorithms/CubicSplinePath.js +0 -175
  210. package/src/_cjs/utils/algorithms/CubicSplinePath.js.map +0 -1
  211. package/src/_cjs/utils/algorithms/HobbyPath.d.ts +0 -81
  212. package/src/_cjs/utils/algorithms/HobbyPath.js +0 -278
  213. package/src/_cjs/utils/algorithms/HobbyPath.js.map +0 -1
  214. package/src/_cjs/utils/algorithms/Metaballs.d.ts +0 -30
  215. package/src/_cjs/utils/algorithms/Metaballs.js +0 -114
  216. package/src/_cjs/utils/algorithms/Metaballs.js.map +0 -1
  217. package/src/_cjs/utils/algorithms/PolygonInset.d.ts +0 -184
  218. package/src/_cjs/utils/algorithms/PolygonInset.js +0 -431
  219. package/src/_cjs/utils/algorithms/PolygonInset.js.map +0 -1
  220. package/src/_cjs/utils/algorithms/PolygonTesselationOutlines.d.ts +0 -145
  221. package/src/_cjs/utils/algorithms/PolygonTesselationOutlines.js +0 -269
  222. package/src/_cjs/utils/algorithms/PolygonTesselationOutlines.js.map +0 -1
  223. package/src/_cjs/utils/algorithms/arrayFill.d.ts +0 -8
  224. package/src/_cjs/utils/algorithms/arrayFill.js +0 -18
  225. package/src/_cjs/utils/algorithms/arrayFill.js.map +0 -1
  226. package/src/_cjs/utils/algorithms/arrayResize.d.ts +0 -8
  227. package/src/_cjs/utils/algorithms/arrayResize.js +0 -24
  228. package/src/_cjs/utils/algorithms/arrayResize.js.map +0 -1
  229. package/src/_cjs/utils/algorithms/arrayShuffle.d.ts +0 -8
  230. package/src/_cjs/utils/algorithms/arrayShuffle.js +0 -15
  231. package/src/_cjs/utils/algorithms/arrayShuffle.js.map +0 -1
  232. package/src/_cjs/utils/algorithms/clearDuplicateVertices.d.ts +0 -22
  233. package/src/_cjs/utils/algorithms/clearDuplicateVertices.js +0 -51
  234. package/src/_cjs/utils/algorithms/clearDuplicateVertices.js.map +0 -1
  235. package/src/_cjs/utils/algorithms/clearPolygonDuplicateVertices.d.ts +0 -24
  236. package/src/_cjs/utils/algorithms/clearPolygonDuplicateVertices.js +0 -61
  237. package/src/_cjs/utils/algorithms/clearPolygonDuplicateVertices.js.map +0 -1
  238. package/src/_cjs/utils/algorithms/convexHull.d.ts +0 -23
  239. package/src/_cjs/utils/algorithms/convexHull.js +0 -71
  240. package/src/_cjs/utils/algorithms/convexHull.js.map +0 -1
  241. package/src/_cjs/utils/algorithms/convexPolygonIncircle.d.ts +0 -41
  242. package/src/_cjs/utils/algorithms/convexPolygonIncircle.js +0 -145
  243. package/src/_cjs/utils/algorithms/convexPolygonIncircle.js.map +0 -1
  244. package/src/_cjs/utils/algorithms/delaunay.d.ts +0 -30
  245. package/src/_cjs/utils/algorithms/delaunay.js +0 -158
  246. package/src/_cjs/utils/algorithms/delaunay.js.map +0 -1
  247. package/src/_cjs/utils/algorithms/delaunay2voronoi.d.ts +0 -25
  248. package/src/_cjs/utils/algorithms/delaunay2voronoi.js +0 -104
  249. package/src/_cjs/utils/algorithms/delaunay2voronoi.js.map +0 -1
  250. package/src/_cjs/utils/algorithms/detectPaths.d.ts +0 -21
  251. package/src/_cjs/utils/algorithms/detectPaths.js +0 -169
  252. package/src/_cjs/utils/algorithms/detectPaths.js.map +0 -1
  253. package/src/_cjs/utils/algorithms/findPolygonSelfIntersections.d.ts +0 -21
  254. package/src/_cjs/utils/algorithms/findPolygonSelfIntersections.js +0 -51
  255. package/src/_cjs/utils/algorithms/findPolygonSelfIntersections.js.map +0 -1
  256. package/src/_cjs/utils/algorithms/getContrastColor.d.ts +0 -13
  257. package/src/_cjs/utils/algorithms/getContrastColor.js +0 -26
  258. package/src/_cjs/utils/algorithms/getContrastColor.js.map +0 -1
  259. package/src/_cjs/utils/algorithms/matrixFill.d.ts +0 -10
  260. package/src/_cjs/utils/algorithms/matrixFill.js +0 -21
  261. package/src/_cjs/utils/algorithms/matrixFill.js.map +0 -1
  262. package/src/_cjs/utils/algorithms/pixelCornersToRoundPaths.d.ts +0 -23
  263. package/src/_cjs/utils/algorithms/pixelCornersToRoundPaths.js +0 -270
  264. package/src/_cjs/utils/algorithms/pixelCornersToRoundPaths.js.map +0 -1
  265. package/src/_cjs/utils/algorithms/splitPolygonToNonIntersecting.d.ts +0 -28
  266. package/src/_cjs/utils/algorithms/splitPolygonToNonIntersecting.js +0 -102
  267. package/src/_cjs/utils/algorithms/splitPolygonToNonIntersecting.js.map +0 -1
  268. package/src/_cjs/utils/algorithms/sutherlandHodgman.d.ts +0 -16
  269. package/src/_cjs/utils/algorithms/sutherlandHodgman.js +0 -76
  270. package/src/_cjs/utils/algorithms/sutherlandHodgman.js.map +0 -1
  271. package/src/_cjs/utils/cloneVertexArray.d.ts +0 -13
  272. package/src/_cjs/utils/cloneVertexArray.js +0 -23
  273. package/src/_cjs/utils/cloneVertexArray.js.map +0 -1
  274. package/src/_cjs/utils/createRandomizedPolygon.d.ts +0 -14
  275. package/src/_cjs/utils/createRandomizedPolygon.js +0 -32
  276. package/src/_cjs/utils/createRandomizedPolygon.js.map +0 -1
  277. package/src/_cjs/utils/creategui.js +0 -434
  278. package/src/_cjs/utils/dat.gui.arrowbounce.polyfill.js +0 -128
  279. package/src/_cjs/utils/dat.gui.title.polyfill.js +0 -35
  280. package/src/_cjs/utils/datastructures/CircularIntervalSet.d.ts +0 -83
  281. package/src/_cjs/utils/datastructures/CircularIntervalSet.js +0 -163
  282. package/src/_cjs/utils/datastructures/CircularIntervalSet.js.map +0 -1
  283. package/src/_cjs/utils/datastructures/Color.d.ts +0 -391
  284. package/src/_cjs/utils/datastructures/Color.js +0 -1084
  285. package/src/_cjs/utils/datastructures/Color.js.map +0 -1
  286. package/src/_cjs/utils/datastructures/ColorGradient.d.ts +0 -81
  287. package/src/_cjs/utils/datastructures/ColorGradient.js +0 -176
  288. package/src/_cjs/utils/datastructures/ColorGradient.js.map +0 -1
  289. package/src/_cjs/utils/datastructures/DataGrid2d.d.ts +0 -53
  290. package/src/_cjs/utils/datastructures/DataGrid2d.js +0 -20
  291. package/src/_cjs/utils/datastructures/DataGrid2d.js.map +0 -1
  292. package/src/_cjs/utils/datastructures/DataGrid2dArrayMatrix.d.ts +0 -88
  293. package/src/_cjs/utils/datastructures/DataGrid2dArrayMatrix.js +0 -155
  294. package/src/_cjs/utils/datastructures/DataGrid2dArrayMatrix.js.map +0 -1
  295. package/src/_cjs/utils/datastructures/DataGrid2dListAdapter.d.ts +0 -59
  296. package/src/_cjs/utils/datastructures/DataGrid2dListAdapter.js +0 -84
  297. package/src/_cjs/utils/datastructures/DataGrid2dListAdapter.js.map +0 -1
  298. package/src/_cjs/utils/datastructures/GenericPath.d.ts +0 -86
  299. package/src/_cjs/utils/datastructures/GenericPath.js +0 -122
  300. package/src/_cjs/utils/datastructures/GenericPath.js.map +0 -1
  301. package/src/_cjs/utils/datastructures/GeometryMesh.d.ts +0 -49
  302. package/src/_cjs/utils/datastructures/GeometryMesh.js +0 -58
  303. package/src/_cjs/utils/datastructures/GeometryMesh.js.map +0 -1
  304. package/src/_cjs/utils/datastructures/Girih.d.ts +0 -181
  305. package/src/_cjs/utils/datastructures/Girih.js +0 -266
  306. package/src/_cjs/utils/datastructures/Girih.js.map +0 -1
  307. package/src/_cjs/utils/datastructures/GirihBowtie.d.ts +0 -37
  308. package/src/_cjs/utils/datastructures/GirihBowtie.js +0 -152
  309. package/src/_cjs/utils/datastructures/GirihBowtie.js.map +0 -1
  310. package/src/_cjs/utils/datastructures/GirihDecagon.d.ts +0 -52
  311. package/src/_cjs/utils/datastructures/GirihDecagon.js +0 -132
  312. package/src/_cjs/utils/datastructures/GirihDecagon.js.map +0 -1
  313. package/src/_cjs/utils/datastructures/GirihHexagon.d.ts +0 -39
  314. package/src/_cjs/utils/datastructures/GirihHexagon.js +0 -200
  315. package/src/_cjs/utils/datastructures/GirihHexagon.js.map +0 -1
  316. package/src/_cjs/utils/datastructures/GirihPenroseRhombus.d.ts +0 -46
  317. package/src/_cjs/utils/datastructures/GirihPenroseRhombus.js +0 -189
  318. package/src/_cjs/utils/datastructures/GirihPenroseRhombus.js.map +0 -1
  319. package/src/_cjs/utils/datastructures/GirihPentagon.d.ts +0 -37
  320. package/src/_cjs/utils/datastructures/GirihPentagon.js +0 -109
  321. package/src/_cjs/utils/datastructures/GirihPentagon.js.map +0 -1
  322. package/src/_cjs/utils/datastructures/GirihRhombus.d.ts +0 -38
  323. package/src/_cjs/utils/datastructures/GirihRhombus.js +0 -155
  324. package/src/_cjs/utils/datastructures/GirihRhombus.js.map +0 -1
  325. package/src/_cjs/utils/datastructures/GirihTile.d.ts +0 -283
  326. package/src/_cjs/utils/datastructures/GirihTile.js +0 -308
  327. package/src/_cjs/utils/datastructures/GirihTile.js.map +0 -1
  328. package/src/_cjs/utils/datastructures/Matrix4x4.d.ts +0 -244
  329. package/src/_cjs/utils/datastructures/Matrix4x4.js +0 -262
  330. package/src/_cjs/utils/datastructures/Matrix4x4.js.map +0 -1
  331. package/src/_cjs/utils/datastructures/VoronoiCell.d.ts +0 -122
  332. package/src/_cjs/utils/datastructures/VoronoiCell.js +0 -183
  333. package/src/_cjs/utils/datastructures/VoronoiCell.js.map +0 -1
  334. package/src/_cjs/utils/datastructures/interfaces.d.ts +0 -13
  335. package/src/_cjs/utils/datastructures/interfaces.js +0 -10
  336. package/src/_cjs/utils/datastructures/interfaces.js.map +0 -1
  337. package/src/_cjs/utils/detectDarkMode.d.ts +0 -10
  338. package/src/_cjs/utils/detectDarkMode.js +0 -41
  339. package/src/_cjs/utils/detectDarkMode.js.map +0 -1
  340. package/src/_cjs/utils/dom/components/ColorGradientPicker.d.ts +0 -246
  341. package/src/_cjs/utils/dom/components/ColorGradientPicker.js +0 -667
  342. package/src/_cjs/utils/dom/components/ColorGradientPicker.js.map +0 -1
  343. package/src/_cjs/utils/dom/components/ColorGradientPickerJSX.d.ts +0 -129
  344. package/src/_cjs/utils/dom/components/ColorGradientPickerJSX.js +0 -520
  345. package/src/_cjs/utils/dom/components/ColorGradientPickerJSX.js.map +0 -1
  346. package/src/_cjs/utils/dom/components/ColorGradientSelector.d.ts +0 -118
  347. package/src/_cjs/utils/dom/components/ColorGradientSelector.js +0 -327
  348. package/src/_cjs/utils/dom/components/ColorGradientSelector.js.map +0 -1
  349. package/src/_cjs/utils/dom/components/Test.d.ts +0 -7
  350. package/src/_cjs/utils/dom/components/Test.js +0 -30
  351. package/src/_cjs/utils/dom/components/Test.js.map +0 -1
  352. package/src/_cjs/utils/dom/getAvailableContainerSpace.d.ts +0 -2
  353. package/src/_cjs/utils/dom/getAvailableContainerSpace.js +0 -29
  354. package/src/_cjs/utils/dom/getAvailableContainerSpace.js.map +0 -1
  355. package/src/_cjs/utils/dom/getFProp.d.ts +0 -5
  356. package/src/_cjs/utils/dom/getFProp.js +0 -12
  357. package/src/_cjs/utils/dom/getFProp.js.map +0 -1
  358. package/src/_cjs/utils/dom/guiSizeToggler.d.ts +0 -18
  359. package/src/_cjs/utils/dom/guiSizeToggler.js +0 -44
  360. package/src/_cjs/utils/dom/guiSizeToggler.js.map +0 -1
  361. package/src/_cjs/utils/findInVertexArray.d.ts +0 -19
  362. package/src/_cjs/utils/findInVertexArray.js +0 -29
  363. package/src/_cjs/utils/findInVertexArray.js.map +0 -1
  364. package/src/_cjs/utils/getFProp.d.ts +0 -5
  365. package/src/_cjs/utils/getFProp.js +0 -12
  366. package/src/_cjs/utils/getFProp.js.map +0 -1
  367. package/src/_cjs/utils/gup.d.ts +0 -14
  368. package/src/_cjs/utils/gup.js +0 -31
  369. package/src/_cjs/utils/gup.js.map +0 -1
  370. package/src/_cjs/utils/helpers/BezierPathInteractionHelper.d.ts +0 -272
  371. package/src/_cjs/utils/helpers/BezierPathInteractionHelper.js +0 -655
  372. package/src/_cjs/utils/helpers/BezierPathInteractionHelper.js.map +0 -1
  373. package/src/_cjs/utils/helpers/CircleHelper.d.ts +0 -73
  374. package/src/_cjs/utils/helpers/CircleHelper.js +0 -93
  375. package/src/_cjs/utils/helpers/CircleHelper.js.map +0 -1
  376. package/src/_cjs/utils/helpers/CircleSectorHelper.d.ts +0 -90
  377. package/src/_cjs/utils/helpers/CircleSectorHelper.js +0 -114
  378. package/src/_cjs/utils/helpers/CircleSectorHelper.js.map +0 -1
  379. package/src/_cjs/utils/helpers/TriangleHelper.d.ts +0 -57
  380. package/src/_cjs/utils/helpers/TriangleHelper.js +0 -83
  381. package/src/_cjs/utils/helpers/TriangleHelper.js.map +0 -1
  382. package/src/_cjs/utils/helpers/VEllipseHelper.d.ts +0 -32
  383. package/src/_cjs/utils/helpers/VEllipseHelper.js +0 -88
  384. package/src/_cjs/utils/helpers/VEllipseHelper.js.map +0 -1
  385. package/src/_cjs/utils/helpers/VEllipseSectorHelper.d.ts +0 -52
  386. package/src/_cjs/utils/helpers/VEllipseSectorHelper.js +0 -135
  387. package/src/_cjs/utils/helpers/VEllipseSectorHelper.js.map +0 -1
  388. package/src/_cjs/utils/io/DndFileHandler.d.ts +0 -63
  389. package/src/_cjs/utils/io/DndFileHandler.js +0 -112
  390. package/src/_cjs/utils/io/DndFileHandler.js.map +0 -1
  391. package/src/_cjs/utils/io/FileDrop.d.ts +0 -110
  392. package/src/_cjs/utils/io/FileDrop.js +0 -177
  393. package/src/_cjs/utils/io/FileDrop.js.map +0 -1
  394. package/src/_cjs/utils/lil.gui.arrowbounce.polyfill.js +0 -133
  395. package/src/_cjs/utils/lil.gui.title.polyfill.js +0 -32
  396. package/src/_cjs/utils/module.js +0 -18
  397. package/src/_cjs/utils/parsers/LinearColorGradientParser.d.ts +0 -78
  398. package/src/_cjs/utils/parsers/LinearColorGradientParser.js +0 -224
  399. package/src/_cjs/utils/parsers/LinearColorGradientParser.js.map +0 -1
  400. package/src/_cjs/utils/parsers/OBJParser.d.ts +0 -24
  401. package/src/_cjs/utils/parsers/OBJParser.js +0 -77
  402. package/src/_cjs/utils/parsers/OBJParser.js.map +0 -1
  403. package/src/_cjs/utils/parsers/STLParser.d.ts +0 -61
  404. package/src/_cjs/utils/parsers/STLParser.js +0 -182
  405. package/src/_cjs/utils/parsers/STLParser.js.map +0 -1
  406. package/src/_cjs/utils/parsers/svg/parseSVGPathData.d.ts +0 -27
  407. package/src/_cjs/utils/parsers/svg/parseSVGPathData.js +0 -486
  408. package/src/_cjs/utils/parsers/svg/parseSVGPathData.js.map +0 -1
  409. package/src/_cjs/utils/parsers/svg/splitSVGPathData.d.ts +0 -20
  410. package/src/_cjs/utils/parsers/svg/splitSVGPathData.js +0 -53
  411. package/src/_cjs/utils/parsers/svg/splitSVGPathData.js.map +0 -1
  412. package/src/_cjs/utils/parsers/svg/types.d.ts +0 -63
  413. package/src/_cjs/utils/parsers/svg/types.js +0 -17
  414. package/src/_cjs/utils/parsers/svg/types.js.map +0 -1
  415. package/src/_cjs/utils/ts-runner.js +0 -146
  416. package/src/_cjs/utils/tsAsyncScriptLoader.js +0 -74
  417. package/src/_esm/BezierPath.d.ts +0 -610
  418. package/src/_esm/BezierPath.js +0 -1124
  419. package/src/_esm/BezierPath.js.map +0 -1
  420. package/src/_esm/Bounds.d.ts +0 -252
  421. package/src/_esm/Bounds.js +0 -317
  422. package/src/_esm/Bounds.js.map +0 -1
  423. package/src/_esm/Circle.d.ts +0 -214
  424. package/src/_esm/Circle.js +0 -335
  425. package/src/_esm/Circle.js.map +0 -1
  426. package/src/_esm/CircleSector.d.ts +0 -211
  427. package/src/_esm/CircleSector.js +0 -359
  428. package/src/_esm/CircleSector.js.map +0 -1
  429. package/src/_esm/CubicBezierCurve.d.ts +0 -656
  430. package/src/_esm/CubicBezierCurve.js +0 -1057
  431. package/src/_esm/CubicBezierCurve.js.map +0 -1
  432. package/src/_esm/Grid.d.ts +0 -83
  433. package/src/_esm/Grid.js +0 -89
  434. package/src/_esm/Grid.js.map +0 -1
  435. package/src/_esm/KeyHandler.d.ts +0 -177
  436. package/src/_esm/KeyHandler.js +0 -434
  437. package/src/_esm/KeyHandler.js.map +0 -1
  438. package/src/_esm/Line.d.ts +0 -134
  439. package/src/_esm/Line.js +0 -200
  440. package/src/_esm/Line.js.map +0 -1
  441. package/src/_esm/MouseHandler.d.ts +0 -283
  442. package/src/_esm/MouseHandler.js +0 -397
  443. package/src/_esm/MouseHandler.js.map +0 -1
  444. package/src/_esm/PBImage.d.ts +0 -81
  445. package/src/_esm/PBImage.js +0 -60
  446. package/src/_esm/PBImage.js.map +0 -1
  447. package/src/_esm/PBText.d.ts +0 -118
  448. package/src/_esm/PBText.js +0 -62
  449. package/src/_esm/PBText.js.map +0 -1
  450. package/src/_esm/PlotBoilerplate.d.ts +0 -899
  451. package/src/_esm/PlotBoilerplate.js +0 -2347
  452. package/src/_esm/PlotBoilerplate.js.map +0 -1
  453. package/src/_esm/Polygon.d.ts +0 -520
  454. package/src/_esm/Polygon.js +0 -924
  455. package/src/_esm/Polygon.js.map +0 -1
  456. package/src/_esm/SVGBuilder.d.ts +0 -47
  457. package/src/_esm/SVGBuilder.js +0 -95
  458. package/src/_esm/SVGBuilder.js.map +0 -1
  459. package/src/_esm/Triangle.d.ts +0 -392
  460. package/src/_esm/Triangle.js +0 -493
  461. package/src/_esm/Triangle.js.map +0 -1
  462. package/src/_esm/UIDGenerator.d.ts +0 -12
  463. package/src/_esm/UIDGenerator.js +0 -18
  464. package/src/_esm/UIDGenerator.js.map +0 -1
  465. package/src/_esm/VEllipse.d.ts +0 -319
  466. package/src/_esm/VEllipse.js +0 -574
  467. package/src/_esm/VEllipse.js.map +0 -1
  468. package/src/_esm/VEllipseSector.d.ts +0 -230
  469. package/src/_esm/VEllipseSector.js +0 -422
  470. package/src/_esm/VEllipseSector.js.map +0 -1
  471. package/src/_esm/Vector.d.ts +0 -126
  472. package/src/_esm/Vector.js +0 -181
  473. package/src/_esm/Vector.js.map +0 -1
  474. package/src/_esm/VertTuple.d.ts +0 -284
  475. package/src/_esm/VertTuple.js +0 -347
  476. package/src/_esm/VertTuple.js.map +0 -1
  477. package/src/_esm/Vertex.d.ts +0 -498
  478. package/src/_esm/Vertex.js +0 -702
  479. package/src/_esm/Vertex.js.map +0 -1
  480. package/src/_esm/VertexAttr.d.ts +0 -72
  481. package/src/_esm/VertexAttr.js +0 -58
  482. package/src/_esm/VertexAttr.js.map +0 -1
  483. package/src/_esm/VertexListeners.d.ts +0 -209
  484. package/src/_esm/VertexListeners.js +0 -270
  485. package/src/_esm/VertexListeners.js.map +0 -1
  486. package/src/_esm/draw.d.ts +0 -657
  487. package/src/_esm/draw.js +0 -1159
  488. package/src/_esm/draw.js.map +0 -1
  489. package/src/_esm/drawgl.d.ts +0 -544
  490. package/src/_esm/drawgl.js +0 -812
  491. package/src/_esm/drawgl.js.map +0 -1
  492. package/src/_esm/drawutilssvg.d.ts +0 -954
  493. package/src/_esm/drawutilssvg.js +0 -1705
  494. package/src/_esm/drawutilssvg.js.map +0 -1
  495. package/src/_esm/entry-glsupport.js +0 -28
  496. package/src/_esm/entry.js +0 -29
  497. package/src/_esm/geomutils.d.ts +0 -77
  498. package/src/_esm/geomutils.js +0 -126
  499. package/src/_esm/geomutils.js.map +0 -1
  500. package/src/_esm/index.d.ts +0 -102
  501. package/src/_esm/index.js +0 -128
  502. package/src/_esm/index.js.map +0 -1
  503. package/src/_esm/interfaces/DrawLib.d.ts +0 -582
  504. package/src/_esm/interfaces/DrawLib.js +0 -32
  505. package/src/_esm/interfaces/DrawLib.js.map +0 -1
  506. package/src/_esm/interfaces/additionals.d.ts +0 -95
  507. package/src/_esm/interfaces/additionals.js +0 -3
  508. package/src/_esm/interfaces/additionals.js.map +0 -1
  509. package/src/_esm/interfaces/core.d.ts +0 -286
  510. package/src/_esm/interfaces/core.js +0 -30
  511. package/src/_esm/interfaces/core.js.map +0 -1
  512. package/src/_esm/interfaces/externals.d.ts +0 -56
  513. package/src/_esm/interfaces/externals.js +0 -8
  514. package/src/_esm/interfaces/externals.js.map +0 -1
  515. package/src/_esm/interfaces/index.d.ts +0 -4
  516. package/src/_esm/interfaces/index.js +0 -21
  517. package/src/_esm/interfaces/index.js.map +0 -1
  518. package/src/_esm/module.d.ts +0 -26
  519. package/src/_esm/module.js +0 -60
  520. package/src/_esm/module.js.map +0 -1
  521. package/src/_esm/src/ts/BezierPath.d.ts +0 -610
  522. package/src/_esm/src/ts/BezierPath.js +0 -1120
  523. package/src/_esm/src/ts/BezierPath.js.map +0 -1
  524. package/src/_esm/src/ts/Bounds.d.ts +0 -252
  525. package/src/_esm/src/ts/Bounds.js +0 -313
  526. package/src/_esm/src/ts/Bounds.js.map +0 -1
  527. package/src/_esm/src/ts/Circle.d.ts +0 -214
  528. package/src/_esm/src/ts/Circle.js +0 -331
  529. package/src/_esm/src/ts/Circle.js.map +0 -1
  530. package/src/_esm/src/ts/CircleSector.d.ts +0 -211
  531. package/src/_esm/src/ts/CircleSector.js +0 -355
  532. package/src/_esm/src/ts/CircleSector.js.map +0 -1
  533. package/src/_esm/src/ts/CubicBezierCurve.d.ts +0 -656
  534. package/src/_esm/src/ts/CubicBezierCurve.js +0 -1053
  535. package/src/_esm/src/ts/CubicBezierCurve.js.map +0 -1
  536. package/src/_esm/src/ts/Grid.d.ts +0 -83
  537. package/src/_esm/src/ts/Grid.js +0 -85
  538. package/src/_esm/src/ts/Grid.js.map +0 -1
  539. package/src/_esm/src/ts/KeyHandler.d.ts +0 -177
  540. package/src/_esm/src/ts/KeyHandler.js +0 -430
  541. package/src/_esm/src/ts/KeyHandler.js.map +0 -1
  542. package/src/_esm/src/ts/Line.d.ts +0 -134
  543. package/src/_esm/src/ts/Line.js +0 -196
  544. package/src/_esm/src/ts/Line.js.map +0 -1
  545. package/src/_esm/src/ts/MouseHandler.d.ts +0 -283
  546. package/src/_esm/src/ts/MouseHandler.js +0 -391
  547. package/src/_esm/src/ts/MouseHandler.js.map +0 -1
  548. package/src/_esm/src/ts/PBImage.d.ts +0 -81
  549. package/src/_esm/src/ts/PBImage.js +0 -56
  550. package/src/_esm/src/ts/PBImage.js.map +0 -1
  551. package/src/_esm/src/ts/PBText.d.ts +0 -118
  552. package/src/_esm/src/ts/PBText.js +0 -58
  553. package/src/_esm/src/ts/PBText.js.map +0 -1
  554. package/src/_esm/src/ts/PlotBoilerplate.d.ts +0 -899
  555. package/src/_esm/src/ts/PlotBoilerplate.js +0 -2340
  556. package/src/_esm/src/ts/PlotBoilerplate.js.map +0 -1
  557. package/src/_esm/src/ts/Polygon.d.ts +0 -520
  558. package/src/_esm/src/ts/Polygon.js +0 -920
  559. package/src/_esm/src/ts/Polygon.js.map +0 -1
  560. package/src/_esm/src/ts/Triangle.d.ts +0 -392
  561. package/src/_esm/src/ts/Triangle.js +0 -489
  562. package/src/_esm/src/ts/Triangle.js.map +0 -1
  563. package/src/_esm/src/ts/UIDGenerator.d.ts +0 -12
  564. package/src/_esm/src/ts/UIDGenerator.js +0 -14
  565. package/src/_esm/src/ts/UIDGenerator.js.map +0 -1
  566. package/src/_esm/src/ts/VEllipse.d.ts +0 -319
  567. package/src/_esm/src/ts/VEllipse.js +0 -570
  568. package/src/_esm/src/ts/VEllipse.js.map +0 -1
  569. package/src/_esm/src/ts/VEllipseSector.d.ts +0 -230
  570. package/src/_esm/src/ts/VEllipseSector.js +0 -418
  571. package/src/_esm/src/ts/VEllipseSector.js.map +0 -1
  572. package/src/_esm/src/ts/Vector.d.ts +0 -126
  573. package/src/_esm/src/ts/Vector.js +0 -177
  574. package/src/_esm/src/ts/Vector.js.map +0 -1
  575. package/src/_esm/src/ts/VertTuple.d.ts +0 -284
  576. package/src/_esm/src/ts/VertTuple.js +0 -343
  577. package/src/_esm/src/ts/VertTuple.js.map +0 -1
  578. package/src/_esm/src/ts/Vertex.d.ts +0 -498
  579. package/src/_esm/src/ts/Vertex.js +0 -698
  580. package/src/_esm/src/ts/Vertex.js.map +0 -1
  581. package/src/_esm/src/ts/VertexAttr.d.ts +0 -72
  582. package/src/_esm/src/ts/VertexAttr.js +0 -54
  583. package/src/_esm/src/ts/VertexAttr.js.map +0 -1
  584. package/src/_esm/src/ts/VertexListeners.d.ts +0 -209
  585. package/src/_esm/src/ts/VertexListeners.js +0 -266
  586. package/src/_esm/src/ts/VertexListeners.js.map +0 -1
  587. package/src/_esm/src/ts/draw.d.ts +0 -657
  588. package/src/_esm/src/ts/draw.js +0 -1155
  589. package/src/_esm/src/ts/draw.js.map +0 -1
  590. package/src/_esm/src/ts/drawgl.d.ts +0 -544
  591. package/src/_esm/src/ts/drawgl.js +0 -808
  592. package/src/_esm/src/ts/drawgl.js.map +0 -1
  593. package/src/_esm/src/ts/drawutilssvg.d.ts +0 -954
  594. package/src/_esm/src/ts/drawutilssvg.js +0 -1701
  595. package/src/_esm/src/ts/drawutilssvg.js.map +0 -1
  596. package/src/_esm/src/ts/geomutils.d.ts +0 -77
  597. package/src/_esm/src/ts/geomutils.js +0 -123
  598. package/src/_esm/src/ts/geomutils.js.map +0 -1
  599. package/src/_esm/src/ts/index.d.ts +0 -102
  600. package/src/_esm/src/ts/index.js +0 -112
  601. package/src/_esm/src/ts/index.js.map +0 -1
  602. package/src/_esm/src/ts/interfaces/DrawLib.d.ts +0 -582
  603. package/src/_esm/src/ts/interfaces/DrawLib.js +0 -31
  604. package/src/_esm/src/ts/interfaces/DrawLib.js.map +0 -1
  605. package/src/_esm/src/ts/interfaces/additionals.d.ts +0 -95
  606. package/src/_esm/src/ts/interfaces/additionals.js +0 -2
  607. package/src/_esm/src/ts/interfaces/additionals.js.map +0 -1
  608. package/src/_esm/src/ts/interfaces/core.d.ts +0 -286
  609. package/src/_esm/src/ts/interfaces/core.js +0 -29
  610. package/src/_esm/src/ts/interfaces/core.js.map +0 -1
  611. package/src/_esm/src/ts/interfaces/externals.d.ts +0 -56
  612. package/src/_esm/src/ts/interfaces/externals.js +0 -7
  613. package/src/_esm/src/ts/interfaces/externals.js.map +0 -1
  614. package/src/_esm/src/ts/interfaces/index.d.ts +0 -4
  615. package/src/_esm/src/ts/interfaces/index.js +0 -5
  616. package/src/_esm/src/ts/interfaces/index.js.map +0 -1
  617. package/src/_esm/src/ts/module.d.ts +0 -26
  618. package/src/_esm/src/ts/module.js +0 -38
  619. package/src/_esm/src/ts/module.js.map +0 -1
  620. package/src/_esm/src/ts/utils/InitializationObserver.d.ts +0 -18
  621. package/src/_esm/src/ts/utils/InitializationObserver.js +0 -57
  622. package/src/_esm/src/ts/utils/InitializationObserver.js.map +0 -1
  623. package/src/_esm/src/ts/utils/LissajousFigure.d.ts +0 -34
  624. package/src/_esm/src/ts/utils/LissajousFigure.js +0 -95
  625. package/src/_esm/src/ts/utils/LissajousFigure.js.map +0 -1
  626. package/src/_esm/src/ts/utils/NGons.d.ts +0 -13
  627. package/src/_esm/src/ts/utils/NGons.js +0 -33
  628. package/src/_esm/src/ts/utils/NGons.js.map +0 -1
  629. package/src/_esm/src/ts/utils/Params.d.ts +0 -17
  630. package/src/_esm/src/ts/utils/Params.js +0 -48
  631. package/src/_esm/src/ts/utils/Params.js.map +0 -1
  632. package/src/_esm/src/ts/utils/PerlinNoise.d.ts +0 -19
  633. package/src/_esm/src/ts/utils/PerlinNoise.js +0 -346
  634. package/src/_esm/src/ts/utils/PerlinNoise.js.map +0 -1
  635. package/src/_esm/src/ts/utils/SVGPathUtils.d.ts +0 -22
  636. package/src/_esm/src/ts/utils/SVGPathUtils.js +0 -42
  637. package/src/_esm/src/ts/utils/SVGPathUtils.js.map +0 -1
  638. package/src/_esm/src/ts/utils/WebColors.d.ts +0 -35
  639. package/src/_esm/src/ts/utils/WebColors.js +0 -54
  640. package/src/_esm/src/ts/utils/WebColors.js.map +0 -1
  641. package/src/_esm/src/ts/utils/WebColorsContrast.d.ts +0 -6
  642. package/src/_esm/src/ts/utils/WebColorsContrast.js +0 -9
  643. package/src/_esm/src/ts/utils/WebColorsContrast.js.map +0 -1
  644. package/src/_esm/src/ts/utils/WebColorsMalachite.d.ts +0 -12
  645. package/src/_esm/src/ts/utils/WebColorsMalachite.js +0 -25
  646. package/src/_esm/src/ts/utils/WebColorsMalachite.js.map +0 -1
  647. package/src/_esm/src/ts/utils/algorithms/CatmullRomPath.d.ts +0 -60
  648. package/src/_esm/src/ts/utils/algorithms/CatmullRomPath.js +0 -103
  649. package/src/_esm/src/ts/utils/algorithms/CatmullRomPath.js.map +0 -1
  650. package/src/_esm/src/ts/utils/algorithms/CircleIntersections.d.ts +0 -170
  651. package/src/_esm/src/ts/utils/algorithms/CircleIntersections.js +0 -303
  652. package/src/_esm/src/ts/utils/algorithms/CircleIntersections.js.map +0 -1
  653. package/src/_esm/src/ts/utils/algorithms/ContourLineDetection.d.ts +0 -150
  654. package/src/_esm/src/ts/utils/algorithms/ContourLineDetection.js +0 -362
  655. package/src/_esm/src/ts/utils/algorithms/ContourLineDetection.js.map +0 -1
  656. package/src/_esm/src/ts/utils/algorithms/CubicSplinePath.d.ts +0 -63
  657. package/src/_esm/src/ts/utils/algorithms/CubicSplinePath.js +0 -170
  658. package/src/_esm/src/ts/utils/algorithms/CubicSplinePath.js.map +0 -1
  659. package/src/_esm/src/ts/utils/algorithms/HobbyPath.d.ts +0 -81
  660. package/src/_esm/src/ts/utils/algorithms/HobbyPath.js +0 -273
  661. package/src/_esm/src/ts/utils/algorithms/HobbyPath.js.map +0 -1
  662. package/src/_esm/src/ts/utils/algorithms/Metaballs.d.ts +0 -30
  663. package/src/_esm/src/ts/utils/algorithms/Metaballs.js +0 -109
  664. package/src/_esm/src/ts/utils/algorithms/Metaballs.js.map +0 -1
  665. package/src/_esm/src/ts/utils/algorithms/PolygonInset.d.ts +0 -184
  666. package/src/_esm/src/ts/utils/algorithms/PolygonInset.js +0 -424
  667. package/src/_esm/src/ts/utils/algorithms/PolygonInset.js.map +0 -1
  668. package/src/_esm/src/ts/utils/algorithms/PolygonTesselationOutlines.d.ts +0 -145
  669. package/src/_esm/src/ts/utils/algorithms/PolygonTesselationOutlines.js +0 -262
  670. package/src/_esm/src/ts/utils/algorithms/PolygonTesselationOutlines.js.map +0 -1
  671. package/src/_esm/src/ts/utils/algorithms/arrayFill.d.ts +0 -8
  672. package/src/_esm/src/ts/utils/algorithms/arrayFill.js +0 -14
  673. package/src/_esm/src/ts/utils/algorithms/arrayFill.js.map +0 -1
  674. package/src/_esm/src/ts/utils/algorithms/arrayResize.d.ts +0 -8
  675. package/src/_esm/src/ts/utils/algorithms/arrayResize.js +0 -20
  676. package/src/_esm/src/ts/utils/algorithms/arrayResize.js.map +0 -1
  677. package/src/_esm/src/ts/utils/algorithms/arrayShuffle.d.ts +0 -8
  678. package/src/_esm/src/ts/utils/algorithms/arrayShuffle.js +0 -11
  679. package/src/_esm/src/ts/utils/algorithms/arrayShuffle.js.map +0 -1
  680. package/src/_esm/src/ts/utils/algorithms/clearDuplicateVertices.d.ts +0 -22
  681. package/src/_esm/src/ts/utils/algorithms/clearDuplicateVertices.js +0 -47
  682. package/src/_esm/src/ts/utils/algorithms/clearDuplicateVertices.js.map +0 -1
  683. package/src/_esm/src/ts/utils/algorithms/clearPolygonDuplicateVertices.d.ts +0 -24
  684. package/src/_esm/src/ts/utils/algorithms/clearPolygonDuplicateVertices.js +0 -57
  685. package/src/_esm/src/ts/utils/algorithms/clearPolygonDuplicateVertices.js.map +0 -1
  686. package/src/_esm/src/ts/utils/algorithms/convexHull.d.ts +0 -23
  687. package/src/_esm/src/ts/utils/algorithms/convexHull.js +0 -67
  688. package/src/_esm/src/ts/utils/algorithms/convexHull.js.map +0 -1
  689. package/src/_esm/src/ts/utils/algorithms/convexPolygonIncircle.d.ts +0 -41
  690. package/src/_esm/src/ts/utils/algorithms/convexPolygonIncircle.js +0 -141
  691. package/src/_esm/src/ts/utils/algorithms/convexPolygonIncircle.js.map +0 -1
  692. package/src/_esm/src/ts/utils/algorithms/delaunay.d.ts +0 -30
  693. package/src/_esm/src/ts/utils/algorithms/delaunay.js +0 -153
  694. package/src/_esm/src/ts/utils/algorithms/delaunay.js.map +0 -1
  695. package/src/_esm/src/ts/utils/algorithms/delaunay2voronoi.d.ts +0 -25
  696. package/src/_esm/src/ts/utils/algorithms/delaunay2voronoi.js +0 -99
  697. package/src/_esm/src/ts/utils/algorithms/delaunay2voronoi.js.map +0 -1
  698. package/src/_esm/src/ts/utils/algorithms/detectPaths.d.ts +0 -21
  699. package/src/_esm/src/ts/utils/algorithms/detectPaths.js +0 -165
  700. package/src/_esm/src/ts/utils/algorithms/detectPaths.js.map +0 -1
  701. package/src/_esm/src/ts/utils/algorithms/findPolygonSelfIntersections.d.ts +0 -21
  702. package/src/_esm/src/ts/utils/algorithms/findPolygonSelfIntersections.js +0 -47
  703. package/src/_esm/src/ts/utils/algorithms/findPolygonSelfIntersections.js.map +0 -1
  704. package/src/_esm/src/ts/utils/algorithms/getContrastColor.d.ts +0 -13
  705. package/src/_esm/src/ts/utils/algorithms/getContrastColor.js +0 -22
  706. package/src/_esm/src/ts/utils/algorithms/getContrastColor.js.map +0 -1
  707. package/src/_esm/src/ts/utils/algorithms/matrixFill.d.ts +0 -10
  708. package/src/_esm/src/ts/utils/algorithms/matrixFill.js +0 -17
  709. package/src/_esm/src/ts/utils/algorithms/matrixFill.js.map +0 -1
  710. package/src/_esm/src/ts/utils/algorithms/pixelCornersToRoundPaths.d.ts +0 -23
  711. package/src/_esm/src/ts/utils/algorithms/pixelCornersToRoundPaths.js +0 -266
  712. package/src/_esm/src/ts/utils/algorithms/pixelCornersToRoundPaths.js.map +0 -1
  713. package/src/_esm/src/ts/utils/algorithms/splitPolygonToNonIntersecting.d.ts +0 -28
  714. package/src/_esm/src/ts/utils/algorithms/splitPolygonToNonIntersecting.js +0 -99
  715. package/src/_esm/src/ts/utils/algorithms/splitPolygonToNonIntersecting.js.map +0 -1
  716. package/src/_esm/src/ts/utils/algorithms/sutherlandHodgman.d.ts +0 -16
  717. package/src/_esm/src/ts/utils/algorithms/sutherlandHodgman.js +0 -72
  718. package/src/_esm/src/ts/utils/algorithms/sutherlandHodgman.js.map +0 -1
  719. package/src/_esm/src/ts/utils/cloneVertexArray.d.ts +0 -13
  720. package/src/_esm/src/ts/utils/cloneVertexArray.js +0 -19
  721. package/src/_esm/src/ts/utils/cloneVertexArray.js.map +0 -1
  722. package/src/_esm/src/ts/utils/createRandomizedPolygon.d.ts +0 -14
  723. package/src/_esm/src/ts/utils/createRandomizedPolygon.js +0 -28
  724. package/src/_esm/src/ts/utils/createRandomizedPolygon.js.map +0 -1
  725. package/src/_esm/src/ts/utils/datastructures/CircularIntervalSet.d.ts +0 -83
  726. package/src/_esm/src/ts/utils/datastructures/CircularIntervalSet.js +0 -158
  727. package/src/_esm/src/ts/utils/datastructures/CircularIntervalSet.js.map +0 -1
  728. package/src/_esm/src/ts/utils/datastructures/Color.d.ts +0 -391
  729. package/src/_esm/src/ts/utils/datastructures/Color.js +0 -1063
  730. package/src/_esm/src/ts/utils/datastructures/Color.js.map +0 -1
  731. package/src/_esm/src/ts/utils/datastructures/ColorGradient.d.ts +0 -81
  732. package/src/_esm/src/ts/utils/datastructures/ColorGradient.js +0 -171
  733. package/src/_esm/src/ts/utils/datastructures/ColorGradient.js.map +0 -1
  734. package/src/_esm/src/ts/utils/datastructures/DataGrid2d.d.ts +0 -53
  735. package/src/_esm/src/ts/utils/datastructures/DataGrid2d.js +0 -19
  736. package/src/_esm/src/ts/utils/datastructures/DataGrid2d.js.map +0 -1
  737. package/src/_esm/src/ts/utils/datastructures/DataGrid2dArrayMatrix.d.ts +0 -88
  738. package/src/_esm/src/ts/utils/datastructures/DataGrid2dArrayMatrix.js +0 -150
  739. package/src/_esm/src/ts/utils/datastructures/DataGrid2dArrayMatrix.js.map +0 -1
  740. package/src/_esm/src/ts/utils/datastructures/DataGrid2dListAdapter.d.ts +0 -59
  741. package/src/_esm/src/ts/utils/datastructures/DataGrid2dListAdapter.js +0 -79
  742. package/src/_esm/src/ts/utils/datastructures/DataGrid2dListAdapter.js.map +0 -1
  743. package/src/_esm/src/ts/utils/datastructures/GenericPath.d.ts +0 -86
  744. package/src/_esm/src/ts/utils/datastructures/GenericPath.js +0 -117
  745. package/src/_esm/src/ts/utils/datastructures/GenericPath.js.map +0 -1
  746. package/src/_esm/src/ts/utils/datastructures/GeometryMesh.d.ts +0 -49
  747. package/src/_esm/src/ts/utils/datastructures/GeometryMesh.js +0 -53
  748. package/src/_esm/src/ts/utils/datastructures/GeometryMesh.js.map +0 -1
  749. package/src/_esm/src/ts/utils/datastructures/Girih.d.ts +0 -181
  750. package/src/_esm/src/ts/utils/datastructures/Girih.js +0 -261
  751. package/src/_esm/src/ts/utils/datastructures/Girih.js.map +0 -1
  752. package/src/_esm/src/ts/utils/datastructures/GirihBowtie.d.ts +0 -37
  753. package/src/_esm/src/ts/utils/datastructures/GirihBowtie.js +0 -130
  754. package/src/_esm/src/ts/utils/datastructures/GirihBowtie.js.map +0 -1
  755. package/src/_esm/src/ts/utils/datastructures/GirihDecagon.d.ts +0 -52
  756. package/src/_esm/src/ts/utils/datastructures/GirihDecagon.js +0 -110
  757. package/src/_esm/src/ts/utils/datastructures/GirihDecagon.js.map +0 -1
  758. package/src/_esm/src/ts/utils/datastructures/GirihHexagon.d.ts +0 -39
  759. package/src/_esm/src/ts/utils/datastructures/GirihHexagon.js +0 -178
  760. package/src/_esm/src/ts/utils/datastructures/GirihHexagon.js.map +0 -1
  761. package/src/_esm/src/ts/utils/datastructures/GirihPenroseRhombus.d.ts +0 -46
  762. package/src/_esm/src/ts/utils/datastructures/GirihPenroseRhombus.js +0 -167
  763. package/src/_esm/src/ts/utils/datastructures/GirihPenroseRhombus.js.map +0 -1
  764. package/src/_esm/src/ts/utils/datastructures/GirihPentagon.d.ts +0 -37
  765. package/src/_esm/src/ts/utils/datastructures/GirihPentagon.js +0 -87
  766. package/src/_esm/src/ts/utils/datastructures/GirihPentagon.js.map +0 -1
  767. package/src/_esm/src/ts/utils/datastructures/GirihRhombus.d.ts +0 -38
  768. package/src/_esm/src/ts/utils/datastructures/GirihRhombus.js +0 -133
  769. package/src/_esm/src/ts/utils/datastructures/GirihRhombus.js.map +0 -1
  770. package/src/_esm/src/ts/utils/datastructures/GirihTile.d.ts +0 -283
  771. package/src/_esm/src/ts/utils/datastructures/GirihTile.js +0 -286
  772. package/src/_esm/src/ts/utils/datastructures/GirihTile.js.map +0 -1
  773. package/src/_esm/src/ts/utils/datastructures/Matrix4x4.d.ts +0 -244
  774. package/src/_esm/src/ts/utils/datastructures/Matrix4x4.js +0 -246
  775. package/src/_esm/src/ts/utils/datastructures/Matrix4x4.js.map +0 -1
  776. package/src/_esm/src/ts/utils/datastructures/VoronoiCell.d.ts +0 -122
  777. package/src/_esm/src/ts/utils/datastructures/VoronoiCell.js +0 -178
  778. package/src/_esm/src/ts/utils/datastructures/VoronoiCell.js.map +0 -1
  779. package/src/_esm/src/ts/utils/datastructures/interfaces.d.ts +0 -13
  780. package/src/_esm/src/ts/utils/datastructures/interfaces.js +0 -9
  781. package/src/_esm/src/ts/utils/datastructures/interfaces.js.map +0 -1
  782. package/src/_esm/src/ts/utils/detectDarkMode.d.ts +0 -10
  783. package/src/_esm/src/ts/utils/detectDarkMode.js +0 -37
  784. package/src/_esm/src/ts/utils/detectDarkMode.js.map +0 -1
  785. package/src/_esm/src/ts/utils/dom/components/ColorGradientPicker.d.ts +0 -246
  786. package/src/_esm/src/ts/utils/dom/components/ColorGradientPicker.js +0 -743
  787. package/src/_esm/src/ts/utils/dom/components/ColorGradientPicker.js.map +0 -1
  788. package/src/_esm/src/ts/utils/dom/components/ColorGradientSelector.d.ts +0 -118
  789. package/src/_esm/src/ts/utils/dom/components/ColorGradientSelector.js +0 -339
  790. package/src/_esm/src/ts/utils/dom/components/ColorGradientSelector.js.map +0 -1
  791. package/src/_esm/src/ts/utils/dom/components/Test.d.ts +0 -7
  792. package/src/_esm/src/ts/utils/dom/components/Test.js +0 -26
  793. package/src/_esm/src/ts/utils/dom/components/Test.js.map +0 -1
  794. package/src/_esm/src/ts/utils/dom/getAvailableContainerSpace.d.ts +0 -2
  795. package/src/_esm/src/ts/utils/dom/getAvailableContainerSpace.js +0 -25
  796. package/src/_esm/src/ts/utils/dom/getAvailableContainerSpace.js.map +0 -1
  797. package/src/_esm/src/ts/utils/dom/getFProp.d.ts +0 -5
  798. package/src/_esm/src/ts/utils/dom/getFProp.js +0 -8
  799. package/src/_esm/src/ts/utils/dom/getFProp.js.map +0 -1
  800. package/src/_esm/src/ts/utils/dom/guiSizeToggler.d.ts +0 -18
  801. package/src/_esm/src/ts/utils/dom/guiSizeToggler.js +0 -40
  802. package/src/_esm/src/ts/utils/dom/guiSizeToggler.js.map +0 -1
  803. package/src/_esm/src/ts/utils/findInVertexArray.d.ts +0 -19
  804. package/src/_esm/src/ts/utils/findInVertexArray.js +0 -25
  805. package/src/_esm/src/ts/utils/findInVertexArray.js.map +0 -1
  806. package/src/_esm/src/ts/utils/gup.d.ts +0 -14
  807. package/src/_esm/src/ts/utils/gup.js +0 -27
  808. package/src/_esm/src/ts/utils/gup.js.map +0 -1
  809. package/src/_esm/src/ts/utils/helpers/BezierPathInteractionHelper.d.ts +0 -272
  810. package/src/_esm/src/ts/utils/helpers/BezierPathInteractionHelper.js +0 -648
  811. package/src/_esm/src/ts/utils/helpers/BezierPathInteractionHelper.js.map +0 -1
  812. package/src/_esm/src/ts/utils/helpers/CircleHelper.d.ts +0 -73
  813. package/src/_esm/src/ts/utils/helpers/CircleHelper.js +0 -88
  814. package/src/_esm/src/ts/utils/helpers/CircleHelper.js.map +0 -1
  815. package/src/_esm/src/ts/utils/helpers/CircleSectorHelper.d.ts +0 -90
  816. package/src/_esm/src/ts/utils/helpers/CircleSectorHelper.js +0 -109
  817. package/src/_esm/src/ts/utils/helpers/CircleSectorHelper.js.map +0 -1
  818. package/src/_esm/src/ts/utils/helpers/TriangleHelper.d.ts +0 -57
  819. package/src/_esm/src/ts/utils/helpers/TriangleHelper.js +0 -78
  820. package/src/_esm/src/ts/utils/helpers/TriangleHelper.js.map +0 -1
  821. package/src/_esm/src/ts/utils/helpers/VEllipseHelper.d.ts +0 -32
  822. package/src/_esm/src/ts/utils/helpers/VEllipseHelper.js +0 -83
  823. package/src/_esm/src/ts/utils/helpers/VEllipseHelper.js.map +0 -1
  824. package/src/_esm/src/ts/utils/helpers/VEllipseSectorHelper.d.ts +0 -52
  825. package/src/_esm/src/ts/utils/helpers/VEllipseSectorHelper.js +0 -130
  826. package/src/_esm/src/ts/utils/helpers/VEllipseSectorHelper.js.map +0 -1
  827. package/src/_esm/src/ts/utils/io/FileDrop.d.ts +0 -110
  828. package/src/_esm/src/ts/utils/io/FileDrop.js +0 -171
  829. package/src/_esm/src/ts/utils/io/FileDrop.js.map +0 -1
  830. package/src/_esm/src/ts/utils/parsers/LinearColorGradientParser.d.ts +0 -78
  831. package/src/_esm/src/ts/utils/parsers/LinearColorGradientParser.js +0 -217
  832. package/src/_esm/src/ts/utils/parsers/LinearColorGradientParser.js.map +0 -1
  833. package/src/_esm/src/ts/utils/parsers/OBJParser.d.ts +0 -24
  834. package/src/_esm/src/ts/utils/parsers/OBJParser.js +0 -72
  835. package/src/_esm/src/ts/utils/parsers/OBJParser.js.map +0 -1
  836. package/src/_esm/src/ts/utils/parsers/STLParser.d.ts +0 -61
  837. package/src/_esm/src/ts/utils/parsers/STLParser.js +0 -175
  838. package/src/_esm/src/ts/utils/parsers/STLParser.js.map +0 -1
  839. package/src/_esm/src/ts/utils/parsers/svg/parseSVGPathData.d.ts +0 -27
  840. package/src/_esm/src/ts/utils/parsers/svg/parseSVGPathData.js +0 -482
  841. package/src/_esm/src/ts/utils/parsers/svg/parseSVGPathData.js.map +0 -1
  842. package/src/_esm/src/ts/utils/parsers/svg/splitSVGPathData.d.ts +0 -20
  843. package/src/_esm/src/ts/utils/parsers/svg/splitSVGPathData.js +0 -49
  844. package/src/_esm/src/ts/utils/parsers/svg/splitSVGPathData.js.map +0 -1
  845. package/src/_esm/src/ts/utils/parsers/svg/types.d.ts +0 -63
  846. package/src/_esm/src/ts/utils/parsers/svg/types.js +0 -16
  847. package/src/_esm/src/ts/utils/parsers/svg/types.js.map +0 -1
  848. package/src/_esm/utils/InitializationObserver.d.ts +0 -18
  849. package/src/_esm/utils/InitializationObserver.js +0 -61
  850. package/src/_esm/utils/InitializationObserver.js.map +0 -1
  851. package/src/_esm/utils/LissajousFigure.d.ts +0 -34
  852. package/src/_esm/utils/LissajousFigure.js +0 -99
  853. package/src/_esm/utils/LissajousFigure.js.map +0 -1
  854. package/src/_esm/utils/NGons.d.ts +0 -13
  855. package/src/_esm/utils/NGons.js +0 -36
  856. package/src/_esm/utils/NGons.js.map +0 -1
  857. package/src/_esm/utils/Params.d.ts +0 -17
  858. package/src/_esm/utils/Params.js +0 -52
  859. package/src/_esm/utils/Params.js.map +0 -1
  860. package/src/_esm/utils/PerlinNoise.d.ts +0 -19
  861. package/src/_esm/utils/PerlinNoise.js +0 -350
  862. package/src/_esm/utils/PerlinNoise.js.map +0 -1
  863. package/src/_esm/utils/SVGPathUtils.d.ts +0 -22
  864. package/src/_esm/utils/SVGPathUtils.js +0 -45
  865. package/src/_esm/utils/SVGPathUtils.js.map +0 -1
  866. package/src/_esm/utils/WebColors.d.ts +0 -35
  867. package/src/_esm/utils/WebColors.js +0 -58
  868. package/src/_esm/utils/WebColors.js.map +0 -1
  869. package/src/_esm/utils/WebColorsContrast.d.ts +0 -6
  870. package/src/_esm/utils/WebColorsContrast.js +0 -12
  871. package/src/_esm/utils/WebColorsContrast.js.map +0 -1
  872. package/src/_esm/utils/WebColorsMalachite.d.ts +0 -12
  873. package/src/_esm/utils/WebColorsMalachite.js +0 -28
  874. package/src/_esm/utils/WebColorsMalachite.js.map +0 -1
  875. package/src/_esm/utils/algorithms/CatmullRomPath.d.ts +0 -60
  876. package/src/_esm/utils/algorithms/CatmullRomPath.js +0 -107
  877. package/src/_esm/utils/algorithms/CatmullRomPath.js.map +0 -1
  878. package/src/_esm/utils/algorithms/CircleIntersections.d.ts +0 -170
  879. package/src/_esm/utils/algorithms/CircleIntersections.js +0 -307
  880. package/src/_esm/utils/algorithms/CircleIntersections.js.map +0 -1
  881. package/src/_esm/utils/algorithms/ContourLineDetection.d.ts +0 -150
  882. package/src/_esm/utils/algorithms/ContourLineDetection.js +0 -366
  883. package/src/_esm/utils/algorithms/ContourLineDetection.js.map +0 -1
  884. package/src/_esm/utils/algorithms/CubicSplinePath.d.ts +0 -63
  885. package/src/_esm/utils/algorithms/CubicSplinePath.js +0 -174
  886. package/src/_esm/utils/algorithms/CubicSplinePath.js.map +0 -1
  887. package/src/_esm/utils/algorithms/HobbyPath.d.ts +0 -81
  888. package/src/_esm/utils/algorithms/HobbyPath.js +0 -277
  889. package/src/_esm/utils/algorithms/HobbyPath.js.map +0 -1
  890. package/src/_esm/utils/algorithms/Metaballs.d.ts +0 -30
  891. package/src/_esm/utils/algorithms/Metaballs.js +0 -113
  892. package/src/_esm/utils/algorithms/Metaballs.js.map +0 -1
  893. package/src/_esm/utils/algorithms/PolygonInset.d.ts +0 -184
  894. package/src/_esm/utils/algorithms/PolygonInset.js +0 -428
  895. package/src/_esm/utils/algorithms/PolygonInset.js.map +0 -1
  896. package/src/_esm/utils/algorithms/PolygonTesselationOutlines.d.ts +0 -145
  897. package/src/_esm/utils/algorithms/PolygonTesselationOutlines.js +0 -267
  898. package/src/_esm/utils/algorithms/PolygonTesselationOutlines.js.map +0 -1
  899. package/src/_esm/utils/algorithms/arrayFill.d.ts +0 -8
  900. package/src/_esm/utils/algorithms/arrayFill.js +0 -18
  901. package/src/_esm/utils/algorithms/arrayFill.js.map +0 -1
  902. package/src/_esm/utils/algorithms/arrayResize.d.ts +0 -8
  903. package/src/_esm/utils/algorithms/arrayResize.js +0 -24
  904. package/src/_esm/utils/algorithms/arrayResize.js.map +0 -1
  905. package/src/_esm/utils/algorithms/arrayShuffle.d.ts +0 -8
  906. package/src/_esm/utils/algorithms/arrayShuffle.js +0 -15
  907. package/src/_esm/utils/algorithms/arrayShuffle.js.map +0 -1
  908. package/src/_esm/utils/algorithms/clearDuplicateVertices.d.ts +0 -22
  909. package/src/_esm/utils/algorithms/clearDuplicateVertices.js +0 -51
  910. package/src/_esm/utils/algorithms/clearDuplicateVertices.js.map +0 -1
  911. package/src/_esm/utils/algorithms/clearPolygonDuplicateVertices.d.ts +0 -24
  912. package/src/_esm/utils/algorithms/clearPolygonDuplicateVertices.js +0 -61
  913. package/src/_esm/utils/algorithms/clearPolygonDuplicateVertices.js.map +0 -1
  914. package/src/_esm/utils/algorithms/convexHull.d.ts +0 -23
  915. package/src/_esm/utils/algorithms/convexHull.js +0 -71
  916. package/src/_esm/utils/algorithms/convexHull.js.map +0 -1
  917. package/src/_esm/utils/algorithms/convexPolygonIncircle.d.ts +0 -41
  918. package/src/_esm/utils/algorithms/convexPolygonIncircle.js +0 -145
  919. package/src/_esm/utils/algorithms/convexPolygonIncircle.js.map +0 -1
  920. package/src/_esm/utils/algorithms/createRandomizedPolygon.d.ts +0 -14
  921. package/src/_esm/utils/algorithms/createRandomizedPolygon.js +0 -28
  922. package/src/_esm/utils/algorithms/createRandomizedPolygon.js.map +0 -1
  923. package/src/_esm/utils/algorithms/delaunay.d.ts +0 -30
  924. package/src/_esm/utils/algorithms/delaunay.js +0 -157
  925. package/src/_esm/utils/algorithms/delaunay.js.map +0 -1
  926. package/src/_esm/utils/algorithms/delaunay2voronoi.d.ts +0 -25
  927. package/src/_esm/utils/algorithms/delaunay2voronoi.js +0 -103
  928. package/src/_esm/utils/algorithms/delaunay2voronoi.js.map +0 -1
  929. package/src/_esm/utils/algorithms/detectPaths.d.ts +0 -21
  930. package/src/_esm/utils/algorithms/detectPaths.js +0 -169
  931. package/src/_esm/utils/algorithms/detectPaths.js.map +0 -1
  932. package/src/_esm/utils/algorithms/findPolygonSelfIntersections.d.ts +0 -21
  933. package/src/_esm/utils/algorithms/findPolygonSelfIntersections.js +0 -51
  934. package/src/_esm/utils/algorithms/findPolygonSelfIntersections.js.map +0 -1
  935. package/src/_esm/utils/algorithms/getContrastColor.d.ts +0 -13
  936. package/src/_esm/utils/algorithms/getContrastColor.js +0 -26
  937. package/src/_esm/utils/algorithms/getContrastColor.js.map +0 -1
  938. package/src/_esm/utils/algorithms/matrixFill.d.ts +0 -10
  939. package/src/_esm/utils/algorithms/matrixFill.js +0 -21
  940. package/src/_esm/utils/algorithms/matrixFill.js.map +0 -1
  941. package/src/_esm/utils/algorithms/pixelCornersToRoundPaths.d.ts +0 -23
  942. package/src/_esm/utils/algorithms/pixelCornersToRoundPaths.js +0 -270
  943. package/src/_esm/utils/algorithms/pixelCornersToRoundPaths.js.map +0 -1
  944. package/src/_esm/utils/algorithms/splitPolygonToNonIntersecting.d.ts +0 -28
  945. package/src/_esm/utils/algorithms/splitPolygonToNonIntersecting.js +0 -102
  946. package/src/_esm/utils/algorithms/splitPolygonToNonIntersecting.js.map +0 -1
  947. package/src/_esm/utils/algorithms/sutherlandHodgman.d.ts +0 -16
  948. package/src/_esm/utils/algorithms/sutherlandHodgman.js +0 -76
  949. package/src/_esm/utils/algorithms/sutherlandHodgman.js.map +0 -1
  950. package/src/_esm/utils/cloneVertexArray.d.ts +0 -13
  951. package/src/_esm/utils/cloneVertexArray.js +0 -23
  952. package/src/_esm/utils/cloneVertexArray.js.map +0 -1
  953. package/src/_esm/utils/createRandomizedPolygon.d.ts +0 -14
  954. package/src/_esm/utils/createRandomizedPolygon.js +0 -32
  955. package/src/_esm/utils/createRandomizedPolygon.js.map +0 -1
  956. package/src/_esm/utils/datastructures/CircularIntervalSet.d.ts +0 -83
  957. package/src/_esm/utils/datastructures/CircularIntervalSet.js +0 -162
  958. package/src/_esm/utils/datastructures/CircularIntervalSet.js.map +0 -1
  959. package/src/_esm/utils/datastructures/Color.d.ts +0 -391
  960. package/src/_esm/utils/datastructures/Color.js +0 -1067
  961. package/src/_esm/utils/datastructures/Color.js.map +0 -1
  962. package/src/_esm/utils/datastructures/ColorGradient.d.ts +0 -81
  963. package/src/_esm/utils/datastructures/ColorGradient.js +0 -175
  964. package/src/_esm/utils/datastructures/ColorGradient.js.map +0 -1
  965. package/src/_esm/utils/datastructures/DataGrid2d.d.ts +0 -53
  966. package/src/_esm/utils/datastructures/DataGrid2d.js +0 -20
  967. package/src/_esm/utils/datastructures/DataGrid2d.js.map +0 -1
  968. package/src/_esm/utils/datastructures/DataGrid2dArrayMatrix.d.ts +0 -88
  969. package/src/_esm/utils/datastructures/DataGrid2dArrayMatrix.js +0 -154
  970. package/src/_esm/utils/datastructures/DataGrid2dArrayMatrix.js.map +0 -1
  971. package/src/_esm/utils/datastructures/DataGrid2dListAdapter.d.ts +0 -59
  972. package/src/_esm/utils/datastructures/DataGrid2dListAdapter.js +0 -83
  973. package/src/_esm/utils/datastructures/DataGrid2dListAdapter.js.map +0 -1
  974. package/src/_esm/utils/datastructures/GenericPath.d.ts +0 -86
  975. package/src/_esm/utils/datastructures/GenericPath.js +0 -121
  976. package/src/_esm/utils/datastructures/GenericPath.js.map +0 -1
  977. package/src/_esm/utils/datastructures/GeometryMesh.d.ts +0 -49
  978. package/src/_esm/utils/datastructures/GeometryMesh.js +0 -57
  979. package/src/_esm/utils/datastructures/GeometryMesh.js.map +0 -1
  980. package/src/_esm/utils/datastructures/Girih.d.ts +0 -181
  981. package/src/_esm/utils/datastructures/Girih.js +0 -265
  982. package/src/_esm/utils/datastructures/Girih.js.map +0 -1
  983. package/src/_esm/utils/datastructures/GirihBowtie.d.ts +0 -37
  984. package/src/_esm/utils/datastructures/GirihBowtie.js +0 -134
  985. package/src/_esm/utils/datastructures/GirihBowtie.js.map +0 -1
  986. package/src/_esm/utils/datastructures/GirihDecagon.d.ts +0 -52
  987. package/src/_esm/utils/datastructures/GirihDecagon.js +0 -114
  988. package/src/_esm/utils/datastructures/GirihDecagon.js.map +0 -1
  989. package/src/_esm/utils/datastructures/GirihHexagon.d.ts +0 -39
  990. package/src/_esm/utils/datastructures/GirihHexagon.js +0 -182
  991. package/src/_esm/utils/datastructures/GirihHexagon.js.map +0 -1
  992. package/src/_esm/utils/datastructures/GirihPenroseRhombus.d.ts +0 -46
  993. package/src/_esm/utils/datastructures/GirihPenroseRhombus.js +0 -171
  994. package/src/_esm/utils/datastructures/GirihPenroseRhombus.js.map +0 -1
  995. package/src/_esm/utils/datastructures/GirihPentagon.d.ts +0 -37
  996. package/src/_esm/utils/datastructures/GirihPentagon.js +0 -91
  997. package/src/_esm/utils/datastructures/GirihPentagon.js.map +0 -1
  998. package/src/_esm/utils/datastructures/GirihRhombus.d.ts +0 -38
  999. package/src/_esm/utils/datastructures/GirihRhombus.js +0 -137
  1000. package/src/_esm/utils/datastructures/GirihRhombus.js.map +0 -1
  1001. package/src/_esm/utils/datastructures/GirihTile.d.ts +0 -283
  1002. package/src/_esm/utils/datastructures/GirihTile.js +0 -290
  1003. package/src/_esm/utils/datastructures/GirihTile.js.map +0 -1
  1004. package/src/_esm/utils/datastructures/Matrix4x4.d.ts +0 -244
  1005. package/src/_esm/utils/datastructures/Matrix4x4.js +0 -250
  1006. package/src/_esm/utils/datastructures/Matrix4x4.js.map +0 -1
  1007. package/src/_esm/utils/datastructures/VoronoiCell.d.ts +0 -122
  1008. package/src/_esm/utils/datastructures/VoronoiCell.js +0 -182
  1009. package/src/_esm/utils/datastructures/VoronoiCell.js.map +0 -1
  1010. package/src/_esm/utils/datastructures/interfaces.d.ts +0 -13
  1011. package/src/_esm/utils/datastructures/interfaces.js +0 -10
  1012. package/src/_esm/utils/datastructures/interfaces.js.map +0 -1
  1013. package/src/_esm/utils/detectDarkMode.d.ts +0 -10
  1014. package/src/_esm/utils/detectDarkMode.js +0 -41
  1015. package/src/_esm/utils/detectDarkMode.js.map +0 -1
  1016. package/src/_esm/utils/dom/components/ColorGradientPicker.d.ts +0 -246
  1017. package/src/_esm/utils/dom/components/ColorGradientPicker.js +0 -780
  1018. package/src/_esm/utils/dom/components/ColorGradientPicker.js.map +0 -1
  1019. package/src/_esm/utils/dom/components/ColorGradientPickerJSX.d.ts +0 -129
  1020. package/src/_esm/utils/dom/components/ColorGradientPickerJSX.js +0 -582
  1021. package/src/_esm/utils/dom/components/ColorGradientPickerJSX.js.map +0 -1
  1022. package/src/_esm/utils/dom/components/ColorGradientSelector.d.ts +0 -118
  1023. package/src/_esm/utils/dom/components/ColorGradientSelector.js +0 -376
  1024. package/src/_esm/utils/dom/components/ColorGradientSelector.js.map +0 -1
  1025. package/src/_esm/utils/dom/components/Test.d.ts +0 -7
  1026. package/src/_esm/utils/dom/components/Test.js +0 -63
  1027. package/src/_esm/utils/dom/components/Test.js.map +0 -1
  1028. package/src/_esm/utils/dom/getAvailableContainerSpace.d.ts +0 -2
  1029. package/src/_esm/utils/dom/getAvailableContainerSpace.js +0 -29
  1030. package/src/_esm/utils/dom/getAvailableContainerSpace.js.map +0 -1
  1031. package/src/_esm/utils/dom/getFProp.d.ts +0 -5
  1032. package/src/_esm/utils/dom/getFProp.js +0 -12
  1033. package/src/_esm/utils/dom/getFProp.js.map +0 -1
  1034. package/src/_esm/utils/dom/guiSizeToggler.d.ts +0 -18
  1035. package/src/_esm/utils/dom/guiSizeToggler.js +0 -44
  1036. package/src/_esm/utils/dom/guiSizeToggler.js.map +0 -1
  1037. package/src/_esm/utils/findInVertexArray.d.ts +0 -19
  1038. package/src/_esm/utils/findInVertexArray.js +0 -29
  1039. package/src/_esm/utils/findInVertexArray.js.map +0 -1
  1040. package/src/_esm/utils/getFProp.d.ts +0 -5
  1041. package/src/_esm/utils/getFProp.js +0 -8
  1042. package/src/_esm/utils/getFProp.js.map +0 -1
  1043. package/src/_esm/utils/gup.d.ts +0 -14
  1044. package/src/_esm/utils/gup.js +0 -31
  1045. package/src/_esm/utils/gup.js.map +0 -1
  1046. package/src/_esm/utils/helpers/BezierPathInteractionHelper.d.ts +0 -272
  1047. package/src/_esm/utils/helpers/BezierPathInteractionHelper.js +0 -655
  1048. package/src/_esm/utils/helpers/BezierPathInteractionHelper.js.map +0 -1
  1049. package/src/_esm/utils/helpers/CircleHelper.d.ts +0 -73
  1050. package/src/_esm/utils/helpers/CircleHelper.js +0 -92
  1051. package/src/_esm/utils/helpers/CircleHelper.js.map +0 -1
  1052. package/src/_esm/utils/helpers/CircleSectorHelper.d.ts +0 -90
  1053. package/src/_esm/utils/helpers/CircleSectorHelper.js +0 -113
  1054. package/src/_esm/utils/helpers/CircleSectorHelper.js.map +0 -1
  1055. package/src/_esm/utils/helpers/TriangleHelper.d.ts +0 -57
  1056. package/src/_esm/utils/helpers/TriangleHelper.js +0 -82
  1057. package/src/_esm/utils/helpers/TriangleHelper.js.map +0 -1
  1058. package/src/_esm/utils/helpers/VEllipseHelper.d.ts +0 -32
  1059. package/src/_esm/utils/helpers/VEllipseHelper.js +0 -87
  1060. package/src/_esm/utils/helpers/VEllipseHelper.js.map +0 -1
  1061. package/src/_esm/utils/helpers/VEllipseSectorHelper.d.ts +0 -52
  1062. package/src/_esm/utils/helpers/VEllipseSectorHelper.js +0 -134
  1063. package/src/_esm/utils/helpers/VEllipseSectorHelper.js.map +0 -1
  1064. package/src/_esm/utils/io/DndFileHandler.d.ts +0 -63
  1065. package/src/_esm/utils/io/DndFileHandler.js +0 -106
  1066. package/src/_esm/utils/io/DndFileHandler.js.map +0 -1
  1067. package/src/_esm/utils/io/FileDrop.d.ts +0 -110
  1068. package/src/_esm/utils/io/FileDrop.js +0 -175
  1069. package/src/_esm/utils/io/FileDrop.js.map +0 -1
  1070. package/src/_esm/utils/parsers/LinearColorGradientParser.d.ts +0 -78
  1071. package/src/_esm/utils/parsers/LinearColorGradientParser.js +0 -223
  1072. package/src/_esm/utils/parsers/LinearColorGradientParser.js.map +0 -1
  1073. package/src/_esm/utils/parsers/OBJParser.d.ts +0 -25
  1074. package/src/_esm/utils/parsers/OBJParser.js +0 -78
  1075. package/src/_esm/utils/parsers/OBJParser.js.map +0 -1
  1076. package/src/_esm/utils/parsers/STLParser.d.ts +0 -61
  1077. package/src/_esm/utils/parsers/STLParser.js +0 -179
  1078. package/src/_esm/utils/parsers/STLParser.js.map +0 -1
  1079. package/src/_esm/utils/parsers/svg/parseSVGPathData.d.ts +0 -27
  1080. package/src/_esm/utils/parsers/svg/parseSVGPathData.js +0 -486
  1081. package/src/_esm/utils/parsers/svg/parseSVGPathData.js.map +0 -1
  1082. package/src/_esm/utils/parsers/svg/splitSVGPathData.d.ts +0 -20
  1083. package/src/_esm/utils/parsers/svg/splitSVGPathData.js +0 -53
  1084. package/src/_esm/utils/parsers/svg/splitSVGPathData.js.map +0 -1
  1085. package/src/_esm/utils/parsers/svg/types.d.ts +0 -63
  1086. package/src/_esm/utils/parsers/svg/types.js +0 -17
  1087. package/src/_esm/utils/parsers/svg/types.js.map +0 -1
@@ -1,1053 +0,0 @@
1
- /**
2
- * @author Ikaros Kappler
3
- * @date 2013-08-15
4
- * @modified 2018-08-16 Added a closure. Removed the wrapper class 'IKRS'. Replaced class THREE.Vector2 by Vertex class.
5
- * @modified 2018-11-19 Added the fromArray(Array) function.
6
- * @modified 2018-11-28 Added the locateCurveByPoint(Vertex) function.
7
- * @modified 2018-12-04 Added the toSVGPathData() function.
8
- * @modified 2019-03-20 Added JSDoc tags.
9
- * @modified 2019-03-23 Changed the signatures of getPoint, getPointAt and getTangent (!version 2.0).
10
- * @modified 2019-12-02 Fixed the updateArcLength function. It used the wrong pointAt function (was renamed before).
11
- * @modified 2020-02-06 Added the getSubCurveAt(number,number) function.
12
- * @modified 2020-02-06 Fixed a serious bug in the arc lenght calculation (length was never reset, urgh).
13
- * @modified 2020-02-07 Added the isInstance(any) function.
14
- * @modified 2020-02-10 Added the reverse() function.
15
- * @modified 2020-02-10 Fixed the translate(...) function (returning 'this' was missing).
16
- * @modified 2020-03-24 Ported this class from vanilla JS to Typescript.
17
- * @modified 2020-06-03 Added the getBounds() function.
18
- * @modified 2020-07-14 Changed the moveCurvePoint(...,Vertex) to moveCurvePoint(...,XYCoords), which is more generic.
19
- * @modified 2020-07-24 Added the getClosestT function and the helper function locateIntervalByDistance(...).
20
- * @modified 2021-01-20 Added UID.
21
- * @modified 2022-02-02 Added the `destroy` method.
22
- * @modified 2022-02-02 Cleared the `toSVGPathData` function (deprecated). Use `drawutilssvg` instead.
23
- * @modified 2022-10-17 The `CubicBezierCurve` class now implements the new `PathSegment` interface.
24
- * @modified 2023-09-30 Added the function `CubicbezierCurve.getSubCurve(number,number)` – similar to `getSubCurveAt(...)` but with absolute position parameters.
25
- * @modified 2023-10-07 Added the `trimEnd`, `trimEndAt`, `trimStart`, `trimStartAt` methods.
26
- * @modified 2025-04-09 Added the `CubicBezierCurve.move` method to match the convention – which just calls `translate`.
27
- * @modified 2025-04-09 Modified the `CubicBezierCurve.translate` method: chaning parameter `Vertex` to more generalized `XYCoords`.
28
- * @modified 2025-04-13 Changed visibility of `CubicBezierCurve.utils` from 'private' to 'public'.
29
- * @modified 2025-04-13 Added helper function `CubicBezierCurve.utils.bezierCoeffs`.
30
- * @modified 2025-04-13 Added helper functopn `CubicBezierCurve.utils.sgn(number)` for division safe sign calculation.
31
- * @modified 2025-03-13 Class `CubicBezierCurve` is now implementing interface `Intersectable`.
32
- * @modified 2025-04-18 Added evaluation method for cubic Bézier curves `CubicBezierCurve.utils.evaluateT`.
33
- * @modified 2025-04-18 Refactored method `CubicBezierCurve.getPointAt` to use `evaluateT`.
34
- * @modified 2025-04-18 Fixed the `CubicBezierCurve.getBounds` method: now returning the real bounding box. Before it was an approximated one.
35
- * @modified 2025-ß4-18 Added helper methods for bounding box calculation `CubucBezierCurve.util.cubicPolyMinMax` and `cubicPoly`.
36
- * @version 2.9.0
37
- *
38
- * @file CubicBezierCurve
39
- * @public
40
- **/
41
- import { Bounds } from "./Bounds";
42
- import { UIDGenerator } from "./UIDGenerator";
43
- import { Vertex } from "./Vertex";
44
- import { Vector } from "./Vector";
45
- /**
46
- * @classdesc A refactored cubic bezier curve class.
47
- *
48
- * @requires Bounds
49
- * @requires Vertex
50
- * @requires Vector
51
- * @requires XYCoords
52
- * @requires UID
53
- * @requires UIDGenerator
54
- */
55
- export class CubicBezierCurve {
56
- /**
57
- * The constructor.
58
- *
59
- * @constructor
60
- * @name CubicBezierCurve
61
- * @param {Vertex} startPoint - The Bézier curve's start point.
62
- * @param {Vertex} endPoint - The Bézier curve's end point.
63
- * @param {Vertex} startControlPoint - The Bézier curve's start control point.
64
- * @param {Vertex} endControlPoint - The Bézier curve's end control point.
65
- **/
66
- constructor(startPoint, endPoint, startControlPoint, endControlPoint) {
67
- /** @constant {number} */
68
- this.START_POINT = CubicBezierCurve.START_POINT;
69
- /** @constant {number} */
70
- this.START_CONTROL_POINT = CubicBezierCurve.START_CONTROL_POINT;
71
- /** @constant {number} */
72
- this.END_CONTROL_POINT = CubicBezierCurve.END_CONTROL_POINT;
73
- /** @constant {number} */
74
- this.END_POINT = CubicBezierCurve.END_POINT;
75
- this.uid = UIDGenerator.next();
76
- this.startPoint = startPoint;
77
- this.startControlPoint = startControlPoint;
78
- this.endPoint = endPoint;
79
- this.endControlPoint = endControlPoint;
80
- this.curveIntervals = 30;
81
- // An array of vertices
82
- this.segmentCache = [];
83
- // An array of floats
84
- this.segmentLengths = [];
85
- // float
86
- // this.arcLength = null;
87
- this.updateArcLengths();
88
- }
89
- /**
90
- * Move the given curve point (the start point, end point or one of the two
91
- * control points).
92
- *
93
- * @method moveCurvePoint
94
- * @param {number} pointID - The numeric identicator of the point to move. Use one of the four eBezierPoint constants.
95
- * @param {XYCoords} moveAmount - The amount to move the specified point by.
96
- * @param {boolean} moveControlPoint - Move the control points along with their path point (if specified point is a path point).
97
- * @param {boolean} updateArcLengths - Specifiy if the internal arc segment buffer should be updated.
98
- * @instance
99
- * @memberof CubicBezierCurve
100
- * @return {void}
101
- **/
102
- moveCurvePoint(pointID, moveAmount, moveControlPoint, updateArcLengths) {
103
- if (pointID == this.START_POINT) {
104
- this.getStartPoint().add(moveAmount);
105
- if (moveControlPoint)
106
- this.getStartControlPoint().add(moveAmount);
107
- }
108
- else if (pointID == this.START_CONTROL_POINT) {
109
- this.getStartControlPoint().add(moveAmount);
110
- }
111
- else if (pointID == this.END_CONTROL_POINT) {
112
- this.getEndControlPoint().add(moveAmount);
113
- }
114
- else if (pointID == this.END_POINT) {
115
- this.getEndPoint().add(moveAmount);
116
- if (moveControlPoint)
117
- this.getEndControlPoint().add(moveAmount);
118
- }
119
- else {
120
- console.log(`[CubicBezierCurve.moveCurvePoint] pointID '${pointID}' invalid.`);
121
- }
122
- if (updateArcLengths)
123
- this.updateArcLengths();
124
- }
125
- /**
126
- * Translate the whole curve by the given {x,y} amount: moves all four points.
127
- *
128
- * @method translate
129
- * @param {XYCoords} amount - The amount to translate this curve by.
130
- * @instance
131
- * @memberof CubicBezierCurve
132
- * @return {CubicBezierCurve} this (for chaining).
133
- **/
134
- translate(amount) {
135
- this.startPoint.add(amount);
136
- this.startControlPoint.add(amount);
137
- this.endControlPoint.add(amount);
138
- this.endPoint.add(amount);
139
- return this;
140
- }
141
- /**
142
- * Translate the whole curve by the given {x,y} amount: moves all four points.
143
- *
144
- * @method translate
145
- * @param {XYCoords} amount - The amount to translate this curve by.
146
- * @instance
147
- * @memberof CubicBezierCurve
148
- * @return {CubicBezierCurve} this (for chaining).
149
- **/
150
- move(amount) {
151
- return this.translate(amount);
152
- }
153
- /**
154
- * Reverse this curve, means swapping start- and end-point and swapping
155
- * start-control- and end-control-point.
156
- *
157
- * @method reverse
158
- * @instance
159
- * @memberof CubicBezierCurve
160
- * @return {CubicBezierCurve} this (for chaining).
161
- **/
162
- reverse() {
163
- let tmp = this.startPoint;
164
- this.startPoint = this.endPoint;
165
- this.endPoint = tmp;
166
- tmp = this.startControlPoint;
167
- this.startControlPoint = this.endControlPoint;
168
- this.endControlPoint = tmp;
169
- return this;
170
- }
171
- /**
172
- * Get the total curve length.<br>
173
- * <br>
174
- * As not all Bézier curved have a closed formula to calculate their lengths, this
175
- * implementation uses a segment buffer (with a length of 30 segments). So the
176
- * returned length is taken from the arc segment buffer.<br>
177
- * <br>
178
- * Note that if the curve points were changed and the segment buffer was not
179
- * updated this function might return wrong (old) values.
180
- *
181
- * @method getLength
182
- * @instance
183
- * @memberof CubicBezierCurve
184
- * @return {number} >= 0
185
- **/
186
- getLength() {
187
- return this.arcLength;
188
- }
189
- /**
190
- * Uptate the internal arc segment buffer and their lengths.<br>
191
- * <br>
192
- * All class functions update the buffer automatically; if any
193
- * curve point is changed by other reasons you should call this
194
- * function to keep actual values in the buffer.
195
- *
196
- * @method updateArcLengths
197
- * @instance
198
- * @memberof CubicBezierCurve
199
- * @return {void}
200
- **/
201
- updateArcLengths() {
202
- let pointA = this.startPoint.clone();
203
- let pointB = new Vertex(0, 0);
204
- let curveStep = 1.0 / this.curveIntervals;
205
- // Clear segment cache
206
- this.segmentCache = [];
207
- // Push start point into buffer
208
- this.segmentCache.push(this.startPoint);
209
- this.segmentLengths = [];
210
- let newLength = 0.0;
211
- var t = 0.0;
212
- let tmpLength;
213
- while (t <= 1.0) {
214
- pointB = this.getPointAt(t);
215
- // Store point into cache
216
- this.segmentCache.push(pointB);
217
- // Calculate segment length
218
- tmpLength = pointA.distance(pointB);
219
- this.segmentLengths.push(tmpLength);
220
- newLength += tmpLength;
221
- pointA = pointB;
222
- t += curveStep;
223
- }
224
- this.arcLength = newLength;
225
- }
226
- /**
227
- * Get a 't' (relative position on curve) with the closest distance to point 'p'.
228
- *
229
- * The returned number is 0.0 <= t <= 1.0. Use the getPointAt(t) function to retrieve the actual curve point.
230
- *
231
- * This function uses a recursive approach by cutting the curve into several linear segments.
232
- *
233
- * @method getClosestT
234
- * @instance
235
- * @memberof CubicBezierCurve
236
- * @param {Vertex} p - The point to find the closest position ('t' on the curve).
237
- * @return {number}
238
- **/
239
- getClosestT(p) {
240
- // We would like to have an error that's not larger than 1.0.
241
- var desiredEpsilon = 1.0;
242
- var result = { t: 0, tPrev: 0.0, tNext: 1.0 };
243
- var iteration = 0;
244
- do {
245
- result = this.locateIntervalByDistance(p, result.tPrev, result.tNext, this.curveIntervals);
246
- iteration++;
247
- // Be sure: stop after 4 iterations
248
- } while (iteration < 4 && this.getPointAt(result.tPrev).distance(this.getPointAt(result.tNext)) > desiredEpsilon);
249
- return result.t;
250
- }
251
- /**
252
- * This helper function locates the 't' on a fixed step interval with the minimal distance
253
- * between the curve (at 't') and the given point.
254
- *
255
- * Furthermore you must specify a sub curve (start 't' and end 't') you want to search on.
256
- * Using tStart=0.0 and tEnd=1.0 will search on the full curve.
257
- *
258
- * @param {Vertex} p - The point to find the closest curve point for.
259
- * @param {number} tStart - The start position (start 't' of the sub curve). Should be >= 0.0.
260
- * @param {number} tEnd - The end position (end 't' of the sub curve). Should be <= 1.0.
261
- * @param {number} stepCount - The number of steps to check within the interval.
262
- *
263
- * @return {object} - An object with t, tPrev and tNext (numbers).
264
- **/
265
- locateIntervalByDistance(p, tStart, tEnd, stepCount) {
266
- var minIndex = -1;
267
- var minDist = 0;
268
- var t = 0.0;
269
- const tDiff = tEnd - tStart;
270
- for (var i = 0; i <= stepCount; i++) {
271
- t = tStart + tDiff * (i / stepCount);
272
- var vert = this.getPointAt(t);
273
- var dist = vert.distance(p);
274
- if (minIndex == -1 || dist < minDist) {
275
- minIndex = i;
276
- minDist = dist;
277
- }
278
- }
279
- return {
280
- t: tStart + tDiff * (minIndex / stepCount),
281
- tPrev: tStart + tDiff * (Math.max(0, minIndex - 1) / stepCount),
282
- tNext: tStart + tDiff * (Math.min(stepCount, minIndex + 1) / stepCount)
283
- };
284
- }
285
- //--- BEGIN --- Implement interface `IBounded`
286
- /**
287
- * Get the bounds of this bezier curve.
288
- *
289
- * The bounds are approximated by the underlying segment buffer; the more segment there are,
290
- * the more accurate will be the returned bounds.
291
- *
292
- * @method getClosestT
293
- * @instance
294
- * @memberof CubicBezierCurve
295
- * @return {Bounds} The bounds of this ellipse.
296
- **/
297
- getBounds() {
298
- // Thanks to Richard "RM" for the Bézier bounds calculatin
299
- // https://jsfiddle.net/SalixAlba/QQnvm/4/
300
- const xMinMax = CubicBezierCurve.utils.cubicPolyMinMax(this.startPoint.x, this.startControlPoint.x, this.endControlPoint.x, this.endPoint.x);
301
- const xl = xMinMax.min;
302
- const xh = xMinMax.max;
303
- const yMinMax = CubicBezierCurve.utils.cubicPolyMinMax(this.startPoint.y, this.startControlPoint.y, this.endControlPoint.y, this.endPoint.y);
304
- const yl = yMinMax.min;
305
- const yh = yMinMax.max;
306
- return Bounds.computeFromVertices([
307
- { x: xl, y: yl },
308
- { x: xl, y: yh },
309
- { x: xh, y: yh },
310
- { x: xh, y: yl }
311
- ]);
312
- }
313
- //--- END --- Implement interface `IBounded`
314
- /**
315
- * Get the start point of the curve.<br>
316
- * <br>
317
- * This function just returns this.startPoint.
318
- *
319
- * @method getStartPoint
320
- * @instance
321
- * @memberof CubicBezierCurve
322
- * @return {Vertex} this.startPoint
323
- **/
324
- getStartPoint() {
325
- return this.startPoint;
326
- }
327
- /**
328
- * Get the end point of the curve.<br>
329
- * <br>
330
- * This function just returns this.endPoint.
331
- *
332
- * @method getEndPoint
333
- * @instance
334
- * @memberof CubicBezierCurve
335
- * @return {Vertex} this.endPoint
336
- **/
337
- getEndPoint() {
338
- return this.endPoint;
339
- }
340
- /**
341
- * Get the start control point of the curve.<br>
342
- * <br>
343
- * This function just returns this.startControlPoint.
344
- *
345
- * @method getStartControlPoint
346
- * @instance
347
- * @memberof CubicBezierCurve
348
- * @return {Vertex} this.startControlPoint
349
- **/
350
- getStartControlPoint() {
351
- return this.startControlPoint;
352
- }
353
- /**
354
- * Get the end control point of the curve.<br>
355
- * <br>
356
- * This function just returns this.endControlPoint.
357
- *
358
- * @method getEndControlPoint
359
- * @instance
360
- * @memberof CubicBezierCurve
361
- * @return {Vertex} this.endControlPoint
362
- **/
363
- getEndControlPoint() {
364
- return this.endControlPoint;
365
- }
366
- /**
367
- * Get one of the four curve points specified by the passt point ID.
368
- *
369
- * @method getEndControlPoint
370
- * @param {number} id - One of START_POINT, START_CONTROL_POINT, END_CONTROL_POINT or END_POINT.
371
- * @instance
372
- * @memberof CubicBezierCurve
373
- * @return {Vertex}
374
- **/
375
- getPointByID(id) {
376
- if (id == this.START_POINT)
377
- return this.startPoint;
378
- if (id == this.END_POINT)
379
- return this.endPoint;
380
- if (id == this.START_CONTROL_POINT)
381
- return this.startControlPoint;
382
- if (id == this.END_CONTROL_POINT)
383
- return this.endControlPoint;
384
- throw new Error(`Invalid point ID '${id}'.`);
385
- }
386
- /**
387
- * Get the curve point at a given position t, where t is in [0,1].<br>
388
- * <br>
389
- * @see Line.pointAt
390
- *
391
- * @method getPointAt
392
- * @param {number} t - The position on the curve in [0,1] (0 means at
393
- * start point, 1 means at end point, other values address points in bertween).
394
- * @instance
395
- * @memberof CubicBezierCurve
396
- * @return {Vertex}
397
- **/
398
- getPointAt(t) {
399
- // Perform some powerful math magic
400
- // TODO: cleanup
401
- // const x: number =
402
- // this.startPoint.x * Math.pow(1.0 - t, 3) +
403
- // this.startControlPoint.x * 3 * t * Math.pow(1.0 - t, 2) +
404
- // this.endControlPoint.x * 3 * Math.pow(t, 2) * (1.0 - t) +
405
- // this.endPoint.x * Math.pow(t, 3);
406
- // const y: number =
407
- // this.startPoint.y * Math.pow(1.0 - t, 3) +
408
- // this.startControlPoint.y * 3 * t * Math.pow(1.0 - t, 2) +
409
- // this.endControlPoint.y * 3 * Math.pow(t, 2) * (1.0 - t) +
410
- // this.endPoint.y * Math.pow(t, 3);
411
- const x = CubicBezierCurve.utils.evaluateT(this.startPoint.x, this.startControlPoint.x, this.endControlPoint.x, this.endPoint.x, t);
412
- const y = CubicBezierCurve.utils.evaluateT(this.startPoint.y, this.startControlPoint.y, this.endControlPoint.y, this.endPoint.y, t);
413
- return new Vertex(x, y);
414
- }
415
- /**
416
- * Get the curve point at a given position u, where u is in [0,arcLength].<br>
417
- * <br>
418
- * @see CubicBezierCurve.getPointAt
419
- *
420
- * @method getPoint
421
- * @param {number} u - The position on the curve in [0,arcLength] (0 means at
422
- * start point, arcLength means at end point, other values address points in bertween).
423
- * @instance
424
- * @memberof CubicBezierCurve
425
- * @return {Vertex}
426
- **/
427
- getPoint(u) {
428
- return this.getPointAt(u / this.arcLength);
429
- }
430
- /**
431
- * Get the curve tangent vector at a given absolute curve position t in [0,1].<br>
432
- * <br>
433
- * Note that the returned tangent vector (end point) is not normalized and relative to (0,0).
434
- *
435
- * @method getTangent
436
- * @param {number} t - The position on the curve in [0,1].
437
- * @instance
438
- * @memberof CubicBezierCurve
439
- * @return {Vertex}
440
- **/
441
- getTangentAt(t) {
442
- const a = this.getStartPoint();
443
- const b = this.getStartControlPoint();
444
- const c = this.getEndControlPoint();
445
- const d = this.getEndPoint();
446
- // This is the shortened one
447
- const t2 = t * t;
448
- // (1 - t)^2 = (1-t)*(1-t) = 1 - t - t + t^2 = 1 - 2*t + t^2
449
- const nt2 = 1 - 2 * t + t2;
450
- const tX = -3 * a.x * nt2 + b.x * (3 * nt2 - 6 * (t - t2)) + c.x * (6 * (t - t2) - 3 * t2) + 3 * d.x * t2;
451
- const tY = -3 * a.y * nt2 + b.y * (3 * nt2 - 6 * (t - t2)) + c.y * (6 * (t - t2) - 3 * t2) + 3 * d.y * t2;
452
- // Note: my implementation does NOT normalize tangent vectors!
453
- return new Vertex(tX, tY);
454
- }
455
- /**
456
- * Trim off a start section of this curve. The position parameter `uValue` is the absolute position on the
457
- * curve in `[0...arcLength]`.
458
- * The remaining curve will be the one in the bounds `[uValue,1]` (so `[0.0,uValue]` is cut off).
459
- *
460
- * Note this function just converts the absolute parameter to a relative one and call `trimStartAt`.
461
- *
462
- * @method trimStart
463
- * @instance
464
- * @memberof CubicBezierCurve
465
- * @param {number} uValue - The absolute position parameter where to cut off the head curve.
466
- * @returns {CubicBezierCurve} `this` for chanining.
467
- */
468
- trimStart(uValue) {
469
- return this.trimStartAt(this.convertU2T(uValue));
470
- }
471
- /**
472
- * Trim off a start section of this curve. The position parameter `t` is the relative position in [0..1].
473
- * The remaining curve will be the one in the bounds `[uValue,1]` (so `[0.0,uValue]` is cut off).
474
- *
475
- * @method trimStartAt
476
- * @instance
477
- * @memberof CubicBezierCurve
478
- * @param {number} t - The relative position parameter where to cut off the head curve.
479
- * @returns {CubicBezierCurve} `this` for chanining.
480
- */
481
- trimStartAt(t) {
482
- const subCurbePoints = CubicBezierCurve.utils.getSubCurvePointsAt(this, t, 1.0);
483
- this.startPoint.set(subCurbePoints[0]);
484
- this.startControlPoint.set(subCurbePoints[2]);
485
- this.endPoint.set(subCurbePoints[1]);
486
- this.endControlPoint.set(subCurbePoints[3]);
487
- this.updateArcLengths();
488
- return this;
489
- }
490
- /**
491
- * Trim off the end of this curve. The position parameter `uValue` is the absolute position on the
492
- * curve in `[0...arcLength]`.
493
- * The remaining curve will be the one in the bounds `[0,uValue]` (so `[1.0-uValue,1.0]` is cut off).
494
- *
495
- * Note this function just converts the absolute parameter to a relative one and call `trimEndAt`.
496
- *
497
- * @method trimEnd
498
- * @instance
499
- * @memberof CubicBezierCurve
500
- * @param {number} uValue - The absolute position parameter where to cut off the tail curve.
501
- * @returns {CubicBezierCurve} `this` for chanining.
502
- */
503
- trimEnd(uValue) {
504
- return this.trimEndAt(this.convertU2T(uValue));
505
- }
506
- /**
507
- * Trim off the end of this curve. The position parameter `t` is the relative position in [0..1].
508
- * The remaining curve will be the one in the bounds `[0,t]` (so `[1.0-t,1.0]` is cut off).
509
- *
510
- * @method trimEndAt
511
- * @instance
512
- * @memberof CubicBezierCurve
513
- * @param {number} t - The relative position parameter where to cut off the tail curve.
514
- * @returns {CubicBezierCurve} `this` for chanining.
515
- */
516
- trimEndAt(t) {
517
- const subCurbePoints = CubicBezierCurve.utils.getSubCurvePointsAt(this, 0.0, t);
518
- this.startPoint.set(subCurbePoints[0]);
519
- this.startControlPoint.set(subCurbePoints[2]);
520
- this.endPoint.set(subCurbePoints[1]);
521
- this.endControlPoint.set(subCurbePoints[3]);
522
- this.updateArcLengths();
523
- return this;
524
- }
525
- /**
526
- * Get a sub curve at the given start end end positions (values on the curve's length, between 0 and curve.arcLength).
527
- *
528
- * tStart >= tEnd is allowed, you will get a reversed sub curve then.
529
- *
530
- * @method getSubCurve
531
- * @param {number} tStart – The start position of the desired sub curve (must be in [0..arcLength]).
532
- * @param {number} tEnd – The end position if the desired cub curve (must be in [0..arcLength]).
533
- * @instance
534
- * @memberof CubicBezierCurve
535
- * @return {CubicBezierCurve} The sub curve as a new curve.
536
- **/
537
- getSubCurve(uStart, uEnd) {
538
- return this.getSubCurveAt(this.convertU2T(uStart), this.convertU2T(uEnd));
539
- }
540
- /**
541
- * Get a sub curve at the given start end end offsets (values between 0.0 and 1.0).
542
- *
543
- * tStart >= tEnd is allowed, you will get a reversed sub curve then.
544
- *
545
- * @method getSubCurveAt
546
- * @param {number} tStart – The start offset of the desired sub curve (must be in [0..1]).
547
- * @param {number} tEnd – The end offset if the desired cub curve (must be in [0..1]).
548
- * @instance
549
- * @memberof CubicBezierCurve
550
- * @return {CubicBezierCurve} The sub curve as a new curve.
551
- **/
552
- getSubCurveAt(tStart, tEnd) {
553
- // This 'splits' the curve at the given point at t.
554
- const subCurbePoints = CubicBezierCurve.utils.getSubCurvePointsAt(this, tStart, tEnd);
555
- return new CubicBezierCurve(subCurbePoints[0], subCurbePoints[1], subCurbePoints[2], subCurbePoints[3]);
556
- }
557
- /**
558
- * Convert a relative curve position u to the absolute curve position t.
559
- *
560
- * @method convertU2t
561
- * @param {number} u - The relative position on the curve in [0,arcLength].
562
- * @instance
563
- * @memberof CubicBezierCurve
564
- * @return {number}
565
- **/
566
- convertU2T(u) {
567
- return Math.max(0.0, Math.min(1.0, u / this.arcLength));
568
- }
569
- /**
570
- * Get the curve tangent vector at a given relative position u in [0,arcLength].<br>
571
- * <br>
572
- * Note that the returned tangent vector (end point) is not normalized.
573
- *
574
- * @method getTangent
575
- * @param {number} u - The position on the curve in [0,arcLength].
576
- * @instance
577
- * @memberof CubicBezierCurve
578
- * @return {Vertex}
579
- **/
580
- getTangent(u) {
581
- return this.getTangentAt(this.convertU2T(u));
582
- }
583
- /**
584
- * Get the curve perpendicular at a given relative position u in [0,arcLength] as a vector.<br>
585
- * <br>
586
- * Note that the returned vector (end point) is not normalized.
587
- *
588
- * @method getPerpendicular
589
- * @param {number} u - The relative position on the curve in [0,arcLength].
590
- * @instance
591
- * @memberof CubicBezierCurve
592
- * @return {Vertex}
593
- **/
594
- getPerpendicular(u) {
595
- return this.getPerpendicularAt(this.convertU2T(u));
596
- }
597
- /**
598
- * Get the curve perpendicular at a given absolute position t in [0,1] as a vector.<br>
599
- * <br>
600
- * Note that the returned vector (end point) is not normalized.
601
- *
602
- * @method getPerpendicularAt
603
- * @param {number} u - The absolute position on the curve in [0,1].
604
- * @instance
605
- * @memberof CubicBezierCurve
606
- * @return {Vertex}
607
- **/
608
- getPerpendicularAt(t) {
609
- const tangentVector = this.getTangentAt(t);
610
- return new Vertex(tangentVector.y, -tangentVector.x);
611
- }
612
- /**
613
- * Clone this Bézier curve (deep clone).
614
- *
615
- * @method clone
616
- * @instance
617
- * @memberof CubicBezierCurve
618
- * @return {CubicBezierCurve}
619
- **/
620
- clone() {
621
- return new CubicBezierCurve(this.getStartPoint().clone(), this.getEndPoint().clone(), this.getStartControlPoint().clone(), this.getEndControlPoint().clone());
622
- }
623
- //---BEGIN PathSegment-------------------------
624
- /**
625
- * Get the tangent's end point at the start point of this segment.
626
- *
627
- * @method getStartTangent
628
- * @memberof PathSegment
629
- * @return {Vertex} The end point of the starting point's tangent.
630
- */
631
- getStartTangent() {
632
- return this.startControlPoint;
633
- }
634
- /**
635
- * Get the tangent's end point at the end point of this segment.
636
- *
637
- * @method getEndTangent
638
- * @memberof PathSegment
639
- * @return {Vertex} The end point of the ending point's tangent.
640
- */
641
- getEndTangent() {
642
- return this.endControlPoint;
643
- }
644
- //---END PathSegment-------------------------
645
- //--- BEGIN --- Implement interface `Intersectable`
646
- /**
647
- * Get all line intersections with this shape.
648
- *
649
- * This method returns all intersections (as vertices) with this shape. The returned array of vertices is in no specific order.
650
- *
651
- * @param {VertTuple} line - The line to find intersections with.
652
- * @param {boolean} inVectorBoundsOnly - If set to true only intersecion points on the passed vector are returned (located strictly between start and end vertex).
653
- * @returns {Array<Vertex>} - An array of all intersections with the shape outline.
654
- */
655
- lineIntersections(line, inVectorBoundsOnly = false) {
656
- const intersectionTs = this.lineIntersectionTs(line);
657
- const intersectionPoints = intersectionTs.map((t) => {
658
- return this.getPointAt(t);
659
- });
660
- if (inVectorBoundsOnly) {
661
- // const maxDist = line.length();
662
- return intersectionPoints.filter((vert) => line.hasPoint(vert, true));
663
- }
664
- else {
665
- return intersectionPoints;
666
- }
667
- }
668
- /**
669
- * Get all line intersections of this polygon and their tangents along the shape.
670
- *
671
- * This method returns all intersection tangents (as vectors) with this shape. The returned array of vectors is in no specific order.
672
- *
673
- * @param line
674
- * @param lineIntersectionTangents
675
- * @returns
676
- */
677
- lineIntersectionTangents(line, inVectorBoundsOnly = false) {
678
- const intersectionTs = this.lineIntersectionTs(line);
679
- const intersectionTangents = intersectionTs.map((t) => {
680
- const startPoint = this.getPointAt(t);
681
- const endPoint = this.getTangentAt(t);
682
- return new Vector(startPoint, endPoint.add(startPoint));
683
- });
684
- if (inVectorBoundsOnly) {
685
- return intersectionTangents.filter((vec) => line.hasPoint(vec.a, true));
686
- }
687
- else {
688
- return intersectionTangents;
689
- }
690
- }
691
- //--- END --- Implement interface `Intersectable`
692
- lineIntersectionTs(line) {
693
- var A = line.b.y - line.a.y; // A=y2-y1
694
- var B = line.a.x - line.b.x; // B=x1-x2
695
- var C = line.a.x * (line.a.y - line.b.y) + line.a.y * (line.b.x - line.a.x); //C=x1*(y1-y2)+y1*(x2-x1)
696
- // var bx = bezierCoeffs(px[0], px[1], px[2], px[3]);
697
- // var by = bezierCoeffs(py[0], py[1], py[2], py[3]);
698
- var bx = CubicBezierCurve.utils.bezierCoeffs(this.startPoint.x, this.startControlPoint.x, this.endControlPoint.x, this.endPoint.x);
699
- var by = CubicBezierCurve.utils.bezierCoeffs(this.startPoint.y, this.startControlPoint.y, this.endControlPoint.y, this.endPoint.y);
700
- const poly = Array(4);
701
- poly[0] = A * bx[0] + B * by[0]; /*t^3*/
702
- poly[1] = A * bx[1] + B * by[1]; /*t^2*/
703
- poly[2] = A * bx[2] + B * by[2]; /*t*/
704
- poly[3] = A * bx[3] + B * by[3] + C; /*1*/
705
- var roots = CubicBezierCurve.utils.cubicRoots(poly);
706
- return roots.filter((root) => root != -1);
707
- }
708
- /**
709
- * Check if this and the specified curve are equal.<br>
710
- * <br>
711
- * All four points need to be equal for this, the Vertex.equals function is used.<br>
712
- * <br>
713
- * Please note that this function is not type safe (comparison with any object will fail).
714
- *
715
- * @method clone
716
- * @param {CubicBezierCurve} curve - The curve to compare with.
717
- * @instance
718
- * @memberof CubicBezierCurve
719
- * @return {boolean}
720
- **/
721
- equals(curve) {
722
- // Note: in the earlier vanilla-JS version this was callable with plain objects.
723
- // Let's see if this restricted version works out.
724
- if (!curve)
725
- return false;
726
- if (!curve.startPoint || !curve.endPoint || !curve.startControlPoint || !curve.endControlPoint)
727
- return false;
728
- return (this.startPoint.equals(curve.startPoint) &&
729
- this.endPoint.equals(curve.endPoint) &&
730
- this.startControlPoint.equals(curve.startControlPoint) &&
731
- this.endControlPoint.equals(curve.endControlPoint));
732
- }
733
- /**
734
- * This function should invalidate any installed listeners and invalidate this object.
735
- * After calling this function the object might not hold valid data any more and
736
- * should not be used.
737
- */
738
- destroy() {
739
- this.startPoint.destroy();
740
- this.endPoint.destroy();
741
- this.startControlPoint.destroy();
742
- this.endControlPoint.destroy();
743
- this.isDestroyed = true;
744
- }
745
- /**
746
- * Quick check for class instance.
747
- * Is there a better way?
748
- *
749
- * @method isInstance
750
- * @param {any} obj - Check if the passed object/value is an instance of CubicBezierCurve.
751
- * @instance
752
- * @memberof CubicBezierCurve
753
- * @return {boolean}
754
- **/
755
- static isInstance(obj) {
756
- // Note: check this again
757
- /* OLD VANILLA JS IMPLEMENTATION */
758
- /* if( typeof obj != "object" )
759
- return false;
760
- function hasXY(v) {
761
- return typeof v != "undefined" && typeof v.x == "number" && typeof v.y == "number";
762
- }
763
- return typeof obj.startPoint == "object" && hasXY(obj.startPoint)
764
- && typeof obj.endPoint == "object" && hasXY(obj.endPoint)
765
- && typeof obj.startControlPoint == "object" && hasXY(obj.startControlPoint)
766
- && typeof obj.endControlPoint == "object" && hasXY(obj.endControlPoint);
767
- */
768
- return obj instanceof CubicBezierCurve;
769
- }
770
- /**
771
- * Convert this curve to a JSON string.
772
- *
773
- * @method toJSON
774
- * @param {boolean=} [prettyFormat=false] - If set to true the function will add line breaks.
775
- * @instance
776
- * @memberof CubicBezierCurve
777
- * @return {string} The JSON data.
778
- **/
779
- toJSON(prettyFormat) {
780
- var jsonString = "{ " + // begin object
781
- (prettyFormat ? "\n\t" : "") +
782
- '"startPoint" : [' +
783
- this.getStartPoint().x +
784
- "," +
785
- this.getStartPoint().y +
786
- "], " +
787
- (prettyFormat ? "\n\t" : "") +
788
- '"endPoint" : [' +
789
- this.getEndPoint().x +
790
- "," +
791
- this.getEndPoint().y +
792
- "], " +
793
- (prettyFormat ? "\n\t" : "") +
794
- '"startControlPoint": [' +
795
- this.getStartControlPoint().x +
796
- "," +
797
- this.getStartControlPoint().y +
798
- "], " +
799
- (prettyFormat ? "\n\t" : "") +
800
- '"endControlPoint" : [' +
801
- this.getEndControlPoint().x +
802
- "," +
803
- this.getEndControlPoint().y +
804
- "]" +
805
- (prettyFormat ? "\n\t" : "") +
806
- " }"; // end object
807
- return jsonString;
808
- }
809
- /**
810
- * Parse a Bézier curve from the given JSON string.
811
- *
812
- * @method fromJSON
813
- * @param {string} jsonString - The JSON data to parse.
814
- * @memberof CubicBezierCurve
815
- * @static
816
- * @throws An exception if the JSON string is malformed.
817
- * @return {CubicBezierCurve}
818
- **/
819
- static fromJSON(jsonString) {
820
- var obj = JSON.parse(jsonString);
821
- return CubicBezierCurve.fromObject(obj);
822
- }
823
- /**
824
- * Try to convert the passed object to a CubicBezierCurve.
825
- *
826
- * @method fromObject
827
- * @param {object} obj - The object to convert.
828
- * @memberof CubicBezierCurve
829
- * @static
830
- * @throws An exception if the passed object is malformed.
831
- * @return {CubicBezierCurve}
832
- **/
833
- static fromObject(obj) {
834
- if (typeof obj !== "object")
835
- throw "Can only build from object.";
836
- if (!obj.startPoint)
837
- throw 'Object member "startPoint" missing.';
838
- if (!obj.endPoint)
839
- throw 'Object member "endPoint" missing.';
840
- if (!obj.startControlPoint)
841
- throw 'Object member "startControlPoint" missing.';
842
- if (!obj.endControlPoint)
843
- throw 'Object member "endControlPoint" missing.';
844
- return new CubicBezierCurve(new Vertex(obj.startPoint[0], obj.startPoint[1]), new Vertex(obj.endPoint[0], obj.endPoint[1]), new Vertex(obj.startControlPoint[0], obj.startControlPoint[1]), new Vertex(obj.endControlPoint[0], obj.endControlPoint[1]));
845
- }
846
- /**
847
- * Convert a 4-element array of vertices to a cubic bézier curve.
848
- *
849
- * @method fromArray
850
- * @param {Vertex[]} arr - [ startVertex, endVertex, startControlVertex, endControlVertex ]
851
- * @memberof CubicBezierCurve
852
- * @throws An exception if the passed array is malformed.
853
- * @return {CubicBezierCurve}
854
- **/
855
- static fromArray(arr) {
856
- if (!Array.isArray(arr))
857
- throw "Can only build from object.";
858
- if (arr.length != 4)
859
- throw "Can only build from array with four elements.";
860
- return new CubicBezierCurve(arr[0], arr[1], arr[2], arr[3]);
861
- }
862
- }
863
- /** @constant {number} */
864
- CubicBezierCurve.START_POINT = 0;
865
- /** @constant {number} */
866
- CubicBezierCurve.START_CONTROL_POINT = 1;
867
- /** @constant {number} */
868
- CubicBezierCurve.END_CONTROL_POINT = 2;
869
- /** @constant {number} */
870
- CubicBezierCurve.END_POINT = 3;
871
- /**
872
- * Helper utils.
873
- */
874
- CubicBezierCurve.utils = {
875
- evaluateT: (p0, p1, p2, p3, t) => {
876
- return p0 * Math.pow(1.0 - t, 3) +
877
- p1 * 3 * t * Math.pow(1.0 - t, 2) +
878
- p2 * 3 * Math.pow(t, 2) * (1.0 - t) +
879
- p3 * Math.pow(t, 3);
880
- },
881
- cubicPolyMinMax: (p0, p1, p2, p3) => {
882
- // var polyX = CubicBezierCurve.utils.cubicPoly2(
883
- // p0, // P[0].X, // bezierCurve.startPoint.x,
884
- // p1, // P[1].X, // bezierCurve.startControlPoint.x,
885
- // p2, // P[2].X, // bezierCurve.endControlPoint.x,
886
- // p3 // P[3].X // bezierCurve.endPoint.x
887
- // );
888
- // var a = polyX.a;
889
- // var b = polyX.b;
890
- // var c = polyX.c;
891
- // var disc = polyX.b * polyX.b - 4 * polyX.a * polyX.c;
892
- var polyX = CubicBezierCurve.utils.cubicPoly(p0, // P[0].X, // bezierCurve.startPoint.x,
893
- p1, // P[1].X, // bezierCurve.startControlPoint.x,
894
- p2, // P[2].X, // bezierCurve.endControlPoint.x,
895
- p3 // P[3].X // bezierCurve.endPoint.x
896
- );
897
- var a = polyX[0]; // .a;
898
- var b = polyX[1]; // .b;
899
- var c = polyX[2]; // .c;
900
- //alert("a "+a+" "+b+" "+c);
901
- // var disc = b * b - 4 * a * c;
902
- var disc = polyX[1] * polyX[1] - 4 * polyX[0] * polyX[2];
903
- // var polyX = CubicBezierCurve.utils.bezierCoeffs(p3,p2,p1,p0);
904
- // var a = polyX[0]; //polyX.a;
905
- // var b = polyX[1]; // .b;
906
- // var c = polyX[2]; //.c;
907
- // var disc = polyX[1] * polyX[1] - 4 * polyX[0] * polyX[2];
908
- // var xl = Math.min(bCurve.endPoint.x, bCurve.startPoint.x); // P[0].X;
909
- // var xh = Math.max(bCurve.endPoint.x, bCurve.startPoint.x); // P[0].X;
910
- var xl = Math.min(p3, p0); // P[0].X;
911
- var xh = Math.max(p3, p0); // P[0].X;
912
- // if (P[3].X < xl) xl = P[3].X;
913
- // if (P[3].X > xh) xh = P[3].X;
914
- if (disc >= 0) {
915
- var t1 = (-b + Math.sqrt(disc)) / (2 * a);
916
- // alert("t1 " + t1);
917
- if (t1 > 0 && t1 < 1) {
918
- // var x1 = evalBez(PX, t1);
919
- // var x1 = bCurve.getPointAt(t1).x;
920
- var x1 = CubicBezierCurve.utils.evaluateT(p0, p1, p2, p3, t1); // bCurve.getPointAt(t1).x;
921
- if (x1 < xl)
922
- xl = x1;
923
- if (x1 > xh)
924
- xh = x1;
925
- }
926
- var t2 = (-b - Math.sqrt(disc)) / (2 * a);
927
- // alert("t2 " + t2);
928
- if (t2 > 0 && t2 < 1) {
929
- // var x2 = evalBez(PX, t2);
930
- // var x2 = bCurve.getPointAt(t2).x;
931
- var x2 = CubicBezierCurve.utils.evaluateT(p0, p1, p2, p3, t2); //
932
- if (x2 < xl)
933
- xl = x2;
934
- if (x2 > xh)
935
- xh = x2;
936
- }
937
- }
938
- return { min: xl, max: xh };
939
- },
940
- /**
941
- * Get the points of a sub curve at the given start end end offsets (values between 0.0 and 1.0).
942
- *
943
- * tStart >= tEnd is allowed, you will get a reversed sub curve then.
944
- *
945
- * @method getSubCurvePointsAt
946
- * @param {CubicBezierCurve} curve – The curve to get the sub curve points from.
947
- * @param {number} tStart – The start offset of the desired sub curve (must be in [0..1]).
948
- * @param {number} tEnd – The end offset if the desired cub curve (must be in [0..1]).
949
- * @instance
950
- * @memberof CubicBezierCurve
951
- * @return {CubicBezierCurve} The sub curve as a new curve.
952
- **/
953
- getSubCurvePointsAt: (curve, tStart, tEnd) => {
954
- const startVec = new Vector(curve.getPointAt(tStart), curve.getTangentAt(tStart));
955
- const endVec = new Vector(curve.getPointAt(tEnd), curve.getTangentAt(tEnd).inv());
956
- // Tangents are relative. Make absolute.
957
- startVec.b.add(startVec.a);
958
- endVec.b.add(endVec.a);
959
- // This 'splits' the curve at the given point at t.
960
- startVec.scale(0.33333333 * (tEnd - tStart));
961
- endVec.scale(0.33333333 * (tEnd - tStart));
962
- return [startVec.a, endVec.a, startVec.b, endVec.b];
963
- },
964
- /**
965
- * Compute the cubic roots for the given cubic polynomial coefficients.
966
- *
967
- * Based on
968
- * http://mysite.verizon.net/res148h4j/javascript/script_exact_cubic.html#the%20source%20code
969
- * Inspired by
970
- * https://www.particleincell.com/2013/cubic-line-intersection/
971
- * Thanks to Stephan Schmitt and Particle-In-Cell!
972
- *
973
- * @param poly
974
- * @returns
975
- */
976
- cubicRoots: (poly) => {
977
- const a = poly[0];
978
- const b = poly[1];
979
- const c = poly[2];
980
- const d = poly[3];
981
- const A = b / a;
982
- const B = c / a;
983
- const C = d / a;
984
- var S, T, Im;
985
- const Q = (3 * B - Math.pow(A, 2)) / 9;
986
- const R = (9 * A * B - 27 * C - 2 * Math.pow(A, 3)) / 54;
987
- const D = Math.pow(Q, 3) + Math.pow(R, 2); // polynomial discriminant
988
- const ts = []; // Array();
989
- if (D >= 0) {
990
- // complex or duplicate roots
991
- S = CubicBezierCurve.utils.sgn(R + Math.sqrt(D)) * Math.pow(Math.abs(R + Math.sqrt(D)), 1 / 3);
992
- T = CubicBezierCurve.utils.sgn(R - Math.sqrt(D)) * Math.pow(Math.abs(R - Math.sqrt(D)), 1 / 3);
993
- ts[0] = -A / 3 + (S + T); // real root
994
- ts[1] = -A / 3 - (S + T) / 2; // real part of complex root
995
- ts[2] = -A / 3 - (S + T) / 2; // real part of complex root
996
- Im = Math.abs((Math.sqrt(3) * (S - T)) / 2); // complex part of root pair
997
- // Mark complex roots to be discarded
998
- if (Im != 0) {
999
- ts[1] = -1;
1000
- ts[2] = -1;
1001
- }
1002
- } // distinct real roots
1003
- else {
1004
- const th = Math.acos(R / Math.sqrt(-Math.pow(Q, 3)));
1005
- ts[0] = 2 * Math.sqrt(-Q) * Math.cos(th / 3) - A / 3;
1006
- ts[1] = 2 * Math.sqrt(-Q) * Math.cos((th + 2 * Math.PI) / 3) - A / 3;
1007
- ts[2] = 2 * Math.sqrt(-Q) * Math.cos((th + 4 * Math.PI) / 3) - A / 3;
1008
- Im = 0.0;
1009
- }
1010
- // Discard all t's out of spec and sort the rest
1011
- return ts.filter((t) => t >= 0 && t <= 1.0).sort();
1012
- },
1013
- /**
1014
- * Compute the Bézier coefficients from the given Bézier point coordinates.
1015
- *
1016
- * @param {number} p0 - The start point coordinate.
1017
- * @param {number} p1 - The start control point coordinate.
1018
- * @param {number} p2 - The end control point coordinate.
1019
- * @param {number} p3 - The end point coordinate.
1020
- * @returns {[number,number,number,number]}
1021
- */
1022
- bezierCoeffs: (p0, p1, p2, p3) => {
1023
- const coeffs = [NaN, NaN, NaN, NaN]; //Array(4);
1024
- coeffs[0] = -p0 + 3 * p1 + -3 * p2 + p3;
1025
- coeffs[1] = 3 * p0 - 6 * p1 + 3 * p2;
1026
- coeffs[2] = -3 * p0 + 3 * p1;
1027
- coeffs[3] = p0;
1028
- return coeffs;
1029
- },
1030
- /**
1031
- * Calculate the cubic polynomial coefficients used to find the bounding box.
1032
- *
1033
- * @param {number} p0 - The start point coordinate.
1034
- * @param {number} p1 - The start control point coordinate.
1035
- * @param {number} p2 - The end control point coordinate.
1036
- * @param {number} p3 - The end point coordinate.
1037
- * @returns {[number,number,number]}
1038
- */
1039
- cubicPoly: (p0, p1, p2, p3) => {
1040
- return [
1041
- 3 * p3 - 9 * p2 + 9 * p1 - 3 * p0,
1042
- 6 * p0 - 12 * p1 + 6 * p2,
1043
- 3 * p1 - 3 * p0
1044
- ];
1045
- },
1046
- /**
1047
- * sign of number, but is division safe: no zero returned :)
1048
- */
1049
- sgn(x) {
1050
- return x < 0.0 ? -1 : 1;
1051
- }
1052
- };
1053
- //# sourceMappingURL=CubicBezierCurve.js.map