@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,16 +1,25 @@
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 { Vec2 } from '../../math/Vec2.js';
8
- import { Object3d } from '../../Object3d.js';
9
- import { RenderNode } from '../../scene/RenderNode.js';
1
+ import {Entity} from '../../entity/Entity';
2
+ import {createEvents, EventsHandler} from '../../Events';
3
+ import {LonLat} from "../../LonLat";
4
+ import {Object3d} from '../../Object3d';
5
+ import {Planet} from "../../scene/Planet";
6
+ import {RenderNode} from '../../scene/RenderNode';
7
+ import {Vector} from '../../layer/Vector';
8
+ import {Vec2} from '../../math/Vec2';
9
+ import {Vec3} from '../../math/Vec3';
10
+ import {IMouseState} from "../../renderer/RendererEvents";
11
+ import {Ellipsoid} from "../../ellipsoid/Ellipsoid";
12
+ import {ILabelParams} from "../../entity/Label";
10
13
 
11
14
  const OUTLINE_COUNT = 120;
12
15
 
13
- export function distanceFormat(v) {
16
+ export interface IRulerSceneParams {
17
+ name?: string;
18
+ ignoreTerrain?: boolean;
19
+ planet?: Planet;
20
+ }
21
+
22
+ export const distanceFormat = (v: number): string => {
14
23
  if (v > 1000) {
15
24
  return `${(v / 1000).toFixed(1)} km`;
16
25
  } else if (v > 9) {
@@ -20,16 +29,16 @@ export function distanceFormat(v) {
20
29
  }
21
30
  }
22
31
 
23
- let obj3d = Object3d.createCylinder(1.1, 0, 2.7, 20, 1, true, false, 0, 0, 0)
32
+ let obj3d = Object3d.createCylinder(1.1, 0, 2.7, 20, 1, true, false, 0, 0, 0);
24
33
 
25
- const LABEL_OPTIONS = {
34
+ const LABEL_OPTIONS: ILabelParams = {
26
35
  text: "",
27
36
  size: 11,
28
37
  color: "rgba(455,455,455,1.0)",
29
38
  outlineColor: "rgba(0,0,0,0.34)",
30
39
  outline: 0.23,
31
40
  align: "center",
32
- offset: [0, 20]
41
+ offset: [0, 20, 0]
33
42
  };
34
43
  const RULER_CORNER_OPTIONS = {
35
44
  scale: 1,
@@ -39,11 +48,60 @@ const RULER_CORNER_OPTIONS = {
39
48
  object3d: obj3d
40
49
  };
41
50
 
51
+ type RulerSceneEventsList = [
52
+ "add",
53
+ "remove",
54
+ "mousemove",
55
+ "mouseenter",
56
+ "mouseleave",
57
+ "lclick",
58
+ "rclick",
59
+ "mclick",
60
+ "ldblclick",
61
+ "rdblclick",
62
+ "mdblclick",
63
+ "lup",
64
+ "rup",
65
+ "mup",
66
+ "ldown",
67
+ "rdown",
68
+ "mdown",
69
+ "lhold",
70
+ "rhold",
71
+ "mhold",
72
+ "mousewheel",
73
+ "touchmove",
74
+ "touchstart",
75
+ "touchend",
76
+ "doubletouch",
77
+ "touchleave",
78
+ "touchenter"
79
+ ];
80
+
42
81
  class RulerScene extends RenderNode {
43
- constructor(options = {}) {
82
+ public events: EventsHandler<RulerSceneEventsList>;
83
+ protected _ignoreTerrain: boolean;
84
+ protected _planet: Planet | null;
85
+ protected _startLonLat: LonLat | null;
86
+ protected _preventClick: boolean;
87
+ protected _stopDrawing: boolean;
88
+ protected _pickedCorner: Entity | null;
89
+ protected _startPos: Vec2 | null;
90
+ protected _startClick: Vec2;
91
+ protected _heading: number;
92
+ protected _trackLayer: Vector;
93
+ protected _labelLayer: Vector;
94
+ protected _cornersLayer: Vector;
95
+ protected _cornerEntity: Entity[];
96
+ protected _propsLabel: Entity;
97
+ protected _trackEntity: Entity;
98
+ protected _anchorLonLat: LonLat | null;
99
+ protected _timeout: any;
100
+
101
+ constructor(options: IRulerSceneParams = {}) {
44
102
  super(options.name);
45
103
 
46
- this.events = new Events(EVENT_NAMES);
104
+ this.events = createEvents(RULERSCENE_EVENTS);
47
105
 
48
106
  this._ignoreTerrain = options.ignoreTerrain != undefined ? options.ignoreTerrain : true;
49
107
 
@@ -57,6 +115,8 @@ class RulerScene extends RenderNode {
57
115
  this._startPos = null;
58
116
  this._startClick = new Vec2();
59
117
 
118
+ this._anchorLonLat = null;
119
+
60
120
  this._heading = 0;
61
121
 
62
122
  this._trackLayer = new Vector("track", {
@@ -82,20 +142,23 @@ class RulerScene extends RenderNode {
82
142
  scaleByDistance: [100, 4000000, 1.0],
83
143
  pickingScale: 2
84
144
  });
85
- }
86
145
 
87
- set ignoreTerrain(v) {
88
- this._ignoreTerrain = v;
89
- if (v) {
90
- //...redraw line
91
- }
92
- }
146
+ this._propsLabel = new Entity({
147
+ name: 'propsLabel',
148
+ label: LABEL_OPTIONS
149
+ });
93
150
 
94
- bindPlanet(planet) {
95
- this._planet = planet;
96
- }
151
+ this._trackEntity = new Entity({
152
+ polyline: {
153
+ path3v: [],
154
+ thickness: 4.8,
155
+ color: "rgb(255,131,0)",
156
+ isClosed: false
157
+ }
158
+ });
159
+
160
+ this._trackEntity.polyline!.altitude = 0.01;
97
161
 
98
- _createCorners() {
99
162
  this._cornerEntity = [
100
163
  new Entity({
101
164
  geoObject: RULER_CORNER_OPTIONS,
@@ -110,69 +173,55 @@ class RulerScene extends RenderNode {
110
173
  }
111
174
  })
112
175
  ];
113
- this._cornersLayer.addEntities(this._cornerEntity)
114
176
  }
115
177
 
116
- init() {
117
-
118
- this._propsLabel = new Entity({
119
- 'name': 'propsLabel',
120
- 'label': LABEL_OPTIONS
121
- });
178
+ public set ignoreTerrain(v: boolean) {
179
+ this._ignoreTerrain = v;
180
+ if (v) {
181
+ //...redraw line
182
+ }
183
+ }
122
184
 
123
- this._trackEntity = new Entity({
124
- polyline: {
125
- path3v: [],
126
- thickness: 4.8,
127
- color: "rgb(255,131,0)",
128
- isClosed: false
129
- }
130
- });
185
+ public bindPlanet(planet: Planet) {
186
+ this._planet = planet;
187
+ }
131
188
 
132
- this._trackEntity.polyline.altitude = 0.01;
189
+ protected _createCorners() {
190
+ this._cornersLayer.addEntities(this._cornerEntity)
191
+ }
133
192
 
193
+ public override init() {
134
194
  this._createCorners();
135
195
  this._trackLayer.addEntities([this._trackEntity]);
136
196
  this._labelLayer.addEntities([this._propsLabel]);
137
- this._planet.addLayer(this._labelLayer);
138
- this._planet.addLayer(this._trackLayer);
139
- this._planet.addLayer(this._cornersLayer);
197
+ this._planet!.addLayer(this._labelLayer);
198
+ this._planet!.addLayer(this._trackLayer);
199
+ this._planet!.addLayer(this._cornersLayer);
140
200
  this._activate();
141
201
  }
142
202
 
143
- onremove() {
203
+ public override onremove() {
144
204
  this._deactivate();
145
205
  }
146
206
 
147
- _activate() {
148
-
149
- this._propsLabel.label.setVisibility(false);
150
- this._onLclick_ = this._onLclick.bind(this);
151
- this.renderer.events.on("lclick", this._onLclick_, this);
152
- this._onMouseMove_ = this._onMouseMove.bind(this);
153
- this.renderer.events.on("mousemove", this._onMouseMove_, this);
154
- this._onLdblclick_ = this._onLdblclick.bind(this);
155
- this.renderer.events.on("ldblclick", this._onLdblclick_, this);
156
-
157
- this._onLUp_ = this._onLUp.bind(this);
158
- this.renderer.events.on("lup", this._onLUp_, this);
207
+ public _activate() {
159
208
 
160
- this._onCornerEnter_ = this._onCornerEnter.bind(this);
161
- this._cornersLayer.events.on("mouseenter", this._onCornerEnter_, this);
162
-
163
- this._onCornerLeave_ = this._onCornerLeave.bind(this);
164
- this._cornersLayer.events.on("mouseleave", this._onCornerLeave_, this);
209
+ this._propsLabel.label!.setVisibility(false);
210
+ this.setVisibility(false);
165
211
 
166
- this._onCornerLdown_ = this._onCornerLdown.bind(this);
167
- this._cornersLayer.events.on("ldown", this._onCornerLdown_, this);
212
+ this.renderer!.events.on("lclick", this._onLclick, this);
213
+ this.renderer!.events.on("mousemove", this._onMouseMove, this);
214
+ this.renderer!.events.on("ldblclick", this._onLdblclick, this);
215
+ this.renderer!.events.on("lup", this._onLUp, this);
168
216
 
169
- this._onCornerLup_ = this._onCornerLup.bind(this);
217
+ this._cornersLayer.events.on("mouseenter", this._onCornerEnter, this);
218
+ this._cornersLayer.events.on("mouseleave", this._onCornerLeave, this);
219
+ this._cornersLayer.events.on("ldown", this._onCornerLdown, this);
170
220
  this._cornersLayer.events.on("lup", this._onCornerLup, this);
171
221
 
172
- this.setVisibility(false);
173
222
  }
174
223
 
175
- _deactivate() {
224
+ protected _deactivate() {
176
225
  this._startLonLat = null;
177
226
  this._preventClick = false;
178
227
  this._stopDrawing = false;
@@ -180,32 +229,24 @@ class RulerScene extends RenderNode {
180
229
  // this._trackLayer.remove();
181
230
  // this._cornersLayer.remove();
182
231
 
183
- this.renderer.events.off("lclick", this._onLclick_);
184
- this.renderer.events.off("mousemove", this._onMouseMove_);
185
- this.renderer.events.off("lup", this._onLUp_);
232
+ this.renderer!.events.off("lclick", this._onLclick);
233
+ this.renderer!.events.off("mousemove", this._onMouseMove);
234
+ this.renderer!.events.off("lup", this._onLUp);
186
235
 
187
- this._cornersLayer.events.off("mouseenter", this._onCornerEnter_);
188
- this._cornersLayer.events.off("mouseleave", this._onCornerLeave_);
189
- this._cornersLayer.events.off("ldown", this._onCornerLdown_);
190
- this._cornersLayer.events.off("lup", this._onCornerLup_);
236
+ this._cornersLayer.events.off("mouseenter", this._onCornerEnter);
237
+ this._cornersLayer.events.off("mouseleave", this._onCornerLeave);
238
+ this._cornersLayer.events.off("ldown", this._onCornerLdown);
239
+ this._cornersLayer.events.off("lup", this._onCornerLup);
191
240
 
192
241
  this.clear();
193
-
194
- this._onLclick_ = null;
195
- this._onMouseMove_ = null;
196
- this._onLUp_ = null;
197
- this._onCornerLeave_ = null;
198
- this._onCornerEnter_ = null;
199
- this._onCornerLdown_ = null;
200
- this._onCornerLup_ = null;
201
242
  }
202
243
 
203
- _onCornerLdown(e) {
244
+ protected _onCornerLdown = (e: IMouseState) => {
204
245
  if (!this._startLonLat) {
205
- this.renderer.controls.mouseNavigation.deactivate();
246
+ this.renderer?.controls.mouseNavigation?.deactivate();
206
247
  this._startClick.set(e.x, e.y);
207
248
  let coords = e.pickingObject.getCartesian();
208
- this._startPos = this._planet.getPixelFromCartesian(coords);
249
+ this._startPos = this._planet!.getPixelFromCartesian(coords);
209
250
  this._pickedCorner = e.pickingObject;
210
251
  if (e.pickingObject.properties.name == "start") {
211
252
  this._anchorLonLat = this._cornerEntity[1].getLonLat().clone();
@@ -215,44 +256,45 @@ class RulerScene extends RenderNode {
215
256
  }
216
257
  }
217
258
 
218
- _onLUp() {
259
+ protected _onLUp = () => {
219
260
  if (this._pickedCorner) {
220
- this.renderer.controls.mouseNavigation.activate();
261
+ this.renderer!.controls.mouseNavigation?.activate();
221
262
  this._pickedCorner = null;
222
263
  this._anchorLonLat = null;
223
264
  }
224
265
  }
225
266
 
226
- _onCornerLup() {
267
+ protected _onCornerLup = () => {
227
268
  this._onLUp();
228
269
  }
229
270
 
230
- _onCornerEnter(e) {
231
- e.renderer.handler.canvas.style.cursor = "pointer";
271
+ protected _onCornerEnter = (e: IMouseState) => {
272
+ e.renderer.handler.canvas!.style.cursor = "pointer";
232
273
  }
233
274
 
234
- _onCornerLeave(e) {
235
- e.renderer.handler.canvas.style.cursor = "default";
275
+ protected _onCornerLeave = (e: IMouseState) => {
276
+ e.renderer.handler.canvas!.style.cursor = "default";
236
277
  }
237
278
 
238
- _onLdblclick() {
279
+ protected _onLdblclick = () => {
239
280
  this._preventClick = true;
240
281
  }
241
282
 
242
- setVisibility(visibility) {
283
+ public setVisibility(visibility: boolean) {
243
284
  this._cornersLayer.setVisibility(visibility);
244
285
  this._trackLayer.setVisibility(visibility);
245
286
  this._labelLayer.setVisibility(visibility);
246
287
  }
247
288
 
248
- _onLclick(e) {
249
- let startLonLat = this._planet.getLonLatFromPixelTerrain(e);
289
+ protected _onLclick = (e: IMouseState) => {
290
+ let startLonLat = this._planet!.getLonLatFromPixelTerrain(e.pos);
291
+ if (!startLonLat) return;
250
292
  this._timeout = setTimeout(() => {
251
293
  if (!this._preventClick) {
252
294
  if (!this._startLonLat) {
253
295
  this.setVisibility(true);
254
296
  this._stopDrawing = false;
255
- this._startLonLat = startLonLat;
297
+ this._startLonLat = startLonLat!;
256
298
  } else {
257
299
  this._startLonLat = null;
258
300
  }
@@ -267,15 +309,15 @@ class RulerScene extends RenderNode {
267
309
  }
268
310
  }
269
311
 
270
- _drawLine(startLonLat, endLonLat, startPos) {
312
+ protected _drawLine(startLonLat: LonLat, endLonLat: LonLat, startPos?: Vec3) {
271
313
 
272
314
  if (!startPos) {
273
- startPos = this._planet.ellipsoid.lonLatToCartesian(startLonLat);
315
+ startPos = this._planet!.ellipsoid.lonLatToCartesian(startLonLat);
274
316
  }
275
317
 
276
- let endPos = this._planet.ellipsoid.lonLatToCartesian(endLonLat);
318
+ let endPos = this._planet!.ellipsoid.lonLatToCartesian(endLonLat);
277
319
 
278
- let res = this._planet.ellipsoid.inverse(startLonLat, endLonLat);
320
+ let res = this._planet!.ellipsoid.inverse(startLonLat, endLonLat);
279
321
  let length = res.distance;
280
322
  this._heading = res.initialAzimuth;
281
323
 
@@ -290,43 +332,43 @@ class RulerScene extends RenderNode {
290
332
  }
291
333
  path.push(endPos);
292
334
 
293
- this._trackEntity.polyline.setPath3v([path]);
335
+ this._trackEntity.polyline!.setPath3v([path]);
294
336
 
295
337
  if (this._ignoreTerrain) {
296
338
  this._propsLabel.setCartesian3v(path[Math.floor(path.length / 2)]);
297
- this._propsLabel.label.setText(`${distanceFormat(length)}, ${Math.round(this._heading)} deg`);
339
+ this._propsLabel.label!.setText(`${distanceFormat(length)}, ${Math.round(this._heading)} deg`);
298
340
  }
299
341
  }
300
342
 
301
- _onMouseMove(e) {
343
+ protected _onMouseMove = (e: IMouseState) => {
302
344
  if (this._startLonLat && !this._stopDrawing) {
303
- this._propsLabel.label.setVisibility(true);
304
- let endLonLat = this._planet.getLonLatFromPixelTerrain(e);
345
+ this._propsLabel.label!.setVisibility(true);
346
+ let endLonLat = this._planet!.getLonLatFromPixelTerrain(e.pos);
305
347
  if (!endLonLat) return;
306
348
  this._drawLine(this._startLonLat, endLonLat);
307
349
  } else if (this._pickedCorner) {
308
- let newLonLat = this._planet.getLonLatFromPixelTerrain(e);
350
+ let newLonLat = this._planet!.getLonLatFromPixelTerrain(e.pos);
309
351
  if (newLonLat) {
310
352
  if (this._pickedCorner.properties.name === "start") {
311
- this._drawLine(newLonLat, this._anchorLonLat);
353
+ this._drawLine(newLonLat, this._anchorLonLat!);
312
354
  } else {
313
- this._drawLine(this._anchorLonLat, newLonLat);
355
+ this._drawLine(this._anchorLonLat!, newLonLat);
314
356
  }
315
357
  }
316
358
  }
317
359
  }
318
360
 
319
- clear() {
361
+ public clear() {
320
362
  this._trackEntity.remove();
321
363
  this._cornerEntity[0].remove();
322
364
  this._cornerEntity[1].remove();
323
365
  this._propsLabel.remove();
324
- this._planet.removeLayer(this._trackLayer);
325
- this._planet.removeLayer(this._cornersLayer);
366
+ this._planet!.removeLayer(this._trackLayer);
367
+ this._planet!.removeLayer(this._cornersLayer);
326
368
  }
327
369
 
328
- isCornersPositionChanged() {
329
- let t = this._trackEntity.polyline.getPath3v()[0];
370
+ public isCornersPositionChanged(): boolean {
371
+ let t = this._trackEntity.polyline!.getPath3v()[0] as Vec3[];
330
372
  if (t) {
331
373
  const startPos = t[0].clone(),
332
374
  endPos = t[t.length - 1].clone();
@@ -336,8 +378,8 @@ class RulerScene extends RenderNode {
336
378
  return false
337
379
  }
338
380
 
339
- frame() {
340
- let t = this._trackEntity.polyline.getPath3v()[0];
381
+ public override frame() {
382
+ let t = this._trackEntity.polyline!.getPath3v()[0] as Vec3[];
341
383
  if (t) {
342
384
  const startPos = t[0].clone(),
343
385
  endPos = t[t.length - 1].clone();
@@ -351,18 +393,18 @@ class RulerScene extends RenderNode {
351
393
  res += t[i + 1].distance(t[i]);
352
394
  }
353
395
  this._propsLabel.setCartesian3v(t[Math.floor(t.length / 2)]);
354
- this._propsLabel.label.setText(`${distanceFormat(res)}, ${Math.round(this._heading)} deg`);
396
+ this._propsLabel.label!.setText(`${distanceFormat(res)}, ${Math.round(this._heading)} deg`);
355
397
  }
356
398
  }
357
399
  }
358
400
  }
359
401
 
360
- get ellipsoid() {
402
+ public get ellipsoid(): Ellipsoid | null {
361
403
  return this._planet ? this._planet.ellipsoid : null;
362
404
  }
363
405
  }
364
406
 
365
- const EVENT_NAMES = [
407
+ const RULERSCENE_EVENTS: RulerSceneEventsList = [
366
408
  "add",
367
409
  "remove",
368
410
  "mousemove",
@@ -392,4 +434,4 @@ const EVENT_NAMES = [
392
434
  "touchenter"
393
435
  ];
394
436
 
395
- export { RulerScene };
437
+ export {RulerScene};
@@ -1,17 +1,18 @@
1
- "use strict";
2
-
3
- import { ToggleButton } from "../../ui/ToggleButton.js";
4
- import { Control } from "../Control.js";
5
- import { SelectionScene } from "./SelectionScene.js";
1
+ import {Control, IControlParams} from "../Control";
2
+ import {SelectionScene} from "./SelectionScene";
3
+ import {ToggleButton} from "../../ui/ToggleButton";
6
4
 
7
5
  const ICON_BUTTON_SVG = `<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
8
6
  <svg width="800px" height="800px" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--gis" preserveAspectRatio="xMidYMid meet"><path d="M2.1 0v1.914H0v6h3V3h5.1V0h-6zm9 0v3h6V0h-6zm9 0v3h6V0h-6zm9 0v3h6V0h-6zm9 0v3h6V0h-6zm9 0v3h6V0h-6zm9 0v3h6V0h-6zm9 0v3h1.8v1.2h3V0h-4.8zm1.8 7.2v6h3v-6h-3zM0 10.913v6h3v-6H0zM66.9 16.2v6h3v-6h-3zM0 19.914v6h3v-6H0zM66.9 25.2v6h3v-6h-3zM0 28.914v6h3v-6H0zM66.9 34.2v6h3v-6h-3zM0 37.914v6h3v-6H0zM66.9 43.2v6h3v-6h-3zM0 46.914v6h3v-6H0zM66.9 52.2v6h3v-6h-3zM0 55.914v5.191h3.809v-3H3v-2.19H0zm6.809 2.191v3h6v-3h-6zm9 0v3h6v-3h-6zm9 0v3h6v-3h-6zm9 0v3h6v-3h-6zm9 0v3h6v-3h-6zm9 0v3h6v-3h-6zm9 0v3h6v-3h-6zm9.648 1.899a2.076 2.076 0 0 0-2.19 2.324l3.137 33.676c.2 1.635 2.135 2.399 3.397 1.34l6.623-5.371l2.969 5.142c1.707 2.958 4.417 3.684 7.375 1.977c2.957-1.708 3.684-4.417 1.976-7.375l-2.959-5.125l7.848-3.008c1.548-.564 1.855-2.62.539-3.611L71.576 60.416a2.073 2.073 0 0 0-1.119-.412z" fill="#000000"></path></svg>`;
9
7
 
8
+ interface ISelectionParams extends IControlParams {
9
+ ignoreTerrain?: boolean;
10
+ onSelect?: boolean;
11
+ autoSelectionHide?: boolean
12
+ }
13
+
10
14
  /**
11
15
  * Activate Selection
12
- * @class
13
- * @extends {Control}
14
- * @param {Object} [options] - Control options.
15
16
  * @param {boolean} [options.ignoreTerrain=false].
16
17
  * @param {function} options.onSelect - callback (extent) => {} where extent is selected extent array [minLon,minLat,maxLon,maxLat]
17
18
  * @param {boolean} [options.autoSelectionHide=false] - clear selection rectangle after passing extent to callback
@@ -47,12 +48,15 @@ const ICON_BUTTON_SVG = `<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to:
47
48
  * }
48
49
  * });
49
50
  */
50
- class Selection extends Control {
51
- constructor(options = {}) {
51
+ export class Selection extends Control {
52
+ protected _selectorScene: SelectionScene;
53
+ protected _toggleBtn: ToggleButton;
54
+
55
+ constructor(options: ISelectionParams = {}) {
52
56
  super(options);
53
57
 
54
58
  this._selectorScene = new SelectionScene({
55
- name: `selectionScene:${this._id}`,
59
+ name: `selectionScene:${this.__id}`,
56
60
  ignoreTerrain: options.ignoreTerrain,
57
61
  onSelect: options.onSelect,
58
62
  autoSelectionHide: options.autoSelectionHide
@@ -65,14 +69,14 @@ class Selection extends Control {
65
69
  });
66
70
  }
67
71
 
68
- set ignoreTerrain(v) {
72
+ public set ignoreTerrain(v: boolean) {
69
73
  this._selectorScene.ignoreTerrain = v;
70
74
  }
71
75
 
72
- oninit() {
73
- this._toggleBtn.appendTo(this.renderer.div);
76
+ public override oninit() {
77
+ this._toggleBtn.appendTo(this.renderer!.div!);
74
78
 
75
- this._toggleBtn.on("change", (isActive) => {
79
+ this._toggleBtn.events.on("change", (isActive: boolean) => {
76
80
  if (isActive) {
77
81
  this.activate();
78
82
  } else {
@@ -83,13 +87,11 @@ class Selection extends Control {
83
87
  this._selectorScene.bindPlanet(this.planet);
84
88
  }
85
89
 
86
- onactivate() {
87
- this.renderer.addNode(this._selectorScene);
90
+ public override onactivate() {
91
+ this.renderer!.addNode(this._selectorScene);
88
92
  }
89
93
 
90
- ondeactivate() {
91
- this.renderer.removeNode(this._selectorScene);
94
+ override ondeactivate() {
95
+ this.renderer!.removeNode(this._selectorScene);
92
96
  }
93
97
  }
94
-
95
- export { Selection };