@openglobus/og 0.18.0 → 0.18.1

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} +82 -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} +101 -373
  160. package/lib/js/entity/EntityCollection.d.ts +364 -0
  161. package/{src/entity/EntityCollection.ts → lib/js/entity/EntityCollection.js} +51 -353
  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} +62 -164
  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 +244 -0
  221. package/{src/layer/Vector.ts → lib/js/layer/Vector.js} +147 -418
  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 +311 -0
  283. package/{src/renderer/Renderer.ts → lib/js/renderer/Renderer.js} +169 -611
  284. package/lib/js/renderer/RendererEvents.d.ts +237 -0
  285. package/{src/renderer/RendererEvents.ts → lib/js/renderer/RendererEvents.js} +134 -471
  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} +251 -935
  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} +82 -239
  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} +45 -181
  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} +184 -341
  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,51 +1,23 @@
1
- import {Camera} from "../camera/Camera";
2
- import {Control} from "../control/Control";
3
- import {cons} from "../cons";
4
- import {createRendererEvents, RendererEvents, RendererEventsHandler} from "./RendererEvents";
5
- import {depth} from "../shaders/depth";
6
- import {EntityCollection} from "../entity/EntityCollection";
7
- import {Framebuffer, Multisample} from "../webgl/index";
8
- import {FontAtlas, IFontParams} from "../utils/FontAtlas";
9
- import {Handler, WebGLBufferExt} from "../webgl/Handler";
10
- import {input} from "../input/input";
11
- import {isEmpty} from "../utils/shared";
12
- import {LabelWorker} from "../entity/LabelWorker";
13
- import {pickingMask} from "../shaders/pickingMask";
14
- import {randomi} from "../math";
15
- import {RenderNode} from "../scene/RenderNode";
16
- import {screenFrame} from "../shaders/screenFrame";
17
- import {toneMapping} from "../shaders/toneMapping";
18
- import {TextureAtlas} from "../utils/TextureAtlas";
19
- import {Vec2} from "../math/Vec2";
20
- import {NumberArray3, Vec3} from "../math/Vec3";
21
- import {Vec4} from "../math/Vec4";
22
-
23
- interface IRendererParams {
24
- controls?: Control[];
25
- msaa?: number;
26
- autoActivate?: boolean;
27
- fontsSrc?: string;
28
- }
29
-
30
- interface IPickingObject {
31
- _pickingColor?: Vec3;
32
- _pickingColorU?: Float32Array;
33
- }
34
-
35
- interface IFrameCallbackHandler {
36
- id: number;
37
- callback: Function;
38
- sender: any;
39
- }
40
-
1
+ import { Camera } from "../camera/Camera";
2
+ import { cons } from "../cons";
3
+ import { createRendererEvents } from "./RendererEvents";
4
+ import { depth } from "../shaders/depth";
5
+ import { Framebuffer, Multisample } from "../webgl/index";
6
+ import { FontAtlas } from "../utils/FontAtlas";
7
+ import { input } from "../input/input";
8
+ import { isEmpty } from "../utils/shared";
9
+ import { LabelWorker } from "../entity/LabelWorker";
10
+ import { pickingMask } from "../shaders/pickingMask";
11
+ import { randomi } from "../math";
12
+ import { screenFrame } from "../shaders/screenFrame";
13
+ import { toneMapping } from "../shaders/toneMapping";
14
+ import { TextureAtlas } from "../utils/TextureAtlas";
15
+ import { Vec2 } from "../math/Vec2";
16
+ import { Vec3 } from "../math/Vec3";
41
17
  const MSAA_DEFAULT = 0;
42
-
43
18
  let __pickingCallbackCounter__ = 0;
44
-
45
19
  let __depthCallbackCounter__ = 0;
46
-
47
20
  let __distanceCallbackCounter__ = 0;
48
-
49
21
  /**
50
22
  * Represents high level WebGL context interface that starts WebGL handler working in real time.
51
23
  * @class
@@ -79,320 +51,109 @@ let __distanceCallbackCounter__ = 0;
79
51
  * @fires EventsHandler<RendererEventsType>#touchleave
80
52
  * @fires EventsHandler<RendererEventsType>#touchenter
81
53
  */
82
-
83
- let __resizeTimeout: any;
84
-
85
- export interface HTMLDivElementExt extends HTMLDivElement {
86
- attributions?: HTMLElement;
87
- }
88
-
54
+ let __resizeTimeout;
89
55
  class Renderer {
90
-
91
- /**
92
- * Div element with WebGL canvas. Assigned in Globe class.
93
- * @public
94
- * @type {HTMLElement | null}
95
- */
96
- public div: HTMLDivElementExt | null;
97
-
98
- /**
99
- * WebGL handler context.
100
- * @public
101
- * @type {Handler}
102
- */
103
- public handler: Handler;
104
- public exposure: number;
105
- public gamma: number;
106
- public whitepoint: number;
107
- public brightThreshold: number;
108
-
109
- /**
110
- * Render nodes drawing queue.
111
- * @public
112
- * @type {Array.<RenderNode>}
113
- */
114
- public _renderNodesArr: RenderNode[];
115
-
116
- /**
117
- * Render nodes store for the comfortable access by the node name.
118
- * @public
119
- * @type {Object.<RenderNode>}
120
- */
121
- public renderNodes: Record<string, RenderNode>;
122
-
123
- /**
124
- * Current active camera.
125
- * @public
126
- * @type {Camera}
127
- */
128
- public activeCamera: Camera | null;
129
-
130
- /**
131
- * Renderer events. Represents interface for setting events like mousemove, draw, keypress etc.
132
- * @public
133
- * @type {RendererEvents}
134
- */
135
- public events: RendererEventsHandler;
136
-
137
- /**
138
- * Controls array.
139
- * @public
140
- * @type {Object}
141
- */
142
- public controls: Record<string, Control>;
143
-
144
- /**
145
- * Provides exchange between controls.
146
- * @public
147
- * @type {any}
148
- */
149
- public controlsBag: any;
150
-
151
- /**
152
- * Hash table for drawing objects.
153
- * @public
154
- * @type {Map<string, any>}
155
- */
156
- public colorObjects: Map<string, any>;
157
-
158
- /**
159
- * Color picking objects rendering queue.
160
- * @type {Function[]}
161
- */
162
- protected _pickingCallbacks: IFrameCallbackHandler[];
163
-
164
- /**
165
- * Picking objects(labels and billboards) framebuffer.
166
- * @public
167
- * @type {Framebuffer}
168
- */
169
- public pickingFramebuffer: Framebuffer | null;
170
-
171
- protected _tempPickingPix_: Uint8Array;
172
-
173
- /**
174
- * @public
175
- * @type {Framebuffer}
176
- */
177
- public distanceFramebuffer: Framebuffer | null;
178
-
179
- /**
180
- * @type {Function[]}
181
- */
182
- protected _distanceCallbacks: IFrameCallbackHandler[];
183
-
184
- protected _tempDistancePix_: Uint8Array;
185
-
186
- /**
187
- * Depth objects rendering queue.
188
- * @type {Function[]}
189
- */
190
- protected _depthCallbacks: IFrameCallbackHandler[];
191
-
192
- public depthFramebuffer: Framebuffer | null;
193
-
194
- protected _msaa: number;
195
-
196
- protected _internalFormat: string;
197
- protected _format: string;
198
- protected _type: string;
199
-
200
- public sceneFramebuffer: Framebuffer | Multisample | null;
201
-
202
- protected blitFramebuffer: Framebuffer | null;
203
-
204
- protected toneMappingFramebuffer: Framebuffer | null;
205
-
206
- protected _initialized: boolean;
207
-
208
- /**
209
- * Texture atlas for the billboards images. One atlas per node.
210
- * @public
211
- * @type {TextureAtlas}
212
- */
213
- public billboardsTextureAtlas: TextureAtlas;
214
-
215
- /**
216
- * Texture atlas for the billboards images. One atlas per node.
217
- * @public
218
- * @type {TextureAtlas}
219
- */
220
- public geoObjectsTextureAtlas: TextureAtlas;
221
-
222
- /**
223
- * Texture font atlas for the font families and styles. One atlas per node.
224
- * @public
225
- * @type {FontAtlas}
226
- */
227
- public fontAtlas: FontAtlas;
228
-
229
- protected _entityCollections: EntityCollection[];
230
-
231
- protected _currentOutput: string;
232
-
233
- protected _fnScreenFrame: Function | null;
234
-
235
- public labelWorker: LabelWorker;
236
-
237
- public __useDistanceFramebuffer__: boolean;
238
-
239
- public screenDepthFramebuffer: Framebuffer | null;
240
-
241
- public screenFramePositionBuffer: WebGLBufferExt | null;
242
-
243
- public screenTexture: Record<string, WebGLTexture>;
244
-
245
- public outputTexture: WebGLTexture | null;
246
-
247
- protected _pickingMaskCoordinatesBuffer: WebGLBufferExt | null;
248
-
249
- constructor(handler: Handler, params: IRendererParams = {}) {
250
-
56
+ constructor(handler, params = {}) {
251
57
  this.div = null;
252
-
253
58
  this.handler = handler;
254
-
255
59
  this.exposure = 3.01;
256
-
257
60
  this.gamma = 0.47;
258
-
259
61
  this.whitepoint = 1.0;
260
-
261
62
  this.brightThreshold = 0.9;
262
-
263
63
  this._renderNodesArr = [];
264
-
265
64
  this.renderNodes = {};
266
-
267
65
  this.activeCamera = null;
268
-
269
66
  this.events = createRendererEvents(this);
270
-
271
67
  this.controls = {};
272
-
273
68
  if (params.controls) {
274
69
  for (let i in params.controls) {
275
70
  this.controls[params.controls[i].name] = params.controls[i];
276
71
  }
277
72
  }
278
-
279
73
  this.controlsBag = {};
280
-
281
- this.colorObjects = new Map<string, any>();
282
-
74
+ this.colorObjects = new Map();
283
75
  this._pickingCallbacks = [];
284
-
285
76
  this.pickingFramebuffer = null;
286
-
287
77
  this._tempPickingPix_ = new Uint8Array([]);
288
-
289
78
  this.distanceFramebuffer = null;
290
-
291
79
  this._distanceCallbacks = [];
292
-
293
80
  this._tempDistancePix_ = new Uint8Array([]);
294
-
295
81
  this._depthCallbacks = [];
296
-
297
82
  this.depthFramebuffer = null;
298
-
299
83
  let urlParams = new URLSearchParams(location.search);
300
84
  let msaaParam = urlParams.get('og_msaa');
301
85
  if (msaaParam) {
302
86
  this._msaa = Number(urlParams.get('og_msaa'));
303
- } else {
87
+ }
88
+ else {
304
89
  this._msaa = params.msaa != undefined ? params.msaa : MSAA_DEFAULT;
305
90
  }
306
-
307
91
  this._internalFormat = "RGBA16F";
308
92
  this._format = "RGBA";
309
93
  this._type = "FLOAT";
310
-
311
94
  this.sceneFramebuffer = null;
312
-
313
95
  this.blitFramebuffer = null;
314
-
315
96
  this.toneMappingFramebuffer = null;
316
-
317
97
  this._initialized = false;
318
-
319
98
  /**
320
99
  * Texture atlas for the billboards images. One atlas per node.
321
100
  * @public
322
101
  * @type {TextureAtlas}
323
102
  */
324
103
  this.billboardsTextureAtlas = new TextureAtlas();
325
-
326
104
  /**
327
105
  * Texture atlas for the billboards images. One atlas per node.
328
106
  * @public
329
107
  * @type {TextureAtlas}
330
108
  */
331
109
  this.geoObjectsTextureAtlas = new TextureAtlas();
332
-
333
110
  /**
334
111
  * Texture font atlas for the font families and styles. One atlas per node.
335
112
  * @public
336
113
  * @type {FontAtlas}
337
114
  */
338
115
  this.fontAtlas = new FontAtlas(params.fontsSrc);
339
-
340
116
  this._entityCollections = [];
341
-
342
117
  this._currentOutput = "screen";
343
-
344
118
  this._fnScreenFrame = null;
345
-
346
119
  this.labelWorker = new LabelWorker(4);
347
-
348
120
  this.__useDistanceFramebuffer__ = true;
349
-
350
121
  this.screenDepthFramebuffer = null;
351
-
352
122
  this.screenFramePositionBuffer = null;
353
-
354
123
  this.screenTexture = {};
355
-
356
124
  this.outputTexture = null;
357
-
358
125
  this._pickingMaskCoordinatesBuffer = null;
359
-
360
126
  if (params.autoActivate || isEmpty(params.autoActivate)) {
361
127
  this.start();
362
128
  }
363
129
  }
364
-
365
- public enableBlendOneSrcAlpha() {
366
- let gl = this.handler.gl!;
130
+ enableBlendOneSrcAlpha() {
131
+ let gl = this.handler.gl;
367
132
  gl.enable(gl.BLEND);
368
133
  gl.blendEquation(gl.FUNC_ADD);
369
134
  gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);
370
135
  }
371
-
372
- public enableBlendDefault() {
373
- let gl = this.handler.gl!;
136
+ enableBlendDefault() {
137
+ let gl = this.handler.gl;
374
138
  gl.enable(gl.BLEND);
375
139
  gl.blendEquation(gl.FUNC_ADD);
376
140
  gl.blendFuncSeparate(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE);
377
141
  }
378
-
379
142
  /**
380
143
  * Sets renderer events activity.
381
144
  * @param {Boolean} activity - Events activity.
382
145
  */
383
- public setEventsActivity(activity: boolean) {
146
+ setEventsActivity(activity) {
384
147
  this.events.active = activity;
385
148
  }
386
-
387
- public addDepthCallback(sender: any, callback: Function) {
149
+ addDepthCallback(sender, callback) {
388
150
  let id = __depthCallbackCounter__++;
389
151
  this._depthCallbacks.push({
390
152
  id: id, callback: callback, sender: sender
391
153
  });
392
154
  return id;
393
155
  }
394
-
395
- public removeDepthCallback(id: number) {
156
+ removeDepthCallback(id) {
396
157
  for (let i = 0; i < this._depthCallbacks.length; i++) {
397
158
  if (id === this._depthCallbacks[i].id) {
398
159
  this._depthCallbacks.splice(i, 1);
@@ -400,16 +161,14 @@ class Renderer {
400
161
  }
401
162
  }
402
163
  }
403
-
404
- public addDistanceCallback(sender: any, callback: Function) {
164
+ addDistanceCallback(sender, callback) {
405
165
  let id = __distanceCallbackCounter__++;
406
166
  this._distanceCallbacks.push({
407
167
  id: id, callback: callback, sender: sender
408
168
  });
409
169
  return id;
410
170
  }
411
-
412
- public removeDistanceCallback(id: number) {
171
+ removeDistanceCallback(id) {
413
172
  for (let i = 0; i < this._distanceCallbacks.length; i++) {
414
173
  if (id === this._distanceCallbacks[i].id) {
415
174
  this._distanceCallbacks.splice(i, 1);
@@ -417,27 +176,24 @@ class Renderer {
417
176
  }
418
177
  }
419
178
  }
420
-
421
-
422
179
  /**
423
180
  * Adds picking rendering callback function.
424
181
  * @param {object} sender - Callback context.
425
182
  * @param {Function} callback - Rendering callback.
426
183
  * @returns {Number} Handler id
427
184
  */
428
- public addPickingCallback(sender: any, callback: Function) {
185
+ addPickingCallback(sender, callback) {
429
186
  let id = __pickingCallbackCounter__++;
430
187
  this._pickingCallbacks.push({
431
188
  id: id, callback: callback, sender: sender
432
189
  });
433
190
  return id;
434
191
  }
435
-
436
192
  /**
437
193
  * Removes picking rendering callback function.
438
194
  * @param {Number} id - Handler id to remove.
439
195
  */
440
- public removePickingCallback(id: number) {
196
+ removePickingCallback(id) {
441
197
  for (let i = 0; i < this._pickingCallbacks.length; i++) {
442
198
  if (id === this._pickingCallbacks[i].id) {
443
199
  this._pickingCallbacks.splice(i, 1);
@@ -445,25 +201,21 @@ class Renderer {
445
201
  }
446
202
  }
447
203
  }
448
-
449
- public getPickingObject<T>(r: number, g: number, b: number): T {
204
+ getPickingObject(r, g, b) {
450
205
  return this.colorObjects.get(`${r}_${g}_${b}`);
451
206
  }
452
-
453
- public getPickingObjectArr<T>(arr: NumberArray3 | Uint8Array): T {
207
+ getPickingObjectArr(arr) {
454
208
  return this.colorObjects.get(`${arr[0]}_${arr[1]}_${arr[2]}`);
455
209
  }
456
-
457
- public getPickingObject3v<T>(vec: Vec3 | Vec4): T {
210
+ getPickingObject3v(vec) {
458
211
  return this.colorObjects.get(`${vec.x}_${vec.y}_${vec.z}`);
459
212
  }
460
-
461
213
  /**
462
214
  * Assign picking color to the object.
463
215
  * @public
464
216
  * @param {Object} obj - Object that presume to be picked.
465
217
  */
466
- public assignPickingColor<T>(obj: T & IPickingObject) {
218
+ assignPickingColor(obj) {
467
219
  if (!obj._pickingColor || obj._pickingColor.isZero()) {
468
220
  let r = 0, g = 0, b = 0;
469
221
  let str = "0_0_0";
@@ -473,25 +225,22 @@ class Renderer {
473
225
  b = randomi(1, 255);
474
226
  str = `${r}_${g}_${b}`;
475
227
  }
476
-
477
228
  if (!obj._pickingColor) {
478
229
  obj._pickingColor = new Vec3(r, g, b);
479
- } else {
230
+ }
231
+ else {
480
232
  obj._pickingColor.set(r, g, b);
481
233
  }
482
-
483
234
  obj._pickingColorU = new Float32Array([r / 255, g / 255, b / 255]);
484
-
485
235
  this.colorObjects.set(str, obj);
486
236
  }
487
237
  }
488
-
489
238
  /**
490
239
  * Removes picking color from object.
491
240
  * @public
492
241
  * @param {Object} obj - Object to remove picking color.
493
242
  */
494
- public clearPickingColor<T>(obj: T & IPickingObject) {
243
+ clearPickingColor(obj) {
495
244
  if (obj._pickingColor && !obj._pickingColor.isZero()) {
496
245
  let c = obj._pickingColor;
497
246
  if (!c.isZero()) {
@@ -500,125 +249,103 @@ class Renderer {
500
249
  }
501
250
  }
502
251
  }
503
-
504
252
  /**
505
253
  * Get the client width.
506
254
  * @public
507
255
  * @returns {number} -
508
256
  */
509
- public getWidth(): number {
510
- return this.handler.canvas!.clientWidth;
257
+ getWidth() {
258
+ return this.handler.canvas.clientWidth;
511
259
  }
512
-
513
260
  /**
514
261
  * Get the client height.
515
262
  * @public
516
263
  * @returns {number} -
517
264
  */
518
- public getHeight(): number {
519
- return this.handler.canvas!.clientHeight;
265
+ getHeight() {
266
+ return this.handler.canvas.clientHeight;
520
267
  }
521
-
522
268
  /**
523
269
  * Get center of the canvas
524
270
  * @public
525
271
  * @returns {Vec2} -
526
272
  */
527
- public getCenter(): Vec2 {
528
- let cnv = this.handler.canvas!;
273
+ getCenter() {
274
+ let cnv = this.handler.canvas;
529
275
  return new Vec2(Math.round(cnv.width * 0.5), Math.round(cnv.height * 0.5));
530
276
  }
531
-
532
277
  /**
533
278
  * Get center of the screen viewport
534
279
  * @public
535
280
  * @returns {Vec2} -
536
281
  */
537
- public getClientCenter(): Vec2 {
538
- let cnv = this.handler.canvas!;
282
+ getClientCenter() {
283
+ let cnv = this.handler.canvas;
539
284
  return new Vec2(Math.round(cnv.clientWidth * 0.5), Math.round(cnv.clientHeight * 0.5));
540
285
  }
541
-
542
286
  /**
543
287
  * Add the given control to the renderer.
544
288
  * @param {Control} control - Control.
545
289
  */
546
- public addControl(control: Control) {
290
+ addControl(control) {
547
291
  control.addTo(this);
548
292
  }
549
-
550
293
  /**
551
294
  * Add the given controls array to the planet node.
552
295
  * @param {Array.<Control>} cArr - Control array.
553
296
  */
554
- public addControls(cArr: Control[]) {
297
+ addControls(cArr) {
555
298
  for (let i = 0; i < cArr.length; i++) {
556
299
  cArr[i].addTo(this);
557
300
  }
558
301
  }
559
-
560
302
  /**
561
303
  * Remove control from the renderer.
562
304
  * @param {Control} control - Control.
563
305
  */
564
- public removeControl(control: Control) {
306
+ removeControl(control) {
565
307
  control.remove();
566
308
  }
567
-
568
- public isInitialized(): boolean {
309
+ isInitialized() {
569
310
  return this._initialized;
570
311
  }
571
-
572
312
  /**
573
313
  * Renderer initialization.
574
314
  * @public
575
315
  */
576
- public initialize() {
577
-
316
+ initialize() {
578
317
  if (this._initialized) {
579
318
  return;
580
- } else {
319
+ }
320
+ else {
581
321
  this._initialized = true;
582
322
  }
583
-
584
323
  this.handler.initialize();
585
-
586
324
  this.billboardsTextureAtlas.assignHandler(this.handler);
587
325
  this.geoObjectsTextureAtlas.assignHandler(this.handler);
588
-
589
326
  this.fontAtlas.assignHandler(this.handler);
590
-
591
327
  this.handler.setFrameCallback(() => {
592
328
  this.draw();
593
329
  });
594
-
595
330
  this.activeCamera = new Camera(this, {
596
331
  eye: new Vec3(0, 0, 0), look: new Vec3(0, 0, -1), up: new Vec3(0, 1, 0)
597
332
  });
598
-
599
333
  this.events.initialize();
600
-
601
334
  // Bind console key
602
335
  this.events.on("charkeypress", input.KEY_APOSTROPHE, function () {
603
336
  cons.setVisibility(!cons.getVisibility());
604
337
  });
605
-
606
338
  this.handler.addProgram(screenFrame());
607
-
608
339
  this.pickingFramebuffer = new Framebuffer(this.handler, {
609
340
  width: 640, height: 480, depthComponent: "DEPTH_STENCIL", renderbufferTarget: "DEPTH_STENCIL_ATTACHMENT"
610
341
  });
611
342
  this.pickingFramebuffer.init();
612
-
613
343
  this._tempPickingPix_ = new Uint8Array(this.pickingFramebuffer.width * this.pickingFramebuffer.height * 4);
614
-
615
344
  this.distanceFramebuffer = new Framebuffer(this.handler, {
616
345
  width: 320, height: 240
617
346
  });
618
347
  this.distanceFramebuffer.init();
619
-
620
348
  this._tempDistancePix_ = new Uint8Array(this.distanceFramebuffer.width * this.distanceFramebuffer.height * 4);
621
-
622
349
  this.depthFramebuffer = new Framebuffer(this.handler, {
623
350
  size: 2,
624
351
  internalFormat: ["RGBA", "DEPTH_COMPONENT24"],
@@ -628,44 +355,35 @@ class Renderer {
628
355
  useDepth: false
629
356
  });
630
357
  this.depthFramebuffer.init();
631
-
632
358
  this.screenDepthFramebuffer = new Framebuffer(this.handler, {
633
359
  useDepth: false
634
360
  });
635
361
  this.screenDepthFramebuffer.init();
636
-
637
- if (this.handler.gl!.type === "webgl") {
362
+ if (this.handler.gl.type === "webgl") {
638
363
  this.sceneFramebuffer = new Framebuffer(this.handler);
639
364
  this.sceneFramebuffer.init();
640
-
641
365
  this._fnScreenFrame = this._screenFrameNoMSAA;
642
-
643
366
  this.screenTexture = {
644
- screen: this.sceneFramebuffer!.textures[0],
645
- picking: this.pickingFramebuffer!.textures[0],
646
- distance: this.distanceFramebuffer!.textures[0],
647
- depth: this.screenDepthFramebuffer!.textures[0]
367
+ screen: this.sceneFramebuffer.textures[0],
368
+ picking: this.pickingFramebuffer.textures[0],
369
+ distance: this.distanceFramebuffer.textures[0],
370
+ depth: this.screenDepthFramebuffer.textures[0]
648
371
  };
649
- } else {
372
+ }
373
+ else {
650
374
  let _maxMSAA = this.getMaxMSAA(this._internalFormat);
651
-
652
375
  if (this._msaa > _maxMSAA) {
653
376
  this._msaa = _maxMSAA;
654
377
  }
655
-
656
378
  this.handler.addPrograms([toneMapping()]);
657
-
658
379
  this.handler.addPrograms([depth()]);
659
-
660
380
  this.sceneFramebuffer = new Multisample(this.handler, {
661
381
  size: 1,
662
382
  msaa: this._msaa,
663
383
  internalFormat: this._internalFormat,
664
384
  filter: "LINEAR"
665
385
  });
666
-
667
386
  this.sceneFramebuffer.init();
668
-
669
387
  this.blitFramebuffer = new Framebuffer(this.handler, {
670
388
  size: 1,
671
389
  useDepth: false,
@@ -674,28 +392,21 @@ class Renderer {
674
392
  type: this._type,
675
393
  filter: "NEAREST"
676
394
  });
677
-
678
395
  this.blitFramebuffer.init();
679
-
680
396
  this.toneMappingFramebuffer = new Framebuffer(this.handler, {
681
397
  useDepth: false
682
398
  });
683
-
684
399
  this.toneMappingFramebuffer.init();
685
-
686
400
  this._fnScreenFrame = this._screenFrameMSAA;
687
-
688
401
  this.screenTexture = {
689
- screen: this.toneMappingFramebuffer!.textures[0],
690
- picking: this.pickingFramebuffer!.textures[0],
691
- distance: this.distanceFramebuffer!.textures[0],
692
- depth: this.screenDepthFramebuffer!.textures[0],
693
- frustum: this.depthFramebuffer!.textures[0]
402
+ screen: this.toneMappingFramebuffer.textures[0],
403
+ picking: this.pickingFramebuffer.textures[0],
404
+ distance: this.distanceFramebuffer.textures[0],
405
+ depth: this.screenDepthFramebuffer.textures[0],
406
+ frustum: this.depthFramebuffer.textures[0]
694
407
  };
695
408
  }
696
-
697
409
  this.handler.addProgram(pickingMask());
698
-
699
410
  this.handler.ONCANVASRESIZE = () => {
700
411
  this._resizeStart();
701
412
  this.events.dispatch(this.events.resize, this.handler.canvas);
@@ -705,107 +416,89 @@ class Renderer {
705
416
  this.events.dispatch(this.events.resizeend, this.handler.canvas);
706
417
  }, 320);
707
418
  };
708
-
709
419
  this.screenFramePositionBuffer = this.handler.createArrayBuffer(new Float32Array([1, 1, -1, 1, 1, -1, -1, -1]), 2, 4);
710
-
711
-
712
420
  this.outputTexture = this.screenTexture.screen;
713
-
714
421
  this._pickingMaskCoordinatesBuffer = this.handler.createArrayBuffer(new Float32Array([0, 0]), 2, 1);
715
-
716
422
  this._initializeRenderNodes();
717
-
718
423
  this._initializeControls();
719
424
  }
720
-
721
- public _initializeControls() {
425
+ _initializeControls() {
722
426
  let temp = this.controls;
723
427
  this.controls = {};
724
428
  for (let i in temp) {
725
429
  this.addControl(temp[i]);
726
430
  }
727
431
  }
728
-
729
- public resize() {
432
+ resize() {
730
433
  this._resizeEnd();
731
434
  }
732
-
733
- public setCurrentScreen(screenName: string) {
435
+ setCurrentScreen(screenName) {
734
436
  this._currentOutput = screenName;
735
437
  if (this.screenTexture[screenName]) {
736
438
  this.outputTexture = this.screenTexture[screenName];
737
439
  }
738
440
  }
739
-
740
- public _resizeStart() {
741
- let c = this.handler.canvas!;
742
-
743
- this.activeCamera!.setAspectRatio(c.width / c.height);
744
- this.sceneFramebuffer!.setSize(c.width * 0.5, c.height * 0.5);
441
+ _resizeStart() {
442
+ let c = this.handler.canvas;
443
+ this.activeCamera.setAspectRatio(c.width / c.height);
444
+ this.sceneFramebuffer.setSize(c.width * 0.5, c.height * 0.5);
745
445
  this.blitFramebuffer && this.blitFramebuffer.setSize(c.width * 0.5, c.height * 0.5, true);
746
446
  }
747
-
748
- public _resizeEnd() {
749
- let c = this.handler.canvas!;
750
-
751
- this.activeCamera!.setAspectRatio(c.width / c.height);
752
- this.sceneFramebuffer!.setSize(c.width, c.height);
447
+ _resizeEnd() {
448
+ let c = this.handler.canvas;
449
+ this.activeCamera.setAspectRatio(c.width / c.height);
450
+ this.sceneFramebuffer.setSize(c.width, c.height);
753
451
  this.blitFramebuffer && this.blitFramebuffer.setSize(c.width, c.height, true);
754
-
755
452
  this.toneMappingFramebuffer && this.toneMappingFramebuffer.setSize(c.width, c.height, true);
756
453
  this.depthFramebuffer && this.depthFramebuffer.setSize(c.clientWidth, c.clientHeight, true);
757
454
  this.screenDepthFramebuffer && this.screenDepthFramebuffer.setSize(c.clientWidth, c.clientHeight, true);
758
-
759
- if (this.handler.gl!.type === "webgl") {
760
- this.screenTexture.screen = (this.sceneFramebuffer as Framebuffer)!.textures[0];
761
- this.screenTexture.picking = this.pickingFramebuffer!.textures[0];
762
- this.screenTexture.distance = this.distanceFramebuffer!.textures[0];
763
- this.screenTexture.depth = this.screenDepthFramebuffer!.textures[0];
764
- this.screenTexture.frustum = this.depthFramebuffer!.textures[0];
765
- } else {
766
- this.screenTexture.screen = this.toneMappingFramebuffer!.textures[0];
767
- this.screenTexture.picking = this.pickingFramebuffer!.textures[0];
768
- this.screenTexture.distance = this.distanceFramebuffer!.textures[0];
769
- this.screenTexture.depth = this.screenDepthFramebuffer!.textures[0];
770
- this.screenTexture.frustum = this.depthFramebuffer!.textures[0];
455
+ if (this.handler.gl.type === "webgl") {
456
+ this.screenTexture.screen = this.sceneFramebuffer.textures[0];
457
+ this.screenTexture.picking = this.pickingFramebuffer.textures[0];
458
+ this.screenTexture.distance = this.distanceFramebuffer.textures[0];
459
+ this.screenTexture.depth = this.screenDepthFramebuffer.textures[0];
460
+ this.screenTexture.frustum = this.depthFramebuffer.textures[0];
461
+ }
462
+ else {
463
+ this.screenTexture.screen = this.toneMappingFramebuffer.textures[0];
464
+ this.screenTexture.picking = this.pickingFramebuffer.textures[0];
465
+ this.screenTexture.distance = this.distanceFramebuffer.textures[0];
466
+ this.screenTexture.depth = this.screenDepthFramebuffer.textures[0];
467
+ this.screenTexture.frustum = this.depthFramebuffer.textures[0];
771
468
  }
772
-
773
469
  this.setCurrentScreen(this._currentOutput);
774
470
  }
775
-
776
- public removeNode(renderNode: RenderNode) {
471
+ removeNode(renderNode) {
777
472
  // TODO: replace from RenderNode to this method
778
473
  renderNode.remove();
779
474
  }
780
-
781
475
  /**
782
476
  * Adds render node to the renderer.
783
477
  * @public
784
478
  * @param {RenderNode} renderNode - Render node.
785
479
  */
786
- public addNode(renderNode: RenderNode) {
480
+ addNode(renderNode) {
787
481
  if (!this.renderNodes[renderNode.name]) {
788
482
  renderNode.assign(this);
789
483
  this._renderNodesArr.unshift(renderNode);
790
484
  this.renderNodes[renderNode.name] = renderNode;
791
- } else {
485
+ }
486
+ else {
792
487
  cons.logWrn(`Node name ${renderNode.name} already exists.`);
793
488
  }
794
489
  }
795
-
796
- protected _initializeRenderNodes() {
490
+ _initializeRenderNodes() {
797
491
  for (let i = 0; i < this._renderNodesArr.length; i++) {
798
492
  this._renderNodesArr[i].initialize();
799
493
  }
800
494
  }
801
-
802
495
  /**
803
496
  * Adds render node to the renderer before specific node.
804
497
  * @public
805
498
  * @param {RenderNode} renderNode - Render node.
806
499
  * @param {RenderNode} renderNodeBefore - Insert before the renderNodeBefore node.
807
500
  */
808
- public addNodeBefore(renderNode: RenderNode, renderNodeBefore: RenderNode) {
501
+ addNodeBefore(renderNode, renderNodeBefore) {
809
502
  if (!this.renderNodes[renderNode.name]) {
810
503
  renderNode.assign(this);
811
504
  this.renderNodes[renderNode.name] = renderNode;
@@ -816,50 +509,43 @@ class Renderer {
816
509
  }
817
510
  }
818
511
  this._renderNodesArr.unshift(renderNode);
819
- } else {
512
+ }
513
+ else {
820
514
  cons.logWrn(`Node name ${renderNode.name} already exists.`);
821
515
  }
822
516
  }
823
-
824
517
  /**
825
518
  * Adds render nodes array to the renderer.
826
519
  * @public
827
520
  * @param {Array.<RenderNode>} nodesArr - Render nodes array.
828
521
  */
829
- public addNodes(nodesArr: RenderNode[]) {
522
+ addNodes(nodesArr) {
830
523
  for (let i = 0; i < nodesArr.length; i++) {
831
524
  this.addNode(nodesArr[i]);
832
525
  }
833
526
  }
834
-
835
- public getMaxMSAA(internalFormat: string) {
836
- let gl = this.handler.gl!;
837
- let samples = gl.getInternalformatParameter(gl.RENDERBUFFER, (gl as any)[internalFormat], gl.SAMPLES);
527
+ getMaxMSAA(internalFormat) {
528
+ let gl = this.handler.gl;
529
+ let samples = gl.getInternalformatParameter(gl.RENDERBUFFER, gl[internalFormat], gl.SAMPLES);
838
530
  return samples[0];
839
531
  }
840
-
841
- public getMSAA(): number {
532
+ getMSAA() {
842
533
  return this._msaa;
843
534
  }
844
-
845
535
  /**
846
536
  * TODO: replace with cache friendly linked list by BillboardHandler, LabelHandler etc.
847
537
  */
848
- public enqueueEntityCollectionsToDraw(ecArr: EntityCollection[]) {
538
+ enqueueEntityCollectionsToDraw(ecArr) {
849
539
  this._entityCollections.push.apply(this._entityCollections, ecArr);
850
540
  }
851
-
852
541
  /**
853
542
  * Draws opaque items entity collections.
854
543
  * @protected
855
544
  */
856
- protected _drawOpaqueEntityCollections() {
545
+ _drawOpaqueEntityCollections() {
857
546
  let ec = this._entityCollections;
858
-
859
547
  if (ec.length) {
860
-
861
548
  this.enableBlendDefault();
862
-
863
549
  //geoObject
864
550
  let i = ec.length;
865
551
  while (i--) {
@@ -869,7 +555,6 @@ class Renderer {
869
555
  ec[i].geoObjectHandler.draw();
870
556
  }
871
557
  }
872
-
873
558
  // pointClouds pass
874
559
  i = ec.length;
875
560
  while (i--) {
@@ -877,54 +562,43 @@ class Renderer {
877
562
  }
878
563
  }
879
564
  }
880
-
881
-
882
565
  /**
883
566
  * Draws transparent items entity collections.
884
567
  * @protected
885
568
  */
886
- protected _drawTransparentEntityCollections() {
569
+ _drawTransparentEntityCollections() {
887
570
  let ec = this._entityCollections;
888
-
889
571
  if (ec.length) {
890
- let gl = this.handler.gl!;
891
-
572
+ let gl = this.handler.gl;
892
573
  this.enableBlendDefault();
893
-
894
574
  // billboards pass
895
575
  gl.activeTexture(gl.TEXTURE0);
896
576
  gl.bindTexture(gl.TEXTURE_2D, this.billboardsTextureAtlas.texture);
897
-
898
577
  let i = ec.length;
899
578
  while (i--) {
900
579
  let eci = ec[i];
901
580
  eci._fadingOpacity && eci.billboardHandler.draw();
902
581
  }
903
-
904
582
  // labels pass
905
583
  let fa = this.fontAtlas.atlasesArr;
906
584
  for (i = 0; i < fa.length; i++) {
907
585
  gl.activeTexture(gl.TEXTURE0 + i);
908
586
  gl.bindTexture(gl.TEXTURE_2D, fa[i].texture);
909
587
  }
910
-
911
588
  i = ec.length;
912
589
  while (i--) {
913
590
  ec[i]._fadingOpacity && ec[i].labelHandler.draw();
914
591
  }
915
-
916
592
  // rays
917
593
  i = ec.length;
918
594
  while (i--) {
919
595
  ec[i]._fadingOpacity && ec[i].rayHandler.draw();
920
596
  }
921
-
922
597
  // polyline pass
923
598
  i = ec.length;
924
599
  while (i--) {
925
600
  ec[i]._fadingOpacity && ec[i].polylineHandler.draw();
926
601
  }
927
-
928
602
  // Strip pass
929
603
  i = ec.length;
930
604
  while (i--) {
@@ -932,71 +606,51 @@ class Renderer {
932
606
  }
933
607
  }
934
608
  }
935
-
936
- protected _clearEntityCollectionQueue() {
609
+ _clearEntityCollectionQueue() {
937
610
  this._entityCollections.length = 0;
938
611
  this._entityCollections = [];
939
612
  }
940
-
941
613
  /**
942
614
  * Draw nodes.
943
615
  * @public
944
616
  */
945
- public draw() {
946
- this.activeCamera!.checkMoveEnd();
947
-
617
+ draw() {
618
+ this.activeCamera.checkMoveEnd();
948
619
  let e = this.events;
949
620
  e.handleEvents();
950
-
951
- let sceneFramebuffer = this.sceneFramebuffer!;
621
+ let sceneFramebuffer = this.sceneFramebuffer;
952
622
  sceneFramebuffer.activate();
953
-
954
- let h = this.handler,
955
- gl = h.gl!;
956
-
623
+ let h = this.handler, gl = h.gl;
957
624
  gl.clearColor(0.0, 0.0, 0.0, 1.0);
958
625
  gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
959
-
960
626
  e.dispatch(e.draw, this);
961
-
962
- let frustums = this.activeCamera!.frustums;
963
-
964
- let pointerEvent = e.pointerEvent() || this.activeCamera!.isMoving;
965
-
627
+ let frustums = this.activeCamera.frustums;
628
+ let pointerEvent = e.pointerEvent() || this.activeCamera.isMoving;
966
629
  // Rendering scene nodes and entityCollections
967
630
  let rn = this._renderNodesArr;
968
631
  let k = frustums.length;
969
-
970
632
  while (k--) {
971
- this.activeCamera!.setCurrentFrustum(k);
633
+ this.activeCamera.setCurrentFrustum(k);
972
634
  gl.clear(gl.DEPTH_BUFFER_BIT);
973
-
974
635
  let i = rn.length;
975
636
  while (i--) {
976
637
  rn[i].preDrawNode();
977
638
  }
978
-
979
639
  this._drawOpaqueEntityCollections();
980
-
981
640
  i = rn.length;
982
641
  while (i--) {
983
642
  this.enableBlendDefault();
984
643
  rn[i].drawNode();
985
644
  }
986
-
987
645
  this._drawTransparentEntityCollections();
988
646
  this._clearEntityCollectionQueue();
989
-
990
647
  if (pointerEvent) {
991
648
  this._drawPickingBuffer();
992
649
  this.__useDistanceFramebuffer__ && this._drawDistanceBuffer();
993
650
  }
994
651
  }
995
-
996
652
  sceneFramebuffer.deactivate();
997
-
998
- this.blitFramebuffer && (sceneFramebuffer as Multisample).blitTo(this.blitFramebuffer, 0);
999
-
653
+ this.blitFramebuffer && sceneFramebuffer.blitTo(this.blitFramebuffer, 0);
1000
654
  if (pointerEvent) {
1001
655
  // It works ONLY for 0 (closest) frustum
1002
656
  if (h.isWebGl2()) {
@@ -1005,46 +659,31 @@ class Renderer {
1005
659
  this._readPickingBuffer();
1006
660
  this.__useDistanceFramebuffer__ && this._readDistanceBuffer();
1007
661
  }
1008
-
1009
662
  // Tone mapping followed by rendering on the screen
1010
- this._fnScreenFrame!();
1011
-
663
+ this._fnScreenFrame();
1012
664
  e.dispatch(e.postdraw, this);
1013
-
1014
665
  e.mouseState.wheelDelta = 0;
1015
666
  e.mouseState.justStopped = false;
1016
667
  e.mouseState.moving = false;
1017
668
  e.touchState.moving = false;
1018
669
  }
1019
-
1020
- protected _screenFrameMSAA() {
670
+ _screenFrameMSAA() {
1021
671
  let h = this.handler;
1022
-
1023
- let sh = h.programs.toneMapping,
1024
- p = sh._program,
1025
- gl = h.gl!;
1026
-
672
+ let sh = h.programs.toneMapping, p = sh._program, gl = h.gl;
1027
673
  gl.disable(gl.DEPTH_TEST);
1028
-
1029
- gl.bindBuffer(gl.ARRAY_BUFFER, this.screenFramePositionBuffer as WebGLBuffer);
674
+ gl.bindBuffer(gl.ARRAY_BUFFER, this.screenFramePositionBuffer);
1030
675
  gl.vertexAttribPointer(p.attributes.corners, 2, gl.FLOAT, false, 0, 0);
1031
-
1032
- this.toneMappingFramebuffer!.activate();
1033
-
676
+ this.toneMappingFramebuffer.activate();
1034
677
  sh.activate();
1035
-
1036
678
  // screen texture
1037
679
  gl.activeTexture(gl.TEXTURE0);
1038
- gl.bindTexture(gl.TEXTURE_2D, this.blitFramebuffer!.textures[0]);
680
+ gl.bindTexture(gl.TEXTURE_2D, this.blitFramebuffer.textures[0]);
1039
681
  gl.uniform1i(p.uniforms.hdrBuffer, 0);
1040
-
1041
682
  gl.uniform1f(p.uniforms.gamma, this.gamma);
1042
683
  gl.uniform1f(p.uniforms.exposure, this.exposure);
1043
684
  gl.uniform1f(p.uniforms.whitepoint, this.whitepoint);
1044
685
  gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
1045
-
1046
- this.toneMappingFramebuffer!.deactivate();
1047
-
686
+ this.toneMappingFramebuffer.deactivate();
1048
687
  // SCREEN PASS
1049
688
  sh = h.programs.screenFrame;
1050
689
  p = sh._program;
@@ -1053,79 +692,60 @@ class Renderer {
1053
692
  gl.bindTexture(gl.TEXTURE_2D, this.outputTexture);
1054
693
  gl.uniform1i(p.uniforms.texture, 0);
1055
694
  gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
1056
-
1057
695
  gl.enable(gl.DEPTH_TEST);
1058
696
  }
1059
-
1060
- protected _screenFrameNoMSAA() {
1061
-
697
+ _screenFrameNoMSAA() {
1062
698
  let h = this.handler;
1063
- let sh = h.programs.screenFrame,
1064
- p = sh._program,
1065
- gl = h.gl!;
1066
-
699
+ let sh = h.programs.screenFrame, p = sh._program, gl = h.gl;
1067
700
  gl.disable(gl.DEPTH_TEST);
1068
701
  sh.activate();
1069
702
  gl.activeTexture(gl.TEXTURE0);
1070
703
  gl.bindTexture(gl.TEXTURE_2D, this.outputTexture);
1071
704
  gl.uniform1i(p.uniforms.texture, 0);
1072
- gl.bindBuffer(gl.ARRAY_BUFFER, this.screenFramePositionBuffer as WebGLBuffer);
705
+ gl.bindBuffer(gl.ARRAY_BUFFER, this.screenFramePositionBuffer);
1073
706
  gl.vertexAttribPointer(p.attributes.corners, 2, gl.FLOAT, false, 0, 0);
1074
707
  gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
1075
708
  gl.enable(gl.DEPTH_TEST);
1076
709
  }
1077
-
1078
710
  /**
1079
711
  * Draw picking objects framebuffer.
1080
712
  * @private
1081
713
  */
1082
- protected _drawPickingBuffer() {
1083
- this.pickingFramebuffer!.activate();
1084
-
714
+ _drawPickingBuffer() {
715
+ this.pickingFramebuffer.activate();
1085
716
  let h = this.handler;
1086
- let gl = h.gl!;
1087
-
1088
- if (this.activeCamera!.isFirstPass) {
717
+ let gl = h.gl;
718
+ if (this.activeCamera.isFirstPass) {
1089
719
  gl.clearColor(0.0, 0.0, 0.0, 1.0);
1090
720
  gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT | gl.STENCIL_BUFFER_BIT);
1091
- } else {
721
+ }
722
+ else {
1092
723
  gl.clear(gl.DEPTH_BUFFER_BIT | gl.STENCIL_BUFFER_BIT);
1093
724
  }
1094
-
1095
725
  //
1096
726
  // draw picking mask
1097
727
  //
1098
728
  h.programs.pickingMask.activate();
1099
729
  let sh = h.programs.pickingMask._program;
1100
730
  let shu = sh.uniforms, sha = sh.attributes;
1101
-
1102
- let /*ts = this.events.touchState,*/
1103
- ms = this.events.mouseState;
1104
-
731
+ let /*ts = this.events.touchState,*/ ms = this.events.mouseState;
1105
732
  gl.disable(gl.DEPTH_TEST);
1106
-
1107
733
  gl.enable(gl.STENCIL_TEST);
1108
734
  gl.colorMask(false, false, false, false);
1109
735
  gl.stencilFunc(gl.ALWAYS, 2, 0xFF);
1110
736
  gl.stencilOp(gl.REPLACE, gl.ZERO, gl.REPLACE);
1111
-
1112
737
  gl.uniform2f(shu.offset, (ms.nx - 0.5) * 2, (0.5 - ms.ny) * 2);
1113
-
1114
- gl.bindBuffer(gl.ARRAY_BUFFER, this._pickingMaskCoordinatesBuffer as WebGLBuffer);
1115
- gl.vertexAttribPointer(sha.coordinates, this._pickingMaskCoordinatesBuffer!.itemSize, gl.FLOAT, false, 0, 0);
1116
- gl.drawArrays(gl.POINTS, 0, this._pickingMaskCoordinatesBuffer!.numItems);
1117
-
738
+ gl.bindBuffer(gl.ARRAY_BUFFER, this._pickingMaskCoordinatesBuffer);
739
+ gl.vertexAttribPointer(sha.coordinates, this._pickingMaskCoordinatesBuffer.itemSize, gl.FLOAT, false, 0, 0);
740
+ gl.drawArrays(gl.POINTS, 0, this._pickingMaskCoordinatesBuffer.numItems);
1118
741
  gl.enable(gl.DEPTH_TEST);
1119
-
1120
742
  //
1121
743
  // draw picking scenes
1122
744
  //
1123
745
  gl.colorMask(true, true, true, true);
1124
746
  gl.stencilFunc(gl.EQUAL, 2, 0xFF);
1125
747
  gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);
1126
-
1127
748
  gl.disable(gl.BLEND);
1128
-
1129
749
  let dp = this._pickingCallbacks;
1130
750
  for (let i = 0, len = dp.length; i < len; i++) {
1131
751
  /**
@@ -1134,33 +754,26 @@ class Renderer {
1134
754
  */
1135
755
  dp[i].callback.call(dp[i].sender);
1136
756
  }
1137
-
1138
757
  gl.enable(gl.BLEND);
1139
-
1140
758
  gl.disable(gl.STENCIL_TEST);
1141
-
1142
- this.pickingFramebuffer!.deactivate();
759
+ this.pickingFramebuffer.deactivate();
1143
760
  }
1144
-
1145
761
  /**
1146
762
  * Draw picking objects framebuffer.
1147
763
  * @private
1148
764
  */
1149
- protected _drawDistanceBuffer() {
1150
- this.distanceFramebuffer!.activate();
1151
-
765
+ _drawDistanceBuffer() {
766
+ this.distanceFramebuffer.activate();
1152
767
  let h = this.handler;
1153
- let gl = h.gl!;
1154
-
1155
- if (this.activeCamera!.isFirstPass) {
768
+ let gl = h.gl;
769
+ if (this.activeCamera.isFirstPass) {
1156
770
  gl.clearColor(0.0, 0.0, 0.0, 1.0);
1157
771
  gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
1158
- } else {
772
+ }
773
+ else {
1159
774
  gl.clear(gl.DEPTH_BUFFER_BIT);
1160
775
  }
1161
-
1162
776
  gl.disable(gl.BLEND);
1163
-
1164
777
  let dp = this._distanceCallbacks;
1165
778
  let i = dp.length;
1166
779
  while (i--) {
@@ -1170,23 +783,16 @@ class Renderer {
1170
783
  */
1171
784
  dp[i].callback.call(dp[i].sender);
1172
785
  }
1173
-
1174
786
  gl.enable(gl.BLEND);
1175
-
1176
- this.distanceFramebuffer!.deactivate();
787
+ this.distanceFramebuffer.deactivate();
1177
788
  }
1178
-
1179
- protected _drawDepthBuffer() {
1180
- this.depthFramebuffer!.activate();
1181
-
789
+ _drawDepthBuffer() {
790
+ this.depthFramebuffer.activate();
1182
791
  let h = this.handler;
1183
- let gl = h.gl!;
1184
-
792
+ let gl = h.gl;
1185
793
  gl.clearColor(0.0, 0.0, 0.0, 1.0);
1186
794
  gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
1187
-
1188
795
  gl.enable(gl.DEPTH_TEST);
1189
-
1190
796
  let dp = this._depthCallbacks;
1191
797
  let i = dp.length;
1192
798
  while (i--) {
@@ -1196,146 +802,98 @@ class Renderer {
1196
802
  */
1197
803
  dp[i].callback.call(dp[i].sender);
1198
804
  }
1199
-
1200
- this.depthFramebuffer!.deactivate();
1201
-
805
+ this.depthFramebuffer.deactivate();
1202
806
  //
1203
807
  // PASS to depth visualization
1204
- this.screenDepthFramebuffer!.activate();
808
+ this.screenDepthFramebuffer.activate();
1205
809
  let sh = h.programs.depth, p = sh._program;
1206
-
1207
-
1208
- gl.bindBuffer(gl.ARRAY_BUFFER, this.screenFramePositionBuffer as WebGLBuffer);
810
+ gl.bindBuffer(gl.ARRAY_BUFFER, this.screenFramePositionBuffer);
1209
811
  gl.vertexAttribPointer(p.attributes.corners, 2, gl.FLOAT, false, 0, 0);
1210
-
1211
812
  sh.activate();
1212
-
1213
813
  gl.activeTexture(gl.TEXTURE0);
1214
- gl.bindTexture(gl.TEXTURE_2D, this.depthFramebuffer!.textures[1]);
814
+ gl.bindTexture(gl.TEXTURE_2D, this.depthFramebuffer.textures[1]);
1215
815
  gl.uniform1i(p.uniforms.depthTexture, 0);
1216
-
1217
816
  gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
1218
-
1219
- this.screenDepthFramebuffer!.deactivate();
817
+ this.screenDepthFramebuffer.deactivate();
1220
818
  }
1221
-
1222
- protected _readPickingBuffer() {
1223
- this.pickingFramebuffer!.activate();
1224
- this.pickingFramebuffer!.readAllPixels(this._tempPickingPix_);
1225
- this.pickingFramebuffer!.deactivate();
819
+ _readPickingBuffer() {
820
+ this.pickingFramebuffer.activate();
821
+ this.pickingFramebuffer.readAllPixels(this._tempPickingPix_);
822
+ this.pickingFramebuffer.deactivate();
1226
823
  }
1227
-
1228
- protected _readDistanceBuffer() {
1229
- this.distanceFramebuffer!.activate();
1230
- this.distanceFramebuffer!.readAllPixels(this._tempDistancePix_);
1231
- this.distanceFramebuffer!.deactivate();
824
+ _readDistanceBuffer() {
825
+ this.distanceFramebuffer.activate();
826
+ this.distanceFramebuffer.readAllPixels(this._tempDistancePix_);
827
+ this.distanceFramebuffer.deactivate();
1232
828
  }
1233
-
1234
- public readPickingColor(x: number, y: number, outColor: NumberArray3 | Uint8Array) {
1235
- let w = this.pickingFramebuffer!.width;
1236
- let h = this.pickingFramebuffer!.height;
1237
-
829
+ readPickingColor(x, y, outColor) {
830
+ let w = this.pickingFramebuffer.width;
831
+ let h = this.pickingFramebuffer.height;
1238
832
  x = Math.round(x * w);
1239
833
  y = Math.round(y * h);
1240
-
1241
834
  let ind = (y * w + x) * 4;
1242
-
1243
835
  outColor[0] = this._tempPickingPix_[ind];
1244
836
  outColor[1] = this._tempPickingPix_[ind + 1];
1245
837
  outColor[2] = this._tempPickingPix_[ind + 2];
1246
838
  }
1247
-
1248
- public readDistanceColor(x: number, y: number, outColor: NumberArray3 | Uint8Array) {
1249
-
1250
- let w = this.distanceFramebuffer!.width;
1251
- let h = this.distanceFramebuffer!.height;
1252
-
839
+ readDistanceColor(x, y, outColor) {
840
+ let w = this.distanceFramebuffer.width;
841
+ let h = this.distanceFramebuffer.height;
1253
842
  x = Math.round(x * w);
1254
843
  y = Math.round(y * h);
1255
-
1256
844
  let ind = (y * w + x) * 4;
1257
-
1258
845
  outColor[0] = this._tempDistancePix_[ind];
1259
846
  outColor[1] = this._tempDistancePix_[ind + 1];
1260
847
  outColor[2] = this._tempDistancePix_[ind + 2];
1261
848
  }
1262
-
1263
849
  /**
1264
850
  * Function starts renderer
1265
851
  * @public
1266
852
  */
1267
- public start() {
853
+ start() {
1268
854
  if (!this._initialized) {
1269
855
  this.initialize();
1270
856
  }
1271
857
  this.handler.start();
1272
858
  }
1273
-
1274
- public destroy() {
859
+ destroy() {
1275
860
  for (let i in this.controls) {
1276
861
  this.controls[i].remove();
1277
862
  }
1278
-
1279
863
  for (let i = 0; i < this._renderNodesArr.length; i++) {
1280
864
  this._renderNodesArr[i].remove();
1281
865
  }
1282
-
1283
866
  this.div = null;
1284
-
1285
867
  this._renderNodesArr = [];
1286
-
1287
868
  this.renderNodes = {};
1288
-
1289
869
  this.activeCamera = null;
1290
-
1291
870
  this.controls = {};
1292
-
1293
871
  this.controlsBag = {};
1294
-
1295
872
  this.colorObjects.clear();
1296
-
1297
873
  // @ts-ignore
1298
874
  this.colorObjects = null;
1299
-
1300
875
  this._pickingCallbacks = [];
1301
-
1302
876
  this.pickingFramebuffer = null;
1303
-
1304
877
  //@ts-ignore
1305
878
  this._tempPickingPix_ = null;
1306
-
1307
879
  this.distanceFramebuffer = null;
1308
-
1309
880
  this._distanceCallbacks = [];
1310
-
1311
881
  //@ts-ignore
1312
882
  this._tempDistancePix_ = null;
1313
-
1314
883
  this._depthCallbacks = [];
1315
-
1316
884
  this.depthFramebuffer = null;
1317
-
1318
885
  this.sceneFramebuffer = null;
1319
-
1320
886
  this.blitFramebuffer = null;
1321
-
1322
887
  this.toneMappingFramebuffer = null;
1323
-
1324
888
  // todo
1325
889
  //this.billboardsTextureAtlas.clear();
1326
890
  //this.geoObjectsTextureAtlas.clear()
1327
891
  //this.fontAtlas.clear();
1328
-
1329
892
  this._entityCollections = [];
1330
-
1331
893
  this.handler.destroy();
1332
-
1333
894
  // @ts-ignore
1334
895
  this.handler = null;
1335
-
1336
896
  this._initialized = false;
1337
897
  }
1338
-
1339
898
  }
1340
-
1341
- export {Renderer};
899
+ export { Renderer };