@openglobus/og 0.17.1 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/README.md +75 -46
  2. package/dist/@openglobus/og.esm.js +1 -20
  3. package/dist/@openglobus/og.esm.js.map +1 -1
  4. package/dist/@openglobus/og.umd.js +1 -20
  5. package/dist/@openglobus/og.umd.js.map +1 -1
  6. package/dist/@openglobus/res/fonts/Karla-Bold.json +5252 -0
  7. package/dist/@openglobus/res/fonts/Karla-Bold.ttf.cfg +920 -0
  8. package/dist/@openglobus/res/fonts/Karla-Bold.ttf.png +0 -0
  9. package/dist/@openglobus/res/fonts/Karla-Light.json +5252 -0
  10. package/dist/@openglobus/res/fonts/Karla-Light.ttf.cfg +830 -0
  11. package/dist/@openglobus/res/fonts/Karla-Light.ttf.png +0 -0
  12. package/dist/@openglobus/res/fonts/Karla-Medium.json +5252 -0
  13. package/dist/@openglobus/res/fonts/Karla-Medium.ttf.cfg +1196 -0
  14. package/dist/@openglobus/res/fonts/Karla-Medium.ttf.png +0 -0
  15. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.json +3332 -0
  16. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.cfg +1370 -0
  17. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.png +0 -0
  18. package/dist/@openglobus/res/fonts/Roboto-Regular.json +37147 -0
  19. package/dist/@openglobus/res/fonts/Roboto-Regular.ttf.cfg +1340 -0
  20. package/dist/@openglobus/res/fonts/Roboto-Regular.ttf.png +0 -0
  21. package/dist/@openglobus/res/fonts/arial.json +4321 -0
  22. package/dist/@openglobus/res/fonts/arial.ttf.cfg +1570 -0
  23. package/dist/@openglobus/res/fonts/arial.ttf.png +0 -0
  24. package/dist/@openglobus/res/night-4326.png +0 -0
  25. package/dist/@openglobus/res/night.png +0 -0
  26. package/dist/@openglobus/res/spec.png +0 -0
  27. package/package.json +25 -23
  28. package/src/{og/Clock.js → Clock.ts} +100 -78
  29. package/src/Deferred.ts +17 -0
  30. package/src/Events.ts +200 -0
  31. package/src/{og/Extent.js → Extent.ts} +324 -352
  32. package/src/Globe.ts +363 -0
  33. package/src/{og/ImageCanvas.js → ImageCanvas.ts} +244 -236
  34. package/src/Lock.ts +41 -0
  35. package/src/{og/LonLat.js → LonLat.ts} +50 -47
  36. package/src/{og/Object3d.js → Object3d.ts} +89 -55
  37. package/src/Popup.ts +228 -0
  38. package/src/{og/QueueArray.js → QueueArray.ts} +76 -75
  39. package/src/{og/Rectangle.js → Rectangle.ts} +115 -111
  40. package/src/Stack.ts +58 -0
  41. package/src/{og/astro/astro.js → astro/astro.ts} +49 -51
  42. package/src/{og/astro/earth.js → astro/earth.ts} +8 -9
  43. package/src/{og/astro/jd.js → astro/jd.ts} +92 -111
  44. package/src/{og/astro/orbit.js → astro/orbit.ts} +35 -37
  45. package/src/{og/astro/rotation.js → astro/rotation.ts} +4 -6
  46. package/src/{og/bv/Box.js → bv/Box.ts} +21 -17
  47. package/src/{og/bv/Sphere.js → bv/Sphere.ts} +21 -19
  48. package/src/bv/index.ts +4 -0
  49. package/src/{og/camera/Camera.js → camera/Camera.ts} +254 -197
  50. package/src/{og/camera/Frustum.js → camera/Frustum.ts} +137 -111
  51. package/src/{og/camera/PlanetCamera.js → camera/PlanetCamera.ts} +248 -185
  52. package/src/camera/index.ts +4 -0
  53. package/src/{og/cons.js → cons.ts} +14 -18
  54. package/src/{og/control/Atmosphere.js → control/Atmosphere.ts} +50 -50
  55. package/src/{og/control/CompassButton.js → control/CompassButton.ts} +27 -30
  56. package/src/{og/control/Control.js → control/Control.ts} +76 -70
  57. package/src/{og/control/DebugInfo.js → control/DebugInfo.ts} +130 -62
  58. package/src/{og/control/DrawingSwitcher.js → control/DrawingSwitcher.ts} +16 -22
  59. package/src/control/EarthCoordinates.ts +222 -0
  60. package/src/control/EarthNavigation.ts +293 -0
  61. package/src/{og/control/GeoImageDragControl.js → control/GeoImageDragControl.ts} +37 -29
  62. package/src/control/KeyboardNavigation.ts +168 -0
  63. package/src/{og/control/LayerAnimation.js → control/LayerAnimation.ts} +74 -90
  64. package/src/control/LayerSwitcher.ts +76 -0
  65. package/src/{og/control/Lighting.js → control/Lighting.ts} +158 -120
  66. package/src/control/MouseNavigation.ts +468 -0
  67. package/src/control/MouseWheelZoomControl.ts +269 -0
  68. package/src/{og/control/RulerSwitcher.js → control/RulerSwitcher.ts} +18 -20
  69. package/src/control/ScaleControl.ts +131 -0
  70. package/src/control/SegmentBoundVisualization.ts +50 -0
  71. package/src/control/ShowFps.ts +28 -0
  72. package/src/control/SimpleNavigation.ts +118 -0
  73. package/src/{og/control/SimpleSkyBackground.js → control/SimpleSkyBackground.ts} +36 -38
  74. package/src/{og/control/Sun.js → control/Sun.ts} +56 -64
  75. package/src/control/ToggleWireframe.ts +35 -0
  76. package/src/control/TouchNavigation.ts +368 -0
  77. package/src/control/ZoomControl.ts +111 -0
  78. package/src/control/drawing/DrawingControl.ts +45 -0
  79. package/src/{og/control/drawing/LineStringDrawingScene.js → control/drawing/LineStringDrawingScene.ts} +28 -35
  80. package/src/{og/control/drawing/PolygonDrawingScene.js → control/drawing/PolygonDrawingScene.ts} +148 -201
  81. package/src/{og/control/elevationProfile/ElevationProfile.js → control/elevationProfile/ElevationProfile.ts} +70 -36
  82. package/src/control/heightRuler/HeightRuler.ts +16 -0
  83. package/src/{og/control/heightRuler/HeightRulerScene.js → control/heightRuler/HeightRulerScene.ts} +92 -87
  84. package/src/{og/control/heightRuler/HeightRulerSwitcher.js → control/heightRuler/HeightRulerSwitcher.ts} +3 -3
  85. package/src/control/index.ts +45 -0
  86. package/src/control/ruler/Ruler.ts +35 -0
  87. package/src/{og/control/ruler/RulerScene.js → control/ruler/RulerScene.ts} +163 -121
  88. package/src/{og/control/selection/Selection.js → control/selection/Selection.ts} +23 -21
  89. package/src/{og/control/selection/SelectionScene.js → control/selection/SelectionScene.ts} +64 -50
  90. package/src/{og/control/timeline/TimelineControl.js → control/timeline/TimelineControl.ts} +37 -28
  91. package/src/{og/control/timeline/TimelineModel.js → control/timeline/TimelineModel.ts} +50 -35
  92. package/src/{og/control/timeline/TimelineView.js → control/timeline/TimelineView.ts} +162 -113
  93. package/src/{og/control/timeline/timelineUtils.js → control/timeline/timelineUtils.ts} +11 -10
  94. package/src/{og/control → control}/visibleExtent/Segment.js +5 -5
  95. package/src/{og/control → control}/visibleExtent/VisibleExtent.js +8 -15
  96. package/src/{og/control/visibleExtent/drawnode.js → control/visibleExtent/drawnode.ts} +1 -3
  97. package/src/{og/ellipsoid/Ellipsoid.js → ellipsoid/Ellipsoid.ts} +113 -59
  98. package/src/ellipsoid/index.ts +4 -0
  99. package/src/{og/ellipsoid/wgs84.js → ellipsoid/wgs84.ts} +1 -3
  100. package/src/{og/entity/BaseBillboard.js → entity/BaseBillboard.ts} +128 -102
  101. package/src/entity/BaseBillboardHandler.ts +772 -0
  102. package/src/{og/entity/Billboard.js → entity/Billboard.ts} +77 -47
  103. package/src/entity/BillboardHandler.ts +135 -0
  104. package/src/{og/entity/Entity.js → entity/Entity.ts} +285 -226
  105. package/src/{og/entity/EntityCollection.js → entity/EntityCollection.ts} +340 -247
  106. package/src/{og/entity/GeoObject.js → entity/GeoObject.ts} +122 -67
  107. package/src/{og/entity/GeoObjectHandler.js → entity/GeoObjectHandler.ts} +273 -198
  108. package/src/entity/Geometry.ts +486 -0
  109. package/src/{og/entity/GeometryHandler.js → entity/GeometryHandler.ts} +383 -541
  110. package/src/{og/entity/Label.js → entity/Label.ts} +131 -83
  111. package/src/{og/entity/LabelHandler.js → entity/LabelHandler.ts} +289 -255
  112. package/src/{og/entity/LabelWorker.js → entity/LabelWorker.ts} +26 -36
  113. package/src/{og/entity/PointCloud.js → entity/PointCloud.ts} +200 -164
  114. package/src/entity/PointCloudHandler.ts +125 -0
  115. package/src/{og/entity/Polyline.js → entity/Polyline.ts} +517 -539
  116. package/src/{og/entity/PolylineHandler.js → entity/PolylineHandler.ts} +29 -31
  117. package/src/{og/entity/Ray.js → entity/Ray.ts} +89 -60
  118. package/src/{og/entity/RayHandler.js → entity/RayHandler.ts} +201 -306
  119. package/src/{og/entity/Strip.js → entity/Strip.ts} +143 -100
  120. package/src/{og/entity/StripHandler.js → entity/StripHandler.ts} +76 -72
  121. package/src/entity/index.ts +12 -0
  122. package/src/index.ts +173 -0
  123. package/src/input/KeyboardHandler.ts +196 -0
  124. package/src/{og/input/MouseHandler.js → input/MouseHandler.ts} +46 -35
  125. package/src/input/TouchHandler.ts +54 -0
  126. package/src/{og/input/input.js → input/input.ts} +1 -3
  127. package/src/{og/layer/BaseGeoImage.js → layer/BaseGeoImage.ts} +174 -107
  128. package/src/{og/layer/CanvasTiles.js → layer/CanvasTiles.ts} +139 -105
  129. package/src/{og/layer/GeoImage.js → layer/GeoImage.ts} +62 -52
  130. package/src/layer/GeoTexture2d.ts +56 -0
  131. package/src/{og/layer/GeoVideo.js → layer/GeoVideo.ts} +53 -53
  132. package/src/{og/layer/KML.js → layer/KML.ts} +63 -74
  133. package/src/{og/layer/Layer.js → layer/Layer.ts} +399 -223
  134. package/src/{og/layer/Material.js → layer/Material.ts} +40 -35
  135. package/src/{og/layer/Vector.js → layer/Vector.ts} +319 -267
  136. package/src/{og/layer/WMS.js → layer/WMS.ts} +76 -64
  137. package/src/{og/layer/XYZ.js → layer/XYZ.ts} +123 -98
  138. package/src/layer/index.ts +12 -0
  139. package/src/{og/light/LightSource.js → light/LightSource.ts} +132 -93
  140. package/src/{og/math/Line2.js → math/Line2.ts} +11 -8
  141. package/src/{og/math/Line3.js → math/Line3.ts} +49 -27
  142. package/src/{og/math/Mat3.js → math/Mat3.ts} +43 -27
  143. package/src/{og/math/Mat4.js → math/Mat4.ts} +110 -77
  144. package/src/{og/math/Plane.js → math/Plane.ts} +28 -23
  145. package/src/{og/math/Quat.js → math/Quat.ts} +238 -222
  146. package/src/{og/math/Ray.js → math/Ray.ts} +59 -63
  147. package/src/{og/math/Vec2.js → math/Vec2.ts} +85 -76
  148. package/src/{og/math/Vec3.js → math/Vec3.ts} +141 -140
  149. package/src/{og/math/Vec4.js → math/Vec4.ts} +64 -53
  150. package/src/{og/math/coder.js → math/coder.ts} +30 -27
  151. package/src/math/index.ts +26 -0
  152. package/src/{og/math.js → math.ts} +46 -49
  153. package/src/{og/mercator.js → mercator.ts} +143 -149
  154. package/src/{og/proj/EPSG3857.js → proj/EPSG3857.ts} +1 -3
  155. package/src/{og/proj/EPSG4326.js → proj/EPSG4326.ts} +11 -13
  156. package/src/{og/proj/Proj.js → proj/Proj.ts} +27 -23
  157. package/src/{og/quadTree/EPSG4326QuadTreeStrategy.js → quadTree/EPSG4326QuadTreeStrategy.ts} +10 -13
  158. package/src/{og/quadTree/EarthQuadTreeStrategy.js → quadTree/EarthQuadTreeStrategy.ts} +11 -13
  159. package/src/quadTree/EntityCollectionNode.ts +395 -0
  160. package/src/{og/quadTree/MarsQuadTreeStrategy.js → quadTree/MarsQuadTreeStrategy.ts} +10 -13
  161. package/src/{og/quadTree/Node.js → quadTree/Node.ts} +283 -191
  162. package/src/{og/quadTree/QuadTreeStrategy.js → quadTree/QuadTreeStrategy.ts} +35 -29
  163. package/src/quadTree/Wgs84QuadTreeStrategy.ts +22 -0
  164. package/src/quadTree/index.ts +14 -0
  165. package/src/{og/quadTree/quadTree.js → quadTree/quadTree.ts} +75 -77
  166. package/src/{og/renderer/Renderer.js → renderer/Renderer.ts} +454 -298
  167. package/src/{og/renderer/RendererEvents.js → renderer/RendererEvents.ts} +347 -270
  168. package/src/{og/scene/Axes.js → scene/Axes.ts} +26 -22
  169. package/src/{og/scene/BaseNode.js → scene/BaseNode.ts} +53 -47
  170. package/src/{og/scene/Planet.js → scene/Planet.ts} +777 -595
  171. package/src/{og/scene/RenderNode.js → scene/RenderNode.ts} +105 -91
  172. package/src/{og/scene/SkyBox.js → scene/SkyBox.ts} +29 -25
  173. package/src/scene/index.ts +6 -0
  174. package/src/{og/segment/Segment.js → segment/Segment.ts} +497 -371
  175. package/src/{og/segment/SegmentLonLat.js → segment/SegmentLonLat.ts} +81 -87
  176. package/src/{og/segment/SegmentLonLatWgs84.js → segment/SegmentLonLatWgs84.ts} +9 -16
  177. package/src/{og/segment/Slice.js → segment/Slice.ts} +15 -9
  178. package/src/{og/segment/segmentHelper.js → segment/segmentHelper.ts} +57 -49
  179. package/src/{og/shaders/atmos.js → shaders/atmos.ts} +4 -6
  180. package/src/{og/shaders/billboard.js → shaders/billboard.ts} +3 -5
  181. package/src/{og/shaders/bloom.js → shaders/bloom.ts} +2 -4
  182. package/src/{og/shaders/blur.js → shaders/blur.ts} +4 -7
  183. package/src/{og/shaders/depth.js → shaders/depth.ts} +1 -3
  184. package/src/{og/shaders/drawnode.js → shaders/drawnode.ts} +19 -21
  185. package/src/{og/shaders/geoObject.js → shaders/geoObject.ts} +17 -19
  186. package/src/{og/shaders/label.js → shaders/label.ts} +4 -6
  187. package/src/{og/shaders/lumFilter.js → shaders/lumFilter.ts} +2 -4
  188. package/src/{og/shaders/pickingMask.js → shaders/pickingMask.ts} +2 -4
  189. package/src/{og/shaders/pointCloud.js → shaders/pointCloud.ts} +7 -10
  190. package/src/{og/shaders/polyline.js → shaders/polyline.ts} +3 -200
  191. package/src/{og/shaders/ray.js → shaders/ray.ts} +2 -4
  192. package/src/{og/shaders/screenFrame.js → shaders/screenFrame.ts} +2 -4
  193. package/src/{og/shaders/skybox.js → shaders/skybox.ts} +7 -9
  194. package/src/{og/shaders/toneMapping.js → shaders/toneMapping.ts} +2 -4
  195. package/src/{og/shaders/utils.js → shaders/utils.ts} +0 -2
  196. package/src/{og/terrain/BilTerrain.js → terrain/BilTerrain.ts} +38 -32
  197. package/src/terrain/EmptyTerrain.ts +230 -0
  198. package/src/{og/terrain/Geoid.js → terrain/Geoid.ts} +67 -41
  199. package/src/{og/terrain/GlobusTerrain.js → terrain/GlobusTerrain.ts} +159 -153
  200. package/src/{og/terrain/MapboxTerrain.js → terrain/MapboxTerrain.ts} +58 -61
  201. package/src/terrain/index.ts +6 -0
  202. package/src/ui/Button.ts +121 -0
  203. package/src/ui/ButtonGroup.ts +63 -0
  204. package/src/ui/Dialog.ts +244 -0
  205. package/src/ui/Slider.ts +188 -0
  206. package/src/ui/ToggleButton.ts +68 -0
  207. package/src/{og/ui/View.js → ui/View.ts} +66 -59
  208. package/src/utils/BaseWorker.ts +60 -0
  209. package/src/utils/FontAtlas.ts +356 -0
  210. package/src/{og/utils/GeoImageCreator.js → utils/GeoImageCreator.ts} +45 -29
  211. package/src/{og/utils/ImagesCacheManager.js → utils/ImagesCacheManager.ts} +85 -70
  212. package/src/utils/Loader.ts +247 -0
  213. package/src/{og/utils/NormalMapCreator.js → utils/NormalMapCreator.ts} +114 -77
  214. package/src/{og/utils/PlainSegmentWorker.js → utils/PlainSegmentWorker.ts} +41 -24
  215. package/src/{og/utils/TerrainWorker.js → utils/TerrainWorker.ts} +51 -36
  216. package/src/utils/TextureAtlas.ts +322 -0
  217. package/src/{og/utils/VectorTileCreator.js → utils/VectorTileCreator.ts} +67 -52
  218. package/src/{og/utils/colorTable.js → utils/colorTable.ts} +142 -144
  219. package/src/{og/utils/earcut.js → utils/earcut.ts} +664 -661
  220. package/src/{og/utils/objParser.js → utils/objParser.ts} +66 -37
  221. package/src/{og/utils/shared.js → utils/shared.ts} +267 -206
  222. package/src/utils/units.ts +78 -0
  223. package/src/webgl/BaseFramebuffer.ts +125 -0
  224. package/src/webgl/Framebuffer.ts +206 -0
  225. package/src/webgl/Handler.ts +1414 -0
  226. package/src/webgl/Multisample.ts +153 -0
  227. package/src/webgl/Program.ts +451 -0
  228. package/src/{og/webgl/ProgramController.js → webgl/ProgramController.ts} +44 -43
  229. package/src/webgl/index.ts +13 -0
  230. package/src/{og/webgl/types.js → webgl/types.ts} +29 -31
  231. package/src/webgl/variableHandlers.ts +114 -0
  232. package/src/og/Deferred.js +0 -11
  233. package/src/og/Events.js +0 -185
  234. package/src/og/Globe.js +0 -342
  235. package/src/og/Lock.js +0 -44
  236. package/src/og/Popup.js +0 -187
  237. package/src/og/Stack.js +0 -49
  238. package/src/og/bv/index.js +0 -4
  239. package/src/og/camera/index.js +0 -4
  240. package/src/og/control/EarthCoordinates.js +0 -214
  241. package/src/og/control/EarthNavigation.js +0 -258
  242. package/src/og/control/KeyboardNavigation.js +0 -149
  243. package/src/og/control/LayerSwitcher.js +0 -424
  244. package/src/og/control/MouseNavigation.js +0 -436
  245. package/src/og/control/MouseWheelZoomControl.js +0 -253
  246. package/src/og/control/ScaleControl.js +0 -119
  247. package/src/og/control/SegmentBoundVisualization.js +0 -54
  248. package/src/og/control/ShowFps.js +0 -40
  249. package/src/og/control/SimpleNavigation.js +0 -123
  250. package/src/og/control/ToggleWireframe.js +0 -35
  251. package/src/og/control/TouchNavigation.js +0 -350
  252. package/src/og/control/ZoomControl.js +0 -115
  253. package/src/og/control/drawing/DrawingControl.js +0 -51
  254. package/src/og/control/heightRuler/HeightRuler.js +0 -12
  255. package/src/og/control/index.js +0 -56
  256. package/src/og/control/ruler/Ruler.js +0 -39
  257. package/src/og/ellipsoid/index.js +0 -4
  258. package/src/og/entity/BillboardHandler.js +0 -883
  259. package/src/og/entity/Geometry.js +0 -320
  260. package/src/og/entity/PointCloudHandler.js +0 -122
  261. package/src/og/entity/index.js +0 -9
  262. package/src/og/index.js +0 -112
  263. package/src/og/input/KeyboardHandler.js +0 -128
  264. package/src/og/input/TouchHandler.js +0 -59
  265. package/src/og/layer/GeoTexture2d.js +0 -50
  266. package/src/og/layer/index.js +0 -11
  267. package/src/og/math/index.js +0 -23
  268. package/src/og/quadTree/EntityCollectionNode.js +0 -391
  269. package/src/og/quadTree/Wgs84QuadTreeStrategy.js +0 -27
  270. package/src/og/quadTree/index.js +0 -14
  271. package/src/og/res/images.js +0 -8
  272. package/src/og/scene/index.js +0 -5
  273. package/src/og/terrain/EmptyTerrain.js +0 -174
  274. package/src/og/terrain/index.js +0 -6
  275. package/src/og/ui/Button.js +0 -107
  276. package/src/og/ui/ButtonGroup.js +0 -57
  277. package/src/og/ui/Dialog.js +0 -239
  278. package/src/og/ui/Slider.js +0 -170
  279. package/src/og/ui/ToggleButton.js +0 -51
  280. package/src/og/ui/UIhelpers.js +0 -155
  281. package/src/og/utils/BaseWorker.js +0 -46
  282. package/src/og/utils/FontAtlas.js +0 -218
  283. package/src/og/utils/Loader.js +0 -188
  284. package/src/og/utils/TextureAtlas.js +0 -291
  285. package/src/og/utils/functionComposition.js +0 -13
  286. package/src/og/utils/units.js +0 -78
  287. package/src/og/webgl/Framebuffer.js +0 -311
  288. package/src/og/webgl/Handler.js +0 -1168
  289. package/src/og/webgl/Multisample.js +0 -275
  290. package/src/og/webgl/Program.js +0 -407
  291. package/src/og/webgl/callbacks.js +0 -98
  292. package/src/og/webgl/index.js +0 -13
  293. package/src/og.jsdoc +0 -3
  294. package/types/Clock.d.ts +0 -99
  295. package/types/Deferred.d.ts +0 -6
  296. package/types/Events.d.ts +0 -78
  297. package/types/Extent.d.ts +0 -166
  298. package/types/Globe.d.ts +0 -108
  299. package/types/ImageCanvas.d.ts +0 -128
  300. package/types/Lock.d.ts +0 -12
  301. package/types/LonLat.d.ts +0 -127
  302. package/types/Object3d.d.ts +0 -35
  303. package/types/Popup.d.ts +0 -29
  304. package/types/QueueArray.d.ts +0 -19
  305. package/types/Rectangle.d.ts +0 -80
  306. package/types/Stack.d.ts +0 -19
  307. package/types/arial.d.ts +0 -49
  308. package/types/astro/astro.d.ts +0 -38
  309. package/types/astro/earth.d.ts +0 -7
  310. package/types/astro/jd.d.ts +0 -254
  311. package/types/bv/Box.d.ts +0 -30
  312. package/types/bv/Sphere.d.ts +0 -38
  313. package/types/bv/index.d.ts +0 -3
  314. package/types/camera/Camera.d.ts +0 -314
  315. package/types/camera/Frustum.d.ts +0 -133
  316. package/types/camera/PlanetCamera.d.ts +0 -219
  317. package/types/camera/index.d.ts +0 -3
  318. package/types/cons.d.ts +0 -40
  319. package/types/control/Atmosphere.d.ts +0 -15
  320. package/types/control/CompassButton.d.ts +0 -16
  321. package/types/control/Control.d.ts +0 -104
  322. package/types/control/DebugInfo.d.ts +0 -19
  323. package/types/control/DrawingSwitcher.d.ts +0 -13
  324. package/types/control/EarthCoordinates.d.ts +0 -44
  325. package/types/control/EarthNavigation.d.ts +0 -43
  326. package/types/control/GeoImageDragControl.d.ts +0 -14
  327. package/types/control/KeyboardNavigation.d.ts +0 -24
  328. package/types/control/LayerAnimation.d.ts +0 -73
  329. package/types/control/LayerSwitcher.d.ts +0 -64
  330. package/types/control/Lighting.d.ts +0 -41
  331. package/types/control/MouseNavigation.d.ts +0 -49
  332. package/types/control/MouseWheelZoomControl.d.ts +0 -46
  333. package/types/control/ScaleControl.d.ts +0 -23
  334. package/types/control/ShowFps.d.ts +0 -11
  335. package/types/control/SimpleNavigation.d.ts +0 -26
  336. package/types/control/SimpleSkyBackground.d.ts +0 -15
  337. package/types/control/Sun.d.ts +0 -53
  338. package/types/control/ToggleWireframe.d.ts +0 -12
  339. package/types/control/TouchNavigation.d.ts +0 -54
  340. package/types/control/ZoomControl.d.ts +0 -26
  341. package/types/control/drawing/DrawingControl.d.ts +0 -14
  342. package/types/control/drawing/LineStringDrawingScene.d.ts +0 -5
  343. package/types/control/drawing/PolygonDrawingScene.d.ts +0 -99
  344. package/types/control/heightRuler/HeightRuler.d.ts +0 -6
  345. package/types/control/heightRuler/HeightRulerScene.d.ts +0 -23
  346. package/types/control/index.d.ts +0 -27
  347. package/types/control/ruler/Ruler.d.ts +0 -13
  348. package/types/control/ruler/RulerScene.d.ts +0 -51
  349. package/types/control/selection/Selection.d.ts +0 -49
  350. package/types/control/selection/SelectionScene.d.ts +0 -32
  351. package/types/control/timeline/TimelineControl.d.ts +0 -10
  352. package/types/control/timeline/TimelineModel.d.ts +0 -33
  353. package/types/control/timeline/TimelineView.d.ts +0 -57
  354. package/types/control/timeline/timelineUtils.d.ts +0 -9
  355. package/types/ellipsoid/Ellipsoid.d.ts +0 -170
  356. package/types/ellipsoid/index.d.ts +0 -3
  357. package/types/ellipsoid/wgs84.d.ts +0 -6
  358. package/types/entity/BaseBillboard.d.ts +0 -215
  359. package/types/entity/Billboard.d.ts +0 -94
  360. package/types/entity/BillboardHandler.d.ts +0 -75
  361. package/types/entity/Entity.d.ts +0 -340
  362. package/types/entity/EntityCollection.d.ts +0 -303
  363. package/types/entity/GeoObject.d.ts +0 -117
  364. package/types/entity/GeoObjectHandler.d.ts +0 -41
  365. package/types/entity/Geometry.d.ts +0 -79
  366. package/types/entity/GeometryHandler.d.ts +0 -76
  367. package/types/entity/Label.d.ts +0 -190
  368. package/types/entity/LabelHandler.d.ts +0 -31
  369. package/types/entity/LabelWorker.d.ts +0 -9
  370. package/types/entity/PointCloud.d.ts +0 -174
  371. package/types/entity/PointCloudHandler.d.ts +0 -38
  372. package/types/entity/Polyline.d.ts +0 -307
  373. package/types/entity/PolylineHandler.d.ts +0 -18
  374. package/types/entity/Ray.d.ts +0 -122
  375. package/types/entity/RayHandler.d.ts +0 -63
  376. package/types/entity/Strip.d.ts +0 -119
  377. package/types/entity/StripHandler.d.ts +0 -38
  378. package/types/entity/index.d.ts +0 -8
  379. package/types/index.d.ts +0 -53
  380. package/types/input/KeyboardHandler.d.ts +0 -10
  381. package/types/input/MouseHandler.d.ts +0 -5
  382. package/types/input/TouchHandler.d.ts +0 -5
  383. package/types/input/input.d.ts +0 -42
  384. package/types/layer/BaseGeoImage.d.ts +0 -116
  385. package/types/layer/CanvasTiles.d.ts +0 -73
  386. package/types/layer/GeoImage.d.ts +0 -51
  387. package/types/layer/GeoTexture2d.d.ts +0 -7
  388. package/types/layer/GeoVideo.d.ts +0 -47
  389. package/types/layer/KML.d.ts +0 -93
  390. package/types/layer/Layer.d.ts +0 -320
  391. package/types/layer/Material.d.ts +0 -45
  392. package/types/layer/Vector.d.ts +0 -211
  393. package/types/layer/WMS.d.ts +0 -66
  394. package/types/layer/XYZ.d.ts +0 -122
  395. package/types/layer/index.d.ts +0 -10
  396. package/types/light/LightSource.d.ts +0 -178
  397. package/types/math/Line2.d.ts +0 -11
  398. package/types/math/Line3.d.ts +0 -10
  399. package/types/math/Mat3.d.ts +0 -65
  400. package/types/math/Mat4.d.ts +0 -176
  401. package/types/math/Plane.d.ts +0 -18
  402. package/types/math/Quat.d.ts +0 -379
  403. package/types/math/Ray.d.ts +0 -82
  404. package/types/math/Vec2.d.ts +0 -309
  405. package/types/math/Vec3.d.ts +0 -472
  406. package/types/math/Vec4.d.ts +0 -161
  407. package/types/math/coder.d.ts +0 -43
  408. package/types/math/index.d.ts +0 -11
  409. package/types/math.d.ts +0 -268
  410. package/types/mercator.d.ts +0 -92
  411. package/types/proj/EPSG3857.d.ts +0 -6
  412. package/types/proj/EPSG4326.d.ts +0 -6
  413. package/types/proj/Proj.d.ts +0 -42
  414. package/types/quadTree/EPSG4326QuadTreeStrategy.d.ts +0 -3
  415. package/types/quadTree/EarthQuadTreeStrategy.d.ts +0 -3
  416. package/types/quadTree/EntityCollectionNode.d.ts +0 -41
  417. package/types/quadTree/MarsQuadTreeStrategy.d.ts +0 -3
  418. package/types/quadTree/Node.d.ts +0 -58
  419. package/types/quadTree/QuadTreeStrategy.d.ts +0 -21
  420. package/types/quadTree/Wgs84QuadTreeStrategy.d.ts +0 -3
  421. package/types/quadTree/index.d.ts +0 -12
  422. package/types/quadTree/quadTree.d.ts +0 -40
  423. package/types/renderer/Renderer.d.ts +0 -291
  424. package/types/renderer/RendererEvents.d.ts +0 -255
  425. package/types/res/images.d.ts +0 -2
  426. package/types/scene/Axes.d.ts +0 -10
  427. package/types/scene/BaseNode.d.ts +0 -60
  428. package/types/scene/Planet.d.ts +0 -595
  429. package/types/scene/RenderNode.d.ts +0 -152
  430. package/types/scene/SkyBox.d.ts +0 -9
  431. package/types/scene/index.d.ts +0 -4
  432. package/types/segment/Segment.d.ts +0 -273
  433. package/types/segment/SegmentLonLat.d.ts +0 -22
  434. package/types/segment/SegmentLonLatWgs84.d.ts +0 -4
  435. package/types/segment/Slice.d.ts +0 -10
  436. package/types/segment/segmentHelper.d.ts +0 -13
  437. package/types/shaders/atmos.d.ts +0 -4
  438. package/types/shaders/billboard.d.ts +0 -3
  439. package/types/shaders/depth.d.ts +0 -2
  440. package/types/shaders/drawnode.d.ts +0 -8
  441. package/types/shaders/geoObject.d.ts +0 -3
  442. package/types/shaders/label.d.ts +0 -4
  443. package/types/shaders/pickingMask.d.ts +0 -2
  444. package/types/shaders/pointCloud.d.ts +0 -2
  445. package/types/shaders/polyline.d.ts +0 -3
  446. package/types/shaders/ray.d.ts +0 -2
  447. package/types/shaders/screenFrame.d.ts +0 -2
  448. package/types/shaders/skybox.d.ts +0 -2
  449. package/types/shaders/toneMapping.d.ts +0 -2
  450. package/types/shaders/utils.d.ts +0 -1
  451. package/types/terrain/BilTerrain.d.ts +0 -14
  452. package/types/terrain/EmptyTerrain.d.ts +0 -87
  453. package/types/terrain/Geoid.d.ts +0 -17
  454. package/types/terrain/GlobusTerrain.d.ts +0 -122
  455. package/types/terrain/MapboxTerrain.d.ts +0 -14
  456. package/types/terrain/index.d.ts +0 -5
  457. package/types/ui/Button.d.ts +0 -21
  458. package/types/ui/ButtonGroup.d.ts +0 -12
  459. package/types/ui/Dialog.d.ts +0 -41
  460. package/types/ui/Slider.d.ts +0 -33
  461. package/types/ui/ToggleButton.d.ts +0 -10
  462. package/types/ui/UIhelpers.d.ts +0 -13
  463. package/types/ui/View.d.ts +0 -33
  464. package/types/ui/icons.d.ts +0 -1
  465. package/types/utils/BaseWorker.d.ts +0 -14
  466. package/types/utils/FontAtlas.d.ts +0 -16
  467. package/types/utils/GeoImageCreator.d.ts +0 -30
  468. package/types/utils/ImagesCacheManager.d.ts +0 -10
  469. package/types/utils/Loader.d.ts +0 -31
  470. package/types/utils/NormalMapCreator.d.ts +0 -39
  471. package/types/utils/PlainSegmentWorker.d.ts +0 -8
  472. package/types/utils/TerrainWorker.d.ts +0 -7
  473. package/types/utils/TextureAtlas.d.ts +0 -113
  474. package/types/utils/VectorTileCreator.d.ts +0 -14
  475. package/types/utils/colorTable.d.ts +0 -143
  476. package/types/utils/earcut.d.ts +0 -6
  477. package/types/utils/functionComposition.d.ts +0 -5
  478. package/types/utils/objParser.d.ts +0 -8
  479. package/types/utils/shared.d.ts +0 -241
  480. package/types/utils/units.d.ts +0 -20
  481. package/types/webgl/Framebuffer.d.ts +0 -134
  482. package/types/webgl/Handler.d.ts +0 -403
  483. package/types/webgl/Multisample.d.ts +0 -91
  484. package/types/webgl/Program.d.ts +0 -163
  485. package/types/webgl/ProgramController.d.ts +0 -89
  486. package/types/webgl/callbacks.d.ts +0 -1
  487. package/types/webgl/index.d.ts +0 -6
  488. package/types/webgl/types.d.ts +0 -2
  489. /package/{src/og → dist/@openglobus/res/fonts}/arial.js +0 -0
  490. /package/src/{og/ui/icons.js → ui/icons.ts} +0 -0
@@ -0,0 +1,247 @@
1
+ import {EventsHandler, createEvents} from '../Events';
2
+ import {Planet} from "../scene/Planet";
3
+ import {Segment} from "../segment/Segment";
4
+
5
+ type LoaderEventsList = ["loadend", "layerloadend"];
6
+
7
+ const LOADER_EVENTS: LoaderEventsList = ["loadend", "layerloadend"];
8
+
9
+ export interface IResponse {
10
+ status: string;
11
+ data?: any;
12
+ msg?: string;
13
+ }
14
+
15
+ type IResponseCallback = (response: IResponse) => void;
16
+
17
+ // interface IResponseHandler {
18
+ // json: (r: Response) => Promise<any>;
19
+ // blob: (r: Response) => Promise<Blob>;
20
+ // arrayBuffer: (r: Response) => Promise<ArrayBuffer>;
21
+ // imageBitmap: (r: Response) => Promise<ImageBitmap>;
22
+ // text: (r: Response) => Promise<string>;
23
+ // }
24
+
25
+ interface Obj<T> {
26
+ __id: number;
27
+ isIdle: boolean;
28
+ isEqual: (obj: T) => boolean;
29
+ events: EventsHandler<any>
30
+ _planet: Planet | null;
31
+
32
+ }
33
+
34
+ type QueryParams<T> = {
35
+ sender?: T,
36
+ src: string,
37
+ type: string,
38
+ filter?: (val: QueryParams<T>) => boolean,
39
+ options?: any,
40
+ segment?: Segment
41
+ };
42
+
43
+ type QueueData<T> = {
44
+ params: QueryParams<T>,
45
+ callback: IResponseCallback
46
+ };
47
+
48
+ type RequestCounter<T> = {
49
+ sender: T,
50
+ counter: number,
51
+ __requestCounterFrame__: number
52
+ };
53
+
54
+
55
+ export class Loader<T extends Obj<T>> {
56
+ public MAX_REQUESTS: number;
57
+
58
+ public events: EventsHandler<LoaderEventsList>;
59
+
60
+ protected _loading: number;
61
+
62
+ protected _queue: QueueData<T>[];//new QueueArray();
63
+
64
+ protected _senderRequestCounter: RequestCounter<T>[];
65
+
66
+ protected _promises: { [key: string]: (r: Response) => Promise<any> };//IResponseHandler;
67
+
68
+ constructor(maxRequests: number = 24) {
69
+
70
+ this.MAX_REQUESTS = maxRequests;
71
+
72
+ this.events = createEvents(LOADER_EVENTS);
73
+
74
+ this._loading = 0;
75
+
76
+ this._queue = [];//new QueueArray();
77
+
78
+ this._senderRequestCounter = [];
79
+
80
+ this._promises = {
81
+ 'json': r => r.json(),
82
+ 'blob': r => r.blob(),
83
+ 'arrayBuffer': r => r.arrayBuffer(),
84
+ 'imageBitmap': r => r.blob().then(
85
+ (r: Blob) => createImageBitmap(r, {
86
+ premultiplyAlpha: "premultiply"
87
+ })),
88
+ 'text': r => r.text()
89
+ };
90
+ }
91
+
92
+ public load(params: QueryParams<T>, callback: IResponseCallback) {
93
+ if (params.sender) {
94
+ if (!this._senderRequestCounter[params.sender.__id]) {
95
+ this._senderRequestCounter[params.sender.__id] = {
96
+ sender: params.sender, counter: 0, __requestCounterFrame__: 0
97
+ };
98
+ }
99
+ this._senderRequestCounter[params.sender.__id].counter++;
100
+ }
101
+ this._queue.push({params, callback});
102
+ this._exec();
103
+ }
104
+
105
+ public fetch(params: QueryParams<T>) {
106
+ return fetch(params.src, params.options || {})
107
+ .then((response: Response) => {
108
+ if (!response.ok) {
109
+ throw Error(`Unable to load '${params.src}'`);
110
+ }
111
+ return this._promises[params.type || "blob"](response);
112
+ })
113
+
114
+ .then((data: any) => {
115
+ return {status: "ready", data: data};
116
+
117
+ })
118
+
119
+ .catch((err: Error) => {
120
+ return {status: "error", msg: err.toString()};
121
+ });
122
+ }
123
+
124
+ public getRequestCounter(sender: T): number {
125
+ if (sender) {
126
+ let r = this._senderRequestCounter[sender.__id];
127
+ if (r) {
128
+ return r.counter;
129
+ }
130
+ }
131
+ return 0;
132
+ }
133
+
134
+ public isIdle(sender: T): boolean {
135
+ return sender.isIdle;
136
+ }
137
+
138
+ protected _checkLoadend(request: RequestCounter<T>, sender: T) {
139
+ if (request.counter === 0 && (!sender._planet || sender._planet._terrainCompletedActivated)) {
140
+ sender.events.dispatch(sender.events.loadend, sender);
141
+ this.events.dispatch(this.events.layerloadend, sender);
142
+ request.__requestCounterFrame__ = 0;
143
+ } else {
144
+ request.__requestCounterFrame__ = requestAnimationFrame(() => {
145
+ this._checkLoadend(request, sender);
146
+ });
147
+ }
148
+ }
149
+
150
+ protected _handleResponse(q: QueueData<T>, response: IResponse) {
151
+ q.callback(response);
152
+ let sender = q.params.sender;
153
+ if (sender && (sender.events.loadend!.handlers.length || this.events.layerloadend!.handlers.length)) {
154
+ let request = this._senderRequestCounter[sender.__id];
155
+ if (request && request.counter > 0) {
156
+ request.counter--;
157
+ cancelAnimationFrame(request.__requestCounterFrame__!);
158
+ request.__requestCounterFrame__ = requestAnimationFrame(() => {
159
+ this._checkLoadend(request, sender!);
160
+ });
161
+ }
162
+ }
163
+ this._exec();
164
+ }
165
+
166
+ protected _exec() {
167
+
168
+ if (this._queue.length > 0 && this._loading < this.MAX_REQUESTS) {
169
+
170
+ let q = this._queue.pop()!;
171
+
172
+ if (!q) return;
173
+
174
+ let p = q.params;
175
+
176
+ if (!p.filter || p.filter(p)) {
177
+
178
+ this._loading++;
179
+
180
+ return fetch(p.src!, p.options || {})
181
+ .then((response: Response) => {
182
+ if (!response.ok) {
183
+ throw Error(`Unable to load '${p.src}'`);
184
+ }
185
+ return this._promises[p.type || "blob"](response);
186
+ })
187
+ .then((data: any) => {
188
+ this._loading--;
189
+ this._handleResponse(q, {status: "ready", data: data});
190
+ })
191
+ .catch((err: Error) => {
192
+ this._loading--;
193
+ this._handleResponse(q, {status: "error", msg: err.toString()});
194
+ });
195
+
196
+ } else {
197
+ this._handleResponse(q, {status: "abort"});
198
+ }
199
+ } else if (this._loading === 0) {
200
+ this.events.dispatch(this.events.loadend);
201
+ }
202
+ }
203
+
204
+ public abort(sender: T) {
205
+
206
+ if (this._senderRequestCounter[sender.__id]) {
207
+ this._senderRequestCounter[sender.__id].counter = 0;
208
+ cancelAnimationFrame(this._senderRequestCounter[sender.__id].__requestCounterFrame__);
209
+ this._senderRequestCounter[sender.__id].__requestCounterFrame__ = 0;
210
+ }
211
+
212
+ for (let i = 0, len = this._queue.length; i < len; i++) {
213
+ let qi = this._queue[i];
214
+ if (qi && qi.params.sender && sender.isEqual(qi.params.sender)) {
215
+ qi.callback({'status': "abort"});
216
+ //@ts-ignore
217
+ this._queue[i] = null;
218
+ }
219
+ }
220
+ }
221
+
222
+ public abortAll() {
223
+ for (let i = 0, len = this._queue.length; i < len; i++) {
224
+ let qi = this._queue[i];
225
+ if (qi) {
226
+ let sender = qi.params.sender;
227
+ if (sender && this._senderRequestCounter[sender.__id]) {
228
+ this._senderRequestCounter[sender.__id].counter = 0;
229
+ cancelAnimationFrame(this._senderRequestCounter[sender.__id].__requestCounterFrame__);
230
+ this._senderRequestCounter[sender.__id].__requestCounterFrame__ = 0;
231
+ }
232
+ qi.callback({'status': "abort"});
233
+ //@ts-ignore
234
+ this._queue[i] = null;
235
+ }
236
+ }
237
+ this._queue = [];
238
+ }
239
+
240
+ public get loading(): number {
241
+ return this._loading;
242
+ }
243
+
244
+ public get queue(): QueueData<T>[] {
245
+ return this._queue;
246
+ }
247
+ }
@@ -1,15 +1,40 @@
1
- "use strict";
2
-
3
- import { Lock } from "../Lock.js";
4
- import * as quadTree from "../quadTree/quadTree.js";
5
- import { QueueArray } from "../QueueArray.js";
6
- import { Framebuffer } from "../webgl/Framebuffer.js";
7
- import { Program } from "../webgl/Program.js";
1
+ import * as quadTree from "../quadTree/quadTree";
2
+ import {Framebuffer} from "../webgl/Framebuffer";
3
+ import {Lock, Key} from "../Lock";
4
+ import {Planet} from "../scene/Planet";
5
+ import {Program} from "../webgl/Program";
6
+ import {QueueArray} from "../QueueArray";
7
+ import {Segment} from "../segment/Segment";
8
+ import {WebGLBufferExt, WebGLTextureExt, Handler} from "../webgl/Handler";
9
+
10
+ interface INormalMapCreatorParams {
11
+ minTableSize?: number;
12
+ maxTableSize?: number;
13
+ width?: number;
14
+ height?: number;
15
+ }
8
16
 
9
17
  export class NormalMapCreator {
10
18
 
11
- constructor(planet, options) {
12
- options = options || {};
19
+ protected _minTabelSize: number;
20
+ protected _maxTableSize: number;
21
+
22
+ protected _planet: Planet;
23
+ protected _handler: Handler | null;
24
+ protected _verticesBufferArray: WebGLBufferExt[];
25
+ protected _indexBufferArray: WebGLBufferExt[];
26
+ protected _positionBuffer: WebGLBufferExt | null;
27
+ protected _framebuffer: Framebuffer | null;
28
+ protected _normalMapVerticesTexture: WebGLTextureExt | null;
29
+
30
+ protected _width: number;
31
+ protected _height: number;
32
+
33
+ protected _queue: QueueArray<Segment>;
34
+
35
+ protected _lock: Lock;
36
+
37
+ constructor(planet: Planet, options: INormalMapCreatorParams = {}) {
13
38
 
14
39
  this._minTabelSize = options.minTableSize || 1;
15
40
  this._maxTableSize = options.maxTableSize || 8;
@@ -30,18 +55,26 @@ export class NormalMapCreator {
30
55
  this._lock = new Lock();
31
56
  }
32
57
 
33
- init() {
58
+ public get width(): number {
59
+ return this._width;
60
+ }
61
+
62
+ public get height(): number {
63
+ return this._height;
64
+ }
65
+
66
+ public init() {
34
67
 
35
- this._maxTableSize = this._planet._maxGridSize || 8;
68
+ this._maxTableSize = this._planet.maxGridSize || 8;
36
69
 
37
- this._handler = this._planet.renderer.handler;
70
+ this._handler = this._planet.renderer!.handler;
38
71
 
39
72
  let isWebkit = false; //('WebkitAppearance' in document.documentElement.style) && !/^((?!chrome).)*safari/i.test(navigator.userAgent);
40
73
 
41
74
  /*==================================================================================
42
75
  * http://www.sunsetlakesoftware.com/2013/10/21/optimizing-gaussian-blurs-mobile-gpu
43
76
  *=================================================================================*/
44
- var normalMapBlur = new Program("normalMapBlur", {
77
+ const normalMapBlur = new Program("normalMapBlur", {
45
78
  attributes: {
46
79
  a_position: "vec2"
47
80
  },
@@ -56,10 +89,10 @@ export class NormalMapCreator {
56
89
 
57
90
  void main() {
58
91
  vec2 vt = a_position * 0.5 + 0.5;
59
- ${isWebkit ? "vt.y = 1.0 - vt.y; " : " " }
92
+ ${isWebkit ? "vt.y = 1.0 - vt.y; " : " "}
60
93
  gl_Position = vec4(a_position, 0.0, 1.0);
61
94
  blurCoordinates[0] = vt;
62
- blurCoordinates[1] = vt + ${(1.0 / this._width) * 1.407333 };
95
+ blurCoordinates[1] = vt + ${(1.0 / this._width) * 1.407333};
63
96
  blurCoordinates[2] = vt - ${(1.0 / this._height) * 1.407333};
64
97
  blurCoordinates[3] = vt + ${(1.0 / this._width) * 3.294215};
65
98
  blurCoordinates[4] = vt - ${(1.0 / this._height) * 3.294215};
@@ -84,11 +117,12 @@ export class NormalMapCreator {
84
117
  }`
85
118
  });
86
119
 
87
- var normalMap = new Program("normalMap", {
120
+ const normalMap = new Program("normalMap", {
88
121
  attributes: {
89
122
  a_position: "vec2",
90
123
  a_normal: "vec3"
91
124
  },
125
+ uniforms: {},
92
126
  vertexShader: `attribute vec2 a_position;
93
127
  attribute vec3 a_normal;
94
128
 
@@ -123,9 +157,11 @@ export class NormalMapCreator {
123
157
 
124
158
  //create vertices hasharray for different grid size segments from 2^4(16) to 2^7(128)
125
159
  for (let p = this._minTabelSize; p <= this._maxTableSize; p++) {
126
- var gs = Math.pow(2, p);
127
- var gs2 = gs / 2;
128
- var vertices = new Float32Array((gs + 1) * (gs + 1) * 2);
160
+
161
+ const gs = Math.pow(2, p);
162
+ const gs2 = gs / 2;
163
+
164
+ let vertices = new Float32Array((gs + 1) * (gs + 1) * 2);
129
165
 
130
166
  for (let i = 0; i <= gs; i++) {
131
167
  for (let j = 0; j <= gs; j++) {
@@ -140,51 +176,50 @@ export class NormalMapCreator {
140
176
  2,
141
177
  vertices.length / 2
142
178
  );
179
+
143
180
  this._indexBufferArray[gs] =
144
- this._planet._indexesCache[Math.log2(gs)][Math.log2(gs)][Math.log2(gs)][Math.log2(gs)][
145
- Math.log2(gs)
146
- ].buffer;
181
+ this._planet._indexesCache[Math.log2(gs)][Math.log2(gs)][Math.log2(gs)][Math.log2(gs)][Math.log2(gs)].buffer!;
147
182
  }
148
183
 
149
184
  //create 2d screen square buffer
150
- var positions = new Float32Array([-1.0, -1.0, 1.0, -1.0, -1.0, 1.0, 1.0, 1.0]);
185
+ const positions = new Float32Array([-1.0, -1.0, 1.0, -1.0, -1.0, 1.0, 1.0, 1.0]);
151
186
 
152
187
  this._positionBuffer = this._handler.createArrayBuffer(positions, 2, positions.length / 2);
153
188
  }
154
189
 
155
- _drawNormalMapBlur(segment) {
156
- var normals = segment.normalMapNormals;
190
+ protected _drawNormalMapBlur(segment: Segment): boolean {
191
+ let normals = segment.normalMapNormals;
157
192
  if (
158
193
  segment.node &&
159
194
  segment.node.getState() !== quadTree.NOTRENDERING &&
160
195
  normals &&
161
196
  normals.length
162
197
  ) {
163
- var size = normals.length / 3;
164
- var gridSize = Math.sqrt(size) - 1;
198
+ const size = normals.length / 3;
199
+ const gridSize = Math.sqrt(size) - 1;
165
200
 
166
201
  let indBuf = this._verticesBufferArray[gridSize];
167
202
 
168
203
  if (indBuf) {
169
- if (segment.planet.terrain.equalizeNormals) {
204
+ if (segment.planet.terrain!.equalizeNormals) {
170
205
  segment._normalMapEdgeEqualize(quadTree.N);
171
206
  segment._normalMapEdgeEqualize(quadTree.S);
172
207
  segment._normalMapEdgeEqualize(quadTree.W);
173
208
  segment._normalMapEdgeEqualize(quadTree.E);
174
209
  }
175
210
 
176
- var outTexture = segment.normalMapTexturePtr;
211
+ let outTexture = segment.normalMapTexturePtr;
177
212
 
178
- var h = this._handler;
179
- var gl = h.gl;
213
+ const h = this._handler!;
214
+ const gl = h.gl!;
180
215
 
181
- var _normalsBuffer = h.createArrayBuffer(normals, 3, size, gl.DYNAMIC_DRAW);
216
+ let _normalsBuffer = h.createArrayBuffer(normals, 3, size, gl.DYNAMIC_DRAW);
182
217
 
183
- var f = this._framebuffer;
184
- var p = h.programs.normalMap;
185
- var sha = p._program.attributes;
218
+ const f = this._framebuffer!;
219
+ let p = h.programs.normalMap;
220
+ let sha = p._program.attributes;
186
221
 
187
- f.bindOutputTexture(this._normalMapVerticesTexture);
222
+ f.bindOutputTexture(this._normalMapVerticesTexture!);
188
223
 
189
224
  p.activate();
190
225
 
@@ -207,24 +242,24 @@ export class NormalMapCreator {
207
242
  //
208
243
  // blur pass
209
244
  //
210
- f.bindOutputTexture(outTexture);
245
+ f.bindOutputTexture(outTexture!);
211
246
 
212
247
  p = h.programs.normalMapBlur;
213
248
 
214
249
  p.activate();
215
- gl.bindBuffer(gl.ARRAY_BUFFER, this._positionBuffer);
250
+ gl.bindBuffer(gl.ARRAY_BUFFER, this._positionBuffer!);
216
251
  gl.vertexAttribPointer(
217
252
  p._program.attributes.a_position,
218
- this._positionBuffer.itemSize,
253
+ this._positionBuffer!.itemSize,
219
254
  gl.FLOAT,
220
255
  false,
221
256
  0,
222
257
  0
223
258
  );
224
259
  gl.activeTexture(gl.TEXTURE0);
225
- gl.bindTexture(gl.TEXTURE_2D, this._normalMapVerticesTexture);
260
+ gl.bindTexture(gl.TEXTURE_2D, this._normalMapVerticesTexture!);
226
261
  gl.uniform1i(p._program.uniforms.s_texture, 0);
227
- gl.drawArrays(gl.TRIANGLE_STRIP, 0, this._positionBuffer.numItems);
262
+ gl.drawArrays(gl.TRIANGLE_STRIP, 0, this._positionBuffer!.numItems);
228
263
  return true;
229
264
  } else {
230
265
  return true;
@@ -233,39 +268,39 @@ export class NormalMapCreator {
233
268
  return false;
234
269
  }
235
270
 
236
- _drawNormalMapNoBlur(segment) {
237
- var normals = segment.normalMapNormals;
271
+ protected _drawNormalMapNoBlur(segment: Segment): boolean {
272
+ let normals = segment.normalMapNormals;
238
273
  if (
239
274
  segment.node &&
240
275
  segment.node.getState() !== quadTree.NOTRENDERING &&
241
276
  normals &&
242
277
  normals.length
243
278
  ) {
244
- var size = normals.length / 3;
245
- var gridSize = Math.sqrt(size) - 1;
279
+ const size = normals.length / 3;
280
+ const gridSize = Math.sqrt(size) - 1;
246
281
 
247
282
  let indBuf = this._verticesBufferArray[gridSize];
248
283
 
249
284
  if (indBuf) {
250
- if (segment.planet.terrain.equalizeNormals) {
285
+ if (segment.planet.terrain!.equalizeNormals) {
251
286
  segment._normalMapEdgeEqualize(quadTree.N);
252
287
  segment._normalMapEdgeEqualize(quadTree.S);
253
288
  segment._normalMapEdgeEqualize(quadTree.W);
254
289
  segment._normalMapEdgeEqualize(quadTree.E);
255
290
  }
256
291
 
257
- var outTexture = segment.normalMapTexturePtr;
292
+ let outTexture = segment.normalMapTexturePtr;
258
293
 
259
- var h = this._handler;
260
- var gl = h.gl;
294
+ const h = this._handler!;
295
+ const gl = h.gl!;
261
296
 
262
- var _normalsBuffer = h.createArrayBuffer(normals, 3, size, gl.DYNAMIC_DRAW);
297
+ let _normalsBuffer = h.createArrayBuffer(normals, 3, size, gl.DYNAMIC_DRAW);
263
298
 
264
- var f = this._framebuffer;
265
- var p = h.programs.normalMap;
266
- var sha = p._program.attributes;
299
+ const f = this._framebuffer!;
300
+ const p = h.programs.normalMap;
301
+ const sha = p._program.attributes;
267
302
 
268
- f.bindOutputTexture(outTexture);
303
+ f.bindOutputTexture(outTexture!);
269
304
 
270
305
  p.activate();
271
306
 
@@ -293,21 +328,19 @@ export class NormalMapCreator {
293
328
  return false;
294
329
  }
295
330
 
296
- _drawNormalMap(segment) {
297
- let t = segment.planet.terrain;
298
-
299
- if (t.isBlur(segment)) {
331
+ protected _drawNormalMap(segment: Segment) {
332
+ if (segment.planet.terrain!.isBlur(segment)) {
300
333
  return this._drawNormalMapBlur(segment);
301
334
  } else {
302
335
  return this._drawNormalMapNoBlur(segment);
303
336
  }
304
337
  }
305
338
 
306
- drawSingle(segment) {
307
- var h = this._handler,
308
- gl = h.gl;
339
+ public drawSingle(segment: Segment) {
340
+ const h = this._handler!;
341
+ const gl = h.gl!;
309
342
 
310
- this._framebuffer.activate();
343
+ this._framebuffer!.activate();
311
344
 
312
345
  gl.disable(gl.CULL_FACE);
313
346
  gl.disable(gl.DEPTH_TEST);
@@ -326,25 +359,25 @@ export class NormalMapCreator {
326
359
  gl.enable(gl.CULL_FACE);
327
360
  gl.enable(gl.BLEND);
328
361
 
329
- this._framebuffer.deactivate();
362
+ this._framebuffer!.deactivate();
330
363
  }
331
364
 
332
- frame() {
365
+ public frame() {
333
366
  if (this._queue.length) {
334
- var h = this._handler,
335
- gl = h.gl;
367
+ const h = this._handler!;
368
+ const gl = h.gl!;
336
369
 
337
- this._framebuffer.activate();
370
+ this._framebuffer!.activate();
338
371
 
339
372
  gl.disable(gl.CULL_FACE);
340
373
  gl.disable(gl.DEPTH_TEST);
341
374
  gl.disable(gl.BLEND);
342
375
 
343
- var deltaTime = 0,
376
+ let deltaTime = 0,
344
377
  startTime = window.performance.now();
345
378
 
346
379
  while (this._lock.isFree() && this._queue.length && deltaTime < 0.25) {
347
- var segment = this._queue.shift();
380
+ const segment = this._queue.shift()!;
348
381
  if (segment.terrainReady && this._drawNormalMap(segment)) {
349
382
  segment.normalMapReady = true;
350
383
  segment.normalMapTexture = segment.normalMapTexturePtr;
@@ -360,27 +393,31 @@ export class NormalMapCreator {
360
393
  gl.enable(gl.DEPTH_TEST);
361
394
  gl.enable(gl.CULL_FACE);
362
395
 
363
- this._framebuffer.deactivate();
396
+ this._framebuffer!.deactivate();
364
397
  }
365
398
  }
366
399
 
367
- queue(segment) {
400
+ public get queueSize(): number {
401
+ return this._queue.length;
402
+ }
403
+
404
+ public queue(segment: Segment) {
368
405
  segment._inTheQueue = true;
369
406
  this._queue.push(segment);
370
407
  }
371
408
 
372
- unshift(segment) {
409
+ public unshift(segment: Segment) {
373
410
  segment._inTheQueue = true;
374
411
  this._queue.unshift(segment);
375
412
  }
376
413
 
377
- remove(segment) {
414
+ public remove(segment: Segment) {
378
415
  //...
379
416
  }
380
417
 
381
- clear() {
418
+ public clear() {
382
419
  while (this._queue.length) {
383
- var s = this._queue.pop();
420
+ let s = this._queue.pop()!;
384
421
  s._inTheQueue = false;
385
422
  }
386
423
  }
@@ -389,7 +426,7 @@ export class NormalMapCreator {
389
426
  * Set activity off
390
427
  * @public
391
428
  */
392
- lock(key) {
429
+ public lock(key: Key) {
393
430
  this._lock.lock(key);
394
431
  }
395
432
 
@@ -397,7 +434,7 @@ export class NormalMapCreator {
397
434
  * Set activity on
398
435
  * @public
399
436
  */
400
- free(key) {
437
+ public free(key: Key) {
401
438
  this._lock.free(key);
402
439
  }
403
440