@openglobus/og 0.17.1 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/README.md +75 -46
  2. package/dist/@openglobus/og.esm.js +1 -20
  3. package/dist/@openglobus/og.esm.js.map +1 -1
  4. package/dist/@openglobus/og.umd.js +1 -20
  5. package/dist/@openglobus/og.umd.js.map +1 -1
  6. package/dist/@openglobus/res/fonts/Karla-Bold.json +5252 -0
  7. package/dist/@openglobus/res/fonts/Karla-Bold.ttf.cfg +920 -0
  8. package/dist/@openglobus/res/fonts/Karla-Bold.ttf.png +0 -0
  9. package/dist/@openglobus/res/fonts/Karla-Light.json +5252 -0
  10. package/dist/@openglobus/res/fonts/Karla-Light.ttf.cfg +830 -0
  11. package/dist/@openglobus/res/fonts/Karla-Light.ttf.png +0 -0
  12. package/dist/@openglobus/res/fonts/Karla-Medium.json +5252 -0
  13. package/dist/@openglobus/res/fonts/Karla-Medium.ttf.cfg +1196 -0
  14. package/dist/@openglobus/res/fonts/Karla-Medium.ttf.png +0 -0
  15. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.json +3332 -0
  16. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.cfg +1370 -0
  17. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.png +0 -0
  18. package/dist/@openglobus/res/fonts/Roboto-Regular.json +37147 -0
  19. package/dist/@openglobus/res/fonts/Roboto-Regular.ttf.cfg +1340 -0
  20. package/dist/@openglobus/res/fonts/Roboto-Regular.ttf.png +0 -0
  21. package/dist/@openglobus/res/fonts/arial.json +4321 -0
  22. package/dist/@openglobus/res/fonts/arial.ttf.cfg +1570 -0
  23. package/dist/@openglobus/res/fonts/arial.ttf.png +0 -0
  24. package/dist/@openglobus/res/night-4326.png +0 -0
  25. package/dist/@openglobus/res/night.png +0 -0
  26. package/dist/@openglobus/res/spec.png +0 -0
  27. package/package.json +25 -23
  28. package/src/{og/Clock.js → Clock.ts} +100 -78
  29. package/src/Deferred.ts +17 -0
  30. package/src/Events.ts +200 -0
  31. package/src/{og/Extent.js → Extent.ts} +324 -352
  32. package/src/Globe.ts +363 -0
  33. package/src/{og/ImageCanvas.js → ImageCanvas.ts} +244 -236
  34. package/src/Lock.ts +41 -0
  35. package/src/{og/LonLat.js → LonLat.ts} +50 -47
  36. package/src/{og/Object3d.js → Object3d.ts} +89 -55
  37. package/src/Popup.ts +228 -0
  38. package/src/{og/QueueArray.js → QueueArray.ts} +76 -75
  39. package/src/{og/Rectangle.js → Rectangle.ts} +115 -111
  40. package/src/Stack.ts +58 -0
  41. package/src/{og/astro/astro.js → astro/astro.ts} +49 -51
  42. package/src/{og/astro/earth.js → astro/earth.ts} +8 -9
  43. package/src/{og/astro/jd.js → astro/jd.ts} +92 -111
  44. package/src/{og/astro/orbit.js → astro/orbit.ts} +35 -37
  45. package/src/{og/astro/rotation.js → astro/rotation.ts} +4 -6
  46. package/src/{og/bv/Box.js → bv/Box.ts} +21 -17
  47. package/src/{og/bv/Sphere.js → bv/Sphere.ts} +21 -19
  48. package/src/bv/index.ts +4 -0
  49. package/src/{og/camera/Camera.js → camera/Camera.ts} +254 -197
  50. package/src/{og/camera/Frustum.js → camera/Frustum.ts} +137 -111
  51. package/src/{og/camera/PlanetCamera.js → camera/PlanetCamera.ts} +248 -185
  52. package/src/camera/index.ts +4 -0
  53. package/src/{og/cons.js → cons.ts} +14 -18
  54. package/src/{og/control/Atmosphere.js → control/Atmosphere.ts} +50 -50
  55. package/src/{og/control/CompassButton.js → control/CompassButton.ts} +27 -30
  56. package/src/{og/control/Control.js → control/Control.ts} +76 -70
  57. package/src/{og/control/DebugInfo.js → control/DebugInfo.ts} +130 -62
  58. package/src/{og/control/DrawingSwitcher.js → control/DrawingSwitcher.ts} +16 -22
  59. package/src/control/EarthCoordinates.ts +222 -0
  60. package/src/control/EarthNavigation.ts +293 -0
  61. package/src/{og/control/GeoImageDragControl.js → control/GeoImageDragControl.ts} +37 -29
  62. package/src/control/KeyboardNavigation.ts +168 -0
  63. package/src/{og/control/LayerAnimation.js → control/LayerAnimation.ts} +74 -90
  64. package/src/control/LayerSwitcher.ts +76 -0
  65. package/src/{og/control/Lighting.js → control/Lighting.ts} +158 -120
  66. package/src/control/MouseNavigation.ts +468 -0
  67. package/src/control/MouseWheelZoomControl.ts +269 -0
  68. package/src/{og/control/RulerSwitcher.js → control/RulerSwitcher.ts} +18 -20
  69. package/src/control/ScaleControl.ts +131 -0
  70. package/src/control/SegmentBoundVisualization.ts +50 -0
  71. package/src/control/ShowFps.ts +28 -0
  72. package/src/control/SimpleNavigation.ts +118 -0
  73. package/src/{og/control/SimpleSkyBackground.js → control/SimpleSkyBackground.ts} +36 -38
  74. package/src/{og/control/Sun.js → control/Sun.ts} +56 -64
  75. package/src/control/ToggleWireframe.ts +35 -0
  76. package/src/control/TouchNavigation.ts +368 -0
  77. package/src/control/ZoomControl.ts +111 -0
  78. package/src/control/drawing/DrawingControl.ts +45 -0
  79. package/src/{og/control/drawing/LineStringDrawingScene.js → control/drawing/LineStringDrawingScene.ts} +28 -35
  80. package/src/{og/control/drawing/PolygonDrawingScene.js → control/drawing/PolygonDrawingScene.ts} +148 -201
  81. package/src/{og/control/elevationProfile/ElevationProfile.js → control/elevationProfile/ElevationProfile.ts} +70 -36
  82. package/src/control/heightRuler/HeightRuler.ts +16 -0
  83. package/src/{og/control/heightRuler/HeightRulerScene.js → control/heightRuler/HeightRulerScene.ts} +92 -87
  84. package/src/{og/control/heightRuler/HeightRulerSwitcher.js → control/heightRuler/HeightRulerSwitcher.ts} +3 -3
  85. package/src/control/index.ts +45 -0
  86. package/src/control/ruler/Ruler.ts +35 -0
  87. package/src/{og/control/ruler/RulerScene.js → control/ruler/RulerScene.ts} +163 -121
  88. package/src/{og/control/selection/Selection.js → control/selection/Selection.ts} +23 -21
  89. package/src/{og/control/selection/SelectionScene.js → control/selection/SelectionScene.ts} +64 -50
  90. package/src/{og/control/timeline/TimelineControl.js → control/timeline/TimelineControl.ts} +37 -28
  91. package/src/{og/control/timeline/TimelineModel.js → control/timeline/TimelineModel.ts} +50 -35
  92. package/src/{og/control/timeline/TimelineView.js → control/timeline/TimelineView.ts} +162 -113
  93. package/src/{og/control/timeline/timelineUtils.js → control/timeline/timelineUtils.ts} +11 -10
  94. package/src/{og/control → control}/visibleExtent/Segment.js +5 -5
  95. package/src/{og/control → control}/visibleExtent/VisibleExtent.js +8 -15
  96. package/src/{og/control/visibleExtent/drawnode.js → control/visibleExtent/drawnode.ts} +1 -3
  97. package/src/{og/ellipsoid/Ellipsoid.js → ellipsoid/Ellipsoid.ts} +113 -59
  98. package/src/ellipsoid/index.ts +4 -0
  99. package/src/{og/ellipsoid/wgs84.js → ellipsoid/wgs84.ts} +1 -3
  100. package/src/{og/entity/BaseBillboard.js → entity/BaseBillboard.ts} +128 -102
  101. package/src/entity/BaseBillboardHandler.ts +772 -0
  102. package/src/{og/entity/Billboard.js → entity/Billboard.ts} +77 -47
  103. package/src/entity/BillboardHandler.ts +135 -0
  104. package/src/{og/entity/Entity.js → entity/Entity.ts} +285 -226
  105. package/src/{og/entity/EntityCollection.js → entity/EntityCollection.ts} +340 -247
  106. package/src/{og/entity/GeoObject.js → entity/GeoObject.ts} +122 -67
  107. package/src/{og/entity/GeoObjectHandler.js → entity/GeoObjectHandler.ts} +273 -198
  108. package/src/entity/Geometry.ts +486 -0
  109. package/src/{og/entity/GeometryHandler.js → entity/GeometryHandler.ts} +383 -541
  110. package/src/{og/entity/Label.js → entity/Label.ts} +131 -83
  111. package/src/{og/entity/LabelHandler.js → entity/LabelHandler.ts} +289 -255
  112. package/src/{og/entity/LabelWorker.js → entity/LabelWorker.ts} +26 -36
  113. package/src/{og/entity/PointCloud.js → entity/PointCloud.ts} +200 -164
  114. package/src/entity/PointCloudHandler.ts +125 -0
  115. package/src/{og/entity/Polyline.js → entity/Polyline.ts} +517 -539
  116. package/src/{og/entity/PolylineHandler.js → entity/PolylineHandler.ts} +29 -31
  117. package/src/{og/entity/Ray.js → entity/Ray.ts} +89 -60
  118. package/src/{og/entity/RayHandler.js → entity/RayHandler.ts} +201 -306
  119. package/src/{og/entity/Strip.js → entity/Strip.ts} +143 -100
  120. package/src/{og/entity/StripHandler.js → entity/StripHandler.ts} +76 -72
  121. package/src/entity/index.ts +12 -0
  122. package/src/index.ts +173 -0
  123. package/src/input/KeyboardHandler.ts +196 -0
  124. package/src/{og/input/MouseHandler.js → input/MouseHandler.ts} +46 -35
  125. package/src/input/TouchHandler.ts +54 -0
  126. package/src/{og/input/input.js → input/input.ts} +1 -3
  127. package/src/{og/layer/BaseGeoImage.js → layer/BaseGeoImage.ts} +174 -107
  128. package/src/{og/layer/CanvasTiles.js → layer/CanvasTiles.ts} +139 -105
  129. package/src/{og/layer/GeoImage.js → layer/GeoImage.ts} +62 -52
  130. package/src/layer/GeoTexture2d.ts +56 -0
  131. package/src/{og/layer/GeoVideo.js → layer/GeoVideo.ts} +53 -53
  132. package/src/{og/layer/KML.js → layer/KML.ts} +63 -74
  133. package/src/{og/layer/Layer.js → layer/Layer.ts} +399 -223
  134. package/src/{og/layer/Material.js → layer/Material.ts} +40 -35
  135. package/src/{og/layer/Vector.js → layer/Vector.ts} +319 -267
  136. package/src/{og/layer/WMS.js → layer/WMS.ts} +76 -64
  137. package/src/{og/layer/XYZ.js → layer/XYZ.ts} +123 -98
  138. package/src/layer/index.ts +12 -0
  139. package/src/{og/light/LightSource.js → light/LightSource.ts} +132 -93
  140. package/src/{og/math/Line2.js → math/Line2.ts} +11 -8
  141. package/src/{og/math/Line3.js → math/Line3.ts} +49 -27
  142. package/src/{og/math/Mat3.js → math/Mat3.ts} +43 -27
  143. package/src/{og/math/Mat4.js → math/Mat4.ts} +110 -77
  144. package/src/{og/math/Plane.js → math/Plane.ts} +28 -23
  145. package/src/{og/math/Quat.js → math/Quat.ts} +238 -222
  146. package/src/{og/math/Ray.js → math/Ray.ts} +59 -63
  147. package/src/{og/math/Vec2.js → math/Vec2.ts} +85 -76
  148. package/src/{og/math/Vec3.js → math/Vec3.ts} +141 -140
  149. package/src/{og/math/Vec4.js → math/Vec4.ts} +64 -53
  150. package/src/{og/math/coder.js → math/coder.ts} +30 -27
  151. package/src/math/index.ts +26 -0
  152. package/src/{og/math.js → math.ts} +46 -49
  153. package/src/{og/mercator.js → mercator.ts} +143 -149
  154. package/src/{og/proj/EPSG3857.js → proj/EPSG3857.ts} +1 -3
  155. package/src/{og/proj/EPSG4326.js → proj/EPSG4326.ts} +11 -13
  156. package/src/{og/proj/Proj.js → proj/Proj.ts} +27 -23
  157. package/src/{og/quadTree/EPSG4326QuadTreeStrategy.js → quadTree/EPSG4326QuadTreeStrategy.ts} +10 -13
  158. package/src/{og/quadTree/EarthQuadTreeStrategy.js → quadTree/EarthQuadTreeStrategy.ts} +11 -13
  159. package/src/quadTree/EntityCollectionNode.ts +395 -0
  160. package/src/{og/quadTree/MarsQuadTreeStrategy.js → quadTree/MarsQuadTreeStrategy.ts} +10 -13
  161. package/src/{og/quadTree/Node.js → quadTree/Node.ts} +283 -191
  162. package/src/{og/quadTree/QuadTreeStrategy.js → quadTree/QuadTreeStrategy.ts} +35 -29
  163. package/src/quadTree/Wgs84QuadTreeStrategy.ts +22 -0
  164. package/src/quadTree/index.ts +14 -0
  165. package/src/{og/quadTree/quadTree.js → quadTree/quadTree.ts} +75 -77
  166. package/src/{og/renderer/Renderer.js → renderer/Renderer.ts} +454 -298
  167. package/src/{og/renderer/RendererEvents.js → renderer/RendererEvents.ts} +347 -270
  168. package/src/{og/scene/Axes.js → scene/Axes.ts} +26 -22
  169. package/src/{og/scene/BaseNode.js → scene/BaseNode.ts} +53 -47
  170. package/src/{og/scene/Planet.js → scene/Planet.ts} +777 -595
  171. package/src/{og/scene/RenderNode.js → scene/RenderNode.ts} +105 -91
  172. package/src/{og/scene/SkyBox.js → scene/SkyBox.ts} +29 -25
  173. package/src/scene/index.ts +6 -0
  174. package/src/{og/segment/Segment.js → segment/Segment.ts} +497 -371
  175. package/src/{og/segment/SegmentLonLat.js → segment/SegmentLonLat.ts} +81 -87
  176. package/src/{og/segment/SegmentLonLatWgs84.js → segment/SegmentLonLatWgs84.ts} +9 -16
  177. package/src/{og/segment/Slice.js → segment/Slice.ts} +15 -9
  178. package/src/{og/segment/segmentHelper.js → segment/segmentHelper.ts} +57 -49
  179. package/src/{og/shaders/atmos.js → shaders/atmos.ts} +4 -6
  180. package/src/{og/shaders/billboard.js → shaders/billboard.ts} +3 -5
  181. package/src/{og/shaders/bloom.js → shaders/bloom.ts} +2 -4
  182. package/src/{og/shaders/blur.js → shaders/blur.ts} +4 -7
  183. package/src/{og/shaders/depth.js → shaders/depth.ts} +1 -3
  184. package/src/{og/shaders/drawnode.js → shaders/drawnode.ts} +19 -21
  185. package/src/{og/shaders/geoObject.js → shaders/geoObject.ts} +17 -19
  186. package/src/{og/shaders/label.js → shaders/label.ts} +4 -6
  187. package/src/{og/shaders/lumFilter.js → shaders/lumFilter.ts} +2 -4
  188. package/src/{og/shaders/pickingMask.js → shaders/pickingMask.ts} +2 -4
  189. package/src/{og/shaders/pointCloud.js → shaders/pointCloud.ts} +7 -10
  190. package/src/{og/shaders/polyline.js → shaders/polyline.ts} +3 -200
  191. package/src/{og/shaders/ray.js → shaders/ray.ts} +2 -4
  192. package/src/{og/shaders/screenFrame.js → shaders/screenFrame.ts} +2 -4
  193. package/src/{og/shaders/skybox.js → shaders/skybox.ts} +7 -9
  194. package/src/{og/shaders/toneMapping.js → shaders/toneMapping.ts} +2 -4
  195. package/src/{og/shaders/utils.js → shaders/utils.ts} +0 -2
  196. package/src/{og/terrain/BilTerrain.js → terrain/BilTerrain.ts} +38 -32
  197. package/src/terrain/EmptyTerrain.ts +230 -0
  198. package/src/{og/terrain/Geoid.js → terrain/Geoid.ts} +67 -41
  199. package/src/{og/terrain/GlobusTerrain.js → terrain/GlobusTerrain.ts} +159 -153
  200. package/src/{og/terrain/MapboxTerrain.js → terrain/MapboxTerrain.ts} +58 -61
  201. package/src/terrain/index.ts +6 -0
  202. package/src/ui/Button.ts +121 -0
  203. package/src/ui/ButtonGroup.ts +63 -0
  204. package/src/ui/Dialog.ts +244 -0
  205. package/src/ui/Slider.ts +188 -0
  206. package/src/ui/ToggleButton.ts +68 -0
  207. package/src/{og/ui/View.js → ui/View.ts} +66 -59
  208. package/src/utils/BaseWorker.ts +60 -0
  209. package/src/utils/FontAtlas.ts +356 -0
  210. package/src/{og/utils/GeoImageCreator.js → utils/GeoImageCreator.ts} +45 -29
  211. package/src/{og/utils/ImagesCacheManager.js → utils/ImagesCacheManager.ts} +85 -70
  212. package/src/utils/Loader.ts +247 -0
  213. package/src/{og/utils/NormalMapCreator.js → utils/NormalMapCreator.ts} +114 -77
  214. package/src/{og/utils/PlainSegmentWorker.js → utils/PlainSegmentWorker.ts} +41 -24
  215. package/src/{og/utils/TerrainWorker.js → utils/TerrainWorker.ts} +51 -36
  216. package/src/utils/TextureAtlas.ts +322 -0
  217. package/src/{og/utils/VectorTileCreator.js → utils/VectorTileCreator.ts} +67 -52
  218. package/src/{og/utils/colorTable.js → utils/colorTable.ts} +142 -144
  219. package/src/{og/utils/earcut.js → utils/earcut.ts} +664 -661
  220. package/src/{og/utils/objParser.js → utils/objParser.ts} +66 -37
  221. package/src/{og/utils/shared.js → utils/shared.ts} +267 -206
  222. package/src/utils/units.ts +78 -0
  223. package/src/webgl/BaseFramebuffer.ts +125 -0
  224. package/src/webgl/Framebuffer.ts +206 -0
  225. package/src/webgl/Handler.ts +1414 -0
  226. package/src/webgl/Multisample.ts +153 -0
  227. package/src/webgl/Program.ts +451 -0
  228. package/src/{og/webgl/ProgramController.js → webgl/ProgramController.ts} +44 -43
  229. package/src/webgl/index.ts +13 -0
  230. package/src/{og/webgl/types.js → webgl/types.ts} +29 -31
  231. package/src/webgl/variableHandlers.ts +114 -0
  232. package/src/og/Deferred.js +0 -11
  233. package/src/og/Events.js +0 -185
  234. package/src/og/Globe.js +0 -342
  235. package/src/og/Lock.js +0 -44
  236. package/src/og/Popup.js +0 -187
  237. package/src/og/Stack.js +0 -49
  238. package/src/og/bv/index.js +0 -4
  239. package/src/og/camera/index.js +0 -4
  240. package/src/og/control/EarthCoordinates.js +0 -214
  241. package/src/og/control/EarthNavigation.js +0 -258
  242. package/src/og/control/KeyboardNavigation.js +0 -149
  243. package/src/og/control/LayerSwitcher.js +0 -424
  244. package/src/og/control/MouseNavigation.js +0 -436
  245. package/src/og/control/MouseWheelZoomControl.js +0 -253
  246. package/src/og/control/ScaleControl.js +0 -119
  247. package/src/og/control/SegmentBoundVisualization.js +0 -54
  248. package/src/og/control/ShowFps.js +0 -40
  249. package/src/og/control/SimpleNavigation.js +0 -123
  250. package/src/og/control/ToggleWireframe.js +0 -35
  251. package/src/og/control/TouchNavigation.js +0 -350
  252. package/src/og/control/ZoomControl.js +0 -115
  253. package/src/og/control/drawing/DrawingControl.js +0 -51
  254. package/src/og/control/heightRuler/HeightRuler.js +0 -12
  255. package/src/og/control/index.js +0 -56
  256. package/src/og/control/ruler/Ruler.js +0 -39
  257. package/src/og/ellipsoid/index.js +0 -4
  258. package/src/og/entity/BillboardHandler.js +0 -883
  259. package/src/og/entity/Geometry.js +0 -320
  260. package/src/og/entity/PointCloudHandler.js +0 -122
  261. package/src/og/entity/index.js +0 -9
  262. package/src/og/index.js +0 -112
  263. package/src/og/input/KeyboardHandler.js +0 -128
  264. package/src/og/input/TouchHandler.js +0 -59
  265. package/src/og/layer/GeoTexture2d.js +0 -50
  266. package/src/og/layer/index.js +0 -11
  267. package/src/og/math/index.js +0 -23
  268. package/src/og/quadTree/EntityCollectionNode.js +0 -391
  269. package/src/og/quadTree/Wgs84QuadTreeStrategy.js +0 -27
  270. package/src/og/quadTree/index.js +0 -14
  271. package/src/og/res/images.js +0 -8
  272. package/src/og/scene/index.js +0 -5
  273. package/src/og/terrain/EmptyTerrain.js +0 -174
  274. package/src/og/terrain/index.js +0 -6
  275. package/src/og/ui/Button.js +0 -107
  276. package/src/og/ui/ButtonGroup.js +0 -57
  277. package/src/og/ui/Dialog.js +0 -239
  278. package/src/og/ui/Slider.js +0 -170
  279. package/src/og/ui/ToggleButton.js +0 -51
  280. package/src/og/ui/UIhelpers.js +0 -155
  281. package/src/og/utils/BaseWorker.js +0 -46
  282. package/src/og/utils/FontAtlas.js +0 -218
  283. package/src/og/utils/Loader.js +0 -188
  284. package/src/og/utils/TextureAtlas.js +0 -291
  285. package/src/og/utils/functionComposition.js +0 -13
  286. package/src/og/utils/units.js +0 -78
  287. package/src/og/webgl/Framebuffer.js +0 -311
  288. package/src/og/webgl/Handler.js +0 -1168
  289. package/src/og/webgl/Multisample.js +0 -275
  290. package/src/og/webgl/Program.js +0 -407
  291. package/src/og/webgl/callbacks.js +0 -98
  292. package/src/og/webgl/index.js +0 -13
  293. package/src/og.jsdoc +0 -3
  294. package/types/Clock.d.ts +0 -99
  295. package/types/Deferred.d.ts +0 -6
  296. package/types/Events.d.ts +0 -78
  297. package/types/Extent.d.ts +0 -166
  298. package/types/Globe.d.ts +0 -108
  299. package/types/ImageCanvas.d.ts +0 -128
  300. package/types/Lock.d.ts +0 -12
  301. package/types/LonLat.d.ts +0 -127
  302. package/types/Object3d.d.ts +0 -35
  303. package/types/Popup.d.ts +0 -29
  304. package/types/QueueArray.d.ts +0 -19
  305. package/types/Rectangle.d.ts +0 -80
  306. package/types/Stack.d.ts +0 -19
  307. package/types/arial.d.ts +0 -49
  308. package/types/astro/astro.d.ts +0 -38
  309. package/types/astro/earth.d.ts +0 -7
  310. package/types/astro/jd.d.ts +0 -254
  311. package/types/bv/Box.d.ts +0 -30
  312. package/types/bv/Sphere.d.ts +0 -38
  313. package/types/bv/index.d.ts +0 -3
  314. package/types/camera/Camera.d.ts +0 -314
  315. package/types/camera/Frustum.d.ts +0 -133
  316. package/types/camera/PlanetCamera.d.ts +0 -219
  317. package/types/camera/index.d.ts +0 -3
  318. package/types/cons.d.ts +0 -40
  319. package/types/control/Atmosphere.d.ts +0 -15
  320. package/types/control/CompassButton.d.ts +0 -16
  321. package/types/control/Control.d.ts +0 -104
  322. package/types/control/DebugInfo.d.ts +0 -19
  323. package/types/control/DrawingSwitcher.d.ts +0 -13
  324. package/types/control/EarthCoordinates.d.ts +0 -44
  325. package/types/control/EarthNavigation.d.ts +0 -43
  326. package/types/control/GeoImageDragControl.d.ts +0 -14
  327. package/types/control/KeyboardNavigation.d.ts +0 -24
  328. package/types/control/LayerAnimation.d.ts +0 -73
  329. package/types/control/LayerSwitcher.d.ts +0 -64
  330. package/types/control/Lighting.d.ts +0 -41
  331. package/types/control/MouseNavigation.d.ts +0 -49
  332. package/types/control/MouseWheelZoomControl.d.ts +0 -46
  333. package/types/control/ScaleControl.d.ts +0 -23
  334. package/types/control/ShowFps.d.ts +0 -11
  335. package/types/control/SimpleNavigation.d.ts +0 -26
  336. package/types/control/SimpleSkyBackground.d.ts +0 -15
  337. package/types/control/Sun.d.ts +0 -53
  338. package/types/control/ToggleWireframe.d.ts +0 -12
  339. package/types/control/TouchNavigation.d.ts +0 -54
  340. package/types/control/ZoomControl.d.ts +0 -26
  341. package/types/control/drawing/DrawingControl.d.ts +0 -14
  342. package/types/control/drawing/LineStringDrawingScene.d.ts +0 -5
  343. package/types/control/drawing/PolygonDrawingScene.d.ts +0 -99
  344. package/types/control/heightRuler/HeightRuler.d.ts +0 -6
  345. package/types/control/heightRuler/HeightRulerScene.d.ts +0 -23
  346. package/types/control/index.d.ts +0 -27
  347. package/types/control/ruler/Ruler.d.ts +0 -13
  348. package/types/control/ruler/RulerScene.d.ts +0 -51
  349. package/types/control/selection/Selection.d.ts +0 -49
  350. package/types/control/selection/SelectionScene.d.ts +0 -32
  351. package/types/control/timeline/TimelineControl.d.ts +0 -10
  352. package/types/control/timeline/TimelineModel.d.ts +0 -33
  353. package/types/control/timeline/TimelineView.d.ts +0 -57
  354. package/types/control/timeline/timelineUtils.d.ts +0 -9
  355. package/types/ellipsoid/Ellipsoid.d.ts +0 -170
  356. package/types/ellipsoid/index.d.ts +0 -3
  357. package/types/ellipsoid/wgs84.d.ts +0 -6
  358. package/types/entity/BaseBillboard.d.ts +0 -215
  359. package/types/entity/Billboard.d.ts +0 -94
  360. package/types/entity/BillboardHandler.d.ts +0 -75
  361. package/types/entity/Entity.d.ts +0 -340
  362. package/types/entity/EntityCollection.d.ts +0 -303
  363. package/types/entity/GeoObject.d.ts +0 -117
  364. package/types/entity/GeoObjectHandler.d.ts +0 -41
  365. package/types/entity/Geometry.d.ts +0 -79
  366. package/types/entity/GeometryHandler.d.ts +0 -76
  367. package/types/entity/Label.d.ts +0 -190
  368. package/types/entity/LabelHandler.d.ts +0 -31
  369. package/types/entity/LabelWorker.d.ts +0 -9
  370. package/types/entity/PointCloud.d.ts +0 -174
  371. package/types/entity/PointCloudHandler.d.ts +0 -38
  372. package/types/entity/Polyline.d.ts +0 -307
  373. package/types/entity/PolylineHandler.d.ts +0 -18
  374. package/types/entity/Ray.d.ts +0 -122
  375. package/types/entity/RayHandler.d.ts +0 -63
  376. package/types/entity/Strip.d.ts +0 -119
  377. package/types/entity/StripHandler.d.ts +0 -38
  378. package/types/entity/index.d.ts +0 -8
  379. package/types/index.d.ts +0 -53
  380. package/types/input/KeyboardHandler.d.ts +0 -10
  381. package/types/input/MouseHandler.d.ts +0 -5
  382. package/types/input/TouchHandler.d.ts +0 -5
  383. package/types/input/input.d.ts +0 -42
  384. package/types/layer/BaseGeoImage.d.ts +0 -116
  385. package/types/layer/CanvasTiles.d.ts +0 -73
  386. package/types/layer/GeoImage.d.ts +0 -51
  387. package/types/layer/GeoTexture2d.d.ts +0 -7
  388. package/types/layer/GeoVideo.d.ts +0 -47
  389. package/types/layer/KML.d.ts +0 -93
  390. package/types/layer/Layer.d.ts +0 -320
  391. package/types/layer/Material.d.ts +0 -45
  392. package/types/layer/Vector.d.ts +0 -211
  393. package/types/layer/WMS.d.ts +0 -66
  394. package/types/layer/XYZ.d.ts +0 -122
  395. package/types/layer/index.d.ts +0 -10
  396. package/types/light/LightSource.d.ts +0 -178
  397. package/types/math/Line2.d.ts +0 -11
  398. package/types/math/Line3.d.ts +0 -10
  399. package/types/math/Mat3.d.ts +0 -65
  400. package/types/math/Mat4.d.ts +0 -176
  401. package/types/math/Plane.d.ts +0 -18
  402. package/types/math/Quat.d.ts +0 -379
  403. package/types/math/Ray.d.ts +0 -82
  404. package/types/math/Vec2.d.ts +0 -309
  405. package/types/math/Vec3.d.ts +0 -472
  406. package/types/math/Vec4.d.ts +0 -161
  407. package/types/math/coder.d.ts +0 -43
  408. package/types/math/index.d.ts +0 -11
  409. package/types/math.d.ts +0 -268
  410. package/types/mercator.d.ts +0 -92
  411. package/types/proj/EPSG3857.d.ts +0 -6
  412. package/types/proj/EPSG4326.d.ts +0 -6
  413. package/types/proj/Proj.d.ts +0 -42
  414. package/types/quadTree/EPSG4326QuadTreeStrategy.d.ts +0 -3
  415. package/types/quadTree/EarthQuadTreeStrategy.d.ts +0 -3
  416. package/types/quadTree/EntityCollectionNode.d.ts +0 -41
  417. package/types/quadTree/MarsQuadTreeStrategy.d.ts +0 -3
  418. package/types/quadTree/Node.d.ts +0 -58
  419. package/types/quadTree/QuadTreeStrategy.d.ts +0 -21
  420. package/types/quadTree/Wgs84QuadTreeStrategy.d.ts +0 -3
  421. package/types/quadTree/index.d.ts +0 -12
  422. package/types/quadTree/quadTree.d.ts +0 -40
  423. package/types/renderer/Renderer.d.ts +0 -291
  424. package/types/renderer/RendererEvents.d.ts +0 -255
  425. package/types/res/images.d.ts +0 -2
  426. package/types/scene/Axes.d.ts +0 -10
  427. package/types/scene/BaseNode.d.ts +0 -60
  428. package/types/scene/Planet.d.ts +0 -595
  429. package/types/scene/RenderNode.d.ts +0 -152
  430. package/types/scene/SkyBox.d.ts +0 -9
  431. package/types/scene/index.d.ts +0 -4
  432. package/types/segment/Segment.d.ts +0 -273
  433. package/types/segment/SegmentLonLat.d.ts +0 -22
  434. package/types/segment/SegmentLonLatWgs84.d.ts +0 -4
  435. package/types/segment/Slice.d.ts +0 -10
  436. package/types/segment/segmentHelper.d.ts +0 -13
  437. package/types/shaders/atmos.d.ts +0 -4
  438. package/types/shaders/billboard.d.ts +0 -3
  439. package/types/shaders/depth.d.ts +0 -2
  440. package/types/shaders/drawnode.d.ts +0 -8
  441. package/types/shaders/geoObject.d.ts +0 -3
  442. package/types/shaders/label.d.ts +0 -4
  443. package/types/shaders/pickingMask.d.ts +0 -2
  444. package/types/shaders/pointCloud.d.ts +0 -2
  445. package/types/shaders/polyline.d.ts +0 -3
  446. package/types/shaders/ray.d.ts +0 -2
  447. package/types/shaders/screenFrame.d.ts +0 -2
  448. package/types/shaders/skybox.d.ts +0 -2
  449. package/types/shaders/toneMapping.d.ts +0 -2
  450. package/types/shaders/utils.d.ts +0 -1
  451. package/types/terrain/BilTerrain.d.ts +0 -14
  452. package/types/terrain/EmptyTerrain.d.ts +0 -87
  453. package/types/terrain/Geoid.d.ts +0 -17
  454. package/types/terrain/GlobusTerrain.d.ts +0 -122
  455. package/types/terrain/MapboxTerrain.d.ts +0 -14
  456. package/types/terrain/index.d.ts +0 -5
  457. package/types/ui/Button.d.ts +0 -21
  458. package/types/ui/ButtonGroup.d.ts +0 -12
  459. package/types/ui/Dialog.d.ts +0 -41
  460. package/types/ui/Slider.d.ts +0 -33
  461. package/types/ui/ToggleButton.d.ts +0 -10
  462. package/types/ui/UIhelpers.d.ts +0 -13
  463. package/types/ui/View.d.ts +0 -33
  464. package/types/ui/icons.d.ts +0 -1
  465. package/types/utils/BaseWorker.d.ts +0 -14
  466. package/types/utils/FontAtlas.d.ts +0 -16
  467. package/types/utils/GeoImageCreator.d.ts +0 -30
  468. package/types/utils/ImagesCacheManager.d.ts +0 -10
  469. package/types/utils/Loader.d.ts +0 -31
  470. package/types/utils/NormalMapCreator.d.ts +0 -39
  471. package/types/utils/PlainSegmentWorker.d.ts +0 -8
  472. package/types/utils/TerrainWorker.d.ts +0 -7
  473. package/types/utils/TextureAtlas.d.ts +0 -113
  474. package/types/utils/VectorTileCreator.d.ts +0 -14
  475. package/types/utils/colorTable.d.ts +0 -143
  476. package/types/utils/earcut.d.ts +0 -6
  477. package/types/utils/functionComposition.d.ts +0 -5
  478. package/types/utils/objParser.d.ts +0 -8
  479. package/types/utils/shared.d.ts +0 -241
  480. package/types/utils/units.d.ts +0 -20
  481. package/types/webgl/Framebuffer.d.ts +0 -134
  482. package/types/webgl/Handler.d.ts +0 -403
  483. package/types/webgl/Multisample.d.ts +0 -91
  484. package/types/webgl/Program.d.ts +0 -163
  485. package/types/webgl/ProgramController.d.ts +0 -89
  486. package/types/webgl/callbacks.d.ts +0 -1
  487. package/types/webgl/index.d.ts +0 -6
  488. package/types/webgl/types.d.ts +0 -2
  489. /package/{src/og → dist/@openglobus/res/fonts}/arial.js +0 -0
  490. /package/src/{og/ui/icons.js → ui/icons.ts} +0 -0
@@ -1,18 +1,47 @@
1
- "use strict";
2
-
3
- import { Events } from "../Events.js";
4
- import { Extent } from "../Extent.js";
5
- import { LonLat } from "../LonLat.js";
6
- import { Vec3 } from "../math/Vec3.js";
7
- import * as mercator from "../mercator.js";
8
- import * as utils from "../utils/shared.js";
9
- import { createColorRGB } from "../utils/shared.js";
10
- import { Material } from "./Material.js";
1
+ import * as mercator from "../mercator";
2
+ import * as utils from "../utils/shared";
3
+ import {createColorRGB} from "../utils/shared";
4
+ import {createEvents, Events, EventsHandler} from "../Events";
5
+ import {Extent} from "../Extent";
6
+ import {LonLat} from "../LonLat";
7
+ import {Node} from "../quadTree/Node";
8
+ import {Material} from "./Material";
9
+ import {Planet} from "../scene/Planet";
10
+ import {Segment} from "../segment/Segment";
11
+ import {Vec3, NumberArray3} from "../math/Vec3";
12
+ import {NumberArray4} from "../math/Vec4";
13
+ import {IDefaultTextureParams, WebGLTextureExt} from "../webgl/Handler";
11
14
 
12
15
  const FADING_RATIO = 15.8;
13
16
 
17
+ export interface ILayerParams {
18
+ properties?: any;
19
+ labelMaxLetters?: number;
20
+ displayInLayerSwitcher?: boolean;
21
+ opacity?: number;
22
+ minZoom?: number;
23
+ maxZoom?: number;
24
+ attribution?: string;
25
+ zIndex?: number;
26
+ isBaseLayer?: boolean;
27
+ defaultTextures?: [IDefaultTextureParams, IDefaultTextureParams];
28
+ visibility?: boolean;
29
+ fading?: boolean;
30
+ height?: number;
31
+ textureFilter?: string;
32
+ isSRGB?: boolean;
33
+ pickingEnabled?: boolean;
34
+ preLoadZoomLevels?: number[];
35
+ extent?: Extent | [[number, number], [number, number]];
36
+ ambient?: string | NumberArray3 | Vec3;
37
+ diffuse?: string | NumberArray3 | Vec3;
38
+ specular?: string | NumberArray3 | Vec3;
39
+ shininess?: number;
40
+ nightTextureCoefficient?: number;
41
+ }
42
+
14
43
  /**
15
- * @classdesc
44
+ * @class
16
45
  * Base class; normally only used for creating subclasses and not instantiated in apps.
17
46
  * A visual representation of raster or vector map data well known as a layer.
18
47
  * @class
@@ -25,118 +54,215 @@ const FADING_RATIO = 15.8;
25
54
  * @param {boolean} [options.isBaseLayer=false] - This is a base layer.
26
55
  * @param {boolean} [options.visibility=true] - Layer visibility.
27
56
  * @param {boolean} [options.displayInLayerSwitcher=true] - Presence of layer in dialog window of LayerSwitcher control.
28
- * @param {boolean} [options.isSRGB=false] - Layer image webgl nternal format.
57
+ * @param {boolean} [options.isSRGB=false] - Layer image webgl internal format.
29
58
  * @param {Extent} [options.extent=[[-180.0, -90.0], [180.0, 90.0]]] - Visible extent.
30
59
  * @param {string} [options.textureFilter="anisotropic"] - Image texture filter. Available values: "nearest", "linear", "mipmap" and "anisotropic".
31
60
  *
32
- * @fires og.Layer#visibilitychange
33
- * @fires og.Layer#add
34
- * @fires og.Layer#remove
35
- * @fires og.layer.Layer#mousemove
36
- * @fires og.layer.Layer#mouseenter
37
- * @fires og.layer.Layer#mouseleave
38
- * @fires og.layer.Layer#lclick
39
- * @fires og.layer.Layer#rclick
40
- * @fires og.layer.Layer#mclick
41
- * @fires og.layer.Layer#ldblclick
42
- * @fires og.layer.Layer#rdblclick
43
- * @fires og.layer.Layer#mdblclick
44
- * @fires og.layer.Layer#lup
45
- * @fires og.layer.Layer#rup
46
- * @fires og.layer.Layer#mup
47
- * @fires og.layer.Layer#ldown
48
- * @fires og.layer.Layer#rdown
49
- * @fires og.layer.Layer#mdown
50
- * @fires og.layer.Layer#lhold
51
- * @fires og.layer.Layer#rhold
52
- * @fires og.layer.Layer#mhold
53
- * @fires og.layer.Layer#mousewheel
54
- * @fires og.layer.Layer#touchmove
55
- * @fires og.layer.Layer#touchstart
56
- * @fires og.layer.Layer#touchend
57
- * @fires og.layer.Layer#doubletouch
61
+ * @fires EventsHandler<LayerEventsList>#visibilitychange
62
+ * @fires EventsHandler<LayerEventsList>#add
63
+ * @fires EventsHandler<LayerEventsList>#remove
64
+ * @fires EventsHandler<LayerEventsList>#mousemove
65
+ * @fires EventsHandler<LayerEventsList>#mouseenter
66
+ * @fires EventsHandler<LayerEventsList>#mouseleave
67
+ * @fires EventsHandler<LayerEventsList>#lclick
68
+ * @fires EventsHandler<LayerEventsList>#rclick
69
+ * @fires EventsHandler<LayerEventsList>#mclick
70
+ * @fires EventsHandler<LayerEventsList>#ldblclick
71
+ * @fires EventsHandler<LayerEventsList>#rdblclick
72
+ * @fires EventsHandler<LayerEventsList>#mdblclick
73
+ * @fires EventsHandler<LayerEventsList>#lup
74
+ * @fires EventsHandler<LayerEventsList>#rup
75
+ * @fires EventsHandler<LayerEventsList>#mup
76
+ * @fires EventsHandler<LayerEventsList>#ldown
77
+ * @fires EventsHandler<LayerEventsList>#rdown
78
+ * @fires EventsHandler<LayerEventsList>#mdown
79
+ * @fires EventsHandler<LayerEventsList>#lhold
80
+ * @fires EventsHandler<LayerEventsList>#rhold
81
+ * @fires EventsHandler<LayerEventsList>#mhold
82
+ * @fires EventsHandler<LayerEventsList>#mousewheel
83
+ * @fires EventsHandler<LayerEventsList>#touchmove
84
+ * @fires EventsHandler<LayerEventsList>#touchstart
85
+ * @fires EventsHandler<LayerEventsList>#touchend
86
+ * @fires EventsHandler<LayerEventsList>#doubletouch
58
87
  */
59
88
  class Layer {
60
- constructor(name, options = {}) {
61
- /**
62
- * Layer user name.
63
- * @public
64
- * @type {string}
65
- */
89
+
90
+ static __counter__: number = 0;
91
+
92
+ /**
93
+ * Uniq identifier.
94
+ * @public
95
+ * @type {number}
96
+ */
97
+ public __id: number;
98
+
99
+ /**
100
+ * Events handler.
101
+ * @public
102
+ * @type {Events}
103
+ */
104
+ public events: EventsHandler<LayerEventsList>;
105
+
106
+ /**
107
+ * Layer user name.
108
+ * @public
109
+ * @type {string}
110
+ */
111
+ public name: string;
112
+
113
+ public properties: any;
114
+
115
+ public displayInLayerSwitcher: boolean;
116
+
117
+ /**
118
+ * Minimal zoom level when layer is visible.
119
+ * @public
120
+ * @type {number}
121
+ */
122
+ public minZoom: number;
123
+
124
+ /**
125
+ * Maximal zoom level when layer is visible.
126
+ * @public
127
+ * @type {number}
128
+ */
129
+ public maxZoom: number;
130
+
131
+ /**
132
+ * Planet node.
133
+ * @public
134
+ * @type {Planet}
135
+ */
136
+ public _planet: Planet | null;
137
+
138
+ public createTexture: Function | null;
139
+
140
+ public nightTextureCoefficient: number;
141
+
142
+ protected _hasImageryTiles: boolean;
143
+
144
+ /**
145
+ * Layer global opacity.
146
+ * @public
147
+ * @type {number}
148
+ */
149
+ protected _opacity: number;
150
+
151
+ /**
152
+ * Layer attribution.
153
+ * @protected
154
+ * @type {string}
155
+ */
156
+ protected _attribution: string;
157
+
158
+ /**
159
+ * Layer z-index.
160
+ * @protected
161
+ * @type {number}
162
+ */
163
+ protected _zIndex: number;
164
+
165
+ /**
166
+ * Base layer type flag.
167
+ * @protected
168
+ * @type {boolean}
169
+ */
170
+ protected _isBaseLayer: boolean;
171
+
172
+ public _defaultTextures: [IDefaultTextureParams | null, IDefaultTextureParams | null];
173
+
174
+ /**
175
+ * Layer visibility.
176
+ * @protected
177
+ * @type {boolean}
178
+ */
179
+ protected _visibility: boolean;
180
+
181
+ public _fading: boolean;
182
+
183
+ protected _fadingFactor: number;
184
+
185
+ public _fadingOpacity: number;
186
+
187
+ /**
188
+ * Height over the ground.
189
+ * @public
190
+ * @type {number}
191
+ */
192
+ public _height: number;
193
+
194
+ protected _textureFilter: string;
195
+
196
+ protected _isSRGB: boolean;
197
+
198
+ public _internalFormat: number | null;
199
+
200
+ /**
201
+ * Visible degrees extent.
202
+ * @public
203
+ * @type {Extent}
204
+ */
205
+ public _extent: Extent;
206
+
207
+ /**
208
+ * Visible mercator extent.
209
+ * @public
210
+ * @type {Extent}
211
+ */
212
+ public _extentMerc: Extent;
213
+
214
+ /**
215
+ * Layer picking color. Assign when added to the planet.
216
+ * @public
217
+ * @type {Vec3}
218
+ */
219
+ public _pickingColor: Vec3;
220
+
221
+ public _pickingEnabled: boolean;
222
+
223
+ protected _isPreloadDone: boolean;
224
+
225
+ protected _preLoadZoomLevels: number[];
226
+
227
+ public _ambient: Float32Array | null;
228
+ public _diffuse: Float32Array | null;
229
+ public _specular: Float32Array | null;
230
+
231
+ public isVector: boolean = false;
232
+
233
+ constructor(name?: string | null, options: ILayerParams = {}) {
234
+
235
+ this.__id = Layer.__counter__++;
236
+
237
+ this.events = createEvents<LayerEventsList>(LAYER_EVENTS, this);
238
+
66
239
  this.name = name || "noname";
67
240
 
68
241
  this.properties = options.properties || {};
69
242
 
70
- this._labelMaxLetters = options.labelMaxLetters;
71
-
72
243
  this.displayInLayerSwitcher =
73
244
  options.displayInLayerSwitcher !== undefined ? options.displayInLayerSwitcher : true;
74
245
 
75
246
  this._hasImageryTiles = true;
76
247
 
77
- /**
78
- * Layer global opacity.
79
- * @public
80
- * @type {number}
81
- */
82
248
  this._opacity = options.opacity || 1.0;
83
249
 
84
- /**
85
- * Minimal zoom level when layer is visibile.
86
- * @public
87
- * @type {number}
88
- */
89
250
  this.minZoom = options.minZoom || 0;
90
251
 
91
- /**
92
- * Maximal zoom level when layer is visibile.
93
- * @public
94
- * @type {number}
95
- */
96
252
  this.maxZoom = options.maxZoom || 50;
97
253
 
98
- /**
99
- * Planet node.
100
- * @protected
101
- * @type {Planet}
102
- */
103
254
  this._planet = null;
104
255
 
105
- /**
106
- * Unic identifier.
107
- * @protected
108
- * @type {number}
109
- */
110
- this._id = Layer.__layersCounter++;
256
+ this.isVector = false;
111
257
 
112
- /**
113
- * Layer attribution.
114
- * @protected
115
- * @type {string}
116
- */
117
258
  this._attribution = options.attribution || "";
118
259
 
119
- /**
120
- * Layer z-index.
121
- * @protected
122
- * @type {number}
123
- */
124
260
  this._zIndex = options.zIndex || 0;
125
261
 
126
- /**
127
- * Base layer type flag.
128
- * @protected
129
- * @type {boolean}
130
- */
131
262
  this._isBaseLayer = options.isBaseLayer || false;
132
263
 
133
264
  this._defaultTextures = options.defaultTextures || [null, null];
134
265
 
135
- /**
136
- * Layer visibility.
137
- * @protected
138
- * @type {boolean}
139
- */
140
266
  this._visibility = options.visibility !== undefined ? options.visibility : true;
141
267
 
142
268
  this._fading = options.fading || false;
@@ -149,19 +275,9 @@ class Layer {
149
275
  this._fadingOpacity = this._opacity;
150
276
  }
151
277
 
152
- /**
153
- * Height over the ground.
154
- * @protected
155
- * @type {number}
156
- */
157
278
  this._height = options.height || 0;
158
279
 
159
- /**
160
- * Visible degrees extent.
161
- * @protected
162
- * @type {Extent}
163
- */
164
- this._extent = null;
280
+ this._extent = new Extent();
165
281
 
166
282
  this.createTexture = null;
167
283
 
@@ -171,12 +287,7 @@ class Layer {
171
287
 
172
288
  this._internalFormat = null;
173
289
 
174
- /**
175
- * Visible mercator extent.
176
- * @protected
177
- * @type {Extent}
178
- */
179
- this._extentMerc = null;
290
+ this._extentMerc = new Extent();
180
291
 
181
292
  // Setting the extent up
182
293
  this.setExtent(
@@ -199,13 +310,6 @@ class Layer {
199
310
 
200
311
  this._preLoadZoomLevels = options.preLoadZoomLevels || [0, 1];
201
312
 
202
- /**
203
- * Events handler.
204
- * @public
205
- * @type {Events}
206
- */
207
- this.events = new Events(options.events ? [...EVENT_NAMES, ...options.events] : EVENT_NAMES, this);
208
-
209
313
  this._ambient = null;
210
314
  this._diffuse = null;
211
315
  this._specular = null;
@@ -226,10 +330,10 @@ class Layer {
226
330
  this._specular = new Float32Array([s.x, s.y, s.z, shininess]);
227
331
  }
228
332
 
229
- this.nightTextureCoefficient = options.nightTextureCoefficient || null;
333
+ this.nightTextureCoefficient = options.nightTextureCoefficient || 1.0;
230
334
  }
231
335
 
232
- set diffuse(rgb) {
336
+ public set diffuse(rgb: string | NumberArray3 | Vec3 | null | undefined) {
233
337
  if (rgb) {
234
338
  let vec = createColorRGB(rgb);
235
339
  this._diffuse = new Float32Array(vec.toArray());
@@ -238,7 +342,7 @@ class Layer {
238
342
  }
239
343
  }
240
344
 
241
- set ambient(rgb) {
345
+ public set ambient(rgb: string | NumberArray3 | Vec3 | null | undefined) {
242
346
  if (rgb) {
243
347
  let vec = createColorRGB(rgb);
244
348
  this._ambient = new Float32Array(vec.toArray());
@@ -247,26 +351,26 @@ class Layer {
247
351
  }
248
352
  }
249
353
 
250
- set specular(rgb) {
354
+ public set specular(rgb: string | NumberArray3 | Vec3 | null | undefined) {
251
355
  if (rgb) {
252
356
  let vec = createColorRGB(rgb);
253
- this._specular = new Float32Array([vec.x, vec.y, vec.y, this._specular[3]]);
357
+ this._specular = new Float32Array([vec.x, vec.y, vec.y, this._specular ? this._specular[3] : 0.0]);
254
358
  } else {
255
359
  this._specular = null;
256
360
  }
257
361
  }
258
362
 
259
- set shininess(v) {
363
+ public set shininess(v: number) {
260
364
  if (this._specular) {
261
365
  this._specular[3] = v;
262
366
  }
263
367
  }
264
368
 
265
- get normalMapCreator() {
266
- return this._normalMapCreator;
267
- }
369
+ // get normalMapCreator() {
370
+ // return this._normalMapCreator;
371
+ // }
268
372
 
269
- static getTMS(x, y, z) {
373
+ static getTMS(x: number, y: number, z: number): { x: number; y: number; z: number } {
270
374
  return {
271
375
  x: x,
272
376
  y: (1 << z) - y - 1,
@@ -274,30 +378,19 @@ class Layer {
274
378
  };
275
379
  }
276
380
 
277
- static getTileIndex(...arr) {
381
+ static getTileIndex(...arr: number[]): string {
278
382
  return arr.join("_");
279
383
  }
280
384
 
281
- static get __layersCounter() {
282
- if (!this.__lcounter && this.__lcounter !== 0) {
283
- this.__lcounter = 0;
284
- }
285
- return this.__lcounter;
286
- }
287
-
288
- static set __layersCounter(n) {
289
- this.__lcounter = n;
290
- }
291
-
292
- get instanceName() {
385
+ public get instanceName(): string {
293
386
  return "Layer";
294
387
  }
295
388
 
296
- get rendererEvents() {
389
+ public get rendererEvents(): EventsHandler<LayerEventsList> {
297
390
  return this.events;
298
391
  }
299
392
 
300
- set opacity(opacity) {
393
+ public set opacity(opacity: number) {
301
394
  if (opacity !== this._opacity) {
302
395
  if (this._fading) {
303
396
  if (opacity > this._opacity) {
@@ -312,12 +405,12 @@ class Layer {
312
405
  }
313
406
  }
314
407
 
315
- set pickingEnabled(picking) {
316
- this._pickingEnabled = picking ? 1.0 : 0.0;
408
+ public set pickingEnabled(picking: boolean) {
409
+ this._pickingEnabled = picking;
317
410
  }
318
411
 
319
- get pickingEnabled() {
320
- return !!this._pickingEnabled;
412
+ public get pickingEnabled(): boolean {
413
+ return this._pickingEnabled;
321
414
  }
322
415
 
323
416
  /**
@@ -326,7 +419,7 @@ class Layer {
326
419
  * @virtual
327
420
  * @returns {boolean} - Imagery tiles flag.
328
421
  */
329
- hasImageryTiles() {
422
+ public hasImageryTiles(): boolean {
330
423
  return this._hasImageryTiles;
331
424
  }
332
425
 
@@ -335,8 +428,19 @@ class Layer {
335
428
  * @public
336
429
  * @returns {string} - Layer object id.
337
430
  */
338
- getID() {
339
- return this._id;
431
+ public getID(): number {
432
+ return this.__id;
433
+ }
434
+
435
+ public get id(): number {
436
+ return this.__id;
437
+ }
438
+
439
+ /**
440
+ * @todo: remove after all
441
+ */
442
+ public get _id(): number {
443
+ return this.__id;
340
444
  }
341
445
 
342
446
  /**
@@ -345,8 +449,8 @@ class Layer {
345
449
  * @param {Layer} layer - Layer instance to compare.
346
450
  * @returns {boolean} - Returns true if the layers is the same instance of the input.
347
451
  */
348
- isEqual(layer) {
349
- return layer && (layer._id === this._id);
452
+ public isEqual(layer: Layer): boolean {
453
+ return layer.__id === this.__id;
350
454
  }
351
455
 
352
456
  /**
@@ -355,21 +459,23 @@ class Layer {
355
459
  * @virtual
356
460
  * @param {Planet} planet - Planet render node.
357
461
  */
358
- _assignPlanet(planet) {
462
+ public _assignPlanet(planet: Planet) {
359
463
 
360
464
  this._planet = planet;
465
+
361
466
  planet._layers.push(this);
362
467
 
363
- if (planet.renderer.isInitialized()) {
468
+ if (planet.renderer && planet.renderer.isInitialized()) {
364
469
  // TODO: webgl1
365
470
  if (this._isSRGB) {
366
- this._internalFormat = planet.renderer.handler.gl.SRGB8_ALPHA8;
471
+ this._internalFormat = planet.renderer.handler.gl!.SRGB8_ALPHA8;
367
472
  } else {
368
- this._internalFormat = planet.renderer.handler.gl.RGBA8;
473
+ this._internalFormat = planet.renderer.handler.gl!.RGBA8;
369
474
  }
370
475
  this.createTexture = planet.renderer.handler.createTexture[this._textureFilter];
371
476
 
372
477
  this.events.on("visibilitychange", planet._onLayerVisibilityChanged, planet);
478
+
373
479
  if (this._isBaseLayer && this._visibility) {
374
480
  planet.setBaseLayer(this);
375
481
  }
@@ -385,8 +491,8 @@ class Layer {
385
491
  }
386
492
  }
387
493
 
388
- get isIdle() {
389
- return this._planet && this._planet._terrainCompletedActivated;
494
+ public get isIdle(): boolean {
495
+ return this._planet && this._planet._terrainCompletedActivated || false;
390
496
  }
391
497
 
392
498
  /**
@@ -394,8 +500,8 @@ class Layer {
394
500
  * @protected
395
501
  * @virtual
396
502
  */
397
- _bindPicking() {
398
- this._planet && this._planet.renderer.assignPickingColor(this);
503
+ protected _bindPicking() {
504
+ this._planet && this._planet.renderer && this._planet.renderer.assignPickingColor<Layer>(this);
399
505
  }
400
506
 
401
507
  /**
@@ -403,7 +509,7 @@ class Layer {
403
509
  * @public
404
510
  * @param {Planet} planet - Adds layer to the planet.
405
511
  */
406
- addTo(planet) {
512
+ public addTo(planet: Planet) {
407
513
  if (!this._planet) {
408
514
  this._assignPlanet(planet);
409
515
  }
@@ -414,13 +520,13 @@ class Layer {
414
520
  * @public
415
521
  * @returns {Layer} -This layer.
416
522
  */
417
- remove() {
523
+ public remove(): this {
418
524
  let p = this._planet;
419
525
  if (p) {
420
526
  //TODO: replace to planet
421
527
  for (let i = 0; i < p._layers.length; i++) {
422
528
  if (this.isEqual(p._layers[i])) {
423
- p.renderer.clearPickingColor(this);
529
+ p.renderer && p.renderer.clearPickingColor(this);
424
530
  p._layers.splice(i, 1);
425
531
  p.updateVisibleLayers();
426
532
  this.clear();
@@ -440,7 +546,7 @@ class Layer {
440
546
  * Clears layer material.
441
547
  * @virtual
442
548
  */
443
- clear() {
549
+ public clear() {
444
550
  if (this._planet) {
445
551
  this._planet._clearLayerMaterial(this);
446
552
  }
@@ -448,9 +554,8 @@ class Layer {
448
554
 
449
555
  /**
450
556
  * Returns planet instance.
451
- * @virtual
452
557
  */
453
- get planet() {
558
+ get planet(): Planet | null {
454
559
  return this._planet;
455
560
  }
456
561
 
@@ -459,19 +564,28 @@ class Layer {
459
564
  * @public
460
565
  * @param {string} html - HTML code that represents layer attribution, it could be just a text.
461
566
  */
462
- setAttribution(html) {
567
+ public setAttribution(html: string) {
463
568
  if (this._attribution !== html) {
464
569
  this._attribution = html;
465
570
  this._planet && this._planet.updateAttributionsList();
466
571
  }
467
572
  }
468
573
 
574
+ /**
575
+ * Gets layer attribution.
576
+ * @public
577
+ * @returns {string} Layer attribution
578
+ */
579
+ public getAttribution(): string {
580
+ return this._attribution;
581
+ }
582
+
469
583
  /**
470
584
  * Sets height over the ground.
471
585
  * @public
472
586
  * @param {number} height - Layer height.
473
587
  */
474
- setHeight(height) {
588
+ public setHeight(height: number) {
475
589
  this._height = height;
476
590
  this._planet && this._planet.updateVisibleLayers();
477
591
  }
@@ -481,7 +595,7 @@ class Layer {
481
595
  * @public
482
596
  * @returns {number} -
483
597
  */
484
- getHeight() {
598
+ public getHeight(): number {
485
599
  return this._height;
486
600
  }
487
601
 
@@ -490,7 +604,7 @@ class Layer {
490
604
  * @public
491
605
  * @param {number} zIndex - Layer z-index.
492
606
  */
493
- setZIndex(zIndex) {
607
+ public setZIndex(zIndex: number) {
494
608
  this._zIndex = zIndex;
495
609
  this._planet && this._planet.updateVisibleLayers();
496
610
  }
@@ -500,7 +614,7 @@ class Layer {
500
614
  * @public
501
615
  * @returns {number} -
502
616
  */
503
- getZIndex() {
617
+ public getZIndex(): number {
504
618
  return this._zIndex;
505
619
  }
506
620
 
@@ -508,10 +622,10 @@ class Layer {
508
622
  * Set zIndex to the maximal value depend on other layers on the planet.
509
623
  * @public
510
624
  */
511
- bringToFront() {
625
+ public bringToFront() {
512
626
  if (this._planet) {
513
- var vl = this._planet.visibleTileLayers;
514
- var l = vl[vl.length - 1];
627
+ let vl = this._planet.visibleTileLayers;
628
+ let l = vl[vl.length - 1];
515
629
  if (!l.isEqual(this)) {
516
630
  this.setZIndex(l.getZIndex() + 1);
517
631
  }
@@ -523,19 +637,19 @@ class Layer {
523
637
  * @public
524
638
  * @returns {boolean} - Base layer flag.
525
639
  */
526
- isBaseLayer() {
640
+ public isBaseLayer(): boolean {
527
641
  return this._isBaseLayer;
528
642
  }
529
643
 
530
644
  /**
531
645
  * Sets base layer type true.
532
646
  * @public
533
- * @param {boolean} flag - Base layer flag.
647
+ * @param {boolean} isBaseLayer -
534
648
  */
535
- setBaseLayer(flag) {
536
- this._isBaseLayer = flag;
649
+ public setBaseLayer(isBaseLayer: boolean) {
650
+ this._isBaseLayer = isBaseLayer;
537
651
  if (this._planet) {
538
- if (!flag && this.isEqual(this._planet.baseLayer)) {
652
+ if (!isBaseLayer && this._planet.baseLayer && this.isEqual(this._planet.baseLayer)) {
539
653
  this._planet.baseLayer = null;
540
654
  }
541
655
  this._planet.updateVisibleLayers();
@@ -548,7 +662,7 @@ class Layer {
548
662
  * @virtual
549
663
  * @param {boolean} visibility - Layer visibility.
550
664
  */
551
- setVisibility(visibility) {
665
+ public setVisibility(visibility: boolean) {
552
666
  if (visibility !== this._visibility) {
553
667
  this._visibility = visibility;
554
668
  if (this._planet) {
@@ -565,22 +679,34 @@ class Layer {
565
679
  }
566
680
  }
567
681
 
568
- _forceMaterialApply(segment) {
682
+ protected _forceMaterialApply(segment: Segment) {
569
683
  let pm = segment.materials,
570
- m = pm[this._id];
684
+ m = pm[this.__id];
571
685
 
572
686
  if (!m) {
573
- m = pm[this._id] = this.createMaterial(segment);
687
+ m = pm[this.__id] = this.createMaterial(segment);
574
688
  }
575
689
 
576
690
  if (!m.isReady) {
577
- this._planet._renderCompleted = false;
691
+ this._planet!._renderCompleted = false;
578
692
  }
579
693
 
580
694
  this.applyMaterial(m, true);
581
695
  }
582
696
 
583
- _preLoadRecursive(node, maxZoom) {
697
+ public clearMaterial(material: Material) {
698
+ //empty
699
+ }
700
+
701
+ public loadMaterial(material: Material, forceLoading: boolean = false) {
702
+ //empty
703
+ }
704
+
705
+ public applyMaterial(m: Material, isForced: boolean = false): NumberArray4 {
706
+ return [0, 0, 1, 1];
707
+ }
708
+
709
+ protected _preLoadRecursive(node: Node, maxZoom: number) {
584
710
  if (node.segment.tileZoom > maxZoom) {
585
711
  return;
586
712
  }
@@ -595,7 +721,7 @@ class Layer {
595
721
  }
596
722
  }
597
723
 
598
- _preLoad() {
724
+ protected _preLoad() {
599
725
  if (this._planet && this._preLoadZoomLevels.length) {
600
726
 
601
727
  let p = this._planet,
@@ -613,7 +739,7 @@ class Layer {
613
739
  * @public
614
740
  * @returns {boolean} - Layer visibility.
615
741
  */
616
- getVisibility() {
742
+ public getVisibility(): boolean {
617
743
  return this._visibility;
618
744
  }
619
745
 
@@ -622,17 +748,21 @@ class Layer {
622
748
  * @public
623
749
  * @param {Extent} extent - Layer visible geographical extent.
624
750
  */
625
- setExtent(extent) {
626
- var sw = extent.southWest.clone(),
751
+ public setExtent(extent: Extent) {
752
+ let sw = extent.southWest.clone(),
627
753
  ne = extent.northEast.clone();
754
+
628
755
  if (sw.lat < mercator.MIN_LAT) {
629
756
  sw.lat = mercator.MIN_LAT;
630
757
  }
758
+
631
759
  if (ne.lat > mercator.MAX_LAT) {
632
760
  ne.lat = mercator.MAX_LAT;
633
761
  }
762
+
634
763
  this._extent = extent.clone();
635
764
  this._extentMerc = new Extent(sw.forwardMercator(), ne.forwardMercator());
765
+
636
766
  this._correctFullExtent();
637
767
  }
638
768
 
@@ -641,15 +771,24 @@ class Layer {
641
771
  * @public
642
772
  * @return {Extent} - Layer geodetic extent.
643
773
  */
644
- getExtent() {
774
+ public getExtent(): Extent {
645
775
  return this._extent;
646
776
  }
647
777
 
778
+ /**
779
+ * Gets layer web-mercator extent.
780
+ * @public
781
+ * @return {Extent} - Layer extent.
782
+ */
783
+ public getExtentMerc(): Extent {
784
+ return this._extentMerc;
785
+ }
786
+
648
787
  /**
649
788
  * Special correction of the whole globe extent.
650
789
  * @protected
651
790
  */
652
- _correctFullExtent() {
791
+ protected _correctFullExtent() {
653
792
  // var e = this._extent,
654
793
  // em = this._extentMerc;
655
794
  // var ENLARGE_MERCATOR_LON = og.mercator.POLE + 50000;
@@ -668,20 +807,18 @@ class Layer {
668
807
  // }
669
808
  }
670
809
 
671
- get opacity() {
810
+ public get opacity(): number {
672
811
  return this._opacity;
673
812
  }
674
813
 
675
- get screenOpacity() {
814
+ public get screenOpacity(): number {
676
815
  return this._fading ? this._fadingOpacity : this._opacity;
677
816
  }
678
817
 
679
- _refreshFadingOpacity() {
680
- var p = this._planet;
818
+ public _refreshFadingOpacity() {
819
+ let p = this._planet!;
681
820
  if (
682
- this._visibility &&
683
- p._viewExtent &&
684
- p._viewExtent.overlaps(this._extent) &&
821
+ this._visibility && p.getViewExtent().overlaps(this._extent) &&
685
822
  p.maxCurrZoom >= this.minZoom &&
686
823
  p.minCurrZoom <= this.maxZoom
687
824
  ) {
@@ -696,47 +833,86 @@ class Layer {
696
833
 
697
834
  return false;
698
835
  } else {
699
- //this._fadingOpacity -= this._opacity / FADING_RATIO;
700
- //if (this._fadingOpacity < 0.0) {
701
836
  this._fadingOpacity = 0.0;
702
- //}
703
837
  return !this._visibility;
704
838
  }
705
839
  }
706
840
 
707
- createMaterial(segment) {
841
+ public createMaterial(segment: Segment): Material {
708
842
  return new Material(segment, this);
709
843
  }
710
844
 
711
- redraw() {
845
+ public redraw() {
712
846
  if (this._planet) {
713
- this._planet._quadTree.traverseTree((n) => {
714
- if (n.segment.materials[this._id]) {
715
- n.segment.materials[this._id].clear();
716
- }
717
- }
718
- );
719
-
720
- this._planet._quadTreeNorth.traverseTree((n) => {
721
- if (n.segment.materials[this._id]) {
722
- n.segment.materials[this._id].clear();
723
- }
724
- }
725
- );
726
847
 
727
- this._planet._quadTreeSouth.traverseTree((n) => {
728
- if (n.segment.materials[this._id]) {
729
- n.segment.materials[this._id].clear();
730
- }
731
- }
732
- );
848
+ this._planet.quadTreeStrategy.clearLayerMaterial(this);
849
+
850
+ // this._planet._quadTree.traverseTree((n: Node) => {
851
+ // if (n.segment.materials[this.__id]) {
852
+ // n.segment.materials[this.__id].clear();
853
+ // }
854
+ // }
855
+ // );
856
+ //
857
+ // this._planet._quadTreeNorth.traverseTree((n: Node) => {
858
+ // if (n.segment.materials[this.__id]) {
859
+ // n.segment.materials[this.__id].clear();
860
+ // }
861
+ // }
862
+ // );
863
+ //
864
+ // this._planet._quadTreeSouth.traverseTree((n: Node) => {
865
+ // if (n.segment.materials[this.__id]) {
866
+ // n.segment.materials[this.__id].clear();
867
+ // }
868
+ // }
869
+ // );
733
870
  }
734
871
  }
872
+
873
+ public abortMaterialLoading(material: Material) {
874
+
875
+ }
876
+
877
+ public abortLoading() {
878
+
879
+ }
735
880
  }
736
881
 
737
- const EVENT_NAMES = [
882
+ export type LayerEventsList = [
883
+ "visibilitychange",
884
+ "add",
885
+ "remove",
886
+ "mousemove",
887
+ "mouseenter",
888
+ "mouseleave",
889
+ "lclick",
890
+ "rclick",
891
+ "mclick",
892
+ "ldblclick",
893
+ "rdblclick",
894
+ "mdblclick",
895
+ "lup",
896
+ "rup",
897
+ "mup",
898
+ "ldown",
899
+ "rdown",
900
+ "mdown",
901
+ "lhold",
902
+ "rhold",
903
+ "mhold",
904
+ "mousewheel",
905
+ "touchmove",
906
+ "touchstart",
907
+ "touchend",
908
+ "doubletouch",
909
+ "touchleave",
910
+ "touchenter"
911
+ ];
912
+
913
+ export const LAYER_EVENTS: LayerEventsList = [
738
914
  /**
739
- * Triggered when layer visibilty chanched.
915
+ * Triggered when layer visibility changed.
740
916
  * @event og.Layer#visibilitychange
741
917
  */
742
918
  "visibilitychange",
@@ -904,4 +1080,4 @@ const EVENT_NAMES = [
904
1080
  "touchenter"
905
1081
  ];
906
1082
 
907
- export { Layer };
1083
+ export {Layer};