@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,13 +1,15 @@
1
- "use strict";
2
-
3
- import { Extent } from "../Extent.js";
4
- import { LonLat } from "../LonLat.js";
5
- import { MAX, MIN } from "../math.js";
6
- import { Vec3 } from "../math/Vec3.js";
7
- import { MAX_LAT } from "../mercator.js";
8
- import { EPSG3857 } from "../proj/EPSG3857.js";
9
- import { EPSG4326 } from "../proj/EPSG4326.js";
10
- import { getMatrixSubArray, getMatrixSubArrayBoundsExt } from "../utils/shared.js";
1
+ import {Extent} from "../Extent";
2
+ import {EPSG3857} from "../proj/EPSG3857";
3
+ import {EPSG4326} from "../proj/EPSG4326";
4
+ import {getMatrixSubArray32, getMatrixSubArray64, getMatrixSubArrayBoundsExt} from "../utils/shared";
5
+ import {LonLat} from "../LonLat";
6
+ import {MAX, MIN} from "../math";
7
+ import {MAX_LAT} from "../mercator";
8
+ import {Planet} from "../scene/Planet";
9
+ import {Segment} from "../segment/Segment";
10
+
11
+ import {Vec2} from "../math/Vec2";
12
+ import {Vec3} from "../math/Vec3";
11
13
  import {
12
14
  COMSIDE,
13
15
  E,
@@ -27,35 +29,76 @@ import {
27
29
  VISIBLE_DISTANCE,
28
30
  W,
29
31
  WALKTHROUGH
30
- } from "./quadTree.js";
32
+ } from "./quadTree";
31
33
 
32
- import { TILEGROUP_COMMON, TILEGROUP_NORTH, TILEGROUP_SOUTH } from "../segment/Segment.js";
34
+ import {
35
+ TILEGROUP_COMMON,
36
+ TILEGROUP_NORTH,
37
+ TILEGROUP_SOUTH
38
+ } from "../segment/Segment";
39
+
40
+ import {PlanetCamera} from "../camera/PlanetCamera";
33
41
 
34
- let _tempHigh = new Vec3(), _tempLow = new Vec3();
42
+ let _tempHigh = new Vec3(),
43
+ _tempLow = new Vec3();
44
+
45
+ const _vertOrder: Vec2[] = [
46
+ new Vec2(0, 0), new Vec2(1, 0),
47
+ new Vec2(0, 1), new Vec2(1, 1)
48
+ ];
35
49
 
36
- const _vertOrder = [{ x: 0, y: 0 }, { x: 1, y: 0 }, { x: 0, y: 1 }, { x: 1, y: 1 }];
37
50
  const _neGridSize = Math.sqrt(_vertOrder.length) - 1;
38
51
 
39
- let BOUNDS = {
40
- xmin: 0.0, ymin: 0.0, zmin: 0.0, xmax: 0.0, ymax: 0.0, zmax: 0.0
52
+ type BoundsType = {
53
+ xmin: number; ymin: number; zmin: number;
54
+ xmax: number; ymax: number; zmax: number
55
+ };
56
+
57
+ let BOUNDS: BoundsType = {
58
+ xmin: 0.0, ymin: 0.0, zmin: 0.0,
59
+ xmax: 0.0, ymax: 0.0, zmax: 0.0
41
60
  };
42
61
 
43
62
  /**
44
63
  * Quad tree planet segment node.
45
64
  * @constructor
46
- * @param {Segment|og.planetSegment.SegmentLonLat} segmentPrototype - Planet segment node constructor.
47
- * @param {RenderNode} planet - Planet render node.
65
+ * @param {Segment} segmentPrototype - Planet segment node constructor.
66
+ * @param {Planet} planet - Planet scene instance.
48
67
  * @param {number} partId - NorthEast, SouthWest etc.
49
- * @param {quadTree.Node} parent - Parent of this node.
68
+ * @param {Node} parent - Parent of this node.
50
69
  * @param {number} id - Tree node identifier (id * 4 + 1);
51
70
  * @param {number} tileZoom - Deep index of the quad tree.
52
71
  * @param {Extent} extent - Planet segment extent.
53
72
  */
54
73
  class Node {
74
+ public SegmentPrototype: typeof Segment;
75
+ public planet: Planet;
76
+ public parentNode: Node | null;
77
+ public partId: number;
78
+ public nodeId: number;
79
+ public state: number | null;
80
+ public appliedTerrainNodeId: number;
81
+ public sideSizeLog2: [number, number, number, number];
82
+ public ready: boolean;
83
+ public neighbors: [Node[], Node[], Node[], Node[]];
84
+ public equalizedSideWithNodeId: number[];
85
+ public nodes: [Node, Node, Node, Node] | [];
86
+ public segment: Segment;
87
+ public _cameraInside: boolean;
88
+ public inFrustum: number;
89
+
90
+ constructor(
91
+ SegmentPrototype: typeof Segment,
92
+ planet: Planet,
93
+ partId: number,
94
+ parent: Node | null,
95
+ id: number,
96
+ tileZoom: number,
97
+ extent: Extent
98
+ ) {
99
+ planet._createdNodesCount++;
55
100
 
56
- constructor(SegmentPrototype, planet, partId, parent, id, tileZoom, extent) {
57
101
  this.SegmentPrototype = SegmentPrototype;
58
- planet._createdNodesCount++;
59
102
  this.planet = planet;
60
103
  this.parentNode = parent;
61
104
  this.partId = partId;
@@ -66,16 +109,15 @@ class Node {
66
109
  this.ready = false;
67
110
  this.neighbors = [[], [], [], []];
68
111
  this.equalizedSideWithNodeId = [this.nodeId, this.nodeId, this.nodeId, this.nodeId];
69
- this.nodes = [null, null, null, null];
112
+ this.nodes = [];
70
113
  this.segment = new SegmentPrototype(this, planet, tileZoom, extent);
71
114
  this._cameraInside = false;
72
115
  this.inFrustum = 0;
73
116
  this.createBounds();
74
117
  }
75
118
 
76
- createChildrenNodes() {
119
+ public createChildrenNodes() {
77
120
  this.ready = true;
78
-
79
121
  const p = this.planet;
80
122
  const ps = this.segment;
81
123
  const ext = ps._extent;
@@ -94,18 +136,23 @@ class Node {
94
136
  nd[SE] = new Node(this.SegmentPrototype, p, SE, this, id, z, new Extent(new LonLat(sw.lon + size_x, sw.lat), new LonLat(ne.lon, sw.lat + size_y)));
95
137
  }
96
138
 
97
- createBounds() {
139
+ public createBounds() {
140
+
98
141
  let seg = this.segment;
142
+
99
143
  seg._setExtentLonLat();
144
+
100
145
  if (seg.tileZoom === 0) {
101
- seg.setBoundingSphere(0.0, 0.0, 0.0, new Vec3(0.0, 0.0, seg.planet.ellipsoid._a));
102
- } else if (seg.tileZoom < seg.planet.terrain.minZoom) {
146
+ seg.setBoundingSphere(0.0, 0.0, 0.0, new Vec3(0.0, 0.0, seg.planet.ellipsoid.equatorialSize));
147
+ } else if (seg.tileZoom < seg.planet.terrain!.minZoom) {
103
148
  seg.createBoundsByExtent();
104
149
  } else {
105
150
  seg.createBoundsByParent();
106
151
  }
107
152
 
108
- let x = seg.bsphere.center.x, y = seg.bsphere.center.y, z = seg.bsphere.center.z;
153
+ let x = seg.bsphere.center.x,
154
+ y = seg.bsphere.center.y,
155
+ z = seg.bsphere.center.z;
109
156
 
110
157
  let length = 1.0 / Math.sqrt(x * x + y * y + z * z);
111
158
  seg.centerNormal.x = x * length;
@@ -113,11 +160,11 @@ class Node {
113
160
  seg.centerNormal.z = z * length;
114
161
  }
115
162
 
116
- getState() {
163
+ public getState(): number | null {
117
164
  if (this.state === -1) {
118
165
  return this.state;
119
166
  }
120
- var pn = this.parentNode;
167
+ let pn = this.parentNode;
121
168
  while (pn) {
122
169
  if (pn.state !== WALKTHROUGH) {
123
170
  return NOTRENDERING;
@@ -130,22 +177,23 @@ class Node {
130
177
  /**
131
178
  * Returns the same deep existent neighbour node.
132
179
  * @public
133
- * @param {Number} side - Neighbour side index e.g. og.quadTree.N, og.quadTree.W etc.
134
- * @returns {quadTree.Node} -
180
+ * @param {number} side - Neighbour side index e.g. og.quadTree.N, og.quadTree.W etc.
181
+ * @returns {Node} -
135
182
  */
136
- getEqualNeighbor(side) {
137
- var pn = this;
138
- var part = NEIGHBOUR[side][pn.partId];
183
+ public getEqualNeighbor(side: number): Node | undefined {
184
+ let pn: Node = this;
185
+ let part = NEIGHBOUR[side][pn.partId];
139
186
  if (part !== -1) {
140
- return pn.parentNode.nodes[part];
187
+ // (!) it means that we would never ask to get head node neighbors
188
+ return pn.parentNode!.nodes[part];
141
189
  } else {
142
- var pathId = [];
190
+ let pathId = [];
143
191
  while (pn.parentNode) {
144
192
  pathId.push(pn.partId);
145
193
  part = NEIGHBOUR[side][pn.partId];
146
194
  pn = pn.parentNode;
147
195
  if (part !== -1) {
148
- var i = pathId.length;
196
+ let i = pathId.length;
149
197
  side = OPSIDE[side];
150
198
  while (pn && i--) {
151
199
  part = OPPART[side][pathId[i]];
@@ -157,20 +205,24 @@ class Node {
157
205
  }
158
206
  }
159
207
 
160
- isBrother(node) {
161
- return !(this.parentNode || node.parentNode) || this.parentNode.id === node.parentNode.id;
162
- }
208
+ // public isBrother(node: Node): boolean {
209
+ // return !(this.parentNode || node.parentNode) || (this.parentNode!.nodeId === node.parentNode!.nodeId);
210
+ // }
163
211
 
164
- renderTree(cam, maxZoom, terrainReadySegment, stopLoading) {
212
+ public renderTree(cam: PlanetCamera, maxZoom?: number | null, terrainReadySegment?: Segment | null, stopLoading?: boolean) {
165
213
  if (this.planet._renderedNodes.length >= MAX_RENDERED_NODES) {
166
214
  return;
167
215
  }
168
216
 
169
217
  this.state = WALKTHROUGH;
170
218
 
219
+ // @ts-ignore
171
220
  this.neighbors[0] = null;
221
+ // @ts-ignore
172
222
  this.neighbors[1] = null;
223
+ // @ts-ignore
173
224
  this.neighbors[2] = null;
225
+ // @ts-ignore
174
226
  this.neighbors[3] = null;
175
227
 
176
228
  this.neighbors[0] = [];
@@ -229,7 +281,7 @@ class Node {
229
281
  let h = Math.abs(cam._lonLat.height);
230
282
 
231
283
  let eye = cam.eye;
232
- let horizonDist = eye.length2() - this.planet.ellipsoid._b2;
284
+ let horizonDist = eye.length2() - this.planet.ellipsoid.polarSizeSqr;
233
285
 
234
286
  let altVis = seg.tileZoom > 19 || (seg.tileZoom < 5 && !seg.terrainReady) || seg.tileZoom < 2;
235
287
 
@@ -240,12 +292,13 @@ class Node {
240
292
  }
241
293
 
242
294
  if ((this.inFrustum && (altVis || h > 10000.0)) || this._cameraInside) {
295
+ //@todo: replace to the strategy
243
296
  seg._collectVisibleNodes();
244
297
  }
245
298
 
246
299
  if (seg.tileZoom < 2) {
247
300
  this.traverseNodes(cam, maxZoom, terrainReadySegment, stopLoading);
248
- } else if (seg.terrainReady && (!maxZoom && cam.projectedSize(seg.bsphere.center, seg._plainRadius) < planet._lodSize || maxZoom && ((seg.tileZoom === maxZoom) || !altVis))) {
301
+ } else if (seg.terrainReady && (!maxZoom && cam.projectedSize(seg.bsphere.center, seg._plainRadius) < planet.lodSize || maxZoom && ((seg.tileZoom === maxZoom) || !altVis))) {
249
302
 
250
303
  if (altVis) {
251
304
  seg.passReady = true;
@@ -267,20 +320,20 @@ class Node {
267
320
  }
268
321
  }
269
322
 
270
- traverseNodes(cam, maxZoom, terrainReadySegment, stopLoading) {
323
+ public traverseNodes(cam: PlanetCamera, maxZoom?: number | null, terrainReadySegment?: Segment | null, stopLoading?: boolean) {
271
324
  if (!this.ready) {
272
325
  this.createChildrenNodes();
273
326
  }
274
327
 
275
328
  let n = this.nodes;
276
329
 
277
- n[0].renderTree(cam, maxZoom, terrainReadySegment, stopLoading);
278
- n[1].renderTree(cam, maxZoom, terrainReadySegment, stopLoading);
279
- n[2].renderTree(cam, maxZoom, terrainReadySegment, stopLoading);
280
- n[3].renderTree(cam, maxZoom, terrainReadySegment, stopLoading);
330
+ n[0]!.renderTree(cam, maxZoom, terrainReadySegment, stopLoading);
331
+ n[1]!.renderTree(cam, maxZoom, terrainReadySegment, stopLoading);
332
+ n[2]!.renderTree(cam, maxZoom, terrainReadySegment, stopLoading);
333
+ n[3]!.renderTree(cam, maxZoom, terrainReadySegment, stopLoading);
281
334
  }
282
335
 
283
- renderNode(inFrustum, onlyTerrain, terrainReadySegment, stopLoading) {
336
+ public renderNode(inFrustum: number, onlyTerrain?: boolean, terrainReadySegment?: Segment | null, stopLoading?: boolean) {
284
337
  let seg = this.segment;
285
338
 
286
339
  // Create and load terrain data
@@ -289,7 +342,7 @@ class Node {
289
342
  seg.initialize();
290
343
  }
291
344
 
292
- this.whileTerrainLoading(terrainReadySegment, stopLoading);
345
+ this.whileTerrainLoading(terrainReadySegment);
293
346
 
294
347
  if (!seg.plainProcessing) {
295
348
  seg.createPlainSegmentAsync();
@@ -326,26 +379,25 @@ class Node {
326
379
  }
327
380
 
328
381
  /**
329
- * Seraching for neighbours and pickup current node to render processing.
382
+ * Searching for neighbours and picking up current node to render processing.
330
383
  * @public
331
384
  */
332
- addToRender(inFrustum) {
385
+ public addToRender(inFrustum: number) {
333
386
  this.state = RENDERING;
334
387
 
335
- var nodes = this.planet._renderedNodes;
388
+ let nodes = this.planet._renderedNodes;
336
389
 
337
390
  for (let i = nodes.length - 1; i >= 0; --i) {
338
- var ni = nodes[i];
339
-
340
- var cs = this.getCommonSide(ni);
391
+ const ni = nodes[i];
392
+ const cs = this.getCommonSide(ni);
341
393
 
342
394
  if (cs !== -1) {
343
- var opcs = OPSIDE[cs];
395
+ const opcs = OPSIDE[cs];
344
396
 
345
397
  if (this.neighbors[cs].length === 0 || ni.neighbors[opcs].length === 0) {
346
- var ap = this.segment;
347
- var bp = ni.segment;
348
- var ld = ap.gridSize / (bp.gridSize * Math.pow(2, bp.tileZoom - ap.tileZoom));
398
+ const ap = this.segment;
399
+ const bp = ni.segment;
400
+ const ld = ap.gridSize / (bp.gridSize * Math.pow(2, bp.tileZoom - ap.tileZoom));
349
401
 
350
402
  let cs_size = ap.gridSize,
351
403
  opcs_size = bp.gridSize;
@@ -374,7 +426,8 @@ class Node {
374
426
  this.planet._terrainCompleted = false;
375
427
  }
376
428
 
377
- let k = 0, rf = this.planet._renderedNodesInFrustum;
429
+ let k = 0,
430
+ rf = this.planet._renderedNodesInFrustum;
378
431
  while (inFrustum) {
379
432
  if (inFrustum & 1) {
380
433
  rf[k].push(this);
@@ -384,17 +437,19 @@ class Node {
384
437
  }
385
438
  }
386
439
 
387
- getCommonSide(node) {
388
- var as = this.segment, bs = node.segment;
440
+ public getCommonSide(node: Node): number {
441
+ const as = this.segment;
442
+ const bs = node.segment;
389
443
 
390
444
  if (as.tileZoom === bs.tileZoom && as._tileGroup === bs._tileGroup) {
391
445
  return as.getNeighborSide(bs);
392
446
  } else {
393
- var a = as._extentLonLat, b = bs._extentLonLat;
447
+ const a = as._extentLonLat;
448
+ const b = bs._extentLonLat;
394
449
 
395
- var a_ne = a.northEast, a_sw = a.southWest, b_ne = b.northEast, b_sw = b.southWest;
450
+ let a_ne = a.northEast, a_sw = a.southWest, b_ne = b.northEast, b_sw = b.southWest;
396
451
 
397
- var a_ne_lon = a_ne.lon, a_ne_lat = a_ne.lat, a_sw_lon = a_sw.lon, a_sw_lat = a_sw.lat, b_ne_lon = b_ne.lon,
452
+ let a_ne_lon = a_ne.lon, a_ne_lat = a_ne.lat, a_sw_lon = a_sw.lon, a_sw_lat = a_sw.lat, b_ne_lon = b_ne.lon,
398
453
  b_ne_lat = b_ne.lat, b_sw_lon = b_sw.lon, b_sw_lat = b_sw.lat;
399
454
 
400
455
  if (as._tileGroup === bs._tileGroup) {
@@ -427,75 +482,75 @@ class Node {
427
482
  return -1;
428
483
  }
429
484
 
430
- // TODO: test test test
431
- ___getCommonSide___(b) {
432
- var a = this, as = a.segment, bs = b.segment;
433
-
434
- if (as.tileZoom === bs.tileZoom) {
435
- return as.getNeighborSide(bs);
436
- } else if (as.tileZoom > bs.tileZoom) {
437
- let dz = as.tileZoom - bs.tileZoom, i = dz, p = this;
438
-
439
- while (i--) {
440
- p = p.parentNode;
441
- }
442
-
443
- let side = p.segment.getNeighborSide(bs);
444
-
445
- if (side !== -1) {
446
- i = dz;
447
- p = this;
448
- let _n = true;
449
-
450
- while (i--) {
451
- _n = _n && COMSIDE[p.partId][side];
452
- }
453
-
454
- if (_n) {
455
- return side;
456
- }
457
- }
458
- } else {
459
- let dz = bs.tileZoom - as.tileZoom, i = dz, p = b;
460
-
461
- while (i--) {
462
- p = p.parentNode;
463
- }
464
-
465
- let side = p.segment.getNeighborSide(as);
466
-
467
- if (side !== -1) {
468
- i = dz;
469
- p = b;
470
- let _n = true;
485
+ // // TODO: test test test
486
+ // public ___getCommonSide___(b: Node) {
487
+ // let a = this, as = a.segment, bs = b.segment;
488
+ //
489
+ // if (as.tileZoom === bs.tileZoom) {
490
+ // return as.getNeighborSide(bs);
491
+ // } else if (as.tileZoom > bs.tileZoom) {
492
+ // let dz = as.tileZoom - bs.tileZoom, i = dz, p: Node = this;
493
+ //
494
+ // while (i--) {
495
+ // p = p.parentNode!;
496
+ // }
497
+ //
498
+ // let side = p.segment.getNeighborSide(bs);
499
+ //
500
+ // if (side !== -1) {
501
+ // i = dz;
502
+ // p = this;
503
+ // let _n = true;
504
+ //
505
+ // while (i--) {
506
+ // _n = _n && COMSIDE[p.partId][side];
507
+ // }
508
+ //
509
+ // if (_n) {
510
+ // return side;
511
+ // }
512
+ // }
513
+ // } else {
514
+ // let dz = bs.tileZoom - as.tileZoom, i = dz, p = b;
515
+ //
516
+ // while (i--) {
517
+ // p = p.parentNode!;
518
+ // }
519
+ //
520
+ // let side = p.segment.getNeighborSide(as);
521
+ //
522
+ // if (side !== -1) {
523
+ // i = dz;
524
+ // p = b;
525
+ // let _n = true;
526
+ //
527
+ // while (i--) {
528
+ // _n = _n && COMSIDE[p.partId][side];
529
+ // }
530
+ //
531
+ // if (_n) {
532
+ // return OPSIDE[side];
533
+ // }
534
+ // }
535
+ // }
536
+ //
537
+ // return -1;
538
+ // }
539
+
540
+ public whileNormalMapCreating() {
471
541
 
472
- while (i--) {
473
- _n = _n && COMSIDE[p.partId][side];
474
- }
475
-
476
- if (_n) {
477
- return OPSIDE[side];
478
- }
479
- }
480
- }
481
-
482
- return -1;
483
- }
484
-
485
- whileNormalMapCreating() {
486
-
487
- let seg = this.segment;
542
+ const seg = this.segment;
488
543
 
489
- if (/*seg.tileZoom <= seg.planet.terrain.maxNativeZoom && */!seg.terrainIsLoading && seg.terrainExists && !seg._inTheQueue) {
544
+ if (!seg.terrainIsLoading && seg.terrainExists && !seg._inTheQueue) {
490
545
  seg.planet._normalMapCreator.queue(seg);
491
546
  }
492
547
 
493
- let pn = this;
548
+ let pn: Node = this;
494
549
  while (pn.parentNode && !pn.segment.normalMapReady) {
495
550
  pn = pn.parentNode;
496
551
  }
497
552
 
498
- let dZ2 = 2 << (seg.tileZoom - pn.segment.tileZoom - 1);
553
+ const dZ2 = 2 << (seg.tileZoom - pn.segment.tileZoom - 1);
499
554
 
500
555
  seg.normalMapTexture = pn.segment.normalMapTexture;
501
556
  seg.normalMapTextureBias[0] = seg.tileX - pn.segment.tileX * dZ2;
@@ -503,10 +558,11 @@ class Node {
503
558
  seg.normalMapTextureBias[2] = 1.0 / dZ2;
504
559
  }
505
560
 
506
- whileTerrainLoading(terrainReadySegment, stopLoading) {
561
+ public whileTerrainLoading(terrainReadySegment?: Segment | null) {
562
+
507
563
  const seg = this.segment;
508
564
 
509
- let pn = this;
565
+ let pn: Node = this;
510
566
 
511
567
  if (terrainReadySegment && terrainReadySegment.terrainReady) {
512
568
  pn = terrainReadySegment.node;
@@ -517,21 +573,21 @@ class Node {
517
573
  }
518
574
 
519
575
  if (pn.segment.terrainReady && this.appliedTerrainNodeId !== pn.nodeId) {
576
+
520
577
  let dZ2 = 2 << (seg.tileZoom - pn.segment.tileZoom - 1),
521
578
  offsetX = seg.tileX - pn.segment.tileX * dZ2,
522
579
  offsetY = seg.tileY - pn.segment.tileY * dZ2;
523
580
 
524
- let pseg = pn.segment;
581
+ const pseg = pn.segment;
525
582
 
526
- let tempVertices,
527
- tempVerticesHigh,
528
- tempVerticesLow,
529
- noDataVertices;
583
+ let tempVertices: Float64Array,
584
+ tempVerticesHigh: Float32Array,
585
+ tempVerticesLow: Float32Array,
586
+ noDataVertices: Uint8Array;
530
587
 
531
588
  this.appliedTerrainNodeId = pn.nodeId;
532
589
  this.equalizedSideWithNodeId[N] = this.equalizedSideWithNodeId[E] = this.equalizedSideWithNodeId[S] = this.equalizedSideWithNodeId[W] = this.appliedTerrainNodeId;
533
590
 
534
-
535
591
  let gridSize = pn.segment.gridSize / dZ2,
536
592
  gridSizeExt = pn.segment.fileGridSize / dZ2;
537
593
 
@@ -554,8 +610,24 @@ class Node {
554
610
  noDataVertices = new Uint8Array(len / 3);
555
611
  }
556
612
 
557
- getMatrixSubArrayBoundsExt(pseg.terrainVertices, pseg.terrainVerticesHigh, pseg.terrainVerticesLow, pseg.noDataVertices, pseg.gridSize, gridSize * offsetY, gridSize * offsetX, gridSize, tempVertices, tempVerticesHigh, tempVerticesLow, BOUNDS, noDataVertices);
613
+ getMatrixSubArrayBoundsExt(
614
+ pseg.terrainVertices!,
615
+ pseg.terrainVerticesHigh!,
616
+ pseg.terrainVerticesLow!,
617
+ pseg.noDataVertices!,
618
+ pseg.gridSize,
619
+ gridSize * offsetY,
620
+ gridSize * offsetX,
621
+ gridSize,
622
+ tempVertices,
623
+ tempVerticesHigh,
624
+ tempVerticesLow,
625
+ BOUNDS,
626
+ noDataVertices!
627
+ );
628
+
558
629
  } else if (gridSizeExt >= 1 && pn.segment.terrainExists) {
630
+
559
631
  seg.gridSize = gridSizeExt;
560
632
 
561
633
  let len = (gridSizeExt + 1) * (gridSizeExt + 1) * 3;
@@ -567,17 +639,34 @@ class Node {
567
639
  noDataVertices = new Uint8Array(len / 3);
568
640
  }
569
641
 
570
- getMatrixSubArrayBoundsExt(pseg.normalMapVertices, pseg.normalMapVerticesHigh, pseg.normalMapVerticesLow, pseg.noDataVertices, pn.segment.fileGridSize, gridSizeExt * offsetY, gridSizeExt * offsetX, gridSizeExt, tempVertices, tempVerticesHigh, tempVerticesLow, BOUNDS, noDataVertices);
642
+ getMatrixSubArrayBoundsExt(
643
+ pseg.normalMapVertices!,
644
+ pseg.normalMapVerticesHigh!,
645
+ pseg.normalMapVerticesLow!,
646
+ pseg.noDataVertices!,
647
+ pn.segment.fileGridSize,
648
+ gridSizeExt * offsetY,
649
+ gridSizeExt * offsetX,
650
+ gridSizeExt,
651
+ tempVertices,
652
+ tempVerticesHigh,
653
+ tempVerticesLow,
654
+ BOUNDS,
655
+ noDataVertices!
656
+ );
657
+
571
658
  } else {
659
+
572
660
  seg.gridSize = _neGridSize;
573
661
 
574
- let i0 = Math.floor(gridSize * offsetY), j0 = Math.floor(gridSize * offsetX);
662
+ let i0 = Math.floor(gridSize * offsetY),
663
+ j0 = Math.floor(gridSize * offsetX);
575
664
 
576
665
  let bigOne;
577
666
  if (pseg.gridSize === 1) {
578
- bigOne = pseg.terrainVertices;
667
+ bigOne = pseg.terrainVertices!;
579
668
  } else {
580
- bigOne = getMatrixSubArray(pseg.terrainVertices, pseg.gridSize, i0, j0, 1);
669
+ bigOne = getMatrixSubArray64(pseg.terrainVertices!, pseg.gridSize, i0, j0, 1);
581
670
  }
582
671
 
583
672
  let insideSize = 1.0 / gridSize;
@@ -606,10 +695,7 @@ class Node {
606
695
  if (vi_y + vi_x < insideSize) {
607
696
  coords = vn.scaleTo(vi_x_is).addA(vw.scaleTo(vi_y_is)).addA(v_lt);
608
697
  } else {
609
- coords = vs
610
- .scaleTo(1 - vi_x_is)
611
- .addA(ve.scaleTo(1 - vi_y_is))
612
- .addA(v_rb);
698
+ coords = vs.scaleTo(1 - vi_x_is).addA(ve.scaleTo(1 - vi_y_is)).addA(v_rb);
613
699
  }
614
700
 
615
701
  Vec3.doubleToTwoFloats(coords, _tempHigh, _tempLow);
@@ -647,12 +733,12 @@ class Node {
647
733
  seg.tempVerticesHigh = tempVerticesHigh;
648
734
  seg.tempVerticesLow = tempVerticesLow;
649
735
 
650
- seg.noDataVertices = noDataVertices;
736
+ seg.noDataVertices = noDataVertices!;
651
737
 
652
738
  seg.setBoundingVolume(BOUNDS.xmin, BOUNDS.ymin, BOUNDS.zmin, BOUNDS.xmax, BOUNDS.ymax, BOUNDS.zmax);
653
739
 
654
- if (seg.tileZoom > seg.planet.terrain.maxZoom) {
655
- if (pn.segment.tileZoom >= seg.planet.terrain.maxZoom) {
740
+ if (seg.tileZoom > seg.planet.terrain!.maxZoom) {
741
+ if (pn.segment.tileZoom >= seg.planet.terrain!.maxZoom) {
656
742
 
657
743
  seg._plainRadius = pn.segment._plainRadius / dZ2;
658
744
 
@@ -672,57 +758,57 @@ class Node {
672
758
  seg.normalMapVertices = tempVertices;
673
759
  seg.fileGridSize = Math.sqrt(tempVertices.length / 3) - 1;
674
760
 
675
- let fgs = Math.sqrt(pseg.normalMapNormals.length / 3) - 1, fgsZ = fgs / dZ2;
761
+ let fgs = Math.sqrt(pseg.normalMapNormals!.length / 3) - 1, fgsZ = fgs / dZ2;
676
762
 
677
763
  if (fgs > 1) {
678
- seg.normalMapNormals = getMatrixSubArray(pseg.normalMapNormals, fgs, fgsZ * offsetY, fgsZ * offsetX, fgsZ);
764
+ seg.normalMapNormals = getMatrixSubArray32(pseg.normalMapNormals!, fgs, fgsZ * offsetY, fgsZ * offsetX, fgsZ);
679
765
  } else {
680
766
  // TODO: interpolation
681
767
  seg.normalMapNormals = pseg.normalMapNormals;
682
768
  }
683
769
  }
684
770
  }
685
- // else {
686
- // pn = this;
687
- // while (pn.parentNode && pn.segment.tileZoom !== seg.planet.terrain.maxZoom) {
688
- // pn = pn.parentNode;
689
- // }
690
- //
691
- // let pns = pn.segment;
692
- //
693
- // if (!pns.initialized) {
694
- // pns.initialize();
695
- // }
696
- //
697
- // if (!pns.plainProcessing) {
698
- // pn.segment.createPlainSegmentAsync();
699
- // }
700
- //
701
- // if (pns.plainReady && !stopLoading) {
702
- // pns.loadTerrain(true);
703
- // }
704
- // }
705
771
  }
706
772
  }
707
773
  }
708
774
 
709
- destroy() {
775
+ public destroy() {
776
+
710
777
  this.state = NOTRENDERING;
711
778
  this.segment.destroySegment();
712
- var n = this.neighbors;
713
- n[N] && n[N].neighbors && (n[N].neighbors[S] = []);
714
- n[E] && n[E].neighbors && (n[E].neighbors[W] = []);
715
- n[S] && n[S].neighbors && (n[S].neighbors[N] = []);
716
- n[W] && n[W].neighbors && (n[W].neighbors[E] = []);
779
+
780
+ let n = this.neighbors;
781
+ for (let i = 0; i < n.length; i++) {
782
+ let ni = n[i];
783
+ if (ni) {
784
+ for (let j = 0; j < ni.length; j++) {
785
+ let nij = ni[j];
786
+ if (nij && nij.neighbors) {
787
+ // @ts-ignore
788
+ nij.neighbors[N] = null;
789
+ // @ts-ignore
790
+ nij.neighbors[E] = null;
791
+ // @ts-ignore
792
+ nij.neighbors[S] = null;
793
+ // @ts-ignore
794
+ nij.neighbors[W] = null;
795
+ }
796
+ }
797
+ }
798
+ }
799
+
800
+ // @ts-ignore
717
801
  this.neighbors = null;
802
+ // @ts-ignore
718
803
  this.parentNode = null;
804
+ // @ts-ignore
719
805
  this.sideSizeLog2 = null;
806
+ // @ts-ignore
720
807
  this.segment = null;
721
808
  }
722
809
 
723
- clearTree() {
724
- var state = this.getState();
725
-
810
+ public clearTree() {
811
+ const state = this.getState();
726
812
  if (state === NOTRENDERING || state === RENDERING) {
727
813
  this.destroyBranches();
728
814
  } else {
@@ -732,54 +818,60 @@ class Node {
732
818
  }
733
819
  }
734
820
 
735
- clearBranches() {
821
+ public clearBranches() {
736
822
  for (let i = 0; i < this.nodes.length; i++) {
737
- this.nodes[i].clearBranches();
738
- this.nodes[i].segment.deleteMaterials();
823
+ this.nodes[i]!.clearBranches();
824
+ this.nodes[i]!.segment.deleteMaterials();
739
825
  }
740
826
  }
741
827
 
742
- destroyBranches() {
828
+ public destroyBranches() {
743
829
  if (this.ready) {
744
- var nodesToRemove = [], i;
830
+ let nodesToRemove: Node[] = [],
831
+ i;
745
832
 
746
833
  for (i = 0; i < this.nodes.length; i++) {
747
- nodesToRemove[i] = this.nodes[i];
834
+ nodesToRemove[i] = this.nodes[i]!;
748
835
  }
749
836
 
750
837
  this.ready = false;
751
- this.nodes.length = 0;
838
+ this.nodes = [];
752
839
 
753
840
  for (i = 0; i < nodesToRemove.length; i++) {
754
841
  nodesToRemove[i].destroyBranches();
755
842
  nodesToRemove[i].destroy();
843
+ //@ts-ignore
756
844
  nodesToRemove[i] = null;
757
845
  }
758
846
 
759
847
  nodesToRemove.length = 0;
848
+
849
+ // @ts-ignore
760
850
  nodesToRemove = null;
761
851
  }
762
852
  }
763
853
 
764
- traverseTree(callback) {
854
+ public traverseTree(callback: Function) {
765
855
  callback(this);
766
856
  if (this.ready) {
767
857
  for (let i = 0; i < this.nodes.length; i++) {
768
- this.nodes[i].traverseTree(callback);
858
+ this.nodes[i]!.traverseTree(callback);
769
859
  }
770
860
  }
771
861
  }
772
862
 
773
- getOffsetOppositeNeighbourSide(neighbourNode, side) {
774
- let pNode = this, neighbourZoom = neighbourNode.segment.tileZoom, offset = 0;
863
+ public getOffsetOppositeNeighbourSide(neighbourNode: Node, side: number): number {
864
+ let pNode: Node = this,
865
+ neighbourZoom = neighbourNode.segment.tileZoom,
866
+ offset = 0;
775
867
 
776
868
  while (pNode.segment.tileZoom > neighbourZoom) {
777
869
  offset += PARTOFFSET[pNode.partId][side] / (1 << (pNode.segment.tileZoom - neighbourZoom));
778
- pNode = pNode.parentNode;
870
+ pNode = pNode.parentNode!;
779
871
  }
780
872
 
781
873
  return offset;
782
874
  }
783
875
  }
784
876
 
785
- export { Node };
877
+ export {Node};