@openglobus/og 0.18.0 → 0.18.2

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 (476) hide show
  1. package/README.md +8 -8
  2. package/lib/@openglobus/og.esm.js +2 -0
  3. package/lib/@openglobus/og.esm.js.map +1 -0
  4. package/lib/@openglobus/og.umd.js +2 -0
  5. package/lib/@openglobus/og.umd.js.map +1 -0
  6. package/lib/js/Clock.d.ts +106 -0
  7. package/{src/Clock.ts → lib/js/Clock.js} +31 -126
  8. package/lib/js/Deferred.d.ts +6 -0
  9. package/lib/js/Deferred.js +13 -0
  10. package/lib/js/Events.d.ts +90 -0
  11. package/{src/Events.ts → lib/js/Events.js} +29 -84
  12. package/lib/js/Extent.d.ts +145 -0
  13. package/{src/Extent.ts → lib/js/Extent.js} +74 -120
  14. package/lib/js/Globe.d.ts +132 -0
  15. package/{src/Globe.ts → lib/js/Globe.js} +61 -159
  16. package/lib/js/ImageCanvas.d.ts +128 -0
  17. package/{src/ImageCanvas.ts → lib/js/ImageCanvas.js} +24 -65
  18. package/lib/js/Lock.d.ts +15 -0
  19. package/{src/Lock.ts → lib/js/Lock.js} +7 -21
  20. package/lib/js/LonLat.d.ts +128 -0
  21. package/{src/LonLat.ts → lib/js/LonLat.js} +44 -75
  22. package/lib/js/Object3d.d.ts +49 -0
  23. package/{src/Object3d.ts → lib/js/Object3d.js} +64 -184
  24. package/lib/js/Popup.d.ts +46 -0
  25. package/{src/Popup.ts → lib/js/Popup.js} +42 -110
  26. package/lib/js/QueueArray.d.ts +16 -0
  27. package/{src/QueueArray.ts → lib/js/QueueArray.js} +12 -25
  28. package/lib/js/Rectangle.d.ts +76 -0
  29. package/{src/Rectangle.ts → lib/js/Rectangle.js} +12 -50
  30. package/lib/js/Stack.d.ts +20 -0
  31. package/{src/Stack.ts → lib/js/Stack.js} +13 -29
  32. package/lib/js/astro/astro.d.ts +39 -0
  33. package/{src/astro/astro.ts → lib/js/astro/astro.js} +2 -8
  34. package/lib/js/astro/earth.d.ts +8 -0
  35. package/{src/astro/earth.ts → lib/js/astro/earth.js} +3 -39
  36. package/lib/js/astro/jd.d.ts +234 -0
  37. package/{src/astro/jd.ts → lib/js/astro/jd.js} +55 -134
  38. package/lib/js/astro/orbit.d.ts +5 -0
  39. package/{src/astro/orbit.ts → lib/js/astro/orbit.js} +26 -39
  40. package/lib/js/astro/rotation.d.ts +2 -0
  41. package/{src/astro/rotation.ts → lib/js/astro/rotation.js} +2 -11
  42. package/lib/js/bv/Box.d.ts +32 -0
  43. package/{src/bv/Box.ts → lib/js/bv/Box.js} +7 -35
  44. package/lib/js/bv/Sphere.d.ts +37 -0
  45. package/{src/bv/Sphere.ts → lib/js/bv/Sphere.js} +6 -34
  46. package/{src/bv/index.ts → lib/js/bv/index.d.ts} +0 -1
  47. package/lib/js/bv/index.js +3 -0
  48. package/lib/js/camera/Camera.d.ts +314 -0
  49. package/{src/camera/Camera.ts → lib/js/camera/Camera.js} +77 -326
  50. package/lib/js/camera/Frustum.d.ts +139 -0
  51. package/{src/camera/Frustum.ts → lib/js/camera/Frustum.js} +66 -185
  52. package/lib/js/camera/PlanetCamera.d.ts +234 -0
  53. package/{src/camera/PlanetCamera.ts → lib/js/camera/PlanetCamera.js} +65 -338
  54. package/{src/camera/index.ts → lib/js/camera/index.d.ts} +0 -1
  55. package/lib/js/camera/index.js +3 -0
  56. package/lib/js/cons.d.ts +40 -0
  57. package/{src/cons.ts → lib/js/cons.js} +10 -22
  58. package/lib/js/control/Atmosphere.d.ts +16 -0
  59. package/{src/control/Atmosphere.ts → lib/js/control/Atmosphere.js} +33 -86
  60. package/lib/js/control/CompassButton.d.ts +16 -0
  61. package/{src/control/CompassButton.ts → lib/js/control/CompassButton.js} +18 -43
  62. package/lib/js/control/Control.d.ts +100 -0
  63. package/{src/control/Control.ts → lib/js/control/Control.js} +22 -89
  64. package/lib/js/control/DebugInfo.d.ts +25 -0
  65. package/{src/control/DebugInfo.ts → lib/js/control/DebugInfo.js} +38 -84
  66. package/lib/js/control/DrawingSwitcher.d.ts +13 -0
  67. package/{src/control/DrawingSwitcher.ts → lib/js/control/DrawingSwitcher.js} +13 -30
  68. package/lib/js/control/EarthCoordinates.d.ts +41 -0
  69. package/{src/control/EarthCoordinates.ts → lib/js/control/EarthCoordinates.js} +58 -119
  70. package/lib/js/control/EarthNavigation.d.ts +50 -0
  71. package/{src/control/EarthNavigation.ts → lib/js/control/EarthNavigation.js} +70 -161
  72. package/lib/js/control/GeoImageDragControl.d.ts +22 -0
  73. package/{src/control/GeoImageDragControl.ts → lib/js/control/GeoImageDragControl.js} +26 -49
  74. package/lib/js/control/KeyboardNavigation.d.ts +28 -0
  75. package/{src/control/KeyboardNavigation.ts → lib/js/control/KeyboardNavigation.js} +67 -92
  76. package/lib/js/control/LayerAnimation.d.ts +71 -0
  77. package/{src/control/LayerAnimation.ts → lib/js/control/LayerAnimation.js} +82 -162
  78. package/lib/js/control/LayerSwitcher.d.ts +21 -0
  79. package/{src/control/LayerSwitcher.ts → lib/js/control/LayerSwitcher.js} +16 -41
  80. package/lib/js/control/Lighting.d.ts +49 -0
  81. package/{src/control/Lighting.ts → lib/js/control/Lighting.js} +106 -219
  82. package/lib/js/control/MouseNavigation.d.ts +62 -0
  83. package/{src/control/MouseNavigation.ts → lib/js/control/MouseNavigation.js} +105 -211
  84. package/lib/js/control/MouseWheelZoomControl.d.ts +44 -0
  85. package/lib/js/control/MouseWheelZoomControl.js +181 -0
  86. package/lib/js/control/RulerSwitcher.d.ts +17 -0
  87. package/{src/control/RulerSwitcher.ts → lib/js/control/RulerSwitcher.js} +13 -28
  88. package/lib/js/control/ScaleControl.d.ts +24 -0
  89. package/lib/js/control/ScaleControl.js +91 -0
  90. package/lib/js/control/SegmentBoundVisualization.d.ts +12 -0
  91. package/lib/js/control/SegmentBoundVisualization.js +37 -0
  92. package/lib/js/control/ShowFps.d.ts +9 -0
  93. package/lib/js/control/ShowFps.js +20 -0
  94. package/lib/js/control/SimpleNavigation.d.ts +25 -0
  95. package/{src/control/SimpleNavigation.ts → lib/js/control/SimpleNavigation.js} +29 -51
  96. package/lib/js/control/SimpleSkyBackground.d.ts +15 -0
  97. package/{src/control/SimpleSkyBackground.ts → lib/js/control/SimpleSkyBackground.js} +21 -48
  98. package/lib/js/control/Sun.d.ts +33 -0
  99. package/{src/control/Sun.ts → lib/js/control/Sun.js} +34 -85
  100. package/lib/js/control/ToggleWireframe.d.ts +14 -0
  101. package/lib/js/control/ToggleWireframe.js +28 -0
  102. package/lib/js/control/TouchNavigation.d.ts +52 -0
  103. package/{src/control/TouchNavigation.ts → lib/js/control/TouchNavigation.js} +88 -193
  104. package/lib/js/control/ZoomControl.d.ts +27 -0
  105. package/{src/control/ZoomControl.ts → lib/js/control/ZoomControl.js} +25 -50
  106. package/lib/js/control/drawing/DrawingControl.d.ts +12 -0
  107. package/{src/control/drawing/DrawingControl.ts → lib/js/control/drawing/DrawingControl.js} +10 -20
  108. package/lib/js/control/drawing/LineStringDrawingScene.d.ts +15 -0
  109. package/{src/control/drawing/LineStringDrawingScene.ts → lib/js/control/drawing/LineStringDrawingScene.js} +28 -85
  110. package/lib/js/control/drawing/PolygonDrawingScene.d.ts +98 -0
  111. package/{src/control/drawing/PolygonDrawingScene.ts → lib/js/control/drawing/PolygonDrawingScene.js} +190 -388
  112. package/lib/js/control/elevationProfile/ElevationProfile.d.ts +61 -0
  113. package/{src/control/elevationProfile/ElevationProfile.ts → lib/js/control/elevationProfile/ElevationProfile.js} +56 -148
  114. package/lib/js/control/heightRuler/HeightRuler.d.ts +7 -0
  115. package/{src/control/heightRuler/HeightRuler.ts → lib/js/control/heightRuler/HeightRuler.js} +4 -9
  116. package/lib/js/control/heightRuler/HeightRulerScene.d.ts +35 -0
  117. package/{src/control/heightRuler/HeightRulerScene.ts → lib/js/control/heightRuler/HeightRulerScene.js} +47 -99
  118. package/lib/js/control/heightRuler/HeightRulerSwitcher.d.ts +6 -0
  119. package/{src/control/heightRuler/HeightRulerSwitcher.ts → lib/js/control/heightRuler/HeightRulerSwitcher.js} +2 -4
  120. package/{src/control/index.ts → lib/js/control/index.d.ts} +1 -18
  121. package/lib/js/control/index.js +28 -0
  122. package/lib/js/control/ruler/Ruler.d.ts +13 -0
  123. package/lib/js/control/ruler/Ruler.js +23 -0
  124. package/lib/js/control/ruler/RulerScene.d.ts +88 -0
  125. package/lib/js/control/ruler/RulerScene.js +324 -0
  126. package/lib/js/control/selection/Selection.d.ts +55 -0
  127. package/{src/control/selection/Selection.ts → lib/js/control/selection/Selection.js} +15 -34
  128. package/lib/js/control/selection/SelectionScene.d.ts +44 -0
  129. package/{src/control/selection/SelectionScene.ts → lib/js/control/selection/SelectionScene.js} +26 -113
  130. package/lib/js/control/timeline/TimelineControl.d.ts +18 -0
  131. package/{src/control/timeline/TimelineControl.ts → lib/js/control/timeline/TimelineControl.js} +13 -43
  132. package/lib/js/control/timeline/TimelineModel.d.ts +41 -0
  133. package/{src/control/timeline/TimelineModel.ts → lib/js/control/timeline/TimelineModel.js} +26 -74
  134. package/lib/js/control/timeline/TimelineView.d.ts +85 -0
  135. package/{src/control/timeline/TimelineView.ts → lib/js/control/timeline/TimelineView.js} +133 -281
  136. package/lib/js/control/timeline/timelineUtils.d.ts +12 -0
  137. package/lib/js/control/timeline/timelineUtils.js +112 -0
  138. package/lib/js/control/visibleExtent/Segment.d.ts +277 -0
  139. package/{src → lib/js}/control/visibleExtent/Segment.js +145 -698
  140. package/lib/js/control/visibleExtent/VisibleExtent.d.ts +5 -0
  141. package/{src → lib/js}/control/visibleExtent/VisibleExtent.js +1 -18
  142. package/lib/js/control/visibleExtent/drawnode.d.ts +7 -0
  143. package/{src/control/visibleExtent/drawnode.ts → lib/js/control/visibleExtent/drawnode.js} +1 -28
  144. package/lib/js/ellipsoid/Ellipsoid.d.ts +187 -0
  145. package/{src/ellipsoid/Ellipsoid.ts → lib/js/ellipsoid/Ellipsoid.js} +85 -267
  146. package/lib/js/ellipsoid/index.d.ts +3 -0
  147. package/lib/js/ellipsoid/index.js +3 -0
  148. package/lib/js/ellipsoid/wgs84.d.ts +6 -0
  149. package/{src/ellipsoid/wgs84.ts → lib/js/ellipsoid/wgs84.js} +1 -2
  150. package/lib/js/entity/BaseBillboard.d.ts +222 -0
  151. package/{src/entity/BaseBillboard.ts → lib/js/entity/BaseBillboard.js} +48 -165
  152. package/lib/js/entity/BaseBillboardHandler.d.ts +81 -0
  153. package/{src/entity/BaseBillboardHandler.ts → lib/js/entity/BaseBillboardHandler.js} +139 -365
  154. package/lib/js/entity/Billboard.d.ts +113 -0
  155. package/{src/entity/Billboard.ts → lib/js/entity/Billboard.js} +19 -83
  156. package/lib/js/entity/BillboardHandler.d.ts +15 -0
  157. package/{src/entity/BillboardHandler.ts → lib/js/entity/BillboardHandler.js} +27 -59
  158. package/lib/js/entity/Entity.d.ts +354 -0
  159. package/{src/entity/Entity.ts → lib/js/entity/Entity.js} +102 -374
  160. package/lib/js/entity/EntityCollection.d.ts +363 -0
  161. package/{src/entity/EntityCollection.ts → lib/js/entity/EntityCollection.js} +57 -359
  162. package/lib/js/entity/GeoObject.d.ts +138 -0
  163. package/{src/entity/GeoObject.ts → lib/js/entity/GeoObject.js} +41 -146
  164. package/lib/js/entity/GeoObjectHandler.d.ts +99 -0
  165. package/{src/entity/GeoObjectHandler.ts → lib/js/entity/GeoObjectHandler.js} +162 -423
  166. package/lib/js/entity/Geometry.d.ts +111 -0
  167. package/lib/js/entity/Geometry.js +283 -0
  168. package/lib/js/entity/GeometryHandler.d.ts +84 -0
  169. package/{src/entity/GeometryHandler.ts → lib/js/entity/GeometryHandler.js} +162 -657
  170. package/lib/js/entity/Label.d.ts +207 -0
  171. package/{src/entity/Label.ts → lib/js/entity/Label.js} +63 -165
  172. package/lib/js/entity/LabelHandler.d.ts +65 -0
  173. package/{src/entity/LabelHandler.ts → lib/js/entity/LabelHandler.js} +175 -408
  174. package/lib/js/entity/LabelWorker.d.ts +15 -0
  175. package/{src/entity/LabelWorker.ts → lib/js/entity/LabelWorker.js} +24 -45
  176. package/lib/js/entity/PointCloud.d.ts +179 -0
  177. package/{src/entity/PointCloud.ts → lib/js/entity/PointCloud.js} +65 -265
  178. package/lib/js/entity/PointCloudHandler.d.ts +42 -0
  179. package/{src/entity/PointCloudHandler.ts → lib/js/entity/PointCloudHandler.js} +19 -62
  180. package/lib/js/entity/Polyline.d.ts +337 -0
  181. package/{src/entity/Polyline.ts → lib/js/entity/Polyline.js} +289 -924
  182. package/lib/js/entity/PolylineHandler.d.ts +22 -0
  183. package/{src/entity/PolylineHandler.ts → lib/js/entity/PolylineHandler.js} +12 -37
  184. package/lib/js/entity/Ray.d.ts +133 -0
  185. package/{src/entity/Ray.ts → lib/js/entity/Ray.js} +26 -146
  186. package/lib/js/entity/RayHandler.d.ts +70 -0
  187. package/{src/entity/RayHandler.ts → lib/js/entity/RayHandler.js} +102 -342
  188. package/lib/js/entity/Strip.d.ts +127 -0
  189. package/{src/entity/Strip.ts → lib/js/entity/Strip.js} +102 -372
  190. package/lib/js/entity/StripHandler.d.ts +42 -0
  191. package/{src/entity/StripHandler.ts → lib/js/entity/StripHandler.js} +22 -74
  192. package/{src/entity/index.ts → lib/js/entity/index.d.ts} +1 -2
  193. package/lib/js/entity/index.js +11 -0
  194. package/lib/js/index.d.ts +33 -0
  195. package/lib/js/index.js +33 -0
  196. package/lib/js/input/KeyboardHandler.d.ts +33 -0
  197. package/{src/input/KeyboardHandler.ts → lib/js/input/KeyboardHandler.js} +45 -84
  198. package/lib/js/input/MouseHandler.d.ts +16 -0
  199. package/{src/input/MouseHandler.ts → lib/js/input/MouseHandler.js} +12 -36
  200. package/lib/js/input/TouchHandler.d.ts +11 -0
  201. package/{src/input/TouchHandler.ts → lib/js/input/TouchHandler.js} +11 -23
  202. package/lib/js/input/input.d.ts +3 -0
  203. package/{src/input/input.ts → lib/js/input/input.js} +1 -1
  204. package/lib/js/layer/BaseGeoImage.d.ts +145 -0
  205. package/{src/layer/BaseGeoImage.ts → lib/js/layer/BaseGeoImage.js} +70 -235
  206. package/lib/js/layer/CanvasTiles.d.ts +103 -0
  207. package/{src/layer/CanvasTiles.ts → lib/js/layer/CanvasTiles.js} +54 -146
  208. package/lib/js/layer/GeoImage.d.ts +61 -0
  209. package/{src/layer/GeoImage.ts → lib/js/layer/GeoImage.js} +24 -54
  210. package/lib/js/layer/GeoTexture2d.d.ts +17 -0
  211. package/lib/js/layer/GeoTexture2d.js +37 -0
  212. package/lib/js/layer/GeoVideo.d.ts +68 -0
  213. package/{src/layer/GeoVideo.ts → lib/js/layer/GeoVideo.js} +31 -61
  214. package/lib/js/layer/KML.d.ts +72 -0
  215. package/{src/layer/KML.ts → lib/js/layer/KML.js} +94 -138
  216. package/lib/js/layer/Layer.d.ts +401 -0
  217. package/{src/layer/Layer.ts → lib/js/layer/Layer.js} +92 -443
  218. package/lib/js/layer/Material.d.ts +34 -0
  219. package/{src/layer/Material.ts → lib/js/layer/Material.js} +9 -43
  220. package/lib/js/layer/Vector.d.ts +243 -0
  221. package/{src/layer/Vector.ts → lib/js/layer/Vector.js} +155 -426
  222. package/lib/js/layer/WMS.d.ts +75 -0
  223. package/{src/layer/WMS.ts → lib/js/layer/WMS.js} +18 -100
  224. package/lib/js/layer/XYZ.d.ts +149 -0
  225. package/{src/layer/XYZ.ts → lib/js/layer/XYZ.js} +71 -171
  226. package/lib/js/layer/index.d.ts +11 -0
  227. package/lib/js/layer/index.js +11 -0
  228. package/lib/js/light/LightSource.d.ts +174 -0
  229. package/{src/light/LightSource.ts → lib/js/light/LightSource.js} +22 -131
  230. package/lib/js/math/Line2.d.ts +11 -0
  231. package/{src/math/Line2.ts → lib/js/math/Line2.js} +5 -15
  232. package/lib/js/math/Line3.d.ts +28 -0
  233. package/lib/js/math/Line3.js +85 -0
  234. package/lib/js/math/Mat3.d.ts +77 -0
  235. package/{src/math/Mat3.ts → lib/js/math/Mat3.js} +22 -51
  236. package/lib/js/math/Mat4.d.ts +195 -0
  237. package/{src/math/Mat4.ts → lib/js/math/Mat4.js} +53 -219
  238. package/lib/js/math/Plane.d.ts +20 -0
  239. package/{src/math/Plane.ts → lib/js/math/Plane.js} +26 -40
  240. package/lib/js/math/Quat.d.ts +373 -0
  241. package/{src/math/Quat.ts → lib/js/math/Quat.js} +106 -319
  242. package/lib/js/math/Ray.d.ts +76 -0
  243. package/{src/math/Ray.ts → lib/js/math/Ray.js} +21 -66
  244. package/lib/js/math/Vec2.d.ts +310 -0
  245. package/{src/math/Vec2.ts → lib/js/math/Vec2.js} +55 -121
  246. package/lib/js/math/Vec3.d.ts +472 -0
  247. package/{src/math/Vec3.ts → lib/js/math/Vec3.js} +103 -236
  248. package/lib/js/math/Vec4.d.ts +163 -0
  249. package/{src/math/Vec4.ts → lib/js/math/Vec4.js} +23 -79
  250. package/lib/js/math/coder.d.ts +51 -0
  251. package/{src/math/coder.ts → lib/js/math/coder.js} +14 -20
  252. package/lib/js/math/index.d.ts +11 -0
  253. package/lib/js/math/index.js +11 -0
  254. package/lib/js/math.d.ts +266 -0
  255. package/{src/math.ts → lib/js/math.js} +37 -85
  256. package/lib/js/mercator.d.ts +92 -0
  257. package/{src/mercator.ts → lib/js/mercator.js} +13 -37
  258. package/lib/js/proj/EPSG3857.d.ts +9 -0
  259. package/{src/proj/EPSG3857.ts → lib/js/proj/EPSG3857.js} +0 -2
  260. package/lib/js/proj/EPSG4326.d.ts +9 -0
  261. package/{src/proj/EPSG4326.ts → lib/js/proj/EPSG4326.js} +0 -2
  262. package/lib/js/proj/Proj.d.ts +43 -0
  263. package/{src/proj/Proj.ts → lib/js/proj/Proj.js} +4 -29
  264. package/lib/js/quadTree/EPSG4326QuadTreeStrategy.d.ts +6 -0
  265. package/lib/js/quadTree/EPSG4326QuadTreeStrategy.js +17 -0
  266. package/lib/js/quadTree/EarthQuadTreeStrategy.d.ts +6 -0
  267. package/lib/js/quadTree/EarthQuadTreeStrategy.js +19 -0
  268. package/lib/js/quadTree/EntityCollectionNode.d.ts +54 -0
  269. package/{src/quadTree/EntityCollectionNode.ts → lib/js/quadTree/EntityCollectionNode.js} +83 -150
  270. package/lib/js/quadTree/MarsQuadTreeStrategy.d.ts +6 -0
  271. package/lib/js/quadTree/MarsQuadTreeStrategy.js +17 -0
  272. package/lib/js/quadTree/Node.d.ts +61 -0
  273. package/{src/quadTree/Node.ts → lib/js/quadTree/Node.js} +140 -357
  274. package/lib/js/quadTree/QuadTreeStrategy.d.ts +25 -0
  275. package/{src/quadTree/QuadTreeStrategy.ts → lib/js/quadTree/QuadTreeStrategy.js} +13 -44
  276. package/lib/js/quadTree/Wgs84QuadTreeStrategy.d.ts +6 -0
  277. package/lib/js/quadTree/Wgs84QuadTreeStrategy.js +15 -0
  278. package/lib/js/quadTree/index.d.ts +12 -0
  279. package/lib/js/quadTree/index.js +12 -0
  280. package/lib/js/quadTree/quadTree.d.ts +40 -0
  281. package/{src/quadTree/quadTree.ts → lib/js/quadTree/quadTree.js} +0 -9
  282. package/lib/js/renderer/Renderer.d.ts +320 -0
  283. package/{src/renderer/Renderer.ts → lib/js/renderer/Renderer.js} +265 -622
  284. package/lib/js/renderer/RendererEvents.d.ts +239 -0
  285. package/{src/renderer/RendererEvents.ts → lib/js/renderer/RendererEvents.js} +158 -472
  286. package/lib/js/scene/Axes.d.ts +12 -0
  287. package/lib/js/scene/Axes.js +59 -0
  288. package/lib/js/scene/BaseNode.d.ts +61 -0
  289. package/{src/scene/BaseNode.ts → lib/js/scene/BaseNode.js} +11 -57
  290. package/lib/js/scene/Planet.d.ts +623 -0
  291. package/{src/scene/Planet.ts → lib/js/scene/Planet.js} +257 -937
  292. package/lib/js/scene/RenderNode.d.ts +150 -0
  293. package/{src/scene/RenderNode.ts → lib/js/scene/RenderNode.js} +33 -138
  294. package/lib/js/scene/SkyBox.d.ts +13 -0
  295. package/{src/scene/SkyBox.ts → lib/js/scene/SkyBox.js} +16 -37
  296. package/{src/scene/index.ts → lib/js/scene/index.d.ts} +0 -1
  297. package/lib/js/scene/index.js +5 -0
  298. package/lib/js/segment/Segment.d.ts +278 -0
  299. package/{src/segment/Segment.ts → lib/js/segment/Segment.js} +242 -913
  300. package/lib/js/segment/SegmentLonLat.d.ts +48 -0
  301. package/{src/segment/SegmentLonLat.ts → lib/js/segment/SegmentLonLat.js} +58 -132
  302. package/lib/js/segment/SegmentLonLatWgs84.d.ts +10 -0
  303. package/lib/js/segment/SegmentLonLatWgs84.js +23 -0
  304. package/lib/js/segment/Slice.d.ts +13 -0
  305. package/{src/segment/Slice.ts → lib/js/segment/Slice.js} +4 -22
  306. package/lib/js/segment/segmentHelper.d.ts +18 -0
  307. package/{src/segment/segmentHelper.ts → lib/js/segment/segmentHelper.js} +30 -88
  308. package/lib/js/shaders/atmos.d.ts +4 -0
  309. package/{src/shaders/atmos.ts → lib/js/shaders/atmos.js} +8 -26
  310. package/lib/js/shaders/billboard.d.ts +3 -0
  311. package/{src/shaders/billboard.ts → lib/js/shaders/billboard.js} +9 -18
  312. package/lib/js/shaders/bloom.d.ts +2 -0
  313. package/{src/shaders/bloom.ts → lib/js/shaders/bloom.js} +5 -8
  314. package/lib/js/shaders/blur.d.ts +3 -0
  315. package/{src/shaders/blur.ts → lib/js/shaders/blur.js} +11 -19
  316. package/lib/js/shaders/depth.d.ts +2 -0
  317. package/{src/shaders/depth.ts → lib/js/shaders/depth.js} +3 -6
  318. package/lib/js/shaders/drawnode.d.ts +8 -0
  319. package/{src/shaders/drawnode.ts → lib/js/shaders/drawnode.js} +23 -75
  320. package/lib/js/shaders/geoObject.d.ts +3 -0
  321. package/{src/shaders/geoObject.ts → lib/js/shaders/geoObject.js} +51 -63
  322. package/lib/js/shaders/label.d.ts +4 -0
  323. package/{src/shaders/label.ts → lib/js/shaders/label.js} +12 -25
  324. package/lib/js/shaders/lumFilter.d.ts +2 -0
  325. package/{src/shaders/lumFilter.ts → lib/js/shaders/lumFilter.js} +4 -7
  326. package/lib/js/shaders/pickingMask.d.ts +2 -0
  327. package/{src/shaders/pickingMask.ts → lib/js/shaders/pickingMask.js} +5 -8
  328. package/lib/js/shaders/pointCloud.d.ts +2 -0
  329. package/{src/shaders/pointCloud.ts → lib/js/shaders/pointCloud.js} +4 -7
  330. package/lib/js/shaders/polyline.d.ts +3 -0
  331. package/{src/shaders/polyline.ts → lib/js/shaders/polyline.js} +7 -22
  332. package/lib/js/shaders/ray.d.ts +2 -0
  333. package/{src/shaders/ray.ts → lib/js/shaders/ray.js} +4 -7
  334. package/lib/js/shaders/screenFrame.d.ts +2 -0
  335. package/{src/shaders/screenFrame.ts → lib/js/shaders/screenFrame.js} +5 -8
  336. package/lib/js/shaders/skybox.d.ts +2 -0
  337. package/{src/shaders/skybox.ts → lib/js/shaders/skybox.js} +10 -13
  338. package/lib/js/shaders/toneMapping.d.ts +2 -0
  339. package/{src/shaders/toneMapping.ts → lib/js/shaders/toneMapping.js} +5 -8
  340. package/lib/js/shaders/utils.d.ts +1 -0
  341. package/{src/shaders/utils.ts → lib/js/shaders/utils.js} +1 -1
  342. package/lib/js/terrain/BilTerrain.d.ts +18 -0
  343. package/{src/terrain/BilTerrain.ts → lib/js/terrain/BilTerrain.js} +21 -118
  344. package/lib/js/terrain/EmptyTerrain.d.ts +106 -0
  345. package/{src/terrain/EmptyTerrain.ts → lib/js/terrain/EmptyTerrain.js} +20 -144
  346. package/lib/js/terrain/Geoid.d.ts +33 -0
  347. package/lib/js/terrain/Geoid.js +191 -0
  348. package/lib/js/terrain/GlobusTerrain.d.ts +134 -0
  349. package/{src/terrain/GlobusTerrain.ts → lib/js/terrain/GlobusTerrain.js} +84 -241
  350. package/lib/js/terrain/MapboxTerrain.d.ts +21 -0
  351. package/{src/terrain/MapboxTerrain.ts → lib/js/terrain/MapboxTerrain.js} +46 -215
  352. package/{src/terrain/index.ts → lib/js/terrain/index.d.ts} +0 -1
  353. package/lib/js/terrain/index.js +5 -0
  354. package/lib/js/ui/Button.d.ts +32 -0
  355. package/lib/js/ui/Button.js +78 -0
  356. package/lib/js/ui/ButtonGroup.d.ts +16 -0
  357. package/lib/js/ui/ButtonGroup.js +41 -0
  358. package/lib/js/ui/Dialog.d.ts +55 -0
  359. package/lib/js/ui/Dialog.js +173 -0
  360. package/lib/js/ui/Slider.d.ts +38 -0
  361. package/lib/js/ui/Slider.js +129 -0
  362. package/lib/js/ui/ToggleButton.d.ts +20 -0
  363. package/lib/js/ui/ToggleButton.js +42 -0
  364. package/lib/js/ui/View.d.ts +37 -0
  365. package/{src/ui/View.ts → lib/js/ui/View.js} +31 -77
  366. package/lib/js/ui/icons.d.ts +1 -0
  367. package/{src/ui/icons.ts → lib/js/ui/icons.js} +1 -1
  368. package/lib/js/utils/BaseWorker.d.ts +14 -0
  369. package/{src/utils/BaseWorker.ts → lib/js/utils/BaseWorker.js} +15 -28
  370. package/lib/js/utils/FontAtlas.d.ts +82 -0
  371. package/{src/utils/FontAtlas.ts → lib/js/utils/FontAtlas.js} +46 -182
  372. package/lib/js/utils/GeoImageCreator.d.ts +34 -0
  373. package/{src/utils/GeoImageCreator.ts → lib/js/utils/GeoImageCreator.js} +34 -91
  374. package/lib/js/utils/ImagesCacheManager.d.ts +22 -0
  375. package/{src/utils/ImagesCacheManager.ts → lib/js/utils/ImagesCacheManager.js} +16 -38
  376. package/lib/js/utils/Loader.d.ts +63 -0
  377. package/lib/js/utils/Loader.js +156 -0
  378. package/lib/js/utils/NormalMapCreator.d.ts +52 -0
  379. package/{src/utils/NormalMapCreator.ts → lib/js/utils/NormalMapCreator.js} +64 -195
  380. package/lib/js/utils/PlainSegmentWorker.d.ts +24 -0
  381. package/{src/utils/PlainSegmentWorker.ts → lib/js/utils/PlainSegmentWorker.js} +24 -56
  382. package/lib/js/utils/TerrainWorker.d.ts +28 -0
  383. package/{src/utils/TerrainWorker.ts → lib/js/utils/TerrainWorker.js} +19 -56
  384. package/lib/js/utils/TextureAtlas.d.ts +113 -0
  385. package/{src/utils/TextureAtlas.ts → lib/js/utils/TextureAtlas.js} +40 -131
  386. package/lib/js/utils/VectorTileCreator.d.ts +18 -0
  387. package/{src/utils/VectorTileCreator.ts → lib/js/utils/VectorTileCreator.js} +61 -147
  388. package/lib/js/utils/colorTable.d.ts +3 -0
  389. package/{src/utils/colorTable.ts → lib/js/utils/colorTable.js} +2 -2
  390. package/lib/js/utils/earcut.d.ts +7 -0
  391. package/{src/utils/earcut.ts → lib/js/utils/earcut.js} +95 -223
  392. package/lib/js/utils/objParser.d.ts +24 -0
  393. package/{src/utils/objParser.ts → lib/js/utils/objParser.js} +38 -93
  394. package/lib/js/utils/shared.d.ts +267 -0
  395. package/{src/utils/shared.ts → lib/js/utils/shared.js} +185 -342
  396. package/lib/js/utils/units.d.ts +16 -0
  397. package/lib/js/utils/units.js +61 -0
  398. package/lib/js/webgl/BaseFramebuffer.d.ts +53 -0
  399. package/{src/webgl/BaseFramebuffer.ts → lib/js/webgl/BaseFramebuffer.js} +22 -59
  400. package/lib/js/webgl/Framebuffer.d.ts +69 -0
  401. package/{src/webgl/Framebuffer.ts → lib/js/webgl/Framebuffer.js} +30 -87
  402. package/lib/js/webgl/Handler.d.ts +473 -0
  403. package/{src/webgl/Handler.ts → lib/js/webgl/Handler.js} +175 -586
  404. package/lib/js/webgl/Multisample.d.ts +27 -0
  405. package/lib/js/webgl/Multisample.js +77 -0
  406. package/lib/js/webgl/Program.d.ts +159 -0
  407. package/{src/webgl/Program.ts → lib/js/webgl/Program.js} +73 -210
  408. package/lib/js/webgl/ProgramController.d.ts +86 -0
  409. package/{src/webgl/ProgramController.ts → lib/js/webgl/ProgramController.js} +11 -45
  410. package/{src/webgl/index.ts → lib/js/webgl/index.d.ts} +1 -8
  411. package/lib/js/webgl/index.js +6 -0
  412. package/lib/js/webgl/types.d.ts +9 -0
  413. package/{src/webgl/types.ts → lib/js/webgl/types.js} +5 -8
  414. package/lib/js/webgl/variableHandlers.d.ts +22 -0
  415. package/lib/js/webgl/variableHandlers.js +78 -0
  416. package/package.json +23 -34
  417. package/dist/@openglobus/og.esm.js +0 -2
  418. package/dist/@openglobus/og.esm.js.map +0 -1
  419. package/dist/@openglobus/og.umd.js +0 -2
  420. package/dist/@openglobus/og.umd.js.map +0 -1
  421. package/src/Deferred.ts +0 -17
  422. package/src/control/MouseWheelZoomControl.ts +0 -269
  423. package/src/control/ScaleControl.ts +0 -131
  424. package/src/control/SegmentBoundVisualization.ts +0 -50
  425. package/src/control/ShowFps.ts +0 -28
  426. package/src/control/ToggleWireframe.ts +0 -35
  427. package/src/control/ruler/Ruler.ts +0 -35
  428. package/src/control/ruler/RulerScene.ts +0 -437
  429. package/src/control/timeline/timelineUtils.ts +0 -133
  430. package/src/ellipsoid/index.ts +0 -4
  431. package/src/entity/Geometry.ts +0 -486
  432. package/src/index.ts +0 -173
  433. package/src/layer/GeoTexture2d.ts +0 -56
  434. package/src/layer/index.ts +0 -12
  435. package/src/math/Line3.ts +0 -162
  436. package/src/math/index.ts +0 -26
  437. package/src/quadTree/EPSG4326QuadTreeStrategy.ts +0 -24
  438. package/src/quadTree/EarthQuadTreeStrategy.ts +0 -28
  439. package/src/quadTree/MarsQuadTreeStrategy.ts +0 -25
  440. package/src/quadTree/Wgs84QuadTreeStrategy.ts +0 -22
  441. package/src/quadTree/index.ts +0 -14
  442. package/src/scene/Axes.ts +0 -78
  443. package/src/segment/SegmentLonLatWgs84.ts +0 -33
  444. package/src/terrain/Geoid.ts +0 -273
  445. package/src/ui/Button.ts +0 -121
  446. package/src/ui/ButtonGroup.ts +0 -63
  447. package/src/ui/Dialog.ts +0 -244
  448. package/src/ui/Slider.ts +0 -188
  449. package/src/ui/ToggleButton.ts +0 -68
  450. package/src/utils/Loader.ts +0 -247
  451. package/src/utils/units.ts +0 -78
  452. package/src/webgl/Multisample.ts +0 -153
  453. package/src/webgl/variableHandlers.ts +0 -114
  454. /package/{dist → lib}/@openglobus/og.css +0 -0
  455. /package/{dist → lib}/@openglobus/res/fonts/Karla-Bold.json +0 -0
  456. /package/{dist → lib}/@openglobus/res/fonts/Karla-Bold.ttf.cfg +0 -0
  457. /package/{dist → lib}/@openglobus/res/fonts/Karla-Bold.ttf.png +0 -0
  458. /package/{dist → lib}/@openglobus/res/fonts/Karla-Light.json +0 -0
  459. /package/{dist → lib}/@openglobus/res/fonts/Karla-Light.ttf.cfg +0 -0
  460. /package/{dist → lib}/@openglobus/res/fonts/Karla-Light.ttf.png +0 -0
  461. /package/{dist → lib}/@openglobus/res/fonts/Karla-Medium.json +0 -0
  462. /package/{dist → lib}/@openglobus/res/fonts/Karla-Medium.ttf.cfg +0 -0
  463. /package/{dist → lib}/@openglobus/res/fonts/Karla-Medium.ttf.png +0 -0
  464. /package/{dist → lib}/@openglobus/res/fonts/NotoSansArabic-Regular.json +0 -0
  465. /package/{dist → lib}/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.cfg +0 -0
  466. /package/{dist → lib}/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.png +0 -0
  467. /package/{dist → lib}/@openglobus/res/fonts/Roboto-Regular.json +0 -0
  468. /package/{dist → lib}/@openglobus/res/fonts/Roboto-Regular.ttf.cfg +0 -0
  469. /package/{dist → lib}/@openglobus/res/fonts/Roboto-Regular.ttf.png +0 -0
  470. /package/{dist → lib}/@openglobus/res/fonts/arial.js +0 -0
  471. /package/{dist → lib}/@openglobus/res/fonts/arial.json +0 -0
  472. /package/{dist → lib}/@openglobus/res/fonts/arial.ttf.cfg +0 -0
  473. /package/{dist → lib}/@openglobus/res/fonts/arial.ttf.png +0 -0
  474. /package/{dist → lib}/@openglobus/res/night-4326.png +0 -0
  475. /package/{dist → lib}/@openglobus/res/night.png +0 -0
  476. /package/{dist → lib}/@openglobus/res/spec.png +0 -0
@@ -1,12 +1,5 @@
1
1
  import * as shaders from "../shaders/geoObject";
2
- import {concatArrays, loadImage, makeArrayTyped, spliceArray, TypedArray} from "../utils/shared";
3
- import {EntityCollection} from "./EntityCollection";
4
- import {GeoObject} from "./GeoObject";
5
- import {Planet} from "../scene/Planet";
6
- import {Vec3} from "../math/Vec3";
7
- import {Vec4} from "../math/Vec4";
8
- import {WebGLBufferExt, WebGLTextureExt} from "../webgl/Handler";
9
-
2
+ import { concatArrays, loadImage, makeArrayTyped, spliceArray } from "../utils/shared";
10
3
  const VERTEX_BUFFER = 0;
11
4
  const POSITION_BUFFER = 1;
12
5
  const RGBA_BUFFER = 2;
@@ -18,15 +11,13 @@ const SIZE_BUFFER = 7;
18
11
  const PICKINGCOLOR_BUFFER = 8;
19
12
  const VISIBLE_BUFFER = 9;
20
13
  const TEXCOORD_BUFFER = 10;
21
-
22
- function setParametersToArray(arr: number[] | TypedArray, index: number = 0, length: number = 0, itemSize: number = 1, ...params: number[]): number[] | TypedArray {
14
+ function setParametersToArray(arr, index = 0, length = 0, itemSize = 1, ...params) {
23
15
  const currIndex = index * length;
24
16
  for (let i = currIndex, len = currIndex + length; i < len; i++) {
25
17
  arr[i] = params[i % itemSize];
26
18
  }
27
19
  return arr;
28
20
  }
29
-
30
21
  // function setParametersToArrayArr(arr: number[] | TypedArray, index: number = 0, length: number = 0, itemSize: number = 1, paramsArr: number[]): number[] | TypedArray {
31
22
  // const currIndex = index * length;
32
23
  // for (let i = currIndex, len = currIndex + length; i < len; i++) {
@@ -34,63 +25,14 @@ function setParametersToArray(arr: number[] | TypedArray, index: number = 0, len
34
25
  // }
35
26
  // return arr;
36
27
  // }
37
-
38
28
  class InstanceData {
39
-
40
- public isFree: boolean;
41
-
42
- public _geoObjectHandler: GeoObjectHandler;
43
-
44
- public geoObjects: GeoObject[];
45
-
46
- public numInstances: number;
47
-
48
- public _texture: WebGLTextureExt | null;
49
- public _textureSrc: string | null;
50
-
51
- public _pitchRollArr: number[] | TypedArray;
52
- public _sizeArr: number[] | TypedArray;
53
- public _vertexArr: number[] | TypedArray;
54
- public _positionHighArr: number[] | TypedArray;
55
- public _positionLowArr: number[] | TypedArray;
56
- public _directionArr: number[] | TypedArray;
57
- public _rgbaArr: number[] | TypedArray;
58
- public _normalsArr: number[] | TypedArray;
59
- public _indicesArr: number[] | TypedArray;
60
- public _pickingColorArr: number[] | TypedArray;
61
- public _visibleArr: number[] | TypedArray;
62
- public _texCoordArr: number[] | TypedArray;
63
-
64
- public _pitchRollBuffer: WebGLBufferExt | null;
65
- public _sizeBuffer: WebGLBufferExt | null;
66
- public _vertexBuffer: WebGLBufferExt | null;
67
- public _positionHighBuffer: WebGLBufferExt | null;
68
- public _positionLowBuffer: WebGLBufferExt | null;
69
- public _directionBuffer: WebGLBufferExt | null;
70
- public _rgbaBuffer: WebGLBufferExt | null;
71
- public _normalsBuffer: WebGLBufferExt | null;
72
- public _indicesBuffer: WebGLBufferExt | null;
73
- public _pickingColorBuffer: WebGLBufferExt | null;
74
- public _visibleBuffer: WebGLBufferExt | null;
75
- public _texCoordBuffer: WebGLBufferExt | null;
76
-
77
- public _buffersUpdateCallbacks: Function[];
78
-
79
- public _changedBuffers: boolean[];
80
-
81
- constructor(geoObjectHandler: GeoObjectHandler) {
82
-
29
+ constructor(geoObjectHandler) {
83
30
  this.isFree = true;
84
-
85
31
  this._geoObjectHandler = geoObjectHandler;
86
-
87
32
  this.geoObjects = [];
88
-
89
33
  this.numInstances = 0;
90
-
91
34
  this._texture = null;
92
35
  this._textureSrc = null;
93
-
94
36
  this._pitchRollArr = [];
95
37
  this._sizeArr = [];
96
38
  this._vertexArr = [];
@@ -103,7 +45,6 @@ class InstanceData {
103
45
  this._pickingColorArr = [];
104
46
  this._visibleArr = [];
105
47
  this._texCoordArr = [];
106
-
107
48
  this._pitchRollBuffer = null;
108
49
  this._sizeBuffer = null;
109
50
  this._vertexBuffer = null;
@@ -116,7 +57,6 @@ class InstanceData {
116
57
  this._pickingColorBuffer = null;
117
58
  this._visibleBuffer = null;
118
59
  this._texCoordBuffer = null;
119
-
120
60
  this._buffersUpdateCallbacks = [];
121
61
  this._buffersUpdateCallbacks[PICKINGCOLOR_BUFFER] = this.createPickingColorBuffer;
122
62
  this._buffersUpdateCallbacks[POSITION_BUFFER] = this.createPositionBuffer;
@@ -129,22 +69,16 @@ class InstanceData {
129
69
  this._buffersUpdateCallbacks[PITCH_ROLL_BUFFER] = this.createPitchRollBuffer;
130
70
  this._buffersUpdateCallbacks[VISIBLE_BUFFER] = this.createVisibleBuffer;
131
71
  this._buffersUpdateCallbacks[TEXCOORD_BUFFER] = this.createTexCoordBuffer;
132
-
133
72
  this._changedBuffers = new Array(this._buffersUpdateCallbacks.length);
134
73
  }
135
-
136
- public createTexture(image: HTMLCanvasElement | ImageBitmap | ImageData | HTMLImageElement) {
74
+ createTexture(image) {
137
75
  if (this._geoObjectHandler && this._geoObjectHandler._planet) {
138
- this._texture = this._geoObjectHandler._planet.renderer!.handler.createTextureDefault(image);
76
+ this._texture = this._geoObjectHandler._planet.renderer.handler.createTextureDefault(image);
139
77
  }
140
78
  }
141
-
142
- public clear() {
143
-
79
+ clear() {
144
80
  this.numInstances = 0;
145
-
146
81
  this.geoObjects = [];
147
-
148
82
  this._pitchRollArr = [];
149
83
  this._sizeArr = [];
150
84
  this._vertexArr = [];
@@ -157,38 +91,28 @@ class InstanceData {
157
91
  this._pickingColorArr = [];
158
92
  this._visibleArr = [];
159
93
  this._texCoordArr = [];
160
-
161
94
  this._deleteBuffers();
162
-
163
95
  this.isFree = false;
164
-
165
96
  //this._geoObjectHandler = null;
166
97
  }
167
-
168
- public _deleteBuffers() {
169
-
98
+ _deleteBuffers() {
170
99
  if (this._geoObjectHandler && this._geoObjectHandler._planet && this._geoObjectHandler._planet.renderer) {
171
-
172
- let h = this._geoObjectHandler._planet.renderer.handler,
173
- gl = h.gl!;
174
-
100
+ let h = this._geoObjectHandler._planet.renderer.handler, gl = h.gl;
175
101
  h.deleteTexture(this._texture);
176
102
  this._texture = null;
177
-
178
- gl.deleteBuffer(this._pitchRollBuffer as WebGLBuffer);
179
- gl.deleteBuffer(this._sizeBuffer as WebGLBuffer);
180
- gl.deleteBuffer(this._vertexBuffer as WebGLBuffer);
181
- gl.deleteBuffer(this._positionHighBuffer as WebGLBuffer);
182
- gl.deleteBuffer(this._positionLowBuffer as WebGLBuffer);
183
- gl.deleteBuffer(this._directionBuffer as WebGLBuffer);
184
- gl.deleteBuffer(this._rgbaBuffer as WebGLBuffer);
185
- gl.deleteBuffer(this._normalsBuffer as WebGLBuffer);
186
- gl.deleteBuffer(this._indicesBuffer as WebGLBuffer);
187
- gl.deleteBuffer(this._pickingColorBuffer as WebGLBuffer);
188
- gl.deleteBuffer(this._visibleBuffer as WebGLBuffer);
189
- gl.deleteBuffer(this._texCoordBuffer as WebGLBuffer);
103
+ gl.deleteBuffer(this._pitchRollBuffer);
104
+ gl.deleteBuffer(this._sizeBuffer);
105
+ gl.deleteBuffer(this._vertexBuffer);
106
+ gl.deleteBuffer(this._positionHighBuffer);
107
+ gl.deleteBuffer(this._positionLowBuffer);
108
+ gl.deleteBuffer(this._directionBuffer);
109
+ gl.deleteBuffer(this._rgbaBuffer);
110
+ gl.deleteBuffer(this._normalsBuffer);
111
+ gl.deleteBuffer(this._indicesBuffer);
112
+ gl.deleteBuffer(this._pickingColorBuffer);
113
+ gl.deleteBuffer(this._visibleBuffer);
114
+ gl.deleteBuffer(this._texCoordBuffer);
190
115
  }
191
-
192
116
  this._pitchRollBuffer = null;
193
117
  this._sizeBuffer = null;
194
118
  this._vertexBuffer = null;
@@ -202,140 +126,101 @@ class InstanceData {
202
126
  this._visibleBuffer = null;
203
127
  this._texCoordBuffer = null;
204
128
  }
205
-
206
- public createVertexBuffer() {
207
- const h = this._geoObjectHandler._planet!.renderer!.handler;
208
- h.gl!.deleteBuffer(this._vertexBuffer!);
129
+ createVertexBuffer() {
130
+ const h = this._geoObjectHandler._planet.renderer.handler;
131
+ h.gl.deleteBuffer(this._vertexBuffer);
209
132
  this._vertexArr = makeArrayTyped(this._vertexArr);
210
- this._vertexBuffer = h.createArrayBuffer(this._vertexArr as Float32Array, 3, this._vertexArr.length / 3);
211
- }
212
-
213
- public createPitchRollBuffer() {
214
-
215
- let h = this._geoObjectHandler._planet!.renderer!.handler,
216
- numItems = this._pitchRollArr.length / 2;
217
-
133
+ this._vertexBuffer = h.createArrayBuffer(this._vertexArr, 3, this._vertexArr.length / 3);
134
+ }
135
+ createPitchRollBuffer() {
136
+ let h = this._geoObjectHandler._planet.renderer.handler, numItems = this._pitchRollArr.length / 2;
218
137
  if (!this._pitchRollBuffer || this._pitchRollBuffer.numItems !== numItems) {
219
- h.gl!.deleteBuffer(this._pitchRollBuffer!);
138
+ h.gl.deleteBuffer(this._pitchRollBuffer);
220
139
  this._pitchRollBuffer = h.createStreamArrayBuffer(2, numItems);
221
140
  }
222
-
223
141
  this._pitchRollArr = makeArrayTyped(this._pitchRollArr);
224
-
225
- h.setStreamArrayBuffer(this._pitchRollBuffer, this._pitchRollArr as Float32Array);
226
- }
227
-
228
- public createVisibleBuffer() {
229
-
230
- const h = this._geoObjectHandler._planet!.renderer!.handler,
231
- numItems = this._visibleArr.length;
232
-
142
+ h.setStreamArrayBuffer(this._pitchRollBuffer, this._pitchRollArr);
143
+ }
144
+ createVisibleBuffer() {
145
+ const h = this._geoObjectHandler._planet.renderer.handler, numItems = this._visibleArr.length;
233
146
  if (!this._visibleBuffer || this._visibleBuffer.numItems !== numItems) {
234
- h.gl!.deleteBuffer(this._visibleBuffer!);
147
+ h.gl.deleteBuffer(this._visibleBuffer);
235
148
  this._visibleBuffer = h.createStreamArrayBuffer(1, numItems);
236
149
  }
237
-
238
150
  this._visibleArr = makeArrayTyped(this._visibleArr);
239
-
240
- h.setStreamArrayBuffer(this._visibleBuffer, this._visibleArr as Uint8Array);
241
- }
242
-
243
- public createSizeBuffer() {
244
- let h = this._geoObjectHandler._planet!.renderer!.handler,
245
- numItems = this._sizeArr.length;
246
-
151
+ h.setStreamArrayBuffer(this._visibleBuffer, this._visibleArr);
152
+ }
153
+ createSizeBuffer() {
154
+ let h = this._geoObjectHandler._planet.renderer.handler, numItems = this._sizeArr.length;
247
155
  if (!this._sizeBuffer || this._sizeBuffer.numItems !== numItems) {
248
- h.gl!.deleteBuffer(this._sizeBuffer as WebGLBuffer);
156
+ h.gl.deleteBuffer(this._sizeBuffer);
249
157
  this._sizeBuffer = h.createStreamArrayBuffer(1, numItems);
250
158
  }
251
-
252
159
  this._sizeArr = makeArrayTyped(this._sizeArr);
253
-
254
- h.setStreamArrayBuffer(this._sizeBuffer, this._sizeArr as Float32Array);
160
+ h.setStreamArrayBuffer(this._sizeBuffer, this._sizeArr);
255
161
  }
256
-
257
- public createTexCoordBuffer() {
258
- const h = this._geoObjectHandler._planet!.renderer!.handler;
259
- h.gl!.deleteBuffer(this._texCoordBuffer as WebGLBuffer);
162
+ createTexCoordBuffer() {
163
+ const h = this._geoObjectHandler._planet.renderer.handler;
164
+ h.gl.deleteBuffer(this._texCoordBuffer);
260
165
  this._texCoordArr = makeArrayTyped(this._texCoordArr);
261
- this._texCoordBuffer = h.createArrayBuffer(this._texCoordArr as Uint8Array, 2, this._texCoordArr.length / 2);
166
+ this._texCoordBuffer = h.createArrayBuffer(this._texCoordArr, 2, this._texCoordArr.length / 2);
262
167
  }
263
-
264
- public createPositionBuffer() {
265
- let h = this._geoObjectHandler._planet!.renderer!.handler,
266
- numItems = this._positionHighArr.length / 3;
267
-
168
+ createPositionBuffer() {
169
+ let h = this._geoObjectHandler._planet.renderer.handler, numItems = this._positionHighArr.length / 3;
268
170
  if (!this._positionHighBuffer || this._positionHighBuffer.numItems !== numItems) {
269
- h.gl!.deleteBuffer(this._positionHighBuffer as WebGLBuffer);
270
- h.gl!.deleteBuffer(this._positionLowBuffer as WebGLBuffer);
171
+ h.gl.deleteBuffer(this._positionHighBuffer);
172
+ h.gl.deleteBuffer(this._positionLowBuffer);
271
173
  this._positionHighBuffer = h.createStreamArrayBuffer(3, numItems);
272
174
  this._positionLowBuffer = h.createStreamArrayBuffer(3, numItems);
273
175
  }
274
-
275
176
  this._positionHighArr = makeArrayTyped(this._positionHighArr);
276
177
  this._positionLowArr = makeArrayTyped(this._positionLowArr);
277
-
278
- h.setStreamArrayBuffer(this._positionHighBuffer!, this._positionHighArr as Float32Array);
279
- h.setStreamArrayBuffer(this._positionLowBuffer!, this._positionLowArr as Float32Array);
280
- }
281
-
282
- public createRgbaBuffer() {
283
- let h = this._geoObjectHandler._planet!.renderer!.handler,
284
- numItems = this._rgbaArr.length / 4;
285
-
178
+ h.setStreamArrayBuffer(this._positionHighBuffer, this._positionHighArr);
179
+ h.setStreamArrayBuffer(this._positionLowBuffer, this._positionLowArr);
180
+ }
181
+ createRgbaBuffer() {
182
+ let h = this._geoObjectHandler._planet.renderer.handler, numItems = this._rgbaArr.length / 4;
286
183
  if (!this._rgbaBuffer || this._rgbaBuffer.numItems !== numItems) {
287
- h.gl!.deleteBuffer(this._rgbaBuffer as WebGLBuffer);
184
+ h.gl.deleteBuffer(this._rgbaBuffer);
288
185
  this._rgbaBuffer = h.createStreamArrayBuffer(4, numItems);
289
186
  }
290
-
291
187
  this._rgbaArr = makeArrayTyped(this._rgbaArr);
292
-
293
- h.setStreamArrayBuffer(this._rgbaBuffer, this._rgbaArr as Uint8Array);
294
- }
295
-
296
- public createDirectionBuffer() {
297
- let h = this._geoObjectHandler._planet!.renderer!.handler,
298
- numItems = this._directionArr.length / 3;
299
-
188
+ h.setStreamArrayBuffer(this._rgbaBuffer, this._rgbaArr);
189
+ }
190
+ createDirectionBuffer() {
191
+ let h = this._geoObjectHandler._planet.renderer.handler, numItems = this._directionArr.length / 3;
300
192
  if (!this._directionBuffer || this._directionBuffer.numItems !== numItems) {
301
- h.gl!.deleteBuffer(this._directionBuffer as WebGLBuffer);
193
+ h.gl.deleteBuffer(this._directionBuffer);
302
194
  this._directionBuffer = h.createStreamArrayBuffer(3, numItems);
303
195
  }
304
-
305
196
  this._directionArr = makeArrayTyped(this._directionArr);
306
-
307
- h.setStreamArrayBuffer(this._directionBuffer, this._directionArr as Float32Array);
197
+ h.setStreamArrayBuffer(this._directionBuffer, this._directionArr);
308
198
  }
309
-
310
- public createNormalsBuffer() {
311
- const h = this._geoObjectHandler._planet!.renderer!.handler;
312
- h.gl!.deleteBuffer(this._normalsBuffer as WebGLBuffer);
199
+ createNormalsBuffer() {
200
+ const h = this._geoObjectHandler._planet.renderer.handler;
201
+ h.gl.deleteBuffer(this._normalsBuffer);
313
202
  this._normalsArr = makeArrayTyped(this._normalsArr);
314
- this._normalsBuffer = h.createArrayBuffer(this._normalsArr as Uint8Array, 3, this._normalsArr.length / 3);
203
+ this._normalsBuffer = h.createArrayBuffer(this._normalsArr, 3, this._normalsArr.length / 3);
315
204
  }
316
-
317
- public createIndicesBuffer() {
318
- const h = this._geoObjectHandler._planet!.renderer!.handler;
319
- h.gl!.deleteBuffer(this._indicesBuffer as WebGLBuffer);
205
+ createIndicesBuffer() {
206
+ const h = this._geoObjectHandler._planet.renderer.handler;
207
+ h.gl.deleteBuffer(this._indicesBuffer);
320
208
  this._indicesArr = makeArrayTyped(this._indicesArr, Uint32Array);
321
- this._indicesBuffer = h.createElementArrayBuffer(this._indicesArr as Uint32Array, 1, this._indicesArr.length);
209
+ this._indicesBuffer = h.createElementArrayBuffer(this._indicesArr, 1, this._indicesArr.length);
322
210
  }
323
-
324
- public createPickingColorBuffer() {
325
- const h = this._geoObjectHandler._planet!.renderer!.handler;
326
- h.gl!.deleteBuffer(this._pickingColorBuffer as WebGLBuffer);
211
+ createPickingColorBuffer() {
212
+ const h = this._geoObjectHandler._planet.renderer.handler;
213
+ h.gl.deleteBuffer(this._pickingColorBuffer);
327
214
  this._pickingColorArr = makeArrayTyped(this._pickingColorArr);
328
- this._pickingColorBuffer = h.createArrayBuffer(this._pickingColorArr as Uint8Array, 3, this._pickingColorArr.length / 3);
215
+ this._pickingColorBuffer = h.createArrayBuffer(this._pickingColorArr, 3, this._pickingColorArr.length / 3);
329
216
  }
330
-
331
- public refresh() {
217
+ refresh() {
332
218
  let i = this._changedBuffers.length;
333
219
  while (i--) {
334
220
  this._changedBuffers[i] = true;
335
221
  }
336
222
  }
337
-
338
- public update() {
223
+ update() {
339
224
  if (this._geoObjectHandler._planet) {
340
225
  let i = this._changedBuffers.length;
341
226
  while (i--) {
@@ -348,48 +233,18 @@ class InstanceData {
348
233
  }
349
234
  }
350
235
  }
351
-
352
236
  class GeoObjectHandler {
353
- static __counter__ = 0;
354
-
355
- protected __id: number;
356
-
357
- /**
358
- * Picking rendering option.
359
- * @public
360
- * @type {boolean}
361
- */
362
- public pickingEnabled: boolean;
363
-
364
- protected _entityCollection: EntityCollection;
365
-
366
- public _planet: Planet | null;
367
-
368
- protected _geoObjects: GeoObject[];
369
-
370
- protected _instanceDataMap: Map<string, InstanceData>;
371
- protected _instanceDataMapValues: InstanceData[];
372
- protected _dataTagUpdateQueue: InstanceData[];
373
-
374
- constructor(entityCollection: EntityCollection) {
375
-
237
+ constructor(entityCollection) {
376
238
  this.__id = GeoObjectHandler.__counter__++;
377
-
378
239
  this.pickingEnabled = true;
379
-
380
240
  this._entityCollection = entityCollection;
381
-
382
241
  this._planet = null;
383
-
384
242
  this._geoObjects = [];
385
-
386
- this._instanceDataMap = new Map<string, InstanceData>();
243
+ this._instanceDataMap = new Map();
387
244
  this._instanceDataMapValues = [];
388
-
389
245
  this._dataTagUpdateQueue = [];
390
246
  }
391
-
392
- public initProgram() {
247
+ initProgram() {
393
248
  if (this._planet && this._planet.renderer) {
394
249
  if (!this._planet.renderer.handler.programs.geo_object) {
395
250
  this._planet.renderer.handler.addProgram(shaders.geo_object());
@@ -399,377 +254,268 @@ class GeoObjectHandler {
399
254
  }
400
255
  }
401
256
  }
402
-
403
- public setRenderNode(renderNode: Planet) {
404
-
257
+ setRenderNode(renderNode) {
405
258
  this._planet = renderNode;
406
-
407
259
  this.initProgram();
408
-
409
260
  //
410
261
  // in case of lazy initialization loading data here
411
262
  for (let i = 0; i < this._instanceDataMapValues.length; i++) {
412
263
  this._loadDataTagTexture(this._instanceDataMapValues[i]);
413
264
  }
414
-
415
265
  for (let i = 0; i < this._geoObjects.length; i++) {
416
266
  this._geoObjects[i].updateDirection();
417
267
  }
418
-
419
268
  this.update();
420
269
  }
421
-
422
- protected _addGeoObjectToArray(geoObject: GeoObject) {
270
+ _addGeoObjectToArray(geoObject) {
423
271
  const tag = geoObject.tag;
424
-
425
272
  let tagData = this._instanceDataMap.get(tag);
426
-
427
273
  if (!tagData) {
428
274
  tagData = new InstanceData(this);
429
275
  this._instanceDataMap.set(tag, tagData);
430
276
  this._instanceDataMapValues = Array.from(this._instanceDataMap.values());
431
-
432
277
  //
433
278
  // Setting instanced data
434
- tagData._vertexArr = geoObject.vertices
279
+ tagData._vertexArr = geoObject.vertices;
435
280
  tagData._normalsArr = geoObject.normals;
436
281
  tagData._indicesArr = geoObject.indices;
437
282
  tagData._texCoordArr = geoObject.texCoords;
438
283
  tagData._textureSrc = geoObject.object3d.src;
439
-
440
284
  this._loadDataTagTexture(tagData);
441
285
  }
442
-
443
286
  geoObject._tagDataIndex = tagData.numInstances++;
444
287
  geoObject._tagData = tagData;
445
288
  tagData.geoObjects.push(geoObject);
446
-
447
289
  let itemSize = 3;
448
-
449
290
  tagData._visibleArr = concatArrays(tagData._visibleArr, setParametersToArray([], 0, 1, 1, geoObject.getVisibility() ? 1 : 0));
450
-
451
- let x = geoObject._positionHigh.x,
452
- y = geoObject._positionHigh.y,
453
- z = geoObject._positionHigh.z,
454
- w;
455
-
291
+ let x = geoObject._positionHigh.x, y = geoObject._positionHigh.y, z = geoObject._positionHigh.z, w;
456
292
  tagData._positionHighArr = concatArrays(tagData._positionHighArr, setParametersToArray([], 0, itemSize, itemSize, x, y, z));
457
-
458
293
  x = geoObject._positionLow.x;
459
294
  y = geoObject._positionLow.y;
460
295
  z = geoObject._positionLow.z;
461
296
  tagData._positionLowArr = concatArrays(tagData._positionLowArr, setParametersToArray([], 0, itemSize, itemSize, x, y, z));
462
-
463
- x = geoObject._entity!._pickingColor.x / 255;
464
- y = geoObject._entity!._pickingColor.y / 255;
465
- z = geoObject._entity!._pickingColor.z / 255;
297
+ x = geoObject._entity._pickingColor.x / 255;
298
+ y = geoObject._entity._pickingColor.y / 255;
299
+ z = geoObject._entity._pickingColor.z / 255;
466
300
  tagData._pickingColorArr = concatArrays(tagData._pickingColorArr, setParametersToArray([], 0, itemSize, itemSize, x, y, z));
467
-
468
301
  x = geoObject._direction.x;
469
302
  y = geoObject._direction.y;
470
303
  z = geoObject._direction.z;
471
304
  tagData._directionArr = concatArrays(tagData._directionArr, setParametersToArray([], 0, itemSize, itemSize, x, y, z));
472
-
473
305
  itemSize = 4;
474
-
475
306
  x = geoObject._color.x;
476
307
  y = geoObject._color.y;
477
308
  z = geoObject._color.z;
478
309
  w = geoObject._color.w;
479
310
  tagData._rgbaArr = concatArrays(tagData._rgbaArr, setParametersToArray([], 0, itemSize, itemSize, x, y, z, w));
480
-
481
311
  itemSize = 2;
482
-
483
312
  x = geoObject.getPitch();
484
313
  y = geoObject.getRoll();
485
314
  tagData._pitchRollArr = concatArrays(tagData._pitchRollArr, setParametersToArray([], 0, itemSize, itemSize, x, y));
486
-
487
315
  itemSize = 1;
488
-
489
316
  tagData._sizeArr = concatArrays(tagData._sizeArr, setParametersToArray([], 0, itemSize, itemSize, geoObject.getScale()));
490
317
  }
491
-
492
- public _displayPASS() {
493
- let r = this._planet!.renderer!,
494
- sh = r.handler.programs.geo_object,
495
- p = sh._program,
496
- u = p.uniforms,
497
- a = p.attributes,
498
- gl = r.handler.gl!,
499
- ec = this._entityCollection;
500
-
318
+ _displayPASS() {
319
+ let r = this._planet.renderer, sh = r.handler.programs.geo_object, p = sh._program, u = p.uniforms, a = p.attributes, gl = r.handler.gl, ec = this._entityCollection;
501
320
  sh.activate();
502
-
503
321
  //
504
322
  // Could be in VAO
505
323
  //
506
324
  gl.uniform3fv(u.uScaleByDistance, ec.scaleByDistance);
507
-
508
- gl.uniform3fv(u.eyePositionHigh, r.activeCamera!.eyeHigh);
509
- gl.uniform3fv(u.eyePositionLow, r.activeCamera!.eyeLow);
510
-
511
- gl.uniformMatrix4fv(u.projectionMatrix, false, r.activeCamera!.getProjectionMatrix());
512
- gl.uniformMatrix4fv(u.viewMatrix, false, r.activeCamera!.getViewMatrix());
513
-
514
- gl.uniform3fv(u.lightsPositions, this._planet!._lightsPositions);
515
- gl.uniform3fv(u.lightsParamsv, this._planet!._lightsParamsv);
516
- gl.uniform1fv(u.lightsParamsf, this._planet!._lightsParamsf);
517
-
325
+ gl.uniform3fv(u.eyePositionHigh, r.activeCamera.eyeHigh);
326
+ gl.uniform3fv(u.eyePositionLow, r.activeCamera.eyeLow);
327
+ gl.uniformMatrix4fv(u.projectionMatrix, false, r.activeCamera.getProjectionMatrix());
328
+ gl.uniformMatrix4fv(u.viewMatrix, false, r.activeCamera.getViewMatrix());
329
+ gl.uniform3fv(u.lightsPositions, this._planet._lightsPositions);
330
+ gl.uniform3fv(u.lightsParamsv, this._planet._lightsParamsv);
331
+ gl.uniform1fv(u.lightsParamsf, this._planet._lightsParamsf);
518
332
  for (let i = 0; i < this._instanceDataMapValues.length; i++) {
519
333
  let tagData = this._instanceDataMapValues[i];
520
-
521
334
  //
522
335
  // Instance individual data
523
336
  //
524
- gl.bindBuffer(gl.ARRAY_BUFFER, tagData._directionBuffer!);
525
- gl.vertexAttribPointer(a.aDirection, tagData._directionBuffer!.itemSize, gl.FLOAT, false, 0, 0);
526
-
527
- gl.bindBuffer(gl.ARRAY_BUFFER, tagData._sizeBuffer!);
528
- gl.vertexAttribPointer(a.aScale, tagData._sizeBuffer!.itemSize, gl.FLOAT, false, 0, 0);
529
-
530
- gl.bindBuffer(gl.ARRAY_BUFFER, tagData._pitchRollBuffer!);
531
- gl.vertexAttribPointer(a.aPitchRoll, tagData._pitchRollBuffer!.itemSize, gl.FLOAT, false, 0, 0);
532
-
533
- gl.bindBuffer(gl.ARRAY_BUFFER, tagData._rgbaBuffer!);
534
- gl.vertexAttribPointer(a.aColor, tagData._rgbaBuffer!.itemSize, gl.FLOAT, false, 0, 0);
535
-
536
- gl.bindBuffer(gl.ARRAY_BUFFER, tagData._visibleBuffer!);
537
- gl.vertexAttribPointer(a.aDispose, tagData._visibleBuffer!.itemSize, gl.FLOAT, false, 0, 0);
538
-
337
+ gl.bindBuffer(gl.ARRAY_BUFFER, tagData._directionBuffer);
338
+ gl.vertexAttribPointer(a.aDirection, tagData._directionBuffer.itemSize, gl.FLOAT, false, 0, 0);
339
+ gl.bindBuffer(gl.ARRAY_BUFFER, tagData._sizeBuffer);
340
+ gl.vertexAttribPointer(a.aScale, tagData._sizeBuffer.itemSize, gl.FLOAT, false, 0, 0);
341
+ gl.bindBuffer(gl.ARRAY_BUFFER, tagData._pitchRollBuffer);
342
+ gl.vertexAttribPointer(a.aPitchRoll, tagData._pitchRollBuffer.itemSize, gl.FLOAT, false, 0, 0);
343
+ gl.bindBuffer(gl.ARRAY_BUFFER, tagData._rgbaBuffer);
344
+ gl.vertexAttribPointer(a.aColor, tagData._rgbaBuffer.itemSize, gl.FLOAT, false, 0, 0);
345
+ gl.bindBuffer(gl.ARRAY_BUFFER, tagData._visibleBuffer);
346
+ gl.vertexAttribPointer(a.aDispose, tagData._visibleBuffer.itemSize, gl.FLOAT, false, 0, 0);
539
347
  gl.uniform1f(u.uUseTexture, tagData._texture ? 1 : 0);
540
-
541
348
  //
542
349
  // Instance common data(could be in VAO)
543
350
  //
544
- gl.bindBuffer(gl.ARRAY_BUFFER, tagData._positionHighBuffer!);
545
- gl.vertexAttribPointer(a.aPositionHigh, tagData._positionHighBuffer!.itemSize, gl.FLOAT, false, 0, 0);
546
-
547
- gl.bindBuffer(gl.ARRAY_BUFFER, tagData._positionLowBuffer!);
548
- gl.vertexAttribPointer(a.aPositionLow, tagData._positionLowBuffer!.itemSize, gl.FLOAT, false, 0, 0);
549
-
550
- gl.bindBuffer(gl.ARRAY_BUFFER, tagData._normalsBuffer!);
551
- gl.vertexAttribPointer(a.aVertexNormal, tagData._normalsBuffer!.itemSize, gl.FLOAT, false, 0, 0);
552
-
553
- gl.bindBuffer(gl.ARRAY_BUFFER, tagData._vertexBuffer!);
554
- gl.vertexAttribPointer(a.aVertexPosition, tagData._vertexBuffer!.itemSize, gl.FLOAT, false, 0, 0);
555
-
351
+ gl.bindBuffer(gl.ARRAY_BUFFER, tagData._positionHighBuffer);
352
+ gl.vertexAttribPointer(a.aPositionHigh, tagData._positionHighBuffer.itemSize, gl.FLOAT, false, 0, 0);
353
+ gl.bindBuffer(gl.ARRAY_BUFFER, tagData._positionLowBuffer);
354
+ gl.vertexAttribPointer(a.aPositionLow, tagData._positionLowBuffer.itemSize, gl.FLOAT, false, 0, 0);
355
+ gl.bindBuffer(gl.ARRAY_BUFFER, tagData._normalsBuffer);
356
+ gl.vertexAttribPointer(a.aVertexNormal, tagData._normalsBuffer.itemSize, gl.FLOAT, false, 0, 0);
357
+ gl.bindBuffer(gl.ARRAY_BUFFER, tagData._vertexBuffer);
358
+ gl.vertexAttribPointer(a.aVertexPosition, tagData._vertexBuffer.itemSize, gl.FLOAT, false, 0, 0);
556
359
  gl.activeTexture(gl.TEXTURE0);
557
- gl.bindTexture(gl.TEXTURE_2D, (tagData._texture || r.handler.defaultTexture)!);
360
+ gl.bindTexture(gl.TEXTURE_2D, (tagData._texture || r.handler.defaultTexture));
558
361
  gl.uniform1i(u.uTexture, 0);
559
-
560
- gl.bindBuffer(gl.ARRAY_BUFFER, tagData._texCoordBuffer!);
561
- gl.vertexAttribPointer(a.aTexCoord, tagData._texCoordBuffer!.itemSize, gl.FLOAT, false, 0, 0);
562
-
563
- gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, tagData._indicesBuffer!);
564
- p.drawElementsInstanced!(gl.TRIANGLES, tagData._indicesBuffer!.numItems, gl.UNSIGNED_INT, 0, tagData.numInstances);
362
+ gl.bindBuffer(gl.ARRAY_BUFFER, tagData._texCoordBuffer);
363
+ gl.vertexAttribPointer(a.aTexCoord, tagData._texCoordBuffer.itemSize, gl.FLOAT, false, 0, 0);
364
+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, tagData._indicesBuffer);
365
+ p.drawElementsInstanced(gl.TRIANGLES, tagData._indicesBuffer.numItems, gl.UNSIGNED_INT, 0, tagData.numInstances);
565
366
  }
566
367
  }
567
-
568
- public drawPicking() {
368
+ drawPicking() {
569
369
  if (this._geoObjects.length && this.pickingEnabled) {
570
370
  this.update();
571
371
  this._pickingPASS();
572
372
  }
573
373
  }
574
-
575
- protected _pickingPASS() {
576
- let r = this._planet!.renderer!,
577
- sh = r.handler.programs.geo_object_picking,
578
- p = sh._program,
579
- u = p.uniforms,
580
- a = p.attributes,
581
- gl = r.handler.gl!,
582
- ec = this._entityCollection;
583
-
374
+ _pickingPASS() {
375
+ let r = this._planet.renderer, sh = r.handler.programs.geo_object_picking, p = sh._program, u = p.uniforms, a = p.attributes, gl = r.handler.gl, ec = this._entityCollection;
584
376
  sh.activate();
585
-
586
377
  gl.uniform3fv(u.uScaleByDistance, ec.scaleByDistance);
587
-
588
378
  gl.uniform1f(u.pickingScale, ec.pickingScale);
589
-
590
- gl.uniform3fv(u.eyePositionHigh, r.activeCamera!.eyeHigh);
591
- gl.uniform3fv(u.eyePositionLow, r.activeCamera!.eyeLow);
592
-
593
- gl.uniformMatrix4fv(u.projectionMatrix, false, r.activeCamera!.getProjectionMatrix());
594
- gl.uniformMatrix4fv(u.viewMatrix, false, r.activeCamera!.getViewMatrix());
595
-
379
+ gl.uniform3fv(u.eyePositionHigh, r.activeCamera.eyeHigh);
380
+ gl.uniform3fv(u.eyePositionLow, r.activeCamera.eyeLow);
381
+ gl.uniformMatrix4fv(u.projectionMatrix, false, r.activeCamera.getProjectionMatrix());
382
+ gl.uniformMatrix4fv(u.viewMatrix, false, r.activeCamera.getViewMatrix());
596
383
  for (let i = 0; i < this._instanceDataMapValues.length; i++) {
597
384
  let tagData = this._instanceDataMapValues[i];
598
-
599
385
  //
600
386
  // Instance individual data
601
387
  //
602
- gl.bindBuffer(gl.ARRAY_BUFFER, tagData._directionBuffer!);
603
- gl.vertexAttribPointer(a.aDirection, tagData._directionBuffer!.itemSize, gl.FLOAT, false, 0, 0);
604
-
605
- gl.bindBuffer(gl.ARRAY_BUFFER, tagData._sizeBuffer!);
606
- gl.vertexAttribPointer(a.aScale, tagData._sizeBuffer!.itemSize, gl.FLOAT, false, 0, 0);
607
-
608
- gl.bindBuffer(gl.ARRAY_BUFFER, tagData._pitchRollBuffer!);
609
- gl.vertexAttribPointer(a.aPitchRoll, tagData._pitchRollBuffer!.itemSize, gl.FLOAT, false, 0, 0);
610
-
611
- gl.bindBuffer(gl.ARRAY_BUFFER, tagData._pickingColorBuffer!);
612
- gl.vertexAttribPointer(a.aPickingColor, tagData._pickingColorBuffer!.itemSize, gl.FLOAT, false, 0, 0);
613
-
614
- gl.bindBuffer(gl.ARRAY_BUFFER, tagData._positionHighBuffer!);
615
- gl.vertexAttribPointer(a.aPositionHigh, tagData._positionHighBuffer!.itemSize, gl.FLOAT, false, 0, 0);
616
-
617
- gl.bindBuffer(gl.ARRAY_BUFFER, tagData._positionLowBuffer!);
618
- gl.vertexAttribPointer(a.aPositionLow, tagData._positionLowBuffer!.itemSize, gl.FLOAT, false, 0, 0);
619
-
620
- gl.bindBuffer(gl.ARRAY_BUFFER, tagData._visibleBuffer!);
621
- gl.vertexAttribPointer(a.aDispose, tagData._visibleBuffer!.itemSize, gl.FLOAT, false, 0, 0);
622
-
388
+ gl.bindBuffer(gl.ARRAY_BUFFER, tagData._directionBuffer);
389
+ gl.vertexAttribPointer(a.aDirection, tagData._directionBuffer.itemSize, gl.FLOAT, false, 0, 0);
390
+ gl.bindBuffer(gl.ARRAY_BUFFER, tagData._sizeBuffer);
391
+ gl.vertexAttribPointer(a.aScale, tagData._sizeBuffer.itemSize, gl.FLOAT, false, 0, 0);
392
+ gl.bindBuffer(gl.ARRAY_BUFFER, tagData._pitchRollBuffer);
393
+ gl.vertexAttribPointer(a.aPitchRoll, tagData._pitchRollBuffer.itemSize, gl.FLOAT, false, 0, 0);
394
+ gl.bindBuffer(gl.ARRAY_BUFFER, tagData._pickingColorBuffer);
395
+ gl.vertexAttribPointer(a.aPickingColor, tagData._pickingColorBuffer.itemSize, gl.FLOAT, false, 0, 0);
396
+ gl.bindBuffer(gl.ARRAY_BUFFER, tagData._positionHighBuffer);
397
+ gl.vertexAttribPointer(a.aPositionHigh, tagData._positionHighBuffer.itemSize, gl.FLOAT, false, 0, 0);
398
+ gl.bindBuffer(gl.ARRAY_BUFFER, tagData._positionLowBuffer);
399
+ gl.vertexAttribPointer(a.aPositionLow, tagData._positionLowBuffer.itemSize, gl.FLOAT, false, 0, 0);
400
+ gl.bindBuffer(gl.ARRAY_BUFFER, tagData._visibleBuffer);
401
+ gl.vertexAttribPointer(a.aDispose, tagData._visibleBuffer.itemSize, gl.FLOAT, false, 0, 0);
623
402
  //
624
403
  // Instance common data(could be in VAO)
625
404
  //
626
- gl.bindBuffer(gl.ARRAY_BUFFER, tagData._vertexBuffer!);
627
- gl.vertexAttribPointer(a.aVertexPosition, tagData._vertexBuffer!.itemSize, gl.FLOAT, false, 0, 0);
628
-
629
- gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, tagData._indicesBuffer!);
630
- p.drawElementsInstanced!(gl.TRIANGLES, tagData._indicesBuffer!.numItems, gl.UNSIGNED_INT, 0, tagData.numInstances);
405
+ gl.bindBuffer(gl.ARRAY_BUFFER, tagData._vertexBuffer);
406
+ gl.vertexAttribPointer(a.aVertexPosition, tagData._vertexBuffer.itemSize, gl.FLOAT, false, 0, 0);
407
+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, tagData._indicesBuffer);
408
+ p.drawElementsInstanced(gl.TRIANGLES, tagData._indicesBuffer.numItems, gl.UNSIGNED_INT, 0, tagData.numInstances);
631
409
  }
632
410
  }
633
-
634
- async _loadDataTagTexture(tagData: InstanceData) {
411
+ async _loadDataTagTexture(tagData) {
635
412
  if (this._planet && tagData._textureSrc) {
636
413
  const image = await loadImage(tagData._textureSrc);
637
414
  tagData.createTexture(image);
638
415
  }
639
416
  }
640
-
641
- public setDirectionArr(tagData: InstanceData, tagDataIndex: number, direction: Vec3) {
417
+ setDirectionArr(tagData, tagDataIndex, direction) {
642
418
  setParametersToArray(tagData._directionArr, tagDataIndex, 3, 3, direction.x, direction.y, direction.z);
643
419
  tagData._changedBuffers[DIRECTION_BUFFER] = true;
644
420
  this._updateTag(tagData);
645
421
  }
646
-
647
- public setVisibility(tagData: InstanceData, tagDataIndex: number, visibility: boolean) {
422
+ setVisibility(tagData, tagDataIndex, visibility) {
648
423
  setParametersToArray(tagData._visibleArr, tagDataIndex, 1, 1, visibility ? 1 : 0);
649
424
  tagData._changedBuffers[VISIBLE_BUFFER] = true;
650
425
  this._updateTag(tagData);
651
426
  }
652
-
653
- public setPositionArr(tagData: InstanceData, tagDataIndex: number, positionHigh: Vec3, positionLow: Vec3) {
427
+ setPositionArr(tagData, tagDataIndex, positionHigh, positionLow) {
654
428
  setParametersToArray(tagData._positionHighArr, tagDataIndex, 3, 3, positionHigh.x, positionHigh.y, positionHigh.z);
655
429
  setParametersToArray(tagData._positionLowArr, tagDataIndex, 3, 3, positionLow.x, positionLow.y, positionLow.z);
656
430
  tagData._changedBuffers[POSITION_BUFFER] = true;
657
431
  this._updateTag(tagData);
658
432
  }
659
-
660
- public setRgbaArr(tagData: InstanceData, tagDataIndex: number, rgba: Vec4) {
433
+ setRgbaArr(tagData, tagDataIndex, rgba) {
661
434
  setParametersToArray(tagData._rgbaArr, tagDataIndex, 4, 4, rgba.x, rgba.y, rgba.z, rgba.w);
662
435
  tagData._changedBuffers[RGBA_BUFFER] = true;
663
436
  this._updateTag(tagData);
664
437
  }
665
-
666
- public setPickingColorArr(tagData: InstanceData, tagDataIndex: number, color: Vec3) {
438
+ setPickingColorArr(tagData, tagDataIndex, color) {
667
439
  setParametersToArray(tagData._pickingColorArr, tagDataIndex, 3, 3, color.x / 255, color.y / 255, color.z / 255);
668
440
  tagData._changedBuffers[PICKINGCOLOR_BUFFER] = true;
669
441
  this._updateTag(tagData);
670
442
  }
671
-
672
443
  // setTexCoordArr(tagData, tagDataIndex, tcoordArr) {
673
444
  // setParametersToArray(tagData._texCoordArr, tagDataIndex, 2, 2, ...tcoordArr);
674
445
  // tagData._changedBuffers[TEXCOORD_BUFFER] = true;
675
446
  // this._updateTag(tagData);
676
447
  // }
677
-
678
- public setPitchRollArr(tagData: InstanceData, tagDataIndex: number, pitch: number, roll: number) {
448
+ setPitchRollArr(tagData, tagDataIndex, pitch, roll) {
679
449
  setParametersToArray(tagData._pitchRollArr, tagDataIndex, 2, 2, pitch, roll);
680
450
  tagData._changedBuffers[PITCH_ROLL_BUFFER] = true;
681
451
  this._updateTag(tagData);
682
452
  }
683
-
684
- public setScaleArr(tagData: InstanceData, tagDataIndex: number, scale: number) {
453
+ setScaleArr(tagData, tagDataIndex, scale) {
685
454
  setParametersToArray(tagData._sizeArr, tagDataIndex, 1, 1, scale);
686
455
  tagData._changedBuffers[SIZE_BUFFER] = true;
687
456
  this._updateTag(tagData);
688
457
  }
689
-
690
- protected _updateTag(dataTag: InstanceData) {
458
+ _updateTag(dataTag) {
691
459
  if (dataTag.isFree) {
692
460
  dataTag.isFree = false;
693
461
  this._dataTagUpdateQueue.push(dataTag);
694
462
  }
695
463
  }
696
-
697
- public update() {
464
+ update() {
698
465
  for (let i = 0, len = this._dataTagUpdateQueue.length; i < len; i++) {
699
466
  this._dataTagUpdateQueue[i].update();
700
467
  }
701
468
  this._dataTagUpdateQueue = [];
702
469
  }
703
-
704
- public _removeAll() {
470
+ _removeAll() {
705
471
  let i = this._geoObjects.length;
706
472
  while (i--) {
707
473
  const gi = this._geoObjects[i];
708
-
709
474
  gi._tagDataIndex = -1;
710
475
  gi._tagData = null;
711
-
712
476
  gi._handlerIndex = -1;
713
477
  gi._handler = null;
714
478
  }
715
479
  this._geoObjects.length = 0;
716
480
  this._geoObjects = [];
717
-
718
481
  for (let i = 0; i < this._instanceDataMapValues.length; i++) {
719
482
  this._instanceDataMapValues[i].clear();
720
483
  }
721
-
722
484
  this._instanceDataMap.clear();
723
485
  this._instanceDataMapValues = [];
724
486
  }
725
-
726
- public clear() {
487
+ clear() {
727
488
  this._removeAll();
728
489
  }
729
-
730
- public draw() {
490
+ draw() {
731
491
  if (this._geoObjects.length) {
732
492
  this.update();
733
493
  this._displayPASS();
734
494
  }
735
495
  }
736
-
737
- public add(geoObject: GeoObject) {
738
-
496
+ add(geoObject) {
739
497
  if (geoObject._handlerIndex === -1) {
740
-
741
498
  geoObject._handler = this;
742
499
  geoObject._handlerIndex = this._geoObjects.length;
743
-
744
500
  this._geoObjects.push(geoObject);
745
501
  this._addGeoObjectToArray(geoObject);
746
-
747
502
  geoObject.updateDirection();
748
-
749
- geoObject._tagData!.refresh();
750
-
751
- this._updateTag(geoObject._tagData!);
503
+ geoObject._tagData.refresh();
504
+ this._updateTag(geoObject._tagData);
752
505
  }
753
506
  }
754
-
755
- public remove(geoObject: GeoObject) {
507
+ remove(geoObject) {
756
508
  if (geoObject._handler && this.__id == geoObject._handler.__id) {
757
509
  this._removeGeoObject(geoObject);
758
510
  }
759
511
  }
760
-
761
- public _clearDataTagQueue() {
512
+ _clearDataTagQueue() {
762
513
  this._dataTagUpdateQueue = [];
763
514
  }
764
-
765
-
766
- public _removeGeoObject(geoObject: GeoObject) {
767
-
768
- let tagData = geoObject._tagData!;
515
+ _removeGeoObject(geoObject) {
516
+ let tagData = geoObject._tagData;
769
517
  let tag = geoObject.tag;
770
-
771
518
  tagData.numInstances--;
772
-
773
519
  let isEmpty = false;
774
520
  // dataTag becomes empty, remove it from the rendering
775
521
  if (tagData.numInstances === 0) {
@@ -779,21 +525,17 @@ class GeoObjectHandler {
779
525
  this._clearDataTagQueue();
780
526
  isEmpty = true;
781
527
  }
782
-
783
528
  this._geoObjects.splice(geoObject._handlerIndex, 1);
784
529
  for (let i = geoObject._handlerIndex, len = this._geoObjects.length; i < len; i++) {
785
530
  let gi = this._geoObjects[i];
786
531
  gi._handlerIndex = gi._handlerIndex - 1;
787
532
  }
788
-
789
533
  let tdi = geoObject._tagDataIndex;
790
534
  tagData.geoObjects.splice(tdi, 1);
791
-
792
535
  for (let i = geoObject._tagDataIndex, len = tagData.geoObjects.length; i < len; i++) {
793
536
  let gi = tagData.geoObjects[i];
794
537
  gi._tagDataIndex = gi._tagDataIndex - 1;
795
538
  }
796
-
797
539
  tagData._rgbaArr = spliceArray(tagData._rgbaArr, tdi * 4, 4);
798
540
  tagData._positionHighArr = spliceArray(tagData._positionHighArr, tdi * 3, 3);
799
541
  tagData._positionLowArr = spliceArray(tagData._positionLowArr, tdi * 3, 3);
@@ -802,18 +544,15 @@ class GeoObjectHandler {
802
544
  tagData._pitchRollArr = spliceArray(tagData._pitchRollArr, tdi * 2, 2);
803
545
  tagData._sizeArr = spliceArray(tagData._sizeArr, tdi, 1);
804
546
  tagData._visibleArr = spliceArray(tagData._visibleArr, tdi, 1);
805
-
806
547
  geoObject._handlerIndex = -1;
807
548
  geoObject._handler = null;
808
-
809
549
  geoObject._tagDataIndex = -1;
810
550
  geoObject._tagData = null;
811
-
812
551
  if (!isEmpty) {
813
552
  tagData.refresh();
814
553
  this._updateTag(tagData);
815
554
  }
816
555
  }
817
556
  }
818
-
819
- export {GeoObjectHandler, InstanceData};
557
+ GeoObjectHandler.__counter__ = 0;
558
+ export { GeoObjectHandler, InstanceData };