@openglobus/og 0.18.0 → 0.18.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (476) hide show
  1. package/README.md +8 -8
  2. package/lib/@openglobus/og.esm.js +2 -0
  3. package/lib/@openglobus/og.esm.js.map +1 -0
  4. package/lib/@openglobus/og.umd.js +2 -0
  5. package/lib/@openglobus/og.umd.js.map +1 -0
  6. package/lib/js/Clock.d.ts +106 -0
  7. package/{src/Clock.ts → lib/js/Clock.js} +31 -126
  8. package/lib/js/Deferred.d.ts +6 -0
  9. package/lib/js/Deferred.js +13 -0
  10. package/lib/js/Events.d.ts +90 -0
  11. package/{src/Events.ts → lib/js/Events.js} +29 -84
  12. package/lib/js/Extent.d.ts +145 -0
  13. package/{src/Extent.ts → lib/js/Extent.js} +74 -120
  14. package/lib/js/Globe.d.ts +132 -0
  15. package/{src/Globe.ts → lib/js/Globe.js} +61 -159
  16. package/lib/js/ImageCanvas.d.ts +128 -0
  17. package/{src/ImageCanvas.ts → lib/js/ImageCanvas.js} +24 -65
  18. package/lib/js/Lock.d.ts +15 -0
  19. package/{src/Lock.ts → lib/js/Lock.js} +7 -21
  20. package/lib/js/LonLat.d.ts +128 -0
  21. package/{src/LonLat.ts → lib/js/LonLat.js} +44 -75
  22. package/lib/js/Object3d.d.ts +49 -0
  23. package/{src/Object3d.ts → lib/js/Object3d.js} +64 -184
  24. package/lib/js/Popup.d.ts +46 -0
  25. package/{src/Popup.ts → lib/js/Popup.js} +42 -110
  26. package/lib/js/QueueArray.d.ts +16 -0
  27. package/{src/QueueArray.ts → lib/js/QueueArray.js} +12 -25
  28. package/lib/js/Rectangle.d.ts +76 -0
  29. package/{src/Rectangle.ts → lib/js/Rectangle.js} +12 -50
  30. package/lib/js/Stack.d.ts +20 -0
  31. package/{src/Stack.ts → lib/js/Stack.js} +13 -29
  32. package/lib/js/astro/astro.d.ts +39 -0
  33. package/{src/astro/astro.ts → lib/js/astro/astro.js} +2 -8
  34. package/lib/js/astro/earth.d.ts +8 -0
  35. package/{src/astro/earth.ts → lib/js/astro/earth.js} +3 -39
  36. package/lib/js/astro/jd.d.ts +234 -0
  37. package/{src/astro/jd.ts → lib/js/astro/jd.js} +55 -134
  38. package/lib/js/astro/orbit.d.ts +5 -0
  39. package/{src/astro/orbit.ts → lib/js/astro/orbit.js} +26 -39
  40. package/lib/js/astro/rotation.d.ts +2 -0
  41. package/{src/astro/rotation.ts → lib/js/astro/rotation.js} +2 -11
  42. package/lib/js/bv/Box.d.ts +32 -0
  43. package/{src/bv/Box.ts → lib/js/bv/Box.js} +7 -35
  44. package/lib/js/bv/Sphere.d.ts +37 -0
  45. package/{src/bv/Sphere.ts → lib/js/bv/Sphere.js} +6 -34
  46. package/{src/bv/index.ts → lib/js/bv/index.d.ts} +0 -1
  47. package/lib/js/bv/index.js +3 -0
  48. package/lib/js/camera/Camera.d.ts +314 -0
  49. package/{src/camera/Camera.ts → lib/js/camera/Camera.js} +77 -326
  50. package/lib/js/camera/Frustum.d.ts +139 -0
  51. package/{src/camera/Frustum.ts → lib/js/camera/Frustum.js} +66 -185
  52. package/lib/js/camera/PlanetCamera.d.ts +234 -0
  53. package/{src/camera/PlanetCamera.ts → lib/js/camera/PlanetCamera.js} +65 -338
  54. package/{src/camera/index.ts → lib/js/camera/index.d.ts} +0 -1
  55. package/lib/js/camera/index.js +3 -0
  56. package/lib/js/cons.d.ts +40 -0
  57. package/{src/cons.ts → lib/js/cons.js} +10 -22
  58. package/lib/js/control/Atmosphere.d.ts +16 -0
  59. package/{src/control/Atmosphere.ts → lib/js/control/Atmosphere.js} +33 -86
  60. package/lib/js/control/CompassButton.d.ts +16 -0
  61. package/{src/control/CompassButton.ts → lib/js/control/CompassButton.js} +18 -43
  62. package/lib/js/control/Control.d.ts +100 -0
  63. package/{src/control/Control.ts → lib/js/control/Control.js} +22 -89
  64. package/lib/js/control/DebugInfo.d.ts +25 -0
  65. package/{src/control/DebugInfo.ts → lib/js/control/DebugInfo.js} +38 -84
  66. package/lib/js/control/DrawingSwitcher.d.ts +13 -0
  67. package/{src/control/DrawingSwitcher.ts → lib/js/control/DrawingSwitcher.js} +13 -30
  68. package/lib/js/control/EarthCoordinates.d.ts +41 -0
  69. package/{src/control/EarthCoordinates.ts → lib/js/control/EarthCoordinates.js} +58 -119
  70. package/lib/js/control/EarthNavigation.d.ts +50 -0
  71. package/{src/control/EarthNavigation.ts → lib/js/control/EarthNavigation.js} +70 -161
  72. package/lib/js/control/GeoImageDragControl.d.ts +22 -0
  73. package/{src/control/GeoImageDragControl.ts → lib/js/control/GeoImageDragControl.js} +26 -49
  74. package/lib/js/control/KeyboardNavigation.d.ts +28 -0
  75. package/{src/control/KeyboardNavigation.ts → lib/js/control/KeyboardNavigation.js} +67 -92
  76. package/lib/js/control/LayerAnimation.d.ts +71 -0
  77. package/{src/control/LayerAnimation.ts → lib/js/control/LayerAnimation.js} +82 -162
  78. package/lib/js/control/LayerSwitcher.d.ts +21 -0
  79. package/{src/control/LayerSwitcher.ts → lib/js/control/LayerSwitcher.js} +16 -41
  80. package/lib/js/control/Lighting.d.ts +49 -0
  81. package/{src/control/Lighting.ts → lib/js/control/Lighting.js} +106 -219
  82. package/lib/js/control/MouseNavigation.d.ts +62 -0
  83. package/{src/control/MouseNavigation.ts → lib/js/control/MouseNavigation.js} +105 -211
  84. package/lib/js/control/MouseWheelZoomControl.d.ts +44 -0
  85. package/lib/js/control/MouseWheelZoomControl.js +181 -0
  86. package/lib/js/control/RulerSwitcher.d.ts +17 -0
  87. package/{src/control/RulerSwitcher.ts → lib/js/control/RulerSwitcher.js} +13 -28
  88. package/lib/js/control/ScaleControl.d.ts +24 -0
  89. package/lib/js/control/ScaleControl.js +91 -0
  90. package/lib/js/control/SegmentBoundVisualization.d.ts +12 -0
  91. package/lib/js/control/SegmentBoundVisualization.js +37 -0
  92. package/lib/js/control/ShowFps.d.ts +9 -0
  93. package/lib/js/control/ShowFps.js +20 -0
  94. package/lib/js/control/SimpleNavigation.d.ts +25 -0
  95. package/{src/control/SimpleNavigation.ts → lib/js/control/SimpleNavigation.js} +29 -51
  96. package/lib/js/control/SimpleSkyBackground.d.ts +15 -0
  97. package/{src/control/SimpleSkyBackground.ts → lib/js/control/SimpleSkyBackground.js} +21 -48
  98. package/lib/js/control/Sun.d.ts +33 -0
  99. package/{src/control/Sun.ts → lib/js/control/Sun.js} +34 -85
  100. package/lib/js/control/ToggleWireframe.d.ts +14 -0
  101. package/lib/js/control/ToggleWireframe.js +28 -0
  102. package/lib/js/control/TouchNavigation.d.ts +52 -0
  103. package/{src/control/TouchNavigation.ts → lib/js/control/TouchNavigation.js} +88 -193
  104. package/lib/js/control/ZoomControl.d.ts +27 -0
  105. package/{src/control/ZoomControl.ts → lib/js/control/ZoomControl.js} +25 -50
  106. package/lib/js/control/drawing/DrawingControl.d.ts +12 -0
  107. package/{src/control/drawing/DrawingControl.ts → lib/js/control/drawing/DrawingControl.js} +10 -20
  108. package/lib/js/control/drawing/LineStringDrawingScene.d.ts +15 -0
  109. package/{src/control/drawing/LineStringDrawingScene.ts → lib/js/control/drawing/LineStringDrawingScene.js} +28 -85
  110. package/lib/js/control/drawing/PolygonDrawingScene.d.ts +98 -0
  111. package/{src/control/drawing/PolygonDrawingScene.ts → lib/js/control/drawing/PolygonDrawingScene.js} +190 -388
  112. package/lib/js/control/elevationProfile/ElevationProfile.d.ts +61 -0
  113. package/{src/control/elevationProfile/ElevationProfile.ts → lib/js/control/elevationProfile/ElevationProfile.js} +56 -148
  114. package/lib/js/control/heightRuler/HeightRuler.d.ts +7 -0
  115. package/{src/control/heightRuler/HeightRuler.ts → lib/js/control/heightRuler/HeightRuler.js} +4 -9
  116. package/lib/js/control/heightRuler/HeightRulerScene.d.ts +35 -0
  117. package/{src/control/heightRuler/HeightRulerScene.ts → lib/js/control/heightRuler/HeightRulerScene.js} +47 -99
  118. package/lib/js/control/heightRuler/HeightRulerSwitcher.d.ts +6 -0
  119. package/{src/control/heightRuler/HeightRulerSwitcher.ts → lib/js/control/heightRuler/HeightRulerSwitcher.js} +2 -4
  120. package/{src/control/index.ts → lib/js/control/index.d.ts} +1 -18
  121. package/lib/js/control/index.js +28 -0
  122. package/lib/js/control/ruler/Ruler.d.ts +13 -0
  123. package/lib/js/control/ruler/Ruler.js +23 -0
  124. package/lib/js/control/ruler/RulerScene.d.ts +88 -0
  125. package/lib/js/control/ruler/RulerScene.js +324 -0
  126. package/lib/js/control/selection/Selection.d.ts +55 -0
  127. package/{src/control/selection/Selection.ts → lib/js/control/selection/Selection.js} +15 -34
  128. package/lib/js/control/selection/SelectionScene.d.ts +44 -0
  129. package/{src/control/selection/SelectionScene.ts → lib/js/control/selection/SelectionScene.js} +26 -113
  130. package/lib/js/control/timeline/TimelineControl.d.ts +18 -0
  131. package/{src/control/timeline/TimelineControl.ts → lib/js/control/timeline/TimelineControl.js} +13 -43
  132. package/lib/js/control/timeline/TimelineModel.d.ts +41 -0
  133. package/{src/control/timeline/TimelineModel.ts → lib/js/control/timeline/TimelineModel.js} +26 -74
  134. package/lib/js/control/timeline/TimelineView.d.ts +85 -0
  135. package/{src/control/timeline/TimelineView.ts → lib/js/control/timeline/TimelineView.js} +133 -281
  136. package/lib/js/control/timeline/timelineUtils.d.ts +12 -0
  137. package/lib/js/control/timeline/timelineUtils.js +112 -0
  138. package/lib/js/control/visibleExtent/Segment.d.ts +277 -0
  139. package/{src → lib/js}/control/visibleExtent/Segment.js +145 -698
  140. package/lib/js/control/visibleExtent/VisibleExtent.d.ts +5 -0
  141. package/{src → lib/js}/control/visibleExtent/VisibleExtent.js +1 -18
  142. package/lib/js/control/visibleExtent/drawnode.d.ts +7 -0
  143. package/{src/control/visibleExtent/drawnode.ts → lib/js/control/visibleExtent/drawnode.js} +1 -28
  144. package/lib/js/ellipsoid/Ellipsoid.d.ts +187 -0
  145. package/{src/ellipsoid/Ellipsoid.ts → lib/js/ellipsoid/Ellipsoid.js} +85 -267
  146. package/lib/js/ellipsoid/index.d.ts +3 -0
  147. package/lib/js/ellipsoid/index.js +3 -0
  148. package/lib/js/ellipsoid/wgs84.d.ts +6 -0
  149. package/{src/ellipsoid/wgs84.ts → lib/js/ellipsoid/wgs84.js} +1 -2
  150. package/lib/js/entity/BaseBillboard.d.ts +222 -0
  151. package/{src/entity/BaseBillboard.ts → lib/js/entity/BaseBillboard.js} +48 -165
  152. package/lib/js/entity/BaseBillboardHandler.d.ts +81 -0
  153. package/{src/entity/BaseBillboardHandler.ts → lib/js/entity/BaseBillboardHandler.js} +139 -365
  154. package/lib/js/entity/Billboard.d.ts +113 -0
  155. package/{src/entity/Billboard.ts → lib/js/entity/Billboard.js} +19 -83
  156. package/lib/js/entity/BillboardHandler.d.ts +15 -0
  157. package/{src/entity/BillboardHandler.ts → lib/js/entity/BillboardHandler.js} +27 -59
  158. package/lib/js/entity/Entity.d.ts +354 -0
  159. package/{src/entity/Entity.ts → lib/js/entity/Entity.js} +102 -374
  160. package/lib/js/entity/EntityCollection.d.ts +363 -0
  161. package/{src/entity/EntityCollection.ts → lib/js/entity/EntityCollection.js} +57 -359
  162. package/lib/js/entity/GeoObject.d.ts +138 -0
  163. package/{src/entity/GeoObject.ts → lib/js/entity/GeoObject.js} +41 -146
  164. package/lib/js/entity/GeoObjectHandler.d.ts +99 -0
  165. package/{src/entity/GeoObjectHandler.ts → lib/js/entity/GeoObjectHandler.js} +162 -423
  166. package/lib/js/entity/Geometry.d.ts +111 -0
  167. package/lib/js/entity/Geometry.js +283 -0
  168. package/lib/js/entity/GeometryHandler.d.ts +84 -0
  169. package/{src/entity/GeometryHandler.ts → lib/js/entity/GeometryHandler.js} +162 -657
  170. package/lib/js/entity/Label.d.ts +207 -0
  171. package/{src/entity/Label.ts → lib/js/entity/Label.js} +63 -165
  172. package/lib/js/entity/LabelHandler.d.ts +65 -0
  173. package/{src/entity/LabelHandler.ts → lib/js/entity/LabelHandler.js} +175 -408
  174. package/lib/js/entity/LabelWorker.d.ts +15 -0
  175. package/{src/entity/LabelWorker.ts → lib/js/entity/LabelWorker.js} +24 -45
  176. package/lib/js/entity/PointCloud.d.ts +179 -0
  177. package/{src/entity/PointCloud.ts → lib/js/entity/PointCloud.js} +65 -265
  178. package/lib/js/entity/PointCloudHandler.d.ts +42 -0
  179. package/{src/entity/PointCloudHandler.ts → lib/js/entity/PointCloudHandler.js} +19 -62
  180. package/lib/js/entity/Polyline.d.ts +337 -0
  181. package/{src/entity/Polyline.ts → lib/js/entity/Polyline.js} +289 -924
  182. package/lib/js/entity/PolylineHandler.d.ts +22 -0
  183. package/{src/entity/PolylineHandler.ts → lib/js/entity/PolylineHandler.js} +12 -37
  184. package/lib/js/entity/Ray.d.ts +133 -0
  185. package/{src/entity/Ray.ts → lib/js/entity/Ray.js} +26 -146
  186. package/lib/js/entity/RayHandler.d.ts +70 -0
  187. package/{src/entity/RayHandler.ts → lib/js/entity/RayHandler.js} +102 -342
  188. package/lib/js/entity/Strip.d.ts +127 -0
  189. package/{src/entity/Strip.ts → lib/js/entity/Strip.js} +102 -372
  190. package/lib/js/entity/StripHandler.d.ts +42 -0
  191. package/{src/entity/StripHandler.ts → lib/js/entity/StripHandler.js} +22 -74
  192. package/{src/entity/index.ts → lib/js/entity/index.d.ts} +1 -2
  193. package/lib/js/entity/index.js +11 -0
  194. package/lib/js/index.d.ts +33 -0
  195. package/lib/js/index.js +33 -0
  196. package/lib/js/input/KeyboardHandler.d.ts +33 -0
  197. package/{src/input/KeyboardHandler.ts → lib/js/input/KeyboardHandler.js} +45 -84
  198. package/lib/js/input/MouseHandler.d.ts +16 -0
  199. package/{src/input/MouseHandler.ts → lib/js/input/MouseHandler.js} +12 -36
  200. package/lib/js/input/TouchHandler.d.ts +11 -0
  201. package/{src/input/TouchHandler.ts → lib/js/input/TouchHandler.js} +11 -23
  202. package/lib/js/input/input.d.ts +3 -0
  203. package/{src/input/input.ts → lib/js/input/input.js} +1 -1
  204. package/lib/js/layer/BaseGeoImage.d.ts +145 -0
  205. package/{src/layer/BaseGeoImage.ts → lib/js/layer/BaseGeoImage.js} +70 -235
  206. package/lib/js/layer/CanvasTiles.d.ts +103 -0
  207. package/{src/layer/CanvasTiles.ts → lib/js/layer/CanvasTiles.js} +54 -146
  208. package/lib/js/layer/GeoImage.d.ts +61 -0
  209. package/{src/layer/GeoImage.ts → lib/js/layer/GeoImage.js} +24 -54
  210. package/lib/js/layer/GeoTexture2d.d.ts +17 -0
  211. package/lib/js/layer/GeoTexture2d.js +37 -0
  212. package/lib/js/layer/GeoVideo.d.ts +68 -0
  213. package/{src/layer/GeoVideo.ts → lib/js/layer/GeoVideo.js} +31 -61
  214. package/lib/js/layer/KML.d.ts +72 -0
  215. package/{src/layer/KML.ts → lib/js/layer/KML.js} +94 -138
  216. package/lib/js/layer/Layer.d.ts +401 -0
  217. package/{src/layer/Layer.ts → lib/js/layer/Layer.js} +92 -443
  218. package/lib/js/layer/Material.d.ts +34 -0
  219. package/{src/layer/Material.ts → lib/js/layer/Material.js} +9 -43
  220. package/lib/js/layer/Vector.d.ts +243 -0
  221. package/{src/layer/Vector.ts → lib/js/layer/Vector.js} +155 -426
  222. package/lib/js/layer/WMS.d.ts +75 -0
  223. package/{src/layer/WMS.ts → lib/js/layer/WMS.js} +18 -100
  224. package/lib/js/layer/XYZ.d.ts +149 -0
  225. package/{src/layer/XYZ.ts → lib/js/layer/XYZ.js} +71 -171
  226. package/lib/js/layer/index.d.ts +11 -0
  227. package/lib/js/layer/index.js +11 -0
  228. package/lib/js/light/LightSource.d.ts +174 -0
  229. package/{src/light/LightSource.ts → lib/js/light/LightSource.js} +22 -131
  230. package/lib/js/math/Line2.d.ts +11 -0
  231. package/{src/math/Line2.ts → lib/js/math/Line2.js} +5 -15
  232. package/lib/js/math/Line3.d.ts +28 -0
  233. package/lib/js/math/Line3.js +85 -0
  234. package/lib/js/math/Mat3.d.ts +77 -0
  235. package/{src/math/Mat3.ts → lib/js/math/Mat3.js} +22 -51
  236. package/lib/js/math/Mat4.d.ts +195 -0
  237. package/{src/math/Mat4.ts → lib/js/math/Mat4.js} +53 -219
  238. package/lib/js/math/Plane.d.ts +20 -0
  239. package/{src/math/Plane.ts → lib/js/math/Plane.js} +26 -40
  240. package/lib/js/math/Quat.d.ts +373 -0
  241. package/{src/math/Quat.ts → lib/js/math/Quat.js} +106 -319
  242. package/lib/js/math/Ray.d.ts +76 -0
  243. package/{src/math/Ray.ts → lib/js/math/Ray.js} +21 -66
  244. package/lib/js/math/Vec2.d.ts +310 -0
  245. package/{src/math/Vec2.ts → lib/js/math/Vec2.js} +55 -121
  246. package/lib/js/math/Vec3.d.ts +472 -0
  247. package/{src/math/Vec3.ts → lib/js/math/Vec3.js} +103 -236
  248. package/lib/js/math/Vec4.d.ts +163 -0
  249. package/{src/math/Vec4.ts → lib/js/math/Vec4.js} +23 -79
  250. package/lib/js/math/coder.d.ts +51 -0
  251. package/{src/math/coder.ts → lib/js/math/coder.js} +14 -20
  252. package/lib/js/math/index.d.ts +11 -0
  253. package/lib/js/math/index.js +11 -0
  254. package/lib/js/math.d.ts +266 -0
  255. package/{src/math.ts → lib/js/math.js} +37 -85
  256. package/lib/js/mercator.d.ts +92 -0
  257. package/{src/mercator.ts → lib/js/mercator.js} +13 -37
  258. package/lib/js/proj/EPSG3857.d.ts +9 -0
  259. package/{src/proj/EPSG3857.ts → lib/js/proj/EPSG3857.js} +0 -2
  260. package/lib/js/proj/EPSG4326.d.ts +9 -0
  261. package/{src/proj/EPSG4326.ts → lib/js/proj/EPSG4326.js} +0 -2
  262. package/lib/js/proj/Proj.d.ts +43 -0
  263. package/{src/proj/Proj.ts → lib/js/proj/Proj.js} +4 -29
  264. package/lib/js/quadTree/EPSG4326QuadTreeStrategy.d.ts +6 -0
  265. package/lib/js/quadTree/EPSG4326QuadTreeStrategy.js +17 -0
  266. package/lib/js/quadTree/EarthQuadTreeStrategy.d.ts +6 -0
  267. package/lib/js/quadTree/EarthQuadTreeStrategy.js +19 -0
  268. package/lib/js/quadTree/EntityCollectionNode.d.ts +54 -0
  269. package/{src/quadTree/EntityCollectionNode.ts → lib/js/quadTree/EntityCollectionNode.js} +83 -150
  270. package/lib/js/quadTree/MarsQuadTreeStrategy.d.ts +6 -0
  271. package/lib/js/quadTree/MarsQuadTreeStrategy.js +17 -0
  272. package/lib/js/quadTree/Node.d.ts +61 -0
  273. package/{src/quadTree/Node.ts → lib/js/quadTree/Node.js} +140 -357
  274. package/lib/js/quadTree/QuadTreeStrategy.d.ts +25 -0
  275. package/{src/quadTree/QuadTreeStrategy.ts → lib/js/quadTree/QuadTreeStrategy.js} +13 -44
  276. package/lib/js/quadTree/Wgs84QuadTreeStrategy.d.ts +6 -0
  277. package/lib/js/quadTree/Wgs84QuadTreeStrategy.js +15 -0
  278. package/lib/js/quadTree/index.d.ts +12 -0
  279. package/lib/js/quadTree/index.js +12 -0
  280. package/lib/js/quadTree/quadTree.d.ts +40 -0
  281. package/{src/quadTree/quadTree.ts → lib/js/quadTree/quadTree.js} +0 -9
  282. package/lib/js/renderer/Renderer.d.ts +320 -0
  283. package/{src/renderer/Renderer.ts → lib/js/renderer/Renderer.js} +265 -622
  284. package/lib/js/renderer/RendererEvents.d.ts +239 -0
  285. package/{src/renderer/RendererEvents.ts → lib/js/renderer/RendererEvents.js} +158 -472
  286. package/lib/js/scene/Axes.d.ts +12 -0
  287. package/lib/js/scene/Axes.js +59 -0
  288. package/lib/js/scene/BaseNode.d.ts +61 -0
  289. package/{src/scene/BaseNode.ts → lib/js/scene/BaseNode.js} +11 -57
  290. package/lib/js/scene/Planet.d.ts +623 -0
  291. package/{src/scene/Planet.ts → lib/js/scene/Planet.js} +257 -937
  292. package/lib/js/scene/RenderNode.d.ts +150 -0
  293. package/{src/scene/RenderNode.ts → lib/js/scene/RenderNode.js} +33 -138
  294. package/lib/js/scene/SkyBox.d.ts +13 -0
  295. package/{src/scene/SkyBox.ts → lib/js/scene/SkyBox.js} +16 -37
  296. package/{src/scene/index.ts → lib/js/scene/index.d.ts} +0 -1
  297. package/lib/js/scene/index.js +5 -0
  298. package/lib/js/segment/Segment.d.ts +278 -0
  299. package/{src/segment/Segment.ts → lib/js/segment/Segment.js} +242 -913
  300. package/lib/js/segment/SegmentLonLat.d.ts +48 -0
  301. package/{src/segment/SegmentLonLat.ts → lib/js/segment/SegmentLonLat.js} +58 -132
  302. package/lib/js/segment/SegmentLonLatWgs84.d.ts +10 -0
  303. package/lib/js/segment/SegmentLonLatWgs84.js +23 -0
  304. package/lib/js/segment/Slice.d.ts +13 -0
  305. package/{src/segment/Slice.ts → lib/js/segment/Slice.js} +4 -22
  306. package/lib/js/segment/segmentHelper.d.ts +18 -0
  307. package/{src/segment/segmentHelper.ts → lib/js/segment/segmentHelper.js} +30 -88
  308. package/lib/js/shaders/atmos.d.ts +4 -0
  309. package/{src/shaders/atmos.ts → lib/js/shaders/atmos.js} +8 -26
  310. package/lib/js/shaders/billboard.d.ts +3 -0
  311. package/{src/shaders/billboard.ts → lib/js/shaders/billboard.js} +9 -18
  312. package/lib/js/shaders/bloom.d.ts +2 -0
  313. package/{src/shaders/bloom.ts → lib/js/shaders/bloom.js} +5 -8
  314. package/lib/js/shaders/blur.d.ts +3 -0
  315. package/{src/shaders/blur.ts → lib/js/shaders/blur.js} +11 -19
  316. package/lib/js/shaders/depth.d.ts +2 -0
  317. package/{src/shaders/depth.ts → lib/js/shaders/depth.js} +3 -6
  318. package/lib/js/shaders/drawnode.d.ts +8 -0
  319. package/{src/shaders/drawnode.ts → lib/js/shaders/drawnode.js} +23 -75
  320. package/lib/js/shaders/geoObject.d.ts +3 -0
  321. package/{src/shaders/geoObject.ts → lib/js/shaders/geoObject.js} +51 -63
  322. package/lib/js/shaders/label.d.ts +4 -0
  323. package/{src/shaders/label.ts → lib/js/shaders/label.js} +12 -25
  324. package/lib/js/shaders/lumFilter.d.ts +2 -0
  325. package/{src/shaders/lumFilter.ts → lib/js/shaders/lumFilter.js} +4 -7
  326. package/lib/js/shaders/pickingMask.d.ts +2 -0
  327. package/{src/shaders/pickingMask.ts → lib/js/shaders/pickingMask.js} +5 -8
  328. package/lib/js/shaders/pointCloud.d.ts +2 -0
  329. package/{src/shaders/pointCloud.ts → lib/js/shaders/pointCloud.js} +4 -7
  330. package/lib/js/shaders/polyline.d.ts +3 -0
  331. package/{src/shaders/polyline.ts → lib/js/shaders/polyline.js} +7 -22
  332. package/lib/js/shaders/ray.d.ts +2 -0
  333. package/{src/shaders/ray.ts → lib/js/shaders/ray.js} +4 -7
  334. package/lib/js/shaders/screenFrame.d.ts +2 -0
  335. package/{src/shaders/screenFrame.ts → lib/js/shaders/screenFrame.js} +5 -8
  336. package/lib/js/shaders/skybox.d.ts +2 -0
  337. package/{src/shaders/skybox.ts → lib/js/shaders/skybox.js} +10 -13
  338. package/lib/js/shaders/toneMapping.d.ts +2 -0
  339. package/{src/shaders/toneMapping.ts → lib/js/shaders/toneMapping.js} +5 -8
  340. package/lib/js/shaders/utils.d.ts +1 -0
  341. package/{src/shaders/utils.ts → lib/js/shaders/utils.js} +1 -1
  342. package/lib/js/terrain/BilTerrain.d.ts +18 -0
  343. package/{src/terrain/BilTerrain.ts → lib/js/terrain/BilTerrain.js} +21 -118
  344. package/lib/js/terrain/EmptyTerrain.d.ts +106 -0
  345. package/{src/terrain/EmptyTerrain.ts → lib/js/terrain/EmptyTerrain.js} +20 -144
  346. package/lib/js/terrain/Geoid.d.ts +33 -0
  347. package/lib/js/terrain/Geoid.js +191 -0
  348. package/lib/js/terrain/GlobusTerrain.d.ts +134 -0
  349. package/{src/terrain/GlobusTerrain.ts → lib/js/terrain/GlobusTerrain.js} +84 -241
  350. package/lib/js/terrain/MapboxTerrain.d.ts +21 -0
  351. package/{src/terrain/MapboxTerrain.ts → lib/js/terrain/MapboxTerrain.js} +46 -215
  352. package/{src/terrain/index.ts → lib/js/terrain/index.d.ts} +0 -1
  353. package/lib/js/terrain/index.js +5 -0
  354. package/lib/js/ui/Button.d.ts +32 -0
  355. package/lib/js/ui/Button.js +78 -0
  356. package/lib/js/ui/ButtonGroup.d.ts +16 -0
  357. package/lib/js/ui/ButtonGroup.js +41 -0
  358. package/lib/js/ui/Dialog.d.ts +55 -0
  359. package/lib/js/ui/Dialog.js +173 -0
  360. package/lib/js/ui/Slider.d.ts +38 -0
  361. package/lib/js/ui/Slider.js +129 -0
  362. package/lib/js/ui/ToggleButton.d.ts +20 -0
  363. package/lib/js/ui/ToggleButton.js +42 -0
  364. package/lib/js/ui/View.d.ts +37 -0
  365. package/{src/ui/View.ts → lib/js/ui/View.js} +31 -77
  366. package/lib/js/ui/icons.d.ts +1 -0
  367. package/{src/ui/icons.ts → lib/js/ui/icons.js} +1 -1
  368. package/lib/js/utils/BaseWorker.d.ts +14 -0
  369. package/{src/utils/BaseWorker.ts → lib/js/utils/BaseWorker.js} +15 -28
  370. package/lib/js/utils/FontAtlas.d.ts +82 -0
  371. package/{src/utils/FontAtlas.ts → lib/js/utils/FontAtlas.js} +46 -182
  372. package/lib/js/utils/GeoImageCreator.d.ts +34 -0
  373. package/{src/utils/GeoImageCreator.ts → lib/js/utils/GeoImageCreator.js} +34 -91
  374. package/lib/js/utils/ImagesCacheManager.d.ts +22 -0
  375. package/{src/utils/ImagesCacheManager.ts → lib/js/utils/ImagesCacheManager.js} +16 -38
  376. package/lib/js/utils/Loader.d.ts +63 -0
  377. package/lib/js/utils/Loader.js +156 -0
  378. package/lib/js/utils/NormalMapCreator.d.ts +52 -0
  379. package/{src/utils/NormalMapCreator.ts → lib/js/utils/NormalMapCreator.js} +64 -195
  380. package/lib/js/utils/PlainSegmentWorker.d.ts +24 -0
  381. package/{src/utils/PlainSegmentWorker.ts → lib/js/utils/PlainSegmentWorker.js} +24 -56
  382. package/lib/js/utils/TerrainWorker.d.ts +28 -0
  383. package/{src/utils/TerrainWorker.ts → lib/js/utils/TerrainWorker.js} +19 -56
  384. package/lib/js/utils/TextureAtlas.d.ts +113 -0
  385. package/{src/utils/TextureAtlas.ts → lib/js/utils/TextureAtlas.js} +40 -131
  386. package/lib/js/utils/VectorTileCreator.d.ts +18 -0
  387. package/{src/utils/VectorTileCreator.ts → lib/js/utils/VectorTileCreator.js} +61 -147
  388. package/lib/js/utils/colorTable.d.ts +3 -0
  389. package/{src/utils/colorTable.ts → lib/js/utils/colorTable.js} +2 -2
  390. package/lib/js/utils/earcut.d.ts +7 -0
  391. package/{src/utils/earcut.ts → lib/js/utils/earcut.js} +95 -223
  392. package/lib/js/utils/objParser.d.ts +24 -0
  393. package/{src/utils/objParser.ts → lib/js/utils/objParser.js} +38 -93
  394. package/lib/js/utils/shared.d.ts +267 -0
  395. package/{src/utils/shared.ts → lib/js/utils/shared.js} +185 -342
  396. package/lib/js/utils/units.d.ts +16 -0
  397. package/lib/js/utils/units.js +61 -0
  398. package/lib/js/webgl/BaseFramebuffer.d.ts +53 -0
  399. package/{src/webgl/BaseFramebuffer.ts → lib/js/webgl/BaseFramebuffer.js} +22 -59
  400. package/lib/js/webgl/Framebuffer.d.ts +69 -0
  401. package/{src/webgl/Framebuffer.ts → lib/js/webgl/Framebuffer.js} +30 -87
  402. package/lib/js/webgl/Handler.d.ts +473 -0
  403. package/{src/webgl/Handler.ts → lib/js/webgl/Handler.js} +175 -586
  404. package/lib/js/webgl/Multisample.d.ts +27 -0
  405. package/lib/js/webgl/Multisample.js +77 -0
  406. package/lib/js/webgl/Program.d.ts +159 -0
  407. package/{src/webgl/Program.ts → lib/js/webgl/Program.js} +73 -210
  408. package/lib/js/webgl/ProgramController.d.ts +86 -0
  409. package/{src/webgl/ProgramController.ts → lib/js/webgl/ProgramController.js} +11 -45
  410. package/{src/webgl/index.ts → lib/js/webgl/index.d.ts} +1 -8
  411. package/lib/js/webgl/index.js +6 -0
  412. package/lib/js/webgl/types.d.ts +9 -0
  413. package/{src/webgl/types.ts → lib/js/webgl/types.js} +5 -8
  414. package/lib/js/webgl/variableHandlers.d.ts +22 -0
  415. package/lib/js/webgl/variableHandlers.js +78 -0
  416. package/package.json +23 -34
  417. package/dist/@openglobus/og.esm.js +0 -2
  418. package/dist/@openglobus/og.esm.js.map +0 -1
  419. package/dist/@openglobus/og.umd.js +0 -2
  420. package/dist/@openglobus/og.umd.js.map +0 -1
  421. package/src/Deferred.ts +0 -17
  422. package/src/control/MouseWheelZoomControl.ts +0 -269
  423. package/src/control/ScaleControl.ts +0 -131
  424. package/src/control/SegmentBoundVisualization.ts +0 -50
  425. package/src/control/ShowFps.ts +0 -28
  426. package/src/control/ToggleWireframe.ts +0 -35
  427. package/src/control/ruler/Ruler.ts +0 -35
  428. package/src/control/ruler/RulerScene.ts +0 -437
  429. package/src/control/timeline/timelineUtils.ts +0 -133
  430. package/src/ellipsoid/index.ts +0 -4
  431. package/src/entity/Geometry.ts +0 -486
  432. package/src/index.ts +0 -173
  433. package/src/layer/GeoTexture2d.ts +0 -56
  434. package/src/layer/index.ts +0 -12
  435. package/src/math/Line3.ts +0 -162
  436. package/src/math/index.ts +0 -26
  437. package/src/quadTree/EPSG4326QuadTreeStrategy.ts +0 -24
  438. package/src/quadTree/EarthQuadTreeStrategy.ts +0 -28
  439. package/src/quadTree/MarsQuadTreeStrategy.ts +0 -25
  440. package/src/quadTree/Wgs84QuadTreeStrategy.ts +0 -22
  441. package/src/quadTree/index.ts +0 -14
  442. package/src/scene/Axes.ts +0 -78
  443. package/src/segment/SegmentLonLatWgs84.ts +0 -33
  444. package/src/terrain/Geoid.ts +0 -273
  445. package/src/ui/Button.ts +0 -121
  446. package/src/ui/ButtonGroup.ts +0 -63
  447. package/src/ui/Dialog.ts +0 -244
  448. package/src/ui/Slider.ts +0 -188
  449. package/src/ui/ToggleButton.ts +0 -68
  450. package/src/utils/Loader.ts +0 -247
  451. package/src/utils/units.ts +0 -78
  452. package/src/webgl/Multisample.ts +0 -153
  453. package/src/webgl/variableHandlers.ts +0 -114
  454. /package/{dist → lib}/@openglobus/og.css +0 -0
  455. /package/{dist → lib}/@openglobus/res/fonts/Karla-Bold.json +0 -0
  456. /package/{dist → lib}/@openglobus/res/fonts/Karla-Bold.ttf.cfg +0 -0
  457. /package/{dist → lib}/@openglobus/res/fonts/Karla-Bold.ttf.png +0 -0
  458. /package/{dist → lib}/@openglobus/res/fonts/Karla-Light.json +0 -0
  459. /package/{dist → lib}/@openglobus/res/fonts/Karla-Light.ttf.cfg +0 -0
  460. /package/{dist → lib}/@openglobus/res/fonts/Karla-Light.ttf.png +0 -0
  461. /package/{dist → lib}/@openglobus/res/fonts/Karla-Medium.json +0 -0
  462. /package/{dist → lib}/@openglobus/res/fonts/Karla-Medium.ttf.cfg +0 -0
  463. /package/{dist → lib}/@openglobus/res/fonts/Karla-Medium.ttf.png +0 -0
  464. /package/{dist → lib}/@openglobus/res/fonts/NotoSansArabic-Regular.json +0 -0
  465. /package/{dist → lib}/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.cfg +0 -0
  466. /package/{dist → lib}/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.png +0 -0
  467. /package/{dist → lib}/@openglobus/res/fonts/Roboto-Regular.json +0 -0
  468. /package/{dist → lib}/@openglobus/res/fonts/Roboto-Regular.ttf.cfg +0 -0
  469. /package/{dist → lib}/@openglobus/res/fonts/Roboto-Regular.ttf.png +0 -0
  470. /package/{dist → lib}/@openglobus/res/fonts/arial.js +0 -0
  471. /package/{dist → lib}/@openglobus/res/fonts/arial.json +0 -0
  472. /package/{dist → lib}/@openglobus/res/fonts/arial.ttf.cfg +0 -0
  473. /package/{dist → lib}/@openglobus/res/fonts/arial.ttf.png +0 -0
  474. /package/{dist → lib}/@openglobus/res/night-4326.png +0 -0
  475. /package/{dist → lib}/@openglobus/res/night.png +0 -0
  476. /package/{dist → lib}/@openglobus/res/spec.png +0 -0
@@ -2,83 +2,33 @@ import * as math from "../math";
2
2
  import * as segmentHelper from "../segment/segmentHelper";
3
3
  import * as shaders from "../shaders/drawnode";
4
4
  import * as utils from "../utils/shared";
5
- import {Atmosphere} from "../control/Atmosphere";
6
- import {Control} from "../control/Control";
7
- import {createColorRGB, isUndef} from "../utils/shared";
8
- import {createEvents, EventsHandler} from "../Events";
9
- import {decodeFloatFromRGBAArr} from "../math/coder";
10
- import {EarthQuadTreeStrategy} from "../quadTree/EarthQuadTreeStrategy";
11
- import {EmptyTerrain} from "../terrain/EmptyTerrain";
12
- import {Extent} from "../Extent";
13
- import {Entity} from "../entity/Entity";
14
- import {Ellipsoid} from "../ellipsoid/Ellipsoid";
15
- import {EntityCollection} from "../entity/EntityCollection";
16
- import {Geoid, GeoidModel} from "../terrain/Geoid";
17
- import {GeoImageCreator} from "../utils/GeoImageCreator";
18
- import {IBaseInputState} from "../renderer/RendererEvents";
19
- import {Key, Lock} from "../Lock";
20
- import {Layer} from "../layer/Layer";
21
- import {Loader} from "../utils/Loader";
22
- import {LonLat} from "../LonLat";
23
- import {Node} from "../quadTree/Node";
24
- import {NormalMapCreator} from "../utils/NormalMapCreator";
25
- import {PlainSegmentWorker} from "../utils/PlainSegmentWorker";
26
- import {PlanetCamera} from "../camera/PlanetCamera";
27
- import {Quat} from "../math/Quat";
28
- import {QuadTreeStrategy} from "../quadTree/QuadTreeStrategy";
29
- import {Ray} from "../math/Ray";
30
- import {RenderNode} from "./RenderNode";
31
- import {SimpleSkyBackground} from "../control/SimpleSkyBackground";
32
- import {Sun} from "../control/Sun";
33
- import {TerrainWorker} from "../utils/TerrainWorker";
34
- import {Vec2, Vec3, Vec4, NumberArray2, NumberArray3, NumberArray4} from "../math/index";
35
- import {Vector} from "../layer/Vector";
36
- import {VectorTileCreator} from "../utils/VectorTileCreator";
37
- import {wgs84} from "../ellipsoid/wgs84";
38
- import {WebGLBufferExt, WebGLTextureExt, IDefaultTextureParams} from "../webgl/Handler";
39
- import Constructor = jest.Constructor;
40
-
41
- export interface IPlanetParams {
42
- name?: string;
43
- ellipsoid?: Ellipsoid;
44
- minAltitude?: number;
45
- maxAltitude?: number;
46
- frustums?: NumberArray2[];
47
- maxEqualZoomAltitude?: number;
48
- minEqualZoomAltitude?: number;
49
- minEqualZoomCameraSlope?: number;
50
- quadTreeStrategyPrototype?: typeof QuadTreeStrategy;
51
- ambient?: string | NumberArray3 | Vec3;
52
- diffuse?: string | NumberArray3 | Vec3;
53
- specular?: string | NumberArray3 | Vec3;
54
- shininess?: number;
55
- nightTextureSrc?: string | null;
56
- specularTextureSrc?: string | null;
57
- maxGridSize?: number;
58
- maxLoadingRequests?: number;
59
- atmosphereEnabled?: boolean;
60
- }
61
-
62
- export type PlanetEventsList = [
63
- "draw",
64
- "layeradd",
65
- "baselayerchange",
66
- "layerremove",
67
- "layervisibilitychange",
68
- "rendercompleted",
69
- "terraincompleted",
70
- "layerloadend"
71
- ];
72
-
5
+ import { Atmosphere } from "../control/Atmosphere";
6
+ import { createColorRGB } from "../utils/shared";
7
+ import { createEvents } from "../Events";
8
+ import { decodeFloatFromRGBAArr } from "../math/coder";
9
+ import { EarthQuadTreeStrategy } from "../quadTree/EarthQuadTreeStrategy";
10
+ import { Extent } from "../Extent";
11
+ import { Geoid } from "../terrain/Geoid";
12
+ import { GeoImageCreator } from "../utils/GeoImageCreator";
13
+ import { Key, Lock } from "../Lock";
14
+ import { Loader } from "../utils/Loader";
15
+ import { LonLat } from "../LonLat";
16
+ import { NormalMapCreator } from "../utils/NormalMapCreator";
17
+ import { PlainSegmentWorker } from "../utils/PlainSegmentWorker";
18
+ import { PlanetCamera } from "../camera/PlanetCamera";
19
+ import { RenderNode } from "./RenderNode";
20
+ import { SimpleSkyBackground } from "../control/SimpleSkyBackground";
21
+ import { TerrainWorker } from "../utils/TerrainWorker";
22
+ import { Vec3, Vec4 } from "../math/index";
23
+ import { Vector } from "../layer/Vector";
24
+ import { VectorTileCreator } from "../utils/VectorTileCreator";
25
+ import { wgs84 } from "../ellipsoid/wgs84";
73
26
  const CUR_LOD_SIZE = 250; //px
74
27
  const MIN_LOD_SIZE = 312; //px
75
28
  const MAX_LOD_SIZE = 190; //px
76
-
77
29
  let _tempPickingPix_ = new Uint8Array(4);
78
30
  let _tempDepthColor_ = new Uint8Array(4);
79
-
80
- const DEPTH_DISTANCE = 11;//m
81
-
31
+ const DEPTH_DISTANCE = 11; //m
82
32
  /**
83
33
  * Maximum created nodes count. The more nodes count the more memory usage.
84
34
  * @const
@@ -86,11 +36,7 @@ const DEPTH_DISTANCE = 11;//m
86
36
  * @default
87
37
  */
88
38
  const MAX_NODES = 200;
89
-
90
39
  const HORIZON_TANGENT = 0.81;
91
-
92
- type IndexBufferCacheData = { buffer: WebGLBufferExt | null };
93
-
94
40
  /**
95
41
  * Main class for rendering planet
96
42
  * @class
@@ -110,332 +56,19 @@ type IndexBufferCacheData = { buffer: WebGLBufferExt | null };
110
56
  * @fires EventsHandler<PlanetEventList>#geoimageadd
111
57
  */
112
58
  export class Planet extends RenderNode {
113
-
114
- public events: EventsHandler<PlanetEventsList>;
115
-
116
- /**
117
- * @public
118
- * @type {Ellipsoid}
119
- */
120
- public ellipsoid: Ellipsoid;
121
-
122
- /**
123
- * @public
124
- * @override
125
- * @type {Boolean}
126
- */
127
- public override lightEnabled: boolean;
128
-
129
- /**
130
- * Squared ellipsoid radius.
131
- * @public
132
- * @type {number}
133
- */
134
- public _planetRadius2: number;
135
-
136
- /**
137
- * Layers array.
138
- * @public
139
- * @type {Array.<Layer>}
140
- */
141
- public _layers: Layer[];
142
-
143
- /**
144
- * Flag to trigger layer update in a next frame
145
- * @type {boolean}
146
- * @protected
147
- */
148
- protected _updateLayer: boolean;
149
-
150
- /**
151
- * Current visible imagery tile layers array.
152
- * @public
153
- * @type {Array.<Layer>}
154
- */
155
- public visibleTileLayers: Layer[];
156
-
157
- /**
158
- * Current visible vector layers array.
159
- * @protected
160
- * @type {Array.<Layer>}
161
- */
162
- protected visibleVectorLayers: Layer[];
163
-
164
- protected _visibleTileLayerSlices: Layer[][];
165
-
166
- /**
167
- * Vector layers visible nodes with collections.
168
- * @protected
169
- * @type {Array.<EntityCollection>}
170
- */
171
- protected _frustumEntityCollections: EntityCollection[];
172
-
173
- /**
174
- * There is only one base layer on the globe when layer.isBaseLayer is true.
175
- * @public
176
- * @type {Layer}
177
- */
178
- public baseLayer: Layer | null;
179
-
180
- /**
181
- * Terrain provider.
182
- * @public
183
- * @type {EmptyTerrain}
184
- */
185
- public terrain: EmptyTerrain | null;
186
-
187
- /**
188
- * Camera is this.renderer.activeCamera pointer.
189
- * @public
190
- * @type {PlanetCamera}
191
- */
192
- public camera: PlanetCamera;
193
-
194
- public maxEqualZoomAltitude: number;
195
- public minEqualZoomAltitude: number;
196
- public minEqualZoomCameraSlope: number;
197
-
198
- /**
199
- * Screen mouse pointer projected to planet cartesian position.
200
- * @public
201
- * @type {Vec3}
202
- */
203
- public mousePositionOnEarth: Vec3;
204
-
205
- public emptyTexture: WebGLTextureExt | null;
206
- public transparentTexture: WebGLTextureExt | null;
207
- public defaultTexture: WebGLTextureExt | null;
208
-
209
- /**
210
- * Current visible minimal zoom index planet segment.
211
- * @public
212
- * @type {number}
213
- */
214
- public minCurrZoom: number;
215
-
216
- /**
217
- * Current visible maximal zoom index planet segment.
218
- * @public
219
- * @type {number}
220
- */
221
- public maxCurrZoom: number;
222
-
223
- public _viewExtent: Extent;
224
-
225
- protected _initialViewExtent: Extent | null;
226
-
227
- public _createdNodesCount: number;
228
-
229
- /**
230
- * Planet's segments collected for rendering frame.
231
- * @public
232
- * @type {Node}
233
- */
234
- public _renderedNodes: Node[];
235
-
236
- public _renderedNodesInFrustum: Node[][];
237
-
238
- /**
239
- * Current visible mercator segments tree nodes array.
240
- * @public
241
- * @type {Node}
242
- *
243
- * @todo
244
- * _visibleNodes, _visibleNodesNorth and _visibleNodesSouth should
245
- * be replaced to strategy and Vector layer reworked in collecting methods.
246
- * _visibleNodes, and _visibleNodesNorth and South are used in Vector
247
- * layer only, for entity terrain collision
248
- *
249
- */
250
- public _visibleNodes: Record<number, Node>;
251
-
252
- /**
253
- * Current visible north pole nodes tree nodes array.
254
- * @public
255
- * @type {Node}
256
- * @todo
257
- */
258
- public _visibleNodesNorth: Record<number, Node>;
259
-
260
- /**
261
- * Current visible south pole nodes tree nodes array.
262
- * @public
263
- * @type {Node}
264
- * @todo
265
- */
266
- public _visibleNodesSouth: Record<number, Node>;
267
-
268
- /**
269
- * Layers activity lock.
270
- * @public
271
- * @type {Lock}
272
- */
273
- public layerLock: Lock;
274
-
275
- /**
276
- * Terrain providers activity lock.
277
- * @public
278
- * @type {Lock}
279
- */
280
- public terrainLock: Lock;
281
-
282
- /**
283
- * Height scale factor. 1 - is normal elevation scale.
284
- * @public
285
- * @type {number}
286
- */
287
- public _heightFactor: number;
288
-
289
- /**
290
- * Precomputed indexes array for different grid size segments.
291
- * @protected
292
- * @type {Array.<Array.<number>>}
293
- */
294
- public _indexesCache: IndexBufferCacheData[][][][][];
295
-
296
- protected _indexesCacheToRemove: IndexBufferCacheData[];
297
- public _indexesCacheToRemoveCounter: number;
298
-
299
- /**
300
- * Precomputed texture coordinates buffers for different grid size segments.
301
- * @public
302
- * @type {Array.<Array.<number>>}
303
- */
304
- public _textureCoordsBufferCache: WebGLBufferExt[];
305
-
306
- public quadTreeStrategy: QuadTreeStrategy;
307
-
308
- /**
309
- * Night glowing gl texture.
310
- * @protected
311
- */
312
- protected _nightTexture: WebGLTextureExt | null;
313
-
314
- /**
315
- * Specular mask gl texture.
316
- * @protected
317
- */
318
- protected _specularTexture: WebGLTextureExt | null;
319
-
320
-
321
- public _ambient: Float32Array;
322
- public _diffuse: Float32Array;
323
- public _specular: Float32Array;
324
-
325
- protected _maxGridSize: number;
326
-
327
- /**
328
- * Segment multiple textures size.(4 - convenient value for the most devices)
329
- * @const
330
- * @public
331
- */
332
- public SLICE_SIZE: number;
333
- public SLICE_SIZE_4: number;
334
- public SLICE_SIZE_3: number;
335
-
336
- /**
337
- * Level of details of visible segments.
338
- * @protected
339
- * @type {number}
340
- */
341
- protected _lodSize: number;
342
- protected _curLodSize: number;
343
- protected _minLodSize: number;
344
- public _maxLodSize: number;
345
-
346
- public _pickingColorArr: Float32Array;
347
- public _samplerArr: Int32Array;
348
- public _pickingMaskArr: Int32Array;
349
-
350
- /**
351
- * GeoImage creator.
352
- * @public
353
- * @type{GeoImageCreator}
354
- */
355
- public _geoImageCreator: GeoImageCreator;
356
-
357
- /**
358
- * VectorTileCreator creator.
359
- * @public
360
- * @type{VectorTileCreator}
361
- */
362
- public _vectorTileCreator: VectorTileCreator;
363
-
364
- /**
365
- * NormalMapCreator creator.
366
- * @public
367
- * @type{NormalMapCreator}
368
- */
369
- public _normalMapCreator: NormalMapCreator;
370
-
371
- public _terrainWorker: TerrainWorker;
372
-
373
- public _plainSegmentWorker: PlainSegmentWorker;
374
-
375
- public _tileLoader: Loader<Layer>;
376
-
377
- protected _memKey: Key;
378
-
379
- public _distBeforeMemClear: number;
380
-
381
- protected _prevCamEye: Vec3;
382
-
383
- protected _initialized: boolean;
384
-
385
- protected always: any[];
386
-
387
- public _renderCompleted: boolean
388
- public _renderCompletedActivated: boolean;
389
-
390
- public _terrainCompleted: boolean;
391
- public _terrainCompletedActivated: boolean;
392
-
393
- protected _collectRenderNodesIsActive: boolean;
394
-
395
- /**
396
- * Night texture brightness coefficient
397
- * @type {number}
398
- */
399
- public nightTextureCoefficient: number;
400
-
401
- protected _renderScreenNodesPASS: Function;
402
-
403
- protected _atmosphereEnabled: boolean;
404
- protected _atmosphereMaxMinOpacity: Float32Array;
405
-
406
- public solidTextureOne: WebGLTextureExt | null;
407
- public solidTextureTwo: WebGLTextureExt | null;
408
-
409
- protected _skipPreRender: boolean;
410
-
411
- protected _nightTextureSrc: string | null;
412
- protected _specularTextureSrc: string | null;
413
-
414
- constructor(options: IPlanetParams = {}) {
59
+ constructor(options = {}) {
415
60
  super(options.name);
416
-
417
61
  this.ellipsoid = options.ellipsoid || wgs84;
418
-
419
62
  this.lightEnabled = true;
420
-
421
63
  this._planetRadius2 = this.ellipsoid.getPolarSize() * this.ellipsoid.getPolarSize();
422
-
423
64
  this._layers = [];
424
-
425
65
  this._updateLayer = false;
426
-
427
66
  this.visibleTileLayers = [];
428
-
429
67
  this.visibleVectorLayers = [];
430
-
431
68
  this._visibleTileLayerSlices = [];
432
-
433
69
  this._frustumEntityCollections = [];
434
-
435
70
  this.baseLayer = null;
436
-
437
71
  this.terrain = null;
438
-
439
72
  this.camera = new PlanetCamera(this, {
440
73
  frustums: options.frustums,
441
74
  eye: new Vec3(25000000, 0, 0),
@@ -444,300 +77,226 @@ export class Planet extends RenderNode {
444
77
  minAltitude: options.minAltitude,
445
78
  maxAltitude: options.maxAltitude
446
79
  });
447
-
448
80
  this.maxEqualZoomAltitude = options.maxEqualZoomAltitude || 15000000.0;
449
81
  this.minEqualZoomAltitude = options.minEqualZoomAltitude || 10000.0;
450
82
  this.minEqualZoomCameraSlope = options.minEqualZoomCameraSlope || 0.8;
451
-
452
83
  this.mousePositionOnEarth = new Vec3();
453
-
454
84
  this.emptyTexture = null;
455
85
  this.transparentTexture = null;
456
86
  this.defaultTexture = null;
457
-
458
87
  this.minCurrZoom = math.MAX;
459
-
460
88
  this.maxCurrZoom = math.MIN;
461
-
462
89
  this._viewExtent = new Extent(new LonLat(180, 180), new LonLat(-180, -180));
463
-
464
90
  this._skipPreRender = false;
465
-
466
91
  this._initialViewExtent = null;
467
-
468
92
  this._createdNodesCount = 0;
469
-
470
93
  this._renderedNodes = [];
471
94
  this._renderedNodesInFrustum = [];
472
-
473
95
  this._visibleNodes = {};
474
-
475
96
  this._visibleNodesNorth = {};
476
-
477
97
  this._visibleNodesSouth = {};
478
-
479
98
  this.layerLock = new Lock();
480
-
481
99
  this.terrainLock = new Lock();
482
-
483
100
  this._heightFactor = 1.0;
484
-
485
101
  this._indexesCache = [];
486
102
  this._indexesCacheToRemove = [];
487
103
  this._indexesCacheToRemoveCounter = 0;
488
-
489
104
  this._textureCoordsBufferCache = [];
490
-
491
105
  this.quadTreeStrategy = options.quadTreeStrategyPrototype ? new options.quadTreeStrategyPrototype(this) : new EarthQuadTreeStrategy(this);
492
-
493
106
  this._nightTexture = null;
494
-
495
107
  this._specularTexture = null;
496
-
497
108
  let a = utils.createColorRGB(options.ambient, new Vec3(0.2, 0.2, 0.3));
498
109
  let d = utils.createColorRGB(options.diffuse, new Vec3(1.0, 1.0, 1.0));
499
110
  let s = utils.createColorRGB(options.specular, new Vec3(0.00063, 0.00055, 0.00032));
500
111
  let shininess = options.shininess || 18.0;
501
-
502
112
  this._ambient = new Float32Array([a.x, a.y, a.z]);
503
113
  this._diffuse = new Float32Array([d.x, d.y, d.z]);
504
114
  this._specular = new Float32Array([s.x, s.y, s.z, shininess]);
505
-
506
115
  this._maxGridSize = Math.log2(options.maxGridSize || 128);
507
-
508
116
  this.SLICE_SIZE = 4;
509
117
  this.SLICE_SIZE_4 = this.SLICE_SIZE * 4;
510
118
  this.SLICE_SIZE_3 = this.SLICE_SIZE * 3;
511
-
512
119
  this._lodSize = CUR_LOD_SIZE;
513
120
  this._curLodSize = CUR_LOD_SIZE;
514
121
  this._minLodSize = MIN_LOD_SIZE;
515
122
  this._maxLodSize = MAX_LOD_SIZE;
516
-
517
123
  this._pickingColorArr = new Float32Array(this.SLICE_SIZE_4);
518
124
  this._samplerArr = new Int32Array(this.SLICE_SIZE);
519
125
  this._pickingMaskArr = new Int32Array(this.SLICE_SIZE);
520
-
521
126
  this._geoImageCreator = new GeoImageCreator(this);
522
-
523
127
  this._vectorTileCreator = new VectorTileCreator(this);
524
-
525
128
  this._normalMapCreator = new NormalMapCreator(this);
526
-
527
129
  this._terrainWorker = new TerrainWorker(3);
528
-
529
130
  this._plainSegmentWorker = new PlainSegmentWorker(3);
530
-
531
131
  this._tileLoader = new Loader(options.maxLoadingRequests || 12);
532
-
533
132
  this._memKey = new Key();
534
-
535
- this.events = createEvents<PlanetEventsList>(PLANET_EVENTS);
536
-
133
+ this.events = createEvents(PLANET_EVENTS);
537
134
  this._distBeforeMemClear = 0.0;
538
-
539
135
  this._prevCamEye = new Vec3();
540
-
541
136
  this._initialized = false;
542
-
543
137
  this.always = [];
544
-
545
138
  this._renderCompleted = false;
546
139
  this._renderCompletedActivated = false;
547
-
548
140
  this._terrainCompleted = false;
549
141
  this._terrainCompletedActivated = false;
550
142
  this._collectRenderNodesIsActive = true;
551
-
552
143
  this.nightTextureCoefficient = 2.0;
553
-
554
144
  this._renderScreenNodesPASS = this._renderScreenNodesPASSNoAtmos;
555
-
556
145
  this._atmosphereEnabled = options.atmosphereEnabled || false;
557
146
  this._atmosphereMaxMinOpacity = new Float32Array([1.0, 0.41]);
558
-
559
147
  this.solidTextureOne = null;
560
148
  this.solidTextureTwo = null;
561
-
562
149
  this._nightTextureSrc = options.nightTextureSrc || null;
563
150
  this._specularTextureSrc = options.specularTextureSrc || null;
564
151
  }
565
-
566
- public get maxGridSize(): number {
152
+ get maxGridSize() {
567
153
  return this._maxGridSize;
568
154
  }
569
-
570
- public getNorthFrameRotation(cartesian: Vec3): Quat {
155
+ getNorthFrameRotation(cartesian) {
571
156
  return this.ellipsoid.getNorthFrameRotation(cartesian);
572
157
  }
573
-
574
- public set atmosphereMaxOpacity(opacity: number) {
158
+ set atmosphereMaxOpacity(opacity) {
575
159
  this._atmosphereMaxMinOpacity[0] = opacity;
576
160
  }
577
-
578
- public get atmosphereMaxOpacity(): number {
161
+ get atmosphereMaxOpacity() {
579
162
  return this._atmosphereMaxMinOpacity[0];
580
163
  }
581
-
582
- public set atmosphereMinOpacity(opacity: number) {
164
+ set atmosphereMinOpacity(opacity) {
583
165
  this._atmosphereMaxMinOpacity[1] = opacity;
584
166
  }
585
-
586
- public get atmosphereMinOpacity(): number {
167
+ get atmosphereMinOpacity() {
587
168
  return this._atmosphereMaxMinOpacity[1];
588
169
  }
589
-
590
- public set atmosphereEnabled(enabled: boolean) {
170
+ set atmosphereEnabled(enabled) {
591
171
  if (enabled != this._atmosphereEnabled) {
592
172
  this._atmosphereEnabled = enabled;
593
173
  this._initializeAtmosphere();
594
174
  }
595
175
  }
596
-
597
- public get atmosphereEnabled(): boolean {
176
+ get atmosphereEnabled() {
598
177
  return this._atmosphereEnabled;
599
178
  }
600
-
601
- public set diffuse(rgb: string | NumberArray3 | Vec3) {
179
+ set diffuse(rgb) {
602
180
  let vec = createColorRGB(rgb);
603
181
  this._diffuse = new Float32Array(vec.toArray());
604
182
  }
605
-
606
- public set ambient(rgb: string | NumberArray3 | Vec3) {
183
+ set ambient(rgb) {
607
184
  let vec = createColorRGB(rgb);
608
185
  this._ambient = new Float32Array(vec.toArray());
609
186
  }
610
-
611
- public set specular(rgb: string | NumberArray3 | Vec3) {
187
+ set specular(rgb) {
612
188
  let vec = createColorRGB(rgb);
613
189
  this._specular = new Float32Array([vec.x, vec.y, vec.y, this._specular[3]]);
614
190
  }
615
-
616
- public set shininess(v: number) {
191
+ set shininess(v) {
617
192
  this._specular[3] = v;
618
193
  }
619
-
620
- public get normalMapCreator(): NormalMapCreator {
194
+ get normalMapCreator() {
621
195
  return this._normalMapCreator;
622
196
  }
623
-
624
- public get layers(): Layer[] {
197
+ get layers() {
625
198
  return [...this._layers];
626
199
  }
627
-
628
200
  /**
629
201
  * @todo: remove after tests
630
202
  * Get the collection of layers associated with this planet.
631
203
  * @return {Array.<Layer>} Layers array.
632
204
  * @public
633
205
  */
634
- public getLayers(): Layer[] {
206
+ getLayers() {
635
207
  return this.layers;
636
208
  }
637
-
638
-
639
- public get sunPos(): Vec3 {
640
- return (this.renderer!.controls.sun as Sun).sunlight.getPosition();
209
+ get sunPos() {
210
+ return this.renderer.controls.sun.sunlight.getPosition();
641
211
  }
642
-
643
212
  /**
644
213
  * Add the given control to the renderer of the planet scene.
645
214
  * @param {Control} control - Control.
646
215
  */
647
- public addControl(control: Control) {
216
+ addControl(control) {
648
217
  control.planet = this;
649
- control.addTo(this.renderer!);
218
+ control.addTo(this.renderer);
650
219
  }
651
-
652
- public get lodSize(): number {
220
+ get lodSize() {
653
221
  return this._lodSize;
654
222
  }
655
-
656
- public setLodSize(currentLodSize: number, minLodSize?: number, maxLodSize?: number) {
223
+ setLodSize(currentLodSize, minLodSize, maxLodSize) {
657
224
  this._maxLodSize = maxLodSize || this._maxLodSize;
658
225
  this._minLodSize = minLodSize || this._minLodSize;
659
226
  this._curLodSize = currentLodSize;
660
227
  this._renderCompletedActivated = false;
661
228
  this._terrainCompletedActivated = false;
662
229
  }
663
-
664
230
  /**
665
231
  * Add the given controls array to the renderer of the planet.
666
232
  * @param {Array.<Control>} cArr - Control array.
667
233
  */
668
- public addControls(cArr: Control[]) {
234
+ addControls(cArr) {
669
235
  for (let i = 0; i < cArr.length; i++) {
670
236
  this.addControl(cArr[i]);
671
237
  }
672
238
  }
673
-
674
239
  /**
675
240
  * Return layer by it name
676
241
  * @param {string} name - Name of the layer. og.Layer.prototype.name
677
242
  * @public
678
243
  * @returns {Layer} -
679
244
  */
680
- public getLayerByName(name: string): Layer | undefined {
245
+ getLayerByName(name) {
681
246
  for (let i = 0, len = this._layers.length; i < len; i++) {
682
247
  if (name === this._layers[i].name) {
683
248
  return this._layers[i];
684
249
  }
685
250
  }
686
251
  }
687
-
688
252
  /**
689
253
  * Adds layer to the planet.
690
254
  * @param {Layer} layer - Layer object.
691
255
  * @public
692
256
  */
693
- public addLayer(layer: Layer) {
257
+ addLayer(layer) {
694
258
  layer.addTo(this);
695
259
  }
696
-
697
260
  /**
698
261
  * Dispatch layer visibility changing event.
699
262
  * @param {Layer} layer - Changed layer.
700
263
  * @public
701
264
  */
702
- public _onLayerVisibilityChanged(layer: Layer) {
265
+ _onLayerVisibilityChanged(layer) {
703
266
  this.events.dispatch(this.events.layervisibilitychange, layer);
704
267
  }
705
-
706
268
  /**
707
269
  * Adds the given layers array to the planet.
708
270
  * @param {Array.<Layer>} layers - Layers array.
709
271
  * @public
710
272
  */
711
- public addLayers(layers: Layer[]) {
273
+ addLayers(layers) {
712
274
  for (let i = 0, len = layers.length; i < len; i++) {
713
275
  this.addLayer(layers[i]);
714
276
  }
715
277
  }
716
-
717
278
  /**
718
279
  * Removes the given layer from the planet.
719
280
  * @param {Layer} layer - Layer to remove.
720
281
  * @public
721
282
  */
722
- public removeLayer(layer: Layer) {
283
+ removeLayer(layer) {
723
284
  layer.remove();
724
285
  }
725
-
726
286
  /**
727
287
  *
728
288
  * @public
729
289
  * @param {Layer} layer - Material layer.
730
290
  */
731
- public _clearLayerMaterial(layer: Layer) {
291
+ _clearLayerMaterial(layer) {
732
292
  this.quadTreeStrategy.clearLayerMaterial(layer);
733
293
  }
734
-
735
294
  /**
736
295
  * Sets base layer coverage to the planet.
737
296
  * @param {Layer} layer - Layer object.
738
297
  * @public
739
298
  */
740
- public setBaseLayer(layer: Layer) {
299
+ setBaseLayer(layer) {
741
300
  if (this.baseLayer) {
742
301
  if (!this.baseLayer.isEqual(layer)) {
743
302
  this.baseLayer.setVisibility(false);
@@ -745,21 +304,20 @@ export class Planet extends RenderNode {
745
304
  layer.setVisibility(true);
746
305
  this.events.dispatch(this.events.baselayerchange, layer);
747
306
  }
748
- } else {
307
+ }
308
+ else {
749
309
  this.baseLayer = layer;
750
310
  this.baseLayer.setVisibility(true);
751
311
  this.events.dispatch(this.events.baselayerchange, layer);
752
312
  }
753
313
  }
754
-
755
314
  /**
756
315
  * Sets elevation scale. 1.0 is default.
757
316
  * @param {number} factor - Elevation scale.
758
317
  */
759
- public setHeightFactor(factor: number) {
318
+ setHeightFactor(factor) {
760
319
  this._renderCompletedActivated = false;
761
320
  this._terrainCompletedActivated = false;
762
-
763
321
  if (this._heightFactor !== factor) {
764
322
  this._heightFactor = factor;
765
323
  this.quadTreeStrategy.destroyBranches();
@@ -767,127 +325,106 @@ export class Planet extends RenderNode {
767
325
  this._clearRenderNodesInFrustum();
768
326
  }
769
327
  }
770
-
771
328
  /**
772
329
  * Gets elevation scale.
773
330
  * @returns {number} Terrain elevation scale
774
331
  */
775
- public getHeightFactor(): number {
332
+ getHeightFactor() {
776
333
  return this._heightFactor;
777
334
  }
778
-
779
335
  /**
780
336
  * Sets terrain provider
781
337
  * @public
782
338
  * @param {EmptyTerrain} terrain - Terrain provider.
783
339
  */
784
- public setTerrain(terrain: EmptyTerrain) {
340
+ setTerrain(terrain) {
785
341
  this._renderCompletedActivated = false;
786
342
  this._terrainCompletedActivated = false;
787
-
788
343
  if (this._initialized) {
789
344
  this.memClear();
790
345
  }
791
-
792
346
  if (this.terrain) {
793
347
  this.terrain.abortLoading();
794
348
  this.terrain.clearCache();
795
349
  this.terrain._planet = null;
796
350
  }
797
-
798
351
  this.terrain = terrain;
799
352
  this.terrain._planet = this;
800
-
801
353
  this.quadTreeStrategy.destroyBranches();
802
-
803
354
  if (terrain._geoid.model) {
804
355
  this._plainSegmentWorker.setGeoid(terrain.getGeoid());
805
356
  terrain._isReady = true;
806
- } else {
357
+ }
358
+ else {
807
359
  Geoid.loadModel(terrain.geoid.src)
808
- .then((m: GeoidModel | null) => {
809
- terrain.geoid.setModel(m);
810
- this._plainSegmentWorker.setGeoid(terrain.getGeoid());
811
- terrain._isReady = true;
812
- })
360
+ .then((m) => {
361
+ terrain.geoid.setModel(m);
362
+ this._plainSegmentWorker.setGeoid(terrain.getGeoid());
363
+ terrain._isReady = true;
364
+ })
813
365
  .catch((err) => {
814
- console.warn(err);
815
- });
366
+ console.warn(err);
367
+ });
816
368
  }
817
369
  }
818
-
819
- protected _initializeAtmosphere() {
820
- let h = this.renderer!.handler;
370
+ _initializeAtmosphere() {
371
+ let h = this.renderer.handler;
821
372
  h.removeProgram("drawnode_screen_wl");
822
-
823
373
  if (this._atmosphereEnabled) {
824
-
825
374
  this._renderScreenNodesPASS = this._renderScreenNodesPASSAtmos;
826
-
827
375
  if (h.isWebGl2()) {
828
376
  h.addProgram(shaders.drawnode_screen_wl_webgl2Atmos(), true);
829
- } else {
377
+ }
378
+ else {
830
379
  h.addProgram(shaders.drawnode_screen_wl_webgl1NoAtmos(), true);
831
380
  }
832
-
833
- if (!this.renderer!.controls.Atmosphere) {
381
+ if (!this.renderer.controls.Atmosphere) {
834
382
  this.addControl(new Atmosphere());
835
- } else {
836
- this.renderer!.controls.Atmosphere.activate();
837
383
  }
838
-
839
- if (this.renderer!.controls.SimpleSkyBackground) {
840
- this.renderer!.controls.SimpleSkyBackground.deactivate();
384
+ else {
385
+ this.renderer.controls.Atmosphere.activate();
386
+ }
387
+ if (this.renderer.controls.SimpleSkyBackground) {
388
+ this.renderer.controls.SimpleSkyBackground.deactivate();
841
389
  }
842
-
843
- } else {
844
-
390
+ }
391
+ else {
845
392
  this._renderScreenNodesPASS = this._renderScreenNodesPASSNoAtmos;
846
-
847
- if (this.renderer!.controls.Atmosphere) {
848
- this.renderer!.controls.Atmosphere.deactivate();
393
+ if (this.renderer.controls.Atmosphere) {
394
+ this.renderer.controls.Atmosphere.deactivate();
849
395
  }
850
-
851
- if (!this.renderer!.controls.SimpleSkyBackground) {
396
+ if (!this.renderer.controls.SimpleSkyBackground) {
852
397
  this.addControl(new SimpleSkyBackground());
853
- } else {
854
- this.renderer!.controls.SimpleSkyBackground.activate();
855
398
  }
856
-
399
+ else {
400
+ this.renderer.controls.SimpleSkyBackground.activate();
401
+ }
857
402
  if (h.isWebGl2()) {
858
403
  h.addProgram(shaders.drawnode_screen_wl_webgl2NoAtmos(), true);
859
- } else {
404
+ }
405
+ else {
860
406
  h.addProgram(shaders.drawnode_screen_wl_webgl1NoAtmos(), true);
861
407
  }
862
408
  }
863
409
  }
864
-
865
- protected _initializeShaders() {
866
- let h = this.renderer!.handler;
867
-
410
+ _initializeShaders() {
411
+ let h = this.renderer.handler;
868
412
  h.addProgram(shaders.drawnode_screen_nl(), true);
869
413
  h.addProgram(shaders.drawnode_colorPicking(), true);
870
414
  h.addProgram(shaders.drawnode_depth(), true);
871
415
  h.addProgram(shaders.drawnode_heightPicking(), true);
872
-
873
- this.renderer!.addPickingCallback(this, this._renderColorPickingFramebufferPASS);
874
- this.renderer!.addDepthCallback(this, this._renderDepthFramebufferPASS);
875
- this.renderer!.addDistanceCallback(this, this._renderDistanceFramebufferPASS);
416
+ this.renderer.addPickingCallback(this, this._renderColorPickingFramebufferPASS);
417
+ this.renderer.addDepthCallback(this, this._renderDepthFramebufferPASS);
418
+ this.renderer.addDistanceCallback(this, this._renderDistanceFramebufferPASS);
876
419
  }
877
-
878
- protected _onLayerLoadend(layer: Layer) {
420
+ _onLayerLoadend(layer) {
879
421
  this.events.dispatch(this.events.layerloadend, layer);
880
422
  }
881
-
882
- public override init() {
883
-
423
+ init() {
884
424
  this._tileLoader.events.on("layerloadend", this._onLayerLoadend, this);
885
-
886
425
  // Initialization indexes table
887
426
  segmentHelper.getInstance().setMaxGridSize(this._maxGridSize);
888
-
889
427
  const TABLESIZE = this._maxGridSize;
890
-
891
428
  let kk = 0;
892
429
  // Initialization indexes buffers cache. It takes about 120mb RAM!
893
430
  for (let i = 0; i <= TABLESIZE; i++) {
@@ -899,182 +436,144 @@ export class Planet extends RenderNode {
899
436
  for (let m = 0; m <= TABLESIZE; m++) {
900
437
  !this._indexesCache[i][j][k][m] && (this._indexesCache[i][j][k][m] = new Array(TABLESIZE));
901
438
  for (let q = 0; q <= TABLESIZE; q++) {
902
-
903
- let ptr: IndexBufferCacheData = {
439
+ let ptr = {
904
440
  buffer: null
905
441
  };
906
-
907
442
  if (i >= 1 && i === j && i === k && i === m && i === q) {
908
443
  let indexes = segmentHelper.getInstance().createSegmentIndexes(i, [j, k, m, q]);
909
- ptr.buffer = this.renderer!.handler.createElementArrayBuffer(indexes, 1);
910
- } else {
444
+ ptr.buffer = this.renderer.handler.createElementArrayBuffer(indexes, 1);
445
+ }
446
+ else {
911
447
  this._indexesCacheToRemove[kk++] = ptr;
912
448
  }
913
-
914
449
  this._indexesCache[i][j][k][m][q] = ptr;
915
450
  }
916
451
  }
917
452
  }
918
453
  }
919
454
  }
920
-
921
- this.renderer!.events.on("resize", () => {
455
+ this.renderer.events.on("resize", () => {
922
456
  this._renderCompletedActivated = false;
923
457
  this._terrainCompletedActivated = false;
924
458
  });
925
-
926
459
  // Initialize texture coordinates buffer pool
927
460
  this._textureCoordsBufferCache = [];
928
-
929
461
  let texCoordCache = segmentHelper.getInstance().initTextureCoordsTable(TABLESIZE + 1);
930
-
931
462
  for (let i = 0; i <= TABLESIZE; i++) {
932
- this._textureCoordsBufferCache[i] = this.renderer!.handler.createArrayBuffer(texCoordCache[i], 2, ((1 << i) + 1) * ((1 << i) + 1));
463
+ this._textureCoordsBufferCache[i] = this.renderer.handler.createArrayBuffer(texCoordCache[i], 2, ((1 << i) + 1) * ((1 << i) + 1));
933
464
  }
934
-
935
465
  // creating empty textures
936
- this.renderer!.handler.createDefaultTexture(null, (t: WebGLTextureExt) => {
466
+ this.renderer.handler.createDefaultTexture(null, (t) => {
937
467
  this.solidTextureOne = t;
938
468
  this.solidTextureTwo = t;
939
469
  });
940
-
941
- this.transparentTexture = this.renderer!.handler.transparentTexture;
942
-
470
+ this.transparentTexture = this.renderer.handler.transparentTexture;
943
471
  this._renderedNodesInFrustum = new Array(this.camera.frustums.length);
944
472
  for (let i = 0, len = this._renderedNodesInFrustum.length; i < len; i++) {
945
473
  this._renderedNodesInFrustum[i] = [];
946
474
  }
947
-
948
475
  // Creating quad trees nodes
949
476
  this.quadTreeStrategy.init();
950
-
951
- this.drawMode = this.renderer!.handler.gl!.TRIANGLE_STRIP;
952
-
477
+ this.drawMode = this.renderer.handler.gl.TRIANGLE_STRIP;
953
478
  // Applying shaders
954
479
  this._initializeShaders();
955
-
956
480
  this._initializeAtmosphere();
957
-
958
481
  this._updateVisibleLayers();
959
-
960
- this.renderer!.addPickingCallback(this, this._frustumEntityCollectionPickingCallback);
961
-
482
+ this.renderer.addPickingCallback(this, this._frustumEntityCollectionPickingCallback);
962
483
  // loading Earth night glowing texture
963
484
  if (this._nightTextureSrc) {
964
-
965
485
  let img = new Image();
966
486
  img.onload = () => {
967
- this._nightTexture = this.renderer!.handler.createTextureDefault(img)!;
487
+ this._nightTexture = this.renderer.handler.createTextureDefault(img);
968
488
  this._nightTexture.default = true;
969
489
  };
970
490
  img.src = this._nightTextureSrc;
971
-
972
491
  // createImageBitmap(NIGHT).then((e: ImageBitmap) => {
973
492
  // this._nightTexture = this.renderer!.handler!.createTextureDefault(e);
974
493
  // });
975
494
  }
976
-
977
495
  // load water specular mask
978
496
  if (this._specularTextureSrc) {
979
497
  let img = new Image();
980
498
  img.onload = () => {
981
- this._specularTexture = this.renderer!.handler.createTextureDefault(img)!;
499
+ this._specularTexture = this.renderer.handler.createTextureDefault(img);
982
500
  this._specularTexture.default = true;
983
501
  };
984
502
  img.src = this._specularTextureSrc;
985
-
986
503
  // createImageBitmap(SPECULAR).then((e: ImageBitmap) => {
987
504
  // this._specularTexture = this.renderer!.handler!.createTexture_l(e);
988
505
  // });
989
506
  }
990
-
991
507
  this._geoImageCreator.init();
992
-
993
508
  this._vectorTileCreator.init();
994
-
995
509
  this._normalMapCreator.init();
996
-
997
- this.renderer!.events.on("draw", this._globalPreDraw, this, -100);
998
-
510
+ this.renderer.events.on("draw", this._globalPreDraw, this, -100);
999
511
  // Loading first nodes for better viewing if you have started on a lower altitude.
1000
512
  this._preRender();
1001
-
1002
- this.renderer!.events.on("postdraw", () => {
513
+ this.renderer.events.on("postdraw", () => {
1003
514
  this._checkRendercompleted();
1004
515
  });
1005
-
1006
516
  this.initLayers();
1007
-
1008
517
  this._initialized = true;
1009
-
1010
518
  //
1011
519
  // after init
1012
520
  //
1013
521
  if (this._initialViewExtent) {
1014
522
  this.viewExtent(this._initialViewExtent);
1015
523
  }
1016
-
1017
- this.renderer!.activeCamera = this.camera;
1018
- this.camera.bindRenderer(this.renderer!);
524
+ this.renderer.activeCamera = this.camera;
525
+ this.camera.bindRenderer(this.renderer);
1019
526
  this.camera.update();
1020
527
  }
1021
-
1022
- public initLayers() {
528
+ initLayers() {
1023
529
  let temp = [...this._layers];
1024
530
  for (let i = 0; i < temp.length; i++) {
1025
531
  this.removeLayer(temp[i]);
1026
532
  this.addLayer(temp[i]);
1027
533
  }
1028
534
  }
1029
-
1030
- protected _clearIndexesCache() {
535
+ _clearIndexesCache() {
1031
536
  this._indexesCacheToRemoveCounter = 0;
1032
- let c = this._indexesCacheToRemove,
1033
- gl = this.renderer!.handler.gl!;
537
+ let c = this._indexesCacheToRemove, gl = this.renderer.handler.gl;
1034
538
  for (let i = 0, len = c.length; i < len; i++) {
1035
539
  let ci = c[i];
1036
- gl.deleteBuffer(ci.buffer as WebGLBuffer);
540
+ gl.deleteBuffer(ci.buffer);
1037
541
  ci.buffer = null;
1038
542
  }
1039
543
  }
1040
-
1041
- protected _preRender() {
544
+ _preRender() {
1042
545
  this.quadTreeStrategy.preRender();
1043
546
  this._preLoad();
1044
547
  }
1045
-
1046
- protected _preLoad() {
548
+ _preLoad() {
1047
549
  this._clearRenderedNodeList();
1048
550
  this._skipPreRender = false;
1049
551
  this.quadTreeStrategy.preLoad();
1050
552
  }
1051
-
1052
553
  /**
1053
554
  * Creates default textures first for the North Pole and whole globe and second for the South Pole.
1054
555
  * @public
1055
556
  * @param{IDefaultTextureParams} param0 -
1056
557
  * @param{IDefaultTextureParams} param1 -
1057
558
  */
1058
- public createDefaultTextures(param0: IDefaultTextureParams, param1: IDefaultTextureParams) {
1059
- this.renderer!.handler.gl!.deleteTexture(this.solidTextureOne!);
1060
- this.renderer!.handler.gl!.deleteTexture(this.solidTextureTwo!);
1061
- this.renderer!.handler.createDefaultTexture(param0, (texture: WebGLTextureExt) => {
559
+ createDefaultTextures(param0, param1) {
560
+ this.renderer.handler.gl.deleteTexture(this.solidTextureOne);
561
+ this.renderer.handler.gl.deleteTexture(this.solidTextureTwo);
562
+ this.renderer.handler.createDefaultTexture(param0, (texture) => {
1062
563
  this.solidTextureOne = texture;
1063
564
  });
1064
- this.renderer!.handler.createDefaultTexture(param1, (texture: WebGLTextureExt) => {
565
+ this.renderer.handler.createDefaultTexture(param1, (texture) => {
1065
566
  this.solidTextureTwo = texture;
1066
567
  });
1067
568
  }
1068
-
1069
- protected _getLayerAttributionHTML(layer: Layer) {
569
+ _getLayerAttributionHTML(layer) {
1070
570
  return `<div class="og-attribution__layer">${layer.getAttribution()}</div>`;
1071
571
  }
1072
-
1073
572
  /**
1074
573
  * Updates attribution lists
1075
574
  * @public
1076
575
  */
1077
- public updateAttributionsList() {
576
+ updateAttributionsList() {
1078
577
  let html = "";
1079
578
  for (let i = 0, len = this._layers.length; i < len; i++) {
1080
579
  let li = this._layers[i];
@@ -1084,87 +583,72 @@ export class Planet extends RenderNode {
1084
583
  }
1085
584
  }
1086
585
  }
1087
- this._applyAttribution(html)
586
+ this._applyAttribution(html);
1088
587
  }
1089
-
1090
- public updateVisibleLayers() {
588
+ updateVisibleLayers() {
1091
589
  this._updateLayer = true;
1092
590
  }
1093
-
1094
- protected _updateVisibleLayers() {
591
+ _updateVisibleLayers() {
1095
592
  this.visibleTileLayers = [];
1096
593
  this.visibleTileLayers.length = 0;
1097
-
1098
594
  this.visibleVectorLayers = [];
1099
595
  this.visibleVectorLayers.length = 0;
1100
-
1101
596
  let html = "";
1102
597
  for (let i = 0, len = this._layers.length; i < len; i++) {
1103
598
  let li = this._layers[i];
1104
599
  if (li.getVisibility()) {
1105
600
  if (li.isBaseLayer()) {
1106
- this.createDefaultTextures(li._defaultTextures[0]!, li._defaultTextures[1]!);
601
+ this.createDefaultTextures(li._defaultTextures[0], li._defaultTextures[1]);
1107
602
  this.baseLayer = li;
1108
603
  }
1109
-
1110
604
  if (li.hasImageryTiles()) {
1111
605
  this.visibleTileLayers.push(li);
1112
606
  }
1113
-
1114
607
  if (li.isVector) {
1115
608
  this.visibleVectorLayers.push(li);
1116
609
  }
1117
-
1118
610
  if (li.getAttribution().length) {
1119
611
  html += this._getLayerAttributionHTML(li);
1120
612
  }
1121
-
1122
- } else if (li._fading && li._fadingOpacity > 0) {
613
+ }
614
+ else if (li._fading && li._fadingOpacity > 0) {
1123
615
  if (li.hasImageryTiles()) {
1124
616
  this.visibleTileLayers.push(li);
1125
617
  }
1126
-
1127
618
  if (li.isVector) {
1128
619
  this.visibleVectorLayers.push(li);
1129
620
  }
1130
621
  }
1131
622
  }
1132
-
1133
623
  this._applyAttribution(html);
1134
-
1135
624
  this._sortLayers();
1136
625
  }
1137
-
1138
626
  /**
1139
627
  * Apply to render list of layer attributions
1140
628
  * @protected
1141
629
  */
1142
- protected _applyAttribution(html: string) {
630
+ _applyAttribution(html) {
1143
631
  if (this.renderer && this.renderer.div) {
1144
632
  if (html.length) {
1145
- if (this.renderer.div.attributions!.innerHTML !== html) {
1146
- this.renderer.div.attributions!.innerHTML = html;
633
+ if (this.renderer.div.attributions.innerHTML !== html) {
634
+ this.renderer.div.attributions.innerHTML = html;
1147
635
  }
1148
- } else {
1149
- this.renderer.div.attributions!.innerHTML = "";
636
+ }
637
+ else {
638
+ this.renderer.div.attributions.innerHTML = "";
1150
639
  }
1151
640
  }
1152
641
  }
1153
-
1154
642
  /**
1155
643
  * Sort visible layer - preparing for rendering.
1156
644
  * @protected
1157
645
  */
1158
- protected _sortLayers() {
1159
-
646
+ _sortLayers() {
1160
647
  this.visibleVectorLayers.sort((a, b) => (a.getZIndex() - b.getZIndex()) || (a.getHeight() - b.getHeight()));
1161
-
1162
648
  this._visibleTileLayerSlices = [];
1163
649
  this._visibleTileLayerSlices.length = 0;
1164
-
1165
650
  if (this.visibleTileLayers.length) {
1166
651
  this.visibleTileLayers.sort((a, b) => (a.getHeight() - b.getHeight()) || (a.getZIndex() - b.getZIndex()));
1167
-
1168
652
  let k = -1;
1169
653
  let currHeight = this.visibleTileLayers[0].getHeight();
1170
654
  for (let i = 0, len = this.visibleTileLayers.length; i < len; i++) {
@@ -1177,54 +661,40 @@ export class Planet extends RenderNode {
1177
661
  }
1178
662
  }
1179
663
  }
1180
-
1181
- protected _clearRenderedNodeList() {
664
+ _clearRenderedNodeList() {
1182
665
  this._renderedNodes.length = 0;
1183
666
  this._renderedNodes = [];
1184
667
  }
1185
-
1186
- protected _clearRenderNodesInFrustum() {
668
+ _clearRenderNodesInFrustum() {
1187
669
  for (let i = 0, len = this._renderedNodesInFrustum.length; i < len; i++) {
1188
670
  this._renderedNodesInFrustum[i].length = 0;
1189
671
  this._renderedNodesInFrustum[i] = [];
1190
672
  }
1191
673
  }
1192
-
1193
674
  /**
1194
675
  * Collects visible quad nodes.
1195
676
  * @protected
1196
677
  */
1197
- protected _collectRenderNodes() {
678
+ _collectRenderNodes() {
1198
679
  let cam = this.camera;
1199
680
  this._lodSize = math.lerp(cam.slope < 0.0 ? 0.0 : cam.slope, this._curLodSize, this._minLodSize);
1200
-
1201
681
  cam._insideSegment = null;
1202
-
1203
682
  // clear first
1204
683
  this._clearRenderedNodeList();
1205
684
  this._clearRenderNodesInFrustum();
1206
-
1207
685
  this._viewExtent.southWest.set(180, 180);
1208
686
  this._viewExtent.northEast.set(-180, -180);
1209
-
1210
687
  this._visibleNodes = {};
1211
688
  this._visibleNodesNorth = {};
1212
689
  this._visibleNodesSouth = {};
1213
-
1214
690
  this.minCurrZoom = math.MAX;
1215
691
  this.maxCurrZoom = math.MIN;
1216
-
1217
692
  this.quadTreeStrategy.collectRenderNodes();
1218
-
1219
693
  if (cam.slope > this.minEqualZoomCameraSlope && cam._lonLat.height < this.maxEqualZoomAltitude && cam._lonLat.height > this.minEqualZoomAltitude) {
1220
-
1221
694
  this.minCurrZoom = this.maxCurrZoom;
1222
-
1223
695
  let temp = this._renderedNodes, rf = this._renderedNodesInFrustum, temp2 = [];
1224
-
1225
696
  this._clearRenderNodesInFrustum();
1226
697
  this._renderedNodes = [];
1227
-
1228
698
  for (let i = 0, len = temp.length; i < len; i++) {
1229
699
  let ri = temp[i];
1230
700
  let ht = ri.segment.centerNormal.dot(cam._b);
@@ -1238,191 +708,156 @@ export class Planet extends RenderNode {
1238
708
  k++;
1239
709
  inFrustum >>= 1;
1240
710
  }
1241
- } else {
711
+ }
712
+ else {
1242
713
  temp2.push(ri);
1243
714
  }
1244
715
  }
1245
-
1246
716
  for (let i = 0, len = temp2.length; i < len; i++) {
1247
717
  temp2[i].renderTree(cam, this.maxCurrZoom, null);
1248
718
  }
1249
719
  }
1250
720
  }
1251
-
1252
- protected _globalPreDraw() {
721
+ _globalPreDraw() {
1253
722
  let cam = this.camera;
1254
-
1255
723
  // Might be it's better to replace it in setTerrain,
1256
724
  // but we have to be sure that setTerrain exists with renderer insttance
1257
- this.renderer!.__useDistanceFramebuffer__ = !this.terrain!.isEmpty;
1258
-
725
+ this.renderer.__useDistanceFramebuffer__ = !this.terrain.isEmpty;
1259
726
  this._distBeforeMemClear += this._prevCamEye.distance(cam.eye);
1260
727
  this._prevCamEye.copy(cam.eye);
1261
728
  cam.checkFly();
1262
-
1263
729
  // free memory
1264
730
  if (this._createdNodesCount > MAX_NODES && this._distBeforeMemClear > 1000.0) {
1265
- this.terrain!.clearCache();
731
+ this.terrain.clearCache();
1266
732
  this.memClear();
1267
733
  }
1268
-
1269
734
  if (this._indexesCacheToRemoveCounter > 600) {
1270
735
  this._clearIndexesCache();
1271
736
  }
1272
737
  }
1273
-
1274
738
  /**
1275
739
  * Render node callback.
1276
740
  * @public
1277
741
  */
1278
- public override preFrame() {
1279
-
742
+ preFrame() {
1280
743
  if (this._updateLayer) {
1281
744
  this._updateLayer = false;
1282
745
  this._updateVisibleLayers();
1283
746
  }
1284
-
1285
747
  if (this.camera.isFirstPass) {
1286
748
  this.camera.update();
1287
-
1288
749
  if (this._skipPreRender && this._collectRenderNodesIsActive) {
1289
750
  this._collectRenderNodes();
1290
751
  }
1291
-
1292
752
  this._skipPreRender = true;
1293
-
1294
753
  this.transformLights();
1295
-
1296
754
  // creates terrain normal maps
1297
755
  this._normalMapCreator.frame();
1298
-
1299
756
  // Creating geoImages textures.
1300
757
  this._geoImageCreator.frame();
1301
-
1302
758
  // Vector tiles rasterization
1303
759
  this._vectorTileCreator.frame();
1304
-
1305
760
  this.camera.checkTerrainCollision();
1306
761
  this.camera.update();
1307
-
1308
762
  // Here is the planet node dispatches a draw event before
1309
763
  // rendering begins, and we have got render nodes.
1310
764
  this.events.dispatch(this.events.draw, this);
1311
-
1312
765
  // Collect entity collections from vector layers
1313
766
  this._collectVectorLayerCollections();
1314
767
  }
1315
-
1316
768
  this.drawEntityCollections(this._frustumEntityCollections);
1317
769
  }
1318
-
1319
770
  /**
1320
771
  * Render node callback.
1321
772
  * @public
1322
773
  * @override
1323
774
  */
1324
- public override frame() {
775
+ frame() {
1325
776
  this._renderScreenNodesPASS();
1326
777
  }
1327
-
1328
- protected _checkRendercompleted() {
778
+ _checkRendercompleted() {
1329
779
  if (this._renderCompleted) {
1330
780
  if (!this._renderCompletedActivated) {
1331
781
  this._renderCompletedActivated = true;
1332
782
  this.events.dispatch(this.events.rendercompleted, true);
1333
783
  }
1334
- } else {
784
+ }
785
+ else {
1335
786
  this._renderCompletedActivated = false;
1336
787
  }
1337
788
  this._renderCompleted = true;
1338
-
1339
789
  if (this._terrainCompleted) {
1340
790
  if (!this._terrainCompletedActivated) {
1341
791
  this._terrainCompletedActivated = true;
1342
792
  this.events.dispatch(this.events.terraincompleted, true);
1343
793
  }
1344
- } else {
794
+ }
795
+ else {
1345
796
  this._terrainCompletedActivated = false;
1346
797
  }
1347
-
1348
798
  this._terrainCompleted = true;
1349
799
  }
1350
-
1351
- public lockQuadTree() {
800
+ lockQuadTree() {
1352
801
  this._collectRenderNodesIsActive = false;
1353
802
  this.camera.setTerrainCollisionActivity(false);
1354
803
  }
1355
-
1356
- public unlockQuadTree() {
804
+ unlockQuadTree() {
1357
805
  this._collectRenderNodesIsActive = true;
1358
806
  this.camera.setTerrainCollisionActivity(true);
1359
807
  }
1360
-
1361
- protected _renderScreenNodesPASSNoAtmos() {
1362
-
808
+ _renderScreenNodesPASSNoAtmos() {
1363
809
  let sh, shu;
1364
- let renderer = this.renderer!;
810
+ let renderer = this.renderer;
1365
811
  let h = renderer.handler;
1366
- let gl = h.gl!;
1367
- let cam = (renderer.activeCamera as PlanetCamera)!;
812
+ let gl = h.gl;
813
+ let cam = renderer.activeCamera;
1368
814
  let firstPass = cam.isFirstPass;
1369
815
  let frustumIndex = cam.currentFrustumIndex;
1370
-
1371
816
  gl.enable(gl.CULL_FACE);
1372
-
1373
817
  renderer.enableBlendOneSrcAlpha();
1374
-
1375
818
  if (this.lightEnabled) {
1376
819
  h.programs.drawnode_screen_wl.activate();
1377
820
  sh = h.programs.drawnode_screen_wl._program;
1378
821
  shu = sh.uniforms;
1379
-
1380
822
  gl.uniform3fv(shu.lightsPositions, this._lightsPositions);
1381
823
  gl.uniformMatrix4fv(shu.viewMatrix, false, cam.getViewMatrix());
1382
824
  gl.uniformMatrix4fv(shu.projectionMatrix, false, cam.getProjectionMatrix());
1383
-
1384
825
  if (this.baseLayer) {
1385
826
  gl.uniform3fv(shu.diffuse, this.baseLayer._diffuse || this._diffuse);
1386
827
  gl.uniform3fv(shu.ambient, this.baseLayer._ambient || this._ambient);
1387
828
  gl.uniform4fv(shu.specular, this.baseLayer._specular || this._specular);
1388
829
  gl.uniform1f(shu.nightTextureCoefficient, this.baseLayer.nightTextureCoefficient || this.nightTextureCoefficient);
1389
- } else {
830
+ }
831
+ else {
1390
832
  gl.uniform3fv(shu.diffuse, this._diffuse);
1391
833
  gl.uniform3fv(shu.ambient, this._ambient);
1392
834
  gl.uniform4fv(shu.specular, this._specular);
1393
835
  gl.uniform1f(shu.nightTextureCoefficient, this.nightTextureCoefficient);
1394
836
  }
1395
-
1396
837
  //
1397
838
  // Night and specular
1398
839
  //
1399
840
  gl.activeTexture(gl.TEXTURE0 + this.SLICE_SIZE);
1400
- gl.bindTexture(gl.TEXTURE_2D, this._nightTexture as WebGLTextureExt || this.transparentTexture as WebGLTextureExt);
841
+ gl.bindTexture(gl.TEXTURE_2D, this._nightTexture || this.transparentTexture);
1401
842
  gl.uniform1i(shu.nightTexture, this.SLICE_SIZE);
1402
-
1403
843
  gl.activeTexture(gl.TEXTURE0 + this.SLICE_SIZE + 1);
1404
- gl.bindTexture(gl.TEXTURE_2D, this._specularTexture as WebGLTextureExt || this.transparentTexture as WebGLTexture);
844
+ gl.bindTexture(gl.TEXTURE_2D, this._specularTexture || this.transparentTexture);
1405
845
  gl.uniform1i(shu.specularTexture, this.SLICE_SIZE + 1);
1406
-
1407
846
  gl.uniform1f(shu.camHeight, cam.getHeight());
1408
-
1409
- } else {
847
+ }
848
+ else {
1410
849
  h.programs.drawnode_screen_nl.activate();
1411
850
  sh = h.programs.drawnode_screen_nl._program;
1412
851
  shu = sh.uniforms;
1413
852
  gl.uniformMatrix4fv(shu.viewMatrix, false, cam.getViewMatrix());
1414
853
  gl.uniformMatrix4fv(shu.projectionMatrix, false, cam.getProjectionMatrix());
1415
854
  }
1416
-
1417
855
  gl.uniform3fv(shu.eyePositionHigh, cam.eyeHigh);
1418
856
  gl.uniform3fv(shu.eyePositionLow, cam.eyeLow);
1419
-
1420
857
  //
1421
858
  // drawing planet nodes
1422
859
  //
1423
- let rn = this._renderedNodesInFrustum[frustumIndex],
1424
- sl = this._visibleTileLayerSlices;
1425
-
860
+ let rn = this._renderedNodesInFrustum[frustumIndex], sl = this._visibleTileLayerSlices;
1426
861
  if (sl.length) {
1427
862
  let sli = sl[0];
1428
863
  for (let i = sli.length - 1; i >= 0; --i) {
@@ -1432,8 +867,7 @@ export class Planet extends RenderNode {
1432
867
  }
1433
868
  }
1434
869
  }
1435
-
1436
- let isEq = this.terrain!.equalizeVertices;
870
+ let isEq = this.terrain.equalizeVertices;
1437
871
  let i = rn.length;
1438
872
  while (i--) {
1439
873
  let s = rn[i].segment;
@@ -1441,7 +875,6 @@ export class Planet extends RenderNode {
1441
875
  s.readyToEngage && s.engage();
1442
876
  s.screenRendering(sh, sl[0], 0);
1443
877
  }
1444
-
1445
878
  gl.enable(gl.POLYGON_OFFSET_FILL);
1446
879
  //gl.disable(gl.CULL_FACE);
1447
880
  for (let j = 1, len = sl.length; j < len; j++) {
@@ -1452,7 +885,6 @@ export class Planet extends RenderNode {
1452
885
  slj.splice(i, 1);
1453
886
  }
1454
887
  }
1455
-
1456
888
  gl.polygonOffset(0, -j);
1457
889
  i = rn.length;
1458
890
  while (i--) {
@@ -1462,85 +894,69 @@ export class Planet extends RenderNode {
1462
894
  //gl.enable(gl.CULL_FACE);
1463
895
  gl.disable(gl.POLYGON_OFFSET_FILL);
1464
896
  }
1465
-
1466
- protected _renderScreenNodesPASSAtmos() {
1467
-
897
+ _renderScreenNodesPASSAtmos() {
1468
898
  let sh, shu;
1469
- let renderer = this.renderer!;
899
+ let renderer = this.renderer;
1470
900
  let h = renderer.handler;
1471
- let gl = h.gl!;
1472
- let cam = (renderer.activeCamera as PlanetCamera)!;
901
+ let gl = h.gl;
902
+ let cam = renderer.activeCamera;
1473
903
  let firstPass = cam.isFirstPass;
1474
904
  let frustumIndex = cam.currentFrustumIndex;
1475
-
1476
905
  gl.enable(gl.CULL_FACE);
1477
-
1478
906
  renderer.enableBlendOneSrcAlpha();
1479
-
1480
907
  if (this.lightEnabled) {
1481
908
  h.programs.drawnode_screen_wl.activate();
1482
909
  sh = h.programs.drawnode_screen_wl._program;
1483
910
  shu = sh.uniforms;
1484
-
1485
911
  gl.uniform3fv(shu.lightsPositions, this._lightsPositions);
1486
912
  gl.uniformMatrix4fv(shu.viewMatrix, false, cam.getViewMatrix());
1487
913
  gl.uniformMatrix4fv(shu.projectionMatrix, false, cam.getProjectionMatrix());
1488
-
1489
914
  if (this.baseLayer) {
1490
915
  gl.uniform3fv(shu.diffuse, this.baseLayer._diffuse || this._diffuse);
1491
916
  gl.uniform3fv(shu.ambient, this.baseLayer._ambient || this._ambient);
1492
917
  gl.uniform4fv(shu.specular, this.baseLayer._specular || this._specular);
1493
918
  gl.uniform1f(shu.nightTextureCoefficient, this.baseLayer.nightTextureCoefficient || this.nightTextureCoefficient);
1494
- } else {
919
+ }
920
+ else {
1495
921
  gl.uniform3fv(shu.diffuse, this._diffuse);
1496
922
  gl.uniform3fv(shu.ambient, this._ambient);
1497
923
  gl.uniform4fv(shu.specular, this._specular);
1498
924
  gl.uniform1f(shu.nightTextureCoefficient, this.nightTextureCoefficient);
1499
925
  }
1500
-
1501
926
  gl.uniform2fv(shu.maxMinOpacity, this._atmosphereMaxMinOpacity);
1502
-
1503
927
  //
1504
928
  // Night and specular
1505
929
  //
1506
930
  gl.activeTexture(gl.TEXTURE0 + this.SLICE_SIZE);
1507
- gl.bindTexture(gl.TEXTURE_2D, this._nightTexture as WebGLTexture || this.transparentTexture as WebGLTexture);
931
+ gl.bindTexture(gl.TEXTURE_2D, this._nightTexture || this.transparentTexture);
1508
932
  gl.uniform1i(shu.nightTexture, this.SLICE_SIZE);
1509
-
1510
933
  gl.activeTexture(gl.TEXTURE0 + this.SLICE_SIZE + 1);
1511
- gl.bindTexture(gl.TEXTURE_2D, this._specularTexture as WebGLTexture || this.transparentTexture as WebGLTexture);
934
+ gl.bindTexture(gl.TEXTURE_2D, this._specularTexture || this.transparentTexture);
1512
935
  gl.uniform1i(shu.specularTexture, this.SLICE_SIZE + 1);
1513
-
1514
936
  //
1515
937
  // atmos precomputed textures
1516
938
  //
1517
939
  gl.activeTexture(gl.TEXTURE0 + this.SLICE_SIZE + 4);
1518
- gl.bindTexture(gl.TEXTURE_2D, (renderer.controls.Atmosphere as Atmosphere)._transmittanceBuffer!.textures[0]);
940
+ gl.bindTexture(gl.TEXTURE_2D, renderer.controls.Atmosphere._transmittanceBuffer.textures[0]);
1519
941
  gl.uniform1i(shu.transmittanceTexture, this.SLICE_SIZE + 4);
1520
-
1521
942
  gl.activeTexture(gl.TEXTURE0 + this.SLICE_SIZE + 5);
1522
- gl.bindTexture(gl.TEXTURE_2D, (renderer.controls.Atmosphere as Atmosphere)._scatteringBuffer!.textures[0]);
943
+ gl.bindTexture(gl.TEXTURE_2D, renderer.controls.Atmosphere._scatteringBuffer.textures[0]);
1523
944
  gl.uniform1i(shu.scatteringTexture, this.SLICE_SIZE + 5);
1524
-
1525
945
  gl.uniform1f(shu.camHeight, cam.getHeight());
1526
-
1527
- } else {
946
+ }
947
+ else {
1528
948
  h.programs.drawnode_screen_nl.activate();
1529
949
  sh = h.programs.drawnode_screen_nl._program;
1530
950
  shu = sh.uniforms;
1531
951
  gl.uniformMatrix4fv(shu.viewMatrix, false, cam.getViewMatrix());
1532
952
  gl.uniformMatrix4fv(shu.projectionMatrix, false, cam.getProjectionMatrix());
1533
953
  }
1534
-
1535
954
  gl.uniform3fv(shu.eyePositionHigh, cam.eyeHigh);
1536
955
  gl.uniform3fv(shu.eyePositionLow, cam.eyeLow);
1537
-
1538
956
  //
1539
957
  // drawing planet nodes
1540
958
  //
1541
- let rn = this._renderedNodesInFrustum[frustumIndex],
1542
- sl = this._visibleTileLayerSlices;
1543
-
959
+ let rn = this._renderedNodesInFrustum[frustumIndex], sl = this._visibleTileLayerSlices;
1544
960
  if (sl.length) {
1545
961
  let sli = sl[0];
1546
962
  for (let i = sli.length - 1; i >= 0; --i) {
@@ -1550,8 +966,7 @@ export class Planet extends RenderNode {
1550
966
  }
1551
967
  }
1552
968
  }
1553
-
1554
- let isEq = this.terrain!.equalizeVertices;
969
+ let isEq = this.terrain.equalizeVertices;
1555
970
  let i = rn.length;
1556
971
  while (i--) {
1557
972
  let s = rn[i].segment;
@@ -1559,7 +974,6 @@ export class Planet extends RenderNode {
1559
974
  s.readyToEngage && s.engage();
1560
975
  s.screenRendering(sh, sl[0], 0);
1561
976
  }
1562
-
1563
977
  gl.enable(gl.POLYGON_OFFSET_FILL);
1564
978
  for (let j = 1, len = sl.length; j < len; j++) {
1565
979
  let slj = sl[j];
@@ -1569,7 +983,6 @@ export class Planet extends RenderNode {
1569
983
  slj.splice(i, 1);
1570
984
  }
1571
985
  }
1572
-
1573
986
  gl.polygonOffset(0, -j);
1574
987
  i = rn.length;
1575
988
  while (i--) {
@@ -1578,69 +991,54 @@ export class Planet extends RenderNode {
1578
991
  }
1579
992
  gl.disable(gl.POLYGON_OFFSET_FILL);
1580
993
  }
1581
-
1582
- protected _renderDistanceFramebufferPASS() {
1583
- if (!this.terrain!.isEmpty) {
1584
-
994
+ _renderDistanceFramebufferPASS() {
995
+ if (!this.terrain.isEmpty) {
1585
996
  let sh;
1586
- let renderer = this.renderer!;
997
+ let renderer = this.renderer;
1587
998
  let h = renderer.handler;
1588
- let gl = h.gl!;
1589
- let cam = (renderer.activeCamera as PlanetCamera)!;
1590
-
999
+ let gl = h.gl;
1000
+ let cam = renderer.activeCamera;
1591
1001
  h.programs.drawnode_heightPicking.activate();
1592
1002
  sh = h.programs.drawnode_heightPicking._program;
1593
1003
  let shu = sh.uniforms;
1594
-
1595
1004
  gl.uniformMatrix4fv(shu.viewMatrix, false, cam.getViewMatrix());
1596
1005
  gl.uniformMatrix4fv(shu.projectionMatrix, false, cam.getProjectionMatrix());
1597
-
1598
1006
  gl.uniform3fv(shu.eyePositionHigh, cam.eyeHigh);
1599
1007
  gl.uniform3fv(shu.eyePositionLow, cam.eyeLow);
1600
-
1601
1008
  // drawing planet nodes
1602
1009
  let rn = this._renderedNodesInFrustum[cam.currentFrustumIndex];
1603
1010
  let sl = this._visibleTileLayerSlices;
1604
-
1605
1011
  let i = rn.length;
1606
1012
  while (i--) {
1607
1013
  rn[i].segment.heightPickingRendering(sh, sl[0]);
1608
1014
  }
1609
1015
  }
1610
1016
  }
1611
-
1612
- protected _renderColorPickingFramebufferPASS() {
1017
+ _renderColorPickingFramebufferPASS() {
1613
1018
  let sh;
1614
- let renderer = this.renderer!;
1019
+ let renderer = this.renderer;
1615
1020
  let h = renderer.handler;
1616
- let gl = h.gl!;
1021
+ let gl = h.gl;
1617
1022
  h.programs.drawnode_colorPicking.activate();
1618
1023
  sh = h.programs.drawnode_colorPicking._program;
1619
1024
  let shu = sh.uniforms;
1620
- let cam = renderer.activeCamera!;
1621
-
1025
+ let cam = renderer.activeCamera;
1622
1026
  // Special blend
1623
1027
  // gl.enable(gl.BLEND);
1624
1028
  // gl.blendEquation(gl.FUNC_ADD);
1625
1029
  // gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
1626
-
1627
1030
  gl.enable(gl.CULL_FACE);
1628
-
1629
1031
  gl.uniformMatrix4fv(shu.viewMatrix, false, cam.getViewMatrix());
1630
1032
  gl.uniformMatrix4fv(shu.projectionMatrix, false, cam.getProjectionMatrix());
1631
-
1632
1033
  gl.uniform3fv(shu.eyePositionHigh, cam.eyeHigh);
1633
1034
  gl.uniform3fv(shu.eyePositionLow, cam.eyeLow);
1634
-
1635
1035
  // drawing planet nodes
1636
1036
  let rn = this._renderedNodesInFrustum[cam.getCurrentFrustum()];
1637
1037
  let sl = this._visibleTileLayerSlices;
1638
-
1639
1038
  let i = rn.length;
1640
1039
  while (i--) {
1641
1040
  rn[i].segment.colorPickingRendering(sh, sl[0], 0);
1642
1041
  }
1643
-
1644
1042
  gl.enable(gl.POLYGON_OFFSET_FILL);
1645
1043
  for (let j = 1, len = sl.length; j < len; j++) {
1646
1044
  i = rn.length;
@@ -1651,86 +1049,65 @@ export class Planet extends RenderNode {
1651
1049
  }
1652
1050
  gl.disable(gl.POLYGON_OFFSET_FILL);
1653
1051
  }
1654
-
1655
- protected _renderDepthFramebufferPASS() {
1052
+ _renderDepthFramebufferPASS() {
1656
1053
  let sh;
1657
- let renderer = this.renderer!;
1054
+ let renderer = this.renderer;
1658
1055
  let h = renderer.handler;
1659
- let gl = h.gl!;
1056
+ let gl = h.gl;
1660
1057
  h.programs.drawnode_depth.activate();
1661
1058
  sh = h.programs.drawnode_depth._program;
1662
1059
  let shu = sh.uniforms;
1663
- let cam = renderer.activeCamera!;
1664
-
1060
+ let cam = renderer.activeCamera;
1665
1061
  gl.disable(gl.BLEND);
1666
1062
  gl.disable(gl.POLYGON_OFFSET_FILL);
1667
-
1668
1063
  gl.uniformMatrix4fv(shu.viewMatrix, false, cam.getViewMatrix());
1669
1064
  gl.uniformMatrix4fv(shu.projectionMatrix, false, cam.getProjectionMatrix());
1670
-
1671
1065
  gl.uniform3fv(shu.eyePositionHigh, cam.eyeHigh);
1672
1066
  gl.uniform3fv(shu.eyePositionLow, cam.eyeLow);
1673
-
1674
1067
  gl.uniform3fv(shu.frustumPickingColor, cam.frustum._pickingColorU);
1675
-
1676
1068
  // drawing planet nodes
1677
- let rn = this._renderedNodesInFrustum[cam.getCurrentFrustum()],
1678
- sl = this._visibleTileLayerSlices;
1679
-
1069
+ let rn = this._renderedNodesInFrustum[cam.getCurrentFrustum()], sl = this._visibleTileLayerSlices;
1680
1070
  let i = rn.length;
1681
1071
  while (i--) {
1682
1072
  rn[i].segment.depthRendering(sh, sl[0]);
1683
1073
  }
1684
-
1685
1074
  gl.enable(gl.BLEND);
1686
1075
  }
1687
-
1688
- protected _collectVectorLayerCollections() {
1076
+ _collectVectorLayerCollections() {
1689
1077
  this._frustumEntityCollections.length = 0;
1690
1078
  this._frustumEntityCollections = [];
1691
-
1692
1079
  let i = this.visibleVectorLayers.length;
1693
1080
  while (i--) {
1694
- let vi = this.visibleVectorLayers[i] as Vector;
1695
-
1081
+ let vi = this.visibleVectorLayers[i];
1696
1082
  if (vi._fading && vi._refreshFadingOpacity()) {
1697
1083
  this.visibleVectorLayers.splice(i, 1);
1698
1084
  }
1699
-
1700
1085
  vi.collectVisibleCollections(this._frustumEntityCollections);
1701
1086
  vi.update();
1702
1087
  }
1703
1088
  }
1704
-
1705
- protected _frustumEntityCollectionPickingCallback() {
1089
+ _frustumEntityCollectionPickingCallback() {
1706
1090
  this.drawPickingEntityCollections(this._frustumEntityCollections);
1707
1091
  }
1708
-
1709
1092
  /**
1710
1093
  * Starts clear memory thread.
1711
1094
  * @public
1712
1095
  */
1713
- public memClear() {
1096
+ memClear() {
1714
1097
  this._distBeforeMemClear = 0;
1715
-
1716
1098
  this.camera._insideSegment = null;
1717
-
1718
1099
  this.layerLock.lock(this._memKey);
1719
1100
  this.terrainLock.lock(this._memKey);
1720
1101
  this._normalMapCreator.lock(this._memKey);
1721
-
1722
1102
  this._normalMapCreator.clear();
1723
- this.terrain!.abortLoading();
1103
+ this.terrain.abortLoading();
1724
1104
  this._tileLoader.abortAll();
1725
-
1726
1105
  this.quadTreeStrategy.clear();
1727
1106
  this.layerLock.free(this._memKey);
1728
1107
  this.terrainLock.free(this._memKey);
1729
1108
  this._normalMapCreator.free(this._memKey);
1730
-
1731
1109
  this._createdNodesCount = 0;
1732
1110
  }
1733
-
1734
1111
  /**
1735
1112
  * Returns ray vector hit ellipsoid coordinates.
1736
1113
  * If the ray doesn't hit ellipsoid it returns 'undefined'.
@@ -1738,47 +1115,43 @@ export class Planet extends RenderNode {
1738
1115
  * @param {Ray} ray - Ray.
1739
1116
  * @returns {Vec3 | undefined} -
1740
1117
  */
1741
- public getRayIntersectionEllipsoid(ray: Ray): Vec3 | undefined {
1118
+ getRayIntersectionEllipsoid(ray) {
1742
1119
  return this.ellipsoid.hitRay(ray.origin, ray.direction);
1743
1120
  }
1744
-
1745
1121
  /**
1746
1122
  * Project screen coordinates to the planet ellipsoid.
1747
1123
  * @public
1748
1124
  * @param {Vec2 | IBaseInputState } px - Screen coordinates.
1749
1125
  * @returns {Vec3 | undefined} - Cartesian coordinates.
1750
1126
  */
1751
- public getCartesianFromPixelEllipsoid(px: Vec2 | IBaseInputState): Vec3 | undefined {
1752
- let cam = this.renderer!.activeCamera!;
1127
+ getCartesianFromPixelEllipsoid(px) {
1128
+ let cam = this.renderer.activeCamera;
1753
1129
  return this.ellipsoid.hitRay(cam.eye, cam.unproject(px.x, px.y));
1754
1130
  }
1755
-
1756
1131
  /**
1757
1132
  * Project screen coordinates to the planet ellipsoid.
1758
1133
  * @public
1759
1134
  * @param {Vec2 | IBaseInputState} px - Screen coordinates.
1760
1135
  * @returns {LonLat | undefined} - Geodetic coordinates.
1761
1136
  */
1762
- public getLonLatFromPixelEllipsoid(px: Vec2): LonLat | undefined {
1137
+ getLonLatFromPixelEllipsoid(px) {
1763
1138
  let coords = this.getCartesianFromPixelEllipsoid(px);
1764
1139
  if (coords) {
1765
1140
  return this.ellipsoid.cartesianToLonLat(coords);
1766
1141
  }
1767
1142
  }
1768
-
1769
1143
  /**
1770
1144
  * Returns mouse position cartesian coordinates on the current terrain.
1771
1145
  * @public
1772
1146
  * @returns {Vec3 | undefined} -
1773
1147
  */
1774
- public getCartesianFromMouseTerrain(): Vec3 | undefined {
1775
- let ms = this.renderer!.events.mouseState;
1148
+ getCartesianFromMouseTerrain() {
1149
+ let ms = this.renderer.events.mouseState;
1776
1150
  let distance = this.getDistanceFromPixel(ms);
1777
1151
  if (distance) {
1778
- return ms.direction.scaleTo(distance).addA(this.renderer!.activeCamera!.eye);
1152
+ return ms.direction.scaleTo(distance).addA(this.renderer.activeCamera.eye);
1779
1153
  }
1780
1154
  }
1781
-
1782
1155
  /**
1783
1156
  * Returns screen coordinates cartesian coordinates on the current terrain.
1784
1157
  * position or null if input coordinates is outside the planet.
@@ -1786,14 +1159,13 @@ export class Planet extends RenderNode {
1786
1159
  * @param {Vec2} px - Pixel screen 2d coordinates.
1787
1160
  * @returns {Vec3 | undefined} -
1788
1161
  */
1789
- public getCartesianFromPixelTerrain(px: Vec2 | IBaseInputState): Vec3 | undefined {
1162
+ getCartesianFromPixelTerrain(px) {
1790
1163
  let distance = this.getDistanceFromPixel(px);
1791
1164
  if (distance) {
1792
- let direction = (px as IBaseInputState).direction || this.renderer!.activeCamera!.unproject(px.x, px.y);
1793
- return direction.scaleTo(distance).addA(this.renderer!.activeCamera!.eye);
1165
+ let direction = px.direction || this.renderer.activeCamera.unproject(px.x, px.y);
1166
+ return direction.scaleTo(distance).addA(this.renderer.activeCamera.eye);
1794
1167
  }
1795
1168
  }
1796
-
1797
1169
  /**
1798
1170
  * Returns geodetic coordinates on the current terrain planet by its screen coordinates.
1799
1171
  * position or null if input coordinates is outside the planet.
@@ -1801,125 +1173,111 @@ export class Planet extends RenderNode {
1801
1173
  * @param {Vec2 | IBaseInputState} px - Pixel screen 2d coordinates.
1802
1174
  * @returns {LonLat | undefined} -
1803
1175
  */
1804
- public getLonLatFromPixelTerrain(px: Vec2 | IBaseInputState): LonLat | undefined {
1176
+ getLonLatFromPixelTerrain(px) {
1805
1177
  let coords = this.getCartesianFromPixelTerrain(px);
1806
1178
  if (coords) {
1807
1179
  return this.ellipsoid.cartesianToLonLat(coords);
1808
1180
  }
1809
1181
  }
1810
-
1811
1182
  /**
1812
1183
  * Project cartesian coordinates to screen space.
1813
1184
  * @public
1814
1185
  * @param {Vec3} coords - Cartesian coordinates.
1815
1186
  * @returns {Vec2} - Screen coordinates.
1816
1187
  */
1817
- public getPixelFromCartesian(coords: Vec3): Vec2 {
1818
- return this.renderer!.activeCamera!.project(coords);
1188
+ getPixelFromCartesian(coords) {
1189
+ return this.renderer.activeCamera.project(coords);
1819
1190
  }
1820
-
1821
1191
  /**
1822
1192
  * Project geodetic coordinates to screen space.
1823
1193
  * @public
1824
1194
  * @param {LonLat} lonlat - Geodetic coordinates.
1825
1195
  * @returns {Vec2 | undefined} - Screen coordinates.
1826
1196
  */
1827
- public getPixelFromLonLat(lonlat: LonLat): Vec2 | undefined {
1197
+ getPixelFromLonLat(lonlat) {
1828
1198
  let coords = this.ellipsoid.lonLatToCartesian(lonlat);
1829
1199
  if (coords) {
1830
- return this.renderer!.activeCamera!.project(coords);
1200
+ return this.renderer.activeCamera.project(coords);
1831
1201
  }
1832
1202
  }
1833
-
1834
1203
  /**
1835
1204
  * Returns distance from an active (screen) camera to the planet ellipsoid.
1836
1205
  * @public
1837
1206
  * @param {Vec2} px - Screen coordinates.
1838
1207
  * @returns {number} -
1839
1208
  */
1840
- public getDistanceFromPixelEllipsoid(px: Vec2 | IBaseInputState): number | undefined {
1209
+ getDistanceFromPixelEllipsoid(px) {
1841
1210
  let coords = this.getCartesianFromPixelEllipsoid(px);
1842
1211
  if (coords) {
1843
- return coords.distance(this.renderer!.activeCamera!.eye);
1212
+ return coords.distance(this.renderer.activeCamera.eye);
1844
1213
  }
1845
1214
  }
1846
-
1847
1215
  /**
1848
1216
  * Returns distance from active (screen) camera to the planet terrain by screen coordinates.
1849
1217
  * @public
1850
1218
  * @param {Vec2 | IBaseInputState} px - Screen coordinates.
1851
1219
  * @returns {number | undefined} -
1852
1220
  */
1853
- public getDistanceFromPixel(px: Vec2 | IBaseInputState): number {
1854
- if (this.terrain!.isEmpty) {
1221
+ getDistanceFromPixel(px) {
1222
+ if (this.terrain.isEmpty) {
1855
1223
  return this.getDistanceFromPixelEllipsoid(px) || 0;
1856
- } else {
1857
-
1858
- let r = this.renderer!;
1859
- let cnv = r.handler!.canvas!;
1860
-
1224
+ }
1225
+ else {
1226
+ let r = this.renderer;
1227
+ let cnv = r.handler.canvas;
1861
1228
  let spx = px.x / cnv.width;
1862
1229
  let spy = (cnv.height - px.y) / cnv.height;
1863
-
1864
1230
  _tempPickingPix_[0] = _tempPickingPix_[1] = _tempPickingPix_[2] = 0.0;
1865
-
1866
1231
  let dist = 0;
1867
-
1868
1232
  r.readDistanceColor(spx, spy, _tempPickingPix_);
1869
-
1870
1233
  dist = decodeFloatFromRGBAArr(_tempPickingPix_);
1871
-
1872
1234
  if (!(_tempPickingPix_[0] || _tempPickingPix_[1] || _tempPickingPix_[2])) {
1873
1235
  dist = this.getDistanceFromPixelEllipsoid(px) || 0;
1874
- } else if (dist < DEPTH_DISTANCE) {
1875
- r.screenDepthFramebuffer!.activate();
1876
-
1236
+ }
1237
+ else if (dist < DEPTH_DISTANCE) {
1238
+ r.screenDepthFramebuffer.activate();
1877
1239
  //if (r.screenDepthFramebuffer.isComplete()) {
1878
- r.screenDepthFramebuffer!.readPixels(_tempDepthColor_, spx, spy);
1240
+ r.screenDepthFramebuffer.readPixels(_tempDepthColor_, spx, spy);
1879
1241
  let screenPos = new Vec4(spx * 2.0 - 1.0, spy * 2.0 - 1.0, (_tempDepthColor_[0] / 255.0) * 2.0 - 1.0, 1.0 * 2.0 - 1.0);
1880
1242
  let viewPosition = this.camera.frustums[0].inverseProjectionMatrix.mulVec4(screenPos);
1881
- let dir = (px as IBaseInputState).direction || r.activeCamera!.unproject(px.x, px.y);
1882
- dist = -(viewPosition.z / viewPosition.w) / dir.dot(r.activeCamera!.getForward());
1243
+ let dir = px.direction || r.activeCamera.unproject(px.x, px.y);
1244
+ dist = -(viewPosition.z / viewPosition.w) / dir.dot(r.activeCamera.getForward());
1883
1245
  //}
1884
-
1885
- r.screenDepthFramebuffer!.deactivate();
1246
+ r.screenDepthFramebuffer.deactivate();
1886
1247
  }
1887
1248
  return dist;
1888
1249
  }
1889
1250
  }
1890
-
1891
1251
  /**
1892
1252
  * Sets camera to the planet geographical extent.
1893
1253
  * @public
1894
1254
  * @param {Extent} extent - Geographical extent.
1895
1255
  */
1896
- public viewExtent(extent: Extent) {
1256
+ viewExtent(extent) {
1897
1257
  if (this.camera) {
1898
1258
  this.camera.viewExtent(extent);
1899
- } else {
1259
+ }
1260
+ else {
1900
1261
  this._initialViewExtent = extent;
1901
1262
  }
1902
1263
  }
1903
-
1904
1264
  /**
1905
1265
  * Fits camera position for the view extent.
1906
1266
  * @public
1907
1267
  * @param {Array.<number>} extentArr - Geographical extent array, (exactly 4 entries)
1908
1268
  * where index 0 - southwest longitude, 1 - latitude southwest, 2 - longitude northeast, 3 - latitude northeast.
1909
1269
  */
1910
- public viewExtentArr(extentArr: NumberArray4) {
1270
+ viewExtentArr(extentArr) {
1911
1271
  this.viewExtent(new Extent(new LonLat(extentArr[0], extentArr[1]), new LonLat(extentArr[2], extentArr[3])));
1912
1272
  }
1913
-
1914
1273
  /**
1915
1274
  * Gets current camera view extent.
1916
1275
  * @public
1917
1276
  * @returns {Extent} -
1918
1277
  */
1919
- public getViewExtent(): Extent {
1278
+ getViewExtent() {
1920
1279
  return this._viewExtent;
1921
1280
  }
1922
-
1923
1281
  /**
1924
1282
  * Sets camera to the planet geographical position.
1925
1283
  * @public
@@ -1927,10 +1285,9 @@ export class Planet extends RenderNode {
1927
1285
  * @param {LonLat} [lookLonLat] - Viewpoint.
1928
1286
  * @param {Vec3} [up] - Camera up vector.
1929
1287
  */
1930
- public viewLonLat(lonlat: LonLat, lookLonLat?: LonLat, up?: Vec3) {
1288
+ viewLonLat(lonlat, lookLonLat, up) {
1931
1289
  this.camera.setLonLat(lonlat, lookLonLat, up);
1932
1290
  }
1933
-
1934
1291
  /**
1935
1292
  * Fly active camera to the view extent.
1936
1293
  * @public
@@ -1941,17 +1298,9 @@ export class Planet extends RenderNode {
1941
1298
  * @param {Function} [startCallback] - Callback that calls before the flying begins.
1942
1299
  * @param {Function} [completeCallback] - Callback that calls after flying when flying is finished.
1943
1300
  */
1944
- public flyExtent(
1945
- extent: Extent,
1946
- height?: number,
1947
- up?: Vec3,
1948
- ampl?: number,
1949
- completeCallback?: Function,
1950
- startCallback?: Function
1951
- ) {
1301
+ flyExtent(extent, height, up, ampl, completeCallback, startCallback) {
1952
1302
  this.camera.flyExtent(extent, height, up, ampl, completeCallback, startCallback);
1953
1303
  }
1954
-
1955
1304
  /**
1956
1305
  * Fly camera to the point.
1957
1306
  * @public
@@ -1963,18 +1312,9 @@ export class Planet extends RenderNode {
1963
1312
  * @param {Function} [startCallback] - Call the function in the beginning
1964
1313
  * @param {Function} [frameCallback] - Each frame callback
1965
1314
  */
1966
- public flyCartesian(
1967
- cartesian: Vec3,
1968
- look?: Vec3 | null,
1969
- up?: Vec3 | null,
1970
- ampl?: number,
1971
- completeCallback?: Function | null,
1972
- startCallback?: Function | null,
1973
- frameCallback?: Function | null
1974
- ) {
1315
+ flyCartesian(cartesian, look, up, ampl, completeCallback, startCallback, frameCallback) {
1975
1316
  this.camera.flyCartesian(cartesian, look, up, ampl, completeCallback, startCallback, frameCallback);
1976
1317
  }
1977
-
1978
1318
  /**
1979
1319
  * Fly camera to the geodetic position.
1980
1320
  * @public
@@ -1986,36 +1326,25 @@ export class Planet extends RenderNode {
1986
1326
  * @param [startCallback]
1987
1327
  * @param [frameCallback]
1988
1328
  */
1989
- public flyLonLat(
1990
- lonlat: LonLat,
1991
- look?: Vec3 | LonLat,
1992
- up?: Vec3,
1993
- ampl?: number,
1994
- completeCallback?: Function,
1995
- startCallback?: Function,
1996
- frameCallback?: Function
1997
- ) {
1329
+ flyLonLat(lonlat, look, up, ampl, completeCallback, startCallback, frameCallback) {
1998
1330
  this.camera.flyLonLat(lonlat, look, up, ampl, completeCallback, startCallback, frameCallback);
1999
1331
  }
2000
-
2001
1332
  /**
2002
1333
  * Stop current flight.
2003
1334
  * @public
2004
1335
  */
2005
- public stopFlying() {
1336
+ stopFlying() {
2006
1337
  this.camera.stopFlying();
2007
1338
  }
2008
-
2009
- public override updateBillboardsTexCoords() {
1339
+ updateBillboardsTexCoords() {
2010
1340
  for (let i = 0; i < this.entityCollections.length; i++) {
2011
1341
  this.entityCollections[i].billboardHandler.refreshTexCoordsArr();
2012
1342
  }
2013
-
2014
- let readyCollections: Record<number, boolean> = {};
1343
+ let readyCollections = {};
2015
1344
  for (let i = 0; i < this._layers.length; i++) {
2016
1345
  let li = this._layers[i];
2017
1346
  if (li instanceof Vector) {
2018
- (li as Vector).each(function (e: Entity) {
1347
+ li.each(function (e) {
2019
1348
  if (e._entityCollection && !readyCollections[e._entityCollection.id]) {
2020
1349
  e._entityCollection.billboardHandler.refreshTexCoordsArr();
2021
1350
  readyCollections[e._entityCollection.id] = true;
@@ -2024,8 +1353,7 @@ export class Planet extends RenderNode {
2024
1353
  }
2025
1354
  }
2026
1355
  }
2027
-
2028
- public getEntityTerrainPoint(entity: Entity, res: Vec3) {
1356
+ getEntityTerrainPoint(entity, res) {
2029
1357
  let n = this._renderedNodes, i = n.length;
2030
1358
  while (i--) {
2031
1359
  if (n[i].segment.isEntityInside(entity)) {
@@ -2033,83 +1361,75 @@ export class Planet extends RenderNode {
2033
1361
  }
2034
1362
  }
2035
1363
  }
2036
-
2037
- public async getHeightDefault(lonLat: LonLat): Promise<number> {
2038
- return new Promise<number>((resolve: Function) => {
1364
+ async getHeightDefault(lonLat) {
1365
+ return new Promise((resolve) => {
2039
1366
  if (this.terrain) {
2040
- this.terrain.getHeightAsync(lonLat.clone(), (alt: number) => {
1367
+ this.terrain.getHeightAsync(lonLat.clone(), (alt) => {
2041
1368
  resolve(alt);
2042
1369
  });
2043
1370
  }
2044
- resolve(0);
1371
+ else {
1372
+ resolve(0);
1373
+ }
2045
1374
  });
2046
1375
  }
2047
-
2048
- public async getHeightAboveELL(lonLat: LonLat): Promise<number> {
2049
- return new Promise<number>((resolve: Function) => {
1376
+ async getHeightAboveELL(lonLat) {
1377
+ return new Promise((resolve) => {
2050
1378
  if (this.terrain) {
2051
- this.terrain.getHeightAsync(lonLat.clone(), (alt: number) => {
2052
- resolve(alt + this.terrain!.geoid.getHeightLonLat(lonLat));
1379
+ this.terrain.getHeightAsync(lonLat.clone(), (alt) => {
1380
+ resolve(alt + this.terrain.geoid.getHeightLonLat(lonLat));
2053
1381
  });
2054
1382
  }
2055
- resolve(0);
1383
+ else {
1384
+ resolve(0);
1385
+ }
2056
1386
  });
2057
1387
  }
2058
-
2059
- public override onremove() {
1388
+ onremove() {
2060
1389
  this.memClear();
2061
1390
  this.quadTreeStrategy.destroyBranches();
2062
1391
  this._renderedNodes = [];
2063
1392
  }
2064
1393
  }
2065
-
2066
- const PLANET_EVENTS: PlanetEventsList = [
1394
+ const PLANET_EVENTS = [
2067
1395
  /**
2068
1396
  * Triggered before globe frame begins to render.
2069
1397
  * @event og.scene.Planet#draw
2070
1398
  */
2071
1399
  "draw",
2072
-
2073
1400
  /**
2074
1401
  * Triggered when layer has added to the planet.
2075
1402
  * @event og.scene.Planet#layeradd
2076
1403
  */
2077
1404
  "layeradd",
2078
-
2079
1405
  /**
2080
1406
  * Triggered when base layer changed.
2081
1407
  * @event og.scene.Planet#baselayerchange
2082
1408
  */
2083
1409
  "baselayerchange",
2084
-
2085
1410
  /**
2086
1411
  * Triggered when layer has removed from the planet.
2087
1412
  * @event og.scene.Planet#layerremove
2088
1413
  */
2089
1414
  "layerremove",
2090
-
2091
1415
  /**
2092
1416
  * Triggered when some layer visibility changed.
2093
1417
  * @event og.scene.Planet#layervisibilitychange
2094
1418
  */
2095
1419
  "layervisibilitychange",
2096
-
2097
1420
  /**
2098
1421
  * Triggered when all data is loaded
2099
1422
  * @event og.scene.Planet#rendercompleted
2100
1423
  */
2101
1424
  "rendercompleted",
2102
-
2103
1425
  /**
2104
1426
  * Triggered when all data is loaded
2105
1427
  * @event og.scene.Planet#terraincompleted
2106
1428
  */
2107
1429
  "terraincompleted",
2108
-
2109
1430
  /**
2110
1431
  * Triggered when layer data is laded
2111
1432
  * @event og.scene.Planet#terraincompleted
2112
1433
  */
2113
1434
  "layerloadend"
2114
1435
  ];
2115
-