plotboilerplate 1.27.0 → 1.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +11286 -166
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js +1 -1
- package/dist/index.esm.min.js.map +1 -1
- package/dist/plotboilerplate.browser.min.js +1 -1
- package/dist/plotboilerplate.browser.min.js.map +1 -1
- package/dist/plotboilerplate.js +96 -17
- package/dist/plotboilerplate.min.js +1 -1
- package/package.json +2 -1
- package/src/_cjs/BezierPath.d.ts +610 -0
- package/src/_cjs/BezierPath.js +1127 -0
- package/src/_cjs/BezierPath.js.map +1 -0
- package/src/_cjs/Bounds.d.ts +252 -0
- package/src/_cjs/Bounds.js +320 -0
- package/src/_cjs/Bounds.js.map +1 -0
- package/src/_cjs/Circle.d.ts +214 -0
- package/src/_cjs/Circle.js +339 -0
- package/src/_cjs/Circle.js.map +1 -0
- package/src/_cjs/CircleSector.d.ts +211 -0
- package/src/_cjs/CircleSector.js +364 -0
- package/src/_cjs/CircleSector.js.map +1 -0
- package/src/_cjs/CubicBezierCurve.d.ts +656 -0
- package/src/_cjs/CubicBezierCurve.js +1062 -0
- package/src/_cjs/CubicBezierCurve.js.map +1 -0
- package/src/_cjs/Grid.d.ts +83 -0
- package/src/_cjs/Grid.js +90 -0
- package/src/_cjs/Grid.js.map +1 -0
- package/src/_cjs/KeyHandler.d.ts +177 -0
- package/src/_cjs/KeyHandler.js +435 -0
- package/src/_cjs/KeyHandler.js.map +1 -0
- package/src/_cjs/Line.d.ts +134 -0
- package/src/_cjs/Line.js +220 -0
- package/src/_cjs/Line.js.map +1 -0
- package/src/_cjs/MouseHandler.d.ts +283 -0
- package/src/_cjs/MouseHandler.js +423 -0
- package/src/_cjs/MouseHandler.js.map +1 -0
- package/src/_cjs/PBImage.d.ts +81 -0
- package/src/_cjs/PBImage.js +61 -0
- package/src/_cjs/PBImage.js.map +1 -0
- package/src/_cjs/PBText.d.ts +118 -0
- package/src/_cjs/PBText.js +63 -0
- package/src/_cjs/PBText.js.map +1 -0
- package/src/_cjs/PlotBoilerplate.d.ts +899 -0
- package/src/_cjs/PlotBoilerplate.js +2348 -0
- package/src/_cjs/PlotBoilerplate.js.map +1 -0
- package/src/_cjs/Polygon.d.ts +520 -0
- package/src/_cjs/Polygon.js +933 -0
- package/src/_cjs/Polygon.js.map +1 -0
- package/src/_cjs/SVGBuilder.d.ts +47 -0
- package/src/_cjs/SVGBuilder.js +100 -0
- package/src/_cjs/SVGBuilder.js.map +1 -0
- package/src/_cjs/Triangle.d.ts +392 -0
- package/src/_cjs/Triangle.js +497 -0
- package/src/_cjs/Triangle.js.map +1 -0
- package/src/_cjs/UIDGenerator.d.ts +12 -0
- package/src/_cjs/UIDGenerator.js +21 -0
- package/src/_cjs/UIDGenerator.js.map +1 -0
- package/src/_cjs/VEllipse.d.ts +319 -0
- package/src/_cjs/VEllipse.js +578 -0
- package/src/_cjs/VEllipse.js.map +1 -0
- package/src/_cjs/VEllipseSector.d.ts +230 -0
- package/src/_cjs/VEllipseSector.js +428 -0
- package/src/_cjs/VEllipseSector.js.map +1 -0
- package/src/_cjs/Vector.d.ts +126 -0
- package/src/_cjs/Vector.js +199 -0
- package/src/_cjs/Vector.js.map +1 -0
- package/src/_cjs/VertTuple.d.ts +284 -0
- package/src/_cjs/VertTuple.js +348 -0
- package/src/_cjs/VertTuple.js.map +1 -0
- package/src/_cjs/Vertex.d.ts +498 -0
- package/src/_cjs/Vertex.js +703 -0
- package/src/_cjs/Vertex.js.map +1 -0
- package/src/_cjs/VertexAttr.d.ts +72 -0
- package/src/_cjs/VertexAttr.js +59 -0
- package/src/_cjs/VertexAttr.js.map +1 -0
- package/src/_cjs/VertexListeners.d.ts +208 -0
- package/src/_cjs/VertexListeners.js +267 -0
- package/src/_cjs/VertexListeners.js.map +1 -0
- package/src/_cjs/draw.d.ts +657 -0
- package/src/_cjs/draw.js +1164 -0
- package/src/_cjs/draw.js.map +1 -0
- package/src/_cjs/drawgl.d.ts +544 -0
- package/src/_cjs/drawgl.js +794 -0
- package/src/_cjs/drawgl.js.map +1 -0
- package/src/_cjs/drawutilssvg.d.ts +954 -0
- package/src/_cjs/drawutilssvg.js +1713 -0
- package/src/_cjs/drawutilssvg.js.map +1 -0
- package/src/_cjs/entry-glsupport.js +28 -0
- package/src/_cjs/entry.js +29 -0
- package/src/_cjs/geomutils.d.ts +77 -0
- package/src/_cjs/geomutils.js +126 -0
- package/src/_cjs/geomutils.js.map +1 -0
- package/src/_cjs/index.d.ts +102 -0
- package/src/_cjs/index.js +128 -0
- package/src/_cjs/index.js.map +1 -0
- package/src/_cjs/interfaces/DrawLib.d.ts +582 -0
- package/src/_cjs/interfaces/DrawLib.js +32 -0
- package/src/_cjs/interfaces/DrawLib.js.map +1 -0
- package/src/_cjs/interfaces/additionals.d.ts +95 -0
- package/src/_cjs/interfaces/additionals.js +3 -0
- package/src/_cjs/interfaces/additionals.js.map +1 -0
- package/src/_cjs/interfaces/core.d.ts +286 -0
- package/src/_cjs/interfaces/core.js +30 -0
- package/src/_cjs/interfaces/core.js.map +1 -0
- package/src/_cjs/interfaces/externals.d.ts +56 -0
- package/src/_cjs/interfaces/externals.js +8 -0
- package/src/_cjs/interfaces/externals.js.map +1 -0
- package/src/_cjs/interfaces/index.d.ts +4 -0
- package/src/_cjs/interfaces/index.js +21 -0
- package/src/_cjs/interfaces/index.js.map +1 -0
- package/src/_cjs/module.d.ts +26 -0
- package/src/_cjs/module.js +60 -0
- package/src/_cjs/module.js.map +1 -0
- package/src/_cjs/utils/InitializationObserver.d.ts +18 -0
- package/src/_cjs/utils/InitializationObserver.js +63 -0
- package/src/_cjs/utils/InitializationObserver.js.map +1 -0
- package/src/_cjs/utils/LissajousFigure.d.ts +34 -0
- package/src/_cjs/utils/LissajousFigure.js +100 -0
- package/src/_cjs/utils/LissajousFigure.js.map +1 -0
- package/src/_cjs/utils/NGons.d.ts +13 -0
- package/src/_cjs/utils/NGons.js +36 -0
- package/src/_cjs/utils/NGons.js.map +1 -0
- package/src/_cjs/utils/Params.d.ts +17 -0
- package/src/_cjs/utils/Params.js +53 -0
- package/src/_cjs/utils/Params.js.map +1 -0
- package/src/_cjs/utils/PerlinNoise.d.ts +19 -0
- package/src/_cjs/utils/PerlinNoise.js +352 -0
- package/src/_cjs/utils/PerlinNoise.js.map +1 -0
- package/src/_cjs/utils/SVGPathUtils.d.ts +22 -0
- package/src/_cjs/utils/SVGPathUtils.js +45 -0
- package/src/_cjs/utils/SVGPathUtils.js.map +1 -0
- package/src/_cjs/utils/WebColors.d.ts +35 -0
- package/src/_cjs/utils/WebColors.js +58 -0
- package/src/_cjs/utils/WebColors.js.map +1 -0
- package/src/_cjs/utils/WebColorsContrast.d.ts +6 -0
- package/src/_cjs/utils/WebColorsContrast.js +12 -0
- package/src/_cjs/utils/WebColorsContrast.js.map +1 -0
- package/src/_cjs/utils/WebColorsMalachite.d.ts +12 -0
- package/src/_cjs/utils/WebColorsMalachite.js +28 -0
- package/src/_cjs/utils/WebColorsMalachite.js.map +1 -0
- package/src/_cjs/utils/algorithms/CatmullRomPath.d.ts +60 -0
- package/src/_cjs/utils/algorithms/CatmullRomPath.js +108 -0
- package/src/_cjs/utils/algorithms/CatmullRomPath.js.map +1 -0
- package/src/_cjs/utils/algorithms/CircleIntersections.d.ts +170 -0
- package/src/_cjs/utils/algorithms/CircleIntersections.js +310 -0
- package/src/_cjs/utils/algorithms/CircleIntersections.js.map +1 -0
- package/src/_cjs/utils/algorithms/ContourLineDetection.d.ts +150 -0
- package/src/_cjs/utils/algorithms/ContourLineDetection.js +367 -0
- package/src/_cjs/utils/algorithms/ContourLineDetection.js.map +1 -0
- package/src/_cjs/utils/algorithms/CubicSplinePath.d.ts +63 -0
- package/src/_cjs/utils/algorithms/CubicSplinePath.js +175 -0
- package/src/_cjs/utils/algorithms/CubicSplinePath.js.map +1 -0
- package/src/_cjs/utils/algorithms/HobbyPath.d.ts +81 -0
- package/src/_cjs/utils/algorithms/HobbyPath.js +278 -0
- package/src/_cjs/utils/algorithms/HobbyPath.js.map +1 -0
- package/src/_cjs/utils/algorithms/Metaballs.d.ts +30 -0
- package/src/_cjs/utils/algorithms/Metaballs.js +114 -0
- package/src/_cjs/utils/algorithms/Metaballs.js.map +1 -0
- package/src/_cjs/utils/algorithms/PolygonInset.d.ts +184 -0
- package/src/_cjs/utils/algorithms/PolygonInset.js +431 -0
- package/src/_cjs/utils/algorithms/PolygonInset.js.map +1 -0
- package/src/_cjs/utils/algorithms/PolygonTesselationOutlines.d.ts +145 -0
- package/src/_cjs/utils/algorithms/PolygonTesselationOutlines.js +269 -0
- package/src/_cjs/utils/algorithms/PolygonTesselationOutlines.js.map +1 -0
- package/src/_cjs/utils/algorithms/arrayFill.d.ts +8 -0
- package/src/_cjs/utils/algorithms/arrayFill.js +18 -0
- package/src/_cjs/utils/algorithms/arrayFill.js.map +1 -0
- package/src/_cjs/utils/algorithms/arrayResize.d.ts +8 -0
- package/src/_cjs/utils/algorithms/arrayResize.js +24 -0
- package/src/_cjs/utils/algorithms/arrayResize.js.map +1 -0
- package/src/_cjs/utils/algorithms/arrayShuffle.d.ts +8 -0
- package/src/_cjs/utils/algorithms/arrayShuffle.js +15 -0
- package/src/_cjs/utils/algorithms/arrayShuffle.js.map +1 -0
- package/src/_cjs/utils/algorithms/clearDuplicateVertices.d.ts +22 -0
- package/src/_cjs/utils/algorithms/clearDuplicateVertices.js +51 -0
- package/src/_cjs/utils/algorithms/clearDuplicateVertices.js.map +1 -0
- package/src/_cjs/utils/algorithms/clearPolygonDuplicateVertices.d.ts +24 -0
- package/src/_cjs/utils/algorithms/clearPolygonDuplicateVertices.js +61 -0
- package/src/_cjs/utils/algorithms/clearPolygonDuplicateVertices.js.map +1 -0
- package/src/_cjs/utils/algorithms/convexHull.d.ts +23 -0
- package/src/_cjs/utils/algorithms/convexHull.js +71 -0
- package/src/_cjs/utils/algorithms/convexHull.js.map +1 -0
- package/src/_cjs/utils/algorithms/convexPolygonIncircle.d.ts +41 -0
- package/src/_cjs/utils/algorithms/convexPolygonIncircle.js +145 -0
- package/src/_cjs/utils/algorithms/convexPolygonIncircle.js.map +1 -0
- package/src/_cjs/utils/algorithms/delaunay.d.ts +30 -0
- package/src/_cjs/utils/algorithms/delaunay.js +158 -0
- package/src/_cjs/utils/algorithms/delaunay.js.map +1 -0
- package/src/_cjs/utils/algorithms/delaunay2voronoi.d.ts +25 -0
- package/src/_cjs/utils/algorithms/delaunay2voronoi.js +104 -0
- package/src/_cjs/utils/algorithms/delaunay2voronoi.js.map +1 -0
- package/src/_cjs/utils/algorithms/detectPaths.d.ts +21 -0
- package/src/_cjs/utils/algorithms/detectPaths.js +169 -0
- package/src/_cjs/utils/algorithms/detectPaths.js.map +1 -0
- package/src/_cjs/utils/algorithms/findPolygonSelfIntersections.d.ts +21 -0
- package/src/_cjs/utils/algorithms/findPolygonSelfIntersections.js +51 -0
- package/src/_cjs/utils/algorithms/findPolygonSelfIntersections.js.map +1 -0
- package/src/_cjs/utils/algorithms/getContrastColor.d.ts +13 -0
- package/src/_cjs/utils/algorithms/getContrastColor.js +26 -0
- package/src/_cjs/utils/algorithms/getContrastColor.js.map +1 -0
- package/src/_cjs/utils/algorithms/matrixFill.d.ts +10 -0
- package/src/_cjs/utils/algorithms/matrixFill.js +21 -0
- package/src/_cjs/utils/algorithms/matrixFill.js.map +1 -0
- package/src/_cjs/utils/algorithms/pixelCornersToRoundPaths.d.ts +23 -0
- package/src/_cjs/utils/algorithms/pixelCornersToRoundPaths.js +270 -0
- package/src/_cjs/utils/algorithms/pixelCornersToRoundPaths.js.map +1 -0
- package/src/_cjs/utils/algorithms/splitPolygonToNonIntersecting.d.ts +28 -0
- package/src/_cjs/utils/algorithms/splitPolygonToNonIntersecting.js +102 -0
- package/src/_cjs/utils/algorithms/splitPolygonToNonIntersecting.js.map +1 -0
- package/src/_cjs/utils/algorithms/sutherlandHodgman.d.ts +16 -0
- package/src/_cjs/utils/algorithms/sutherlandHodgman.js +76 -0
- package/src/_cjs/utils/algorithms/sutherlandHodgman.js.map +1 -0
- package/src/_cjs/utils/cloneVertexArray.d.ts +13 -0
- package/src/_cjs/utils/cloneVertexArray.js +23 -0
- package/src/_cjs/utils/cloneVertexArray.js.map +1 -0
- package/src/_cjs/utils/createRandomizedPolygon.d.ts +14 -0
- package/src/_cjs/utils/createRandomizedPolygon.js +32 -0
- package/src/_cjs/utils/createRandomizedPolygon.js.map +1 -0
- package/src/_cjs/utils/creategui.js +434 -0
- package/src/_cjs/utils/dat.gui.arrowbounce.polyfill.js +128 -0
- package/src/_cjs/utils/dat.gui.title.polyfill.js +35 -0
- package/src/_cjs/utils/datastructures/CircularIntervalSet.d.ts +83 -0
- package/src/_cjs/utils/datastructures/CircularIntervalSet.js +163 -0
- package/src/_cjs/utils/datastructures/CircularIntervalSet.js.map +1 -0
- package/src/_cjs/utils/datastructures/Color.d.ts +391 -0
- package/src/_cjs/utils/datastructures/Color.js +1084 -0
- package/src/_cjs/utils/datastructures/Color.js.map +1 -0
- package/src/_cjs/utils/datastructures/ColorGradient.d.ts +81 -0
- package/src/_cjs/utils/datastructures/ColorGradient.js +176 -0
- package/src/_cjs/utils/datastructures/ColorGradient.js.map +1 -0
- package/src/_cjs/utils/datastructures/DataGrid2d.d.ts +53 -0
- package/src/_cjs/utils/datastructures/DataGrid2d.js +20 -0
- package/src/_cjs/utils/datastructures/DataGrid2d.js.map +1 -0
- package/src/_cjs/utils/datastructures/DataGrid2dArrayMatrix.d.ts +88 -0
- package/src/_cjs/utils/datastructures/DataGrid2dArrayMatrix.js +155 -0
- package/src/_cjs/utils/datastructures/DataGrid2dArrayMatrix.js.map +1 -0
- package/src/_cjs/utils/datastructures/DataGrid2dListAdapter.d.ts +59 -0
- package/src/_cjs/utils/datastructures/DataGrid2dListAdapter.js +84 -0
- package/src/_cjs/utils/datastructures/DataGrid2dListAdapter.js.map +1 -0
- package/src/_cjs/utils/datastructures/GenericPath.d.ts +86 -0
- package/src/_cjs/utils/datastructures/GenericPath.js +122 -0
- package/src/_cjs/utils/datastructures/GenericPath.js.map +1 -0
- package/src/_cjs/utils/datastructures/GeometryMesh.d.ts +49 -0
- package/src/_cjs/utils/datastructures/GeometryMesh.js +58 -0
- package/src/_cjs/utils/datastructures/GeometryMesh.js.map +1 -0
- package/src/_cjs/utils/datastructures/Girih.d.ts +181 -0
- package/src/_cjs/utils/datastructures/Girih.js +266 -0
- package/src/_cjs/utils/datastructures/Girih.js.map +1 -0
- package/src/_cjs/utils/datastructures/GirihBowtie.d.ts +37 -0
- package/src/_cjs/utils/datastructures/GirihBowtie.js +152 -0
- package/src/_cjs/utils/datastructures/GirihBowtie.js.map +1 -0
- package/src/_cjs/utils/datastructures/GirihDecagon.d.ts +52 -0
- package/src/_cjs/utils/datastructures/GirihDecagon.js +132 -0
- package/src/_cjs/utils/datastructures/GirihDecagon.js.map +1 -0
- package/src/_cjs/utils/datastructures/GirihHexagon.d.ts +39 -0
- package/src/_cjs/utils/datastructures/GirihHexagon.js +200 -0
- package/src/_cjs/utils/datastructures/GirihHexagon.js.map +1 -0
- package/src/_cjs/utils/datastructures/GirihPenroseRhombus.d.ts +46 -0
- package/src/_cjs/utils/datastructures/GirihPenroseRhombus.js +189 -0
- package/src/_cjs/utils/datastructures/GirihPenroseRhombus.js.map +1 -0
- package/src/_cjs/utils/datastructures/GirihPentagon.d.ts +37 -0
- package/src/_cjs/utils/datastructures/GirihPentagon.js +109 -0
- package/src/_cjs/utils/datastructures/GirihPentagon.js.map +1 -0
- package/src/_cjs/utils/datastructures/GirihRhombus.d.ts +38 -0
- package/src/_cjs/utils/datastructures/GirihRhombus.js +155 -0
- package/src/_cjs/utils/datastructures/GirihRhombus.js.map +1 -0
- package/src/_cjs/utils/datastructures/GirihTile.d.ts +283 -0
- package/src/_cjs/utils/datastructures/GirihTile.js +308 -0
- package/src/_cjs/utils/datastructures/GirihTile.js.map +1 -0
- package/src/_cjs/utils/datastructures/Matrix4x4.d.ts +244 -0
- package/src/_cjs/utils/datastructures/Matrix4x4.js +262 -0
- package/src/_cjs/utils/datastructures/Matrix4x4.js.map +1 -0
- package/src/_cjs/utils/datastructures/VoronoiCell.d.ts +122 -0
- package/src/_cjs/utils/datastructures/VoronoiCell.js +183 -0
- package/src/_cjs/utils/datastructures/VoronoiCell.js.map +1 -0
- package/src/_cjs/utils/datastructures/interfaces.d.ts +13 -0
- package/src/_cjs/utils/datastructures/interfaces.js +10 -0
- package/src/_cjs/utils/datastructures/interfaces.js.map +1 -0
- package/src/_cjs/utils/detectDarkMode.d.ts +10 -0
- package/src/_cjs/utils/detectDarkMode.js +41 -0
- package/src/_cjs/utils/detectDarkMode.js.map +1 -0
- package/src/_cjs/utils/dom/components/ColorGradientPicker.d.ts +246 -0
- package/src/_cjs/utils/dom/components/ColorGradientPicker.js +667 -0
- package/src/_cjs/utils/dom/components/ColorGradientPicker.js.map +1 -0
- package/src/_cjs/utils/dom/components/ColorGradientPickerJSX.d.ts +129 -0
- package/src/_cjs/utils/dom/components/ColorGradientPickerJSX.js +520 -0
- package/src/_cjs/utils/dom/components/ColorGradientPickerJSX.js.map +1 -0
- package/src/_cjs/utils/dom/components/ColorGradientSelector.d.ts +118 -0
- package/src/_cjs/utils/dom/components/ColorGradientSelector.js +327 -0
- package/src/_cjs/utils/dom/components/ColorGradientSelector.js.map +1 -0
- package/src/_cjs/utils/dom/components/Test.d.ts +7 -0
- package/src/_cjs/utils/dom/components/Test.js +30 -0
- package/src/_cjs/utils/dom/components/Test.js.map +1 -0
- package/src/_cjs/utils/dom/getAvailableContainerSpace.d.ts +2 -0
- package/src/_cjs/utils/dom/getAvailableContainerSpace.js +29 -0
- package/src/_cjs/utils/dom/getAvailableContainerSpace.js.map +1 -0
- package/src/_cjs/utils/dom/getFProp.d.ts +5 -0
- package/src/_cjs/utils/dom/getFProp.js +12 -0
- package/src/_cjs/utils/dom/getFProp.js.map +1 -0
- package/src/_cjs/utils/dom/guiSizeToggler.d.ts +18 -0
- package/src/_cjs/utils/dom/guiSizeToggler.js +44 -0
- package/src/_cjs/utils/dom/guiSizeToggler.js.map +1 -0
- package/src/_cjs/utils/findInVertexArray.d.ts +19 -0
- package/src/_cjs/utils/findInVertexArray.js +29 -0
- package/src/_cjs/utils/findInVertexArray.js.map +1 -0
- package/src/_cjs/utils/getFProp.d.ts +5 -0
- package/src/_cjs/utils/getFProp.js +12 -0
- package/src/_cjs/utils/getFProp.js.map +1 -0
- package/src/_cjs/utils/gup.d.ts +14 -0
- package/src/_cjs/utils/gup.js +31 -0
- package/src/_cjs/utils/gup.js.map +1 -0
- package/src/_cjs/utils/helpers/BezierPathInteractionHelper.d.ts +272 -0
- package/src/_cjs/utils/helpers/BezierPathInteractionHelper.js +655 -0
- package/src/_cjs/utils/helpers/BezierPathInteractionHelper.js.map +1 -0
- package/src/_cjs/utils/helpers/CircleHelper.d.ts +73 -0
- package/src/_cjs/utils/helpers/CircleHelper.js +93 -0
- package/src/_cjs/utils/helpers/CircleHelper.js.map +1 -0
- package/src/_cjs/utils/helpers/CircleSectorHelper.d.ts +90 -0
- package/src/_cjs/utils/helpers/CircleSectorHelper.js +114 -0
- package/src/_cjs/utils/helpers/CircleSectorHelper.js.map +1 -0
- package/src/_cjs/utils/helpers/TriangleHelper.d.ts +57 -0
- package/src/_cjs/utils/helpers/TriangleHelper.js +83 -0
- package/src/_cjs/utils/helpers/TriangleHelper.js.map +1 -0
- package/src/_cjs/utils/helpers/VEllipseHelper.d.ts +32 -0
- package/src/_cjs/utils/helpers/VEllipseHelper.js +88 -0
- package/src/_cjs/utils/helpers/VEllipseHelper.js.map +1 -0
- package/src/_cjs/utils/helpers/VEllipseSectorHelper.d.ts +52 -0
- package/src/_cjs/utils/helpers/VEllipseSectorHelper.js +135 -0
- package/src/_cjs/utils/helpers/VEllipseSectorHelper.js.map +1 -0
- package/src/_cjs/utils/io/DndFileHandler.d.ts +63 -0
- package/src/_cjs/utils/io/DndFileHandler.js +112 -0
- package/src/_cjs/utils/io/DndFileHandler.js.map +1 -0
- package/src/_cjs/utils/io/FileDrop.d.ts +110 -0
- package/src/_cjs/utils/io/FileDrop.js +177 -0
- package/src/_cjs/utils/io/FileDrop.js.map +1 -0
- package/src/_cjs/utils/lil.gui.arrowbounce.polyfill.js +133 -0
- package/src/_cjs/utils/lil.gui.title.polyfill.js +32 -0
- package/src/_cjs/utils/module.js +18 -0
- package/src/_cjs/utils/parsers/LinearColorGradientParser.d.ts +78 -0
- package/src/_cjs/utils/parsers/LinearColorGradientParser.js +224 -0
- package/src/_cjs/utils/parsers/LinearColorGradientParser.js.map +1 -0
- package/src/_cjs/utils/parsers/OBJParser.d.ts +24 -0
- package/src/_cjs/utils/parsers/OBJParser.js +77 -0
- package/src/_cjs/utils/parsers/OBJParser.js.map +1 -0
- package/src/_cjs/utils/parsers/STLParser.d.ts +61 -0
- package/src/_cjs/utils/parsers/STLParser.js +182 -0
- package/src/_cjs/utils/parsers/STLParser.js.map +1 -0
- package/src/_cjs/utils/parsers/svg/parseSVGPathData.d.ts +27 -0
- package/src/_cjs/utils/parsers/svg/parseSVGPathData.js +486 -0
- package/src/_cjs/utils/parsers/svg/parseSVGPathData.js.map +1 -0
- package/src/_cjs/utils/parsers/svg/splitSVGPathData.d.ts +20 -0
- package/src/_cjs/utils/parsers/svg/splitSVGPathData.js +53 -0
- package/src/_cjs/utils/parsers/svg/splitSVGPathData.js.map +1 -0
- package/src/_cjs/utils/parsers/svg/types.d.ts +63 -0
- package/src/_cjs/utils/parsers/svg/types.js +17 -0
- package/src/_cjs/utils/parsers/svg/types.js.map +1 -0
- package/src/_cjs/utils/ts-runner.js +146 -0
- package/src/_cjs/utils/tsAsyncScriptLoader.js +74 -0
- package/src/_esm/BezierPath.d.ts +610 -0
- package/src/_esm/BezierPath.js +1124 -0
- package/src/_esm/BezierPath.js.map +1 -0
- package/src/_esm/Bounds.d.ts +252 -0
- package/src/_esm/Bounds.js +317 -0
- package/src/_esm/Bounds.js.map +1 -0
- package/src/_esm/Circle.d.ts +214 -0
- package/src/_esm/Circle.js +335 -0
- package/src/_esm/Circle.js.map +1 -0
- package/src/_esm/CircleSector.d.ts +211 -0
- package/src/_esm/CircleSector.js +359 -0
- package/src/_esm/CircleSector.js.map +1 -0
- package/src/_esm/CubicBezierCurve.d.ts +656 -0
- package/src/_esm/CubicBezierCurve.js +1057 -0
- package/src/_esm/CubicBezierCurve.js.map +1 -0
- package/src/_esm/Grid.d.ts +83 -0
- package/src/_esm/Grid.js +89 -0
- package/src/_esm/Grid.js.map +1 -0
- package/src/_esm/KeyHandler.d.ts +177 -0
- package/src/_esm/KeyHandler.js +434 -0
- package/src/_esm/KeyHandler.js.map +1 -0
- package/src/_esm/Line.d.ts +134 -0
- package/src/_esm/Line.js +200 -0
- package/src/_esm/Line.js.map +1 -0
- package/src/_esm/MouseHandler.d.ts +283 -0
- package/src/_esm/MouseHandler.js +397 -0
- package/src/_esm/MouseHandler.js.map +1 -0
- package/src/_esm/PBImage.d.ts +81 -0
- package/src/_esm/PBImage.js +60 -0
- package/src/_esm/PBImage.js.map +1 -0
- package/src/_esm/PBText.d.ts +118 -0
- package/src/_esm/PBText.js +62 -0
- package/src/_esm/PBText.js.map +1 -0
- package/src/_esm/PlotBoilerplate.d.ts +899 -0
- package/src/_esm/PlotBoilerplate.js +2347 -0
- package/src/_esm/PlotBoilerplate.js.map +1 -0
- package/src/_esm/Polygon.d.ts +520 -0
- package/src/_esm/Polygon.js +924 -0
- package/src/_esm/Polygon.js.map +1 -0
- package/src/_esm/SVGBuilder.d.ts +47 -0
- package/src/_esm/SVGBuilder.js +95 -0
- package/src/_esm/SVGBuilder.js.map +1 -0
- package/src/_esm/Triangle.d.ts +392 -0
- package/src/_esm/Triangle.js +493 -0
- package/src/_esm/Triangle.js.map +1 -0
- package/src/_esm/UIDGenerator.d.ts +12 -0
- package/src/_esm/UIDGenerator.js +18 -0
- package/src/_esm/UIDGenerator.js.map +1 -0
- package/src/_esm/VEllipse.d.ts +319 -0
- package/src/_esm/VEllipse.js +574 -0
- package/src/_esm/VEllipse.js.map +1 -0
- package/src/_esm/VEllipseSector.d.ts +230 -0
- package/src/_esm/VEllipseSector.js +422 -0
- package/src/_esm/VEllipseSector.js.map +1 -0
- package/src/_esm/Vector.d.ts +126 -0
- package/src/_esm/Vector.js +181 -0
- package/src/_esm/Vector.js.map +1 -0
- package/src/_esm/VertTuple.d.ts +284 -0
- package/src/_esm/VertTuple.js +347 -0
- package/src/_esm/VertTuple.js.map +1 -0
- package/src/_esm/Vertex.d.ts +498 -0
- package/src/_esm/Vertex.js +702 -0
- package/src/_esm/Vertex.js.map +1 -0
- package/src/_esm/VertexAttr.d.ts +72 -0
- package/src/_esm/VertexAttr.js +58 -0
- package/src/_esm/VertexAttr.js.map +1 -0
- package/src/_esm/VertexListeners.d.ts +209 -0
- package/src/_esm/VertexListeners.js +270 -0
- package/src/_esm/VertexListeners.js.map +1 -0
- package/src/_esm/draw.d.ts +657 -0
- package/src/_esm/draw.js +1159 -0
- package/src/_esm/draw.js.map +1 -0
- package/src/_esm/drawgl.d.ts +544 -0
- package/src/_esm/drawgl.js +812 -0
- package/src/_esm/drawgl.js.map +1 -0
- package/src/_esm/drawutilssvg.d.ts +954 -0
- package/src/_esm/drawutilssvg.js +1705 -0
- package/src/_esm/drawutilssvg.js.map +1 -0
- package/src/_esm/entry-glsupport.js +28 -0
- package/src/_esm/entry.js +29 -0
- package/src/_esm/geomutils.d.ts +77 -0
- package/src/_esm/geomutils.js +126 -0
- package/src/_esm/geomutils.js.map +1 -0
- package/src/_esm/index.d.ts +102 -0
- package/src/_esm/index.js +128 -0
- package/src/_esm/index.js.map +1 -0
- package/src/_esm/interfaces/DrawLib.d.ts +582 -0
- package/src/_esm/interfaces/DrawLib.js +32 -0
- package/src/_esm/interfaces/DrawLib.js.map +1 -0
- package/src/_esm/interfaces/additionals.d.ts +95 -0
- package/src/_esm/interfaces/additionals.js +3 -0
- package/src/_esm/interfaces/additionals.js.map +1 -0
- package/src/_esm/interfaces/core.d.ts +286 -0
- package/src/_esm/interfaces/core.js +30 -0
- package/src/_esm/interfaces/core.js.map +1 -0
- package/src/_esm/interfaces/externals.d.ts +56 -0
- package/src/_esm/interfaces/externals.js +8 -0
- package/src/_esm/interfaces/externals.js.map +1 -0
- package/src/_esm/interfaces/index.d.ts +4 -0
- package/src/_esm/interfaces/index.js +21 -0
- package/src/_esm/interfaces/index.js.map +1 -0
- package/src/_esm/module.d.ts +26 -0
- package/src/_esm/module.js +60 -0
- package/src/_esm/module.js.map +1 -0
- package/src/_esm/src/ts/BezierPath.d.ts +610 -0
- package/src/_esm/src/ts/BezierPath.js +1120 -0
- package/src/_esm/src/ts/BezierPath.js.map +1 -0
- package/src/_esm/src/ts/Bounds.d.ts +252 -0
- package/src/_esm/src/ts/Bounds.js +313 -0
- package/src/_esm/src/ts/Bounds.js.map +1 -0
- package/src/_esm/src/ts/Circle.d.ts +214 -0
- package/src/_esm/src/ts/Circle.js +331 -0
- package/src/_esm/src/ts/Circle.js.map +1 -0
- package/src/_esm/src/ts/CircleSector.d.ts +211 -0
- package/src/_esm/src/ts/CircleSector.js +355 -0
- package/src/_esm/src/ts/CircleSector.js.map +1 -0
- package/src/_esm/src/ts/CubicBezierCurve.d.ts +656 -0
- package/src/_esm/src/ts/CubicBezierCurve.js +1053 -0
- package/src/_esm/src/ts/CubicBezierCurve.js.map +1 -0
- package/src/_esm/src/ts/Grid.d.ts +83 -0
- package/src/_esm/src/ts/Grid.js +85 -0
- package/src/_esm/src/ts/Grid.js.map +1 -0
- package/src/_esm/src/ts/KeyHandler.d.ts +177 -0
- package/src/_esm/src/ts/KeyHandler.js +430 -0
- package/src/_esm/src/ts/KeyHandler.js.map +1 -0
- package/src/_esm/src/ts/Line.d.ts +134 -0
- package/src/_esm/src/ts/Line.js +196 -0
- package/src/_esm/src/ts/Line.js.map +1 -0
- package/src/_esm/src/ts/MouseHandler.d.ts +283 -0
- package/src/_esm/src/ts/MouseHandler.js +391 -0
- package/src/_esm/src/ts/MouseHandler.js.map +1 -0
- package/src/_esm/src/ts/PBImage.d.ts +81 -0
- package/src/_esm/src/ts/PBImage.js +56 -0
- package/src/_esm/src/ts/PBImage.js.map +1 -0
- package/src/_esm/src/ts/PBText.d.ts +118 -0
- package/src/_esm/src/ts/PBText.js +58 -0
- package/src/_esm/src/ts/PBText.js.map +1 -0
- package/src/_esm/src/ts/PlotBoilerplate.d.ts +899 -0
- package/src/_esm/src/ts/PlotBoilerplate.js +2340 -0
- package/src/_esm/src/ts/PlotBoilerplate.js.map +1 -0
- package/src/_esm/src/ts/Polygon.d.ts +520 -0
- package/src/_esm/src/ts/Polygon.js +920 -0
- package/src/_esm/src/ts/Polygon.js.map +1 -0
- package/src/_esm/src/ts/Triangle.d.ts +392 -0
- package/src/_esm/src/ts/Triangle.js +489 -0
- package/src/_esm/src/ts/Triangle.js.map +1 -0
- package/src/_esm/src/ts/UIDGenerator.d.ts +12 -0
- package/src/_esm/src/ts/UIDGenerator.js +14 -0
- package/src/_esm/src/ts/UIDGenerator.js.map +1 -0
- package/src/_esm/src/ts/VEllipse.d.ts +319 -0
- package/src/_esm/src/ts/VEllipse.js +570 -0
- package/src/_esm/src/ts/VEllipse.js.map +1 -0
- package/src/_esm/src/ts/VEllipseSector.d.ts +230 -0
- package/src/_esm/src/ts/VEllipseSector.js +418 -0
- package/src/_esm/src/ts/VEllipseSector.js.map +1 -0
- package/src/_esm/src/ts/Vector.d.ts +126 -0
- package/src/_esm/src/ts/Vector.js +177 -0
- package/src/_esm/src/ts/Vector.js.map +1 -0
- package/src/_esm/src/ts/VertTuple.d.ts +284 -0
- package/src/_esm/src/ts/VertTuple.js +343 -0
- package/src/_esm/src/ts/VertTuple.js.map +1 -0
- package/src/_esm/src/ts/Vertex.d.ts +498 -0
- package/src/_esm/src/ts/Vertex.js +698 -0
- package/src/_esm/src/ts/Vertex.js.map +1 -0
- package/src/_esm/src/ts/VertexAttr.d.ts +72 -0
- package/src/_esm/src/ts/VertexAttr.js +54 -0
- package/src/_esm/src/ts/VertexAttr.js.map +1 -0
- package/src/_esm/src/ts/VertexListeners.d.ts +209 -0
- package/src/_esm/src/ts/VertexListeners.js +266 -0
- package/src/_esm/src/ts/VertexListeners.js.map +1 -0
- package/src/_esm/src/ts/draw.d.ts +657 -0
- package/src/_esm/src/ts/draw.js +1155 -0
- package/src/_esm/src/ts/draw.js.map +1 -0
- package/src/_esm/src/ts/drawgl.d.ts +544 -0
- package/src/_esm/src/ts/drawgl.js +808 -0
- package/src/_esm/src/ts/drawgl.js.map +1 -0
- package/src/_esm/src/ts/drawutilssvg.d.ts +954 -0
- package/src/_esm/src/ts/drawutilssvg.js +1701 -0
- package/src/_esm/src/ts/drawutilssvg.js.map +1 -0
- package/src/_esm/src/ts/geomutils.d.ts +77 -0
- package/src/_esm/src/ts/geomutils.js +123 -0
- package/src/_esm/src/ts/geomutils.js.map +1 -0
- package/src/_esm/src/ts/index.d.ts +102 -0
- package/src/_esm/src/ts/index.js +112 -0
- package/src/_esm/src/ts/index.js.map +1 -0
- package/src/_esm/src/ts/interfaces/DrawLib.d.ts +582 -0
- package/src/_esm/src/ts/interfaces/DrawLib.js +31 -0
- package/src/_esm/src/ts/interfaces/DrawLib.js.map +1 -0
- package/src/_esm/src/ts/interfaces/additionals.d.ts +95 -0
- package/src/_esm/src/ts/interfaces/additionals.js +2 -0
- package/src/_esm/src/ts/interfaces/additionals.js.map +1 -0
- package/src/_esm/src/ts/interfaces/core.d.ts +286 -0
- package/src/_esm/src/ts/interfaces/core.js +29 -0
- package/src/_esm/src/ts/interfaces/core.js.map +1 -0
- package/src/_esm/src/ts/interfaces/externals.d.ts +56 -0
- package/src/_esm/src/ts/interfaces/externals.js +7 -0
- package/src/_esm/src/ts/interfaces/externals.js.map +1 -0
- package/src/_esm/src/ts/interfaces/index.d.ts +4 -0
- package/src/_esm/src/ts/interfaces/index.js +5 -0
- package/src/_esm/src/ts/interfaces/index.js.map +1 -0
- package/src/_esm/src/ts/module.d.ts +26 -0
- package/src/_esm/src/ts/module.js +38 -0
- package/src/_esm/src/ts/module.js.map +1 -0
- package/src/_esm/src/ts/utils/InitializationObserver.d.ts +18 -0
- package/src/_esm/src/ts/utils/InitializationObserver.js +57 -0
- package/src/_esm/src/ts/utils/InitializationObserver.js.map +1 -0
- package/src/_esm/src/ts/utils/LissajousFigure.d.ts +34 -0
- package/src/_esm/src/ts/utils/LissajousFigure.js +95 -0
- package/src/_esm/src/ts/utils/LissajousFigure.js.map +1 -0
- package/src/_esm/src/ts/utils/NGons.d.ts +13 -0
- package/src/_esm/src/ts/utils/NGons.js +33 -0
- package/src/_esm/src/ts/utils/NGons.js.map +1 -0
- package/src/_esm/src/ts/utils/Params.d.ts +17 -0
- package/src/_esm/src/ts/utils/Params.js +48 -0
- package/src/_esm/src/ts/utils/Params.js.map +1 -0
- package/src/_esm/src/ts/utils/PerlinNoise.d.ts +19 -0
- package/src/_esm/src/ts/utils/PerlinNoise.js +346 -0
- package/src/_esm/src/ts/utils/PerlinNoise.js.map +1 -0
- package/src/_esm/src/ts/utils/SVGPathUtils.d.ts +22 -0
- package/src/_esm/src/ts/utils/SVGPathUtils.js +42 -0
- package/src/_esm/src/ts/utils/SVGPathUtils.js.map +1 -0
- package/src/_esm/src/ts/utils/WebColors.d.ts +35 -0
- package/src/_esm/src/ts/utils/WebColors.js +54 -0
- package/src/_esm/src/ts/utils/WebColors.js.map +1 -0
- package/src/_esm/src/ts/utils/WebColorsContrast.d.ts +6 -0
- package/src/_esm/src/ts/utils/WebColorsContrast.js +9 -0
- package/src/_esm/src/ts/utils/WebColorsContrast.js.map +1 -0
- package/src/_esm/src/ts/utils/WebColorsMalachite.d.ts +12 -0
- package/src/_esm/src/ts/utils/WebColorsMalachite.js +25 -0
- package/src/_esm/src/ts/utils/WebColorsMalachite.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/CatmullRomPath.d.ts +60 -0
- package/src/_esm/src/ts/utils/algorithms/CatmullRomPath.js +103 -0
- package/src/_esm/src/ts/utils/algorithms/CatmullRomPath.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/CircleIntersections.d.ts +170 -0
- package/src/_esm/src/ts/utils/algorithms/CircleIntersections.js +303 -0
- package/src/_esm/src/ts/utils/algorithms/CircleIntersections.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/ContourLineDetection.d.ts +150 -0
- package/src/_esm/src/ts/utils/algorithms/ContourLineDetection.js +362 -0
- package/src/_esm/src/ts/utils/algorithms/ContourLineDetection.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/CubicSplinePath.d.ts +63 -0
- package/src/_esm/src/ts/utils/algorithms/CubicSplinePath.js +170 -0
- package/src/_esm/src/ts/utils/algorithms/CubicSplinePath.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/HobbyPath.d.ts +81 -0
- package/src/_esm/src/ts/utils/algorithms/HobbyPath.js +273 -0
- package/src/_esm/src/ts/utils/algorithms/HobbyPath.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/Metaballs.d.ts +30 -0
- package/src/_esm/src/ts/utils/algorithms/Metaballs.js +109 -0
- package/src/_esm/src/ts/utils/algorithms/Metaballs.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/PolygonInset.d.ts +184 -0
- package/src/_esm/src/ts/utils/algorithms/PolygonInset.js +424 -0
- package/src/_esm/src/ts/utils/algorithms/PolygonInset.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/PolygonTesselationOutlines.d.ts +145 -0
- package/src/_esm/src/ts/utils/algorithms/PolygonTesselationOutlines.js +262 -0
- package/src/_esm/src/ts/utils/algorithms/PolygonTesselationOutlines.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/arrayFill.d.ts +8 -0
- package/src/_esm/src/ts/utils/algorithms/arrayFill.js +14 -0
- package/src/_esm/src/ts/utils/algorithms/arrayFill.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/arrayResize.d.ts +8 -0
- package/src/_esm/src/ts/utils/algorithms/arrayResize.js +20 -0
- package/src/_esm/src/ts/utils/algorithms/arrayResize.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/arrayShuffle.d.ts +8 -0
- package/src/_esm/src/ts/utils/algorithms/arrayShuffle.js +11 -0
- package/src/_esm/src/ts/utils/algorithms/arrayShuffle.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/clearDuplicateVertices.d.ts +22 -0
- package/src/_esm/src/ts/utils/algorithms/clearDuplicateVertices.js +47 -0
- package/src/_esm/src/ts/utils/algorithms/clearDuplicateVertices.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/clearPolygonDuplicateVertices.d.ts +24 -0
- package/src/_esm/src/ts/utils/algorithms/clearPolygonDuplicateVertices.js +57 -0
- package/src/_esm/src/ts/utils/algorithms/clearPolygonDuplicateVertices.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/convexHull.d.ts +23 -0
- package/src/_esm/src/ts/utils/algorithms/convexHull.js +67 -0
- package/src/_esm/src/ts/utils/algorithms/convexHull.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/convexPolygonIncircle.d.ts +41 -0
- package/src/_esm/src/ts/utils/algorithms/convexPolygonIncircle.js +141 -0
- package/src/_esm/src/ts/utils/algorithms/convexPolygonIncircle.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/delaunay.d.ts +30 -0
- package/src/_esm/src/ts/utils/algorithms/delaunay.js +153 -0
- package/src/_esm/src/ts/utils/algorithms/delaunay.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/delaunay2voronoi.d.ts +25 -0
- package/src/_esm/src/ts/utils/algorithms/delaunay2voronoi.js +99 -0
- package/src/_esm/src/ts/utils/algorithms/delaunay2voronoi.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/detectPaths.d.ts +21 -0
- package/src/_esm/src/ts/utils/algorithms/detectPaths.js +165 -0
- package/src/_esm/src/ts/utils/algorithms/detectPaths.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/findPolygonSelfIntersections.d.ts +21 -0
- package/src/_esm/src/ts/utils/algorithms/findPolygonSelfIntersections.js +47 -0
- package/src/_esm/src/ts/utils/algorithms/findPolygonSelfIntersections.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/getContrastColor.d.ts +13 -0
- package/src/_esm/src/ts/utils/algorithms/getContrastColor.js +22 -0
- package/src/_esm/src/ts/utils/algorithms/getContrastColor.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/matrixFill.d.ts +10 -0
- package/src/_esm/src/ts/utils/algorithms/matrixFill.js +17 -0
- package/src/_esm/src/ts/utils/algorithms/matrixFill.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/pixelCornersToRoundPaths.d.ts +23 -0
- package/src/_esm/src/ts/utils/algorithms/pixelCornersToRoundPaths.js +266 -0
- package/src/_esm/src/ts/utils/algorithms/pixelCornersToRoundPaths.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/splitPolygonToNonIntersecting.d.ts +28 -0
- package/src/_esm/src/ts/utils/algorithms/splitPolygonToNonIntersecting.js +99 -0
- package/src/_esm/src/ts/utils/algorithms/splitPolygonToNonIntersecting.js.map +1 -0
- package/src/_esm/src/ts/utils/algorithms/sutherlandHodgman.d.ts +16 -0
- package/src/_esm/src/ts/utils/algorithms/sutherlandHodgman.js +72 -0
- package/src/_esm/src/ts/utils/algorithms/sutherlandHodgman.js.map +1 -0
- package/src/_esm/src/ts/utils/cloneVertexArray.d.ts +13 -0
- package/src/_esm/src/ts/utils/cloneVertexArray.js +19 -0
- package/src/_esm/src/ts/utils/cloneVertexArray.js.map +1 -0
- package/src/_esm/src/ts/utils/createRandomizedPolygon.d.ts +14 -0
- package/src/_esm/src/ts/utils/createRandomizedPolygon.js +28 -0
- package/src/_esm/src/ts/utils/createRandomizedPolygon.js.map +1 -0
- package/src/_esm/src/ts/utils/datastructures/CircularIntervalSet.d.ts +83 -0
- package/src/_esm/src/ts/utils/datastructures/CircularIntervalSet.js +158 -0
- package/src/_esm/src/ts/utils/datastructures/CircularIntervalSet.js.map +1 -0
- package/src/_esm/src/ts/utils/datastructures/Color.d.ts +391 -0
- package/src/_esm/src/ts/utils/datastructures/Color.js +1063 -0
- package/src/_esm/src/ts/utils/datastructures/Color.js.map +1 -0
- package/src/_esm/src/ts/utils/datastructures/ColorGradient.d.ts +81 -0
- package/src/_esm/src/ts/utils/datastructures/ColorGradient.js +171 -0
- package/src/_esm/src/ts/utils/datastructures/ColorGradient.js.map +1 -0
- package/src/_esm/src/ts/utils/datastructures/DataGrid2d.d.ts +53 -0
- package/src/_esm/src/ts/utils/datastructures/DataGrid2d.js +19 -0
- package/src/_esm/src/ts/utils/datastructures/DataGrid2d.js.map +1 -0
- package/src/_esm/src/ts/utils/datastructures/DataGrid2dArrayMatrix.d.ts +88 -0
- package/src/_esm/src/ts/utils/datastructures/DataGrid2dArrayMatrix.js +150 -0
- package/src/_esm/src/ts/utils/datastructures/DataGrid2dArrayMatrix.js.map +1 -0
- package/src/_esm/src/ts/utils/datastructures/DataGrid2dListAdapter.d.ts +59 -0
- package/src/_esm/src/ts/utils/datastructures/DataGrid2dListAdapter.js +79 -0
- package/src/_esm/src/ts/utils/datastructures/DataGrid2dListAdapter.js.map +1 -0
- package/src/_esm/src/ts/utils/datastructures/GenericPath.d.ts +86 -0
- package/src/_esm/src/ts/utils/datastructures/GenericPath.js +117 -0
- package/src/_esm/src/ts/utils/datastructures/GenericPath.js.map +1 -0
- package/src/_esm/src/ts/utils/datastructures/GeometryMesh.d.ts +49 -0
- package/src/_esm/src/ts/utils/datastructures/GeometryMesh.js +53 -0
- package/src/_esm/src/ts/utils/datastructures/GeometryMesh.js.map +1 -0
- package/src/_esm/src/ts/utils/datastructures/Girih.d.ts +181 -0
- package/src/_esm/src/ts/utils/datastructures/Girih.js +261 -0
- package/src/_esm/src/ts/utils/datastructures/Girih.js.map +1 -0
- package/src/_esm/src/ts/utils/datastructures/GirihBowtie.d.ts +37 -0
- package/src/_esm/src/ts/utils/datastructures/GirihBowtie.js +130 -0
- package/src/_esm/src/ts/utils/datastructures/GirihBowtie.js.map +1 -0
- package/src/_esm/src/ts/utils/datastructures/GirihDecagon.d.ts +52 -0
- package/src/_esm/src/ts/utils/datastructures/GirihDecagon.js +110 -0
- package/src/_esm/src/ts/utils/datastructures/GirihDecagon.js.map +1 -0
- package/src/_esm/src/ts/utils/datastructures/GirihHexagon.d.ts +39 -0
- package/src/_esm/src/ts/utils/datastructures/GirihHexagon.js +178 -0
- package/src/_esm/src/ts/utils/datastructures/GirihHexagon.js.map +1 -0
- package/src/_esm/src/ts/utils/datastructures/GirihPenroseRhombus.d.ts +46 -0
- package/src/_esm/src/ts/utils/datastructures/GirihPenroseRhombus.js +167 -0
- package/src/_esm/src/ts/utils/datastructures/GirihPenroseRhombus.js.map +1 -0
- package/src/_esm/src/ts/utils/datastructures/GirihPentagon.d.ts +37 -0
- package/src/_esm/src/ts/utils/datastructures/GirihPentagon.js +87 -0
- package/src/_esm/src/ts/utils/datastructures/GirihPentagon.js.map +1 -0
- package/src/_esm/src/ts/utils/datastructures/GirihRhombus.d.ts +38 -0
- package/src/_esm/src/ts/utils/datastructures/GirihRhombus.js +133 -0
- package/src/_esm/src/ts/utils/datastructures/GirihRhombus.js.map +1 -0
- package/src/_esm/src/ts/utils/datastructures/GirihTile.d.ts +283 -0
- package/src/_esm/src/ts/utils/datastructures/GirihTile.js +286 -0
- package/src/_esm/src/ts/utils/datastructures/GirihTile.js.map +1 -0
- package/src/_esm/src/ts/utils/datastructures/Matrix4x4.d.ts +244 -0
- package/src/_esm/src/ts/utils/datastructures/Matrix4x4.js +246 -0
- package/src/_esm/src/ts/utils/datastructures/Matrix4x4.js.map +1 -0
- package/src/_esm/src/ts/utils/datastructures/VoronoiCell.d.ts +122 -0
- package/src/_esm/src/ts/utils/datastructures/VoronoiCell.js +178 -0
- package/src/_esm/src/ts/utils/datastructures/VoronoiCell.js.map +1 -0
- package/src/_esm/src/ts/utils/datastructures/interfaces.d.ts +13 -0
- package/src/_esm/src/ts/utils/datastructures/interfaces.js +9 -0
- package/src/_esm/src/ts/utils/datastructures/interfaces.js.map +1 -0
- package/src/_esm/src/ts/utils/detectDarkMode.d.ts +10 -0
- package/src/_esm/src/ts/utils/detectDarkMode.js +37 -0
- package/src/_esm/src/ts/utils/detectDarkMode.js.map +1 -0
- package/src/_esm/src/ts/utils/dom/components/ColorGradientPicker.d.ts +246 -0
- package/src/_esm/src/ts/utils/dom/components/ColorGradientPicker.js +743 -0
- package/src/_esm/src/ts/utils/dom/components/ColorGradientPicker.js.map +1 -0
- package/src/_esm/src/ts/utils/dom/components/ColorGradientSelector.d.ts +118 -0
- package/src/_esm/src/ts/utils/dom/components/ColorGradientSelector.js +339 -0
- package/src/_esm/src/ts/utils/dom/components/ColorGradientSelector.js.map +1 -0
- package/src/_esm/src/ts/utils/dom/components/Test.d.ts +7 -0
- package/src/_esm/src/ts/utils/dom/components/Test.js +26 -0
- package/src/_esm/src/ts/utils/dom/components/Test.js.map +1 -0
- package/src/_esm/src/ts/utils/dom/getAvailableContainerSpace.d.ts +2 -0
- package/src/_esm/src/ts/utils/dom/getAvailableContainerSpace.js +25 -0
- package/src/_esm/src/ts/utils/dom/getAvailableContainerSpace.js.map +1 -0
- package/src/_esm/src/ts/utils/dom/getFProp.d.ts +5 -0
- package/src/_esm/src/ts/utils/dom/getFProp.js +8 -0
- package/src/_esm/src/ts/utils/dom/getFProp.js.map +1 -0
- package/src/_esm/src/ts/utils/dom/guiSizeToggler.d.ts +18 -0
- package/src/_esm/src/ts/utils/dom/guiSizeToggler.js +40 -0
- package/src/_esm/src/ts/utils/dom/guiSizeToggler.js.map +1 -0
- package/src/_esm/src/ts/utils/findInVertexArray.d.ts +19 -0
- package/src/_esm/src/ts/utils/findInVertexArray.js +25 -0
- package/src/_esm/src/ts/utils/findInVertexArray.js.map +1 -0
- package/src/_esm/src/ts/utils/gup.d.ts +14 -0
- package/src/_esm/src/ts/utils/gup.js +27 -0
- package/src/_esm/src/ts/utils/gup.js.map +1 -0
- package/src/_esm/src/ts/utils/helpers/BezierPathInteractionHelper.d.ts +272 -0
- package/src/_esm/src/ts/utils/helpers/BezierPathInteractionHelper.js +648 -0
- package/src/_esm/src/ts/utils/helpers/BezierPathInteractionHelper.js.map +1 -0
- package/src/_esm/src/ts/utils/helpers/CircleHelper.d.ts +73 -0
- package/src/_esm/src/ts/utils/helpers/CircleHelper.js +88 -0
- package/src/_esm/src/ts/utils/helpers/CircleHelper.js.map +1 -0
- package/src/_esm/src/ts/utils/helpers/CircleSectorHelper.d.ts +90 -0
- package/src/_esm/src/ts/utils/helpers/CircleSectorHelper.js +109 -0
- package/src/_esm/src/ts/utils/helpers/CircleSectorHelper.js.map +1 -0
- package/src/_esm/src/ts/utils/helpers/TriangleHelper.d.ts +57 -0
- package/src/_esm/src/ts/utils/helpers/TriangleHelper.js +78 -0
- package/src/_esm/src/ts/utils/helpers/TriangleHelper.js.map +1 -0
- package/src/_esm/src/ts/utils/helpers/VEllipseHelper.d.ts +32 -0
- package/src/_esm/src/ts/utils/helpers/VEllipseHelper.js +83 -0
- package/src/_esm/src/ts/utils/helpers/VEllipseHelper.js.map +1 -0
- package/src/_esm/src/ts/utils/helpers/VEllipseSectorHelper.d.ts +52 -0
- package/src/_esm/src/ts/utils/helpers/VEllipseSectorHelper.js +130 -0
- package/src/_esm/src/ts/utils/helpers/VEllipseSectorHelper.js.map +1 -0
- package/src/_esm/src/ts/utils/io/FileDrop.d.ts +110 -0
- package/src/_esm/src/ts/utils/io/FileDrop.js +171 -0
- package/src/_esm/src/ts/utils/io/FileDrop.js.map +1 -0
- package/src/_esm/src/ts/utils/parsers/LinearColorGradientParser.d.ts +78 -0
- package/src/_esm/src/ts/utils/parsers/LinearColorGradientParser.js +217 -0
- package/src/_esm/src/ts/utils/parsers/LinearColorGradientParser.js.map +1 -0
- package/src/_esm/src/ts/utils/parsers/OBJParser.d.ts +24 -0
- package/src/_esm/src/ts/utils/parsers/OBJParser.js +72 -0
- package/src/_esm/src/ts/utils/parsers/OBJParser.js.map +1 -0
- package/src/_esm/src/ts/utils/parsers/STLParser.d.ts +61 -0
- package/src/_esm/src/ts/utils/parsers/STLParser.js +175 -0
- package/src/_esm/src/ts/utils/parsers/STLParser.js.map +1 -0
- package/src/_esm/src/ts/utils/parsers/svg/parseSVGPathData.d.ts +27 -0
- package/src/_esm/src/ts/utils/parsers/svg/parseSVGPathData.js +482 -0
- package/src/_esm/src/ts/utils/parsers/svg/parseSVGPathData.js.map +1 -0
- package/src/_esm/src/ts/utils/parsers/svg/splitSVGPathData.d.ts +20 -0
- package/src/_esm/src/ts/utils/parsers/svg/splitSVGPathData.js +49 -0
- package/src/_esm/src/ts/utils/parsers/svg/splitSVGPathData.js.map +1 -0
- package/src/_esm/src/ts/utils/parsers/svg/types.d.ts +63 -0
- package/src/_esm/src/ts/utils/parsers/svg/types.js +16 -0
- package/src/_esm/src/ts/utils/parsers/svg/types.js.map +1 -0
- package/src/_esm/utils/InitializationObserver.d.ts +18 -0
- package/src/_esm/utils/InitializationObserver.js +61 -0
- package/src/_esm/utils/InitializationObserver.js.map +1 -0
- package/src/_esm/utils/LissajousFigure.d.ts +34 -0
- package/src/_esm/utils/LissajousFigure.js +99 -0
- package/src/_esm/utils/LissajousFigure.js.map +1 -0
- package/src/_esm/utils/NGons.d.ts +13 -0
- package/src/_esm/utils/NGons.js +36 -0
- package/src/_esm/utils/NGons.js.map +1 -0
- package/src/_esm/utils/Params.d.ts +17 -0
- package/src/_esm/utils/Params.js +52 -0
- package/src/_esm/utils/Params.js.map +1 -0
- package/src/_esm/utils/PerlinNoise.d.ts +19 -0
- package/src/_esm/utils/PerlinNoise.js +350 -0
- package/src/_esm/utils/PerlinNoise.js.map +1 -0
- package/src/_esm/utils/SVGPathUtils.d.ts +22 -0
- package/src/_esm/utils/SVGPathUtils.js +45 -0
- package/src/_esm/utils/SVGPathUtils.js.map +1 -0
- package/src/_esm/utils/WebColors.d.ts +35 -0
- package/src/_esm/utils/WebColors.js +58 -0
- package/src/_esm/utils/WebColors.js.map +1 -0
- package/src/_esm/utils/WebColorsContrast.d.ts +6 -0
- package/src/_esm/utils/WebColorsContrast.js +12 -0
- package/src/_esm/utils/WebColorsContrast.js.map +1 -0
- package/src/_esm/utils/WebColorsMalachite.d.ts +12 -0
- package/src/_esm/utils/WebColorsMalachite.js +28 -0
- package/src/_esm/utils/WebColorsMalachite.js.map +1 -0
- package/src/_esm/utils/algorithms/CatmullRomPath.d.ts +60 -0
- package/src/_esm/utils/algorithms/CatmullRomPath.js +107 -0
- package/src/_esm/utils/algorithms/CatmullRomPath.js.map +1 -0
- package/src/_esm/utils/algorithms/CircleIntersections.d.ts +170 -0
- package/src/_esm/utils/algorithms/CircleIntersections.js +307 -0
- package/src/_esm/utils/algorithms/CircleIntersections.js.map +1 -0
- package/src/_esm/utils/algorithms/ContourLineDetection.d.ts +150 -0
- package/src/_esm/utils/algorithms/ContourLineDetection.js +366 -0
- package/src/_esm/utils/algorithms/ContourLineDetection.js.map +1 -0
- package/src/_esm/utils/algorithms/CubicSplinePath.d.ts +63 -0
- package/src/_esm/utils/algorithms/CubicSplinePath.js +174 -0
- package/src/_esm/utils/algorithms/CubicSplinePath.js.map +1 -0
- package/src/_esm/utils/algorithms/HobbyPath.d.ts +81 -0
- package/src/_esm/utils/algorithms/HobbyPath.js +277 -0
- package/src/_esm/utils/algorithms/HobbyPath.js.map +1 -0
- package/src/_esm/utils/algorithms/Metaballs.d.ts +30 -0
- package/src/_esm/utils/algorithms/Metaballs.js +113 -0
- package/src/_esm/utils/algorithms/Metaballs.js.map +1 -0
- package/src/_esm/utils/algorithms/PolygonInset.d.ts +184 -0
- package/src/_esm/utils/algorithms/PolygonInset.js +428 -0
- package/src/_esm/utils/algorithms/PolygonInset.js.map +1 -0
- package/src/_esm/utils/algorithms/PolygonTesselationOutlines.d.ts +145 -0
- package/src/_esm/utils/algorithms/PolygonTesselationOutlines.js +267 -0
- package/src/_esm/utils/algorithms/PolygonTesselationOutlines.js.map +1 -0
- package/src/_esm/utils/algorithms/arrayFill.d.ts +8 -0
- package/src/_esm/utils/algorithms/arrayFill.js +18 -0
- package/src/_esm/utils/algorithms/arrayFill.js.map +1 -0
- package/src/_esm/utils/algorithms/arrayResize.d.ts +8 -0
- package/src/_esm/utils/algorithms/arrayResize.js +24 -0
- package/src/_esm/utils/algorithms/arrayResize.js.map +1 -0
- package/src/_esm/utils/algorithms/arrayShuffle.d.ts +8 -0
- package/src/_esm/utils/algorithms/arrayShuffle.js +15 -0
- package/src/_esm/utils/algorithms/arrayShuffle.js.map +1 -0
- package/src/_esm/utils/algorithms/clearDuplicateVertices.d.ts +22 -0
- package/src/_esm/utils/algorithms/clearDuplicateVertices.js +51 -0
- package/src/_esm/utils/algorithms/clearDuplicateVertices.js.map +1 -0
- package/src/_esm/utils/algorithms/clearPolygonDuplicateVertices.d.ts +24 -0
- package/src/_esm/utils/algorithms/clearPolygonDuplicateVertices.js +61 -0
- package/src/_esm/utils/algorithms/clearPolygonDuplicateVertices.js.map +1 -0
- package/src/_esm/utils/algorithms/convexHull.d.ts +23 -0
- package/src/_esm/utils/algorithms/convexHull.js +71 -0
- package/src/_esm/utils/algorithms/convexHull.js.map +1 -0
- package/src/_esm/utils/algorithms/convexPolygonIncircle.d.ts +41 -0
- package/src/_esm/utils/algorithms/convexPolygonIncircle.js +145 -0
- package/src/_esm/utils/algorithms/convexPolygonIncircle.js.map +1 -0
- package/src/_esm/utils/algorithms/createRandomizedPolygon.d.ts +14 -0
- package/src/_esm/utils/algorithms/createRandomizedPolygon.js +28 -0
- package/src/_esm/utils/algorithms/createRandomizedPolygon.js.map +1 -0
- package/src/_esm/utils/algorithms/delaunay.d.ts +30 -0
- package/src/_esm/utils/algorithms/delaunay.js +157 -0
- package/src/_esm/utils/algorithms/delaunay.js.map +1 -0
- package/src/_esm/utils/algorithms/delaunay2voronoi.d.ts +25 -0
- package/src/_esm/utils/algorithms/delaunay2voronoi.js +103 -0
- package/src/_esm/utils/algorithms/delaunay2voronoi.js.map +1 -0
- package/src/_esm/utils/algorithms/detectPaths.d.ts +21 -0
- package/src/_esm/utils/algorithms/detectPaths.js +169 -0
- package/src/_esm/utils/algorithms/detectPaths.js.map +1 -0
- package/src/_esm/utils/algorithms/findPolygonSelfIntersections.d.ts +21 -0
- package/src/_esm/utils/algorithms/findPolygonSelfIntersections.js +51 -0
- package/src/_esm/utils/algorithms/findPolygonSelfIntersections.js.map +1 -0
- package/src/_esm/utils/algorithms/getContrastColor.d.ts +13 -0
- package/src/_esm/utils/algorithms/getContrastColor.js +26 -0
- package/src/_esm/utils/algorithms/getContrastColor.js.map +1 -0
- package/src/_esm/utils/algorithms/matrixFill.d.ts +10 -0
- package/src/_esm/utils/algorithms/matrixFill.js +21 -0
- package/src/_esm/utils/algorithms/matrixFill.js.map +1 -0
- package/src/_esm/utils/algorithms/pixelCornersToRoundPaths.d.ts +23 -0
- package/src/_esm/utils/algorithms/pixelCornersToRoundPaths.js +270 -0
- package/src/_esm/utils/algorithms/pixelCornersToRoundPaths.js.map +1 -0
- package/src/_esm/utils/algorithms/splitPolygonToNonIntersecting.d.ts +28 -0
- package/src/_esm/utils/algorithms/splitPolygonToNonIntersecting.js +102 -0
- package/src/_esm/utils/algorithms/splitPolygonToNonIntersecting.js.map +1 -0
- package/src/_esm/utils/algorithms/sutherlandHodgman.d.ts +16 -0
- package/src/_esm/utils/algorithms/sutherlandHodgman.js +76 -0
- package/src/_esm/utils/algorithms/sutherlandHodgman.js.map +1 -0
- package/src/_esm/utils/cloneVertexArray.d.ts +13 -0
- package/src/_esm/utils/cloneVertexArray.js +23 -0
- package/src/_esm/utils/cloneVertexArray.js.map +1 -0
- package/src/_esm/utils/createRandomizedPolygon.d.ts +14 -0
- package/src/_esm/utils/createRandomizedPolygon.js +32 -0
- package/src/_esm/utils/createRandomizedPolygon.js.map +1 -0
- package/src/_esm/utils/datastructures/CircularIntervalSet.d.ts +83 -0
- package/src/_esm/utils/datastructures/CircularIntervalSet.js +162 -0
- package/src/_esm/utils/datastructures/CircularIntervalSet.js.map +1 -0
- package/src/_esm/utils/datastructures/Color.d.ts +391 -0
- package/src/_esm/utils/datastructures/Color.js +1067 -0
- package/src/_esm/utils/datastructures/Color.js.map +1 -0
- package/src/_esm/utils/datastructures/ColorGradient.d.ts +81 -0
- package/src/_esm/utils/datastructures/ColorGradient.js +175 -0
- package/src/_esm/utils/datastructures/ColorGradient.js.map +1 -0
- package/src/_esm/utils/datastructures/DataGrid2d.d.ts +53 -0
- package/src/_esm/utils/datastructures/DataGrid2d.js +20 -0
- package/src/_esm/utils/datastructures/DataGrid2d.js.map +1 -0
- package/src/_esm/utils/datastructures/DataGrid2dArrayMatrix.d.ts +88 -0
- package/src/_esm/utils/datastructures/DataGrid2dArrayMatrix.js +154 -0
- package/src/_esm/utils/datastructures/DataGrid2dArrayMatrix.js.map +1 -0
- package/src/_esm/utils/datastructures/DataGrid2dListAdapter.d.ts +59 -0
- package/src/_esm/utils/datastructures/DataGrid2dListAdapter.js +83 -0
- package/src/_esm/utils/datastructures/DataGrid2dListAdapter.js.map +1 -0
- package/src/_esm/utils/datastructures/GenericPath.d.ts +86 -0
- package/src/_esm/utils/datastructures/GenericPath.js +121 -0
- package/src/_esm/utils/datastructures/GenericPath.js.map +1 -0
- package/src/_esm/utils/datastructures/GeometryMesh.d.ts +49 -0
- package/src/_esm/utils/datastructures/GeometryMesh.js +57 -0
- package/src/_esm/utils/datastructures/GeometryMesh.js.map +1 -0
- package/src/_esm/utils/datastructures/Girih.d.ts +181 -0
- package/src/_esm/utils/datastructures/Girih.js +265 -0
- package/src/_esm/utils/datastructures/Girih.js.map +1 -0
- package/src/_esm/utils/datastructures/GirihBowtie.d.ts +37 -0
- package/src/_esm/utils/datastructures/GirihBowtie.js +134 -0
- package/src/_esm/utils/datastructures/GirihBowtie.js.map +1 -0
- package/src/_esm/utils/datastructures/GirihDecagon.d.ts +52 -0
- package/src/_esm/utils/datastructures/GirihDecagon.js +114 -0
- package/src/_esm/utils/datastructures/GirihDecagon.js.map +1 -0
- package/src/_esm/utils/datastructures/GirihHexagon.d.ts +39 -0
- package/src/_esm/utils/datastructures/GirihHexagon.js +182 -0
- package/src/_esm/utils/datastructures/GirihHexagon.js.map +1 -0
- package/src/_esm/utils/datastructures/GirihPenroseRhombus.d.ts +46 -0
- package/src/_esm/utils/datastructures/GirihPenroseRhombus.js +171 -0
- package/src/_esm/utils/datastructures/GirihPenroseRhombus.js.map +1 -0
- package/src/_esm/utils/datastructures/GirihPentagon.d.ts +37 -0
- package/src/_esm/utils/datastructures/GirihPentagon.js +91 -0
- package/src/_esm/utils/datastructures/GirihPentagon.js.map +1 -0
- package/src/_esm/utils/datastructures/GirihRhombus.d.ts +38 -0
- package/src/_esm/utils/datastructures/GirihRhombus.js +137 -0
- package/src/_esm/utils/datastructures/GirihRhombus.js.map +1 -0
- package/src/_esm/utils/datastructures/GirihTile.d.ts +283 -0
- package/src/_esm/utils/datastructures/GirihTile.js +290 -0
- package/src/_esm/utils/datastructures/GirihTile.js.map +1 -0
- package/src/_esm/utils/datastructures/Matrix4x4.d.ts +244 -0
- package/src/_esm/utils/datastructures/Matrix4x4.js +250 -0
- package/src/_esm/utils/datastructures/Matrix4x4.js.map +1 -0
- package/src/_esm/utils/datastructures/VoronoiCell.d.ts +122 -0
- package/src/_esm/utils/datastructures/VoronoiCell.js +182 -0
- package/src/_esm/utils/datastructures/VoronoiCell.js.map +1 -0
- package/src/_esm/utils/datastructures/interfaces.d.ts +13 -0
- package/src/_esm/utils/datastructures/interfaces.js +10 -0
- package/src/_esm/utils/datastructures/interfaces.js.map +1 -0
- package/src/_esm/utils/detectDarkMode.d.ts +10 -0
- package/src/_esm/utils/detectDarkMode.js +41 -0
- package/src/_esm/utils/detectDarkMode.js.map +1 -0
- package/src/_esm/utils/dom/components/ColorGradientPicker.d.ts +246 -0
- package/src/_esm/utils/dom/components/ColorGradientPicker.js +780 -0
- package/src/_esm/utils/dom/components/ColorGradientPicker.js.map +1 -0
- package/src/_esm/utils/dom/components/ColorGradientPickerJSX.d.ts +129 -0
- package/src/_esm/utils/dom/components/ColorGradientPickerJSX.js +582 -0
- package/src/_esm/utils/dom/components/ColorGradientPickerJSX.js.map +1 -0
- package/src/_esm/utils/dom/components/ColorGradientSelector.d.ts +118 -0
- package/src/_esm/utils/dom/components/ColorGradientSelector.js +376 -0
- package/src/_esm/utils/dom/components/ColorGradientSelector.js.map +1 -0
- package/src/_esm/utils/dom/components/Test.d.ts +7 -0
- package/src/_esm/utils/dom/components/Test.js +63 -0
- package/src/_esm/utils/dom/components/Test.js.map +1 -0
- package/src/_esm/utils/dom/getAvailableContainerSpace.d.ts +2 -0
- package/src/_esm/utils/dom/getAvailableContainerSpace.js +29 -0
- package/src/_esm/utils/dom/getAvailableContainerSpace.js.map +1 -0
- package/src/_esm/utils/dom/getFProp.d.ts +5 -0
- package/src/_esm/utils/dom/getFProp.js +12 -0
- package/src/_esm/utils/dom/getFProp.js.map +1 -0
- package/src/_esm/utils/dom/guiSizeToggler.d.ts +18 -0
- package/src/_esm/utils/dom/guiSizeToggler.js +44 -0
- package/src/_esm/utils/dom/guiSizeToggler.js.map +1 -0
- package/src/_esm/utils/findInVertexArray.d.ts +19 -0
- package/src/_esm/utils/findInVertexArray.js +29 -0
- package/src/_esm/utils/findInVertexArray.js.map +1 -0
- package/src/_esm/utils/getFProp.d.ts +5 -0
- package/src/_esm/utils/getFProp.js +8 -0
- package/src/_esm/utils/getFProp.js.map +1 -0
- package/src/_esm/utils/gup.d.ts +14 -0
- package/src/_esm/utils/gup.js +31 -0
- package/src/_esm/utils/gup.js.map +1 -0
- package/src/_esm/utils/helpers/BezierPathInteractionHelper.d.ts +272 -0
- package/src/_esm/utils/helpers/BezierPathInteractionHelper.js +655 -0
- package/src/_esm/utils/helpers/BezierPathInteractionHelper.js.map +1 -0
- package/src/_esm/utils/helpers/CircleHelper.d.ts +73 -0
- package/src/_esm/utils/helpers/CircleHelper.js +92 -0
- package/src/_esm/utils/helpers/CircleHelper.js.map +1 -0
- package/src/_esm/utils/helpers/CircleSectorHelper.d.ts +90 -0
- package/src/_esm/utils/helpers/CircleSectorHelper.js +113 -0
- package/src/_esm/utils/helpers/CircleSectorHelper.js.map +1 -0
- package/src/_esm/utils/helpers/TriangleHelper.d.ts +57 -0
- package/src/_esm/utils/helpers/TriangleHelper.js +82 -0
- package/src/_esm/utils/helpers/TriangleHelper.js.map +1 -0
- package/src/_esm/utils/helpers/VEllipseHelper.d.ts +32 -0
- package/src/_esm/utils/helpers/VEllipseHelper.js +87 -0
- package/src/_esm/utils/helpers/VEllipseHelper.js.map +1 -0
- package/src/_esm/utils/helpers/VEllipseSectorHelper.d.ts +52 -0
- package/src/_esm/utils/helpers/VEllipseSectorHelper.js +134 -0
- package/src/_esm/utils/helpers/VEllipseSectorHelper.js.map +1 -0
- package/src/_esm/utils/io/DndFileHandler.d.ts +63 -0
- package/src/_esm/utils/io/DndFileHandler.js +106 -0
- package/src/_esm/utils/io/DndFileHandler.js.map +1 -0
- package/src/_esm/utils/io/FileDrop.d.ts +110 -0
- package/src/_esm/utils/io/FileDrop.js +175 -0
- package/src/_esm/utils/io/FileDrop.js.map +1 -0
- package/src/_esm/utils/parsers/LinearColorGradientParser.d.ts +78 -0
- package/src/_esm/utils/parsers/LinearColorGradientParser.js +223 -0
- package/src/_esm/utils/parsers/LinearColorGradientParser.js.map +1 -0
- package/src/_esm/utils/parsers/OBJParser.d.ts +25 -0
- package/src/_esm/utils/parsers/OBJParser.js +78 -0
- package/src/_esm/utils/parsers/OBJParser.js.map +1 -0
- package/src/_esm/utils/parsers/STLParser.d.ts +61 -0
- package/src/_esm/utils/parsers/STLParser.js +179 -0
- package/src/_esm/utils/parsers/STLParser.js.map +1 -0
- package/src/_esm/utils/parsers/svg/parseSVGPathData.d.ts +27 -0
- package/src/_esm/utils/parsers/svg/parseSVGPathData.js +486 -0
- package/src/_esm/utils/parsers/svg/parseSVGPathData.js.map +1 -0
- package/src/_esm/utils/parsers/svg/splitSVGPathData.d.ts +20 -0
- package/src/_esm/utils/parsers/svg/splitSVGPathData.js +53 -0
- package/src/_esm/utils/parsers/svg/splitSVGPathData.js.map +1 -0
- package/src/_esm/utils/parsers/svg/types.d.ts +63 -0
- package/src/_esm/utils/parsers/svg/types.js +17 -0
- package/src/_esm/utils/parsers/svg/types.js.map +1 -0
- package/src/cjs/PlotBoilerplate.d.ts +11 -1
- package/src/cjs/PlotBoilerplate.js +23 -7
- package/src/cjs/PlotBoilerplate.js.map +1 -1
- package/src/cjs/VertexListeners.d.ts +2 -1
- package/src/cjs/VertexListeners.js +5 -1
- package/src/cjs/VertexListeners.js.map +1 -1
- package/src/cjs/draw.d.ts +18 -2
- package/src/cjs/draw.js +21 -2
- package/src/cjs/draw.js.map +1 -1
- package/src/cjs/drawgl.d.ts +18 -3
- package/src/cjs/drawgl.js +19 -2
- package/src/cjs/drawgl.js.map +1 -1
- package/src/cjs/drawutilssvg.d.ts +19 -1
- package/src/cjs/drawutilssvg.js +28 -5
- package/src/cjs/drawutilssvg.js.map +1 -1
- package/src/cjs/index.d.ts +75 -0
- package/src/cjs/index.js +84 -0
- package/src/cjs/index.js.map +1 -1
- package/src/cjs/interfaces/DrawLib.d.ts +18 -1
- package/src/cjs/interfaces/DrawLib.js +2 -0
- package/src/cjs/interfaces/DrawLib.js.map +1 -1
- package/src/cjs/utils/Params.d.ts +3 -2
- package/src/cjs/utils/Params.js +11 -3
- package/src/cjs/utils/Params.js.map +1 -1
- package/src/cjs/utils/WebColors.d.ts +2 -1
- package/src/cjs/utils/WebColors.js +15 -2
- package/src/cjs/utils/WebColors.js.map +1 -1
- package/src/cjs/utils/WebColorsContrast.d.ts +1 -1
- package/src/cjs/utils/algorithms/HobbyPath.js +13 -16
- package/src/cjs/utils/algorithms/HobbyPath.js.map +1 -1
- package/src/cjs/utils/helpers/BezierResizeHelper.d.ts +144 -0
- package/src/cjs/utils/helpers/BezierResizeHelper.js +319 -0
- package/src/cjs/utils/helpers/BezierResizeHelper.js.map +1 -0
- package/src/esm/PlotBoilerplate.d.ts +11 -1
- package/src/esm/PlotBoilerplate.js +23 -7
- package/src/esm/PlotBoilerplate.js.map +1 -1
- package/src/esm/VertexListeners.d.ts +2 -1
- package/src/esm/VertexListeners.js +5 -1
- package/src/esm/VertexListeners.js.map +1 -1
- package/src/esm/draw.d.ts +18 -2
- package/src/esm/draw.js +21 -2
- package/src/esm/draw.js.map +1 -1
- package/src/esm/drawgl.d.ts +18 -3
- package/src/esm/drawgl.js +19 -2
- package/src/esm/drawgl.js.map +1 -1
- package/src/esm/drawutilssvg.d.ts +19 -1
- package/src/esm/drawutilssvg.js +28 -5
- package/src/esm/drawutilssvg.js.map +1 -1
- package/src/esm/index.d.ts +75 -0
- package/src/esm/index.js +84 -0
- package/src/esm/index.js.map +1 -1
- package/src/esm/interfaces/DrawLib.d.ts +18 -1
- package/src/esm/interfaces/DrawLib.js +2 -0
- package/src/esm/interfaces/DrawLib.js.map +1 -1
- package/src/esm/utils/Params.d.ts +3 -2
- package/src/esm/utils/Params.js +11 -3
- package/src/esm/utils/Params.js.map +1 -1
- package/src/esm/utils/WebColors.d.ts +2 -1
- package/src/esm/utils/WebColors.js +15 -2
- package/src/esm/utils/WebColors.js.map +1 -1
- package/src/esm/utils/WebColorsContrast.d.ts +1 -1
- package/src/esm/utils/algorithms/HobbyPath.js +13 -16
- package/src/esm/utils/algorithms/HobbyPath.js.map +1 -1
- package/src/esm/utils/helpers/BezierResizeHelper.d.ts +144 -0
- package/src/esm/utils/helpers/BezierResizeHelper.js +314 -0
- package/src/esm/utils/helpers/BezierResizeHelper.js.map +1 -0
- package/src/ts/PlotBoilerplate.ts +37 -11
- package/src/ts/VertexListeners.ts +5 -1
- package/src/ts/draw.ts +32 -2
- package/src/ts/drawgl.ts +38 -3
- package/src/ts/drawutilssvg.ts +33 -6
- package/src/ts/index.ts +94 -0
- package/src/ts/interfaces/DrawLib.ts +19 -1
- package/src/ts/utils/Params.ts +11 -3
- package/src/ts/utils/WebColors.ts +15 -2
- package/src/ts/utils/algorithms/HobbyPath.ts +248 -272
- package/src/ts/utils/helpers/BezierResizeHelper.ts +390 -0
- /package/src/{cjs → _cjs}/utils/_gup.js_ +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @date 2020-04-15
|
|
3
|
+
* @author Converted to a class by Ikaros Kappler
|
|
4
|
+
* @modified 2020-08-19 Ported this class from vanilla JS to TypeScript.
|
|
5
|
+
* @version 1.0.1
|
|
6
|
+
*
|
|
7
|
+
* @file CatmullRomPath
|
|
8
|
+
* @public
|
|
9
|
+
**/
|
|
10
|
+
import { CubicBezierCurve } from "../../CubicBezierCurve";
|
|
11
|
+
import { Vertex } from "../../Vertex";
|
|
12
|
+
/**
|
|
13
|
+
* @classdesc Compute the Catmull-Rom spline path from a sequence of points (vertices).
|
|
14
|
+
*
|
|
15
|
+
* For comparison to the HobbyCurve I wanted to add a Catmull-Rom path (to show that the
|
|
16
|
+
* HobbyCurve is smoother).
|
|
17
|
+
*
|
|
18
|
+
* This demo implementation was inspired by this Codepen by Blake Bowen
|
|
19
|
+
* https://codepen.io/osublake/pen/BowJed
|
|
20
|
+
*
|
|
21
|
+
* @requires CubicBezierCurve
|
|
22
|
+
* @requires Vertex
|
|
23
|
+
*/
|
|
24
|
+
export declare class CatmullRomPath {
|
|
25
|
+
/**
|
|
26
|
+
* @member {Array<Vertex>} vertices
|
|
27
|
+
* @memberof CatmullRomPath
|
|
28
|
+
* @type {Array<Vertex>}
|
|
29
|
+
* @instance
|
|
30
|
+
**/
|
|
31
|
+
private vertices;
|
|
32
|
+
/**
|
|
33
|
+
* @constructor
|
|
34
|
+
* @name CatmullRomPath
|
|
35
|
+
* @param {Array<Vertex>=} vertices? - An optional array of vertices to initialize the path with.
|
|
36
|
+
**/
|
|
37
|
+
constructor(vertices?: Array<Vertex>);
|
|
38
|
+
/**
|
|
39
|
+
* Add a new point to the end of the vertex sequence.
|
|
40
|
+
*
|
|
41
|
+
* @name addPoint
|
|
42
|
+
* @memberof CatmullRomPath
|
|
43
|
+
* @instance
|
|
44
|
+
* @param {Vertex} p - The vertex (point) to add.
|
|
45
|
+
**/
|
|
46
|
+
addPoint(p: Vertex): void;
|
|
47
|
+
/**
|
|
48
|
+
* Generate a sequence of cubic Bézier curves from the point set.
|
|
49
|
+
*
|
|
50
|
+
* @name generateCurve
|
|
51
|
+
* @memberof CatmullRomPath
|
|
52
|
+
* @instance
|
|
53
|
+
* @param {boolean=} circular - Specify if the path should be closed.
|
|
54
|
+
* @param {number=1} tension - (default=0) An optional tension parameter.
|
|
55
|
+
* @return Array<CubicBezierCurve>
|
|
56
|
+
**/
|
|
57
|
+
generateCurve(circular?: boolean, tension?: number): CubicBezierCurve[];
|
|
58
|
+
private solveOpen;
|
|
59
|
+
private solveClosed;
|
|
60
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @date 2020-04-15
|
|
4
|
+
* @author Converted to a class by Ikaros Kappler
|
|
5
|
+
* @modified 2020-08-19 Ported this class from vanilla JS to TypeScript.
|
|
6
|
+
* @version 1.0.1
|
|
7
|
+
*
|
|
8
|
+
* @file CatmullRomPath
|
|
9
|
+
* @public
|
|
10
|
+
**/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.CatmullRomPath = void 0;
|
|
13
|
+
const CubicBezierCurve_1 = require("../../CubicBezierCurve");
|
|
14
|
+
const Vertex_1 = require("../../Vertex");
|
|
15
|
+
/**
|
|
16
|
+
* @classdesc Compute the Catmull-Rom spline path from a sequence of points (vertices).
|
|
17
|
+
*
|
|
18
|
+
* For comparison to the HobbyCurve I wanted to add a Catmull-Rom path (to show that the
|
|
19
|
+
* HobbyCurve is smoother).
|
|
20
|
+
*
|
|
21
|
+
* This demo implementation was inspired by this Codepen by Blake Bowen
|
|
22
|
+
* https://codepen.io/osublake/pen/BowJed
|
|
23
|
+
*
|
|
24
|
+
* @requires CubicBezierCurve
|
|
25
|
+
* @requires Vertex
|
|
26
|
+
*/
|
|
27
|
+
class CatmullRomPath {
|
|
28
|
+
/**
|
|
29
|
+
* @constructor
|
|
30
|
+
* @name CatmullRomPath
|
|
31
|
+
* @param {Array<Vertex>=} vertices? - An optional array of vertices to initialize the path with.
|
|
32
|
+
**/
|
|
33
|
+
constructor(vertices) {
|
|
34
|
+
this.vertices = vertices ? vertices : [];
|
|
35
|
+
}
|
|
36
|
+
;
|
|
37
|
+
/**
|
|
38
|
+
* Add a new point to the end of the vertex sequence.
|
|
39
|
+
*
|
|
40
|
+
* @name addPoint
|
|
41
|
+
* @memberof CatmullRomPath
|
|
42
|
+
* @instance
|
|
43
|
+
* @param {Vertex} p - The vertex (point) to add.
|
|
44
|
+
**/
|
|
45
|
+
addPoint(p) {
|
|
46
|
+
this.vertices.push(p);
|
|
47
|
+
}
|
|
48
|
+
;
|
|
49
|
+
/**
|
|
50
|
+
* Generate a sequence of cubic Bézier curves from the point set.
|
|
51
|
+
*
|
|
52
|
+
* @name generateCurve
|
|
53
|
+
* @memberof CatmullRomPath
|
|
54
|
+
* @instance
|
|
55
|
+
* @param {boolean=} circular - Specify if the path should be closed.
|
|
56
|
+
* @param {number=1} tension - (default=0) An optional tension parameter.
|
|
57
|
+
* @return Array<CubicBezierCurve>
|
|
58
|
+
**/
|
|
59
|
+
generateCurve(circular, tension) {
|
|
60
|
+
if (typeof tension === 'undefined')
|
|
61
|
+
tension = 1.0;
|
|
62
|
+
if (circular)
|
|
63
|
+
return this.solveClosed(tension);
|
|
64
|
+
else
|
|
65
|
+
return this.solveOpen(tension);
|
|
66
|
+
}
|
|
67
|
+
;
|
|
68
|
+
solveOpen(k) {
|
|
69
|
+
var curves = [];
|
|
70
|
+
if (k == null || typeof k === 'undefined')
|
|
71
|
+
k = 1;
|
|
72
|
+
var size = this.vertices.length;
|
|
73
|
+
var last = size - 2;
|
|
74
|
+
for (var i = 0; i < size - 1; i++) {
|
|
75
|
+
var p0 = i ? this.vertices[i - 1] : this.vertices[0];
|
|
76
|
+
var p1 = this.vertices[i + 0];
|
|
77
|
+
var p2 = this.vertices[i + 1];
|
|
78
|
+
var p3 = i !== last ? this.vertices[i + 2] : p2;
|
|
79
|
+
var cp1 = new Vertex_1.Vertex(p1.x + (p2.x - p0.x) / 6 * k, p1.y + (p2.y - p0.y) / 6 * k);
|
|
80
|
+
var cp2 = new Vertex_1.Vertex(p2.x - (p3.x - p1.x) / 6 * k, p2.y - (p3.y - p1.y) / 6 * k);
|
|
81
|
+
curves.push(new CubicBezierCurve_1.CubicBezierCurve(p1, p2, cp1, cp2));
|
|
82
|
+
}
|
|
83
|
+
return curves;
|
|
84
|
+
}
|
|
85
|
+
; // END solveOpen
|
|
86
|
+
solveClosed(k) {
|
|
87
|
+
var curves = [];
|
|
88
|
+
if (k == null || typeof k === 'undefined')
|
|
89
|
+
k = 1;
|
|
90
|
+
var size = this.vertices.length;
|
|
91
|
+
var last = size - 1;
|
|
92
|
+
for (var i = 0; i < size; i++) {
|
|
93
|
+
var p0 = i ? this.vertices[i - 1] : this.vertices[last];
|
|
94
|
+
var p1 = this.vertices[i + 0];
|
|
95
|
+
var p2 = this.vertices[(i + 1) % size];
|
|
96
|
+
var p3 = this.vertices[(i + 2) % size];
|
|
97
|
+
var cp1 = new Vertex_1.Vertex(p1.x + (p2.x - p0.x) / 6 * k, p1.y + (p2.y - p0.y) / 6 * k);
|
|
98
|
+
var cp2 = new Vertex_1.Vertex(p2.x - (p3.x - p1.x) / 6 * k, p2.y - (p3.y - p1.y) / 6 * k);
|
|
99
|
+
curves.push(new CubicBezierCurve_1.CubicBezierCurve(p1, p2, cp1, cp2));
|
|
100
|
+
}
|
|
101
|
+
return curves;
|
|
102
|
+
}
|
|
103
|
+
; // END solveClosed
|
|
104
|
+
}
|
|
105
|
+
exports.CatmullRomPath = CatmullRomPath;
|
|
106
|
+
; // END class
|
|
107
|
+
//# sourceMappingURL=CatmullRomPath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CatmullRomPath.js","sourceRoot":"","sources":["../../../ts/utils/algorithms/CatmullRomPath.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author Ikaros Kappler
|
|
3
|
+
* @date 2020-10-05
|
|
4
|
+
* @modified 2021-02-08 Fixed a lot of es2015 compatibility issues.
|
|
5
|
+
* @modified 2024-02-23 Fixed some null-type conflicts.
|
|
6
|
+
* @version 1.0.2
|
|
7
|
+
* @file CircleIntersections
|
|
8
|
+
* @public
|
|
9
|
+
**/
|
|
10
|
+
import { Circle } from "../../Circle";
|
|
11
|
+
import { CircleSector } from "../../CircleSector";
|
|
12
|
+
import { Line } from "../../Line";
|
|
13
|
+
import { CircularIntervalSet } from "../datastructures/CircularIntervalSet";
|
|
14
|
+
import { IndexPair, Matrix } from "../datastructures/interfaces";
|
|
15
|
+
/**
|
|
16
|
+
* @classdesc A script for finding the intersection points of two or
|
|
17
|
+
* multiple circles (the 'radical lines').
|
|
18
|
+
*
|
|
19
|
+
* Based on the C++ implementation by Robert King
|
|
20
|
+
* https://stackoverflow.com/questions/3349125/circle-circle-intersection-points
|
|
21
|
+
* and the 'Circles and spheres' article by Paul Bourke.
|
|
22
|
+
* http://paulbourke.net/geometry/circlesphere/
|
|
23
|
+
*
|
|
24
|
+
* @requires arrayFill
|
|
25
|
+
* @requires matrixFill
|
|
26
|
+
* @requires Circle
|
|
27
|
+
* @requires IndexPair
|
|
28
|
+
* @requires Matrix
|
|
29
|
+
* @requires Interval
|
|
30
|
+
* @requires Line
|
|
31
|
+
* @requires CirularIntervalSet
|
|
32
|
+
*/
|
|
33
|
+
export declare class CircleIntersections {
|
|
34
|
+
/**
|
|
35
|
+
* Find all connected outer path partitions.
|
|
36
|
+
*
|
|
37
|
+
* @method findOuterPartitions
|
|
38
|
+
* @static
|
|
39
|
+
* @memberof CircleIntersections
|
|
40
|
+
* @param {Array<Circle>} circles - The circles to find intersections for.
|
|
41
|
+
* @param {Array<CircularIntervalSet>} intervalSets - The determined interval sets (see `findOuterCircleIntervals`).
|
|
42
|
+
* @return {Array<Array<IndexPair>>} An array of paths, each defined by a sequence of IndexPairs adressing circle i and interval j.
|
|
43
|
+
**/
|
|
44
|
+
static findOuterPartitions(circles: Array<Circle>, intervalSets: Array<CircularIntervalSet>): Array<Array<IndexPair>>;
|
|
45
|
+
/**
|
|
46
|
+
* Find all connected outer path partitions (as CircleSectors).
|
|
47
|
+
*
|
|
48
|
+
* @method findOuterPartitionsAsSectors
|
|
49
|
+
* @static
|
|
50
|
+
* @memberof CircleIntersections
|
|
51
|
+
* @param {Array<Circle>} circles - The circles to find intersections for.
|
|
52
|
+
* @param {Array<CircularIntervalSet>} intervalSets - The determined interval sets (see `findOuterCircleIntervals`).
|
|
53
|
+
* @return {Array<Array<CircleSector>>} An array of paths, each defined by a sequence of SircleSectors.
|
|
54
|
+
**/
|
|
55
|
+
static findOuterPartitionsAsSectors(circles: Array<Circle>, intervalSets: Array<CircularIntervalSet>): Array<Array<CircleSector>>;
|
|
56
|
+
/**
|
|
57
|
+
* Build the n*n intersection matrix: contains the radical line at (i,j) if circle i and circle j do intersect;
|
|
58
|
+
* conatins null at (i,j) otherwise.
|
|
59
|
+
*
|
|
60
|
+
* Note that this matrix is symmetrical: if circles (i,j) intersect with line (A,B), then also circles (j,i) intersect
|
|
61
|
+
* with line (B,A).
|
|
62
|
+
*
|
|
63
|
+
* The returned two-dimensional matrix (array) has exactly as many entries as the passed circle array.
|
|
64
|
+
*
|
|
65
|
+
* @method buildRadicalLineMatrix
|
|
66
|
+
* @static
|
|
67
|
+
* @memberof CircleIntersections
|
|
68
|
+
* @param {Array<Circle>} circles - The circles to find intersections for.
|
|
69
|
+
* @return {Array<Array<Line>>} A 2d-matrix containing the radical lines where circles intersect.
|
|
70
|
+
**/
|
|
71
|
+
static buildRadicalLineMatrix(circles: Array<Circle>): Matrix<Line | null>;
|
|
72
|
+
/**
|
|
73
|
+
* Find all circles (indices) which are completely located inside another circle.
|
|
74
|
+
*
|
|
75
|
+
* The returned array conatins the array indices.
|
|
76
|
+
*
|
|
77
|
+
* @method findInnerCircles
|
|
78
|
+
* @static
|
|
79
|
+
* @memberof CircleIntersections
|
|
80
|
+
* @param {Array<Circle>} circles - The circles to find intersections for.
|
|
81
|
+
* @return {Array<number>}
|
|
82
|
+
**/
|
|
83
|
+
static findInnerCircles(circles: Array<Circle>): Array<number>;
|
|
84
|
+
/**
|
|
85
|
+
* Calculate all outer circle intervals (sections that belong to the outermost line), dermined by the given
|
|
86
|
+
* circles and their radical lines.
|
|
87
|
+
*
|
|
88
|
+
* The returned array contains IntervalSets - one for each circle - indicating the remaining circle sections.
|
|
89
|
+
*
|
|
90
|
+
* @method findOuterCircleIntervals
|
|
91
|
+
* @static
|
|
92
|
+
* @memberof CircleIntersections
|
|
93
|
+
* @param {Array<Circle>} circles - The circles to find intersections for.
|
|
94
|
+
* @param {Array<Line>} intersectionMatrix
|
|
95
|
+
* @return {Array<number>}
|
|
96
|
+
**/
|
|
97
|
+
static findOuterCircleIntervals(circles: Array<Circle>, intersectionMatrix: Matrix<Line>): Array<CircularIntervalSet>;
|
|
98
|
+
/**
|
|
99
|
+
* Calculate the next connected partition from the given set of circles and outer path intervals. The function
|
|
100
|
+
* will pick a random unused circle interval and detect all adjacent intervals until a closed partition
|
|
101
|
+
* was found.
|
|
102
|
+
*
|
|
103
|
+
* If an interval (circle section) was already visited will be stored in the `usedIntervalSetRecords` matrix (thus
|
|
104
|
+
* is must be large enough to map all sections).
|
|
105
|
+
*
|
|
106
|
+
* The returned array contains IndexPairs (i,j) - one for each circle i - indicating the used circle section j.
|
|
107
|
+
*
|
|
108
|
+
* @method findOuterPartition
|
|
109
|
+
* @static
|
|
110
|
+
* @memberof CircleIntersections
|
|
111
|
+
* @param {Array<Circle>} circles - The circles to find intersections for.
|
|
112
|
+
* @param {Array<CircularIntervalSet>} intervalSets - The circle intervals that form the intersection outline.
|
|
113
|
+
* @param {Matrix<boolean>} usedIntervals - A matrix for remembering which circle intervals were always used.
|
|
114
|
+
* @return {Array<Indexpair>|null} The next partition or `null` if no more can be found.
|
|
115
|
+
**/
|
|
116
|
+
static findOuterPartition(circles: Array<Circle>, intervalSets: Array<CircularIntervalSet>, usedIntervals: Matrix<boolean>): Array<IndexPair> | null;
|
|
117
|
+
/**
|
|
118
|
+
* Convert a radical line (belonging to a circle) into an interval: start angle and end angle.
|
|
119
|
+
*
|
|
120
|
+
* @method radicalLineToInterval
|
|
121
|
+
* @static
|
|
122
|
+
* @private
|
|
123
|
+
* @memberof CircleIntersections
|
|
124
|
+
* @param {Circle} circle - The circle itself.
|
|
125
|
+
* @param {Line} radicaLine - The radical line to convert (must have two intersection points on the circle).
|
|
126
|
+
* @return {Interval} The interval `[startAngle,endAngle]` determined by the radical line.
|
|
127
|
+
**/
|
|
128
|
+
private static radicalLineToInterval;
|
|
129
|
+
/**
|
|
130
|
+
* This is a helper fuction used by `findOuterCircleIntervals`.
|
|
131
|
+
*
|
|
132
|
+
* It applies the passed radical line by intersecting the remaining circle sections with the new section.
|
|
133
|
+
*
|
|
134
|
+
* @method handleCircleInterval
|
|
135
|
+
* @static
|
|
136
|
+
* @private
|
|
137
|
+
* @memberof CircleIntersections
|
|
138
|
+
* @param {Circle} circle - The circles to find intersections for.
|
|
139
|
+
* @param {Line} radicalLine - The radical line to apply.
|
|
140
|
+
* @param {CircularIntervalSet} intervalSet - The CircularIntervalSet to use (must have left and right border: 0 and 2*PI).
|
|
141
|
+
* @return {void}
|
|
142
|
+
**/
|
|
143
|
+
private static handleCircleInterval;
|
|
144
|
+
/**
|
|
145
|
+
* Pick a random unused circle interval. This function is used by the `findOuterPartition` function, which
|
|
146
|
+
* starts the detection with any random section.
|
|
147
|
+
*
|
|
148
|
+
* @method randomUnusedInterval
|
|
149
|
+
* @static
|
|
150
|
+
* @private
|
|
151
|
+
* @memberof CircleIntersections
|
|
152
|
+
* @param {Array<CircularIntervalSet>} intervalSets - An array of all available interval sets/intervals.
|
|
153
|
+
* @param {Matrix<boolean>} usedIntervals - A matrix indicating which intervals have already been used/visited by the algorithm
|
|
154
|
+
* @return {IndexPair|null}
|
|
155
|
+
**/
|
|
156
|
+
private static randomUnusedInterval;
|
|
157
|
+
/**
|
|
158
|
+
* Find the next adjacent circle interval for the given interval.
|
|
159
|
+
* starts the detection with any random section.
|
|
160
|
+
*
|
|
161
|
+
* @method randomUnusedInterval
|
|
162
|
+
* @static
|
|
163
|
+
* @private
|
|
164
|
+
* @memberof CircleIntersections
|
|
165
|
+
* @param {Array<CircularIntervalSet>} intervalSets - An array of all available interval sets/intervals.
|
|
166
|
+
* @param {Matrix<boolean>} usedIntervals - A matrix indicating which intervals have already been used/visited by the algorithm
|
|
167
|
+
* @return {IndexPair|null}
|
|
168
|
+
**/
|
|
169
|
+
private static findAdjacentInterval;
|
|
170
|
+
}
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @author Ikaros Kappler
|
|
4
|
+
* @date 2020-10-05
|
|
5
|
+
* @modified 2021-02-08 Fixed a lot of es2015 compatibility issues.
|
|
6
|
+
* @modified 2024-02-23 Fixed some null-type conflicts.
|
|
7
|
+
* @version 1.0.2
|
|
8
|
+
* @file CircleIntersections
|
|
9
|
+
* @public
|
|
10
|
+
**/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.CircleIntersections = void 0;
|
|
13
|
+
const arrayFill_1 = require("./arrayFill");
|
|
14
|
+
const matrixFill_1 = require("./matrixFill");
|
|
15
|
+
const CircleSector_1 = require("../../CircleSector");
|
|
16
|
+
const Line_1 = require("../../Line");
|
|
17
|
+
const CircularIntervalSet_1 = require("../datastructures/CircularIntervalSet");
|
|
18
|
+
/**
|
|
19
|
+
* @classdesc A script for finding the intersection points of two or
|
|
20
|
+
* multiple circles (the 'radical lines').
|
|
21
|
+
*
|
|
22
|
+
* Based on the C++ implementation by Robert King
|
|
23
|
+
* https://stackoverflow.com/questions/3349125/circle-circle-intersection-points
|
|
24
|
+
* and the 'Circles and spheres' article by Paul Bourke.
|
|
25
|
+
* http://paulbourke.net/geometry/circlesphere/
|
|
26
|
+
*
|
|
27
|
+
* @requires arrayFill
|
|
28
|
+
* @requires matrixFill
|
|
29
|
+
* @requires Circle
|
|
30
|
+
* @requires IndexPair
|
|
31
|
+
* @requires Matrix
|
|
32
|
+
* @requires Interval
|
|
33
|
+
* @requires Line
|
|
34
|
+
* @requires CirularIntervalSet
|
|
35
|
+
*/
|
|
36
|
+
class CircleIntersections {
|
|
37
|
+
/**
|
|
38
|
+
* Find all connected outer path partitions.
|
|
39
|
+
*
|
|
40
|
+
* @method findOuterPartitions
|
|
41
|
+
* @static
|
|
42
|
+
* @memberof CircleIntersections
|
|
43
|
+
* @param {Array<Circle>} circles - The circles to find intersections for.
|
|
44
|
+
* @param {Array<CircularIntervalSet>} intervalSets - The determined interval sets (see `findOuterCircleIntervals`).
|
|
45
|
+
* @return {Array<Array<IndexPair>>} An array of paths, each defined by a sequence of IndexPairs adressing circle i and interval j.
|
|
46
|
+
**/
|
|
47
|
+
static findOuterPartitions(circles, intervalSets) {
|
|
48
|
+
// For tracking which interval we already used for detecting the partition
|
|
49
|
+
// we need a matrix; find the maximal interval length.
|
|
50
|
+
let maxSetLength = 0;
|
|
51
|
+
for (var i = 0; i < intervalSets.length; i++) {
|
|
52
|
+
maxSetLength = Math.max(maxSetLength, intervalSets[i].intervals.length);
|
|
53
|
+
}
|
|
54
|
+
const usedIntervals = (0, matrixFill_1.matrixFill)(intervalSets.length, maxSetLength, false);
|
|
55
|
+
var path = null;
|
|
56
|
+
var pathList = [];
|
|
57
|
+
while ((path = CircleIntersections.findOuterPartition(circles, intervalSets, usedIntervals)) != null) {
|
|
58
|
+
pathList.push(path);
|
|
59
|
+
}
|
|
60
|
+
return pathList;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Find all connected outer path partitions (as CircleSectors).
|
|
64
|
+
*
|
|
65
|
+
* @method findOuterPartitionsAsSectors
|
|
66
|
+
* @static
|
|
67
|
+
* @memberof CircleIntersections
|
|
68
|
+
* @param {Array<Circle>} circles - The circles to find intersections for.
|
|
69
|
+
* @param {Array<CircularIntervalSet>} intervalSets - The determined interval sets (see `findOuterCircleIntervals`).
|
|
70
|
+
* @return {Array<Array<CircleSector>>} An array of paths, each defined by a sequence of SircleSectors.
|
|
71
|
+
**/
|
|
72
|
+
static findOuterPartitionsAsSectors(circles, intervalSets) {
|
|
73
|
+
const partitions = CircleIntersections.findOuterPartitions(circles, intervalSets);
|
|
74
|
+
const partitionsAsArcs = [];
|
|
75
|
+
for (var p = 0; p < partitions.length; p++) {
|
|
76
|
+
const path = partitions[p];
|
|
77
|
+
const pathAsArcs = [];
|
|
78
|
+
for (var i = 0; i < path.length; i++) {
|
|
79
|
+
const circleIndex = path[i].i;
|
|
80
|
+
const circle = circles[circleIndex];
|
|
81
|
+
var interval = intervalSets[path[i].i].intervals[path[i].j];
|
|
82
|
+
// Params: circle, startAngle, endAngle
|
|
83
|
+
pathAsArcs.push(new CircleSector_1.CircleSector(circle, interval[0], interval[1]));
|
|
84
|
+
} // END for
|
|
85
|
+
partitionsAsArcs.push(pathAsArcs);
|
|
86
|
+
} // END for
|
|
87
|
+
return partitionsAsArcs;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Build the n*n intersection matrix: contains the radical line at (i,j) if circle i and circle j do intersect;
|
|
91
|
+
* conatins null at (i,j) otherwise.
|
|
92
|
+
*
|
|
93
|
+
* Note that this matrix is symmetrical: if circles (i,j) intersect with line (A,B), then also circles (j,i) intersect
|
|
94
|
+
* with line (B,A).
|
|
95
|
+
*
|
|
96
|
+
* The returned two-dimensional matrix (array) has exactly as many entries as the passed circle array.
|
|
97
|
+
*
|
|
98
|
+
* @method buildRadicalLineMatrix
|
|
99
|
+
* @static
|
|
100
|
+
* @memberof CircleIntersections
|
|
101
|
+
* @param {Array<Circle>} circles - The circles to find intersections for.
|
|
102
|
+
* @return {Array<Array<Line>>} A 2d-matrix containing the radical lines where circles intersect.
|
|
103
|
+
**/
|
|
104
|
+
static buildRadicalLineMatrix(circles) {
|
|
105
|
+
var radicalLines = [];
|
|
106
|
+
for (var i = 0; i < circles.length; i++) {
|
|
107
|
+
if (!radicalLines[i]) {
|
|
108
|
+
radicalLines[i] = (0, arrayFill_1.arrayFill)(circles.length, null);
|
|
109
|
+
}
|
|
110
|
+
for (var j = 0; j < circles.length; j++) {
|
|
111
|
+
if (i == j)
|
|
112
|
+
continue;
|
|
113
|
+
if (radicalLines[i][j])
|
|
114
|
+
continue;
|
|
115
|
+
radicalLines[i][j] = circles[i].circleIntersection(circles[j]);
|
|
116
|
+
// Build symmetrical matrix
|
|
117
|
+
var tmpRadLine = radicalLines[i][j];
|
|
118
|
+
if (tmpRadLine) {
|
|
119
|
+
if (!radicalLines[j]) {
|
|
120
|
+
radicalLines[j] = (0, arrayFill_1.arrayFill)(circles.length, null);
|
|
121
|
+
}
|
|
122
|
+
// Use reverse line
|
|
123
|
+
radicalLines[j][i] = new Line_1.Line(tmpRadLine.b, tmpRadLine.a);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return radicalLines;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Find all circles (indices) which are completely located inside another circle.
|
|
131
|
+
*
|
|
132
|
+
* The returned array conatins the array indices.
|
|
133
|
+
*
|
|
134
|
+
* @method findInnerCircles
|
|
135
|
+
* @static
|
|
136
|
+
* @memberof CircleIntersections
|
|
137
|
+
* @param {Array<Circle>} circles - The circles to find intersections for.
|
|
138
|
+
* @return {Array<number>}
|
|
139
|
+
**/
|
|
140
|
+
static findInnerCircles(circles) {
|
|
141
|
+
const innerCircleIndices = [];
|
|
142
|
+
for (var i = 0; i < circles.length; i++) {
|
|
143
|
+
for (var j = 0; j < circles.length; j++) {
|
|
144
|
+
if (i == j)
|
|
145
|
+
continue;
|
|
146
|
+
if (circles[j].containsCircle(circles[i])) {
|
|
147
|
+
innerCircleIndices.push(i);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return innerCircleIndices;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Calculate all outer circle intervals (sections that belong to the outermost line), dermined by the given
|
|
155
|
+
* circles and their radical lines.
|
|
156
|
+
*
|
|
157
|
+
* The returned array contains IntervalSets - one for each circle - indicating the remaining circle sections.
|
|
158
|
+
*
|
|
159
|
+
* @method findOuterCircleIntervals
|
|
160
|
+
* @static
|
|
161
|
+
* @memberof CircleIntersections
|
|
162
|
+
* @param {Array<Circle>} circles - The circles to find intersections for.
|
|
163
|
+
* @param {Array<Line>} intersectionMatrix
|
|
164
|
+
* @return {Array<number>}
|
|
165
|
+
**/
|
|
166
|
+
static findOuterCircleIntervals(circles, intersectionMatrix) {
|
|
167
|
+
const intervalSets = [];
|
|
168
|
+
for (var i = 0; i < circles.length; i++) {
|
|
169
|
+
intervalSets[i] = new CircularIntervalSet_1.CircularIntervalSet(0, 2 * Math.PI);
|
|
170
|
+
for (var j = 0; j < circles.length; j++) {
|
|
171
|
+
if (i == j)
|
|
172
|
+
continue;
|
|
173
|
+
if (intersectionMatrix[i][j] !== null) {
|
|
174
|
+
// const interval : Interval = CircleIntersections.radicalLineToInterval( circle, radicalLine );
|
|
175
|
+
CircleIntersections.handleCircleInterval(circles[i], intersectionMatrix[i][j], intervalSets[i]);
|
|
176
|
+
}
|
|
177
|
+
else if (circles[j].containsCircle(circles[i])) {
|
|
178
|
+
intervalSets[i].clear();
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return intervalSets;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Calculate the next connected partition from the given set of circles and outer path intervals. The function
|
|
186
|
+
* will pick a random unused circle interval and detect all adjacent intervals until a closed partition
|
|
187
|
+
* was found.
|
|
188
|
+
*
|
|
189
|
+
* If an interval (circle section) was already visited will be stored in the `usedIntervalSetRecords` matrix (thus
|
|
190
|
+
* is must be large enough to map all sections).
|
|
191
|
+
*
|
|
192
|
+
* The returned array contains IndexPairs (i,j) - one for each circle i - indicating the used circle section j.
|
|
193
|
+
*
|
|
194
|
+
* @method findOuterPartition
|
|
195
|
+
* @static
|
|
196
|
+
* @memberof CircleIntersections
|
|
197
|
+
* @param {Array<Circle>} circles - The circles to find intersections for.
|
|
198
|
+
* @param {Array<CircularIntervalSet>} intervalSets - The circle intervals that form the intersection outline.
|
|
199
|
+
* @param {Matrix<boolean>} usedIntervals - A matrix for remembering which circle intervals were always used.
|
|
200
|
+
* @return {Array<Indexpair>|null} The next partition or `null` if no more can be found.
|
|
201
|
+
**/
|
|
202
|
+
static findOuterPartition(circles, intervalSets, usedIntervals) {
|
|
203
|
+
let intLocation = CircleIntersections.randomUnusedInterval(intervalSets, usedIntervals);
|
|
204
|
+
const path = [];
|
|
205
|
+
while (intLocation != null) {
|
|
206
|
+
path.push(intLocation);
|
|
207
|
+
usedIntervals[intLocation.i][intLocation.j] = true;
|
|
208
|
+
intLocation = CircleIntersections.findAdjacentInterval(circles, intLocation, intervalSets, usedIntervals, 0.001);
|
|
209
|
+
}
|
|
210
|
+
return path.length == 0 ? null : path;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Convert a radical line (belonging to a circle) into an interval: start angle and end angle.
|
|
214
|
+
*
|
|
215
|
+
* @method radicalLineToInterval
|
|
216
|
+
* @static
|
|
217
|
+
* @private
|
|
218
|
+
* @memberof CircleIntersections
|
|
219
|
+
* @param {Circle} circle - The circle itself.
|
|
220
|
+
* @param {Line} radicaLine - The radical line to convert (must have two intersection points on the circle).
|
|
221
|
+
* @return {Interval} The interval `[startAngle,endAngle]` determined by the radical line.
|
|
222
|
+
**/
|
|
223
|
+
static radicalLineToInterval(circle, radicalLine) {
|
|
224
|
+
// Get angle sections in the circles
|
|
225
|
+
const lineA = new Line_1.Line(circle.center, radicalLine.a);
|
|
226
|
+
const lineB = new Line_1.Line(circle.center, radicalLine.b);
|
|
227
|
+
let angleA = lineA.angle();
|
|
228
|
+
let angleB = lineB.angle();
|
|
229
|
+
// Map angles to [0 ... 2*PI]
|
|
230
|
+
// (the angle() function might return negative angles in [-PI .. 0 .. PI])
|
|
231
|
+
if (angleA < 0)
|
|
232
|
+
angleA = Math.PI * 2 + angleA;
|
|
233
|
+
if (angleB < 0)
|
|
234
|
+
angleB = Math.PI * 2 + angleB;
|
|
235
|
+
return [angleA, angleB];
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* This is a helper fuction used by `findOuterCircleIntervals`.
|
|
239
|
+
*
|
|
240
|
+
* It applies the passed radical line by intersecting the remaining circle sections with the new section.
|
|
241
|
+
*
|
|
242
|
+
* @method handleCircleInterval
|
|
243
|
+
* @static
|
|
244
|
+
* @private
|
|
245
|
+
* @memberof CircleIntersections
|
|
246
|
+
* @param {Circle} circle - The circles to find intersections for.
|
|
247
|
+
* @param {Line} radicalLine - The radical line to apply.
|
|
248
|
+
* @param {CircularIntervalSet} intervalSet - The CircularIntervalSet to use (must have left and right border: 0 and 2*PI).
|
|
249
|
+
* @return {void}
|
|
250
|
+
**/
|
|
251
|
+
static handleCircleInterval(circle, radicalLine, intervalSet) {
|
|
252
|
+
const interval = CircleIntersections.radicalLineToInterval(circle, radicalLine);
|
|
253
|
+
intervalSet.intersect(interval[1], interval[0]);
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Pick a random unused circle interval. This function is used by the `findOuterPartition` function, which
|
|
257
|
+
* starts the detection with any random section.
|
|
258
|
+
*
|
|
259
|
+
* @method randomUnusedInterval
|
|
260
|
+
* @static
|
|
261
|
+
* @private
|
|
262
|
+
* @memberof CircleIntersections
|
|
263
|
+
* @param {Array<CircularIntervalSet>} intervalSets - An array of all available interval sets/intervals.
|
|
264
|
+
* @param {Matrix<boolean>} usedIntervals - A matrix indicating which intervals have already been used/visited by the algorithm
|
|
265
|
+
* @return {IndexPair|null}
|
|
266
|
+
**/
|
|
267
|
+
static randomUnusedInterval(intervalSets, usedIntervals) {
|
|
268
|
+
for (var i = 0; i < intervalSets.length; i++) {
|
|
269
|
+
for (var j = 0; j < intervalSets[i].intervals.length; j++) {
|
|
270
|
+
if (!usedIntervals[i][j]) {
|
|
271
|
+
return { i: i, j: j };
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
return null;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Find the next adjacent circle interval for the given interval.
|
|
279
|
+
* starts the detection with any random section.
|
|
280
|
+
*
|
|
281
|
+
* @method randomUnusedInterval
|
|
282
|
+
* @static
|
|
283
|
+
* @private
|
|
284
|
+
* @memberof CircleIntersections
|
|
285
|
+
* @param {Array<CircularIntervalSet>} intervalSets - An array of all available interval sets/intervals.
|
|
286
|
+
* @param {Matrix<boolean>} usedIntervals - A matrix indicating which intervals have already been used/visited by the algorithm
|
|
287
|
+
* @return {IndexPair|null}
|
|
288
|
+
**/
|
|
289
|
+
static findAdjacentInterval(circles, intLocation, intervalSets, usedIntervalSetRecords, epsilon) {
|
|
290
|
+
var curInterval = intervalSets[intLocation.i].intervals[intLocation.j];
|
|
291
|
+
var curEndPoint = circles[intLocation.i].vertAt(curInterval[1]);
|
|
292
|
+
for (var i = 0; i < intervalSets.length; i++) {
|
|
293
|
+
for (var j = 0; j < intervalSets[i].intervals.length; j++) {
|
|
294
|
+
if (usedIntervalSetRecords[i][j]) {
|
|
295
|
+
continue;
|
|
296
|
+
}
|
|
297
|
+
var interval = intervalSets[i].intervals[j];
|
|
298
|
+
var startPoint = circles[i].vertAt(interval[0]);
|
|
299
|
+
if (curEndPoint.distance(startPoint) < epsilon)
|
|
300
|
+
return { i: i, j: j };
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return null;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
exports.CircleIntersections = CircleIntersections;
|
|
307
|
+
//# sourceMappingURL=CircleIntersections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CircleIntersections.js","sourceRoot":"","sources":["../../../ts/utils/algorithms/CircleIntersections.ts"],"names":[],"mappings":";AAAA;;;;;;;;IAQI;;;AAEJ,2CAAwC;AACxC,6CAA0C;AAE1C,qDAAkD;AAClD,qCAAkC;AAClC,+EAA4E;AAG5E;;;;;;;;;;;;;;;;;GAiBG;AACH;IACE;;;;;;;;;QASI;IACJ,MAAM,CAAC,mBAAmB,CAAC,OAAsB,EAAE,YAAwC;QACzF,0EAA0E;QAC1E,sDAAsD;QACtD,IAAI,YAAY,GAAW,CAAC,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,aAAa,GAAoB,IAAA,uBAAU,EAAU,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QAErG,IAAI,IAAI,GAA4B,IAAI,CAAC;QACzC,IAAI,QAAQ,GAA4B,EAAE,CAAC;QAC3C,OAAO,CAAC,IAAI,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;YACrG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;QASI;IACJ,MAAM,CAAC,4BAA4B,CACjC,OAAsB,EACtB,YAAwC;QAExC,MAAM,UAAU,GAA4B,mBAAmB,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAE3G,MAAM,gBAAgB,GAA+B,EAAE,CAAC;QACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAqB,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,UAAU,GAAwB,EAAE,CAAC;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,WAAW,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtC,MAAM,MAAM,GAAW,OAAO,CAAC,WAAW,CAAC,CAAC;gBAC5C,IAAI,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5D,uCAAuC;gBACvC,UAAU,CAAC,IAAI,CAAC,IAAI,2BAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,CAAC,CAAC,UAAU;YACZ,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC,CAAC,UAAU;QACZ,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED;;;;;;;;;;;;;;QAcI;IACJ,MAAM,CAAC,sBAAsB,CAAC,OAAsB;QAClD,IAAI,YAAY,GAA8B,EAAE,CAAC;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrB,YAAY,CAAC,CAAC,CAAC,GAAG,IAAA,qBAAS,EAAc,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACjE,CAAC;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC;oBAAE,SAAS;gBACrB,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAAE,SAAS;gBACjC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,2BAA2B;gBAC3B,IAAI,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,UAAU,EAAE,CAAC;oBACf,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrB,YAAY,CAAC,CAAC,CAAC,GAAG,IAAA,qBAAS,EAAc,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBACjE,CAAC;oBACD,mBAAmB;oBACnB,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,WAAI,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;;;;;;;QAUI;IACJ,MAAM,CAAC,gBAAgB,CAAC,OAAsB;QAC5C,MAAM,kBAAkB,GAAkB,EAAE,CAAC;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC;oBAAE,SAAS;gBACrB,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1C,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;;;QAYI;IACJ,MAAM,CAAC,wBAAwB,CAAC,OAAsB,EAAE,kBAAgC;QACtF,MAAM,YAAY,GAA+B,EAAE,CAAC;QACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,yCAAmB,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC;oBAAE,SAAS;gBACrB,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oBACtC,gGAAgG;oBAChG,mBAAmB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClG,CAAC;qBAAM,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjD,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;;;;;;;;;;;;;;QAiBI;IACJ,MAAM,CAAC,kBAAkB,CACvB,OAAsB,EACtB,YAAwC,EACxC,aAA8B;QAE9B,IAAI,WAAW,GAAqB,mBAAmB,CAAC,oBAAoB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAC1G,MAAM,IAAI,GAAqB,EAAE,CAAC;QAClC,OAAO,WAAW,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvB,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACnD,WAAW,GAAG,mBAAmB,CAAC,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QACnH,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC;IAED;;;;;;;;;;QAUI;IACI,MAAM,CAAC,qBAAqB,CAAC,MAAc,EAAE,WAAiB;QACpE,oCAAoC;QACpC,MAAM,KAAK,GAAS,IAAI,WAAI,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAS,IAAI,WAAI,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;QAE3D,IAAI,MAAM,GAAW,KAAK,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,MAAM,GAAW,KAAK,CAAC,KAAK,EAAE,CAAC;QAEnC,6BAA6B;QAC7B,0EAA0E;QAC1E,IAAI,MAAM,GAAG,CAAC;YAAE,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;QAC9C,IAAI,MAAM,GAAG,CAAC;YAAE,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;QAE9C,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;;;;;;;;;QAaI;IACI,MAAM,CAAC,oBAAoB,CAAC,MAAc,EAAE,WAAiB,EAAE,WAAgC;QACrG,MAAM,QAAQ,GAAa,mBAAmB,CAAC,qBAAqB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC1F,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;;;;QAWI;IACI,MAAM,CAAC,oBAAoB,CACjC,YAAwC,EACxC,aAA8B;QAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1D,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;QAWI;IACI,MAAM,CAAC,oBAAoB,CACjC,OAAsB,EACtB,WAAsB,EACtB,YAAwC,EACxC,sBAAuC,EACvC,OAAe;QAEf,IAAI,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1D,IAAI,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjC,SAAS;gBACX,CAAC;gBACD,IAAI,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAI,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChD,IAAI,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,OAAO;oBAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YACxE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|