@openglobus/og 0.17.2 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/README.md +75 -46
  2. package/dist/@openglobus/og.esm.js +1 -20
  3. package/dist/@openglobus/og.esm.js.map +1 -1
  4. package/dist/@openglobus/og.umd.js +1 -20
  5. package/dist/@openglobus/og.umd.js.map +1 -1
  6. package/dist/@openglobus/res/fonts/Karla-Bold.json +5252 -0
  7. package/dist/@openglobus/res/fonts/Karla-Bold.ttf.cfg +920 -0
  8. package/dist/@openglobus/res/fonts/Karla-Bold.ttf.png +0 -0
  9. package/dist/@openglobus/res/fonts/Karla-Light.json +5252 -0
  10. package/dist/@openglobus/res/fonts/Karla-Light.ttf.cfg +830 -0
  11. package/dist/@openglobus/res/fonts/Karla-Light.ttf.png +0 -0
  12. package/dist/@openglobus/res/fonts/Karla-Medium.json +5252 -0
  13. package/dist/@openglobus/res/fonts/Karla-Medium.ttf.cfg +1196 -0
  14. package/dist/@openglobus/res/fonts/Karla-Medium.ttf.png +0 -0
  15. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.json +3332 -0
  16. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.cfg +1370 -0
  17. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.png +0 -0
  18. package/dist/@openglobus/res/fonts/Roboto-Regular.json +37147 -0
  19. package/dist/@openglobus/res/fonts/Roboto-Regular.ttf.cfg +1340 -0
  20. package/dist/@openglobus/res/fonts/Roboto-Regular.ttf.png +0 -0
  21. package/dist/@openglobus/res/fonts/arial.json +4321 -0
  22. package/dist/@openglobus/res/fonts/arial.ttf.cfg +1570 -0
  23. package/dist/@openglobus/res/fonts/arial.ttf.png +0 -0
  24. package/dist/@openglobus/res/night-4326.png +0 -0
  25. package/dist/@openglobus/res/night.png +0 -0
  26. package/dist/@openglobus/res/spec.png +0 -0
  27. package/package.json +25 -23
  28. package/src/{og/Clock.js → Clock.ts} +100 -78
  29. package/src/Deferred.ts +17 -0
  30. package/src/Events.ts +200 -0
  31. package/src/{og/Extent.js → Extent.ts} +324 -352
  32. package/src/Globe.ts +363 -0
  33. package/src/{og/ImageCanvas.js → ImageCanvas.ts} +244 -236
  34. package/src/Lock.ts +41 -0
  35. package/src/{og/LonLat.js → LonLat.ts} +50 -47
  36. package/src/{og/Object3d.js → Object3d.ts} +89 -55
  37. package/src/Popup.ts +228 -0
  38. package/src/{og/QueueArray.js → QueueArray.ts} +76 -75
  39. package/src/{og/Rectangle.js → Rectangle.ts} +115 -111
  40. package/src/Stack.ts +58 -0
  41. package/src/{og/astro/astro.js → astro/astro.ts} +49 -51
  42. package/src/{og/astro/earth.js → astro/earth.ts} +8 -9
  43. package/src/{og/astro/jd.js → astro/jd.ts} +92 -111
  44. package/src/{og/astro/orbit.js → astro/orbit.ts} +35 -37
  45. package/src/{og/astro/rotation.js → astro/rotation.ts} +4 -6
  46. package/src/{og/bv/Box.js → bv/Box.ts} +21 -17
  47. package/src/{og/bv/Sphere.js → bv/Sphere.ts} +21 -19
  48. package/src/bv/index.ts +4 -0
  49. package/src/{og/camera/Camera.js → camera/Camera.ts} +254 -197
  50. package/src/{og/camera/Frustum.js → camera/Frustum.ts} +137 -111
  51. package/src/{og/camera/PlanetCamera.js → camera/PlanetCamera.ts} +246 -182
  52. package/src/camera/index.ts +4 -0
  53. package/src/{og/cons.js → cons.ts} +14 -18
  54. package/src/{og/control/Atmosphere.js → control/Atmosphere.ts} +50 -50
  55. package/src/{og/control/CompassButton.js → control/CompassButton.ts} +27 -30
  56. package/src/{og/control/Control.js → control/Control.ts} +76 -70
  57. package/src/{og/control/DebugInfo.js → control/DebugInfo.ts} +130 -62
  58. package/src/{og/control/DrawingSwitcher.js → control/DrawingSwitcher.ts} +16 -22
  59. package/src/control/EarthCoordinates.ts +222 -0
  60. package/src/control/EarthNavigation.ts +293 -0
  61. package/src/{og/control/GeoImageDragControl.js → control/GeoImageDragControl.ts} +37 -29
  62. package/src/control/KeyboardNavigation.ts +168 -0
  63. package/src/{og/control/LayerAnimation.js → control/LayerAnimation.ts} +74 -90
  64. package/src/control/LayerSwitcher.ts +76 -0
  65. package/src/{og/control/Lighting.js → control/Lighting.ts} +158 -120
  66. package/src/control/MouseNavigation.ts +468 -0
  67. package/src/control/MouseWheelZoomControl.ts +269 -0
  68. package/src/{og/control/RulerSwitcher.js → control/RulerSwitcher.ts} +18 -20
  69. package/src/control/ScaleControl.ts +131 -0
  70. package/src/control/SegmentBoundVisualization.ts +50 -0
  71. package/src/control/ShowFps.ts +28 -0
  72. package/src/control/SimpleNavigation.ts +118 -0
  73. package/src/{og/control/SimpleSkyBackground.js → control/SimpleSkyBackground.ts} +36 -38
  74. package/src/{og/control/Sun.js → control/Sun.ts} +56 -64
  75. package/src/control/ToggleWireframe.ts +35 -0
  76. package/src/control/TouchNavigation.ts +368 -0
  77. package/src/control/ZoomControl.ts +111 -0
  78. package/src/control/drawing/DrawingControl.ts +45 -0
  79. package/src/{og/control/drawing/LineStringDrawingScene.js → control/drawing/LineStringDrawingScene.ts} +28 -35
  80. package/src/{og/control/drawing/PolygonDrawingScene.js → control/drawing/PolygonDrawingScene.ts} +148 -201
  81. package/src/{og/control/elevationProfile/ElevationProfile.js → control/elevationProfile/ElevationProfile.ts} +70 -36
  82. package/src/control/heightRuler/HeightRuler.ts +16 -0
  83. package/src/{og/control/heightRuler/HeightRulerScene.js → control/heightRuler/HeightRulerScene.ts} +92 -87
  84. package/src/{og/control/heightRuler/HeightRulerSwitcher.js → control/heightRuler/HeightRulerSwitcher.ts} +3 -3
  85. package/src/control/index.ts +45 -0
  86. package/src/control/ruler/Ruler.ts +35 -0
  87. package/src/{og/control/ruler/RulerScene.js → control/ruler/RulerScene.ts} +163 -121
  88. package/src/{og/control/selection/Selection.js → control/selection/Selection.ts} +23 -21
  89. package/src/{og/control/selection/SelectionScene.js → control/selection/SelectionScene.ts} +64 -50
  90. package/src/{og/control/timeline/TimelineControl.js → control/timeline/TimelineControl.ts} +37 -28
  91. package/src/{og/control/timeline/TimelineModel.js → control/timeline/TimelineModel.ts} +50 -35
  92. package/src/{og/control/timeline/TimelineView.js → control/timeline/TimelineView.ts} +162 -113
  93. package/src/{og/control/timeline/timelineUtils.js → control/timeline/timelineUtils.ts} +11 -10
  94. package/src/{og/control → control}/visibleExtent/Segment.js +5 -5
  95. package/src/{og/control → control}/visibleExtent/VisibleExtent.js +8 -15
  96. package/src/{og/control/visibleExtent/drawnode.js → control/visibleExtent/drawnode.ts} +1 -3
  97. package/src/{og/ellipsoid/Ellipsoid.js → ellipsoid/Ellipsoid.ts} +113 -59
  98. package/src/ellipsoid/index.ts +4 -0
  99. package/src/{og/ellipsoid/wgs84.js → ellipsoid/wgs84.ts} +1 -3
  100. package/src/{og/entity/BaseBillboard.js → entity/BaseBillboard.ts} +128 -102
  101. package/src/entity/BaseBillboardHandler.ts +772 -0
  102. package/src/{og/entity/Billboard.js → entity/Billboard.ts} +77 -47
  103. package/src/entity/BillboardHandler.ts +135 -0
  104. package/src/{og/entity/Entity.js → entity/Entity.ts} +285 -226
  105. package/src/{og/entity/EntityCollection.js → entity/EntityCollection.ts} +340 -247
  106. package/src/{og/entity/GeoObject.js → entity/GeoObject.ts} +122 -67
  107. package/src/{og/entity/GeoObjectHandler.js → entity/GeoObjectHandler.ts} +273 -198
  108. package/src/entity/Geometry.ts +486 -0
  109. package/src/{og/entity/GeometryHandler.js → entity/GeometryHandler.ts} +383 -541
  110. package/src/{og/entity/Label.js → entity/Label.ts} +131 -83
  111. package/src/{og/entity/LabelHandler.js → entity/LabelHandler.ts} +289 -255
  112. package/src/{og/entity/LabelWorker.js → entity/LabelWorker.ts} +26 -36
  113. package/src/{og/entity/PointCloud.js → entity/PointCloud.ts} +200 -164
  114. package/src/entity/PointCloudHandler.ts +125 -0
  115. package/src/{og/entity/Polyline.js → entity/Polyline.ts} +517 -539
  116. package/src/{og/entity/PolylineHandler.js → entity/PolylineHandler.ts} +29 -31
  117. package/src/{og/entity/Ray.js → entity/Ray.ts} +89 -60
  118. package/src/{og/entity/RayHandler.js → entity/RayHandler.ts} +201 -306
  119. package/src/{og/entity/Strip.js → entity/Strip.ts} +143 -100
  120. package/src/{og/entity/StripHandler.js → entity/StripHandler.ts} +76 -72
  121. package/src/entity/index.ts +12 -0
  122. package/src/index.ts +173 -0
  123. package/src/input/KeyboardHandler.ts +196 -0
  124. package/src/{og/input/MouseHandler.js → input/MouseHandler.ts} +46 -35
  125. package/src/input/TouchHandler.ts +54 -0
  126. package/src/{og/input/input.js → input/input.ts} +1 -3
  127. package/src/{og/layer/BaseGeoImage.js → layer/BaseGeoImage.ts} +174 -107
  128. package/src/{og/layer/CanvasTiles.js → layer/CanvasTiles.ts} +139 -105
  129. package/src/{og/layer/GeoImage.js → layer/GeoImage.ts} +62 -52
  130. package/src/layer/GeoTexture2d.ts +56 -0
  131. package/src/{og/layer/GeoVideo.js → layer/GeoVideo.ts} +53 -53
  132. package/src/{og/layer/KML.js → layer/KML.ts} +63 -74
  133. package/src/{og/layer/Layer.js → layer/Layer.ts} +399 -223
  134. package/src/{og/layer/Material.js → layer/Material.ts} +40 -35
  135. package/src/{og/layer/Vector.js → layer/Vector.ts} +319 -267
  136. package/src/{og/layer/WMS.js → layer/WMS.ts} +76 -64
  137. package/src/{og/layer/XYZ.js → layer/XYZ.ts} +123 -98
  138. package/src/layer/index.ts +12 -0
  139. package/src/{og/light/LightSource.js → light/LightSource.ts} +132 -93
  140. package/src/{og/math/Line2.js → math/Line2.ts} +11 -8
  141. package/src/{og/math/Line3.js → math/Line3.ts} +49 -27
  142. package/src/{og/math/Mat3.js → math/Mat3.ts} +43 -27
  143. package/src/{og/math/Mat4.js → math/Mat4.ts} +110 -77
  144. package/src/{og/math/Plane.js → math/Plane.ts} +28 -23
  145. package/src/{og/math/Quat.js → math/Quat.ts} +238 -222
  146. package/src/{og/math/Ray.js → math/Ray.ts} +59 -63
  147. package/src/{og/math/Vec2.js → math/Vec2.ts} +85 -76
  148. package/src/{og/math/Vec3.js → math/Vec3.ts} +141 -140
  149. package/src/{og/math/Vec4.js → math/Vec4.ts} +64 -53
  150. package/src/{og/math/coder.js → math/coder.ts} +30 -27
  151. package/src/math/index.ts +26 -0
  152. package/src/{og/math.js → math.ts} +46 -49
  153. package/src/{og/mercator.js → mercator.ts} +143 -149
  154. package/src/{og/proj/EPSG3857.js → proj/EPSG3857.ts} +1 -3
  155. package/src/{og/proj/EPSG4326.js → proj/EPSG4326.ts} +11 -13
  156. package/src/{og/proj/Proj.js → proj/Proj.ts} +27 -23
  157. package/src/{og/quadTree/EPSG4326QuadTreeStrategy.js → quadTree/EPSG4326QuadTreeStrategy.ts} +10 -13
  158. package/src/{og/quadTree/EarthQuadTreeStrategy.js → quadTree/EarthQuadTreeStrategy.ts} +11 -13
  159. package/src/quadTree/EntityCollectionNode.ts +395 -0
  160. package/src/{og/quadTree/MarsQuadTreeStrategy.js → quadTree/MarsQuadTreeStrategy.ts} +10 -13
  161. package/src/{og/quadTree/Node.js → quadTree/Node.ts} +283 -191
  162. package/src/{og/quadTree/QuadTreeStrategy.js → quadTree/QuadTreeStrategy.ts} +35 -29
  163. package/src/quadTree/Wgs84QuadTreeStrategy.ts +22 -0
  164. package/src/quadTree/index.ts +14 -0
  165. package/src/{og/quadTree/quadTree.js → quadTree/quadTree.ts} +75 -77
  166. package/src/{og/renderer/Renderer.js → renderer/Renderer.ts} +454 -298
  167. package/src/{og/renderer/RendererEvents.js → renderer/RendererEvents.ts} +347 -256
  168. package/src/{og/scene/Axes.js → scene/Axes.ts} +26 -22
  169. package/src/{og/scene/BaseNode.js → scene/BaseNode.ts} +53 -47
  170. package/src/{og/scene/Planet.js → scene/Planet.ts} +776 -592
  171. package/src/{og/scene/RenderNode.js → scene/RenderNode.ts} +105 -91
  172. package/src/{og/scene/SkyBox.js → scene/SkyBox.ts} +29 -25
  173. package/src/scene/index.ts +6 -0
  174. package/src/{og/segment/Segment.js → segment/Segment.ts} +497 -371
  175. package/src/{og/segment/SegmentLonLat.js → segment/SegmentLonLat.ts} +81 -87
  176. package/src/{og/segment/SegmentLonLatWgs84.js → segment/SegmentLonLatWgs84.ts} +9 -16
  177. package/src/{og/segment/Slice.js → segment/Slice.ts} +15 -9
  178. package/src/{og/segment/segmentHelper.js → segment/segmentHelper.ts} +57 -49
  179. package/src/{og/shaders/atmos.js → shaders/atmos.ts} +4 -6
  180. package/src/{og/shaders/billboard.js → shaders/billboard.ts} +3 -5
  181. package/src/{og/shaders/bloom.js → shaders/bloom.ts} +2 -4
  182. package/src/{og/shaders/blur.js → shaders/blur.ts} +4 -7
  183. package/src/{og/shaders/depth.js → shaders/depth.ts} +1 -3
  184. package/src/{og/shaders/drawnode.js → shaders/drawnode.ts} +19 -21
  185. package/src/{og/shaders/geoObject.js → shaders/geoObject.ts} +17 -19
  186. package/src/{og/shaders/label.js → shaders/label.ts} +4 -6
  187. package/src/{og/shaders/lumFilter.js → shaders/lumFilter.ts} +2 -4
  188. package/src/{og/shaders/pickingMask.js → shaders/pickingMask.ts} +2 -4
  189. package/src/{og/shaders/pointCloud.js → shaders/pointCloud.ts} +7 -10
  190. package/src/{og/shaders/polyline.js → shaders/polyline.ts} +3 -200
  191. package/src/{og/shaders/ray.js → shaders/ray.ts} +2 -4
  192. package/src/{og/shaders/screenFrame.js → shaders/screenFrame.ts} +2 -4
  193. package/src/{og/shaders/skybox.js → shaders/skybox.ts} +7 -9
  194. package/src/{og/shaders/toneMapping.js → shaders/toneMapping.ts} +2 -4
  195. package/src/{og/shaders/utils.js → shaders/utils.ts} +0 -2
  196. package/src/{og/terrain/BilTerrain.js → terrain/BilTerrain.ts} +38 -32
  197. package/src/terrain/EmptyTerrain.ts +230 -0
  198. package/src/{og/terrain/Geoid.js → terrain/Geoid.ts} +67 -41
  199. package/src/{og/terrain/GlobusTerrain.js → terrain/GlobusTerrain.ts} +159 -153
  200. package/src/{og/terrain/MapboxTerrain.js → terrain/MapboxTerrain.ts} +58 -61
  201. package/src/terrain/index.ts +6 -0
  202. package/src/ui/Button.ts +121 -0
  203. package/src/ui/ButtonGroup.ts +63 -0
  204. package/src/ui/Dialog.ts +244 -0
  205. package/src/ui/Slider.ts +188 -0
  206. package/src/ui/ToggleButton.ts +68 -0
  207. package/src/{og/ui/View.js → ui/View.ts} +66 -59
  208. package/src/utils/BaseWorker.ts +60 -0
  209. package/src/utils/FontAtlas.ts +356 -0
  210. package/src/{og/utils/GeoImageCreator.js → utils/GeoImageCreator.ts} +45 -29
  211. package/src/{og/utils/ImagesCacheManager.js → utils/ImagesCacheManager.ts} +85 -70
  212. package/src/utils/Loader.ts +247 -0
  213. package/src/{og/utils/NormalMapCreator.js → utils/NormalMapCreator.ts} +114 -77
  214. package/src/{og/utils/PlainSegmentWorker.js → utils/PlainSegmentWorker.ts} +41 -24
  215. package/src/{og/utils/TerrainWorker.js → utils/TerrainWorker.ts} +51 -36
  216. package/src/utils/TextureAtlas.ts +322 -0
  217. package/src/{og/utils/VectorTileCreator.js → utils/VectorTileCreator.ts} +67 -52
  218. package/src/{og/utils/colorTable.js → utils/colorTable.ts} +142 -144
  219. package/src/{og/utils/earcut.js → utils/earcut.ts} +664 -661
  220. package/src/{og/utils/objParser.js → utils/objParser.ts} +66 -37
  221. package/src/{og/utils/shared.js → utils/shared.ts} +267 -206
  222. package/src/utils/units.ts +78 -0
  223. package/src/webgl/BaseFramebuffer.ts +125 -0
  224. package/src/webgl/Framebuffer.ts +206 -0
  225. package/src/webgl/Handler.ts +1414 -0
  226. package/src/webgl/Multisample.ts +153 -0
  227. package/src/webgl/Program.ts +451 -0
  228. package/src/{og/webgl/ProgramController.js → webgl/ProgramController.ts} +44 -43
  229. package/src/webgl/index.ts +13 -0
  230. package/src/{og/webgl/types.js → webgl/types.ts} +29 -31
  231. package/src/webgl/variableHandlers.ts +114 -0
  232. package/src/og/Deferred.js +0 -11
  233. package/src/og/Events.js +0 -185
  234. package/src/og/Globe.js +0 -342
  235. package/src/og/Lock.js +0 -44
  236. package/src/og/Popup.js +0 -187
  237. package/src/og/Stack.js +0 -49
  238. package/src/og/bv/index.js +0 -4
  239. package/src/og/camera/index.js +0 -4
  240. package/src/og/control/EarthCoordinates.js +0 -214
  241. package/src/og/control/EarthNavigation.js +0 -258
  242. package/src/og/control/KeyboardNavigation.js +0 -172
  243. package/src/og/control/LayerSwitcher.js +0 -424
  244. package/src/og/control/MouseNavigation.js +0 -436
  245. package/src/og/control/MouseWheelZoomControl.js +0 -253
  246. package/src/og/control/ScaleControl.js +0 -119
  247. package/src/og/control/SegmentBoundVisualization.js +0 -54
  248. package/src/og/control/ShowFps.js +0 -40
  249. package/src/og/control/SimpleNavigation.js +0 -123
  250. package/src/og/control/ToggleWireframe.js +0 -35
  251. package/src/og/control/TouchNavigation.js +0 -350
  252. package/src/og/control/ZoomControl.js +0 -115
  253. package/src/og/control/drawing/DrawingControl.js +0 -51
  254. package/src/og/control/heightRuler/HeightRuler.js +0 -12
  255. package/src/og/control/index.js +0 -56
  256. package/src/og/control/ruler/Ruler.js +0 -39
  257. package/src/og/ellipsoid/index.js +0 -4
  258. package/src/og/entity/BillboardHandler.js +0 -883
  259. package/src/og/entity/Geometry.js +0 -320
  260. package/src/og/entity/PointCloudHandler.js +0 -122
  261. package/src/og/entity/index.js +0 -9
  262. package/src/og/index.js +0 -112
  263. package/src/og/input/KeyboardHandler.js +0 -195
  264. package/src/og/input/TouchHandler.js +0 -59
  265. package/src/og/layer/GeoTexture2d.js +0 -50
  266. package/src/og/layer/index.js +0 -11
  267. package/src/og/math/index.js +0 -23
  268. package/src/og/quadTree/EntityCollectionNode.js +0 -391
  269. package/src/og/quadTree/Wgs84QuadTreeStrategy.js +0 -27
  270. package/src/og/quadTree/index.js +0 -14
  271. package/src/og/res/images.js +0 -8
  272. package/src/og/scene/index.js +0 -5
  273. package/src/og/terrain/EmptyTerrain.js +0 -174
  274. package/src/og/terrain/index.js +0 -6
  275. package/src/og/ui/Button.js +0 -107
  276. package/src/og/ui/ButtonGroup.js +0 -57
  277. package/src/og/ui/Dialog.js +0 -239
  278. package/src/og/ui/Slider.js +0 -170
  279. package/src/og/ui/ToggleButton.js +0 -51
  280. package/src/og/ui/UIhelpers.js +0 -155
  281. package/src/og/utils/BaseWorker.js +0 -46
  282. package/src/og/utils/FontAtlas.js +0 -218
  283. package/src/og/utils/Loader.js +0 -188
  284. package/src/og/utils/TextureAtlas.js +0 -291
  285. package/src/og/utils/functionComposition.js +0 -13
  286. package/src/og/utils/units.js +0 -78
  287. package/src/og/webgl/Framebuffer.js +0 -311
  288. package/src/og/webgl/Handler.js +0 -1170
  289. package/src/og/webgl/Multisample.js +0 -275
  290. package/src/og/webgl/Program.js +0 -407
  291. package/src/og/webgl/callbacks.js +0 -98
  292. package/src/og/webgl/index.js +0 -13
  293. package/src/og.jsdoc +0 -3
  294. package/types/Clock.d.ts +0 -99
  295. package/types/Deferred.d.ts +0 -6
  296. package/types/Events.d.ts +0 -78
  297. package/types/Extent.d.ts +0 -166
  298. package/types/Globe.d.ts +0 -108
  299. package/types/ImageCanvas.d.ts +0 -128
  300. package/types/Lock.d.ts +0 -12
  301. package/types/LonLat.d.ts +0 -127
  302. package/types/Object3d.d.ts +0 -35
  303. package/types/Popup.d.ts +0 -29
  304. package/types/QueueArray.d.ts +0 -19
  305. package/types/Rectangle.d.ts +0 -80
  306. package/types/Stack.d.ts +0 -19
  307. package/types/arial.d.ts +0 -49
  308. package/types/astro/astro.d.ts +0 -38
  309. package/types/astro/earth.d.ts +0 -7
  310. package/types/astro/jd.d.ts +0 -254
  311. package/types/bv/Box.d.ts +0 -30
  312. package/types/bv/Sphere.d.ts +0 -38
  313. package/types/bv/index.d.ts +0 -3
  314. package/types/camera/Camera.d.ts +0 -314
  315. package/types/camera/Frustum.d.ts +0 -133
  316. package/types/camera/PlanetCamera.d.ts +0 -219
  317. package/types/camera/index.d.ts +0 -3
  318. package/types/cons.d.ts +0 -40
  319. package/types/control/Atmosphere.d.ts +0 -15
  320. package/types/control/CompassButton.d.ts +0 -16
  321. package/types/control/Control.d.ts +0 -104
  322. package/types/control/DebugInfo.d.ts +0 -19
  323. package/types/control/DrawingSwitcher.d.ts +0 -13
  324. package/types/control/EarthCoordinates.d.ts +0 -44
  325. package/types/control/EarthNavigation.d.ts +0 -43
  326. package/types/control/GeoImageDragControl.d.ts +0 -14
  327. package/types/control/KeyboardNavigation.d.ts +0 -24
  328. package/types/control/LayerAnimation.d.ts +0 -73
  329. package/types/control/LayerSwitcher.d.ts +0 -64
  330. package/types/control/Lighting.d.ts +0 -41
  331. package/types/control/MouseNavigation.d.ts +0 -49
  332. package/types/control/MouseWheelZoomControl.d.ts +0 -46
  333. package/types/control/ScaleControl.d.ts +0 -23
  334. package/types/control/ShowFps.d.ts +0 -11
  335. package/types/control/SimpleNavigation.d.ts +0 -26
  336. package/types/control/SimpleSkyBackground.d.ts +0 -15
  337. package/types/control/Sun.d.ts +0 -53
  338. package/types/control/ToggleWireframe.d.ts +0 -12
  339. package/types/control/TouchNavigation.d.ts +0 -54
  340. package/types/control/ZoomControl.d.ts +0 -26
  341. package/types/control/drawing/DrawingControl.d.ts +0 -14
  342. package/types/control/drawing/LineStringDrawingScene.d.ts +0 -5
  343. package/types/control/drawing/PolygonDrawingScene.d.ts +0 -99
  344. package/types/control/heightRuler/HeightRuler.d.ts +0 -6
  345. package/types/control/heightRuler/HeightRulerScene.d.ts +0 -23
  346. package/types/control/index.d.ts +0 -27
  347. package/types/control/ruler/Ruler.d.ts +0 -13
  348. package/types/control/ruler/RulerScene.d.ts +0 -51
  349. package/types/control/selection/Selection.d.ts +0 -49
  350. package/types/control/selection/SelectionScene.d.ts +0 -32
  351. package/types/control/timeline/TimelineControl.d.ts +0 -10
  352. package/types/control/timeline/TimelineModel.d.ts +0 -33
  353. package/types/control/timeline/TimelineView.d.ts +0 -57
  354. package/types/control/timeline/timelineUtils.d.ts +0 -9
  355. package/types/ellipsoid/Ellipsoid.d.ts +0 -170
  356. package/types/ellipsoid/index.d.ts +0 -3
  357. package/types/ellipsoid/wgs84.d.ts +0 -6
  358. package/types/entity/BaseBillboard.d.ts +0 -215
  359. package/types/entity/Billboard.d.ts +0 -94
  360. package/types/entity/BillboardHandler.d.ts +0 -75
  361. package/types/entity/Entity.d.ts +0 -340
  362. package/types/entity/EntityCollection.d.ts +0 -303
  363. package/types/entity/GeoObject.d.ts +0 -117
  364. package/types/entity/GeoObjectHandler.d.ts +0 -41
  365. package/types/entity/Geometry.d.ts +0 -79
  366. package/types/entity/GeometryHandler.d.ts +0 -76
  367. package/types/entity/Label.d.ts +0 -190
  368. package/types/entity/LabelHandler.d.ts +0 -31
  369. package/types/entity/LabelWorker.d.ts +0 -9
  370. package/types/entity/PointCloud.d.ts +0 -174
  371. package/types/entity/PointCloudHandler.d.ts +0 -38
  372. package/types/entity/Polyline.d.ts +0 -307
  373. package/types/entity/PolylineHandler.d.ts +0 -18
  374. package/types/entity/Ray.d.ts +0 -122
  375. package/types/entity/RayHandler.d.ts +0 -63
  376. package/types/entity/Strip.d.ts +0 -119
  377. package/types/entity/StripHandler.d.ts +0 -38
  378. package/types/entity/index.d.ts +0 -8
  379. package/types/index.d.ts +0 -53
  380. package/types/input/KeyboardHandler.d.ts +0 -17
  381. package/types/input/MouseHandler.d.ts +0 -5
  382. package/types/input/TouchHandler.d.ts +0 -5
  383. package/types/input/input.d.ts +0 -42
  384. package/types/layer/BaseGeoImage.d.ts +0 -116
  385. package/types/layer/CanvasTiles.d.ts +0 -73
  386. package/types/layer/GeoImage.d.ts +0 -51
  387. package/types/layer/GeoTexture2d.d.ts +0 -7
  388. package/types/layer/GeoVideo.d.ts +0 -47
  389. package/types/layer/KML.d.ts +0 -93
  390. package/types/layer/Layer.d.ts +0 -320
  391. package/types/layer/Material.d.ts +0 -45
  392. package/types/layer/Vector.d.ts +0 -211
  393. package/types/layer/WMS.d.ts +0 -66
  394. package/types/layer/XYZ.d.ts +0 -122
  395. package/types/layer/index.d.ts +0 -10
  396. package/types/light/LightSource.d.ts +0 -178
  397. package/types/math/Line2.d.ts +0 -11
  398. package/types/math/Line3.d.ts +0 -10
  399. package/types/math/Mat3.d.ts +0 -65
  400. package/types/math/Mat4.d.ts +0 -176
  401. package/types/math/Plane.d.ts +0 -18
  402. package/types/math/Quat.d.ts +0 -379
  403. package/types/math/Ray.d.ts +0 -82
  404. package/types/math/Vec2.d.ts +0 -309
  405. package/types/math/Vec3.d.ts +0 -472
  406. package/types/math/Vec4.d.ts +0 -161
  407. package/types/math/coder.d.ts +0 -43
  408. package/types/math/index.d.ts +0 -11
  409. package/types/math.d.ts +0 -268
  410. package/types/mercator.d.ts +0 -92
  411. package/types/proj/EPSG3857.d.ts +0 -6
  412. package/types/proj/EPSG4326.d.ts +0 -6
  413. package/types/proj/Proj.d.ts +0 -42
  414. package/types/quadTree/EPSG4326QuadTreeStrategy.d.ts +0 -3
  415. package/types/quadTree/EarthQuadTreeStrategy.d.ts +0 -3
  416. package/types/quadTree/EntityCollectionNode.d.ts +0 -41
  417. package/types/quadTree/MarsQuadTreeStrategy.d.ts +0 -3
  418. package/types/quadTree/Node.d.ts +0 -58
  419. package/types/quadTree/QuadTreeStrategy.d.ts +0 -21
  420. package/types/quadTree/Wgs84QuadTreeStrategy.d.ts +0 -3
  421. package/types/quadTree/index.d.ts +0 -12
  422. package/types/quadTree/quadTree.d.ts +0 -40
  423. package/types/renderer/Renderer.d.ts +0 -291
  424. package/types/renderer/RendererEvents.d.ts +0 -241
  425. package/types/res/images.d.ts +0 -2
  426. package/types/scene/Axes.d.ts +0 -10
  427. package/types/scene/BaseNode.d.ts +0 -60
  428. package/types/scene/Planet.d.ts +0 -594
  429. package/types/scene/RenderNode.d.ts +0 -152
  430. package/types/scene/SkyBox.d.ts +0 -9
  431. package/types/scene/index.d.ts +0 -4
  432. package/types/segment/Segment.d.ts +0 -273
  433. package/types/segment/SegmentLonLat.d.ts +0 -22
  434. package/types/segment/SegmentLonLatWgs84.d.ts +0 -4
  435. package/types/segment/Slice.d.ts +0 -10
  436. package/types/segment/segmentHelper.d.ts +0 -13
  437. package/types/shaders/atmos.d.ts +0 -4
  438. package/types/shaders/billboard.d.ts +0 -3
  439. package/types/shaders/depth.d.ts +0 -2
  440. package/types/shaders/drawnode.d.ts +0 -8
  441. package/types/shaders/geoObject.d.ts +0 -3
  442. package/types/shaders/label.d.ts +0 -4
  443. package/types/shaders/pickingMask.d.ts +0 -2
  444. package/types/shaders/pointCloud.d.ts +0 -2
  445. package/types/shaders/polyline.d.ts +0 -3
  446. package/types/shaders/ray.d.ts +0 -2
  447. package/types/shaders/screenFrame.d.ts +0 -2
  448. package/types/shaders/skybox.d.ts +0 -2
  449. package/types/shaders/toneMapping.d.ts +0 -2
  450. package/types/shaders/utils.d.ts +0 -1
  451. package/types/terrain/BilTerrain.d.ts +0 -14
  452. package/types/terrain/EmptyTerrain.d.ts +0 -87
  453. package/types/terrain/Geoid.d.ts +0 -17
  454. package/types/terrain/GlobusTerrain.d.ts +0 -122
  455. package/types/terrain/MapboxTerrain.d.ts +0 -14
  456. package/types/terrain/index.d.ts +0 -5
  457. package/types/ui/Button.d.ts +0 -21
  458. package/types/ui/ButtonGroup.d.ts +0 -12
  459. package/types/ui/Dialog.d.ts +0 -41
  460. package/types/ui/Slider.d.ts +0 -33
  461. package/types/ui/ToggleButton.d.ts +0 -10
  462. package/types/ui/UIhelpers.d.ts +0 -13
  463. package/types/ui/View.d.ts +0 -33
  464. package/types/ui/icons.d.ts +0 -1
  465. package/types/utils/BaseWorker.d.ts +0 -14
  466. package/types/utils/FontAtlas.d.ts +0 -16
  467. package/types/utils/GeoImageCreator.d.ts +0 -30
  468. package/types/utils/ImagesCacheManager.d.ts +0 -10
  469. package/types/utils/Loader.d.ts +0 -31
  470. package/types/utils/NormalMapCreator.d.ts +0 -39
  471. package/types/utils/PlainSegmentWorker.d.ts +0 -8
  472. package/types/utils/TerrainWorker.d.ts +0 -7
  473. package/types/utils/TextureAtlas.d.ts +0 -113
  474. package/types/utils/VectorTileCreator.d.ts +0 -14
  475. package/types/utils/colorTable.d.ts +0 -143
  476. package/types/utils/earcut.d.ts +0 -6
  477. package/types/utils/functionComposition.d.ts +0 -5
  478. package/types/utils/objParser.d.ts +0 -8
  479. package/types/utils/shared.d.ts +0 -241
  480. package/types/utils/units.d.ts +0 -20
  481. package/types/webgl/Framebuffer.d.ts +0 -134
  482. package/types/webgl/Handler.d.ts +0 -403
  483. package/types/webgl/Multisample.d.ts +0 -91
  484. package/types/webgl/Program.d.ts +0 -163
  485. package/types/webgl/ProgramController.d.ts +0 -89
  486. package/types/webgl/callbacks.d.ts +0 -1
  487. package/types/webgl/index.d.ts +0 -6
  488. package/types/webgl/types.d.ts +0 -2
  489. /package/{src/og → dist/@openglobus/res/fonts}/arial.js +0 -0
  490. /package/src/{og/ui/icons.js → ui/icons.ts} +0 -0
@@ -1,16 +1,26 @@
1
- 'use strict';
2
-
3
- import * as math from "../../math.js";
4
- import { Entity } from '../../entity/Entity.js';
5
- import { Events } from '../../Events.js';
6
- import { Vector } from '../../layer/Vector.js';
7
- import { Vec2 } from '../../math/Vec2.js';
8
- import { Object3d } from '../../Object3d.js';
9
- import { RenderNode } from '../../scene/RenderNode.js';
10
- import { Vec3 } from '../../math/Vec3.js';
11
- import { Line3 } from '../../math/Line3.js';
12
- import { LonLat } from '../../LonLat.js';
13
- import { Geometry, GeometryType } from "../../entity/Geometry.js";
1
+ import * as math from "../../math";
2
+ import {createEvents, EventsHandler} from '../../Events';
3
+ import {CoordinatesType} from "../../entity/Geometry";
4
+ import {Entity} from '../../entity/Entity';
5
+ import {IMouseState} from "../../renderer/RendererEvents";
6
+ import {MouseNavigation} from "../MouseNavigation";
7
+ import {LonLat} from '../../LonLat';
8
+ import {Line3} from '../../math/Line3';
9
+ import {Object3d} from '../../Object3d';
10
+ import {Planet} from '../../scene/Planet';
11
+ import {RenderNode} from '../../scene/RenderNode';
12
+ import {Vec2} from '../../math/Vec2';
13
+ import {Vec3} from '../../math/Vec3';
14
+ import {Vector} from '../../layer/Vector';
15
+
16
+ type PolygonDrawingSceneEventsList = ["change", "startpoint"];
17
+
18
+ const POLYGONDRAWINGSCENE_EVENTS: PolygonDrawingSceneEventsList = ["change", "startpoint"];
19
+
20
+ export interface IPolygonDrawingSceneParams {
21
+ coordinates?: CoordinatesType[];
22
+ name: string;
23
+ }
14
24
 
15
25
  const POINTER_OBJ3D = Object3d.createCylinder(1, 1, 2.0, 20, 1, true, false, 0, -0.5, 0);
16
26
 
@@ -43,10 +53,28 @@ export const OUTLINE_OPTIONS = {
43
53
  }
44
54
 
45
55
  class PolygonDrawingScene extends RenderNode {
46
- constructor(options = {}) {
56
+ public events: EventsHandler<PolygonDrawingSceneEventsList>;
57
+ public _planet: Planet | null;
58
+ protected _initCoordinates: CoordinatesType[];
59
+ protected _pickedCorner: Entity | null;
60
+ protected _pickedCenter: Entity | null;
61
+ protected _startPos: Vec2 | null;
62
+ protected _startClick: Vec2;
63
+ protected _geometryLayer: Vector;
64
+ protected _cornerLayer: Vector;
65
+ protected _centerLayer: Vector;
66
+ protected _outlineLayer: Vector;
67
+ protected _ghostCorner: Entity;
68
+ protected _ghostOutlineLayer: Vector;
69
+ protected _showGhostPointer: boolean;
70
+ protected _isStartPoint: boolean;
71
+ protected _insertCornerIndex: number;
72
+ protected _cornerDblClick = false;
73
+
74
+ constructor(options: IPolygonDrawingSceneParams) {
47
75
  super(options.name);
48
76
 
49
- this.events = new Events(EVENT_NAMES);
77
+ this.events = createEvents(POLYGONDRAWINGSCENE_EVENTS);
50
78
 
51
79
  this._planet = null;
52
80
 
@@ -85,9 +113,6 @@ class PolygonDrawingScene extends RenderNode {
85
113
  path3v: [],
86
114
  isClosed: false,
87
115
  ...OUTLINE_OPTIONS
88
- },
89
- properties: {
90
- index: 0
91
116
  }
92
117
  })],
93
118
  pickingEnabled: false,
@@ -95,13 +120,13 @@ class PolygonDrawingScene extends RenderNode {
95
120
  relativeToGround: true
96
121
  });
97
122
 
98
- this._outlineLayer.getEntities()[0].polyline.altitude = OUTLINE_ALT;
123
+ this._outlineLayer.getEntities()[0].polyline!.altitude = OUTLINE_ALT;
99
124
 
100
125
  //
101
126
  // Ghost cursor pointer
102
127
  //
103
128
  this._ghostCorner = new Entity({
104
- geoObject: CORNER_OPTIONS,
129
+ geoObject: CORNER_OPTIONS
105
130
  });
106
131
 
107
132
  this._ghostOutlineLayer = new Vector("ghost-pointer", {
@@ -119,14 +144,14 @@ class PolygonDrawingScene extends RenderNode {
119
144
  this._insertCornerIndex = -1;
120
145
  }
121
146
 
122
- get geometryType() {
147
+ public get geometryType(): string {
123
148
  return "Polygon";
124
149
  }
125
150
 
126
- getCoordinates() {
151
+ public getCoordinates(): CoordinatesType[] {
127
152
  let corners = this._cornerLayer.getEntities();
128
153
  if (corners.length > 0) {
129
- return corners.map((c) => {
154
+ return corners.map((c: Entity) => {
130
155
  let ll = c.getLonLat();
131
156
  return [ll.lon, ll.lat, ll.height];
132
157
  });
@@ -135,11 +160,11 @@ class PolygonDrawingScene extends RenderNode {
135
160
  }
136
161
  }
137
162
 
138
- bindPlanet(planet) {
163
+ public bindPlanet(planet: Planet) {
139
164
  this._planet = planet;
140
165
  }
141
166
 
142
- init() {
167
+ public override init() {
143
168
 
144
169
  this._initEvents();
145
170
 
@@ -149,22 +174,21 @@ class PolygonDrawingScene extends RenderNode {
149
174
  this.setCoordinates(this._initCoordinates);
150
175
  }
151
176
 
152
- this._planet.addLayer(this._outlineLayer);
153
- this._planet.addLayer(this._cornerLayer);
154
- this._planet.addLayer(this._centerLayer);
177
+ this._planet!.addLayer(this._outlineLayer);
178
+ this._planet!.addLayer(this._cornerLayer);
179
+ this._planet!.addLayer(this._centerLayer);
155
180
 
156
181
  this.showGhostPointer();
157
182
  this.startNewPoint();
158
183
 
159
- this._planet.renderer.controls.mouseNavigation.deactivateDoubleClickZoom();
184
+ (this._planet!.renderer!.controls.mouseNavigation as MouseNavigation).deactivateDoubleClickZoom();
160
185
 
161
- this._geometryLayer.addTo(this._planet);
186
+ this._geometryLayer.addTo(this._planet!);
162
187
 
163
- this._onChange_ = this._onChange.bind(this);
164
- this.events.on("change", this._onChange_, this);
188
+ this.events.on("change", this._onChange, this);
165
189
  }
166
190
 
167
- _onChange(e) {
191
+ protected _onChange = (e: PolygonDrawingScene) => {
168
192
  if (e.geometryType === "Polygon") {
169
193
  let coords = this.getCoordinates();
170
194
  let entity = new Entity({
@@ -181,7 +205,7 @@ class PolygonDrawingScene extends RenderNode {
181
205
  }
182
206
  }
183
207
 
184
- onremove() {
208
+ override onremove() {
185
209
  this._clearEvents();
186
210
  this.hideGhostPointer();
187
211
  this.stopNewPoint();
@@ -189,7 +213,7 @@ class PolygonDrawingScene extends RenderNode {
189
213
  this._geometryLayer.remove();
190
214
  }
191
215
 
192
- clear() {
216
+ public clear() {
193
217
 
194
218
  this._geometryLayer.clear();
195
219
 
@@ -209,7 +233,7 @@ class PolygonDrawingScene extends RenderNode {
209
233
  let entities = this._outlineLayer.getEntities();
210
234
  i = entities.length;
211
235
  while (i--) {
212
- entities[i].polyline.clear();
236
+ entities[i].polyline!.clear();
213
237
  if (i > 0) {
214
238
  entities[i].remove();
215
239
  }
@@ -218,114 +242,112 @@ class PolygonDrawingScene extends RenderNode {
218
242
  this._clearGhostPointer();
219
243
  }
220
244
 
221
- setCoordinates(coords) {
245
+ public setCoordinates(coords: CoordinatesType[]) {
222
246
  this.clear();
223
247
  for (let i = 0; i < coords.length; i++) {
224
248
  let ci = coords[i];
225
- let cart = this._planet.ellipsoid.lonLatToCartesian(new LonLat(ci[0], ci[1], ci[2]));
249
+ let cart = this._planet!.ellipsoid.lonLatToCartesian(new LonLat(ci[0], ci[1], ci[2]));
226
250
  this._appendCart(cart);
227
251
  }
228
252
  this.events.dispatch(this.events.change, this);
229
253
  }
230
254
 
231
- stopNewPoint() {
255
+ public stopNewPoint() {
232
256
  if (this.renderer) {
233
- this.renderer.events.off("ldblclick", this._onMouseDblClick_);
234
- this._onMouseDblClick_ = null;
257
+ this.renderer.events.off("ldblclick", this._onMouseDblClick);
235
258
  }
236
259
  }
237
260
 
238
- startNewPoint() {
239
- this._onMouseDblClick_ = this._onMouseDblClick.bind(this);
240
- this.renderer.events.on("ldblclick", this._onMouseDblClick_, this);
261
+ public startNewPoint() {
262
+ this.renderer!.events.on("ldblclick", this._onMouseDblClick, this);
241
263
  }
242
264
 
243
- showGhostPointer() {
265
+ public showGhostPointer() {
244
266
  this._showGhostPointer = true;
245
- this._planet.addLayer(this._ghostOutlineLayer);
267
+ this._planet!.addLayer(this._ghostOutlineLayer);
246
268
  this._insertCornerIndex = this._cornerLayer.getEntities().length;
247
269
  }
248
270
 
249
- hideGhostPointer() {
271
+ public hideGhostPointer() {
250
272
  this._showGhostPointer = false;
251
273
  this._ghostOutlineLayer.remove();
252
274
  this._insertCornerIndex = -1;
253
275
  }
254
276
 
255
- setGhostPointerPosition(groundPos) {
277
+ public setGhostPointerPosition(groundPos: Vec3) {
256
278
  if (groundPos) {
257
279
  this._ghostCorner.setCartesian3v(groundPos);
258
280
  this._updateGhostOutlinePointer(groundPos);
259
281
  }
260
282
  }
261
283
 
262
- _onCornerMouseEnter(e) {
263
- e.renderer.handler.canvas.style.cursor = "pointer";
284
+ protected _onCornerMouseEnter = (e: IMouseState) => {
285
+ e.renderer.handler.canvas!.style.cursor = "pointer";
264
286
  this.hideGhostPointer();
265
287
  }
266
288
 
267
- _onCornerMouseLeave(e) {
268
- e.renderer.handler.canvas.style.cursor = "default";
289
+ _onCornerMouseLeave = (e: IMouseState) => {
290
+ e.renderer.handler.canvas!.style.cursor = "default";
269
291
  this.showGhostPointer();
270
292
  }
271
293
 
272
- _onCenterMouseEnter(e) {
273
- e.renderer.handler.canvas.style.cursor = "pointer";
294
+ _onCenterMouseEnter = (e: IMouseState) => {
295
+ e.renderer.handler.canvas!.style.cursor = "pointer";
274
296
  this.hideGhostPointer();
275
297
  }
276
298
 
277
- _onCenterMouseLeave(e) {
278
- e.renderer.handler.canvas.style.cursor = "default";
299
+ _onCenterMouseLeave = (e: IMouseState) => {
300
+ e.renderer.handler.canvas!.style.cursor = "default";
279
301
  if (!(this._pickedCenter || this._pickedCorner)) {
280
302
  this.showGhostPointer();
281
303
  }
282
304
  }
283
305
 
284
- _onLup(e) {
285
- this._planet.renderer.controls.mouseNavigation.activate();
306
+ protected _onLup = (e: IMouseState) => {
307
+ (this._planet!.renderer!.controls.mouseNavigation as MouseNavigation).activate();
286
308
  if (this._pickedCorner || this._pickedCenter) {
287
309
  this.events.dispatch(this.events.change, this);
288
- this.setGhostPointerPosition(this._planet.getCartesianFromPixelTerrain(e));
310
+ this.setGhostPointerPosition(this._planet!.getCartesianFromPixelTerrain(e)!);
289
311
  this.showGhostPointer();
290
312
  this._pickedCorner = null;
291
313
  this._pickedCenter = null;
292
314
  }
293
315
  }
294
316
 
295
- _getLdown(e) {
296
- this._planet.renderer.controls.mouseNavigation.deactivate();
317
+ protected _getLdown(e: IMouseState): Entity | null {
318
+ (this._planet!.renderer!.controls.mouseNavigation as MouseNavigation).deactivate();
297
319
  this._startClick.set(e.x, e.y);
298
320
  let coords = e.pickingObject.getCartesian();
299
- this._startPos = this._planet.getPixelFromCartesian(coords);
321
+ this._startPos = this._planet!.getPixelFromCartesian(coords);
300
322
  return e.pickingObject;
301
323
  }
302
324
 
303
- _onCornerLdown(e) {
325
+ protected _onCornerLdown = (e: IMouseState) => {
304
326
  this._pickedCorner = this._getLdown(e);
305
327
  }
306
328
 
307
- _onCenterLdown(e) {
329
+ protected _onCenterLdown = (e: IMouseState) => {
308
330
  this._pickedCenter = this._getLdown(e);
309
331
  }
310
332
 
311
- _onMouseMove(e) {
333
+ protected _onMouseMove = (e: IMouseState) => {
312
334
  if (this._pickedCenter) {
313
335
  this._moveCenterPoint();
314
336
  } else if (this._pickedCorner) {
315
- this._moveCornerPoint(e);
337
+ this._moveCornerPoint(e.pos!);
316
338
  } else {
317
- this.setGhostPointerPosition(this._planet.getCartesianFromPixelTerrain(e));
339
+ this.setGhostPointerPosition(this._planet!.getCartesianFromPixelTerrain(e.pos)!);
318
340
  }
319
341
  }
320
342
 
321
- _onCornerLdblclick(e) {
343
+ protected _onCornerLdblclick = (e: IMouseState) => {
322
344
  this._cornerDblClick = true;
323
345
  let coords = this.getCoordinates();
324
346
  coords.splice(e.pickingObject.layerIndex, 1);
325
347
  this.setCoordinates(coords);
326
348
  }
327
349
 
328
- _onMouseDblClick(e) {
350
+ protected _onMouseDblClick = (e: IMouseState) => {
329
351
 
330
352
  if (this._cornerDblClick) {
331
353
  this._cornerDblClick = false;
@@ -336,7 +358,7 @@ class PolygonDrawingScene extends RenderNode {
336
358
  return;
337
359
  }
338
360
 
339
- let cart = this._planet.getCartesianFromPixelTerrain(e);
361
+ let cart = this._planet!.getCartesianFromPixelTerrain(e);
340
362
  if (cart) {
341
363
  this._addNew(cart);
342
364
  if (!this._isStartPoint && this._cornerLayer.getEntities().length > 2) {
@@ -347,66 +369,36 @@ class PolygonDrawingScene extends RenderNode {
347
369
  }
348
370
  }
349
371
 
350
- _initEvents() {
351
-
352
- this._onCornerLdblclick_ = this._onCornerLdblclick.bind(this);
353
- this._cornerLayer.events.on("ldblclick", this._onCornerLdblclick_, this);
354
-
355
- this._onCornerLdown_ = this._onCornerLdown.bind(this);
356
- this._cornerLayer.events.on("ldown", this._onCornerLdown_, this);
357
-
358
- this._onCenterLdown_ = this._onCenterLdown.bind(this);
359
- this._centerLayer.events.on("ldown", this._onCenterLdown_, this);
360
-
361
- this._onLup_ = this._onLup.bind(this);
362
- this.renderer.events.on("lup", this._onLup_, this);
363
-
364
- this._onMouseMove_ = this._onMouseMove.bind(this);
365
- this.renderer.events.on("mousemove", this._onMouseMove_, this);
366
-
367
- this._onCornerMouseEnter_ = this._onCornerMouseEnter.bind(this);
368
- this._cornerLayer.events.on("mouseenter", this._onCornerMouseEnter_, this);
372
+ protected _initEvents() {
369
373
 
370
- this._onCornerMouseLeave_ = this._onCornerMouseLeave.bind(this);
371
- this._cornerLayer.events.on("mouseleave", this._onCornerMouseLeave_, this);
374
+ this._cornerLayer.events.on("ldblclick", this._onCornerLdblclick, this);
375
+ this._cornerLayer.events.on("ldown", this._onCornerLdown, this);
376
+ this._centerLayer.events.on("ldown", this._onCenterLdown, this);
372
377
 
373
- this._onCenterMouseEnter_ = this._onCenterMouseEnter.bind(this);
374
- this._centerLayer.events.on("mouseenter", this._onCenterMouseEnter_, this);
378
+ this.renderer!.events.on("lup", this._onLup, this);
379
+ this.renderer!.events.on("mousemove", this._onMouseMove, this);
375
380
 
376
- this._onCenterMouseLeave_ = this._onCenterMouseLeave.bind(this);
377
- this._centerLayer.events.on("mouseleave", this._onCenterMouseLeave_, this);
381
+ this._cornerLayer.events.on("mouseenter", this._onCornerMouseEnter, this);
382
+ this._cornerLayer.events.on("mouseleave", this._onCornerMouseLeave, this);
383
+ this._centerLayer.events.on("mouseenter", this._onCenterMouseEnter, this);
384
+ this._centerLayer.events.on("mouseleave", this._onCenterMouseLeave, this);
378
385
  }
379
386
 
380
- _clearEvents() {
381
- this._cornerLayer.events.off("ldblclick", this._onCornerLdblclick_);
382
- this._onCornerLdblclick_ = null;
387
+ protected _clearEvents() {
388
+ this._cornerLayer.events.off("ldblclick", this._onCornerLdblclick);
389
+ this._cornerLayer.events.off("ldown", this._onCornerLdown);
390
+ this._centerLayer.events.off("ldown", this._onCenterLdown);
383
391
 
384
- this._cornerLayer.events.off("ldown", this._onCornerLdown_);
385
- this._onCornerLdown_ = null;
392
+ this.renderer!.events.off("lup", this._onLup);
393
+ this.renderer!.events.off("mousemove", this._onMouseMove);
386
394
 
387
- this._centerLayer.events.off("ldown", this._onCenterLdown_);
388
- this._onCenterLdown_ = null;
389
-
390
- this.renderer.events.off("lup", this._onLup_);
391
- this._onLup_ = null;
392
-
393
- this.renderer.events.off("mousemove", this._onMouseMove_);
394
- this._onMouseMove_ = null;
395
-
396
- this._cornerLayer.events.off("mouseenter", this._onCornerMouseEnter_);
397
- this._onCornerMouseEnter_ = null;
398
-
399
- this._cornerLayer.events.off("mouseleave", this._onCornerMouseLeave_);
400
- this._onCornerMouseLeave_ = null;
401
-
402
- this._centerLayer.events.off("mouseenter", this._onCenterMouseEnter_);
403
- this._onCenterMouseEnter_ = null;
404
-
405
- this._centerLayer.events.off("mouseleave", this._onCenterMouseLeave_);
406
- this._onCenterMouseLeave_ = null;
395
+ this._cornerLayer.events.off("mouseenter", this._onCornerMouseEnter);
396
+ this._cornerLayer.events.off("mouseleave", this._onCornerMouseLeave);
397
+ this._centerLayer.events.off("mouseenter", this._onCenterMouseEnter);
398
+ this._centerLayer.events.off("mouseleave", this._onCenterMouseLeave);
407
399
  }
408
400
 
409
- _drawCorners() {
401
+ protected _drawCorners() {
410
402
  let corners = this._cornerLayer.getEntities();
411
403
  for (let i = 0; i < corners.length; i++) {
412
404
  let ai = corners[i];
@@ -414,7 +406,7 @@ class PolygonDrawingScene extends RenderNode {
414
406
  }
415
407
  }
416
408
 
417
- _drawCenters() {
409
+ protected _drawCenters() {
418
410
  let centers = this._centerLayer.getEntities();
419
411
  for (let i = 0; i < centers.length; i++) {
420
412
  let ai = centers[i];
@@ -422,21 +414,21 @@ class PolygonDrawingScene extends RenderNode {
422
414
  }
423
415
  }
424
416
 
425
- _drawGhostCorner() {
417
+ protected _drawGhostCorner() {
426
418
  if (this._showGhostPointer) {
427
419
  this._checkTerrainCollision(this._ghostCorner);
428
420
  }
429
421
  }
430
422
 
431
- frame() {
423
+ public override frame() {
432
424
  this._drawCorners();
433
425
  this._drawCenters();
434
426
  this._drawGhostCorner();
435
427
  }
436
428
 
437
- _checkTerrainCollision(entity) {
429
+ protected _checkTerrainCollision(entity: Entity) {
438
430
  let _tempTerrPoint = new Vec3();
439
- let nodes = this._planet._renderedNodes;
431
+ let nodes = this._planet!._renderedNodes;
440
432
  for (let j = 0; j < nodes.length; j++) {
441
433
  let seg = nodes[j].segment;
442
434
  if (seg && seg._extentLonLat.isInside(entity.getLonLat())) {
@@ -447,11 +439,11 @@ class PolygonDrawingScene extends RenderNode {
447
439
  }
448
440
  }
449
441
 
450
- _moveCenterPoint() {
442
+ protected _moveCenterPoint() {
451
443
  let coords = this.getCoordinates(),
452
- index = this._pickedCenter.layerIndex + 1,
453
- ll = this._pickedCenter.getLonLat();
454
- let newCorner = [ll.lon, ll.lat, ll.height];
444
+ index = this._pickedCenter!.layerIndex + 1,
445
+ ll = this._pickedCenter!.getLonLat();
446
+ let newCorner: CoordinatesType = [ll.lon, ll.lat, ll.height];
455
447
 
456
448
  coords.splice(index, 0, newCorner);
457
449
 
@@ -462,25 +454,21 @@ class PolygonDrawingScene extends RenderNode {
462
454
  this._pickedCorner = this._cornerLayer.getEntities()[index];
463
455
  }
464
456
 
465
- //
466
- // virtual
467
- //
468
-
469
- _addNew(cart) {
457
+ protected _addNew(cart: Vec3) {
470
458
  if (this._insertCornerIndex === -1 || this._cornerLayer.getEntities().length < 2) {
471
459
  this._appendCart(cart);
472
460
  } else {
473
461
  let area = this.getCoordinates(),
474
462
  index = this._insertCornerIndex;
475
- let ll = this._planet.ellipsoid.cartesianToLonLat(cart);
476
- let newCorner = [ll.lon, ll.lat, ll.height];
463
+ let ll = this._planet!.ellipsoid.cartesianToLonLat(cart);
464
+ let newCorner: CoordinatesType = [ll.lon, ll.lat, ll.height];
477
465
  area.splice(index, 0, newCorner);
478
466
  this.clear();
479
467
  this.setCoordinates(area);
480
468
  }
481
469
  }
482
470
 
483
- _appendCart(cart) {
471
+ protected _appendCart(cart: Vec3) {
484
472
  let corners = this._cornerLayer.getEntities();
485
473
 
486
474
  let segNum = corners.length - 1;
@@ -519,19 +507,16 @@ class PolygonDrawingScene extends RenderNode {
519
507
  firstPath.push(f);
520
508
  }
521
509
 
522
- this._outlineLayer.getEntities()[0].polyline.setPath3v([firstPath]);
510
+ this._outlineLayer.getEntities()[0].polyline!.setPath3v([firstPath]);
523
511
 
524
512
  let entity = new Entity({
525
513
  polyline: {
526
514
  path3v: [prevPath],
527
515
  isClosed: false,
528
- properties: {
529
- index: segNum + 1
530
- },
531
516
  ...OUTLINE_OPTIONS
532
517
  }
533
518
  });
534
- entity.polyline.altitude = OUTLINE_ALT;
519
+ entity.polyline!.altitude = OUTLINE_ALT;
535
520
  this._outlineLayer.add(entity);
536
521
 
537
522
  let centers = this._centerLayer.getEntities();
@@ -561,32 +546,33 @@ class PolygonDrawingScene extends RenderNode {
561
546
  }
562
547
  }
563
548
 
564
- _clearGhostPointer() {
565
- this._ghostOutlineLayer.getEntities()[0].polyline.clear();
566
- this._ghostOutlineLayer.getEntities()[1].polyline.clear();
549
+ protected _clearGhostPointer() {
550
+ const g = this._ghostOutlineLayer;
551
+ g.getEntities()[0].polyline!.clear();
552
+ g.getEntities()[1].polyline!.clear();
567
553
  }
568
554
 
569
- _moveCornerPoint(e) {
555
+ protected _moveCornerPoint(e: Vec2) {
570
556
  let d = new Vec2(e.x, e.y).sub(this._startClick),
571
- p = this._startPos.add(d);
557
+ p = this._startPos!.add(d);
572
558
 
573
- let groundCoords = this._planet.getCartesianFromPixelTerrain(p);
559
+ let groundCoords = this._planet!.getCartesianFromPixelTerrain(p);
574
560
 
575
561
  if (groundCoords) {
576
562
 
577
- this._pickedCorner.setCartesian3v(groundCoords);
563
+ this._pickedCorner!.setCartesian3v(groundCoords);
578
564
 
579
565
  let corners = this._cornerLayer.getEntities();
580
566
 
581
567
  if (corners.length) {
582
- let ind = this._pickedCorner.layerIndex;
568
+ let ind = this._pickedCorner!.layerIndex;
583
569
  let size = corners.length;
584
570
 
585
571
  let cartPrev = corners[ind === 0 ? (size - 1) : (ind - 1)].getCartesian(),
586
572
  cartNext = corners[(ind + 1) % size].getCartesian();
587
573
 
588
- let vecPrev = this._pickedCorner.getCartesian().sub(cartPrev),
589
- vecNext = this._pickedCorner.getCartesian().sub(cartNext);
574
+ let vecPrev = this._pickedCorner!.getCartesian().sub(cartPrev),
575
+ vecNext = this._pickedCorner!.getCartesian().sub(cartNext);
590
576
 
591
577
  let distPrev = vecPrev.length(),
592
578
  distNext = vecNext.length();
@@ -610,8 +596,8 @@ class PolygonDrawingScene extends RenderNode {
610
596
  let prevPolyline = entities[ind].polyline,
611
597
  nextPolyline = entities[(ind + 1) % size].polyline;
612
598
 
613
- prevPolyline.setPath3v([pathPrev]);
614
- nextPolyline.setPath3v([pathNext]);
599
+ prevPolyline?.setPath3v([pathPrev]);
600
+ nextPolyline?.setPath3v([pathNext]);
615
601
 
616
602
  //
617
603
  // Move center points
@@ -631,7 +617,7 @@ class PolygonDrawingScene extends RenderNode {
631
617
  }
632
618
  }
633
619
 
634
- _updateGhostOutlinePointer(groundPos) {
620
+ protected _updateGhostOutlinePointer(groundPos: Vec3) {
635
621
 
636
622
  let corners = this._cornerLayer.getEntities();
637
623
  let size = corners.length;
@@ -715,71 +701,32 @@ class PolygonDrawingScene extends RenderNode {
715
701
  let prevPolyline = entities[0].polyline,
716
702
  nextPolyline = entities[1].polyline;
717
703
 
718
- prevPolyline.setPath3v([pathPrev]);
719
- nextPolyline.setPath3v([pathNext]);
704
+ prevPolyline?.setPath3v([pathPrev]);
705
+ nextPolyline?.setPath3v([pathNext]);
720
706
  }
721
707
  }
722
708
 
723
- _initGhostLayerPointer() {
709
+ protected _initGhostLayerPointer() {
724
710
  this._ghostOutlineLayer.setEntities([
725
711
  new Entity({
726
712
  polyline: {
727
713
  path3v: [],
728
714
  isClosed: false,
729
715
  ...OUTLINE_OPTIONS
730
- },
731
- properties: {
732
- index: 0
733
716
  }
734
717
  }), new Entity({
735
718
  polyline: {
736
719
  path3v: [],
737
720
  isClosed: false,
738
721
  ...OUTLINE_OPTIONS
739
- },
740
- properties: {
741
- index: 0
742
722
  }
743
723
  }),
744
724
  this._ghostCorner
745
725
  ]);
746
726
 
747
- this._ghostOutlineLayer.getEntities()[0].polyline.altitude =
748
- this._ghostOutlineLayer.getEntities()[1].polyline.altitude = OUTLINE_ALT;
727
+ const g = this._ghostOutlineLayer;
728
+ g.getEntities()[0].polyline!.altitude = g.getEntities()[1].polyline!.altitude = OUTLINE_ALT;
749
729
  }
750
730
  }
751
731
 
752
- const EVENT_NAMES = [
753
- "startpoint",
754
- "change",
755
- "add",
756
- "remove",
757
- "mousemove",
758
- "mouseenter",
759
- "mouseleave",
760
- "lclick",
761
- "rclick",
762
- "mclick",
763
- "ldblclick",
764
- "rdblclick",
765
- "mdblclick",
766
- "lup",
767
- "rup",
768
- "mup",
769
- "ldown",
770
- "rdown",
771
- "mdown",
772
- "lhold",
773
- "rhold",
774
- "mhold",
775
- "mousewheel",
776
- "touchmove",
777
- "touchstart",
778
- "touchend",
779
- "doubletouch",
780
- "touchleave",
781
- "touchenter"
782
- ];
783
-
784
-
785
- export { PolygonDrawingScene };
732
+ export {PolygonDrawingScene};