@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,19 +1,7 @@
1
- import {cons} from "../cons";
2
- import {ProgramVariable, variableHandlers} from "./variableHandlers";
3
- import {types, typeStr} from "./types";
4
- import {WebGLBufferExt} from "./Handler";
5
-
6
- const itemTypes: string[] = ["BYTE", "SHORT", "UNSIGNED_BYTE", "UNSIGNED_SHORT", "FLOAT", "HALF_FLOAT"];
7
-
8
- type WebGLProgramExt = WebGLProgram & { [id: string]: WebGLUniformLocation };
9
-
10
- type ProgramMaterial = {
11
- attributes: Record<string, any>;
12
- uniforms: Record<string, any>,
13
- vertexShader: string;
14
- fragmentShader: string
15
- };
16
-
1
+ import { cons } from "../cons";
2
+ import { variableHandlers } from "./variableHandlers";
3
+ import { types, typeStr } from "./types";
4
+ const itemTypes = ["BYTE", "SHORT", "UNSIGNED_BYTE", "UNSIGNED_SHORT", "FLOAT", "HALF_FLOAT"];
17
5
  /**
18
6
  * Represents more comfortable using WebGL shader program.
19
7
  * @class
@@ -25,198 +13,104 @@ type ProgramMaterial = {
25
13
  * @param {string} material.fragmentShader - Fragment glsl code.
26
14
  */
27
15
  class Program {
28
- /**
29
- * Shader program name.
30
- * @public
31
- * @type {string}
32
- */
33
- public name: string;
34
-
35
- public attributes: { [id: string]: number };
36
-
37
- public uniforms: { [id: string]: WebGLUniformLocation };
38
-
39
- public _attributes: Record<string, ProgramVariable>;
40
-
41
- public _uniforms: Record<string, ProgramVariable>;
42
-
43
- public vertexShader: string;
44
-
45
- public fragmentShader: string;
46
-
47
- public drawElementsInstanced: Function | null;
48
- public vertexAttribDivisor: Function | null;
49
-
50
- /**
51
- * Webgl context.
52
- * @public
53
- * @type {WebGL2RenderingContext | null}
54
- */
55
- public gl: WebGL2RenderingContext | null;
56
-
57
- /**
58
- * All program variables.
59
- * @private
60
- * @type {Record<string, ProgramVariable>}
61
- */
62
- protected _variables: Record<string, ProgramVariable>;
63
-
64
- /**
65
- * Program pointer.
66
- * @private
67
- * @type {WebGLProgramExt | null}
68
- */
69
- public _p: WebGLProgramExt | null;
70
-
71
- /**
72
- * Texture counter.
73
- * @protected
74
- * @type {number}
75
- */
76
- public _textureID: number;
77
-
78
- /**
79
- * Program attributes array.
80
- * @private
81
- * @type {number[]}
82
- */
83
- protected _attribArrays: number[];
84
-
85
- /**
86
- * Program attributes divisors.
87
- * @protected
88
- * @type {number[]}
89
- */
90
- protected _attribDivisor: number[];
91
-
92
- constructor(name: string, material: ProgramMaterial) {
93
-
16
+ constructor(name, material) {
94
17
  this.name = name;
95
-
96
18
  this._attributes = {};
97
19
  for (let t in material.attributes) {
98
- if (
99
- typeof material.attributes[t] === "string" ||
100
- typeof material.attributes[t] === "number"
101
- ) {
102
- this._attributes[t] = {type: material.attributes[t]} as ProgramVariable;
103
- } else {
20
+ if (typeof material.attributes[t] === "string" ||
21
+ typeof material.attributes[t] === "number") {
22
+ this._attributes[t] = { type: material.attributes[t] };
23
+ }
24
+ else {
104
25
  this._attributes[t] = material.attributes[t];
105
26
  }
106
27
  }
107
-
108
28
  this._uniforms = {};
109
29
  for (let t in material.uniforms) {
110
- if (
111
- typeof material.uniforms[t] === "string" ||
112
- typeof material.uniforms[t] === "number"
113
- ) {
114
- this._uniforms[t] = {type: material.uniforms[t]} as ProgramVariable;
115
- } else {
30
+ if (typeof material.uniforms[t] === "string" ||
31
+ typeof material.uniforms[t] === "number") {
32
+ this._uniforms[t] = { type: material.uniforms[t] };
33
+ }
34
+ else {
116
35
  this._uniforms[t] = material.uniforms[t];
117
36
  }
118
37
  }
119
-
120
38
  this.vertexShader = material.vertexShader;
121
-
122
39
  this.fragmentShader = material.fragmentShader;
123
-
124
40
  this.gl = null;
125
-
126
41
  this._variables = {};
127
-
128
42
  this._p = null;
129
-
130
43
  this._textureID = 0;
131
-
132
44
  this._attribArrays = [];
133
-
134
45
  this._attribDivisor = [];
135
-
136
46
  this.attributes = {};
137
-
138
47
  this.uniforms = {};
139
-
140
48
  this.vertexAttribDivisor = null;
141
49
  this.drawElementsInstanced = null;
142
50
  }
143
-
144
51
  /**
145
52
  * Bind program buffer.
146
53
  * @function
147
54
  * @param {Program} program - Used program.
148
55
  * @param {Object} variable - Variable represents buffer data.
149
56
  */
150
- static bindBuffer(program: Program, variable: ProgramVariable) {
57
+ static bindBuffer(program, variable) {
151
58
  let gl = program.gl;
152
59
  if (gl) {
153
60
  gl.bindBuffer(gl.ARRAY_BUFFER, variable.value);
154
- gl.vertexAttribPointer(
155
- variable._pName as number,
156
- (variable.value as WebGLBufferExt).itemSize,
157
- variable.itemType as number,
158
- variable.normalized,
159
- 0,
160
- 0
161
- );
61
+ gl.vertexAttribPointer(variable._pName, variable.value.itemSize, variable.itemType, variable.normalized, 0, 0);
162
62
  }
163
63
  }
164
-
165
64
  /**
166
65
  * Sets the current program frame.
167
66
  * @public
168
67
  */
169
- public use() {
170
- this.gl && this.gl.useProgram(this._p!);
68
+ use() {
69
+ this.gl && this.gl.useProgram(this._p);
171
70
  }
172
-
173
71
  /**
174
72
  * Sets program variables.
175
73
  * @public
176
74
  * @param {Object} material - Variables and values object.
177
75
  */
178
- public set(material: Record<string, any>) {
76
+ set(material) {
179
77
  this._textureID = 0;
180
78
  for (let i in material) {
181
79
  this._variables[i].value = material[i];
182
80
  this._variables[i].func(this, this._variables[i]);
183
81
  }
184
82
  }
185
-
186
83
  /**
187
84
  * Apply current variables.
188
85
  * @public
189
86
  */
190
- public apply() {
87
+ apply() {
191
88
  this._textureID = 0;
192
89
  let v = this._variables;
193
90
  for (let i in v) {
194
91
  v[i].func(this, v[i]);
195
92
  }
196
93
  }
197
-
198
94
  /**
199
95
  * Calls drawElements index buffer function.
200
96
  * @public
201
97
  * @param {number} mode - Draw mode(GL_TRIANGLES, GL_LINESTRING etc.).
202
98
  * @param {Object} buffer - Index buffer.
203
99
  */
204
- public drawIndexBuffer(mode: number, buffer: WebGLBufferExt) {
205
- let gl = this.gl!;
100
+ drawIndexBuffer(mode, buffer) {
101
+ let gl = this.gl;
206
102
  gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffer);
207
103
  gl.drawElements(mode, buffer.numItems, gl.UNSIGNED_SHORT, 0);
208
104
  }
209
-
210
105
  /**
211
106
  * Calls drawArrays function.
212
107
  * @public
213
108
  * @param {number} mode - Draw mode GL_TRIANGLES, GL_LINESTRING, etc.
214
109
  * @param {number} numItems - Items to draw
215
110
  */
216
- public drawArrays(mode: number, numItems: number) {
217
- this.gl!.drawArrays(mode, 0, numItems);
111
+ drawArrays(mode, numItems) {
112
+ this.gl.drawArrays(mode, 0, numItems);
218
113
  }
219
-
220
114
  /**
221
115
  * Check and log for a shader compile errors and warnings. Returns True - if no errors otherwise returns False.
222
116
  * @private
@@ -224,118 +118,105 @@ class Program {
224
118
  * @param {string} src - Shader program source.
225
119
  * @returns {boolean} -
226
120
  */
227
- protected _getShaderCompileStatus(shader: WebGLShader, src: string): boolean {
228
-
229
- if (!this.gl) return false;
230
-
121
+ _getShaderCompileStatus(shader, src) {
122
+ if (!this.gl)
123
+ return false;
231
124
  this.gl.shaderSource(shader, src);
232
125
  this.gl.compileShader(shader);
233
126
  if (!this.gl.getShaderParameter(shader, this.gl.COMPILE_STATUS)) {
234
- cons.logErr(
235
- `Shader program "${this.name}":${this.gl.getShaderInfoLog(shader)}.`
236
- );
127
+ cons.logErr(`Shader program "${this.name}":${this.gl.getShaderInfoLog(shader)}.`);
237
128
  return false;
238
129
  }
239
130
  return true;
240
131
  }
241
-
242
132
  /**
243
133
  * Returns compiled vertex shader program pointer.
244
134
  * @private
245
135
  * @param {string} src - Vertex shader source code.
246
136
  * @returns {Object} -
247
137
  */
248
- protected _createVertexShader(src: string): WebGLShader | undefined {
249
- if (!this.gl) return;
138
+ _createVertexShader(src) {
139
+ if (!this.gl)
140
+ return;
250
141
  let shader = this.gl.createShader(this.gl.VERTEX_SHADER);
251
142
  if (shader && this._getShaderCompileStatus(shader, src)) {
252
143
  return shader;
253
144
  }
254
145
  }
255
-
256
146
  /**
257
147
  * Returns compiled fragment shader program pointer.
258
148
  * @private
259
149
  * @param {string} src - Vertex shader source code.
260
150
  * @returns {Object} -
261
151
  */
262
- protected _createFragmentShader(src: string): WebGLShader | undefined {
263
- if (!this.gl) return;
152
+ _createFragmentShader(src) {
153
+ if (!this.gl)
154
+ return;
264
155
  let shader = this.gl.createShader(this.gl.FRAGMENT_SHADER);
265
156
  if (shader && this._getShaderCompileStatus(shader, src)) {
266
157
  return shader;
267
158
  }
268
159
  }
269
-
270
160
  /**
271
161
  * Disable current program vertexAttribArrays.
272
162
  * @public
273
163
  */
274
- public disableAttribArrays() {
275
- let gl = this.gl!;
164
+ disableAttribArrays() {
165
+ let gl = this.gl;
276
166
  let a = this._attribArrays;
277
167
  for (let i = 0, len = a.length; i < len; i++) {
278
168
  gl.disableVertexAttribArray(a[i]);
279
- this.vertexAttribDivisor!(a[i], 0);
169
+ this.vertexAttribDivisor(a[i], 0);
280
170
  }
281
171
  }
282
-
283
172
  /**
284
173
  * Enable current program vertexAttribArrays.
285
174
  * @public
286
175
  */
287
- public enableAttribArrays() {
288
- let gl = this.gl!;
176
+ enableAttribArrays() {
177
+ let gl = this.gl;
289
178
  let a = this._attribArrays;
290
179
  let d = this._attribDivisor;
291
180
  for (let i = 0, len = a.length; i < len; i++) {
292
181
  gl.enableVertexAttribArray(a[i]);
293
- this.vertexAttribDivisor!(a[i], d[i]);
182
+ this.vertexAttribDivisor(a[i], d[i]);
294
183
  }
295
184
  }
296
-
297
185
  // public vertexAttribDivisor(index: number, divisor: number) {
298
186
  // const gl = this.gl!;
299
187
  // gl.vertexAttribDivisor ?
300
188
  // gl.vertexAttribDivisor(index, divisor) :
301
189
  // gl.getExtension('ANGLE_instanced_arrays').vertexAttribDivisorANGLE(index, divisor);
302
190
  // }
303
-
304
191
  /**
305
192
  * Delete program.
306
193
  * @public
307
194
  */
308
- public delete() {
309
- this.gl && this.gl.deleteProgram(this._p!);
195
+ delete() {
196
+ this.gl && this.gl.deleteProgram(this._p);
310
197
  }
311
-
312
198
  /**
313
199
  * Creates program.
314
200
  * @public
315
201
  * @param {Object} gl - WebGl context.
316
202
  */
317
- public createProgram(gl: WebGL2RenderingContext) {
203
+ createProgram(gl) {
318
204
  this.gl = gl;
319
-
320
- this._p = this.gl.createProgram() as WebGLProgramExt;
321
-
322
- if (!this._p) return;
323
-
205
+ this._p = this.gl.createProgram();
206
+ if (!this._p)
207
+ return;
324
208
  let fs = this._createFragmentShader(this.fragmentShader);
325
209
  let vs = this._createVertexShader(this.vertexShader);
326
-
327
- if (!fs || !vs) return;
328
-
210
+ if (!fs || !vs)
211
+ return;
329
212
  gl.attachShader(this._p, fs);
330
213
  gl.attachShader(this._p, vs);
331
-
332
214
  gl.linkProgram(this._p);
333
-
334
-
335
215
  if (!this.drawElementsInstanced) {
336
216
  if (gl.drawElementsInstanced) {
337
217
  this.drawElementsInstanced = gl.drawElementsInstanced.bind(gl);
338
- } else {
218
+ }
219
+ else {
339
220
  let ext = gl.getExtension('ANGLE_instanced_arrays');
340
221
  if (ext) {
341
222
  this.drawElementsInstanced = ext.drawElementsInstancedANGLE.bind(ext);
@@ -346,11 +227,11 @@ class Program {
346
227
  // gl.drawElementsInstanced.bind(gl) :
347
228
  // gl.getExtension('ANGLE_instanced_arrays').drawElementsInstancedANGLE.bind(gl.getExtension('ANGLE_instanced_arrays'));
348
229
  }
349
-
350
230
  if (!this.vertexAttribDivisor) {
351
231
  if (gl.vertexAttribDivisor) {
352
232
  this.vertexAttribDivisor = gl.vertexAttribDivisor.bind(gl);
353
- } else {
233
+ }
234
+ else {
354
235
  let ext = gl.getExtension('ANGLE_instanced_arrays');
355
236
  if (ext) {
356
237
  this.vertexAttribDivisor = ext.vertexAttribDivisorANGLE.bind(ext);
@@ -361,91 +242,73 @@ class Program {
361
242
  // gl.vertexAttribDivisor.bind(gl) :
362
243
  // gl.getExtension('ANGLE_instanced_arrays').vertexAttribDivisorANGLE.bind(gl.getExtension('ANGLE_instanced_arrays'));
363
244
  }
364
-
365
-
366
245
  if (!gl.getProgramParameter(this._p, gl.LINK_STATUS)) {
367
246
  cons.logErr(`Shader program "${this.name}": initialization failed. ${gl.getProgramInfoLog(this._p)}.`);
368
247
  gl.deleteProgram(this._p);
369
248
  return;
370
249
  }
371
-
372
250
  this.use();
373
-
374
251
  for (let a in this._attributes) {
375
252
  //this.attributes[a]._name = a;
376
253
  this._variables[a] = this._attributes[a];
377
254
  this._attributes[a].func = Program.bindBuffer;
378
-
379
- let t = this._attributes[a].itemType as string;
380
- let itemTypeStr: string = t ? t.trim().toUpperCase() : "FLOAT";
381
-
255
+ let t = this._attributes[a].itemType;
256
+ let itemTypeStr = t ? t.trim().toUpperCase() : "FLOAT";
382
257
  if (itemTypes.indexOf(itemTypeStr) == -1) {
383
258
  cons.logErr(`Shader program "${this.name}": attribute '${a}', item type '${this._attributes[a].itemType}' not exists.`);
384
259
  this._attributes[a].itemType = gl.FLOAT;
385
- } else {
386
- this._attributes[a].itemType = (gl as any)[itemTypeStr];
387
260
  }
388
-
261
+ else {
262
+ this._attributes[a].itemType = gl[itemTypeStr];
263
+ }
389
264
  this._attributes[a].normalized = this._attributes[a].normalized || false;
390
265
  this._attributes[a].divisor = this._attributes[a].divisor || 0;
391
-
392
266
  this._p[a] = gl.getAttribLocation(this._p, a);
393
-
394
267
  if (this._p[a] == undefined) {
395
268
  cons.logErr(`Shader program "${this.name}": attribute '${a}' not exists.`);
396
269
  gl.deleteProgram(this._p);
397
270
  return;
398
271
  }
399
-
400
- let type: string | number = this._attributes[a].type;
272
+ let type = this._attributes[a].type;
401
273
  if (typeof type === "string") {
402
274
  type = typeStr[type.trim().toLowerCase()];
403
275
  }
404
-
405
276
  let d = this._attributes[a].divisor;
406
277
  if (type === types.MAT4) {
407
- let loc = this._p[a] as number;
278
+ let loc = this._p[a];
408
279
  this._attribArrays.push(loc, loc + 1, loc + 2, loc + 3);
409
280
  this._attribDivisor.push(d, d, d, d);
410
- } else {
411
- this._attribArrays.push(this._p[a] as number);
281
+ }
282
+ else {
283
+ this._attribArrays.push(this._p[a]);
412
284
  this._attribDivisor.push(d);
413
285
  }
414
-
415
- gl.enableVertexAttribArray(this._p[a] as number);
416
-
286
+ gl.enableVertexAttribArray(this._p[a]);
417
287
  this._attributes[a]._pName = this._p[a];
418
- this.attributes[a] = this._p[a] as number;
288
+ this.attributes[a] = this._p[a];
419
289
  }
420
-
421
290
  for (let u in this._uniforms) {
422
-
423
291
  if (typeof this._uniforms[u].type === "string") {
424
- let t: string = this._uniforms[u].type as string;
292
+ let t = this._uniforms[u].type;
425
293
  this._uniforms[u].func = variableHandlers.u[typeStr[t.trim().toLowerCase()]];
426
- } else {
427
- this._uniforms[u].func = variableHandlers.u[this._uniforms[u].type as number];
428
294
  }
429
-
295
+ else {
296
+ this._uniforms[u].func = variableHandlers.u[this._uniforms[u].type];
297
+ }
430
298
  this._variables[u] = this._uniforms[u];
431
- this._p[u] = gl.getUniformLocation(this._p, u)!;
432
-
299
+ this._p[u] = gl.getUniformLocation(this._p, u);
433
300
  if (this._p[u] == undefined) {
434
301
  cons.logErr(`Shader program "${this.name}": uniform '${u}' not exists.`);
435
302
  gl.deleteProgram(this._p);
436
303
  return;
437
304
  }
438
-
439
305
  this._uniforms[u]._pName = this._p[u];
440
306
  this.uniforms[u] = this._p[u];
441
307
  }
442
-
443
- gl.detachShader(this._p as WebGLProgram, fs);
444
- gl.detachShader(this._p as WebGLProgram, vs);
445
-
308
+ gl.detachShader(this._p, fs);
309
+ gl.detachShader(this._p, vs);
446
310
  gl.deleteShader(fs);
447
311
  gl.deleteShader(vs);
448
312
  }
449
313
  }
450
-
451
- export {Program};
314
+ export { Program };
@@ -0,0 +1,86 @@
1
+ import { Handler, WebGLBufferExt } from "./Handler";
2
+ import { Program } from "./Program";
3
+ /**
4
+ * This is shader program controller that used by handler object to access the shader
5
+ * program capabilities, like switching program during the rendering.
6
+ * Get access to the program from ...handler.programs.<program name> etc.
7
+ * @class
8
+ * @param {Handler} handler - Handler.
9
+ * @param {Program} program - Shader program.
10
+ */
11
+ export declare class ProgramController {
12
+ /**
13
+ * Handler.
14
+ * @protected
15
+ * @type {Handler}
16
+ */
17
+ protected _handler: Handler;
18
+ /**
19
+ * Shader program.
20
+ * @public
21
+ * @type {Program}
22
+ */
23
+ _program: Program;
24
+ /**
25
+ * Program current frame activation flag.
26
+ * @public
27
+ * @type {boolean}
28
+ */
29
+ _activated: boolean;
30
+ constructor(handler: Handler, program: Program);
31
+ /**
32
+ * Lazy create program call.
33
+ * @public
34
+ */
35
+ initialize(): void;
36
+ /**
37
+ * Returns controller's shader program.
38
+ * @public
39
+ * @return {Program} -
40
+ */
41
+ getProgram(): Program;
42
+ /**
43
+ * Activates current shader program.
44
+ * @public
45
+ * @returns {ProgramController} -
46
+ */
47
+ activate(): this;
48
+ /**
49
+ * Remove program from handler
50
+ * @public
51
+ */
52
+ remove(): void;
53
+ /**
54
+ * Deactivate shader program. This is not necessary while activate function used.
55
+ * @public
56
+ */
57
+ deactivate(): void;
58
+ /**
59
+ * Returns program activity.
60
+ * @public
61
+ * @return {boolean} -
62
+ */
63
+ isActive(): boolean;
64
+ /**
65
+ * Sets program uniforms and attributes values and return controller instance.
66
+ * @public
67
+ * @param {Record<string, any>} params - Object with variable name and value like { value: 12, someArray:[1,2,3], uSampler: texture,... }
68
+ * @return {ProgramController} -
69
+ */
70
+ set(params: Record<string, any>): this;
71
+ /**
72
+ * Draw index buffer with this program.
73
+ * @public
74
+ * @param {number} mode - Gl draw mode
75
+ * @param {WebGLBuffer} buffer - Buffer to draw.
76
+ * @return {ProgramController} Returns current shader controller instance.
77
+ */
78
+ drawIndexBuffer(mode: number, buffer: WebGLBufferExt): ProgramController;
79
+ /**
80
+ * Calls Gl drawArray function.
81
+ * @param {number} mode - Gl draw mode.
82
+ * @param {number} numItems - draw items count.
83
+ * @return {ProgramController} Returns current shader controller instance.
84
+ */
85
+ drawArrays(mode: number, numItems: number): ProgramController;
86
+ }