@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
@@ -0,0 +1,4 @@
1
+ import { Camera } from './Camera';
2
+ import { PlanetCamera } from './PlanetCamera';
3
+
4
+ export { Camera, PlanetCamera };
@@ -1,10 +1,12 @@
1
- 'use strict';
2
-
3
1
  /**
4
2
  * Console logging singleton object.
5
3
  * @class
6
4
  */
7
5
  export class Cons {
6
+
7
+ protected _container: HTMLElement;
8
+ protected _visibility: boolean;
9
+
8
10
  constructor() {
9
11
  this._container = document.createElement("div");
10
12
  this._container.classList.add("ogConsole");
@@ -16,11 +18,11 @@ export class Cons {
16
18
  this._visibility = false;
17
19
  }
18
20
 
19
- getVisibility() {
21
+ public getVisibility(): boolean {
20
22
  return this._visibility;
21
23
  }
22
24
 
23
- setVisibility(visibility) {
25
+ public setVisibility(visibility: boolean) {
24
26
  if (this._visibility != visibility) {
25
27
  this._visibility = visibility;
26
28
  if (this._visibility) {
@@ -35,7 +37,7 @@ export class Cons {
35
37
  * Show console panel.
36
38
  * @public
37
39
  */
38
- show() {
40
+ public show() {
39
41
  if (!this._container.parentNode) {
40
42
  if (document.body) {
41
43
  document.body.appendChild(this._container);
@@ -49,7 +51,7 @@ export class Cons {
49
51
  * Hide console panel.
50
52
  * @public
51
53
  */
52
- hide() {
54
+ public hide() {
53
55
  this._container.style.display = "none";
54
56
  this._visibility = false;
55
57
  }
@@ -59,8 +61,8 @@ export class Cons {
59
61
  * @public
60
62
  * @param {string} str - Error text.
61
63
  */
62
- logErr(str) {
63
- var d = document.createElement("div");
64
+ public logErr(str: string) {
65
+ let d = document.createElement("div");
64
66
  d.classList.add("ogConsole-text");
65
67
  d.classList.add("ogConsole-error");
66
68
  d.innerHTML = "error: " + str;
@@ -74,8 +76,8 @@ export class Cons {
74
76
  * @public
75
77
  * @param {string} str - Warning text.
76
78
  */
77
- logWrn(str) {
78
- var d = document.createElement("div");
79
+ public logWrn(str: string) {
80
+ let d = document.createElement("div");
79
81
  d.classList.add("ogConsole-text");
80
82
  d.classList.add("ogConsole-warning");
81
83
  d.innerHTML = "warning: " + str;
@@ -88,16 +90,10 @@ export class Cons {
88
90
  * Adds log text in the console.
89
91
  * @public
90
92
  * @param {string} str - Log text.
91
- * @param {Object} [style] - HTML style.
92
93
  */
93
- log(str, style) {
94
- var d = document.createElement("div");
94
+ public log(str: string) {
95
+ let d = document.createElement("div");
95
96
  d.classList.add("ogConsole-text");
96
- if (style) {
97
- for (let s in style) {
98
- d.style[s] = style[s];
99
- }
100
- }
101
97
  d.innerHTML = str;
102
98
  console.trace(str);
103
99
  this._container.appendChild(d);
@@ -1,18 +1,17 @@
1
- "use strict";
2
-
3
- import * as atmos from "../shaders/atmos.js";
4
- import { Framebuffer } from "../webgl/index.js";
5
- import { Program } from '../webgl/Program.js';
6
- import { Control } from "./Control.js";
7
-
8
- /**
9
- * Frame per second(FPS) display control.
10
- * @class
11
- * @extends {Control}
12
- * @param {Object} [options] - Control options.
13
- */
14
- class Atmosphere extends Control {
15
- constructor(options) {
1
+ import * as atmos from "../shaders/atmos";
2
+ import {Framebuffer} from "../webgl/Framebuffer";
3
+ import {Program} from '../webgl/Program';
4
+ import {Control, IControlParams} from "./Control";
5
+
6
+ interface IAtmosphereParams extends IControlParams {
7
+ }
8
+
9
+ export class Atmosphere extends Control {
10
+ public _transmittanceBuffer: Framebuffer | null;
11
+ public _scatteringBuffer: Framebuffer | null;
12
+ public opacity: number;
13
+
14
+ constructor(options: IAtmosphereParams = {}) {
16
15
  super({
17
16
  name: "Atmosphere",
18
17
  ...options
@@ -24,32 +23,33 @@ class Atmosphere extends Control {
24
23
  this.opacity = 1.0;
25
24
  }
26
25
 
27
- oninit() {
28
- this.renderer.handler.addProgram(atmos.transmittance(), true);
29
- this.renderer.handler.addProgram(atmos.scattering(), true);
30
- this.renderer.handler.addProgram(atmosphereBackgroundShader(), true);
26
+ public override oninit() {
27
+ if (this.renderer) {
28
+ this.renderer.handler.addProgram(atmos.transmittance(), true);
29
+ this.renderer.handler.addProgram(atmos.scattering(), true);
30
+ this.renderer.handler.addProgram(atmosphereBackgroundShader(), true);
31
31
 
32
- this._drawAtmosphereTextures();
33
-
34
- this.activate();
32
+ this._drawAtmosphereTextures();
33
+ this.activate();
34
+ }
35
35
  }
36
36
 
37
- onactivate() {
37
+ public override onactivate() {
38
38
  super.onactivate();
39
- this.planet.events.on("draw", this._drawBackground, this);
39
+ this.planet && this.planet.events.on("draw", this._drawBackground, this);
40
40
  }
41
41
 
42
- ondeactivate() {
42
+ public override ondeactivate() {
43
43
  super.ondeactivate();
44
- this.planet.events.off("draw", this._drawBackground);
44
+ this.planet && this.planet.events.off("draw", this._drawBackground);
45
45
  }
46
46
 
47
- _drawAtmosphereTextures() {
47
+ protected _drawAtmosphereTextures() {
48
48
 
49
49
  let width = 256,
50
50
  height = 128;
51
51
 
52
- this._transmittanceBuffer = new Framebuffer(this.renderer.handler, {
52
+ this._transmittanceBuffer = new Framebuffer(this.renderer!.handler, {
53
53
  width: width,
54
54
  height: height,
55
55
  useDepth: false,
@@ -60,7 +60,7 @@ class Atmosphere extends Control {
60
60
 
61
61
  this._transmittanceBuffer.init();
62
62
 
63
- this._scatteringBuffer = new Framebuffer(this.renderer.handler, {
63
+ this._scatteringBuffer = new Framebuffer(this.renderer!.handler, {
64
64
  width: width,
65
65
  height: height,
66
66
  useDepth: false,
@@ -71,10 +71,10 @@ class Atmosphere extends Control {
71
71
 
72
72
  this._scatteringBuffer.init();
73
73
 
74
- let positionBuffer = this.renderer.screenFramePositionBuffer;
74
+ let positionBuffer = this.renderer!.screenFramePositionBuffer;
75
75
 
76
- let h = this.renderer.handler;
77
- let gl = h.gl;
76
+ let h = this.renderer!.handler;
77
+ let gl = h.gl!;
78
78
 
79
79
  //
80
80
  // Draw transmittance texture
@@ -91,9 +91,9 @@ class Atmosphere extends Control {
91
91
 
92
92
  gl.uniform2fv(shu.iResolution, [this._transmittanceBuffer.width, this._transmittanceBuffer.height]);
93
93
 
94
- gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);
95
- gl.vertexAttribPointer(sha.a_position, positionBuffer.itemSize, gl.FLOAT, false, 0, 0);
96
- gl.drawArrays(gl.TRIANGLE_STRIP, 0, positionBuffer.numItems);
94
+ gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer!);
95
+ gl.vertexAttribPointer(sha.a_position, positionBuffer!.itemSize, gl.FLOAT, false, 0, 0);
96
+ gl.drawArrays(gl.TRIANGLE_STRIP, 0, positionBuffer!.numItems);
97
97
 
98
98
  this._transmittanceBuffer.deactivate();
99
99
 
@@ -116,9 +116,9 @@ class Atmosphere extends Control {
116
116
  gl.bindTexture(gl.TEXTURE_2D, this._transmittanceBuffer.textures[0]);
117
117
  gl.uniform1i(shu.transmittanceTexture, 0);
118
118
 
119
- gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);
120
- gl.vertexAttribPointer(sha.a_position, positionBuffer.itemSize, gl.FLOAT, false, 0, 0);
121
- gl.drawArrays(gl.TRIANGLE_STRIP, 0, positionBuffer.numItems);
119
+ gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer!);
120
+ gl.vertexAttribPointer(sha.a_position, positionBuffer!.itemSize, gl.FLOAT, false, 0, 0);
121
+ gl.drawArrays(gl.TRIANGLE_STRIP, 0, positionBuffer!.numItems);
122
122
 
123
123
  this._scatteringBuffer.deactivate();
124
124
 
@@ -133,33 +133,35 @@ class Atmosphere extends Control {
133
133
  }
134
134
  }
135
135
 
136
- _drawBackground() {
137
- let h = this.renderer.handler;
136
+ protected _drawBackground() {
137
+ let h = this.renderer!.handler;
138
138
  let sh = h.programs.atmosphereBackground,
139
139
  p = sh._program,
140
- shu = p.uniforms, gl = h.gl;
141
- let cam = this.renderer.activeCamera;
140
+ shu = p.uniforms,
141
+ gl = h.gl!;
142
+ let r = this.renderer!;
143
+ let cam = this.planet!.camera;
142
144
 
143
145
  gl.disable(gl.DEPTH_TEST);
144
146
 
145
147
  sh.activate();
146
- gl.bindBuffer(gl.ARRAY_BUFFER, this.renderer.screenFramePositionBuffer);
148
+ gl.bindBuffer(gl.ARRAY_BUFFER, r.screenFramePositionBuffer!);
147
149
  gl.vertexAttribPointer(p.attributes.corners, 2, gl.FLOAT, false, 0, 0);
148
150
 
149
151
  gl.activeTexture(gl.TEXTURE0);
150
- gl.bindTexture(gl.TEXTURE_2D, this._transmittanceBuffer.textures[0]);
152
+ gl.bindTexture(gl.TEXTURE_2D, this._transmittanceBuffer!.textures[0]);
151
153
  gl.uniform1i(shu.transmittanceTexture, 0);
152
154
 
153
155
  gl.activeTexture(gl.TEXTURE1);
154
- gl.bindTexture(gl.TEXTURE_2D, this._scatteringBuffer.textures[0]);
156
+ gl.bindTexture(gl.TEXTURE_2D, this._scatteringBuffer!.textures[0]);
155
157
  gl.uniform1i(shu.scatteringTexture, 1);
156
158
 
157
159
  gl.uniformMatrix4fv(shu.viewMatrix, false, cam.getViewMatrix());
158
160
 
159
- let sunPos = this.planet.sunPos;
161
+ let sunPos = this.planet!.sunPos;
160
162
  gl.uniform3fv(shu.sunPos, [sunPos.x, sunPos.y, sunPos.z]);
161
163
  gl.uniform3fv(shu.camPos, [cam.eye.x, cam.eye.y, cam.eye.z]);
162
- gl.uniform2fv(shu.iResolution, [this.renderer.sceneFramebuffer.width, this.renderer.sceneFramebuffer.height]);
164
+ gl.uniform2fv(shu.iResolution, [r.sceneFramebuffer!.width, r.sceneFramebuffer!.height]);
163
165
  gl.uniform1f(shu.fov, cam.getViewAngle());
164
166
  gl.uniform1f(shu.opacity, this.opacity);
165
167
 
@@ -169,7 +171,7 @@ class Atmosphere extends Control {
169
171
  }
170
172
  }
171
173
 
172
- function atmosphereBackgroundShader() {
174
+ function atmosphereBackgroundShader(): Program {
173
175
  return new Program("atmosphereBackground", {
174
176
  uniforms: {
175
177
  iResolution: "vec2",
@@ -383,5 +385,3 @@ function atmosphereBackgroundShader() {
383
385
  }`
384
386
  });
385
387
  }
386
-
387
- export { Atmosphere };
@@ -1,7 +1,5 @@
1
- "use strict";
2
-
3
- import { Button } from "../ui/Button.js";
4
- import { Control } from "./Control.js";
1
+ import {Button} from "../ui/Button";
2
+ import {Control, IControlParams} from "./Control";
5
3
 
6
4
  const ICON_BUTTON_SVG = `<?xml version="1.0" encoding="UTF-8" standalone="no"?>
7
5
  <svg
@@ -79,68 +77,67 @@ const ICON_BUTTON_SVG = `<?xml version="1.0" encoding="UTF-8" standalone="no"?>
79
77
  </g>
80
78
  </svg>`;
81
79
 
80
+ interface ICompasButtonParams extends IControlParams {
81
+
82
+ }
83
+
82
84
  /**
83
85
  * Planet compass button
84
- * @class
85
- * @extends {Control}
86
- * @params {Object} [options] - Control options.
87
86
  */
88
- class CompassButton extends Control {
89
- constructor(options = {}) {
87
+ export class CompassButton extends Control {
88
+ protected _heading: number;
89
+ protected _svg: HTMLElement | null;
90
+
91
+ constructor(options: ICompasButtonParams = {}) {
90
92
  super(options);
91
- this._heading = null;
93
+ this._heading = 0;
92
94
  this._svg = null;
93
95
  }
94
96
 
95
- oninit() {
97
+ public override oninit() {
96
98
 
97
99
  let btn = new Button({
98
100
  classList: ["og-map-button", "og-compass-button"],
99
101
  icon: ICON_BUTTON_SVG
100
102
  });
101
103
 
102
- btn.appendTo(this.renderer.div);
104
+ btn.appendTo(this.renderer!.div!);
103
105
 
104
- btn.on("click", this._onClick, this);
106
+ btn.events.on("click", this._onClick, this);
105
107
 
106
108
  this._svg = btn.select("svg");
107
109
 
108
- this.renderer.events.on("draw", this._draw, this);
110
+ this.renderer!.events!.on("draw", this._draw, this);
109
111
  }
110
112
 
111
- _onClick() {
112
- let c = this.planet.getCartesianFromPixelTerrain(this.renderer.handler.getCenter());
113
+ protected _onClick() {
114
+ const planet = this.planet!;
115
+ let c = planet.getCartesianFromPixelTerrain(this.renderer!.handler!.getCenter());
113
116
  if (c) {
114
- this.planet.flyCartesian(
115
- c.normal().scaleTo(c.length() + c.distance(this.planet.camera.eye)),
117
+ planet.flyCartesian(
118
+ c.normal().scaleTo(c.length() + c.distance(planet.camera.eye)),
116
119
  null,
117
120
  null,
118
121
  0,
119
122
  null,
120
123
  null,
121
124
  () => {
122
- this.planet.camera.look(c);
125
+ planet.camera.look(c!);
123
126
  }
124
127
  );
125
128
  } else {
126
- this.planet.flyCartesian(this.planet.camera.eye);
129
+ planet.flyCartesian(planet.camera.eye);
127
130
  }
128
131
  }
129
132
 
130
- _draw(e) {
131
- this.setHeading(e.activeCamera.getHeading());
133
+ protected _draw() {
134
+ this.setHeading(this.planet!.camera.getHeading());
132
135
  }
133
136
 
134
- setHeading(heading) {
137
+ public setHeading(heading: number) {
135
138
  if (this._heading !== heading) {
136
139
  this._heading = heading;
137
- this._svg.style.transform = `rotateZ(${-heading}deg)`;
140
+ this._svg!.style.transform = `rotateZ(${-heading}deg)`;
138
141
  }
139
142
  }
140
143
  }
141
-
142
- export function compassButton(options) {
143
- return new CompassButton(options);
144
- }
145
-
146
- export { CompassButton };
@@ -1,110 +1,113 @@
1
- "use strict";
1
+ import {Planet, Renderer} from "../index";
2
+
3
+ export interface IControlParams {
4
+ name?: string;
5
+ autoActivate?: boolean
6
+ }
2
7
 
3
8
  /**
4
- * Base control class for implementing renderer controls.
5
- * All other controls extend from this class.
6
- * @class
7
- * @param {Object} [options] - Control activation options:
9
+ * Base control class. All other controls extend from this class.
10
+ * @class Control
8
11
  * @param {Boolean} [options.autoActivated=true] - If true - calls initialize function after the renderer assigning.
9
12
  */
10
- class Control {
13
+ export class Control {
14
+ static __counter__: number = 0;
15
+ protected __id: number;
16
+ protected _name: string;
17
+
18
+ /**
19
+ * Control activity.
20
+ * @protected
21
+ * @type {boolean}
22
+ */
23
+ protected _active: boolean;
24
+
25
+ /**
26
+ * Control initialized.
27
+ * @protected
28
+ * @type {boolean}
29
+ */
30
+ protected _initialized: boolean;
31
+
32
+ public planet: Planet | null;
33
+
34
+ /**
35
+ * Assigned renderer.
36
+ * @public
37
+ * @type {Renderer}
38
+ */
39
+ public renderer: Renderer | null;
40
+
11
41
  /**
12
- * @param {Object} [options] - Control activation options:
42
+ * Auto activation flag.
43
+ * @public
44
+ * @type {boolean}
13
45
  */
14
- constructor(options) {
15
- options = options || {};
46
+ public autoActivate: boolean;
47
+
48
+ protected _deferredActive: boolean;
16
49
 
17
- this._id = Control.__staticCounter++;
50
+ constructor(options: IControlParams = {}) {
18
51
 
19
- this._name = options.name || "_control_" + this._id;
52
+ this.__id = Control.__counter__++;
53
+
54
+ this._name = options.name || `_control_${this.__id.toString()}`;
55
+
56
+ this.planet = null;
20
57
 
21
- /**
22
- * Control initialized.
23
- * @protected
24
- * @type {Boolean}
25
- */
26
58
  this._initialized = false;
27
59
 
28
- /**
29
- * Assigned renderer.
30
- * @public
31
- * @type {Renderer}
32
- */
33
60
  this.renderer = null;
34
61
 
35
- /**
36
- * Auto activation flag.
37
- * @public
38
- * @type {Boolean}
39
- */
40
62
  this.autoActivate = options.autoActivate || false;
41
63
 
42
- /**
43
- * Control activity.
44
- * @protected
45
- * @type {Boolean}
46
- */
47
64
  this._active = false;
48
- }
49
65
 
50
- static get __staticCounter() {
51
- if (!this.__counter && this.__counter !== 0) {
52
- this.__counter = 0;
53
- }
54
- return this.__counter;
55
- }
56
-
57
- static set __staticCounter(n) {
58
- this.__counter = n;
66
+ this._deferredActive = true;
59
67
  }
60
68
 
61
69
  /**
62
70
  * Returns control name.
63
71
  * @public
64
- * @virtual
72
+ * @return {string} -
65
73
  */
66
- get name() {
74
+ public get name(): string {
67
75
  return this._name;
68
76
  }
69
77
 
70
78
  /**
71
- * Control initialization function have to be overriden.
79
+ * Control initialization function have to be overridden.
72
80
  * @public
73
- * @virtual
74
81
  */
75
- oninit() {
82
+ public oninit() {
76
83
  }
77
84
 
78
85
  /**
79
- * Control renderer assigning function have to be overriden.
86
+ * Control renderer assigning function have to be overridden.
80
87
  * @public
81
- * @virtual
82
88
  */
83
- onadd() {
89
+ public onadd() {
84
90
  }
85
91
 
86
92
  /**
87
- * Control remove function have to be overriden.
93
+ * Control remove function have to be overridden.
88
94
  * @public
89
- * @virtual
90
95
  */
91
- onremove() {
96
+ public onremove() {
92
97
  }
93
98
 
94
99
  /**
95
- * Control activation function have to be overriden.
100
+ * Control activation function have to be overridden.
96
101
  * @public
97
- * @virtual
98
102
  */
99
- onactivate() {
103
+ public onactivate() {
100
104
  }
101
105
 
102
106
  /**
103
107
  * Control deactivation function have to be overriden.
104
108
  * @public
105
- * @virtual
106
109
  */
107
- ondeactivate() {
110
+ public ondeactivate() {
108
111
  }
109
112
 
110
113
  /**
@@ -112,7 +115,7 @@ class Control {
112
115
  * @public
113
116
  * @type {Renderer}
114
117
  */
115
- addTo(renderer) {
118
+ public addTo(renderer: Renderer) {
116
119
  if (renderer) {
117
120
  this.renderer = renderer;
118
121
  renderer.controls[this.name] = this;
@@ -128,10 +131,10 @@ class Control {
128
131
  }
129
132
 
130
133
  /**
131
- * Assign renderer to the control.
134
+ * Removes control.
132
135
  * @public
133
136
  */
134
- remove() {
137
+ public remove() {
135
138
 
136
139
  this.deactivate();
137
140
 
@@ -146,7 +149,6 @@ class Control {
146
149
 
147
150
  if (c) {
148
151
  if (this.isEqual(c)) {
149
- r.controls[n] = null;
150
152
  delete r.controls[n];
151
153
  }
152
154
  }
@@ -160,14 +162,18 @@ class Control {
160
162
  * Activate control.
161
163
  * @public
162
164
  */
163
- activate() {
165
+ public activate() {
164
166
  if (!this._active) {
165
167
  if (!this._initialized) {
166
168
  this._initialized = true;
167
169
  this.oninit && this.oninit();
168
170
  }
169
- this._active = true;
170
- this.onactivate && this.onactivate();
171
+ if (this._deferredActive) {
172
+ this._active = true;
173
+ this.onactivate && this.onactivate();
174
+ } else {
175
+ this._deferredActive = true;
176
+ }
171
177
  }
172
178
  }
173
179
 
@@ -175,10 +181,12 @@ class Control {
175
181
  * Deactivate control.
176
182
  * @public
177
183
  */
178
- deactivate() {
184
+ public deactivate() {
179
185
  if (this._active) {
180
186
  this._active = false;
181
187
  this.ondeactivate && this.ondeactivate();
188
+ } else if (!this._initialized) {
189
+ this._deferredActive = false;
182
190
  }
183
191
  }
184
192
 
@@ -186,13 +194,11 @@ class Control {
186
194
  * Is control active.
187
195
  * @public
188
196
  */
189
- isActive() {
197
+ public isActive(): boolean {
190
198
  return this._active;
191
199
  }
192
200
 
193
- isEqual(control) {
194
- return control._id === this._id;
201
+ public isEqual(control: Control): boolean {
202
+ return control.__id === this.__id;
195
203
  }
196
204
  }
197
-
198
- export { Control };