@openglobus/og 0.24.2 → 0.25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (753) hide show
  1. package/lib/{js/Globe.d.ts → Globe.d.ts} +16 -18
  2. package/lib/{js/Object3d.d.ts → Object3d.d.ts} +1 -1
  3. package/lib/{@openglobus/js/camera → camera}/Camera.d.ts +16 -22
  4. package/lib/{@openglobus/js/camera → camera}/Frustum.d.ts +1 -1
  5. package/lib/control/CameraFrameComposer.d.ts +35 -0
  6. package/lib/control/KeyboardNavigation.d.ts +32 -0
  7. package/lib/control/MouseWheelZoomControl.d.ts +1 -0
  8. package/lib/{js/control → control/atmosphere}/Atmosphere.d.ts +9 -6
  9. package/lib/{@openglobus/js/control → control/atmosphere}/AtmosphereConfig.d.ts +6 -6
  10. package/lib/{js/control → control}/index.d.ts +3 -1
  11. package/lib/control/object3dManager/Object3dCollection.d.ts +21 -0
  12. package/lib/control/object3dManager/Object3dCollectionView.d.ts +15 -0
  13. package/lib/control/object3dManager/Object3dItemView.d.ts +10 -0
  14. package/lib/control/object3dManager/Object3dManager.d.ts +28 -0
  15. package/lib/control/object3dManager/Object3dManagerDialog.d.ts +23 -0
  16. package/lib/{js/control → control}/visibleExtent/Segment.d.ts +3 -3
  17. package/lib/entity/LabelWorker.worker.d.ts +1 -0
  18. package/lib/{@openglobus/js/index.d.ts → index.d.ts} +1 -0
  19. package/lib/og.css +1 -0
  20. package/lib/og.es.js +1 -0
  21. package/lib/{@openglobus/js/renderer → renderer}/Renderer.d.ts +28 -28
  22. package/lib/{@openglobus/js/scene → scene}/Planet.d.ts +3 -3
  23. package/lib/{@openglobus/js/segment → segment}/Segment.d.ts +1 -1
  24. package/lib/{js/segment → segment}/segmentHelper.d.ts +1 -1
  25. package/lib/{@openglobus/js/shaders → shaders/atmos}/atmos.d.ts +7 -5
  26. package/lib/{@openglobus/js/shaders → shaders/billboard}/billboard.d.ts +1 -1
  27. package/lib/shaders/drawnode/drawnode.d.ts +8 -0
  28. package/lib/{@openglobus/js/shaders/geoObject.d.ts → shaders/geo_object/geo_object.d.ts} +1 -1
  29. package/lib/{@openglobus/js/shaders → shaders/label}/label.d.ts +1 -1
  30. package/lib/{@openglobus/js/shaders → shaders/polyline}/polyline.d.ts +1 -1
  31. package/lib/shaders/ray/ray.d.ts +2 -0
  32. package/lib/{@openglobus/js/shaders → shaders/tone_mapping}/toneMapping.d.ts +1 -1
  33. package/lib/tsconfig.tsbuildinfo +1 -0
  34. package/lib/{@openglobus/js/ui → ui}/Dialog.d.ts +1 -1
  35. package/lib/{@openglobus/js/ui → ui}/View.d.ts +1 -0
  36. package/lib/{@openglobus/js/utils → utils}/BaseWorker.d.ts +2 -2
  37. package/lib/utils/PlainSegmentWorker.worker.d.ts +1 -0
  38. package/lib/utils/TerrainWorker.worker.d.ts +1 -0
  39. package/lib/{@openglobus/js/utils → utils}/objParser.d.ts +1 -1
  40. package/lib/{js/utils → utils}/shared.d.ts +16 -0
  41. package/lib/{js/webgl → webgl}/Framebuffer.d.ts +21 -5
  42. package/lib/{@openglobus/js/webgl → webgl}/Handler.d.ts +0 -1
  43. package/package.json +75 -68
  44. package/css/og.css +0 -1342
  45. package/lib/@openglobus/js/Globe.d.ts +0 -145
  46. package/lib/@openglobus/js/Object3d.d.ts +0 -81
  47. package/lib/@openglobus/js/control/Atmosphere.d.ts +0 -40
  48. package/lib/@openglobus/js/control/KeyboardNavigation.d.ts +0 -28
  49. package/lib/@openglobus/js/control/index.d.ts +0 -30
  50. package/lib/@openglobus/js/segment/segmentHelper.d.ts +0 -18
  51. package/lib/@openglobus/js/shaders/bloom.d.ts +0 -2
  52. package/lib/@openglobus/js/shaders/blur.d.ts +0 -3
  53. package/lib/@openglobus/js/shaders/drawnode.d.ts +0 -10
  54. package/lib/@openglobus/js/shaders/lumFilter.d.ts +0 -2
  55. package/lib/@openglobus/js/shaders/ray.d.ts +0 -2
  56. package/lib/@openglobus/js/shaders/utils.d.ts +0 -1
  57. package/lib/@openglobus/js/utils/shared.d.ts +0 -287
  58. package/lib/@openglobus/js/webgl/Framebuffer.d.ts +0 -97
  59. package/lib/@openglobus/og.css +0 -1
  60. package/lib/@openglobus/og.esm.js +0 -2
  61. package/lib/@openglobus/og.esm.js.map +0 -1
  62. package/lib/@openglobus/og.umd.js +0 -2
  63. package/lib/@openglobus/og.umd.js.map +0 -1
  64. package/lib/@openglobus/res/fonts/Ephesis-Regular.json +0 -4648
  65. package/lib/@openglobus/res/fonts/Ephesis-Regular.ttf.cfg +0 -1282
  66. package/lib/@openglobus/res/fonts/Ephesis-Regular.ttf.png +0 -0
  67. package/lib/@openglobus/res/fonts/Karla-Bold.json +0 -5252
  68. package/lib/@openglobus/res/fonts/Karla-Bold.ttf.cfg +0 -920
  69. package/lib/@openglobus/res/fonts/Karla-Bold.ttf.png +0 -0
  70. package/lib/@openglobus/res/fonts/Karla-Light.json +0 -5252
  71. package/lib/@openglobus/res/fonts/Karla-Light.ttf.cfg +0 -830
  72. package/lib/@openglobus/res/fonts/Karla-Light.ttf.png +0 -0
  73. package/lib/@openglobus/res/fonts/Karla-Medium.json +0 -5252
  74. package/lib/@openglobus/res/fonts/Karla-Medium.ttf.cfg +0 -1196
  75. package/lib/@openglobus/res/fonts/Karla-Medium.ttf.png +0 -0
  76. package/lib/@openglobus/res/fonts/NotoSansArabic-Regular.json +0 -3332
  77. package/lib/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.cfg +0 -1370
  78. package/lib/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.png +0 -0
  79. package/lib/@openglobus/res/fonts/arial.js +0 -4325
  80. package/lib/js/Clock.d.ts +0 -106
  81. package/lib/js/Clock.js +0 -141
  82. package/lib/js/Deferred.d.ts +0 -6
  83. package/lib/js/Deferred.js +0 -13
  84. package/lib/js/Events.d.ts +0 -90
  85. package/lib/js/Events.js +0 -145
  86. package/lib/js/Extent.d.ts +0 -145
  87. package/lib/js/Extent.js +0 -278
  88. package/lib/js/Globe.js +0 -289
  89. package/lib/js/ImageCanvas.d.ts +0 -128
  90. package/lib/js/ImageCanvas.js +0 -203
  91. package/lib/js/Lock.d.ts +0 -15
  92. package/lib/js/Lock.js +0 -27
  93. package/lib/js/LonLat.d.ts +0 -128
  94. package/lib/js/LonLat.js +0 -192
  95. package/lib/js/Object3d.js +0 -508
  96. package/lib/js/Popup.d.ts +0 -49
  97. package/lib/js/Popup.js +0 -160
  98. package/lib/js/QueueArray.d.ts +0 -16
  99. package/lib/js/QueueArray.js +0 -63
  100. package/lib/js/Rectangle.d.ts +0 -76
  101. package/lib/js/Rectangle.js +0 -77
  102. package/lib/js/Stack.d.ts +0 -20
  103. package/lib/js/Stack.js +0 -42
  104. package/lib/js/astro/astro.d.ts +0 -39
  105. package/lib/js/astro/astro.js +0 -43
  106. package/lib/js/astro/earth.d.ts +0 -8
  107. package/lib/js/astro/earth.js +0 -75
  108. package/lib/js/astro/jd.d.ts +0 -234
  109. package/lib/js/astro/jd.js +0 -416
  110. package/lib/js/astro/orbit.d.ts +0 -5
  111. package/lib/js/astro/orbit.js +0 -104
  112. package/lib/js/astro/rotation.d.ts +0 -2
  113. package/lib/js/astro/rotation.js +0 -25
  114. package/lib/js/bv/Box.d.ts +0 -32
  115. package/lib/js/bv/Box.js +0 -53
  116. package/lib/js/bv/Sphere.d.ts +0 -37
  117. package/lib/js/bv/Sphere.js +0 -31
  118. package/lib/js/bv/index.d.ts +0 -3
  119. package/lib/js/bv/index.js +0 -3
  120. package/lib/js/camera/Camera.d.ts +0 -361
  121. package/lib/js/camera/Camera.js +0 -541
  122. package/lib/js/camera/Frustum.d.ts +0 -142
  123. package/lib/js/camera/Frustum.js +0 -246
  124. package/lib/js/camera/PlanetCamera.d.ts +0 -247
  125. package/lib/js/camera/PlanetCamera.js +0 -513
  126. package/lib/js/camera/index.d.ts +0 -3
  127. package/lib/js/camera/index.js +0 -3
  128. package/lib/js/cons.d.ts +0 -40
  129. package/lib/js/cons.js +0 -92
  130. package/lib/js/control/Atmosphere.js +0 -401
  131. package/lib/js/control/AtmosphereConfig.d.ts +0 -59
  132. package/lib/js/control/AtmosphereConfig.js +0 -348
  133. package/lib/js/control/CameraLock.d.ts +0 -38
  134. package/lib/js/control/CameraLock.js +0 -216
  135. package/lib/js/control/CompassButton.d.ts +0 -16
  136. package/lib/js/control/CompassButton.js +0 -118
  137. package/lib/js/control/Control.d.ts +0 -100
  138. package/lib/js/control/Control.js +0 -137
  139. package/lib/js/control/DebugInfo.d.ts +0 -25
  140. package/lib/js/control/DebugInfo.js +0 -318
  141. package/lib/js/control/DrawingSwitcher.d.ts +0 -13
  142. package/lib/js/control/DrawingSwitcher.js +0 -94
  143. package/lib/js/control/EarthCoordinates.d.ts +0 -41
  144. package/lib/js/control/EarthCoordinates.js +0 -161
  145. package/lib/js/control/GeoImageDragControl.d.ts +0 -22
  146. package/lib/js/control/GeoImageDragControl.js +0 -102
  147. package/lib/js/control/KeyboardNavigation.d.ts +0 -28
  148. package/lib/js/control/KeyboardNavigation.js +0 -143
  149. package/lib/js/control/LayerAnimation.d.ts +0 -71
  150. package/lib/js/control/LayerAnimation.js +0 -283
  151. package/lib/js/control/LayerSwitcher.d.ts +0 -38
  152. package/lib/js/control/LayerSwitcher.js +0 -151
  153. package/lib/js/control/Lighting.d.ts +0 -54
  154. package/lib/js/control/Lighting.js +0 -459
  155. package/lib/js/control/MouseNavigation.d.ts +0 -76
  156. package/lib/js/control/MouseNavigation.js +0 -414
  157. package/lib/js/control/MouseWheelZoomControl.d.ts +0 -0
  158. package/lib/js/control/MouseWheelZoomControl.js +0 -270
  159. package/lib/js/control/OldMouseNavigation.d.ts +0 -65
  160. package/lib/js/control/OldMouseNavigation.js +0 -368
  161. package/lib/js/control/RulerSwitcher.d.ts +0 -18
  162. package/lib/js/control/RulerSwitcher.js +0 -57
  163. package/lib/js/control/ScaleControl.d.ts +0 -25
  164. package/lib/js/control/ScaleControl.js +0 -97
  165. package/lib/js/control/SegmentBoundVisualization.d.ts +0 -13
  166. package/lib/js/control/SegmentBoundVisualization.js +0 -37
  167. package/lib/js/control/ShowFps.d.ts +0 -10
  168. package/lib/js/control/ShowFps.js +0 -20
  169. package/lib/js/control/SimpleNavigation.d.ts +0 -43
  170. package/lib/js/control/SimpleNavigation.js +0 -196
  171. package/lib/js/control/SimpleSkyBackground.d.ts +0 -18
  172. package/lib/js/control/SimpleSkyBackground.js +0 -187
  173. package/lib/js/control/Sun.d.ts +0 -34
  174. package/lib/js/control/Sun.js +0 -117
  175. package/lib/js/control/ToggleWireframe.d.ts +0 -15
  176. package/lib/js/control/ToggleWireframe.js +0 -28
  177. package/lib/js/control/TouchNavigation.d.ts +0 -53
  178. package/lib/js/control/TouchNavigation.js +0 -266
  179. package/lib/js/control/ZoomControl.d.ts +0 -28
  180. package/lib/js/control/ZoomControl.js +0 -86
  181. package/lib/js/control/drawing/DrawingControl.d.ts +0 -12
  182. package/lib/js/control/drawing/DrawingControl.js +0 -35
  183. package/lib/js/control/drawing/LineStringDrawingScene.d.ts +0 -15
  184. package/lib/js/control/drawing/LineStringDrawingScene.js +0 -139
  185. package/lib/js/control/drawing/PolygonDrawingScene.d.ts +0 -98
  186. package/lib/js/control/drawing/PolygonDrawingScene.js +0 -533
  187. package/lib/js/control/elevationProfile/ElevationProfile.d.ts +0 -77
  188. package/lib/js/control/elevationProfile/ElevationProfile.js +0 -248
  189. package/lib/js/control/elevationProfile/ElevationProfileButtonsView.d.ts +0 -15
  190. package/lib/js/control/elevationProfile/ElevationProfileButtonsView.js +0 -61
  191. package/lib/js/control/elevationProfile/ElevationProfileControl.d.ts +0 -33
  192. package/lib/js/control/elevationProfile/ElevationProfileControl.js +0 -151
  193. package/lib/js/control/elevationProfile/ElevationProfileLegend.d.ts +0 -20
  194. package/lib/js/control/elevationProfile/ElevationProfileLegend.js +0 -82
  195. package/lib/js/control/elevationProfile/ElevationProfileScene.d.ts +0 -80
  196. package/lib/js/control/elevationProfile/ElevationProfileScene.js +0 -542
  197. package/lib/js/control/elevationProfile/ElevationProfileView.d.ts +0 -65
  198. package/lib/js/control/elevationProfile/ElevationProfileView.js +0 -504
  199. package/lib/js/control/elevationProfile/PointListDialog.d.ts +0 -12
  200. package/lib/js/control/elevationProfile/PointListDialog.js +0 -57
  201. package/lib/js/control/geoObjectEditor/ArrowEntity.d.ts +0 -15
  202. package/lib/js/control/geoObjectEditor/ArrowEntity.js +0 -59
  203. package/lib/js/control/geoObjectEditor/AxisTrackEntity.d.ts +0 -9
  204. package/lib/js/control/geoObjectEditor/AxisTrackEntity.js +0 -93
  205. package/lib/js/control/geoObjectEditor/GeoObjectEditor.d.ts +0 -13
  206. package/lib/js/control/geoObjectEditor/GeoObjectEditor.js +0 -30
  207. package/lib/js/control/geoObjectEditor/GeoObjectEditorDialog.d.ts +0 -69
  208. package/lib/js/control/geoObjectEditor/GeoObjectEditorDialog.js +0 -488
  209. package/lib/js/control/geoObjectEditor/GeoObjectEditorScene.d.ts +0 -127
  210. package/lib/js/control/geoObjectEditor/GeoObjectEditorScene.js +0 -549
  211. package/lib/js/control/geoObjectEditor/MoveAxisEntity.d.ts +0 -17
  212. package/lib/js/control/geoObjectEditor/MoveAxisEntity.js +0 -107
  213. package/lib/js/control/geoObjectEditor/MovePlaneEntity.d.ts +0 -7
  214. package/lib/js/control/geoObjectEditor/MovePlaneEntity.js +0 -31
  215. package/lib/js/control/geoObjectEditor/RotateEntity.d.ts +0 -9
  216. package/lib/js/control/geoObjectEditor/RotateEntity.js +0 -105
  217. package/lib/js/control/geoObjectEditor/colors.d.ts +0 -8
  218. package/lib/js/control/geoObjectEditor/colors.js +0 -8
  219. package/lib/js/control/heightRuler/HeightRuler.d.ts +0 -7
  220. package/lib/js/control/heightRuler/HeightRuler.js +0 -11
  221. package/lib/js/control/heightRuler/HeightRulerScene.d.ts +0 -35
  222. package/lib/js/control/heightRuler/HeightRulerScene.js +0 -181
  223. package/lib/js/control/heightRuler/HeightRulerSwitcher.d.ts +0 -6
  224. package/lib/js/control/heightRuler/HeightRulerSwitcher.js +0 -13
  225. package/lib/js/control/index.js +0 -30
  226. package/lib/js/control/ruler/Ruler.d.ts +0 -14
  227. package/lib/js/control/ruler/Ruler.js +0 -23
  228. package/lib/js/control/ruler/RulerScene.d.ts +0 -88
  229. package/lib/js/control/ruler/RulerScene.js +0 -324
  230. package/lib/js/control/selection/Selection.d.ts +0 -56
  231. package/lib/js/control/selection/Selection.js +0 -78
  232. package/lib/js/control/selection/SelectionScene.d.ts +0 -44
  233. package/lib/js/control/selection/SelectionScene.js +0 -272
  234. package/lib/js/control/timeline/TimelineControl.d.ts +0 -18
  235. package/lib/js/control/timeline/TimelineControl.js +0 -81
  236. package/lib/js/control/timeline/TimelineModel.d.ts +0 -41
  237. package/lib/js/control/timeline/TimelineModel.js +0 -104
  238. package/lib/js/control/timeline/TimelineView.d.ts +0 -86
  239. package/lib/js/control/timeline/TimelineView.js +0 -363
  240. package/lib/js/control/timeline/timelineUtils.d.ts +0 -12
  241. package/lib/js/control/timeline/timelineUtils.js +0 -112
  242. package/lib/js/control/visibleExtent/Segment.js +0 -1301
  243. package/lib/js/control/visibleExtent/VisibleExtent.js +0 -56
  244. package/lib/js/control/visibleExtent/drawnode.d.ts +0 -7
  245. package/lib/js/control/visibleExtent/drawnode.js +0 -718
  246. package/lib/js/ellipsoid/Ellipsoid.d.ts +0 -194
  247. package/lib/js/ellipsoid/Ellipsoid.js +0 -459
  248. package/lib/js/ellipsoid/index.d.ts +0 -4
  249. package/lib/js/ellipsoid/index.js +0 -4
  250. package/lib/js/ellipsoid/mars.d.ts +0 -6
  251. package/lib/js/ellipsoid/mars.js +0 -6
  252. package/lib/js/ellipsoid/moon.d.ts +0 -6
  253. package/lib/js/ellipsoid/moon.js +0 -6
  254. package/lib/js/ellipsoid/wgs84.d.ts +0 -6
  255. package/lib/js/ellipsoid/wgs84.js +0 -6
  256. package/lib/js/entity/BaseBillboard.d.ts +0 -225
  257. package/lib/js/entity/BaseBillboard.js +0 -284
  258. package/lib/js/entity/BaseBillboardHandler.d.ts +0 -81
  259. package/lib/js/entity/BaseBillboardHandler.js +0 -546
  260. package/lib/js/entity/Billboard.d.ts +0 -114
  261. package/lib/js/entity/Billboard.js +0 -127
  262. package/lib/js/entity/BillboardHandler.d.ts +0 -15
  263. package/lib/js/entity/BillboardHandler.js +0 -103
  264. package/lib/js/entity/Entity.d.ts +0 -630
  265. package/lib/js/entity/Entity.js +0 -957
  266. package/lib/js/entity/EntityCollection.d.ts +0 -368
  267. package/lib/js/entity/EntityCollection.js +0 -655
  268. package/lib/js/entity/GeoObject.d.ts +0 -257
  269. package/lib/js/entity/GeoObject.js +0 -318
  270. package/lib/js/entity/GeoObjectHandler.d.ts +0 -81
  271. package/lib/js/entity/GeoObjectHandler.js +0 -515
  272. package/lib/js/entity/Geometry.d.ts +0 -125
  273. package/lib/js/entity/Geometry.js +0 -291
  274. package/lib/js/entity/GeometryHandler.d.ts +0 -86
  275. package/lib/js/entity/GeometryHandler.js +0 -745
  276. package/lib/js/entity/InstanceData.d.ts +0 -76
  277. package/lib/js/entity/InstanceData.js +0 -347
  278. package/lib/js/entity/Label.d.ts +0 -230
  279. package/lib/js/entity/Label.js +0 -322
  280. package/lib/js/entity/LabelHandler.d.ts +0 -65
  281. package/lib/js/entity/LabelHandler.js +0 -696
  282. package/lib/js/entity/LabelWorker.d.ts +0 -15
  283. package/lib/js/entity/LabelWorker.js +0 -163
  284. package/lib/js/entity/PointCloud.d.ts +0 -179
  285. package/lib/js/entity/PointCloud.js +0 -327
  286. package/lib/js/entity/PointCloudHandler.d.ts +0 -42
  287. package/lib/js/entity/PointCloudHandler.js +0 -82
  288. package/lib/js/entity/Polyline.d.ts +0 -360
  289. package/lib/js/entity/Polyline.js +0 -1635
  290. package/lib/js/entity/PolylineHandler.d.ts +0 -29
  291. package/lib/js/entity/PolylineHandler.js +0 -103
  292. package/lib/js/entity/Ray.d.ts +0 -135
  293. package/lib/js/entity/Ray.js +0 -171
  294. package/lib/js/entity/RayHandler.d.ts +0 -70
  295. package/lib/js/entity/RayHandler.js +0 -496
  296. package/lib/js/entity/Strip.d.ts +0 -141
  297. package/lib/js/entity/Strip.js +0 -417
  298. package/lib/js/entity/StripHandler.d.ts +0 -42
  299. package/lib/js/entity/StripHandler.js +0 -110
  300. package/lib/js/entity/index.d.ts +0 -10
  301. package/lib/js/entity/index.js +0 -10
  302. package/lib/js/index.d.ts +0 -34
  303. package/lib/js/index.js +0 -34
  304. package/lib/js/input/KeyboardHandler.d.ts +0 -33
  305. package/lib/js/input/KeyboardHandler.js +0 -159
  306. package/lib/js/input/MouseHandler.d.ts +0 -17
  307. package/lib/js/input/MouseHandler.js +0 -92
  308. package/lib/js/input/TouchHandler.d.ts +0 -11
  309. package/lib/js/input/TouchHandler.js +0 -42
  310. package/lib/js/input/input.d.ts +0 -3
  311. package/lib/js/input/input.js +0 -47
  312. package/lib/js/layer/BaseGeoImage.d.ts +0 -146
  313. package/lib/js/layer/BaseGeoImage.js +0 -382
  314. package/lib/js/layer/Bing.d.ts +0 -5
  315. package/lib/js/layer/Bing.js +0 -41
  316. package/lib/js/layer/CanvasTiles.d.ts +0 -104
  317. package/lib/js/layer/CanvasTiles.js +0 -292
  318. package/lib/js/layer/GeoImage.d.ts +0 -62
  319. package/lib/js/layer/GeoImage.js +0 -133
  320. package/lib/js/layer/GeoTexture2d.d.ts +0 -18
  321. package/lib/js/layer/GeoTexture2d.js +0 -37
  322. package/lib/js/layer/GeoVideo.d.ts +0 -69
  323. package/lib/js/layer/GeoVideo.js +0 -157
  324. package/lib/js/layer/KML.d.ts +0 -74
  325. package/lib/js/layer/KML.js +0 -303
  326. package/lib/js/layer/Layer.d.ts +0 -416
  327. package/lib/js/layer/Layer.js +0 -734
  328. package/lib/js/layer/Material.d.ts +0 -34
  329. package/lib/js/layer/Material.js +0 -69
  330. package/lib/js/layer/OpenStreetMap.d.ts +0 -5
  331. package/lib/js/layer/OpenStreetMap.js +0 -19
  332. package/lib/js/layer/Vector.d.ts +0 -240
  333. package/lib/js/layer/Vector.js +0 -767
  334. package/lib/js/layer/WMS.d.ts +0 -76
  335. package/lib/js/layer/WMS.js +0 -112
  336. package/lib/js/layer/XYZ.d.ts +0 -149
  337. package/lib/js/layer/XYZ.js +0 -299
  338. package/lib/js/layer/index.d.ts +0 -12
  339. package/lib/js/layer/index.js +0 -12
  340. package/lib/js/light/LightSource.d.ts +0 -36
  341. package/lib/js/light/LightSource.js +0 -86
  342. package/lib/js/math/Line2.d.ts +0 -11
  343. package/lib/js/math/Line2.js +0 -21
  344. package/lib/js/math/Line3.d.ts +0 -28
  345. package/lib/js/math/Line3.js +0 -85
  346. package/lib/js/math/Mat3.d.ts +0 -77
  347. package/lib/js/math/Mat3.js +0 -139
  348. package/lib/js/math/Mat4.d.ts +0 -204
  349. package/lib/js/math/Mat4.js +0 -487
  350. package/lib/js/math/Plane.d.ts +0 -22
  351. package/lib/js/math/Plane.js +0 -118
  352. package/lib/js/math/Quat.d.ts +0 -393
  353. package/lib/js/math/Quat.js +0 -794
  354. package/lib/js/math/Ray.d.ts +0 -72
  355. package/lib/js/math/Ray.js +0 -211
  356. package/lib/js/math/Vec2.d.ts +0 -332
  357. package/lib/js/math/Vec2.js +0 -495
  358. package/lib/js/math/Vec3.d.ts +0 -488
  359. package/lib/js/math/Vec3.js +0 -828
  360. package/lib/js/math/Vec4.d.ts +0 -163
  361. package/lib/js/math/Vec4.js +0 -211
  362. package/lib/js/math/coder.d.ts +0 -53
  363. package/lib/js/math/coder.js +0 -101
  364. package/lib/js/math/index.d.ts +0 -14
  365. package/lib/js/math/index.js +0 -11
  366. package/lib/js/math.d.ts +0 -266
  367. package/lib/js/math.js +0 -379
  368. package/lib/js/mercator.d.ts +0 -92
  369. package/lib/js/mercator.js +0 -120
  370. package/lib/js/proj/EPSG3857.d.ts +0 -9
  371. package/lib/js/proj/EPSG3857.js +0 -9
  372. package/lib/js/proj/EPSG4326.d.ts +0 -9
  373. package/lib/js/proj/EPSG4326.js +0 -9
  374. package/lib/js/proj/Proj.d.ts +0 -43
  375. package/lib/js/proj/Proj.js +0 -38
  376. package/lib/js/proj/equi.d.ts +0 -9
  377. package/lib/js/proj/equi.js +0 -9
  378. package/lib/js/quadTree/EPSG4326/EPSG4326QuadTreeStrategy.d.ts +0 -6
  379. package/lib/js/quadTree/EPSG4326/EPSG4326QuadTreeStrategy.js +0 -16
  380. package/lib/js/quadTree/EntityCollectionNode.d.ts +0 -46
  381. package/lib/js/quadTree/EntityCollectionNode.js +0 -262
  382. package/lib/js/quadTree/EntityCollectionsTreeStrategy.d.ts +0 -25
  383. package/lib/js/quadTree/EntityCollectionsTreeStrategy.js +0 -49
  384. package/lib/js/quadTree/Node.d.ts +0 -80
  385. package/lib/js/quadTree/Node.js +0 -712
  386. package/lib/js/quadTree/QuadTreeStrategy.d.ts +0 -39
  387. package/lib/js/quadTree/QuadTreeStrategy.js +0 -98
  388. package/lib/js/quadTree/earth/EarthEntityCollectionNodeLonLat.d.ts +0 -19
  389. package/lib/js/quadTree/earth/EarthEntityCollectionNodeLonLat.js +0 -74
  390. package/lib/js/quadTree/earth/EarthEntityCollectionsTreeStrategy.d.ts +0 -19
  391. package/lib/js/quadTree/earth/EarthEntityCollectionsTreeStrategy.js +0 -103
  392. package/lib/js/quadTree/earth/EarthQuadTreeStrategy.d.ts +0 -27
  393. package/lib/js/quadTree/earth/EarthQuadTreeStrategy.js +0 -77
  394. package/lib/js/quadTree/equi/EquiEntityCollectionNodeLonLat.d.ts +0 -18
  395. package/lib/js/quadTree/equi/EquiEntityCollectionNodeLonLat.js +0 -70
  396. package/lib/js/quadTree/equi/EquiEntityCollectionsTreeStrategy.d.ts +0 -17
  397. package/lib/js/quadTree/equi/EquiEntityCollectionsTreeStrategy.js +0 -75
  398. package/lib/js/quadTree/equi/EquiQuadTreeStrategy.d.ts +0 -19
  399. package/lib/js/quadTree/equi/EquiQuadTreeStrategy.js +0 -62
  400. package/lib/js/quadTree/index.d.ts +0 -12
  401. package/lib/js/quadTree/index.js +0 -12
  402. package/lib/js/quadTree/quadTree.d.ts +0 -40
  403. package/lib/js/quadTree/quadTree.js +0 -66
  404. package/lib/js/quadTree/wgs84/Wgs84QuadTreeStrategy.d.ts +0 -6
  405. package/lib/js/quadTree/wgs84/Wgs84QuadTreeStrategy.js +0 -15
  406. package/lib/js/renderer/Renderer.d.ts +0 -343
  407. package/lib/js/renderer/Renderer.js +0 -969
  408. package/lib/js/renderer/RendererEvents.d.ts +0 -245
  409. package/lib/js/renderer/RendererEvents.js +0 -870
  410. package/lib/js/scene/Axes.d.ts +0 -12
  411. package/lib/js/scene/Axes.js +0 -59
  412. package/lib/js/scene/BaseNode.d.ts +0 -61
  413. package/lib/js/scene/BaseNode.js +0 -69
  414. package/lib/js/scene/Planet.d.ts +0 -641
  415. package/lib/js/scene/Planet.js +0 -1617
  416. package/lib/js/scene/RenderNode.d.ts +0 -135
  417. package/lib/js/scene/RenderNode.js +0 -313
  418. package/lib/js/scene/SkyBox.d.ts +0 -13
  419. package/lib/js/scene/SkyBox.js +0 -87
  420. package/lib/js/scene/index.d.ts +0 -5
  421. package/lib/js/scene/index.js +0 -5
  422. package/lib/js/segment/Segment.d.ts +0 -289
  423. package/lib/js/segment/Segment.js +0 -1212
  424. package/lib/js/segment/SegmentLonLat.d.ts +0 -40
  425. package/lib/js/segment/SegmentLonLat.js +0 -111
  426. package/lib/js/segment/SegmentLonLatEqui.d.ts +0 -13
  427. package/lib/js/segment/SegmentLonLatEqui.js +0 -46
  428. package/lib/js/segment/Slice.d.ts +0 -13
  429. package/lib/js/segment/Slice.js +0 -33
  430. package/lib/js/segment/segmentHelper.js +0 -180
  431. package/lib/js/shaders/atmos.d.ts +0 -20
  432. package/lib/js/shaders/atmos.js +0 -326
  433. package/lib/js/shaders/billboard.d.ts +0 -3
  434. package/lib/js/shaders/billboard.js +0 -214
  435. package/lib/js/shaders/bloom.d.ts +0 -2
  436. package/lib/js/shaders/bloom.js +0 -32
  437. package/lib/js/shaders/blur.d.ts +0 -3
  438. package/lib/js/shaders/blur.js +0 -68
  439. package/lib/js/shaders/depth.d.ts +0 -2
  440. package/lib/js/shaders/depth.js +0 -40
  441. package/lib/js/shaders/drawnode.d.ts +0 -10
  442. package/lib/js/shaders/drawnode.js +0 -1008
  443. package/lib/js/shaders/geoObject.d.ts +0 -4
  444. package/lib/js/shaders/geoObject.js +0 -294
  445. package/lib/js/shaders/label.d.ts +0 -4
  446. package/lib/js/shaders/label.js +0 -589
  447. package/lib/js/shaders/lumFilter.d.ts +0 -2
  448. package/lib/js/shaders/lumFilter.js +0 -36
  449. package/lib/js/shaders/pointCloud.d.ts +0 -2
  450. package/lib/js/shaders/pointCloud.js +0 -32
  451. package/lib/js/shaders/polyline.d.ts +0 -3
  452. package/lib/js/shaders/polyline.js +0 -364
  453. package/lib/js/shaders/ray.d.ts +0 -2
  454. package/lib/js/shaders/ray.js +0 -80
  455. package/lib/js/shaders/screenFrame.d.ts +0 -2
  456. package/lib/js/shaders/screenFrame.js +0 -26
  457. package/lib/js/shaders/skybox.d.ts +0 -2
  458. package/lib/js/shaders/skybox.js +0 -28
  459. package/lib/js/shaders/toneMapping.d.ts +0 -2
  460. package/lib/js/shaders/toneMapping.js +0 -85
  461. package/lib/js/shaders/utils.d.ts +0 -1
  462. package/lib/js/shaders/utils.js +0 -97
  463. package/lib/js/terrain/BilTerrain.d.ts +0 -19
  464. package/lib/js/terrain/BilTerrain.js +0 -153
  465. package/lib/js/terrain/EmptyTerrain.d.ts +0 -113
  466. package/lib/js/terrain/EmptyTerrain.js +0 -113
  467. package/lib/js/terrain/Geoid.d.ts +0 -33
  468. package/lib/js/terrain/Geoid.js +0 -191
  469. package/lib/js/terrain/GlobusRgbTerrain.d.ts +0 -7
  470. package/lib/js/terrain/GlobusRgbTerrain.js +0 -25
  471. package/lib/js/terrain/GlobusTerrain.d.ts +0 -140
  472. package/lib/js/terrain/GlobusTerrain.js +0 -351
  473. package/lib/js/terrain/RgbTerrain.d.ts +0 -43
  474. package/lib/js/terrain/RgbTerrain.js +0 -428
  475. package/lib/js/terrain/index.d.ts +0 -6
  476. package/lib/js/terrain/index.js +0 -6
  477. package/lib/js/ui/Button.d.ts +0 -33
  478. package/lib/js/ui/Button.js +0 -78
  479. package/lib/js/ui/ButtonGroup.d.ts +0 -16
  480. package/lib/js/ui/ButtonGroup.js +0 -41
  481. package/lib/js/ui/Checkbox.d.ts +0 -32
  482. package/lib/js/ui/Checkbox.js +0 -110
  483. package/lib/js/ui/Color.d.ts +0 -23
  484. package/lib/js/ui/Color.js +0 -59
  485. package/lib/js/ui/Dialog.d.ts +0 -59
  486. package/lib/js/ui/Dialog.js +0 -193
  487. package/lib/js/ui/Input.d.ts +0 -33
  488. package/lib/js/ui/Input.js +0 -107
  489. package/lib/js/ui/Slider.d.ts +0 -39
  490. package/lib/js/ui/Slider.js +0 -129
  491. package/lib/js/ui/ToggleButton.d.ts +0 -21
  492. package/lib/js/ui/ToggleButton.js +0 -42
  493. package/lib/js/ui/View.d.ts +0 -39
  494. package/lib/js/ui/View.js +0 -157
  495. package/lib/js/ui/icons.d.ts +0 -1
  496. package/lib/js/ui/icons.js +0 -3
  497. package/lib/js/utils/BaseWorker.d.ts +0 -14
  498. package/lib/js/utils/BaseWorker.js +0 -47
  499. package/lib/js/utils/FontAtlas.d.ts +0 -82
  500. package/lib/js/utils/FontAtlas.js +0 -220
  501. package/lib/js/utils/GeoImageCreator.d.ts +0 -34
  502. package/lib/js/utils/GeoImageCreator.js +0 -163
  503. package/lib/js/utils/ImagesCacheManager.d.ts +0 -22
  504. package/lib/js/utils/ImagesCacheManager.js +0 -63
  505. package/lib/js/utils/Loader.d.ts +0 -63
  506. package/lib/js/utils/Loader.js +0 -156
  507. package/lib/js/utils/NormalMapCreator.d.ts +0 -53
  508. package/lib/js/utils/NormalMapCreator.js +0 -310
  509. package/lib/js/utils/PlainSegmentWorker.d.ts +0 -24
  510. package/lib/js/utils/PlainSegmentWorker.js +0 -385
  511. package/lib/js/utils/TerrainWorker.d.ts +0 -28
  512. package/lib/js/utils/TerrainWorker.js +0 -551
  513. package/lib/js/utils/TextureAtlas.d.ts +0 -115
  514. package/lib/js/utils/TextureAtlas.js +0 -231
  515. package/lib/js/utils/VectorTileCreator.d.ts +0 -18
  516. package/lib/js/utils/VectorTileCreator.js +0 -320
  517. package/lib/js/utils/colorTable.d.ts +0 -3
  518. package/lib/js/utils/colorTable.js +0 -143
  519. package/lib/js/utils/earcut.d.ts +0 -7
  520. package/lib/js/utils/earcut.js +0 -536
  521. package/lib/js/utils/objParser.d.ts +0 -56
  522. package/lib/js/utils/objParser.js +0 -293
  523. package/lib/js/utils/shared.js +0 -961
  524. package/lib/js/utils/units.d.ts +0 -16
  525. package/lib/js/utils/units.js +0 -61
  526. package/lib/js/webgl/BaseFramebuffer.d.ts +0 -52
  527. package/lib/js/webgl/BaseFramebuffer.js +0 -88
  528. package/lib/js/webgl/Framebuffer.js +0 -256
  529. package/lib/js/webgl/Handler.d.ts +0 -491
  530. package/lib/js/webgl/Handler.js +0 -1035
  531. package/lib/js/webgl/Multisample.d.ts +0 -28
  532. package/lib/js/webgl/Multisample.js +0 -77
  533. package/lib/js/webgl/Program.d.ts +0 -159
  534. package/lib/js/webgl/Program.js +0 -306
  535. package/lib/js/webgl/ProgramController.d.ts +0 -87
  536. package/lib/js/webgl/ProgramController.js +0 -110
  537. package/lib/js/webgl/index.d.ts +0 -6
  538. package/lib/js/webgl/index.js +0 -6
  539. package/lib/js/webgl/types.d.ts +0 -9
  540. package/lib/js/webgl/types.js +0 -26
  541. package/lib/js/webgl/variableHandlers.d.ts +0 -22
  542. package/lib/js/webgl/variableHandlers.js +0 -78
  543. /package/lib/{@openglobus/js/Clock.d.ts → Clock.d.ts} +0 -0
  544. /package/lib/{@openglobus/js/Deferred.d.ts → Deferred.d.ts} +0 -0
  545. /package/lib/{@openglobus/js/Events.d.ts → Events.d.ts} +0 -0
  546. /package/lib/{@openglobus/js/Extent.d.ts → Extent.d.ts} +0 -0
  547. /package/lib/{@openglobus/js/ImageCanvas.d.ts → ImageCanvas.d.ts} +0 -0
  548. /package/lib/{@openglobus/js/Lock.d.ts → Lock.d.ts} +0 -0
  549. /package/lib/{@openglobus/js/LonLat.d.ts → LonLat.d.ts} +0 -0
  550. /package/lib/{@openglobus/js/Popup.d.ts → Popup.d.ts} +0 -0
  551. /package/lib/{@openglobus/js/QueueArray.d.ts → QueueArray.d.ts} +0 -0
  552. /package/lib/{@openglobus/js/Rectangle.d.ts → Rectangle.d.ts} +0 -0
  553. /package/lib/{@openglobus/js/Stack.d.ts → Stack.d.ts} +0 -0
  554. /package/lib/{@openglobus/js/astro → astro}/astro.d.ts +0 -0
  555. /package/lib/{@openglobus/js/astro → astro}/earth.d.ts +0 -0
  556. /package/lib/{@openglobus/js/astro → astro}/jd.d.ts +0 -0
  557. /package/lib/{@openglobus/js/astro → astro}/orbit.d.ts +0 -0
  558. /package/lib/{@openglobus/js/astro → astro}/rotation.d.ts +0 -0
  559. /package/lib/{@openglobus/js/bv → bv}/Box.d.ts +0 -0
  560. /package/lib/{@openglobus/js/bv → bv}/Sphere.d.ts +0 -0
  561. /package/lib/{@openglobus/js/bv → bv}/index.d.ts +0 -0
  562. /package/lib/{@openglobus/js/camera → camera}/PlanetCamera.d.ts +0 -0
  563. /package/lib/{@openglobus/js/camera → camera}/index.d.ts +0 -0
  564. /package/lib/{@openglobus/js/cons.d.ts → cons.d.ts} +0 -0
  565. /package/lib/{@openglobus/js/control → control}/CameraLock.d.ts +0 -0
  566. /package/lib/{@openglobus/js/control → control}/CompassButton.d.ts +0 -0
  567. /package/lib/{@openglobus/js/control → control}/Control.d.ts +0 -0
  568. /package/lib/{@openglobus/js/control → control}/DebugInfo.d.ts +0 -0
  569. /package/lib/{@openglobus/js/control → control}/DrawingSwitcher.d.ts +0 -0
  570. /package/lib/{@openglobus/js/control → control}/EarthCoordinates.d.ts +0 -0
  571. /package/lib/{@openglobus/js/control → control}/GeoImageDragControl.d.ts +0 -0
  572. /package/lib/{@openglobus/js/control → control}/LayerAnimation.d.ts +0 -0
  573. /package/lib/{@openglobus/js/control → control}/LayerSwitcher.d.ts +0 -0
  574. /package/lib/{@openglobus/js/control → control}/Lighting.d.ts +0 -0
  575. /package/lib/{@openglobus/js/control → control}/MouseNavigation.d.ts +0 -0
  576. /package/lib/{@openglobus/js/control → control}/OldMouseNavigation.d.ts +0 -0
  577. /package/lib/{@openglobus/js/control → control}/RulerSwitcher.d.ts +0 -0
  578. /package/lib/{@openglobus/js/control → control}/ScaleControl.d.ts +0 -0
  579. /package/lib/{@openglobus/js/control → control}/SegmentBoundVisualization.d.ts +0 -0
  580. /package/lib/{@openglobus/js/control → control}/ShowFps.d.ts +0 -0
  581. /package/lib/{@openglobus/js/control → control}/SimpleNavigation.d.ts +0 -0
  582. /package/lib/{@openglobus/js/control → control}/SimpleSkyBackground.d.ts +0 -0
  583. /package/lib/{@openglobus/js/control → control}/Sun.d.ts +0 -0
  584. /package/lib/{@openglobus/js/control → control}/ToggleWireframe.d.ts +0 -0
  585. /package/lib/{@openglobus/js/control → control}/TouchNavigation.d.ts +0 -0
  586. /package/lib/{@openglobus/js/control → control}/ZoomControl.d.ts +0 -0
  587. /package/lib/{@openglobus/js/control → control}/drawing/DrawingControl.d.ts +0 -0
  588. /package/lib/{@openglobus/js/control → control}/drawing/LineStringDrawingScene.d.ts +0 -0
  589. /package/lib/{@openglobus/js/control → control}/drawing/PolygonDrawingScene.d.ts +0 -0
  590. /package/lib/{@openglobus/js/control → control}/elevationProfile/ElevationProfile.d.ts +0 -0
  591. /package/lib/{@openglobus/js/control → control}/elevationProfile/ElevationProfileButtonsView.d.ts +0 -0
  592. /package/lib/{@openglobus/js/control → control}/elevationProfile/ElevationProfileControl.d.ts +0 -0
  593. /package/lib/{@openglobus/js/control → control}/elevationProfile/ElevationProfileLegend.d.ts +0 -0
  594. /package/lib/{@openglobus/js/control → control}/elevationProfile/ElevationProfileScene.d.ts +0 -0
  595. /package/lib/{@openglobus/js/control → control}/elevationProfile/ElevationProfileView.d.ts +0 -0
  596. /package/lib/{@openglobus/js/control → control}/elevationProfile/PointListDialog.d.ts +0 -0
  597. /package/lib/{@openglobus/js/control → control}/geoObjectEditor/ArrowEntity.d.ts +0 -0
  598. /package/lib/{@openglobus/js/control → control}/geoObjectEditor/AxisTrackEntity.d.ts +0 -0
  599. /package/lib/{@openglobus/js/control → control}/geoObjectEditor/GeoObjectEditor.d.ts +0 -0
  600. /package/lib/{@openglobus/js/control → control}/geoObjectEditor/GeoObjectEditorDialog.d.ts +0 -0
  601. /package/lib/{@openglobus/js/control → control}/geoObjectEditor/GeoObjectEditorScene.d.ts +0 -0
  602. /package/lib/{@openglobus/js/control → control}/geoObjectEditor/MoveAxisEntity.d.ts +0 -0
  603. /package/lib/{@openglobus/js/control → control}/geoObjectEditor/MovePlaneEntity.d.ts +0 -0
  604. /package/lib/{@openglobus/js/control → control}/geoObjectEditor/RotateEntity.d.ts +0 -0
  605. /package/lib/{@openglobus/js/control → control}/geoObjectEditor/colors.d.ts +0 -0
  606. /package/lib/{@openglobus/js/control → control}/heightRuler/HeightRuler.d.ts +0 -0
  607. /package/lib/{@openglobus/js/control → control}/heightRuler/HeightRulerScene.d.ts +0 -0
  608. /package/lib/{@openglobus/js/control → control}/heightRuler/HeightRulerSwitcher.d.ts +0 -0
  609. /package/lib/{@openglobus/js/control → control}/ruler/Ruler.d.ts +0 -0
  610. /package/lib/{@openglobus/js/control → control}/ruler/RulerScene.d.ts +0 -0
  611. /package/lib/{@openglobus/js/control → control}/selection/Selection.d.ts +0 -0
  612. /package/lib/{@openglobus/js/control → control}/selection/SelectionScene.d.ts +0 -0
  613. /package/lib/{@openglobus/js/control → control}/timeline/TimelineControl.d.ts +0 -0
  614. /package/lib/{@openglobus/js/control → control}/timeline/TimelineModel.d.ts +0 -0
  615. /package/lib/{@openglobus/js/control → control}/timeline/TimelineView.d.ts +0 -0
  616. /package/lib/{@openglobus/js/control → control}/timeline/timelineUtils.d.ts +0 -0
  617. /package/lib/{js/control → control}/visibleExtent/VisibleExtent.d.ts +0 -0
  618. /package/lib/{@openglobus/js/control → control}/visibleExtent/drawnode.d.ts +0 -0
  619. /package/lib/{@openglobus/js/ellipsoid → ellipsoid}/Ellipsoid.d.ts +0 -0
  620. /package/lib/{@openglobus/js/ellipsoid → ellipsoid}/index.d.ts +0 -0
  621. /package/lib/{@openglobus/js/ellipsoid → ellipsoid}/mars.d.ts +0 -0
  622. /package/lib/{@openglobus/js/ellipsoid → ellipsoid}/moon.d.ts +0 -0
  623. /package/lib/{@openglobus/js/ellipsoid → ellipsoid}/wgs84.d.ts +0 -0
  624. /package/lib/{@openglobus/js/entity → entity}/BaseBillboard.d.ts +0 -0
  625. /package/lib/{@openglobus/js/entity → entity}/BaseBillboardHandler.d.ts +0 -0
  626. /package/lib/{@openglobus/js/entity → entity}/Billboard.d.ts +0 -0
  627. /package/lib/{@openglobus/js/entity → entity}/BillboardHandler.d.ts +0 -0
  628. /package/lib/{@openglobus/js/entity → entity}/Entity.d.ts +0 -0
  629. /package/lib/{@openglobus/js/entity → entity}/EntityCollection.d.ts +0 -0
  630. /package/lib/{@openglobus/js/entity → entity}/GeoObject.d.ts +0 -0
  631. /package/lib/{@openglobus/js/entity → entity}/GeoObjectHandler.d.ts +0 -0
  632. /package/lib/{@openglobus/js/entity → entity}/Geometry.d.ts +0 -0
  633. /package/lib/{@openglobus/js/entity → entity}/GeometryHandler.d.ts +0 -0
  634. /package/lib/{@openglobus/js/entity → entity}/InstanceData.d.ts +0 -0
  635. /package/lib/{@openglobus/js/entity → entity}/Label.d.ts +0 -0
  636. /package/lib/{@openglobus/js/entity → entity}/LabelHandler.d.ts +0 -0
  637. /package/lib/{@openglobus/js/entity → entity}/LabelWorker.d.ts +0 -0
  638. /package/lib/{@openglobus/js/entity → entity}/PointCloud.d.ts +0 -0
  639. /package/lib/{@openglobus/js/entity → entity}/PointCloudHandler.d.ts +0 -0
  640. /package/lib/{@openglobus/js/entity → entity}/Polyline.d.ts +0 -0
  641. /package/lib/{@openglobus/js/entity → entity}/PolylineHandler.d.ts +0 -0
  642. /package/lib/{@openglobus/js/entity → entity}/Ray.d.ts +0 -0
  643. /package/lib/{@openglobus/js/entity → entity}/RayHandler.d.ts +0 -0
  644. /package/lib/{@openglobus/js/entity → entity}/Strip.d.ts +0 -0
  645. /package/lib/{@openglobus/js/entity → entity}/StripHandler.d.ts +0 -0
  646. /package/lib/{@openglobus/js/entity → entity}/index.d.ts +0 -0
  647. /package/lib/{@openglobus/js/input → input}/KeyboardHandler.d.ts +0 -0
  648. /package/lib/{@openglobus/js/input → input}/MouseHandler.d.ts +0 -0
  649. /package/lib/{@openglobus/js/input → input}/TouchHandler.d.ts +0 -0
  650. /package/lib/{@openglobus/js/input → input}/input.d.ts +0 -0
  651. /package/lib/{@openglobus/js/layer → layer}/BaseGeoImage.d.ts +0 -0
  652. /package/lib/{@openglobus/js/layer → layer}/Bing.d.ts +0 -0
  653. /package/lib/{@openglobus/js/layer → layer}/CanvasTiles.d.ts +0 -0
  654. /package/lib/{@openglobus/js/layer → layer}/GeoImage.d.ts +0 -0
  655. /package/lib/{@openglobus/js/layer → layer}/GeoTexture2d.d.ts +0 -0
  656. /package/lib/{@openglobus/js/layer → layer}/GeoVideo.d.ts +0 -0
  657. /package/lib/{@openglobus/js/layer → layer}/KML.d.ts +0 -0
  658. /package/lib/{@openglobus/js/layer → layer}/Layer.d.ts +0 -0
  659. /package/lib/{@openglobus/js/layer → layer}/Material.d.ts +0 -0
  660. /package/lib/{@openglobus/js/layer → layer}/OpenStreetMap.d.ts +0 -0
  661. /package/lib/{@openglobus/js/layer → layer}/Vector.d.ts +0 -0
  662. /package/lib/{@openglobus/js/layer → layer}/WMS.d.ts +0 -0
  663. /package/lib/{@openglobus/js/layer → layer}/XYZ.d.ts +0 -0
  664. /package/lib/{@openglobus/js/layer → layer}/index.d.ts +0 -0
  665. /package/lib/{@openglobus/js/light → light}/LightSource.d.ts +0 -0
  666. /package/lib/{@openglobus/js/math → math}/Line2.d.ts +0 -0
  667. /package/lib/{@openglobus/js/math → math}/Line3.d.ts +0 -0
  668. /package/lib/{@openglobus/js/math → math}/Mat3.d.ts +0 -0
  669. /package/lib/{@openglobus/js/math → math}/Mat4.d.ts +0 -0
  670. /package/lib/{@openglobus/js/math → math}/Plane.d.ts +0 -0
  671. /package/lib/{@openglobus/js/math → math}/Quat.d.ts +0 -0
  672. /package/lib/{@openglobus/js/math → math}/Ray.d.ts +0 -0
  673. /package/lib/{@openglobus/js/math → math}/Vec2.d.ts +0 -0
  674. /package/lib/{@openglobus/js/math → math}/Vec3.d.ts +0 -0
  675. /package/lib/{@openglobus/js/math → math}/Vec4.d.ts +0 -0
  676. /package/lib/{@openglobus/js/math → math}/coder.d.ts +0 -0
  677. /package/lib/{@openglobus/js/math → math}/index.d.ts +0 -0
  678. /package/lib/{@openglobus/js/math.d.ts → math.d.ts} +0 -0
  679. /package/lib/{@openglobus/js/mercator.d.ts → mercator.d.ts} +0 -0
  680. /package/lib/{@openglobus/js/proj → proj}/EPSG3857.d.ts +0 -0
  681. /package/lib/{@openglobus/js/proj → proj}/EPSG4326.d.ts +0 -0
  682. /package/lib/{@openglobus/js/proj → proj}/Proj.d.ts +0 -0
  683. /package/lib/{@openglobus/js/proj → proj}/equi.d.ts +0 -0
  684. /package/lib/{@openglobus/js/quadTree → quadTree}/EPSG4326/EPSG4326QuadTreeStrategy.d.ts +0 -0
  685. /package/lib/{@openglobus/js/quadTree → quadTree}/EntityCollectionNode.d.ts +0 -0
  686. /package/lib/{@openglobus/js/quadTree → quadTree}/EntityCollectionsTreeStrategy.d.ts +0 -0
  687. /package/lib/{@openglobus/js/quadTree → quadTree}/Node.d.ts +0 -0
  688. /package/lib/{@openglobus/js/quadTree → quadTree}/QuadTreeStrategy.d.ts +0 -0
  689. /package/lib/{@openglobus/js/quadTree → quadTree}/earth/EarthEntityCollectionNodeLonLat.d.ts +0 -0
  690. /package/lib/{@openglobus/js/quadTree → quadTree}/earth/EarthEntityCollectionsTreeStrategy.d.ts +0 -0
  691. /package/lib/{@openglobus/js/quadTree → quadTree}/earth/EarthQuadTreeStrategy.d.ts +0 -0
  692. /package/lib/{@openglobus/js/quadTree → quadTree}/equi/EquiEntityCollectionNodeLonLat.d.ts +0 -0
  693. /package/lib/{@openglobus/js/quadTree → quadTree}/equi/EquiEntityCollectionsTreeStrategy.d.ts +0 -0
  694. /package/lib/{@openglobus/js/quadTree → quadTree}/equi/EquiQuadTreeStrategy.d.ts +0 -0
  695. /package/lib/{@openglobus/js/quadTree → quadTree}/index.d.ts +0 -0
  696. /package/lib/{@openglobus/js/quadTree → quadTree}/quadTree.d.ts +0 -0
  697. /package/lib/{@openglobus/js/quadTree → quadTree}/wgs84/Wgs84QuadTreeStrategy.d.ts +0 -0
  698. /package/lib/{@openglobus/js/renderer → renderer}/RendererEvents.d.ts +0 -0
  699. /package/lib/{@openglobus/res → res}/fonts/Roboto-Regular.json +0 -0
  700. /package/lib/{@openglobus/res → res}/fonts/Roboto-Regular.ttf.cfg +0 -0
  701. /package/lib/{@openglobus/res → res}/fonts/Roboto-Regular.ttf.png +0 -0
  702. /package/lib/{@openglobus/res → res}/fonts/arial.json +0 -0
  703. /package/lib/{@openglobus/res → res}/fonts/arial.ttf.cfg +0 -0
  704. /package/lib/{@openglobus/res → res}/fonts/arial.ttf.png +0 -0
  705. /package/lib/{@openglobus/res → res}/night-4326.png +0 -0
  706. /package/lib/{@openglobus/res → res}/night.png +0 -0
  707. /package/lib/{@openglobus/res → res}/spec.png +0 -0
  708. /package/lib/{@openglobus/js/scene → scene}/Axes.d.ts +0 -0
  709. /package/lib/{@openglobus/js/scene → scene}/BaseNode.d.ts +0 -0
  710. /package/lib/{@openglobus/js/scene → scene}/RenderNode.d.ts +0 -0
  711. /package/lib/{@openglobus/js/scene → scene}/SkyBox.d.ts +0 -0
  712. /package/lib/{@openglobus/js/scene → scene}/index.d.ts +0 -0
  713. /package/lib/{@openglobus/js/segment → segment}/SegmentLonLat.d.ts +0 -0
  714. /package/lib/{@openglobus/js/segment → segment}/SegmentLonLatEqui.d.ts +0 -0
  715. /package/lib/{@openglobus/js/segment → segment}/Slice.d.ts +0 -0
  716. /package/lib/{@openglobus/js/shaders → shaders}/depth.d.ts +0 -0
  717. /package/lib/{@openglobus/js/shaders → shaders}/pointCloud.d.ts +0 -0
  718. /package/lib/{@openglobus/js/shaders → shaders}/screenFrame.d.ts +0 -0
  719. /package/lib/{@openglobus/js/shaders → shaders}/skybox.d.ts +0 -0
  720. /package/lib/{@openglobus/js/terrain → terrain}/BilTerrain.d.ts +0 -0
  721. /package/lib/{@openglobus/js/terrain → terrain}/EmptyTerrain.d.ts +0 -0
  722. /package/lib/{@openglobus/js/terrain → terrain}/Geoid.d.ts +0 -0
  723. /package/lib/{@openglobus/js/terrain → terrain}/GlobusRgbTerrain.d.ts +0 -0
  724. /package/lib/{@openglobus/js/terrain → terrain}/GlobusTerrain.d.ts +0 -0
  725. /package/lib/{@openglobus/js/terrain → terrain}/RgbTerrain.d.ts +0 -0
  726. /package/lib/{@openglobus/js/terrain → terrain}/index.d.ts +0 -0
  727. /package/lib/{@openglobus/js/ui → ui}/Button.d.ts +0 -0
  728. /package/lib/{@openglobus/js/ui → ui}/ButtonGroup.d.ts +0 -0
  729. /package/lib/{@openglobus/js/ui → ui}/Checkbox.d.ts +0 -0
  730. /package/lib/{@openglobus/js/ui → ui}/Color.d.ts +0 -0
  731. /package/lib/{@openglobus/js/ui → ui}/Input.d.ts +0 -0
  732. /package/lib/{@openglobus/js/ui → ui}/Slider.d.ts +0 -0
  733. /package/lib/{@openglobus/js/ui → ui}/ToggleButton.d.ts +0 -0
  734. /package/lib/{@openglobus/js/ui → ui}/icons.d.ts +0 -0
  735. /package/lib/{@openglobus/js/utils → utils}/FontAtlas.d.ts +0 -0
  736. /package/lib/{@openglobus/js/utils → utils}/GeoImageCreator.d.ts +0 -0
  737. /package/lib/{@openglobus/js/utils → utils}/ImagesCacheManager.d.ts +0 -0
  738. /package/lib/{@openglobus/js/utils → utils}/Loader.d.ts +0 -0
  739. /package/lib/{@openglobus/js/utils → utils}/NormalMapCreator.d.ts +0 -0
  740. /package/lib/{@openglobus/js/utils → utils}/PlainSegmentWorker.d.ts +0 -0
  741. /package/lib/{@openglobus/js/utils → utils}/TerrainWorker.d.ts +0 -0
  742. /package/lib/{@openglobus/js/utils → utils}/TextureAtlas.d.ts +0 -0
  743. /package/lib/{@openglobus/js/utils → utils}/VectorTileCreator.d.ts +0 -0
  744. /package/lib/{@openglobus/js/utils → utils}/colorTable.d.ts +0 -0
  745. /package/lib/{@openglobus/js/utils → utils}/earcut.d.ts +0 -0
  746. /package/lib/{@openglobus/js/utils → utils}/units.d.ts +0 -0
  747. /package/lib/{@openglobus/js/webgl → webgl}/BaseFramebuffer.d.ts +0 -0
  748. /package/lib/{@openglobus/js/webgl → webgl}/Multisample.d.ts +0 -0
  749. /package/lib/{@openglobus/js/webgl → webgl}/Program.d.ts +0 -0
  750. /package/lib/{@openglobus/js/webgl → webgl}/ProgramController.d.ts +0 -0
  751. /package/lib/{@openglobus/js/webgl → webgl}/index.d.ts +0 -0
  752. /package/lib/{@openglobus/js/webgl → webgl}/types.d.ts +0 -0
  753. /package/lib/{@openglobus/js/webgl → webgl}/variableHandlers.d.ts +0 -0
@@ -1,1617 +0,0 @@
1
- import * as math from "../math";
2
- import * as segmentHelper from "../segment/segmentHelper";
3
- import * as shaders from "../shaders/drawnode";
4
- import * as utils from "../utils/shared";
5
- import { Atmosphere } from "../control/Atmosphere";
6
- import { createColorRGB } from "../utils/shared";
7
- import { createEvents } from "../Events";
8
- import { EarthQuadTreeStrategy } from "../quadTree/earth/EarthQuadTreeStrategy";
9
- import { Extent } from "../Extent";
10
- import { Geoid } from "../terrain/Geoid";
11
- import { GeoImageCreator } from "../utils/GeoImageCreator";
12
- import { Key, Lock } from "../Lock";
13
- import { Loader } from "../utils/Loader";
14
- import { LonLat } from "../LonLat";
15
- import { NormalMapCreator } from "../utils/NormalMapCreator";
16
- import { PlainSegmentWorker } from "../utils/PlainSegmentWorker";
17
- import { PlanetCamera } from "../camera/PlanetCamera";
18
- import { RenderNode } from "./RenderNode";
19
- import { SimpleSkyBackground } from "../control/SimpleSkyBackground";
20
- import { TerrainWorker } from "../utils/TerrainWorker";
21
- import { Vec2, Vec3 } from "../math/index";
22
- import { Vector } from "../layer/Vector";
23
- import { VectorTileCreator } from "../utils/VectorTileCreator";
24
- import { wgs84 } from "../ellipsoid/wgs84";
25
- const CUR_LOD_SIZE = 250; //px
26
- const MIN_LOD_SIZE = 312; //px
27
- const MAX_LOD_SIZE = 190; //px
28
- /**
29
- * Maximum created nodes count. The more nodes count the more memory usage.
30
- * @const
31
- * @type {number}
32
- * @default
33
- */
34
- const MAX_NODES = 200;
35
- const HORIZON_TANGENT = 0.81;
36
- /**
37
- * Main class for rendering planet
38
- * @class
39
- * @extends {RenderNode}
40
- * @param {string} [options.name="Earth"] - Planet name(Earth by default)
41
- * @param {Ellipsoid} [options.ellipsoid] - Planet ellipsoid(WGS84 by default)
42
- * @param {Number} [options.maxGridSize=128] - Segment maximal grid size
43
- * @param {Number} [options.maxEqualZoomAltitude=15000000.0] - Maximal altitude since segments on the screen become the same zoom level
44
- * @param {Number} [options.minEqualZoomAltitude=10000.0] - Minimal altitude since segments on the screen become the same zoom level
45
- * @param {Number} [options.minEqualZoomCameraSlope=0.8] - Minimal camera slope above te globe where segments on the screen become the same zoom level
46
- *
47
- * @fires EventsHandler<PlanetEventList>#draw
48
- * @fires EventsHandler<PlanetEventList>#layeradd
49
- * @fires EventsHandler<PlanetEventList>#baselayerchange
50
- * @fires EventsHandler<PlanetEventList>#layerremove
51
- * @fires EventsHandler<PlanetEventList>#layervisibilitychange
52
- * @fires EventsHandler<PlanetEventList>#geoimageadd
53
- */
54
- export class Planet extends RenderNode {
55
- constructor(options = {}) {
56
- super(options.name);
57
- this._renderingFadingNodes = (nodes, sh, currentNode, sl, sliceIndex, outTransparentSegments, outOpaqueSegments) => {
58
- let isFirstPass = sliceIndex === 0;
59
- let isEq = this.terrain.equalizeVertices;
60
- for (let j = 0, len = currentNode._fadingNodes.length; j < len; j++) {
61
- let f = currentNode._fadingNodes[j].segment;
62
- if (this._fadingNodes.has(currentNode._fadingNodes[0].__id) && !nodes.has(f.node.__id)) {
63
- nodes.set(f.node.__id, true);
64
- if (f._transitionOpacity < 1.0) {
65
- outTransparentSegments.push(f);
66
- }
67
- else {
68
- if (isFirstPass) {
69
- isEq && f.equalize();
70
- f.readyToEngage && f.engage();
71
- f.screenRendering(sh, sl, sliceIndex);
72
- outOpaqueSegments.push(f);
73
- }
74
- else {
75
- f.screenRendering(sh, sl, sliceIndex, this.transparentTexture, true);
76
- }
77
- }
78
- }
79
- }
80
- };
81
- this._renderingFadingNodesNoDepth = (nodes, sh, currentNode, sl, sliceIndex, outOpaqueSegments) => {
82
- let isFirstPass = sliceIndex === 0;
83
- let isEq = this.terrain.equalizeVertices;
84
- let gl = sh.gl;
85
- gl.disable(gl.DEPTH_TEST);
86
- for (let j = 0, len = currentNode._fadingNodes.length; j < len; j++) {
87
- let f = currentNode._fadingNodes[j].segment;
88
- if (this._fadingNodes.has(currentNode._fadingNodes[0].__id) && !nodes.has(f.node.__id)) {
89
- nodes.set(f.node.__id, true);
90
- if (isFirstPass) {
91
- isEq && f.equalize();
92
- f.readyToEngage && f.engage();
93
- f.screenRendering(sh, sl, sliceIndex);
94
- outOpaqueSegments.push(f);
95
- }
96
- else {
97
- f.screenRendering(sh, sl, sliceIndex, this.transparentTexture, true);
98
- }
99
- }
100
- }
101
- gl.enable(gl.DEPTH_TEST);
102
- };
103
- this._atmosphere = new Atmosphere(options.atmosphereParameters);
104
- this._prevNodes = new Map();
105
- this._currNodes = new Map();
106
- this.transitionTime = 580;
107
- this.ellipsoid = options.ellipsoid || wgs84;
108
- this.lightEnabled = true;
109
- this._planetRadius2 = (this.ellipsoid.getPolarSize() - 10000.0) * (this.ellipsoid.getPolarSize() - 10000.0);
110
- this._layers = [];
111
- this._updateLayer = false;
112
- this.visibleTileLayers = [];
113
- this.visibleVectorLayers = [];
114
- this._visibleVectorLayersByDepthOrder = [];
115
- this._visibleTileLayerSlices = [];
116
- this._visibleEntityCollections = [[]];
117
- this.baseLayer = null;
118
- this.terrain = null;
119
- this.camera = new PlanetCamera(this, {
120
- frustums: options.frustums,
121
- eye: new Vec3(25000000, 0, 0),
122
- look: Vec3.ZERO,
123
- up: Vec3.NORTH,
124
- minAltitude: options.minAltitude,
125
- maxAltitude: options.maxAltitude
126
- });
127
- this.maxEqualZoomAltitude = options.maxEqualZoomAltitude || 15000000.0;
128
- this.minEqualZoomAltitude = options.minEqualZoomAltitude || 10000.0;
129
- this.minEqualZoomCameraSlope = options.minEqualZoomCameraSlope || 0.8;
130
- this.mousePositionOnEarth = new Vec3();
131
- this.emptyTexture = null;
132
- this.transparentTexture = null;
133
- this.defaultTexture = null;
134
- this.minCurrZoom = math.MAX;
135
- this.maxCurrZoom = math.MIN;
136
- this._viewExtent = new Extent(new LonLat(180, 180), new LonLat(-180, -180));
137
- this._skipPreRender = false;
138
- this._initialViewExtent = null;
139
- this._createdNodesCount = 0;
140
- this._renderedNodes = [];
141
- this._renderedNodesInFrustum = [];
142
- this._fadingNodes = new Map;
143
- this._fadingNodesInFrustum = [];
144
- this._fadingOpaqueSegments = [];
145
- this.layerLock = new Lock();
146
- this.terrainLock = new Lock();
147
- this._heightFactor = 1.0;
148
- this._indexesCache = [];
149
- this._indexesCacheToRemove = [];
150
- this._indexesCacheToRemoveCounter = 0;
151
- this._textureCoordsBufferCache = [];
152
- this.quadTreeStrategy = options.quadTreeStrategyPrototype ? new options.quadTreeStrategyPrototype(this) : new EarthQuadTreeStrategy(this);
153
- this._nightTexture = null;
154
- this._specularTexture = null;
155
- let a = utils.createColorRGB(options.ambient, new Vec3(0.2, 0.2, 0.3));
156
- let d = utils.createColorRGB(options.diffuse, new Vec3(1.0, 1.0, 1.0));
157
- let s = utils.createColorRGB(options.specular, new Vec3(0.00063, 0.00055, 0.00032));
158
- let shininess = options.shininess || 18.0;
159
- this._ambient = new Float32Array([a.x, a.y, a.z]);
160
- this._diffuse = new Float32Array([d.x, d.y, d.z]);
161
- this._specular = new Float32Array([s.x, s.y, s.z, shininess]);
162
- this._maxGridSize = Math.log2(options.maxGridSize || 256);
163
- this.SLICE_SIZE = 4;
164
- this.SLICE_SIZE_4 = this.SLICE_SIZE * 4;
165
- this.SLICE_SIZE_3 = this.SLICE_SIZE * 3;
166
- this._lodSize = CUR_LOD_SIZE;
167
- this._curLodSize = CUR_LOD_SIZE;
168
- this._minLodSize = MIN_LOD_SIZE;
169
- this._maxLodSize = MAX_LOD_SIZE;
170
- this._pickingColorArr = new Float32Array(this.SLICE_SIZE_4);
171
- this._samplerArr = new Int32Array(this.SLICE_SIZE);
172
- this._pickingMaskArr = new Int32Array(this.SLICE_SIZE);
173
- this._geoImageCreator = new GeoImageCreator(this);
174
- this._vectorTileCreator = new VectorTileCreator(this);
175
- this._normalMapCreator = new NormalMapCreator(this);
176
- this._terrainWorker = new TerrainWorker(3);
177
- this._plainSegmentWorker = new PlainSegmentWorker(3);
178
- this._tileLoader = new Loader(options.maxLoadingRequests || 12);
179
- this._memKey = new Key();
180
- this.events = createEvents(PLANET_EVENTS);
181
- this._distBeforeMemClear = 0.0;
182
- this._prevCamEye = new Vec3();
183
- this._initialized = false;
184
- this.always = [];
185
- this._renderCompleted = false;
186
- this._renderCompletedActivated = false;
187
- this._terrainCompleted = false;
188
- this._terrainCompletedActivated = false;
189
- this._collectRenderNodesIsActive = true;
190
- this.nightTextureCoefficient = 2.0;
191
- this._renderScreenNodesPASS = this._renderScreenNodesPASSNoAtmos;
192
- this._renderScreenNodesWithHeightPASS = this._renderScreenNodesWithHeightPASSNoAtmos;
193
- this._atmosphereEnabled = options.atmosphereEnabled || false;
194
- this._atmosphereMaxMinOpacity = new Float32Array([0.95, 0.28]);
195
- this.solidTextureOne = null;
196
- this.solidTextureTwo = null;
197
- this._nightTextureSrc = options.nightTextureSrc || null;
198
- this._specularTextureSrc = options.specularTextureSrc || null;
199
- this._transitionOpacityEnabled = options.transitionOpacityEnabled != undefined ? options.transitionOpacityEnabled : true;
200
- }
201
- /**
202
- * Returns true if current terrain data set is loaded
203
- */
204
- get terrainReady() {
205
- return this._terrainCompleted && this._terrainCompletedActivated;
206
- }
207
- get maxGridSize() {
208
- return this._maxGridSize;
209
- }
210
- getNorthFrameRotation(cartesian) {
211
- return this.getFrameRotation(cartesian);
212
- }
213
- getFrameRotation(cartesian) {
214
- return this.ellipsoid.getNorthFrameRotation(cartesian);
215
- }
216
- set atmosphereMaxOpacity(opacity) {
217
- this._atmosphereMaxMinOpacity[0] = opacity;
218
- }
219
- get atmosphereMaxOpacity() {
220
- return this._atmosphereMaxMinOpacity[0];
221
- }
222
- set atmosphereMinOpacity(opacity) {
223
- this._atmosphereMaxMinOpacity[1] = opacity;
224
- }
225
- get atmosphereMinOpacity() {
226
- return this._atmosphereMaxMinOpacity[1];
227
- }
228
- set atmosphereEnabled(enabled) {
229
- if (enabled != this._atmosphereEnabled) {
230
- this._atmosphereEnabled = enabled;
231
- this._initializeAtmosphere();
232
- }
233
- }
234
- get atmosphereEnabled() {
235
- return this._atmosphereEnabled;
236
- }
237
- set diffuse(rgb) {
238
- let vec = createColorRGB(rgb);
239
- this._diffuse = new Float32Array(vec.toArray());
240
- }
241
- set ambient(rgb) {
242
- let vec = createColorRGB(rgb);
243
- this._ambient = new Float32Array(vec.toArray());
244
- }
245
- set specular(rgb) {
246
- let vec = createColorRGB(rgb);
247
- this._specular = new Float32Array([vec.x, vec.y, vec.y, this._specular[3]]);
248
- }
249
- set shininess(v) {
250
- this._specular[3] = v;
251
- }
252
- get normalMapCreator() {
253
- return this._normalMapCreator;
254
- }
255
- get layers() {
256
- return [...this._layers];
257
- }
258
- /**
259
- * @todo: remove after tests
260
- * Get the collection of layers associated with this planet.
261
- * @return {Array.<Layer>} Layers array.
262
- * @public
263
- */
264
- getLayers() {
265
- return this.layers;
266
- }
267
- get sun() {
268
- if (this.renderer && this.renderer.controls.sun)
269
- return this.renderer.controls.sun;
270
- }
271
- get sunPos() {
272
- return this.sun.sunlight.getPosition();
273
- }
274
- /**
275
- * Add the given control to the renderer of the planet scene.
276
- * @param {Control} control - Control.
277
- */
278
- addControl(control) {
279
- control.planet = this;
280
- control.addTo(this.renderer);
281
- }
282
- get lodSize() {
283
- return this._lodSize;
284
- }
285
- setLodSize(currentLodSize, minLodSize, maxLodSize) {
286
- this._maxLodSize = maxLodSize || this._maxLodSize;
287
- this._minLodSize = minLodSize || this._minLodSize;
288
- this._curLodSize = currentLodSize;
289
- this._renderCompletedActivated = false;
290
- this._terrainCompletedActivated = false;
291
- }
292
- /**
293
- * Add the given controls array to the renderer of the planet.
294
- * @param {Array.<Control>} cArr - Control array.
295
- */
296
- addControls(cArr) {
297
- for (let i = 0; i < cArr.length; i++) {
298
- this.addControl(cArr[i]);
299
- }
300
- }
301
- /**
302
- * Return layer by it name
303
- * @param {string} name - Name of the layer. og.Layer.prototype.name
304
- * @public
305
- * @returns {Layer} -
306
- */
307
- getLayerByName(name) {
308
- for (let i = 0, len = this._layers.length; i < len; i++) {
309
- if (name === this._layers[i].name) {
310
- return this._layers[i];
311
- }
312
- }
313
- }
314
- /**
315
- * Adds layer to the planet.
316
- * @param {Layer} layer - Layer object.
317
- * @public
318
- */
319
- addLayer(layer) {
320
- layer.addTo(this);
321
- }
322
- /**
323
- * Dispatch layer visibility changing event.
324
- * @param {Layer} layer - Changed layer.
325
- * @public
326
- */
327
- _onLayerVisibilityChanged(layer) {
328
- this.events.dispatch(this.events.layervisibilitychange, layer);
329
- }
330
- /**
331
- * Adds the given layers array to the planet.
332
- * @param {Array.<Layer>} layers - Layers array.
333
- * @public
334
- */
335
- addLayers(layers) {
336
- for (let i = 0, len = layers.length; i < len; i++) {
337
- this.addLayer(layers[i]);
338
- }
339
- }
340
- /**
341
- * Removes the given layer from the planet.
342
- * @param {Layer} layer - Layer to remove.
343
- * @public
344
- */
345
- removeLayer(layer) {
346
- layer.remove();
347
- }
348
- /**
349
- *
350
- * @public
351
- * @param {Layer} layer - Material layer.
352
- */
353
- _clearLayerMaterial(layer) {
354
- this.quadTreeStrategy.clearLayerMaterial(layer);
355
- }
356
- /**
357
- * Sets base layer coverage to the planet.
358
- * @param {Layer} layer - Layer object.
359
- * @public
360
- */
361
- setBaseLayer(layer) {
362
- if (this.baseLayer) {
363
- if (!this.baseLayer.isEqual(layer)) {
364
- this.baseLayer.setVisibility(false);
365
- this.baseLayer = layer;
366
- layer.setVisibility(true);
367
- this.events.dispatch(this.events.baselayerchange, layer);
368
- }
369
- }
370
- else {
371
- this.baseLayer = layer;
372
- this.baseLayer.setVisibility(true);
373
- this.events.dispatch(this.events.baselayerchange, layer);
374
- }
375
- }
376
- /**
377
- * Sets elevation scale. 1.0 is default.
378
- * @param {number} factor - Elevation scale.
379
- */
380
- setHeightFactor(factor) {
381
- this._renderCompletedActivated = false;
382
- this._terrainCompletedActivated = false;
383
- if (this._heightFactor !== factor) {
384
- this._heightFactor = factor;
385
- this.quadTreeStrategy.destroyBranches();
386
- this._clearRenderedNodeList();
387
- this._clearRenderNodesInFrustum();
388
- }
389
- }
390
- /**
391
- * Gets elevation scale.
392
- * @returns {number} Terrain elevation scale
393
- */
394
- getHeightFactor() {
395
- return this._heightFactor;
396
- }
397
- /**
398
- * Sets terrain provider
399
- * @public
400
- * @param {EmptyTerrain} terrain - Terrain provider.
401
- */
402
- setTerrain(terrain) {
403
- this._renderCompletedActivated = false;
404
- this._terrainCompletedActivated = false;
405
- if (this._initialized) {
406
- this.memClear();
407
- }
408
- if (this.terrain) {
409
- this.terrain.abortLoading();
410
- this.terrain.clearCache();
411
- this.terrain._planet = null;
412
- }
413
- this.terrain = terrain;
414
- this.terrain._planet = this;
415
- this.quadTreeStrategy.destroyBranches();
416
- if (terrain._geoid.model) {
417
- this._plainSegmentWorker.setGeoid(terrain.getGeoid());
418
- terrain._isReady = true;
419
- }
420
- else {
421
- Geoid.loadModel(terrain.geoid.src)
422
- .then((m) => {
423
- terrain.geoid.setModel(m);
424
- this._plainSegmentWorker.setGeoid(terrain.getGeoid());
425
- terrain._isReady = true;
426
- })
427
- .catch((err) => {
428
- console.warn(err);
429
- });
430
- }
431
- }
432
- initAtmosphereShader(atmosParams) {
433
- if (this.renderer && this.renderer.handler && this._atmosphereEnabled) {
434
- let h = this.renderer.handler;
435
- if (h.isWebGl2()) {
436
- h.removeProgram("drawnode_screen_wl");
437
- h.addProgram(shaders.drawnode_screen_wl_webgl2Atmos(atmosParams), true);
438
- }
439
- else {
440
- console.warn("Atmosphere WebGL2 only");
441
- }
442
- }
443
- }
444
- get atmosphereControl() {
445
- return this._atmosphere;
446
- }
447
- _initializeAtmosphere() {
448
- if (!this.renderer)
449
- return;
450
- let h = this.renderer.handler;
451
- h.removeProgram("drawnode_screen_wl");
452
- if (this._atmosphereEnabled) {
453
- this._renderScreenNodesPASS = this._renderScreenNodesPASSAtmos;
454
- this._renderScreenNodesWithHeightPASS = this._renderScreenNodesWithHeightPASSAtmos;
455
- if (!this.renderer.controls.Atmosphere) {
456
- this.addControl(this._atmosphere);
457
- }
458
- this._atmosphere.activate();
459
- if (h.isWebGl2()) {
460
- h.addProgram(shaders.drawnode_screen_wl_webgl2Atmos(this._atmosphere.parameters), true);
461
- }
462
- else {
463
- h.addProgram(shaders.drawnode_screen_wl_webgl1NoAtmos(), true);
464
- }
465
- if (this.renderer.controls.SimpleSkyBackground) {
466
- this.renderer.controls.SimpleSkyBackground.deactivate();
467
- }
468
- }
469
- else {
470
- this._renderScreenNodesPASS = this._renderScreenNodesPASSNoAtmos;
471
- this._renderScreenNodesWithHeightPASS = this._renderScreenNodesWithHeightPASSNoAtmos;
472
- this._atmosphere.deactivate();
473
- if (!this.renderer.controls.SimpleSkyBackground) {
474
- this.addControl(new SimpleSkyBackground());
475
- }
476
- else {
477
- this.renderer.controls.SimpleSkyBackground.activate();
478
- }
479
- if (h.isWebGl2()) {
480
- h.addProgram(shaders.drawnode_screen_wl_webgl2NoAtmos(), true);
481
- }
482
- else {
483
- h.addProgram(shaders.drawnode_screen_wl_webgl1NoAtmos(), true);
484
- }
485
- }
486
- }
487
- _initializeShaders() {
488
- let h = this.renderer.handler;
489
- h.addProgram(shaders.drawnode_screen_nl(), true);
490
- h.addProgram(shaders.drawnode_colorPicking(), true);
491
- h.addProgram(shaders.drawnode_depth(), true);
492
- h.addProgram(shaders.drawnode_heightPicking(), true);
493
- this.renderer.addPickingCallback(this, this._renderColorPickingFramebufferPASS);
494
- this.renderer.addDepthCallback(this, this._renderDepthFramebufferPASS);
495
- }
496
- _onLayerLoadend(layer) {
497
- this.events.dispatch(this.events.layerloadend, layer);
498
- }
499
- init() {
500
- this._tileLoader.events.on("layerloadend", this._onLayerLoadend, this);
501
- // Initialization indexes table
502
- segmentHelper.getInstance().setMaxGridSize(this._maxGridSize);
503
- const TABLESIZE = this._maxGridSize;
504
- let kk = 0;
505
- // Initialization indexes buffers cache. It takes about 120mb RAM!
506
- for (let i = 0; i <= TABLESIZE; i++) {
507
- !this._indexesCache[i] && (this._indexesCache[i] = new Array(TABLESIZE));
508
- for (let j = 0; j <= TABLESIZE; j++) {
509
- !this._indexesCache[i][j] && (this._indexesCache[i][j] = new Array(TABLESIZE));
510
- for (let k = 0; k <= TABLESIZE; k++) {
511
- !this._indexesCache[i][j][k] && (this._indexesCache[i][j][k] = new Array(TABLESIZE));
512
- for (let m = 0; m <= TABLESIZE; m++) {
513
- !this._indexesCache[i][j][k][m] && (this._indexesCache[i][j][k][m] = new Array(TABLESIZE));
514
- for (let q = 0; q <= TABLESIZE; q++) {
515
- let ptr = {
516
- buffer: null
517
- };
518
- if (i >= 1 && i === j && i === k && i === m && i === q) {
519
- let indexes = segmentHelper.getInstance().createSegmentIndexes(i, [j, k, m, q]);
520
- ptr.buffer = this.renderer.handler.createElementArrayBuffer(indexes, 1);
521
- }
522
- else {
523
- this._indexesCacheToRemove[kk++] = ptr;
524
- }
525
- this._indexesCache[i][j][k][m][q] = ptr;
526
- }
527
- }
528
- }
529
- }
530
- }
531
- this.renderer.events.on("resize", () => {
532
- this._renderCompletedActivated = false;
533
- this._terrainCompletedActivated = false;
534
- });
535
- this.renderer.events.on("drawtransparent", () => {
536
- this._renderScreenNodesWithHeightPASS();
537
- });
538
- // Initialize texture coordinates buffer pool
539
- this._textureCoordsBufferCache = [];
540
- let texCoordCache = segmentHelper.getInstance().initTextureCoordsTable(TABLESIZE + 1);
541
- for (let i = 0; i <= TABLESIZE; i++) {
542
- this._textureCoordsBufferCache[i] = this.renderer.handler.createArrayBuffer(texCoordCache[i], 2, ((1 << i) + 1) * ((1 << i) + 1));
543
- }
544
- // creating empty textures
545
- this.renderer.handler.createDefaultTexture(null, (t) => {
546
- this.solidTextureOne = t;
547
- this.solidTextureTwo = t;
548
- });
549
- this.transparentTexture = this.renderer.handler.transparentTexture;
550
- this._renderedNodesInFrustum = new Array(this.camera.frustums.length);
551
- for (let i = 0, len = this._renderedNodesInFrustum.length; i < len; i++) {
552
- this._renderedNodesInFrustum[i] = [];
553
- }
554
- // Creating quad trees nodes
555
- this.quadTreeStrategy.init();
556
- this.drawMode = this.renderer.handler.gl.TRIANGLE_STRIP;
557
- // Applying shaders
558
- this._initializeShaders();
559
- this._initializeAtmosphere();
560
- this._updateVisibleLayers();
561
- // loading Earth night glowing texture
562
- if (this._nightTextureSrc) {
563
- let img = new Image();
564
- img.crossOrigin = "Anonymous";
565
- img.onload = () => {
566
- this._nightTexture = this.renderer.handler.createTextureDefault(img);
567
- this._nightTexture.default = true;
568
- };
569
- img.src = this._nightTextureSrc;
570
- // createImageBitmap(NIGHT).then((e: ImageBitmap) => {
571
- // this._nightTexture = this.renderer!.handler!.createTextureDefault(e);
572
- // });
573
- }
574
- // load water specular mask
575
- if (this._specularTextureSrc) {
576
- let img = new Image();
577
- img.crossOrigin = "Anonymous";
578
- img.onload = () => {
579
- this._specularTexture = this.renderer.handler.createTextureDefault(img);
580
- this._specularTexture.default = true;
581
- };
582
- img.src = this._specularTextureSrc;
583
- // createImageBitmap(SPECULAR).then((e: ImageBitmap) => {
584
- // this._specularTexture = this.renderer!.handler!.createTexture_l(e);
585
- // });
586
- }
587
- this._geoImageCreator.init();
588
- this._vectorTileCreator.init();
589
- this._normalMapCreator.init();
590
- this.renderer.events.on("draw", this._globalPreDraw, this, -100);
591
- // Loading first nodes for better viewing if you have started on a lower altitude.
592
- this._preRender();
593
- this.renderer.events.on("postdraw", () => {
594
- this._checkRendercompleted();
595
- });
596
- this.initLayers();
597
- this._initialized = true;
598
- //
599
- // after init
600
- //
601
- if (this._initialViewExtent) {
602
- this.viewExtent(this._initialViewExtent);
603
- }
604
- this.renderer.activeCamera = this.camera;
605
- this.camera.bindRenderer(this.renderer);
606
- this.camera.update();
607
- }
608
- initLayers() {
609
- let temp = [...this._layers];
610
- for (let i = 0; i < temp.length; i++) {
611
- this.removeLayer(temp[i]);
612
- this.addLayer(temp[i]);
613
- }
614
- }
615
- _clearIndexesCache() {
616
- this._indexesCacheToRemoveCounter = 0;
617
- let c = this._indexesCacheToRemove, gl = this.renderer.handler.gl;
618
- for (let i = 0, len = c.length; i < len; i++) {
619
- let ci = c[i];
620
- gl.deleteBuffer(ci.buffer);
621
- ci.buffer = null;
622
- }
623
- }
624
- _preRender() {
625
- this.quadTreeStrategy.preRender();
626
- this._preLoad();
627
- }
628
- _preLoad() {
629
- this._clearRenderedNodeList();
630
- this._skipPreRender = false;
631
- this.quadTreeStrategy.preLoad();
632
- }
633
- /**
634
- * Creates default textures first for the North Pole and whole globe and second for the South Pole.
635
- * @public
636
- * @param{IDefaultTextureParams} param0 -
637
- * @param{IDefaultTextureParams} param1 -
638
- */
639
- createDefaultTextures(param0, param1) {
640
- this.renderer.handler.gl.deleteTexture(this.solidTextureOne);
641
- this.renderer.handler.gl.deleteTexture(this.solidTextureTwo);
642
- this.renderer.handler.createDefaultTexture(param0, (texture) => {
643
- this.solidTextureOne = texture;
644
- });
645
- this.renderer.handler.createDefaultTexture(param1, (texture) => {
646
- this.solidTextureTwo = texture;
647
- });
648
- }
649
- _getLayerAttributionHTML(layer) {
650
- return `<div class="og-attribution__layer">${layer.getAttribution()}</div>`;
651
- }
652
- /**
653
- * Updates attribution lists
654
- * @public
655
- */
656
- updateAttributionsList() {
657
- let html = "";
658
- for (let i = 0, len = this._layers.length; i < len; i++) {
659
- let li = this._layers[i];
660
- if (li.getVisibility()) {
661
- if (li.getAttribution().length) {
662
- html += this._getLayerAttributionHTML(li);
663
- }
664
- }
665
- }
666
- this._applyAttribution(html);
667
- }
668
- updateVisibleLayers() {
669
- this._updateLayer = true;
670
- }
671
- _updateVisibleLayers() {
672
- this.visibleTileLayers = [];
673
- this.visibleTileLayers.length = 0;
674
- this.visibleVectorLayers = [];
675
- this.visibleVectorLayers.length = 0;
676
- let html = "";
677
- for (let i = 0, len = this._layers.length; i < len; i++) {
678
- let li = this._layers[i];
679
- if (li.getVisibility()) {
680
- if (li.isBaseLayer()) {
681
- this.createDefaultTextures(li._defaultTextures[0], li._defaultTextures[1]);
682
- this.baseLayer = li;
683
- }
684
- if (li.hasImageryTiles()) {
685
- this.visibleTileLayers.push(li);
686
- }
687
- if (li.isVector) {
688
- this.visibleVectorLayers.push(li);
689
- }
690
- if (li.getAttribution().length) {
691
- html += this._getLayerAttributionHTML(li);
692
- }
693
- }
694
- else if (li._fading && li._fadingOpacity > 0) {
695
- if (li.hasImageryTiles()) {
696
- this.visibleTileLayers.push(li);
697
- }
698
- if (li.isVector) {
699
- this.visibleVectorLayers.push(li);
700
- }
701
- }
702
- }
703
- this._applyAttribution(html);
704
- this._sortLayers();
705
- }
706
- /**
707
- * Apply to render list of layer attributions
708
- * @protected
709
- */
710
- _applyAttribution(html) {
711
- if (this.renderer && this.renderer.div) {
712
- if (html.length) {
713
- if (this.renderer.div.attributions.innerHTML !== html) {
714
- this.renderer.div.attributions.innerHTML = html;
715
- }
716
- }
717
- else {
718
- this.renderer.div.attributions.innerHTML = "";
719
- }
720
- }
721
- }
722
- /**
723
- * Sort visible layer - preparing for rendering.
724
- * @protected
725
- */
726
- _sortLayers() {
727
- this.visibleVectorLayers.sort((a, b) => (a.getZIndex() - b.getZIndex()) || (a.getHeight() - b.getHeight()));
728
- let grouped = { 0: [] };
729
- for (const vi of this.visibleVectorLayers) {
730
- if (!grouped[vi.depthOrder]) {
731
- grouped[vi.depthOrder] = [];
732
- }
733
- grouped[vi.depthOrder].push(vi);
734
- }
735
- this._visibleVectorLayersByDepthOrder.length = 0;
736
- this._visibleVectorLayersByDepthOrder = [];
737
- this._visibleVectorLayersByDepthOrder = Object.keys(grouped)
738
- .sort((a, b) => Number(a) - Number(b))
739
- .map(key => grouped[Number(key)]);
740
- this._visibleTileLayerSlices = [];
741
- this._visibleTileLayerSlices.length = 0;
742
- if (this.visibleTileLayers.length) {
743
- this.visibleTileLayers.sort((a, b) => (a.getHeight() - b.getHeight()) || (a.getZIndex() - b.getZIndex()));
744
- let k = -1;
745
- let currHeight = this.visibleTileLayers[0].getHeight();
746
- for (let i = 0, len = this.visibleTileLayers.length; i < len; i++) {
747
- if (i % this.SLICE_SIZE === 0 || this.visibleTileLayers[i].getHeight() !== currHeight) {
748
- k++;
749
- this._visibleTileLayerSlices[k] = [];
750
- currHeight = this.visibleTileLayers[i].getHeight();
751
- }
752
- this._visibleTileLayerSlices[k].push(this.visibleTileLayers[i]);
753
- }
754
- }
755
- }
756
- _clearRenderedNodeList() {
757
- this._renderedNodes.length = 0;
758
- this._renderedNodes = [];
759
- }
760
- _clearRenderNodesInFrustum() {
761
- for (let i = 0, len = this._renderedNodesInFrustum.length; i < len; i++) {
762
- this._renderedNodesInFrustum[i].length = 0;
763
- this._renderedNodesInFrustum[i] = [];
764
- }
765
- }
766
- _collectRenderedNodesMaxZoom(cam) {
767
- if (cam.slope > this.minEqualZoomCameraSlope && cam._lonLat.height < this.maxEqualZoomAltitude && cam._lonLat.height > this.minEqualZoomAltitude) {
768
- this.minCurrZoom = this.maxCurrZoom;
769
- let temp = this._renderedNodes, rf = this._renderedNodesInFrustum, temp2 = [];
770
- this._clearRenderNodesInFrustum();
771
- this._renderedNodes = [];
772
- for (let i = 0, len = temp.length; i < len; i++) {
773
- let ri = temp[i];
774
- let ht = ri.segment.centerNormal.dot(cam.getBackward());
775
- if (ri.segment.tileZoom === this.maxCurrZoom || ht < HORIZON_TANGENT) {
776
- this._renderedNodes.push(ri);
777
- let k = 0, inFrustum = ri.inFrustum;
778
- while (inFrustum) {
779
- if (inFrustum & 1) {
780
- rf[k].push(ri);
781
- }
782
- k++;
783
- inFrustum >>= 1;
784
- }
785
- }
786
- else {
787
- temp2.push(ri);
788
- }
789
- }
790
- for (let i = 0, len = temp2.length; i < len; i++) {
791
- temp2[i].renderTree(cam, this.maxCurrZoom, null, false, temp2[i]);
792
- }
793
- }
794
- }
795
- set transitionOpacityEnabled(isEnabled) {
796
- this._transitionOpacityEnabled = isEnabled;
797
- //@todo: set render nodes transition opacity to one
798
- }
799
- get transitionOpacityEnabled() {
800
- return this._transitionOpacityEnabled;
801
- }
802
- /**
803
- * Collects visible quad nodes.
804
- * @protected
805
- */
806
- _collectRenderNodes(cam) {
807
- this._lodSize = math.lerp(cam.slope < 0.0 ? 0.0 : cam.slope, this._curLodSize, this._minLodSize);
808
- cam._insideSegment = null;
809
- // clear first
810
- this._clearRenderedNodeList();
811
- this._clearRenderNodesInFrustum();
812
- this._viewExtent.southWest.set(180, 180);
813
- this._viewExtent.northEast.set(-180, -180);
814
- // todo: replace to camera
815
- this.minCurrZoom = math.MAX;
816
- this.maxCurrZoom = math.MIN;
817
- this.quadTreeStrategy.collectRenderNodes();
818
- this._collectRenderedNodesMaxZoom(cam);
819
- // main camera effect
820
- this._fadingNodes.clear();
821
- if (this._transitionOpacityEnabled) {
822
- let opaqueNodes = [];
823
- for (let i = 0; i < this._renderedNodes.length; i++) {
824
- let ri = this._renderedNodes[i];
825
- // it's not impossible to move the code into Node.addToRender, because
826
- // we can't know actual state before _collectRenderedNodesMaxZoom pass
827
- ri._collectFadingNodes();
828
- ri._refreshTransitionOpacity();
829
- if (ri.segment._transitionOpacity >= 1.0) {
830
- ri.clearNeighbors();
831
- ri.getRenderedNodesNeighbors(opaqueNodes);
832
- opaqueNodes.push(ri);
833
- }
834
- else {
835
- for (let j = 0; j < ri._fadingNodes.length; j++) {
836
- let rij = ri._fadingNodes[j];
837
- if (rij.segment && rij.segment._transitionOpacity >= 1.0) {
838
- rij.clearNeighbors();
839
- rij.getRenderedNodesNeighbors(opaqueNodes);
840
- opaqueNodes.push(rij);
841
- }
842
- }
843
- }
844
- }
845
- }
846
- }
847
- _renderScreenNodesPASSNoAtmos() {
848
- let cam = this.renderer.activeCamera;
849
- let sh = this._setUniformsNoAtmos(cam);
850
- //
851
- // PASS 0: rendering base slice of layers, which is often zero height
852
- this._renderingScreenNodes(sh, cam, this._renderedNodesInFrustum[cam.currentFrustumIndex]);
853
- }
854
- _renderScreenNodesPASSAtmos() {
855
- let cam = this.renderer.activeCamera;
856
- let sh = this._setUniformsAtmos(cam);
857
- //
858
- // PASS 0: rendering base slice of layers, which is often zero height
859
- this._renderingScreenNodes(sh, cam, this._renderedNodesInFrustum[cam.currentFrustumIndex]);
860
- }
861
- _renderScreenNodesWithHeightPASSNoAtmos() {
862
- let cam = this.renderer.activeCamera;
863
- let sh = this._setUniformsNoAtmos(cam);
864
- //
865
- // PASS 1: rendering slices, and layers with heights, without transition opacity effect
866
- this._renderingScreenNodesWithHeight(sh, cam, this._renderedNodesInFrustum[cam.currentFrustumIndex]);
867
- }
868
- _renderScreenNodesWithHeightPASSAtmos() {
869
- let cam = this.renderer.activeCamera;
870
- let sh = this._setUniformsAtmos(cam);
871
- //
872
- // PASS 1: rendering slices, and layers with heights, without transition opacity effect
873
- this._renderingScreenNodesWithHeight(sh, cam, this._renderedNodesInFrustum[cam.currentFrustumIndex]);
874
- }
875
- _globalPreDraw() {
876
- let cam = this.camera;
877
- this._distBeforeMemClear += this._prevCamEye.distance(cam.eye);
878
- this._prevCamEye.copy(cam.eye);
879
- cam.checkFly();
880
- // free memory
881
- if (this._createdNodesCount > MAX_NODES && this._distBeforeMemClear > 1000.0) {
882
- this.terrain.clearCache();
883
- this.memClear();
884
- }
885
- if (this._indexesCacheToRemoveCounter > 600) {
886
- this._clearIndexesCache();
887
- }
888
- }
889
- /**
890
- * Render node callback.
891
- * @public
892
- */
893
- preFrame() {
894
- if (this._updateLayer) {
895
- this._updateLayer = false;
896
- this._updateVisibleLayers();
897
- }
898
- if (this.camera.isFirstPass) {
899
- this.camera.update();
900
- if (this._skipPreRender && this._collectRenderNodesIsActive) {
901
- this._collectRenderNodes(this.camera);
902
- }
903
- this._skipPreRender = true;
904
- //this.transformLights();
905
- // creates terrain normal maps
906
- this._normalMapCreator.frame();
907
- // Creating geoImages textures.
908
- this._geoImageCreator.frame();
909
- // Vector tiles rasterization
910
- this._vectorTileCreator.frame();
911
- this.camera.checkTerrainCollision();
912
- this.camera.update();
913
- // Here is the planet node dispatches a draw event before
914
- // rendering begins, and we have got render nodes.
915
- this.events.dispatch(this.events.draw, this);
916
- // Collect entity collections from vector layers
917
- this._collectVectorLayerCollections();
918
- }
919
- for (let i = 0; i < this._visibleEntityCollections.length; i++) {
920
- this.drawEntityCollections(this._visibleEntityCollections[i], i);
921
- }
922
- }
923
- /**
924
- * Render node callback.
925
- * Frame function is called for each renderer activrCamera frustum.
926
- * @public
927
- * @override
928
- */
929
- frame() {
930
- this._renderScreenNodesPASS();
931
- }
932
- _checkRendercompleted() {
933
- if (this._renderCompleted) {
934
- if (!this._renderCompletedActivated) {
935
- this._renderCompletedActivated = true;
936
- this.events.dispatch(this.events.rendercompleted, true);
937
- }
938
- }
939
- else {
940
- this._renderCompletedActivated = false;
941
- }
942
- this._renderCompleted = true;
943
- if (this._terrainCompleted) {
944
- if (!this._terrainCompletedActivated) {
945
- this._terrainCompletedActivated = true;
946
- this.events.dispatch(this.events.terraincompleted, true);
947
- }
948
- }
949
- else {
950
- this._terrainCompletedActivated = false;
951
- }
952
- this._terrainCompleted = true;
953
- }
954
- lockQuadTree() {
955
- this._collectRenderNodesIsActive = false;
956
- this.camera.setTerrainCollisionActivity(false);
957
- }
958
- unlockQuadTree() {
959
- this._collectRenderNodesIsActive = true;
960
- this.camera.setTerrainCollisionActivity(true);
961
- }
962
- _setUniformsNoAtmos(cam) {
963
- let sh, shu;
964
- let renderer = this.renderer;
965
- let h = renderer.handler;
966
- let gl = h.gl;
967
- gl.enable(gl.CULL_FACE);
968
- renderer.enableBlendOneSrcAlpha();
969
- if (this.lightEnabled) {
970
- h.programs.drawnode_screen_wl.activate();
971
- sh = h.programs.drawnode_screen_wl._program;
972
- shu = sh.uniforms;
973
- gl.uniform3fv(shu.lightPosition, this._lightPosition);
974
- gl.uniformMatrix4fv(shu.viewMatrix, false, cam.getViewMatrix());
975
- gl.uniformMatrix4fv(shu.projectionMatrix, false, cam.getProjectionMatrix());
976
- if (this.baseLayer) {
977
- gl.uniform3fv(shu.diffuse, this.baseLayer._diffuse || this._diffuse);
978
- gl.uniform3fv(shu.ambient, this.baseLayer._ambient || this._ambient);
979
- gl.uniform4fv(shu.specular, this.baseLayer._specular || this._specular);
980
- gl.uniform1f(shu.nightTextureCoefficient, this.baseLayer.nightTextureCoefficient || this.nightTextureCoefficient);
981
- }
982
- else {
983
- gl.uniform3fv(shu.diffuse, this._diffuse);
984
- gl.uniform3fv(shu.ambient, this._ambient);
985
- gl.uniform4fv(shu.specular, this._specular);
986
- gl.uniform1f(shu.nightTextureCoefficient, this.nightTextureCoefficient);
987
- }
988
- //
989
- // Night and specular
990
- //
991
- gl.activeTexture(gl.TEXTURE0 + this.SLICE_SIZE);
992
- gl.bindTexture(gl.TEXTURE_2D, this._nightTexture || this.transparentTexture);
993
- gl.uniform1i(shu.nightTexture, this.SLICE_SIZE);
994
- gl.activeTexture(gl.TEXTURE0 + this.SLICE_SIZE + 1);
995
- gl.bindTexture(gl.TEXTURE_2D, this._specularTexture || this.transparentTexture);
996
- gl.uniform1i(shu.specularTexture, this.SLICE_SIZE + 1);
997
- gl.uniform1f(shu.camHeight, cam.getHeight());
998
- }
999
- else {
1000
- h.programs.drawnode_screen_nl.activate();
1001
- sh = h.programs.drawnode_screen_nl._program;
1002
- shu = sh.uniforms;
1003
- gl.uniformMatrix4fv(shu.viewMatrix, false, cam.getViewMatrix());
1004
- gl.uniformMatrix4fv(shu.projectionMatrix, false, cam.getProjectionMatrix());
1005
- }
1006
- gl.uniform3fv(shu.eyePositionHigh, cam.eyeHigh);
1007
- gl.uniform3fv(shu.eyePositionLow, cam.eyeLow);
1008
- return sh;
1009
- }
1010
- _setUniformsAtmos(cam) {
1011
- let sh, shu;
1012
- let renderer = this.renderer;
1013
- let h = renderer.handler;
1014
- let gl = h.gl;
1015
- gl.enable(gl.CULL_FACE);
1016
- renderer.enableBlendOneSrcAlpha();
1017
- if (this.lightEnabled) {
1018
- h.programs.drawnode_screen_wl.activate();
1019
- sh = h.programs.drawnode_screen_wl._program;
1020
- shu = sh.uniforms;
1021
- gl.uniform3fv(shu.lightPosition, this._lightPosition);
1022
- gl.uniformMatrix4fv(shu.viewMatrix, false, cam.getViewMatrix());
1023
- gl.uniformMatrix4fv(shu.projectionMatrix, false, cam.getProjectionMatrix());
1024
- if (this.baseLayer) {
1025
- gl.uniform3fv(shu.diffuse, this.baseLayer._diffuse || this._diffuse);
1026
- gl.uniform3fv(shu.ambient, this.baseLayer._ambient || this._ambient);
1027
- gl.uniform4fv(shu.specular, this.baseLayer._specular || this._specular);
1028
- gl.uniform1f(shu.nightTextureCoefficient, this.baseLayer.nightTextureCoefficient || this.nightTextureCoefficient);
1029
- }
1030
- else {
1031
- gl.uniform3fv(shu.diffuse, this._diffuse);
1032
- gl.uniform3fv(shu.ambient, this._ambient);
1033
- gl.uniform4fv(shu.specular, this._specular);
1034
- gl.uniform1f(shu.nightTextureCoefficient, this.nightTextureCoefficient);
1035
- }
1036
- gl.uniform2fv(shu.maxMinOpacity, this._atmosphereMaxMinOpacity);
1037
- //
1038
- // Night and specular
1039
- //
1040
- gl.activeTexture(gl.TEXTURE0 + this.SLICE_SIZE);
1041
- gl.bindTexture(gl.TEXTURE_2D, this._nightTexture || this.transparentTexture);
1042
- gl.uniform1i(shu.nightTexture, this.SLICE_SIZE);
1043
- gl.activeTexture(gl.TEXTURE0 + this.SLICE_SIZE + 1);
1044
- gl.bindTexture(gl.TEXTURE_2D, this._specularTexture || this.transparentTexture);
1045
- gl.uniform1i(shu.specularTexture, this.SLICE_SIZE + 1);
1046
- //
1047
- // atmos precomputed textures
1048
- //
1049
- gl.activeTexture(gl.TEXTURE0 + this.SLICE_SIZE + 4);
1050
- gl.bindTexture(gl.TEXTURE_2D, renderer.controls.Atmosphere._transmittanceBuffer.textures[0]);
1051
- gl.uniform1i(shu.transmittanceTexture, this.SLICE_SIZE + 4);
1052
- gl.activeTexture(gl.TEXTURE0 + this.SLICE_SIZE + 5);
1053
- gl.bindTexture(gl.TEXTURE_2D, renderer.controls.Atmosphere._scatteringBuffer.textures[0]);
1054
- gl.uniform1i(shu.scatteringTexture, this.SLICE_SIZE + 5);
1055
- gl.uniform1f(shu.camHeight, cam.getHeight());
1056
- }
1057
- else {
1058
- h.programs.drawnode_screen_nl.activate();
1059
- sh = h.programs.drawnode_screen_nl._program;
1060
- shu = sh.uniforms;
1061
- gl.uniformMatrix4fv(shu.viewMatrix, false, cam.getViewMatrix());
1062
- gl.uniformMatrix4fv(shu.projectionMatrix, false, cam.getProjectionMatrix());
1063
- }
1064
- gl.uniform3fv(shu.eyePositionHigh, cam.eyeHigh);
1065
- gl.uniform3fv(shu.eyePositionLow, cam.eyeLow);
1066
- return sh;
1067
- }
1068
- /**
1069
- * Drawing nodes
1070
- */
1071
- _renderingScreenNodes(sh, cam, renderedNodes) {
1072
- let firstPass = cam.isFirstPass;
1073
- let sl = this._visibleTileLayerSlices;
1074
- if (sl.length) {
1075
- let sli = sl[0];
1076
- for (let i = sli.length - 1; i >= 0; --i) {
1077
- let li = sli[i];
1078
- if (li._fading && firstPass && li._refreshFadingOpacity()) {
1079
- sli.splice(i, 1);
1080
- }
1081
- }
1082
- }
1083
- let nodes = new Map;
1084
- let transparentSegments = [];
1085
- let isEq = this.terrain.equalizeVertices;
1086
- let i = renderedNodes.length;
1087
- //
1088
- // Collect fading opaque segments, because we need them in the framebuffer passes,
1089
- // as the segments with equalized sides, which means that there are no gaps
1090
- // between currently rendered neighbours
1091
- //
1092
- this._fadingOpaqueSegments = [];
1093
- if (cam.slope > 0.8 || !this.terrain || this.terrain.isEmpty /*|| cam.getAltitude() > 10000*/) {
1094
- while (i--) {
1095
- let ri = renderedNodes[i];
1096
- let s = ri.segment;
1097
- this._renderingFadingNodesNoDepth(nodes, sh, ri, sl[0], 0, this._fadingOpaqueSegments);
1098
- isEq && s.equalize();
1099
- s.readyToEngage && s.engage();
1100
- s.screenRendering(sh, sl[0], 0);
1101
- }
1102
- }
1103
- else {
1104
- //
1105
- // Render opaque segments on the first pass, remove transparent ones into second pass
1106
- //
1107
- while (i--) {
1108
- let ri = renderedNodes[i];
1109
- let s = ri.segment;
1110
- this._renderingFadingNodes(nodes, sh, ri, sl[0], 0, transparentSegments, this._fadingOpaqueSegments);
1111
- if (s._transitionOpacity < 1) {
1112
- transparentSegments.push(s);
1113
- }
1114
- else {
1115
- isEq && s.equalize();
1116
- s.readyToEngage && s.engage();
1117
- s.screenRendering(sh, sl[0], 0);
1118
- }
1119
- }
1120
- //
1121
- // Render transparent segments
1122
- //
1123
- for (let j = 0; j < transparentSegments.length; j++) {
1124
- let tj = transparentSegments[j];
1125
- isEq && tj.equalize();
1126
- tj.readyToEngage && tj.engage();
1127
- tj.screenRendering(sh, sl[0], 0);
1128
- }
1129
- }
1130
- }
1131
- _renderingScreenNodesWithHeight(sh, cam, renderedNodes) {
1132
- let gl = this.renderer.handler.gl;
1133
- let firstPass = cam.isFirstPass;
1134
- let sl = this._visibleTileLayerSlices;
1135
- gl.enable(gl.POLYGON_OFFSET_FILL);
1136
- gl.disable(gl.CULL_FACE);
1137
- let nodes = new Map;
1138
- let transparentSegments = [];
1139
- for (let j = 1, len = sl.length; j < len; j++) {
1140
- let slj = sl[j];
1141
- for (let i = slj.length - 1; i >= 0; --i) {
1142
- let li = slj[i];
1143
- if (li._fading && firstPass && li._refreshFadingOpacity()) {
1144
- slj.splice(i, 1);
1145
- }
1146
- }
1147
- gl.polygonOffset(0, -j);
1148
- let i = renderedNodes.length;
1149
- while (i--) {
1150
- let ri = renderedNodes[i];
1151
- this._renderingFadingNodes(nodes, sh, ri, sl[j], j, transparentSegments);
1152
- if (ri.segment._transitionOpacity < 1) {
1153
- ri.segment.initSlice(j);
1154
- }
1155
- else {
1156
- ri.segment.screenRendering(sh, sl[j], j, this.transparentTexture, true);
1157
- }
1158
- }
1159
- }
1160
- gl.disable(gl.POLYGON_OFFSET_FILL);
1161
- gl.enable(gl.CULL_FACE);
1162
- }
1163
- _renderColorPickingFramebufferPASS() {
1164
- let sh;
1165
- let renderer = this.renderer;
1166
- let h = renderer.handler;
1167
- let gl = h.gl;
1168
- h.programs.drawnode_colorPicking.activate();
1169
- sh = h.programs.drawnode_colorPicking._program;
1170
- let shu = sh.uniforms;
1171
- let cam = renderer.activeCamera;
1172
- gl.enable(gl.CULL_FACE);
1173
- gl.uniformMatrix4fv(shu.viewMatrix, false, cam.getViewMatrix());
1174
- gl.uniformMatrix4fv(shu.projectionMatrix, false, cam.getProjectionMatrix());
1175
- gl.uniform3fv(shu.eyePositionHigh, cam.eyeHigh);
1176
- gl.uniform3fv(shu.eyePositionLow, cam.eyeLow);
1177
- // drawing planet nodes
1178
- let rn = this._renderedNodesInFrustum[cam.getCurrentFrustum()];
1179
- let sl = this._visibleTileLayerSlices;
1180
- let i = rn.length;
1181
- while (i--) {
1182
- if (rn[i].segment._transitionOpacity >= 1) {
1183
- rn[i].segment.colorPickingRendering(sh, sl[0], 0);
1184
- }
1185
- }
1186
- for (let i = 0; i < this._fadingOpaqueSegments.length; ++i) {
1187
- this._fadingOpaqueSegments[i].colorPickingRendering(sh, sl[0], 0);
1188
- }
1189
- // Here is set blending for transparent overlays
1190
- renderer.enableBlendDefault();
1191
- gl.enable(gl.POLYGON_OFFSET_FILL);
1192
- for (let j = 1, len = sl.length; j < len; j++) {
1193
- i = rn.length;
1194
- gl.polygonOffset(0, -j);
1195
- while (i--) {
1196
- rn[i].segment.colorPickingRendering(sh, sl[j], j, this.transparentTexture, true);
1197
- }
1198
- }
1199
- gl.disable(gl.POLYGON_OFFSET_FILL);
1200
- }
1201
- _renderDepthFramebufferPASS() {
1202
- let sh;
1203
- let renderer = this.renderer;
1204
- let h = renderer.handler;
1205
- let gl = h.gl;
1206
- h.programs.drawnode_depth.activate();
1207
- sh = h.programs.drawnode_depth._program;
1208
- let shu = sh.uniforms;
1209
- let cam = renderer.activeCamera;
1210
- gl.disable(gl.BLEND);
1211
- gl.disable(gl.POLYGON_OFFSET_FILL);
1212
- gl.uniformMatrix4fv(shu.viewMatrix, false, cam.getViewMatrix());
1213
- gl.uniformMatrix4fv(shu.projectionMatrix, false, cam.getProjectionMatrix());
1214
- gl.uniform3fv(shu.eyePositionHigh, cam.eyeHigh);
1215
- gl.uniform3fv(shu.eyePositionLow, cam.eyeLow);
1216
- gl.uniform1f(shu.frustumPickingColor, cam.frustumColorIndex);
1217
- // drawing planet nodes
1218
- let rn = this._renderedNodesInFrustum[cam.getCurrentFrustum()], sl = this._visibleTileLayerSlices;
1219
- let i = rn.length;
1220
- while (i--) {
1221
- if (rn[i].segment._transitionOpacity >= 1) {
1222
- rn[i].segment.depthRendering(sh, sl[0]);
1223
- }
1224
- }
1225
- for (let i = 0; i < this._fadingOpaqueSegments.length; ++i) {
1226
- this._fadingOpaqueSegments[i].depthRendering(sh, sl[0]);
1227
- }
1228
- gl.enable(gl.BLEND);
1229
- }
1230
- _collectVectorLayerCollections() {
1231
- let k = this._visibleVectorLayersByDepthOrder.length;
1232
- this._visibleEntityCollections.length = 0;
1233
- this._visibleEntityCollections = new Array(k);
1234
- for (let i = 0; i < this._visibleEntityCollections.length; i++) {
1235
- this._visibleEntityCollections[i] = [];
1236
- }
1237
- while (k--) {
1238
- let group = this._visibleVectorLayersByDepthOrder[k];
1239
- let j = group.length;
1240
- while (j--) {
1241
- let vi = group[j];
1242
- if (vi._fading && vi._refreshFadingOpacity()) {
1243
- group.splice(j, 1);
1244
- if (group.length === 0) {
1245
- this._visibleVectorLayersByDepthOrder.splice(k, 1);
1246
- }
1247
- }
1248
- vi.collectVisibleCollections(this._visibleEntityCollections[k]);
1249
- vi.update();
1250
- }
1251
- }
1252
- }
1253
- /**
1254
- * Starts clear memory thread.
1255
- * @public
1256
- */
1257
- memClear() {
1258
- this._distBeforeMemClear = 0;
1259
- this.camera._insideSegment = null;
1260
- this.layerLock.lock(this._memKey);
1261
- this.terrainLock.lock(this._memKey);
1262
- this._normalMapCreator.lock(this._memKey);
1263
- this._normalMapCreator.clear();
1264
- this.terrain.abortLoading();
1265
- this._tileLoader.abortAll();
1266
- this.quadTreeStrategy.clear();
1267
- this.layerLock.free(this._memKey);
1268
- this.terrainLock.free(this._memKey);
1269
- this._normalMapCreator.free(this._memKey);
1270
- this._createdNodesCount = 0;
1271
- }
1272
- /**
1273
- * Returns ray vector hit ellipsoid coordinates.
1274
- * If the ray doesn't hit ellipsoid it returns 'undefined'.
1275
- * @public
1276
- * @param {Ray} ray - Ray.
1277
- * @returns {Vec3 | undefined} -
1278
- */
1279
- getRayIntersectionEllipsoid(ray) {
1280
- return this.ellipsoid.hitRay(ray.origin, ray.direction);
1281
- }
1282
- /**
1283
- * Project screen coordinates to the planet ellipsoid.
1284
- * @public
1285
- * @param {Vec2 | IBaseInputState } px - Screen coordinates.
1286
- * @returns {Vec3 | undefined} - Cartesian coordinates.
1287
- */
1288
- getCartesianFromPixelEllipsoid(px) {
1289
- let cam = this.renderer.activeCamera;
1290
- return this.ellipsoid.hitRay(cam.eye, cam.unproject(px.x, px.y));
1291
- }
1292
- /**
1293
- * Project screen coordinates to the planet ellipsoid.
1294
- * @public
1295
- * @param {Vec2 | IBaseInputState} px - Screen coordinates.
1296
- * @returns {LonLat | undefined} - Geodetic coordinates.
1297
- */
1298
- getLonLatFromPixelEllipsoid(px) {
1299
- let coords = this.getCartesianFromPixelEllipsoid(px);
1300
- if (coords) {
1301
- return this.ellipsoid.cartesianToLonLat(coords);
1302
- }
1303
- }
1304
- /**
1305
- * Returns mouse position cartesian coordinates on the current terrain.
1306
- * @public
1307
- * @returns {Vec3 | undefined} -
1308
- */
1309
- getCartesianFromMouseTerrain() {
1310
- let ms = this.renderer.events.mouseState;
1311
- let distance = this.getDistanceFromPixel(ms);
1312
- if (distance) {
1313
- return ms.direction.scaleTo(distance).addA(this.renderer.activeCamera.eye);
1314
- }
1315
- }
1316
- /**
1317
- * Returns screen coordinates cartesian coordinates on the current terrain.
1318
- * position or null if input coordinates is outside the planet.
1319
- * @public
1320
- * @param {Vec2} px - Pixel screen 2d coordinates.
1321
- * @returns {Vec3 | undefined} -
1322
- */
1323
- getCartesianFromPixelTerrain(px) {
1324
- let distance = this.getDistanceFromPixel(px);
1325
- if (distance) {
1326
- let direction = px.direction || this.renderer.activeCamera.unproject(px.x, px.y);
1327
- return direction.scaleTo(distance).addA(this.renderer.activeCamera.eye);
1328
- }
1329
- }
1330
- /**
1331
- * Returns geodetic coordinates on the current terrain planet by its screen coordinates.
1332
- * position or null if input coordinates is outside the planet.
1333
- * @public
1334
- * @param {Vec2 | IBaseInputState} px - Pixel screen 2d coordinates.
1335
- * @returns {LonLat | undefined} -
1336
- */
1337
- getLonLatFromPixelTerrain(px) {
1338
- let coords = this.getCartesianFromPixelTerrain(px);
1339
- if (coords) {
1340
- return this.ellipsoid.cartesianToLonLat(coords);
1341
- }
1342
- }
1343
- /**
1344
- * Project cartesian coordinates to screen space.
1345
- * @public
1346
- * @param {Vec3} coords - Cartesian coordinates.
1347
- * @returns {Vec2} - Screen coordinates.
1348
- */
1349
- getPixelFromCartesian(coords) {
1350
- return this.renderer.activeCamera.project3v(coords);
1351
- }
1352
- /**
1353
- * Project geodetic coordinates to screen space.
1354
- * @public
1355
- * @param {LonLat} lonlat - Geodetic coordinates.
1356
- * @returns {Vec2 | undefined} - Screen coordinates.
1357
- */
1358
- getPixelFromLonLat(lonlat) {
1359
- let coords = this.ellipsoid.lonLatToCartesian(lonlat);
1360
- if (coords) {
1361
- return this.renderer.activeCamera.project3v(coords);
1362
- }
1363
- }
1364
- /**
1365
- * Returns distance from an active (screen) camera to the planet ellipsoid.
1366
- * @public
1367
- * @param {Vec2} px - Screen coordinates.
1368
- * @returns {number} -
1369
- */
1370
- getDistanceFromPixelEllipsoid(px) {
1371
- let coords = this.getCartesianFromPixelEllipsoid(px);
1372
- if (coords) {
1373
- return coords.distance(this.renderer.activeCamera.eye);
1374
- }
1375
- }
1376
- /**
1377
- * Returns distance from active (screen) camera to the planet terrain by screen coordinates.
1378
- * @public
1379
- * @param {Vec2 | IBaseInputState} px - Screen coordinates.
1380
- * @returns {number | undefined} -
1381
- */
1382
- getDistanceFromPixel(px) {
1383
- // if (this.terrain!.isEmpty) {
1384
- // return this.getDistanceFromPixelEllipsoid(px) || 0;
1385
- // } else {
1386
- return this.renderer.getDistanceFromPixel(px) || this.getDistanceFromPixelEllipsoid(px) || 0;
1387
- //}
1388
- }
1389
- /**
1390
- * Sets camera to the planet geographical extent.
1391
- * @public
1392
- * @param {Extent} extent - Geographical extent.
1393
- */
1394
- viewExtent(extent) {
1395
- if (this.camera) {
1396
- this.camera.viewExtent(extent);
1397
- }
1398
- else {
1399
- this._initialViewExtent = extent;
1400
- }
1401
- }
1402
- /**
1403
- * Fits camera position for the view extent.
1404
- * @public
1405
- * @param {Array.<number>} extentArr - Geographical extent array, (exactly 4 entries)
1406
- * where index 0 - southwest longitude, 1 - latitude southwest, 2 - longitude northeast, 3 - latitude northeast.
1407
- */
1408
- viewExtentArr(extentArr) {
1409
- this.viewExtent(new Extent(new LonLat(extentArr[0], extentArr[1]), new LonLat(extentArr[2], extentArr[3])));
1410
- }
1411
- /**
1412
- * Gets current camera view extent.
1413
- * @public
1414
- * @returns {Extent} -
1415
- */
1416
- getViewExtent() {
1417
- if (this.renderer) {
1418
- let w = this.renderer.handler.getWidth(), h = this.renderer.handler.getHeight();
1419
- let extent = [
1420
- this.getLonLatFromPixelTerrain(new Vec2(0, 0)),
1421
- this.getLonLatFromPixelTerrain(new Vec2(w, 0)),
1422
- this.getLonLatFromPixelTerrain(new Vec2(w, h)),
1423
- this.getLonLatFromPixelTerrain(new Vec2(0, h))
1424
- ];
1425
- if (extent[0] && extent[1] && extent[2] && extent[3]) {
1426
- let min_lon = extent[0].lon, min_lat = extent[2].lat, max_lon = extent[1].lon, max_lat = extent[0].lat;
1427
- for (let i = 0; i < extent.length; i++) {
1428
- if (extent[i].lon > max_lon)
1429
- max_lon = extent[i].lon;
1430
- if (extent[i].lat > max_lat)
1431
- max_lat = extent[i].lat;
1432
- if (extent[i].lon < min_lon)
1433
- min_lon = extent[i].lon;
1434
- if (extent[i].lat < min_lat)
1435
- min_lat = extent[i].lat;
1436
- }
1437
- return new Extent(new LonLat(min_lon, min_lat), new LonLat(max_lon, max_lat));
1438
- }
1439
- }
1440
- return this._viewExtent;
1441
- }
1442
- /**
1443
- * Sets camera to the planet geographical position.
1444
- * @public
1445
- * @param {LonLat} lonlat - Camera position.
1446
- * @param {LonLat} [lookLonLat] - Viewpoint.
1447
- * @param {Vec3} [up] - Camera up vector.
1448
- */
1449
- viewLonLat(lonlat, lookLonLat, up) {
1450
- this.camera.setLonLat(lonlat, lookLonLat, up);
1451
- }
1452
- /**
1453
- * Fly active camera to the view extent.
1454
- * @public
1455
- * @param {Extent} extent - Geographical extent.
1456
- * @param {Number} [height] - Height on the end of the flight route.
1457
- * @param {Vec3} [up] - Camera UP vector on the end of a flying.
1458
- * @param {Number} [ampl] - Altitude amplitude factor.
1459
- * @param {Function} [startCallback] - Callback that calls before the flying begins.
1460
- * @param {Function} [completeCallback] - Callback that calls after flying when flying is finished.
1461
- */
1462
- flyExtent(extent, height, up, ampl, completeCallback, startCallback) {
1463
- this.camera.flyExtent(extent, height, up, ampl, completeCallback, startCallback);
1464
- }
1465
- /**
1466
- * Fly camera to the point.
1467
- * @public
1468
- * @param {Vec3} cartesian - Point coordinates.
1469
- * @param {Vec3} [look] - Camera "look at" point.
1470
- * @param {Vec3} [up] - Camera UP vector on the end of a flying.
1471
- * @param {Number} [ampl] - Altitude amplitude factor.
1472
- * @param {Function} [completeCallback] - Call the function in the end of flight
1473
- * @param {Function} [startCallback] - Call the function in the beginning
1474
- * @param {Function} [frameCallback] - Each frame callback
1475
- */
1476
- flyCartesian(cartesian, look, up, ampl, completeCallback, startCallback, frameCallback) {
1477
- this.camera.flyCartesian(cartesian, look, up, ampl, completeCallback, startCallback, frameCallback);
1478
- }
1479
- /**
1480
- * Fly camera to the geodetic position.
1481
- * @public
1482
- * @param {LonLat} lonlat - Fly geographical coordinates.
1483
- * @param {Vec3 | LonLat} [look] - Camera viewpoint in the end of the flight.
1484
- * @param {Vec3} [up] - Camera UP vector on the end of a flying.
1485
- * @param {Number} [ampl] - Altitude amplitude factor.
1486
- * @param [completeCallback]
1487
- * @param [startCallback]
1488
- * @param [frameCallback]
1489
- */
1490
- flyLonLat(lonlat, look, up, ampl, completeCallback, startCallback, frameCallback) {
1491
- this.camera.flyLonLat(lonlat, look, up, ampl, completeCallback, startCallback, frameCallback);
1492
- }
1493
- /**
1494
- * Stop current flight.
1495
- * @public
1496
- */
1497
- stopFlying() {
1498
- this.camera.stopFlying();
1499
- }
1500
- updateBillboardsTexCoords() {
1501
- for (let i = 0; i < this.entityCollections.length; i++) {
1502
- this.entityCollections[i].billboardHandler.refreshTexCoordsArr();
1503
- }
1504
- let readyCollections = {};
1505
- for (let i = 0; i < this._layers.length; i++) {
1506
- let li = this._layers[i];
1507
- if (li instanceof Vector) {
1508
- li.each(function (e) {
1509
- if (e._entityCollection && !readyCollections[e._entityCollection.id]) {
1510
- e._entityCollection.billboardHandler.refreshTexCoordsArr();
1511
- readyCollections[e._entityCollection.id] = true;
1512
- }
1513
- });
1514
- }
1515
- }
1516
- }
1517
- getEntityTerrainPoint(entity, res) {
1518
- let n = this._renderedNodes, i = n.length;
1519
- while (i--) {
1520
- if (n[i].segment.isEntityInside(entity)) {
1521
- return n[i].segment.getEntityTerrainPoint(entity, res);
1522
- }
1523
- }
1524
- }
1525
- async getHeightDefault(lonLat) {
1526
- return new Promise((resolve) => {
1527
- if (this.terrain) {
1528
- this.terrain.getHeightAsync(lonLat.clone(), (alt) => {
1529
- resolve(alt);
1530
- });
1531
- }
1532
- else {
1533
- resolve(0);
1534
- }
1535
- });
1536
- }
1537
- async getHeightAboveELL(lonLat) {
1538
- return new Promise((resolve) => {
1539
- if (this.terrain) {
1540
- this.terrain.getHeightAsync(lonLat.clone(), (alt) => {
1541
- resolve(alt + this.terrain.geoid.getHeightLonLat(lonLat));
1542
- });
1543
- }
1544
- else {
1545
- resolve(0);
1546
- }
1547
- });
1548
- }
1549
- onremove() {
1550
- this.memClear();
1551
- this.quadTreeStrategy.destroyBranches();
1552
- this._renderedNodes = [];
1553
- }
1554
- // function checkTerrainCollision(entity) {
1555
- // let _tempTerrPoint = new Vec3();
1556
- // let nodes = globus.planet._renderedNodes;
1557
- // for (let j = 0; j < nodes.length; j++) {
1558
- // let seg = nodes[j].segment;
1559
- // if (seg && seg._extentLonLat.isInside(entity.getLonLat())) {
1560
- // seg.getEntityTerrainPoint(entity, _tempTerrPoint);
1561
- // entity.setCartesian3v(_tempTerrPoint);
1562
- // break;
1563
- // }
1564
- // }
1565
- // }
1566
- /**
1567
- * @todo: refactor with events or something better
1568
- */
1569
- stopDragging() {
1570
- if (this.renderer && this.renderer.controls.EarthNavigation) {
1571
- //@ts-ignore
1572
- this.renderer.controls.EarthNavigation.stop();
1573
- }
1574
- }
1575
- }
1576
- const PLANET_EVENTS = [
1577
- /**
1578
- * Triggered before globe frame begins to render.
1579
- * @event og.scene.Planet#draw
1580
- */
1581
- "draw",
1582
- /**
1583
- * Triggered when layer has added to the planet.
1584
- * @event og.scene.Planet#layeradd
1585
- */
1586
- "layeradd",
1587
- /**
1588
- * Triggered when base layer changed.
1589
- * @event og.scene.Planet#baselayerchange
1590
- */
1591
- "baselayerchange",
1592
- /**
1593
- * Triggered when layer has removed from the planet.
1594
- * @event og.scene.Planet#layerremove
1595
- */
1596
- "layerremove",
1597
- /**
1598
- * Triggered when some layer visibility changed.
1599
- * @event og.scene.Planet#layervisibilitychange
1600
- */
1601
- "layervisibilitychange",
1602
- /**
1603
- * Triggered when all data is loaded
1604
- * @event og.scene.Planet#rendercompleted
1605
- */
1606
- "rendercompleted",
1607
- /**
1608
- * Triggered when all data is loaded
1609
- * @event og.scene.Planet#terraincompleted
1610
- */
1611
- "terraincompleted",
1612
- /**
1613
- * Triggered when layer data is laded
1614
- * @event og.scene.Planet#terraincompleted
1615
- */
1616
- "layerloadend"
1617
- ];