@openglobus/og 0.18.0 → 0.18.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (476) hide show
  1. package/README.md +8 -8
  2. package/lib/@openglobus/og.esm.js +2 -0
  3. package/lib/@openglobus/og.esm.js.map +1 -0
  4. package/lib/@openglobus/og.umd.js +2 -0
  5. package/lib/@openglobus/og.umd.js.map +1 -0
  6. package/lib/js/Clock.d.ts +106 -0
  7. package/{src/Clock.ts → lib/js/Clock.js} +31 -126
  8. package/lib/js/Deferred.d.ts +6 -0
  9. package/lib/js/Deferred.js +13 -0
  10. package/lib/js/Events.d.ts +90 -0
  11. package/{src/Events.ts → lib/js/Events.js} +29 -84
  12. package/lib/js/Extent.d.ts +145 -0
  13. package/{src/Extent.ts → lib/js/Extent.js} +74 -120
  14. package/lib/js/Globe.d.ts +132 -0
  15. package/{src/Globe.ts → lib/js/Globe.js} +61 -159
  16. package/lib/js/ImageCanvas.d.ts +128 -0
  17. package/{src/ImageCanvas.ts → lib/js/ImageCanvas.js} +24 -65
  18. package/lib/js/Lock.d.ts +15 -0
  19. package/{src/Lock.ts → lib/js/Lock.js} +7 -21
  20. package/lib/js/LonLat.d.ts +128 -0
  21. package/{src/LonLat.ts → lib/js/LonLat.js} +44 -75
  22. package/lib/js/Object3d.d.ts +49 -0
  23. package/{src/Object3d.ts → lib/js/Object3d.js} +64 -184
  24. package/lib/js/Popup.d.ts +46 -0
  25. package/{src/Popup.ts → lib/js/Popup.js} +42 -110
  26. package/lib/js/QueueArray.d.ts +16 -0
  27. package/{src/QueueArray.ts → lib/js/QueueArray.js} +12 -25
  28. package/lib/js/Rectangle.d.ts +76 -0
  29. package/{src/Rectangle.ts → lib/js/Rectangle.js} +12 -50
  30. package/lib/js/Stack.d.ts +20 -0
  31. package/{src/Stack.ts → lib/js/Stack.js} +13 -29
  32. package/lib/js/astro/astro.d.ts +39 -0
  33. package/{src/astro/astro.ts → lib/js/astro/astro.js} +2 -8
  34. package/lib/js/astro/earth.d.ts +8 -0
  35. package/{src/astro/earth.ts → lib/js/astro/earth.js} +3 -39
  36. package/lib/js/astro/jd.d.ts +234 -0
  37. package/{src/astro/jd.ts → lib/js/astro/jd.js} +55 -134
  38. package/lib/js/astro/orbit.d.ts +5 -0
  39. package/{src/astro/orbit.ts → lib/js/astro/orbit.js} +26 -39
  40. package/lib/js/astro/rotation.d.ts +2 -0
  41. package/{src/astro/rotation.ts → lib/js/astro/rotation.js} +2 -11
  42. package/lib/js/bv/Box.d.ts +32 -0
  43. package/{src/bv/Box.ts → lib/js/bv/Box.js} +7 -35
  44. package/lib/js/bv/Sphere.d.ts +37 -0
  45. package/{src/bv/Sphere.ts → lib/js/bv/Sphere.js} +6 -34
  46. package/{src/bv/index.ts → lib/js/bv/index.d.ts} +0 -1
  47. package/lib/js/bv/index.js +3 -0
  48. package/lib/js/camera/Camera.d.ts +314 -0
  49. package/{src/camera/Camera.ts → lib/js/camera/Camera.js} +77 -326
  50. package/lib/js/camera/Frustum.d.ts +139 -0
  51. package/{src/camera/Frustum.ts → lib/js/camera/Frustum.js} +66 -185
  52. package/lib/js/camera/PlanetCamera.d.ts +234 -0
  53. package/{src/camera/PlanetCamera.ts → lib/js/camera/PlanetCamera.js} +65 -338
  54. package/{src/camera/index.ts → lib/js/camera/index.d.ts} +0 -1
  55. package/lib/js/camera/index.js +3 -0
  56. package/lib/js/cons.d.ts +40 -0
  57. package/{src/cons.ts → lib/js/cons.js} +10 -22
  58. package/lib/js/control/Atmosphere.d.ts +16 -0
  59. package/{src/control/Atmosphere.ts → lib/js/control/Atmosphere.js} +33 -86
  60. package/lib/js/control/CompassButton.d.ts +16 -0
  61. package/{src/control/CompassButton.ts → lib/js/control/CompassButton.js} +18 -43
  62. package/lib/js/control/Control.d.ts +100 -0
  63. package/{src/control/Control.ts → lib/js/control/Control.js} +22 -89
  64. package/lib/js/control/DebugInfo.d.ts +25 -0
  65. package/{src/control/DebugInfo.ts → lib/js/control/DebugInfo.js} +38 -84
  66. package/lib/js/control/DrawingSwitcher.d.ts +13 -0
  67. package/{src/control/DrawingSwitcher.ts → lib/js/control/DrawingSwitcher.js} +13 -30
  68. package/lib/js/control/EarthCoordinates.d.ts +41 -0
  69. package/{src/control/EarthCoordinates.ts → lib/js/control/EarthCoordinates.js} +58 -119
  70. package/lib/js/control/EarthNavigation.d.ts +50 -0
  71. package/{src/control/EarthNavigation.ts → lib/js/control/EarthNavigation.js} +70 -161
  72. package/lib/js/control/GeoImageDragControl.d.ts +22 -0
  73. package/{src/control/GeoImageDragControl.ts → lib/js/control/GeoImageDragControl.js} +26 -49
  74. package/lib/js/control/KeyboardNavigation.d.ts +28 -0
  75. package/{src/control/KeyboardNavigation.ts → lib/js/control/KeyboardNavigation.js} +67 -92
  76. package/lib/js/control/LayerAnimation.d.ts +71 -0
  77. package/{src/control/LayerAnimation.ts → lib/js/control/LayerAnimation.js} +82 -162
  78. package/lib/js/control/LayerSwitcher.d.ts +21 -0
  79. package/{src/control/LayerSwitcher.ts → lib/js/control/LayerSwitcher.js} +16 -41
  80. package/lib/js/control/Lighting.d.ts +49 -0
  81. package/{src/control/Lighting.ts → lib/js/control/Lighting.js} +106 -219
  82. package/lib/js/control/MouseNavigation.d.ts +62 -0
  83. package/{src/control/MouseNavigation.ts → lib/js/control/MouseNavigation.js} +105 -211
  84. package/lib/js/control/MouseWheelZoomControl.d.ts +44 -0
  85. package/lib/js/control/MouseWheelZoomControl.js +181 -0
  86. package/lib/js/control/RulerSwitcher.d.ts +17 -0
  87. package/{src/control/RulerSwitcher.ts → lib/js/control/RulerSwitcher.js} +13 -28
  88. package/lib/js/control/ScaleControl.d.ts +24 -0
  89. package/lib/js/control/ScaleControl.js +91 -0
  90. package/lib/js/control/SegmentBoundVisualization.d.ts +12 -0
  91. package/lib/js/control/SegmentBoundVisualization.js +37 -0
  92. package/lib/js/control/ShowFps.d.ts +9 -0
  93. package/lib/js/control/ShowFps.js +20 -0
  94. package/lib/js/control/SimpleNavigation.d.ts +25 -0
  95. package/{src/control/SimpleNavigation.ts → lib/js/control/SimpleNavigation.js} +29 -51
  96. package/lib/js/control/SimpleSkyBackground.d.ts +15 -0
  97. package/{src/control/SimpleSkyBackground.ts → lib/js/control/SimpleSkyBackground.js} +21 -48
  98. package/lib/js/control/Sun.d.ts +33 -0
  99. package/{src/control/Sun.ts → lib/js/control/Sun.js} +34 -85
  100. package/lib/js/control/ToggleWireframe.d.ts +14 -0
  101. package/lib/js/control/ToggleWireframe.js +28 -0
  102. package/lib/js/control/TouchNavigation.d.ts +52 -0
  103. package/{src/control/TouchNavigation.ts → lib/js/control/TouchNavigation.js} +88 -193
  104. package/lib/js/control/ZoomControl.d.ts +27 -0
  105. package/{src/control/ZoomControl.ts → lib/js/control/ZoomControl.js} +25 -50
  106. package/lib/js/control/drawing/DrawingControl.d.ts +12 -0
  107. package/{src/control/drawing/DrawingControl.ts → lib/js/control/drawing/DrawingControl.js} +10 -20
  108. package/lib/js/control/drawing/LineStringDrawingScene.d.ts +15 -0
  109. package/{src/control/drawing/LineStringDrawingScene.ts → lib/js/control/drawing/LineStringDrawingScene.js} +28 -85
  110. package/lib/js/control/drawing/PolygonDrawingScene.d.ts +98 -0
  111. package/{src/control/drawing/PolygonDrawingScene.ts → lib/js/control/drawing/PolygonDrawingScene.js} +190 -388
  112. package/lib/js/control/elevationProfile/ElevationProfile.d.ts +61 -0
  113. package/{src/control/elevationProfile/ElevationProfile.ts → lib/js/control/elevationProfile/ElevationProfile.js} +56 -148
  114. package/lib/js/control/heightRuler/HeightRuler.d.ts +7 -0
  115. package/{src/control/heightRuler/HeightRuler.ts → lib/js/control/heightRuler/HeightRuler.js} +4 -9
  116. package/lib/js/control/heightRuler/HeightRulerScene.d.ts +35 -0
  117. package/{src/control/heightRuler/HeightRulerScene.ts → lib/js/control/heightRuler/HeightRulerScene.js} +47 -99
  118. package/lib/js/control/heightRuler/HeightRulerSwitcher.d.ts +6 -0
  119. package/{src/control/heightRuler/HeightRulerSwitcher.ts → lib/js/control/heightRuler/HeightRulerSwitcher.js} +2 -4
  120. package/{src/control/index.ts → lib/js/control/index.d.ts} +1 -18
  121. package/lib/js/control/index.js +28 -0
  122. package/lib/js/control/ruler/Ruler.d.ts +13 -0
  123. package/lib/js/control/ruler/Ruler.js +23 -0
  124. package/lib/js/control/ruler/RulerScene.d.ts +88 -0
  125. package/lib/js/control/ruler/RulerScene.js +324 -0
  126. package/lib/js/control/selection/Selection.d.ts +55 -0
  127. package/{src/control/selection/Selection.ts → lib/js/control/selection/Selection.js} +15 -34
  128. package/lib/js/control/selection/SelectionScene.d.ts +44 -0
  129. package/{src/control/selection/SelectionScene.ts → lib/js/control/selection/SelectionScene.js} +26 -113
  130. package/lib/js/control/timeline/TimelineControl.d.ts +18 -0
  131. package/{src/control/timeline/TimelineControl.ts → lib/js/control/timeline/TimelineControl.js} +13 -43
  132. package/lib/js/control/timeline/TimelineModel.d.ts +41 -0
  133. package/{src/control/timeline/TimelineModel.ts → lib/js/control/timeline/TimelineModel.js} +26 -74
  134. package/lib/js/control/timeline/TimelineView.d.ts +85 -0
  135. package/{src/control/timeline/TimelineView.ts → lib/js/control/timeline/TimelineView.js} +133 -281
  136. package/lib/js/control/timeline/timelineUtils.d.ts +12 -0
  137. package/lib/js/control/timeline/timelineUtils.js +112 -0
  138. package/lib/js/control/visibleExtent/Segment.d.ts +277 -0
  139. package/{src → lib/js}/control/visibleExtent/Segment.js +145 -698
  140. package/lib/js/control/visibleExtent/VisibleExtent.d.ts +5 -0
  141. package/{src → lib/js}/control/visibleExtent/VisibleExtent.js +1 -18
  142. package/lib/js/control/visibleExtent/drawnode.d.ts +7 -0
  143. package/{src/control/visibleExtent/drawnode.ts → lib/js/control/visibleExtent/drawnode.js} +1 -28
  144. package/lib/js/ellipsoid/Ellipsoid.d.ts +187 -0
  145. package/{src/ellipsoid/Ellipsoid.ts → lib/js/ellipsoid/Ellipsoid.js} +85 -267
  146. package/lib/js/ellipsoid/index.d.ts +3 -0
  147. package/lib/js/ellipsoid/index.js +3 -0
  148. package/lib/js/ellipsoid/wgs84.d.ts +6 -0
  149. package/{src/ellipsoid/wgs84.ts → lib/js/ellipsoid/wgs84.js} +1 -2
  150. package/lib/js/entity/BaseBillboard.d.ts +222 -0
  151. package/{src/entity/BaseBillboard.ts → lib/js/entity/BaseBillboard.js} +48 -165
  152. package/lib/js/entity/BaseBillboardHandler.d.ts +81 -0
  153. package/{src/entity/BaseBillboardHandler.ts → lib/js/entity/BaseBillboardHandler.js} +139 -365
  154. package/lib/js/entity/Billboard.d.ts +113 -0
  155. package/{src/entity/Billboard.ts → lib/js/entity/Billboard.js} +19 -83
  156. package/lib/js/entity/BillboardHandler.d.ts +15 -0
  157. package/{src/entity/BillboardHandler.ts → lib/js/entity/BillboardHandler.js} +27 -59
  158. package/lib/js/entity/Entity.d.ts +354 -0
  159. package/{src/entity/Entity.ts → lib/js/entity/Entity.js} +102 -374
  160. package/lib/js/entity/EntityCollection.d.ts +363 -0
  161. package/{src/entity/EntityCollection.ts → lib/js/entity/EntityCollection.js} +57 -359
  162. package/lib/js/entity/GeoObject.d.ts +138 -0
  163. package/{src/entity/GeoObject.ts → lib/js/entity/GeoObject.js} +41 -146
  164. package/lib/js/entity/GeoObjectHandler.d.ts +99 -0
  165. package/{src/entity/GeoObjectHandler.ts → lib/js/entity/GeoObjectHandler.js} +162 -423
  166. package/lib/js/entity/Geometry.d.ts +111 -0
  167. package/lib/js/entity/Geometry.js +283 -0
  168. package/lib/js/entity/GeometryHandler.d.ts +84 -0
  169. package/{src/entity/GeometryHandler.ts → lib/js/entity/GeometryHandler.js} +162 -657
  170. package/lib/js/entity/Label.d.ts +207 -0
  171. package/{src/entity/Label.ts → lib/js/entity/Label.js} +63 -165
  172. package/lib/js/entity/LabelHandler.d.ts +65 -0
  173. package/{src/entity/LabelHandler.ts → lib/js/entity/LabelHandler.js} +175 -408
  174. package/lib/js/entity/LabelWorker.d.ts +15 -0
  175. package/{src/entity/LabelWorker.ts → lib/js/entity/LabelWorker.js} +24 -45
  176. package/lib/js/entity/PointCloud.d.ts +179 -0
  177. package/{src/entity/PointCloud.ts → lib/js/entity/PointCloud.js} +65 -265
  178. package/lib/js/entity/PointCloudHandler.d.ts +42 -0
  179. package/{src/entity/PointCloudHandler.ts → lib/js/entity/PointCloudHandler.js} +19 -62
  180. package/lib/js/entity/Polyline.d.ts +337 -0
  181. package/{src/entity/Polyline.ts → lib/js/entity/Polyline.js} +289 -924
  182. package/lib/js/entity/PolylineHandler.d.ts +22 -0
  183. package/{src/entity/PolylineHandler.ts → lib/js/entity/PolylineHandler.js} +12 -37
  184. package/lib/js/entity/Ray.d.ts +133 -0
  185. package/{src/entity/Ray.ts → lib/js/entity/Ray.js} +26 -146
  186. package/lib/js/entity/RayHandler.d.ts +70 -0
  187. package/{src/entity/RayHandler.ts → lib/js/entity/RayHandler.js} +102 -342
  188. package/lib/js/entity/Strip.d.ts +127 -0
  189. package/{src/entity/Strip.ts → lib/js/entity/Strip.js} +102 -372
  190. package/lib/js/entity/StripHandler.d.ts +42 -0
  191. package/{src/entity/StripHandler.ts → lib/js/entity/StripHandler.js} +22 -74
  192. package/{src/entity/index.ts → lib/js/entity/index.d.ts} +1 -2
  193. package/lib/js/entity/index.js +11 -0
  194. package/lib/js/index.d.ts +33 -0
  195. package/lib/js/index.js +33 -0
  196. package/lib/js/input/KeyboardHandler.d.ts +33 -0
  197. package/{src/input/KeyboardHandler.ts → lib/js/input/KeyboardHandler.js} +45 -84
  198. package/lib/js/input/MouseHandler.d.ts +16 -0
  199. package/{src/input/MouseHandler.ts → lib/js/input/MouseHandler.js} +12 -36
  200. package/lib/js/input/TouchHandler.d.ts +11 -0
  201. package/{src/input/TouchHandler.ts → lib/js/input/TouchHandler.js} +11 -23
  202. package/lib/js/input/input.d.ts +3 -0
  203. package/{src/input/input.ts → lib/js/input/input.js} +1 -1
  204. package/lib/js/layer/BaseGeoImage.d.ts +145 -0
  205. package/{src/layer/BaseGeoImage.ts → lib/js/layer/BaseGeoImage.js} +70 -235
  206. package/lib/js/layer/CanvasTiles.d.ts +103 -0
  207. package/{src/layer/CanvasTiles.ts → lib/js/layer/CanvasTiles.js} +54 -146
  208. package/lib/js/layer/GeoImage.d.ts +61 -0
  209. package/{src/layer/GeoImage.ts → lib/js/layer/GeoImage.js} +24 -54
  210. package/lib/js/layer/GeoTexture2d.d.ts +17 -0
  211. package/lib/js/layer/GeoTexture2d.js +37 -0
  212. package/lib/js/layer/GeoVideo.d.ts +68 -0
  213. package/{src/layer/GeoVideo.ts → lib/js/layer/GeoVideo.js} +31 -61
  214. package/lib/js/layer/KML.d.ts +72 -0
  215. package/{src/layer/KML.ts → lib/js/layer/KML.js} +94 -138
  216. package/lib/js/layer/Layer.d.ts +401 -0
  217. package/{src/layer/Layer.ts → lib/js/layer/Layer.js} +92 -443
  218. package/lib/js/layer/Material.d.ts +34 -0
  219. package/{src/layer/Material.ts → lib/js/layer/Material.js} +9 -43
  220. package/lib/js/layer/Vector.d.ts +243 -0
  221. package/{src/layer/Vector.ts → lib/js/layer/Vector.js} +155 -426
  222. package/lib/js/layer/WMS.d.ts +75 -0
  223. package/{src/layer/WMS.ts → lib/js/layer/WMS.js} +18 -100
  224. package/lib/js/layer/XYZ.d.ts +149 -0
  225. package/{src/layer/XYZ.ts → lib/js/layer/XYZ.js} +71 -171
  226. package/lib/js/layer/index.d.ts +11 -0
  227. package/lib/js/layer/index.js +11 -0
  228. package/lib/js/light/LightSource.d.ts +174 -0
  229. package/{src/light/LightSource.ts → lib/js/light/LightSource.js} +22 -131
  230. package/lib/js/math/Line2.d.ts +11 -0
  231. package/{src/math/Line2.ts → lib/js/math/Line2.js} +5 -15
  232. package/lib/js/math/Line3.d.ts +28 -0
  233. package/lib/js/math/Line3.js +85 -0
  234. package/lib/js/math/Mat3.d.ts +77 -0
  235. package/{src/math/Mat3.ts → lib/js/math/Mat3.js} +22 -51
  236. package/lib/js/math/Mat4.d.ts +195 -0
  237. package/{src/math/Mat4.ts → lib/js/math/Mat4.js} +53 -219
  238. package/lib/js/math/Plane.d.ts +20 -0
  239. package/{src/math/Plane.ts → lib/js/math/Plane.js} +26 -40
  240. package/lib/js/math/Quat.d.ts +373 -0
  241. package/{src/math/Quat.ts → lib/js/math/Quat.js} +106 -319
  242. package/lib/js/math/Ray.d.ts +76 -0
  243. package/{src/math/Ray.ts → lib/js/math/Ray.js} +21 -66
  244. package/lib/js/math/Vec2.d.ts +310 -0
  245. package/{src/math/Vec2.ts → lib/js/math/Vec2.js} +55 -121
  246. package/lib/js/math/Vec3.d.ts +472 -0
  247. package/{src/math/Vec3.ts → lib/js/math/Vec3.js} +103 -236
  248. package/lib/js/math/Vec4.d.ts +163 -0
  249. package/{src/math/Vec4.ts → lib/js/math/Vec4.js} +23 -79
  250. package/lib/js/math/coder.d.ts +51 -0
  251. package/{src/math/coder.ts → lib/js/math/coder.js} +14 -20
  252. package/lib/js/math/index.d.ts +11 -0
  253. package/lib/js/math/index.js +11 -0
  254. package/lib/js/math.d.ts +266 -0
  255. package/{src/math.ts → lib/js/math.js} +37 -85
  256. package/lib/js/mercator.d.ts +92 -0
  257. package/{src/mercator.ts → lib/js/mercator.js} +13 -37
  258. package/lib/js/proj/EPSG3857.d.ts +9 -0
  259. package/{src/proj/EPSG3857.ts → lib/js/proj/EPSG3857.js} +0 -2
  260. package/lib/js/proj/EPSG4326.d.ts +9 -0
  261. package/{src/proj/EPSG4326.ts → lib/js/proj/EPSG4326.js} +0 -2
  262. package/lib/js/proj/Proj.d.ts +43 -0
  263. package/{src/proj/Proj.ts → lib/js/proj/Proj.js} +4 -29
  264. package/lib/js/quadTree/EPSG4326QuadTreeStrategy.d.ts +6 -0
  265. package/lib/js/quadTree/EPSG4326QuadTreeStrategy.js +17 -0
  266. package/lib/js/quadTree/EarthQuadTreeStrategy.d.ts +6 -0
  267. package/lib/js/quadTree/EarthQuadTreeStrategy.js +19 -0
  268. package/lib/js/quadTree/EntityCollectionNode.d.ts +54 -0
  269. package/{src/quadTree/EntityCollectionNode.ts → lib/js/quadTree/EntityCollectionNode.js} +83 -150
  270. package/lib/js/quadTree/MarsQuadTreeStrategy.d.ts +6 -0
  271. package/lib/js/quadTree/MarsQuadTreeStrategy.js +17 -0
  272. package/lib/js/quadTree/Node.d.ts +61 -0
  273. package/{src/quadTree/Node.ts → lib/js/quadTree/Node.js} +140 -357
  274. package/lib/js/quadTree/QuadTreeStrategy.d.ts +25 -0
  275. package/{src/quadTree/QuadTreeStrategy.ts → lib/js/quadTree/QuadTreeStrategy.js} +13 -44
  276. package/lib/js/quadTree/Wgs84QuadTreeStrategy.d.ts +6 -0
  277. package/lib/js/quadTree/Wgs84QuadTreeStrategy.js +15 -0
  278. package/lib/js/quadTree/index.d.ts +12 -0
  279. package/lib/js/quadTree/index.js +12 -0
  280. package/lib/js/quadTree/quadTree.d.ts +40 -0
  281. package/{src/quadTree/quadTree.ts → lib/js/quadTree/quadTree.js} +0 -9
  282. package/lib/js/renderer/Renderer.d.ts +320 -0
  283. package/{src/renderer/Renderer.ts → lib/js/renderer/Renderer.js} +265 -622
  284. package/lib/js/renderer/RendererEvents.d.ts +239 -0
  285. package/{src/renderer/RendererEvents.ts → lib/js/renderer/RendererEvents.js} +158 -472
  286. package/lib/js/scene/Axes.d.ts +12 -0
  287. package/lib/js/scene/Axes.js +59 -0
  288. package/lib/js/scene/BaseNode.d.ts +61 -0
  289. package/{src/scene/BaseNode.ts → lib/js/scene/BaseNode.js} +11 -57
  290. package/lib/js/scene/Planet.d.ts +623 -0
  291. package/{src/scene/Planet.ts → lib/js/scene/Planet.js} +257 -937
  292. package/lib/js/scene/RenderNode.d.ts +150 -0
  293. package/{src/scene/RenderNode.ts → lib/js/scene/RenderNode.js} +33 -138
  294. package/lib/js/scene/SkyBox.d.ts +13 -0
  295. package/{src/scene/SkyBox.ts → lib/js/scene/SkyBox.js} +16 -37
  296. package/{src/scene/index.ts → lib/js/scene/index.d.ts} +0 -1
  297. package/lib/js/scene/index.js +5 -0
  298. package/lib/js/segment/Segment.d.ts +278 -0
  299. package/{src/segment/Segment.ts → lib/js/segment/Segment.js} +242 -913
  300. package/lib/js/segment/SegmentLonLat.d.ts +48 -0
  301. package/{src/segment/SegmentLonLat.ts → lib/js/segment/SegmentLonLat.js} +58 -132
  302. package/lib/js/segment/SegmentLonLatWgs84.d.ts +10 -0
  303. package/lib/js/segment/SegmentLonLatWgs84.js +23 -0
  304. package/lib/js/segment/Slice.d.ts +13 -0
  305. package/{src/segment/Slice.ts → lib/js/segment/Slice.js} +4 -22
  306. package/lib/js/segment/segmentHelper.d.ts +18 -0
  307. package/{src/segment/segmentHelper.ts → lib/js/segment/segmentHelper.js} +30 -88
  308. package/lib/js/shaders/atmos.d.ts +4 -0
  309. package/{src/shaders/atmos.ts → lib/js/shaders/atmos.js} +8 -26
  310. package/lib/js/shaders/billboard.d.ts +3 -0
  311. package/{src/shaders/billboard.ts → lib/js/shaders/billboard.js} +9 -18
  312. package/lib/js/shaders/bloom.d.ts +2 -0
  313. package/{src/shaders/bloom.ts → lib/js/shaders/bloom.js} +5 -8
  314. package/lib/js/shaders/blur.d.ts +3 -0
  315. package/{src/shaders/blur.ts → lib/js/shaders/blur.js} +11 -19
  316. package/lib/js/shaders/depth.d.ts +2 -0
  317. package/{src/shaders/depth.ts → lib/js/shaders/depth.js} +3 -6
  318. package/lib/js/shaders/drawnode.d.ts +8 -0
  319. package/{src/shaders/drawnode.ts → lib/js/shaders/drawnode.js} +23 -75
  320. package/lib/js/shaders/geoObject.d.ts +3 -0
  321. package/{src/shaders/geoObject.ts → lib/js/shaders/geoObject.js} +51 -63
  322. package/lib/js/shaders/label.d.ts +4 -0
  323. package/{src/shaders/label.ts → lib/js/shaders/label.js} +12 -25
  324. package/lib/js/shaders/lumFilter.d.ts +2 -0
  325. package/{src/shaders/lumFilter.ts → lib/js/shaders/lumFilter.js} +4 -7
  326. package/lib/js/shaders/pickingMask.d.ts +2 -0
  327. package/{src/shaders/pickingMask.ts → lib/js/shaders/pickingMask.js} +5 -8
  328. package/lib/js/shaders/pointCloud.d.ts +2 -0
  329. package/{src/shaders/pointCloud.ts → lib/js/shaders/pointCloud.js} +4 -7
  330. package/lib/js/shaders/polyline.d.ts +3 -0
  331. package/{src/shaders/polyline.ts → lib/js/shaders/polyline.js} +7 -22
  332. package/lib/js/shaders/ray.d.ts +2 -0
  333. package/{src/shaders/ray.ts → lib/js/shaders/ray.js} +4 -7
  334. package/lib/js/shaders/screenFrame.d.ts +2 -0
  335. package/{src/shaders/screenFrame.ts → lib/js/shaders/screenFrame.js} +5 -8
  336. package/lib/js/shaders/skybox.d.ts +2 -0
  337. package/{src/shaders/skybox.ts → lib/js/shaders/skybox.js} +10 -13
  338. package/lib/js/shaders/toneMapping.d.ts +2 -0
  339. package/{src/shaders/toneMapping.ts → lib/js/shaders/toneMapping.js} +5 -8
  340. package/lib/js/shaders/utils.d.ts +1 -0
  341. package/{src/shaders/utils.ts → lib/js/shaders/utils.js} +1 -1
  342. package/lib/js/terrain/BilTerrain.d.ts +18 -0
  343. package/{src/terrain/BilTerrain.ts → lib/js/terrain/BilTerrain.js} +21 -118
  344. package/lib/js/terrain/EmptyTerrain.d.ts +106 -0
  345. package/{src/terrain/EmptyTerrain.ts → lib/js/terrain/EmptyTerrain.js} +20 -144
  346. package/lib/js/terrain/Geoid.d.ts +33 -0
  347. package/lib/js/terrain/Geoid.js +191 -0
  348. package/lib/js/terrain/GlobusTerrain.d.ts +134 -0
  349. package/{src/terrain/GlobusTerrain.ts → lib/js/terrain/GlobusTerrain.js} +84 -241
  350. package/lib/js/terrain/MapboxTerrain.d.ts +21 -0
  351. package/{src/terrain/MapboxTerrain.ts → lib/js/terrain/MapboxTerrain.js} +46 -215
  352. package/{src/terrain/index.ts → lib/js/terrain/index.d.ts} +0 -1
  353. package/lib/js/terrain/index.js +5 -0
  354. package/lib/js/ui/Button.d.ts +32 -0
  355. package/lib/js/ui/Button.js +78 -0
  356. package/lib/js/ui/ButtonGroup.d.ts +16 -0
  357. package/lib/js/ui/ButtonGroup.js +41 -0
  358. package/lib/js/ui/Dialog.d.ts +55 -0
  359. package/lib/js/ui/Dialog.js +173 -0
  360. package/lib/js/ui/Slider.d.ts +38 -0
  361. package/lib/js/ui/Slider.js +129 -0
  362. package/lib/js/ui/ToggleButton.d.ts +20 -0
  363. package/lib/js/ui/ToggleButton.js +42 -0
  364. package/lib/js/ui/View.d.ts +37 -0
  365. package/{src/ui/View.ts → lib/js/ui/View.js} +31 -77
  366. package/lib/js/ui/icons.d.ts +1 -0
  367. package/{src/ui/icons.ts → lib/js/ui/icons.js} +1 -1
  368. package/lib/js/utils/BaseWorker.d.ts +14 -0
  369. package/{src/utils/BaseWorker.ts → lib/js/utils/BaseWorker.js} +15 -28
  370. package/lib/js/utils/FontAtlas.d.ts +82 -0
  371. package/{src/utils/FontAtlas.ts → lib/js/utils/FontAtlas.js} +46 -182
  372. package/lib/js/utils/GeoImageCreator.d.ts +34 -0
  373. package/{src/utils/GeoImageCreator.ts → lib/js/utils/GeoImageCreator.js} +34 -91
  374. package/lib/js/utils/ImagesCacheManager.d.ts +22 -0
  375. package/{src/utils/ImagesCacheManager.ts → lib/js/utils/ImagesCacheManager.js} +16 -38
  376. package/lib/js/utils/Loader.d.ts +63 -0
  377. package/lib/js/utils/Loader.js +156 -0
  378. package/lib/js/utils/NormalMapCreator.d.ts +52 -0
  379. package/{src/utils/NormalMapCreator.ts → lib/js/utils/NormalMapCreator.js} +64 -195
  380. package/lib/js/utils/PlainSegmentWorker.d.ts +24 -0
  381. package/{src/utils/PlainSegmentWorker.ts → lib/js/utils/PlainSegmentWorker.js} +24 -56
  382. package/lib/js/utils/TerrainWorker.d.ts +28 -0
  383. package/{src/utils/TerrainWorker.ts → lib/js/utils/TerrainWorker.js} +19 -56
  384. package/lib/js/utils/TextureAtlas.d.ts +113 -0
  385. package/{src/utils/TextureAtlas.ts → lib/js/utils/TextureAtlas.js} +40 -131
  386. package/lib/js/utils/VectorTileCreator.d.ts +18 -0
  387. package/{src/utils/VectorTileCreator.ts → lib/js/utils/VectorTileCreator.js} +61 -147
  388. package/lib/js/utils/colorTable.d.ts +3 -0
  389. package/{src/utils/colorTable.ts → lib/js/utils/colorTable.js} +2 -2
  390. package/lib/js/utils/earcut.d.ts +7 -0
  391. package/{src/utils/earcut.ts → lib/js/utils/earcut.js} +95 -223
  392. package/lib/js/utils/objParser.d.ts +24 -0
  393. package/{src/utils/objParser.ts → lib/js/utils/objParser.js} +38 -93
  394. package/lib/js/utils/shared.d.ts +267 -0
  395. package/{src/utils/shared.ts → lib/js/utils/shared.js} +185 -342
  396. package/lib/js/utils/units.d.ts +16 -0
  397. package/lib/js/utils/units.js +61 -0
  398. package/lib/js/webgl/BaseFramebuffer.d.ts +53 -0
  399. package/{src/webgl/BaseFramebuffer.ts → lib/js/webgl/BaseFramebuffer.js} +22 -59
  400. package/lib/js/webgl/Framebuffer.d.ts +69 -0
  401. package/{src/webgl/Framebuffer.ts → lib/js/webgl/Framebuffer.js} +30 -87
  402. package/lib/js/webgl/Handler.d.ts +473 -0
  403. package/{src/webgl/Handler.ts → lib/js/webgl/Handler.js} +175 -586
  404. package/lib/js/webgl/Multisample.d.ts +27 -0
  405. package/lib/js/webgl/Multisample.js +77 -0
  406. package/lib/js/webgl/Program.d.ts +159 -0
  407. package/{src/webgl/Program.ts → lib/js/webgl/Program.js} +73 -210
  408. package/lib/js/webgl/ProgramController.d.ts +86 -0
  409. package/{src/webgl/ProgramController.ts → lib/js/webgl/ProgramController.js} +11 -45
  410. package/{src/webgl/index.ts → lib/js/webgl/index.d.ts} +1 -8
  411. package/lib/js/webgl/index.js +6 -0
  412. package/lib/js/webgl/types.d.ts +9 -0
  413. package/{src/webgl/types.ts → lib/js/webgl/types.js} +5 -8
  414. package/lib/js/webgl/variableHandlers.d.ts +22 -0
  415. package/lib/js/webgl/variableHandlers.js +78 -0
  416. package/package.json +23 -34
  417. package/dist/@openglobus/og.esm.js +0 -2
  418. package/dist/@openglobus/og.esm.js.map +0 -1
  419. package/dist/@openglobus/og.umd.js +0 -2
  420. package/dist/@openglobus/og.umd.js.map +0 -1
  421. package/src/Deferred.ts +0 -17
  422. package/src/control/MouseWheelZoomControl.ts +0 -269
  423. package/src/control/ScaleControl.ts +0 -131
  424. package/src/control/SegmentBoundVisualization.ts +0 -50
  425. package/src/control/ShowFps.ts +0 -28
  426. package/src/control/ToggleWireframe.ts +0 -35
  427. package/src/control/ruler/Ruler.ts +0 -35
  428. package/src/control/ruler/RulerScene.ts +0 -437
  429. package/src/control/timeline/timelineUtils.ts +0 -133
  430. package/src/ellipsoid/index.ts +0 -4
  431. package/src/entity/Geometry.ts +0 -486
  432. package/src/index.ts +0 -173
  433. package/src/layer/GeoTexture2d.ts +0 -56
  434. package/src/layer/index.ts +0 -12
  435. package/src/math/Line3.ts +0 -162
  436. package/src/math/index.ts +0 -26
  437. package/src/quadTree/EPSG4326QuadTreeStrategy.ts +0 -24
  438. package/src/quadTree/EarthQuadTreeStrategy.ts +0 -28
  439. package/src/quadTree/MarsQuadTreeStrategy.ts +0 -25
  440. package/src/quadTree/Wgs84QuadTreeStrategy.ts +0 -22
  441. package/src/quadTree/index.ts +0 -14
  442. package/src/scene/Axes.ts +0 -78
  443. package/src/segment/SegmentLonLatWgs84.ts +0 -33
  444. package/src/terrain/Geoid.ts +0 -273
  445. package/src/ui/Button.ts +0 -121
  446. package/src/ui/ButtonGroup.ts +0 -63
  447. package/src/ui/Dialog.ts +0 -244
  448. package/src/ui/Slider.ts +0 -188
  449. package/src/ui/ToggleButton.ts +0 -68
  450. package/src/utils/Loader.ts +0 -247
  451. package/src/utils/units.ts +0 -78
  452. package/src/webgl/Multisample.ts +0 -153
  453. package/src/webgl/variableHandlers.ts +0 -114
  454. /package/{dist → lib}/@openglobus/og.css +0 -0
  455. /package/{dist → lib}/@openglobus/res/fonts/Karla-Bold.json +0 -0
  456. /package/{dist → lib}/@openglobus/res/fonts/Karla-Bold.ttf.cfg +0 -0
  457. /package/{dist → lib}/@openglobus/res/fonts/Karla-Bold.ttf.png +0 -0
  458. /package/{dist → lib}/@openglobus/res/fonts/Karla-Light.json +0 -0
  459. /package/{dist → lib}/@openglobus/res/fonts/Karla-Light.ttf.cfg +0 -0
  460. /package/{dist → lib}/@openglobus/res/fonts/Karla-Light.ttf.png +0 -0
  461. /package/{dist → lib}/@openglobus/res/fonts/Karla-Medium.json +0 -0
  462. /package/{dist → lib}/@openglobus/res/fonts/Karla-Medium.ttf.cfg +0 -0
  463. /package/{dist → lib}/@openglobus/res/fonts/Karla-Medium.ttf.png +0 -0
  464. /package/{dist → lib}/@openglobus/res/fonts/NotoSansArabic-Regular.json +0 -0
  465. /package/{dist → lib}/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.cfg +0 -0
  466. /package/{dist → lib}/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.png +0 -0
  467. /package/{dist → lib}/@openglobus/res/fonts/Roboto-Regular.json +0 -0
  468. /package/{dist → lib}/@openglobus/res/fonts/Roboto-Regular.ttf.cfg +0 -0
  469. /package/{dist → lib}/@openglobus/res/fonts/Roboto-Regular.ttf.png +0 -0
  470. /package/{dist → lib}/@openglobus/res/fonts/arial.js +0 -0
  471. /package/{dist → lib}/@openglobus/res/fonts/arial.json +0 -0
  472. /package/{dist → lib}/@openglobus/res/fonts/arial.ttf.cfg +0 -0
  473. /package/{dist → lib}/@openglobus/res/fonts/arial.ttf.png +0 -0
  474. /package/{dist → lib}/@openglobus/res/night-4326.png +0 -0
  475. /package/{dist → lib}/@openglobus/res/night.png +0 -0
  476. /package/{dist → lib}/@openglobus/res/spec.png +0 -0
@@ -1,16 +1,12 @@
1
1
  // @ts-nocheck
2
-
3
2
  /* eslint-disable no-unused-vars */
4
3
  /* eslint-disable curly */
5
4
  /* eslint-disable operator-linebreak */
6
5
  /* eslint-disable no-mixed-operators */
7
-
8
6
  /**
9
7
  * @module og/utils/earcut
10
8
  */
11
-
12
9
  'use strict';
13
-
14
10
  // ISC License
15
11
  //
16
12
  // Copyright (c) 2016, Mapbox
@@ -29,223 +25,178 @@
29
25
  //
30
26
  //https://github.com/mapbox/earcut
31
27
  function earcut(data, holeIndices, dim) {
32
-
33
28
  dim = dim || 2;
34
-
35
- var hasHoles = holeIndices && holeIndices.length,
36
- outerLen = hasHoles ? holeIndices[0] * dim : data.length,
37
- outerNode = linkedList(data, 0, outerLen, dim, true),
38
- triangles = [];
39
-
40
- if (!outerNode) return triangles;
41
-
29
+ var hasHoles = holeIndices && holeIndices.length, outerLen = hasHoles ? holeIndices[0] * dim : data.length, outerNode = linkedList(data, 0, outerLen, dim, true), triangles = [];
30
+ if (!outerNode)
31
+ return triangles;
42
32
  var minX, minY, maxX, maxY, x, y, size;
43
-
44
- if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim);
45
-
33
+ if (hasHoles)
34
+ outerNode = eliminateHoles(data, holeIndices, outerNode, dim);
46
35
  // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox
47
36
  if (data.length > 80 * dim) {
48
37
  minX = maxX = data[0];
49
38
  minY = maxY = data[1];
50
-
51
39
  for (let i = dim; i < outerLen; i += dim) {
52
40
  x = data[i];
53
41
  y = data[i + 1];
54
- if (x < minX) minX = x;
55
- if (y < minY) minY = y;
56
- if (x > maxX) maxX = x;
57
- if (y > maxY) maxY = y;
42
+ if (x < minX)
43
+ minX = x;
44
+ if (y < minY)
45
+ minY = y;
46
+ if (x > maxX)
47
+ maxX = x;
48
+ if (y > maxY)
49
+ maxY = y;
58
50
  }
59
-
60
51
  // minX, minY and size are later used to transform coords into integers for z-order calculation
61
52
  size = Math.max(maxX - minX, maxY - minY);
62
53
  }
63
-
64
54
  earcutLinked(outerNode, triangles, dim, minX, minY, size);
65
-
66
55
  return triangles;
67
56
  }
68
-
69
57
  // create a circular doubly linked list from polygon points in the specified winding order
70
58
  function linkedList(data, start, end, dim, clockwise) {
71
59
  var i, last;
72
-
73
60
  if (clockwise === (signedArea(data, start, end, dim) > 0)) {
74
- for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);
75
- } else {
76
- for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last);
61
+ for (i = start; i < end; i += dim)
62
+ last = insertNode(i, data[i], data[i + 1], last);
63
+ }
64
+ else {
65
+ for (i = end - dim; i >= start; i -= dim)
66
+ last = insertNode(i, data[i], data[i + 1], last);
77
67
  }
78
-
79
68
  if (last && equals(last, last.next)) {
80
69
  removeNode(last);
81
70
  last = last.next;
82
71
  }
83
-
84
72
  return last;
85
73
  }
86
-
87
74
  // eliminate colinear or duplicate points
88
75
  function filterPoints(start, end) {
89
- if (!start) return start;
90
- if (!end) end = start;
91
-
92
- var p = start,
93
- again;
76
+ if (!start)
77
+ return start;
78
+ if (!end)
79
+ end = start;
80
+ var p = start, again;
94
81
  do {
95
82
  again = false;
96
-
97
83
  if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {
98
84
  removeNode(p);
99
85
  p = end = p.prev;
100
- if (p === p.next) return null;
86
+ if (p === p.next)
87
+ return null;
101
88
  again = true;
102
-
103
- } else {
89
+ }
90
+ else {
104
91
  p = p.next;
105
92
  }
106
93
  } while (again || p !== end);
107
-
108
94
  return end;
109
95
  }
110
-
111
96
  // main ear slicing loop which triangulates a polygon (given as a linked list)
112
97
  function earcutLinked(ear, triangles, dim, minX, minY, size, pass) {
113
- if (!ear) return;
114
-
98
+ if (!ear)
99
+ return;
115
100
  // interlink polygon nodes in z-order
116
- if (!pass && size) indexCurve(ear, minX, minY, size);
117
-
118
- var stop = ear,
119
- prev, next;
120
-
101
+ if (!pass && size)
102
+ indexCurve(ear, minX, minY, size);
103
+ var stop = ear, prev, next;
121
104
  // iterate through ears, slicing them one by one
122
105
  while (ear.prev !== ear.next) {
123
106
  prev = ear.prev;
124
107
  next = ear.next;
125
-
126
108
  if (size ? isEarHashed(ear, minX, minY, size) : isEar(ear)) {
127
109
  // cut off the triangle
128
110
  triangles.push(prev.i / dim);
129
111
  triangles.push(ear.i / dim);
130
112
  triangles.push(next.i / dim);
131
-
132
113
  removeNode(ear);
133
-
134
114
  // skipping the next vertice leads to less sliver triangles
135
115
  ear = next.next;
136
116
  stop = next.next;
137
-
138
117
  continue;
139
118
  }
140
-
141
119
  ear = next;
142
-
143
120
  // if we looped through the whole remaining polygon and can't find any more ears
144
121
  if (ear === stop) {
145
122
  // try filtering points and slicing again
146
123
  if (!pass) {
147
124
  earcutLinked(filterPoints(ear), triangles, dim, minX, minY, size, 1);
148
-
149
125
  // if this didn't work, try curing all small self-intersections locally
150
- } else if (pass === 1) {
126
+ }
127
+ else if (pass === 1) {
151
128
  ear = cureLocalIntersections(ear, triangles, dim);
152
129
  earcutLinked(ear, triangles, dim, minX, minY, size, 2);
153
-
154
130
  // as a last resort, try splitting the remaining polygon into two
155
- } else if (pass === 2) {
131
+ }
132
+ else if (pass === 2) {
156
133
  splitEarcut(ear, triangles, dim, minX, minY, size);
157
134
  }
158
-
159
135
  break;
160
136
  }
161
137
  }
162
138
  }
163
-
164
139
  // check whether a polygon node forms a valid ear with adjacent nodes
165
140
  function isEar(ear) {
166
- var a = ear.prev,
167
- b = ear,
168
- c = ear.next;
169
-
170
- if (area(a, b, c) >= 0) return false; // reflex, can't be an ear
171
-
141
+ var a = ear.prev, b = ear, c = ear.next;
142
+ if (area(a, b, c) >= 0)
143
+ return false; // reflex, can't be an ear
172
144
  // now make sure we don't have other points inside the potential ear
173
145
  var p = ear.next.next;
174
-
175
146
  while (p !== ear.prev) {
176
147
  if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&
177
- area(p.prev, p, p.next) >= 0) return false;
148
+ area(p.prev, p, p.next) >= 0)
149
+ return false;
178
150
  p = p.next;
179
151
  }
180
-
181
152
  return true;
182
153
  }
183
-
184
154
  function isEarHashed(ear, minX, minY, size) {
185
- var a = ear.prev,
186
- b = ear,
187
- c = ear.next;
188
-
189
- if (area(a, b, c) >= 0) return false; // reflex, can't be an ear
190
-
155
+ var a = ear.prev, b = ear, c = ear.next;
156
+ if (area(a, b, c) >= 0)
157
+ return false; // reflex, can't be an ear
191
158
  // triangle bbox; min & max are calculated like this for speed
192
- var minTX = a.x < b.x ? (a.x < c.x ? a.x : c.x) : (b.x < c.x ? b.x : c.x),
193
- minTY = a.y < b.y ? (a.y < c.y ? a.y : c.y) : (b.y < c.y ? b.y : c.y),
194
- maxTX = a.x > b.x ? (a.x > c.x ? a.x : c.x) : (b.x > c.x ? b.x : c.x),
195
- maxTY = a.y > b.y ? (a.y > c.y ? a.y : c.y) : (b.y > c.y ? b.y : c.y);
196
-
159
+ var minTX = a.x < b.x ? (a.x < c.x ? a.x : c.x) : (b.x < c.x ? b.x : c.x), minTY = a.y < b.y ? (a.y < c.y ? a.y : c.y) : (b.y < c.y ? b.y : c.y), maxTX = a.x > b.x ? (a.x > c.x ? a.x : c.x) : (b.x > c.x ? b.x : c.x), maxTY = a.y > b.y ? (a.y > c.y ? a.y : c.y) : (b.y > c.y ? b.y : c.y);
197
160
  // z-order range for the current triangle bbox;
198
- var minZ = zOrder(minTX, minTY, minX, minY, size),
199
- maxZ = zOrder(maxTX, maxTY, minX, minY, size);
200
-
161
+ var minZ = zOrder(minTX, minTY, minX, minY, size), maxZ = zOrder(maxTX, maxTY, minX, minY, size);
201
162
  // first look for points inside the triangle in increasing z-order
202
163
  var p = ear.nextZ;
203
-
204
164
  while (p && p.z <= maxZ) {
205
165
  if (p !== ear.prev && p !== ear.next &&
206
166
  pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&
207
- area(p.prev, p, p.next) >= 0) return false;
167
+ area(p.prev, p, p.next) >= 0)
168
+ return false;
208
169
  p = p.nextZ;
209
170
  }
210
-
211
171
  // then look for points in decreasing z-order
212
172
  p = ear.prevZ;
213
-
214
173
  while (p && p.z >= minZ) {
215
174
  if (p !== ear.prev && p !== ear.next &&
216
175
  pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&
217
- area(p.prev, p, p.next) >= 0) return false;
176
+ area(p.prev, p, p.next) >= 0)
177
+ return false;
218
178
  p = p.prevZ;
219
179
  }
220
-
221
180
  return true;
222
181
  }
223
-
224
182
  // go through all polygon nodes and cure small local self-intersections
225
183
  function cureLocalIntersections(start, triangles, dim) {
226
184
  var p = start;
227
185
  do {
228
- var a = p.prev,
229
- b = p.next.next;
230
-
186
+ var a = p.prev, b = p.next.next;
231
187
  if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {
232
-
233
188
  triangles.push(a.i / dim);
234
189
  triangles.push(p.i / dim);
235
190
  triangles.push(b.i / dim);
236
-
237
191
  // remove two nodes involved
238
192
  removeNode(p);
239
193
  removeNode(p.next);
240
-
241
194
  p = start = b;
242
195
  }
243
196
  p = p.next;
244
197
  } while (p !== start);
245
-
246
198
  return p;
247
199
  }
248
-
249
200
  // try splitting polygon into two and triangulate them independently
250
201
  function splitEarcut(start, triangles, dim, minX, minY, size) {
251
202
  // look for a valid diagonal that divides the polygon into two
@@ -256,11 +207,9 @@ function splitEarcut(start, triangles, dim, minX, minY, size) {
256
207
  if (a.i !== b.i && isValidDiagonal(a, b)) {
257
208
  // split the polygon in two by the diagonal
258
209
  var c = splitPolygon(a, b);
259
-
260
210
  // filter colinear points around the cuts
261
211
  a = filterPoints(a, a.next);
262
212
  c = filterPoints(c, c.next);
263
-
264
213
  // run earcut on each half
265
214
  earcutLinked(a, triangles, dim, minX, minY, size);
266
215
  earcutLinked(c, triangles, dim, minX, minY, size);
@@ -271,35 +220,28 @@ function splitEarcut(start, triangles, dim, minX, minY, size) {
271
220
  a = a.next;
272
221
  } while (a !== start);
273
222
  }
274
-
275
223
  // link every hole into the outer loop, producing a single-ring polygon without holes
276
224
  function eliminateHoles(data, holeIndices, outerNode, dim) {
277
- var queue = [],
278
- i, len, start, end, list;
279
-
225
+ var queue = [], i, len, start, end, list;
280
226
  for (i = 0, len = holeIndices.length; i < len; i++) {
281
227
  start = holeIndices[i] * dim;
282
228
  end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;
283
229
  list = linkedList(data, start, end, dim, false);
284
- if (list === list.next) list.steiner = true;
230
+ if (list === list.next)
231
+ list.steiner = true;
285
232
  queue.push(getLeftmost(list));
286
233
  }
287
-
288
234
  queue.sort(compareX);
289
-
290
235
  // process holes from left to right
291
236
  for (i = 0; i < queue.length; i++) {
292
237
  eliminateHole(queue[i], outerNode);
293
238
  outerNode = filterPoints(outerNode, outerNode.next);
294
239
  }
295
-
296
240
  return outerNode;
297
241
  }
298
-
299
242
  function compareX(a, b) {
300
243
  return a.x - b.x;
301
244
  }
302
-
303
245
  // find a bridge between vertices that connects hole with an outer ring and and link it
304
246
  function eliminateHole(hole, outerNode) {
305
247
  outerNode = findHoleBridge(hole, outerNode);
@@ -308,15 +250,9 @@ function eliminateHole(hole, outerNode) {
308
250
  filterPoints(b, b.next);
309
251
  }
310
252
  }
311
-
312
253
  // David Eberly's algorithm for finding a bridge between hole and outer polygon
313
254
  function findHoleBridge(hole, outerNode) {
314
- var p = outerNode,
315
- hx = hole.x,
316
- hy = hole.y,
317
- qx = -Infinity,
318
- m;
319
-
255
+ var p = outerNode, hx = hole.x, hy = hole.y, qx = -Infinity, m;
320
256
  // find a segment intersected by a ray from the hole's leftmost point to the left;
321
257
  // segment's endpoint with lesser x will be potential connection point
322
258
  do {
@@ -325,77 +261,61 @@ function findHoleBridge(hole, outerNode) {
325
261
  if (x <= hx && x > qx) {
326
262
  qx = x;
327
263
  if (x === hx) {
328
- if (hy === p.y) return p;
329
- if (hy === p.next.y) return p.next;
264
+ if (hy === p.y)
265
+ return p;
266
+ if (hy === p.next.y)
267
+ return p.next;
330
268
  }
331
269
  m = p.x < p.next.x ? p : p.next;
332
270
  }
333
271
  }
334
272
  p = p.next;
335
273
  } while (p !== outerNode);
336
-
337
- if (!m) return null;
338
-
339
- if (hx === qx) return m.prev; // hole touches outer segment; pick lower endpoint
340
-
274
+ if (!m)
275
+ return null;
276
+ if (hx === qx)
277
+ return m.prev; // hole touches outer segment; pick lower endpoint
341
278
  // look for points inside the triangle of hole point, segment intersection and endpoint;
342
279
  // if there are no points found, we have a valid connection;
343
280
  // otherwise choose the point of the minimum angle with the ray as connection point
344
-
345
- var stop = m,
346
- mx = m.x,
347
- my = m.y,
348
- tanMin = Infinity,
349
- tan;
350
-
281
+ var stop = m, mx = m.x, my = m.y, tanMin = Infinity, tan;
351
282
  p = m.next;
352
-
353
283
  while (p !== stop) {
354
284
  if (hx >= p.x && p.x >= mx && hx !== p.x &&
355
285
  pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {
356
-
357
286
  tan = Math.abs(hy - p.y) / (hx - p.x); // tangential
358
-
359
287
  if ((tan < tanMin || (tan === tanMin && p.x > m.x)) && locallyInside(p, hole)) {
360
288
  m = p;
361
289
  tanMin = tan;
362
290
  }
363
291
  }
364
-
365
292
  p = p.next;
366
293
  }
367
-
368
294
  return m;
369
295
  }
370
-
371
296
  // interlink polygon nodes in z-order
372
297
  function indexCurve(start, minX, minY, size) {
373
298
  var p = start;
374
299
  do {
375
- if (p.z === null) p.z = zOrder(p.x, p.y, minX, minY, size);
300
+ if (p.z === null)
301
+ p.z = zOrder(p.x, p.y, minX, minY, size);
376
302
  p.prevZ = p.prev;
377
303
  p.nextZ = p.next;
378
304
  p = p.next;
379
305
  } while (p !== start);
380
-
381
306
  p.prevZ.nextZ = null;
382
307
  p.prevZ = null;
383
-
384
308
  sortLinked(p);
385
309
  }
386
-
387
310
  // Simon Tatham's linked list merge sort algorithm
388
311
  // http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html
389
312
  function sortLinked(list) {
390
- var i, p, q, e, tail, numMerges, pSize, qSize,
391
- inSize = 1;
392
-
313
+ var i, p, q, e, tail, numMerges, pSize, qSize, inSize = 1;
393
314
  do {
394
315
  p = list;
395
316
  list = null;
396
317
  tail = null;
397
318
  numMerges = 0;
398
-
399
319
  while (p) {
400
320
  numMerges++;
401
321
  q = p;
@@ -403,169 +323,137 @@ function sortLinked(list) {
403
323
  for (i = 0; i < inSize; i++) {
404
324
  pSize++;
405
325
  q = q.nextZ;
406
- if (!q) break;
326
+ if (!q)
327
+ break;
407
328
  }
408
329
  qSize = inSize;
409
-
410
330
  while (pSize > 0 || (qSize > 0 && q)) {
411
-
412
331
  if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {
413
332
  e = p;
414
333
  p = p.nextZ;
415
334
  pSize--;
416
- } else {
335
+ }
336
+ else {
417
337
  e = q;
418
338
  q = q.nextZ;
419
339
  qSize--;
420
340
  }
421
-
422
- if (tail) tail.nextZ = e;
423
- else list = e;
424
-
341
+ if (tail)
342
+ tail.nextZ = e;
343
+ else
344
+ list = e;
425
345
  e.prevZ = tail;
426
346
  tail = e;
427
347
  }
428
-
429
348
  p = q;
430
349
  }
431
-
432
350
  tail.nextZ = null;
433
351
  inSize *= 2;
434
-
435
352
  } while (numMerges > 1);
436
-
437
353
  return list;
438
354
  }
439
-
440
355
  // z-order of a point given coords and size of the data bounding box
441
356
  function zOrder(x, y, minX, minY, size) {
442
357
  // coords are transformed into non-negative 15-bit integer range
443
358
  x = 32767 * (x - minX) / size;
444
359
  y = 32767 * (y - minY) / size;
445
-
446
360
  x = (x | (x << 8)) & 0x00FF00FF;
447
361
  x = (x | (x << 4)) & 0x0F0F0F0F;
448
362
  x = (x | (x << 2)) & 0x33333333;
449
363
  x = (x | (x << 1)) & 0x55555555;
450
-
451
364
  y = (y | (y << 8)) & 0x00FF00FF;
452
365
  y = (y | (y << 4)) & 0x0F0F0F0F;
453
366
  y = (y | (y << 2)) & 0x33333333;
454
367
  y = (y | (y << 1)) & 0x55555555;
455
-
456
368
  return x | (y << 1);
457
369
  }
458
-
459
370
  // find the leftmost node of a polygon ring
460
371
  function getLeftmost(start) {
461
- var p = start,
462
- leftmost = start;
372
+ var p = start, leftmost = start;
463
373
  do {
464
- if (p.x < leftmost.x) leftmost = p;
374
+ if (p.x < leftmost.x)
375
+ leftmost = p;
465
376
  p = p.next;
466
377
  } while (p !== start);
467
-
468
378
  return leftmost;
469
379
  }
470
-
471
380
  // check if a point lies within a convex triangle
472
381
  function pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {
473
382
  return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 &&
474
383
  (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 &&
475
384
  (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;
476
385
  }
477
-
478
386
  // check if a diagonal between two polygon nodes is valid (lies in polygon interior)
479
387
  function isValidDiagonal(a, b) {
480
388
  return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) &&
481
389
  locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b);
482
390
  }
483
-
484
391
  // signed area of a triangle
485
392
  function area(p, q, r) {
486
393
  return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);
487
394
  }
488
-
489
395
  // check if two points are equal
490
396
  function equals(p1, p2) {
491
397
  return p1.x === p2.x && p1.y === p2.y;
492
398
  }
493
-
494
399
  // check if two segments intersect
495
400
  function intersects(p1, q1, p2, q2) {
496
401
  if ((equals(p1, q1) && equals(p2, q2)) ||
497
- (equals(p1, q2) && equals(p2, q1))) return true;
402
+ (equals(p1, q2) && equals(p2, q1)))
403
+ return true;
498
404
  return area(p1, q1, p2) > 0 !== area(p1, q1, q2) > 0 &&
499
405
  area(p2, q2, p1) > 0 !== area(p2, q2, q1) > 0;
500
406
  }
501
-
502
407
  // check if a polygon diagonal intersects any polygon segments
503
408
  function intersectsPolygon(a, b) {
504
409
  var p = a;
505
410
  do {
506
411
  if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&
507
- intersects(p, p.next, a, b)) return true;
412
+ intersects(p, p.next, a, b))
413
+ return true;
508
414
  p = p.next;
509
415
  } while (p !== a);
510
-
511
416
  return false;
512
417
  }
513
-
514
418
  // check if a polygon diagonal is locally inside the polygon
515
419
  function locallyInside(a, b) {
516
420
  return area(a.prev, a, a.next) < 0 ?
517
421
  area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 :
518
422
  area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;
519
423
  }
520
-
521
424
  // check if the middle point of a polygon diagonal is inside the polygon
522
425
  function middleInside(a, b) {
523
- var p = a,
524
- inside = false,
525
- px = (a.x + b.x) / 2,
526
- py = (a.y + b.y) / 2;
426
+ var p = a, inside = false, px = (a.x + b.x) / 2, py = (a.y + b.y) / 2;
527
427
  do {
528
428
  if (((p.y > py) !== (p.next.y > py)) && p.next.y !== p.y &&
529
429
  (px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x))
530
430
  inside = !inside;
531
431
  p = p.next;
532
432
  } while (p !== a);
533
-
534
433
  return inside;
535
434
  }
536
-
537
435
  // link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;
538
436
  // if one belongs to the outer ring and another to a hole, it merges it into a single ring
539
437
  function splitPolygon(a, b) {
540
- var a2 = new Node(a.i, a.x, a.y),
541
- b2 = new Node(b.i, b.x, b.y),
542
- an = a.next,
543
- bp = b.prev;
544
-
438
+ var a2 = new Node(a.i, a.x, a.y), b2 = new Node(b.i, b.x, b.y), an = a.next, bp = b.prev;
545
439
  a.next = b;
546
440
  b.prev = a;
547
-
548
441
  a2.next = an;
549
442
  an.prev = a2;
550
-
551
443
  b2.next = a2;
552
444
  a2.prev = b2;
553
-
554
445
  bp.next = b2;
555
446
  b2.prev = bp;
556
-
557
447
  return b2;
558
448
  }
559
-
560
449
  // create a node and optionally link it with previous one (in a circular doubly linked list)
561
450
  function insertNode(i, x, y, last) {
562
451
  var p = new Node(i, x, y);
563
-
564
452
  if (!last) {
565
453
  p.prev = p;
566
454
  p.next = p;
567
-
568
- } else {
455
+ }
456
+ else {
569
457
  p.next = last.next;
570
458
  p.prev = last;
571
459
  last.next.prev = p;
@@ -573,44 +461,36 @@ function insertNode(i, x, y, last) {
573
461
  }
574
462
  return p;
575
463
  }
576
-
577
464
  function removeNode(p) {
578
465
  p.next.prev = p.prev;
579
466
  p.prev.next = p.next;
580
-
581
- if (p.prevZ) p.prevZ.nextZ = p.nextZ;
582
- if (p.nextZ) p.nextZ.prevZ = p.prevZ;
467
+ if (p.prevZ)
468
+ p.prevZ.nextZ = p.nextZ;
469
+ if (p.nextZ)
470
+ p.nextZ.prevZ = p.prevZ;
583
471
  }
584
-
585
472
  function Node(i, x, y) {
586
473
  // vertice index in coordinates array
587
474
  this.i = i;
588
-
589
475
  // vertex coordinates
590
476
  this.x = x;
591
477
  this.y = y;
592
-
593
478
  // previous and next vertice nodes in a polygon ring
594
479
  this.prev = null;
595
480
  this.next = null;
596
-
597
481
  // z-order curve value
598
482
  this.z = null;
599
-
600
483
  // previous and next nodes in z-order
601
484
  this.prevZ = null;
602
485
  this.nextZ = null;
603
-
604
486
  // indicates whether this is a steiner point
605
487
  this.steiner = false;
606
488
  }
607
-
608
489
  // return a percentage difference between the polygon area and its triangulation area;
609
490
  // used to verify correctness of triangulation
610
491
  function deviation(data, holeIndices, dim, triangles) {
611
492
  var hasHoles = holeIndices && holeIndices.length;
612
493
  var outerLen = hasHoles ? holeIndices[0] * dim : data.length;
613
-
614
494
  var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));
615
495
  if (hasHoles) {
616
496
  for (let i = 0, len = holeIndices.length; i < len; i++) {
@@ -619,21 +499,17 @@ function deviation(data, holeIndices, dim, triangles) {
619
499
  polygonArea -= Math.abs(signedArea(data, start, end, dim));
620
500
  }
621
501
  }
622
-
623
502
  var trianglesArea = 0;
624
503
  for (let i = 0; i < triangles.length; i += 3) {
625
504
  var a = triangles[i] * dim;
626
505
  var b = triangles[i + 1] * dim;
627
506
  var c = triangles[i + 2] * dim;
628
- trianglesArea += Math.abs(
629
- (data[a] - data[c]) * (data[b + 1] - data[a + 1]) -
507
+ trianglesArea += Math.abs((data[a] - data[c]) * (data[b + 1] - data[a + 1]) -
630
508
  (data[a] - data[b]) * (data[c + 1] - data[a + 1]));
631
509
  }
632
-
633
510
  return polygonArea === 0 && trianglesArea === 0 ? 0 :
634
511
  Math.abs((trianglesArea - polygonArea) / polygonArea);
635
512
  }
636
-
637
513
  function signedArea(data, start, end, dim) {
638
514
  var sum = 0;
639
515
  for (let i = start, j = end - dim; i < end; i += dim) {
@@ -642,16 +518,13 @@ function signedArea(data, start, end, dim) {
642
518
  }
643
519
  return sum;
644
520
  }
645
-
646
521
  // turn a polygon in a multi-dimensional array form (e.g. as in GeoJSON) into a form Earcut accepts
647
522
  function flatten(data) {
648
- var dim = data[0][0].length,
649
- result = { vertices: [], holes: [], dimensions: dim },
650
- holeIndex = 0;
651
-
523
+ var dim = data[0][0].length, result = { vertices: [], holes: [], dimensions: dim }, holeIndex = 0;
652
524
  for (let i = 0; i < data.length; i++) {
653
525
  for (let j = 0; j < data[i].length; j++) {
654
- for (let d = 0; d < dim; d++) result.vertices.push(data[i][j][d]);
526
+ for (let d = 0; d < dim; d++)
527
+ result.vertices.push(data[i][j][d]);
655
528
  }
656
529
  if (i > 0) {
657
530
  holeIndex += data[i - 1].length;
@@ -660,5 +533,4 @@ function flatten(data) {
660
533
  }
661
534
  return result;
662
535
  }
663
-
664
536
  export { earcut, flatten };