@openglobus/og 0.17.1 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/README.md +75 -46
  2. package/dist/@openglobus/og.esm.js +1 -20
  3. package/dist/@openglobus/og.esm.js.map +1 -1
  4. package/dist/@openglobus/og.umd.js +1 -20
  5. package/dist/@openglobus/og.umd.js.map +1 -1
  6. package/dist/@openglobus/res/fonts/Karla-Bold.json +5252 -0
  7. package/dist/@openglobus/res/fonts/Karla-Bold.ttf.cfg +920 -0
  8. package/dist/@openglobus/res/fonts/Karla-Bold.ttf.png +0 -0
  9. package/dist/@openglobus/res/fonts/Karla-Light.json +5252 -0
  10. package/dist/@openglobus/res/fonts/Karla-Light.ttf.cfg +830 -0
  11. package/dist/@openglobus/res/fonts/Karla-Light.ttf.png +0 -0
  12. package/dist/@openglobus/res/fonts/Karla-Medium.json +5252 -0
  13. package/dist/@openglobus/res/fonts/Karla-Medium.ttf.cfg +1196 -0
  14. package/dist/@openglobus/res/fonts/Karla-Medium.ttf.png +0 -0
  15. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.json +3332 -0
  16. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.cfg +1370 -0
  17. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.png +0 -0
  18. package/dist/@openglobus/res/fonts/Roboto-Regular.json +37147 -0
  19. package/dist/@openglobus/res/fonts/Roboto-Regular.ttf.cfg +1340 -0
  20. package/dist/@openglobus/res/fonts/Roboto-Regular.ttf.png +0 -0
  21. package/dist/@openglobus/res/fonts/arial.json +4321 -0
  22. package/dist/@openglobus/res/fonts/arial.ttf.cfg +1570 -0
  23. package/dist/@openglobus/res/fonts/arial.ttf.png +0 -0
  24. package/dist/@openglobus/res/night-4326.png +0 -0
  25. package/dist/@openglobus/res/night.png +0 -0
  26. package/dist/@openglobus/res/spec.png +0 -0
  27. package/package.json +25 -23
  28. package/src/{og/Clock.js → Clock.ts} +100 -78
  29. package/src/Deferred.ts +17 -0
  30. package/src/Events.ts +200 -0
  31. package/src/{og/Extent.js → Extent.ts} +324 -352
  32. package/src/Globe.ts +363 -0
  33. package/src/{og/ImageCanvas.js → ImageCanvas.ts} +244 -236
  34. package/src/Lock.ts +41 -0
  35. package/src/{og/LonLat.js → LonLat.ts} +50 -47
  36. package/src/{og/Object3d.js → Object3d.ts} +89 -55
  37. package/src/Popup.ts +228 -0
  38. package/src/{og/QueueArray.js → QueueArray.ts} +76 -75
  39. package/src/{og/Rectangle.js → Rectangle.ts} +115 -111
  40. package/src/Stack.ts +58 -0
  41. package/src/{og/astro/astro.js → astro/astro.ts} +49 -51
  42. package/src/{og/astro/earth.js → astro/earth.ts} +8 -9
  43. package/src/{og/astro/jd.js → astro/jd.ts} +92 -111
  44. package/src/{og/astro/orbit.js → astro/orbit.ts} +35 -37
  45. package/src/{og/astro/rotation.js → astro/rotation.ts} +4 -6
  46. package/src/{og/bv/Box.js → bv/Box.ts} +21 -17
  47. package/src/{og/bv/Sphere.js → bv/Sphere.ts} +21 -19
  48. package/src/bv/index.ts +4 -0
  49. package/src/{og/camera/Camera.js → camera/Camera.ts} +254 -197
  50. package/src/{og/camera/Frustum.js → camera/Frustum.ts} +137 -111
  51. package/src/{og/camera/PlanetCamera.js → camera/PlanetCamera.ts} +248 -185
  52. package/src/camera/index.ts +4 -0
  53. package/src/{og/cons.js → cons.ts} +14 -18
  54. package/src/{og/control/Atmosphere.js → control/Atmosphere.ts} +50 -50
  55. package/src/{og/control/CompassButton.js → control/CompassButton.ts} +27 -30
  56. package/src/{og/control/Control.js → control/Control.ts} +76 -70
  57. package/src/{og/control/DebugInfo.js → control/DebugInfo.ts} +130 -62
  58. package/src/{og/control/DrawingSwitcher.js → control/DrawingSwitcher.ts} +16 -22
  59. package/src/control/EarthCoordinates.ts +222 -0
  60. package/src/control/EarthNavigation.ts +293 -0
  61. package/src/{og/control/GeoImageDragControl.js → control/GeoImageDragControl.ts} +37 -29
  62. package/src/control/KeyboardNavigation.ts +168 -0
  63. package/src/{og/control/LayerAnimation.js → control/LayerAnimation.ts} +74 -90
  64. package/src/control/LayerSwitcher.ts +76 -0
  65. package/src/{og/control/Lighting.js → control/Lighting.ts} +158 -120
  66. package/src/control/MouseNavigation.ts +468 -0
  67. package/src/control/MouseWheelZoomControl.ts +269 -0
  68. package/src/{og/control/RulerSwitcher.js → control/RulerSwitcher.ts} +18 -20
  69. package/src/control/ScaleControl.ts +131 -0
  70. package/src/control/SegmentBoundVisualization.ts +50 -0
  71. package/src/control/ShowFps.ts +28 -0
  72. package/src/control/SimpleNavigation.ts +118 -0
  73. package/src/{og/control/SimpleSkyBackground.js → control/SimpleSkyBackground.ts} +36 -38
  74. package/src/{og/control/Sun.js → control/Sun.ts} +56 -64
  75. package/src/control/ToggleWireframe.ts +35 -0
  76. package/src/control/TouchNavigation.ts +368 -0
  77. package/src/control/ZoomControl.ts +111 -0
  78. package/src/control/drawing/DrawingControl.ts +45 -0
  79. package/src/{og/control/drawing/LineStringDrawingScene.js → control/drawing/LineStringDrawingScene.ts} +28 -35
  80. package/src/{og/control/drawing/PolygonDrawingScene.js → control/drawing/PolygonDrawingScene.ts} +148 -201
  81. package/src/{og/control/elevationProfile/ElevationProfile.js → control/elevationProfile/ElevationProfile.ts} +70 -36
  82. package/src/control/heightRuler/HeightRuler.ts +16 -0
  83. package/src/{og/control/heightRuler/HeightRulerScene.js → control/heightRuler/HeightRulerScene.ts} +92 -87
  84. package/src/{og/control/heightRuler/HeightRulerSwitcher.js → control/heightRuler/HeightRulerSwitcher.ts} +3 -3
  85. package/src/control/index.ts +45 -0
  86. package/src/control/ruler/Ruler.ts +35 -0
  87. package/src/{og/control/ruler/RulerScene.js → control/ruler/RulerScene.ts} +163 -121
  88. package/src/{og/control/selection/Selection.js → control/selection/Selection.ts} +23 -21
  89. package/src/{og/control/selection/SelectionScene.js → control/selection/SelectionScene.ts} +64 -50
  90. package/src/{og/control/timeline/TimelineControl.js → control/timeline/TimelineControl.ts} +37 -28
  91. package/src/{og/control/timeline/TimelineModel.js → control/timeline/TimelineModel.ts} +50 -35
  92. package/src/{og/control/timeline/TimelineView.js → control/timeline/TimelineView.ts} +162 -113
  93. package/src/{og/control/timeline/timelineUtils.js → control/timeline/timelineUtils.ts} +11 -10
  94. package/src/{og/control → control}/visibleExtent/Segment.js +5 -5
  95. package/src/{og/control → control}/visibleExtent/VisibleExtent.js +8 -15
  96. package/src/{og/control/visibleExtent/drawnode.js → control/visibleExtent/drawnode.ts} +1 -3
  97. package/src/{og/ellipsoid/Ellipsoid.js → ellipsoid/Ellipsoid.ts} +113 -59
  98. package/src/ellipsoid/index.ts +4 -0
  99. package/src/{og/ellipsoid/wgs84.js → ellipsoid/wgs84.ts} +1 -3
  100. package/src/{og/entity/BaseBillboard.js → entity/BaseBillboard.ts} +128 -102
  101. package/src/entity/BaseBillboardHandler.ts +772 -0
  102. package/src/{og/entity/Billboard.js → entity/Billboard.ts} +77 -47
  103. package/src/entity/BillboardHandler.ts +135 -0
  104. package/src/{og/entity/Entity.js → entity/Entity.ts} +285 -226
  105. package/src/{og/entity/EntityCollection.js → entity/EntityCollection.ts} +340 -247
  106. package/src/{og/entity/GeoObject.js → entity/GeoObject.ts} +122 -67
  107. package/src/{og/entity/GeoObjectHandler.js → entity/GeoObjectHandler.ts} +273 -198
  108. package/src/entity/Geometry.ts +486 -0
  109. package/src/{og/entity/GeometryHandler.js → entity/GeometryHandler.ts} +383 -541
  110. package/src/{og/entity/Label.js → entity/Label.ts} +131 -83
  111. package/src/{og/entity/LabelHandler.js → entity/LabelHandler.ts} +289 -255
  112. package/src/{og/entity/LabelWorker.js → entity/LabelWorker.ts} +26 -36
  113. package/src/{og/entity/PointCloud.js → entity/PointCloud.ts} +200 -164
  114. package/src/entity/PointCloudHandler.ts +125 -0
  115. package/src/{og/entity/Polyline.js → entity/Polyline.ts} +517 -539
  116. package/src/{og/entity/PolylineHandler.js → entity/PolylineHandler.ts} +29 -31
  117. package/src/{og/entity/Ray.js → entity/Ray.ts} +89 -60
  118. package/src/{og/entity/RayHandler.js → entity/RayHandler.ts} +201 -306
  119. package/src/{og/entity/Strip.js → entity/Strip.ts} +143 -100
  120. package/src/{og/entity/StripHandler.js → entity/StripHandler.ts} +76 -72
  121. package/src/entity/index.ts +12 -0
  122. package/src/index.ts +173 -0
  123. package/src/input/KeyboardHandler.ts +196 -0
  124. package/src/{og/input/MouseHandler.js → input/MouseHandler.ts} +46 -35
  125. package/src/input/TouchHandler.ts +54 -0
  126. package/src/{og/input/input.js → input/input.ts} +1 -3
  127. package/src/{og/layer/BaseGeoImage.js → layer/BaseGeoImage.ts} +174 -107
  128. package/src/{og/layer/CanvasTiles.js → layer/CanvasTiles.ts} +139 -105
  129. package/src/{og/layer/GeoImage.js → layer/GeoImage.ts} +62 -52
  130. package/src/layer/GeoTexture2d.ts +56 -0
  131. package/src/{og/layer/GeoVideo.js → layer/GeoVideo.ts} +53 -53
  132. package/src/{og/layer/KML.js → layer/KML.ts} +63 -74
  133. package/src/{og/layer/Layer.js → layer/Layer.ts} +399 -223
  134. package/src/{og/layer/Material.js → layer/Material.ts} +40 -35
  135. package/src/{og/layer/Vector.js → layer/Vector.ts} +319 -267
  136. package/src/{og/layer/WMS.js → layer/WMS.ts} +76 -64
  137. package/src/{og/layer/XYZ.js → layer/XYZ.ts} +123 -98
  138. package/src/layer/index.ts +12 -0
  139. package/src/{og/light/LightSource.js → light/LightSource.ts} +132 -93
  140. package/src/{og/math/Line2.js → math/Line2.ts} +11 -8
  141. package/src/{og/math/Line3.js → math/Line3.ts} +49 -27
  142. package/src/{og/math/Mat3.js → math/Mat3.ts} +43 -27
  143. package/src/{og/math/Mat4.js → math/Mat4.ts} +110 -77
  144. package/src/{og/math/Plane.js → math/Plane.ts} +28 -23
  145. package/src/{og/math/Quat.js → math/Quat.ts} +238 -222
  146. package/src/{og/math/Ray.js → math/Ray.ts} +59 -63
  147. package/src/{og/math/Vec2.js → math/Vec2.ts} +85 -76
  148. package/src/{og/math/Vec3.js → math/Vec3.ts} +141 -140
  149. package/src/{og/math/Vec4.js → math/Vec4.ts} +64 -53
  150. package/src/{og/math/coder.js → math/coder.ts} +30 -27
  151. package/src/math/index.ts +26 -0
  152. package/src/{og/math.js → math.ts} +46 -49
  153. package/src/{og/mercator.js → mercator.ts} +143 -149
  154. package/src/{og/proj/EPSG3857.js → proj/EPSG3857.ts} +1 -3
  155. package/src/{og/proj/EPSG4326.js → proj/EPSG4326.ts} +11 -13
  156. package/src/{og/proj/Proj.js → proj/Proj.ts} +27 -23
  157. package/src/{og/quadTree/EPSG4326QuadTreeStrategy.js → quadTree/EPSG4326QuadTreeStrategy.ts} +10 -13
  158. package/src/{og/quadTree/EarthQuadTreeStrategy.js → quadTree/EarthQuadTreeStrategy.ts} +11 -13
  159. package/src/quadTree/EntityCollectionNode.ts +395 -0
  160. package/src/{og/quadTree/MarsQuadTreeStrategy.js → quadTree/MarsQuadTreeStrategy.ts} +10 -13
  161. package/src/{og/quadTree/Node.js → quadTree/Node.ts} +283 -191
  162. package/src/{og/quadTree/QuadTreeStrategy.js → quadTree/QuadTreeStrategy.ts} +35 -29
  163. package/src/quadTree/Wgs84QuadTreeStrategy.ts +22 -0
  164. package/src/quadTree/index.ts +14 -0
  165. package/src/{og/quadTree/quadTree.js → quadTree/quadTree.ts} +75 -77
  166. package/src/{og/renderer/Renderer.js → renderer/Renderer.ts} +454 -298
  167. package/src/{og/renderer/RendererEvents.js → renderer/RendererEvents.ts} +347 -270
  168. package/src/{og/scene/Axes.js → scene/Axes.ts} +26 -22
  169. package/src/{og/scene/BaseNode.js → scene/BaseNode.ts} +53 -47
  170. package/src/{og/scene/Planet.js → scene/Planet.ts} +777 -595
  171. package/src/{og/scene/RenderNode.js → scene/RenderNode.ts} +105 -91
  172. package/src/{og/scene/SkyBox.js → scene/SkyBox.ts} +29 -25
  173. package/src/scene/index.ts +6 -0
  174. package/src/{og/segment/Segment.js → segment/Segment.ts} +497 -371
  175. package/src/{og/segment/SegmentLonLat.js → segment/SegmentLonLat.ts} +81 -87
  176. package/src/{og/segment/SegmentLonLatWgs84.js → segment/SegmentLonLatWgs84.ts} +9 -16
  177. package/src/{og/segment/Slice.js → segment/Slice.ts} +15 -9
  178. package/src/{og/segment/segmentHelper.js → segment/segmentHelper.ts} +57 -49
  179. package/src/{og/shaders/atmos.js → shaders/atmos.ts} +4 -6
  180. package/src/{og/shaders/billboard.js → shaders/billboard.ts} +3 -5
  181. package/src/{og/shaders/bloom.js → shaders/bloom.ts} +2 -4
  182. package/src/{og/shaders/blur.js → shaders/blur.ts} +4 -7
  183. package/src/{og/shaders/depth.js → shaders/depth.ts} +1 -3
  184. package/src/{og/shaders/drawnode.js → shaders/drawnode.ts} +19 -21
  185. package/src/{og/shaders/geoObject.js → shaders/geoObject.ts} +17 -19
  186. package/src/{og/shaders/label.js → shaders/label.ts} +4 -6
  187. package/src/{og/shaders/lumFilter.js → shaders/lumFilter.ts} +2 -4
  188. package/src/{og/shaders/pickingMask.js → shaders/pickingMask.ts} +2 -4
  189. package/src/{og/shaders/pointCloud.js → shaders/pointCloud.ts} +7 -10
  190. package/src/{og/shaders/polyline.js → shaders/polyline.ts} +3 -200
  191. package/src/{og/shaders/ray.js → shaders/ray.ts} +2 -4
  192. package/src/{og/shaders/screenFrame.js → shaders/screenFrame.ts} +2 -4
  193. package/src/{og/shaders/skybox.js → shaders/skybox.ts} +7 -9
  194. package/src/{og/shaders/toneMapping.js → shaders/toneMapping.ts} +2 -4
  195. package/src/{og/shaders/utils.js → shaders/utils.ts} +0 -2
  196. package/src/{og/terrain/BilTerrain.js → terrain/BilTerrain.ts} +38 -32
  197. package/src/terrain/EmptyTerrain.ts +230 -0
  198. package/src/{og/terrain/Geoid.js → terrain/Geoid.ts} +67 -41
  199. package/src/{og/terrain/GlobusTerrain.js → terrain/GlobusTerrain.ts} +159 -153
  200. package/src/{og/terrain/MapboxTerrain.js → terrain/MapboxTerrain.ts} +58 -61
  201. package/src/terrain/index.ts +6 -0
  202. package/src/ui/Button.ts +121 -0
  203. package/src/ui/ButtonGroup.ts +63 -0
  204. package/src/ui/Dialog.ts +244 -0
  205. package/src/ui/Slider.ts +188 -0
  206. package/src/ui/ToggleButton.ts +68 -0
  207. package/src/{og/ui/View.js → ui/View.ts} +66 -59
  208. package/src/utils/BaseWorker.ts +60 -0
  209. package/src/utils/FontAtlas.ts +356 -0
  210. package/src/{og/utils/GeoImageCreator.js → utils/GeoImageCreator.ts} +45 -29
  211. package/src/{og/utils/ImagesCacheManager.js → utils/ImagesCacheManager.ts} +85 -70
  212. package/src/utils/Loader.ts +247 -0
  213. package/src/{og/utils/NormalMapCreator.js → utils/NormalMapCreator.ts} +114 -77
  214. package/src/{og/utils/PlainSegmentWorker.js → utils/PlainSegmentWorker.ts} +41 -24
  215. package/src/{og/utils/TerrainWorker.js → utils/TerrainWorker.ts} +51 -36
  216. package/src/utils/TextureAtlas.ts +322 -0
  217. package/src/{og/utils/VectorTileCreator.js → utils/VectorTileCreator.ts} +67 -52
  218. package/src/{og/utils/colorTable.js → utils/colorTable.ts} +142 -144
  219. package/src/{og/utils/earcut.js → utils/earcut.ts} +664 -661
  220. package/src/{og/utils/objParser.js → utils/objParser.ts} +66 -37
  221. package/src/{og/utils/shared.js → utils/shared.ts} +267 -206
  222. package/src/utils/units.ts +78 -0
  223. package/src/webgl/BaseFramebuffer.ts +125 -0
  224. package/src/webgl/Framebuffer.ts +206 -0
  225. package/src/webgl/Handler.ts +1414 -0
  226. package/src/webgl/Multisample.ts +153 -0
  227. package/src/webgl/Program.ts +451 -0
  228. package/src/{og/webgl/ProgramController.js → webgl/ProgramController.ts} +44 -43
  229. package/src/webgl/index.ts +13 -0
  230. package/src/{og/webgl/types.js → webgl/types.ts} +29 -31
  231. package/src/webgl/variableHandlers.ts +114 -0
  232. package/src/og/Deferred.js +0 -11
  233. package/src/og/Events.js +0 -185
  234. package/src/og/Globe.js +0 -342
  235. package/src/og/Lock.js +0 -44
  236. package/src/og/Popup.js +0 -187
  237. package/src/og/Stack.js +0 -49
  238. package/src/og/bv/index.js +0 -4
  239. package/src/og/camera/index.js +0 -4
  240. package/src/og/control/EarthCoordinates.js +0 -214
  241. package/src/og/control/EarthNavigation.js +0 -258
  242. package/src/og/control/KeyboardNavigation.js +0 -149
  243. package/src/og/control/LayerSwitcher.js +0 -424
  244. package/src/og/control/MouseNavigation.js +0 -436
  245. package/src/og/control/MouseWheelZoomControl.js +0 -253
  246. package/src/og/control/ScaleControl.js +0 -119
  247. package/src/og/control/SegmentBoundVisualization.js +0 -54
  248. package/src/og/control/ShowFps.js +0 -40
  249. package/src/og/control/SimpleNavigation.js +0 -123
  250. package/src/og/control/ToggleWireframe.js +0 -35
  251. package/src/og/control/TouchNavigation.js +0 -350
  252. package/src/og/control/ZoomControl.js +0 -115
  253. package/src/og/control/drawing/DrawingControl.js +0 -51
  254. package/src/og/control/heightRuler/HeightRuler.js +0 -12
  255. package/src/og/control/index.js +0 -56
  256. package/src/og/control/ruler/Ruler.js +0 -39
  257. package/src/og/ellipsoid/index.js +0 -4
  258. package/src/og/entity/BillboardHandler.js +0 -883
  259. package/src/og/entity/Geometry.js +0 -320
  260. package/src/og/entity/PointCloudHandler.js +0 -122
  261. package/src/og/entity/index.js +0 -9
  262. package/src/og/index.js +0 -112
  263. package/src/og/input/KeyboardHandler.js +0 -128
  264. package/src/og/input/TouchHandler.js +0 -59
  265. package/src/og/layer/GeoTexture2d.js +0 -50
  266. package/src/og/layer/index.js +0 -11
  267. package/src/og/math/index.js +0 -23
  268. package/src/og/quadTree/EntityCollectionNode.js +0 -391
  269. package/src/og/quadTree/Wgs84QuadTreeStrategy.js +0 -27
  270. package/src/og/quadTree/index.js +0 -14
  271. package/src/og/res/images.js +0 -8
  272. package/src/og/scene/index.js +0 -5
  273. package/src/og/terrain/EmptyTerrain.js +0 -174
  274. package/src/og/terrain/index.js +0 -6
  275. package/src/og/ui/Button.js +0 -107
  276. package/src/og/ui/ButtonGroup.js +0 -57
  277. package/src/og/ui/Dialog.js +0 -239
  278. package/src/og/ui/Slider.js +0 -170
  279. package/src/og/ui/ToggleButton.js +0 -51
  280. package/src/og/ui/UIhelpers.js +0 -155
  281. package/src/og/utils/BaseWorker.js +0 -46
  282. package/src/og/utils/FontAtlas.js +0 -218
  283. package/src/og/utils/Loader.js +0 -188
  284. package/src/og/utils/TextureAtlas.js +0 -291
  285. package/src/og/utils/functionComposition.js +0 -13
  286. package/src/og/utils/units.js +0 -78
  287. package/src/og/webgl/Framebuffer.js +0 -311
  288. package/src/og/webgl/Handler.js +0 -1168
  289. package/src/og/webgl/Multisample.js +0 -275
  290. package/src/og/webgl/Program.js +0 -407
  291. package/src/og/webgl/callbacks.js +0 -98
  292. package/src/og/webgl/index.js +0 -13
  293. package/src/og.jsdoc +0 -3
  294. package/types/Clock.d.ts +0 -99
  295. package/types/Deferred.d.ts +0 -6
  296. package/types/Events.d.ts +0 -78
  297. package/types/Extent.d.ts +0 -166
  298. package/types/Globe.d.ts +0 -108
  299. package/types/ImageCanvas.d.ts +0 -128
  300. package/types/Lock.d.ts +0 -12
  301. package/types/LonLat.d.ts +0 -127
  302. package/types/Object3d.d.ts +0 -35
  303. package/types/Popup.d.ts +0 -29
  304. package/types/QueueArray.d.ts +0 -19
  305. package/types/Rectangle.d.ts +0 -80
  306. package/types/Stack.d.ts +0 -19
  307. package/types/arial.d.ts +0 -49
  308. package/types/astro/astro.d.ts +0 -38
  309. package/types/astro/earth.d.ts +0 -7
  310. package/types/astro/jd.d.ts +0 -254
  311. package/types/bv/Box.d.ts +0 -30
  312. package/types/bv/Sphere.d.ts +0 -38
  313. package/types/bv/index.d.ts +0 -3
  314. package/types/camera/Camera.d.ts +0 -314
  315. package/types/camera/Frustum.d.ts +0 -133
  316. package/types/camera/PlanetCamera.d.ts +0 -219
  317. package/types/camera/index.d.ts +0 -3
  318. package/types/cons.d.ts +0 -40
  319. package/types/control/Atmosphere.d.ts +0 -15
  320. package/types/control/CompassButton.d.ts +0 -16
  321. package/types/control/Control.d.ts +0 -104
  322. package/types/control/DebugInfo.d.ts +0 -19
  323. package/types/control/DrawingSwitcher.d.ts +0 -13
  324. package/types/control/EarthCoordinates.d.ts +0 -44
  325. package/types/control/EarthNavigation.d.ts +0 -43
  326. package/types/control/GeoImageDragControl.d.ts +0 -14
  327. package/types/control/KeyboardNavigation.d.ts +0 -24
  328. package/types/control/LayerAnimation.d.ts +0 -73
  329. package/types/control/LayerSwitcher.d.ts +0 -64
  330. package/types/control/Lighting.d.ts +0 -41
  331. package/types/control/MouseNavigation.d.ts +0 -49
  332. package/types/control/MouseWheelZoomControl.d.ts +0 -46
  333. package/types/control/ScaleControl.d.ts +0 -23
  334. package/types/control/ShowFps.d.ts +0 -11
  335. package/types/control/SimpleNavigation.d.ts +0 -26
  336. package/types/control/SimpleSkyBackground.d.ts +0 -15
  337. package/types/control/Sun.d.ts +0 -53
  338. package/types/control/ToggleWireframe.d.ts +0 -12
  339. package/types/control/TouchNavigation.d.ts +0 -54
  340. package/types/control/ZoomControl.d.ts +0 -26
  341. package/types/control/drawing/DrawingControl.d.ts +0 -14
  342. package/types/control/drawing/LineStringDrawingScene.d.ts +0 -5
  343. package/types/control/drawing/PolygonDrawingScene.d.ts +0 -99
  344. package/types/control/heightRuler/HeightRuler.d.ts +0 -6
  345. package/types/control/heightRuler/HeightRulerScene.d.ts +0 -23
  346. package/types/control/index.d.ts +0 -27
  347. package/types/control/ruler/Ruler.d.ts +0 -13
  348. package/types/control/ruler/RulerScene.d.ts +0 -51
  349. package/types/control/selection/Selection.d.ts +0 -49
  350. package/types/control/selection/SelectionScene.d.ts +0 -32
  351. package/types/control/timeline/TimelineControl.d.ts +0 -10
  352. package/types/control/timeline/TimelineModel.d.ts +0 -33
  353. package/types/control/timeline/TimelineView.d.ts +0 -57
  354. package/types/control/timeline/timelineUtils.d.ts +0 -9
  355. package/types/ellipsoid/Ellipsoid.d.ts +0 -170
  356. package/types/ellipsoid/index.d.ts +0 -3
  357. package/types/ellipsoid/wgs84.d.ts +0 -6
  358. package/types/entity/BaseBillboard.d.ts +0 -215
  359. package/types/entity/Billboard.d.ts +0 -94
  360. package/types/entity/BillboardHandler.d.ts +0 -75
  361. package/types/entity/Entity.d.ts +0 -340
  362. package/types/entity/EntityCollection.d.ts +0 -303
  363. package/types/entity/GeoObject.d.ts +0 -117
  364. package/types/entity/GeoObjectHandler.d.ts +0 -41
  365. package/types/entity/Geometry.d.ts +0 -79
  366. package/types/entity/GeometryHandler.d.ts +0 -76
  367. package/types/entity/Label.d.ts +0 -190
  368. package/types/entity/LabelHandler.d.ts +0 -31
  369. package/types/entity/LabelWorker.d.ts +0 -9
  370. package/types/entity/PointCloud.d.ts +0 -174
  371. package/types/entity/PointCloudHandler.d.ts +0 -38
  372. package/types/entity/Polyline.d.ts +0 -307
  373. package/types/entity/PolylineHandler.d.ts +0 -18
  374. package/types/entity/Ray.d.ts +0 -122
  375. package/types/entity/RayHandler.d.ts +0 -63
  376. package/types/entity/Strip.d.ts +0 -119
  377. package/types/entity/StripHandler.d.ts +0 -38
  378. package/types/entity/index.d.ts +0 -8
  379. package/types/index.d.ts +0 -53
  380. package/types/input/KeyboardHandler.d.ts +0 -10
  381. package/types/input/MouseHandler.d.ts +0 -5
  382. package/types/input/TouchHandler.d.ts +0 -5
  383. package/types/input/input.d.ts +0 -42
  384. package/types/layer/BaseGeoImage.d.ts +0 -116
  385. package/types/layer/CanvasTiles.d.ts +0 -73
  386. package/types/layer/GeoImage.d.ts +0 -51
  387. package/types/layer/GeoTexture2d.d.ts +0 -7
  388. package/types/layer/GeoVideo.d.ts +0 -47
  389. package/types/layer/KML.d.ts +0 -93
  390. package/types/layer/Layer.d.ts +0 -320
  391. package/types/layer/Material.d.ts +0 -45
  392. package/types/layer/Vector.d.ts +0 -211
  393. package/types/layer/WMS.d.ts +0 -66
  394. package/types/layer/XYZ.d.ts +0 -122
  395. package/types/layer/index.d.ts +0 -10
  396. package/types/light/LightSource.d.ts +0 -178
  397. package/types/math/Line2.d.ts +0 -11
  398. package/types/math/Line3.d.ts +0 -10
  399. package/types/math/Mat3.d.ts +0 -65
  400. package/types/math/Mat4.d.ts +0 -176
  401. package/types/math/Plane.d.ts +0 -18
  402. package/types/math/Quat.d.ts +0 -379
  403. package/types/math/Ray.d.ts +0 -82
  404. package/types/math/Vec2.d.ts +0 -309
  405. package/types/math/Vec3.d.ts +0 -472
  406. package/types/math/Vec4.d.ts +0 -161
  407. package/types/math/coder.d.ts +0 -43
  408. package/types/math/index.d.ts +0 -11
  409. package/types/math.d.ts +0 -268
  410. package/types/mercator.d.ts +0 -92
  411. package/types/proj/EPSG3857.d.ts +0 -6
  412. package/types/proj/EPSG4326.d.ts +0 -6
  413. package/types/proj/Proj.d.ts +0 -42
  414. package/types/quadTree/EPSG4326QuadTreeStrategy.d.ts +0 -3
  415. package/types/quadTree/EarthQuadTreeStrategy.d.ts +0 -3
  416. package/types/quadTree/EntityCollectionNode.d.ts +0 -41
  417. package/types/quadTree/MarsQuadTreeStrategy.d.ts +0 -3
  418. package/types/quadTree/Node.d.ts +0 -58
  419. package/types/quadTree/QuadTreeStrategy.d.ts +0 -21
  420. package/types/quadTree/Wgs84QuadTreeStrategy.d.ts +0 -3
  421. package/types/quadTree/index.d.ts +0 -12
  422. package/types/quadTree/quadTree.d.ts +0 -40
  423. package/types/renderer/Renderer.d.ts +0 -291
  424. package/types/renderer/RendererEvents.d.ts +0 -255
  425. package/types/res/images.d.ts +0 -2
  426. package/types/scene/Axes.d.ts +0 -10
  427. package/types/scene/BaseNode.d.ts +0 -60
  428. package/types/scene/Planet.d.ts +0 -595
  429. package/types/scene/RenderNode.d.ts +0 -152
  430. package/types/scene/SkyBox.d.ts +0 -9
  431. package/types/scene/index.d.ts +0 -4
  432. package/types/segment/Segment.d.ts +0 -273
  433. package/types/segment/SegmentLonLat.d.ts +0 -22
  434. package/types/segment/SegmentLonLatWgs84.d.ts +0 -4
  435. package/types/segment/Slice.d.ts +0 -10
  436. package/types/segment/segmentHelper.d.ts +0 -13
  437. package/types/shaders/atmos.d.ts +0 -4
  438. package/types/shaders/billboard.d.ts +0 -3
  439. package/types/shaders/depth.d.ts +0 -2
  440. package/types/shaders/drawnode.d.ts +0 -8
  441. package/types/shaders/geoObject.d.ts +0 -3
  442. package/types/shaders/label.d.ts +0 -4
  443. package/types/shaders/pickingMask.d.ts +0 -2
  444. package/types/shaders/pointCloud.d.ts +0 -2
  445. package/types/shaders/polyline.d.ts +0 -3
  446. package/types/shaders/ray.d.ts +0 -2
  447. package/types/shaders/screenFrame.d.ts +0 -2
  448. package/types/shaders/skybox.d.ts +0 -2
  449. package/types/shaders/toneMapping.d.ts +0 -2
  450. package/types/shaders/utils.d.ts +0 -1
  451. package/types/terrain/BilTerrain.d.ts +0 -14
  452. package/types/terrain/EmptyTerrain.d.ts +0 -87
  453. package/types/terrain/Geoid.d.ts +0 -17
  454. package/types/terrain/GlobusTerrain.d.ts +0 -122
  455. package/types/terrain/MapboxTerrain.d.ts +0 -14
  456. package/types/terrain/index.d.ts +0 -5
  457. package/types/ui/Button.d.ts +0 -21
  458. package/types/ui/ButtonGroup.d.ts +0 -12
  459. package/types/ui/Dialog.d.ts +0 -41
  460. package/types/ui/Slider.d.ts +0 -33
  461. package/types/ui/ToggleButton.d.ts +0 -10
  462. package/types/ui/UIhelpers.d.ts +0 -13
  463. package/types/ui/View.d.ts +0 -33
  464. package/types/ui/icons.d.ts +0 -1
  465. package/types/utils/BaseWorker.d.ts +0 -14
  466. package/types/utils/FontAtlas.d.ts +0 -16
  467. package/types/utils/GeoImageCreator.d.ts +0 -30
  468. package/types/utils/ImagesCacheManager.d.ts +0 -10
  469. package/types/utils/Loader.d.ts +0 -31
  470. package/types/utils/NormalMapCreator.d.ts +0 -39
  471. package/types/utils/PlainSegmentWorker.d.ts +0 -8
  472. package/types/utils/TerrainWorker.d.ts +0 -7
  473. package/types/utils/TextureAtlas.d.ts +0 -113
  474. package/types/utils/VectorTileCreator.d.ts +0 -14
  475. package/types/utils/colorTable.d.ts +0 -143
  476. package/types/utils/earcut.d.ts +0 -6
  477. package/types/utils/functionComposition.d.ts +0 -5
  478. package/types/utils/objParser.d.ts +0 -8
  479. package/types/utils/shared.d.ts +0 -241
  480. package/types/utils/units.d.ts +0 -20
  481. package/types/webgl/Framebuffer.d.ts +0 -134
  482. package/types/webgl/Handler.d.ts +0 -403
  483. package/types/webgl/Multisample.d.ts +0 -91
  484. package/types/webgl/Program.d.ts +0 -163
  485. package/types/webgl/ProgramController.d.ts +0 -89
  486. package/types/webgl/callbacks.d.ts +0 -1
  487. package/types/webgl/index.d.ts +0 -6
  488. package/types/webgl/types.d.ts +0 -2
  489. /package/{src/og → dist/@openglobus/res/fonts}/arial.js +0 -0
  490. /package/src/{og/ui/icons.js → ui/icons.ts} +0 -0
@@ -1,23 +1,35 @@
1
- "use strict";
2
-
3
- import { Key } from "../Lock.js";
4
- import { LonLat } from "../LonLat.js";
5
- import * as math from "../math.js";
6
- import { Mat4 } from "../math/Mat4.js";
7
- import { Quat } from "../math/Quat.js";
8
- import { Ray } from "../math/Ray.js";
9
- import { Vec3 } from "../math/Vec3.js";
10
- import * as mercator from "../mercator.js";
11
- import { Camera } from "./Camera.js";
12
- import { Ellipsoid } from "../ellipsoid/index.js";
1
+ import * as mercator from "../mercator";
2
+ import * as math from "../math";
3
+ import {Camera, ICameraParams} from "./Camera";
4
+ import {Key} from "../Lock";
5
+ import {LonLat} from "../LonLat";
6
+ import {Mat4} from "../math/Mat4";
7
+ import {Planet} from "../scene/Planet";
8
+ import {Quat} from "../math/Quat";
9
+ import {Ray} from "../math/Ray";
10
+ import {Vec3} from "../math/Vec3";
11
+ import {Extent} from "../Extent";
12
+ import {Segment} from "../segment/Segment";
13
+
14
+ interface IPlanetCameraParams extends ICameraParams {
15
+ minAltitude?: number;
16
+ maxAltitude?: number;
17
+ }
18
+
19
+ type CameraFrame = {
20
+ eye: Vec3;
21
+ n: Vec3;
22
+ u: Vec3;
23
+ v: Vec3;
24
+ }
13
25
 
14
26
  /**
15
27
  * Planet camera.
16
28
  * @class
17
29
  * @extends {Camera}
18
- * @param {RenderNode} planet - Planet render node.
19
- * @param {Object} [options] - Planet camera options:
20
- * @param {Object} [options.name] - Camera name.
30
+ * @param {Planet} planet - Planet render node.
31
+ * @param {IPlanetCameraParams} [options] - Planet camera options:
32
+ * @param {string} [options.name] - Camera name.
21
33
  * @param {number} [options.viewAngle] - Camera angle of view.
22
34
  * @param {number} [options.near] - Camera near plane distance. Default is 1.0
23
35
  * @param {number} [options.far] - Camera far plane distance. Default is og.math.MAX
@@ -29,89 +41,115 @@ import { Ellipsoid } from "../ellipsoid/index.js";
29
41
  */
30
42
  class PlanetCamera extends Camera {
31
43
  /**
32
- * @param {RenderNode} planet - Planet render node.
33
- * @param {Object} [options] - Planet camera options:
44
+ * Assigned camera's planet.
45
+ * @public
46
+ * @type {Planet}
47
+ */
48
+ public planet: Planet;
49
+
50
+ /**
51
+ * Minimal altitude that camera can reach over the terrain.
52
+ * @public
53
+ * @type {number}
54
+ */
55
+ public minAltitude: number;
56
+
57
+ /**
58
+ * Maximal altitude that camera can reach over the globe.
59
+ * @public
60
+ * @type {number}
61
+ */
62
+ public maxAltitude: number;
63
+
64
+ /**
65
+ * Current geographical degree position.
66
+ * @public
67
+ * @type {LonLat}
68
+ */
69
+ public _lonLat: LonLat;
70
+
71
+ /**
72
+ * Current geographical mercator position.
73
+ * @public
74
+ * @type {LonLat}
75
+ */
76
+ public _lonLatMerc: LonLat;
77
+
78
+ /**
79
+ * Current altitude.
80
+ * @protected
81
+ * @type {number}
82
+ */
83
+ protected _terrainAltitude: number;
84
+
85
+ /**
86
+ * Cartesian coordinates on the terrain.
87
+ * @protected
88
+ * @type {Vec3}
34
89
  */
35
- constructor(planet, options) {
90
+ protected _terrainPoint: Vec3;
91
+
92
+ /**
93
+ * Quad node that camera flies over.
94
+ * @protected
95
+ * @type {Segment}
96
+ */
97
+
98
+ public _insideSegment: Segment | null;
99
+
100
+ public slope: number;
101
+
102
+ protected _keyLock: Key;
103
+ protected _framesArr: CameraFrame[];
104
+ protected _framesCounter: number;
105
+ protected _numFrames: number;
106
+ protected _completeCallback: Function | null;
107
+ protected _frameCallback: Function | null;
108
+
109
+ protected _flying: boolean;
110
+ protected _checkTerrainCollision: boolean;
111
+
112
+ public eyeNorm: Vec3;
113
+
114
+ constructor(planet: Planet, options: IPlanetCameraParams = {}) {
36
115
  super(planet.renderer, {
37
- frustums: [
38
- [[1, 100], [100, 1000 + 7.0], [1000 - 7.0, 1e6 + 17], [1e6 - 17, 1e9]]
39
- ], //[[1, 1e3 + 100], [1e3, 1e6 + 10000], [1e6, 1e9]]*/
40
- ...options
116
+ ...options,
117
+ frustums: options.frustums || [[1, 100 + 0.075], [100, 1000 + 0.075], [1000, 1e6 + 10000], [1e6, 1e9]],
41
118
  }
42
119
  );
43
- /**
44
- * Assigned camera's planet.
45
- * @public
46
- * @type {Planet}
47
- */
120
+
48
121
  this.planet = planet;
49
122
 
50
- /**
51
- * Minimal alltitude that camera can reach over the terrain.
52
- * @public
53
- * @type {number}
54
- */
55
123
  this.minAltitude = options.minAltitude || 1;
56
124
 
57
- /**
58
- * Maximal alltitude that camera can reach over the globe.
59
- * @public
60
- * @type {number}
61
- */
62
125
  this.maxAltitude = options.maxAltitude || 20000000;
63
126
 
64
- /**
65
- * Current geographical degree position.
66
- * @protected
67
- * @type {LonLat}
68
- */
69
127
  this._lonLat = this.planet.ellipsoid.cartesianToLonLat(this.eye);
70
128
 
71
- /**
72
- * Current geographical mercator position.
73
- * @protected
74
- * @type {LonLat}
75
- */
76
129
  this._lonLatMerc = this._lonLat.forwardMercator();
77
130
 
78
- /**
79
- * Current altitude.
80
- * @protected
81
- * @type {number}
82
- */
83
131
  this._terrainAltitude = this._lonLat.height;
84
132
 
85
- /**
86
- * Cartesian coordinates on the terrain.
87
- * @protected
88
- * @type {Vec3}
89
- */
90
133
  this._terrainPoint = new Vec3();
91
134
 
92
- /**
93
- * Quad node that camera flies over.
94
- * @protected
95
- * @type {quadTree.Node}
96
- */
97
135
  this._insideSegment = null;
98
136
 
99
137
  this.slope = 0;
100
138
 
101
139
  this._keyLock = new Key();
102
140
 
103
- // Camera's flying frames
104
141
  this._framesArr = [];
105
142
  this._framesCounter = 0;
106
143
  this._numFrames = 50;
107
144
  this._completeCallback = null;
145
+ this._frameCallback = null;
108
146
  this._flying = false;
109
147
  this._checkTerrainCollision = true;
110
148
 
111
- this._velCart = new Vec3(0.0, 0.0, 0.0);
149
+ this.eyeNorm = this.eye.getNormal();
112
150
  }
113
151
 
114
- setTerrainCollisionActivity(isActive) {
152
+ public setTerrainCollisionActivity(isActive: boolean) {
115
153
  this._checkTerrainCollision = isActive;
116
154
  }
117
155
 
@@ -120,26 +158,26 @@ class PlanetCamera extends Camera {
120
158
  * @public
121
159
  * @virtual
122
160
  */
123
- update() {
161
+ public override update() {
124
162
  this.events.stopPropagation();
125
163
 
126
- let maxAlt = this.maxAltitude + this.planet.ellipsoid._a;
164
+ let maxAlt = this.maxAltitude + this.planet.ellipsoid.getEquatorialSize();
127
165
 
128
166
  if (this.eye.length() > maxAlt) {
129
- this.eye.copy(this.eye.normal().scale(maxAlt));
167
+ this.eye.copy(this.eye.getNormal().scale(maxAlt));
130
168
  }
131
169
 
132
170
  super.update();
133
171
 
134
172
  this.updateGeodeticPosition();
135
173
 
136
- this.eyeNorm = this.eye.normal();
174
+ this.eyeNorm = this.eye.getNormal();
137
175
  this.slope = this._b.dot(this.eyeNorm);
138
176
 
139
177
  this.events.dispatch(this.events.viewchange, this);
140
178
  }
141
179
 
142
- updateGeodeticPosition() {
180
+ public updateGeodeticPosition() {
143
181
  this.planet.ellipsoid.cartesianToLonLatRes(this.eye, this._lonLat);
144
182
  if (Math.abs(this._lonLat.lat) <= mercator.MAX_LAT) {
145
183
  LonLat.forwardMercatorRes(this._lonLat, this._lonLatMerc);
@@ -151,7 +189,7 @@ class PlanetCamera extends Camera {
151
189
  * @public
152
190
  * @param {number} alt - Altitude over the terrain.
153
191
  */
154
- setAltitude(alt) {
192
+ public setAltitude(alt: number) {
155
193
 
156
194
  let t = this._terrainPoint;
157
195
  let n = this.planet.ellipsoid.getSurfaceNormal3v(this.eye);
@@ -167,7 +205,7 @@ class PlanetCamera extends Camera {
167
205
  * Gets altitude over the terrain.
168
206
  * @public
169
207
  */
170
- getAltitude() {
208
+ public getAltitude(): number {
171
209
  return this._terrainAltitude;
172
210
  }
173
211
 
@@ -178,12 +216,12 @@ class PlanetCamera extends Camera {
178
216
  * @param {LonLat} [lookLonLat] - Look up coordinates.
179
217
  * @param {Vec3} [up] - Camera UP vector. Default (0,1,0)
180
218
  */
181
- setLonLat(lonlat, lookLonLat, up) {
219
+ public setLonLat(lonlat: LonLat, lookLonLat?: LonLat, up?: Vec3) {
182
220
  this.stopFlying();
183
221
  this._lonLat.set(lonlat.lon, lonlat.lat, lonlat.height || this._lonLat.height);
184
- var el = this.planet.ellipsoid;
185
- var newEye = el.lonLatToCartesian(this._lonLat);
186
- var newLook = lookLonLat ? el.lonLatToCartesian(lookLonLat) : Vec3.ZERO;
222
+ let el = this.planet.ellipsoid;
223
+ let newEye = el.lonLatToCartesian(this._lonLat);
224
+ let newLook = lookLonLat ? el.lonLatToCartesian(lookLonLat) : Vec3.ZERO;
187
225
  this.set(newEye, newLook, up || Vec3.NORTH);
188
226
  this.update();
189
227
  }
@@ -193,7 +231,7 @@ class PlanetCamera extends Camera {
193
231
  * @public
194
232
  * @returns {LonLat}
195
233
  */
196
- getLonLat() {
234
+ public getLonLat(): LonLat {
197
235
  return this._lonLat;
198
236
  }
199
237
 
@@ -202,7 +240,7 @@ class PlanetCamera extends Camera {
202
240
  * @public
203
241
  * @returns {number}
204
242
  */
205
- getHeight() {
243
+ public getHeight(): number {
206
244
  return this._lonLat.height;
207
245
  }
208
246
 
@@ -213,30 +251,30 @@ class PlanetCamera extends Camera {
213
251
  * @param {Number} height - Camera height
214
252
  * @returns {Vec3}
215
253
  */
216
- getExtentPosition(extent, height) {
217
- var north = extent.getNorth();
218
- var south = extent.getSouth();
219
- var east = extent.getEast();
220
- var west = extent.getWest();
254
+ public getExtentPosition(extent: Extent, height: number = 0): Vec3 {
255
+ let north = extent.getNorth();
256
+ let south = extent.getSouth();
257
+ let east = extent.getEast();
258
+ let west = extent.getWest();
221
259
 
222
260
  if (west > east) {
223
261
  east += 360;
224
262
  }
225
263
 
226
- var e = this.planet.ellipsoid;
264
+ let e = this.planet.ellipsoid;
227
265
 
228
- var cart = new LonLat(east, north);
229
- var northEast = e.lonLatToCartesian(cart);
266
+ let cart = new LonLat(east, north);
267
+ let northEast = e.lonLatToCartesian(cart);
230
268
  cart.lat = south;
231
- var southEast = e.lonLatToCartesian(cart);
269
+ let southEast = e.lonLatToCartesian(cart);
232
270
  cart.lon = west;
233
- var southWest = e.lonLatToCartesian(cart);
271
+ let southWest = e.lonLatToCartesian(cart);
234
272
  cart.lat = north;
235
- var northWest = e.lonLatToCartesian(cart);
273
+ let northWest = e.lonLatToCartesian(cart);
236
274
 
237
- var center = Vec3.sub(northEast, southWest).scale(0.5).addA(southWest);
275
+ let center = Vec3.sub(northEast, southWest).scale(0.5).addA(southWest);
238
276
 
239
- var mag = center.length();
277
+ let mag = center.length();
240
278
  if (mag < 0.000001) {
241
279
  cart.lon = (east + west) * 0.5;
242
280
  cart.lat = (north + south) * 0.5;
@@ -248,30 +286,30 @@ class PlanetCamera extends Camera {
248
286
  northEast.subA(center);
249
287
  southWest.subA(center);
250
288
 
251
- var direction = center.normal(); // ellipsoid.getSurfaceNormal(center).negate().normalize();
252
- var right = direction.cross(Vec3.NORTH).normalize();
253
- var up = right.cross(direction).normalize();
289
+ let direction = center.getNormal(); // ellipsoid.getSurfaceNormal(center).negate().normalize();
290
+ let right = direction.cross(Vec3.NORTH).normalize();
291
+ let up = right.cross(direction).normalize();
254
292
 
255
- var _h = Math.max(
293
+ let _h = Math.max(
256
294
  Math.abs(up.dot(northWest)),
257
295
  Math.abs(up.dot(southEast)),
258
296
  Math.abs(up.dot(northEast)),
259
297
  Math.abs(up.dot(southWest))
260
298
  );
261
299
 
262
- var _w = Math.max(
300
+ let _w = Math.max(
263
301
  Math.abs(right.dot(northWest)),
264
302
  Math.abs(right.dot(southEast)),
265
303
  Math.abs(right.dot(northEast)),
266
304
  Math.abs(right.dot(southWest))
267
305
  );
268
306
 
269
- var tanPhi = Math.tan(this._viewAngle * math.RADIANS * 0.5);
270
- var tanTheta = this._aspect * tanPhi;
271
- var d = Math.max(_w / tanTheta, _h / tanPhi);
307
+ let tanPhi = Math.tan(this._viewAngle * math.RADIANS * 0.5);
308
+ let tanTheta = this._aspect * tanPhi;
309
+ let d = Math.max(_w / tanTheta, _h / tanPhi);
272
310
 
273
311
  center.normalize();
274
- center.scale(mag + d + (height || 0));
312
+ center.scale(mag + d + height);
275
313
 
276
314
  return center;
277
315
  }
@@ -280,8 +318,9 @@ class PlanetCamera extends Camera {
280
318
  * View current extent.
281
319
  * @public
282
320
  * @param {Extent} extent - Current extent.
321
+ * @param {number} [height]
283
322
  */
284
- viewExtent(extent, height) {
323
+ public viewExtent(extent: Extent, height?: number) {
285
324
  this.stopFlying();
286
325
  this.set(this.getExtentPosition(extent, height), Vec3.ZERO, Vec3.NORTH);
287
326
  this.update();
@@ -291,13 +330,21 @@ class PlanetCamera extends Camera {
291
330
  * Flies to the current extent.
292
331
  * @public
293
332
  * @param {Extent} extent - Current extent.
333
+ * @param {number} [height] - Destination height.
294
334
  * @param {Vec3} [up] - Camera UP in the end of flying. Default - (0,1,0)
295
335
  * @param {Number} [ampl] - Altitude amplitude factor.
296
- * @param {cameraCallback} [completeCallback] - Callback that calls after flying when flying is finished.
297
- * @param {cameraCallback} [startCallback] - Callback that calls befor the flying begins.
298
- * @param [frameCallback]
336
+ * @param {Function} [completeCallback] - Callback that calls after flying when flying is finished.
337
+ * @param {Function} [startCallback] - Callback that calls before the flying begins.
338
+ * @param {Function} [frameCallback] - Each frame callback
299
339
  */
300
- flyExtent(extent, height, up, ampl, completeCallback, startCallback, frameCallback) {
340
+ public flyExtent(
341
+ extent: Extent,
342
+ height?: number,
343
+ up?: Vec3,
344
+ ampl?: number,
345
+ completeCallback?: Function,
346
+ startCallback?: Function,
347
+ frameCallback?: Function) {
301
348
  this.flyCartesian(
302
349
  this.getExtentPosition(extent, height),
303
350
  Vec3.ZERO,
@@ -309,9 +356,9 @@ class PlanetCamera extends Camera {
309
356
  );
310
357
  }
311
358
 
312
- viewDistance(cartesian, distance = 10000.0) {
359
+ public viewDistance(cartesian: Vec3, distance: number = 10000.0) {
313
360
  let p0 = this.eye.add(this.getForward().scaleTo(distance));
314
- let _rot = Quat.getRotationBetweenVectors(p0.normal(), cartesian.normal());
361
+ let _rot = Quat.getRotationBetweenVectors(p0.getNormal(), cartesian.getNormal());
315
362
  if (_rot.isZero()) {
316
363
  let newPos = cartesian.add(this.getBackward().scaleTo(distance));
317
364
  this.set(newPos, cartesian);
@@ -323,16 +370,16 @@ class PlanetCamera extends Camera {
323
370
  this.update();
324
371
  }
325
372
 
326
- flyDistance(
327
- cartesian,
328
- distance = 10000.0,
329
- ampl = 0.0,
330
- completeCallback,
331
- startCallback,
332
- frameCallback
373
+ public flyDistance(
374
+ cartesian: Vec3,
375
+ distance: number = 10000.0,
376
+ ampl: number = 0.0,
377
+ completeCallback?: Function,
378
+ startCallback?: Function,
379
+ frameCallback?: Function
333
380
  ) {
334
381
  let p0 = this.eye.add(this.getForward().scaleTo(distance));
335
- let _rot = Quat.getRotationBetweenVectors(p0.normal(), cartesian.normal());
382
+ let _rot = Quat.getRotationBetweenVectors(p0.getNormal(), cartesian.getNormal());
336
383
  if (_rot.isZero()) {
337
384
  let newPos = cartesian.add(this.getBackward().scaleTo(distance));
338
385
  this.set(newPos, cartesian);
@@ -358,14 +405,21 @@ class PlanetCamera extends Camera {
358
405
  * @param {Vec3} [look] - Camera LOOK in the end of flying. Default - (0,0,0)
359
406
  * @param {Vec3} [up] - Camera UP vector in the end of flying. Default - (0,1,0)
360
407
  * @param {Number} [ampl=1.0] - Altitude amplitude factor.
361
- * @param {cameraCallback} [completeCallback] - Callback that calls after flying when flying is finished.
362
- * @param {cameraCallback} [startCallback] - Callback that calls befor the flying begins.
363
- * @param [frameCallback]
408
+ * @param {Function} [completeCallback] - Callback that calls after flying when flying is finished.
409
+ * @param {Function} [startCallback] - Callback that calls before the flying begins.
410
+ * @param {Function} [frameCallback] - Each frame callback
364
411
  */
365
- flyCartesian(cartesian, look = Vec3.ZERO, up = Vec3.NORTH, ampl = 1.0, completeCallback = () => {
366
- }, startCallback = () => {
367
- }, frameCallback = () => {
368
- }) {
412
+ flyCartesian(
413
+ cartesian: Vec3,
414
+ look: Vec3 | LonLat | null = Vec3.ZERO,
415
+ up: Vec3 | null = Vec3.NORTH,
416
+ ampl: number = 1.0,
417
+ completeCallback: Function | null = () => {
418
+ },
419
+ startCallback: Function | null = () => {
420
+ },
421
+ frameCallback: Function | null = () => {
422
+ }) {
369
423
 
370
424
  this.stopFlying();
371
425
 
@@ -384,63 +438,62 @@ class PlanetCamera extends Camera {
384
438
  look = this.planet.ellipsoid.lonLatToCartesian(look);
385
439
  }
386
440
 
387
- var ground_a = this.planet.ellipsoid.lonLatToCartesian(
441
+ let ground_a = this.planet.ellipsoid.lonLatToCartesian(
388
442
  new LonLat(this._lonLat.lon, this._lonLat.lat)
389
443
  );
390
- var v_a = this._u,
444
+
445
+ let v_a = this._u,
391
446
  n_a = this._b;
392
447
 
393
- var lonlat_b = this.planet.ellipsoid.cartesianToLonLat(cartesian);
394
- var up_b = up;
395
- var ground_b = this.planet.ellipsoid.lonLatToCartesian(
448
+ let lonlat_b = this.planet.ellipsoid.cartesianToLonLat(cartesian);
449
+ let up_b = up;
450
+ let ground_b = this.planet.ellipsoid.lonLatToCartesian(
396
451
  new LonLat(lonlat_b.lon, lonlat_b.lat, 0)
397
452
  );
398
- var eye_b = cartesian;
399
- var n_b = Vec3.sub(eye_b, look);
400
- var u_b = up_b.cross(n_b);
453
+ let n_b = Vec3.sub(cartesian, look as Vec3);
454
+ let u_b = up_b.cross(n_b);
401
455
  n_b.normalize();
402
456
  u_b.normalize();
403
- var v_b = n_b.cross(u_b);
457
+ let v_b = n_b.cross(u_b);
404
458
 
405
- var an = ground_a.normal();
406
- var bn = ground_b.normal();
407
- var anbn = 1.0 - an.dot(bn);
408
- var hM_a = ampl * math.SQRT_HALF * Math.sqrt(anbn > 0.0 ? anbn : 0.0);
459
+ let an = ground_a.getNormal();
460
+ let bn = ground_b.getNormal();
461
+ let anbn = 1.0 - an.dot(bn);
462
+ let hM_a = ampl * math.SQRT_HALF * Math.sqrt(anbn > 0.0 ? anbn : 0.0);
409
463
 
410
- var maxHeight = 6639613;
411
- var currMaxHeight = Math.max(this._lonLat.height, lonlat_b.height);
464
+ let maxHeight = 6639613;
465
+ let currMaxHeight = Math.max(this._lonLat.height, lonlat_b.height);
412
466
  if (currMaxHeight > maxHeight) {
413
467
  maxHeight = currMaxHeight;
414
468
  }
415
- var max_h = currMaxHeight + 2.5 * hM_a * (maxHeight - currMaxHeight);
416
- var zero = Vec3.ZERO;
469
+ let max_h = currMaxHeight + 2.5 * hM_a * (maxHeight - currMaxHeight);
470
+ let zero = Vec3.ZERO;
417
471
 
418
472
  // camera path and orientations calculation
419
473
  for (let i = 0; i <= this._numFrames; i++) {
420
- var d = 1 - i / this._numFrames;
474
+ let d = 1 - i / this._numFrames;
421
475
  d = d * d * (3 - 2 * d);
422
476
  d *= d;
423
477
 
424
- // Error here
425
- var g_i = ground_a.smerp(ground_b, d).normalize();
426
- var ground_i = this.planet.getRayIntersectionEllipsoid(new Ray(zero, g_i));
427
- var t = 1 - d;
428
- var height_i =
478
+ let g_i = ground_a.smerp(ground_b, d).normalize();
479
+ let ground_i = this.planet.getRayIntersectionEllipsoid(new Ray(zero, g_i));
480
+ let t = 1 - d;
481
+ let height_i =
429
482
  this._lonLat.height * d * d * d +
430
483
  max_h * 3 * d * d * t +
431
484
  max_h * 3 * d * t * t +
432
485
  lonlat_b.height * t * t * t;
433
486
 
434
- var eye_i = ground_i.addA(g_i.scale(height_i));
435
- var up_i = v_a.smerp(v_b, d);
436
- var look_i = Vec3.add(eye_i, n_a.smerp(n_b, d).negateTo());
487
+ let eye_i = ground_i!.addA(g_i.scale(height_i));
488
+ let up_i = v_a.smerp(v_b, d);
489
+ let look_i = Vec3.add(eye_i, n_a.smerp(n_b, d).negateTo());
437
490
 
438
- var n = new Vec3(eye_i.x - look_i.x, eye_i.y - look_i.y, eye_i.z - look_i.z);
439
- var u = up_i.cross(n);
491
+ let n = new Vec3(eye_i.x - look_i.x, eye_i.y - look_i.y, eye_i.z - look_i.z);
492
+ let u = up_i.cross(n);
440
493
  n.normalize();
441
494
  u.normalize();
442
495
 
443
- var v = n.cross(u);
496
+ let v = n.cross(u);
444
497
  this._framesArr[i] = {
445
498
  eye: eye_i,
446
499
  n: n,
@@ -457,21 +510,31 @@ class PlanetCamera extends Camera {
457
510
  * Flies to the geo coordinates.
458
511
  * @public
459
512
  * @param {LonLat} lonlat - Finish coordinates.
460
- * @param {Vec3} [look] - Camera LOOK in the end of flying. Default - (0,0,0)
513
+ * @param {Vec3 | LonLat} [look] - Camera LOOK in the end of flying. Default - (0,0,0)
461
514
  * @param {Vec3} [up] - Camera UP vector in the end of flying. Default - (0,1,0)
462
- * @param {Number} [ampl] - Altitude amplitude factor.
463
- * @param {cameraCallback} [completeCallback] - Callback that calls after flying when flying is finished.
464
- * @param {cameraCallback} [startCallback] - Callback that calls befor the flying begins.
515
+ * @param {number} [ampl] - Altitude amplitude factor.
516
+ * @param {Function} [completeCallback] - Callback that calls after flying when flying is finished.
517
+ * @param {Function} [startCallback] - Callback that calls befor the flying begins.
518
+ * @param {Function} [frameCallback] - each frame callback
465
519
  */
466
- flyLonLat(lonlat, look, up, ampl, completeCallback, startCallback) {
467
- var _lonLat = new LonLat(lonlat.lon, lonlat.lat, lonlat.height || this._lonLat.height);
520
+ flyLonLat(
521
+ lonlat: LonLat,
522
+ look?: Vec3 | LonLat,
523
+ up?: Vec3,
524
+ ampl?: number,
525
+ completeCallback?: Function,
526
+ startCallback?: Function,
527
+ frameCallbak?: Function
528
+ ) {
529
+ let _lonLat = new LonLat(lonlat.lon, lonlat.lat, lonlat.height || this._lonLat.height);
468
530
  this.flyCartesian(
469
531
  this.planet.ellipsoid.lonLatToCartesian(_lonLat),
470
532
  look,
471
533
  up,
472
534
  ampl,
473
535
  completeCallback,
474
- startCallback
536
+ startCallback,
537
+ frameCallbak
475
538
  );
476
539
  }
477
540
 
@@ -482,7 +545,7 @@ class PlanetCamera extends Camera {
482
545
  stopFlying() {
483
546
  this.planet.layerLock.free(this._keyLock);
484
547
  this.planet.terrainLock.free(this._keyLock);
485
- this.planet._normalMapCreator.free(this._keyLock);
548
+ this.planet.normalMapCreator.free(this._keyLock);
486
549
 
487
550
  this._flying = false;
488
551
  this._framesArr.length = 0;
@@ -506,8 +569,8 @@ class PlanetCamera extends Camera {
506
569
  * @param {number} angle - Rotation angle.
507
570
  * @param {boolean} [spin] - If its true rotates around globe spin.
508
571
  */
509
- rotateLeft(angle, spin) {
510
- this.rotateHorizontal(angle * math.RADIANS, spin ^ true, Vec3.ZERO);
572
+ public rotateLeft(angle: number, spin: boolean) {
573
+ this.rotateHorizontal(angle * math.RADIANS, spin !== true, Vec3.ZERO);
511
574
  this.update();
512
575
  }
513
576
 
@@ -517,43 +580,43 @@ class PlanetCamera extends Camera {
517
580
  * @param {number} angle - Rotation angle.
518
581
  * @param {boolean} [spin] - If its true rotates around globe spin.
519
582
  */
520
- rotateRight(angle, spin) {
521
- this.rotateHorizontal(-angle * math.RADIANS, spin ^ true, Vec3.ZERO);
583
+ public rotateRight(angle: number, spin: boolean) {
584
+ this.rotateHorizontal(-angle * math.RADIANS, spin !== true, Vec3.ZERO);
522
585
  this.update();
523
586
  }
524
587
 
525
588
  /**
526
- * Rotates around planet to the north pole.
589
+ * Rotates around planet to the North Pole.
527
590
  * @public
528
591
  * @param {number} angle - Rotation angle.
529
592
  */
530
- rotateUp(angle) {
593
+ public rotateUp(angle: number) {
531
594
  this.rotateVertical(angle * math.RADIANS, Vec3.ZERO);
532
595
  this.update();
533
596
  }
534
597
 
535
598
  /**
536
- * Rotates around planet to the south pole.
599
+ * Rotates around planet to the South Pole.
537
600
  * @public
538
601
  * @param {number} angle - Rotation angle.
539
602
  */
540
- rotateDown(angle) {
603
+ public rotateDown(angle: number) {
541
604
  this.rotateVertical(-angle * math.RADIANS, Vec3.ZERO);
542
605
  this.update();
543
606
  }
544
607
 
545
- rotateVertical(angle, center, minSlope = 0) {
546
- var rot = new Mat4().setRotation(this._r, angle);
547
- var tr = new Mat4().setIdentity().translate(center);
548
- var ntr = new Mat4().setIdentity().translate(center.negateTo());
549
- var trm = tr.mul(rot).mul(ntr);
608
+ public override rotateVertical(angle: number, center: Vec3, minSlope: number = 0) {
609
+ let rot = new Mat4().setRotation(this._r, angle);
610
+ let tr = new Mat4().setIdentity().translate(center);
611
+ let ntr = new Mat4().setIdentity().translate(center.negateTo());
612
+ let trm = tr.mul(rot).mul(ntr);
550
613
 
551
614
  let eye = trm.mulVec3(this.eye);
552
615
  let u = rot.mulVec3(this._u).normalize();
553
616
  let r = rot.mulVec3(this._r).normalize();
554
617
  let b = rot.mulVec3(this._b).normalize();
555
618
 
556
- let eyeNorm = eye.normal();
619
+ let eyeNorm = eye.getNormal();
557
620
  let slope = b.dot(eyeNorm);
558
621
 
559
622
  if (minSlope) {
@@ -564,7 +627,7 @@ class PlanetCamera extends Camera {
564
627
  if (
565
628
  (slope > 0.1 && u.dot(eyeNorm) > 0) ||
566
629
  this.slope <= 0.1 ||
567
- this._u.dot(this.eye.normal()) <= 0.0
630
+ this._u.dot(this.eye.getNormal()) <= 0.0
568
631
  ) {
569
632
  this.eye = eye;
570
633
  this._u = u;
@@ -583,13 +646,13 @@ class PlanetCamera extends Camera {
583
646
  * Prepare camera to the frame. Used in render node frame function.
584
647
  * @public
585
648
  */
586
- checkFly() {
649
+ public checkFly() {
587
650
  if (this._flying) {
588
- var c = this._numFrames - this._framesCounter;
651
+ let c = this._numFrames - this._framesCounter;
589
652
 
590
653
  this.planet.layerLock.lock(this._keyLock);
591
654
  this.planet.terrainLock.lock(this._keyLock);
592
- this.planet._normalMapCreator.lock(this._keyLock);
655
+ this.planet.normalMapCreator.lock(this._keyLock);
593
656
 
594
657
  this.eye = this._framesArr[c].eye;
595
658
  this._r = this._framesArr[c].u;
@@ -614,7 +677,7 @@ class PlanetCamera extends Camera {
614
677
  }
615
678
  }
616
679
 
617
- checkTerrainCollision() {
680
+ public checkTerrainCollision() {
618
681
  this._terrainAltitude = this._lonLat.height;
619
682
  if (this._insideSegment && this._insideSegment.planet) {
620
683
  this._terrainAltitude = this._insideSegment.getTerrainPoint(
@@ -629,13 +692,13 @@ class PlanetCamera extends Camera {
629
692
  }
630
693
  }
631
694
 
632
- getSurfaceVisibleDistance(d) {
633
- let R = this.planet.ellipsoid._a;
695
+ public getSurfaceVisibleDistance(d: number): number {
696
+ let R = this.planet.ellipsoid.equatorialSize;
634
697
  return R * Math.acos(R / (R + this._lonLat.height + d));
635
698
  }
636
699
 
637
- getHeading() {
638
- let u = this.eye.normal();
700
+ public getHeading(): number {
701
+ let u = this.eye.getNormal();
639
702
  let f = Vec3.proj_b_to_plane(
640
703
  this.slope >= 0.97 ? this.getUp() : this.getForward(),
641
704
  u
@@ -648,9 +711,9 @@ class PlanetCamera extends Camera {
648
711
  return res;
649
712
  }
650
713
 
651
- isVisible(poi) {
714
+ public isVisible(poi: Vec3): boolean {
652
715
  let e = this.eye.length();
653
- return this.eye.distance(poi) < Math.sqrt(e * e - this.planet.ellipsoid._a2);
716
+ return this.eye.distance(poi) < Math.sqrt(e * e - this.planet.ellipsoid.equatorialSizeSqr);
654
717
  }
655
718
 
656
719
  // _calcOrientation() {
@@ -672,4 +735,4 @@ class PlanetCamera extends Camera {
672
735
  // }
673
736
  }
674
737
 
675
- export { PlanetCamera };
738
+ export {PlanetCamera};