@openglobus/og 0.24.1 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (778) 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 +76 -68
  44. package/res/fonts/Ephesis-Regular.json +4648 -0
  45. package/res/fonts/Ephesis-Regular.ttf.cfg +1282 -0
  46. package/res/fonts/Ephesis-Regular.ttf.png +0 -0
  47. package/res/fonts/Karla-Bold.json +5252 -0
  48. package/res/fonts/Karla-Bold.ttf.cfg +920 -0
  49. package/res/fonts/Karla-Bold.ttf.png +0 -0
  50. package/res/fonts/Karla-Light.json +5252 -0
  51. package/res/fonts/Karla-Light.ttf.cfg +830 -0
  52. package/res/fonts/Karla-Light.ttf.png +0 -0
  53. package/res/fonts/Karla-Medium.json +5252 -0
  54. package/res/fonts/Karla-Medium.ttf.cfg +1196 -0
  55. package/res/fonts/Karla-Medium.ttf.png +0 -0
  56. package/res/fonts/NotoSansArabic-Regular.json +3332 -0
  57. package/res/fonts/NotoSansArabic-Regular.ttf.cfg +1370 -0
  58. package/res/fonts/NotoSansArabic-Regular.ttf.png +0 -0
  59. package/res/fonts/Roboto-Regular.json +37147 -0
  60. package/res/fonts/Roboto-Regular.ttf.cfg +1340 -0
  61. package/res/fonts/Roboto-Regular.ttf.png +0 -0
  62. package/res/fonts/arial.js +4325 -0
  63. package/res/fonts/arial.json +4321 -0
  64. package/res/fonts/arial.ttf.cfg +1570 -0
  65. package/res/fonts/arial.ttf.png +0 -0
  66. package/res/night-4326.png +0 -0
  67. package/res/night.png +0 -0
  68. package/res/spec.png +0 -0
  69. package/css/og.css +0 -1342
  70. package/lib/@openglobus/js/Globe.d.ts +0 -145
  71. package/lib/@openglobus/js/Object3d.d.ts +0 -81
  72. package/lib/@openglobus/js/control/Atmosphere.d.ts +0 -40
  73. package/lib/@openglobus/js/control/KeyboardNavigation.d.ts +0 -28
  74. package/lib/@openglobus/js/control/index.d.ts +0 -30
  75. package/lib/@openglobus/js/segment/segmentHelper.d.ts +0 -18
  76. package/lib/@openglobus/js/shaders/bloom.d.ts +0 -2
  77. package/lib/@openglobus/js/shaders/blur.d.ts +0 -3
  78. package/lib/@openglobus/js/shaders/drawnode.d.ts +0 -10
  79. package/lib/@openglobus/js/shaders/lumFilter.d.ts +0 -2
  80. package/lib/@openglobus/js/shaders/ray.d.ts +0 -2
  81. package/lib/@openglobus/js/shaders/utils.d.ts +0 -1
  82. package/lib/@openglobus/js/utils/shared.d.ts +0 -287
  83. package/lib/@openglobus/js/webgl/Framebuffer.d.ts +0 -97
  84. package/lib/@openglobus/og.css +0 -1
  85. package/lib/@openglobus/og.esm.js +0 -2
  86. package/lib/@openglobus/og.esm.js.map +0 -1
  87. package/lib/@openglobus/og.umd.js +0 -2
  88. package/lib/@openglobus/og.umd.js.map +0 -1
  89. package/lib/js/Clock.d.ts +0 -106
  90. package/lib/js/Clock.js +0 -141
  91. package/lib/js/Deferred.d.ts +0 -6
  92. package/lib/js/Deferred.js +0 -13
  93. package/lib/js/Events.d.ts +0 -90
  94. package/lib/js/Events.js +0 -145
  95. package/lib/js/Extent.d.ts +0 -145
  96. package/lib/js/Extent.js +0 -278
  97. package/lib/js/Globe.js +0 -289
  98. package/lib/js/ImageCanvas.d.ts +0 -128
  99. package/lib/js/ImageCanvas.js +0 -203
  100. package/lib/js/Lock.d.ts +0 -15
  101. package/lib/js/Lock.js +0 -27
  102. package/lib/js/LonLat.d.ts +0 -128
  103. package/lib/js/LonLat.js +0 -192
  104. package/lib/js/Object3d.js +0 -508
  105. package/lib/js/Popup.d.ts +0 -49
  106. package/lib/js/Popup.js +0 -160
  107. package/lib/js/QueueArray.d.ts +0 -16
  108. package/lib/js/QueueArray.js +0 -63
  109. package/lib/js/Rectangle.d.ts +0 -76
  110. package/lib/js/Rectangle.js +0 -77
  111. package/lib/js/Stack.d.ts +0 -20
  112. package/lib/js/Stack.js +0 -42
  113. package/lib/js/astro/astro.d.ts +0 -39
  114. package/lib/js/astro/astro.js +0 -43
  115. package/lib/js/astro/earth.d.ts +0 -8
  116. package/lib/js/astro/earth.js +0 -75
  117. package/lib/js/astro/jd.d.ts +0 -234
  118. package/lib/js/astro/jd.js +0 -416
  119. package/lib/js/astro/orbit.d.ts +0 -5
  120. package/lib/js/astro/orbit.js +0 -104
  121. package/lib/js/astro/rotation.d.ts +0 -2
  122. package/lib/js/astro/rotation.js +0 -25
  123. package/lib/js/bv/Box.d.ts +0 -32
  124. package/lib/js/bv/Box.js +0 -53
  125. package/lib/js/bv/Sphere.d.ts +0 -37
  126. package/lib/js/bv/Sphere.js +0 -31
  127. package/lib/js/bv/index.d.ts +0 -3
  128. package/lib/js/bv/index.js +0 -3
  129. package/lib/js/camera/Camera.d.ts +0 -361
  130. package/lib/js/camera/Camera.js +0 -541
  131. package/lib/js/camera/Frustum.d.ts +0 -142
  132. package/lib/js/camera/Frustum.js +0 -246
  133. package/lib/js/camera/PlanetCamera.d.ts +0 -247
  134. package/lib/js/camera/PlanetCamera.js +0 -513
  135. package/lib/js/camera/index.d.ts +0 -3
  136. package/lib/js/camera/index.js +0 -3
  137. package/lib/js/cons.d.ts +0 -40
  138. package/lib/js/cons.js +0 -92
  139. package/lib/js/control/Atmosphere.js +0 -401
  140. package/lib/js/control/AtmosphereConfig.d.ts +0 -59
  141. package/lib/js/control/AtmosphereConfig.js +0 -348
  142. package/lib/js/control/CameraLock.d.ts +0 -38
  143. package/lib/js/control/CameraLock.js +0 -216
  144. package/lib/js/control/CompassButton.d.ts +0 -16
  145. package/lib/js/control/CompassButton.js +0 -118
  146. package/lib/js/control/Control.d.ts +0 -100
  147. package/lib/js/control/Control.js +0 -137
  148. package/lib/js/control/DebugInfo.d.ts +0 -25
  149. package/lib/js/control/DebugInfo.js +0 -318
  150. package/lib/js/control/DrawingSwitcher.d.ts +0 -13
  151. package/lib/js/control/DrawingSwitcher.js +0 -94
  152. package/lib/js/control/EarthCoordinates.d.ts +0 -41
  153. package/lib/js/control/EarthCoordinates.js +0 -161
  154. package/lib/js/control/GeoImageDragControl.d.ts +0 -22
  155. package/lib/js/control/GeoImageDragControl.js +0 -102
  156. package/lib/js/control/KeyboardNavigation.d.ts +0 -28
  157. package/lib/js/control/KeyboardNavigation.js +0 -143
  158. package/lib/js/control/LayerAnimation.d.ts +0 -71
  159. package/lib/js/control/LayerAnimation.js +0 -283
  160. package/lib/js/control/LayerSwitcher.d.ts +0 -38
  161. package/lib/js/control/LayerSwitcher.js +0 -151
  162. package/lib/js/control/Lighting.d.ts +0 -54
  163. package/lib/js/control/Lighting.js +0 -459
  164. package/lib/js/control/MouseNavigation.d.ts +0 -76
  165. package/lib/js/control/MouseNavigation.js +0 -414
  166. package/lib/js/control/MouseWheelZoomControl.d.ts +0 -0
  167. package/lib/js/control/MouseWheelZoomControl.js +0 -270
  168. package/lib/js/control/OldMouseNavigation.d.ts +0 -65
  169. package/lib/js/control/OldMouseNavigation.js +0 -368
  170. package/lib/js/control/RulerSwitcher.d.ts +0 -18
  171. package/lib/js/control/RulerSwitcher.js +0 -57
  172. package/lib/js/control/ScaleControl.d.ts +0 -25
  173. package/lib/js/control/ScaleControl.js +0 -97
  174. package/lib/js/control/SegmentBoundVisualization.d.ts +0 -13
  175. package/lib/js/control/SegmentBoundVisualization.js +0 -37
  176. package/lib/js/control/ShowFps.d.ts +0 -10
  177. package/lib/js/control/ShowFps.js +0 -20
  178. package/lib/js/control/SimpleNavigation.d.ts +0 -43
  179. package/lib/js/control/SimpleNavigation.js +0 -196
  180. package/lib/js/control/SimpleSkyBackground.d.ts +0 -18
  181. package/lib/js/control/SimpleSkyBackground.js +0 -187
  182. package/lib/js/control/Sun.d.ts +0 -34
  183. package/lib/js/control/Sun.js +0 -117
  184. package/lib/js/control/ToggleWireframe.d.ts +0 -15
  185. package/lib/js/control/ToggleWireframe.js +0 -28
  186. package/lib/js/control/TouchNavigation.d.ts +0 -53
  187. package/lib/js/control/TouchNavigation.js +0 -266
  188. package/lib/js/control/ZoomControl.d.ts +0 -28
  189. package/lib/js/control/ZoomControl.js +0 -86
  190. package/lib/js/control/drawing/DrawingControl.d.ts +0 -12
  191. package/lib/js/control/drawing/DrawingControl.js +0 -35
  192. package/lib/js/control/drawing/LineStringDrawingScene.d.ts +0 -15
  193. package/lib/js/control/drawing/LineStringDrawingScene.js +0 -139
  194. package/lib/js/control/drawing/PolygonDrawingScene.d.ts +0 -98
  195. package/lib/js/control/drawing/PolygonDrawingScene.js +0 -534
  196. package/lib/js/control/elevationProfile/ElevationProfile.d.ts +0 -77
  197. package/lib/js/control/elevationProfile/ElevationProfile.js +0 -248
  198. package/lib/js/control/elevationProfile/ElevationProfileButtonsView.d.ts +0 -15
  199. package/lib/js/control/elevationProfile/ElevationProfileButtonsView.js +0 -61
  200. package/lib/js/control/elevationProfile/ElevationProfileControl.d.ts +0 -33
  201. package/lib/js/control/elevationProfile/ElevationProfileControl.js +0 -153
  202. package/lib/js/control/elevationProfile/ElevationProfileLegend.d.ts +0 -20
  203. package/lib/js/control/elevationProfile/ElevationProfileLegend.js +0 -82
  204. package/lib/js/control/elevationProfile/ElevationProfileScene.d.ts +0 -80
  205. package/lib/js/control/elevationProfile/ElevationProfileScene.js +0 -542
  206. package/lib/js/control/elevationProfile/ElevationProfileView.d.ts +0 -65
  207. package/lib/js/control/elevationProfile/ElevationProfileView.js +0 -504
  208. package/lib/js/control/elevationProfile/PointListDialog.d.ts +0 -12
  209. package/lib/js/control/elevationProfile/PointListDialog.js +0 -57
  210. package/lib/js/control/geoObjectEditor/ArrowEntity.d.ts +0 -15
  211. package/lib/js/control/geoObjectEditor/ArrowEntity.js +0 -59
  212. package/lib/js/control/geoObjectEditor/AxisTrackEntity.d.ts +0 -9
  213. package/lib/js/control/geoObjectEditor/AxisTrackEntity.js +0 -93
  214. package/lib/js/control/geoObjectEditor/GeoObjectEditor.d.ts +0 -13
  215. package/lib/js/control/geoObjectEditor/GeoObjectEditor.js +0 -30
  216. package/lib/js/control/geoObjectEditor/GeoObjectEditorDialog.d.ts +0 -69
  217. package/lib/js/control/geoObjectEditor/GeoObjectEditorDialog.js +0 -488
  218. package/lib/js/control/geoObjectEditor/GeoObjectEditorScene.d.ts +0 -127
  219. package/lib/js/control/geoObjectEditor/GeoObjectEditorScene.js +0 -549
  220. package/lib/js/control/geoObjectEditor/MoveAxisEntity.d.ts +0 -17
  221. package/lib/js/control/geoObjectEditor/MoveAxisEntity.js +0 -107
  222. package/lib/js/control/geoObjectEditor/MovePlaneEntity.d.ts +0 -7
  223. package/lib/js/control/geoObjectEditor/MovePlaneEntity.js +0 -31
  224. package/lib/js/control/geoObjectEditor/RotateEntity.d.ts +0 -9
  225. package/lib/js/control/geoObjectEditor/RotateEntity.js +0 -105
  226. package/lib/js/control/geoObjectEditor/colors.d.ts +0 -8
  227. package/lib/js/control/geoObjectEditor/colors.js +0 -8
  228. package/lib/js/control/heightRuler/HeightRuler.d.ts +0 -7
  229. package/lib/js/control/heightRuler/HeightRuler.js +0 -11
  230. package/lib/js/control/heightRuler/HeightRulerScene.d.ts +0 -35
  231. package/lib/js/control/heightRuler/HeightRulerScene.js +0 -181
  232. package/lib/js/control/heightRuler/HeightRulerSwitcher.d.ts +0 -6
  233. package/lib/js/control/heightRuler/HeightRulerSwitcher.js +0 -13
  234. package/lib/js/control/index.js +0 -30
  235. package/lib/js/control/ruler/Ruler.d.ts +0 -14
  236. package/lib/js/control/ruler/Ruler.js +0 -23
  237. package/lib/js/control/ruler/RulerScene.d.ts +0 -88
  238. package/lib/js/control/ruler/RulerScene.js +0 -324
  239. package/lib/js/control/selection/Selection.d.ts +0 -56
  240. package/lib/js/control/selection/Selection.js +0 -78
  241. package/lib/js/control/selection/SelectionScene.d.ts +0 -44
  242. package/lib/js/control/selection/SelectionScene.js +0 -272
  243. package/lib/js/control/timeline/TimelineControl.d.ts +0 -18
  244. package/lib/js/control/timeline/TimelineControl.js +0 -81
  245. package/lib/js/control/timeline/TimelineModel.d.ts +0 -41
  246. package/lib/js/control/timeline/TimelineModel.js +0 -104
  247. package/lib/js/control/timeline/TimelineView.d.ts +0 -86
  248. package/lib/js/control/timeline/TimelineView.js +0 -363
  249. package/lib/js/control/timeline/timelineUtils.d.ts +0 -12
  250. package/lib/js/control/timeline/timelineUtils.js +0 -112
  251. package/lib/js/control/visibleExtent/Segment.js +0 -1301
  252. package/lib/js/control/visibleExtent/VisibleExtent.js +0 -56
  253. package/lib/js/control/visibleExtent/drawnode.d.ts +0 -7
  254. package/lib/js/control/visibleExtent/drawnode.js +0 -718
  255. package/lib/js/ellipsoid/Ellipsoid.d.ts +0 -194
  256. package/lib/js/ellipsoid/Ellipsoid.js +0 -459
  257. package/lib/js/ellipsoid/index.d.ts +0 -4
  258. package/lib/js/ellipsoid/index.js +0 -4
  259. package/lib/js/ellipsoid/mars.d.ts +0 -6
  260. package/lib/js/ellipsoid/mars.js +0 -6
  261. package/lib/js/ellipsoid/moon.d.ts +0 -6
  262. package/lib/js/ellipsoid/moon.js +0 -6
  263. package/lib/js/ellipsoid/wgs84.d.ts +0 -6
  264. package/lib/js/ellipsoid/wgs84.js +0 -6
  265. package/lib/js/entity/BaseBillboard.d.ts +0 -225
  266. package/lib/js/entity/BaseBillboard.js +0 -284
  267. package/lib/js/entity/BaseBillboardHandler.d.ts +0 -81
  268. package/lib/js/entity/BaseBillboardHandler.js +0 -546
  269. package/lib/js/entity/Billboard.d.ts +0 -114
  270. package/lib/js/entity/Billboard.js +0 -127
  271. package/lib/js/entity/BillboardHandler.d.ts +0 -15
  272. package/lib/js/entity/BillboardHandler.js +0 -103
  273. package/lib/js/entity/Entity.d.ts +0 -630
  274. package/lib/js/entity/Entity.js +0 -957
  275. package/lib/js/entity/EntityCollection.d.ts +0 -368
  276. package/lib/js/entity/EntityCollection.js +0 -655
  277. package/lib/js/entity/GeoObject.d.ts +0 -257
  278. package/lib/js/entity/GeoObject.js +0 -318
  279. package/lib/js/entity/GeoObjectHandler.d.ts +0 -81
  280. package/lib/js/entity/GeoObjectHandler.js +0 -515
  281. package/lib/js/entity/Geometry.d.ts +0 -125
  282. package/lib/js/entity/Geometry.js +0 -291
  283. package/lib/js/entity/GeometryHandler.d.ts +0 -86
  284. package/lib/js/entity/GeometryHandler.js +0 -745
  285. package/lib/js/entity/InstanceData.d.ts +0 -76
  286. package/lib/js/entity/InstanceData.js +0 -347
  287. package/lib/js/entity/Label.d.ts +0 -230
  288. package/lib/js/entity/Label.js +0 -322
  289. package/lib/js/entity/LabelHandler.d.ts +0 -65
  290. package/lib/js/entity/LabelHandler.js +0 -696
  291. package/lib/js/entity/LabelWorker.d.ts +0 -15
  292. package/lib/js/entity/LabelWorker.js +0 -163
  293. package/lib/js/entity/PointCloud.d.ts +0 -179
  294. package/lib/js/entity/PointCloud.js +0 -327
  295. package/lib/js/entity/PointCloudHandler.d.ts +0 -42
  296. package/lib/js/entity/PointCloudHandler.js +0 -82
  297. package/lib/js/entity/Polyline.d.ts +0 -360
  298. package/lib/js/entity/Polyline.js +0 -1635
  299. package/lib/js/entity/PolylineHandler.d.ts +0 -29
  300. package/lib/js/entity/PolylineHandler.js +0 -103
  301. package/lib/js/entity/Ray.d.ts +0 -135
  302. package/lib/js/entity/Ray.js +0 -171
  303. package/lib/js/entity/RayHandler.d.ts +0 -70
  304. package/lib/js/entity/RayHandler.js +0 -496
  305. package/lib/js/entity/Strip.d.ts +0 -141
  306. package/lib/js/entity/Strip.js +0 -417
  307. package/lib/js/entity/StripHandler.d.ts +0 -42
  308. package/lib/js/entity/StripHandler.js +0 -110
  309. package/lib/js/entity/index.d.ts +0 -10
  310. package/lib/js/entity/index.js +0 -10
  311. package/lib/js/index.d.ts +0 -34
  312. package/lib/js/index.js +0 -34
  313. package/lib/js/input/KeyboardHandler.d.ts +0 -33
  314. package/lib/js/input/KeyboardHandler.js +0 -159
  315. package/lib/js/input/MouseHandler.d.ts +0 -17
  316. package/lib/js/input/MouseHandler.js +0 -92
  317. package/lib/js/input/TouchHandler.d.ts +0 -11
  318. package/lib/js/input/TouchHandler.js +0 -42
  319. package/lib/js/input/input.d.ts +0 -3
  320. package/lib/js/input/input.js +0 -47
  321. package/lib/js/layer/BaseGeoImage.d.ts +0 -146
  322. package/lib/js/layer/BaseGeoImage.js +0 -382
  323. package/lib/js/layer/Bing.d.ts +0 -5
  324. package/lib/js/layer/Bing.js +0 -41
  325. package/lib/js/layer/CanvasTiles.d.ts +0 -104
  326. package/lib/js/layer/CanvasTiles.js +0 -292
  327. package/lib/js/layer/GeoImage.d.ts +0 -62
  328. package/lib/js/layer/GeoImage.js +0 -133
  329. package/lib/js/layer/GeoTexture2d.d.ts +0 -18
  330. package/lib/js/layer/GeoTexture2d.js +0 -37
  331. package/lib/js/layer/GeoVideo.d.ts +0 -69
  332. package/lib/js/layer/GeoVideo.js +0 -157
  333. package/lib/js/layer/KML.d.ts +0 -74
  334. package/lib/js/layer/KML.js +0 -303
  335. package/lib/js/layer/Layer.d.ts +0 -416
  336. package/lib/js/layer/Layer.js +0 -734
  337. package/lib/js/layer/Material.d.ts +0 -34
  338. package/lib/js/layer/Material.js +0 -69
  339. package/lib/js/layer/OpenStreetMap.d.ts +0 -5
  340. package/lib/js/layer/OpenStreetMap.js +0 -19
  341. package/lib/js/layer/Vector.d.ts +0 -240
  342. package/lib/js/layer/Vector.js +0 -767
  343. package/lib/js/layer/WMS.d.ts +0 -76
  344. package/lib/js/layer/WMS.js +0 -112
  345. package/lib/js/layer/XYZ.d.ts +0 -149
  346. package/lib/js/layer/XYZ.js +0 -299
  347. package/lib/js/layer/index.d.ts +0 -12
  348. package/lib/js/layer/index.js +0 -12
  349. package/lib/js/light/LightSource.d.ts +0 -36
  350. package/lib/js/light/LightSource.js +0 -86
  351. package/lib/js/math/Line2.d.ts +0 -11
  352. package/lib/js/math/Line2.js +0 -21
  353. package/lib/js/math/Line3.d.ts +0 -28
  354. package/lib/js/math/Line3.js +0 -85
  355. package/lib/js/math/Mat3.d.ts +0 -77
  356. package/lib/js/math/Mat3.js +0 -139
  357. package/lib/js/math/Mat4.d.ts +0 -204
  358. package/lib/js/math/Mat4.js +0 -487
  359. package/lib/js/math/Plane.d.ts +0 -22
  360. package/lib/js/math/Plane.js +0 -118
  361. package/lib/js/math/Quat.d.ts +0 -393
  362. package/lib/js/math/Quat.js +0 -794
  363. package/lib/js/math/Ray.d.ts +0 -72
  364. package/lib/js/math/Ray.js +0 -211
  365. package/lib/js/math/Vec2.d.ts +0 -332
  366. package/lib/js/math/Vec2.js +0 -495
  367. package/lib/js/math/Vec3.d.ts +0 -488
  368. package/lib/js/math/Vec3.js +0 -828
  369. package/lib/js/math/Vec4.d.ts +0 -163
  370. package/lib/js/math/Vec4.js +0 -211
  371. package/lib/js/math/coder.d.ts +0 -53
  372. package/lib/js/math/coder.js +0 -101
  373. package/lib/js/math/index.d.ts +0 -14
  374. package/lib/js/math/index.js +0 -11
  375. package/lib/js/math.d.ts +0 -266
  376. package/lib/js/math.js +0 -379
  377. package/lib/js/mercator.d.ts +0 -92
  378. package/lib/js/mercator.js +0 -120
  379. package/lib/js/proj/EPSG3857.d.ts +0 -9
  380. package/lib/js/proj/EPSG3857.js +0 -9
  381. package/lib/js/proj/EPSG4326.d.ts +0 -9
  382. package/lib/js/proj/EPSG4326.js +0 -9
  383. package/lib/js/proj/Proj.d.ts +0 -43
  384. package/lib/js/proj/Proj.js +0 -38
  385. package/lib/js/proj/equi.d.ts +0 -9
  386. package/lib/js/proj/equi.js +0 -9
  387. package/lib/js/quadTree/EPSG4326/EPSG4326QuadTreeStrategy.d.ts +0 -6
  388. package/lib/js/quadTree/EPSG4326/EPSG4326QuadTreeStrategy.js +0 -16
  389. package/lib/js/quadTree/EntityCollectionNode.d.ts +0 -46
  390. package/lib/js/quadTree/EntityCollectionNode.js +0 -262
  391. package/lib/js/quadTree/EntityCollectionsTreeStrategy.d.ts +0 -25
  392. package/lib/js/quadTree/EntityCollectionsTreeStrategy.js +0 -49
  393. package/lib/js/quadTree/Node.d.ts +0 -80
  394. package/lib/js/quadTree/Node.js +0 -712
  395. package/lib/js/quadTree/QuadTreeStrategy.d.ts +0 -39
  396. package/lib/js/quadTree/QuadTreeStrategy.js +0 -98
  397. package/lib/js/quadTree/earth/EarthEntityCollectionNodeLonLat.d.ts +0 -19
  398. package/lib/js/quadTree/earth/EarthEntityCollectionNodeLonLat.js +0 -74
  399. package/lib/js/quadTree/earth/EarthEntityCollectionsTreeStrategy.d.ts +0 -19
  400. package/lib/js/quadTree/earth/EarthEntityCollectionsTreeStrategy.js +0 -103
  401. package/lib/js/quadTree/earth/EarthQuadTreeStrategy.d.ts +0 -27
  402. package/lib/js/quadTree/earth/EarthQuadTreeStrategy.js +0 -77
  403. package/lib/js/quadTree/equi/EquiEntityCollectionNodeLonLat.d.ts +0 -18
  404. package/lib/js/quadTree/equi/EquiEntityCollectionNodeLonLat.js +0 -70
  405. package/lib/js/quadTree/equi/EquiEntityCollectionsTreeStrategy.d.ts +0 -17
  406. package/lib/js/quadTree/equi/EquiEntityCollectionsTreeStrategy.js +0 -75
  407. package/lib/js/quadTree/equi/EquiQuadTreeStrategy.d.ts +0 -19
  408. package/lib/js/quadTree/equi/EquiQuadTreeStrategy.js +0 -62
  409. package/lib/js/quadTree/index.d.ts +0 -12
  410. package/lib/js/quadTree/index.js +0 -12
  411. package/lib/js/quadTree/quadTree.d.ts +0 -40
  412. package/lib/js/quadTree/quadTree.js +0 -66
  413. package/lib/js/quadTree/wgs84/Wgs84QuadTreeStrategy.d.ts +0 -6
  414. package/lib/js/quadTree/wgs84/Wgs84QuadTreeStrategy.js +0 -15
  415. package/lib/js/renderer/Renderer.d.ts +0 -343
  416. package/lib/js/renderer/Renderer.js +0 -969
  417. package/lib/js/renderer/RendererEvents.d.ts +0 -245
  418. package/lib/js/renderer/RendererEvents.js +0 -870
  419. package/lib/js/scene/Axes.d.ts +0 -12
  420. package/lib/js/scene/Axes.js +0 -59
  421. package/lib/js/scene/BaseNode.d.ts +0 -61
  422. package/lib/js/scene/BaseNode.js +0 -69
  423. package/lib/js/scene/Planet.d.ts +0 -641
  424. package/lib/js/scene/Planet.js +0 -1617
  425. package/lib/js/scene/RenderNode.d.ts +0 -135
  426. package/lib/js/scene/RenderNode.js +0 -313
  427. package/lib/js/scene/SkyBox.d.ts +0 -13
  428. package/lib/js/scene/SkyBox.js +0 -87
  429. package/lib/js/scene/index.d.ts +0 -5
  430. package/lib/js/scene/index.js +0 -5
  431. package/lib/js/segment/Segment.d.ts +0 -289
  432. package/lib/js/segment/Segment.js +0 -1212
  433. package/lib/js/segment/SegmentLonLat.d.ts +0 -40
  434. package/lib/js/segment/SegmentLonLat.js +0 -111
  435. package/lib/js/segment/SegmentLonLatEqui.d.ts +0 -13
  436. package/lib/js/segment/SegmentLonLatEqui.js +0 -46
  437. package/lib/js/segment/Slice.d.ts +0 -13
  438. package/lib/js/segment/Slice.js +0 -33
  439. package/lib/js/segment/segmentHelper.js +0 -180
  440. package/lib/js/shaders/atmos.d.ts +0 -20
  441. package/lib/js/shaders/atmos.js +0 -326
  442. package/lib/js/shaders/billboard.d.ts +0 -3
  443. package/lib/js/shaders/billboard.js +0 -214
  444. package/lib/js/shaders/bloom.d.ts +0 -2
  445. package/lib/js/shaders/bloom.js +0 -32
  446. package/lib/js/shaders/blur.d.ts +0 -3
  447. package/lib/js/shaders/blur.js +0 -68
  448. package/lib/js/shaders/depth.d.ts +0 -2
  449. package/lib/js/shaders/depth.js +0 -40
  450. package/lib/js/shaders/drawnode.d.ts +0 -10
  451. package/lib/js/shaders/drawnode.js +0 -1008
  452. package/lib/js/shaders/geoObject.d.ts +0 -4
  453. package/lib/js/shaders/geoObject.js +0 -294
  454. package/lib/js/shaders/label.d.ts +0 -4
  455. package/lib/js/shaders/label.js +0 -589
  456. package/lib/js/shaders/lumFilter.d.ts +0 -2
  457. package/lib/js/shaders/lumFilter.js +0 -36
  458. package/lib/js/shaders/pointCloud.d.ts +0 -2
  459. package/lib/js/shaders/pointCloud.js +0 -32
  460. package/lib/js/shaders/polyline.d.ts +0 -3
  461. package/lib/js/shaders/polyline.js +0 -364
  462. package/lib/js/shaders/ray.d.ts +0 -2
  463. package/lib/js/shaders/ray.js +0 -80
  464. package/lib/js/shaders/screenFrame.d.ts +0 -2
  465. package/lib/js/shaders/screenFrame.js +0 -26
  466. package/lib/js/shaders/skybox.d.ts +0 -2
  467. package/lib/js/shaders/skybox.js +0 -28
  468. package/lib/js/shaders/toneMapping.d.ts +0 -2
  469. package/lib/js/shaders/toneMapping.js +0 -85
  470. package/lib/js/shaders/utils.d.ts +0 -1
  471. package/lib/js/shaders/utils.js +0 -97
  472. package/lib/js/terrain/BilTerrain.d.ts +0 -19
  473. package/lib/js/terrain/BilTerrain.js +0 -153
  474. package/lib/js/terrain/EmptyTerrain.d.ts +0 -113
  475. package/lib/js/terrain/EmptyTerrain.js +0 -113
  476. package/lib/js/terrain/Geoid.d.ts +0 -33
  477. package/lib/js/terrain/Geoid.js +0 -191
  478. package/lib/js/terrain/GlobusRgbTerrain.d.ts +0 -7
  479. package/lib/js/terrain/GlobusRgbTerrain.js +0 -25
  480. package/lib/js/terrain/GlobusTerrain.d.ts +0 -140
  481. package/lib/js/terrain/GlobusTerrain.js +0 -351
  482. package/lib/js/terrain/RgbTerrain.d.ts +0 -43
  483. package/lib/js/terrain/RgbTerrain.js +0 -428
  484. package/lib/js/terrain/index.d.ts +0 -6
  485. package/lib/js/terrain/index.js +0 -6
  486. package/lib/js/ui/Button.d.ts +0 -33
  487. package/lib/js/ui/Button.js +0 -78
  488. package/lib/js/ui/ButtonGroup.d.ts +0 -16
  489. package/lib/js/ui/ButtonGroup.js +0 -41
  490. package/lib/js/ui/Checkbox.d.ts +0 -32
  491. package/lib/js/ui/Checkbox.js +0 -110
  492. package/lib/js/ui/Color.d.ts +0 -23
  493. package/lib/js/ui/Color.js +0 -59
  494. package/lib/js/ui/Dialog.d.ts +0 -59
  495. package/lib/js/ui/Dialog.js +0 -193
  496. package/lib/js/ui/Input.d.ts +0 -33
  497. package/lib/js/ui/Input.js +0 -107
  498. package/lib/js/ui/Slider.d.ts +0 -39
  499. package/lib/js/ui/Slider.js +0 -129
  500. package/lib/js/ui/ToggleButton.d.ts +0 -21
  501. package/lib/js/ui/ToggleButton.js +0 -42
  502. package/lib/js/ui/View.d.ts +0 -39
  503. package/lib/js/ui/View.js +0 -157
  504. package/lib/js/ui/icons.d.ts +0 -1
  505. package/lib/js/ui/icons.js +0 -3
  506. package/lib/js/utils/BaseWorker.d.ts +0 -14
  507. package/lib/js/utils/BaseWorker.js +0 -47
  508. package/lib/js/utils/FontAtlas.d.ts +0 -82
  509. package/lib/js/utils/FontAtlas.js +0 -220
  510. package/lib/js/utils/GeoImageCreator.d.ts +0 -34
  511. package/lib/js/utils/GeoImageCreator.js +0 -163
  512. package/lib/js/utils/ImagesCacheManager.d.ts +0 -22
  513. package/lib/js/utils/ImagesCacheManager.js +0 -63
  514. package/lib/js/utils/Loader.d.ts +0 -63
  515. package/lib/js/utils/Loader.js +0 -156
  516. package/lib/js/utils/NormalMapCreator.d.ts +0 -53
  517. package/lib/js/utils/NormalMapCreator.js +0 -310
  518. package/lib/js/utils/PlainSegmentWorker.d.ts +0 -24
  519. package/lib/js/utils/PlainSegmentWorker.js +0 -385
  520. package/lib/js/utils/TerrainWorker.d.ts +0 -28
  521. package/lib/js/utils/TerrainWorker.js +0 -551
  522. package/lib/js/utils/TextureAtlas.d.ts +0 -115
  523. package/lib/js/utils/TextureAtlas.js +0 -231
  524. package/lib/js/utils/VectorTileCreator.d.ts +0 -18
  525. package/lib/js/utils/VectorTileCreator.js +0 -320
  526. package/lib/js/utils/colorTable.d.ts +0 -3
  527. package/lib/js/utils/colorTable.js +0 -143
  528. package/lib/js/utils/earcut.d.ts +0 -7
  529. package/lib/js/utils/earcut.js +0 -536
  530. package/lib/js/utils/objParser.d.ts +0 -56
  531. package/lib/js/utils/objParser.js +0 -293
  532. package/lib/js/utils/shared.js +0 -961
  533. package/lib/js/utils/units.d.ts +0 -16
  534. package/lib/js/utils/units.js +0 -61
  535. package/lib/js/webgl/BaseFramebuffer.d.ts +0 -52
  536. package/lib/js/webgl/BaseFramebuffer.js +0 -88
  537. package/lib/js/webgl/Framebuffer.js +0 -256
  538. package/lib/js/webgl/Handler.d.ts +0 -491
  539. package/lib/js/webgl/Handler.js +0 -1035
  540. package/lib/js/webgl/Multisample.d.ts +0 -28
  541. package/lib/js/webgl/Multisample.js +0 -77
  542. package/lib/js/webgl/Program.d.ts +0 -159
  543. package/lib/js/webgl/Program.js +0 -306
  544. package/lib/js/webgl/ProgramController.d.ts +0 -87
  545. package/lib/js/webgl/ProgramController.js +0 -110
  546. package/lib/js/webgl/index.d.ts +0 -6
  547. package/lib/js/webgl/index.js +0 -6
  548. package/lib/js/webgl/types.d.ts +0 -9
  549. package/lib/js/webgl/types.js +0 -26
  550. package/lib/js/webgl/variableHandlers.d.ts +0 -22
  551. package/lib/js/webgl/variableHandlers.js +0 -78
  552. /package/lib/{@openglobus/js/Clock.d.ts → Clock.d.ts} +0 -0
  553. /package/lib/{@openglobus/js/Deferred.d.ts → Deferred.d.ts} +0 -0
  554. /package/lib/{@openglobus/js/Events.d.ts → Events.d.ts} +0 -0
  555. /package/lib/{@openglobus/js/Extent.d.ts → Extent.d.ts} +0 -0
  556. /package/lib/{@openglobus/js/ImageCanvas.d.ts → ImageCanvas.d.ts} +0 -0
  557. /package/lib/{@openglobus/js/Lock.d.ts → Lock.d.ts} +0 -0
  558. /package/lib/{@openglobus/js/LonLat.d.ts → LonLat.d.ts} +0 -0
  559. /package/lib/{@openglobus/js/Popup.d.ts → Popup.d.ts} +0 -0
  560. /package/lib/{@openglobus/js/QueueArray.d.ts → QueueArray.d.ts} +0 -0
  561. /package/lib/{@openglobus/js/Rectangle.d.ts → Rectangle.d.ts} +0 -0
  562. /package/lib/{@openglobus/js/Stack.d.ts → Stack.d.ts} +0 -0
  563. /package/lib/{@openglobus/js/astro → astro}/astro.d.ts +0 -0
  564. /package/lib/{@openglobus/js/astro → astro}/earth.d.ts +0 -0
  565. /package/lib/{@openglobus/js/astro → astro}/jd.d.ts +0 -0
  566. /package/lib/{@openglobus/js/astro → astro}/orbit.d.ts +0 -0
  567. /package/lib/{@openglobus/js/astro → astro}/rotation.d.ts +0 -0
  568. /package/lib/{@openglobus/js/bv → bv}/Box.d.ts +0 -0
  569. /package/lib/{@openglobus/js/bv → bv}/Sphere.d.ts +0 -0
  570. /package/lib/{@openglobus/js/bv → bv}/index.d.ts +0 -0
  571. /package/lib/{@openglobus/js/camera → camera}/PlanetCamera.d.ts +0 -0
  572. /package/lib/{@openglobus/js/camera → camera}/index.d.ts +0 -0
  573. /package/lib/{@openglobus/js/cons.d.ts → cons.d.ts} +0 -0
  574. /package/lib/{@openglobus/js/control → control}/CameraLock.d.ts +0 -0
  575. /package/lib/{@openglobus/js/control → control}/CompassButton.d.ts +0 -0
  576. /package/lib/{@openglobus/js/control → control}/Control.d.ts +0 -0
  577. /package/lib/{@openglobus/js/control → control}/DebugInfo.d.ts +0 -0
  578. /package/lib/{@openglobus/js/control → control}/DrawingSwitcher.d.ts +0 -0
  579. /package/lib/{@openglobus/js/control → control}/EarthCoordinates.d.ts +0 -0
  580. /package/lib/{@openglobus/js/control → control}/GeoImageDragControl.d.ts +0 -0
  581. /package/lib/{@openglobus/js/control → control}/LayerAnimation.d.ts +0 -0
  582. /package/lib/{@openglobus/js/control → control}/LayerSwitcher.d.ts +0 -0
  583. /package/lib/{@openglobus/js/control → control}/Lighting.d.ts +0 -0
  584. /package/lib/{@openglobus/js/control → control}/MouseNavigation.d.ts +0 -0
  585. /package/lib/{@openglobus/js/control → control}/OldMouseNavigation.d.ts +0 -0
  586. /package/lib/{@openglobus/js/control → control}/RulerSwitcher.d.ts +0 -0
  587. /package/lib/{@openglobus/js/control → control}/ScaleControl.d.ts +0 -0
  588. /package/lib/{@openglobus/js/control → control}/SegmentBoundVisualization.d.ts +0 -0
  589. /package/lib/{@openglobus/js/control → control}/ShowFps.d.ts +0 -0
  590. /package/lib/{@openglobus/js/control → control}/SimpleNavigation.d.ts +0 -0
  591. /package/lib/{@openglobus/js/control → control}/SimpleSkyBackground.d.ts +0 -0
  592. /package/lib/{@openglobus/js/control → control}/Sun.d.ts +0 -0
  593. /package/lib/{@openglobus/js/control → control}/ToggleWireframe.d.ts +0 -0
  594. /package/lib/{@openglobus/js/control → control}/TouchNavigation.d.ts +0 -0
  595. /package/lib/{@openglobus/js/control → control}/ZoomControl.d.ts +0 -0
  596. /package/lib/{@openglobus/js/control → control}/drawing/DrawingControl.d.ts +0 -0
  597. /package/lib/{@openglobus/js/control → control}/drawing/LineStringDrawingScene.d.ts +0 -0
  598. /package/lib/{@openglobus/js/control → control}/drawing/PolygonDrawingScene.d.ts +0 -0
  599. /package/lib/{@openglobus/js/control → control}/elevationProfile/ElevationProfile.d.ts +0 -0
  600. /package/lib/{@openglobus/js/control → control}/elevationProfile/ElevationProfileButtonsView.d.ts +0 -0
  601. /package/lib/{@openglobus/js/control → control}/elevationProfile/ElevationProfileControl.d.ts +0 -0
  602. /package/lib/{@openglobus/js/control → control}/elevationProfile/ElevationProfileLegend.d.ts +0 -0
  603. /package/lib/{@openglobus/js/control → control}/elevationProfile/ElevationProfileScene.d.ts +0 -0
  604. /package/lib/{@openglobus/js/control → control}/elevationProfile/ElevationProfileView.d.ts +0 -0
  605. /package/lib/{@openglobus/js/control → control}/elevationProfile/PointListDialog.d.ts +0 -0
  606. /package/lib/{@openglobus/js/control → control}/geoObjectEditor/ArrowEntity.d.ts +0 -0
  607. /package/lib/{@openglobus/js/control → control}/geoObjectEditor/AxisTrackEntity.d.ts +0 -0
  608. /package/lib/{@openglobus/js/control → control}/geoObjectEditor/GeoObjectEditor.d.ts +0 -0
  609. /package/lib/{@openglobus/js/control → control}/geoObjectEditor/GeoObjectEditorDialog.d.ts +0 -0
  610. /package/lib/{@openglobus/js/control → control}/geoObjectEditor/GeoObjectEditorScene.d.ts +0 -0
  611. /package/lib/{@openglobus/js/control → control}/geoObjectEditor/MoveAxisEntity.d.ts +0 -0
  612. /package/lib/{@openglobus/js/control → control}/geoObjectEditor/MovePlaneEntity.d.ts +0 -0
  613. /package/lib/{@openglobus/js/control → control}/geoObjectEditor/RotateEntity.d.ts +0 -0
  614. /package/lib/{@openglobus/js/control → control}/geoObjectEditor/colors.d.ts +0 -0
  615. /package/lib/{@openglobus/js/control → control}/heightRuler/HeightRuler.d.ts +0 -0
  616. /package/lib/{@openglobus/js/control → control}/heightRuler/HeightRulerScene.d.ts +0 -0
  617. /package/lib/{@openglobus/js/control → control}/heightRuler/HeightRulerSwitcher.d.ts +0 -0
  618. /package/lib/{@openglobus/js/control → control}/ruler/Ruler.d.ts +0 -0
  619. /package/lib/{@openglobus/js/control → control}/ruler/RulerScene.d.ts +0 -0
  620. /package/lib/{@openglobus/js/control → control}/selection/Selection.d.ts +0 -0
  621. /package/lib/{@openglobus/js/control → control}/selection/SelectionScene.d.ts +0 -0
  622. /package/lib/{@openglobus/js/control → control}/timeline/TimelineControl.d.ts +0 -0
  623. /package/lib/{@openglobus/js/control → control}/timeline/TimelineModel.d.ts +0 -0
  624. /package/lib/{@openglobus/js/control → control}/timeline/TimelineView.d.ts +0 -0
  625. /package/lib/{@openglobus/js/control → control}/timeline/timelineUtils.d.ts +0 -0
  626. /package/lib/{js/control → control}/visibleExtent/VisibleExtent.d.ts +0 -0
  627. /package/lib/{@openglobus/js/control → control}/visibleExtent/drawnode.d.ts +0 -0
  628. /package/lib/{@openglobus/js/ellipsoid → ellipsoid}/Ellipsoid.d.ts +0 -0
  629. /package/lib/{@openglobus/js/ellipsoid → ellipsoid}/index.d.ts +0 -0
  630. /package/lib/{@openglobus/js/ellipsoid → ellipsoid}/mars.d.ts +0 -0
  631. /package/lib/{@openglobus/js/ellipsoid → ellipsoid}/moon.d.ts +0 -0
  632. /package/lib/{@openglobus/js/ellipsoid → ellipsoid}/wgs84.d.ts +0 -0
  633. /package/lib/{@openglobus/js/entity → entity}/BaseBillboard.d.ts +0 -0
  634. /package/lib/{@openglobus/js/entity → entity}/BaseBillboardHandler.d.ts +0 -0
  635. /package/lib/{@openglobus/js/entity → entity}/Billboard.d.ts +0 -0
  636. /package/lib/{@openglobus/js/entity → entity}/BillboardHandler.d.ts +0 -0
  637. /package/lib/{@openglobus/js/entity → entity}/Entity.d.ts +0 -0
  638. /package/lib/{@openglobus/js/entity → entity}/EntityCollection.d.ts +0 -0
  639. /package/lib/{@openglobus/js/entity → entity}/GeoObject.d.ts +0 -0
  640. /package/lib/{@openglobus/js/entity → entity}/GeoObjectHandler.d.ts +0 -0
  641. /package/lib/{@openglobus/js/entity → entity}/Geometry.d.ts +0 -0
  642. /package/lib/{@openglobus/js/entity → entity}/GeometryHandler.d.ts +0 -0
  643. /package/lib/{@openglobus/js/entity → entity}/InstanceData.d.ts +0 -0
  644. /package/lib/{@openglobus/js/entity → entity}/Label.d.ts +0 -0
  645. /package/lib/{@openglobus/js/entity → entity}/LabelHandler.d.ts +0 -0
  646. /package/lib/{@openglobus/js/entity → entity}/LabelWorker.d.ts +0 -0
  647. /package/lib/{@openglobus/js/entity → entity}/PointCloud.d.ts +0 -0
  648. /package/lib/{@openglobus/js/entity → entity}/PointCloudHandler.d.ts +0 -0
  649. /package/lib/{@openglobus/js/entity → entity}/Polyline.d.ts +0 -0
  650. /package/lib/{@openglobus/js/entity → entity}/PolylineHandler.d.ts +0 -0
  651. /package/lib/{@openglobus/js/entity → entity}/Ray.d.ts +0 -0
  652. /package/lib/{@openglobus/js/entity → entity}/RayHandler.d.ts +0 -0
  653. /package/lib/{@openglobus/js/entity → entity}/Strip.d.ts +0 -0
  654. /package/lib/{@openglobus/js/entity → entity}/StripHandler.d.ts +0 -0
  655. /package/lib/{@openglobus/js/entity → entity}/index.d.ts +0 -0
  656. /package/lib/{@openglobus/js/input → input}/KeyboardHandler.d.ts +0 -0
  657. /package/lib/{@openglobus/js/input → input}/MouseHandler.d.ts +0 -0
  658. /package/lib/{@openglobus/js/input → input}/TouchHandler.d.ts +0 -0
  659. /package/lib/{@openglobus/js/input → input}/input.d.ts +0 -0
  660. /package/lib/{@openglobus/js/layer → layer}/BaseGeoImage.d.ts +0 -0
  661. /package/lib/{@openglobus/js/layer → layer}/Bing.d.ts +0 -0
  662. /package/lib/{@openglobus/js/layer → layer}/CanvasTiles.d.ts +0 -0
  663. /package/lib/{@openglobus/js/layer → layer}/GeoImage.d.ts +0 -0
  664. /package/lib/{@openglobus/js/layer → layer}/GeoTexture2d.d.ts +0 -0
  665. /package/lib/{@openglobus/js/layer → layer}/GeoVideo.d.ts +0 -0
  666. /package/lib/{@openglobus/js/layer → layer}/KML.d.ts +0 -0
  667. /package/lib/{@openglobus/js/layer → layer}/Layer.d.ts +0 -0
  668. /package/lib/{@openglobus/js/layer → layer}/Material.d.ts +0 -0
  669. /package/lib/{@openglobus/js/layer → layer}/OpenStreetMap.d.ts +0 -0
  670. /package/lib/{@openglobus/js/layer → layer}/Vector.d.ts +0 -0
  671. /package/lib/{@openglobus/js/layer → layer}/WMS.d.ts +0 -0
  672. /package/lib/{@openglobus/js/layer → layer}/XYZ.d.ts +0 -0
  673. /package/lib/{@openglobus/js/layer → layer}/index.d.ts +0 -0
  674. /package/lib/{@openglobus/js/light → light}/LightSource.d.ts +0 -0
  675. /package/lib/{@openglobus/js/math → math}/Line2.d.ts +0 -0
  676. /package/lib/{@openglobus/js/math → math}/Line3.d.ts +0 -0
  677. /package/lib/{@openglobus/js/math → math}/Mat3.d.ts +0 -0
  678. /package/lib/{@openglobus/js/math → math}/Mat4.d.ts +0 -0
  679. /package/lib/{@openglobus/js/math → math}/Plane.d.ts +0 -0
  680. /package/lib/{@openglobus/js/math → math}/Quat.d.ts +0 -0
  681. /package/lib/{@openglobus/js/math → math}/Ray.d.ts +0 -0
  682. /package/lib/{@openglobus/js/math → math}/Vec2.d.ts +0 -0
  683. /package/lib/{@openglobus/js/math → math}/Vec3.d.ts +0 -0
  684. /package/lib/{@openglobus/js/math → math}/Vec4.d.ts +0 -0
  685. /package/lib/{@openglobus/js/math → math}/coder.d.ts +0 -0
  686. /package/lib/{@openglobus/js/math → math}/index.d.ts +0 -0
  687. /package/lib/{@openglobus/js/math.d.ts → math.d.ts} +0 -0
  688. /package/lib/{@openglobus/js/mercator.d.ts → mercator.d.ts} +0 -0
  689. /package/lib/{@openglobus/js/proj → proj}/EPSG3857.d.ts +0 -0
  690. /package/lib/{@openglobus/js/proj → proj}/EPSG4326.d.ts +0 -0
  691. /package/lib/{@openglobus/js/proj → proj}/Proj.d.ts +0 -0
  692. /package/lib/{@openglobus/js/proj → proj}/equi.d.ts +0 -0
  693. /package/lib/{@openglobus/js/quadTree → quadTree}/EPSG4326/EPSG4326QuadTreeStrategy.d.ts +0 -0
  694. /package/lib/{@openglobus/js/quadTree → quadTree}/EntityCollectionNode.d.ts +0 -0
  695. /package/lib/{@openglobus/js/quadTree → quadTree}/EntityCollectionsTreeStrategy.d.ts +0 -0
  696. /package/lib/{@openglobus/js/quadTree → quadTree}/Node.d.ts +0 -0
  697. /package/lib/{@openglobus/js/quadTree → quadTree}/QuadTreeStrategy.d.ts +0 -0
  698. /package/lib/{@openglobus/js/quadTree → quadTree}/earth/EarthEntityCollectionNodeLonLat.d.ts +0 -0
  699. /package/lib/{@openglobus/js/quadTree → quadTree}/earth/EarthEntityCollectionsTreeStrategy.d.ts +0 -0
  700. /package/lib/{@openglobus/js/quadTree → quadTree}/earth/EarthQuadTreeStrategy.d.ts +0 -0
  701. /package/lib/{@openglobus/js/quadTree → quadTree}/equi/EquiEntityCollectionNodeLonLat.d.ts +0 -0
  702. /package/lib/{@openglobus/js/quadTree → quadTree}/equi/EquiEntityCollectionsTreeStrategy.d.ts +0 -0
  703. /package/lib/{@openglobus/js/quadTree → quadTree}/equi/EquiQuadTreeStrategy.d.ts +0 -0
  704. /package/lib/{@openglobus/js/quadTree → quadTree}/index.d.ts +0 -0
  705. /package/lib/{@openglobus/js/quadTree → quadTree}/quadTree.d.ts +0 -0
  706. /package/lib/{@openglobus/js/quadTree → quadTree}/wgs84/Wgs84QuadTreeStrategy.d.ts +0 -0
  707. /package/lib/{@openglobus/js/renderer → renderer}/RendererEvents.d.ts +0 -0
  708. /package/lib/{@openglobus/res → res}/fonts/Ephesis-Regular.json +0 -0
  709. /package/lib/{@openglobus/res → res}/fonts/Ephesis-Regular.ttf.cfg +0 -0
  710. /package/lib/{@openglobus/res → res}/fonts/Ephesis-Regular.ttf.png +0 -0
  711. /package/lib/{@openglobus/res → res}/fonts/Karla-Bold.json +0 -0
  712. /package/lib/{@openglobus/res → res}/fonts/Karla-Bold.ttf.cfg +0 -0
  713. /package/lib/{@openglobus/res → res}/fonts/Karla-Bold.ttf.png +0 -0
  714. /package/lib/{@openglobus/res → res}/fonts/Karla-Light.json +0 -0
  715. /package/lib/{@openglobus/res → res}/fonts/Karla-Light.ttf.cfg +0 -0
  716. /package/lib/{@openglobus/res → res}/fonts/Karla-Light.ttf.png +0 -0
  717. /package/lib/{@openglobus/res → res}/fonts/Karla-Medium.json +0 -0
  718. /package/lib/{@openglobus/res → res}/fonts/Karla-Medium.ttf.cfg +0 -0
  719. /package/lib/{@openglobus/res → res}/fonts/Karla-Medium.ttf.png +0 -0
  720. /package/lib/{@openglobus/res → res}/fonts/NotoSansArabic-Regular.json +0 -0
  721. /package/lib/{@openglobus/res → res}/fonts/NotoSansArabic-Regular.ttf.cfg +0 -0
  722. /package/lib/{@openglobus/res → res}/fonts/NotoSansArabic-Regular.ttf.png +0 -0
  723. /package/lib/{@openglobus/res → res}/fonts/Roboto-Regular.json +0 -0
  724. /package/lib/{@openglobus/res → res}/fonts/Roboto-Regular.ttf.cfg +0 -0
  725. /package/lib/{@openglobus/res → res}/fonts/Roboto-Regular.ttf.png +0 -0
  726. /package/lib/{@openglobus/res → res}/fonts/arial.js +0 -0
  727. /package/lib/{@openglobus/res → res}/fonts/arial.json +0 -0
  728. /package/lib/{@openglobus/res → res}/fonts/arial.ttf.cfg +0 -0
  729. /package/lib/{@openglobus/res → res}/fonts/arial.ttf.png +0 -0
  730. /package/lib/{@openglobus/res → res}/night-4326.png +0 -0
  731. /package/lib/{@openglobus/res → res}/night.png +0 -0
  732. /package/lib/{@openglobus/res → res}/spec.png +0 -0
  733. /package/lib/{@openglobus/js/scene → scene}/Axes.d.ts +0 -0
  734. /package/lib/{@openglobus/js/scene → scene}/BaseNode.d.ts +0 -0
  735. /package/lib/{@openglobus/js/scene → scene}/RenderNode.d.ts +0 -0
  736. /package/lib/{@openglobus/js/scene → scene}/SkyBox.d.ts +0 -0
  737. /package/lib/{@openglobus/js/scene → scene}/index.d.ts +0 -0
  738. /package/lib/{@openglobus/js/segment → segment}/SegmentLonLat.d.ts +0 -0
  739. /package/lib/{@openglobus/js/segment → segment}/SegmentLonLatEqui.d.ts +0 -0
  740. /package/lib/{@openglobus/js/segment → segment}/Slice.d.ts +0 -0
  741. /package/lib/{@openglobus/js/shaders → shaders}/depth.d.ts +0 -0
  742. /package/lib/{@openglobus/js/shaders → shaders}/pointCloud.d.ts +0 -0
  743. /package/lib/{@openglobus/js/shaders → shaders}/screenFrame.d.ts +0 -0
  744. /package/lib/{@openglobus/js/shaders → shaders}/skybox.d.ts +0 -0
  745. /package/lib/{@openglobus/js/terrain → terrain}/BilTerrain.d.ts +0 -0
  746. /package/lib/{@openglobus/js/terrain → terrain}/EmptyTerrain.d.ts +0 -0
  747. /package/lib/{@openglobus/js/terrain → terrain}/Geoid.d.ts +0 -0
  748. /package/lib/{@openglobus/js/terrain → terrain}/GlobusRgbTerrain.d.ts +0 -0
  749. /package/lib/{@openglobus/js/terrain → terrain}/GlobusTerrain.d.ts +0 -0
  750. /package/lib/{@openglobus/js/terrain → terrain}/RgbTerrain.d.ts +0 -0
  751. /package/lib/{@openglobus/js/terrain → terrain}/index.d.ts +0 -0
  752. /package/lib/{@openglobus/js/ui → ui}/Button.d.ts +0 -0
  753. /package/lib/{@openglobus/js/ui → ui}/ButtonGroup.d.ts +0 -0
  754. /package/lib/{@openglobus/js/ui → ui}/Checkbox.d.ts +0 -0
  755. /package/lib/{@openglobus/js/ui → ui}/Color.d.ts +0 -0
  756. /package/lib/{@openglobus/js/ui → ui}/Input.d.ts +0 -0
  757. /package/lib/{@openglobus/js/ui → ui}/Slider.d.ts +0 -0
  758. /package/lib/{@openglobus/js/ui → ui}/ToggleButton.d.ts +0 -0
  759. /package/lib/{@openglobus/js/ui → ui}/icons.d.ts +0 -0
  760. /package/lib/{@openglobus/js/utils → utils}/FontAtlas.d.ts +0 -0
  761. /package/lib/{@openglobus/js/utils → utils}/GeoImageCreator.d.ts +0 -0
  762. /package/lib/{@openglobus/js/utils → utils}/ImagesCacheManager.d.ts +0 -0
  763. /package/lib/{@openglobus/js/utils → utils}/Loader.d.ts +0 -0
  764. /package/lib/{@openglobus/js/utils → utils}/NormalMapCreator.d.ts +0 -0
  765. /package/lib/{@openglobus/js/utils → utils}/PlainSegmentWorker.d.ts +0 -0
  766. /package/lib/{@openglobus/js/utils → utils}/TerrainWorker.d.ts +0 -0
  767. /package/lib/{@openglobus/js/utils → utils}/TextureAtlas.d.ts +0 -0
  768. /package/lib/{@openglobus/js/utils → utils}/VectorTileCreator.d.ts +0 -0
  769. /package/lib/{@openglobus/js/utils → utils}/colorTable.d.ts +0 -0
  770. /package/lib/{@openglobus/js/utils → utils}/earcut.d.ts +0 -0
  771. /package/lib/{@openglobus/js/utils → utils}/units.d.ts +0 -0
  772. /package/lib/{@openglobus/js/webgl → webgl}/BaseFramebuffer.d.ts +0 -0
  773. /package/lib/{@openglobus/js/webgl → webgl}/Multisample.d.ts +0 -0
  774. /package/lib/{@openglobus/js/webgl → webgl}/Program.d.ts +0 -0
  775. /package/lib/{@openglobus/js/webgl → webgl}/ProgramController.d.ts +0 -0
  776. /package/lib/{@openglobus/js/webgl → webgl}/index.d.ts +0 -0
  777. /package/lib/{@openglobus/js/webgl → webgl}/types.d.ts +0 -0
  778. /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
- ];