@openglobus/og 0.17.1 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/README.md +75 -46
  2. package/dist/@openglobus/og.esm.js +1 -20
  3. package/dist/@openglobus/og.esm.js.map +1 -1
  4. package/dist/@openglobus/og.umd.js +1 -20
  5. package/dist/@openglobus/og.umd.js.map +1 -1
  6. package/dist/@openglobus/res/fonts/Karla-Bold.json +5252 -0
  7. package/dist/@openglobus/res/fonts/Karla-Bold.ttf.cfg +920 -0
  8. package/dist/@openglobus/res/fonts/Karla-Bold.ttf.png +0 -0
  9. package/dist/@openglobus/res/fonts/Karla-Light.json +5252 -0
  10. package/dist/@openglobus/res/fonts/Karla-Light.ttf.cfg +830 -0
  11. package/dist/@openglobus/res/fonts/Karla-Light.ttf.png +0 -0
  12. package/dist/@openglobus/res/fonts/Karla-Medium.json +5252 -0
  13. package/dist/@openglobus/res/fonts/Karla-Medium.ttf.cfg +1196 -0
  14. package/dist/@openglobus/res/fonts/Karla-Medium.ttf.png +0 -0
  15. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.json +3332 -0
  16. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.cfg +1370 -0
  17. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.png +0 -0
  18. package/dist/@openglobus/res/fonts/Roboto-Regular.json +37147 -0
  19. package/dist/@openglobus/res/fonts/Roboto-Regular.ttf.cfg +1340 -0
  20. package/dist/@openglobus/res/fonts/Roboto-Regular.ttf.png +0 -0
  21. package/dist/@openglobus/res/fonts/arial.json +4321 -0
  22. package/dist/@openglobus/res/fonts/arial.ttf.cfg +1570 -0
  23. package/dist/@openglobus/res/fonts/arial.ttf.png +0 -0
  24. package/dist/@openglobus/res/night-4326.png +0 -0
  25. package/dist/@openglobus/res/night.png +0 -0
  26. package/dist/@openglobus/res/spec.png +0 -0
  27. package/package.json +25 -23
  28. package/src/{og/Clock.js → Clock.ts} +100 -78
  29. package/src/Deferred.ts +17 -0
  30. package/src/Events.ts +200 -0
  31. package/src/{og/Extent.js → Extent.ts} +324 -352
  32. package/src/Globe.ts +363 -0
  33. package/src/{og/ImageCanvas.js → ImageCanvas.ts} +244 -236
  34. package/src/Lock.ts +41 -0
  35. package/src/{og/LonLat.js → LonLat.ts} +50 -47
  36. package/src/{og/Object3d.js → Object3d.ts} +89 -55
  37. package/src/Popup.ts +228 -0
  38. package/src/{og/QueueArray.js → QueueArray.ts} +76 -75
  39. package/src/{og/Rectangle.js → Rectangle.ts} +115 -111
  40. package/src/Stack.ts +58 -0
  41. package/src/{og/astro/astro.js → astro/astro.ts} +49 -51
  42. package/src/{og/astro/earth.js → astro/earth.ts} +8 -9
  43. package/src/{og/astro/jd.js → astro/jd.ts} +92 -111
  44. package/src/{og/astro/orbit.js → astro/orbit.ts} +35 -37
  45. package/src/{og/astro/rotation.js → astro/rotation.ts} +4 -6
  46. package/src/{og/bv/Box.js → bv/Box.ts} +21 -17
  47. package/src/{og/bv/Sphere.js → bv/Sphere.ts} +21 -19
  48. package/src/bv/index.ts +4 -0
  49. package/src/{og/camera/Camera.js → camera/Camera.ts} +254 -197
  50. package/src/{og/camera/Frustum.js → camera/Frustum.ts} +137 -111
  51. package/src/{og/camera/PlanetCamera.js → camera/PlanetCamera.ts} +248 -185
  52. package/src/camera/index.ts +4 -0
  53. package/src/{og/cons.js → cons.ts} +14 -18
  54. package/src/{og/control/Atmosphere.js → control/Atmosphere.ts} +50 -50
  55. package/src/{og/control/CompassButton.js → control/CompassButton.ts} +27 -30
  56. package/src/{og/control/Control.js → control/Control.ts} +76 -70
  57. package/src/{og/control/DebugInfo.js → control/DebugInfo.ts} +130 -62
  58. package/src/{og/control/DrawingSwitcher.js → control/DrawingSwitcher.ts} +16 -22
  59. package/src/control/EarthCoordinates.ts +222 -0
  60. package/src/control/EarthNavigation.ts +293 -0
  61. package/src/{og/control/GeoImageDragControl.js → control/GeoImageDragControl.ts} +37 -29
  62. package/src/control/KeyboardNavigation.ts +168 -0
  63. package/src/{og/control/LayerAnimation.js → control/LayerAnimation.ts} +74 -90
  64. package/src/control/LayerSwitcher.ts +76 -0
  65. package/src/{og/control/Lighting.js → control/Lighting.ts} +158 -120
  66. package/src/control/MouseNavigation.ts +468 -0
  67. package/src/control/MouseWheelZoomControl.ts +269 -0
  68. package/src/{og/control/RulerSwitcher.js → control/RulerSwitcher.ts} +18 -20
  69. package/src/control/ScaleControl.ts +131 -0
  70. package/src/control/SegmentBoundVisualization.ts +50 -0
  71. package/src/control/ShowFps.ts +28 -0
  72. package/src/control/SimpleNavigation.ts +118 -0
  73. package/src/{og/control/SimpleSkyBackground.js → control/SimpleSkyBackground.ts} +36 -38
  74. package/src/{og/control/Sun.js → control/Sun.ts} +56 -64
  75. package/src/control/ToggleWireframe.ts +35 -0
  76. package/src/control/TouchNavigation.ts +368 -0
  77. package/src/control/ZoomControl.ts +111 -0
  78. package/src/control/drawing/DrawingControl.ts +45 -0
  79. package/src/{og/control/drawing/LineStringDrawingScene.js → control/drawing/LineStringDrawingScene.ts} +28 -35
  80. package/src/{og/control/drawing/PolygonDrawingScene.js → control/drawing/PolygonDrawingScene.ts} +148 -201
  81. package/src/{og/control/elevationProfile/ElevationProfile.js → control/elevationProfile/ElevationProfile.ts} +70 -36
  82. package/src/control/heightRuler/HeightRuler.ts +16 -0
  83. package/src/{og/control/heightRuler/HeightRulerScene.js → control/heightRuler/HeightRulerScene.ts} +92 -87
  84. package/src/{og/control/heightRuler/HeightRulerSwitcher.js → control/heightRuler/HeightRulerSwitcher.ts} +3 -3
  85. package/src/control/index.ts +45 -0
  86. package/src/control/ruler/Ruler.ts +35 -0
  87. package/src/{og/control/ruler/RulerScene.js → control/ruler/RulerScene.ts} +163 -121
  88. package/src/{og/control/selection/Selection.js → control/selection/Selection.ts} +23 -21
  89. package/src/{og/control/selection/SelectionScene.js → control/selection/SelectionScene.ts} +64 -50
  90. package/src/{og/control/timeline/TimelineControl.js → control/timeline/TimelineControl.ts} +37 -28
  91. package/src/{og/control/timeline/TimelineModel.js → control/timeline/TimelineModel.ts} +50 -35
  92. package/src/{og/control/timeline/TimelineView.js → control/timeline/TimelineView.ts} +162 -113
  93. package/src/{og/control/timeline/timelineUtils.js → control/timeline/timelineUtils.ts} +11 -10
  94. package/src/{og/control → control}/visibleExtent/Segment.js +5 -5
  95. package/src/{og/control → control}/visibleExtent/VisibleExtent.js +8 -15
  96. package/src/{og/control/visibleExtent/drawnode.js → control/visibleExtent/drawnode.ts} +1 -3
  97. package/src/{og/ellipsoid/Ellipsoid.js → ellipsoid/Ellipsoid.ts} +113 -59
  98. package/src/ellipsoid/index.ts +4 -0
  99. package/src/{og/ellipsoid/wgs84.js → ellipsoid/wgs84.ts} +1 -3
  100. package/src/{og/entity/BaseBillboard.js → entity/BaseBillboard.ts} +128 -102
  101. package/src/entity/BaseBillboardHandler.ts +772 -0
  102. package/src/{og/entity/Billboard.js → entity/Billboard.ts} +77 -47
  103. package/src/entity/BillboardHandler.ts +135 -0
  104. package/src/{og/entity/Entity.js → entity/Entity.ts} +285 -226
  105. package/src/{og/entity/EntityCollection.js → entity/EntityCollection.ts} +340 -247
  106. package/src/{og/entity/GeoObject.js → entity/GeoObject.ts} +122 -67
  107. package/src/{og/entity/GeoObjectHandler.js → entity/GeoObjectHandler.ts} +273 -198
  108. package/src/entity/Geometry.ts +486 -0
  109. package/src/{og/entity/GeometryHandler.js → entity/GeometryHandler.ts} +383 -541
  110. package/src/{og/entity/Label.js → entity/Label.ts} +131 -83
  111. package/src/{og/entity/LabelHandler.js → entity/LabelHandler.ts} +289 -255
  112. package/src/{og/entity/LabelWorker.js → entity/LabelWorker.ts} +26 -36
  113. package/src/{og/entity/PointCloud.js → entity/PointCloud.ts} +200 -164
  114. package/src/entity/PointCloudHandler.ts +125 -0
  115. package/src/{og/entity/Polyline.js → entity/Polyline.ts} +517 -539
  116. package/src/{og/entity/PolylineHandler.js → entity/PolylineHandler.ts} +29 -31
  117. package/src/{og/entity/Ray.js → entity/Ray.ts} +89 -60
  118. package/src/{og/entity/RayHandler.js → entity/RayHandler.ts} +201 -306
  119. package/src/{og/entity/Strip.js → entity/Strip.ts} +143 -100
  120. package/src/{og/entity/StripHandler.js → entity/StripHandler.ts} +76 -72
  121. package/src/entity/index.ts +12 -0
  122. package/src/index.ts +173 -0
  123. package/src/input/KeyboardHandler.ts +196 -0
  124. package/src/{og/input/MouseHandler.js → input/MouseHandler.ts} +46 -35
  125. package/src/input/TouchHandler.ts +54 -0
  126. package/src/{og/input/input.js → input/input.ts} +1 -3
  127. package/src/{og/layer/BaseGeoImage.js → layer/BaseGeoImage.ts} +174 -107
  128. package/src/{og/layer/CanvasTiles.js → layer/CanvasTiles.ts} +139 -105
  129. package/src/{og/layer/GeoImage.js → layer/GeoImage.ts} +62 -52
  130. package/src/layer/GeoTexture2d.ts +56 -0
  131. package/src/{og/layer/GeoVideo.js → layer/GeoVideo.ts} +53 -53
  132. package/src/{og/layer/KML.js → layer/KML.ts} +63 -74
  133. package/src/{og/layer/Layer.js → layer/Layer.ts} +399 -223
  134. package/src/{og/layer/Material.js → layer/Material.ts} +40 -35
  135. package/src/{og/layer/Vector.js → layer/Vector.ts} +319 -267
  136. package/src/{og/layer/WMS.js → layer/WMS.ts} +76 -64
  137. package/src/{og/layer/XYZ.js → layer/XYZ.ts} +123 -98
  138. package/src/layer/index.ts +12 -0
  139. package/src/{og/light/LightSource.js → light/LightSource.ts} +132 -93
  140. package/src/{og/math/Line2.js → math/Line2.ts} +11 -8
  141. package/src/{og/math/Line3.js → math/Line3.ts} +49 -27
  142. package/src/{og/math/Mat3.js → math/Mat3.ts} +43 -27
  143. package/src/{og/math/Mat4.js → math/Mat4.ts} +110 -77
  144. package/src/{og/math/Plane.js → math/Plane.ts} +28 -23
  145. package/src/{og/math/Quat.js → math/Quat.ts} +238 -222
  146. package/src/{og/math/Ray.js → math/Ray.ts} +59 -63
  147. package/src/{og/math/Vec2.js → math/Vec2.ts} +85 -76
  148. package/src/{og/math/Vec3.js → math/Vec3.ts} +141 -140
  149. package/src/{og/math/Vec4.js → math/Vec4.ts} +64 -53
  150. package/src/{og/math/coder.js → math/coder.ts} +30 -27
  151. package/src/math/index.ts +26 -0
  152. package/src/{og/math.js → math.ts} +46 -49
  153. package/src/{og/mercator.js → mercator.ts} +143 -149
  154. package/src/{og/proj/EPSG3857.js → proj/EPSG3857.ts} +1 -3
  155. package/src/{og/proj/EPSG4326.js → proj/EPSG4326.ts} +11 -13
  156. package/src/{og/proj/Proj.js → proj/Proj.ts} +27 -23
  157. package/src/{og/quadTree/EPSG4326QuadTreeStrategy.js → quadTree/EPSG4326QuadTreeStrategy.ts} +10 -13
  158. package/src/{og/quadTree/EarthQuadTreeStrategy.js → quadTree/EarthQuadTreeStrategy.ts} +11 -13
  159. package/src/quadTree/EntityCollectionNode.ts +395 -0
  160. package/src/{og/quadTree/MarsQuadTreeStrategy.js → quadTree/MarsQuadTreeStrategy.ts} +10 -13
  161. package/src/{og/quadTree/Node.js → quadTree/Node.ts} +283 -191
  162. package/src/{og/quadTree/QuadTreeStrategy.js → quadTree/QuadTreeStrategy.ts} +35 -29
  163. package/src/quadTree/Wgs84QuadTreeStrategy.ts +22 -0
  164. package/src/quadTree/index.ts +14 -0
  165. package/src/{og/quadTree/quadTree.js → quadTree/quadTree.ts} +75 -77
  166. package/src/{og/renderer/Renderer.js → renderer/Renderer.ts} +454 -298
  167. package/src/{og/renderer/RendererEvents.js → renderer/RendererEvents.ts} +347 -270
  168. package/src/{og/scene/Axes.js → scene/Axes.ts} +26 -22
  169. package/src/{og/scene/BaseNode.js → scene/BaseNode.ts} +53 -47
  170. package/src/{og/scene/Planet.js → scene/Planet.ts} +777 -595
  171. package/src/{og/scene/RenderNode.js → scene/RenderNode.ts} +105 -91
  172. package/src/{og/scene/SkyBox.js → scene/SkyBox.ts} +29 -25
  173. package/src/scene/index.ts +6 -0
  174. package/src/{og/segment/Segment.js → segment/Segment.ts} +497 -371
  175. package/src/{og/segment/SegmentLonLat.js → segment/SegmentLonLat.ts} +81 -87
  176. package/src/{og/segment/SegmentLonLatWgs84.js → segment/SegmentLonLatWgs84.ts} +9 -16
  177. package/src/{og/segment/Slice.js → segment/Slice.ts} +15 -9
  178. package/src/{og/segment/segmentHelper.js → segment/segmentHelper.ts} +57 -49
  179. package/src/{og/shaders/atmos.js → shaders/atmos.ts} +4 -6
  180. package/src/{og/shaders/billboard.js → shaders/billboard.ts} +3 -5
  181. package/src/{og/shaders/bloom.js → shaders/bloom.ts} +2 -4
  182. package/src/{og/shaders/blur.js → shaders/blur.ts} +4 -7
  183. package/src/{og/shaders/depth.js → shaders/depth.ts} +1 -3
  184. package/src/{og/shaders/drawnode.js → shaders/drawnode.ts} +19 -21
  185. package/src/{og/shaders/geoObject.js → shaders/geoObject.ts} +17 -19
  186. package/src/{og/shaders/label.js → shaders/label.ts} +4 -6
  187. package/src/{og/shaders/lumFilter.js → shaders/lumFilter.ts} +2 -4
  188. package/src/{og/shaders/pickingMask.js → shaders/pickingMask.ts} +2 -4
  189. package/src/{og/shaders/pointCloud.js → shaders/pointCloud.ts} +7 -10
  190. package/src/{og/shaders/polyline.js → shaders/polyline.ts} +3 -200
  191. package/src/{og/shaders/ray.js → shaders/ray.ts} +2 -4
  192. package/src/{og/shaders/screenFrame.js → shaders/screenFrame.ts} +2 -4
  193. package/src/{og/shaders/skybox.js → shaders/skybox.ts} +7 -9
  194. package/src/{og/shaders/toneMapping.js → shaders/toneMapping.ts} +2 -4
  195. package/src/{og/shaders/utils.js → shaders/utils.ts} +0 -2
  196. package/src/{og/terrain/BilTerrain.js → terrain/BilTerrain.ts} +38 -32
  197. package/src/terrain/EmptyTerrain.ts +230 -0
  198. package/src/{og/terrain/Geoid.js → terrain/Geoid.ts} +67 -41
  199. package/src/{og/terrain/GlobusTerrain.js → terrain/GlobusTerrain.ts} +159 -153
  200. package/src/{og/terrain/MapboxTerrain.js → terrain/MapboxTerrain.ts} +58 -61
  201. package/src/terrain/index.ts +6 -0
  202. package/src/ui/Button.ts +121 -0
  203. package/src/ui/ButtonGroup.ts +63 -0
  204. package/src/ui/Dialog.ts +244 -0
  205. package/src/ui/Slider.ts +188 -0
  206. package/src/ui/ToggleButton.ts +68 -0
  207. package/src/{og/ui/View.js → ui/View.ts} +66 -59
  208. package/src/utils/BaseWorker.ts +60 -0
  209. package/src/utils/FontAtlas.ts +356 -0
  210. package/src/{og/utils/GeoImageCreator.js → utils/GeoImageCreator.ts} +45 -29
  211. package/src/{og/utils/ImagesCacheManager.js → utils/ImagesCacheManager.ts} +85 -70
  212. package/src/utils/Loader.ts +247 -0
  213. package/src/{og/utils/NormalMapCreator.js → utils/NormalMapCreator.ts} +114 -77
  214. package/src/{og/utils/PlainSegmentWorker.js → utils/PlainSegmentWorker.ts} +41 -24
  215. package/src/{og/utils/TerrainWorker.js → utils/TerrainWorker.ts} +51 -36
  216. package/src/utils/TextureAtlas.ts +322 -0
  217. package/src/{og/utils/VectorTileCreator.js → utils/VectorTileCreator.ts} +67 -52
  218. package/src/{og/utils/colorTable.js → utils/colorTable.ts} +142 -144
  219. package/src/{og/utils/earcut.js → utils/earcut.ts} +664 -661
  220. package/src/{og/utils/objParser.js → utils/objParser.ts} +66 -37
  221. package/src/{og/utils/shared.js → utils/shared.ts} +267 -206
  222. package/src/utils/units.ts +78 -0
  223. package/src/webgl/BaseFramebuffer.ts +125 -0
  224. package/src/webgl/Framebuffer.ts +206 -0
  225. package/src/webgl/Handler.ts +1414 -0
  226. package/src/webgl/Multisample.ts +153 -0
  227. package/src/webgl/Program.ts +451 -0
  228. package/src/{og/webgl/ProgramController.js → webgl/ProgramController.ts} +44 -43
  229. package/src/webgl/index.ts +13 -0
  230. package/src/{og/webgl/types.js → webgl/types.ts} +29 -31
  231. package/src/webgl/variableHandlers.ts +114 -0
  232. package/src/og/Deferred.js +0 -11
  233. package/src/og/Events.js +0 -185
  234. package/src/og/Globe.js +0 -342
  235. package/src/og/Lock.js +0 -44
  236. package/src/og/Popup.js +0 -187
  237. package/src/og/Stack.js +0 -49
  238. package/src/og/bv/index.js +0 -4
  239. package/src/og/camera/index.js +0 -4
  240. package/src/og/control/EarthCoordinates.js +0 -214
  241. package/src/og/control/EarthNavigation.js +0 -258
  242. package/src/og/control/KeyboardNavigation.js +0 -149
  243. package/src/og/control/LayerSwitcher.js +0 -424
  244. package/src/og/control/MouseNavigation.js +0 -436
  245. package/src/og/control/MouseWheelZoomControl.js +0 -253
  246. package/src/og/control/ScaleControl.js +0 -119
  247. package/src/og/control/SegmentBoundVisualization.js +0 -54
  248. package/src/og/control/ShowFps.js +0 -40
  249. package/src/og/control/SimpleNavigation.js +0 -123
  250. package/src/og/control/ToggleWireframe.js +0 -35
  251. package/src/og/control/TouchNavigation.js +0 -350
  252. package/src/og/control/ZoomControl.js +0 -115
  253. package/src/og/control/drawing/DrawingControl.js +0 -51
  254. package/src/og/control/heightRuler/HeightRuler.js +0 -12
  255. package/src/og/control/index.js +0 -56
  256. package/src/og/control/ruler/Ruler.js +0 -39
  257. package/src/og/ellipsoid/index.js +0 -4
  258. package/src/og/entity/BillboardHandler.js +0 -883
  259. package/src/og/entity/Geometry.js +0 -320
  260. package/src/og/entity/PointCloudHandler.js +0 -122
  261. package/src/og/entity/index.js +0 -9
  262. package/src/og/index.js +0 -112
  263. package/src/og/input/KeyboardHandler.js +0 -128
  264. package/src/og/input/TouchHandler.js +0 -59
  265. package/src/og/layer/GeoTexture2d.js +0 -50
  266. package/src/og/layer/index.js +0 -11
  267. package/src/og/math/index.js +0 -23
  268. package/src/og/quadTree/EntityCollectionNode.js +0 -391
  269. package/src/og/quadTree/Wgs84QuadTreeStrategy.js +0 -27
  270. package/src/og/quadTree/index.js +0 -14
  271. package/src/og/res/images.js +0 -8
  272. package/src/og/scene/index.js +0 -5
  273. package/src/og/terrain/EmptyTerrain.js +0 -174
  274. package/src/og/terrain/index.js +0 -6
  275. package/src/og/ui/Button.js +0 -107
  276. package/src/og/ui/ButtonGroup.js +0 -57
  277. package/src/og/ui/Dialog.js +0 -239
  278. package/src/og/ui/Slider.js +0 -170
  279. package/src/og/ui/ToggleButton.js +0 -51
  280. package/src/og/ui/UIhelpers.js +0 -155
  281. package/src/og/utils/BaseWorker.js +0 -46
  282. package/src/og/utils/FontAtlas.js +0 -218
  283. package/src/og/utils/Loader.js +0 -188
  284. package/src/og/utils/TextureAtlas.js +0 -291
  285. package/src/og/utils/functionComposition.js +0 -13
  286. package/src/og/utils/units.js +0 -78
  287. package/src/og/webgl/Framebuffer.js +0 -311
  288. package/src/og/webgl/Handler.js +0 -1168
  289. package/src/og/webgl/Multisample.js +0 -275
  290. package/src/og/webgl/Program.js +0 -407
  291. package/src/og/webgl/callbacks.js +0 -98
  292. package/src/og/webgl/index.js +0 -13
  293. package/src/og.jsdoc +0 -3
  294. package/types/Clock.d.ts +0 -99
  295. package/types/Deferred.d.ts +0 -6
  296. package/types/Events.d.ts +0 -78
  297. package/types/Extent.d.ts +0 -166
  298. package/types/Globe.d.ts +0 -108
  299. package/types/ImageCanvas.d.ts +0 -128
  300. package/types/Lock.d.ts +0 -12
  301. package/types/LonLat.d.ts +0 -127
  302. package/types/Object3d.d.ts +0 -35
  303. package/types/Popup.d.ts +0 -29
  304. package/types/QueueArray.d.ts +0 -19
  305. package/types/Rectangle.d.ts +0 -80
  306. package/types/Stack.d.ts +0 -19
  307. package/types/arial.d.ts +0 -49
  308. package/types/astro/astro.d.ts +0 -38
  309. package/types/astro/earth.d.ts +0 -7
  310. package/types/astro/jd.d.ts +0 -254
  311. package/types/bv/Box.d.ts +0 -30
  312. package/types/bv/Sphere.d.ts +0 -38
  313. package/types/bv/index.d.ts +0 -3
  314. package/types/camera/Camera.d.ts +0 -314
  315. package/types/camera/Frustum.d.ts +0 -133
  316. package/types/camera/PlanetCamera.d.ts +0 -219
  317. package/types/camera/index.d.ts +0 -3
  318. package/types/cons.d.ts +0 -40
  319. package/types/control/Atmosphere.d.ts +0 -15
  320. package/types/control/CompassButton.d.ts +0 -16
  321. package/types/control/Control.d.ts +0 -104
  322. package/types/control/DebugInfo.d.ts +0 -19
  323. package/types/control/DrawingSwitcher.d.ts +0 -13
  324. package/types/control/EarthCoordinates.d.ts +0 -44
  325. package/types/control/EarthNavigation.d.ts +0 -43
  326. package/types/control/GeoImageDragControl.d.ts +0 -14
  327. package/types/control/KeyboardNavigation.d.ts +0 -24
  328. package/types/control/LayerAnimation.d.ts +0 -73
  329. package/types/control/LayerSwitcher.d.ts +0 -64
  330. package/types/control/Lighting.d.ts +0 -41
  331. package/types/control/MouseNavigation.d.ts +0 -49
  332. package/types/control/MouseWheelZoomControl.d.ts +0 -46
  333. package/types/control/ScaleControl.d.ts +0 -23
  334. package/types/control/ShowFps.d.ts +0 -11
  335. package/types/control/SimpleNavigation.d.ts +0 -26
  336. package/types/control/SimpleSkyBackground.d.ts +0 -15
  337. package/types/control/Sun.d.ts +0 -53
  338. package/types/control/ToggleWireframe.d.ts +0 -12
  339. package/types/control/TouchNavigation.d.ts +0 -54
  340. package/types/control/ZoomControl.d.ts +0 -26
  341. package/types/control/drawing/DrawingControl.d.ts +0 -14
  342. package/types/control/drawing/LineStringDrawingScene.d.ts +0 -5
  343. package/types/control/drawing/PolygonDrawingScene.d.ts +0 -99
  344. package/types/control/heightRuler/HeightRuler.d.ts +0 -6
  345. package/types/control/heightRuler/HeightRulerScene.d.ts +0 -23
  346. package/types/control/index.d.ts +0 -27
  347. package/types/control/ruler/Ruler.d.ts +0 -13
  348. package/types/control/ruler/RulerScene.d.ts +0 -51
  349. package/types/control/selection/Selection.d.ts +0 -49
  350. package/types/control/selection/SelectionScene.d.ts +0 -32
  351. package/types/control/timeline/TimelineControl.d.ts +0 -10
  352. package/types/control/timeline/TimelineModel.d.ts +0 -33
  353. package/types/control/timeline/TimelineView.d.ts +0 -57
  354. package/types/control/timeline/timelineUtils.d.ts +0 -9
  355. package/types/ellipsoid/Ellipsoid.d.ts +0 -170
  356. package/types/ellipsoid/index.d.ts +0 -3
  357. package/types/ellipsoid/wgs84.d.ts +0 -6
  358. package/types/entity/BaseBillboard.d.ts +0 -215
  359. package/types/entity/Billboard.d.ts +0 -94
  360. package/types/entity/BillboardHandler.d.ts +0 -75
  361. package/types/entity/Entity.d.ts +0 -340
  362. package/types/entity/EntityCollection.d.ts +0 -303
  363. package/types/entity/GeoObject.d.ts +0 -117
  364. package/types/entity/GeoObjectHandler.d.ts +0 -41
  365. package/types/entity/Geometry.d.ts +0 -79
  366. package/types/entity/GeometryHandler.d.ts +0 -76
  367. package/types/entity/Label.d.ts +0 -190
  368. package/types/entity/LabelHandler.d.ts +0 -31
  369. package/types/entity/LabelWorker.d.ts +0 -9
  370. package/types/entity/PointCloud.d.ts +0 -174
  371. package/types/entity/PointCloudHandler.d.ts +0 -38
  372. package/types/entity/Polyline.d.ts +0 -307
  373. package/types/entity/PolylineHandler.d.ts +0 -18
  374. package/types/entity/Ray.d.ts +0 -122
  375. package/types/entity/RayHandler.d.ts +0 -63
  376. package/types/entity/Strip.d.ts +0 -119
  377. package/types/entity/StripHandler.d.ts +0 -38
  378. package/types/entity/index.d.ts +0 -8
  379. package/types/index.d.ts +0 -53
  380. package/types/input/KeyboardHandler.d.ts +0 -10
  381. package/types/input/MouseHandler.d.ts +0 -5
  382. package/types/input/TouchHandler.d.ts +0 -5
  383. package/types/input/input.d.ts +0 -42
  384. package/types/layer/BaseGeoImage.d.ts +0 -116
  385. package/types/layer/CanvasTiles.d.ts +0 -73
  386. package/types/layer/GeoImage.d.ts +0 -51
  387. package/types/layer/GeoTexture2d.d.ts +0 -7
  388. package/types/layer/GeoVideo.d.ts +0 -47
  389. package/types/layer/KML.d.ts +0 -93
  390. package/types/layer/Layer.d.ts +0 -320
  391. package/types/layer/Material.d.ts +0 -45
  392. package/types/layer/Vector.d.ts +0 -211
  393. package/types/layer/WMS.d.ts +0 -66
  394. package/types/layer/XYZ.d.ts +0 -122
  395. package/types/layer/index.d.ts +0 -10
  396. package/types/light/LightSource.d.ts +0 -178
  397. package/types/math/Line2.d.ts +0 -11
  398. package/types/math/Line3.d.ts +0 -10
  399. package/types/math/Mat3.d.ts +0 -65
  400. package/types/math/Mat4.d.ts +0 -176
  401. package/types/math/Plane.d.ts +0 -18
  402. package/types/math/Quat.d.ts +0 -379
  403. package/types/math/Ray.d.ts +0 -82
  404. package/types/math/Vec2.d.ts +0 -309
  405. package/types/math/Vec3.d.ts +0 -472
  406. package/types/math/Vec4.d.ts +0 -161
  407. package/types/math/coder.d.ts +0 -43
  408. package/types/math/index.d.ts +0 -11
  409. package/types/math.d.ts +0 -268
  410. package/types/mercator.d.ts +0 -92
  411. package/types/proj/EPSG3857.d.ts +0 -6
  412. package/types/proj/EPSG4326.d.ts +0 -6
  413. package/types/proj/Proj.d.ts +0 -42
  414. package/types/quadTree/EPSG4326QuadTreeStrategy.d.ts +0 -3
  415. package/types/quadTree/EarthQuadTreeStrategy.d.ts +0 -3
  416. package/types/quadTree/EntityCollectionNode.d.ts +0 -41
  417. package/types/quadTree/MarsQuadTreeStrategy.d.ts +0 -3
  418. package/types/quadTree/Node.d.ts +0 -58
  419. package/types/quadTree/QuadTreeStrategy.d.ts +0 -21
  420. package/types/quadTree/Wgs84QuadTreeStrategy.d.ts +0 -3
  421. package/types/quadTree/index.d.ts +0 -12
  422. package/types/quadTree/quadTree.d.ts +0 -40
  423. package/types/renderer/Renderer.d.ts +0 -291
  424. package/types/renderer/RendererEvents.d.ts +0 -255
  425. package/types/res/images.d.ts +0 -2
  426. package/types/scene/Axes.d.ts +0 -10
  427. package/types/scene/BaseNode.d.ts +0 -60
  428. package/types/scene/Planet.d.ts +0 -595
  429. package/types/scene/RenderNode.d.ts +0 -152
  430. package/types/scene/SkyBox.d.ts +0 -9
  431. package/types/scene/index.d.ts +0 -4
  432. package/types/segment/Segment.d.ts +0 -273
  433. package/types/segment/SegmentLonLat.d.ts +0 -22
  434. package/types/segment/SegmentLonLatWgs84.d.ts +0 -4
  435. package/types/segment/Slice.d.ts +0 -10
  436. package/types/segment/segmentHelper.d.ts +0 -13
  437. package/types/shaders/atmos.d.ts +0 -4
  438. package/types/shaders/billboard.d.ts +0 -3
  439. package/types/shaders/depth.d.ts +0 -2
  440. package/types/shaders/drawnode.d.ts +0 -8
  441. package/types/shaders/geoObject.d.ts +0 -3
  442. package/types/shaders/label.d.ts +0 -4
  443. package/types/shaders/pickingMask.d.ts +0 -2
  444. package/types/shaders/pointCloud.d.ts +0 -2
  445. package/types/shaders/polyline.d.ts +0 -3
  446. package/types/shaders/ray.d.ts +0 -2
  447. package/types/shaders/screenFrame.d.ts +0 -2
  448. package/types/shaders/skybox.d.ts +0 -2
  449. package/types/shaders/toneMapping.d.ts +0 -2
  450. package/types/shaders/utils.d.ts +0 -1
  451. package/types/terrain/BilTerrain.d.ts +0 -14
  452. package/types/terrain/EmptyTerrain.d.ts +0 -87
  453. package/types/terrain/Geoid.d.ts +0 -17
  454. package/types/terrain/GlobusTerrain.d.ts +0 -122
  455. package/types/terrain/MapboxTerrain.d.ts +0 -14
  456. package/types/terrain/index.d.ts +0 -5
  457. package/types/ui/Button.d.ts +0 -21
  458. package/types/ui/ButtonGroup.d.ts +0 -12
  459. package/types/ui/Dialog.d.ts +0 -41
  460. package/types/ui/Slider.d.ts +0 -33
  461. package/types/ui/ToggleButton.d.ts +0 -10
  462. package/types/ui/UIhelpers.d.ts +0 -13
  463. package/types/ui/View.d.ts +0 -33
  464. package/types/ui/icons.d.ts +0 -1
  465. package/types/utils/BaseWorker.d.ts +0 -14
  466. package/types/utils/FontAtlas.d.ts +0 -16
  467. package/types/utils/GeoImageCreator.d.ts +0 -30
  468. package/types/utils/ImagesCacheManager.d.ts +0 -10
  469. package/types/utils/Loader.d.ts +0 -31
  470. package/types/utils/NormalMapCreator.d.ts +0 -39
  471. package/types/utils/PlainSegmentWorker.d.ts +0 -8
  472. package/types/utils/TerrainWorker.d.ts +0 -7
  473. package/types/utils/TextureAtlas.d.ts +0 -113
  474. package/types/utils/VectorTileCreator.d.ts +0 -14
  475. package/types/utils/colorTable.d.ts +0 -143
  476. package/types/utils/earcut.d.ts +0 -6
  477. package/types/utils/functionComposition.d.ts +0 -5
  478. package/types/utils/objParser.d.ts +0 -8
  479. package/types/utils/shared.d.ts +0 -241
  480. package/types/utils/units.d.ts +0 -20
  481. package/types/webgl/Framebuffer.d.ts +0 -134
  482. package/types/webgl/Handler.d.ts +0 -403
  483. package/types/webgl/Multisample.d.ts +0 -91
  484. package/types/webgl/Program.d.ts +0 -163
  485. package/types/webgl/ProgramController.d.ts +0 -89
  486. package/types/webgl/callbacks.d.ts +0 -1
  487. package/types/webgl/index.d.ts +0 -6
  488. package/types/webgl/types.d.ts +0 -2
  489. /package/{src/og → dist/@openglobus/res/fonts}/arial.js +0 -0
  490. /package/src/{og/ui/icons.js → ui/icons.ts} +0 -0
@@ -1,11 +1,25 @@
1
- "use strict";
2
-
3
- import { doubleToTwoFloatsV2 } from "../math/coder.js";
4
- import { Vec2 } from "../math/Vec2.js";
5
- import * as mercator from "../mercator.js";
6
- import * as quadTree from "../quadTree/quadTree.js";
7
- import { earcut, flatten } from "../utils/earcut.js";
8
- import { GeometryType } from "./Geometry.js";
1
+ import * as mercator from "../mercator";
2
+ import * as quadTree from "../quadTree/quadTree";
3
+ import {Extent} from "../Extent";
4
+ import {Handler} from "../webgl/Handler";
5
+ import {doubleToTwoFloatsV2} from "../math/coder";
6
+ import {Vector} from "../layer/Vector";
7
+ import {NumberArray2, Vec2} from "../math/Vec2";
8
+ import {Node} from "../quadTree/Node";
9
+ import {Vec3} from "../math/Vec3";
10
+ import {Vec4} from "../math/Vec4";
11
+ import {
12
+ CoordinatesType,
13
+ GeometryType,
14
+ Geometry,
15
+ IMultiLineStringCoordinates,
16
+ ILineStringCoordinates,
17
+ IMultiPolygonCoordinates,
18
+ IPolygonCoordinates
19
+ } from "./Geometry";
20
+
21
+ import {earcut, flatten} from "../utils/earcut";
22
+ import {WebGLBufferExt} from "../webgl/Handler";
9
23
 
10
24
  const POLYVERTICES_BUFFER = 0;
11
25
  const POLYINDEXES_BUFFER = 1;
@@ -20,7 +34,7 @@ const LINESTROKECOLORS_BUFFER = 9;
20
34
  const POLYPICKINGCOLORS_BUFFER = 10;
21
35
  const LINEPICKINGCOLORS_BUFFER = 11;
22
36
 
23
- function doubleToTwoFloats(v, high, low) {
37
+ function doubleToTwoFloats(v: NumberArray2, high: Vec2, low: Vec2) {
24
38
  let x = v[0],
25
39
  y = v[1];
26
40
 
@@ -50,8 +64,64 @@ let tempHigh = new Vec2(),
50
64
  tempHighLow = new Vec2();
51
65
 
52
66
  class GeometryHandler {
53
- constructor(layer) {
54
- this.__staticId = GeometryHandler._staticCounter++;
67
+
68
+ static __counter__: number = 0;
69
+
70
+ protected __id: number;
71
+
72
+ protected _layer: Vector;
73
+
74
+ protected _handler: Handler | null;
75
+
76
+ protected _geometries: Geometry[];
77
+
78
+ protected _updatedGeometryArr: Geometry[];
79
+ protected _updatedGeometry: Record<number, boolean>;
80
+
81
+ protected _removeGeometryExtentArr: Extent[];
82
+ protected _removeGeometryExtents: Record<number, boolean>;
83
+
84
+ // Polygon arrays
85
+ protected _polyVerticesHighMerc: number[];
86
+ protected _polyVerticesLowMerc: number[];
87
+ protected _polyColors: number[];
88
+ protected _polyPickingColors: number[];
89
+ protected _polyIndexes: number[];
90
+
91
+ // Line arrays
92
+ protected _lineVerticesHighMerc: number[];
93
+ protected _lineVerticesLowMerc: number[];
94
+ protected _lineOrders: number[];
95
+ protected _lineIndexes: number[];
96
+ protected _lineColors: number[];
97
+ protected _linePickingColors: number[];
98
+ protected _lineThickness: number[];
99
+ protected _lineStrokes: number[];
100
+ protected _lineStrokeColors: number[];
101
+
102
+ // Buffers
103
+ public _polyVerticesHighBufferMerc: WebGLBufferExt | null;
104
+ public _polyVerticesLowBufferMerc: WebGLBufferExt | null;
105
+ public _polyColorsBuffer: WebGLBufferExt | null;
106
+ public _polyPickingColorsBuffer: WebGLBufferExt | null;
107
+ public _polyIndexesBuffer: WebGLBufferExt | null;
108
+
109
+ public _lineVerticesHighBufferMerc: WebGLBufferExt | null;
110
+ public _lineVerticesLowBufferMerc: WebGLBufferExt | null;
111
+ public _lineColorsBuffer: WebGLBufferExt | null;
112
+ public _linePickingColorsBuffer: WebGLBufferExt | null;
113
+ public _lineThicknessBuffer: WebGLBufferExt | null;
114
+ public _lineStrokesBuffer: WebGLBufferExt | null;
115
+ public _lineStrokeColorsBuffer: WebGLBufferExt | null;
116
+ public _lineOrdersBuffer: WebGLBufferExt | null;
117
+ public _lineIndexesBuffer: WebGLBufferExt | null;
118
+
119
+ protected _buffersUpdateCallbacks: Function[];
120
+
121
+ protected _changedBuffers: boolean[];
122
+
123
+ constructor(layer: Vector) {
124
+ this.__id = GeometryHandler.__counter__++;
55
125
 
56
126
  this._layer = layer;
57
127
 
@@ -117,36 +187,25 @@ class GeometryHandler {
117
187
  this._changedBuffers = new Array(this._buffersUpdateCallbacks.length);
118
188
  }
119
189
 
120
- static get _staticCounter() {
121
- if (!this._counter && this._counter !== 0) {
122
- this._counter = 0;
123
- }
124
- return this._counter;
125
- }
126
-
127
- static set _staticCounter(n) {
128
- this._counter = n;
129
- }
130
-
131
190
  static appendLineData(
132
- pathArr,
133
- isClosed,
134
- color,
135
- pickingColor,
136
- thickness,
137
- strokeColor,
138
- strokeSize,
139
- outVerticesHigh,
140
- outVerticesLow,
141
- outOrders,
142
- outIndexes,
143
- outColors,
144
- outPickingColors,
145
- outThickness,
146
- outStrokeColors,
147
- outStrokes,
148
- outVerticesHigh2,
149
- outVerticesLow2
191
+ pathArr: CoordinatesType[][],
192
+ isClosed: boolean,
193
+ color: Vec4,
194
+ pickingColor: Vec3,
195
+ thickness: number,
196
+ strokeColor: Vec4,
197
+ strokeSize: number,
198
+ outVerticesHigh: number[],
199
+ outVerticesLow: number[],
200
+ outOrders: number[],
201
+ outIndexes: number[],
202
+ outColors: number[],
203
+ outPickingColors: number[],
204
+ outThickness: number[],
205
+ outStrokeColors: number[],
206
+ outStrokes: number[],
207
+ outVerticesHigh2: number[],
208
+ outVerticesLow2: number[]
150
209
  ) {
151
210
  var index = 0;
152
211
 
@@ -170,8 +229,8 @@ class GeometryHandler {
170
229
  continue;
171
230
  }
172
231
 
173
- var startIndex = index;
174
- var last;
232
+ let startIndex = index;
233
+ let last: CoordinatesType;
175
234
  if (isClosed) {
176
235
  last = path[path.length - 1];
177
236
  } else {
@@ -185,48 +244,32 @@ class GeometryHandler {
185
244
  last = [p0[0] + p0[0] - p1[0], p0[1] + p0[1] - p1[1]];
186
245
  }
187
246
 
188
- doubleToTwoFloats(last, tempHigh, tempLow);
247
+ doubleToTwoFloats(last as NumberArray2, tempHigh, tempLow);
189
248
 
190
249
  outVerticesHigh.push(
191
- tempHigh.x,
192
- tempHigh.y,
193
- tempHigh.x,
194
- tempHigh.y,
195
- tempHigh.x,
196
- tempHigh.y,
197
- tempHigh.x,
198
- tempHigh.y
250
+ tempHigh.x, tempHigh.y,
251
+ tempHigh.x, tempHigh.y,
252
+ tempHigh.x, tempHigh.y,
253
+ tempHigh.x, tempHigh.y
199
254
  );
200
255
  outVerticesLow.push(
201
- tempLow.x,
202
- tempLow.y,
203
- tempLow.x,
204
- tempLow.y,
205
- tempLow.x,
206
- tempLow.y,
207
- tempLow.x,
208
- tempLow.y
256
+ tempLow.x, tempLow.y,
257
+ tempLow.x, tempLow.y,
258
+ tempLow.x, tempLow.y,
259
+ tempLow.x, tempLow.y
209
260
  );
210
261
 
211
262
  outVerticesHigh2.push(
212
- tempHigh.x,
213
- tempHigh.y,
214
- tempHigh.x,
215
- tempHigh.y,
216
- tempHigh.x,
217
- tempHigh.y,
218
- tempHigh.x,
219
- tempHigh.y
263
+ tempHigh.x, tempHigh.y,
264
+ tempHigh.x, tempHigh.y,
265
+ tempHigh.x, tempHigh.y,
266
+ tempHigh.x, tempHigh.y
220
267
  );
221
268
  outVerticesLow2.push(
222
- tempLow.x,
223
- tempLow.y,
224
- tempLow.x,
225
- tempLow.y,
226
- tempLow.x,
227
- tempLow.y,
228
- tempLow.x,
229
- tempLow.y
269
+ tempLow.x, tempLow.y,
270
+ tempLow.x, tempLow.y,
271
+ tempLow.x, tempLow.y,
272
+ tempLow.x, tempLow.y
230
273
  );
231
274
 
232
275
  outOrders.push(1, -1, 2, -2);
@@ -234,168 +277,80 @@ class GeometryHandler {
234
277
  outThickness.push(t, t, t, t);
235
278
  outStrokes.push(s, s, s, s);
236
279
  outColors.push(
237
- c[0],
238
- c[1],
239
- c[2],
240
- c[3],
241
- c[0],
242
- c[1],
243
- c[2],
244
- c[3],
245
- c[0],
246
- c[1],
247
- c[2],
248
- c[3],
249
- c[0],
250
- c[1],
251
- c[2],
252
- c[3]
280
+ c[0], c[1], c[2], c[3],
281
+ c[0], c[1], c[2], c[3],
282
+ c[0], c[1], c[2], c[3],
283
+ c[0], c[1], c[2], c[3]
253
284
  );
254
285
  outStrokeColors.push(
255
- sc[0],
256
- sc[1],
257
- sc[2],
258
- sc[3],
259
- sc[0],
260
- sc[1],
261
- sc[2],
262
- sc[3],
263
- sc[0],
264
- sc[1],
265
- sc[2],
266
- sc[3],
267
- sc[0],
268
- sc[1],
269
- sc[2],
270
- sc[3]
286
+ sc[0], sc[1], sc[2], sc[3],
287
+ sc[0], sc[1], sc[2], sc[3],
288
+ sc[0], sc[1], sc[2], sc[3],
289
+ sc[0], sc[1], sc[2], sc[3]
271
290
  );
272
291
  outPickingColors.push(
273
- p[0],
274
- p[1],
275
- p[2],
276
- p[3],
277
- p[0],
278
- p[1],
279
- p[2],
280
- p[3],
281
- p[0],
282
- p[1],
283
- p[2],
284
- p[3],
285
- p[0],
286
- p[1],
287
- p[2],
288
- p[3]
292
+ p[0], p[1], p[2], p[3],
293
+ p[0], p[1], p[2], p[3],
294
+ p[0], p[1], p[2], p[3],
295
+ p[0], p[1], p[2], p[3]
289
296
  );
290
297
 
291
298
  for (let i = 0; i < path.length; i++) {
292
- var cur = path[i];
299
+ let cur = path[i];
293
300
 
294
- doubleToTwoFloats(cur, tempHigh, tempLow);
301
+ doubleToTwoFloats(cur as NumberArray2, tempHigh, tempLow);
295
302
 
296
303
  outVerticesHigh.push(
297
- tempHigh.x,
298
- tempHigh.y,
299
- tempHigh.x,
300
- tempHigh.y,
301
- tempHigh.x,
302
- tempHigh.y,
303
- tempHigh.x,
304
- tempHigh.y
304
+ tempHigh.x, tempHigh.y,
305
+ tempHigh.x, tempHigh.y,
306
+ tempHigh.x, tempHigh.y,
307
+ tempHigh.x, tempHigh.y
305
308
  );
306
309
  outVerticesLow.push(
307
- tempLow.x,
308
- tempLow.y,
309
- tempLow.x,
310
- tempLow.y,
311
- tempLow.x,
312
- tempLow.y,
313
- tempLow.x,
314
- tempLow.y
310
+ tempLow.x, tempLow.y,
311
+ tempLow.x, tempLow.y,
312
+ tempLow.x, tempLow.y,
313
+ tempLow.x, tempLow.y
315
314
  );
316
315
 
317
316
  outVerticesHigh2.push(
318
- tempHigh.x,
319
- tempHigh.y,
320
- tempHigh.x,
321
- tempHigh.y,
322
- tempHigh.x,
323
- tempHigh.y,
324
- tempHigh.x,
325
- tempHigh.y
317
+ tempHigh.x, tempHigh.y,
318
+ tempHigh.x, tempHigh.y,
319
+ tempHigh.x, tempHigh.y,
320
+ tempHigh.x, tempHigh.y
326
321
  );
327
322
  outVerticesLow2.push(
328
- tempLow.x,
329
- tempLow.y,
330
- tempLow.x,
331
- tempLow.y,
332
- tempLow.x,
333
- tempLow.y,
334
- tempLow.x,
335
- tempLow.y
323
+ tempLow.x, tempLow.y,
324
+ tempLow.x, tempLow.y,
325
+ tempLow.x, tempLow.y,
326
+ tempLow.x, tempLow.y
336
327
  );
337
328
 
338
329
  outOrders.push(1, -1, 2, -2);
339
330
  outThickness.push(t, t, t, t);
340
331
  outStrokes.push(s, s, s, s);
341
332
  outColors.push(
342
- c[0],
343
- c[1],
344
- c[2],
345
- c[3],
346
- c[0],
347
- c[1],
348
- c[2],
349
- c[3],
350
- c[0],
351
- c[1],
352
- c[2],
353
- c[3],
354
- c[0],
355
- c[1],
356
- c[2],
357
- c[3]
333
+ c[0], c[1], c[2], c[3],
334
+ c[0], c[1], c[2], c[3],
335
+ c[0], c[1], c[2], c[3],
336
+ c[0], c[1], c[2], c[3]
358
337
  );
359
338
  outStrokeColors.push(
360
- sc[0],
361
- sc[1],
362
- sc[2],
363
- sc[3],
364
- sc[0],
365
- sc[1],
366
- sc[2],
367
- sc[3],
368
- sc[0],
369
- sc[1],
370
- sc[2],
371
- sc[3],
372
- sc[0],
373
- sc[1],
374
- sc[2],
375
- sc[3]
339
+ sc[0], sc[1], sc[2], sc[3],
340
+ sc[0], sc[1], sc[2], sc[3],
341
+ sc[0], sc[1], sc[2], sc[3],
342
+ sc[0], sc[1], sc[2], sc[3]
376
343
  );
377
344
  outPickingColors.push(
378
- p[0],
379
- p[1],
380
- p[2],
381
- p[3],
382
- p[0],
383
- p[1],
384
- p[2],
385
- p[3],
386
- p[0],
387
- p[1],
388
- p[2],
389
- p[3],
390
- p[0],
391
- p[1],
392
- p[2],
393
- p[3]
345
+ p[0], p[1], p[2], p[3],
346
+ p[0], p[1], p[2], p[3],
347
+ p[0], p[1], p[2], p[3],
348
+ p[0], p[1], p[2], p[3]
394
349
  );
395
350
  outIndexes.push(index++, index++, index++, index++);
396
351
  }
397
352
 
398
- var first;
353
+ let first: CoordinatesType;
399
354
  if (isClosed) {
400
355
  first = path[0];
401
356
  outIndexes.push(startIndex, startIndex + 1, startIndex + 1, startIndex + 1);
@@ -411,106 +366,54 @@ class GeometryHandler {
411
366
  outIndexes.push(index - 1, index - 1, index - 1, index - 1);
412
367
  }
413
368
 
414
- doubleToTwoFloats(first, tempHigh, tempLow);
369
+ doubleToTwoFloats(first as NumberArray2, tempHigh, tempLow);
415
370
 
416
371
  outVerticesHigh.push(
417
- tempHigh.x,
418
- tempHigh.y,
419
- tempHigh.x,
420
- tempHigh.y,
421
- tempHigh.x,
422
- tempHigh.y,
423
- tempHigh.x,
424
- tempHigh.y
372
+ tempHigh.x, tempHigh.y,
373
+ tempHigh.x, tempHigh.y,
374
+ tempHigh.x, tempHigh.y,
375
+ tempHigh.x, tempHigh.y
425
376
  );
426
377
  outVerticesLow.push(
427
- tempLow.x,
428
- tempLow.y,
429
- tempLow.x,
430
- tempLow.y,
431
- tempLow.x,
432
- tempLow.y,
433
- tempLow.x,
434
- tempLow.y
378
+ tempLow.x, tempLow.y,
379
+ tempLow.x, tempLow.y,
380
+ tempLow.x, tempLow.y,
381
+ tempLow.x, tempLow.y
435
382
  );
436
383
 
437
384
  outVerticesHigh2.push(
438
- tempHigh.x,
439
- tempHigh.y,
440
- tempHigh.x,
441
- tempHigh.y,
442
- tempHigh.x,
443
- tempHigh.y,
444
- tempHigh.x,
445
- tempHigh.y
385
+ tempHigh.x, tempHigh.y,
386
+ tempHigh.x, tempHigh.y,
387
+ tempHigh.x, tempHigh.y,
388
+ tempHigh.x, tempHigh.y
446
389
  );
447
390
  outVerticesLow2.push(
448
- tempLow.x,
449
- tempLow.y,
450
- tempLow.x,
451
- tempLow.y,
452
- tempLow.x,
453
- tempLow.y,
454
- tempLow.x,
455
- tempLow.y
391
+ tempLow.x, tempLow.y,
392
+ tempLow.x, tempLow.y,
393
+ tempLow.x, tempLow.y,
394
+ tempLow.x, tempLow.y
456
395
  );
457
396
 
458
397
  outOrders.push(1, -1, 2, -2);
459
398
  outThickness.push(t, t, t, t);
460
399
  outStrokes.push(s, s, s, s);
461
400
  outColors.push(
462
- c[0],
463
- c[1],
464
- c[2],
465
- c[3],
466
- c[0],
467
- c[1],
468
- c[2],
469
- c[3],
470
- c[0],
471
- c[1],
472
- c[2],
473
- c[3],
474
- c[0],
475
- c[1],
476
- c[2],
477
- c[3]
401
+ c[0], c[1], c[2], c[3],
402
+ c[0], c[1], c[2], c[3],
403
+ c[0], c[1], c[2], c[3],
404
+ c[0], c[1], c[2], c[3]
478
405
  );
479
406
  outStrokeColors.push(
480
- sc[0],
481
- sc[1],
482
- sc[2],
483
- sc[3],
484
- sc[0],
485
- sc[1],
486
- sc[2],
487
- sc[3],
488
- sc[0],
489
- sc[1],
490
- sc[2],
491
- sc[3],
492
- sc[0],
493
- sc[1],
494
- sc[2],
495
- sc[3]
407
+ sc[0], sc[1], sc[2], sc[3],
408
+ sc[0], sc[1], sc[2], sc[3],
409
+ sc[0], sc[1], sc[2], sc[3],
410
+ sc[0], sc[1], sc[2], sc[3]
496
411
  );
497
412
  outPickingColors.push(
498
- p[0],
499
- p[1],
500
- p[2],
501
- p[3],
502
- p[0],
503
- p[1],
504
- p[2],
505
- p[3],
506
- p[0],
507
- p[1],
508
- p[2],
509
- p[3],
510
- p[0],
511
- p[1],
512
- p[2],
513
- p[3]
413
+ p[0], p[1], p[2], p[3],
414
+ p[0], p[1], p[2], p[3],
415
+ p[0], p[1], p[2], p[3],
416
+ p[0], p[1], p[2], p[3]
514
417
  );
515
418
 
516
419
  if (j < pathArr.length - 1) {
@@ -520,7 +423,7 @@ class GeometryHandler {
520
423
  }
521
424
  }
522
425
 
523
- assignHandler(handler) {
426
+ public assignHandler(handler: Handler) {
524
427
  this._handler = handler;
525
428
  this.refresh();
526
429
  if (handler.isInitialized()) {
@@ -532,7 +435,7 @@ class GeometryHandler {
532
435
  * @public
533
436
  * @param {Geometry} geometry - Geometry object.
534
437
  */
535
- add(geometry) {
438
+ public add(geometry: Geometry) {
536
439
  //
537
440
  // Triangulates polygon and sets geometry data.
538
441
  if (geometry._handlerIndex === -1) {
@@ -541,29 +444,26 @@ class GeometryHandler {
541
444
 
542
445
  this._geometries.push(geometry);
543
446
 
544
- let pickingColor = geometry._entity._pickingColor.scaleTo(1 / 255);
447
+ let pickingColor = geometry._entity!._pickingColor.scaleTo(1 / 255);
545
448
 
546
449
  geometry._polyVerticesHighMerc = [];
547
450
  geometry._polyVerticesLowMerc = [];
548
451
  geometry._lineVerticesHighMerc = [];
549
452
  geometry._lineVerticesLowMerc = [];
550
453
 
551
- if (geometry._coordinates[0].length) {
552
- if (geometry._type === GeometryType.POLYGON) {
553
- let coordinates = geometry._coordinates;
554
- let ci = [];
454
+ if ((geometry._coordinates as IPolygonCoordinates)[0].length) {
455
+ if (geometry.type === GeometryType.POLYGON) {
456
+ let coordinates = geometry._coordinates as IPolygonCoordinates;
457
+ let ci: IPolygonCoordinates = [];
555
458
  for (let j = 0; j < coordinates.length; j++) {
556
459
  ci[j] = [];
557
460
  for (let k = 0; k < coordinates[j].length; k++) {
558
- ci[j][k] = [
559
- mercator.forward_lon(coordinates[j][k][0]),
560
- mercator.forward_lat(coordinates[j][k][1])
561
- ];
461
+ ci[j][k] = [mercator.forward_lon(coordinates[j][k][0]), mercator.forward_lat(coordinates[j][k][1])];
562
462
  }
563
463
  }
564
464
 
565
465
  let data = flatten(ci);
566
- let indexes = earcut(data.vertices, data.holes, 2);
466
+ let indexes: number[] = earcut(data.vertices, data.holes, 2);
567
467
 
568
468
  geometry._polyVerticesHandlerIndex = this._polyVerticesHighMerc.length;
569
469
  geometry._polyIndexesHandlerIndex = this._polyIndexes.length;
@@ -572,19 +472,14 @@ class GeometryHandler {
572
472
  this._polyIndexes.push(indexes[i] + geometry._polyVerticesHandlerIndex * 0.5);
573
473
  }
574
474
 
575
- var color = geometry._style.fillColor;
475
+ let color = geometry._style.fillColor;
576
476
 
577
477
  let verticesHigh = [],
578
478
  verticesLow = [];
579
479
 
580
480
  for (let i = 0; i < data.vertices.length * 0.5; i++) {
581
481
  this._polyColors.push(color.x, color.y, color.z, color.w);
582
- this._polyPickingColors.push(
583
- pickingColor.x,
584
- pickingColor.y,
585
- pickingColor.z,
586
- 1.0
587
- );
482
+ this._polyPickingColors.push(pickingColor.x, pickingColor.y, pickingColor.z, 1.0);
588
483
  }
589
484
 
590
485
  for (let i = 0; i < data.vertices.length; i++) {
@@ -630,21 +525,17 @@ class GeometryHandler {
630
525
  geometry._lineVerticesLowMerc
631
526
  );
632
527
 
633
- geometry._lineVerticesLength =
634
- this._lineVerticesHighMerc.length - geometry._lineVerticesHandlerIndex;
635
- geometry._lineOrdersLength =
636
- this._lineOrders.length - geometry._lineOrdersHandlerIndex;
637
- geometry._lineIndexesLength =
638
- this._lineIndexes.length - geometry._lineIndexesHandlerIndex;
639
- geometry._lineColorsLength =
640
- this._lineColors.length - geometry._lineColorsHandlerIndex;
641
- geometry._lineThicknessLength =
642
- this._lineThickness.length - geometry._lineThicknessHandlerIndex;
643
-
644
- } else if (geometry._type === GeometryType.MULTIPOLYGON) {
645
- let coordinates = geometry._coordinates;
646
- let vertices = [],
647
- indexes = [];
528
+ geometry._lineVerticesLength = this._lineVerticesHighMerc.length - geometry._lineVerticesHandlerIndex;
529
+ geometry._lineOrdersLength = this._lineOrders.length - geometry._lineOrdersHandlerIndex;
530
+ geometry._lineIndexesLength = this._lineIndexes.length - geometry._lineIndexesHandlerIndex;
531
+ geometry._lineColorsLength = this._lineColors.length - geometry._lineColorsHandlerIndex;
532
+ geometry._lineThicknessLength = this._lineThickness.length - geometry._lineThicknessHandlerIndex;
533
+
534
+ } else if (geometry.type === GeometryType.MULTIPOLYGON) {
535
+
536
+ let coordinates = geometry._coordinates as IMultiPolygonCoordinates;
537
+ let vertices: number[] = [],
538
+ indexes: number[] = [];
648
539
 
649
540
  // Creates polygon stroke data
650
541
  geometry._lineVerticesHandlerIndex = this._lineVerticesHighMerc.length;
@@ -654,19 +545,16 @@ class GeometryHandler {
654
545
  geometry._lineThicknessHandlerIndex = this._lineThickness.length;
655
546
 
656
547
  for (let i = 0; i < coordinates.length; i++) {
657
- let cci = coordinates[i];
658
- let ci = [];
548
+ let cci: CoordinatesType[][] = coordinates[i];
549
+ let ci: CoordinatesType[][] = [];
659
550
  for (let j = 0; j < cci.length; j++) {
660
551
  ci[j] = [];
661
552
  for (let k = 0; k < coordinates[i][j].length; k++) {
662
- ci[j][k] = [
663
- mercator.forward_lon(cci[j][k][0]),
664
- mercator.forward_lat(cci[j][k][1])
665
- ];
553
+ ci[j][k] = [mercator.forward_lon(cci[j][k][0]), mercator.forward_lat(cci[j][k][1])];
666
554
  }
667
555
  }
668
556
  let data = flatten(ci);
669
- let dataIndexes = earcut(data.vertices, data.holes, 2);
557
+ let dataIndexes: number[] = earcut(data.vertices, data.holes, 2);
670
558
 
671
559
  for (let j = 0; j < dataIndexes.length; j++) {
672
560
  indexes.push(dataIndexes[j] + vertices.length * 0.5);
@@ -733,24 +621,18 @@ class GeometryHandler {
733
621
  geometry._polyVerticesLength = vertices.length;
734
622
  geometry._polyIndexesLength = indexes.length;
735
623
 
736
- geometry._lineVerticesLength =
737
- this._lineVerticesHighMerc.length - geometry._lineVerticesHandlerIndex;
738
- geometry._lineOrdersLength =
739
- this._lineOrders.length - geometry._lineOrdersHandlerIndex;
740
- geometry._lineIndexesLength =
741
- this._lineIndexes.length - geometry._lineIndexesHandlerIndex;
742
- geometry._lineColorsLength =
743
- this._lineColors.length - geometry._lineColorsHandlerIndex;
744
- geometry._lineThicknessLength =
745
- this._lineThickness.length - geometry._lineThicknessHandlerIndex;
746
- } else if (geometry._type === GeometryType.LINESTRING) {
747
- let coordinates = geometry._coordinates;
624
+ geometry._lineVerticesLength = this._lineVerticesHighMerc.length - geometry._lineVerticesHandlerIndex;
625
+ geometry._lineOrdersLength = this._lineOrders.length - geometry._lineOrdersHandlerIndex;
626
+ geometry._lineIndexesLength = this._lineIndexes.length - geometry._lineIndexesHandlerIndex;
627
+ geometry._lineColorsLength = this._lineColors.length - geometry._lineColorsHandlerIndex;
628
+ geometry._lineThicknessLength = this._lineThickness.length - geometry._lineThicknessHandlerIndex;
629
+
630
+ } else if (geometry.type === GeometryType.LINESTRING) {
631
+
632
+ let coordinates: ILineStringCoordinates = geometry._coordinates as ILineStringCoordinates;
748
633
  let ci = new Array(coordinates.length);
749
634
  for (let j = 0; j < coordinates.length; j++) {
750
- ci[j] = [
751
- mercator.forward_lon(coordinates[j][0]),
752
- mercator.forward_lat(coordinates[j][1])
753
- ];
635
+ ci[j] = [mercator.forward_lon(coordinates[j][0]), mercator.forward_lat(coordinates[j][1])];
754
636
  }
755
637
 
756
638
  // Creates polygon stroke data
@@ -781,26 +663,20 @@ class GeometryHandler {
781
663
  geometry._lineVerticesLowMerc
782
664
  );
783
665
 
784
- geometry._lineVerticesLength =
785
- this._lineVerticesHighMerc.length - geometry._lineVerticesHandlerIndex;
786
- geometry._lineOrdersLength =
787
- this._lineOrders.length - geometry._lineOrdersHandlerIndex;
788
- geometry._lineIndexesLength =
789
- this._lineIndexes.length - geometry._lineIndexesHandlerIndex;
790
- geometry._lineColorsLength =
791
- this._lineColors.length - geometry._lineColorsHandlerIndex;
792
- geometry._lineThicknessLength =
793
- this._lineThickness.length - geometry._lineThicknessHandlerIndex;
794
- } else if (geometry._type === GeometryType.MULTILINESTRING) {
795
- let coordinates = geometry._coordinates;
796
- let ci = [];
666
+ geometry._lineVerticesLength = this._lineVerticesHighMerc.length - geometry._lineVerticesHandlerIndex;
667
+ geometry._lineOrdersLength = this._lineOrders.length - geometry._lineOrdersHandlerIndex;
668
+ geometry._lineIndexesLength = this._lineIndexes.length - geometry._lineIndexesHandlerIndex;
669
+ geometry._lineColorsLength = this._lineColors.length - geometry._lineColorsHandlerIndex;
670
+ geometry._lineThicknessLength = this._lineThickness.length - geometry._lineThicknessHandlerIndex;
671
+
672
+ } else if (geometry.type === GeometryType.MULTILINESTRING) {
673
+
674
+ let coordinates = geometry._coordinates as IMultiLineStringCoordinates;
675
+ let ci: IMultiLineStringCoordinates = [];
797
676
  for (let j = 0; j < coordinates.length; j++) {
798
677
  ci[j] = [];
799
678
  for (let k = 0; k < coordinates[j].length; k++) {
800
- ci[j][k] = [
801
- mercator.forward_lon(coordinates[j][k][0]),
802
- mercator.forward_lat(coordinates[j][k][1])
803
- ];
679
+ ci[j][k] = [mercator.forward_lon(coordinates[j][k][0]), mercator.forward_lat(coordinates[j][k][1])];
804
680
  }
805
681
  }
806
682
 
@@ -832,102 +708,68 @@ class GeometryHandler {
832
708
  geometry._lineVerticesLowMerc
833
709
  );
834
710
 
835
- geometry._lineVerticesLength =
836
- this._lineVerticesHighMerc.length - geometry._lineVerticesHandlerIndex;
837
- geometry._lineOrdersLength =
838
- this._lineOrders.length - geometry._lineOrdersHandlerIndex;
839
- geometry._lineIndexesLength =
840
- this._lineIndexes.length - geometry._lineIndexesHandlerIndex;
841
- geometry._lineColorsLength =
842
- this._lineColors.length - geometry._lineColorsHandlerIndex;
843
- geometry._lineThicknessLength =
844
- this._lineThickness.length - geometry._lineThicknessHandlerIndex;
711
+ geometry._lineVerticesLength = this._lineVerticesHighMerc.length - geometry._lineVerticesHandlerIndex;
712
+ geometry._lineOrdersLength = this._lineOrders.length - geometry._lineOrdersHandlerIndex;
713
+ geometry._lineIndexesLength = this._lineIndexes.length - geometry._lineIndexesHandlerIndex;
714
+ geometry._lineColorsLength = this._lineColors.length - geometry._lineColorsHandlerIndex;
715
+ geometry._lineThicknessLength = this._lineThickness.length - geometry._lineThicknessHandlerIndex;
845
716
  }
846
717
  }
847
718
 
848
719
  // Refresh visibility
849
720
  this.setGeometryVisibility(geometry);
850
721
 
851
- !this._updatedGeometry[geometry._id] && this._updatedGeometryArr.push(geometry);
852
- this._updatedGeometry[geometry._id] = true;
722
+ !this._updatedGeometry[geometry.__id] && this._updatedGeometryArr.push(geometry);
723
+ this._updatedGeometry[geometry.__id] = true;
853
724
  this.refresh();
854
725
  }
855
726
  }
856
727
 
857
- remove(geometry) {
858
- var index = geometry._handlerIndex;
728
+ public remove(geometry: Geometry) {
729
+
730
+ const index = geometry._handlerIndex;
859
731
  if (index !== -1) {
860
732
  this._geometries.splice(index, 1);
861
733
 
862
734
  // polygon
863
735
  // this._polyVerticesLonLat.splice(geometry._polyVerticesHandlerIndex, geometry._polyVerticesLength);
864
- this._polyVerticesHighMerc.splice(
865
- geometry._polyVerticesHandlerIndex,
866
- geometry._polyVerticesLength
867
- );
868
- this._polyVerticesLowMerc.splice(
869
- geometry._polyVerticesHandlerIndex,
870
- geometry._polyVerticesLength
871
- );
872
736
 
873
- this._polyColors.splice(
874
- geometry._polyVerticesHandlerIndex * 2,
875
- geometry._polyVerticesLength * 2
876
- );
877
- this._polyPickingColors.splice(
878
- geometry._polyVerticesHandlerIndex * 2,
879
- geometry._polyVerticesLength * 2
880
- );
881
- this._polyIndexes.splice(
882
- geometry._polyIndexesHandlerIndex,
883
- geometry._polyIndexesLength
884
- );
885
- var di = geometry._polyVerticesLength * 0.5;
737
+ this._polyVerticesHighMerc.splice(geometry._polyVerticesHandlerIndex, geometry._polyVerticesLength);
738
+ this._polyVerticesLowMerc.splice(geometry._polyVerticesHandlerIndex, geometry._polyVerticesLength);
739
+
740
+ this._polyColors.splice(geometry._polyVerticesHandlerIndex * 2, geometry._polyVerticesLength * 2);
741
+ this._polyPickingColors.splice(geometry._polyVerticesHandlerIndex * 2, geometry._polyVerticesLength * 2);
742
+ this._polyIndexes.splice(geometry._polyIndexesHandlerIndex, geometry._polyIndexesLength);
743
+
744
+ let di = geometry._polyVerticesLength * 0.5;
886
745
  for (let i = geometry._polyIndexesHandlerIndex; i < this._polyIndexes.length; i++) {
887
746
  this._polyIndexes[i] -= di;
888
747
  }
889
748
 
890
749
  // line
891
750
  // this._lineVerticesLonLat.splice(geometry._lineVerticesHandlerIndex, geometry._lineVerticesLength);
892
- this._lineVerticesHighMerc.splice(
893
- geometry._lineVerticesHandlerIndex,
894
- geometry._lineVerticesLength
895
- );
896
- this._lineVerticesLowMerc.splice(
897
- geometry._lineVerticesHandlerIndex,
898
- geometry._lineVerticesLength
899
- );
751
+
752
+ this._lineVerticesHighMerc.splice(geometry._lineVerticesHandlerIndex, geometry._lineVerticesLength);
753
+ this._lineVerticesLowMerc.splice(geometry._lineVerticesHandlerIndex, geometry._lineVerticesLength);
754
+
900
755
  this._lineOrders.splice(geometry._lineOrdersHandlerIndex, geometry._lineOrdersLength);
901
756
  this._lineColors.splice(geometry._lineColorsHandlerIndex, geometry._lineColorsLength);
902
- this._linePickingColors.splice(
903
- geometry._lineColorsHandlerIndex,
904
- geometry._lineColorsLength
905
- );
906
- this._lineStrokeColors.splice(
907
- geometry._lineColorsHandlerIndex,
908
- geometry._lineColorsLength
909
- );
910
- this._lineThickness.splice(
911
- geometry._lineThicknessHandlerIndex,
912
- geometry._lineThicknessLength
913
- );
914
- this._lineStrokes.splice(
915
- geometry._lineThicknessHandlerIndex,
916
- geometry._lineThicknessLength
917
- );
918
- this._lineIndexes.splice(
919
- geometry._lineIndexesHandlerIndex,
920
- geometry._lineIndexesLength
921
- );
757
+ this._linePickingColors.splice(geometry._lineColorsHandlerIndex, geometry._lineColorsLength);
758
+ this._lineStrokeColors.splice(geometry._lineColorsHandlerIndex, geometry._lineColorsLength);
759
+ this._lineThickness.splice(geometry._lineThicknessHandlerIndex, geometry._lineThicknessLength);
760
+ this._lineStrokes.splice(geometry._lineThicknessHandlerIndex, geometry._lineThicknessLength);
761
+ this._lineIndexes.splice(geometry._lineIndexesHandlerIndex, geometry._lineIndexesLength);
762
+
922
763
  di = geometry._lineVerticesLength * 0.5;
923
764
  for (let i = geometry._lineIndexesHandlerIndex; i < this._lineIndexes.length; i++) {
924
765
  this._lineIndexes[i] -= di;
925
766
  }
926
767
 
927
768
  // reindex
928
- var g = this._geometries;
769
+ let g = this._geometries;
929
770
  for (let i = index; i < g.length; i++) {
930
- var gi = g[i];
771
+ let gi = g[i];
772
+
931
773
  gi._handlerIndex = i;
932
774
  gi._polyVerticesHandlerIndex -= geometry._polyVerticesLength;
933
775
  gi._polyIndexesHandlerIndex -= geometry._polyIndexesLength;
@@ -939,6 +781,7 @@ class GeometryHandler {
939
781
  gi._lineIndexesHandlerIndex -= geometry._lineIndexesLength;
940
782
  }
941
783
 
784
+
942
785
  geometry._pickingReady = false;
943
786
 
944
787
  geometry._handler = null;
@@ -964,22 +807,21 @@ class GeometryHandler {
964
807
  geometry._lineThicknessHandlerIndex = -1;
965
808
  geometry._lineColorsHandlerIndex = -1;
966
809
 
967
- !this._removeGeometryExtents[geometry._id] &&
968
- this._removeGeometryExtentArr.push(geometry.getExtent());
969
- this._removeGeometryExtents[geometry._id] = true;
810
+ !this._removeGeometryExtents[geometry.__id] && this._removeGeometryExtentArr.push(geometry.getExtent());
811
+ this._removeGeometryExtents[geometry.__id] = true;
970
812
 
971
813
  this.refresh();
972
814
  }
973
815
  }
974
816
 
975
- _refreshRecursevely(geometry, treeNode) {
817
+ protected _refreshRecursevely(geometry: Geometry, treeNode: Node) {
976
818
  if (treeNode.ready) {
977
- var lid = this._layer._id;
819
+ let lid = this._layer._id;
978
820
  for (let i = 0; i < treeNode.nodes.length; i++) {
979
- var ni = treeNode.nodes[i];
980
- if (geometry._extent.overlaps(ni.segment.getExtentLonLat())) {
821
+ let ni = treeNode.nodes[i];
822
+ if (geometry.overlaps(ni.segment.getExtentLonLat())) {
981
823
  this._refreshRecursevely(geometry, ni);
982
- var m = ni.segment.materials[lid];
824
+ let m = ni.segment.materials[lid];
983
825
  if (m && m.isReady) {
984
826
  if (m.segment.node.getState() !== quadTree.RENDERING) {
985
827
  m.layer.clearMaterial(m);
@@ -989,6 +831,7 @@ class GeometryHandler {
989
831
  m._updateTexture = m.texture;
990
832
  m._updatePickingMask = m.pickingMask;
991
833
  }
834
+
992
835
  geometry._pickingReady = true;
993
836
  }
994
837
  }
@@ -996,14 +839,14 @@ class GeometryHandler {
996
839
  }
997
840
  }
998
841
 
999
- _refreshRecursevelyExt(extent, treeNode) {
842
+ protected _refreshRecursevelyExt(extent: Extent, treeNode: Node) {
1000
843
  if (treeNode.ready) {
1001
- var lid = this._layer._id;
844
+ let lid = this._layer.__id;
1002
845
  for (let i = 0; i < treeNode.nodes.length; i++) {
1003
- var ni = treeNode.nodes[i];
846
+ let ni = treeNode.nodes[i];
1004
847
  if (extent.overlaps(ni.segment.getExtentLonLat())) {
1005
848
  this._refreshRecursevelyExt(extent, ni);
1006
- var m = ni.segment.materials[lid];
849
+ let m = ni.segment.materials[lid];
1007
850
  if (m && m.isReady) {
1008
851
  m.layer.clearMaterial(m);
1009
852
  // m.pickingReady = false;
@@ -1016,26 +859,30 @@ class GeometryHandler {
1016
859
  }
1017
860
  }
1018
861
 
1019
- _refreshPlanetNode(treeNode) {
1020
- var i = 0;
862
+ protected _refreshPlanetNode(treeNode: Node) {
863
+ let i;
1021
864
 
1022
- var e = this._removeGeometryExtentArr;
865
+ let e = this._removeGeometryExtentArr;
1023
866
  for (i = 0; i < e.length; i++) {
1024
867
  this._refreshRecursevelyExt(e[i], treeNode);
1025
868
  }
1026
869
 
1027
- var g = this._updatedGeometryArr;
870
+ let g = this._updatedGeometryArr;
1028
871
  for (i = 0; i < g.length; i++) {
1029
872
  this._refreshRecursevely(g[i], treeNode);
1030
873
  }
1031
874
  }
1032
875
 
1033
- _updatePlanet() {
1034
- var p = this._layer._planet;
876
+ protected _updatePlanet() {
877
+ let p = this._layer._planet;
1035
878
  if (p) {
1036
- p.quadTreeStrategy.quadTreeList.forEach(quadTree => {
1037
- this._refreshPlanetNode(quadTree);
1038
- });
879
+ let ql = p.quadTreeStrategy.quadTreeList;
880
+ for (let i = 0; i < ql.length; i++) {
881
+ this._refreshPlanetNode(ql[i]);
882
+ }
883
+ // p.quadTreeStrategy.quadTreeList.forEach((quadTree: Node) => {
884
+ // this._refreshPlanetNode(quadTree);
885
+ // });
1039
886
  }
1040
887
  this._updatedGeometryArr.length = 0;
1041
888
  this._updatedGeometryArr = [];
@@ -1046,17 +893,17 @@ class GeometryHandler {
1046
893
  this._removeGeometryExtents = {};
1047
894
  }
1048
895
 
1049
- refresh() {
1050
- var i = this._changedBuffers.length;
896
+ protected refresh() {
897
+ let i = this._changedBuffers.length;
1051
898
  while (i--) {
1052
899
  this._changedBuffers[i] = true;
1053
900
  }
1054
901
  }
1055
902
 
1056
- update() {
903
+ public update() {
1057
904
  if (this._handler) {
1058
- var needUpdate = false;
1059
- var i = this._changedBuffers.length;
905
+ let needUpdate = false;
906
+ let i = this._changedBuffers.length;
1060
907
  while (i--) {
1061
908
  if (this._changedBuffers[i]) {
1062
909
  needUpdate = true;
@@ -1068,14 +915,14 @@ class GeometryHandler {
1068
915
  }
1069
916
  }
1070
917
 
1071
- setGeometryVisibility(geometry) {
1072
- var v = geometry._visibility ? 1.0 : 0.0;
918
+ public setGeometryVisibility(geometry: Geometry) {
919
+ let v = geometry.getVisibility() ? 1.0 : 0.0;
1073
920
 
1074
- var a = this._polyVerticesHighMerc,
921
+ let a = this._polyVerticesHighMerc,
1075
922
  b = this._polyVerticesLowMerc;
1076
923
 
1077
- var l = geometry._polyVerticesLength;
1078
- var ind = geometry._polyVerticesHandlerIndex;
924
+ let l = geometry._polyVerticesLength;
925
+ let ind = geometry._polyVerticesHandlerIndex;
1079
926
  for (let i = 0; i < l; i++) {
1080
927
  a[ind + i] = geometry._polyVerticesHighMerc[i] * v;
1081
928
  b[ind + i] = geometry._polyVerticesLowMerc[i] * v;
@@ -1083,6 +930,7 @@ class GeometryHandler {
1083
930
 
1084
931
  a = this._lineVerticesHighMerc;
1085
932
  b = this._lineVerticesLowMerc;
933
+
1086
934
  l = geometry._lineVerticesLength;
1087
935
  ind = geometry._lineVerticesHandlerIndex;
1088
936
  for (let i = 0; i < l; i++) {
@@ -1093,14 +941,14 @@ class GeometryHandler {
1093
941
  this._changedBuffers[POLYVERTICES_BUFFER] = true;
1094
942
  this._changedBuffers[LINEVERTICES_BUFFER] = true;
1095
943
 
1096
- !this._updatedGeometry[geometry._id] && this._updatedGeometryArr.push(geometry);
1097
- this._updatedGeometry[geometry._id] = true;
944
+ !this._updatedGeometry[geometry.__id] && this._updatedGeometryArr.push(geometry);
945
+ this._updatedGeometry[geometry.__id] = true;
1098
946
  }
1099
947
 
1100
- setPolyColorArr(geometry, color) {
1101
- var index = geometry._polyVerticesHandlerIndex * 2, // ... / 2 * 4
948
+ public setPolyColorArr(geometry: Geometry, color: Vec4) {
949
+ let index = geometry._polyVerticesHandlerIndex * 2, // ... / 2 * 4
1102
950
  size = index + geometry._polyVerticesLength * 2; // ... / 2 * 4
1103
- var a = this._polyColors;
951
+ let a = this._polyColors;
1104
952
  for (let i = index; i < size; i += 4) {
1105
953
  a[i] = color.x;
1106
954
  a[i + 1] = color.y;
@@ -1108,14 +956,14 @@ class GeometryHandler {
1108
956
  a[i + 3] = color.w;
1109
957
  }
1110
958
  this._changedBuffers[POLYCOLORS_BUFFER] = true;
1111
- !this._updatedGeometry[geometry._id] && this._updatedGeometryArr.push(geometry);
1112
- this._updatedGeometry[geometry._id] = true;
959
+ !this._updatedGeometry[geometry.__id] && this._updatedGeometryArr.push(geometry);
960
+ this._updatedGeometry[geometry.__id] = true;
1113
961
  }
1114
962
 
1115
- setLineStrokeColorArr(geometry, color) {
1116
- var index = geometry._lineColorsHandlerIndex,
963
+ public setLineStrokeColorArr(geometry: Geometry, color: Vec4) {
964
+ let index = geometry._lineColorsHandlerIndex,
1117
965
  size = index + geometry._lineColorsLength;
1118
- var a = this._lineStrokeColors;
966
+ let a = this._lineStrokeColors;
1119
967
  for (let i = index; i < size; i += 4) {
1120
968
  a[i] = color.x;
1121
969
  a[i + 1] = color.y;
@@ -1123,14 +971,14 @@ class GeometryHandler {
1123
971
  a[i + 3] = color.w;
1124
972
  }
1125
973
  this._changedBuffers[LINESTROKECOLORS_BUFFER] = true;
1126
- !this._updatedGeometry[geometry._id] && this._updatedGeometryArr.push(geometry);
1127
- this._updatedGeometry[geometry._id] = true;
974
+ !this._updatedGeometry[geometry.__id] && this._updatedGeometryArr.push(geometry);
975
+ this._updatedGeometry[geometry.__id] = true;
1128
976
  }
1129
977
 
1130
- setLineColorArr(geometry, color) {
1131
- var index = geometry._lineColorsHandlerIndex,
978
+ public setLineColorArr(geometry: Geometry, color: Vec4) {
979
+ let index = geometry._lineColorsHandlerIndex,
1132
980
  size = index + geometry._lineColorsLength;
1133
- var a = this._lineColors;
981
+ let a = this._lineColors;
1134
982
  for (let i = index; i < size; i += 4) {
1135
983
  a[i] = color.x;
1136
984
  a[i + 1] = color.y;
@@ -1138,49 +986,43 @@ class GeometryHandler {
1138
986
  a[i + 3] = color.w;
1139
987
  }
1140
988
  this._changedBuffers[LINECOLORS_BUFFER] = true;
1141
- !this._updatedGeometry[geometry._id] && this._updatedGeometryArr.push(geometry);
1142
- this._updatedGeometry[geometry._id] = true;
989
+ !this._updatedGeometry[geometry.__id] && this._updatedGeometryArr.push(geometry);
990
+ this._updatedGeometry[geometry.__id] = true;
1143
991
  }
1144
992
 
1145
- setLineStrokeArr(geometry, width) {
1146
- var index = geometry._lineStrokesHandlerIndex,
1147
- size = index + geometry._lineStrokesLength;
1148
- var a = this._lineStrokes;
1149
- for (let i = index; i < size; i++) {
1150
- a[i] = width;
1151
- }
1152
- this._changedBuffers[LINESTROKES_BUFFER] = true;
1153
- !this._updatedGeometry[geometry._id] && this._updatedGeometryArr.push(geometry);
1154
- this._updatedGeometry[geometry._id] = true;
993
+ public setLineStrokeArr(geometry: Geometry, width: number) {
994
+ // let index = geometry._lineStrokesHandlerIndex,
995
+ // size = index + geometry._lineStrokesLength;
996
+ // let a = this._lineStrokes;
997
+ // for (let i = index; i < size; i++) {
998
+ // a[i] = width;
999
+ // }
1000
+ // this._changedBuffers[LINESTROKES_BUFFER] = true;
1001
+ // !this._updatedGeometry[geometry.__id] && this._updatedGeometryArr.push(geometry);
1002
+ // this._updatedGeometry[geometry.__id] = true;
1155
1003
  }
1156
1004
 
1157
- setLineThicknessArr(geometry, width) {
1158
- var index = geometry._lineThicknessHandlerIndex,
1005
+ public setLineThicknessArr(geometry: Geometry, width: number) {
1006
+ let index = geometry._lineThicknessHandlerIndex,
1159
1007
  size = index + geometry._lineThicknessLength;
1160
- var a = this._lineThickness;
1008
+ let a = this._lineThickness;
1161
1009
  for (let i = index; i < size; i++) {
1162
1010
  a[i] = width;
1163
1011
  }
1164
1012
  this._changedBuffers[LINETHICKNESS_BUFFER] = true;
1165
- !this._updatedGeometry[geometry._id] && this._updatedGeometryArr.push(geometry);
1166
- this._updatedGeometry[geometry._id] = true;
1013
+ !this._updatedGeometry[geometry.__id] && this._updatedGeometryArr.push(geometry);
1014
+ this._updatedGeometry[geometry.__id] = true;
1167
1015
  }
1168
1016
 
1169
- bringToFront(geometry) {
1170
- var polyIndexes = this._polyIndexes.splice(
1171
- geometry._polyIndexesHandlerIndex,
1172
- geometry._polyIndexesLength
1173
- );
1174
- var lineIndexes = this._lineIndexes.splice(
1175
- geometry._lineIndexesHandlerIndex,
1176
- geometry._lineIndexesLength
1177
- );
1017
+ public bringToFront(geometry: Geometry) {
1018
+ let polyIndexes = this._polyIndexes.splice(geometry._polyIndexesHandlerIndex, geometry._polyIndexesLength);
1019
+ let lineIndexes = this._lineIndexes.splice(geometry._lineIndexesHandlerIndex, geometry._lineIndexesLength);
1178
1020
 
1179
1021
  this._geometries.splice(geometry._handlerIndex, 1);
1180
1022
 
1181
- var g = this._geometries;
1023
+ let g = this._geometries;
1182
1024
  for (let i = geometry._handlerIndex; i < g.length; i++) {
1183
- var gi = g[i];
1025
+ let gi = g[i];
1184
1026
  gi._handlerIndex = i;
1185
1027
  gi._polyIndexesHandlerIndex -= geometry._polyIndexesLength;
1186
1028
  gi._lineIndexesHandlerIndex -= geometry._lineIndexesLength;
@@ -1198,20 +1040,20 @@ class GeometryHandler {
1198
1040
  this._changedBuffers[POLYINDEXES_BUFFER] = true;
1199
1041
  this._changedBuffers[LINEINDEXES_BUFFER] = true;
1200
1042
 
1201
- !this._updatedGeometry[geometry._id] && this._updatedGeometryArr.push(geometry);
1202
- this._updatedGeometry[geometry._id] = true;
1043
+ !this._updatedGeometry[geometry.__id] && this._updatedGeometryArr.push(geometry);
1044
+ this._updatedGeometry[geometry.__id] = true;
1203
1045
  }
1204
1046
 
1205
- createPolyVerticesBuffer() {
1206
- var h = this._handler;
1207
- h.gl.deleteBuffer(this._polyVerticesHighBufferMerc);
1047
+ public createPolyVerticesBuffer() {
1048
+ let h = this._handler!;
1049
+ h.gl!.deleteBuffer(this._polyVerticesHighBufferMerc!);
1208
1050
  this._polyVerticesHighBufferMerc = h.createArrayBuffer(
1209
1051
  new Float32Array(this._polyVerticesHighMerc),
1210
1052
  2,
1211
1053
  this._polyVerticesHighMerc.length / 2
1212
1054
  );
1213
1055
 
1214
- h.gl.deleteBuffer(this._polyVerticesLowBufferMerc);
1056
+ h.gl!.deleteBuffer(this._polyVerticesLowBufferMerc!);
1215
1057
  this._polyVerticesLowBufferMerc = h.createArrayBuffer(
1216
1058
  new Float32Array(this._polyVerticesLowMerc),
1217
1059
  2,
@@ -1219,9 +1061,9 @@ class GeometryHandler {
1219
1061
  );
1220
1062
  }
1221
1063
 
1222
- createPolyIndexesBuffer() {
1223
- var h = this._handler;
1224
- h.gl.deleteBuffer(this._polyIndexesBuffer);
1064
+ public createPolyIndexesBuffer() {
1065
+ let h = this._handler!;
1066
+ h.gl!.deleteBuffer(this._polyIndexesBuffer!);
1225
1067
  this._polyIndexesBuffer = h.createElementArrayBuffer(
1226
1068
  new Uint32Array(this._polyIndexes),
1227
1069
  1,
@@ -1229,9 +1071,9 @@ class GeometryHandler {
1229
1071
  );
1230
1072
  }
1231
1073
 
1232
- createPolyColorsBuffer() {
1233
- var h = this._handler;
1234
- h.gl.deleteBuffer(this._polyColorsBuffer);
1074
+ public createPolyColorsBuffer() {
1075
+ let h = this._handler!;
1076
+ h.gl!.deleteBuffer(this._polyColorsBuffer!);
1235
1077
  this._polyColorsBuffer = h.createArrayBuffer(
1236
1078
  new Float32Array(this._polyColors),
1237
1079
  4,
@@ -1239,9 +1081,9 @@ class GeometryHandler {
1239
1081
  );
1240
1082
  }
1241
1083
 
1242
- createPolyPickingColorsBuffer() {
1243
- var h = this._handler;
1244
- h.gl.deleteBuffer(this._polyPickingColorsBuffer);
1084
+ public createPolyPickingColorsBuffer() {
1085
+ let h = this._handler!;
1086
+ h.gl!.deleteBuffer(this._polyPickingColorsBuffer!);
1245
1087
  this._polyPickingColorsBuffer = h.createArrayBuffer(
1246
1088
  new Float32Array(this._polyPickingColors),
1247
1089
  4,
@@ -1249,16 +1091,16 @@ class GeometryHandler {
1249
1091
  );
1250
1092
  }
1251
1093
 
1252
- createLineVerticesBuffer() {
1253
- var h = this._handler;
1254
- h.gl.deleteBuffer(this._lineVerticesHighBufferMerc);
1094
+ public createLineVerticesBuffer() {
1095
+ let h = this._handler!;
1096
+ h.gl!.deleteBuffer(this._lineVerticesHighBufferMerc!);
1255
1097
  this._lineVerticesHighBufferMerc = h.createArrayBuffer(
1256
1098
  new Float32Array(this._lineVerticesHighMerc),
1257
1099
  2,
1258
1100
  this._lineVerticesHighMerc.length / 2
1259
1101
  );
1260
1102
 
1261
- h.gl.deleteBuffer(this._lineVerticesLowBufferMerc);
1103
+ h.gl!.deleteBuffer(this._lineVerticesLowBufferMerc!);
1262
1104
  this._lineVerticesLowBufferMerc = h.createArrayBuffer(
1263
1105
  new Float32Array(this._lineVerticesLowMerc),
1264
1106
  2,
@@ -1266,9 +1108,9 @@ class GeometryHandler {
1266
1108
  );
1267
1109
  }
1268
1110
 
1269
- createLineIndexesBuffer() {
1270
- var h = this._handler;
1271
- h.gl.deleteBuffer(this._lineIndexesBuffer);
1111
+ public createLineIndexesBuffer() {
1112
+ let h = this._handler!;
1113
+ h.gl!.deleteBuffer(this._lineIndexesBuffer!);
1272
1114
  this._lineIndexesBuffer = h.createElementArrayBuffer(
1273
1115
  new Uint32Array(this._lineIndexes),
1274
1116
  1,
@@ -1276,9 +1118,9 @@ class GeometryHandler {
1276
1118
  );
1277
1119
  }
1278
1120
 
1279
- createLineOrdersBuffer() {
1280
- var h = this._handler;
1281
- h.gl.deleteBuffer(this._lineOrdersBuffer);
1121
+ public createLineOrdersBuffer() {
1122
+ let h = this._handler!;
1123
+ h.gl!.deleteBuffer(this._lineOrdersBuffer!);
1282
1124
  this._lineOrdersBuffer = h.createArrayBuffer(
1283
1125
  new Float32Array(this._lineOrders),
1284
1126
  1,
@@ -1286,9 +1128,9 @@ class GeometryHandler {
1286
1128
  );
1287
1129
  }
1288
1130
 
1289
- createLineColorsBuffer() {
1290
- var h = this._handler;
1291
- h.gl.deleteBuffer(this._lineColorsBuffer);
1131
+ public createLineColorsBuffer() {
1132
+ let h = this._handler!;
1133
+ h.gl!.deleteBuffer(this._lineColorsBuffer!);
1292
1134
  this._lineColorsBuffer = h.createArrayBuffer(
1293
1135
  new Float32Array(this._lineColors),
1294
1136
  4,
@@ -1296,9 +1138,9 @@ class GeometryHandler {
1296
1138
  );
1297
1139
  }
1298
1140
 
1299
- createLinePickingColorsBuffer() {
1300
- var h = this._handler;
1301
- h.gl.deleteBuffer(this._linePickingColorsBuffer);
1141
+ public createLinePickingColorsBuffer() {
1142
+ let h = this._handler!;
1143
+ h.gl!.deleteBuffer(this._linePickingColorsBuffer!);
1302
1144
  this._linePickingColorsBuffer = h.createArrayBuffer(
1303
1145
  new Float32Array(this._linePickingColors),
1304
1146
  4,
@@ -1306,9 +1148,9 @@ class GeometryHandler {
1306
1148
  );
1307
1149
  }
1308
1150
 
1309
- createLineThicknessBuffer() {
1310
- var h = this._handler;
1311
- h.gl.deleteBuffer(this._lineThicknessBuffer);
1151
+ public createLineThicknessBuffer() {
1152
+ let h = this._handler!;
1153
+ h.gl!.deleteBuffer(this._lineThicknessBuffer!);
1312
1154
  this._lineThicknessBuffer = h.createArrayBuffer(
1313
1155
  new Float32Array(this._lineThickness),
1314
1156
  1,
@@ -1316,9 +1158,9 @@ class GeometryHandler {
1316
1158
  );
1317
1159
  }
1318
1160
 
1319
- createLineStrokesBuffer() {
1320
- var h = this._handler;
1321
- h.gl.deleteBuffer(this._lineStrokesBuffer);
1161
+ public createLineStrokesBuffer() {
1162
+ let h = this._handler!;
1163
+ h.gl!.deleteBuffer(this._lineStrokesBuffer!);
1322
1164
  this._lineStrokesBuffer = h.createArrayBuffer(
1323
1165
  new Float32Array(this._lineStrokes),
1324
1166
  1,
@@ -1326,9 +1168,9 @@ class GeometryHandler {
1326
1168
  );
1327
1169
  }
1328
1170
 
1329
- createLineStrokeColorsBuffer() {
1330
- var h = this._handler;
1331
- h.gl.deleteBuffer(this._lineStrokeColorsBuffer);
1171
+ public createLineStrokeColorsBuffer() {
1172
+ let h = this._handler!;
1173
+ h.gl!.deleteBuffer(this._lineStrokeColorsBuffer!);
1332
1174
  this._lineStrokeColorsBuffer = h.createArrayBuffer(
1333
1175
  new Float32Array(this._lineStrokeColors),
1334
1176
  4,
@@ -1337,4 +1179,4 @@ class GeometryHandler {
1337
1179
  }
1338
1180
  }
1339
1181
 
1340
- export { GeometryHandler };
1182
+ export {GeometryHandler};