@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,1687 +0,0 @@
1
- "use strict";
2
-
3
- import { Box } from "../bv/Box.js";
4
- import { Sphere } from "../bv/Sphere.js";
5
- import { Extent } from "../Extent.js";
6
- import { Layer } from "../layer/Layer.js";
7
- import { LonLat } from "../LonLat.js";
8
- import { Ray } from "../math/Ray.js";
9
- import { Vec3 } from "../math/Vec3.js";
10
- import * as mercator from "../mercator.js";
11
- import { EPSG3857 } from "../proj/EPSG3857.js";
12
- import { E, N, NOTRENDERING, OPSIDE, S, W } from "../quadTree/quadTree.js";
13
- import * as segmentHelper from "../segment/segmentHelper.js";
14
- import { getMatrixSubArray } from "../utils/shared.js";
15
- import { Slice } from "./Slice.js";
16
-
17
- export const TILEGROUP_COMMON = 0;
18
- export const TILEGROUP_NORTH = 1;
19
- export const TILEGROUP_SOUTH = 2;
20
-
21
- var _tempHigh = new Vec3();
22
- var _tempLow = new Vec3();
23
-
24
- let _v0 = new Vec3(),
25
- _v1 = new Vec3(),
26
- _v2 = new Vec3(),
27
- _v3 = new Vec3();
28
-
29
- let _ray = new Ray(),
30
- _rayEx = new Ray();
31
-
32
- window.ELLNORM = false;
33
-
34
- const _S = new Array(4);
35
- _S[N] = 0;
36
- _S[E] = 1;
37
- _S[S] = 1;
38
- _S[W] = 0;
39
-
40
- const _V = new Array(4);
41
- _V[N] = false;
42
- _V[E] = true;
43
- _V[S] = false;
44
- _V[W] = true;
45
-
46
- /**
47
- * Planet segment Web Mercator tile class that stored and rendered with quad tree.
48
- * @class
49
- * @param {quadTree.Node} node - Segment node.
50
- * @param {Planet} planet - Current planet scene.
51
- * @param {Number} tileZoom - Zoom index.
52
- * @param {Extent} extent - Segment extent.
53
- */
54
- class Segment {
55
- /**
56
- * @param {quadTree.Node} node - Segment node.
57
- * @param {Planet} planet - Current planet scene.
58
- * @param {number} tileZoom - Zoom index.
59
- * @param {Extent} extent - Segment extent.
60
- */
61
- constructor(node, planet, tileZoom, extent) {
62
- this.isPole = false;
63
-
64
- this._tileGroup = TILEGROUP_COMMON;
65
-
66
- this._projection = EPSG3857;
67
-
68
- /**
69
- * Quad tree node of the segment.
70
- * @type {quadTree.Node}
71
- */
72
- this.node = node;
73
-
74
- /**
75
- * Planet pointer.
76
- * @type {Planet}
77
- */
78
- this.planet = planet;
79
-
80
- /**
81
- * WebGl handler pointer.
82
- * @type {Handler}
83
- */
84
- this.handler = planet.renderer.handler;
85
-
86
- /**
87
- * Segment bounding sphere
88
- * @type {Sphere}
89
- */
90
- this.bsphere = new Sphere();
91
-
92
- this._plainRadius = 0;
93
-
94
- /**
95
- * Segment bounding box.
96
- * @type {Box}
97
- */
98
- this.bbox = new Box();
99
-
100
- this._sw = new Vec3();
101
- this._nw = new Vec3();
102
- this._se = new Vec3();
103
- this._ne = new Vec3();
104
-
105
- this.centerNormal = new Vec3();
106
-
107
- /**
108
- * Geographical extent.
109
- * @type {Extent}
110
- */
111
- this._extent = extent;
112
-
113
- this._extentLonLat = null;
114
-
115
- /**
116
- * Vertices grid size.
117
- * @type {number}
118
- */
119
- this.gridSize = planet.terrain.gridSizeByZoom[tileZoom];
120
-
121
- this.fileGridSize = 0;
122
-
123
- /**
124
- * Tile zoom index.
125
- * @type {number}
126
- */
127
- this.tileZoom = tileZoom;
128
-
129
- /**
130
- * Horizontal tile index.
131
- * @type {number}
132
- */
133
- this.tileX = 0;
134
-
135
- this.tileXE = 0;
136
-
137
- this.tileXW = 0;
138
-
139
- this.tileYN = 0;
140
-
141
- this.tileYS = 0;
142
-
143
- /**
144
- * Vertical tile index.
145
- * @type {number}
146
- */
147
- this.tileY = 0;
148
-
149
- this.tileIndex = "";
150
-
151
- this._assignTileIndexes();
152
-
153
- /**
154
- * Texture materials array.
155
- * @type {Array.<planetSegment.Material>}
156
- */
157
- this.materials = [];
158
-
159
- /**
160
- * Plain segment vertices was created.
161
- * @type {boolean}
162
- */
163
- this.plainReady = false;
164
-
165
- /**
166
- * Segment is ready to create plain vertices.
167
- * @type {boolean}
168
- */
169
- this.initialized = false;
170
-
171
- /**
172
- * Normal map is allready made.
173
- * @type {boolean}
174
- */
175
- this.normalMapReady = false;
176
-
177
- /**
178
- * Terrain is allready applied flag.
179
- * @type {boolean}
180
- */
181
- this.terrainReady = false;
182
-
183
- /**
184
- * Terrain is loading now flag.
185
- * @type {boolean}
186
- */
187
- this.terrainIsLoading = false;
188
-
189
- /**
190
- * Terrain existing flag.
191
- * @type {boolean}
192
- */
193
- this.terrainExists = false;
194
-
195
- /**
196
- * Means that tree passage reach the segment, and the segment terrain is ready.
197
- * @type {boolean}
198
- */
199
- this.passReady = false;
200
-
201
- this.plainVertices = null;
202
- this.plainVerticesHigh = null;
203
- this.plainVerticesLow = null;
204
-
205
- this.plainNormals = null;
206
-
207
- this.terrainVertices = null;
208
- this.terrainVerticesHigh = null;
209
- this.terrainVerticesLow = null;
210
- this.noDataVertices = null;
211
-
212
- this.tempVertices = null;
213
- this.tempVerticesHigh = null;
214
- this.tempVerticesLow = null;
215
-
216
- this.normalMapTexture = null;
217
- this.normalMapTextureBias = new Float32Array(3);
218
- this.normalMapVertices = null;
219
- this.normalMapVerticesHigh = null;
220
- this.normalMapVerticesLow = null;
221
- this.normalMapNormals = null;
222
-
223
- this.vertexNormalBuffer = null;
224
- this.vertexPositionBuffer = null;
225
- this.vertexPositionBufferHigh = null;
226
- this.vertexPositionBufferLow = null;
227
- this.vertexTextureCoordBuffer = null;
228
-
229
- this._globalTextureCoordinates = new Float32Array(4);
230
- this._inTheQueue = false;
231
- this._appliedNeighborsZoom = [0, 0, 0, 0];
232
-
233
- this._slices = [];
234
-
235
- this._indexBuffer = null;
236
-
237
- this.readyToEngage = false;
238
-
239
- this.plainProcessing = false;
240
- }
241
-
242
- checkZoom() {
243
- return this.tileZoom < this.planet.terrain._maxNodeZoom;
244
- }
245
-
246
- /**
247
- * Returns entity terrain point.
248
- * @public
249
- * @param {Entity} entity - Entity.
250
- * @param {Vec3} res - Point coordinates.
251
- * @returns {Vec3} -
252
- */
253
- getEntityTerrainPoint(entity, res) {
254
- return this.getTerrainPoint(entity._cartesian, this.getInsideLonLat(entity), res);
255
- }
256
-
257
- getInsideLonLat(obj) {
258
- return obj._lonLatMerc;
259
- }
260
-
261
- isEntityInside(entity) {
262
- return this._extentLonLat.isInside(entity._lonLat);
263
- }
264
-
265
- /**
266
- * Returns distance from object to terrain coordinates and terrain point that calculates out in the res parameter.
267
- * @public
268
- * @param {Vec3} xyz - Cartesian object position.
269
- * @param {LonLat} insideSegmentPosition - Geodetic object position.
270
- * @param {Vec3} [res] - Result cartesian coordinates on the terrain.
271
- * @param {Vec3} [normal] - Terrain point normal.
272
- * @returns {number} -
273
- */
274
- getTerrainPoint(xyz, insideSegmentPosition, res) {
275
- let verts = this.tempVertices;
276
-
277
- if (verts && verts.length) {
278
- let norm = this.planet.ellipsoid.getSurfaceNormal3v(xyz);
279
- _ray.set(xyz, norm.negateTo());
280
-
281
- let ne = this._extent.northEast,
282
- sw = this._extent.southWest,
283
- size = Math.sqrt(verts.length / 3) - 1;
284
-
285
- let xmax = ne.lon,
286
- ymax = ne.lat,
287
- xmin = sw.lon,
288
- ymin = sw.lat,
289
- x = insideSegmentPosition.lon,
290
- y = insideSegmentPosition.lat;
291
-
292
- let sxn = xmax - xmin,
293
- syn = ymax - ymin;
294
-
295
- let qx = sxn / size,
296
- qy = syn / size;
297
-
298
- let xn = x - xmin,
299
- yn = y - ymin;
300
-
301
- let indX = Math.floor(xn / qx),
302
- indY = Math.floor(size - yn / qy);
303
-
304
- let ind_v0 = ((size + 1) * indY + indX) * 3;
305
- let ind_v2 = ((size + 1) * (indY + 1) + indX) * 3;
306
-
307
- _v0.set(verts[ind_v0], verts[ind_v0 + 1], verts[ind_v0 + 2]);
308
- _v1.set(verts[ind_v0 + 3], verts[ind_v0 + 4], verts[ind_v0 + 5]);
309
- _v2.set(verts[ind_v2], verts[ind_v2 + 1], verts[ind_v2 + 2]);
310
-
311
- let d = _ray.hitTriangle(_v0, _v1, _v2, res);
312
-
313
- if (d === Ray.INSIDE) {
314
- return xyz.distance(res);
315
- } else if (d === Ray.AWAY) {
316
- _rayEx.set(xyz, norm);
317
- let d = _rayEx.hitTriangle(_v0, _v1, _v2, res);
318
- if (d === Ray.INSIDE) {
319
- return -xyz.distance(res);
320
- }
321
- }
322
-
323
- _v3.set(verts[ind_v2 + 3], verts[ind_v2 + 4], verts[ind_v2 + 5]);
324
-
325
- d = _ray.hitTriangle(_v1, _v3, _v2, res);
326
- if (d === Ray.INSIDE) {
327
- return xyz.distance(res);
328
- } else if (d === Ray.AWAY) {
329
- _rayEx.set(xyz, norm);
330
- let d = _rayEx.hitTriangle(_v1, _v3, _v2, res);
331
- if (d === Ray.INSIDE) {
332
- return -xyz.distance(res);
333
- }
334
- }
335
-
336
- if (d === Ray.AWAY) {
337
- return -xyz.distance(res);
338
- }
339
-
340
- return xyz.distance(res);
341
- } else {
342
- return xyz.distance(this.planet.ellipsoid.hitRay(_ray.origin, _ray.direction));
343
- }
344
- }
345
-
346
- /**
347
- * Project wgs86 to segment native projection.
348
- * @public
349
- * @param {LonLat} lonlat - Coordinates to project.
350
- * @returns {LonLat} -
351
- */
352
- projectNative(lonlat) {
353
- return lonlat.forwardMercator();
354
- }
355
-
356
- /**
357
- *
358
- * @param {boolean} forceLoading
359
- */
360
- loadTerrain(forceLoading) {
361
- if (this.tileZoom < this.planet.terrain.minZoom || this.planet.terrain.isEmpty) {
362
- this.terrainIsLoading = true;
363
-
364
- this.elevationsNotExists();
365
-
366
- if (!this._inTheQueue) {
367
- this.planet._normalMapCreator.queue(this);
368
- }
369
- } else {
370
- if (this.tileZoom > this.planet.terrain.maxZoom) {
371
- this.elevationsNotExists();
372
- } else if (!this.terrainIsLoading && !this.terrainReady) {
373
- this.planet.terrain.loadTerrain(this, forceLoading);
374
- }
375
- // if (!this.terrainIsLoading && !this.terrainReady) {
376
- // this.planet.terrain.loadTerrain(this, forceLoading);
377
- // }
378
- }
379
- }
380
-
381
- /**
382
- * Terrain obtained from server.
383
- * @param {Float32Array} elevations - Elevation data.
384
- */
385
- elevationsExists(elevations) {
386
- if (this.plainReady && this.terrainIsLoading) {
387
- this.planet._terrainWorker.make(this, elevations);
388
-
389
- this.plainVerticesHigh = null;
390
- this.plainVerticesLow = null;
391
-
392
- this.normalMapVerticesHigh = null;
393
- this.normalMapVerticesLow = null;
394
-
395
- if (!this.planet.terrain.equalizeVertices) {
396
- this.tempVerticesHigh = null;
397
- this.tempVerticesLow = null;
398
- }
399
- }
400
- }
401
-
402
- /**
403
- * Keep plain elevation segment for rendering
404
- *
405
- * 'this.tileZoom <= this.planet.terrain.maxZoom' it means, that the segment is plain
406
- *
407
- */
408
- elevationsNotExists() {
409
- if (this.planet && this.tileZoom <= this.planet.terrain.maxNativeZoom) {
410
- if (this.plainReady && this.terrainIsLoading) {
411
- this.terrainIsLoading = false;
412
-
413
- let n = this.node;
414
- n.appliedTerrainNodeId = this.node.nodeId;
415
- n.equalizedSideWithNodeId[N] = n.equalizedSideWithNodeId[E] = n.equalizedSideWithNodeId[S] =
416
- n.equalizedSideWithNodeId[W] = n.appliedTerrainNodeId;
417
-
418
- if (this.planet.lightEnabled && !this._inTheQueue) {
419
- this.planet._normalMapCreator.queue(this);
420
- }
421
-
422
- this.readyToEngage = true;
423
- }
424
-
425
- // plain terrain only
426
- this.terrainVertices = this.plainVertices;
427
- this.terrainVerticesHigh = this.plainVerticesHigh;
428
- this.terrainVerticesLow = this.plainVerticesLow;
429
-
430
- this.tempVertices = this.terrainVertices;
431
- this.tempVerticesHigh = this.terrainVerticesHigh;
432
- this.tempVerticesLow = this.terrainVerticesLow;
433
-
434
- this.noDataVertices = null;
435
-
436
- this.fileGridSize = Math.sqrt(this.terrainVertices.length / 3) - 1;
437
- this.gridSize = this.fileGridSize;
438
- this.terrainReady = true;
439
- this.terrainExists = false;
440
- } else {
441
-
442
- if (this.plainReady && this.terrainIsLoading) {
443
- this.terrainIsLoading = false;
444
-
445
- let n = this.node;
446
- n.appliedTerrainNodeId = this.node.nodeId;
447
- n.equalizedSideWithNodeId[N] = n.equalizedSideWithNodeId[E] = n.equalizedSideWithNodeId[S] =
448
- n.equalizedSideWithNodeId[W] = n.appliedTerrainNodeId;
449
-
450
- this.readyToEngage = true;
451
- this.terrainReady = true;
452
- this.passReady = true;
453
-
454
- this.terrainExists = false;
455
- }
456
- }
457
- }
458
-
459
- _checkEqualization(neighborSide, neigborNode) {
460
- return neigborNode && this.tileZoom >= neigborNode.segment.tileZoom &&
461
- this.node.equalizedSideWithNodeId[neighborSide] !== neigborNode.equalizedSideWithNodeId[OPSIDE[neighborSide]];
462
- }
463
-
464
- equalize() {
465
- if (this.tileZoom < 8 || this.gridSize < 2) {
466
- return;
467
- }
468
-
469
- this.readyToEngage = true;
470
- let nn = this.node.neighbors;
471
- let v = this.tempVertices,
472
- vHigh = this.tempVerticesHigh,
473
- vLow = this.tempVerticesLow;
474
- let gs = this.gridSize,
475
- gsOne = gs + 1;
476
-
477
- let n = nn[N][0];
478
- if (this._checkEqualization(N, n)) {
479
-
480
- this.node.equalizedSideWithNodeId[N] = n.equalizedSideWithNodeId[S];
481
-
482
- this.readyToEngage = true;
483
-
484
- let offset = this.node.getOffsetOppositeNeighbourSide(n, N);
485
-
486
- let nv = n.segment.tempVertices,
487
- nvHigh = n.segment.tempVerticesHigh,
488
- nvLow = n.segment.tempVerticesLow;
489
-
490
- let n_gs = n.segment.gridSize,
491
- n_gsOne = n_gs + 1;
492
-
493
- let dz = 1 / (1 << (this.tileZoom - n.segment.tileZoom));
494
-
495
- let inc = Math.max(gs / (n_gs * dz), 1),
496
- n_inc = Math.max((n_gs * dz) / gs, 1),
497
- n_offset = offset * n_gs;
498
-
499
- for (let k = 0, nk = n_offset; k < gsOne; k += inc, nk += n_inc) {
500
- const index = k * 3;
501
- const n_index = (n_gsOne * n_gs + nk) * 3;
502
-
503
- v[index] = nv[n_index];
504
- v[index + 1] = nv[n_index + 1];
505
- v[index + 2] = nv[n_index + 2];
506
-
507
- vHigh[index] = nvHigh[n_index];
508
- vHigh[index + 1] = nvHigh[n_index + 1];
509
- vHigh[index + 2] = nvHigh[n_index + 2];
510
-
511
- vLow[index] = nvLow[n_index];
512
- vLow[index + 1] = nvLow[n_index + 1];
513
- vLow[index + 2] = nvLow[n_index + 2];
514
- }
515
- }
516
-
517
- n = nn[E][0];
518
- if (this._checkEqualization(E, n)) {
519
-
520
- this.node.equalizedSideWithNodeId[E] = n.equalizedSideWithNodeId[W];
521
-
522
- this.readyToEngage = true;
523
-
524
- let offset = this.node.getOffsetOppositeNeighbourSide(n, E);
525
-
526
- let nv = n.segment.tempVertices,
527
- nvHigh = n.segment.tempVerticesHigh,
528
- nvLow = n.segment.tempVerticesLow;
529
-
530
- let n_gs = n.segment.gridSize,
531
- n_gsOne = n_gs + 1;
532
-
533
- let dz = 1 / (1 << (this.tileZoom - n.segment.tileZoom));
534
-
535
- let inc = Math.max(gs / (n_gs * dz), 1),
536
- n_inc = Math.max((n_gs * dz) / gs, 1),
537
- n_offset = offset * n_gs;
538
-
539
- for (let k = 0, nk = n_offset; k < gsOne; k += inc, nk += n_inc) {
540
- const index = (gsOne * k + gs) * 3;
541
- const n_index = n_gsOne * nk * 3;
542
-
543
- v[index] = nv[n_index];
544
- v[index + 1] = nv[n_index + 1];
545
- v[index + 2] = nv[n_index + 2];
546
-
547
- vHigh[index] = nvHigh[n_index];
548
- vHigh[index + 1] = nvHigh[n_index + 1];
549
- vHigh[index + 2] = nvHigh[n_index + 2];
550
-
551
- vLow[index] = nvLow[n_index];
552
- vLow[index + 1] = nvLow[n_index + 1];
553
- vLow[index + 2] = nvLow[n_index + 2];
554
- }
555
- }
556
-
557
- n = nn[S][0];
558
- if (this._checkEqualization(S, n)) {
559
-
560
- this.node.equalizedSideWithNodeId[S] = n.equalizedSideWithNodeId[N];
561
-
562
- this.readyToEngage = true;
563
-
564
- let offset = this.node.getOffsetOppositeNeighbourSide(n, S);
565
-
566
- let nv = n.segment.tempVertices,
567
- nvHigh = n.segment.tempVerticesHigh,
568
- nvLow = n.segment.tempVerticesLow;
569
-
570
- let n_gs = n.segment.gridSize; // n_gsOne = n_gs + 1;
571
-
572
- let dz = 1 / (1 << (this.tileZoom - n.segment.tileZoom));
573
-
574
- let inc = Math.max(gs / (n_gs * dz), 1),
575
- n_inc = Math.max((n_gs * dz) / gs, 1),
576
- n_offset = offset * n_gs;
577
-
578
- for (let k = 0, nk = n_offset; k < gsOne; k += inc, nk += n_inc) {
579
- const index = (gsOne * gs + k) * 3;
580
- const n_index = nk * 3;
581
-
582
- v[index] = nv[n_index];
583
- v[index + 1] = nv[n_index + 1];
584
- v[index + 2] = nv[n_index + 2];
585
-
586
- vHigh[index] = nvHigh[n_index];
587
- vHigh[index + 1] = nvHigh[n_index + 1];
588
- vHigh[index + 2] = nvHigh[n_index + 2];
589
-
590
- vLow[index] = nvLow[n_index];
591
- vLow[index + 1] = nvLow[n_index + 1];
592
- vLow[index + 2] = nvLow[n_index + 2];
593
- }
594
- }
595
-
596
- n = nn[W][0];
597
- if (this._checkEqualization(W, n)) {
598
-
599
- this.node.equalizedSideWithNodeId[W] = n.equalizedSideWithNodeId[E];
600
-
601
- this.readyToEngage = true;
602
-
603
- let offset = this.node.getOffsetOppositeNeighbourSide(n, W);
604
-
605
- let nv = n.segment.tempVertices,
606
- nvHigh = n.segment.tempVerticesHigh,
607
- nvLow = n.segment.tempVerticesLow;
608
-
609
- let n_gs = n.segment.gridSize,
610
- n_gsOne = n_gs + 1;
611
-
612
- let dz = 1 / (1 << (this.tileZoom - n.segment.tileZoom));
613
-
614
- let inc = Math.max(gs / (n_gs * dz), 1),
615
- n_inc = Math.max((n_gs * dz) / gs, 1),
616
- n_offset = offset * n_gs;
617
-
618
- for (let k = 0, nk = n_offset; k < gsOne; k += inc, nk += n_inc) {
619
- const index = gsOne * k * 3;
620
- const n_index = (n_gsOne * nk + n_gs) * 3;
621
-
622
- v[index] = nv[n_index];
623
- v[index + 1] = nv[n_index + 1];
624
- v[index + 2] = nv[n_index + 2];
625
-
626
- vHigh[index] = nvHigh[n_index];
627
- vHigh[index + 1] = nvHigh[n_index + 1];
628
- vHigh[index + 2] = nvHigh[n_index + 2];
629
-
630
- vLow[index] = nvLow[n_index];
631
- vLow[index + 1] = nvLow[n_index + 1];
632
- vLow[index + 2] = nvLow[n_index + 2];
633
- }
634
- }
635
- }
636
-
637
- engage() {
638
- this.readyToEngage = false;
639
- this.createCoordsBuffers(this.tempVerticesHigh, this.tempVerticesLow, this.gridSize);
640
- }
641
-
642
- _terrainWorkerCallback(data) {
643
- if (this.plainReady) {
644
- this.readyToEngage = true;
645
-
646
- this.normalMapNormals = null;
647
-
648
- this.normalMapVertices = null;
649
- this.normalMapVerticesHigh = null;
650
- this.normalMapVerticesLow = null;
651
-
652
- this.terrainVertices = null;
653
- this.terrainVerticesHigh = null;
654
- this.terrainVerticesLow = null;
655
- this.noDataVertices = null;
656
-
657
- this.tempVertices = null;
658
- this.tempVerticesHigh = null;
659
- this.tempVerticesLow = null;
660
-
661
- this.normalMapNormals = data.normalMapNormals;
662
- this.normalMapVertices = data.normalMapVertices;
663
- this.normalMapVerticesHigh = data.normalMapVerticesHigh;
664
- this.normalMapVerticesLow = data.normalMapVerticesLow;
665
-
666
- this.terrainVertices = data.terrainVertices;
667
- this.terrainVerticesHigh = data.terrainVerticesHigh;
668
- this.terrainVerticesLow = data.terrainVerticesLow;
669
-
670
- this.noDataVertices = data.noDataVertices;
671
-
672
- this.tempVertices = this.terrainVertices;
673
- this.tempVerticesHigh = this.terrainVerticesHigh;
674
- this.tempVerticesLow = this.terrainVerticesLow;
675
-
676
- this.setBoundingVolumeArr(data.bounds);
677
-
678
- this.gridSize = Math.sqrt(this.terrainVertices.length / 3) - 1;
679
-
680
- let n = this.node;
681
- n.appliedTerrainNodeId = n.nodeId;
682
- n.equalizedSideWithNodeId[N] = n.equalizedSideWithNodeId[E] = n.equalizedSideWithNodeId[S] =
683
- n.equalizedSideWithNodeId[W] = n.appliedTerrainNodeId;
684
-
685
- this.terrainReady = true;
686
- this.terrainIsLoading = false;
687
- this.terrainExists = true;
688
-
689
- if (!this.normalMapTexturePtr) {
690
- var nmc = this.planet._normalMapCreator;
691
- this.normalMapTexturePtr = this.planet.renderer.handler.createEmptyTexture_l(
692
- nmc._width,
693
- nmc._height
694
- );
695
- }
696
-
697
- if (this.planet.lightEnabled) {
698
- this.planet._normalMapCreator.queue(this);
699
- }
700
- }
701
- }
702
-
703
- _normalMapEdgeEqualize(side) {
704
- let nn = this.node.neighbors;
705
- let n = nn[side][0];
706
- let maxZ = this.planet.terrain.maxZoom;
707
-
708
- if (this.tileZoom === maxZ) {
709
- if (!(nn[0].length || nn[1].length || nn[2].length || nn[3].length)) {
710
- n = this.node.getEqualNeighbor(side);
711
- }
712
- }
713
-
714
- let b = n && n.segment,
715
- s = this;
716
-
717
- if (
718
- n &&
719
- b &&
720
- b.terrainReady &&
721
- b.terrainExists &&
722
- b.tileZoom <= maxZ &&
723
- s._appliedNeighborsZoom[side] !== b.tileZoom
724
- ) {
725
- s._appliedNeighborsZoom[side] = b.tileZoom;
726
-
727
- let seg_a = s.normalMapNormals,
728
- seg_b = b.normalMapNormals;
729
-
730
- if (!(seg_a && seg_b)) return;
731
-
732
- let seg_a_raw = s.normalMapNormals,
733
- seg_b_raw = b.normalMapNormals;
734
-
735
- // let seg_a_verts = s.terrainVertices,
736
- // seg_b_verts = s.terrainVertices;
737
-
738
- let s_gs = Math.sqrt(seg_a.length / 3),
739
- // b_gs = Math.sqrt(seg_b.length / 3),
740
- s_gs1 = s_gs - 1;
741
- // b_gs1 = b_gs - 1;
742
-
743
- const i_a = s_gs1 * _S[side];
744
-
745
- let nx, ny, nz, q;
746
-
747
- if (s.tileZoom === b.tileZoom) {
748
- const i_b = s_gs1 - i_a;
749
-
750
- if (_V[side]) {
751
- for (let k = 0; k < s_gs; k++) {
752
- let vInd_a = (k * s_gs + i_a) * 3,
753
- vInd_b = (k * s_gs + i_b) * 3;
754
-
755
- nx = seg_a_raw[vInd_a] + seg_b_raw[vInd_b];
756
- ny = seg_a_raw[vInd_a + 1] + seg_b_raw[vInd_b + 1];
757
- nz = seg_a_raw[vInd_a + 2] + seg_b_raw[vInd_b + 2];
758
-
759
- q = 1.0 / Math.sqrt(nx * nx + ny * ny + nz * nz);
760
-
761
- seg_b[vInd_b] = seg_a[vInd_a] = nx * q;
762
- seg_b[vInd_b + 1] = seg_a[vInd_a + 1] = ny * q;
763
- seg_b[vInd_b + 2] = seg_a[vInd_a + 2] = nz * q;
764
- }
765
- } else {
766
- for (let k = 0; k < s_gs; k++) {
767
- let vInd_a = (i_a * s_gs + k) * 3,
768
- vInd_b = (i_b * s_gs + k) * 3;
769
-
770
- nx = seg_a_raw[vInd_a] + seg_b_raw[vInd_b];
771
- ny = seg_a_raw[vInd_a + 1] + seg_b_raw[vInd_b + 1];
772
- nz = seg_a_raw[vInd_a + 2] + seg_b_raw[vInd_b + 2];
773
-
774
- q = 1.0 / Math.sqrt(nx * nx + ny * ny + nz * nz);
775
-
776
- seg_b[vInd_b] = seg_a[vInd_a] = nx * q;
777
- seg_b[vInd_b + 1] = seg_a[vInd_a + 1] = ny * q;
778
- seg_b[vInd_b + 2] = seg_a[vInd_a + 2] = nz * q;
779
- }
780
- }
781
-
782
- if (!b._inTheQueue && b._appliedNeighborsZoom[OPSIDE[side]] !== s.tileZoom) {
783
- b._appliedNeighborsZoom[OPSIDE[side]] = s.tileZoom;
784
- s.planet._normalMapCreator.queue(b);
785
- }
786
- }
787
- }
788
- }
789
-
790
- applyTerrain(elevations) {
791
- if (elevations) {
792
- this.elevationsExists(elevations);
793
- } else {
794
- this.elevationsNotExists();
795
- }
796
- }
797
-
798
- /**
799
- * Delete segment gl buffers.
800
- */
801
- deleteBuffers() {
802
- var gl = this.handler.gl;
803
- gl.deleteBuffer(this.vertexNormalBuffer);
804
- gl.deleteBuffer(this.vertexPositionBuffer);
805
- gl.deleteBuffer(this.vertexPositionBufferHigh);
806
- gl.deleteBuffer(this.vertexPositionBufferLow);
807
-
808
- this.vertexNormalBuffer = null;
809
- this.vertexPositionBuffer = null;
810
- this.vertexPositionBufferHigh = null;
811
- this.vertexPositionBufferLow = null;
812
- this.vertexTextureCoordBuffer = null;
813
- }
814
-
815
- /**
816
- * Delete materials.
817
- */
818
- deleteMaterials() {
819
- var m = this.materials;
820
- for (let i = 0; i < m.length; i++) {
821
- var mi = m[i];
822
- if (mi) {
823
- mi.clear();
824
- }
825
- }
826
- this.materials.length = 0;
827
- }
828
-
829
- /**
830
- * Delete elevation data.
831
- */
832
- deleteElevations() {
833
- this.terrainExists = false;
834
- this.terrainReady = false;
835
- this.terrainIsLoading = false;
836
-
837
- this.normalMapVertices = null;
838
- this.normalMapVerticesHigh = null;
839
- this.normalMapVerticesLow = null;
840
-
841
- this.normalMapNormals = null;
842
-
843
- this.tempVertices = null;
844
- this.tempVerticesHigh = null;
845
- this.tempVerticesLow = null;
846
-
847
- this.terrainVertices = null;
848
- this.terrainVerticesHigh = null;
849
- this.terrainVerticesLow = null;
850
- this.noDataVertices = null;
851
-
852
- this.plainVertices = null;
853
- this.plainVerticesHigh = null;
854
- this.plainVerticesLow = null;
855
-
856
- this.plainNormals = null;
857
-
858
- if (this.normalMapReady) {
859
- this.handler.gl.deleteTexture(this.normalMapTexture);
860
- }
861
- this.normalMapReady = false;
862
- this._appliedNeighborsZoom = [0, 0, 0, 0];
863
- this.normalMapTextureBias[0] = 0;
864
- this.normalMapTextureBias[1] = 0;
865
- this.normalMapTextureBias[2] = 1;
866
- this._inTheQueue = false;
867
- }
868
-
869
- /**
870
- * Clear but not destroy segment data.
871
- */
872
- clearSegment() {
873
- this.plainReady = false;
874
- this.initialized = false;
875
- this.deleteBuffers();
876
- this.deleteMaterials();
877
- this.deleteElevations();
878
- }
879
-
880
- /**
881
- * Clear and destroy all segment data.
882
- */
883
- destroySegment() {
884
-
885
- this.clearSegment();
886
-
887
- var i = this._slices.length;
888
- while (i--) {
889
- this._slices[i].clear();
890
- }
891
-
892
- this._slices = null;
893
-
894
- this.node = null;
895
-
896
- this.planet = null;
897
- this.handler = null;
898
- this.bbox = null;
899
- this.bsphere = null;
900
- this._extent = null;
901
-
902
- this.materials = null;
903
-
904
- this.plainVertices = null;
905
- this.plainVerticesHigh = null;
906
- this.plainVerticesLow = null;
907
- this.plainNormals = null;
908
-
909
- this.terrainVertices = null;
910
- this.terrainVerticesHigh = null;
911
- this.terrainVerticesLow = null;
912
- this.noDataVertices = null;
913
-
914
- this.tempVertices = null;
915
- this.tempVerticesHigh = null;
916
- this.tempVerticesLow = null;
917
-
918
- this.normalMapTexture = null;
919
- this.normalMapTextureBias = null;
920
- this.normalMapVertices = null;
921
- this.normalMapVerticesHigh = null;
922
- this.normalMapVerticesLow = null;
923
- this.normalMapNormals = null;
924
-
925
- this.vertexNormalBuffer = null;
926
- this.vertexPositionBuffer = null;
927
- this.vertexPositionBufferHigh = null;
928
- this.vertexPositionBufferLow = null;
929
- this.vertexTextureCoordBuffer = null;
930
-
931
- this._projection = null;
932
- this._appliedNeighborsZoom = null;
933
-
934
- this._globalTextureCoordinates = null;
935
- }
936
-
937
- _setExtentLonLat() {
938
- this._extentLonLat = this._extent.inverseMercator();
939
- }
940
-
941
- /**
942
- * Creates bound volumes by segment geographical extent.
943
- */
944
- createBoundsByExtent() {
945
- var ellipsoid = this.planet.ellipsoid,
946
- extent = this._extentLonLat;
947
-
948
- var coord_sw = ellipsoid.geodeticToCartesian(extent.southWest.lon, extent.southWest.lat);
949
- var coord_ne = ellipsoid.geodeticToCartesian(extent.northEast.lon, extent.northEast.lat);
950
-
951
- var coord_nw = ellipsoid.geodeticToCartesian(
952
- extent.southWest.lon,
953
- extent.northEast.lat
954
- );
955
- var coord_se = ellipsoid.geodeticToCartesian(
956
- extent.northEast.lon,
957
- extent.southWest.lat
958
- );
959
-
960
- this._sw.copy(coord_sw);
961
- this._nw.copy(coord_nw);
962
- this._ne.copy(coord_ne);
963
- this._se.copy(coord_se);
964
-
965
- this.setBoundingVolume3v(coord_sw, coord_ne);
966
- }
967
-
968
- createBoundsByParent() {
969
- let pn = this.node;
970
-
971
- while (pn.parentNode && !pn.segment.terrainReady) {
972
- pn = pn.parentNode;
973
- }
974
-
975
- let dZ2 = 1 << (this.tileZoom - pn.segment.tileZoom);
976
-
977
- let offsetX = this.tileX - pn.segment.tileX * dZ2,
978
- offsetY = this.tileY - pn.segment.tileY * dZ2;
979
-
980
- if (pn.segment.terrainReady && pn.segment.tileZoom >= this.planet.terrain.minZoom) {
981
- let gridSize = pn.segment.gridSize / dZ2;
982
-
983
- if (gridSize >= 1.0) {
984
- //
985
- // (*) Actually, we get parent whole bounding volume
986
- //
987
- this.bsphere.center.x = pn.segment.bsphere.center.x;
988
- this.bsphere.center.y = pn.segment.bsphere.center.y;
989
- this.bsphere.center.z = pn.segment.bsphere.center.z;
990
- this.bsphere.radius = pn.segment.bsphere.radius;
991
-
992
- let i0 = gridSize * offsetY;
993
- let j0 = gridSize * offsetX;
994
-
995
- let pnGsOne = pn.segment.gridSize + 1;
996
-
997
- let ind_sw = 3 * ((i0 + gridSize) * pnGsOne + j0),
998
- ind_nw = 3 * (i0 * pnGsOne + j0),
999
- ind_ne = 3 * (i0 * pnGsOne + j0 + gridSize),
1000
- ind_se = 3 * ((i0 + gridSize) * pnGsOne + j0 + gridSize);
1001
-
1002
- let pVerts = pn.segment.tempVertices;
1003
-
1004
- let v_sw = new Vec3(pVerts[ind_sw], pVerts[ind_sw + 1], pVerts[ind_sw + 2]),
1005
- v_ne = new Vec3(pVerts[ind_ne], pVerts[ind_ne + 1], pVerts[ind_ne + 2]);
1006
-
1007
- // check for segment zoom
1008
- let v_nw = new Vec3(pVerts[ind_nw], pVerts[ind_nw + 1], pVerts[ind_nw + 2]),
1009
- v_se = new Vec3(pVerts[ind_se], pVerts[ind_se + 1], pVerts[ind_se + 2]);
1010
-
1011
- this._sw.copy(v_sw);
1012
- this._nw.copy(v_nw);
1013
- this._ne.copy(v_ne);
1014
- this._se.copy(v_se);
1015
-
1016
- } else {
1017
- let pseg = pn.segment;
1018
-
1019
- let i0 = Math.floor(gridSize * offsetY),
1020
- j0 = Math.floor(gridSize * offsetX);
1021
-
1022
- let insideSize = 1.0 / gridSize;
1023
-
1024
- let t_i0 = offsetY - insideSize * i0,
1025
- t_j0 = offsetX - insideSize * j0;
1026
-
1027
- let bigOne;
1028
- if (pseg.gridSize === 1) {
1029
- bigOne = pseg.tempVertices;
1030
- } else {
1031
- bigOne = getMatrixSubArray(pseg.tempVertices, pseg.gridSize, i0, j0, 1);
1032
- }
1033
-
1034
- let v_lt = new Vec3(bigOne[0], bigOne[1], bigOne[2]),
1035
- v_rb = new Vec3(bigOne[9], bigOne[10], bigOne[11]);
1036
-
1037
- let vn = new Vec3(
1038
- bigOne[3] - bigOne[0],
1039
- bigOne[4] - bigOne[1],
1040
- bigOne[5] - bigOne[2]
1041
- ),
1042
- vw = new Vec3(
1043
- bigOne[6] - bigOne[0],
1044
- bigOne[7] - bigOne[1],
1045
- bigOne[8] - bigOne[2]
1046
- ),
1047
- ve = new Vec3(
1048
- bigOne[3] - bigOne[9],
1049
- bigOne[4] - bigOne[10],
1050
- bigOne[5] - bigOne[11]
1051
- ),
1052
- vs = new Vec3(
1053
- bigOne[6] - bigOne[9],
1054
- bigOne[7] - bigOne[10],
1055
- bigOne[8] - bigOne[11]
1056
- );
1057
-
1058
- let vi_y = t_i0,
1059
- vi_x = t_j0;
1060
-
1061
- let coords_lt, coords_rb;
1062
-
1063
- if (vi_y + vi_x < insideSize) {
1064
- coords_lt = Vec3.add(
1065
- vn.scaleTo(vi_x / insideSize),
1066
- vw.scaleTo(vi_y / insideSize)
1067
- ).addA(v_lt);
1068
- } else {
1069
- coords_lt = Vec3.add(
1070
- vs.scaleTo(1 - vi_x / insideSize),
1071
- ve.scaleTo(1 - vi_y / insideSize)
1072
- ).addA(v_rb);
1073
- }
1074
-
1075
- vi_y = t_i0 + 1;
1076
- vi_x = t_j0 + 1;
1077
-
1078
- if (vi_y + vi_x < insideSize) {
1079
- coords_rb = Vec3.add(
1080
- vn.scaleTo(vi_x / insideSize),
1081
- vw.scaleTo(vi_y / insideSize)
1082
- ).addA(v_lt);
1083
- } else {
1084
- coords_rb = Vec3.add(
1085
- vs.scaleTo(1 - vi_x / insideSize),
1086
- ve.scaleTo(1 - vi_y / insideSize)
1087
- ).addA(v_rb);
1088
- }
1089
-
1090
- this.setBoundingVolume3v(coords_lt, coords_rb);
1091
- }
1092
- } else {
1093
- this.createBoundsByExtent();
1094
- }
1095
- }
1096
-
1097
- setBoundingSphere(x, y, z, v) {
1098
- this.bsphere.center.x = x;
1099
- this.bsphere.center.y = y;
1100
- this.bsphere.center.z = z;
1101
- this.bsphere.radius = this.bsphere.center.distance(v);
1102
- }
1103
-
1104
- setBoundingVolume(xmin, ymin, zmin, xmax, ymax, zmax) {
1105
- this.bbox.setFromBoundsArr([xmin, ymin, zmin, xmax, ymax, zmax]);
1106
-
1107
- let x = xmin + (xmax - xmin) * 0.5,
1108
- y = ymin + (ymax - ymin) * 0.5,
1109
- z = zmin + (zmax - zmin) * 0.5;
1110
-
1111
- this.bsphere.center.set(x, y, z);
1112
- this.bsphere.radius = this.bsphere.center.distance(new Vec3(xmin, ymin, zmin));
1113
- }
1114
-
1115
- setBoundingVolume3v(vmin, vmax) {
1116
- this.bbox.setFromBoundsArr([vmin.x, vmin.y, vmin.z, vmax.x, vmax.y, vmax.z]);
1117
-
1118
- let x = vmin.x + (vmax.x - vmin.x) * 0.5,
1119
- y = vmin.y + (vmax.y - vmin.y) * 0.5,
1120
- z = vmin.z + (vmax.z - vmin.z) * 0.5;
1121
-
1122
- this.bsphere.center.set(x, y, z);
1123
- this.bsphere.radius = this.bsphere.center.distance(new Vec3(vmin.x, vmin.y, vmin.z));
1124
- }
1125
-
1126
- setBoundingVolumeArr(bounds) {
1127
- this.bbox.setFromBoundsArr(bounds);
1128
-
1129
- let x = bounds[0] + (bounds[3] - bounds[0]) * 0.5,
1130
- y = bounds[1] + (bounds[4] - bounds[1]) * 0.5,
1131
- z = bounds[2] + (bounds[5] - bounds[2]) * 0.5;
1132
-
1133
- this.bsphere.center.set(x, y, z);
1134
- this.bsphere.radius = this.bsphere.center.distance(
1135
- new Vec3(bounds[0], bounds[1], bounds[2])
1136
- );
1137
- }
1138
-
1139
- createCoordsBuffers(verticesHigh, verticesLow, gridSize) {
1140
- var gsgs = (gridSize + 1) * (gridSize + 1);
1141
- var h = this.handler;
1142
-
1143
- if (this.vertexPositionBufferHigh && this.vertexPositionBufferHigh.numItems === gsgs) {
1144
- h.setStreamArrayBuffer(this.vertexPositionBufferHigh, verticesHigh);
1145
- h.setStreamArrayBuffer(this.vertexPositionBufferLow, verticesLow);
1146
- } else {
1147
- h.gl.deleteBuffer(this.vertexPositionBufferHigh);
1148
- h.gl.deleteBuffer(this.vertexPositionBufferLow);
1149
-
1150
- this.vertexTextureCoordBuffer =
1151
- this.planet._textureCoordsBufferCache[Math.log2(gridSize)];
1152
-
1153
- //this.vertexPositionBufferHigh = h.createStreamArrayBuffer(3, gsgs);
1154
- //h.setStreamArrayBuffer(this.vertexPositionBufferHigh, verticesHigh);
1155
- //this.vertexPositionBufferLow = h.createStreamArrayBuffer(3, gsgs);
1156
- //h.setStreamArrayBuffer(this.vertexPositionBufferLow, verticesLow);
1157
-
1158
- // It works, but I'm not sure that it is correct and better use the comment above
1159
- this.vertexPositionBufferHigh = h.createArrayBuffer(verticesHigh, 3, gsgs);
1160
- this.vertexPositionBufferLow = h.createArrayBuffer(verticesLow, 3, gsgs);
1161
- }
1162
- }
1163
-
1164
- _addViewExtent() {
1165
- var ext = this._extentLonLat;
1166
-
1167
- var viewExt = this.planet._viewExtent;
1168
-
1169
- if (ext.southWest.lon < viewExt.southWest.lon) {
1170
- viewExt.southWest.lon = ext.southWest.lon;
1171
- }
1172
-
1173
- if (ext.northEast.lon > viewExt.northEast.lon) {
1174
- viewExt.northEast.lon = ext.northEast.lon;
1175
- }
1176
-
1177
- if (ext.southWest.lat < viewExt.southWest.lat) {
1178
- viewExt.southWest.lat = ext.southWest.lat;
1179
- }
1180
-
1181
- if (ext.northEast.lat > viewExt.northEast.lat) {
1182
- viewExt.northEast.lat = ext.northEast.lat;
1183
- }
1184
- }
1185
-
1186
- _assignTileIndexes() {
1187
-
1188
- this._tileGroup = TILEGROUP_COMMON;
1189
-
1190
- var tileZoom = this.tileZoom;
1191
- var extent = this._extent;
1192
- var pole = mercator.POLE;
1193
- this.tileX = Math.round(
1194
- Math.abs(-pole - extent.southWest.lon) / (extent.northEast.lon - extent.southWest.lon)
1195
- );
1196
- this.tileY = Math.round(
1197
- Math.abs(pole - extent.northEast.lat) / (extent.northEast.lat - extent.southWest.lat)
1198
- );
1199
- var p2 = Math.pow(2, tileZoom);
1200
- this.tileXE = (this.tileX + 1) % p2;
1201
- this.tileXW = (p2 + this.tileX - 1) % p2;
1202
-
1203
- this.tileYN = this.tileY - 1;
1204
- this.tileYS = this.tileY + 1;
1205
-
1206
- this.tileIndex = Layer.getTileIndex(this.tileX, this.tileY, tileZoom);
1207
- }
1208
-
1209
- initialize() {
1210
- var p = this.planet;
1211
- var n = this.node;
1212
-
1213
- this.gridSize =
1214
- p.terrain.gridSizeByZoom[this.tileZoom] || p.terrain.plainGridSize;
1215
-
1216
- n.sideSizeLog2[0] = n.sideSizeLog2[1] = n.sideSizeLog2[2] = n.sideSizeLog2[3] =
1217
- Math.log2(this.gridSize);
1218
-
1219
- if (this.tileZoom <= p.terrain.maxZoom) {
1220
- var nmc = this.planet._normalMapCreator;
1221
- this.normalMapTexturePtr = p.renderer.handler.createEmptyTexture_l(
1222
- nmc._width,
1223
- nmc._height
1224
- );
1225
- }
1226
-
1227
- this.normalMapTexture = this.planet.transparentTexture;
1228
-
1229
- this._assignGlobalTextureCoordinates();
1230
-
1231
- this.initialized = true;
1232
- }
1233
-
1234
- _assignGlobalTextureCoordinates() {
1235
- var e = this._extent;
1236
- this._globalTextureCoordinates[0] =
1237
- (e.southWest.lon + mercator.POLE) * mercator.ONE_BY_POLE_DOUBLE;
1238
- this._globalTextureCoordinates[1] =
1239
- (mercator.POLE - e.northEast.lat) * mercator.ONE_BY_POLE_DOUBLE;
1240
- this._globalTextureCoordinates[2] =
1241
- (e.northEast.lon + mercator.POLE) * mercator.ONE_BY_POLE_DOUBLE;
1242
- this._globalTextureCoordinates[3] =
1243
- (mercator.POLE - e.southWest.lat) * mercator.ONE_BY_POLE_DOUBLE;
1244
- }
1245
-
1246
- createPlainSegmentAsync() {
1247
- let p = this.planet,
1248
- t = p.terrain;
1249
-
1250
- if (t.isReady() && !this.plainReady && this.tileZoom <= t.maxZoom) {
1251
- this.plainProcessing = true;
1252
- p._plainSegmentWorker.make(this);
1253
- }
1254
- }
1255
-
1256
- _plainSegmentWorkerCallback(data) {
1257
- this.plainProcessing = false;
1258
-
1259
- if (this.initialized && !this.terrainReady) {
1260
- this.plainReady = true;
1261
-
1262
- this.plainVertices = data.plainVertices;
1263
- this.plainVerticesHigh = data.plainVerticesHigh;
1264
- this.plainVerticesLow = data.plainVerticesLow;
1265
- this.plainNormals = data.plainNormals;
1266
- this._plainRadius = data.plainRadius;
1267
-
1268
- this.normalMapNormals = data.normalMapNormals;
1269
- this.normalMapVertices = data.normalMapVertices;
1270
- this.normalMapVerticesHigh = data.normalMapVerticesHigh;
1271
- this.normalMapVerticesLow = data.normalMapVerticesLow;
1272
-
1273
- //this.terrainVertices = this.plainVertices;
1274
- //this.terrainVerticesHigh = this.plainVerticesHigh;
1275
- //this.terrainVerticesLow = this.plainVerticesLow;
1276
-
1277
- this.fileGridSize = Math.sqrt(data.normalMapVertices.length / 3) - 1;
1278
- }
1279
- }
1280
-
1281
- createPlainSegment() {
1282
- this.initialize();
1283
- this._createPlainVertices();
1284
- this.readyToEngage = true;
1285
- }
1286
-
1287
- _createPlainVertices() {
1288
- var gridSize = this.planet.terrain.gridSizeByZoom[this.tileZoom];
1289
-
1290
- var e = this._extent,
1291
- fgs = this.planet.terrain.plainGridSize;
1292
- var lonSize = e.getWidth();
1293
- var llStep = lonSize / Math.max(fgs, gridSize);
1294
- var esw_lon = e.southWest.lon,
1295
- ene_lat = e.northEast.lat;
1296
- var dg = Math.max(fgs / gridSize, 1),
1297
- gs = Math.max(fgs, gridSize) + 1;
1298
- var r2 = this.planet.ellipsoid._invRadii2;
1299
- var ind = 0,
1300
- nmInd = 0;
1301
- const gsgs = gs * gs;
1302
-
1303
- var gridSize3 = (gridSize + 1) * (gridSize + 1) * 3;
1304
-
1305
- this.plainNormals = new Float32Array(gridSize3);
1306
- this.plainVertices = new Float64Array(gridSize3);
1307
- this.plainVerticesHigh = new Float32Array(gridSize3);
1308
- this.plainVerticesLow = new Float32Array(gridSize3);
1309
-
1310
- this.normalMapNormals = new Float32Array(gsgs * 3);
1311
- this.normalMapVertices = new Float64Array(gsgs * 3);
1312
- this.normalMapVerticesHigh = new Float32Array(gsgs * 3);
1313
- this.normalMapVerticesLow = new Float32Array(gsgs * 3);
1314
-
1315
- var verts = this.plainVertices,
1316
- vertsHigh = this.plainVerticesHigh,
1317
- vertsLow = this.plainVerticesLow,
1318
- norms = this.plainNormals,
1319
- nmVerts = this.normalMapVertices,
1320
- nmVertsHigh = this.normalMapVerticesHigh,
1321
- nmVertsLow = this.normalMapVerticesLow,
1322
- nmNorms = this.normalMapNormals;
1323
-
1324
- for (let k = 0; k < gsgs; k++) {
1325
- var j = k % gs,
1326
- i = ~~(k / gs);
1327
-
1328
- var v = this.planet.ellipsoid.lonLatToCartesian(
1329
- LonLat.inverseMercator(esw_lon + j * llStep, ene_lat - i * llStep)
1330
- );
1331
- var nx = v.x * r2.x,
1332
- ny = v.y * r2.y,
1333
- nz = v.z * r2.z;
1334
- var l = 1.0 / Math.sqrt(nx * nx + ny * ny + nz * nz);
1335
- var nxl = nx * l,
1336
- nyl = ny * l,
1337
- nzl = nz * l;
1338
-
1339
- Vec3.doubleToTwoFloats(v, _tempHigh, _tempLow);
1340
-
1341
- nmVerts[nmInd] = v.x;
1342
- nmVertsHigh[nmInd] = _tempHigh.x;
1343
- nmVertsLow[nmInd] = _tempLow.x;
1344
- nmNorms[nmInd++] = nxl;
1345
-
1346
- nmVerts[nmInd] = v.y;
1347
- nmVertsHigh[nmInd] = _tempHigh.y;
1348
- nmVertsLow[nmInd] = _tempLow.y;
1349
- nmNorms[nmInd++] = nyl;
1350
-
1351
- nmVerts[nmInd] = v.z;
1352
- nmVertsHigh[nmInd] = _tempHigh.z;
1353
- nmVertsLow[nmInd] = _tempLow.z;
1354
- nmNorms[nmInd++] = nzl;
1355
-
1356
- if (i % dg === 0 && j % dg === 0) {
1357
- verts[ind] = v.x;
1358
- vertsHigh[ind] = _tempHigh.x;
1359
- vertsLow[ind] = _tempLow.x;
1360
- norms[ind++] = nxl;
1361
-
1362
- verts[ind] = v.y;
1363
- vertsHigh[ind] = _tempHigh.y;
1364
- vertsLow[ind] = _tempLow.y;
1365
- norms[ind++] = nyl;
1366
-
1367
- verts[ind] = v.z;
1368
- vertsHigh[ind] = _tempHigh.z;
1369
- vertsLow[ind] = _tempLow.z;
1370
- norms[ind++] = nzl;
1371
- }
1372
- }
1373
-
1374
- this.terrainVertices = verts;
1375
- this.terrainVerticesHigh = vertsHigh;
1376
- this.terrainVerticesLow = vertsLow;
1377
-
1378
- this.plainReady = true;
1379
- }
1380
-
1381
- /**
1382
- * Gets specific layer material.
1383
- * @public
1384
- * @param {Layer} layer - Layer object.
1385
- * @returns {planetSegment.Material} - Segment material.
1386
- */
1387
- getMaterialByLayer(layer) {
1388
- return this.materials[layer._id];
1389
- }
1390
-
1391
- _getLayerExtentOffset(layer) {
1392
- var v0s = layer._extentMerc;
1393
- var v0t = this._extent;
1394
- var sSize_x = v0s.northEast.lon - v0s.southWest.lon;
1395
- var sSize_y = v0s.northEast.lat - v0s.southWest.lat;
1396
- var dV0s_x = (v0t.southWest.lon - v0s.southWest.lon) / sSize_x;
1397
- var dV0s_y = (v0s.northEast.lat - v0t.northEast.lat) / sSize_y;
1398
- var dSize_x = (v0t.northEast.lon - v0t.southWest.lon) / sSize_x;
1399
- var dSize_y = (v0t.northEast.lat - v0t.southWest.lat) / sSize_y;
1400
- return [dV0s_x, dV0s_y, dSize_x, dSize_y];
1401
- }
1402
-
1403
- screenRendering(sh, layerSlice, sliceIndex, defaultTexture, isOverlay) {
1404
- var gl = this.handler.gl;
1405
- var sha = sh.attributes,
1406
- shu = sh.uniforms;
1407
-
1408
- var pm = this.materials,
1409
- p = this.planet;
1410
-
1411
- var currHeight, li;
1412
- if (layerSlice && layerSlice.length) {
1413
- li = layerSlice[0];
1414
- currHeight = li._height;
1415
- } else {
1416
- currHeight = 0;
1417
- }
1418
-
1419
- // First always draw whole planet base layer segment with solid texture.
1420
- gl.activeTexture(gl.TEXTURE0 + p.SLICE_SIZE + 2);
1421
- gl.bindTexture(gl.TEXTURE_2D, defaultTexture || this.getDefaultTexture());
1422
- gl.uniform1i(shu.defaultTexture, p.SLICE_SIZE + 2);
1423
-
1424
- var n = 0,
1425
- i = 0;
1426
-
1427
- var notEmpty = false;
1428
-
1429
- var slice = this._slices[sliceIndex];
1430
-
1431
- if (!slice) {
1432
- slice = this._slices[sliceIndex] = new Slice(this);
1433
- } else {
1434
- //TODO: optimization!!!
1435
- slice.layers = [];
1436
- }
1437
-
1438
- this._indexBuffer = this._getIndexBuffer();
1439
-
1440
- while (li) {
1441
- if (
1442
- this.layerOverlap(li) &&
1443
- ((li._fading && li._fadingOpacity > 0.0) ||
1444
- ((li.minZoom >= p.minCurrZoom || li.maxZoom >= p.minCurrZoom) &&
1445
- (li.minZoom <= p.maxCurrZoom || li.maxZoom <= p.maxCurrZoom)))
1446
- ) {
1447
- notEmpty = true;
1448
-
1449
- var m = pm[li._id];
1450
-
1451
- if (!m) {
1452
- m = pm[li._id] = li.createMaterial(this);
1453
- }
1454
-
1455
- if (!m.isReady) {
1456
- this.planet._renderCompleted = false;
1457
- this.planet._terrainReady = false;
1458
- }
1459
-
1460
- slice.append(li, m);
1461
-
1462
- p._samplerArr[n] = n;
1463
-
1464
- gl.activeTexture(gl.TEXTURE0 + n);
1465
- gl.bindTexture(gl.TEXTURE_2D, m.texture || p.transparentTexture);
1466
-
1467
- n++;
1468
- }
1469
- i++;
1470
- li = layerSlice[i];
1471
- }
1472
-
1473
- if (notEmpty || !isOverlay) {
1474
- gl.uniform1i(shu.samplerCount, n);
1475
- gl.uniform1f(shu.height, currHeight);
1476
- gl.uniform1iv(shu.samplerArr, p._samplerArr);
1477
-
1478
- //slice.uniform(gl, shu);
1479
-
1480
- gl.uniform4fv(shu.tileOffsetArr, slice.tileOffsetArr);
1481
- gl.uniform1fv(shu.layerOpacityArr, slice.layerOpacityArr);
1482
- //gl.uniform4fv(shu.visibleExtentOffsetArr, slice.visibleExtentOffsetArr);
1483
-
1484
- // bind normalmap texture
1485
- if (p.lightEnabled) {
1486
- gl.activeTexture(gl.TEXTURE0 + p.SLICE_SIZE + 3);
1487
- gl.bindTexture(gl.TEXTURE_2D, this.normalMapTexture || p.transparentTexture);
1488
- gl.uniform1i(shu.uNormalMap, p.SLICE_SIZE + 3);
1489
-
1490
- gl.uniform3fv(shu.uNormalMapBias, this.normalMapTextureBias);
1491
-
1492
- // bind segment specular and night material texture coordinates
1493
- gl.uniform4fv(shu.uGlobalTextureCoord, this._globalTextureCoordinates);
1494
- }
1495
-
1496
- gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexPositionBufferHigh);
1497
- gl.vertexAttribPointer(sha.aVertexPositionHigh, this.vertexPositionBufferHigh.itemSize, gl.FLOAT, false, 0, 0);
1498
- gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexPositionBufferLow);
1499
- gl.vertexAttribPointer(sha.aVertexPositionLow, this.vertexPositionBufferLow.itemSize, gl.FLOAT, false, 0, 0);
1500
-
1501
- gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexTextureCoordBuffer);
1502
- gl.vertexAttribPointer(sha.aTextureCoord, 2, gl.UNSIGNED_SHORT, true, 0, 0);
1503
-
1504
- gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer);
1505
- gl.drawElements(p.drawMode, this._indexBuffer.numItems, gl.UNSIGNED_INT, 0);
1506
- }
1507
- }
1508
-
1509
- heightPickingRendering(sh, layerSlice) {
1510
- var gl = this.handler.gl;
1511
- var sha = sh.attributes,
1512
- shu = sh.uniforms;
1513
-
1514
- var pm = this.materials,
1515
- p = this.planet;
1516
-
1517
- var currHeight;
1518
- if (layerSlice && layerSlice.length) {
1519
- currHeight = layerSlice[0]._height;
1520
- } else {
1521
- currHeight = 0;
1522
- }
1523
-
1524
- gl.uniform1f(shu.height, currHeight);
1525
-
1526
- gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexPositionBufferHigh);
1527
- gl.vertexAttribPointer(sha.aVertexPositionHigh, this.vertexPositionBufferHigh.itemSize, gl.FLOAT, false, 0, 0);
1528
-
1529
- gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexPositionBufferLow);
1530
- gl.vertexAttribPointer(sha.aVertexPositionLow, this.vertexPositionBufferLow.itemSize, gl.FLOAT, false, 0, 0);
1531
-
1532
- gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer);
1533
- gl.drawElements(gl.TRIANGLE_STRIP, this._indexBuffer.numItems, gl.UNSIGNED_INT, 0);
1534
- }
1535
-
1536
- colorPickingRendering(sh, layerSlice, sliceIndex, defaultTexture, isOverlay) {
1537
- var gl = this.handler.gl;
1538
- var sha = sh.attributes,
1539
- shu = sh.uniforms;
1540
-
1541
- var pm = this.materials,
1542
- p = this.planet;
1543
-
1544
- var currHeight;
1545
- if (layerSlice && layerSlice.length) {
1546
- currHeight = layerSlice[0]._height;
1547
- } else {
1548
- currHeight = 0;
1549
- }
1550
-
1551
- var notEmpty = false;
1552
-
1553
- var slice = this._slices[sliceIndex];
1554
-
1555
- let len = slice.layers.length;
1556
-
1557
- for (let n = 0; n < len; n++) {
1558
- notEmpty = true;
1559
-
1560
- var li = slice.layers[n];
1561
- var n4 = n * 4;
1562
-
1563
- p._pickingColorArr[n4] = li._pickingColor.x / 255.0;
1564
- p._pickingColorArr[n4 + 1] = li._pickingColor.y / 255.0;
1565
- p._pickingColorArr[n4 + 2] = li._pickingColor.z / 255.0;
1566
- p._pickingColorArr[n4 + 3] = li._pickingEnabled;
1567
-
1568
- p._samplerArr[n] = n;
1569
- gl.activeTexture(gl.TEXTURE0 + n);
1570
- gl.bindTexture(gl.TEXTURE_2D, pm[li._id].texture || this.planet.transparentTexture);
1571
-
1572
- p._pickingMaskArr[n] = n + p.SLICE_SIZE;
1573
- gl.activeTexture(gl.TEXTURE0 + n + p.SLICE_SIZE);
1574
- gl.bindTexture(gl.TEXTURE_2D, pm[li._id].pickingMask || this.planet.transparentTexture);
1575
- }
1576
-
1577
- if (notEmpty || !isOverlay) {
1578
- gl.uniform1i(shu.samplerCount, len);
1579
- gl.uniform1f(shu.height, currHeight);
1580
- gl.uniform1iv(shu.samplerArr, p._samplerArr);
1581
- gl.uniform1iv(shu.pickingMaskArr, p._pickingMaskArr);
1582
- gl.uniform4fv(shu.pickingColorArr, p._pickingColorArr);
1583
-
1584
- //slice.uniform(gl, shu);
1585
-
1586
- gl.uniform4fv(shu.tileOffsetArr, slice.tileOffsetArr);
1587
- gl.uniform1fv(shu.layerOpacityArr, slice.layerOpacityArr);
1588
- //gl.uniform4fv(shu.visibleExtentOffsetArr, slice.visibleExtentOffsetArr);
1589
-
1590
- gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexPositionBufferHigh);
1591
- gl.vertexAttribPointer(sha.aVertexPositionHigh, this.vertexPositionBufferHigh.itemSize, gl.FLOAT, false, 0, 0);
1592
- gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexPositionBufferLow);
1593
- gl.vertexAttribPointer(sha.aVertexPositionLow, this.vertexPositionBufferLow.itemSize, gl.FLOAT, false, 0, 0);
1594
-
1595
- gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexTextureCoordBuffer);
1596
- gl.vertexAttribPointer(sha.aTextureCoord, 2, gl.UNSIGNED_SHORT, true, 0, 0);
1597
-
1598
- gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer);
1599
- gl.drawElements(gl.TRIANGLE_STRIP, this._indexBuffer.numItems, gl.UNSIGNED_INT, 0);
1600
- }
1601
- }
1602
-
1603
- depthRendering(sh, layerSlice) {
1604
- var gl = this.handler.gl;
1605
- var sha = sh.attributes,
1606
- shu = sh.uniforms;
1607
-
1608
- var currHeight;
1609
- if (layerSlice && layerSlice.length) {
1610
- currHeight = layerSlice[0]._height;
1611
- } else {
1612
- currHeight = 0;
1613
- }
1614
-
1615
- gl.uniform1f(shu.height, currHeight);
1616
-
1617
- gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexPositionBufferHigh);
1618
- gl.vertexAttribPointer(sha.aVertexPositionHigh, this.vertexPositionBufferHigh.itemSize, gl.FLOAT, false, 0, 0);
1619
-
1620
- gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexPositionBufferLow);
1621
- gl.vertexAttribPointer(sha.aVertexPositionLow, this.vertexPositionBufferLow.itemSize, gl.FLOAT, false, 0, 0);
1622
-
1623
- gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer);
1624
- gl.drawElements(gl.TRIANGLE_STRIP, this._indexBuffer.numItems, gl.UNSIGNED_INT, 0);
1625
- }
1626
-
1627
- _getIndexBuffer() {
1628
- let s = this.node.sideSizeLog2;
1629
- let cache = this.planet._indexesCache[Math.log2(this.gridSize)][s[0]][s[1]][s[2]][s[3]];
1630
- if (!cache.buffer) {
1631
- let indexes = segmentHelper.getInstance().createSegmentIndexes(Math.log2(this.gridSize), [s[0], s[1], s[2], s[3]]);
1632
- cache.buffer = this.planet.renderer.handler.createElementArrayBuffer(indexes, 1);
1633
- this.planet._indexesCacheToRemoveCounter++;
1634
- indexes = null;
1635
- }
1636
- return cache.buffer;
1637
- }
1638
-
1639
- _collectVisibleNodes() {
1640
- this.planet._visibleNodes[this.node.nodeId] = this.node;
1641
- }
1642
-
1643
- layerOverlap(layer) {
1644
- return this._extent.overlaps(layer._extentMerc);
1645
- }
1646
-
1647
- getDefaultTexture() {
1648
- return this.planet.solidTextureOne;
1649
- }
1650
-
1651
- getExtentLonLat() {
1652
- return this._extentLonLat;
1653
- }
1654
-
1655
- getExtentMerc() {
1656
- return this._extent;
1657
- }
1658
-
1659
- getExtent() {
1660
- return this._extent;
1661
- }
1662
-
1663
- getNodeState() {
1664
- var vn = this.planet._visibleNodes[this.node.nodeId];
1665
- return (vn && vn.state) || NOTRENDERING;
1666
- }
1667
-
1668
- getNeighborSide(b) {
1669
- if (this.tileY === b.tileY) {
1670
- if (this.tileX === b.tileXE) {
1671
- return W;
1672
- } else if (this.tileX === b.tileXW) {
1673
- return E;
1674
- }
1675
- } else if (this.tileX === b.tileX) {
1676
- if (this.tileY === b.tileYS) {
1677
- return N;
1678
- } else if (this.tileY === b.tileYN) {
1679
- return S;
1680
- }
1681
- }
1682
-
1683
- return -1;
1684
- }
1685
- }
1686
-
1687
- export { Segment };