@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,16 +1,27 @@
1
- "use strict";
2
-
3
- import { Layer } from "../layer/Layer.js";
4
- import { WMS } from "../layer/WMS.js";
5
- import { isPowerOfTwo, nextHighestPowerOfTwo } from "../math.js";
6
- import { getTileExtent } from "../mercator.js";
7
- import { GlobusTerrain } from "./GlobusTerrain.js";
1
+ import {getTileExtent} from "../mercator";
2
+ import {GlobusTerrain, IGlobusTerrainParams} from "./GlobusTerrain";
3
+ import {Layer} from "../layer/Layer";
4
+ import {WMS} from "../layer/WMS";
5
+ import {isPowerOfTwo, nextHighestPowerOfTwo} from "../math";
6
+ import {Segment} from "../segment/Segment";
7
+ import {Extent} from "../Extent";
8
+ import {TypedArray} from "../utils/shared";
9
+
10
+ interface IBilTerrainParams extends IGlobusTerrainParams {
11
+ layers?: string;
12
+ imageSize?: number;
13
+ }
8
14
 
9
15
  class BilTerrain extends GlobusTerrain {
10
- constructor(options) {
11
- super("bil", options);
12
16
 
13
- options = options || {};
17
+ protected _format: string;
18
+
19
+ protected _layers: string;
20
+
21
+ protected _imageSize: number;
22
+
23
+ constructor(options: IBilTerrainParams = {}) {
24
+ super("BilTerrain", options);
14
25
 
15
26
  this.equalizeVertices = true;
16
27
 
@@ -30,24 +41,18 @@ class BilTerrain extends GlobusTerrain {
30
41
 
31
42
  this._imageSize = options.imageSize || 256;
32
43
 
33
- this.plainGridSize =
34
- options.plainGridSize != undefined
35
- ? options.plainGridSize
36
- : isPowerOfTwo(this._imageSize)
37
- ? this._imageSize / 2
38
- : nextHighestPowerOfTwo(this._imageSize) / 2;
44
+ this.plainGridSize = options.plainGridSize != undefined
45
+ ? options.plainGridSize
46
+ : isPowerOfTwo(this._imageSize) ? this._imageSize / 2 : nextHighestPowerOfTwo(this._imageSize) / 2;
39
47
 
40
48
  this._dataType = "arrayBuffer";
41
49
  }
42
50
 
43
- isBlur(segment) {
44
- if (segment.tileZoom >= 18) {
45
- return true;
46
- }
47
- return false;
51
+ public override isBlur(segment: Segment): boolean {
52
+ return segment.tileZoom >= 18;
48
53
  }
49
54
 
50
- _createUrl(segment) {
55
+ protected override _createUrl(segment: Segment): string {
51
56
  return WMS.createRequestUrl(
52
57
  this.url,
53
58
  this._layers,
@@ -61,11 +66,12 @@ class BilTerrain extends GlobusTerrain {
61
66
  );
62
67
  }
63
68
 
64
- _createHeights(data, segment) {
69
+ protected override _createHeights(data: number[], tileIndex: string, tileX: number, tileY: number, tileZoom: number, extent: Extent, preventChildren: boolean): TypedArray | number[] {
70
+
65
71
  let bil16 = new Int16Array(data);
66
72
 
67
73
  //
68
- //Non power of two images
74
+ //Non-power of two images
69
75
  //
70
76
  if (!isPowerOfTwo(this._imageSize)) {
71
77
  let outCurrenElevations = new Float32Array(bil16.length);
@@ -91,18 +97,18 @@ class BilTerrain extends GlobusTerrain {
91
97
 
92
98
  extractElevationTiles(bil16, this.noDataValues, outCurrenElevations, outChildrenElevations);
93
99
 
94
- this._elevationCache[segment.tileIndex] = {
100
+ this._elevationCache[tileIndex] = {
95
101
  heights: outCurrenElevations,
96
- extent: segment.getExtent()
102
+ extent: extent
97
103
  };
98
104
 
99
105
  let dd = this._imageSize / this.plainGridSize;
100
106
 
101
107
  for (let i = 0; i < dd; i++) {
102
108
  for (let j = 0; j < dd; j++) {
103
- let x = segment.tileX * 2 + j,
104
- y = segment.tileY * 2 + i,
105
- z = segment.tileZoom + 1;
109
+ let x = tileX * 2 + j,
110
+ y = tileY * 2 + i,
111
+ z = tileZoom + 1;
106
112
  let tileIndex = Layer.getTileIndex(x, y, z);
107
113
  this._elevationCache[tileIndex] = {
108
114
  heights: outChildrenElevations[i][j],
@@ -115,13 +121,13 @@ class BilTerrain extends GlobusTerrain {
115
121
  }
116
122
  }
117
123
 
118
- function extractElevationTilesNonPowerOfTwo(data, outCurrenElevations) {
124
+ function extractElevationTilesNonPowerOfTwo(data: number[] | TypedArray, outCurrenElevations: number[] | TypedArray) {
119
125
  for (let i = 0, len = outCurrenElevations.length; i < len; i++) {
120
126
  outCurrenElevations[i] = data[i];
121
127
  }
122
128
  }
123
129
 
124
- function extractElevationTiles(data, noDataValues, outCurrenElevations, outChildrenElevations) {
130
+ function extractElevationTiles(data: number[] | TypedArray, noDataValues: number[] | TypedArray, outCurrenElevations: number[] | TypedArray, outChildrenElevations: number[][][] | TypedArray[][]) {
125
131
  let destSize = Math.sqrt(outCurrenElevations.length) - 1;
126
132
  let destSizeOne = destSize + 1;
127
133
  let sourceSize = Math.sqrt(data.length);
@@ -240,4 +246,4 @@ function extractElevationTiles(data, noDataValues, outCurrenElevations, outChild
240
246
  }
241
247
  }
242
248
 
243
- export { BilTerrain };
249
+ export {BilTerrain};
@@ -0,0 +1,230 @@
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
+
18
+ /**
19
+ * Class represents terrain provider without elevation data.
20
+ * @param {IEmptyTerrainParams} [options] - Provider options:
21
+ * @param {string} [options.name="empty"] - Provider name.
22
+ * @param {boolean} [options.equalizeVertices] -
23
+ * @param {number} [options.minZoom=2] - Minimal visible zoom index when terrain handler works.
24
+ * @param {number} [options.minZoom=50] - Maximal visible zoom index when terrain handler works.
25
+ * @param {number} [options.maxNativeZoom=19] - Maximal available terrain zoom level.
26
+ * @param {Array.<number>} [options.gridSizeByZoom] - Array of segment triangulation grid sizes where array index agreed to the segment zoom index.
27
+ * @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.
28
+ * @param {Geoid} [options.geoid] -
29
+ * @param {string} [options.geoidSrc] -
30
+ */
31
+ 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
+
105
+ this.__id = EmptyTerrain.__counter__++;
106
+
107
+ this.equalizeVertices = options.equalizeVertices || false;
108
+
109
+ this.equalizeNormals = false;
110
+
111
+ this.isEmpty = true;
112
+
113
+ this.name = options.name || "empty";
114
+
115
+ this.minZoom = options.minZoom || 2;
116
+
117
+ this.maxZoom = options.maxZoom || 19;
118
+
119
+ this.maxNativeZoom = options.maxNativeZoom || this.maxZoom;
120
+
121
+ this.gridSizeByZoom = options.gridSizeByZoom || [
122
+ 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
+ ];
124
+
125
+ this._maxNodeZoom = this.gridSizeByZoom.length - 1;
126
+
127
+ this.plainGridSize = 2;
128
+
129
+ this.noDataValues = [];
130
+
131
+ this._planet = null;
132
+
133
+ this._geoid = options.geoid || new Geoid({
134
+ src: options.geoidSrc || null
135
+ });
136
+
137
+ this._isReady = false;
138
+
139
+ // const _ellToAltFn = [
140
+ // (lon, lat, alt, callback) => callback(alt),
141
+ // (lon, lat, alt, callback) => callback(alt - this._geoid.getHeight(lon, lat)),
142
+ // (lon, lat, alt, callback) => {
143
+
144
+ // let x = mercator.getTileX(lon, zoom),
145
+ // y = mercator.getTileY(lat, zoom);
146
+
147
+ // let mslAlt = alt - this._geoid.getHeight(lon, lat);
148
+
149
+ // if (true) {
150
+
151
+ // } else {
152
+
153
+ // }
154
+
155
+ // return callback(mslAlt);
156
+ // },
157
+ // ];
158
+ }
159
+
160
+ public get isIdle(): boolean {
161
+ return true;
162
+ }
163
+
164
+ public isEqual(obj: this): boolean {
165
+ return obj.__id === this.__id;
166
+ }
167
+
168
+ static checkNoDataValue(noDataValues: number[] | TypedArray, value: number): boolean {
169
+ return binarySearchFast(noDataValues, value) !== -1;
170
+ }
171
+
172
+ public isBlur(segment?: Segment): boolean {
173
+ return false;
174
+ }
175
+
176
+ public set maxNodeZoom(val: number) {
177
+ if (val > this.gridSizeByZoom.length - 1) {
178
+ val = this.gridSizeByZoom.length - 1;
179
+ }
180
+ this._maxNodeZoom = val;
181
+ }
182
+
183
+ public get maxNodeZoom(): number {
184
+ return this._maxNodeZoom;
185
+ }
186
+
187
+ public set geoid(geoid: Geoid) {
188
+ this._geoid = geoid;
189
+ }
190
+
191
+ public get geoid(): Geoid {
192
+ return this._geoid;
193
+ }
194
+
195
+ public getGeoid(): Geoid {
196
+ return this._geoid;
197
+ }
198
+
199
+ /**
200
+ * Loads or creates segment elevation data.
201
+ * @public
202
+ * @param {Segment} segment - Segment to create elevation data.
203
+ */
204
+ public handleSegmentTerrain(segment: Segment) {
205
+ segment.terrainIsLoading = false;
206
+ segment.terrainReady = true;
207
+ segment.terrainExists = true;
208
+ }
209
+
210
+ public isReady(): boolean {
211
+ return this._isReady;
212
+ }
213
+
214
+ public abortLoading() {
215
+ }
216
+
217
+ public clearCache() {
218
+ }
219
+
220
+ public getHeightAsync(lonLat: LonLat, callback: (height: number) => void): boolean {
221
+ callback(0);
222
+ return true;
223
+ }
224
+
225
+ public loadTerrain(segment: Segment, forceLoading: boolean = false) {
226
+
227
+ }
228
+ }
229
+
230
+ export {EmptyTerrain};
@@ -34,40 +34,68 @@
34
34
  // console.log(err);
35
35
  // });
36
36
 
37
- 'use strict';
37
+ import {LonLat} from "../LonLat";
38
+
39
+ interface IGeoidParams {
40
+ model?: GeoidModel;
41
+ src?: string | null;
42
+ }
43
+
44
+
45
+ export type GeoidModel = {
46
+ scale: number;
47
+ offset: number,
48
+ width: number;
49
+ height: number;
50
+ rlonres: number;
51
+ rlatres: number;
52
+ i: number;
53
+ rawfile: Uint8Array
54
+ };
38
55
 
39
56
  class Geoid {
40
- constructor(options = {}) {
57
+
58
+ public model: GeoidModel | null;
59
+ public src: string | null;
60
+
61
+ protected _cached_ix: number;
62
+ protected _cached_iy: number;
63
+ protected _v00: number;
64
+ protected _v01: number;
65
+ protected _v10: number;
66
+ protected _v11: number;
67
+ protected _t: number;
68
+
69
+ constructor(options: IGeoidParams = {}) {
41
70
 
42
71
  this.model = options.model || null;
43
72
  this.src = options.src || null;
44
73
 
45
- this._cached_ix = null;
46
- this._cached_iy = null;
47
- this._v00 = null;
48
- this._v01 = null;
49
- this._v10 = null;
50
- this._v11 = null;
51
- this._t = null;
74
+ this._cached_ix = 0;
75
+ this._cached_iy = 0;
76
+ this._v00 = 0;
77
+ this._v01 = 0;
78
+ this._v10 = 0;
79
+ this._v11 = 0;
80
+ this._t = 0;
52
81
  }
53
82
 
54
- static loadModel(url) {
83
+ static loadModel(url?: string | null): Promise<GeoidModel | null> {
55
84
  if (!url) {
56
- return new Promise((resolve) => {
85
+ return new Promise((resolve: any) => {
57
86
  resolve(null);
58
87
  });
59
88
  } else
60
-
61
89
  return fetch(url, {})
62
90
 
63
- .then((r) => {
91
+ .then((r: Response) => {
64
92
  if (!r.ok) {
65
93
  throw Error("Geoid model file: HTTP error " + r.status);
66
94
  }
67
95
  return r.arrayBuffer();
68
96
  })
69
97
 
70
- .then((r) => {
98
+ .then((r: ArrayBuffer) => {
71
99
  if (r) {
72
100
  return new Uint8Array(r);
73
101
  } else {
@@ -75,7 +103,7 @@ class Geoid {
75
103
  }
76
104
  })
77
105
 
78
- .then(function (rawfile) {
106
+ .then(function (rawfile: Uint8Array) {
79
107
 
80
108
  if (!((rawfile[0] === 80) && (rawfile[1] === 53) && (
81
109
  ((rawfile[2] === 13) && (rawfile[3] === 10)) ||
@@ -84,12 +112,12 @@ class Geoid {
84
112
  throw new Error("Geoid model file: no PGM header");
85
113
  }
86
114
 
87
- var i = (rawfile[2] === 13) ? 4 : 3;
88
- var offset = null;
89
- var scale = null;
115
+ var i: number = (rawfile[2] === 13) ? 4 : 3;
116
+ var offset: number | null = null;
117
+ var scale: number | null = null;
90
118
 
91
- function getline() {
92
- var start = i;
119
+ function getline(): string {
120
+ let start = i;
93
121
  for (var j = i; ; j++) {
94
122
  if (j >= rawfile.length) {
95
123
  throw new Error("Geoid model file: missing newline in header");
@@ -100,7 +128,7 @@ class Geoid {
100
128
  }
101
129
  }
102
130
  if ((j > start) && (rawfile[j - 1] === 13)) j--;
103
- return String.fromCharCode.apply(null, rawfile.slice(start, j));
131
+ return String.fromCharCode.apply(null, rawfile.slice(start, j) as any);
104
132
  }
105
133
 
106
134
  var m, s;
@@ -126,8 +154,8 @@ class Geoid {
126
154
 
127
155
  m = s.match(/^\s*(\d+)\s+(\d+)\s*$/);
128
156
 
129
- var width = null;
130
- var height = null;
157
+ let width: number = 0;
158
+ let height: number = 0;
131
159
 
132
160
  if (m) {
133
161
  width = parseInt(m[1], 10);
@@ -138,7 +166,7 @@ class Geoid {
138
166
  throw new Error("Geoid model file: bad PGM width&height line");
139
167
  }
140
168
 
141
- var levels = parseInt(getline());
169
+ let levels = parseInt(getline());
142
170
 
143
171
  if (levels != 65535) {
144
172
  throw new Error("Geoid model file: PGM file must have 65535 gray levels");
@@ -153,7 +181,7 @@ class Geoid {
153
181
  throw new Error("Geoid model file: Raster size too small");
154
182
  }
155
183
 
156
- var payload_len = rawfile.length - i;
184
+ let payload_len = rawfile.length - i;
157
185
 
158
186
  if (payload_len !== (width * height * 2)) {
159
187
  throw new Error("Geoid model file: File has the wrong length");
@@ -172,12 +200,12 @@ class Geoid {
172
200
  });
173
201
  }
174
202
 
175
- setModel(model) {
203
+ setModel(model: GeoidModel | null) {
176
204
  this.model = model;
177
205
  }
178
206
 
179
- _rawval(ix, iy) {
180
- let model = this.model;
207
+ protected _rawval(ix: number, iy: number): number {
208
+ let model = this.model!;
181
209
 
182
210
  if (iy < 0) {
183
211
  iy = -iy;
@@ -193,16 +221,16 @@ class Geoid {
193
221
  ix -= model.width;
194
222
  }
195
223
 
196
- var k = (iy * model.width + ix) * 2 + model.i;
224
+ let k = (iy * model.width + ix) * 2 + model.i;
197
225
 
198
226
  return (model.rawfile[k] << 8) | model.rawfile[k + 1];
199
227
  }
200
228
 
201
- getHeightLonLat(lonlat) {
229
+ public getHeightLonLat(lonlat: LonLat): number {
202
230
  return this.getHeight(lonlat.lon, lonlat.lat);
203
231
  }
204
232
 
205
- getHeight(lon, lat) {
233
+ public getHeight(lon: number, lat: number): number {
206
234
 
207
235
  if (!this.model) return 0;
208
236
 
@@ -210,10 +238,10 @@ class Geoid {
210
238
 
211
239
  if (lon < 0) lon += 360.0;
212
240
 
213
- var fy = (90 - lat) * model.rlatres;
214
- var fx = lon * model.rlonres;
215
- var iy = Math.floor(fy);
216
- var ix = Math.floor(fx);
241
+ let fy = (90 - lat) * model.rlatres;
242
+ let fx = lon * model.rlonres;
243
+ let iy = Math.floor(fy);
244
+ let ix = Math.floor(fx);
217
245
 
218
246
  fx -= ix;
219
247
  fy -= iy;
@@ -233,15 +261,13 @@ class Geoid {
233
261
  this._v11 = this._rawval(ix + 1, iy + 1);
234
262
  }
235
263
 
236
- let h = null;
237
-
238
- var a = (1 - fx) * this._v00 + fx * this._v01;
239
- var b = (1 - fx) * this._v10 + fx * this._v11;
264
+ let a = (1 - fx) * this._v00 + fx * this._v01;
265
+ let b = (1 - fx) * this._v10 + fx * this._v11;
240
266
 
241
- h = (1 - fy) * a + fy * b;
267
+ let h = (1 - fy) * a + fy * b;
242
268
 
243
269
  return model.offset + model.scale * h;
244
270
  }
245
271
  }
246
272
 
247
- export { Geoid };
273
+ export {Geoid};