@openglobus/og 0.17.2 → 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} +246 -182
  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 -256
  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} +776 -592
  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 -172
  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 -195
  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 -1170
  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 -17
  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 -241
  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 -594
  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
@@ -1,98 +1,136 @@
1
- "use strict";
1
+ import * as quadTree from "../quadTree/quadTree";
2
+ import {EventCallback, EventsHandler} from "../Events";
3
+ import {ILayerParams, Layer, LayerEventsList} from "./Layer";
4
+ import {Material} from "../layer/Material";
5
+ import {NumberArray4} from "../math/Vec4";
6
+ import {Planet} from "../scene/Planet";
7
+
8
+ type ApplyImageFunc = (material: HTMLCanvasElement | ImageBitmap | HTMLImageElement) => void;
9
+ type DrawTileCallback = (material: Material, applyImage: ApplyImageFunc) => void;
10
+
11
+ export interface ICanvasTilesParams extends ILayerParams {
12
+ drawTile: DrawTileCallback;
13
+ animated?: boolean;
14
+ minNativeZoom?: number;
15
+ maxNativeZoom?: number;
16
+ }
2
17
 
3
- import * as quadTree from "../quadTree/quadTree.js";
4
- import { Layer } from "./Layer.js";
18
+ type CanvasTilesEventsList = [
19
+ "load",
20
+ "loadend"
21
+ ];
5
22
 
6
- /**
7
- * Maximum tiles per frame.
8
- * @const
9
- * @type {number}
10
- */
23
+ type CanvasTilesEventsType = EventsHandler<CanvasTilesEventsList> & EventsHandler<LayerEventsList>;
11
24
 
12
- const EVENT_NAMES = [/**
13
- * Triggered when current tile image has loaded before rendereing.
14
- * @event og.layer.CanvasTiles#load
15
- */
25
+ const CANVASTILES_EVENTS: CanvasTilesEventsList = [
26
+ /**
27
+ * Triggered when current tile image has loaded before rendering.
28
+ * @event og.layer.CanvasTiles#load
29
+ */
16
30
  "load",
17
31
 
18
32
  /**
19
33
  * Triggered when all tiles have loaded or loading has stopped.
20
34
  * @event og.layer.CanvasTiles#loadend
21
35
  */
22
- "loadend"];
36
+ "loadend"
37
+ ];
23
38
 
24
39
  /**
25
40
  * Layer used to rendering each tile as a separate canvas object.
26
41
  * @class
27
42
  * @extends {Layer}
28
- * //TODO: make asynchronous handler.
29
43
  * @param {String} [name="noname"] - Layer name.
30
- * @param {Object} options:
44
+ * @param {ICanvasTilesParams} options:
31
45
  * @param {number} [options.opacity=1.0] - Layer opacity.
32
46
  * @param {number} [options.minZoom=0] - Minimal visibility zoom level.
33
47
  * @param {number} [options.maxZoom=0] - Maximal visibility zoom level.
34
48
  * @param {string} [options.attribution] - Layer attribution that displayed in the attribution area on the screen.
35
49
  * @param {boolean} [options.isBaseLayer=false] - Base layer flag.
36
50
  * @param {boolean} [options.visibility=true] - Layer visibility.
37
- * @param {layer.CanvasTiles~drawTileCallback} [options.drawTile] - Draw tile callback.
38
- * @fires og.layer.CanvasTiles#load
39
- * @fires og.layer.CanvasTiles#loadend
51
+ * @param {DrawTileCallback} options.drawTile - Draw tile callback.
52
+ * @fires EventsHandler<CanvasTilesEventsList>#load
53
+ * @fires EventsHandler<CanvasTilesEventsList>#loadend
40
54
  */
41
55
  class CanvasTiles extends Layer {
42
- constructor(name, options = {}) {
56
+
57
+ static MAX_REQUESTS: number = 20;
58
+ static __requestsCounter: number = 0
59
+
60
+ public override events: CanvasTilesEventsType;
61
+
62
+ public animated: boolean;
63
+
64
+ public minNativeZoom: number;
65
+ public maxNativeZoom: number;
66
+
67
+ /**
68
+ * Current creating tiles counter.
69
+ * @protected
70
+ * @type {number}
71
+ */
72
+ protected _counter: number;
73
+
74
+ /**
75
+ * Tile pending queue that waiting for create.
76
+ * @protected
77
+ * @type {Material[]}
78
+ */
79
+ protected _pendingsQueue: Material[]; // new og.QueueArray();
80
+
81
+ /**
82
+ * Draw tile callback.
83
+ * @type {DrawTileCallback}
84
+ * @public
85
+ */
86
+ public drawTile: DrawTileCallback;
87
+
88
+ protected _onLoadend_: EventCallback | null;
89
+
90
+
91
+ constructor(name: string | null, options: ICanvasTilesParams) {
43
92
  super(name, options);
44
93
 
45
- this.events.registerNames(EVENT_NAMES);
94
+ //@ts-ignore
95
+ this.events = this.events.registerNames(CANVASTILES_EVENTS);
46
96
 
47
97
  this.animated = options.animated || false;
48
98
 
49
99
  this.minNativeZoom = options.minNativeZoom || 0;
50
100
  this.maxNativeZoom = options.maxNativeZoom || 100;
51
- /**
52
- * Current creating tiles couter.
53
- * @protected
54
- * @type {number}
55
- */
101
+
56
102
  this._counter = 0;
57
103
 
58
- /**
59
- * Tile pending queue that waiting for create.
60
- * @protected
61
- * @type {Array.<planetSegment.Material>}
62
- */
63
104
  this._pendingsQueue = []; // new og.QueueArray();
64
105
 
65
- /**
66
- * Draw tile callback.
67
- * @type {layer.CanvasTiles~drawTileCallback}
68
- * @public
69
- */
70
- this.drawTile = options.drawTile || null;
106
+ this.drawTile = options.drawTile;
107
+
108
+ this._onLoadend_ = null;
71
109
  }
72
110
 
73
- addTo(planet) {
111
+ public override addTo(planet: Planet) {
74
112
  this._onLoadend_ = this._onLoadend.bind(this);
75
- this.events.on("loadend", this._onLoadend_, this);
113
+ this.events.on("loadend", this._onLoadend_!, this);
76
114
  return super.addTo(planet);
77
115
  }
78
116
 
79
- remove() {
117
+ public override remove() {
80
118
  this.events.off("loadend", this._onLoadend_);
81
119
  this._onLoadend_ = null;
82
120
  return super.remove();
83
121
  }
84
122
 
85
- _onLoadend() {
123
+ public _onLoadend() {
86
124
  if (this._planet && this._planet._terrainCompletedActivated) {
87
125
  this._planet.events.dispatch(this._planet.events.layerloadend, this);
88
126
  }
89
127
  }
90
128
 
91
- get instanceName() {
129
+ public override get instanceName(): string {
92
130
  return "CanvasTiles";
93
131
  }
94
132
 
95
- get isIdle() {
133
+ public override get isIdle() {
96
134
  return super.isIdle && this._counter === 0;
97
135
  }
98
136
 
@@ -100,15 +138,21 @@ class CanvasTiles extends Layer {
100
138
  * Abort loading tiles.
101
139
  * @public
102
140
  */
103
- abortLoading() {
104
- var q = this._pendingsQueue;
105
- for (let i = q._shiftIndex + 1; i < q._popIndex + 1; i++) {
106
- if (q._array[i]) {
107
- this.abortMaterialLoading(q._array[i]);
108
- }
109
- }
110
- this._pendingsQueue = [];
141
+ public override abortLoading() {
142
+ //const q = this._pendingsQueue;
143
+ // for (let i = q._shiftIndex + 1; i < q._popIndex + 1; i++) {
144
+ // if (q._array[i]) {
145
+ // this.abortMaterialLoading(q._array[i]);
146
+ // }
147
+ // }
111
148
  // this._pendingsQueue.clear();
149
+ // for (let i = 0; i < q.length; i++) {
150
+ // this.abortMaterialLoading(q[i]);
151
+ // }
152
+ this._pendingsQueue.forEach((qi: Material) => {
153
+ this.abortMaterialLoading(qi);
154
+ })
155
+ this._pendingsQueue = [];
112
156
  }
113
157
 
114
158
  /**
@@ -116,7 +160,7 @@ class CanvasTiles extends Layer {
116
160
  * @public
117
161
  * @param {boolean} visibility - Layer visibility.
118
162
  */
119
- setVisibility(visibility) {
163
+ public override setVisibility(visibility: boolean) {
120
164
  if (visibility !== this._visibility) {
121
165
  super.setVisibility(visibility);
122
166
 
@@ -132,7 +176,7 @@ class CanvasTiles extends Layer {
132
176
  * @virtual
133
177
  * @param {Material} material -
134
178
  */
135
- loadMaterial(material) {
179
+ public override loadMaterial(material: Material) {
136
180
  let seg = material.segment;
137
181
 
138
182
  if (this._isBaseLayer) {
@@ -141,7 +185,7 @@ class CanvasTiles extends Layer {
141
185
  material.texture = seg.planet.transparentTexture;
142
186
  }
143
187
 
144
- if (this._planet.layerLock.isFree() || material.segment.tileZoom < 2) {
188
+ if (this._planet!.layerLock.isFree() || material.segment.tileZoom < 2) {
145
189
  material.isReady = false;
146
190
  material.isLoading = true;
147
191
  if (CanvasTiles.__requestsCounter >= CanvasTiles.MAX_REQUESTS && this._counter) {
@@ -157,41 +201,29 @@ class CanvasTiles extends Layer {
157
201
  * @protected
158
202
  * @param {Material} material - Loads material image.
159
203
  */
160
- _exec(material) {
204
+ protected _exec(material: Material) {
161
205
  CanvasTiles.__requestsCounter++;
162
206
  this._counter++;
163
- var that = this;
164
- if (this.drawTile) {
165
- /**
166
- * Tile custom draw function.
167
- * @callback og.layer.CanvasTiles~drawTileCallback
168
- * @param {Material} material
169
- * @param {applyCanvasCallback} applyCanvasCallback
170
- */
171
- var e = that.events.load;
172
- if (e.handlers.length) {
173
- that.events.dispatch(e, material);
174
- }
175
- requestAnimationFrame(() => {
176
- that.drawTile(
177
- material,
178
- /**
179
- * Apply canvas.
180
- * @callback applyCanvasCallback
181
- * @param {Object} canvas -
182
- */
183
- function (canvas) {
184
- that._counter--;
185
- CanvasTiles.__requestsCounter--;
186
- if (material.isLoading) {
187
- material.applyImage(canvas);
188
- }
189
- that._dequeueRequest();
190
- });
191
- });
192
- } else {
193
- material.textureNotExists();
207
+ const e = this.events.load!;
208
+ if (e.handlers.length) {
209
+ this.events.dispatch(e, material);
194
210
  }
211
+ requestAnimationFrame(() => {
212
+ this.drawTile(material, (canvas: HTMLCanvasElement | ImageBitmap | HTMLImageElement) => {
213
+ this._counter--;
214
+ CanvasTiles.__requestsCounter--;
215
+ this._correctCounter();
216
+ if (material.isLoading) {
217
+ material.applyImage(canvas);
218
+ }
219
+ this._dequeueRequest();
220
+ });
221
+ });
222
+ }
223
+
224
+ protected _correctCounter() {
225
+ if (this._counter < 0) this._counter = 0;
226
+ if (CanvasTiles.__requestsCounter < 0) CanvasTiles.__requestsCounter = 0;
195
227
  }
196
228
 
197
229
  /**
@@ -199,21 +231,21 @@ class CanvasTiles extends Layer {
199
231
  * @public
200
232
  * @param {Material} material - Segment material.
201
233
  */
202
- abortMaterialLoading(material) {
203
- if (material.isLoading && material.image) {
204
- material.image.src = "";
234
+ public override abortMaterialLoading(material: Material) {
235
+ if (material.isLoading) {
205
236
  this._counter--;
206
237
  CanvasTiles.__requestsCounter--;
238
+ this._correctCounter();
207
239
  this._dequeueRequest();
208
240
  }
209
241
  material.isLoading = false;
210
242
  material.isReady = false;
211
243
  }
212
244
 
213
- _dequeueRequest() {
245
+ protected _dequeueRequest() {
214
246
  if (this._pendingsQueue.length) {
215
247
  if (CanvasTiles.__requestsCounter < CanvasTiles.MAX_REQUESTS) {
216
- var pmat = this._whilePendings();
248
+ const pmat = this._whilePendings();
217
249
  if (pmat) {
218
250
  this._exec(pmat);
219
251
  }
@@ -223,10 +255,10 @@ class CanvasTiles extends Layer {
223
255
  }
224
256
  }
225
257
 
226
- _whilePendings() {
258
+ protected _whilePendings(): Material | null {
227
259
  while (this._pendingsQueue.length) {
228
- var pmat = this._pendingsQueue.pop();
229
- if (pmat.segment.node) {
260
+ const pmat = this._pendingsQueue.pop();
261
+ if (pmat && pmat.segment && pmat.segment.node) {
230
262
  if (pmat.segment.initialized && pmat.segment.node.getState() === quadTree.RENDERING) {
231
263
  return pmat;
232
264
  }
@@ -236,7 +268,7 @@ class CanvasTiles extends Layer {
236
268
  return null;
237
269
  }
238
270
 
239
- applyMaterial(material) {
271
+ public override applyMaterial(material: Material): NumberArray4 {
240
272
  if (material.isReady) {
241
273
 
242
274
  // IMPORTANT!
@@ -244,7 +276,7 @@ class CanvasTiles extends Layer {
244
276
  // It could be fixed with call drawTile method only for parent
245
277
  // material (which is rendered on the current segment material),
246
278
  // just for one renderer frame
247
- if (material.layer.animated) {
279
+ if ((material.layer as CanvasTiles).animated) {
248
280
  requestAnimationFrame(() => {
249
281
  this.drawTile(material, function (canvas) {
250
282
  material.applyImage(canvas);
@@ -261,7 +293,7 @@ class CanvasTiles extends Layer {
261
293
  let segment = material.segment;
262
294
  let pn = segment.node,
263
295
  parentTextureExists = false;
264
- let maxNativeZoom = material.layer.maxNativeZoom;
296
+ let maxNativeZoom = (material.layer as CanvasTiles).maxNativeZoom;
265
297
 
266
298
  if (segment.passReady && !material.isLoading && segment.tileZoom <= maxNativeZoom) {
267
299
  this.loadMaterial(material);
@@ -287,7 +319,7 @@ class CanvasTiles extends Layer {
287
319
 
288
320
  let pn = segment.node;
289
321
  while (pn.segment.tileZoom > maxNativeZoom) {
290
- pn = pn.parentNode;
322
+ pn = pn.parentNode!;
291
323
  }
292
324
 
293
325
  let pnm = pn.segment.materials[mId];
@@ -307,7 +339,7 @@ class CanvasTiles extends Layer {
307
339
  //
308
340
  // Animated doesn't work withMaxNativeZoom
309
341
  //
310
- if (material.layer.animated) {
342
+ if ((material.layer as CanvasTiles).animated) {
311
343
  requestAnimationFrame(() => {
312
344
  this.drawTile(material, function (canvas) {
313
345
  material.applyImage(canvas);
@@ -334,11 +366,11 @@ class CanvasTiles extends Layer {
334
366
  return material.texOffset;
335
367
  }
336
368
 
337
- clearMaterial(material) {
369
+ public override clearMaterial(material: Material) {
338
370
  if (material.isReady) {
339
371
  material.isReady = false;
340
372
  if (material.textureExists && material.texture && !material.texture.default) {
341
- material.segment.handler.gl.deleteTexture(material.texture);
373
+ material.segment.handler.gl!.deleteTexture(material.texture);
342
374
  material.texture = null;
343
375
  }
344
376
  }
@@ -347,14 +379,16 @@ class CanvasTiles extends Layer {
347
379
  material.isLoading = false;
348
380
  material.textureExists = false;
349
381
 
382
+ //@ts-ignore
350
383
  material.layer = null;
384
+ //@ts-ignore
351
385
  material.segment = null;
352
386
 
353
- if (material.image) {
354
- material.image.src = "";
355
- material.image = null;
356
- }
387
+ // if (material.image) {
388
+ // material.image.src = "";
389
+ // material.image = null;
390
+ // }
357
391
  }
358
392
  }
359
393
 
360
- export { CanvasTiles };
394
+ export {CanvasTiles};
@@ -1,47 +1,58 @@
1
- "use strict";
1
+ import {nextHighestPowerOfTwo} from "../math";
2
+ import {BaseGeoImage, IBaseGeoImageParams} from "./BaseGeoImage";
3
+ import {isImageLoaded} from "../utils/shared";
4
+ import {Material} from "./Material";
2
5
 
3
- import { nextHighestPowerOfTwo } from "../math.js";
4
- import { BaseGeoImage } from "./BaseGeoImage.js";
5
- import { isImageLoaded } from "../utils/shared.js";
6
+ interface IGeoImageParams extends IBaseGeoImageParams {
7
+ image?: HTMLImageElement | HTMLCanvasElement | ImageBitmap;
8
+ src?: string;
9
+ }
6
10
 
7
11
  /**
8
- * Used to load and display a single image over specific corner coordinates on the globe, implements og.layer.BaseGeoImage interface.
12
+ * Used to load and display a single image over specific corner coordinates on the globe.
9
13
  * @class
10
14
  * @extends {BaseGeoImage}
11
15
  */
12
16
  class GeoImage extends BaseGeoImage {
13
- constructor(name, options) {
14
- super(name, options);
17
+ /**
18
+ * Image object.
19
+ * @protected
20
+ * @type {HTMLImageElement | HTMLCanvasElement | ImageBitmap}
21
+ */
22
+ protected _image: HTMLImageElement | HTMLCanvasElement | ImageBitmap | null;
15
23
 
16
- /**
17
- * Image object.
18
- * @private
19
- * @type {Image}
20
- */
21
- this._image = options.image || null;
24
+ /**
25
+ * Image source url path.
26
+ * @protected
27
+ * @type {string}
28
+ */
29
+ protected _src: string | null;
30
+
31
+ protected _onLoad_: ((this: HTMLImageElement, ev: Event) => void) | null;
22
32
 
23
- /**
24
- * Image source url path.
25
- * @private
26
- * @type {String}
27
- */
33
+ constructor(name: string | null, options: IGeoImageParams = {}) {
34
+ super(name, options);
35
+ this._image = options.image || null;
28
36
  this._src = options.src || null;
37
+ this._onLoad_ = null;
29
38
  }
30
39
 
31
- get instanceName() {
40
+ public override get instanceName(): string {
32
41
  return "GeoImage";
33
42
  }
34
43
 
35
- abortLoading() {
36
- this._image.src = "";
44
+ public override abortLoading() {
45
+ if (this._image instanceof HTMLImageElement) {
46
+ this._image.src = "";
47
+ }
37
48
  }
38
49
 
39
50
  /**
40
51
  * Sets image source url path.
41
52
  * @public
42
- * @param {String} srs - Image url path.
53
+ * @param {string} srs - Image url path.
43
54
  */
44
- setSrc(src) {
55
+ public setSrc(src: string) {
45
56
  this._planet && this._planet._geoImageCreator.remove(this);
46
57
  this._src = src;
47
58
  this._sourceReady = false;
@@ -57,7 +68,7 @@ class GeoImage extends BaseGeoImage {
57
68
  * @public
58
69
  * @param {Image} image - Image object.
59
70
  */
60
- setImage(image) {
71
+ public setImage(image: HTMLImageElement) {
61
72
  this._planet && this._planet._geoImageCreator.remove(this);
62
73
  this._sourceCreated = false;
63
74
  this._sourceReady = false;
@@ -76,53 +87,50 @@ class GeoImage extends BaseGeoImage {
76
87
  * @virtual
77
88
  * @protected
78
89
  */
79
- _createSourceTexture() {
80
- if (!this._sourceCreated) {
81
- this._sourceTexture = this._planet.renderer.handler.createTexture_l(this._image);
90
+ protected override _createSourceTexture() {
91
+ if (!this._sourceCreated && this._image) {
92
+ this._sourceTexture = this._planet!.renderer!.handler.createTexture_l(this._image);
82
93
  this._sourceCreated = true;
83
94
  }
84
95
  }
85
96
 
86
- /**
87
- * @private
88
- * @param {Image} [img]
89
- */
90
- _onLoad() {
97
+ protected _onLoad(ev: Event) {
91
98
  this._applyImage(this._image);
92
- this._image.removeEventListener("load", this._onLoad_);
93
- this._onLoad_ = undefined;
99
+ if (this._image instanceof HTMLImageElement) {
100
+ this._image.removeEventListener("load", this._onLoad_!);
101
+ }
102
+ this._onLoad_ = null;
94
103
  }
95
104
 
96
- /**
97
- * @private
98
- * @param {Image} [img]
99
- */
100
- _applyImage(img) {
105
+ protected _applyImage(img: HTMLImageElement | HTMLCanvasElement | ImageBitmap | null) {
101
106
  if (img) {
102
107
  this._frameWidth = nextHighestPowerOfTwo(img.width * 2, 4096);
103
108
  this._frameHeight = nextHighestPowerOfTwo(img.height * 3, 4096);
104
109
  this._sourceReady = true;
105
- this._planet._geoImageCreator.add(this);
110
+ if (this._planet) {
111
+ this._planet._geoImageCreator.add(this);
112
+ }
106
113
  }
107
114
  }
108
115
 
109
116
 
110
117
  /**
111
118
  * Loads planet segment material. In this case - GeoImage source image.
112
- * @virtual
113
119
  * @public
114
120
  * @param {Material} material - GeoImage planet material.
115
121
  */
116
- loadMaterial(material) {
122
+ public override loadMaterial(material: Material) {
117
123
  material.isLoading = true;
118
124
  this._creationProceeding = true;
119
125
  if (!this._sourceReady && this._src) {
120
126
  if (this._image) {
121
- if (isImageLoaded(this._image)) {
122
- this._applyImage(this._image);
123
- } else {
124
- this._onLoad_ = this._onLoad.bind(this);
125
- this._image.addEventListener("load", this._onLoad_);
127
+ if (this._image instanceof HTMLImageElement) {
128
+ if (isImageLoaded(this._image)) {
129
+ this._applyImage(this._image);
130
+ } else {
131
+ this._onLoad_ = this._onLoad.bind(this);
132
+ this._image.addEventListener("load", this._onLoad_);
133
+ }
126
134
  }
127
135
  } else {
128
136
  this._image = new Image();
@@ -130,21 +138,23 @@ class GeoImage extends BaseGeoImage {
130
138
  this._image.addEventListener("load", this._onLoad_);
131
139
  this._image.src = this._src;
132
140
  }
133
- } else {
141
+ } else if (this._planet) {
134
142
  this._planet._geoImageCreator.add(this);
135
143
  }
136
144
  }
137
145
 
138
146
  /**
139
- * @virtual
147
+ * @public
140
148
  * @param {Material} material - GeoImage material.
141
149
  */
142
- abortMaterialLoading(material) {
143
- this._image && (this._image.src = "");
150
+ public override abortMaterialLoading(material: Material) {
151
+ if (this._image && this._image instanceof HTMLImageElement) {
152
+ this._image.src = "";
153
+ }
144
154
  this._creationProceeding = false;
145
155
  material.isLoading = false;
146
156
  material.isReady = false;
147
157
  }
148
158
  }
149
159
 
150
- export { GeoImage };
160
+ export {GeoImage};
@@ -0,0 +1,56 @@
1
+ import {BaseGeoImage, IBaseGeoImageParams} from './BaseGeoImage';
2
+ import {Material} from "../layer/Material";
3
+ import {nextHighestPowerOfTwo} from '../math';
4
+ import {WebGLTextureExt} from "../webgl/Handler";
5
+
6
+ interface IGeoTexture2dParams extends IBaseGeoImageParams {
7
+ texture?: WebGLTextureExt;
8
+ frameWidth?: number;
9
+ frameHeight?: number;
10
+ }
11
+
12
+ class GeoTexture2d extends BaseGeoImage {
13
+ constructor(name: string | null, options: IGeoTexture2dParams = {}) {
14
+ super(name, options);
15
+
16
+ this._sourceTexture = options.texture || null;
17
+
18
+ if (options.texture) {
19
+ this._sourceReady = true;
20
+ this._sourceCreated = true;
21
+ }
22
+
23
+ this._frameWidth = options.frameWidth != undefined ? nextHighestPowerOfTwo(options.frameWidth!) : 256;
24
+ this._frameHeight = options.frameHeight != undefined ? nextHighestPowerOfTwo(options.frameHeight!) : 256;
25
+
26
+ this._animate = true;
27
+ }
28
+
29
+ public override get instanceName(): string {
30
+ return "GeoTexture2d";
31
+ }
32
+
33
+ public override loadMaterial(material: Material) {
34
+ this._planet!._geoImageCreator.add(this);
35
+ }
36
+
37
+ public bindTexture(texture: WebGLTextureExt) {
38
+ this._sourceReady = true;
39
+ this._sourceCreated = true;
40
+ this._sourceTexture = texture;
41
+ }
42
+
43
+ public setSize(width: number, height: number) {
44
+ this._frameWidth = width;
45
+ this._frameHeight = height;
46
+ this._frameCreated = false;
47
+ }
48
+
49
+ public override abortMaterialLoading(material: Material) {
50
+ this._creationProceeding = false;
51
+ material.isLoading = false;
52
+ material.isReady = false;
53
+ }
54
+ }
55
+
56
+ export {GeoTexture2d};