@openglobus/og 0.17.1 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/README.md +75 -46
  2. package/dist/@openglobus/og.esm.js +1 -20
  3. package/dist/@openglobus/og.esm.js.map +1 -1
  4. package/dist/@openglobus/og.umd.js +1 -20
  5. package/dist/@openglobus/og.umd.js.map +1 -1
  6. package/dist/@openglobus/res/fonts/Karla-Bold.json +5252 -0
  7. package/dist/@openglobus/res/fonts/Karla-Bold.ttf.cfg +920 -0
  8. package/dist/@openglobus/res/fonts/Karla-Bold.ttf.png +0 -0
  9. package/dist/@openglobus/res/fonts/Karla-Light.json +5252 -0
  10. package/dist/@openglobus/res/fonts/Karla-Light.ttf.cfg +830 -0
  11. package/dist/@openglobus/res/fonts/Karla-Light.ttf.png +0 -0
  12. package/dist/@openglobus/res/fonts/Karla-Medium.json +5252 -0
  13. package/dist/@openglobus/res/fonts/Karla-Medium.ttf.cfg +1196 -0
  14. package/dist/@openglobus/res/fonts/Karla-Medium.ttf.png +0 -0
  15. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.json +3332 -0
  16. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.cfg +1370 -0
  17. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.png +0 -0
  18. package/dist/@openglobus/res/fonts/Roboto-Regular.json +37147 -0
  19. package/dist/@openglobus/res/fonts/Roboto-Regular.ttf.cfg +1340 -0
  20. package/dist/@openglobus/res/fonts/Roboto-Regular.ttf.png +0 -0
  21. package/dist/@openglobus/res/fonts/arial.json +4321 -0
  22. package/dist/@openglobus/res/fonts/arial.ttf.cfg +1570 -0
  23. package/dist/@openglobus/res/fonts/arial.ttf.png +0 -0
  24. package/dist/@openglobus/res/night-4326.png +0 -0
  25. package/dist/@openglobus/res/night.png +0 -0
  26. package/dist/@openglobus/res/spec.png +0 -0
  27. package/package.json +25 -23
  28. package/src/{og/Clock.js → Clock.ts} +100 -78
  29. package/src/Deferred.ts +17 -0
  30. package/src/Events.ts +200 -0
  31. package/src/{og/Extent.js → Extent.ts} +324 -352
  32. package/src/Globe.ts +363 -0
  33. package/src/{og/ImageCanvas.js → ImageCanvas.ts} +244 -236
  34. package/src/Lock.ts +41 -0
  35. package/src/{og/LonLat.js → LonLat.ts} +50 -47
  36. package/src/{og/Object3d.js → Object3d.ts} +89 -55
  37. package/src/Popup.ts +228 -0
  38. package/src/{og/QueueArray.js → QueueArray.ts} +76 -75
  39. package/src/{og/Rectangle.js → Rectangle.ts} +115 -111
  40. package/src/Stack.ts +58 -0
  41. package/src/{og/astro/astro.js → astro/astro.ts} +49 -51
  42. package/src/{og/astro/earth.js → astro/earth.ts} +8 -9
  43. package/src/{og/astro/jd.js → astro/jd.ts} +92 -111
  44. package/src/{og/astro/orbit.js → astro/orbit.ts} +35 -37
  45. package/src/{og/astro/rotation.js → astro/rotation.ts} +4 -6
  46. package/src/{og/bv/Box.js → bv/Box.ts} +21 -17
  47. package/src/{og/bv/Sphere.js → bv/Sphere.ts} +21 -19
  48. package/src/bv/index.ts +4 -0
  49. package/src/{og/camera/Camera.js → camera/Camera.ts} +254 -197
  50. package/src/{og/camera/Frustum.js → camera/Frustum.ts} +137 -111
  51. package/src/{og/camera/PlanetCamera.js → camera/PlanetCamera.ts} +248 -185
  52. package/src/camera/index.ts +4 -0
  53. package/src/{og/cons.js → cons.ts} +14 -18
  54. package/src/{og/control/Atmosphere.js → control/Atmosphere.ts} +50 -50
  55. package/src/{og/control/CompassButton.js → control/CompassButton.ts} +27 -30
  56. package/src/{og/control/Control.js → control/Control.ts} +76 -70
  57. package/src/{og/control/DebugInfo.js → control/DebugInfo.ts} +130 -62
  58. package/src/{og/control/DrawingSwitcher.js → control/DrawingSwitcher.ts} +16 -22
  59. package/src/control/EarthCoordinates.ts +222 -0
  60. package/src/control/EarthNavigation.ts +293 -0
  61. package/src/{og/control/GeoImageDragControl.js → control/GeoImageDragControl.ts} +37 -29
  62. package/src/control/KeyboardNavigation.ts +168 -0
  63. package/src/{og/control/LayerAnimation.js → control/LayerAnimation.ts} +74 -90
  64. package/src/control/LayerSwitcher.ts +76 -0
  65. package/src/{og/control/Lighting.js → control/Lighting.ts} +158 -120
  66. package/src/control/MouseNavigation.ts +468 -0
  67. package/src/control/MouseWheelZoomControl.ts +269 -0
  68. package/src/{og/control/RulerSwitcher.js → control/RulerSwitcher.ts} +18 -20
  69. package/src/control/ScaleControl.ts +131 -0
  70. package/src/control/SegmentBoundVisualization.ts +50 -0
  71. package/src/control/ShowFps.ts +28 -0
  72. package/src/control/SimpleNavigation.ts +118 -0
  73. package/src/{og/control/SimpleSkyBackground.js → control/SimpleSkyBackground.ts} +36 -38
  74. package/src/{og/control/Sun.js → control/Sun.ts} +56 -64
  75. package/src/control/ToggleWireframe.ts +35 -0
  76. package/src/control/TouchNavigation.ts +368 -0
  77. package/src/control/ZoomControl.ts +111 -0
  78. package/src/control/drawing/DrawingControl.ts +45 -0
  79. package/src/{og/control/drawing/LineStringDrawingScene.js → control/drawing/LineStringDrawingScene.ts} +28 -35
  80. package/src/{og/control/drawing/PolygonDrawingScene.js → control/drawing/PolygonDrawingScene.ts} +148 -201
  81. package/src/{og/control/elevationProfile/ElevationProfile.js → control/elevationProfile/ElevationProfile.ts} +70 -36
  82. package/src/control/heightRuler/HeightRuler.ts +16 -0
  83. package/src/{og/control/heightRuler/HeightRulerScene.js → control/heightRuler/HeightRulerScene.ts} +92 -87
  84. package/src/{og/control/heightRuler/HeightRulerSwitcher.js → control/heightRuler/HeightRulerSwitcher.ts} +3 -3
  85. package/src/control/index.ts +45 -0
  86. package/src/control/ruler/Ruler.ts +35 -0
  87. package/src/{og/control/ruler/RulerScene.js → control/ruler/RulerScene.ts} +163 -121
  88. package/src/{og/control/selection/Selection.js → control/selection/Selection.ts} +23 -21
  89. package/src/{og/control/selection/SelectionScene.js → control/selection/SelectionScene.ts} +64 -50
  90. package/src/{og/control/timeline/TimelineControl.js → control/timeline/TimelineControl.ts} +37 -28
  91. package/src/{og/control/timeline/TimelineModel.js → control/timeline/TimelineModel.ts} +50 -35
  92. package/src/{og/control/timeline/TimelineView.js → control/timeline/TimelineView.ts} +162 -113
  93. package/src/{og/control/timeline/timelineUtils.js → control/timeline/timelineUtils.ts} +11 -10
  94. package/src/{og/control → control}/visibleExtent/Segment.js +5 -5
  95. package/src/{og/control → control}/visibleExtent/VisibleExtent.js +8 -15
  96. package/src/{og/control/visibleExtent/drawnode.js → control/visibleExtent/drawnode.ts} +1 -3
  97. package/src/{og/ellipsoid/Ellipsoid.js → ellipsoid/Ellipsoid.ts} +113 -59
  98. package/src/ellipsoid/index.ts +4 -0
  99. package/src/{og/ellipsoid/wgs84.js → ellipsoid/wgs84.ts} +1 -3
  100. package/src/{og/entity/BaseBillboard.js → entity/BaseBillboard.ts} +128 -102
  101. package/src/entity/BaseBillboardHandler.ts +772 -0
  102. package/src/{og/entity/Billboard.js → entity/Billboard.ts} +77 -47
  103. package/src/entity/BillboardHandler.ts +135 -0
  104. package/src/{og/entity/Entity.js → entity/Entity.ts} +285 -226
  105. package/src/{og/entity/EntityCollection.js → entity/EntityCollection.ts} +340 -247
  106. package/src/{og/entity/GeoObject.js → entity/GeoObject.ts} +122 -67
  107. package/src/{og/entity/GeoObjectHandler.js → entity/GeoObjectHandler.ts} +273 -198
  108. package/src/entity/Geometry.ts +486 -0
  109. package/src/{og/entity/GeometryHandler.js → entity/GeometryHandler.ts} +383 -541
  110. package/src/{og/entity/Label.js → entity/Label.ts} +131 -83
  111. package/src/{og/entity/LabelHandler.js → entity/LabelHandler.ts} +289 -255
  112. package/src/{og/entity/LabelWorker.js → entity/LabelWorker.ts} +26 -36
  113. package/src/{og/entity/PointCloud.js → entity/PointCloud.ts} +200 -164
  114. package/src/entity/PointCloudHandler.ts +125 -0
  115. package/src/{og/entity/Polyline.js → entity/Polyline.ts} +517 -539
  116. package/src/{og/entity/PolylineHandler.js → entity/PolylineHandler.ts} +29 -31
  117. package/src/{og/entity/Ray.js → entity/Ray.ts} +89 -60
  118. package/src/{og/entity/RayHandler.js → entity/RayHandler.ts} +201 -306
  119. package/src/{og/entity/Strip.js → entity/Strip.ts} +143 -100
  120. package/src/{og/entity/StripHandler.js → entity/StripHandler.ts} +76 -72
  121. package/src/entity/index.ts +12 -0
  122. package/src/index.ts +173 -0
  123. package/src/input/KeyboardHandler.ts +196 -0
  124. package/src/{og/input/MouseHandler.js → input/MouseHandler.ts} +46 -35
  125. package/src/input/TouchHandler.ts +54 -0
  126. package/src/{og/input/input.js → input/input.ts} +1 -3
  127. package/src/{og/layer/BaseGeoImage.js → layer/BaseGeoImage.ts} +174 -107
  128. package/src/{og/layer/CanvasTiles.js → layer/CanvasTiles.ts} +139 -105
  129. package/src/{og/layer/GeoImage.js → layer/GeoImage.ts} +62 -52
  130. package/src/layer/GeoTexture2d.ts +56 -0
  131. package/src/{og/layer/GeoVideo.js → layer/GeoVideo.ts} +53 -53
  132. package/src/{og/layer/KML.js → layer/KML.ts} +63 -74
  133. package/src/{og/layer/Layer.js → layer/Layer.ts} +399 -223
  134. package/src/{og/layer/Material.js → layer/Material.ts} +40 -35
  135. package/src/{og/layer/Vector.js → layer/Vector.ts} +319 -267
  136. package/src/{og/layer/WMS.js → layer/WMS.ts} +76 -64
  137. package/src/{og/layer/XYZ.js → layer/XYZ.ts} +123 -98
  138. package/src/layer/index.ts +12 -0
  139. package/src/{og/light/LightSource.js → light/LightSource.ts} +132 -93
  140. package/src/{og/math/Line2.js → math/Line2.ts} +11 -8
  141. package/src/{og/math/Line3.js → math/Line3.ts} +49 -27
  142. package/src/{og/math/Mat3.js → math/Mat3.ts} +43 -27
  143. package/src/{og/math/Mat4.js → math/Mat4.ts} +110 -77
  144. package/src/{og/math/Plane.js → math/Plane.ts} +28 -23
  145. package/src/{og/math/Quat.js → math/Quat.ts} +238 -222
  146. package/src/{og/math/Ray.js → math/Ray.ts} +59 -63
  147. package/src/{og/math/Vec2.js → math/Vec2.ts} +85 -76
  148. package/src/{og/math/Vec3.js → math/Vec3.ts} +141 -140
  149. package/src/{og/math/Vec4.js → math/Vec4.ts} +64 -53
  150. package/src/{og/math/coder.js → math/coder.ts} +30 -27
  151. package/src/math/index.ts +26 -0
  152. package/src/{og/math.js → math.ts} +46 -49
  153. package/src/{og/mercator.js → mercator.ts} +143 -149
  154. package/src/{og/proj/EPSG3857.js → proj/EPSG3857.ts} +1 -3
  155. package/src/{og/proj/EPSG4326.js → proj/EPSG4326.ts} +11 -13
  156. package/src/{og/proj/Proj.js → proj/Proj.ts} +27 -23
  157. package/src/{og/quadTree/EPSG4326QuadTreeStrategy.js → quadTree/EPSG4326QuadTreeStrategy.ts} +10 -13
  158. package/src/{og/quadTree/EarthQuadTreeStrategy.js → quadTree/EarthQuadTreeStrategy.ts} +11 -13
  159. package/src/quadTree/EntityCollectionNode.ts +395 -0
  160. package/src/{og/quadTree/MarsQuadTreeStrategy.js → quadTree/MarsQuadTreeStrategy.ts} +10 -13
  161. package/src/{og/quadTree/Node.js → quadTree/Node.ts} +283 -191
  162. package/src/{og/quadTree/QuadTreeStrategy.js → quadTree/QuadTreeStrategy.ts} +35 -29
  163. package/src/quadTree/Wgs84QuadTreeStrategy.ts +22 -0
  164. package/src/quadTree/index.ts +14 -0
  165. package/src/{og/quadTree/quadTree.js → quadTree/quadTree.ts} +75 -77
  166. package/src/{og/renderer/Renderer.js → renderer/Renderer.ts} +454 -298
  167. package/src/{og/renderer/RendererEvents.js → renderer/RendererEvents.ts} +347 -270
  168. package/src/{og/scene/Axes.js → scene/Axes.ts} +26 -22
  169. package/src/{og/scene/BaseNode.js → scene/BaseNode.ts} +53 -47
  170. package/src/{og/scene/Planet.js → scene/Planet.ts} +777 -595
  171. package/src/{og/scene/RenderNode.js → scene/RenderNode.ts} +105 -91
  172. package/src/{og/scene/SkyBox.js → scene/SkyBox.ts} +29 -25
  173. package/src/scene/index.ts +6 -0
  174. package/src/{og/segment/Segment.js → segment/Segment.ts} +497 -371
  175. package/src/{og/segment/SegmentLonLat.js → segment/SegmentLonLat.ts} +81 -87
  176. package/src/{og/segment/SegmentLonLatWgs84.js → segment/SegmentLonLatWgs84.ts} +9 -16
  177. package/src/{og/segment/Slice.js → segment/Slice.ts} +15 -9
  178. package/src/{og/segment/segmentHelper.js → segment/segmentHelper.ts} +57 -49
  179. package/src/{og/shaders/atmos.js → shaders/atmos.ts} +4 -6
  180. package/src/{og/shaders/billboard.js → shaders/billboard.ts} +3 -5
  181. package/src/{og/shaders/bloom.js → shaders/bloom.ts} +2 -4
  182. package/src/{og/shaders/blur.js → shaders/blur.ts} +4 -7
  183. package/src/{og/shaders/depth.js → shaders/depth.ts} +1 -3
  184. package/src/{og/shaders/drawnode.js → shaders/drawnode.ts} +19 -21
  185. package/src/{og/shaders/geoObject.js → shaders/geoObject.ts} +17 -19
  186. package/src/{og/shaders/label.js → shaders/label.ts} +4 -6
  187. package/src/{og/shaders/lumFilter.js → shaders/lumFilter.ts} +2 -4
  188. package/src/{og/shaders/pickingMask.js → shaders/pickingMask.ts} +2 -4
  189. package/src/{og/shaders/pointCloud.js → shaders/pointCloud.ts} +7 -10
  190. package/src/{og/shaders/polyline.js → shaders/polyline.ts} +3 -200
  191. package/src/{og/shaders/ray.js → shaders/ray.ts} +2 -4
  192. package/src/{og/shaders/screenFrame.js → shaders/screenFrame.ts} +2 -4
  193. package/src/{og/shaders/skybox.js → shaders/skybox.ts} +7 -9
  194. package/src/{og/shaders/toneMapping.js → shaders/toneMapping.ts} +2 -4
  195. package/src/{og/shaders/utils.js → shaders/utils.ts} +0 -2
  196. package/src/{og/terrain/BilTerrain.js → terrain/BilTerrain.ts} +38 -32
  197. package/src/terrain/EmptyTerrain.ts +230 -0
  198. package/src/{og/terrain/Geoid.js → terrain/Geoid.ts} +67 -41
  199. package/src/{og/terrain/GlobusTerrain.js → terrain/GlobusTerrain.ts} +159 -153
  200. package/src/{og/terrain/MapboxTerrain.js → terrain/MapboxTerrain.ts} +58 -61
  201. package/src/terrain/index.ts +6 -0
  202. package/src/ui/Button.ts +121 -0
  203. package/src/ui/ButtonGroup.ts +63 -0
  204. package/src/ui/Dialog.ts +244 -0
  205. package/src/ui/Slider.ts +188 -0
  206. package/src/ui/ToggleButton.ts +68 -0
  207. package/src/{og/ui/View.js → ui/View.ts} +66 -59
  208. package/src/utils/BaseWorker.ts +60 -0
  209. package/src/utils/FontAtlas.ts +356 -0
  210. package/src/{og/utils/GeoImageCreator.js → utils/GeoImageCreator.ts} +45 -29
  211. package/src/{og/utils/ImagesCacheManager.js → utils/ImagesCacheManager.ts} +85 -70
  212. package/src/utils/Loader.ts +247 -0
  213. package/src/{og/utils/NormalMapCreator.js → utils/NormalMapCreator.ts} +114 -77
  214. package/src/{og/utils/PlainSegmentWorker.js → utils/PlainSegmentWorker.ts} +41 -24
  215. package/src/{og/utils/TerrainWorker.js → utils/TerrainWorker.ts} +51 -36
  216. package/src/utils/TextureAtlas.ts +322 -0
  217. package/src/{og/utils/VectorTileCreator.js → utils/VectorTileCreator.ts} +67 -52
  218. package/src/{og/utils/colorTable.js → utils/colorTable.ts} +142 -144
  219. package/src/{og/utils/earcut.js → utils/earcut.ts} +664 -661
  220. package/src/{og/utils/objParser.js → utils/objParser.ts} +66 -37
  221. package/src/{og/utils/shared.js → utils/shared.ts} +267 -206
  222. package/src/utils/units.ts +78 -0
  223. package/src/webgl/BaseFramebuffer.ts +125 -0
  224. package/src/webgl/Framebuffer.ts +206 -0
  225. package/src/webgl/Handler.ts +1414 -0
  226. package/src/webgl/Multisample.ts +153 -0
  227. package/src/webgl/Program.ts +451 -0
  228. package/src/{og/webgl/ProgramController.js → webgl/ProgramController.ts} +44 -43
  229. package/src/webgl/index.ts +13 -0
  230. package/src/{og/webgl/types.js → webgl/types.ts} +29 -31
  231. package/src/webgl/variableHandlers.ts +114 -0
  232. package/src/og/Deferred.js +0 -11
  233. package/src/og/Events.js +0 -185
  234. package/src/og/Globe.js +0 -342
  235. package/src/og/Lock.js +0 -44
  236. package/src/og/Popup.js +0 -187
  237. package/src/og/Stack.js +0 -49
  238. package/src/og/bv/index.js +0 -4
  239. package/src/og/camera/index.js +0 -4
  240. package/src/og/control/EarthCoordinates.js +0 -214
  241. package/src/og/control/EarthNavigation.js +0 -258
  242. package/src/og/control/KeyboardNavigation.js +0 -149
  243. package/src/og/control/LayerSwitcher.js +0 -424
  244. package/src/og/control/MouseNavigation.js +0 -436
  245. package/src/og/control/MouseWheelZoomControl.js +0 -253
  246. package/src/og/control/ScaleControl.js +0 -119
  247. package/src/og/control/SegmentBoundVisualization.js +0 -54
  248. package/src/og/control/ShowFps.js +0 -40
  249. package/src/og/control/SimpleNavigation.js +0 -123
  250. package/src/og/control/ToggleWireframe.js +0 -35
  251. package/src/og/control/TouchNavigation.js +0 -350
  252. package/src/og/control/ZoomControl.js +0 -115
  253. package/src/og/control/drawing/DrawingControl.js +0 -51
  254. package/src/og/control/heightRuler/HeightRuler.js +0 -12
  255. package/src/og/control/index.js +0 -56
  256. package/src/og/control/ruler/Ruler.js +0 -39
  257. package/src/og/ellipsoid/index.js +0 -4
  258. package/src/og/entity/BillboardHandler.js +0 -883
  259. package/src/og/entity/Geometry.js +0 -320
  260. package/src/og/entity/PointCloudHandler.js +0 -122
  261. package/src/og/entity/index.js +0 -9
  262. package/src/og/index.js +0 -112
  263. package/src/og/input/KeyboardHandler.js +0 -128
  264. package/src/og/input/TouchHandler.js +0 -59
  265. package/src/og/layer/GeoTexture2d.js +0 -50
  266. package/src/og/layer/index.js +0 -11
  267. package/src/og/math/index.js +0 -23
  268. package/src/og/quadTree/EntityCollectionNode.js +0 -391
  269. package/src/og/quadTree/Wgs84QuadTreeStrategy.js +0 -27
  270. package/src/og/quadTree/index.js +0 -14
  271. package/src/og/res/images.js +0 -8
  272. package/src/og/scene/index.js +0 -5
  273. package/src/og/terrain/EmptyTerrain.js +0 -174
  274. package/src/og/terrain/index.js +0 -6
  275. package/src/og/ui/Button.js +0 -107
  276. package/src/og/ui/ButtonGroup.js +0 -57
  277. package/src/og/ui/Dialog.js +0 -239
  278. package/src/og/ui/Slider.js +0 -170
  279. package/src/og/ui/ToggleButton.js +0 -51
  280. package/src/og/ui/UIhelpers.js +0 -155
  281. package/src/og/utils/BaseWorker.js +0 -46
  282. package/src/og/utils/FontAtlas.js +0 -218
  283. package/src/og/utils/Loader.js +0 -188
  284. package/src/og/utils/TextureAtlas.js +0 -291
  285. package/src/og/utils/functionComposition.js +0 -13
  286. package/src/og/utils/units.js +0 -78
  287. package/src/og/webgl/Framebuffer.js +0 -311
  288. package/src/og/webgl/Handler.js +0 -1168
  289. package/src/og/webgl/Multisample.js +0 -275
  290. package/src/og/webgl/Program.js +0 -407
  291. package/src/og/webgl/callbacks.js +0 -98
  292. package/src/og/webgl/index.js +0 -13
  293. package/src/og.jsdoc +0 -3
  294. package/types/Clock.d.ts +0 -99
  295. package/types/Deferred.d.ts +0 -6
  296. package/types/Events.d.ts +0 -78
  297. package/types/Extent.d.ts +0 -166
  298. package/types/Globe.d.ts +0 -108
  299. package/types/ImageCanvas.d.ts +0 -128
  300. package/types/Lock.d.ts +0 -12
  301. package/types/LonLat.d.ts +0 -127
  302. package/types/Object3d.d.ts +0 -35
  303. package/types/Popup.d.ts +0 -29
  304. package/types/QueueArray.d.ts +0 -19
  305. package/types/Rectangle.d.ts +0 -80
  306. package/types/Stack.d.ts +0 -19
  307. package/types/arial.d.ts +0 -49
  308. package/types/astro/astro.d.ts +0 -38
  309. package/types/astro/earth.d.ts +0 -7
  310. package/types/astro/jd.d.ts +0 -254
  311. package/types/bv/Box.d.ts +0 -30
  312. package/types/bv/Sphere.d.ts +0 -38
  313. package/types/bv/index.d.ts +0 -3
  314. package/types/camera/Camera.d.ts +0 -314
  315. package/types/camera/Frustum.d.ts +0 -133
  316. package/types/camera/PlanetCamera.d.ts +0 -219
  317. package/types/camera/index.d.ts +0 -3
  318. package/types/cons.d.ts +0 -40
  319. package/types/control/Atmosphere.d.ts +0 -15
  320. package/types/control/CompassButton.d.ts +0 -16
  321. package/types/control/Control.d.ts +0 -104
  322. package/types/control/DebugInfo.d.ts +0 -19
  323. package/types/control/DrawingSwitcher.d.ts +0 -13
  324. package/types/control/EarthCoordinates.d.ts +0 -44
  325. package/types/control/EarthNavigation.d.ts +0 -43
  326. package/types/control/GeoImageDragControl.d.ts +0 -14
  327. package/types/control/KeyboardNavigation.d.ts +0 -24
  328. package/types/control/LayerAnimation.d.ts +0 -73
  329. package/types/control/LayerSwitcher.d.ts +0 -64
  330. package/types/control/Lighting.d.ts +0 -41
  331. package/types/control/MouseNavigation.d.ts +0 -49
  332. package/types/control/MouseWheelZoomControl.d.ts +0 -46
  333. package/types/control/ScaleControl.d.ts +0 -23
  334. package/types/control/ShowFps.d.ts +0 -11
  335. package/types/control/SimpleNavigation.d.ts +0 -26
  336. package/types/control/SimpleSkyBackground.d.ts +0 -15
  337. package/types/control/Sun.d.ts +0 -53
  338. package/types/control/ToggleWireframe.d.ts +0 -12
  339. package/types/control/TouchNavigation.d.ts +0 -54
  340. package/types/control/ZoomControl.d.ts +0 -26
  341. package/types/control/drawing/DrawingControl.d.ts +0 -14
  342. package/types/control/drawing/LineStringDrawingScene.d.ts +0 -5
  343. package/types/control/drawing/PolygonDrawingScene.d.ts +0 -99
  344. package/types/control/heightRuler/HeightRuler.d.ts +0 -6
  345. package/types/control/heightRuler/HeightRulerScene.d.ts +0 -23
  346. package/types/control/index.d.ts +0 -27
  347. package/types/control/ruler/Ruler.d.ts +0 -13
  348. package/types/control/ruler/RulerScene.d.ts +0 -51
  349. package/types/control/selection/Selection.d.ts +0 -49
  350. package/types/control/selection/SelectionScene.d.ts +0 -32
  351. package/types/control/timeline/TimelineControl.d.ts +0 -10
  352. package/types/control/timeline/TimelineModel.d.ts +0 -33
  353. package/types/control/timeline/TimelineView.d.ts +0 -57
  354. package/types/control/timeline/timelineUtils.d.ts +0 -9
  355. package/types/ellipsoid/Ellipsoid.d.ts +0 -170
  356. package/types/ellipsoid/index.d.ts +0 -3
  357. package/types/ellipsoid/wgs84.d.ts +0 -6
  358. package/types/entity/BaseBillboard.d.ts +0 -215
  359. package/types/entity/Billboard.d.ts +0 -94
  360. package/types/entity/BillboardHandler.d.ts +0 -75
  361. package/types/entity/Entity.d.ts +0 -340
  362. package/types/entity/EntityCollection.d.ts +0 -303
  363. package/types/entity/GeoObject.d.ts +0 -117
  364. package/types/entity/GeoObjectHandler.d.ts +0 -41
  365. package/types/entity/Geometry.d.ts +0 -79
  366. package/types/entity/GeometryHandler.d.ts +0 -76
  367. package/types/entity/Label.d.ts +0 -190
  368. package/types/entity/LabelHandler.d.ts +0 -31
  369. package/types/entity/LabelWorker.d.ts +0 -9
  370. package/types/entity/PointCloud.d.ts +0 -174
  371. package/types/entity/PointCloudHandler.d.ts +0 -38
  372. package/types/entity/Polyline.d.ts +0 -307
  373. package/types/entity/PolylineHandler.d.ts +0 -18
  374. package/types/entity/Ray.d.ts +0 -122
  375. package/types/entity/RayHandler.d.ts +0 -63
  376. package/types/entity/Strip.d.ts +0 -119
  377. package/types/entity/StripHandler.d.ts +0 -38
  378. package/types/entity/index.d.ts +0 -8
  379. package/types/index.d.ts +0 -53
  380. package/types/input/KeyboardHandler.d.ts +0 -10
  381. package/types/input/MouseHandler.d.ts +0 -5
  382. package/types/input/TouchHandler.d.ts +0 -5
  383. package/types/input/input.d.ts +0 -42
  384. package/types/layer/BaseGeoImage.d.ts +0 -116
  385. package/types/layer/CanvasTiles.d.ts +0 -73
  386. package/types/layer/GeoImage.d.ts +0 -51
  387. package/types/layer/GeoTexture2d.d.ts +0 -7
  388. package/types/layer/GeoVideo.d.ts +0 -47
  389. package/types/layer/KML.d.ts +0 -93
  390. package/types/layer/Layer.d.ts +0 -320
  391. package/types/layer/Material.d.ts +0 -45
  392. package/types/layer/Vector.d.ts +0 -211
  393. package/types/layer/WMS.d.ts +0 -66
  394. package/types/layer/XYZ.d.ts +0 -122
  395. package/types/layer/index.d.ts +0 -10
  396. package/types/light/LightSource.d.ts +0 -178
  397. package/types/math/Line2.d.ts +0 -11
  398. package/types/math/Line3.d.ts +0 -10
  399. package/types/math/Mat3.d.ts +0 -65
  400. package/types/math/Mat4.d.ts +0 -176
  401. package/types/math/Plane.d.ts +0 -18
  402. package/types/math/Quat.d.ts +0 -379
  403. package/types/math/Ray.d.ts +0 -82
  404. package/types/math/Vec2.d.ts +0 -309
  405. package/types/math/Vec3.d.ts +0 -472
  406. package/types/math/Vec4.d.ts +0 -161
  407. package/types/math/coder.d.ts +0 -43
  408. package/types/math/index.d.ts +0 -11
  409. package/types/math.d.ts +0 -268
  410. package/types/mercator.d.ts +0 -92
  411. package/types/proj/EPSG3857.d.ts +0 -6
  412. package/types/proj/EPSG4326.d.ts +0 -6
  413. package/types/proj/Proj.d.ts +0 -42
  414. package/types/quadTree/EPSG4326QuadTreeStrategy.d.ts +0 -3
  415. package/types/quadTree/EarthQuadTreeStrategy.d.ts +0 -3
  416. package/types/quadTree/EntityCollectionNode.d.ts +0 -41
  417. package/types/quadTree/MarsQuadTreeStrategy.d.ts +0 -3
  418. package/types/quadTree/Node.d.ts +0 -58
  419. package/types/quadTree/QuadTreeStrategy.d.ts +0 -21
  420. package/types/quadTree/Wgs84QuadTreeStrategy.d.ts +0 -3
  421. package/types/quadTree/index.d.ts +0 -12
  422. package/types/quadTree/quadTree.d.ts +0 -40
  423. package/types/renderer/Renderer.d.ts +0 -291
  424. package/types/renderer/RendererEvents.d.ts +0 -255
  425. package/types/res/images.d.ts +0 -2
  426. package/types/scene/Axes.d.ts +0 -10
  427. package/types/scene/BaseNode.d.ts +0 -60
  428. package/types/scene/Planet.d.ts +0 -595
  429. package/types/scene/RenderNode.d.ts +0 -152
  430. package/types/scene/SkyBox.d.ts +0 -9
  431. package/types/scene/index.d.ts +0 -4
  432. package/types/segment/Segment.d.ts +0 -273
  433. package/types/segment/SegmentLonLat.d.ts +0 -22
  434. package/types/segment/SegmentLonLatWgs84.d.ts +0 -4
  435. package/types/segment/Slice.d.ts +0 -10
  436. package/types/segment/segmentHelper.d.ts +0 -13
  437. package/types/shaders/atmos.d.ts +0 -4
  438. package/types/shaders/billboard.d.ts +0 -3
  439. package/types/shaders/depth.d.ts +0 -2
  440. package/types/shaders/drawnode.d.ts +0 -8
  441. package/types/shaders/geoObject.d.ts +0 -3
  442. package/types/shaders/label.d.ts +0 -4
  443. package/types/shaders/pickingMask.d.ts +0 -2
  444. package/types/shaders/pointCloud.d.ts +0 -2
  445. package/types/shaders/polyline.d.ts +0 -3
  446. package/types/shaders/ray.d.ts +0 -2
  447. package/types/shaders/screenFrame.d.ts +0 -2
  448. package/types/shaders/skybox.d.ts +0 -2
  449. package/types/shaders/toneMapping.d.ts +0 -2
  450. package/types/shaders/utils.d.ts +0 -1
  451. package/types/terrain/BilTerrain.d.ts +0 -14
  452. package/types/terrain/EmptyTerrain.d.ts +0 -87
  453. package/types/terrain/Geoid.d.ts +0 -17
  454. package/types/terrain/GlobusTerrain.d.ts +0 -122
  455. package/types/terrain/MapboxTerrain.d.ts +0 -14
  456. package/types/terrain/index.d.ts +0 -5
  457. package/types/ui/Button.d.ts +0 -21
  458. package/types/ui/ButtonGroup.d.ts +0 -12
  459. package/types/ui/Dialog.d.ts +0 -41
  460. package/types/ui/Slider.d.ts +0 -33
  461. package/types/ui/ToggleButton.d.ts +0 -10
  462. package/types/ui/UIhelpers.d.ts +0 -13
  463. package/types/ui/View.d.ts +0 -33
  464. package/types/ui/icons.d.ts +0 -1
  465. package/types/utils/BaseWorker.d.ts +0 -14
  466. package/types/utils/FontAtlas.d.ts +0 -16
  467. package/types/utils/GeoImageCreator.d.ts +0 -30
  468. package/types/utils/ImagesCacheManager.d.ts +0 -10
  469. package/types/utils/Loader.d.ts +0 -31
  470. package/types/utils/NormalMapCreator.d.ts +0 -39
  471. package/types/utils/PlainSegmentWorker.d.ts +0 -8
  472. package/types/utils/TerrainWorker.d.ts +0 -7
  473. package/types/utils/TextureAtlas.d.ts +0 -113
  474. package/types/utils/VectorTileCreator.d.ts +0 -14
  475. package/types/utils/colorTable.d.ts +0 -143
  476. package/types/utils/earcut.d.ts +0 -6
  477. package/types/utils/functionComposition.d.ts +0 -5
  478. package/types/utils/objParser.d.ts +0 -8
  479. package/types/utils/shared.d.ts +0 -241
  480. package/types/utils/units.d.ts +0 -20
  481. package/types/webgl/Framebuffer.d.ts +0 -134
  482. package/types/webgl/Handler.d.ts +0 -403
  483. package/types/webgl/Multisample.d.ts +0 -91
  484. package/types/webgl/Program.d.ts +0 -163
  485. package/types/webgl/ProgramController.d.ts +0 -89
  486. package/types/webgl/callbacks.d.ts +0 -1
  487. package/types/webgl/index.d.ts +0 -6
  488. package/types/webgl/types.d.ts +0 -2
  489. /package/{src/og → dist/@openglobus/res/fonts}/arial.js +0 -0
  490. /package/src/{og/ui/icons.js → ui/icons.ts} +0 -0
@@ -1,352 +1,324 @@
1
- "use strict";
2
-
3
- import { LonLat } from "./LonLat.js";
4
- import * as math from "./math.js";
5
- import * as mercator from "./mercator.js";
6
-
7
- /**
8
- * Represents geographical coordinates extent.
9
- * @class
10
- * @param {LonLat} [sw] - South West extent corner coordinates.
11
- * @param {LonLat} [ne] - North East extent corner coordinates.
12
- */
13
- export class Extent {
14
- /**
15
- * @param {LonLat} [sw] - South West extent corner coordinates.
16
- * @param {LonLat} [ne] - North East extent corner coordinates.
17
- */
18
- constructor(sw = new LonLat(), ne = new LonLat()) {
19
- /**
20
- * @public
21
- */
22
- this.southWest = sw;
23
- /**
24
- * @public
25
- */
26
- this.northEast = ne;
27
- }
28
-
29
- /**
30
- * Whole mercator extent.
31
- * @const
32
- */
33
- static get FULL_MERC() {
34
- return new Extent(LonLat.SW_MERC, LonLat.NE_MERC);
35
- }
36
-
37
- /**
38
- * Degrees extent from north mercator limit to north pole.
39
- * @const
40
- */
41
- static get NORTH_POLE_DEG() {
42
- return new Extent(LonLat.NW_MERC_DEG, new LonLat(180.0, 90.0));
43
- }
44
-
45
- /**
46
- * Degrees extent from south pole to south mercator limit.
47
- * @const
48
- */
49
- static get SOUTH_POLE_DEG() {
50
- return new Extent(new LonLat(-180.0, -90.0), LonLat.SE_MERC_DEG);
51
- }
52
-
53
- /**
54
- * Creates extent instance from values in array.
55
- * @static
56
- * @param {Array.<number>} arr - South west and north east longitude and latidudes packed in array. (exactly 4 entries)
57
- * @return {Extent} Extent object.
58
- */
59
- static createFromArray(arr) {
60
- return new Extent(new LonLat(arr[0], arr[1]), new LonLat(arr[2], arr[3]));
61
- }
62
-
63
- /**
64
- * Creates bound extent instance by coordinate array.
65
- * @static
66
- * @param {Array.<LonLat>} arr - Coordinate array.
67
- * @return {Extent} Extent object.
68
- */
69
- static createByCoordinates(arr) {
70
- let lonmin = math.MAX,
71
- lonmax = math.MIN,
72
- latmin = math.MAX,
73
- latmax = math.MIN;
74
- for (let i = 0; i < arr.length; i++) {
75
- const vi = arr[i];
76
- if (vi.lon < lonmin) lonmin = vi.lon;
77
- if (vi.lon > lonmax) lonmax = vi.lon;
78
- if (vi.lat < latmin) latmin = vi.lat;
79
- if (vi.lat > latmax) latmax = vi.lat;
80
- }
81
- return new Extent(new LonLat(lonmin, latmin), new LonLat(lonmax, latmax));
82
- }
83
-
84
- /**
85
- * Creates bound extent instance by coordinates array.
86
- * @static
87
- * @param {Array.<Array<number>>} arr - Coordinate array. (exactly 2 entries)
88
- * @return {Extent} Extent object.
89
- */
90
- static createByCoordinatesArr(arr) {
91
- let lonmin = math.MAX,
92
- lonmax = math.MIN,
93
- latmin = math.MAX,
94
- latmax = math.MIN;
95
- for (let i = 0; i < arr.length; i++) {
96
- const vi = arr[i];
97
- if (vi[0] < lonmin) lonmin = vi[0];
98
- if (vi[0] > lonmax) lonmax = vi[0];
99
- if (vi[1] < latmin) latmin = vi[1];
100
- if (vi[1] > latmax) latmax = vi[1];
101
- }
102
- return new Extent(new LonLat(lonmin, latmin), new LonLat(lonmax, latmax));
103
- }
104
-
105
- /**
106
- * Creates extent by meractor grid tile coordinates.
107
- * @static
108
- * @param {number} x -
109
- * @param {number} y -
110
- * @param {number} z -
111
- * @param {number} width -
112
- * @param {number} height -
113
- * @returns {Extent} -
114
- */
115
- static fromTile(x, y, z, width, height) {
116
- width = width || mercator.POLE_DOUBLE;
117
- height = height || mercator.POLE_DOUBLE;
118
- const H = Math.pow(2, z),
119
- W = Math.pow(2, z),
120
- lnSize = width / W,
121
- ltSize = height / H;
122
-
123
- const left = -width * 0.5 + x * lnSize,
124
- top = height * 0.5 - y * ltSize,
125
- bottom = top - ltSize,
126
- right = left + lnSize;
127
-
128
- return new Extent(new LonLat(left, bottom), new LonLat(right, top));
129
- }
130
-
131
- /**
132
- * Sets current bounding extent object by coordinate array.
133
- * @public
134
- * @param {Array.<LonLat>} arr - Coordinate array.
135
- * @return {Extent} Current extent.
136
- */
137
- setByCoordinates(arr) {
138
- let lonmin = math.MAX,
139
- lonmax = math.MIN,
140
- latmin = math.MAX,
141
- latmax = math.MIN;
142
- for (let i = 0; i < arr.length; i++) {
143
- const vi = arr[i];
144
- if (vi.lon < lonmin) lonmin = vi.lon;
145
- if (vi.lon > lonmax) lonmax = vi.lon;
146
- if (vi.lat < latmin) latmin = vi.lat;
147
- if (vi.lat > latmax) latmax = vi.lat;
148
- }
149
- this.southWest.lon = lonmin;
150
- this.southWest.lat = latmin;
151
- this.northEast.lon = lonmax;
152
- this.northEast.lat = latmax;
153
- return this;
154
- }
155
-
156
- /**
157
- * Determines if point inside extent.
158
- * @public
159
- * @param {LonLat} lonlat - Coordinate point.
160
- * @return {boolean} Returns true if point inside extent.
161
- */
162
- isInside(lonlat) {
163
- const sw = this.southWest,
164
- ne = this.northEast;
165
- return (
166
- lonlat.lon >= sw.lon &&
167
- lonlat.lon <= ne.lon &&
168
- lonlat.lat >= sw.lat &&
169
- lonlat.lat <= ne.lat
170
- );
171
- }
172
-
173
- /**
174
- * Returns true if two extent overlap each other.
175
- * @public
176
- * @param {Extent} e - Another extent.
177
- * @return {boolean} -
178
- */
179
- overlaps(e) {
180
- const sw = this.southWest,
181
- ne = this.northEast;
182
- return (
183
- sw.lon <= e.northEast.lon &&
184
- ne.lon >= e.southWest.lon &&
185
- sw.lat <= e.northEast.lat &&
186
- ne.lat >= e.southWest.lat
187
- );
188
- }
189
-
190
- /**
191
- * Gets extent width.
192
- * @public
193
- * @return {number} Extent width.
194
- */
195
- getWidth() {
196
- return this.northEast.lon - this.southWest.lon;
197
- }
198
-
199
- /**
200
- * Gets extent height.
201
- * @public
202
- * @return {number} Extent height.
203
- */
204
- getHeight() {
205
- return this.northEast.lat - this.southWest.lat;
206
- }
207
-
208
- /**
209
- * Creates clone instance of the current extent.
210
- * @public
211
- * @return {Extent} Extent clone.
212
- */
213
- clone() {
214
- return new Extent(this.southWest.clone(), this.northEast.clone());
215
- }
216
-
217
- /**
218
- * Gets the center coordinate of the extent.
219
- * @public
220
- * @return {number} Center coordinate.
221
- */
222
- getCenter() {
223
- const sw = this.southWest,
224
- ne = this.northEast;
225
- return new LonLat(sw.lon + (ne.lon - sw.lon) * 0.5, sw.lat + (ne.lat - sw.lat) * 0.5);
226
- }
227
-
228
- /**
229
- * @public
230
- */
231
- getNorthWest() {
232
- return new LonLat(this.southWest.lon, this.northEast.lat);
233
- }
234
-
235
- /**
236
- * @public
237
- */
238
- getNorthEast() {
239
- return new LonLat(this.northEast.lon, this.northEast.lat);
240
- }
241
-
242
- getSouthWest() {
243
- return new LonLat(this.southWest.lon, this.southWest.lat);
244
- }
245
-
246
- /**
247
- * @public
248
- */
249
- getSouthEast() {
250
- return new LonLat(this.northEast.lon, this.southWest.lat);
251
- }
252
-
253
- /**
254
- * @public
255
- */
256
- getNorth() {
257
- return this.northEast.lat;
258
- }
259
-
260
- getEast() {
261
- return this.northEast.lon;
262
- }
263
-
264
- /**
265
- * @public
266
- */
267
- getWest() {
268
- return this.southWest.lon;
269
- }
270
-
271
- /**
272
- * @public
273
- */
274
- getSouth() {
275
- return this.southWest.lat;
276
- }
277
-
278
- /**
279
- * Returns extents are equals.
280
- * @param {Extent} extent - Extent.
281
- * @returns {boolean} -
282
- */
283
- equals(extent) {
284
- return (
285
- this.southWest.lon === extent.southWest.lon &&
286
- this.southWest.lat === extent.southWest.lat &&
287
- this.northEast.lon === extent.northEast.lon &&
288
- this.northEast.lat === extent.northEast.lat
289
- );
290
- }
291
-
292
- /**
293
- * Converts extent coordinates to mercator projection coordinates.
294
- * @public
295
- * @return {Extent} New instance of the current extent.
296
- */
297
- forwardMercator() {
298
- return new Extent(this.southWest.forwardMercator(), this.northEast.forwardMercator());
299
- }
300
-
301
- /**
302
- * Converts extent coordinates from mercator projection to degrees.
303
- * @public
304
- * @return {Extent} New instance of the current extent.
305
- */
306
- inverseMercator() {
307
- return new Extent(this.southWest.inverseMercator(), this.northEast.inverseMercator());
308
- }
309
-
310
- /**
311
- * Gets cartesian bounding bounds of the current ellipsoid.
312
- * @public
313
- * @param {Ellipsoid} ellipsoid - Ellipsoid.
314
- * @return {Array.<number>} Cartesian 3d coordinate array. (exactly 6 entries)
315
- */
316
- getCartesianBounds(ellipsoid) {
317
- let xmin = math.MAX,
318
- xmax = math.MIN,
319
- ymin = math.MAX,
320
- ymax = math.MIN,
321
- zmin = math.MAX,
322
- zmax = math.MIN;
323
-
324
- const v = [
325
- new LonLat(this.southWest.lon, this.southWest.lat),
326
- new LonLat(this.southWest.lon, this.northEast.lat),
327
- new LonLat(this.northEast.lon, this.northEast.lat),
328
- new LonLat(this.northEast.lon, this.southWest.lat)
329
- ];
330
-
331
- for (let i = 0; i < v.length; i++) {
332
- const coord = ellipsoid.lonLatToCartesian(v[i]);
333
- const x = coord.x,
334
- y = coord.y,
335
- z = coord.z;
336
- if (x < xmin) xmin = x;
337
- if (x > xmax) xmax = x;
338
- if (y < ymin) ymin = y;
339
- if (y > ymax) ymax = y;
340
- if (z < zmin) zmin = z;
341
- if (z > zmax) zmax = z;
342
- }
343
-
344
- return [xmin, ymin, zmin, xmax, ymax, zmax];
345
- }
346
-
347
- toString() {
348
- return (
349
- `[${this.southWest.lon.toFixed(5)}, ${this.southWest.lat.toFixed(5)}, ${this.northEast.lon.toFixed(5)}, ${this.northEast.lat.toFixed(5)}]`
350
- );
351
- }
352
- }
1
+ import * as math from "./math";
2
+ import * as mercator from "./mercator";
3
+ import {Ellipsoid} from "./ellipsoid/Ellipsoid";
4
+ import {LonLat} from "./LonLat";
5
+
6
+ /**
7
+ * Represents geographical coordinates extent.
8
+ * @class
9
+ * @param {LonLat} [sw] - South West extent corner coordinates.
10
+ * @param {LonLat} [ne] - North East extent corner coordinates.
11
+ */
12
+ export class Extent {
13
+ public southWest: LonLat;
14
+ public northEast: LonLat;
15
+
16
+ constructor(sw: LonLat = new LonLat(), ne: LonLat = new LonLat()) {
17
+ this.southWest = sw;
18
+ this.northEast = ne;
19
+ }
20
+
21
+ /**
22
+ * Creates extent instance from values in array.
23
+ * @static
24
+ * @param {Array.<number>} arr - South west and north-east longitude and latitudes packed in array. (exactly 4 entries)
25
+ * @return {Extent} Extent object.
26
+ */
27
+ static createFromArray(arr: [number, number, number, number]): Extent {
28
+ return new Extent(new LonLat(arr[0], arr[1]), new LonLat(arr[2], arr[3]));
29
+ }
30
+
31
+ /**
32
+ * Creates bound extent instance by coordinate array.
33
+ * @static
34
+ * @param {Array.<LonLat>} arr - Coordinate array.
35
+ * @return {Extent} Extent object.
36
+ */
37
+ static createByCoordinates(arr: LonLat[]): Extent {
38
+ let lonmin = math.MAX,
39
+ lonmax = math.MIN,
40
+ latmin = math.MAX,
41
+ latmax = math.MIN;
42
+ for (let i = 0; i < arr.length; i++) {
43
+ const vi = arr[i];
44
+ if (vi.lon < lonmin) lonmin = vi.lon;
45
+ if (vi.lon > lonmax) lonmax = vi.lon;
46
+ if (vi.lat < latmin) latmin = vi.lat;
47
+ if (vi.lat > latmax) latmax = vi.lat;
48
+ }
49
+ return new Extent(new LonLat(lonmin, latmin), new LonLat(lonmax, latmax));
50
+ }
51
+
52
+ /**
53
+ * Creates bound extent instance by coordinates array.
54
+ * @static
55
+ * @param {Array.<Array<number>>} arr - Coordinate array. (exactly 2 entries)
56
+ * @return {Extent} Extent object.
57
+ */
58
+ static createByCoordinatesArr(arr: [number, number][]): Extent {
59
+ let lonmin = math.MAX,
60
+ lonmax = math.MIN,
61
+ latmin = math.MAX,
62
+ latmax = math.MIN;
63
+ for (let i = 0; i < arr.length; i++) {
64
+ const vi = arr[i];
65
+ if (vi[0] < lonmin) lonmin = vi[0];
66
+ if (vi[0] > lonmax) lonmax = vi[0];
67
+ if (vi[1] < latmin) latmin = vi[1];
68
+ if (vi[1] > latmax) latmax = vi[1];
69
+ }
70
+ return new Extent(new LonLat(lonmin, latmin), new LonLat(lonmax, latmax));
71
+ }
72
+
73
+ /**
74
+ * Creates extent by merсator grid tile coordinates.
75
+ * @static
76
+ * @param {number} x -
77
+ * @param {number} y -
78
+ * @param {number} z -
79
+ * @param {number} width -
80
+ * @param {number} height -
81
+ * @returns {Extent} -
82
+ */
83
+ static fromTile(
84
+ x: number,
85
+ y: number,
86
+ z: number,
87
+ width: number = mercator.POLE_DOUBLE,
88
+ height: number = mercator.POLE_DOUBLE): Extent {
89
+ const H = Math.pow(2, z);
90
+ const W = Math.pow(2, z);
91
+ const lnSize = width / W;
92
+ const ltSize = height / H;
93
+
94
+ const left = -width * 0.5 + x * lnSize,
95
+ top = height * 0.5 - y * ltSize,
96
+ bottom = top - ltSize,
97
+ right = left + lnSize;
98
+
99
+ return new Extent(new LonLat(left, bottom), new LonLat(right, top));
100
+ }
101
+
102
+ /**
103
+ * Sets current bounding extent object by coordinate array.
104
+ * @public
105
+ * @param {Array.<LonLat>} arr - Coordinate array.
106
+ * @return {Extent} Current extent.
107
+ */
108
+ public setByCoordinates(arr: LonLat[]): Extent {
109
+ let lonmin = math.MAX,
110
+ lonmax = math.MIN,
111
+ latmin = math.MAX,
112
+ latmax = math.MIN;
113
+ for (let i = 0; i < arr.length; i++) {
114
+ const vi = arr[i];
115
+ if (vi.lon < lonmin) lonmin = vi.lon;
116
+ if (vi.lon > lonmax) lonmax = vi.lon;
117
+ if (vi.lat < latmin) latmin = vi.lat;
118
+ if (vi.lat > latmax) latmax = vi.lat;
119
+ }
120
+ this.southWest.lon = lonmin;
121
+ this.southWest.lat = latmin;
122
+ this.northEast.lon = lonmax;
123
+ this.northEast.lat = latmax;
124
+ return this;
125
+ }
126
+
127
+ /**
128
+ * Determines if point inside extent.
129
+ * @public
130
+ * @param {LonLat} lonlat - Coordinate point.
131
+ * @return {boolean} Returns true if point inside extent.
132
+ */
133
+ public isInside(lonlat: LonLat): boolean {
134
+ const sw = this.southWest;
135
+ const ne = this.northEast;
136
+ return (
137
+ lonlat.lon >= sw.lon && lonlat.lon <= ne.lon &&
138
+ lonlat.lat >= sw.lat && lonlat.lat <= ne.lat
139
+ );
140
+ }
141
+
142
+ /**
143
+ * Returns true if two extent overlap each other.
144
+ * @public
145
+ * @param {Extent} e - Another extent.
146
+ * @return {boolean} -
147
+ */
148
+ public overlaps(e: Extent): boolean {
149
+ const sw = this.southWest;
150
+ const ne = this.northEast;
151
+ return (
152
+ sw.lon <= e.northEast.lon &&
153
+ ne.lon >= e.southWest.lon &&
154
+ sw.lat <= e.northEast.lat &&
155
+ ne.lat >= e.southWest.lat
156
+ );
157
+ }
158
+
159
+ /**
160
+ * Gets extent width.
161
+ * @public
162
+ * @return {number} Extent width.
163
+ */
164
+ public getWidth(): number {
165
+ return this.northEast.lon - this.southWest.lon;
166
+ }
167
+
168
+ /**
169
+ * Gets extent height.
170
+ * @public
171
+ * @return {number} Extent height.
172
+ */
173
+ public getHeight(): number {
174
+ return this.northEast.lat - this.southWest.lat;
175
+ }
176
+
177
+ /**
178
+ * Creates clone instance of the current extent.
179
+ * @public
180
+ * @return {Extent} Extent clone.
181
+ */
182
+ public clone(): Extent {
183
+ return new Extent(this.southWest.clone(), this.northEast.clone());
184
+ }
185
+
186
+ /**
187
+ * Gets the center coordinate of the extent.
188
+ * @public
189
+ * @return {number} Center coordinate.
190
+ */
191
+ public getCenter(): LonLat {
192
+ const sw = this.southWest;
193
+ const ne = this.northEast;
194
+ return new LonLat(sw.lon + (ne.lon - sw.lon) * 0.5, sw.lat + (ne.lat - sw.lat) * 0.5);
195
+ }
196
+
197
+ /**
198
+ * @public
199
+ */
200
+ public getNorthWest(): LonLat {
201
+ return new LonLat(this.southWest.lon, this.northEast.lat);
202
+ }
203
+
204
+ /**
205
+ * @public
206
+ */
207
+ public getNorthEast(): LonLat {
208
+ return new LonLat(this.northEast.lon, this.northEast.lat);
209
+ }
210
+
211
+ /**
212
+ * @public
213
+ */
214
+ public getSouthWest(): LonLat {
215
+ return new LonLat(this.southWest.lon, this.southWest.lat);
216
+ }
217
+
218
+ /**
219
+ * @public
220
+ */
221
+ public getSouthEast(): LonLat {
222
+ return new LonLat(this.northEast.lon, this.southWest.lat);
223
+ }
224
+
225
+ /**
226
+ * @public
227
+ */
228
+ public getNorth(): number {
229
+ return this.northEast.lat;
230
+ }
231
+
232
+ public getEast(): number {
233
+ return this.northEast.lon;
234
+ }
235
+
236
+ /**
237
+ * @public
238
+ */
239
+ public getWest(): number {
240
+ return this.southWest.lon;
241
+ }
242
+
243
+ /**
244
+ * @public
245
+ */
246
+ public getSouth(): number {
247
+ return this.southWest.lat;
248
+ }
249
+
250
+ /**
251
+ * Returns extents are equals.
252
+ * @param {Extent} extent - Extent.
253
+ * @returns {boolean} -
254
+ */
255
+ public equals(extent: Extent): boolean {
256
+ return (
257
+ this.southWest.lon === extent.southWest.lon &&
258
+ this.southWest.lat === extent.southWest.lat &&
259
+ this.northEast.lon === extent.northEast.lon &&
260
+ this.northEast.lat === extent.northEast.lat
261
+ );
262
+ }
263
+
264
+ /**
265
+ * Converts extent coordinates to mercator projection coordinates.
266
+ * @public
267
+ * @return {Extent} New instance of the current extent.
268
+ */
269
+ public forwardMercator(): Extent {
270
+ return new Extent(this.southWest.forwardMercator(), this.northEast.forwardMercator());
271
+ }
272
+
273
+ /**
274
+ * Converts extent coordinates from mercator projection to degrees.
275
+ * @public
276
+ * @return {Extent} New instance of the current extent.
277
+ */
278
+ public inverseMercator(): Extent {
279
+ return new Extent(this.southWest.inverseMercator(), this.northEast.inverseMercator());
280
+ }
281
+
282
+ /**
283
+ * Gets cartesian bounding bounds of the current ellipsoid.
284
+ * @public
285
+ * @param {Ellipsoid} ellipsoid - Ellipsoid.
286
+ * @return {Array.<number>} Cartesian 3d coordinate array. (exactly 6 entries)
287
+ */
288
+ public getCartesianBounds(ellipsoid: Ellipsoid): [number, number, number, number, number, number] {
289
+ let xmin = math.MAX,
290
+ xmax = math.MIN,
291
+ ymin = math.MAX,
292
+ ymax = math.MIN,
293
+ zmin = math.MAX,
294
+ zmax = math.MIN;
295
+
296
+ const v = [
297
+ new LonLat(this.southWest.lon, this.southWest.lat),
298
+ new LonLat(this.southWest.lon, this.northEast.lat),
299
+ new LonLat(this.northEast.lon, this.northEast.lat),
300
+ new LonLat(this.northEast.lon, this.southWest.lat)
301
+ ];
302
+
303
+ for (let i = 0; i < v.length; i++) {
304
+ const coord = ellipsoid.lonLatToCartesian(v[i]);
305
+ const x = coord.x;
306
+ const y = coord.y;
307
+ const z = coord.z;
308
+ if (x < xmin) xmin = x;
309
+ if (x > xmax) xmax = x;
310
+ if (y < ymin) ymin = y;
311
+ if (y > ymax) ymax = y;
312
+ if (z < zmin) zmin = z;
313
+ if (z > zmax) zmax = z;
314
+ }
315
+
316
+ return [xmin, ymin, zmin, xmax, ymax, zmax];
317
+ }
318
+
319
+ public toString(): string {
320
+ return (
321
+ `[${this.southWest.lon.toFixed(5)}, ${this.southWest.lat.toFixed(5)}, ${this.northEast.lon.toFixed(5)}, ${this.northEast.lat.toFixed(5)}]`
322
+ );
323
+ }
324
+ }