@openglobus/og 0.18.0 → 0.18.1

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} +82 -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} +101 -373
  160. package/lib/js/entity/EntityCollection.d.ts +364 -0
  161. package/{src/entity/EntityCollection.ts → lib/js/entity/EntityCollection.js} +51 -353
  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} +62 -164
  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 +244 -0
  221. package/{src/layer/Vector.ts → lib/js/layer/Vector.js} +147 -418
  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 +311 -0
  283. package/{src/renderer/Renderer.ts → lib/js/renderer/Renderer.js} +169 -611
  284. package/lib/js/renderer/RendererEvents.d.ts +237 -0
  285. package/{src/renderer/RendererEvents.ts → lib/js/renderer/RendererEvents.js} +134 -471
  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} +251 -935
  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} +82 -239
  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} +45 -181
  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} +184 -341
  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,20 +1,5 @@
1
- import {binarySearchFast, TypedArray} from "../utils/shared";
2
- import {Geoid} from "./Geoid";
3
- import {LonLat} from "../LonLat";
4
- import {Planet} from "../scene/Planet";
5
- import {Segment} from "../segment/Segment";
6
-
7
- export interface IEmptyTerrainParams {
8
- equalizeVertices?: boolean;
9
- name?: string;
10
- minZoom?: number;
11
- maxZoom?: number;
12
- maxNativeZoom?: number;
13
- geoidSrc?: string;
14
- geoid?: Geoid;
15
- gridSizeByZoom?: number[]
16
- }
17
-
1
+ import { binarySearchFast } from "../utils/shared";
2
+ import { Geoid } from "./Geoid";
18
3
  /**
19
4
  * Class represents terrain provider without elevation data.
20
5
  * @param {IEmptyTerrainParams} [options] - Provider options:
@@ -29,202 +14,93 @@ export interface IEmptyTerrainParams {
29
14
  * @param {string} [options.geoidSrc] -
30
15
  */
31
16
  class EmptyTerrain {
32
-
33
- static __counter__: number = 0;
34
-
35
- /**
36
- * Uniq identifier.
37
- * @public
38
- * @type {number}
39
- */
40
- public __id: number;
41
-
42
- public equalizeVertices: boolean;
43
-
44
- public equalizeNormals: boolean;
45
-
46
- public isEmpty: boolean;
47
-
48
- /**
49
- * Provider name is "empty"
50
- * @public
51
- * @type {string}
52
- */
53
- public name: string;
54
-
55
- /**
56
- * Minimal z-index value for segment elevation data handling.
57
- * @public
58
- * @type {number}
59
- */
60
- public minZoom: number;
61
-
62
- /**
63
- * Maximal z-index value for segment elevation data handling.
64
- * @public
65
- * @type {number}
66
- */
67
- public maxZoom: number;
68
-
69
- public noDataValues: number[];
70
-
71
- /**
72
- * Maximal existent available zoom
73
- * @type {number}
74
- */
75
- public maxNativeZoom: number;
76
-
77
- /**
78
- * @public
79
- * @type {Array.<number>}
80
- */
81
- public gridSizeByZoom: number[];
82
-
83
- public _maxNodeZoom: number;
84
-
85
- /**
86
- * Elevation grid size. Current is 2x2 is the smallest grid size.
87
- * @public
88
- * @type {number}
89
- */
90
- public plainGridSize: number;
91
-
92
- /**
93
- * Planet scene.
94
- * @public
95
- * @type {Planet}
96
- */
97
- public _planet: Planet | null;
98
-
99
- public _geoid: Geoid;
100
-
101
- public _isReady: boolean;
102
-
103
- constructor(options: IEmptyTerrainParams = {}) {
104
-
17
+ constructor(options = {}) {
105
18
  this.__id = EmptyTerrain.__counter__++;
106
-
107
19
  this.equalizeVertices = options.equalizeVertices || false;
108
-
109
20
  this.equalizeNormals = false;
110
-
111
21
  this.isEmpty = true;
112
-
113
22
  this.name = options.name || "empty";
114
-
115
23
  this.minZoom = options.minZoom || 2;
116
-
117
24
  this.maxZoom = options.maxZoom || 19;
118
-
119
25
  this.maxNativeZoom = options.maxNativeZoom || this.maxZoom;
120
-
121
26
  this.gridSizeByZoom = options.gridSizeByZoom || [
122
27
  64, 32, 16, 8, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
123
28
  ];
124
-
125
29
  this._maxNodeZoom = this.gridSizeByZoom.length - 1;
126
-
127
30
  this.plainGridSize = 2;
128
-
129
31
  this.noDataValues = [];
130
-
131
32
  this._planet = null;
132
-
133
33
  this._geoid = options.geoid || new Geoid({
134
34
  src: options.geoidSrc || null
135
35
  });
136
-
137
36
  this._isReady = false;
138
-
139
37
  // const _ellToAltFn = [
140
38
  // (lon, lat, alt, callback) => callback(alt),
141
39
  // (lon, lat, alt, callback) => callback(alt - this._geoid.getHeight(lon, lat)),
142
40
  // (lon, lat, alt, callback) => {
143
-
144
41
  // let x = mercator.getTileX(lon, zoom),
145
42
  // y = mercator.getTileY(lat, zoom);
146
-
147
43
  // let mslAlt = alt - this._geoid.getHeight(lon, lat);
148
-
149
44
  // if (true) {
150
-
151
45
  // } else {
152
-
153
46
  // }
154
-
155
47
  // return callback(mslAlt);
156
48
  // },
157
49
  // ];
158
50
  }
159
-
160
- public get isIdle(): boolean {
51
+ get isIdle() {
161
52
  return true;
162
53
  }
163
-
164
- public isEqual(obj: this): boolean {
54
+ isEqual(obj) {
165
55
  return obj.__id === this.__id;
166
56
  }
167
-
168
- static checkNoDataValue(noDataValues: number[] | TypedArray, value: number): boolean {
57
+ static checkNoDataValue(noDataValues, value) {
169
58
  return binarySearchFast(noDataValues, value) !== -1;
170
59
  }
171
-
172
- public isBlur(segment?: Segment): boolean {
60
+ isBlur(segment) {
173
61
  return false;
174
62
  }
175
-
176
- public set maxNodeZoom(val: number) {
63
+ set maxNodeZoom(val) {
177
64
  if (val > this.gridSizeByZoom.length - 1) {
178
65
  val = this.gridSizeByZoom.length - 1;
179
66
  }
180
67
  this._maxNodeZoom = val;
181
68
  }
182
-
183
- public get maxNodeZoom(): number {
69
+ get maxNodeZoom() {
184
70
  return this._maxNodeZoom;
185
71
  }
186
-
187
- public set geoid(geoid: Geoid) {
72
+ set geoid(geoid) {
188
73
  this._geoid = geoid;
189
74
  }
190
-
191
- public get geoid(): Geoid {
75
+ get geoid() {
192
76
  return this._geoid;
193
77
  }
194
-
195
- public getGeoid(): Geoid {
78
+ getGeoid() {
196
79
  return this._geoid;
197
80
  }
198
-
199
81
  /**
200
82
  * Loads or creates segment elevation data.
201
83
  * @public
202
84
  * @param {Segment} segment - Segment to create elevation data.
203
85
  */
204
- public handleSegmentTerrain(segment: Segment) {
86
+ handleSegmentTerrain(segment) {
205
87
  segment.terrainIsLoading = false;
206
88
  segment.terrainReady = true;
207
89
  segment.terrainExists = true;
208
90
  }
209
-
210
- public isReady(): boolean {
91
+ isReady() {
211
92
  return this._isReady;
212
93
  }
213
-
214
- public abortLoading() {
94
+ abortLoading() {
215
95
  }
216
-
217
- public clearCache() {
96
+ clearCache() {
218
97
  }
219
-
220
- public getHeightAsync(lonLat: LonLat, callback: (height: number) => void): boolean {
98
+ getHeightAsync(lonLat, callback) {
221
99
  callback(0);
222
100
  return true;
223
101
  }
224
-
225
- public loadTerrain(segment: Segment, forceLoading: boolean = false) {
226
-
102
+ loadTerrain(segment, forceLoading = false) {
227
103
  }
228
104
  }
229
-
230
- export {EmptyTerrain};
105
+ EmptyTerrain.__counter__ = 0;
106
+ export { EmptyTerrain };
@@ -0,0 +1,33 @@
1
+ import { LonLat } from "../LonLat";
2
+ interface IGeoidParams {
3
+ model?: GeoidModel;
4
+ src?: string | null;
5
+ }
6
+ export type GeoidModel = {
7
+ scale: number;
8
+ offset: number;
9
+ width: number;
10
+ height: number;
11
+ rlonres: number;
12
+ rlatres: number;
13
+ i: number;
14
+ rawfile: Uint8Array;
15
+ };
16
+ declare class Geoid {
17
+ model: GeoidModel | null;
18
+ src: string | null;
19
+ protected _cached_ix: number;
20
+ protected _cached_iy: number;
21
+ protected _v00: number;
22
+ protected _v01: number;
23
+ protected _v10: number;
24
+ protected _v11: number;
25
+ protected _t: number;
26
+ constructor(options?: IGeoidParams);
27
+ static loadModel(url?: string | null): Promise<GeoidModel | null>;
28
+ setModel(model: GeoidModel | null): void;
29
+ protected _rawval(ix: number, iy: number): number;
30
+ getHeightLonLat(lonlat: LonLat): number;
31
+ getHeight(lon: number, lat: number): number;
32
+ }
33
+ export { Geoid };
@@ -0,0 +1,191 @@
1
+ /* This file is mostly a straight translation of
2
+ * GeographicLib/src/Geoid.cpp from C++ to JavaScript
3
+ * by Kim Vandry <vandry@TZoNE.ORG>
4
+ *
5
+ * @license
6
+ * **
7
+ * * \file Geoid.cpp
8
+ * * \brief Implementation for GeographicLib::Geoid class
9
+ * *
10
+ * * Copyright (c) Charles Karney (2009) <charles@karney.com>
11
+ * * and licensed under the LGPL. For more information, see
12
+ * * http://geographiclib.sourceforge.net/
13
+ * **********************************************************************
14
+ *
15
+ * Geoid height grade not supported
16
+ * The files can be downloaded from here:
17
+ * http://geographiclib.sourceforge.net/1.18/geoid.html
18
+ */
19
+ class Geoid {
20
+ constructor(options = {}) {
21
+ this.model = options.model || null;
22
+ this.src = options.src || null;
23
+ this._cached_ix = 0;
24
+ this._cached_iy = 0;
25
+ this._v00 = 0;
26
+ this._v01 = 0;
27
+ this._v10 = 0;
28
+ this._v11 = 0;
29
+ this._t = 0;
30
+ }
31
+ static loadModel(url) {
32
+ if (!url) {
33
+ return new Promise((resolve) => {
34
+ resolve(null);
35
+ });
36
+ }
37
+ else
38
+ return fetch(url, {})
39
+ .then((r) => {
40
+ if (!r.ok) {
41
+ throw Error("Geoid model file: HTTP error " + r.status);
42
+ }
43
+ return r.arrayBuffer();
44
+ })
45
+ .then((r) => {
46
+ if (r) {
47
+ return new Uint8Array(r);
48
+ }
49
+ else {
50
+ throw Error("Geoid model file: no data from " + url);
51
+ }
52
+ })
53
+ .then(function (rawfile) {
54
+ if (!((rawfile[0] === 80) && (rawfile[1] === 53) && (((rawfile[2] === 13) && (rawfile[3] === 10)) ||
55
+ (rawfile[2] === 10)))) {
56
+ throw new Error("Geoid model file: no PGM header");
57
+ }
58
+ var i = (rawfile[2] === 13) ? 4 : 3;
59
+ var offset = null;
60
+ var scale = null;
61
+ function getline() {
62
+ let start = i;
63
+ for (var j = i;; j++) {
64
+ if (j >= rawfile.length) {
65
+ throw new Error("Geoid model file: missing newline in header");
66
+ }
67
+ if (rawfile[j] === 10) {
68
+ i = j + 1;
69
+ break;
70
+ }
71
+ }
72
+ if ((j > start) && (rawfile[j - 1] === 13))
73
+ j--;
74
+ return String.fromCharCode.apply(null, rawfile.slice(start, j));
75
+ }
76
+ var m, s;
77
+ for (;;) {
78
+ s = getline();
79
+ if (s[0] !== '#')
80
+ break;
81
+ m = s.match(/^# Offset (.*)$/);
82
+ if (m) {
83
+ offset = parseInt(m[1], 10);
84
+ if (!isFinite(offset)) {
85
+ throw new Error("Geoid model file: bad offset " + m[1]);
86
+ }
87
+ }
88
+ else {
89
+ m = s.match(/^# Scale (.*)$/);
90
+ if (m) {
91
+ scale = parseFloat(m[1]);
92
+ if (!isFinite(scale)) {
93
+ throw new Error("Geoid model file: bad scale " + m[1]);
94
+ }
95
+ }
96
+ }
97
+ }
98
+ m = s.match(/^\s*(\d+)\s+(\d+)\s*$/);
99
+ let width = 0;
100
+ let height = 0;
101
+ if (m) {
102
+ width = parseInt(m[1], 10);
103
+ height = parseInt(m[2], 10);
104
+ }
105
+ if (!(m && (width >= 0) && (height >= 0))) {
106
+ throw new Error("Geoid model file: bad PGM width&height line");
107
+ }
108
+ let levels = parseInt(getline());
109
+ if (levels != 65535) {
110
+ throw new Error("Geoid model file: PGM file must have 65535 gray levels");
111
+ }
112
+ if (offset === null) {
113
+ throw new Error("Geoid model file: PGM file does not contain offset");
114
+ }
115
+ if (scale === null) {
116
+ throw new Error("Geoid model file: PGM file does not contain scale");
117
+ }
118
+ if ((width < 2) || (height < 2)) {
119
+ throw new Error("Geoid model file: Raster size too small");
120
+ }
121
+ let payload_len = rawfile.length - i;
122
+ if (payload_len !== (width * height * 2)) {
123
+ throw new Error("Geoid model file: File has the wrong length");
124
+ }
125
+ return {
126
+ scale: scale,
127
+ offset: offset,
128
+ width: width,
129
+ height: height,
130
+ rlonres: width / 360,
131
+ rlatres: (height - 1) / 180,
132
+ i: i,
133
+ rawfile: rawfile
134
+ };
135
+ });
136
+ }
137
+ setModel(model) {
138
+ this.model = model;
139
+ }
140
+ _rawval(ix, iy) {
141
+ let model = this.model;
142
+ if (iy < 0) {
143
+ iy = -iy;
144
+ ix += model.width / 2;
145
+ }
146
+ else if (iy >= model.height) {
147
+ iy = 2 * (model.height - 1) - iy;
148
+ ix += model.width / 2;
149
+ }
150
+ if (ix < 0) {
151
+ ix += model.width;
152
+ }
153
+ else if (ix >= model.width) {
154
+ ix -= model.width;
155
+ }
156
+ let k = (iy * model.width + ix) * 2 + model.i;
157
+ return (model.rawfile[k] << 8) | model.rawfile[k + 1];
158
+ }
159
+ getHeightLonLat(lonlat) {
160
+ return this.getHeight(lonlat.lon, lonlat.lat);
161
+ }
162
+ getHeight(lon, lat) {
163
+ if (!this.model)
164
+ return 0;
165
+ let model = this.model;
166
+ if (lon < 0)
167
+ lon += 360.0;
168
+ let fy = (90 - lat) * model.rlatres;
169
+ let fx = lon * model.rlonres;
170
+ let iy = Math.floor(fy);
171
+ let ix = Math.floor(fx);
172
+ fx -= ix;
173
+ fy -= iy;
174
+ if (iy === (model.height - 1)) {
175
+ iy--;
176
+ }
177
+ if ((this._cached_ix !== ix) || (this._cached_iy !== iy)) {
178
+ this._cached_ix = ix;
179
+ this._cached_iy = iy;
180
+ this._v00 = this._rawval(ix, iy);
181
+ this._v01 = this._rawval(ix + 1, iy);
182
+ this._v10 = this._rawval(ix, iy + 1);
183
+ this._v11 = this._rawval(ix + 1, iy + 1);
184
+ }
185
+ let a = (1 - fx) * this._v00 + fx * this._v01;
186
+ let b = (1 - fx) * this._v10 + fx * this._v11;
187
+ let h = (1 - fy) * a + fy * b;
188
+ return model.offset + model.scale * h;
189
+ }
190
+ }
191
+ export { Geoid };
@@ -0,0 +1,134 @@
1
+ import { EventsHandler } from "../Events";
2
+ import { TypedArray } from "../utils/shared";
3
+ import { EmptyTerrain, IEmptyTerrainParams } from "./EmptyTerrain";
4
+ import { Extent } from "../Extent";
5
+ import { Loader } from "../utils/Loader";
6
+ import { LonLat } from "../LonLat";
7
+ import { Segment } from "../segment/Segment";
8
+ export interface IGlobusTerrainParams extends IEmptyTerrainParams {
9
+ subdomains?: string[];
10
+ url?: string;
11
+ extent?: Extent | [[number, number], [number, number]];
12
+ urlRewrite?: UrlRewriteFunc;
13
+ noDataValues?: number[];
14
+ plainGridSize?: number;
15
+ }
16
+ type TileData = {
17
+ heights: number[] | TypedArray | null;
18
+ extent: Extent | null;
19
+ };
20
+ type UrlRewriteFunc = (segment: Segment, url: string) => string;
21
+ /**
22
+ * Class that loads segment elevation data, converts it to the array and passes it to the planet segment.
23
+ * @class
24
+ * @extends {GlobusTerrain}
25
+ * @param {string} [name=""] - Terrain provider name.
26
+ * @param {IGlobusTerrainParams} [options] - Provider options:
27
+ * @param {number} [options.minZoom=3] - Minimal visible zoom index when terrain handler works.
28
+ * @param {number} [options.minZoom=14] - Maximal visible zoom index when terrain handler works.
29
+ * @param {number} [options.minNativeZoom=14] - Maximal available terrain zoom level.
30
+ * @param {string} [options.url="//openglobus.org/heights/srtm3/{z}/{y}/{x}.ddm"] - Terrain source path url template. Default is openglobus ddm elevation file.
31
+ * @param {Array.<number>} [options.gridSizeByZoom] - Array of segment triangulation grid sizes where array index agreed to the segment zoom index.
32
+ * @param {number} [options.plainGridSize=32] - Elevation grid size. Default is 32x32. Must be power of two.
33
+ * @param {string} [options.responseType="arraybuffer"] - Response type.
34
+ * @param {number} [options.MAX_LOADING_TILES] - Maximum at one time loading tiles.
35
+ * @param {Array.<number>} [gridSizeByZoom] - Array of values, where each value corresponds to the size of a tile(or segment) on the globe. Each value must be power of two.
36
+ *
37
+ * @fires GlobusTerrainEvents#load
38
+ * @fires GlobusTerrainEvents#loadend
39
+ */
40
+ declare class GlobusTerrain extends EmptyTerrain {
41
+ events: GlobusTerrainEvents;
42
+ protected _s: string[];
43
+ protected _requestCount: number;
44
+ protected _requestsPeerSubdomain: number;
45
+ /**
46
+ * Terrain source path url template.
47
+ * @protected
48
+ * @type {string}
49
+ */
50
+ protected url: string;
51
+ protected _extent: Extent;
52
+ protected _dataType: string;
53
+ protected _elevationCache: Record<string, TileData>;
54
+ protected _fetchCache: Record<string, Promise<any>>;
55
+ protected _loader: Loader<GlobusTerrain>;
56
+ /**
57
+ * Rewrites elevation storage url query.
58
+ * @protected
59
+ * @type {Function} -
60
+ */
61
+ protected _urlRewriteCallback: UrlRewriteFunc | null;
62
+ constructor(name?: string, options?: IGlobusTerrainParams);
63
+ get loader(): Loader<GlobusTerrain>;
64
+ clearCache(): void;
65
+ isBlur(segment: Segment): boolean;
66
+ getHeightAsync(lonLat: LonLat, callback: (h: number) => void, zoom?: number, firstAttempt?: boolean): boolean;
67
+ getTileCache(lonLat: LonLat, z: number): TileData | undefined;
68
+ protected _getGroundHeightMerc(merc: LonLat, tileData: TileData): number;
69
+ /**
70
+ * Stop loading.
71
+ * @public
72
+ */
73
+ abortLoading(): void;
74
+ /**
75
+ * Sets terrain data url template.
76
+ * @public
77
+ * @param {string} url - Url template.
78
+ * @example <caption>Default openglobus url template:</caption>:
79
+ * "http://earth3.openglobus.org/{z}/{y}/{x}.ddm"
80
+ */
81
+ setUrl(url: string): void;
82
+ /**
83
+ * Sets provider name.
84
+ * @public
85
+ * @param {string} name - Name.
86
+ */
87
+ setName(name: string): void;
88
+ isReadyToLoad(segment: Segment): boolean;
89
+ /**
90
+ * Starts to load segment elevation data.
91
+ * @public
92
+ * @param {Segment} segment - Segment that wants a terrain data.
93
+ * @param {boolean} [forceLoading] -
94
+ */
95
+ loadTerrain(segment: Segment, forceLoading?: boolean): void;
96
+ protected _getSubdomain(): string;
97
+ _buildURL(x: number, y: number, z: number): string;
98
+ /**
99
+ * Creates default query url string.
100
+ * @protected
101
+ * @param {Segment} segment -
102
+ * @returns {string} -
103
+ */
104
+ protected _createUrl(segment: Segment): string;
105
+ /**
106
+ * Returns actual url query string.
107
+ * @protected
108
+ * @param {Segment} segment - Segment that loads image data.
109
+ * @returns {string} - Url string.
110
+ */
111
+ protected _getHTTPRequestString(segment: Segment): string;
112
+ /**
113
+ * Sets url rewrite callback, used for custom url rewriting for every tile loading.
114
+ * @public
115
+ * @param {UrlRewriteFunc} ur - The callback that returns tile custom created url.
116
+ */
117
+ setUrlRewriteCallback(ur: UrlRewriteFunc): void;
118
+ /**
119
+ * Converts loaded data to segment elevation data type(column major elevation data array in meters)
120
+ * @public
121
+ * @returns {Array.<number>} -
122
+ */
123
+ protected _createHeights(data: any, tileIndex?: string, x?: number, y?: number, z?: number, extent?: Extent, isMaxZoom?: boolean): TypedArray | number[];
124
+ /**
125
+ * @protected
126
+ */
127
+ protected _applyElevationsData(segment: Segment, elevations: number[] | TypedArray | null): void;
128
+ }
129
+ type GlobusTerrainEventsList = [
130
+ "load",
131
+ "loadend"
132
+ ];
133
+ type GlobusTerrainEvents = EventsHandler<GlobusTerrainEventsList>;
134
+ export { GlobusTerrain };