@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,27 @@
1
- 'use strict';
1
+ import {Deferred} from '../../Deferred';
2
+ import {createEvents, EventsHandler} from '../../Events';
3
+ import {Vec3} from "../../math/Vec3";
4
+ import {Planet} from "../../scene/Planet";
5
+ import {LonLat} from "../../LonLat";
6
+
7
+ interface ElevationProfileParams {
8
+ planet: Planet
9
+ }
10
+
11
+ interface IProfileData {
12
+ dist: number;
13
+ minY: number;
14
+ maxY: number;
15
+ trackCoords: number[][];
16
+ groundCoords: number[][];
17
+ }
2
18
 
3
- import { Vec3 } from "../../math/Vec3.js";
4
- import { Deferred } from "../../Deferred.js";
5
- import { Events } from '../../Events.js';
19
+ type ElevationProfileEventsList = ["profilecollected"];
20
+
21
+ const ELEVATIONPROFILE_EVENTS: ElevationProfileEventsList = ["profilecollected"];
6
22
 
7
23
  /**
8
24
  * Point types
9
- * @type {number}
10
25
  */
11
26
  const SAFE = 0;
12
27
  const WARNING = 1;
@@ -14,7 +29,6 @@ const COLLISION = 2;
14
29
 
15
30
  /**
16
31
  * drawData index names
17
- * @type {number}
18
32
  */
19
33
  const TRACK = 0;
20
34
  const GROUND = 1;
@@ -27,8 +41,27 @@ const TOP_PADDING = 0.1; // Range maxY padding in percentage from the top
27
41
  const HEIGHT_EPS = 0.1; // Warning height level error
28
42
 
29
43
  class ElevationProfile {
30
- constructor(options = {}) {
31
- this.events = new Events(["profilecollected"]);
44
+ public events: EventsHandler<ElevationProfileEventsList>;
45
+ public planet: Planet;
46
+ protected _warningHeightLevel: number;
47
+ protected _pointsReady: boolean;
48
+ protected _isWarning: boolean;
49
+ protected _minX: number;
50
+ protected _maxX: number;
51
+ protected _minY: number;
52
+ protected _maxY: number;
53
+ protected _drawData: [number[][], number[][]];
54
+ protected _promiseArr: Promise<void | number>[];
55
+ protected _promiseCounter: number;
56
+ protected _pMaxY: number;
57
+ protected _pMinY: number;
58
+ protected _pDist: number;
59
+ protected _pTrackCoords: number[][];
60
+ protected _pGroundCoords: number[][];
61
+ protected _pIndex: number;
62
+
63
+ constructor(options: ElevationProfileParams) {
64
+ this.events = createEvents(ELEVATIONPROFILE_EVENTS);
32
65
 
33
66
  this.planet = options.planet;
34
67
 
@@ -53,21 +86,21 @@ class ElevationProfile {
53
86
  this._pIndex = 0;
54
87
  }
55
88
 
56
- setWarningHeightLevel(warningHeight = 0) {
89
+ public setWarningHeightLevel(warningHeight: number = 0) {
57
90
  this._warningHeightLevel = warningHeight;
58
91
  }
59
92
 
60
- setRange(minX, maxX, minY, maxY) {
93
+ public setRange(minX: number, maxX: number, minY: number, maxY: number) {
61
94
  this._minX = minX;
62
95
  this._maxX = maxX;
63
96
  this._minY = minY;
64
97
  this._maxY = maxY;
65
98
  }
66
99
 
67
- _getHeightAsync(ll, pIndex) {
68
- let def = new Deferred();
69
- this.planet.terrain.getHeightAsync(ll, (elv) => {
70
- elv += this.planet.terrain.geoid.getHeightLonLat(ll);
100
+ protected _getHeightAsync(ll: LonLat, pIndex: number): Promise<number> {
101
+ let def = new Deferred<number>();
102
+ this.planet.terrain!.getHeightAsync(ll, (elv: number) => {
103
+ elv += this.planet.terrain!.geoid.getHeightLonLat(ll);
71
104
  this._pGroundCoords[pIndex][1] = elv;
72
105
  this._pGroundCoords[pIndex][2] = SAFE;
73
106
  this._pGroundCoords[pIndex][3] = ll.height;
@@ -77,7 +110,7 @@ class ElevationProfile {
77
110
  return def.promise;
78
111
  }
79
112
 
80
- _collectCoordsBetweenTwoTrackPoints(internalPoints, scaleFactor, p0, trackDir) {
113
+ protected _collectCoordsBetweenTwoTrackPoints(internalPoints: number, scaleFactor: number, p0: Vec3, trackDir: Vec3) {
81
114
  for (let j = 1; j <= internalPoints; j++) {
82
115
  this._pDist += SEGMMENT_LENGTH;
83
116
  this._pIndex++;
@@ -89,7 +122,7 @@ class ElevationProfile {
89
122
 
90
123
  this._pGroundCoords[this._pIndex] = [this._pDist, 0, SAFE];
91
124
 
92
- ((lonlat, index) => {
125
+ ((lonlat: LonLat, index: number) => {
93
126
  this._promiseArr.push(
94
127
  this._getHeightAsync(lonlat, index)
95
128
  .then((elv) => {
@@ -101,7 +134,7 @@ class ElevationProfile {
101
134
  }
102
135
  }
103
136
 
104
- _collectAllPoints(pointsLonLat) {
137
+ protected _collectAllPoints(pointsLonLat: LonLat[]) {
105
138
 
106
139
  let p0 = new Vec3(),
107
140
  p1 = new Vec3();
@@ -140,7 +173,7 @@ class ElevationProfile {
140
173
  }
141
174
  }
142
175
 
143
- _getGroundElevation(lonLat) {
176
+ protected _getGroundElevation(lonLat: LonLat) {
144
177
  this._pGroundCoords[this._pIndex] = [this._pDist, 0, SAFE];
145
178
  this._promiseArr.push(
146
179
  this._getHeightAsync(lonLat, this._pIndex)
@@ -153,7 +186,7 @@ class ElevationProfile {
153
186
  );
154
187
  }
155
188
 
156
- _collectPromise(resolve) {
189
+ protected _collectPromise(resolve: (p: IProfileData) => void) {
157
190
  Promise.all(this._promiseArr).then(() => {
158
191
  resolve({
159
192
  dist: this._pDist,
@@ -165,8 +198,8 @@ class ElevationProfile {
165
198
  });
166
199
  }
167
200
 
168
- _calcPointsAsync(pointsLonLat) {
169
- return new Promise((resolve, reject) => {
201
+ protected _calcPointsAsync(pointsLonLat: LonLat[]) {
202
+ return new Promise<IProfileData>((resolve: (p: IProfileData) => void, reject) => {
170
203
  this._pTrackCoords = [[0, pointsLonLat[0].height]];
171
204
  this._pMaxY = pointsLonLat[0].height;
172
205
  this._pMinY = this._pMaxY;
@@ -181,31 +214,31 @@ class ElevationProfile {
181
214
  });
182
215
  }
183
216
 
184
- get minX() {
217
+ public get minX(): number {
185
218
  return this._minX;
186
219
  }
187
220
 
188
- get maxX() {
221
+ public get maxX(): number {
189
222
  return this._maxX;
190
223
  }
191
224
 
192
- get minY() {
225
+ public get minY(): number {
193
226
  return this._minY;
194
227
  }
195
228
 
196
- get maxY() {
229
+ public get maxY(): number {
197
230
  return this._maxY;
198
231
  }
199
232
 
200
- get pointsReady() {
233
+ public get pointsReady(): boolean {
201
234
  return this._pointsReady;
202
235
  }
203
236
 
204
- get isWarningOrCollision() {
237
+ public get isWarningOrCollision(): boolean {
205
238
  return this._isWarning;
206
239
  }
207
240
 
208
- collectProfile(pointsLonLat) {
241
+ public collectProfile(pointsLonLat: LonLat[]) {
209
242
  this._pointsReady = false;
210
243
  this._isWarning = false;
211
244
 
@@ -213,8 +246,8 @@ class ElevationProfile {
213
246
 
214
247
  this._promiseCounter++;
215
248
 
216
- ((counter) => {
217
- this._calcPointsAsync(pointsLonLat).then((p) => {
249
+ ((counter: number) => {
250
+ this._calcPointsAsync(pointsLonLat).then((p: IProfileData) => {
218
251
  if (counter === this._promiseCounter) {
219
252
  this.setRange(0, p.dist, p.minY - BOTTOM_PADDING * Math.abs(p.minY), p.maxY + Math.abs(p.maxY) * TOP_PADDING);
220
253
  this._pointsReady = true;
@@ -225,7 +258,7 @@ class ElevationProfile {
225
258
  })(this._promiseCounter);
226
259
  }
227
260
 
228
- _setPointType(pIndex) {
261
+ protected _setPointType(pIndex: number) {
229
262
  if ((this._pGroundCoords[pIndex][3] >= this._pGroundCoords[pIndex][1]) &&
230
263
  (this._pGroundCoords[pIndex][3] < this._pGroundCoords[pIndex][1] + this._warningHeightLevel - HEIGHT_EPS)) {
231
264
  this._pGroundCoords[pIndex][2] = WARNING;
@@ -240,7 +273,7 @@ class ElevationProfile {
240
273
  }
241
274
  }
242
275
 
243
- _setPointsType() {
276
+ protected _setPointsType() {
244
277
  this._isWarning = false;
245
278
 
246
279
  this._pTrackCoords = this._drawData[TRACK];
@@ -254,7 +287,7 @@ class ElevationProfile {
254
287
  this.events.dispatch(this.events.profilecollected, this._drawData, this);
255
288
  }
256
289
 
257
- clear() {
290
+ public clear() {
258
291
  this._pointsReady = false;
259
292
  this._isWarning = false;
260
293
  this._drawData = [][0];
@@ -268,8 +301,9 @@ class ElevationProfile {
268
301
  }
269
302
 
270
303
  export {
271
- SAFE,
272
304
  COLLISION,
305
+ SAFE,
273
306
  WARNING,
274
- ElevationProfile
275
- };
307
+ IProfileData,
308
+ ElevationProfile,
309
+ };
@@ -0,0 +1,16 @@
1
+ import {Ruler, IRulerParams} from "../ruler/Ruler";
2
+ import {HeightRulerScene} from "./HeightRulerScene";
3
+
4
+ interface IHeightRulerParams extends IRulerParams {
5
+
6
+ }
7
+
8
+ export class HeightRuler extends Ruler {
9
+ constructor(options: IHeightRulerParams = {}) {
10
+ super(options);
11
+ this._rulerScene = new HeightRulerScene({
12
+ name: `heightRulerScene:${this.__id}`,
13
+ ignoreTerrain: false
14
+ });
15
+ }
16
+ }
@@ -1,25 +1,27 @@
1
- 'use strict';
2
-
3
- import { Entity } from '../../entity/Entity.js';
4
- import { RulerScene } from "../ruler/RulerScene.js";
5
- import { Vector } from "../../layer/Vector.js";
6
- import { Object3d } from "../../Object3d.js";
7
-
8
- let obj3d = Object3d.createCylinder(1.1, 0, 2, 6, 1, true, true, 0, 0, 0)
9
-
10
- const RAYS_OPTIONS = {
1
+ import {Entity} from '../../entity/Entity';
2
+ import {LonLat} from "../../LonLat";
3
+ import {Object3d} from "../../Object3d";
4
+ import {RulerScene, IRulerSceneParams} from "../ruler/RulerScene";
5
+ import {Vector} from "../../layer/Vector";
6
+ import {Vec3} from "../../math/Vec3";
7
+ import {ILabelParams} from "../../entity/Label";
8
+ import {IRayParams} from "../../entity/Ray";
9
+
10
+ let obj3d = Object3d.createCylinder(1.1, 0, 2, 6, 1, true, true, 0, 0, 0);
11
+
12
+ const RAYS_OPTIONS: IRayParams = {
11
13
  startColor: "rgb(255,131,0)",
12
14
  endColor: "rgb(255,131,0)",
13
15
  thickness: 5
14
16
  }
15
- const LABEL_OPTIONS = {
17
+ const LABEL_OPTIONS: ILabelParams = {
16
18
  text: "",
17
19
  size: 11,
18
20
  color: "rgba(455,455,455,1.0)",
19
21
  outlineColor: "rgba(0,0,0,0.34)",
20
22
  outline: 0.23,
21
23
  align: "center",
22
- offset: [0, 18]
24
+ offset: [0, 18, 0]
23
25
  };
24
26
 
25
27
  const RULER_CORNER_OPTIONS = {
@@ -30,19 +32,18 @@ const RULER_CORNER_OPTIONS = {
30
32
  object3d: obj3d
31
33
  };
32
34
 
33
- class HeightRulerScene extends RulerScene {
34
- constructor(options = {}) {
35
- super(options);
35
+ interface IHeightRulerSceneParams extends IRulerSceneParams {
36
36
 
37
+ }
37
38
 
38
- this._cornersLayer = new Vector("corners", {
39
- entities: [],
40
- pickingEnabled: true,
41
- displayInLayerSwitcher: false,
42
- scaleByDistance: [100, 4000000, 1.0],
43
- pickingScale: 2
44
- });
39
+ class HeightRulerScene extends RulerScene {
40
+ protected _geoRulerLayer: Vector;
41
+ protected _heightLabels: Entity[];
42
+ protected _rayH: Entity;
43
+ protected _rayV: Entity;
45
44
 
45
+ constructor(options: IHeightRulerSceneParams = {}) {
46
+ super(options);
46
47
 
47
48
  this._geoRulerLayer = new Vector("rayHeightRuler", {
48
49
  entities: [],
@@ -51,54 +52,85 @@ class HeightRulerScene extends RulerScene {
51
52
  relativeToGround: false,
52
53
  displayInLayerSwitcher: false
53
54
  });
55
+
56
+ this._rayV = new Entity({
57
+ name: 'verticalRay',
58
+ ray: RAYS_OPTIONS
59
+ });
60
+
61
+ this._rayH = new Entity({
62
+ name: 'heightRay',
63
+ ray: RAYS_OPTIONS
64
+ });
65
+
66
+ this._heightLabels = [
67
+ new Entity({
68
+ name: 'startCornerLabel',
69
+ label: {
70
+ ...LABEL_OPTIONS
71
+ }
72
+ }),
73
+ new Entity({
74
+ name: 'endCornerLabel',
75
+ label: {
76
+ ...LABEL_OPTIONS
77
+ }
78
+ }),
79
+ new Entity({
80
+ name: 'deltaLabel',
81
+ label: {
82
+ ...LABEL_OPTIONS
83
+ }
84
+ })
85
+ ];
54
86
  }
55
87
 
56
- setVisibility(visibility) {
88
+ public override setVisibility(visibility: boolean) {
57
89
  super.setVisibility(visibility);
58
90
  this._geoRulerLayer.setVisibility(visibility);
59
91
  }
60
92
 
61
- get deltaLabel() {
62
- return this._heightLabels[2]
93
+ public get deltaLabel(): Entity {
94
+ return this._heightLabels[2];
63
95
  }
64
96
 
65
- get startLabel() {
97
+ public get startLabel(): Entity {
66
98
  return this._heightLabels[0]
67
99
  }
68
100
 
69
- get endLabel() {
101
+ public get endLabel(): Entity {
70
102
  return this._heightLabels[1]
71
103
  }
72
104
 
73
- get corners() {
105
+ public get corners(): Entity[] {
74
106
  return this._cornerEntity;
75
107
  }
76
108
 
77
- get startCorner() {
109
+ public get startCorner(): Entity {
78
110
  return this.corners[0];
79
111
  }
80
112
 
81
- get endCorner() {
113
+ public get endCorner(): Entity {
82
114
  return this.corners[1];
83
115
  }
84
116
 
85
- get startCornerLonLat() {
117
+ public get startCornerLonLat(): LonLat {
86
118
  return this.startCorner.getLonLat();
87
119
  }
88
120
 
89
- get startCornerHeight() {
121
+ public get startCornerHeight(): number {
90
122
  return this.startCornerLonLat.height;
91
123
  }
92
124
 
93
- get endCornerLonLat() {
125
+ public get endCornerLonLat(): LonLat {
94
126
  return this.endCorner.getLonLat();
95
127
  }
96
128
 
97
- get endCornerHeight() {
129
+ public get endCornerHeight(): number {
98
130
  return this.endCornerLonLat.height;
99
131
  }
100
132
 
101
- get maxHeightCornerLonLat() {
133
+ public get maxHeightCornerLonLat(): LonLat {
102
134
  if (this.startCornerHeight <= this.endCornerHeight) {
103
135
  return this.endCornerLonLat;
104
136
  } else {
@@ -106,7 +138,7 @@ class HeightRulerScene extends RulerScene {
106
138
  }
107
139
  }
108
140
 
109
- get minHeightCornerLonLat() {
141
+ public get minHeightCornerLonLat(): LonLat {
110
142
  if (this.startCornerHeight > this.endCornerHeight) {
111
143
  return this.endCornerLonLat;
112
144
  } else {
@@ -114,23 +146,23 @@ class HeightRulerScene extends RulerScene {
114
146
  }
115
147
  }
116
148
 
117
- get deltaHeight() {
149
+ public get deltaHeight(): number {
118
150
  return Math.abs(this.startCornerHeight - this.endCornerHeight);
119
151
  }
120
152
 
121
- _drawLine(startLonLat, endLonLat, startPos) {
153
+ public override _drawLine(startLonLat: LonLat, endLonLat: LonLat, startPos?: Vec3) {
122
154
  super._drawLine(startLonLat, endLonLat, startPos);
123
155
  this._updateHeightRaysAndLabels();
124
156
  }
125
157
 
126
- async _updateHeightRaysAndLabels() {
158
+ protected async _updateHeightRaysAndLabels() {
127
159
  const middleLonLat = this.minHeightCornerLonLat.clone();
128
160
  middleLonLat.height = this.maxHeightCornerLonLat.height;
129
161
 
130
- this._rayH.ray.setStartPosition3v(this._planet.ellipsoid.lonLatToCartesian(this.maxHeightCornerLonLat))
131
- this._rayH.ray.setEndPosition3v(this._planet.ellipsoid.lonLatToCartesian(middleLonLat))
132
- this._rayV.ray.setStartPosition3v(this._planet.ellipsoid.lonLatToCartesian(this.minHeightCornerLonLat));
133
- this._rayV.ray.setEndPosition3v(this._planet.ellipsoid.lonLatToCartesian(middleLonLat));
162
+ this._rayH.ray!.setStartPosition3v(this._planet!.ellipsoid.lonLatToCartesian(this.maxHeightCornerLonLat))
163
+ this._rayH.ray!.setEndPosition3v(this._planet!.ellipsoid.lonLatToCartesian(middleLonLat))
164
+ this._rayV.ray!.setStartPosition3v(this._planet!.ellipsoid.lonLatToCartesian(this.minHeightCornerLonLat));
165
+ this._rayV.ray!.setEndPosition3v(this._planet!.ellipsoid.lonLatToCartesian(middleLonLat));
134
166
 
135
167
  middleLonLat.height = this.minHeightCornerLonLat.height + this.deltaHeight / 2;
136
168
 
@@ -138,15 +170,15 @@ class HeightRulerScene extends RulerScene {
138
170
  this.startLabel.setLonLat(this.startCornerLonLat);
139
171
  this.endLabel.setLonLat(this.endCornerLonLat);
140
172
 
141
- const startHeight = await this._planet.getHeightDefault(this.startCornerLonLat),
142
- endHeight = await this._planet.getHeightDefault(this.endCornerLonLat)
173
+ const startHeight = await this._planet!.getHeightDefault(this.startCornerLonLat),
174
+ endHeight = await this._planet!.getHeightDefault(this.endCornerLonLat)
143
175
 
144
- this.deltaLabel.label.setText(`\u0394 ${Math.abs(startHeight - endHeight).toFixed(1)} m`);
145
- this.startLabel.label.setText(`P1 ${startHeight.toFixed(1)} m`)
146
- this.endLabel.label.setText(`P2 ${endHeight.toFixed(1)} m`)
176
+ this.deltaLabel.label!.setText(`\u0394 ${Math.abs(startHeight - endHeight).toFixed(1)} m`);
177
+ this.startLabel.label!.setText(`P1 ${startHeight.toFixed(1)} m`)
178
+ this.endLabel.label!.setText(`P2 ${endHeight.toFixed(1)} m`)
147
179
  }
148
180
 
149
- clear() {
181
+ public override clear() {
150
182
  this._rayH.remove();
151
183
  this._rayV.remove();
152
184
  this.startCorner.remove();
@@ -154,14 +186,15 @@ class HeightRulerScene extends RulerScene {
154
186
  this.startLabel.remove();
155
187
  this.endLabel.remove();
156
188
  this.deltaLabel.remove();
157
- super.clear()
158
- this._rayH = undefined;
159
- this._rayV = undefined;
189
+ super.clear();
190
+
191
+ // this._rayH = null;
192
+ // this._rayV = null;
160
193
 
161
- this._planet.removeLayer(this._geoRulerLayer);
194
+ this._planet!.removeLayer(this._geoRulerLayer);
162
195
  }
163
196
 
164
- _createCorners() {
197
+ public override _createCorners() {
165
198
  this._cornerEntity = [
166
199
  new Entity({
167
200
  geoObject: RULER_CORNER_OPTIONS,
@@ -180,49 +213,21 @@ class HeightRulerScene extends RulerScene {
180
213
  this._cornersLayer.setEntities(this._cornerEntity);
181
214
  }
182
215
 
183
- init() {
184
-
216
+ public override init() {
185
217
  super.init();
186
218
  this._createCorners();
187
- this._rayV = new Entity({
188
- 'name': 'verticalRay',
189
- 'ray': RAYS_OPTIONS
190
- });
191
- this._rayH = new Entity({
192
- 'name': 'heightRay',
193
- 'ray': RAYS_OPTIONS
194
- });
195
- this._heightLabels = [
196
- new Entity({
197
- 'name': 'startCornerLabel',
198
- 'label': {
199
- ...LABEL_OPTIONS
200
- }
201
- }),
202
- new Entity({
203
- 'name': 'endCornerLabel',
204
- 'label': {
205
- ...LABEL_OPTIONS
206
- }
207
- }),
208
- new Entity({
209
- 'name': 'deltaLabel',
210
- 'label': {
211
- ...LABEL_OPTIONS
212
- }
213
- })
214
- ];
219
+
215
220
  this._labelLayer.addEntities(this._heightLabels);
216
221
  this._geoRulerLayer.addEntities([this._rayH, this._rayV]);
217
222
 
218
- this._planet.addLayer(this._geoRulerLayer);
223
+ this._planet!.addLayer(this._geoRulerLayer);
219
224
  }
220
225
 
221
- frame() {
226
+ public override frame() {
222
227
  super.frame()
223
228
  this._updateHeightRaysAndLabels();
224
229
  }
225
230
  }
226
231
 
227
232
 
228
- export { HeightRulerScene };
233
+ export {HeightRulerScene};
@@ -1,8 +1,8 @@
1
- import { RulerSwitcher } from "../RulerSwitcher.js";
2
- import { HeightRuler } from "./HeightRuler.js";
1
+ import { RulerSwitcher } from "../RulerSwitcher";
2
+ import { HeightRuler } from "./HeightRuler";
3
3
 
4
4
  export class HeightRulerSwitcher extends RulerSwitcher {
5
- constructor(options = {}) {
5
+ constructor(options: { ignoreTerrain?: boolean } = {}) {
6
6
  super({
7
7
  name: `HeightRulerSwitcher`,
8
8
  ...options
@@ -0,0 +1,45 @@
1
+ import { CompassButton } from "./CompassButton";
2
+ import { Control } from "./Control";
3
+ import { DebugInfo } from "./DebugInfo";
4
+ import { DrawingSwitcher } from "./DrawingSwitcher";
5
+ import { EarthCoordinates } from "./EarthCoordinates";
6
+ import { EarthNavigation } from "./EarthNavigation";
7
+ import { GeoImageDragControl } from "./GeoImageDragControl";
8
+ import { KeyboardNavigation } from "./KeyboardNavigation";
9
+ import { LayerAnimation } from "./LayerAnimation";
10
+ import { LayerSwitcher } from "./LayerSwitcher";
11
+ import { Lighting } from "./Lighting";
12
+ import { MouseNavigation } from "./MouseNavigation";
13
+ import { MouseWheelZoomControl } from "./MouseWheelZoomControl";
14
+ import { RulerSwitcher } from "./RulerSwitcher";
15
+ import { ScaleControl } from "./ScaleControl";
16
+ import { ShowFps } from "./ShowFps";
17
+ import { SimpleNavigation } from "./SimpleNavigation";
18
+ import { SimpleSkyBackground } from "./SimpleSkyBackground";
19
+ import { Sun } from "./Sun";
20
+ import { ToggleWireframe } from "./ToggleWireframe";
21
+ import { TouchNavigation } from "./TouchNavigation";
22
+ import { ZoomControl } from "./ZoomControl";
23
+ import { DrawingControl } from "./drawing/DrawingControl";
24
+ import { HeightRuler } from "./heightRuler/HeightRuler";
25
+ import { Ruler } from "./ruler/Ruler";
26
+ import { Selection } from "./selection/Selection";
27
+ import { TimelineControl } from "./timeline/TimelineControl";
28
+
29
+ export {
30
+ CompassButton, Control, DebugInfo, DrawingControl, DrawingSwitcher, EarthCoordinates, EarthNavigation, GeoImageDragControl,
31
+ HeightRuler,
32
+ KeyboardNavigation, LayerAnimation, LayerSwitcher,
33
+ Lighting, MouseNavigation,
34
+ MouseWheelZoomControl,
35
+ Ruler,
36
+ RulerSwitcher,
37
+ ScaleControl, Selection, ShowFps,
38
+ SimpleNavigation,
39
+ SimpleSkyBackground,
40
+ Sun, TimelineControl,
41
+ ToggleWireframe,
42
+ TouchNavigation,
43
+ ZoomControl
44
+ };
45
+
@@ -0,0 +1,35 @@
1
+ import {Control, IControlParams} from "../Control";
2
+ import {RulerScene} from "./RulerScene";
3
+
4
+ export interface IRulerParams extends IControlParams {
5
+ ignoreTerrain?: boolean
6
+ }
7
+
8
+ export class Ruler extends Control {
9
+ protected _rulerScene: RulerScene;
10
+
11
+ constructor(options: IRulerParams = {}) {
12
+ super(options);
13
+
14
+ this._rulerScene = new RulerScene({
15
+ name: `rulerScene:${this.__id}`,
16
+ ignoreTerrain: options.ignoreTerrain
17
+ });
18
+ }
19
+
20
+ public set ignoreTerrain(v: boolean) {
21
+ this._rulerScene.ignoreTerrain = v;
22
+ }
23
+
24
+ public override oninit() {
25
+ this._rulerScene.bindPlanet(this.planet!);
26
+ }
27
+
28
+ public override onactivate() {
29
+ this.renderer && this.renderer.addNode(this._rulerScene);
30
+ }
31
+
32
+ public override ondeactivate() {
33
+ this.renderer && this.renderer.removeNode(this._rulerScene);
34
+ }
35
+ }