@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,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,88 +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
116
  ...options,
38
117
  frustums: options.frustums || [[1, 100 + 0.075], [100, 1000 + 0.075], [1000, 1e6 + 10000], [1e6, 1e9]],
39
- //[[1, 1e3 + 100], [1e3, 1e6 + 10000], [1e6, 1e9]]*/
40
118
  }
41
119
  );
42
- /**
43
- * Assigned camera's planet.
44
- * @public
45
- * @type {Planet}
46
- */
120
+
47
121
  this.planet = planet;
48
122
 
49
- /**
50
- * Minimal alltitude that camera can reach over the terrain.
51
- * @public
52
- * @type {number}
53
- */
54
123
  this.minAltitude = options.minAltitude || 1;
55
124
 
56
- /**
57
- * Maximal alltitude that camera can reach over the globe.
58
- * @public
59
- * @type {number}
60
- */
61
125
  this.maxAltitude = options.maxAltitude || 20000000;
62
126
 
63
- /**
64
- * Current geographical degree position.
65
- * @protected
66
- * @type {LonLat}
67
- */
68
127
  this._lonLat = this.planet.ellipsoid.cartesianToLonLat(this.eye);
69
128
 
70
- /**
71
- * Current geographical mercator position.
72
- * @protected
73
- * @type {LonLat}
74
- */
75
129
  this._lonLatMerc = this._lonLat.forwardMercator();
76
130
 
77
- /**
78
- * Current altitude.
79
- * @protected
80
- * @type {number}
81
- */
82
131
  this._terrainAltitude = this._lonLat.height;
83
132
 
84
- /**
85
- * Cartesian coordinates on the terrain.
86
- * @protected
87
- * @type {Vec3}
88
- */
89
133
  this._terrainPoint = new Vec3();
90
134
 
91
- /**
92
- * Quad node that camera flies over.
93
- * @protected
94
- * @type {quadTree.Node}
95
- */
96
135
  this._insideSegment = null;
97
136
 
98
137
  this.slope = 0;
99
138
 
100
139
  this._keyLock = new Key();
101
140
 
102
- // Camera's flying frames
103
141
  this._framesArr = [];
104
142
  this._framesCounter = 0;
105
143
  this._numFrames = 50;
106
144
  this._completeCallback = null;
145
+ this._frameCallback = null;
107
146
  this._flying = false;
108
147
  this._checkTerrainCollision = true;
109
148
 
110
- this._velCart = new Vec3(0.0, 0.0, 0.0);
149
+ this.eyeNorm = this.eye.getNormal();
111
150
  }
112
151
 
113
- setTerrainCollisionActivity(isActive) {
152
+ public setTerrainCollisionActivity(isActive: boolean) {
114
153
  this._checkTerrainCollision = isActive;
115
154
  }
116
155
 
@@ -119,26 +158,26 @@ class PlanetCamera extends Camera {
119
158
  * @public
120
159
  * @virtual
121
160
  */
122
- update() {
161
+ public override update() {
123
162
  this.events.stopPropagation();
124
163
 
125
- let maxAlt = this.maxAltitude + this.planet.ellipsoid._a;
164
+ let maxAlt = this.maxAltitude + this.planet.ellipsoid.getEquatorialSize();
126
165
 
127
166
  if (this.eye.length() > maxAlt) {
128
- this.eye.copy(this.eye.normal().scale(maxAlt));
167
+ this.eye.copy(this.eye.getNormal().scale(maxAlt));
129
168
  }
130
169
 
131
170
  super.update();
132
171
 
133
172
  this.updateGeodeticPosition();
134
173
 
135
- this.eyeNorm = this.eye.normal();
174
+ this.eyeNorm = this.eye.getNormal();
136
175
  this.slope = this._b.dot(this.eyeNorm);
137
176
 
138
177
  this.events.dispatch(this.events.viewchange, this);
139
178
  }
140
179
 
141
- updateGeodeticPosition() {
180
+ public updateGeodeticPosition() {
142
181
  this.planet.ellipsoid.cartesianToLonLatRes(this.eye, this._lonLat);
143
182
  if (Math.abs(this._lonLat.lat) <= mercator.MAX_LAT) {
144
183
  LonLat.forwardMercatorRes(this._lonLat, this._lonLatMerc);
@@ -150,7 +189,7 @@ class PlanetCamera extends Camera {
150
189
  * @public
151
190
  * @param {number} alt - Altitude over the terrain.
152
191
  */
153
- setAltitude(alt) {
192
+ public setAltitude(alt: number) {
154
193
 
155
194
  let t = this._terrainPoint;
156
195
  let n = this.planet.ellipsoid.getSurfaceNormal3v(this.eye);
@@ -166,7 +205,7 @@ class PlanetCamera extends Camera {
166
205
  * Gets altitude over the terrain.
167
206
  * @public
168
207
  */
169
- getAltitude() {
208
+ public getAltitude(): number {
170
209
  return this._terrainAltitude;
171
210
  }
172
211
 
@@ -177,12 +216,12 @@ class PlanetCamera extends Camera {
177
216
  * @param {LonLat} [lookLonLat] - Look up coordinates.
178
217
  * @param {Vec3} [up] - Camera UP vector. Default (0,1,0)
179
218
  */
180
- setLonLat(lonlat, lookLonLat, up) {
219
+ public setLonLat(lonlat: LonLat, lookLonLat?: LonLat, up?: Vec3) {
181
220
  this.stopFlying();
182
221
  this._lonLat.set(lonlat.lon, lonlat.lat, lonlat.height || this._lonLat.height);
183
- var el = this.planet.ellipsoid;
184
- var newEye = el.lonLatToCartesian(this._lonLat);
185
- 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;
186
225
  this.set(newEye, newLook, up || Vec3.NORTH);
187
226
  this.update();
188
227
  }
@@ -192,7 +231,7 @@ class PlanetCamera extends Camera {
192
231
  * @public
193
232
  * @returns {LonLat}
194
233
  */
195
- getLonLat() {
234
+ public getLonLat(): LonLat {
196
235
  return this._lonLat;
197
236
  }
198
237
 
@@ -201,7 +240,7 @@ class PlanetCamera extends Camera {
201
240
  * @public
202
241
  * @returns {number}
203
242
  */
204
- getHeight() {
243
+ public getHeight(): number {
205
244
  return this._lonLat.height;
206
245
  }
207
246
 
@@ -212,30 +251,30 @@ class PlanetCamera extends Camera {
212
251
  * @param {Number} height - Camera height
213
252
  * @returns {Vec3}
214
253
  */
215
- getExtentPosition(extent, height) {
216
- var north = extent.getNorth();
217
- var south = extent.getSouth();
218
- var east = extent.getEast();
219
- 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();
220
259
 
221
260
  if (west > east) {
222
261
  east += 360;
223
262
  }
224
263
 
225
- var e = this.planet.ellipsoid;
264
+ let e = this.planet.ellipsoid;
226
265
 
227
- var cart = new LonLat(east, north);
228
- var northEast = e.lonLatToCartesian(cart);
266
+ let cart = new LonLat(east, north);
267
+ let northEast = e.lonLatToCartesian(cart);
229
268
  cart.lat = south;
230
- var southEast = e.lonLatToCartesian(cart);
269
+ let southEast = e.lonLatToCartesian(cart);
231
270
  cart.lon = west;
232
- var southWest = e.lonLatToCartesian(cart);
271
+ let southWest = e.lonLatToCartesian(cart);
233
272
  cart.lat = north;
234
- var northWest = e.lonLatToCartesian(cart);
273
+ let northWest = e.lonLatToCartesian(cart);
235
274
 
236
- var center = Vec3.sub(northEast, southWest).scale(0.5).addA(southWest);
275
+ let center = Vec3.sub(northEast, southWest).scale(0.5).addA(southWest);
237
276
 
238
- var mag = center.length();
277
+ let mag = center.length();
239
278
  if (mag < 0.000001) {
240
279
  cart.lon = (east + west) * 0.5;
241
280
  cart.lat = (north + south) * 0.5;
@@ -247,30 +286,30 @@ class PlanetCamera extends Camera {
247
286
  northEast.subA(center);
248
287
  southWest.subA(center);
249
288
 
250
- var direction = center.normal(); // ellipsoid.getSurfaceNormal(center).negate().normalize();
251
- var right = direction.cross(Vec3.NORTH).normalize();
252
- 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();
253
292
 
254
- var _h = Math.max(
293
+ let _h = Math.max(
255
294
  Math.abs(up.dot(northWest)),
256
295
  Math.abs(up.dot(southEast)),
257
296
  Math.abs(up.dot(northEast)),
258
297
  Math.abs(up.dot(southWest))
259
298
  );
260
299
 
261
- var _w = Math.max(
300
+ let _w = Math.max(
262
301
  Math.abs(right.dot(northWest)),
263
302
  Math.abs(right.dot(southEast)),
264
303
  Math.abs(right.dot(northEast)),
265
304
  Math.abs(right.dot(southWest))
266
305
  );
267
306
 
268
- var tanPhi = Math.tan(this._viewAngle * math.RADIANS * 0.5);
269
- var tanTheta = this._aspect * tanPhi;
270
- 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);
271
310
 
272
311
  center.normalize();
273
- center.scale(mag + d + (height || 0));
312
+ center.scale(mag + d + height);
274
313
 
275
314
  return center;
276
315
  }
@@ -279,8 +318,9 @@ class PlanetCamera extends Camera {
279
318
  * View current extent.
280
319
  * @public
281
320
  * @param {Extent} extent - Current extent.
321
+ * @param {number} [height]
282
322
  */
283
- viewExtent(extent, height) {
323
+ public viewExtent(extent: Extent, height?: number) {
284
324
  this.stopFlying();
285
325
  this.set(this.getExtentPosition(extent, height), Vec3.ZERO, Vec3.NORTH);
286
326
  this.update();
@@ -290,13 +330,21 @@ class PlanetCamera extends Camera {
290
330
  * Flies to the current extent.
291
331
  * @public
292
332
  * @param {Extent} extent - Current extent.
333
+ * @param {number} [height] - Destination height.
293
334
  * @param {Vec3} [up] - Camera UP in the end of flying. Default - (0,1,0)
294
335
  * @param {Number} [ampl] - Altitude amplitude factor.
295
- * @param {cameraCallback} [completeCallback] - Callback that calls after flying when flying is finished.
296
- * @param {cameraCallback} [startCallback] - Callback that calls befor the flying begins.
297
- * @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
298
339
  */
299
- 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) {
300
348
  this.flyCartesian(
301
349
  this.getExtentPosition(extent, height),
302
350
  Vec3.ZERO,
@@ -308,9 +356,9 @@ class PlanetCamera extends Camera {
308
356
  );
309
357
  }
310
358
 
311
- viewDistance(cartesian, distance = 10000.0) {
359
+ public viewDistance(cartesian: Vec3, distance: number = 10000.0) {
312
360
  let p0 = this.eye.add(this.getForward().scaleTo(distance));
313
- let _rot = Quat.getRotationBetweenVectors(p0.normal(), cartesian.normal());
361
+ let _rot = Quat.getRotationBetweenVectors(p0.getNormal(), cartesian.getNormal());
314
362
  if (_rot.isZero()) {
315
363
  let newPos = cartesian.add(this.getBackward().scaleTo(distance));
316
364
  this.set(newPos, cartesian);
@@ -322,16 +370,16 @@ class PlanetCamera extends Camera {
322
370
  this.update();
323
371
  }
324
372
 
325
- flyDistance(
326
- cartesian,
327
- distance = 10000.0,
328
- ampl = 0.0,
329
- completeCallback,
330
- startCallback,
331
- 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
332
380
  ) {
333
381
  let p0 = this.eye.add(this.getForward().scaleTo(distance));
334
- let _rot = Quat.getRotationBetweenVectors(p0.normal(), cartesian.normal());
382
+ let _rot = Quat.getRotationBetweenVectors(p0.getNormal(), cartesian.getNormal());
335
383
  if (_rot.isZero()) {
336
384
  let newPos = cartesian.add(this.getBackward().scaleTo(distance));
337
385
  this.set(newPos, cartesian);
@@ -357,14 +405,21 @@ class PlanetCamera extends Camera {
357
405
  * @param {Vec3} [look] - Camera LOOK in the end of flying. Default - (0,0,0)
358
406
  * @param {Vec3} [up] - Camera UP vector in the end of flying. Default - (0,1,0)
359
407
  * @param {Number} [ampl=1.0] - Altitude amplitude factor.
360
- * @param {cameraCallback} [completeCallback] - Callback that calls after flying when flying is finished.
361
- * @param {cameraCallback} [startCallback] - Callback that calls befor the flying begins.
362
- * @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
363
411
  */
364
- flyCartesian(cartesian, look = Vec3.ZERO, up = Vec3.NORTH, ampl = 1.0, completeCallback = () => {
365
- }, startCallback = () => {
366
- }, frameCallback = () => {
367
- }) {
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
+ }) {
368
423
 
369
424
  this.stopFlying();
370
425
 
@@ -383,63 +438,62 @@ class PlanetCamera extends Camera {
383
438
  look = this.planet.ellipsoid.lonLatToCartesian(look);
384
439
  }
385
440
 
386
- var ground_a = this.planet.ellipsoid.lonLatToCartesian(
441
+ let ground_a = this.planet.ellipsoid.lonLatToCartesian(
387
442
  new LonLat(this._lonLat.lon, this._lonLat.lat)
388
443
  );
389
- var v_a = this._u,
444
+
445
+ let v_a = this._u,
390
446
  n_a = this._b;
391
447
 
392
- var lonlat_b = this.planet.ellipsoid.cartesianToLonLat(cartesian);
393
- var up_b = up;
394
- 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(
395
451
  new LonLat(lonlat_b.lon, lonlat_b.lat, 0)
396
452
  );
397
- var eye_b = cartesian;
398
- var n_b = Vec3.sub(eye_b, look);
399
- 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);
400
455
  n_b.normalize();
401
456
  u_b.normalize();
402
- var v_b = n_b.cross(u_b);
457
+ let v_b = n_b.cross(u_b);
403
458
 
404
- var an = ground_a.normal();
405
- var bn = ground_b.normal();
406
- var anbn = 1.0 - an.dot(bn);
407
- 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);
408
463
 
409
- var maxHeight = 6639613;
410
- 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);
411
466
  if (currMaxHeight > maxHeight) {
412
467
  maxHeight = currMaxHeight;
413
468
  }
414
- var max_h = currMaxHeight + 2.5 * hM_a * (maxHeight - currMaxHeight);
415
- var zero = Vec3.ZERO;
469
+ let max_h = currMaxHeight + 2.5 * hM_a * (maxHeight - currMaxHeight);
470
+ let zero = Vec3.ZERO;
416
471
 
417
472
  // camera path and orientations calculation
418
473
  for (let i = 0; i <= this._numFrames; i++) {
419
- var d = 1 - i / this._numFrames;
474
+ let d = 1 - i / this._numFrames;
420
475
  d = d * d * (3 - 2 * d);
421
476
  d *= d;
422
477
 
423
- // Error here
424
- var g_i = ground_a.smerp(ground_b, d).normalize();
425
- var ground_i = this.planet.getRayIntersectionEllipsoid(new Ray(zero, g_i));
426
- var t = 1 - d;
427
- 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 =
428
482
  this._lonLat.height * d * d * d +
429
483
  max_h * 3 * d * d * t +
430
484
  max_h * 3 * d * t * t +
431
485
  lonlat_b.height * t * t * t;
432
486
 
433
- var eye_i = ground_i.addA(g_i.scale(height_i));
434
- var up_i = v_a.smerp(v_b, d);
435
- 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());
436
490
 
437
- var n = new Vec3(eye_i.x - look_i.x, eye_i.y - look_i.y, eye_i.z - look_i.z);
438
- 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);
439
493
  n.normalize();
440
494
  u.normalize();
441
495
 
442
- var v = n.cross(u);
496
+ let v = n.cross(u);
443
497
  this._framesArr[i] = {
444
498
  eye: eye_i,
445
499
  n: n,
@@ -456,21 +510,31 @@ class PlanetCamera extends Camera {
456
510
  * Flies to the geo coordinates.
457
511
  * @public
458
512
  * @param {LonLat} lonlat - Finish coordinates.
459
- * @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)
460
514
  * @param {Vec3} [up] - Camera UP vector in the end of flying. Default - (0,1,0)
461
- * @param {Number} [ampl] - Altitude amplitude factor.
462
- * @param {cameraCallback} [completeCallback] - Callback that calls after flying when flying is finished.
463
- * @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
464
519
  */
465
- flyLonLat(lonlat, look, up, ampl, completeCallback, startCallback) {
466
- 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);
467
530
  this.flyCartesian(
468
531
  this.planet.ellipsoid.lonLatToCartesian(_lonLat),
469
532
  look,
470
533
  up,
471
534
  ampl,
472
535
  completeCallback,
473
- startCallback
536
+ startCallback,
537
+ frameCallbak
474
538
  );
475
539
  }
476
540
 
@@ -481,7 +545,7 @@ class PlanetCamera extends Camera {
481
545
  stopFlying() {
482
546
  this.planet.layerLock.free(this._keyLock);
483
547
  this.planet.terrainLock.free(this._keyLock);
484
- this.planet._normalMapCreator.free(this._keyLock);
548
+ this.planet.normalMapCreator.free(this._keyLock);
485
549
 
486
550
  this._flying = false;
487
551
  this._framesArr.length = 0;
@@ -505,8 +569,8 @@ class PlanetCamera extends Camera {
505
569
  * @param {number} angle - Rotation angle.
506
570
  * @param {boolean} [spin] - If its true rotates around globe spin.
507
571
  */
508
- rotateLeft(angle, spin) {
509
- 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);
510
574
  this.update();
511
575
  }
512
576
 
@@ -516,43 +580,43 @@ class PlanetCamera extends Camera {
516
580
  * @param {number} angle - Rotation angle.
517
581
  * @param {boolean} [spin] - If its true rotates around globe spin.
518
582
  */
519
- rotateRight(angle, spin) {
520
- 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);
521
585
  this.update();
522
586
  }
523
587
 
524
588
  /**
525
- * Rotates around planet to the north pole.
589
+ * Rotates around planet to the North Pole.
526
590
  * @public
527
591
  * @param {number} angle - Rotation angle.
528
592
  */
529
- rotateUp(angle) {
593
+ public rotateUp(angle: number) {
530
594
  this.rotateVertical(angle * math.RADIANS, Vec3.ZERO);
531
595
  this.update();
532
596
  }
533
597
 
534
598
  /**
535
- * Rotates around planet to the south pole.
599
+ * Rotates around planet to the South Pole.
536
600
  * @public
537
601
  * @param {number} angle - Rotation angle.
538
602
  */
539
- rotateDown(angle) {
603
+ public rotateDown(angle: number) {
540
604
  this.rotateVertical(-angle * math.RADIANS, Vec3.ZERO);
541
605
  this.update();
542
606
  }
543
607
 
544
- rotateVertical(angle, center, minSlope = 0) {
545
- var rot = new Mat4().setRotation(this._r, angle);
546
- var tr = new Mat4().setIdentity().translate(center);
547
- var ntr = new Mat4().setIdentity().translate(center.negateTo());
548
- 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);
549
613
 
550
614
  let eye = trm.mulVec3(this.eye);
551
615
  let u = rot.mulVec3(this._u).normalize();
552
616
  let r = rot.mulVec3(this._r).normalize();
553
617
  let b = rot.mulVec3(this._b).normalize();
554
618
 
555
- let eyeNorm = eye.normal();
619
+ let eyeNorm = eye.getNormal();
556
620
  let slope = b.dot(eyeNorm);
557
621
 
558
622
  if (minSlope) {
@@ -563,7 +627,7 @@ class PlanetCamera extends Camera {
563
627
  if (
564
628
  (slope > 0.1 && u.dot(eyeNorm) > 0) ||
565
629
  this.slope <= 0.1 ||
566
- this._u.dot(this.eye.normal()) <= 0.0
630
+ this._u.dot(this.eye.getNormal()) <= 0.0
567
631
  ) {
568
632
  this.eye = eye;
569
633
  this._u = u;
@@ -582,13 +646,13 @@ class PlanetCamera extends Camera {
582
646
  * Prepare camera to the frame. Used in render node frame function.
583
647
  * @public
584
648
  */
585
- checkFly() {
649
+ public checkFly() {
586
650
  if (this._flying) {
587
- var c = this._numFrames - this._framesCounter;
651
+ let c = this._numFrames - this._framesCounter;
588
652
 
589
653
  this.planet.layerLock.lock(this._keyLock);
590
654
  this.planet.terrainLock.lock(this._keyLock);
591
- this.planet._normalMapCreator.lock(this._keyLock);
655
+ this.planet.normalMapCreator.lock(this._keyLock);
592
656
 
593
657
  this.eye = this._framesArr[c].eye;
594
658
  this._r = this._framesArr[c].u;
@@ -613,7 +677,7 @@ class PlanetCamera extends Camera {
613
677
  }
614
678
  }
615
679
 
616
- checkTerrainCollision() {
680
+ public checkTerrainCollision() {
617
681
  this._terrainAltitude = this._lonLat.height;
618
682
  if (this._insideSegment && this._insideSegment.planet) {
619
683
  this._terrainAltitude = this._insideSegment.getTerrainPoint(
@@ -628,13 +692,13 @@ class PlanetCamera extends Camera {
628
692
  }
629
693
  }
630
694
 
631
- getSurfaceVisibleDistance(d) {
632
- let R = this.planet.ellipsoid._a;
695
+ public getSurfaceVisibleDistance(d: number): number {
696
+ let R = this.planet.ellipsoid.equatorialSize;
633
697
  return R * Math.acos(R / (R + this._lonLat.height + d));
634
698
  }
635
699
 
636
- getHeading() {
637
- let u = this.eye.normal();
700
+ public getHeading(): number {
701
+ let u = this.eye.getNormal();
638
702
  let f = Vec3.proj_b_to_plane(
639
703
  this.slope >= 0.97 ? this.getUp() : this.getForward(),
640
704
  u
@@ -647,9 +711,9 @@ class PlanetCamera extends Camera {
647
711
  return res;
648
712
  }
649
713
 
650
- isVisible(poi) {
714
+ public isVisible(poi: Vec3): boolean {
651
715
  let e = this.eye.length();
652
- 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);
653
717
  }
654
718
 
655
719
  // _calcOrientation() {
@@ -671,4 +735,4 @@ class PlanetCamera extends Camera {
671
735
  // }
672
736
  }
673
737
 
674
- export { PlanetCamera };
738
+ export {PlanetCamera};