@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,12 +1,9 @@
1
- 'use strict';
2
-
3
- import { Ellipsoid } from '../../ellipsoid/Ellipsoid.js';
4
- import { Entity } from '../../entity/Entity.js';
5
- import { Events } from '../../Events.js';
6
- import { Vector } from '../../layer/Vector.js';
7
- import { LonLat } from '../../LonLat.js';
8
- import { Object3d } from '../../Object3d.js';
9
- import { RenderNode } from '../../scene/RenderNode.js';
1
+ import { Entity } from '../../entity/Entity';
2
+ import { Events } from '../../Events';
3
+ import { Vector } from '../../layer/Vector';
4
+ import { LonLat } from '../../LonLat';
5
+ import { Object3d } from '../../Object3d';
6
+ import { RenderNode } from '../../scene/RenderNode';
10
7
 
11
8
  const OUTLINE_COUNT = 120;
12
9
 
@@ -15,7 +12,7 @@ const MIN_SCALE = 0.001;
15
12
  const MAX_SCALE_HEIGHT = 3000.0;
16
13
  const MIN_SCALE_HEIGHT = 19000000.0;
17
14
 
18
- function distanceFormat(v) {
15
+ function distanceFormat(v: number) {
19
16
  if (v > 1000) {
20
17
  return `${(v / 1000).toFixed(1)} km`;
21
18
  } else if (v > 9) {
@@ -26,7 +23,24 @@ function distanceFormat(v) {
26
23
  }
27
24
 
28
25
  class SelectionScene extends RenderNode {
29
- constructor(options = {}) {
26
+ events: Events<string[]>;
27
+ _ignoreTerrain = false;
28
+ _onSelect: any;
29
+ _autoSelectionHide: any;
30
+ _planet: any;
31
+ _startLonLat: any;
32
+ _heading: number;
33
+ _propsLabel: Entity;
34
+ _trackEntity: Entity;
35
+ _cornerEntity: Entity[];
36
+ _trackLayer: Vector;
37
+ _cornersLayer: Vector;
38
+ _onMouseMove_: any;
39
+ _onMouseLdown_: any;
40
+ _onMouseLup_: any;
41
+ _pickedCorner: any;
42
+ _anchorLonLat: any;
43
+ constructor(options: { name?: string, ignoreTerrain?: boolean, onSelect?: any, autoSelectionHide?: boolean, planet?: any } = {}) {
30
44
  super(options.name);
31
45
 
32
46
  this.events = new Events(EVENT_NAMES);
@@ -54,9 +68,9 @@ class SelectionScene extends RenderNode {
54
68
  align: "center",
55
69
  offset: [0, 18]
56
70
  }
57
- });
71
+ } as any);
58
72
 
59
- this._propsLabel.label.setVisibility(false);
73
+ this._propsLabel?.label?.setVisibility(false);
60
74
 
61
75
  this._trackEntity = new Entity({
62
76
  polyline: {
@@ -65,9 +79,9 @@ class SelectionScene extends RenderNode {
65
79
  color: "rgb(455,455,455)",
66
80
  isClosed: false
67
81
  }
68
- });
82
+ } as any);
69
83
 
70
- this._trackEntity.polyline.altitude = 0.01;
84
+ (this._trackEntity as any).polyline.altitude = 0.01;
71
85
 
72
86
  let obj3d = Object3d.createCylinder(1.1, 0, 2.7, 20, 1, true, false, 0, 0, 0)
73
87
 
@@ -83,7 +97,7 @@ class SelectionScene extends RenderNode {
83
97
  properties: {
84
98
  name: "start"
85
99
  }
86
- }),
100
+ } as any),
87
101
  new Entity({
88
102
  geoObject: {
89
103
  scale: 1,
@@ -95,7 +109,7 @@ class SelectionScene extends RenderNode {
95
109
  properties: {
96
110
  name: "end"
97
111
  }
98
- })
112
+ } as any)
99
113
  ];
100
114
 
101
115
  this._trackLayer = new Vector("track", {
@@ -115,36 +129,36 @@ class SelectionScene extends RenderNode {
115
129
  });
116
130
  }
117
131
 
118
- set ignoreTerrain(v) {
132
+ set ignoreTerrain(v: boolean) {
119
133
  this._ignoreTerrain = v;
120
134
  if (v) {
121
135
  //...redraw line
122
136
  }
123
137
  }
124
138
 
125
- bindPlanet(planet) {
139
+ bindPlanet(planet: any) {
126
140
  this._planet = planet;
127
141
  }
128
142
 
129
- init() {
143
+ override init() {
130
144
  this._activate();
131
145
  }
132
146
 
133
- onremove() {
147
+ override onremove() {
134
148
  this._deactivate();
135
149
  }
136
150
 
137
151
  _activate() {
138
- this._propsLabel.label.setVisibility(false);
152
+ this._propsLabel?.label?.setVisibility(false);
139
153
 
140
154
  this._onMouseMove_ = this._onMouseMove.bind(this);
141
- this.renderer.events.on("mousemove", this._onMouseMove_, this);
155
+ this.renderer?.events.on("mousemove", this._onMouseMove_, this);
142
156
 
143
157
  this._onMouseLdown_ = this._onMouseLdown.bind(this);
144
- this.renderer.events.on("ldown", this._onMouseLdown_, this);
158
+ this.renderer?.events.on("ldown", this._onMouseLdown_, this);
145
159
 
146
160
  this._onMouseLup_ = this._onMouseLup.bind(this);
147
- this.renderer.events.on("lup", this._onMouseLup_, this);
161
+ this.renderer?.events.on("lup", this._onMouseLup_, this);
148
162
 
149
163
  this._planet.addLayer(this._trackLayer);
150
164
 
@@ -156,9 +170,9 @@ class SelectionScene extends RenderNode {
156
170
  this._startLonLat = null;
157
171
  this._trackLayer.remove();
158
172
  this._cornersLayer.remove();
159
- this.renderer.events.off("mousemove", this._onMouseMove_);
160
- this.renderer.events.off("ldown", this._onMouseLdown_);
161
- this.renderer.events.off("lup", this._onMouseLup_);
173
+ this.renderer?.events.off("mousemove", this._onMouseMove_);
174
+ this.renderer?.events.off("ldown", this._onMouseLdown_);
175
+ this.renderer?.events.off("lup", this._onMouseLup_);
162
176
 
163
177
  this.clear();
164
178
 
@@ -167,7 +181,7 @@ class SelectionScene extends RenderNode {
167
181
  this._onMouseLup_ = null;
168
182
  }
169
183
 
170
- _onMouseLdown(e) {
184
+ _onMouseLdown(e: any) {
171
185
 
172
186
  //workaround to show pointer, because ogGrabbingPoiner keep !importanti which override pointer style
173
187
  e.renderer.handler.canvas.classList.remove('ogGrabbingPoiner');
@@ -177,15 +191,15 @@ class SelectionScene extends RenderNode {
177
191
  if (!this._startLonLat) {
178
192
 
179
193
 
180
- this._propsLabel.label.setVisibility(false);
194
+ this._propsLabel.label?.setVisibility(false);
181
195
 
182
- this._trackEntity.polyline.setPath3v([]);
196
+ this._trackEntity.polyline?.setPath3v([]);
183
197
 
184
198
 
185
- this._cornerEntity[0].geoObject.setVisibility(true);
186
- this._cornerEntity[1].geoObject.setVisibility(true);
199
+ this._cornerEntity[0].geoObject?.setVisibility(true);
200
+ this._cornerEntity[1].geoObject?.setVisibility(true);
187
201
 
188
- this.renderer.controls.mouseNavigation.deactivate();
202
+ this.renderer?.controls.mouseNavigation?.deactivate();
189
203
  this._startLonLat = this._planet.getLonLatFromPixelTerrain(e);
190
204
 
191
205
  let startPos = this._planet.ellipsoid.lonLatToCartesian(this._startLonLat);
@@ -194,13 +208,13 @@ class SelectionScene extends RenderNode {
194
208
  }
195
209
  }
196
210
 
197
- _onMouseLup(e) {
211
+ _onMouseLup(e: any) {
198
212
  if (this._startLonLat) {
199
213
 
200
214
  this._pickedCorner = null;
201
215
  this._anchorLonLat = null;
202
216
 
203
- this._propsLabel.label.setVisibility(true);
217
+ this._propsLabel.label?.setVisibility(true);
204
218
 
205
219
  if (this._onSelect && typeof this._onSelect === 'function') {
206
220
  let startLonLat = this._cornerEntity[0].getLonLat();
@@ -222,10 +236,10 @@ class SelectionScene extends RenderNode {
222
236
  this._startLonLat = null;
223
237
  }
224
238
  e.renderer.handler.canvas.style.cursor = 'default';
225
- this.renderer.controls.mouseNavigation.activate();
239
+ this.renderer?.controls.mouseNavigation?.activate();
226
240
  }
227
241
 
228
- _drawLine(startLonLat, endLonLat, startPos) {
242
+ _drawLine(startLonLat: any, endLonLat: any, startPos?: any) {
229
243
 
230
244
  if (!startPos) {
231
245
  startPos = this._planet.ellipsoid.lonLatToCartesian(startLonLat);
@@ -253,7 +267,7 @@ class SelectionScene extends RenderNode {
253
267
 
254
268
  path.push(startPos);
255
269
 
256
- let createPath = (sideA, sideB) => {
270
+ let createPath = (sideA: any, sideB: any) => {
257
271
  let dir = sideB.sub(sideA);
258
272
  let dist = dir.length();
259
273
  dir.normalize();
@@ -268,7 +282,7 @@ class SelectionScene extends RenderNode {
268
282
  createPath(corners[i], corners[i + 1]);
269
283
  }
270
284
 
271
- this._trackEntity.polyline.setPath3v([path]);
285
+ this._trackEntity.polyline?.setPath3v([path]);
272
286
 
273
287
  if (this._ignoreTerrain) {
274
288
  // this._propsLabel.setCartesian3v(path[Math.floor(path.length / 2)]);
@@ -276,9 +290,9 @@ class SelectionScene extends RenderNode {
276
290
  }
277
291
  }
278
292
 
279
- _onMouseMove(e) {
293
+ _onMouseMove(e: any) {
280
294
  if (this._startLonLat) {
281
- this._propsLabel.label.setVisibility(true);
295
+ this._propsLabel.label?.setVisibility(true);
282
296
  let endLonLat = this._planet.getLonLatFromPixelTerrain(e);
283
297
  if (!endLonLat)
284
298
  return;
@@ -287,22 +301,22 @@ class SelectionScene extends RenderNode {
287
301
  }
288
302
 
289
303
  clear() {
290
- this._trackEntity.polyline.clear();
291
- this._cornerEntity[0].geoObject.setVisibility(false);
292
- this._cornerEntity[1].geoObject.setVisibility(false);
304
+ this._trackEntity.polyline?.clear();
305
+ this._cornerEntity[0].geoObject?.setVisibility(false);
306
+ this._cornerEntity[1].geoObject?.setVisibility(false);
293
307
  }
294
308
 
295
- frame() {
296
- let t = this._trackEntity.polyline.getPath3v()[0];
309
+ override frame() {
310
+ let t = this._trackEntity.polyline?.getPath3v()[0];
297
311
  if (t) {
298
312
  if (!this._ignoreTerrain) {
299
313
  let res = 0;
300
314
  for (let i = 0, len = t.length - 1; i < len; i++) {
301
- res += t[i + 1].distance(t[i]);
315
+ res += (t[i + 1] as any).distance(t[i]);
302
316
  }
303
317
 
304
- this._propsLabel.setCartesian3v(t[Math.floor(t.length / 2)]);
305
- this._propsLabel.label.setText(`${distanceFormat(res)}, ${Math.round(this._heading)} deg`);
318
+ this._propsLabel.setCartesian3v(t[Math.floor(t.length / 2)] as any);
319
+ this._propsLabel.label?.setText(`${distanceFormat(res)}, ${Math.round(this._heading)} deg`);
306
320
  }
307
321
  }
308
322
  }
@@ -1,11 +1,16 @@
1
- 'use strict';
2
-
3
- import { Dialog } from "../../ui/Dialog.js";
4
- import { ToggleButton } from "../../ui/ToggleButton.js";
5
- import { Control } from '../Control.js';
6
- import { TimelineView } from './TimelineView.js';
1
+ import {Dialog} from "../../ui/Dialog";
2
+ import {ToggleButton} from "../../ui/ToggleButton";
3
+ import {Control, IControlParams} from '../Control';
4
+ import {TimelineView} from './TimelineView';
5
+
6
+ interface ITimelineControlParams extends IControlParams {
7
+ name?: string;
8
+ current?: Date;
9
+ rangeStart?: Date;
10
+ rangeEnd?: Date;
11
+ }
7
12
 
8
- function addHours(date, hours) {
13
+ function addHours(date: Date, hours: number): Date {
9
14
  const temp = new Date(date);
10
15
  temp.setHours(temp.getHours() + hours);
11
16
  return temp;
@@ -20,11 +25,15 @@ const ICON_BUTTON_SVG = `<?xml version="1.0" encoding="utf-8"?>
20
25
  </svg>`;
21
26
 
22
27
  class TimelineControl extends Control {
23
- constructor(options = {}) {
24
- if (!options.name || options.name === "") {
25
- options.name = "timeline";
26
- }
27
- super(options);
28
+ protected _timelineView: TimelineView;
29
+ protected _toggleBtn: ToggleButton;
30
+ protected _dialog: Dialog<null>;
31
+
32
+ constructor(options: ITimelineControlParams = {}) {
33
+ super({
34
+ name: "timeline",
35
+ ...options
36
+ });
28
37
 
29
38
  let currentDate = options.current || new Date();
30
39
  let startDate = options.rangeStart || addHours(currentDate, -12);
@@ -54,47 +63,47 @@ class TimelineControl extends Control {
54
63
  maxHeight: 110
55
64
  });
56
65
 
57
- this._dialog.on("visibility", (v) => {
66
+ this._dialog.events.on("visibility", (v: boolean) => {
58
67
  this._toggleBtn.setActive(v);
59
68
  });
60
69
  }
61
70
 
62
- oninit() {
71
+ public override oninit() {
63
72
 
64
- let $container = this.renderer.div;
73
+ let $container = this.renderer!.div!;
65
74
 
66
75
  this._toggleBtn.appendTo($container);
67
76
  this._dialog.appendTo($container);
68
77
 
69
- this._toggleBtn.on("change", (isActive) => {
78
+ this._toggleBtn.events.on("change", (isActive: boolean) => {
70
79
  this._dialog.setVisibility(isActive);
71
80
  if (isActive) {
72
81
  this._timelineView.resize();
73
82
  }
74
83
  });
75
84
 
76
- this._timelineView.appendTo(this._dialog.container);
85
+ this._timelineView.appendTo(this._dialog.container!);
77
86
 
78
- this._timelineView.on("setcurrent", (d) => {
79
- this.renderer.handler.defaultClock.setDate(d);
87
+ this._timelineView.events.on("setcurrent", (d: Date) => {
88
+ this.renderer && this.renderer.handler.defaultClock.setDate(d);
80
89
  });
81
90
 
82
- this._timelineView.on("startdrag", () => {
83
- this.renderer.controls.mouseNavigation.deactivate();
91
+ this._timelineView.events.on("startdrag", () => {
92
+ this.renderer && this.renderer.controls.mouseNavigation.deactivate();
84
93
  });
85
94
 
86
- this._timelineView.on("stopdrag", (e) => {
87
- this.renderer.controls.mouseNavigation.activate();
95
+ this._timelineView.events.on("stopdrag", () => {
96
+ this.renderer && this.renderer.controls.mouseNavigation.activate();
88
97
  });
89
98
 
90
- this._timelineView.on("startdragcurrent", () => {
91
- this.renderer.controls.mouseNavigation.deactivate();
99
+ this._timelineView.events.on("startdragcurrent", () => {
100
+ this.renderer && this.renderer.controls.mouseNavigation.deactivate();
92
101
  });
93
102
 
94
- this._timelineView.on("stopdragcurrent", () => {
95
- this.renderer.controls.mouseNavigation.activate();
103
+ this._timelineView.events.on("stopdragcurrent", () => {
104
+ this.renderer && this.renderer.controls.mouseNavigation.activate();
96
105
  });
97
106
  }
98
107
  }
99
108
 
100
- export { TimelineControl };
109
+ export {TimelineControl};
@@ -1,12 +1,36 @@
1
- 'use strict';
1
+ import {EventsHandler, createEvents} from '../../Events';
2
+ import {addSeconds} from "./timelineUtils";
2
3
 
3
- import { Events } from '../../Events.js';
4
- import { addSeconds } from "./timelineUtils.js";
4
+ type TimelineEventsList = ["change", "current"];
5
+
6
+ const TIMELINE_EVENTS: TimelineEventsList = ["change", "current"/*, "tick"*/];
7
+
8
+ interface ITimelineParams {
9
+ current?: Date;
10
+ rangeStart?: Date;
11
+ rangeEnd?: Date;
12
+ minDate?: Date | null;
13
+ maxDate?: Date | null;
14
+ multiplier?: number
15
+ }
5
16
 
6
17
  class TimelineModel {
7
- constructor(options = {}) {
18
+ public events: EventsHandler<TimelineEventsList>;
19
+ protected _current: Date;
20
+ protected _rangeStart: Date;
21
+ protected _rangeEnd: Date;
22
+ protected _range: number;
23
+ protected _minDate: Date | null;
24
+ protected _maxDate: Date | null;
25
+ protected _requestAnimationFrameId: number;
26
+ protected _prevNow: number;
27
+
28
+ public multiplier: number;
29
+ public dt: number;
30
+
31
+ constructor(options: ITimelineParams = {}) {
8
32
 
9
- this._events = new Events(["change", "current"/*, "tick"*/]);
33
+ this.events = createEvents(TIMELINE_EVENTS);
10
34
 
11
35
  this._current = options.current || new Date();
12
36
  this._rangeStart = options.rangeStart || new Date();
@@ -23,88 +47,79 @@ class TimelineModel {
23
47
  this.dt = 0;
24
48
  }
25
49
 
26
- on(eventName, callback, sender) {
27
- return this._events.on(eventName, callback, sender);
28
- }
29
-
30
- off(eventName, callback) {
31
- return this._events.off(eventName, callback);
32
- }
33
-
34
- play() {
50
+ public play() {
35
51
  if (!this._requestAnimationFrameId) {
36
52
  this._prevNow = window.performance.now();
37
53
  this._animationFrameCallback();
38
54
  }
39
55
  }
40
56
 
41
- stop() {
57
+ public stop() {
42
58
  if (this._requestAnimationFrameId) {
43
59
  window.cancelAnimationFrame(this._requestAnimationFrameId);
44
60
  this._requestAnimationFrameId = 0;
45
61
  }
46
62
  }
47
63
 
48
- stopped() {
64
+ public stopped() {
49
65
  return this._requestAnimationFrameId == 0;
50
66
  }
51
67
 
52
- _animationFrameCallback() {
68
+ protected _animationFrameCallback() {
53
69
  this._requestAnimationFrameId = window.requestAnimationFrame(() => {
54
70
  this._frame();
55
71
  this._animationFrameCallback();
56
72
  });
57
73
  }
58
74
 
59
- _frame() {
75
+ protected _frame() {
60
76
  let now = window.performance.now();
61
77
  this.dt = now - this._prevNow;
62
78
  this._prevNow = now;
63
79
 
64
80
  this.current = new Date(this.currentTime + this.dt * this.multiplier);
65
81
 
66
- // // @ts-ignore
67
82
  // this._events.dispatch(this._events.tick, this._current);
68
83
  }
69
84
 
70
- get range() {
85
+ public get range(): number {
71
86
  return this._range
72
87
  }
73
88
 
74
- set(rangeStart, rangeEnd) {
89
+ public set(rangeStart: Date, rangeEnd: Date) {
75
90
  if (rangeStart !== this._rangeStart || rangeEnd !== this._rangeEnd) {
76
91
  this._rangeStart = rangeStart;
77
92
  this._rangeEnd = rangeEnd;
78
93
  this._range = this._rangeEnd.getTime() - this._rangeStart.getTime();
79
- this._events.dispatch(this._events.change, rangeStart, rangeEnd);
94
+ this.events.dispatch(this.events.change, rangeStart, rangeEnd);
80
95
  }
81
96
  }
82
97
 
83
- get current() {
98
+ public get current(): Date {
84
99
  return this._current;
85
100
  }
86
101
 
87
- get rangeStart() {
102
+ public get rangeStart(): Date {
88
103
  return this._rangeStart;
89
104
  }
90
105
 
91
- get rangeEnd() {
106
+ public get rangeEnd(): Date {
92
107
  return this._rangeEnd;
93
108
  }
94
109
 
95
- get rangeStartTime() {
110
+ public get rangeStartTime(): number {
96
111
  return this._rangeStart.getTime();
97
112
  }
98
113
 
99
- get rangeEndTime() {
114
+ public get rangeEndTime(): number {
100
115
  return this._rangeEnd.getTime();
101
116
  }
102
117
 
103
- get currentTime() {
118
+ public get currentTime(): number {
104
119
  return this._current.getTime();
105
120
  }
106
121
 
107
- set current(current) {
122
+ public set current(current: Date) {
108
123
  if (current !== this._current) {
109
124
  if (this._maxDate && current > this._maxDate) {
110
125
  this._current = this._maxDate;
@@ -113,25 +128,25 @@ class TimelineModel {
113
128
  } else {
114
129
  this._current = current;
115
130
  }
116
- this._events.dispatch(this._events.current, this._current);
131
+ this.events.dispatch(this.events.current, this._current);
117
132
  }
118
133
  }
119
134
 
120
- set rangeStart(date) {
135
+ public set rangeStart(date: Date) {
121
136
  if (date !== this._rangeStart) {
122
137
  this._rangeStart = date;
123
138
  this._range = this._rangeEnd.getTime() - this._rangeStart.getTime();
124
- this._events.dispatch(this._events.change, date);
139
+ this.events.dispatch(this.events.change, date);
125
140
  }
126
141
  }
127
142
 
128
- set rangeEnd(date) {
143
+ public set rangeEnd(date: Date) {
129
144
  if (date !== this._rangeEnd) {
130
145
  this._rangeEnd = date;
131
146
  this._range = this._rangeEnd.getTime() - this._rangeStart.getTime();
132
- this._events.dispatch(this._events.change, date);
147
+ this.events.dispatch(this.events.change, date);
133
148
  }
134
149
  }
135
150
  }
136
151
 
137
- export { TimelineModel };
152
+ export {TimelineModel};