@openglobus/og 0.17.2 → 0.18.1

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