@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,19 +1,39 @@
1
- import { Layer } from "../layer/Layer.js";
2
- import { isPowerOfTwo } from "../math.js";
3
- import * as mercator from "../mercator.js";
4
- import { getTileExtent } from "../mercator.js";
5
- import { GlobusTerrain } from "./GlobusTerrain.js";
1
+ import * as mercator from "../mercator";
2
+ import {Extent} from "../Extent";
3
+ import {getTileExtent} from "../mercator";
4
+ import {GlobusTerrain, IGlobusTerrainParams} from "./GlobusTerrain";
5
+ import {isPowerOfTwo} from "../math";
6
+ import {Layer} from "../layer/Layer";
7
+ import {LonLat} from "../LonLat";
8
+ import {Segment} from "../segment/Segment";
9
+ import {TypedArray} from "../utils/shared";
10
+ import {IResponse} from "../utils/Loader";
11
+
12
+ interface IMapboxTerrainParams extends IGlobusTerrainParams {
13
+ equalizeNormals?: boolean;
14
+ key?: string;
15
+ imageSize?: number;
16
+ }
6
17
 
7
- const KEY =
8
- "pk.eyJ1IjoiZm94bXVsZGVyODMiLCJhIjoiY2pqYmR3dG5oM2Z1bzNrczJqYm5pODhuNSJ9.Y4DRmEPhb-XSlCR9CAXACQ";
18
+ /**
19
+ * The key doesn't work; just an example!
20
+ */
21
+ const KEY = "pk.eyJ1IjoiZm94bXVsZGVyODMiLCJhIjoiY2pqYmR3dG5oM2Z1bzNrczJqYm5pODhuNSJ9.Y4DRmEPhb-XSlCR9CAXACQ";
9
22
 
10
- const rgb2Height = (r, g, b) => {
23
+ const rgb2Height = (r: number, g: number, b: number): number => {
11
24
  return -10000 + 0.1 * (r * 256 * 256 + g * 256 + b);
12
25
  };
13
26
 
14
27
  class MapboxTerrain extends GlobusTerrain {
15
- constructor(name, options = {}) {
16
- super(name || "mapbox", {
28
+
29
+ protected _imageSize: number;
30
+
31
+ protected _ctx: CanvasRenderingContext2D;
32
+
33
+ protected _imageDataCache: Record<string, Uint8ClampedArray>;
34
+
35
+ constructor(name: string | null, options: IMapboxTerrainParams = {}) {
36
+ super(name || "MapboxTerrain", {
17
37
  equalizeVertices: options.equalizeVertices != undefined ? options.equalizeVertices : true,
18
38
  maxZoom: options.maxZoom || 17,
19
39
  ...options
@@ -25,14 +45,9 @@ class MapboxTerrain extends GlobusTerrain {
25
45
  64, 32, 16, 8, 8, 8, 8, 16, 16, 16, 16, 16, 32, 16, 32, 16, 32, 16, 32, 16, 8, 4
26
46
  ];
27
47
 
28
- "//{s}.srtm3.openglobus.org/{z}/{y}/{x}.ddm";
29
-
30
- this.url =
31
- options.url != undefined
32
- ? options.url
33
- : `//api.mapbox.com/v4/mapbox.terrain-rgb/{z}/{x}/{y}.pngraw?access_token=${
34
- options.key || KEY
35
- }`;
48
+ this.url = options.url != undefined
49
+ ? options.url
50
+ : `//api.mapbox.com/v4/mapbox.terrain-rgb/{z}/{x}/{y}.pngraw?access_token=${options.key || KEY}`;
36
51
 
37
52
  this.noDataValues = options.noDataValues || [-65537, -10000];
38
53
 
@@ -47,24 +62,20 @@ class MapboxTerrain extends GlobusTerrain {
47
62
  this._imageDataCache = {};
48
63
  }
49
64
 
50
- isBlur(segment) {
51
- if (segment.tileZoom >= 16) {
52
- return true;
53
- }
54
- return false;
65
+ public override isBlur(segment: Segment): boolean {
66
+ return segment.tileZoom >= 16;
55
67
  }
56
68
 
57
- _createTemporalCanvas(size) {
69
+ protected _createTemporalCanvas(size: number): CanvasRenderingContext2D {
58
70
  let canvas = document.createElement("canvas");
59
71
  canvas.width = size;
60
72
  canvas.height = size;
61
- return canvas.getContext("2d",
62
- {
63
- willReadFrequently: true
64
- });
73
+ return canvas.getContext("2d", {
74
+ willReadFrequently: true
75
+ })!;
65
76
  }
66
77
 
67
- _createHeights(data, tileIndex, tileX, tileY, tileZoom, extent, preventChildren) {
78
+ protected override _createHeights(data: HTMLImageElement | ImageBitmap, tileIndex: string, tileX: number, tileY: number, tileZoom: number, extent: Extent, preventChildren: boolean): TypedArray | number[] {
68
79
 
69
80
  this._ctx.clearRect(0, 0, this._imageSize, this._imageSize);
70
81
  this._ctx.drawImage(data, 0, 0);
@@ -73,7 +84,7 @@ class MapboxTerrain extends GlobusTerrain {
73
84
  const SIZE = data.width;
74
85
 
75
86
  //
76
- //Non power of two images
87
+ //Non-power of two images
77
88
  //
78
89
  if (!isPowerOfTwo(this._imageSize) && SIZE === this._imageSize) {
79
90
  let outCurrenElevations = new Float32Array(SIZE * SIZE);
@@ -163,7 +174,7 @@ class MapboxTerrain extends GlobusTerrain {
163
174
  return outCurrenElevations;
164
175
  }
165
176
 
166
- getHeightAsync(lonLat, callback, zoom) {
177
+ public override getHeightAsync(lonLat: LonLat, callback: (h: number) => void, zoom?: number): boolean {
167
178
  if (!lonLat || lonLat.lat > mercator.MAX_LAT || lonLat.lat < mercator.MIN_LAT) {
168
179
  callback(0);
169
180
  return true;
@@ -199,7 +210,7 @@ class MapboxTerrain extends GlobusTerrain {
199
210
  });
200
211
  }
201
212
 
202
- this._fetchCache[tileIndex].then((response) => {
213
+ this._fetchCache[tileIndex].then((response: IResponse) => {
203
214
  if (response.status === "ready") {
204
215
  this._ctx.clearRect(0, 0, this._imageSize, this._imageSize);
205
216
  this._ctx.drawImage(response.data, 0, 0);
@@ -209,6 +220,7 @@ class MapboxTerrain extends GlobusTerrain {
209
220
  } else if (response.status === "error") {
210
221
  callback(0);
211
222
  } else {
223
+ //@ts-ignore
212
224
  this._fetchCache[tileIndex] = null;
213
225
  delete this._fetchCache[tileIndex];
214
226
  }
@@ -218,7 +230,7 @@ class MapboxTerrain extends GlobusTerrain {
218
230
  }
219
231
  }
220
232
 
221
- function extractElevationTilesMapboxNonPowerOfTwo(rgbaData, outCurrenElevations) {
233
+ function extractElevationTilesMapboxNonPowerOfTwo(rgbaData: number[] | TypedArray, outCurrenElevations: number[] | TypedArray) {
222
234
  for (let i = 0, len = outCurrenElevations.length; i < len; i++) {
223
235
  let i4 = i * 4;
224
236
  outCurrenElevations[i] = rgb2Height(rgbaData[i4], rgbaData[i4 + 1], rgbaData[i4 + 2]);
@@ -226,10 +238,10 @@ function extractElevationTilesMapboxNonPowerOfTwo(rgbaData, outCurrenElevations)
226
238
  }
227
239
 
228
240
  function extractElevationTilesMapbox(
229
- rgbaData,
230
- noDataValues,
231
- outCurrenElevations,
232
- outChildrenElevations
241
+ rgbaData: number[] | TypedArray,
242
+ noDataValues: number[] | TypedArray,
243
+ outCurrenElevations: number[] | TypedArray,
244
+ outChildrenElevations: number[][][] | TypedArray[][]
233
245
  ) {
234
246
  let destSize = Math.sqrt(outCurrenElevations.length) - 1;
235
247
  let destSizeOne = destSize + 1;
@@ -248,7 +260,6 @@ function extractElevationTilesMapbox(
248
260
  let k4 = k * 4;
249
261
 
250
262
  let height = rgb2Height(rgbaData[k4], rgbaData[k4 + 1], rgbaData[k4 + 2]);
251
- //-10000 + 0.1 * (rgbaData[k4] * 256 * 256 + rgbaData[k4 + 1] * 256 + rgbaData[k4 + 2]);
252
263
 
253
264
  let isNoDataCurrent = MapboxTerrain.checkNoDataValue(noDataValues, height),
254
265
  isNoDataRight = false,
@@ -276,7 +287,6 @@ function extractElevationTilesMapbox(
276
287
  if ((j + 1) % destSize === 0 && j !== sourceSize - 1) {
277
288
  //current tile
278
289
  rightHeight = rgb2Height(rgbaData[k4 + 4], rgbaData[k4 + 5], rgbaData[k4 + 6]);
279
- // -10000 + 0.1 * (rgbaData[k4 + 4] * 256 * 256 + rgbaData[k4 + 5] * 256 + rgbaData[k4 + 6]);
280
290
 
281
291
  isNoDataRight = MapboxTerrain.checkNoDataValue(noDataValues, rightHeight);
282
292
 
@@ -303,7 +313,6 @@ function extractElevationTilesMapbox(
303
313
  sourceSize4 = sourceSize * 4;
304
314
 
305
315
  bottomHeight = rgb2Height(rgbaData[k4 + sourceSize4], rgbaData[k4 + sourceSize4 + 1], rgbaData[k4 + sourceSize4 + 2]);
306
- // -10000 + 0.1 * (rgbaData[k4 + sourceSize4] * 256 * 256 + rgbaData[k4 + sourceSize4 + 1] * 256 + rgbaData[k4 + sourceSize4 + 2]);
307
316
 
308
317
  isNoDataBottom = MapboxTerrain.checkNoDataValue(noDataValues, bottomHeight);
309
318
 
@@ -326,19 +335,13 @@ function extractElevationTilesMapbox(
326
335
  }
327
336
 
328
337
  if (
329
- (j + 1) % destSize === 0 &&
330
- j !== sourceSize - 1 &&
331
- (i + 1) % destSize === 0 &&
332
- i !== sourceSize - 1
338
+ (j + 1) % destSize === 0 && j !== sourceSize - 1 &&
339
+ (i + 1) % destSize === 0 && i !== sourceSize - 1
333
340
  ) {
334
341
  //current tile
335
342
  let rightBottomHeight = rgb2Height(rgbaData[k4 + sourceSize4 + 4], rgbaData[k4 + sourceSize4 + 5], rgbaData[k4 + sourceSize4 + 6]);
336
- // -10000 + 0.1 * (rgbaData[k4 + sourceSize4 + 4] * 256 * 256 + rgbaData[k4 + sourceSize4 + 5] * 256 + rgbaData[k4 + sourceSize4 + 6]);
337
343
 
338
- let isNoDataRightBottom = MapboxTerrain.checkNoDataValue(
339
- noDataValues,
340
- rightBottomHeight
341
- );
344
+ let isNoDataRightBottom = MapboxTerrain.checkNoDataValue(noDataValues, rightBottomHeight);
342
345
 
343
346
  let middleHeight = height;
344
347
 
@@ -367,9 +370,9 @@ function extractElevationTilesMapbox(
367
370
  }
368
371
 
369
372
  function extractElevationTilesMapboxNoChildren(
370
- rgbaData,
371
- noDataValues,
372
- outCurrenElevations
373
+ rgbaData: number[] | TypedArray,
374
+ noDataValues: number[] | TypedArray,
375
+ outCurrenElevations: number[] | TypedArray
373
376
  ) {
374
377
  let destSize = Math.sqrt(outCurrenElevations.length) - 1;
375
378
  let sourceSize = Math.sqrt(rgbaData.length / 4);
@@ -387,7 +390,6 @@ function extractElevationTilesMapboxNoChildren(
387
390
  let k4 = k * 4;
388
391
 
389
392
  let height = rgb2Height(rgbaData[k4], rgbaData[k4 + 1], rgbaData[k4 + 2]);
390
- //-10000 + 0.1 * (rgbaData[k4] * 256 * 256 + rgbaData[k4 + 1] * 256 + rgbaData[k4 + 2]);
391
393
 
392
394
  let isNoDataCurrent = MapboxTerrain.checkNoDataValue(noDataValues, height),
393
395
  isNoDataRight = false,
@@ -406,7 +408,6 @@ function extractElevationTilesMapboxNoChildren(
406
408
  if ((j + 1) % destSize === 0 && j !== sourceSize - 1) {
407
409
  //current tile
408
410
  rightHeight = rgb2Height(rgbaData[k4 + 4], rgbaData[k4 + 5], rgbaData[k4 + 6]);
409
- //-10000 + 0.1 * (rgbaData[k4 + 4] * 256 * 256 + rgbaData[k4 + 5] * 256 + rgbaData[k4 + 6]);
410
411
 
411
412
  isNoDataRight = MapboxTerrain.checkNoDataValue(noDataValues, rightHeight);
412
413
 
@@ -426,7 +427,6 @@ function extractElevationTilesMapboxNoChildren(
426
427
  sourceSize4 = sourceSize * 4;
427
428
 
428
429
  bottomHeight = rgb2Height(rgbaData[k4 + sourceSize4], rgbaData[k4 + sourceSize4 + 1], rgbaData[k4 + sourceSize4 + 2]);
429
- // -10000 + 0.1 * (rgbaData[k4 + sourceSize4] * 256 * 256 + rgbaData[k4 + sourceSize4 + 1] * 256 + rgbaData[k4 + sourceSize4 + 2]);
430
430
 
431
431
  isNoDataBottom = MapboxTerrain.checkNoDataValue(noDataValues, bottomHeight);
432
432
 
@@ -442,14 +442,11 @@ function extractElevationTilesMapboxNoChildren(
442
442
  }
443
443
 
444
444
  if (
445
- (j + 1) % destSize === 0 &&
446
- j !== sourceSize - 1 &&
447
- (i + 1) % destSize === 0 &&
448
- i !== sourceSize - 1
445
+ (j + 1) % destSize === 0 && j !== sourceSize - 1 &&
446
+ (i + 1) % destSize === 0 && i !== sourceSize - 1
449
447
  ) {
450
448
  //current tile
451
449
  let rightBottomHeight = rgb2Height(rgbaData[k4 + sourceSize4 + 4], rgbaData[k4 + sourceSize4 + 5], rgbaData[k4 + sourceSize4 + 6]);
452
- // -10000 + 0.1 * (rgbaData[k4 + sourceSize4 + 4] * 256 * 256 + rgbaData[k4 + sourceSize4 + 5] * 256 + rgbaData[k4 + sourceSize4 + 6]);
453
450
 
454
451
  let isNoDataRightBottom = MapboxTerrain.checkNoDataValue(
455
452
  noDataValues,
@@ -467,4 +464,4 @@ function extractElevationTilesMapboxNoChildren(
467
464
  }
468
465
  }
469
466
 
470
- export { MapboxTerrain };
467
+ export {MapboxTerrain};
@@ -0,0 +1,6 @@
1
+ import { BilTerrain } from './BilTerrain';
2
+ import { EmptyTerrain } from './EmptyTerrain';
3
+ import { GlobusTerrain } from './GlobusTerrain';
4
+ import { MapboxTerrain } from './MapboxTerrain';
5
+
6
+ export { EmptyTerrain, GlobusTerrain, MapboxTerrain, BilTerrain };
@@ -0,0 +1,121 @@
1
+ import {stringTemplate} from '../utils/shared';
2
+ import {IViewParams, View, ViewEventsList} from './View';
3
+ import {EventsHandler} from "../Events";
4
+
5
+ const TEMPLATE =
6
+ `<div class="og-button" title="{title}">
7
+ <div class="og-button-icon">{icon}</div>
8
+ <div class="og-button-text">{text}</div>
9
+ </div>`;
10
+
11
+ interface HTMLElementExt extends HTMLElement {
12
+ __og_button__: Button;
13
+ }
14
+
15
+ export type ButtonEventsList = ["click", "mousedown", "mouseup", "touchstart", "touchend", "touchcancel"];
16
+
17
+ const BUTTON_EVENTS: ButtonEventsList = ["click", "mousedown", "mouseup", "touchstart", "touchend", "touchcancel"];
18
+
19
+ export interface IButtonParams extends IViewParams {
20
+ icon?: string;
21
+ text?: string;
22
+ title?: string;
23
+ name?: string;
24
+ }
25
+
26
+ class Button extends View<null> {
27
+
28
+ public override events: EventsHandler<ButtonEventsList> & EventsHandler<ViewEventsList>;
29
+
30
+ public override el: HTMLElementExt | null;
31
+
32
+ public name: string;
33
+ public $icon: HTMLElement | null;
34
+ public $text: HTMLElement | null;
35
+
36
+ constructor(options: IButtonParams = {}) {
37
+ super({
38
+ template: stringTemplate(TEMPLATE, {
39
+ icon: options.icon || "",
40
+ text: options.text || "",
41
+ title: options.title || ""
42
+ }),
43
+ ...options
44
+ });
45
+
46
+ //@ts-ignore
47
+ this.events = this.events.registerNames(BUTTON_EVENTS);
48
+
49
+ this.el = null;
50
+
51
+ this.name = options.name || "";
52
+
53
+ this.$icon = null;
54
+ this.$text = null;
55
+ }
56
+
57
+ public override render(params: any): this {
58
+ super.render(params);
59
+ this.$icon = this.select(".og-button-icon");
60
+ this.$text = this.select(".og-button-text");
61
+ this.el!.__og_button__ = this;
62
+ this._initEvents();
63
+ return this;
64
+ }
65
+
66
+ protected _initEvents() {
67
+ if (this.el) {
68
+ this.el.addEventListener("click", this._onMouseClick);
69
+ this.el.addEventListener("mousedown", this._onMouseDown);
70
+ this.el.addEventListener("mouseup", this._onMouseUp);
71
+ this.el.addEventListener("touchstart", this._onTouchStart);
72
+ this.el.addEventListener("touchend", this._onTouchEnd);
73
+ this.el.addEventListener("touchcancel", this._onTouchCancel);
74
+ }
75
+ }
76
+
77
+ protected _onMouseDown = (e: MouseEvent) => {
78
+ e.preventDefault();
79
+ this.events.dispatch(this.events.mousedown, this, e);
80
+ }
81
+
82
+ protected _onMouseUp = (e: MouseEvent) => {
83
+ e.preventDefault();
84
+ this.events.dispatch(this.events.mouseup, this, e);
85
+ }
86
+
87
+ protected _onTouchStart = (e: TouchEvent) => {
88
+ e.preventDefault();
89
+ this.events.dispatch(this.events.touchstart, this, e);
90
+ }
91
+
92
+ protected _onTouchEnd = (e: TouchEvent) => {
93
+ e.preventDefault();
94
+ this.events.dispatch(this.events.touchend, this, e);
95
+ }
96
+
97
+ protected _onTouchCancel = (e: TouchEvent) => {
98
+ e.preventDefault();
99
+ this.events.dispatch(this.events.touchcancel, this, e);
100
+ }
101
+
102
+ protected _mouseClickHandler(e: MouseEvent) {
103
+ e.preventDefault();
104
+ this.events.dispatch(this.events.click, this, e);
105
+ }
106
+
107
+ protected _onMouseClick = (e: MouseEvent) => {
108
+ this._mouseClickHandler(e)
109
+ }
110
+
111
+ public override remove() {
112
+ this._clearEvents();
113
+ super.remove();
114
+ }
115
+
116
+ protected _clearEvents() {
117
+ this.el && this.el.removeEventListener("click", this._onMouseClick);
118
+ }
119
+ }
120
+
121
+ export {Button};
@@ -0,0 +1,63 @@
1
+ import {ToggleButton} from "./ToggleButton";
2
+ import {createEvents, EventsHandler} from '../Events';
3
+
4
+ interface IButtonGroupParams {
5
+ buttons?: ToggleButton[];
6
+ }
7
+
8
+ type ButtonGroupEventsList = ["change"];
9
+
10
+ const BUTTONGROUP_EVENTS: ButtonGroupEventsList = ["change"];
11
+
12
+ class ButtonGroup {
13
+
14
+ public events: EventsHandler<ButtonGroupEventsList>;
15
+
16
+ protected _buttons: ToggleButton[];
17
+
18
+ constructor(options: IButtonGroupParams = {}) {
19
+
20
+ this.events = createEvents<ButtonGroupEventsList>(BUTTONGROUP_EVENTS);
21
+
22
+ this._buttons = options.buttons || [];
23
+
24
+ for (let i = 0; i < this._buttons.length; i++) {
25
+ this._bindButton(this._buttons[i]);
26
+ }
27
+ }
28
+
29
+ protected _bindButton(button: ToggleButton) {
30
+ button.events.on("change", this._onChange);
31
+ }
32
+
33
+ public add(button: ToggleButton) {
34
+ this._buttons.push(button);
35
+ this._bindButton(button);
36
+ }
37
+
38
+ protected _onChange = (isActive: boolean, btn: ToggleButton) => {
39
+ if (isActive) {
40
+ btn.preventClick = true;
41
+ for (let i = 0; i < this._buttons.length; i++) {
42
+ let bi = this._buttons[i];
43
+ if (!bi.isEqual(btn)) {
44
+ bi.setActive(false);
45
+ bi.preventClick = false;
46
+ }
47
+ }
48
+ this.events.dispatch(this.events.change, btn);
49
+ }
50
+ }
51
+
52
+ public remove(button: ToggleButton) {
53
+ for (let i = 0; i < this._buttons.length; i++) {
54
+ if (this._buttons[i].isEqual(button)) {
55
+ this._buttons.splice(i);
56
+ button.events.off("change", this._onChange);
57
+ return;
58
+ }
59
+ }
60
+ }
61
+ }
62
+
63
+ export {ButtonGroup}
@@ -0,0 +1,244 @@
1
+ import {getDefault, stringTemplate} from '../utils/shared';
2
+ import {Button} from './Button';
3
+ import {CLOSE_ICON} from './icons';
4
+ import {IViewParams, View, ViewEventsList} from './View';
5
+ import {EventsHandler} from "../Events";
6
+
7
+ export interface IDialogParams extends IViewParams {
8
+ title?: string;
9
+ visible?: boolean;
10
+ resizable?: boolean;
11
+ width?: number;
12
+ height?: number;
13
+ left?: number;
14
+ top?: number;
15
+ minHeight?: number;
16
+ maxHeight?: number;
17
+ minWidth?: number;
18
+ maxWidth?: number;
19
+ useHide?: boolean;
20
+ }
21
+
22
+ type DialogEventsList = ["resize", "focus", "visibility", "dragstart", "dragend"];
23
+
24
+ const DIALOG_EVENTS: DialogEventsList = ["resize", "focus", "visibility", "dragstart", "dragend"];
25
+
26
+ const TEMPLATE = `<div class="og-ddialog"
27
+ style="display:{display}; resize:{resize}; width: {width}px; {height}; top: {top}px; left: {left}px; min-height: {minHeight}; max-height: {maxHeight}; min-width: {minWidth}; max-width: {maxWidth};">
28
+ <div class="og-ddialog-header">
29
+ <div class="og-ddialog-header__title">{title}</div>
30
+ <div class="og-ddialog-header__buttons"></div>
31
+ </div>
32
+ <div class="og-ddialog-container"></div>
33
+ </div>>`;
34
+
35
+ class Dialog<M> extends View<M> {
36
+
37
+ static __zIndex__: number = 0;
38
+
39
+ public override events: EventsHandler<DialogEventsList> & EventsHandler<ViewEventsList>;
40
+
41
+ public $header: HTMLElement | null;
42
+ public $title: HTMLElement | null;
43
+ public $container: HTMLElement | null;
44
+ public $buttons: HTMLElement | null;
45
+
46
+ public useHide: boolean;
47
+
48
+ protected _startPosX: number;
49
+ protected _startPosY: number;
50
+
51
+ protected _closeBtn: Button;
52
+
53
+ protected _visibility: boolean;
54
+
55
+ constructor(options: IDialogParams = {}) {
56
+ super({
57
+ template: stringTemplate(TEMPLATE, {
58
+ title: options.title || "",
59
+ display: getDefault(options.visible, true) ? "flex" : "none",
60
+ resize: getDefault(options.resizable, true) ? "both" : "none",
61
+ width: options.width || 300,
62
+ height: options.height ? `height:${options.height || 200}` : "",
63
+ left: options.left || 0,
64
+ top: options.top || 0,
65
+ minHeight: options.minHeight ? `${options.minHeight}px` : 'unset',
66
+ maxHeight: options.maxHeight ? `${options.maxHeight}px` : 'unset',
67
+ minWidth: options.minWidth ? `${options.minWidth}px` : 'unset',
68
+ maxWidth: options.maxWidth ? `${options.maxWidth}px` : 'unset',
69
+ }),
70
+ ...options
71
+ });
72
+
73
+ //@ts-ignore
74
+ this.events = this.events.registerNames(DIALOG_EVENTS);
75
+
76
+ this._startPosX = 0;
77
+ this._startPosY = 0;
78
+
79
+ this.$header = null;
80
+ this.$title = null;
81
+ this.$container = null;
82
+ this.$buttons = null;
83
+
84
+ this._closeBtn = new Button({
85
+ icon: CLOSE_ICON,
86
+ classList: ["og-button-size__20"]
87
+ });
88
+
89
+ this.useHide = options.useHide || false;
90
+
91
+ this._visibility = getDefault(options.visible, true);
92
+ }
93
+
94
+ public setContainer(htmlStr: string) {
95
+ this.$container!.innerHTML = htmlStr;
96
+ }
97
+
98
+ public get container(): HTMLElement | null {
99
+ return this.$container;
100
+ }
101
+
102
+ public get width(): number {
103
+ return this.el ? parseFloat(this.el.style.width) : 0;
104
+ }
105
+
106
+ public get height(): number {
107
+ return this.el ? parseFloat(this.el.style.height) : 0;
108
+ }
109
+
110
+ public bringToFront() {
111
+ this.el!.style.zIndex = String(Dialog.__zIndex__++);
112
+ }
113
+
114
+ public override render(params: any): this {
115
+ super.render(params);
116
+ this.bringToFront();
117
+ this.$header = this.select(".og-ddialog-header");
118
+ this.$title = this.select(".og-ddialog-header__title");
119
+ this.$container = this.select(".og-ddialog-container");
120
+ this.$buttons = this.select(".og-ddialog-header__buttons");
121
+ this._initEvents();
122
+ this._initButtons();
123
+ return this;
124
+ }
125
+
126
+ public show() {
127
+ if (!this._visibility) {
128
+ this._visibility = true;
129
+ this.el!.style.display = "flex";
130
+ this.bringToFront();
131
+ this.events.dispatch(this.events.visibility, true, this);
132
+ }
133
+ }
134
+
135
+ public hide() {
136
+ if (this._visibility) {
137
+ this._visibility = false;
138
+ this.el!.style.display = "none";
139
+ this.events.dispatch(this.events.visibility, false, this);
140
+ }
141
+ }
142
+
143
+ public close() {
144
+ if (this.useHide) {
145
+ this.hide();
146
+ } else {
147
+ this.remove();
148
+ }
149
+ }
150
+
151
+ public setVisibility(visibility: boolean) {
152
+ if (visibility) {
153
+ this.show();
154
+ } else {
155
+ this.hide();
156
+ }
157
+ }
158
+
159
+ protected _initButtons() {
160
+ this._closeBtn.events.on("click", this._onCloseBtnClick);
161
+ this._closeBtn.appendTo(this.$buttons!);
162
+ }
163
+
164
+ protected _initEvents() {
165
+ this.$header!.addEventListener("mousedown", this._onMouseDown);
166
+ this.el!.addEventListener("mousedown", this._onMouseDownAll);
167
+ }
168
+
169
+ protected _onCloseBtnClick = () => {
170
+ this.close();
171
+ }
172
+
173
+ protected _onMouseDownAll = () => {
174
+ this.bringToFront();
175
+ }
176
+
177
+ protected _onMouseDown = (e: MouseEvent) => {
178
+ e.preventDefault();
179
+
180
+ this._startDragging();
181
+
182
+ this._startPosX = e.clientX;
183
+ this._startPosY = e.clientY;
184
+
185
+ document.addEventListener("mousemove", this._onMouseMove);
186
+ document.addEventListener("mouseup", this._onMouseUp);
187
+ }
188
+
189
+ public setPosition(x?: number, y?: number) {
190
+ if (x != undefined) {
191
+ this.el!.style.left = `${x}px`;
192
+ }
193
+ if (y != undefined) {
194
+ this.el!.style.top = `${y}px`;
195
+ }
196
+ }
197
+
198
+ protected _onMouseMove = (e: MouseEvent) => {
199
+ e.preventDefault();
200
+ let dx = this._startPosX - e.clientX;
201
+ let dy = this._startPosY - e.clientY;
202
+ this._startPosX = e.clientX;
203
+ this._startPosY = e.clientY;
204
+ this.setPosition(this.el!.offsetLeft - dx, this.el!.offsetTop - dy);
205
+ }
206
+
207
+ protected _startDragging() {
208
+ if (!this.el!.classList.contains("dragging")) {
209
+ this.el!.classList.add("dragging");
210
+ this.events.dispatch(this.events.dragstart, this);
211
+ }
212
+ }
213
+
214
+ protected _clearDragging() {
215
+ if (this.el!.classList.contains("dragging")) {
216
+ this.events.dispatch(this.events.dragend, this);
217
+ this.el!.classList.remove("dragging");
218
+ }
219
+ }
220
+
221
+ protected _onMouseUp = () => {
222
+ this._clearDragging();
223
+ document.removeEventListener("mouseup", this._onMouseUp);
224
+ document.removeEventListener("mousemove", this._onMouseMove);
225
+ }
226
+
227
+ public override remove() {
228
+ this._clearDragging();
229
+ this._clearEvents();
230
+ super.remove();
231
+ }
232
+
233
+ protected _clearEvents() {
234
+ this._closeBtn.events.off("click", this._onCloseBtnClick);
235
+
236
+ document.removeEventListener("mouseup", this._onMouseUp);
237
+ document.removeEventListener("mousemove", this._onMouseMove);
238
+
239
+ this.$header!.removeEventListener("mousedown", this._onMouseDown);
240
+ this.el!.removeEventListener("mousedown", this._onMouseDownAll);
241
+ }
242
+ }
243
+
244
+ export {Dialog};