@itwin/core-frontend 5.0.0-dev.40 → 5.0.0-dev.49

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 (566) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/lib/cjs/AccuDraw.d.ts +21 -3
  3. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  4. package/lib/cjs/AccuDraw.js +174 -56
  5. package/lib/cjs/AccuDraw.js.map +1 -1
  6. package/lib/cjs/BriefcaseConnection.js +1 -1
  7. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  8. package/lib/cjs/BriefcaseTxns.d.ts +1 -1
  9. package/lib/cjs/BriefcaseTxns.d.ts.map +1 -1
  10. package/lib/cjs/BriefcaseTxns.js +1 -1
  11. package/lib/cjs/BriefcaseTxns.js.map +1 -1
  12. package/lib/cjs/DrawingViewState.js +2 -2
  13. package/lib/cjs/DrawingViewState.js.map +1 -1
  14. package/lib/cjs/EnvironmentDecorations.d.ts +1 -1
  15. package/lib/cjs/EnvironmentDecorations.d.ts.map +1 -1
  16. package/lib/cjs/EnvironmentDecorations.js +1 -1
  17. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  18. package/lib/cjs/GraphicalEditingScope.d.ts +3 -1
  19. package/lib/cjs/GraphicalEditingScope.d.ts.map +1 -1
  20. package/lib/cjs/GraphicalEditingScope.js +7 -3
  21. package/lib/cjs/GraphicalEditingScope.js.map +1 -1
  22. package/lib/cjs/IModelApp.d.ts +0 -5
  23. package/lib/cjs/IModelApp.d.ts.map +1 -1
  24. package/lib/cjs/IModelApp.js +0 -5
  25. package/lib/cjs/IModelApp.js.map +1 -1
  26. package/lib/cjs/IModelConnection.js +1 -1
  27. package/lib/cjs/IModelConnection.js.map +1 -1
  28. package/lib/cjs/NoRenderApp.d.ts +1 -1
  29. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  30. package/lib/cjs/NoRenderApp.js +1 -2
  31. package/lib/cjs/NoRenderApp.js.map +1 -1
  32. package/lib/cjs/SheetViewState.js +6 -6
  33. package/lib/cjs/SheetViewState.js.map +1 -1
  34. package/lib/cjs/SubCategoriesCache.d.ts +1 -1
  35. package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
  36. package/lib/cjs/SubCategoriesCache.js +1 -1
  37. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  38. package/lib/cjs/Tiles.d.ts +1 -1
  39. package/lib/cjs/Tiles.d.ts.map +1 -1
  40. package/lib/cjs/Tiles.js +6 -6
  41. package/lib/cjs/Tiles.js.map +1 -1
  42. package/lib/cjs/ViewManager.js +1 -1
  43. package/lib/cjs/ViewManager.js.map +1 -1
  44. package/lib/cjs/ViewState.js +1 -1
  45. package/lib/cjs/ViewState.js.map +1 -1
  46. package/lib/cjs/Viewport.d.ts +5 -3
  47. package/lib/cjs/Viewport.d.ts.map +1 -1
  48. package/lib/cjs/Viewport.js +8 -4
  49. package/lib/cjs/Viewport.js.map +1 -1
  50. package/lib/cjs/common/internal/render/MeshPrimitives.js +1 -1
  51. package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -1
  52. package/lib/cjs/core-frontend.d.ts +1 -0
  53. package/lib/cjs/core-frontend.d.ts.map +1 -1
  54. package/lib/cjs/core-frontend.js +1 -0
  55. package/lib/cjs/core-frontend.js.map +1 -1
  56. package/lib/cjs/internal/render/RenderGeometry.d.ts +1 -2
  57. package/lib/cjs/internal/render/RenderGeometry.d.ts.map +1 -1
  58. package/lib/cjs/internal/render/RenderGeometry.js.map +1 -1
  59. package/lib/cjs/render/Decorations.d.ts +3 -2
  60. package/lib/cjs/render/Decorations.d.ts.map +1 -1
  61. package/lib/cjs/render/Decorations.js +5 -1
  62. package/lib/cjs/render/Decorations.js.map +1 -1
  63. package/lib/cjs/render/GraphicBranch.d.ts +4 -2
  64. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  65. package/lib/cjs/render/GraphicBranch.js +5 -1
  66. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  67. package/lib/cjs/render/MockRender.d.ts +2 -2
  68. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  69. package/lib/cjs/render/MockRender.js +3 -4
  70. package/lib/cjs/render/MockRender.js.map +1 -1
  71. package/lib/cjs/render/RenderGraphic.d.ts +3 -2
  72. package/lib/cjs/render/RenderGraphic.d.ts.map +1 -1
  73. package/lib/cjs/render/RenderGraphic.js +4 -1
  74. package/lib/cjs/render/RenderGraphic.js.map +1 -1
  75. package/lib/cjs/render/RenderPlanarClassifier.d.ts +3 -3
  76. package/lib/cjs/render/RenderPlanarClassifier.d.ts.map +1 -1
  77. package/lib/cjs/render/RenderPlanarClassifier.js.map +1 -1
  78. package/lib/cjs/render/RenderSystem.d.ts +9 -8
  79. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  80. package/lib/cjs/render/RenderSystem.js +3 -0
  81. package/lib/cjs/render/RenderSystem.js.map +1 -1
  82. package/lib/cjs/render/RenderTarget.d.ts +3 -3
  83. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  84. package/lib/cjs/render/RenderTarget.js +1 -1
  85. package/lib/cjs/render/RenderTarget.js.map +1 -1
  86. package/lib/cjs/render/VisibleFeature.d.ts.map +1 -1
  87. package/lib/cjs/render/VisibleFeature.js +60 -3
  88. package/lib/cjs/render/VisibleFeature.js.map +1 -1
  89. package/lib/cjs/render/webgl/AtmosphereUniforms.d.ts +2 -0
  90. package/lib/cjs/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
  91. package/lib/cjs/render/webgl/AtmosphereUniforms.js +5 -1
  92. package/lib/cjs/render/webgl/AtmosphereUniforms.js.map +1 -1
  93. package/lib/cjs/render/webgl/AttributeBuffers.d.ts +6 -2
  94. package/lib/cjs/render/webgl/AttributeBuffers.d.ts.map +1 -1
  95. package/lib/cjs/render/webgl/AttributeBuffers.js +12 -4
  96. package/lib/cjs/render/webgl/AttributeBuffers.js.map +1 -1
  97. package/lib/cjs/render/webgl/BackgroundMapDrape.d.ts +1 -1
  98. package/lib/cjs/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
  99. package/lib/cjs/render/webgl/BackgroundMapDrape.js +3 -3
  100. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  101. package/lib/cjs/render/webgl/CachedGeometry.d.ts +8 -8
  102. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  103. package/lib/cjs/render/webgl/CachedGeometry.js +8 -8
  104. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  105. package/lib/cjs/render/webgl/ClippingProgram.d.ts +2 -0
  106. package/lib/cjs/render/webgl/ClippingProgram.d.ts.map +1 -1
  107. package/lib/cjs/render/webgl/ClippingProgram.js +5 -1
  108. package/lib/cjs/render/webgl/ClippingProgram.js.map +1 -1
  109. package/lib/cjs/render/webgl/Contours.d.ts +1 -1
  110. package/lib/cjs/render/webgl/Contours.d.ts.map +1 -1
  111. package/lib/cjs/render/webgl/Contours.js +1 -1
  112. package/lib/cjs/render/webgl/Contours.js.map +1 -1
  113. package/lib/cjs/render/webgl/Disposable.d.ts +1 -2
  114. package/lib/cjs/render/webgl/Disposable.d.ts.map +1 -1
  115. package/lib/cjs/render/webgl/Disposable.js +4 -0
  116. package/lib/cjs/render/webgl/Disposable.js.map +1 -1
  117. package/lib/cjs/render/webgl/EDL.d.ts +1 -1
  118. package/lib/cjs/render/webgl/EDL.d.ts.map +1 -1
  119. package/lib/cjs/render/webgl/EDL.js +3 -3
  120. package/lib/cjs/render/webgl/EDL.js.map +1 -1
  121. package/lib/cjs/render/webgl/EdgeGeometry.d.ts +3 -3
  122. package/lib/cjs/render/webgl/EdgeGeometry.d.ts.map +1 -1
  123. package/lib/cjs/render/webgl/EdgeGeometry.js +4 -4
  124. package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -1
  125. package/lib/cjs/render/webgl/FeatureOverrides.d.ts +1 -1
  126. package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
  127. package/lib/cjs/render/webgl/FeatureOverrides.js +1 -1
  128. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  129. package/lib/cjs/render/webgl/FrameBuffer.d.ts +1 -1
  130. package/lib/cjs/render/webgl/FrameBuffer.d.ts.map +1 -1
  131. package/lib/cjs/render/webgl/FrameBuffer.js +1 -1
  132. package/lib/cjs/render/webgl/FrameBuffer.js.map +1 -1
  133. package/lib/cjs/render/webgl/Graphic.d.ts +2 -2
  134. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  135. package/lib/cjs/render/webgl/Graphic.js +11 -11
  136. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  137. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts +2 -2
  138. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  139. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js +2 -2
  140. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  141. package/lib/cjs/render/webgl/InstancedGeometry.d.ts +4 -4
  142. package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
  143. package/lib/cjs/render/webgl/InstancedGeometry.js +5 -6
  144. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  145. package/lib/cjs/render/webgl/Layer.js +1 -1
  146. package/lib/cjs/render/webgl/Layer.js.map +1 -1
  147. package/lib/cjs/render/webgl/Mesh.d.ts +1 -1
  148. package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
  149. package/lib/cjs/render/webgl/Mesh.js +1 -1
  150. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  151. package/lib/cjs/render/webgl/MeshData.d.ts +1 -1
  152. package/lib/cjs/render/webgl/MeshData.d.ts.map +1 -1
  153. package/lib/cjs/render/webgl/MeshData.js +2 -2
  154. package/lib/cjs/render/webgl/MeshData.js.map +1 -1
  155. package/lib/cjs/render/webgl/PlanarClassifier.d.ts +1 -1
  156. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  157. package/lib/cjs/render/webgl/PlanarClassifier.js +22 -9
  158. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  159. package/lib/cjs/render/webgl/PointCloud.d.ts +1 -1
  160. package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
  161. package/lib/cjs/render/webgl/PointCloud.js +1 -1
  162. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  163. package/lib/cjs/render/webgl/PointString.d.ts +1 -1
  164. package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
  165. package/lib/cjs/render/webgl/PointString.js +1 -1
  166. package/lib/cjs/render/webgl/PointString.js.map +1 -1
  167. package/lib/cjs/render/webgl/Polyline.d.ts +1 -1
  168. package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
  169. package/lib/cjs/render/webgl/Polyline.js +1 -1
  170. package/lib/cjs/render/webgl/Polyline.js.map +1 -1
  171. package/lib/cjs/render/webgl/RealityMesh.d.ts +6 -10
  172. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  173. package/lib/cjs/render/webgl/RealityMesh.js +6 -6
  174. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  175. package/lib/cjs/render/webgl/RenderBuffer.d.ts +2 -2
  176. package/lib/cjs/render/webgl/RenderBuffer.d.ts.map +1 -1
  177. package/lib/cjs/render/webgl/RenderBuffer.js +2 -2
  178. package/lib/cjs/render/webgl/RenderBuffer.js.map +1 -1
  179. package/lib/cjs/render/webgl/SceneCompositor.d.ts +1 -1
  180. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  181. package/lib/cjs/render/webgl/SceneCompositor.js +6 -6
  182. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  183. package/lib/cjs/render/webgl/ScreenSpaceEffect.d.ts +1 -1
  184. package/lib/cjs/render/webgl/ScreenSpaceEffect.d.ts.map +1 -1
  185. package/lib/cjs/render/webgl/ScreenSpaceEffect.js +2 -2
  186. package/lib/cjs/render/webgl/ScreenSpaceEffect.js.map +1 -1
  187. package/lib/cjs/render/webgl/ShaderProgram.d.ts +5 -1
  188. package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
  189. package/lib/cjs/render/webgl/ShaderProgram.js +11 -3
  190. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  191. package/lib/cjs/render/webgl/SolarShadowMap.d.ts +1 -1
  192. package/lib/cjs/render/webgl/SolarShadowMap.d.ts.map +1 -1
  193. package/lib/cjs/render/webgl/SolarShadowMap.js +3 -3
  194. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  195. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts +1 -1
  196. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  197. package/lib/cjs/render/webgl/SurfaceGeometry.js +1 -1
  198. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
  199. package/lib/cjs/render/webgl/System.d.ts +1 -1
  200. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  201. package/lib/cjs/render/webgl/System.js +1 -1
  202. package/lib/cjs/render/webgl/System.js.map +1 -1
  203. package/lib/cjs/render/webgl/Target.d.ts +2 -2
  204. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  205. package/lib/cjs/render/webgl/Target.js +9 -10
  206. package/lib/cjs/render/webgl/Target.js.map +1 -1
  207. package/lib/cjs/render/webgl/TargetGraphics.d.ts +1 -1
  208. package/lib/cjs/render/webgl/TargetGraphics.d.ts.map +1 -1
  209. package/lib/cjs/render/webgl/TargetGraphics.js +1 -1
  210. package/lib/cjs/render/webgl/TargetGraphics.js.map +1 -1
  211. package/lib/cjs/render/webgl/Technique.d.ts +6 -0
  212. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  213. package/lib/cjs/render/webgl/Technique.js +97 -15
  214. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  215. package/lib/cjs/render/webgl/Texture.d.ts +1 -1
  216. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  217. package/lib/cjs/render/webgl/Texture.js +1 -1
  218. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  219. package/lib/cjs/render/webgl/TextureDrape.d.ts +1 -1
  220. package/lib/cjs/render/webgl/TextureDrape.d.ts.map +1 -1
  221. package/lib/cjs/render/webgl/TextureDrape.js +1 -1
  222. package/lib/cjs/render/webgl/TextureDrape.js.map +1 -1
  223. package/lib/cjs/render/webgl/ThematicSensors.d.ts +1 -1
  224. package/lib/cjs/render/webgl/ThematicSensors.d.ts.map +1 -1
  225. package/lib/cjs/render/webgl/ThematicSensors.js +1 -1
  226. package/lib/cjs/render/webgl/ThematicSensors.js.map +1 -1
  227. package/lib/cjs/render/webgl/ThematicUniforms.d.ts +1 -1
  228. package/lib/cjs/render/webgl/ThematicUniforms.d.ts.map +1 -1
  229. package/lib/cjs/render/webgl/ThematicUniforms.js +1 -1
  230. package/lib/cjs/render/webgl/ThematicUniforms.js.map +1 -1
  231. package/lib/cjs/render/webgl/VertexLUT.d.ts +2 -2
  232. package/lib/cjs/render/webgl/VertexLUT.d.ts.map +1 -1
  233. package/lib/cjs/render/webgl/VertexLUT.js +2 -2
  234. package/lib/cjs/render/webgl/VertexLUT.js.map +1 -1
  235. package/lib/cjs/render/webgl/VisibleTileFeatures.js +60 -3
  236. package/lib/cjs/render/webgl/VisibleTileFeatures.js.map +1 -1
  237. package/lib/cjs/tile/ClassifierTileTree.js +1 -1
  238. package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
  239. package/lib/cjs/tile/DynamicIModelTile.js +3 -3
  240. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  241. package/lib/cjs/tile/IModelTileTree.d.ts +1 -1
  242. package/lib/cjs/tile/IModelTileTree.d.ts.map +1 -1
  243. package/lib/cjs/tile/IModelTileTree.js +12 -10
  244. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  245. package/lib/cjs/tile/ImdlDecoder.d.ts +1 -1
  246. package/lib/cjs/tile/ImdlDecoder.js +1 -1
  247. package/lib/cjs/tile/ImdlDecoder.js.map +1 -1
  248. package/lib/cjs/tile/LRUTileList.d.ts +1 -1
  249. package/lib/cjs/tile/LRUTileList.d.ts.map +1 -1
  250. package/lib/cjs/tile/LRUTileList.js +1 -1
  251. package/lib/cjs/tile/LRUTileList.js.map +1 -1
  252. package/lib/cjs/tile/OrbitGtTileTree.d.ts +1 -1
  253. package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +1 -1
  254. package/lib/cjs/tile/OrbitGtTileTree.js +6 -6
  255. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  256. package/lib/cjs/tile/PrimaryTileTree.js +1 -1
  257. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  258. package/lib/cjs/tile/Tile.d.ts +2 -0
  259. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  260. package/lib/cjs/tile/Tile.js +6 -2
  261. package/lib/cjs/tile/Tile.js.map +1 -1
  262. package/lib/cjs/tile/TileAdmin.js +1 -1
  263. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  264. package/lib/cjs/tile/TileTree.d.ts +2 -0
  265. package/lib/cjs/tile/TileTree.d.ts.map +1 -1
  266. package/lib/cjs/tile/TileTree.js +5 -1
  267. package/lib/cjs/tile/TileTree.js.map +1 -1
  268. package/lib/cjs/tile/TileTreeOwner.d.ts +1 -1
  269. package/lib/cjs/tile/TileTreeOwner.d.ts.map +1 -1
  270. package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
  271. package/lib/cjs/tile/map/ImageryTileTree.d.ts +1 -1
  272. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  273. package/lib/cjs/tile/map/ImageryTileTree.js +2 -2
  274. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  275. package/lib/cjs/tools/AccuDrawTool.d.ts +4 -2
  276. package/lib/cjs/tools/AccuDrawTool.d.ts.map +1 -1
  277. package/lib/cjs/tools/AccuDrawTool.js +34 -56
  278. package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
  279. package/lib/cjs/tools/AccuDrawViewportUI.d.ts +154 -0
  280. package/lib/cjs/tools/AccuDrawViewportUI.d.ts.map +1 -0
  281. package/lib/cjs/tools/AccuDrawViewportUI.js +715 -0
  282. package/lib/cjs/tools/AccuDrawViewportUI.js.map +1 -0
  283. package/lib/esm/AccuDraw.d.ts +21 -3
  284. package/lib/esm/AccuDraw.d.ts.map +1 -1
  285. package/lib/esm/AccuDraw.js +174 -56
  286. package/lib/esm/AccuDraw.js.map +1 -1
  287. package/lib/esm/BriefcaseConnection.js +1 -1
  288. package/lib/esm/BriefcaseConnection.js.map +1 -1
  289. package/lib/esm/BriefcaseTxns.d.ts +1 -1
  290. package/lib/esm/BriefcaseTxns.d.ts.map +1 -1
  291. package/lib/esm/BriefcaseTxns.js +1 -1
  292. package/lib/esm/BriefcaseTxns.js.map +1 -1
  293. package/lib/esm/DrawingViewState.js +2 -2
  294. package/lib/esm/DrawingViewState.js.map +1 -1
  295. package/lib/esm/EnvironmentDecorations.d.ts +1 -1
  296. package/lib/esm/EnvironmentDecorations.d.ts.map +1 -1
  297. package/lib/esm/EnvironmentDecorations.js +1 -1
  298. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  299. package/lib/esm/GraphicalEditingScope.d.ts +3 -1
  300. package/lib/esm/GraphicalEditingScope.d.ts.map +1 -1
  301. package/lib/esm/GraphicalEditingScope.js +7 -3
  302. package/lib/esm/GraphicalEditingScope.js.map +1 -1
  303. package/lib/esm/IModelApp.d.ts +0 -5
  304. package/lib/esm/IModelApp.d.ts.map +1 -1
  305. package/lib/esm/IModelApp.js +0 -5
  306. package/lib/esm/IModelApp.js.map +1 -1
  307. package/lib/esm/IModelConnection.js +1 -1
  308. package/lib/esm/IModelConnection.js.map +1 -1
  309. package/lib/esm/NoRenderApp.d.ts +1 -1
  310. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  311. package/lib/esm/NoRenderApp.js +1 -2
  312. package/lib/esm/NoRenderApp.js.map +1 -1
  313. package/lib/esm/SheetViewState.js +6 -6
  314. package/lib/esm/SheetViewState.js.map +1 -1
  315. package/lib/esm/SubCategoriesCache.d.ts +1 -1
  316. package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
  317. package/lib/esm/SubCategoriesCache.js +1 -1
  318. package/lib/esm/SubCategoriesCache.js.map +1 -1
  319. package/lib/esm/Tiles.d.ts +1 -1
  320. package/lib/esm/Tiles.d.ts.map +1 -1
  321. package/lib/esm/Tiles.js +6 -6
  322. package/lib/esm/Tiles.js.map +1 -1
  323. package/lib/esm/ViewManager.js +1 -1
  324. package/lib/esm/ViewManager.js.map +1 -1
  325. package/lib/esm/ViewState.js +1 -1
  326. package/lib/esm/ViewState.js.map +1 -1
  327. package/lib/esm/Viewport.d.ts +5 -3
  328. package/lib/esm/Viewport.d.ts.map +1 -1
  329. package/lib/esm/Viewport.js +8 -4
  330. package/lib/esm/Viewport.js.map +1 -1
  331. package/lib/esm/common/internal/render/MeshPrimitives.js +2 -2
  332. package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -1
  333. package/lib/esm/core-frontend.d.ts +1 -0
  334. package/lib/esm/core-frontend.d.ts.map +1 -1
  335. package/lib/esm/core-frontend.js +1 -0
  336. package/lib/esm/core-frontend.js.map +1 -1
  337. package/lib/esm/internal/render/RenderGeometry.d.ts +1 -2
  338. package/lib/esm/internal/render/RenderGeometry.d.ts.map +1 -1
  339. package/lib/esm/internal/render/RenderGeometry.js.map +1 -1
  340. package/lib/esm/render/Decorations.d.ts +3 -2
  341. package/lib/esm/render/Decorations.d.ts.map +1 -1
  342. package/lib/esm/render/Decorations.js +5 -1
  343. package/lib/esm/render/Decorations.js.map +1 -1
  344. package/lib/esm/render/GraphicBranch.d.ts +4 -2
  345. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  346. package/lib/esm/render/GraphicBranch.js +5 -1
  347. package/lib/esm/render/GraphicBranch.js.map +1 -1
  348. package/lib/esm/render/MockRender.d.ts +2 -2
  349. package/lib/esm/render/MockRender.d.ts.map +1 -1
  350. package/lib/esm/render/MockRender.js +3 -4
  351. package/lib/esm/render/MockRender.js.map +1 -1
  352. package/lib/esm/render/RenderGraphic.d.ts +3 -2
  353. package/lib/esm/render/RenderGraphic.d.ts.map +1 -1
  354. package/lib/esm/render/RenderGraphic.js +4 -1
  355. package/lib/esm/render/RenderGraphic.js.map +1 -1
  356. package/lib/esm/render/RenderPlanarClassifier.d.ts +3 -3
  357. package/lib/esm/render/RenderPlanarClassifier.d.ts.map +1 -1
  358. package/lib/esm/render/RenderPlanarClassifier.js.map +1 -1
  359. package/lib/esm/render/RenderSystem.d.ts +9 -8
  360. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  361. package/lib/esm/render/RenderSystem.js +3 -0
  362. package/lib/esm/render/RenderSystem.js.map +1 -1
  363. package/lib/esm/render/RenderTarget.d.ts +3 -3
  364. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  365. package/lib/esm/render/RenderTarget.js +1 -1
  366. package/lib/esm/render/RenderTarget.js.map +1 -1
  367. package/lib/esm/render/VisibleFeature.d.ts.map +1 -1
  368. package/lib/esm/render/VisibleFeature.js +60 -3
  369. package/lib/esm/render/VisibleFeature.js.map +1 -1
  370. package/lib/esm/render/webgl/AtmosphereUniforms.d.ts +2 -0
  371. package/lib/esm/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
  372. package/lib/esm/render/webgl/AtmosphereUniforms.js +5 -1
  373. package/lib/esm/render/webgl/AtmosphereUniforms.js.map +1 -1
  374. package/lib/esm/render/webgl/AttributeBuffers.d.ts +6 -2
  375. package/lib/esm/render/webgl/AttributeBuffers.d.ts.map +1 -1
  376. package/lib/esm/render/webgl/AttributeBuffers.js +12 -4
  377. package/lib/esm/render/webgl/AttributeBuffers.js.map +1 -1
  378. package/lib/esm/render/webgl/BackgroundMapDrape.d.ts +1 -1
  379. package/lib/esm/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
  380. package/lib/esm/render/webgl/BackgroundMapDrape.js +3 -3
  381. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  382. package/lib/esm/render/webgl/CachedGeometry.d.ts +8 -8
  383. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  384. package/lib/esm/render/webgl/CachedGeometry.js +8 -8
  385. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  386. package/lib/esm/render/webgl/ClippingProgram.d.ts +2 -0
  387. package/lib/esm/render/webgl/ClippingProgram.d.ts.map +1 -1
  388. package/lib/esm/render/webgl/ClippingProgram.js +5 -1
  389. package/lib/esm/render/webgl/ClippingProgram.js.map +1 -1
  390. package/lib/esm/render/webgl/Contours.d.ts +1 -1
  391. package/lib/esm/render/webgl/Contours.d.ts.map +1 -1
  392. package/lib/esm/render/webgl/Contours.js +1 -1
  393. package/lib/esm/render/webgl/Contours.js.map +1 -1
  394. package/lib/esm/render/webgl/Disposable.d.ts +1 -2
  395. package/lib/esm/render/webgl/Disposable.d.ts.map +1 -1
  396. package/lib/esm/render/webgl/Disposable.js +4 -0
  397. package/lib/esm/render/webgl/Disposable.js.map +1 -1
  398. package/lib/esm/render/webgl/EDL.d.ts +1 -1
  399. package/lib/esm/render/webgl/EDL.d.ts.map +1 -1
  400. package/lib/esm/render/webgl/EDL.js +3 -3
  401. package/lib/esm/render/webgl/EDL.js.map +1 -1
  402. package/lib/esm/render/webgl/EdgeGeometry.d.ts +3 -3
  403. package/lib/esm/render/webgl/EdgeGeometry.d.ts.map +1 -1
  404. package/lib/esm/render/webgl/EdgeGeometry.js +4 -4
  405. package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -1
  406. package/lib/esm/render/webgl/FeatureOverrides.d.ts +1 -1
  407. package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
  408. package/lib/esm/render/webgl/FeatureOverrides.js +1 -1
  409. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  410. package/lib/esm/render/webgl/FrameBuffer.d.ts +1 -1
  411. package/lib/esm/render/webgl/FrameBuffer.d.ts.map +1 -1
  412. package/lib/esm/render/webgl/FrameBuffer.js +1 -1
  413. package/lib/esm/render/webgl/FrameBuffer.js.map +1 -1
  414. package/lib/esm/render/webgl/Graphic.d.ts +2 -2
  415. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  416. package/lib/esm/render/webgl/Graphic.js +11 -11
  417. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  418. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts +2 -2
  419. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  420. package/lib/esm/render/webgl/IndexedEdgeGeometry.js +2 -2
  421. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  422. package/lib/esm/render/webgl/InstancedGeometry.d.ts +4 -4
  423. package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
  424. package/lib/esm/render/webgl/InstancedGeometry.js +5 -6
  425. package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
  426. package/lib/esm/render/webgl/Layer.js +1 -1
  427. package/lib/esm/render/webgl/Layer.js.map +1 -1
  428. package/lib/esm/render/webgl/Mesh.d.ts +1 -1
  429. package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
  430. package/lib/esm/render/webgl/Mesh.js +1 -1
  431. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  432. package/lib/esm/render/webgl/MeshData.d.ts +1 -1
  433. package/lib/esm/render/webgl/MeshData.d.ts.map +1 -1
  434. package/lib/esm/render/webgl/MeshData.js +2 -2
  435. package/lib/esm/render/webgl/MeshData.js.map +1 -1
  436. package/lib/esm/render/webgl/PlanarClassifier.d.ts +1 -1
  437. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  438. package/lib/esm/render/webgl/PlanarClassifier.js +22 -9
  439. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  440. package/lib/esm/render/webgl/PointCloud.d.ts +1 -1
  441. package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
  442. package/lib/esm/render/webgl/PointCloud.js +1 -1
  443. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  444. package/lib/esm/render/webgl/PointString.d.ts +1 -1
  445. package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
  446. package/lib/esm/render/webgl/PointString.js +1 -1
  447. package/lib/esm/render/webgl/PointString.js.map +1 -1
  448. package/lib/esm/render/webgl/Polyline.d.ts +1 -1
  449. package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
  450. package/lib/esm/render/webgl/Polyline.js +1 -1
  451. package/lib/esm/render/webgl/Polyline.js.map +1 -1
  452. package/lib/esm/render/webgl/RealityMesh.d.ts +6 -10
  453. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  454. package/lib/esm/render/webgl/RealityMesh.js +6 -6
  455. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  456. package/lib/esm/render/webgl/RenderBuffer.d.ts +2 -2
  457. package/lib/esm/render/webgl/RenderBuffer.d.ts.map +1 -1
  458. package/lib/esm/render/webgl/RenderBuffer.js +2 -2
  459. package/lib/esm/render/webgl/RenderBuffer.js.map +1 -1
  460. package/lib/esm/render/webgl/SceneCompositor.d.ts +1 -1
  461. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  462. package/lib/esm/render/webgl/SceneCompositor.js +6 -6
  463. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  464. package/lib/esm/render/webgl/ScreenSpaceEffect.d.ts +1 -1
  465. package/lib/esm/render/webgl/ScreenSpaceEffect.d.ts.map +1 -1
  466. package/lib/esm/render/webgl/ScreenSpaceEffect.js +2 -2
  467. package/lib/esm/render/webgl/ScreenSpaceEffect.js.map +1 -1
  468. package/lib/esm/render/webgl/ShaderProgram.d.ts +5 -1
  469. package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
  470. package/lib/esm/render/webgl/ShaderProgram.js +11 -3
  471. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  472. package/lib/esm/render/webgl/SolarShadowMap.d.ts +1 -1
  473. package/lib/esm/render/webgl/SolarShadowMap.d.ts.map +1 -1
  474. package/lib/esm/render/webgl/SolarShadowMap.js +3 -3
  475. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  476. package/lib/esm/render/webgl/SurfaceGeometry.d.ts +1 -1
  477. package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  478. package/lib/esm/render/webgl/SurfaceGeometry.js +1 -1
  479. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -1
  480. package/lib/esm/render/webgl/System.d.ts +1 -1
  481. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  482. package/lib/esm/render/webgl/System.js +1 -1
  483. package/lib/esm/render/webgl/System.js.map +1 -1
  484. package/lib/esm/render/webgl/Target.d.ts +2 -2
  485. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  486. package/lib/esm/render/webgl/Target.js +9 -10
  487. package/lib/esm/render/webgl/Target.js.map +1 -1
  488. package/lib/esm/render/webgl/TargetGraphics.d.ts +1 -1
  489. package/lib/esm/render/webgl/TargetGraphics.d.ts.map +1 -1
  490. package/lib/esm/render/webgl/TargetGraphics.js +1 -1
  491. package/lib/esm/render/webgl/TargetGraphics.js.map +1 -1
  492. package/lib/esm/render/webgl/Technique.d.ts +6 -0
  493. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  494. package/lib/esm/render/webgl/Technique.js +98 -16
  495. package/lib/esm/render/webgl/Technique.js.map +1 -1
  496. package/lib/esm/render/webgl/Texture.d.ts +1 -1
  497. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  498. package/lib/esm/render/webgl/Texture.js +1 -1
  499. package/lib/esm/render/webgl/Texture.js.map +1 -1
  500. package/lib/esm/render/webgl/TextureDrape.d.ts +1 -1
  501. package/lib/esm/render/webgl/TextureDrape.d.ts.map +1 -1
  502. package/lib/esm/render/webgl/TextureDrape.js +1 -1
  503. package/lib/esm/render/webgl/TextureDrape.js.map +1 -1
  504. package/lib/esm/render/webgl/ThematicSensors.d.ts +1 -1
  505. package/lib/esm/render/webgl/ThematicSensors.d.ts.map +1 -1
  506. package/lib/esm/render/webgl/ThematicSensors.js +1 -1
  507. package/lib/esm/render/webgl/ThematicSensors.js.map +1 -1
  508. package/lib/esm/render/webgl/ThematicUniforms.d.ts +1 -1
  509. package/lib/esm/render/webgl/ThematicUniforms.d.ts.map +1 -1
  510. package/lib/esm/render/webgl/ThematicUniforms.js +1 -1
  511. package/lib/esm/render/webgl/ThematicUniforms.js.map +1 -1
  512. package/lib/esm/render/webgl/VertexLUT.d.ts +2 -2
  513. package/lib/esm/render/webgl/VertexLUT.d.ts.map +1 -1
  514. package/lib/esm/render/webgl/VertexLUT.js +2 -2
  515. package/lib/esm/render/webgl/VertexLUT.js.map +1 -1
  516. package/lib/esm/render/webgl/VisibleTileFeatures.js +60 -3
  517. package/lib/esm/render/webgl/VisibleTileFeatures.js.map +1 -1
  518. package/lib/esm/tile/ClassifierTileTree.js +1 -1
  519. package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
  520. package/lib/esm/tile/DynamicIModelTile.js +3 -3
  521. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  522. package/lib/esm/tile/IModelTileTree.d.ts +1 -1
  523. package/lib/esm/tile/IModelTileTree.d.ts.map +1 -1
  524. package/lib/esm/tile/IModelTileTree.js +12 -10
  525. package/lib/esm/tile/IModelTileTree.js.map +1 -1
  526. package/lib/esm/tile/ImdlDecoder.d.ts +1 -1
  527. package/lib/esm/tile/ImdlDecoder.js +1 -1
  528. package/lib/esm/tile/ImdlDecoder.js.map +1 -1
  529. package/lib/esm/tile/LRUTileList.d.ts +1 -1
  530. package/lib/esm/tile/LRUTileList.d.ts.map +1 -1
  531. package/lib/esm/tile/LRUTileList.js +1 -1
  532. package/lib/esm/tile/LRUTileList.js.map +1 -1
  533. package/lib/esm/tile/OrbitGtTileTree.d.ts +1 -1
  534. package/lib/esm/tile/OrbitGtTileTree.d.ts.map +1 -1
  535. package/lib/esm/tile/OrbitGtTileTree.js +6 -6
  536. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  537. package/lib/esm/tile/PrimaryTileTree.js +1 -1
  538. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  539. package/lib/esm/tile/Tile.d.ts +2 -0
  540. package/lib/esm/tile/Tile.d.ts.map +1 -1
  541. package/lib/esm/tile/Tile.js +6 -2
  542. package/lib/esm/tile/Tile.js.map +1 -1
  543. package/lib/esm/tile/TileAdmin.js +1 -1
  544. package/lib/esm/tile/TileAdmin.js.map +1 -1
  545. package/lib/esm/tile/TileTree.d.ts +2 -0
  546. package/lib/esm/tile/TileTree.d.ts.map +1 -1
  547. package/lib/esm/tile/TileTree.js +5 -1
  548. package/lib/esm/tile/TileTree.js.map +1 -1
  549. package/lib/esm/tile/TileTreeOwner.d.ts +1 -1
  550. package/lib/esm/tile/TileTreeOwner.d.ts.map +1 -1
  551. package/lib/esm/tile/TileTreeOwner.js.map +1 -1
  552. package/lib/esm/tile/map/ImageryTileTree.d.ts +1 -1
  553. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  554. package/lib/esm/tile/map/ImageryTileTree.js +2 -2
  555. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  556. package/lib/esm/tools/AccuDrawTool.d.ts +4 -2
  557. package/lib/esm/tools/AccuDrawTool.d.ts.map +1 -1
  558. package/lib/esm/tools/AccuDrawTool.js +34 -56
  559. package/lib/esm/tools/AccuDrawTool.js.map +1 -1
  560. package/lib/esm/tools/AccuDrawViewportUI.d.ts +154 -0
  561. package/lib/esm/tools/AccuDrawViewportUI.d.ts.map +1 -0
  562. package/lib/esm/tools/AccuDrawViewportUI.js +711 -0
  563. package/lib/esm/tools/AccuDrawViewportUI.js.map +1 -0
  564. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  565. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  566. package/package.json +16 -17
@@ -1 +1 @@
1
- {"version":3,"file":"VisibleFeature.js","sourceRoot":"","sources":["../../../src/render/VisibleFeature.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAc,MAAM,qBAAqB,CAAC;AAKzD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AA+DhC;;GAEG;AACH,MAAM,gBAAgB;IAIpB,YAAmB,QAAkC;QAF7C,cAAS,GAAG,KAAK,CAAC;QAGxB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAEM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtB,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,uGAAuG,CAAC,CAAC;QACjI,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3C,CAAC;CACF;AAED,SAAS,cAAc,CAAC,QAAkC,EAAE,QAAsC;IAChG,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC;QACH,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC;YAAS,CAAC;QACT,QAAQ,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC;AACH,CAAC;AAED,wDAAwD;AACxD,MAAM,cAAc;IAKlB,YAAmB,MAAoB,EAAE,IAAc,EAAE,QAAkB;QACzE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC;IACjC,CAAC;IAEM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtB,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAoB,EAAE,IAAc,EAAE,MAAwB;YAC/E,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACpC,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;wBACnC,MAAM;4BACJ,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;4BAClC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa;4BAC1C,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa;4BAC1C,OAAO,EAAE,KAAK,CAAC,OAAO;4BACtB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,MAAM;yBAC/B,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAkB,EAAE,OAAoC,EAAE,QAAsC;IACnI,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,MAAM,IAAI,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAClE,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;QACvB,KAAK,QAAQ;YACX,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC;YAC/C,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACxL,MAAM;QACR,KAAK,OAAO;YACV,QAAQ,CAAC,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;YACrH,MAAM;QACR;YACE,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC7B,MAAM;IACV,CAAC;AACH,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Rendering\n */\n\nimport { assert, Id64String } from \"@itwin/core-bentley\";\nimport { GeometryClass } from \"@itwin/core-common\";\nimport { ViewRect } from \"../common/ViewRect\";\nimport { Viewport } from \"../Viewport\";\nimport { IModelConnection } from \"../IModelConnection\";\nimport { Pixel } from \"./Pixel\";\n\n/** Represents a [Feature]($common) determined to be visible within a [[Viewport]].\n * @see [[Viewport.queryVisibleFeatures]].\n * @public\n */\nexport interface VisibleFeature {\n /** The Id of the [Element]($backend) associated with the feature. May be invalid or transient. */\n readonly elementId: Id64String;\n /** The Id of the [SubCategory]($backend) associated with the feature. May be invalid or transient. */\n readonly subCategoryId: Id64String;\n /** The class of geometry associated with the feature. */\n readonly geometryClass: GeometryClass;\n /** The Id of the [GeometricModel]($backend) associated with the feature. May be invalid or transient. */\n readonly modelId: Id64String;\n /** The iModel associated with the feature. In some cases this may differ from the [[Viewport]]'s iModel. */\n iModel: IModelConnection;\n}\n\n/** Options specifying how to query for visible [Feature]($common)s by reading pixels rendered by a [[Viewport]].\n * This method of determining visibility considers a feature \"visible\" if it lit up at least one pixel.\n * @note A pixel that is behind another, transparent pixel is not considered visible.\n * @see [[QueryVisibleFeaturesOptions]].\n * @public\n */\nexport interface QueryScreenFeaturesOptions {\n /** Union discriminator for [[QueryVisibleFeaturesOptions]]. */\n source: \"screen\";\n /** If true, non-locatable features are considered visible. */\n includeNonLocatable?: boolean;\n /** If specified, a sub-region of the [[Viewport]] to which to constrain the query. */\n rect?: ViewRect;\n}\n\n/** Options specifying how to query for visible [Feature]($common)s by inspecting the [[Tile]]s selected for display by a [[Viewport]].\n * This method of determining visibility considers a feature \"visible\" if it is included in at least one tile selected for display and is\n * not otherwise rendered invisible by the view's [[CategorySelectorState]], [SubCategoryAppearance]($common) overrides, [FeatureOverrides]($common), or\n * other means.\n * @note If a clip volume is applied to the view, features contained in tiles that *intersect* the clip volume are considered visible regardless of whether\n * their geometry would actually be entirely clipped out by the clip volume.\n * @see [[QueryVisibleFeaturesOptions]].\n * @public\n */\nexport interface QueryTileFeaturesOptions {\n /** Union discriminator for [[QueryVisibleFeaturesOptions]]. */\n source: \"tiles\";\n /** If true, non-locatable features are considered visible. */\n includeNonLocatable?: boolean;\n}\n\n/** Options specifying how to query for visible [Feature]($common)s.\n * @see [[Viewport.queryVisibleFeatures]].\n * @public\n */\nexport type QueryVisibleFeaturesOptions = QueryScreenFeaturesOptions | QueryTileFeaturesOptions;\n\n/** A function supplied to [[Viewport.queryVisibleFeatures]] to process the results. The iterable supplied to the callback consists of all of the\n * [Feature]($common)s determined to be visible. The same feature may recur multiple times.\n * @note The iterable supplied to the callback is usable only within the callback. Once the callback exits, the iterable becomes empty.\n * @public\n */\nexport type QueryVisibleFeaturesCallback = (features: Iterable<VisibleFeature>) => void;\n\n/** Ensures that the iterable supplied to QueryVisibleFeaturesCallback becomes invalidated once the callback exits.\n * The iterable relies on RenderTarget state that changes from one frame to another.\n */\nclass ExpiringIterable implements Iterable<VisibleFeature> {\n private _features: Iterable<VisibleFeature>;\n private _disposed = false;\n\n public constructor(features: Iterable<VisibleFeature>) {\n this._features = features;\n }\n\n public dispose(): void {\n this._disposed = true;\n this._features = [];\n }\n\n public [Symbol.iterator](): Iterator<VisibleFeature> {\n assert(!this._disposed, \"The iterable supplied to QueryVisibleFeaturesCallback is valid only for the duration of the callback.\");\n return this._features[Symbol.iterator]();\n }\n}\n\nfunction invokeCallback(features: Iterable<VisibleFeature>, callback: QueryVisibleFeaturesCallback): void {\n const iterable = new ExpiringIterable(features);\n try {\n callback(iterable);\n } finally {\n iterable.dispose();\n }\n}\n\n/** Features read from pixels rendered by a viewport. */\nclass ScreenFeatures implements Iterable<VisibleFeature> {\n private readonly _pixels: Pixel.Buffer;\n private readonly _rect: ViewRect;\n private readonly _iModel: IModelConnection;\n\n public constructor(pixels: Pixel.Buffer, rect: ViewRect, viewport: Viewport) {\n this._pixels = pixels;\n this._rect = rect.clone();\n this._rect.right = viewport.cssPixelsToDevicePixels(this._rect.right);\n this._rect.bottom = viewport.cssPixelsToDevicePixels(this._rect.bottom);\n this._iModel = viewport.iModel;\n }\n\n public [Symbol.iterator](): Iterator<VisibleFeature> {\n function* iterator(pixels: Pixel.Buffer, rect: ViewRect, iModel: IModelConnection) {\n for (let x = rect.left; x < rect.right; x++) {\n for (let y = rect.top; y < rect.bottom; y++) {\n const pixel = pixels.getPixel(x, y);\n if (pixel.feature && pixel.modelId) {\n yield {\n elementId: pixel.feature.elementId,\n subCategoryId: pixel.feature.subCategoryId,\n geometryClass: pixel.feature.geometryClass,\n modelId: pixel.modelId,\n iModel: pixel.iModel ?? iModel,\n };\n }\n }\n }\n }\n\n return iterator(this._pixels, this._rect, this._iModel);\n }\n}\n\n/** Implementation of [[Viewport.queryVisibleFeatures]].\n * @internal\n */\nexport function queryVisibleFeatures(viewport: Viewport, options: QueryVisibleFeaturesOptions, callback: QueryVisibleFeaturesCallback): void {\n assert(\"screen\" === options.source || \"tiles\" === options.source);\n switch (options.source) {\n case \"screen\":\n const rect = options.rect ?? viewport.viewRect;\n viewport.readPixels(rect, Pixel.Selector.Feature, (pixels) => invokeCallback(pixels ? new ScreenFeatures(pixels, rect, viewport) : [], callback), true !== options.includeNonLocatable);\n break;\n case \"tiles\":\n viewport.target.queryVisibleTileFeatures(options, viewport.iModel, (features) => invokeCallback(features, callback));\n break;\n default:\n invokeCallback([], callback);\n break;\n }\n}\n"]}
1
+ {"version":3,"file":"VisibleFeature.js","sourceRoot":"","sources":["../../../src/render/VisibleFeature.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Rendering\n */\n\nimport { assert, Id64String } from \"@itwin/core-bentley\";\nimport { GeometryClass } from \"@itwin/core-common\";\nimport { ViewRect } from \"../common/ViewRect\";\nimport { Viewport } from \"../Viewport\";\nimport { IModelConnection } from \"../IModelConnection\";\nimport { Pixel } from \"./Pixel\";\n\n/** Represents a [Feature]($common) determined to be visible within a [[Viewport]].\n * @see [[Viewport.queryVisibleFeatures]].\n * @public\n */\nexport interface VisibleFeature {\n /** The Id of the [Element]($backend) associated with the feature. May be invalid or transient. */\n readonly elementId: Id64String;\n /** The Id of the [SubCategory]($backend) associated with the feature. May be invalid or transient. */\n readonly subCategoryId: Id64String;\n /** The class of geometry associated with the feature. */\n readonly geometryClass: GeometryClass;\n /** The Id of the [GeometricModel]($backend) associated with the feature. May be invalid or transient. */\n readonly modelId: Id64String;\n /** The iModel associated with the feature. In some cases this may differ from the [[Viewport]]'s iModel. */\n iModel: IModelConnection;\n}\n\n/** Options specifying how to query for visible [Feature]($common)s by reading pixels rendered by a [[Viewport]].\n * This method of determining visibility considers a feature \"visible\" if it lit up at least one pixel.\n * @note A pixel that is behind another, transparent pixel is not considered visible.\n * @see [[QueryVisibleFeaturesOptions]].\n * @public\n */\nexport interface QueryScreenFeaturesOptions {\n /** Union discriminator for [[QueryVisibleFeaturesOptions]]. */\n source: \"screen\";\n /** If true, non-locatable features are considered visible. */\n includeNonLocatable?: boolean;\n /** If specified, a sub-region of the [[Viewport]] to which to constrain the query. */\n rect?: ViewRect;\n}\n\n/** Options specifying how to query for visible [Feature]($common)s by inspecting the [[Tile]]s selected for display by a [[Viewport]].\n * This method of determining visibility considers a feature \"visible\" if it is included in at least one tile selected for display and is\n * not otherwise rendered invisible by the view's [[CategorySelectorState]], [SubCategoryAppearance]($common) overrides, [FeatureOverrides]($common), or\n * other means.\n * @note If a clip volume is applied to the view, features contained in tiles that *intersect* the clip volume are considered visible regardless of whether\n * their geometry would actually be entirely clipped out by the clip volume.\n * @see [[QueryVisibleFeaturesOptions]].\n * @public\n */\nexport interface QueryTileFeaturesOptions {\n /** Union discriminator for [[QueryVisibleFeaturesOptions]]. */\n source: \"tiles\";\n /** If true, non-locatable features are considered visible. */\n includeNonLocatable?: boolean;\n}\n\n/** Options specifying how to query for visible [Feature]($common)s.\n * @see [[Viewport.queryVisibleFeatures]].\n * @public\n */\nexport type QueryVisibleFeaturesOptions = QueryScreenFeaturesOptions | QueryTileFeaturesOptions;\n\n/** A function supplied to [[Viewport.queryVisibleFeatures]] to process the results. The iterable supplied to the callback consists of all of the\n * [Feature]($common)s determined to be visible. The same feature may recur multiple times.\n * @note The iterable supplied to the callback is usable only within the callback. Once the callback exits, the iterable becomes empty.\n * @public\n */\nexport type QueryVisibleFeaturesCallback = (features: Iterable<VisibleFeature>) => void;\n\n/** Ensures that the iterable supplied to QueryVisibleFeaturesCallback becomes invalidated once the callback exits.\n * The iterable relies on RenderTarget state that changes from one frame to another.\n */\nclass ExpiringIterable implements Iterable<VisibleFeature> {\n private _features: Iterable<VisibleFeature>;\n private _disposed = false;\n\n public constructor(features: Iterable<VisibleFeature>) {\n this._features = features;\n }\n\n public [Symbol.dispose](): void {\n this._disposed = true;\n this._features = [];\n }\n\n public [Symbol.iterator](): Iterator<VisibleFeature> {\n assert(!this._disposed, \"The iterable supplied to QueryVisibleFeaturesCallback is valid only for the duration of the callback.\");\n return this._features[Symbol.iterator]();\n }\n}\n\nfunction invokeCallback(features: Iterable<VisibleFeature>, callback: QueryVisibleFeaturesCallback): void {\n using iterable = new ExpiringIterable(features);\n callback(iterable);\n}\n\n/** Features read from pixels rendered by a viewport. */\nclass ScreenFeatures implements Iterable<VisibleFeature> {\n private readonly _pixels: Pixel.Buffer;\n private readonly _rect: ViewRect;\n private readonly _iModel: IModelConnection;\n\n public constructor(pixels: Pixel.Buffer, rect: ViewRect, viewport: Viewport) {\n this._pixels = pixels;\n this._rect = rect.clone();\n this._rect.right = viewport.cssPixelsToDevicePixels(this._rect.right);\n this._rect.bottom = viewport.cssPixelsToDevicePixels(this._rect.bottom);\n this._iModel = viewport.iModel;\n }\n\n public [Symbol.iterator](): Iterator<VisibleFeature> {\n function* iterator(pixels: Pixel.Buffer, rect: ViewRect, iModel: IModelConnection) {\n for (let x = rect.left; x < rect.right; x++) {\n for (let y = rect.top; y < rect.bottom; y++) {\n const pixel = pixels.getPixel(x, y);\n if (pixel.feature && pixel.modelId) {\n yield {\n elementId: pixel.feature.elementId,\n subCategoryId: pixel.feature.subCategoryId,\n geometryClass: pixel.feature.geometryClass,\n modelId: pixel.modelId,\n iModel: pixel.iModel ?? iModel,\n };\n }\n }\n }\n }\n\n return iterator(this._pixels, this._rect, this._iModel);\n }\n}\n\n/** Implementation of [[Viewport.queryVisibleFeatures]].\n * @internal\n */\nexport function queryVisibleFeatures(viewport: Viewport, options: QueryVisibleFeaturesOptions, callback: QueryVisibleFeaturesCallback): void {\n assert(\"screen\" === options.source || \"tiles\" === options.source);\n switch (options.source) {\n case \"screen\":\n const rect = options.rect ?? viewport.viewRect;\n viewport.readPixels(rect, Pixel.Selector.Feature, (pixels) => invokeCallback(pixels ? new ScreenFeatures(pixels, rect, viewport) : [], callback), true !== options.includeNonLocatable);\n break;\n case \"tiles\":\n viewport.target.queryVisibleTileFeatures(options, viewport.iModel, (features) => invokeCallback(features, callback));\n break;\n default:\n invokeCallback([], callback);\n break;\n }\n}\n"]}
@@ -43,6 +43,8 @@ export declare class AtmosphereUniforms implements WebGLDisposable, SyncTarget {
43
43
  bindInverseEarthScaleMatrix(uniform: UniformHandle): void;
44
44
  bindInverseAtmosphereScaleMatrix(uniform: UniformHandle): void;
45
45
  get isDisposed(): boolean;
46
+ [Symbol.dispose](): void;
47
+ /** @deprecated in 5.0 Use [Symbol.dispose] instead. */
46
48
  dispose(): void;
47
49
  }
48
50
  //# sourceMappingURL=AtmosphereUniforms.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AtmosphereUniforms.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/AtmosphereUniforms.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAW,OAAO,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAgB,UAAU,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,qBAAa,kBAAmB,YAAW,eAAe,EAAE,UAAU;IACpE,OAAO,CAAC,WAAW,CAAC,CAAsB;IAC1C,OAAO,CAAC,UAAU,CAAC,CAAsB;IAGzC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA+D;IACjG,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAA+D;IAC/G,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA+D;IACtG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD;;;;;;OAMG;IACH,IAAW,cAAc,YAAmC;IAG5D,OAAO,CAAC,SAAS,CAAO;IAGjB,OAAO,SAAK;IACnB,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,eAAe,CAAiB;IAEjC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IA2BnC,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,qCAAqC;IAK7C,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,4BAA4B;IAMpC,OAAO,CAAC,kCAAkC;IAS1C,OAAO,CAAC,+CAA+C;IASvD,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,6BAA6B;IAUrC,OAAO,CAAC,eAAe;IAIhB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAMjD,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,uBAAuB;IAKxB,0CAA0C,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAOxE,+CAA+C,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAO7E,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKlD,yBAAyB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKvD,2BAA2B,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKzD,gCAAgC,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKrE,IAAW,UAAU,IAAI,OAAO,CAE/B;IAEM,OAAO;CACf"}
1
+ {"version":3,"file":"AtmosphereUniforms.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/AtmosphereUniforms.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAW,OAAO,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAgB,UAAU,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,qBAAa,kBAAmB,YAAW,eAAe,EAAE,UAAU;IACpE,OAAO,CAAC,WAAW,CAAC,CAAsB;IAC1C,OAAO,CAAC,UAAU,CAAC,CAAsB;IAGzC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA+D;IACjG,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAA+D;IAC/G,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA+D;IACtG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD;;;;;;OAMG;IACH,IAAW,cAAc,YAAmC;IAG5D,OAAO,CAAC,SAAS,CAAO;IAGjB,OAAO,SAAK;IACnB,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,eAAe,CAAiB;IAEjC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IA2BnC,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,qCAAqC;IAK7C,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,4BAA4B;IAMpC,OAAO,CAAC,kCAAkC;IAS1C,OAAO,CAAC,+CAA+C;IASvD,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,6BAA6B;IAUrC,OAAO,CAAC,eAAe;IAIhB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAMjD,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,uBAAuB;IAKxB,0CAA0C,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAOxE,+CAA+C,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAO7E,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKlD,yBAAyB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKvD,2BAA2B,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKzD,gCAAgC,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKrE,IAAW,UAAU,IAAI,OAAO,CAE/B;IAEM,CAAC,MAAM,CAAC,OAAO,CAAC;IACvB,uDAAuD;IAChD,OAAO;CAGf"}
@@ -143,6 +143,10 @@ export class AtmosphereUniforms {
143
143
  get isDisposed() {
144
144
  return true;
145
145
  }
146
- dispose() { }
146
+ [Symbol.dispose]() { }
147
+ /** @deprecated in 5.0 Use [Symbol.dispose] instead. */
148
+ dispose() {
149
+ this[Symbol.dispose]();
150
+ }
147
151
  }
148
152
  //# sourceMappingURL=AtmosphereUniforms.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AtmosphereUniforms.js","sourceRoot":"","sources":["../../../../src/render/webgl/AtmosphereUniforms.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport { Atmosphere } from \"@itwin/core-common\";\nimport { Matrix3d, Point3d, Transform } from \"@itwin/core-geometry\";\nimport { RenderPlanEllipsoid } from \"../RenderPlan\";\nimport { WebGLDisposable } from \"./Disposable\";\nimport { Matrix3, Matrix4 } from \"./Matrix\";\nimport { desync, sync, SyncTarget } from \"./Sync\";\nimport { Target } from \"./Target\";\nimport { UniformHandle } from \"./UniformHandle\";\n\nexport const MAX_SAMPLE_POINTS = 40; // Maximum number of sample points to be used for the in-scattering and out-scattering computations.\n\nexport class AtmosphereUniforms implements WebGLDisposable, SyncTarget {\n private _atmosphere?: Atmosphere.Settings;\n private _ellipsoid?: RenderPlanEllipsoid;\n\n // Main shader uniforms\n private readonly _earthScaleMatrix = new Matrix3d(new Float64Array([1, 0, 0, 0, 1, 0, 0, 0, 1]));\n private readonly _inverseEllipsoidRotationMatrix = new Matrix3d(new Float64Array([1, 0, 0, 0, 1, 0, 0, 0, 1]));\n private readonly _atmosphereScaleMatrix = new Matrix3d(new Float64Array([1, 0, 0, 0, 1, 0, 0, 0, 1]));\n private readonly _atmosphereData = new Matrix4();\n /**\n * uniform mat3 u_atmosphereData;\n * { { atmosphereRadiusScaleFactor, atmosphereMaxDensityThresholdScaleFactor, densityFalloff, 0 },\n * { numViewRaySamples, numSunRaySamples, 0, 0 },\n * { earthCenter.x, earthCenter.y, earthCenter.z, 0 },\n * { scatteringCoefficients.x, scatteringCoefficients.y, scatteringCoefficients.z, 0 } }\n */\n public get atmosphereData() { return this._atmosphereData; }\n\n // Fragment shader uniforms\n private _exposure = 0.0;\n\n // utility\n public syncKey = 0;\n private _scratchMatrix3d = new Matrix3d();\n private _scratchPoint3d = new Point3d();\n\n public update(target: Target): void {\n const atmosphereHasNotChanged = this._atmosphere && target.plan.atmosphere && this._atmosphere.equals(target.plan.atmosphere);\n const ellipsoidHasNotChanged = this._ellipsoid && target.plan.ellipsoid && this._ellipsoid.equals(target.plan.ellipsoid);\n if (atmosphereHasNotChanged && ellipsoidHasNotChanged) {\n return;\n }\n\n this._atmosphere = target.plan.atmosphere;\n this._ellipsoid = target.plan.ellipsoid;\n desync(this);\n if (!this._atmosphere || !this._ellipsoid) {\n return;\n }\n\n this._updateAtmosphereScaleMatrix(this._atmosphere.atmosphereHeightAboveEarth);\n this._updateExposure(this._atmosphere.exposure);\n this._updateDensityFalloff(this._atmosphere.densityFalloff);\n this._updateEarthCenter(this._ellipsoid.ellipsoidCenter, target.uniforms.frustum.viewMatrix);\n this._updateEarthScaleMatrix(this._ellipsoid.ellipsoidRadii);\n this._updateInverseEllipsoidRotationMatrix(this._ellipsoid.ellipsoidRotation, target.uniforms.frustum.viewMatrix.matrix);\n this._updateAtmosphereRadiusScaleFactor(this._atmosphere.atmosphereHeightAboveEarth);\n this._updateAtmosphereMaxDensityThresholdScaleFactor(this._atmosphere.depthBelowEarthForMaxDensity);\n this._updateNumViewRaySamples(this._atmosphere.numViewRaySamples);\n this._updateNumSunRaySamples(this._atmosphere.numSunRaySamples);\n this._updateScatteringCoefficients(this._atmosphere.scatteringStrength, this._atmosphere.wavelengths);\n }\n\n private _updateEarthCenter(earthCenter: Point3d, viewMatrix: Transform) {\n viewMatrix.multiplyPoint3d(earthCenter, this._scratchPoint3d);\n this._atmosphereData.data[8] = this._scratchPoint3d.x;\n this._atmosphereData.data[9] = this._scratchPoint3d.y;\n this._atmosphereData.data[10] = this._scratchPoint3d.z;\n }\n\n private _updateInverseEllipsoidRotationMatrix(ellipsoidRotation: Matrix3d, viewRotation: Matrix3d) {\n viewRotation.inverse(this._scratchMatrix3d);\n ellipsoidRotation.multiplyMatrixInverseMatrix(this._scratchMatrix3d, this._inverseEllipsoidRotationMatrix);\n }\n\n private _updateEarthScaleMatrix(earthRadii: Point3d) {\n this._earthScaleMatrix.setAt(0, 0, earthRadii.x);\n this._earthScaleMatrix.setAt(1, 1, earthRadii.y);\n this._earthScaleMatrix.setAt(2, 2, earthRadii.z);\n }\n private _updateAtmosphereScaleMatrix(heightAboveSurface: number) {\n const earthPolarRadius = this._earthScaleMatrix.at(2, 2);\n const scaleFactor = earthPolarRadius === 0 ? 1.0 : (earthPolarRadius + heightAboveSurface) / earthPolarRadius;\n this._earthScaleMatrix.scale(scaleFactor, this._atmosphereScaleMatrix);\n }\n\n private _updateAtmosphereRadiusScaleFactor(atmosphereHeightAboveEarth: number) {\n const earthPolarRadius = this._earthScaleMatrix.at(2, 2);\n const minDensityThresholdRadius = earthPolarRadius + atmosphereHeightAboveEarth;\n const atmosphereRadiusScaleFactor = (earthPolarRadius === 0)\n ? 1\n : (minDensityThresholdRadius / earthPolarRadius);\n this.atmosphereData.data[0] = atmosphereRadiusScaleFactor;\n }\n\n private _updateAtmosphereMaxDensityThresholdScaleFactor(maxDensityDepthBelowEarth: number) {\n const earthPolarRadius = this._earthScaleMatrix.at(2, 2);\n const maxDensityThresholdRadius = earthPolarRadius - maxDensityDepthBelowEarth;\n const atmosphereMaxDensityThresholdScaleFactor = (earthPolarRadius === 0)\n ? 1\n : (maxDensityThresholdRadius / earthPolarRadius);\n this.atmosphereData.data[1] = atmosphereMaxDensityThresholdScaleFactor;\n }\n\n private _updateDensityFalloff(densityFalloff: number) {\n this.atmosphereData.data[2] = densityFalloff;\n }\n\n private _updateScatteringCoefficients(scatteringStrength: number, wavelengths: Atmosphere.Wavelengths) {\n // Rayleigh scattering strength is inversely related to the 4th power of the wavelength -> 1/pow(wavelength, 4)\n // Because this produces very small values when the wavelengths are taken in nanometers,\n // we attempt to normalize them around 1 by taking the smallest wavelength of visible light as a baseline (violet light - 400nm)\n const violetLightWavelength = 400.0;\n this.atmosphereData.data[12] = ((violetLightWavelength / wavelengths.r) ** 4.0) * scatteringStrength;\n this.atmosphereData.data[13] = ((violetLightWavelength / wavelengths.g) ** 4.0) * scatteringStrength;\n this.atmosphereData.data[14] = ((violetLightWavelength / wavelengths.b) ** 4.0) * scatteringStrength;\n }\n\n private _updateExposure(exposure: number) {\n this._exposure = exposure;\n }\n\n public bindExposure(uniform: UniformHandle): void {\n if (!sync(this, uniform)) {\n uniform.setUniform1f(this._exposure);\n }\n }\n\n private _updateNumViewRaySamples(_numViewRaySamples: number) {\n const numViewRaySamples = Math.max(0, Math.min(MAX_SAMPLE_POINTS, _numViewRaySamples));\n this.atmosphereData.data[4] = numViewRaySamples;\n }\n\n private _updateNumSunRaySamples(_numSunRaySamples: number) {\n const numSunRaySamples = Math.max(0, Math.min(MAX_SAMPLE_POINTS, _numSunRaySamples));\n this.atmosphereData.data[5] = numSunRaySamples;\n }\n\n public bindInverseRotationInverseEarthScaleMatrix(uniform: UniformHandle): void {\n if (!sync(this, uniform)) {\n this._earthScaleMatrix.multiplyMatrixInverseMatrix(this._inverseEllipsoidRotationMatrix, this._scratchMatrix3d);\n uniform.setMatrix3(Matrix3.fromMatrix3d(this._scratchMatrix3d));\n }\n }\n\n public bindInverseRotationInverseAtmosphereScaleMatrix(uniform: UniformHandle): void {\n if (!sync(this, uniform)) {\n this._atmosphereScaleMatrix.multiplyMatrixInverseMatrix(this._inverseEllipsoidRotationMatrix, this._scratchMatrix3d);\n uniform.setMatrix3(Matrix3.fromMatrix3d(this._scratchMatrix3d));\n }\n }\n\n public bindEarthScaleMatrix(uniform: UniformHandle): void {\n if (!sync(this, uniform))\n uniform.setMatrix3(Matrix3.fromMatrix3d(this._earthScaleMatrix));\n }\n\n public bindAtmosphereScaleMatrix(uniform: UniformHandle): void {\n if (!sync(this, uniform))\n uniform.setMatrix3(Matrix3.fromMatrix3d(this._atmosphereScaleMatrix));\n }\n\n public bindInverseEarthScaleMatrix(uniform: UniformHandle): void {\n if (!sync(this, uniform))\n uniform.setMatrix3(Matrix3.fromMatrix3d(this._earthScaleMatrix.inverse()!));\n }\n\n public bindInverseAtmosphereScaleMatrix(uniform: UniformHandle): void {\n if (!sync(this, uniform))\n uniform.setMatrix3(Matrix3.fromMatrix3d(this._atmosphereScaleMatrix.inverse()!));\n }\n\n public get isDisposed(): boolean {\n return true;\n }\n\n public dispose() { }\n}\n"]}
1
+ {"version":3,"file":"AtmosphereUniforms.js","sourceRoot":"","sources":["../../../../src/render/webgl/AtmosphereUniforms.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport { Atmosphere } from \"@itwin/core-common\";\nimport { Matrix3d, Point3d, Transform } from \"@itwin/core-geometry\";\nimport { RenderPlanEllipsoid } from \"../RenderPlan\";\nimport { WebGLDisposable } from \"./Disposable\";\nimport { Matrix3, Matrix4 } from \"./Matrix\";\nimport { desync, sync, SyncTarget } from \"./Sync\";\nimport { Target } from \"./Target\";\nimport { UniformHandle } from \"./UniformHandle\";\n\nexport const MAX_SAMPLE_POINTS = 40; // Maximum number of sample points to be used for the in-scattering and out-scattering computations.\n\nexport class AtmosphereUniforms implements WebGLDisposable, SyncTarget {\n private _atmosphere?: Atmosphere.Settings;\n private _ellipsoid?: RenderPlanEllipsoid;\n\n // Main shader uniforms\n private readonly _earthScaleMatrix = new Matrix3d(new Float64Array([1, 0, 0, 0, 1, 0, 0, 0, 1]));\n private readonly _inverseEllipsoidRotationMatrix = new Matrix3d(new Float64Array([1, 0, 0, 0, 1, 0, 0, 0, 1]));\n private readonly _atmosphereScaleMatrix = new Matrix3d(new Float64Array([1, 0, 0, 0, 1, 0, 0, 0, 1]));\n private readonly _atmosphereData = new Matrix4();\n /**\n * uniform mat3 u_atmosphereData;\n * { { atmosphereRadiusScaleFactor, atmosphereMaxDensityThresholdScaleFactor, densityFalloff, 0 },\n * { numViewRaySamples, numSunRaySamples, 0, 0 },\n * { earthCenter.x, earthCenter.y, earthCenter.z, 0 },\n * { scatteringCoefficients.x, scatteringCoefficients.y, scatteringCoefficients.z, 0 } }\n */\n public get atmosphereData() { return this._atmosphereData; }\n\n // Fragment shader uniforms\n private _exposure = 0.0;\n\n // utility\n public syncKey = 0;\n private _scratchMatrix3d = new Matrix3d();\n private _scratchPoint3d = new Point3d();\n\n public update(target: Target): void {\n const atmosphereHasNotChanged = this._atmosphere && target.plan.atmosphere && this._atmosphere.equals(target.plan.atmosphere);\n const ellipsoidHasNotChanged = this._ellipsoid && target.plan.ellipsoid && this._ellipsoid.equals(target.plan.ellipsoid);\n if (atmosphereHasNotChanged && ellipsoidHasNotChanged) {\n return;\n }\n\n this._atmosphere = target.plan.atmosphere;\n this._ellipsoid = target.plan.ellipsoid;\n desync(this);\n if (!this._atmosphere || !this._ellipsoid) {\n return;\n }\n\n this._updateAtmosphereScaleMatrix(this._atmosphere.atmosphereHeightAboveEarth);\n this._updateExposure(this._atmosphere.exposure);\n this._updateDensityFalloff(this._atmosphere.densityFalloff);\n this._updateEarthCenter(this._ellipsoid.ellipsoidCenter, target.uniforms.frustum.viewMatrix);\n this._updateEarthScaleMatrix(this._ellipsoid.ellipsoidRadii);\n this._updateInverseEllipsoidRotationMatrix(this._ellipsoid.ellipsoidRotation, target.uniforms.frustum.viewMatrix.matrix);\n this._updateAtmosphereRadiusScaleFactor(this._atmosphere.atmosphereHeightAboveEarth);\n this._updateAtmosphereMaxDensityThresholdScaleFactor(this._atmosphere.depthBelowEarthForMaxDensity);\n this._updateNumViewRaySamples(this._atmosphere.numViewRaySamples);\n this._updateNumSunRaySamples(this._atmosphere.numSunRaySamples);\n this._updateScatteringCoefficients(this._atmosphere.scatteringStrength, this._atmosphere.wavelengths);\n }\n\n private _updateEarthCenter(earthCenter: Point3d, viewMatrix: Transform) {\n viewMatrix.multiplyPoint3d(earthCenter, this._scratchPoint3d);\n this._atmosphereData.data[8] = this._scratchPoint3d.x;\n this._atmosphereData.data[9] = this._scratchPoint3d.y;\n this._atmosphereData.data[10] = this._scratchPoint3d.z;\n }\n\n private _updateInverseEllipsoidRotationMatrix(ellipsoidRotation: Matrix3d, viewRotation: Matrix3d) {\n viewRotation.inverse(this._scratchMatrix3d);\n ellipsoidRotation.multiplyMatrixInverseMatrix(this._scratchMatrix3d, this._inverseEllipsoidRotationMatrix);\n }\n\n private _updateEarthScaleMatrix(earthRadii: Point3d) {\n this._earthScaleMatrix.setAt(0, 0, earthRadii.x);\n this._earthScaleMatrix.setAt(1, 1, earthRadii.y);\n this._earthScaleMatrix.setAt(2, 2, earthRadii.z);\n }\n private _updateAtmosphereScaleMatrix(heightAboveSurface: number) {\n const earthPolarRadius = this._earthScaleMatrix.at(2, 2);\n const scaleFactor = earthPolarRadius === 0 ? 1.0 : (earthPolarRadius + heightAboveSurface) / earthPolarRadius;\n this._earthScaleMatrix.scale(scaleFactor, this._atmosphereScaleMatrix);\n }\n\n private _updateAtmosphereRadiusScaleFactor(atmosphereHeightAboveEarth: number) {\n const earthPolarRadius = this._earthScaleMatrix.at(2, 2);\n const minDensityThresholdRadius = earthPolarRadius + atmosphereHeightAboveEarth;\n const atmosphereRadiusScaleFactor = (earthPolarRadius === 0)\n ? 1\n : (minDensityThresholdRadius / earthPolarRadius);\n this.atmosphereData.data[0] = atmosphereRadiusScaleFactor;\n }\n\n private _updateAtmosphereMaxDensityThresholdScaleFactor(maxDensityDepthBelowEarth: number) {\n const earthPolarRadius = this._earthScaleMatrix.at(2, 2);\n const maxDensityThresholdRadius = earthPolarRadius - maxDensityDepthBelowEarth;\n const atmosphereMaxDensityThresholdScaleFactor = (earthPolarRadius === 0)\n ? 1\n : (maxDensityThresholdRadius / earthPolarRadius);\n this.atmosphereData.data[1] = atmosphereMaxDensityThresholdScaleFactor;\n }\n\n private _updateDensityFalloff(densityFalloff: number) {\n this.atmosphereData.data[2] = densityFalloff;\n }\n\n private _updateScatteringCoefficients(scatteringStrength: number, wavelengths: Atmosphere.Wavelengths) {\n // Rayleigh scattering strength is inversely related to the 4th power of the wavelength -> 1/pow(wavelength, 4)\n // Because this produces very small values when the wavelengths are taken in nanometers,\n // we attempt to normalize them around 1 by taking the smallest wavelength of visible light as a baseline (violet light - 400nm)\n const violetLightWavelength = 400.0;\n this.atmosphereData.data[12] = ((violetLightWavelength / wavelengths.r) ** 4.0) * scatteringStrength;\n this.atmosphereData.data[13] = ((violetLightWavelength / wavelengths.g) ** 4.0) * scatteringStrength;\n this.atmosphereData.data[14] = ((violetLightWavelength / wavelengths.b) ** 4.0) * scatteringStrength;\n }\n\n private _updateExposure(exposure: number) {\n this._exposure = exposure;\n }\n\n public bindExposure(uniform: UniformHandle): void {\n if (!sync(this, uniform)) {\n uniform.setUniform1f(this._exposure);\n }\n }\n\n private _updateNumViewRaySamples(_numViewRaySamples: number) {\n const numViewRaySamples = Math.max(0, Math.min(MAX_SAMPLE_POINTS, _numViewRaySamples));\n this.atmosphereData.data[4] = numViewRaySamples;\n }\n\n private _updateNumSunRaySamples(_numSunRaySamples: number) {\n const numSunRaySamples = Math.max(0, Math.min(MAX_SAMPLE_POINTS, _numSunRaySamples));\n this.atmosphereData.data[5] = numSunRaySamples;\n }\n\n public bindInverseRotationInverseEarthScaleMatrix(uniform: UniformHandle): void {\n if (!sync(this, uniform)) {\n this._earthScaleMatrix.multiplyMatrixInverseMatrix(this._inverseEllipsoidRotationMatrix, this._scratchMatrix3d);\n uniform.setMatrix3(Matrix3.fromMatrix3d(this._scratchMatrix3d));\n }\n }\n\n public bindInverseRotationInverseAtmosphereScaleMatrix(uniform: UniformHandle): void {\n if (!sync(this, uniform)) {\n this._atmosphereScaleMatrix.multiplyMatrixInverseMatrix(this._inverseEllipsoidRotationMatrix, this._scratchMatrix3d);\n uniform.setMatrix3(Matrix3.fromMatrix3d(this._scratchMatrix3d));\n }\n }\n\n public bindEarthScaleMatrix(uniform: UniformHandle): void {\n if (!sync(this, uniform))\n uniform.setMatrix3(Matrix3.fromMatrix3d(this._earthScaleMatrix));\n }\n\n public bindAtmosphereScaleMatrix(uniform: UniformHandle): void {\n if (!sync(this, uniform))\n uniform.setMatrix3(Matrix3.fromMatrix3d(this._atmosphereScaleMatrix));\n }\n\n public bindInverseEarthScaleMatrix(uniform: UniformHandle): void {\n if (!sync(this, uniform))\n uniform.setMatrix3(Matrix3.fromMatrix3d(this._earthScaleMatrix.inverse()!));\n }\n\n public bindInverseAtmosphereScaleMatrix(uniform: UniformHandle): void {\n if (!sync(this, uniform))\n uniform.setMatrix3(Matrix3.fromMatrix3d(this._atmosphereScaleMatrix.inverse()!));\n }\n\n public get isDisposed(): boolean {\n return true;\n }\n\n public [Symbol.dispose]() { }\n /** @deprecated in 5.0 Use [Symbol.dispose] instead. */\n public dispose() {\n this[Symbol.dispose]();\n }\n}\n"]}
@@ -54,7 +54,9 @@ export declare class BuffersContainer implements WebGLDisposable {
54
54
  private readonly _context;
55
55
  static create(): BuffersContainer;
56
56
  private constructor();
57
+ /** @deprecated in 5.0 Use [Symbol.dispose] instead. */
57
58
  dispose(): void;
59
+ [Symbol.dispose](): void;
58
60
  get isDisposed(): boolean;
59
61
  addBuffer(buffer: BufferHandle, params: BufferParameters[]): void;
60
62
  appendLinkages(linkages: BufferHandleLinkage[]): void;
@@ -72,8 +74,10 @@ export declare class VAOHandle implements WebGLDisposable {
72
74
  /** Allocates the WebGLVertexArrayObjectOES using the supplied context. Free the WebGLVertexArrayObjectOES using dispose() */
73
75
  constructor(context: WebGL2RenderingContext);
74
76
  get isDisposed(): boolean;
75
- /** Frees the WebGL vertex array object */
77
+ /** @deprecated in 5.0 Use [Symbol.dispose] instead. */
76
78
  dispose(): void;
79
+ /** Frees the WebGL vertex array object */
80
+ [Symbol.dispose](): void;
77
81
  /** Binds this vertex array object */
78
82
  bind(): void;
79
83
  /** Ensures no vertex array object is bound */
@@ -93,7 +97,7 @@ export declare class BufferHandle implements WebGLDisposable {
93
97
  get isDisposed(): boolean;
94
98
  get bytesUsed(): number;
95
99
  /** Frees the WebGL buffer */
96
- dispose(): void;
100
+ [Symbol.dispose](): void;
97
101
  /** Binds this buffer to the target specified during construction */
98
102
  bind(): void;
99
103
  /** Sets the specified target to be bound to no buffer */
@@ -1 +1 @@
1
- {"version":3,"file":"AttributeBuffers.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/AttributeBuffers.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAG1B,6HAA6H;AAC7H,UAAU,mBAAmB;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAED,iFAAiF;AACjF,cAAM,mBAAmB;IACvB,OAAO;WACO,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,mBAAmB;WAG7E,KAAK,CAAC,OAAO,EAAE,mBAAmB,GAAG,mBAAmB;CAOvE;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,4GAA4G;IAC5G,YAAY,EAAE,OAAO,CAAC;IACtB,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAC;IACjB,0IAA0I;IAC1I,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,yBAAiB,gBAAgB,CAAC;IAChC,SAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,gBAAgB,CAE7K;IAED,SAAgB,KAAK,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAEhE;CACF;AAED;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,eAAe;IACtD,SAAgB,QAAQ,EAAE,mBAAmB,EAAE,CAAM;IACrD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;WAEpC,MAAM,IAAI,gBAAgB;IAIxC,OAAO;IAMA,OAAO,IAAI,IAAI;IAItB,IAAW,UAAU,IAAI,OAAO,CAE/B;IAEM,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAMjE,cAAc,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAO5D,OAAO,CAAC,YAAY;IAab,IAAI,IAAI,IAAI;IAIZ,MAAM,IAAI,IAAI;CAGtB;AAED;;;GAGG;AACH,qBAAa,SAAU,YAAW,eAAe;IAC/C,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,YAAY,CAAC,CAA4B;IAEjD,6HAA6H;gBAC1G,OAAO,EAAE,sBAAsB;IAclD,IAAW,UAAU,IAAI,OAAO,CAA4C;IAE5E,0CAA0C;IACnC,OAAO,IAAI,IAAI;IAOtB,qCAAqC;IAC9B,IAAI,IAAI,IAAI;IAMnB,8CAA8C;WAChC,MAAM,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;CAG5D;AAED;;;;GAIG;AACH,qBAAa,YAAa,YAAW,eAAe;IAClD,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,SAAS,CAAC,CAAc;IAChC,OAAO,CAAC,UAAU,CAAK;IAEvB,iGAAiG;gBAC9E,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM;IAc3C,IAAW,UAAU,IAAI,OAAO,CAAyC;IACzE,IAAW,SAAS,IAAI,MAAM,CAA4B;IAE1D,6BAA6B;IACtB,OAAO,IAAI,IAAI;IAQtB,oEAAoE;IAC7D,IAAI,IAAI,IAAI;IAMnB,yDAAyD;IAClD,MAAM,IAAI,IAAI;IAErB,kGAAkG;IAC3F,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,GAAE,EAAE,CAAC,MAAM,CAAC,KAAkC,GAAG,IAAI;IAO9F,gDAAgD;WAClC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,GAAE,EAAE,CAAC,MAAM,CAAC,KAAkC,GAAG,YAAY,GAAG,SAAS;IASvJ,gDAAgD;WAClC,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,GAAE,EAAE,CAAC,MAAM,CAAC,KAAkC;IAIhG,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO;CAC1C;AAMD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,YAAY,CAShE;AAED,gBAAgB;AAChB,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAM/D;AAED,gBAAgB;AAChB,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,YAAY,CAM7D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAIjG;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,SAAgB,MAAM,EAAE,YAAY,CAAC;gBAElB,OAAO,EAAE,SAAS;WAKvB,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,GAAG,eAAe,GAAG,SAAS;CASzF;AAKD,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,6CAA6C;IAC7C,SAAgB,MAAM,EAAE,YAAY,CAAC;IACrC,4CAA4C;IAC5C,SAAgB,KAAK,EAAE,YAAY,CAAC;gBAEjB,OAAO,EAAE,SAAS;WAMvB,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU,GAAG,YAAY,GAAG,eAAe,GAAG,SAAS;CASrH"}
1
+ {"version":3,"file":"AttributeBuffers.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/AttributeBuffers.ts"],"names":[],"mappings":"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"}
@@ -50,9 +50,13 @@ export class BuffersContainer {
50
50
  this._context = context;
51
51
  this._vao = new VAOHandle(this._context);
52
52
  }
53
- // NB: BufferHandle objects contained within BufferHandleLinkage entries are disposed where they are created because they could be shared among multiple BuffersContainer objects.
53
+ /** @deprecated in 5.0 Use [Symbol.dispose] instead. */
54
54
  dispose() {
55
- this._vao.dispose();
55
+ this[Symbol.dispose]();
56
+ }
57
+ // NB: BufferHandle objects contained within BufferHandleLinkage entries are disposed where they are created because they could be shared among multiple BuffersContainer objects.
58
+ [Symbol.dispose]() {
59
+ this._vao[Symbol.dispose]();
56
60
  }
57
61
  get isDisposed() {
58
62
  return this._vao.isDisposed;
@@ -106,8 +110,12 @@ export class VAOHandle {
106
110
  assert(!this.isDisposed);
107
111
  }
108
112
  get isDisposed() { return this._arrayObject === undefined; }
109
- /** Frees the WebGL vertex array object */
113
+ /** @deprecated in 5.0 Use [Symbol.dispose] instead. */
110
114
  dispose() {
115
+ this[Symbol.dispose]();
116
+ }
117
+ /** Frees the WebGL vertex array object */
118
+ [Symbol.dispose]() {
111
119
  if (!this.isDisposed) {
112
120
  this._context.deleteVertexArray(this._arrayObject);
113
121
  this._arrayObject = undefined;
@@ -147,7 +155,7 @@ export class BufferHandle {
147
155
  get isDisposed() { return this._glBuffer === undefined; }
148
156
  get bytesUsed() { return this._bytesUsed; }
149
157
  /** Frees the WebGL buffer */
150
- dispose() {
158
+ [Symbol.dispose]() {
151
159
  if (!this.isDisposed) {
152
160
  System.instance.context.deleteBuffer(this._glBuffer);
153
161
  this._glBuffer = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"AttributeBuffers.js","sourceRoot":"","sources":["../../../../src/render/webgl/AttributeBuffers.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { Point3d } from \"@itwin/core-geometry\";\nimport { QParams2d, QParams3d } from \"@itwin/core-common\";\nimport { WebGLDisposable } from \"./Disposable\";\nimport { GL } from \"./GL\";\nimport { System } from \"./System\";\n\n/** Describes a connection between a BufferHandle and an arbitrary number of attributes associated with that BufferHandle. */\ninterface BufferHandleLinkage { // eslint-disable-line @typescript-eslint/no-unsafe-declaration-merging\n buffer: BufferHandle;\n params: BufferParameters[]; // If empty, means no vertex attrib details are necessary (index buffer probably)\n}\n\n/** Provides convenience methods for creating a BufferHandleLinkage interface. */\nclass BufferHandleLinkage { // eslint-disable-line @typescript-eslint/no-unsafe-declaration-merging\n private constructor() { }\n public static create(buffer: BufferHandle, params: BufferParameters[]): BufferHandleLinkage {\n return { buffer, params };\n }\n public static clone(linkage: BufferHandleLinkage): BufferHandleLinkage {\n const clonedParams: BufferParameters[] = [];\n for (const param of linkage.params) {\n clonedParams.push(BufferParameters.clone(param));\n }\n return BufferHandleLinkage.create(linkage.buffer, clonedParams);\n }\n}\n\n/**\n * Describes the binding state of a BufferHandle when added to a BuffersContainer. See the WebGL function 'vertexAttribPointer'.\n * @internal\n */\nexport interface BufferParameters {\n /** Index used for binding attribute location for the associated BufferHandle. */\n glAttribLoc: number;\n /** Number of components for the attribute (1, 2, 3, or 4). */\n glSize: number;\n /** Data type of each component. */\n glType: number;\n /** If true, WebGL will normalize integer data values into a certain range (see WebGL specs for details). */\n glNormalized: boolean;\n /** Offset in bytes between the beginning of consecutive vertex attributes. */\n glStride: number;\n /** Offset in bytes of the first component in the vertex attribute array. */\n glOffset: number;\n /** Specifies whether the attribute is instanced. If so, the WebGL instancing extension function 'vertexAttribDivisor' will be called. */\n glInstanced: boolean;\n}\n\n/**\n * Provides convenience methods for creating a BuffersParameter interface.\n * @internal\n */\nexport namespace BufferParameters {\n export function create(glAttribLoc: number, glSize: number, glType: number, glNormalized: boolean, glStride: number, glOffset: number, glInstanced: boolean): BufferParameters {\n return { glAttribLoc, glSize, glType, glNormalized, glStride, glOffset, glInstanced };\n }\n\n export function clone(params: BufferParameters): BufferParameters {\n return BufferParameters.create(params.glAttribLoc, params.glSize, params.glType, params.glNormalized, params.glStride, params.glOffset, params.glInstanced);\n }\n}\n\n/**\n * An abstract class which specifies an interface for binding and unbinding vertex buffers and their associated state.\n * @internal\n */\nexport class BuffersContainer implements WebGLDisposable {\n public readonly linkages: BufferHandleLinkage[] = [];\n protected readonly _vao: VAOHandle;\n private readonly _context: WebGL2RenderingContext;\n\n public static create(): BuffersContainer {\n return new BuffersContainer(System.instance.context);\n }\n\n private constructor(context: WebGL2RenderingContext) {\n this._context = context;\n this._vao = new VAOHandle(this._context);\n }\n\n // NB: BufferHandle objects contained within BufferHandleLinkage entries are disposed where they are created because they could be shared among multiple BuffersContainer objects.\n public dispose(): void {\n this._vao.dispose();\n }\n\n public get isDisposed(): boolean {\n return this._vao.isDisposed;\n }\n\n public addBuffer(buffer: BufferHandle, params: BufferParameters[]): void {\n const linkage = BufferHandleLinkage.create(buffer, params);\n this.linkages.push(linkage);\n this._bindLinkage(linkage);\n }\n\n public appendLinkages(linkages: BufferHandleLinkage[]): void {\n for (const linkage of linkages) {\n this.linkages.push(BufferHandleLinkage.clone(linkage));\n this._bindLinkage(linkage);\n }\n }\n\n private _bindLinkage(linkage: BufferHandleLinkage) {\n this.bind();\n linkage.buffer.bind();\n for (const p of linkage.params) {\n System.instance.context.enableVertexAttribArray(p.glAttribLoc);\n if (p.glInstanced) {\n System.instance.vertexAttribDivisor(p.glAttribLoc, 1);\n }\n System.instance.context.vertexAttribPointer(p.glAttribLoc, p.glSize, p.glType, p.glNormalized, p.glStride, p.glOffset);\n }\n this.unbind();\n }\n\n public bind(): void {\n this._vao.bind();\n }\n\n public unbind(): void {\n VAOHandle.unbind(this._context);\n }\n}\n\n/** A handle to a WebGLVertexArrayObjectOES.\n * The WebGLVertexArrayObjectOES is allocated by the constructor and should be freed by a call to dispose().\n * @internal\n */\nexport class VAOHandle implements WebGLDisposable {\n private _context: WebGL2RenderingContext;\n private _arrayObject?: WebGLVertexArrayObjectOES;\n\n /** Allocates the WebGLVertexArrayObjectOES using the supplied context. Free the WebGLVertexArrayObjectOES using dispose() */\n public constructor(context: WebGL2RenderingContext) {\n this._context = context;\n const arrayObject = this._context.createVertexArray();\n\n // vaoExt.createVertexArrayOES() returns WebGLVertexArrayObjectOES | null...\n if (null !== arrayObject) {\n this._arrayObject = arrayObject;\n } else {\n this._arrayObject = undefined;\n }\n\n assert(!this.isDisposed);\n }\n\n public get isDisposed(): boolean { return this._arrayObject === undefined; }\n\n /** Frees the WebGL vertex array object */\n public dispose(): void {\n if (!this.isDisposed) {\n this._context.deleteVertexArray(this._arrayObject!);\n this._arrayObject = undefined;\n }\n }\n\n /** Binds this vertex array object */\n public bind(): void {\n if (undefined !== this._arrayObject) {\n this._context.bindVertexArray(this._arrayObject);\n }\n }\n\n /** Ensures no vertex array object is bound */\n public static unbind(context: WebGL2RenderingContext): void {\n context.bindVertexArray(null);\n }\n}\n\n/**\n * A handle to a WebGLBuffer, such as a vertex or index buffer.\n * The WebGLBuffer is allocated by the constructor and should be freed by a call to dispose().\n * @internal\n */\nexport class BufferHandle implements WebGLDisposable {\n private _target: GL.Buffer.Target;\n private _glBuffer?: WebGLBuffer;\n private _bytesUsed = 0;\n\n /** Allocates the WebGLBuffer using the supplied context. Free the WebGLBuffer using dispose() */\n public constructor(target: GL.Buffer.Target) {\n this._target = target;\n const glBuffer = System.instance.context.createBuffer();\n\n // gl.createBuffer() returns WebGLBuffer | null...\n if (null !== glBuffer) {\n this._glBuffer = glBuffer;\n } else {\n this._glBuffer = undefined;\n }\n\n assert(!this.isDisposed);\n }\n\n public get isDisposed(): boolean { return this._glBuffer === undefined; }\n public get bytesUsed(): number { return this._bytesUsed; }\n\n /** Frees the WebGL buffer */\n public dispose(): void {\n if (!this.isDisposed) {\n System.instance.context.deleteBuffer(this._glBuffer!);\n this._glBuffer = undefined;\n this._bytesUsed = 0;\n }\n }\n\n /** Binds this buffer to the target specified during construction */\n public bind(): void {\n if (undefined !== this._glBuffer) {\n System.instance.context.bindBuffer(this._target, this._glBuffer);\n }\n }\n\n /** Sets the specified target to be bound to no buffer */\n public unbind(): void { System.instance.context.bindBuffer(this._target, null); }\n\n /** Binds this buffer to the target specified at construction and sets the buffer's data store. */\n public bindData(data: BufferSource, usage: GL.Buffer.Usage = GL.Buffer.Usage.StaticDraw): void {\n this.bind();\n System.instance.context.bufferData(this._target, data, usage);\n this.unbind();\n this._bytesUsed = data.byteLength;\n }\n\n /** Creates a BufferHandle and binds its data */\n public static createBuffer(target: GL.Buffer.Target, data: BufferSource, usage: GL.Buffer.Usage = GL.Buffer.Usage.StaticDraw): BufferHandle | undefined {\n const handle = new BufferHandle(target);\n if (handle.isDisposed) {\n return undefined;\n }\n\n handle.bindData(data, usage);\n return handle;\n }\n /** Creates a BufferHandle and binds its data */\n public static createArrayBuffer(data: BufferSource, usage: GL.Buffer.Usage = GL.Buffer.Usage.StaticDraw) {\n return BufferHandle.createBuffer(GL.Buffer.Target.ArrayBuffer, data, usage);\n }\n\n public isBound(binding: GL.Buffer.Binding) { return System.instance.context.getParameter(binding) === this._glBuffer; }\n}\n\nfunction setScale(index: number, value: number, array: Float32Array) {\n array[index] = 0.0 !== value ? 1.0 / value : value;\n}\n\n/**\n * Converts 2d quantization parameters to a format appropriate for submittal to the GPU.\n * params[0] = origin.x\n * params[1] = origin.y\n * params[2] = scale.x\n * params[3] = scale.y\n * @internal\n */\nexport function qparams2dToArray(params: QParams2d): Float32Array {\n const arr = new Float32Array(4);\n\n arr[0] = params.origin.x;\n arr[1] = params.origin.y;\n setScale(2, params.scale.x, arr);\n setScale(3, params.scale.y, arr);\n\n return arr;\n}\n\n/** @internal */\nexport function qorigin3dToArray(qorigin: Point3d): Float32Array {\n const origin = new Float32Array(3);\n origin[0] = qorigin.x;\n origin[1] = qorigin.y;\n origin[2] = qorigin.z;\n return origin;\n}\n\n/** @internal */\nexport function qscale3dToArray(qscale: Point3d): Float32Array {\n const scale = new Float32Array(3);\n setScale(0, qscale.x, scale);\n setScale(1, qscale.y, scale);\n setScale(2, qscale.z, scale);\n return scale;\n}\n\n/** Converts 3d quantization params to a pair of Float32Arrays\n * @internal\n */\nexport function qparams3dToArray(params: QParams3d): { origin: Float32Array, scale: Float32Array } {\n const origin = qorigin3dToArray(params.origin);\n const scale = qscale3dToArray(params.scale);\n return { origin, scale };\n}\n\n/** A handle to a WebGLBuffer intended to hold quantized 2d points\n * @internal\n */\nexport class QBufferHandle2d extends BufferHandle {\n public readonly params: Float32Array;\n\n public constructor(qParams: QParams2d) {\n super(GL.Buffer.Target.ArrayBuffer);\n this.params = qparams2dToArray(qParams);\n }\n\n public static create(qParams: QParams2d, data: Uint16Array): QBufferHandle2d | undefined {\n const handle = new QBufferHandle2d(qParams);\n if (handle.isDisposed) {\n return undefined;\n }\n\n handle.bindData(data);\n return handle;\n }\n}\n\n/* A handle to a WebGLBuffer intended to hold quantized 3d points\n * @internal\n */\nexport class QBufferHandle3d extends BufferHandle {\n /** The quantization origin in x, y, and z */\n public readonly origin: Float32Array;\n /** The quantization scale in x, y, and z */\n public readonly scale: Float32Array;\n\n public constructor(qParams: QParams3d) {\n super(GL.Buffer.Target.ArrayBuffer);\n this.origin = qorigin3dToArray(qParams.origin);\n this.scale = qscale3dToArray(qParams.scale);\n }\n\n public static create(qParams: QParams3d, data: Uint16Array | Uint8Array | Float32Array): QBufferHandle3d | undefined {\n const handle = new QBufferHandle3d(qParams);\n if (handle.isDisposed) {\n return undefined;\n }\n\n handle.bindData(data);\n return handle;\n }\n}\n"]}
1
+ {"version":3,"file":"AttributeBuffers.js","sourceRoot":"","sources":["../../../../src/render/webgl/AttributeBuffers.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { Point3d } from \"@itwin/core-geometry\";\nimport { QParams2d, QParams3d } from \"@itwin/core-common\";\nimport { WebGLDisposable } from \"./Disposable\";\nimport { GL } from \"./GL\";\nimport { System } from \"./System\";\n\n/** Describes a connection between a BufferHandle and an arbitrary number of attributes associated with that BufferHandle. */\ninterface BufferHandleLinkage { // eslint-disable-line @typescript-eslint/no-unsafe-declaration-merging\n buffer: BufferHandle;\n params: BufferParameters[]; // If empty, means no vertex attrib details are necessary (index buffer probably)\n}\n\n/** Provides convenience methods for creating a BufferHandleLinkage interface. */\nclass BufferHandleLinkage { // eslint-disable-line @typescript-eslint/no-unsafe-declaration-merging\n private constructor() { }\n public static create(buffer: BufferHandle, params: BufferParameters[]): BufferHandleLinkage {\n return { buffer, params };\n }\n public static clone(linkage: BufferHandleLinkage): BufferHandleLinkage {\n const clonedParams: BufferParameters[] = [];\n for (const param of linkage.params) {\n clonedParams.push(BufferParameters.clone(param));\n }\n return BufferHandleLinkage.create(linkage.buffer, clonedParams);\n }\n}\n\n/**\n * Describes the binding state of a BufferHandle when added to a BuffersContainer. See the WebGL function 'vertexAttribPointer'.\n * @internal\n */\nexport interface BufferParameters {\n /** Index used for binding attribute location for the associated BufferHandle. */\n glAttribLoc: number;\n /** Number of components for the attribute (1, 2, 3, or 4). */\n glSize: number;\n /** Data type of each component. */\n glType: number;\n /** If true, WebGL will normalize integer data values into a certain range (see WebGL specs for details). */\n glNormalized: boolean;\n /** Offset in bytes between the beginning of consecutive vertex attributes. */\n glStride: number;\n /** Offset in bytes of the first component in the vertex attribute array. */\n glOffset: number;\n /** Specifies whether the attribute is instanced. If so, the WebGL instancing extension function 'vertexAttribDivisor' will be called. */\n glInstanced: boolean;\n}\n\n/**\n * Provides convenience methods for creating a BuffersParameter interface.\n * @internal\n */\nexport namespace BufferParameters {\n export function create(glAttribLoc: number, glSize: number, glType: number, glNormalized: boolean, glStride: number, glOffset: number, glInstanced: boolean): BufferParameters {\n return { glAttribLoc, glSize, glType, glNormalized, glStride, glOffset, glInstanced };\n }\n\n export function clone(params: BufferParameters): BufferParameters {\n return BufferParameters.create(params.glAttribLoc, params.glSize, params.glType, params.glNormalized, params.glStride, params.glOffset, params.glInstanced);\n }\n}\n\n/**\n * An abstract class which specifies an interface for binding and unbinding vertex buffers and their associated state.\n * @internal\n */\nexport class BuffersContainer implements WebGLDisposable {\n public readonly linkages: BufferHandleLinkage[] = [];\n protected readonly _vao: VAOHandle;\n private readonly _context: WebGL2RenderingContext;\n\n public static create(): BuffersContainer {\n return new BuffersContainer(System.instance.context);\n }\n\n private constructor(context: WebGL2RenderingContext) {\n this._context = context;\n this._vao = new VAOHandle(this._context);\n }\n\n /** @deprecated in 5.0 Use [Symbol.dispose] instead. */\n public dispose() {\n this[Symbol.dispose]();\n }\n // NB: BufferHandle objects contained within BufferHandleLinkage entries are disposed where they are created because they could be shared among multiple BuffersContainer objects.\n public [Symbol.dispose](): void {\n this._vao[Symbol.dispose]();\n }\n\n public get isDisposed(): boolean {\n return this._vao.isDisposed;\n }\n\n public addBuffer(buffer: BufferHandle, params: BufferParameters[]): void {\n const linkage = BufferHandleLinkage.create(buffer, params);\n this.linkages.push(linkage);\n this._bindLinkage(linkage);\n }\n\n public appendLinkages(linkages: BufferHandleLinkage[]): void {\n for (const linkage of linkages) {\n this.linkages.push(BufferHandleLinkage.clone(linkage));\n this._bindLinkage(linkage);\n }\n }\n\n private _bindLinkage(linkage: BufferHandleLinkage) {\n this.bind();\n linkage.buffer.bind();\n for (const p of linkage.params) {\n System.instance.context.enableVertexAttribArray(p.glAttribLoc);\n if (p.glInstanced) {\n System.instance.vertexAttribDivisor(p.glAttribLoc, 1);\n }\n System.instance.context.vertexAttribPointer(p.glAttribLoc, p.glSize, p.glType, p.glNormalized, p.glStride, p.glOffset);\n }\n this.unbind();\n }\n\n public bind(): void {\n this._vao.bind();\n }\n\n public unbind(): void {\n VAOHandle.unbind(this._context);\n }\n}\n\n/** A handle to a WebGLVertexArrayObjectOES.\n * The WebGLVertexArrayObjectOES is allocated by the constructor and should be freed by a call to dispose().\n * @internal\n */\nexport class VAOHandle implements WebGLDisposable {\n private _context: WebGL2RenderingContext;\n private _arrayObject?: WebGLVertexArrayObjectOES;\n\n /** Allocates the WebGLVertexArrayObjectOES using the supplied context. Free the WebGLVertexArrayObjectOES using dispose() */\n public constructor(context: WebGL2RenderingContext) {\n this._context = context;\n const arrayObject = this._context.createVertexArray();\n\n // vaoExt.createVertexArrayOES() returns WebGLVertexArrayObjectOES | null...\n if (null !== arrayObject) {\n this._arrayObject = arrayObject;\n } else {\n this._arrayObject = undefined;\n }\n\n assert(!this.isDisposed);\n }\n\n public get isDisposed(): boolean { return this._arrayObject === undefined; }\n\n /** @deprecated in 5.0 Use [Symbol.dispose] instead. */\n public dispose() {\n this[Symbol.dispose]();\n }\n\n /** Frees the WebGL vertex array object */\n public [Symbol.dispose](): void {\n if (!this.isDisposed) {\n this._context.deleteVertexArray(this._arrayObject!);\n this._arrayObject = undefined;\n }\n }\n\n /** Binds this vertex array object */\n public bind(): void {\n if (undefined !== this._arrayObject) {\n this._context.bindVertexArray(this._arrayObject);\n }\n }\n\n /** Ensures no vertex array object is bound */\n public static unbind(context: WebGL2RenderingContext): void {\n context.bindVertexArray(null);\n }\n}\n\n/**\n * A handle to a WebGLBuffer, such as a vertex or index buffer.\n * The WebGLBuffer is allocated by the constructor and should be freed by a call to dispose().\n * @internal\n */\nexport class BufferHandle implements WebGLDisposable {\n private _target: GL.Buffer.Target;\n private _glBuffer?: WebGLBuffer;\n private _bytesUsed = 0;\n\n /** Allocates the WebGLBuffer using the supplied context. Free the WebGLBuffer using dispose() */\n public constructor(target: GL.Buffer.Target) {\n this._target = target;\n const glBuffer = System.instance.context.createBuffer();\n\n // gl.createBuffer() returns WebGLBuffer | null...\n if (null !== glBuffer) {\n this._glBuffer = glBuffer;\n } else {\n this._glBuffer = undefined;\n }\n\n assert(!this.isDisposed);\n }\n\n public get isDisposed(): boolean { return this._glBuffer === undefined; }\n public get bytesUsed(): number { return this._bytesUsed; }\n\n /** Frees the WebGL buffer */\n public [Symbol.dispose](): void {\n if (!this.isDisposed) {\n System.instance.context.deleteBuffer(this._glBuffer!);\n this._glBuffer = undefined;\n this._bytesUsed = 0;\n }\n }\n\n /** Binds this buffer to the target specified during construction */\n public bind(): void {\n if (undefined !== this._glBuffer) {\n System.instance.context.bindBuffer(this._target, this._glBuffer);\n }\n }\n\n /** Sets the specified target to be bound to no buffer */\n public unbind(): void { System.instance.context.bindBuffer(this._target, null); }\n\n /** Binds this buffer to the target specified at construction and sets the buffer's data store. */\n public bindData(data: BufferSource, usage: GL.Buffer.Usage = GL.Buffer.Usage.StaticDraw): void {\n this.bind();\n System.instance.context.bufferData(this._target, data, usage);\n this.unbind();\n this._bytesUsed = data.byteLength;\n }\n\n /** Creates a BufferHandle and binds its data */\n public static createBuffer(target: GL.Buffer.Target, data: BufferSource, usage: GL.Buffer.Usage = GL.Buffer.Usage.StaticDraw): BufferHandle | undefined {\n const handle = new BufferHandle(target);\n if (handle.isDisposed) {\n return undefined;\n }\n\n handle.bindData(data, usage);\n return handle;\n }\n /** Creates a BufferHandle and binds its data */\n public static createArrayBuffer(data: BufferSource, usage: GL.Buffer.Usage = GL.Buffer.Usage.StaticDraw) {\n return BufferHandle.createBuffer(GL.Buffer.Target.ArrayBuffer, data, usage);\n }\n\n public isBound(binding: GL.Buffer.Binding) { return System.instance.context.getParameter(binding) === this._glBuffer; }\n}\n\nfunction setScale(index: number, value: number, array: Float32Array) {\n array[index] = 0.0 !== value ? 1.0 / value : value;\n}\n\n/**\n * Converts 2d quantization parameters to a format appropriate for submittal to the GPU.\n * params[0] = origin.x\n * params[1] = origin.y\n * params[2] = scale.x\n * params[3] = scale.y\n * @internal\n */\nexport function qparams2dToArray(params: QParams2d): Float32Array {\n const arr = new Float32Array(4);\n\n arr[0] = params.origin.x;\n arr[1] = params.origin.y;\n setScale(2, params.scale.x, arr);\n setScale(3, params.scale.y, arr);\n\n return arr;\n}\n\n/** @internal */\nexport function qorigin3dToArray(qorigin: Point3d): Float32Array {\n const origin = new Float32Array(3);\n origin[0] = qorigin.x;\n origin[1] = qorigin.y;\n origin[2] = qorigin.z;\n return origin;\n}\n\n/** @internal */\nexport function qscale3dToArray(qscale: Point3d): Float32Array {\n const scale = new Float32Array(3);\n setScale(0, qscale.x, scale);\n setScale(1, qscale.y, scale);\n setScale(2, qscale.z, scale);\n return scale;\n}\n\n/** Converts 3d quantization params to a pair of Float32Arrays\n * @internal\n */\nexport function qparams3dToArray(params: QParams3d): { origin: Float32Array, scale: Float32Array } {\n const origin = qorigin3dToArray(params.origin);\n const scale = qscale3dToArray(params.scale);\n return { origin, scale };\n}\n\n/** A handle to a WebGLBuffer intended to hold quantized 2d points\n * @internal\n */\nexport class QBufferHandle2d extends BufferHandle {\n public readonly params: Float32Array;\n\n public constructor(qParams: QParams2d) {\n super(GL.Buffer.Target.ArrayBuffer);\n this.params = qparams2dToArray(qParams);\n }\n\n public static create(qParams: QParams2d, data: Uint16Array): QBufferHandle2d | undefined {\n const handle = new QBufferHandle2d(qParams);\n if (handle.isDisposed) {\n return undefined;\n }\n\n handle.bindData(data);\n return handle;\n }\n}\n\n/* A handle to a WebGLBuffer intended to hold quantized 3d points\n * @internal\n */\nexport class QBufferHandle3d extends BufferHandle {\n /** The quantization origin in x, y, and z */\n public readonly origin: Float32Array;\n /** The quantization scale in x, y, and z */\n public readonly scale: Float32Array;\n\n public constructor(qParams: QParams3d) {\n super(GL.Buffer.Target.ArrayBuffer);\n this.origin = qorigin3dToArray(qParams.origin);\n this.scale = qscale3dToArray(qParams.scale);\n }\n\n public static create(qParams: QParams3d, data: Uint16Array | Uint8Array | Float32Array): QBufferHandle3d | undefined {\n const handle = new QBufferHandle3d(qParams);\n if (handle.isDisposed) {\n return undefined;\n }\n\n handle.bindData(data);\n return handle;\n }\n}\n"]}
@@ -20,7 +20,7 @@ export declare class BackgroundMapDrape extends TextureDrape {
20
20
  private readonly _plane;
21
21
  private constructor();
22
22
  get isDisposed(): boolean;
23
- dispose(): void;
23
+ [Symbol.dispose](): void;
24
24
  addGraphic(graphic: RenderGraphic): void;
25
25
  static create(draped: TileTreeReference, map: MapTileTreeReference): BackgroundMapDrape;
26
26
  collectGraphics(context: SceneContext): void;
@@ -1 +1 @@
1
- {"version":3,"file":"BackgroundMapDrape.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/BackgroundMapDrape.ts"],"names":[],"mappings":"AAYA,OAAO,EAA6B,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACzG,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AASjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,gBAAgB;AAChB,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,CAAU;IAC3B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAItB;IACd,OAAO,CAAC,aAAa,CAAC,CAAU;IAChC,OAAO,CAAC,oBAAoB,CAAC,CAA4B;IACzD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAoC;IACxE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwF;IAE/G,OAAO;IAMP,IAAoB,UAAU,IAAI,OAAO,CAAwD;IAEjF,OAAO;IAKhB,UAAU,CAAC,OAAO,EAAE,aAAa;WAI1B,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,oBAAoB,GAAG,kBAAkB;IAIvF,eAAe,CAAC,OAAO,EAAE,YAAY;IAsDrC,IAAI,CAAC,MAAM,EAAE,MAAM;CAiE3B"}
1
+ {"version":3,"file":"BackgroundMapDrape.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/BackgroundMapDrape.ts"],"names":[],"mappings":"AAYA,OAAO,EAA6B,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACzG,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AASjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,gBAAgB;AAChB,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,CAAU;IAC3B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAItB;IACd,OAAO,CAAC,aAAa,CAAC,CAAU;IAChC,OAAO,CAAC,oBAAoB,CAAC,CAA4B;IACzD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAoC;IACxE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwF;IAE/G,OAAO;IAMP,IAAoB,UAAU,IAAI,OAAO,CAAwD;IAElF,CAAC,MAAM,CAAC,OAAO,CAAC;IAKxB,UAAU,CAAC,OAAO,EAAE,aAAa;WAI1B,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,oBAAoB,GAAG,kBAAkB;IAIvF,eAAe,CAAC,OAAO,EAAE,YAAY;IAsDrC,IAAI,CAAC,MAAM,EAAE,MAAM;CAiE3B"}
@@ -35,8 +35,8 @@ export class BackgroundMapDrape extends TextureDrape {
35
35
  this._mapTree = mapTree;
36
36
  }
37
37
  get isDisposed() { return super.isDisposed && undefined === this._fbo; }
38
- dispose() {
39
- super.dispose();
38
+ [Symbol.dispose]() {
39
+ super[Symbol.dispose]();
40
40
  this._fbo = dispose(this._fbo);
41
41
  }
42
42
  addGraphic(graphic) {
@@ -58,7 +58,7 @@ export class BackgroundMapDrape extends TextureDrape {
58
58
  const requiredWidth = 2 * Math.max(context.target.viewRect.width, context.target.viewRect.height); // TBD - Size to textured area.
59
59
  const requiredHeight = requiredWidth;
60
60
  if (requiredWidth !== this._width || requiredHeight !== this._height)
61
- this.dispose();
61
+ this[Symbol.dispose]();
62
62
  this._width = requiredWidth;
63
63
  this._height = requiredHeight;
64
64
  const targetTree = this._drapedTree.treeOwner.tileTree;
@@ -1 +1 @@
1
- {"version":3,"file":"BackgroundMapDrape.js","sourceRoot":"","sources":["../../../../src/render/webgl/BackgroundMapDrape.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert, dispose } from \"@itwin/core-bentley\";\nimport { Matrix4d, Plane3dByOriginAndUnitNormal, Point3d, Range3d, Vector3d } from \"@itwin/core-geometry\";\nimport { ColorDef, Frustum, FrustumPlanes, RenderTexture, TextureTransparency } from \"@itwin/core-common\";\nimport { GraphicsCollectorDrawArgs, MapTileTreeReference, TileTreeReference } from \"../../tile/internal\";\nimport { SceneContext } from \"../../ViewContext\";\nimport { ViewState3d } from \"../../ViewState\";\nimport { FeatureSymbology } from \"../FeatureSymbology\";\nimport { RenderGraphic } from \"../RenderGraphic\";\nimport { BatchState } from \"./BatchState\";\nimport { BranchStack } from \"./BranchStack\";\nimport { FrameBuffer } from \"./FrameBuffer\";\nimport { GL } from \"./GL\";\nimport { PlanarTextureProjection } from \"./PlanarTextureProjection\";\nimport { RenderCommands } from \"./RenderCommands\";\nimport { RenderPass } from \"./RenderFlags\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { Texture, TextureHandle } from \"./Texture\";\nimport { TextureDrape } from \"./TextureDrape\";\n\n/** @internal */\nexport class BackgroundMapDrape extends TextureDrape {\n private _fbo?: FrameBuffer;\n private readonly _graphics: RenderGraphic[] = [];\n private _frustum?: Frustum;\n private _width = 0;\n private _height = 0;\n private _mapTree: MapTileTreeReference;\n private _drapedTree: TileTreeReference;\n private static _postProjectionMatrix = Matrix4d.createRowValues(\n 0, 1, 0, 0,\n 0, 0, -1, 0,\n 1, 0, 0, 0,\n 0, 0, 0, 1);\n private _debugFrustum?: Frustum;\n private _debugFrustumGraphic?: RenderGraphic = undefined;\n private readonly _symbologyOverrides = new FeatureSymbology.Overrides();\n private readonly _bgColor = ColorDef.from(0, 0, 0, 255);\n private readonly _plane = Plane3dByOriginAndUnitNormal.create(Point3d.createZero(), Vector3d.create(0, 0, 1))!;\n\n private constructor(drapedTree: TileTreeReference, mapTree: MapTileTreeReference) {\n super();\n this._drapedTree = drapedTree;\n this._mapTree = mapTree;\n }\n\n public override get isDisposed(): boolean { return super.isDisposed && undefined === this._fbo; }\n\n public override dispose() {\n super.dispose();\n this._fbo = dispose(this._fbo);\n }\n\n public addGraphic(graphic: RenderGraphic) {\n this._graphics.push(graphic);\n }\n\n public static create(draped: TileTreeReference, map: MapTileTreeReference): BackgroundMapDrape {\n return new BackgroundMapDrape(draped, map);\n }\n\n public collectGraphics(context: SceneContext) {\n this._graphics.length = 0;\n if (undefined === context.viewingSpace)\n return;\n\n const viewState = context.viewingSpace.view as ViewState3d;\n if (undefined === viewState)\n return;\n\n const tileTree = this._mapTree.treeOwner.load();\n if (undefined === tileTree || !this._mapTree.initializeLayers(context))\n return;\n\n const requiredWidth = 2 * Math.max(context.target.viewRect.width, context.target.viewRect.height); // TBD - Size to textured area.\n const requiredHeight = requiredWidth;\n\n if (requiredWidth !== this._width || requiredHeight !== this._height)\n this.dispose();\n\n this._width = requiredWidth;\n this._height = requiredHeight;\n\n const targetTree = this._drapedTree.treeOwner.tileTree;\n const args = this._drapedTree.createDrawArgs(context);\n if (!targetTree || !args)\n return;\n\n const targetTiles = targetTree.selectTiles(args);\n\n const projection = PlanarTextureProjection.computePlanarTextureProjection(this._plane, context, { tiles: targetTiles, location: args.location }, [this._mapTree], viewState, this._width, this._height, Range3d.createNull());\n if (!projection.textureFrustum || !projection.projectionMatrix || !projection.worldToViewMap)\n return;\n\n this._frustum = projection.textureFrustum;\n this._debugFrustum = projection.debugFrustum;\n this._projectionMatrix = projection.projectionMatrix;\n\n const drawArgs = GraphicsCollectorDrawArgs.create(context, this, this._mapTree, FrustumPlanes.fromFrustum(this._frustum), projection.worldToViewMap);\n if (undefined !== drawArgs)\n tileTree.draw(drawArgs);\n\n if (context.target.debugControl && context.target.debugControl.displayDrapeFrustum) {\n this._debugFrustumGraphic = dispose(this._debugFrustumGraphic);\n const builder = context.createSceneGraphicBuilder();\n builder.setSymbology(ColorDef.green, ColorDef.green, 1);\n builder.addFrustum(context.viewingSpace.getFrustum());\n builder.setSymbology(ColorDef.red, ColorDef.red, 1);\n builder.addFrustum(this._debugFrustum!);\n builder.setSymbology(ColorDef.white, ColorDef.white, 1);\n builder.addFrustum(this._frustum);\n this._debugFrustumGraphic = builder.finish();\n }\n }\n\n public draw(target: Target) {\n if (undefined !== this._debugFrustumGraphic)\n target.graphics.foreground.push(this._debugFrustumGraphic);\n\n if (undefined === this._frustum || this._graphics.length === 0)\n return;\n\n if (undefined === this._fbo) {\n const colorTextureHandle = TextureHandle.createForAttachment(this._width, this._height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\n if (undefined === colorTextureHandle) {\n assert(false, \"Failed to create planar texture\");\n return;\n }\n\n this._texture = new Texture({ ownership: \"external\", type: RenderTexture.Type.TileSection, handle: colorTextureHandle, transparency: TextureTransparency.Opaque });\n this._fbo = FrameBuffer.create([colorTextureHandle]);\n }\n if (undefined === this._fbo) {\n assert(false, \"unable to create frame buffer object\");\n return;\n }\n\n System.instance.glTimer.beginOperation(\"Terrain Projection\");\n\n const prevState = System.instance.currentRenderState.clone();\n System.instance.context.viewport(0, 0, this._width, this._height);\n\n const prevPlan = target.plan;\n const drawingParams = PlanarTextureProjection.getTextureDrawingParams(target);\n const stack = new BranchStack();\n stack.changeRenderPlan(drawingParams.viewFlags, prevPlan.is3d, prevPlan.hline);\n stack.setSymbologyOverrides(this._symbologyOverrides);\n\n const batchState = new BatchState(stack);\n System.instance.applyRenderState(drawingParams.state);\n\n target.uniforms.style.changeBackgroundColor(this._bgColor); // Avoid white on white reversal. Will be reset below in changeRenderPlan().\n target.changeFrustum(this._frustum, this._frustum.getFraction(), true);\n\n const prevProjMatrix = target.uniforms.frustum.projectionMatrix;\n target.uniforms.frustum.changeProjectionMatrix(BackgroundMapDrape._postProjectionMatrix.multiplyMatrixMatrix(prevProjMatrix));\n\n target.uniforms.branch.pushState(stack.top);\n\n const renderCommands = new RenderCommands(target, stack, batchState);\n renderCommands.addGraphics(this._graphics, RenderPass.OpaqueGeneral);\n\n const system = System.instance;\n const gl = system.context;\n\n system.frameBufferStack.execute(this._fbo, true, false, () => {\n gl.clearColor(0, 0, 0, 0);\n gl.clear(GL.BufferBit.Color);\n target.techniques.execute(target, renderCommands.getCommands(RenderPass.OpaqueGeneral), RenderPass.PlanarClassification); // Draw these with RenderPass.PlanarClassification (rather than Opaque...) so that the pick ordering is avoided.\n });\n\n target.uniforms.branch.pop();\n\n batchState.reset(); // Reset the batch Ids...\n target.changeRenderPlan(prevPlan);\n\n system.applyRenderState(prevState);\n gl.viewport(0, 0, target.viewRect.width, target.viewRect.height); // Restore viewport\n system.glTimer.endOperation();\n }\n}\n"]}
1
+ {"version":3,"file":"BackgroundMapDrape.js","sourceRoot":"","sources":["../../../../src/render/webgl/BackgroundMapDrape.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert, dispose } from \"@itwin/core-bentley\";\nimport { Matrix4d, Plane3dByOriginAndUnitNormal, Point3d, Range3d, Vector3d } from \"@itwin/core-geometry\";\nimport { ColorDef, Frustum, FrustumPlanes, RenderTexture, TextureTransparency } from \"@itwin/core-common\";\nimport { GraphicsCollectorDrawArgs, MapTileTreeReference, TileTreeReference } from \"../../tile/internal\";\nimport { SceneContext } from \"../../ViewContext\";\nimport { ViewState3d } from \"../../ViewState\";\nimport { FeatureSymbology } from \"../FeatureSymbology\";\nimport { RenderGraphic } from \"../RenderGraphic\";\nimport { BatchState } from \"./BatchState\";\nimport { BranchStack } from \"./BranchStack\";\nimport { FrameBuffer } from \"./FrameBuffer\";\nimport { GL } from \"./GL\";\nimport { PlanarTextureProjection } from \"./PlanarTextureProjection\";\nimport { RenderCommands } from \"./RenderCommands\";\nimport { RenderPass } from \"./RenderFlags\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { Texture, TextureHandle } from \"./Texture\";\nimport { TextureDrape } from \"./TextureDrape\";\n\n/** @internal */\nexport class BackgroundMapDrape extends TextureDrape {\n private _fbo?: FrameBuffer;\n private readonly _graphics: RenderGraphic[] = [];\n private _frustum?: Frustum;\n private _width = 0;\n private _height = 0;\n private _mapTree: MapTileTreeReference;\n private _drapedTree: TileTreeReference;\n private static _postProjectionMatrix = Matrix4d.createRowValues(\n 0, 1, 0, 0,\n 0, 0, -1, 0,\n 1, 0, 0, 0,\n 0, 0, 0, 1);\n private _debugFrustum?: Frustum;\n private _debugFrustumGraphic?: RenderGraphic = undefined;\n private readonly _symbologyOverrides = new FeatureSymbology.Overrides();\n private readonly _bgColor = ColorDef.from(0, 0, 0, 255);\n private readonly _plane = Plane3dByOriginAndUnitNormal.create(Point3d.createZero(), Vector3d.create(0, 0, 1))!;\n\n private constructor(drapedTree: TileTreeReference, mapTree: MapTileTreeReference) {\n super();\n this._drapedTree = drapedTree;\n this._mapTree = mapTree;\n }\n\n public override get isDisposed(): boolean { return super.isDisposed && undefined === this._fbo; }\n\n public override[Symbol.dispose]() {\n super[Symbol.dispose]();\n this._fbo = dispose(this._fbo);\n }\n\n public addGraphic(graphic: RenderGraphic) {\n this._graphics.push(graphic);\n }\n\n public static create(draped: TileTreeReference, map: MapTileTreeReference): BackgroundMapDrape {\n return new BackgroundMapDrape(draped, map);\n }\n\n public collectGraphics(context: SceneContext) {\n this._graphics.length = 0;\n if (undefined === context.viewingSpace)\n return;\n\n const viewState = context.viewingSpace.view as ViewState3d;\n if (undefined === viewState)\n return;\n\n const tileTree = this._mapTree.treeOwner.load();\n if (undefined === tileTree || !this._mapTree.initializeLayers(context))\n return;\n\n const requiredWidth = 2 * Math.max(context.target.viewRect.width, context.target.viewRect.height); // TBD - Size to textured area.\n const requiredHeight = requiredWidth;\n\n if (requiredWidth !== this._width || requiredHeight !== this._height)\n this[Symbol.dispose]();\n\n this._width = requiredWidth;\n this._height = requiredHeight;\n\n const targetTree = this._drapedTree.treeOwner.tileTree;\n const args = this._drapedTree.createDrawArgs(context);\n if (!targetTree || !args)\n return;\n\n const targetTiles = targetTree.selectTiles(args);\n\n const projection = PlanarTextureProjection.computePlanarTextureProjection(this._plane, context, { tiles: targetTiles, location: args.location }, [this._mapTree], viewState, this._width, this._height, Range3d.createNull());\n if (!projection.textureFrustum || !projection.projectionMatrix || !projection.worldToViewMap)\n return;\n\n this._frustum = projection.textureFrustum;\n this._debugFrustum = projection.debugFrustum;\n this._projectionMatrix = projection.projectionMatrix;\n\n const drawArgs = GraphicsCollectorDrawArgs.create(context, this, this._mapTree, FrustumPlanes.fromFrustum(this._frustum), projection.worldToViewMap);\n if (undefined !== drawArgs)\n tileTree.draw(drawArgs);\n\n if (context.target.debugControl && context.target.debugControl.displayDrapeFrustum) {\n this._debugFrustumGraphic = dispose(this._debugFrustumGraphic);\n const builder = context.createSceneGraphicBuilder();\n builder.setSymbology(ColorDef.green, ColorDef.green, 1);\n builder.addFrustum(context.viewingSpace.getFrustum());\n builder.setSymbology(ColorDef.red, ColorDef.red, 1);\n builder.addFrustum(this._debugFrustum!);\n builder.setSymbology(ColorDef.white, ColorDef.white, 1);\n builder.addFrustum(this._frustum);\n this._debugFrustumGraphic = builder.finish();\n }\n }\n\n public draw(target: Target) {\n if (undefined !== this._debugFrustumGraphic)\n target.graphics.foreground.push(this._debugFrustumGraphic);\n\n if (undefined === this._frustum || this._graphics.length === 0)\n return;\n\n if (undefined === this._fbo) {\n const colorTextureHandle = TextureHandle.createForAttachment(this._width, this._height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\n if (undefined === colorTextureHandle) {\n assert(false, \"Failed to create planar texture\");\n return;\n }\n\n this._texture = new Texture({ ownership: \"external\", type: RenderTexture.Type.TileSection, handle: colorTextureHandle, transparency: TextureTransparency.Opaque });\n this._fbo = FrameBuffer.create([colorTextureHandle]);\n }\n if (undefined === this._fbo) {\n assert(false, \"unable to create frame buffer object\");\n return;\n }\n\n System.instance.glTimer.beginOperation(\"Terrain Projection\");\n\n const prevState = System.instance.currentRenderState.clone();\n System.instance.context.viewport(0, 0, this._width, this._height);\n\n const prevPlan = target.plan;\n const drawingParams = PlanarTextureProjection.getTextureDrawingParams(target);\n const stack = new BranchStack();\n stack.changeRenderPlan(drawingParams.viewFlags, prevPlan.is3d, prevPlan.hline);\n stack.setSymbologyOverrides(this._symbologyOverrides);\n\n const batchState = new BatchState(stack);\n System.instance.applyRenderState(drawingParams.state);\n\n target.uniforms.style.changeBackgroundColor(this._bgColor); // Avoid white on white reversal. Will be reset below in changeRenderPlan().\n target.changeFrustum(this._frustum, this._frustum.getFraction(), true);\n\n const prevProjMatrix = target.uniforms.frustum.projectionMatrix;\n target.uniforms.frustum.changeProjectionMatrix(BackgroundMapDrape._postProjectionMatrix.multiplyMatrixMatrix(prevProjMatrix));\n\n target.uniforms.branch.pushState(stack.top);\n\n const renderCommands = new RenderCommands(target, stack, batchState);\n renderCommands.addGraphics(this._graphics, RenderPass.OpaqueGeneral);\n\n const system = System.instance;\n const gl = system.context;\n\n system.frameBufferStack.execute(this._fbo, true, false, () => {\n gl.clearColor(0, 0, 0, 0);\n gl.clear(GL.BufferBit.Color);\n target.techniques.execute(target, renderCommands.getCommands(RenderPass.OpaqueGeneral), RenderPass.PlanarClassification); // Draw these with RenderPass.PlanarClassification (rather than Opaque...) so that the pick ordering is avoided.\n });\n\n target.uniforms.branch.pop();\n\n batchState.reset(); // Reset the batch Ids...\n target.changeRenderPlan(prevPlan);\n\n system.applyRenderState(prevState);\n gl.viewport(0, 0, target.viewRect.width, target.viewRect.height); // Restore viewport\n system.glTimer.endOperation();\n }\n}\n"]}
@@ -68,7 +68,7 @@ export declare abstract class CachedGeometry implements WebGLDisposable, RenderM
68
68
  /** Returns the scale of this geometry's quantization parameters. */
69
69
  abstract get qScale(): Float32Array;
70
70
  abstract draw(): void;
71
- abstract dispose(): void;
71
+ abstract [Symbol.dispose](): void;
72
72
  get materialInfo(): MaterialInfo | undefined;
73
73
  get hasMaterialAtlas(): boolean;
74
74
  get polylineBuffers(): PolylineBuffers | undefined;
@@ -117,7 +117,7 @@ export declare class IndexedGeometryParams implements WebGLDisposable {
117
117
  static create(positions: Uint16Array, qParams: QParams3d, indices: Uint32Array): IndexedGeometryParams | undefined;
118
118
  static createFromList(positions: QPoint3dList, indices: Uint32Array): IndexedGeometryParams | undefined;
119
119
  get isDisposed(): boolean;
120
- dispose(): void;
120
+ [Symbol.dispose](): void;
121
121
  }
122
122
  /** A geometric primitive which is rendered using gl.drawElements() with one or more vertex buffers indexed by an index buffer.
123
123
  * @internal
@@ -127,7 +127,7 @@ export declare abstract class IndexedGeometry extends CachedGeometry {
127
127
  protected _wantWoWReversal(_target: Target): boolean;
128
128
  protected constructor(params: IndexedGeometryParams);
129
129
  get isDisposed(): boolean;
130
- dispose(): void;
130
+ [Symbol.dispose](): void;
131
131
  draw(): void;
132
132
  get qOrigin(): Float32Array;
133
133
  get qScale(): Float32Array;
@@ -141,7 +141,7 @@ export declare class SkyBoxGeometryParams implements WebGLDisposable {
141
141
  protected constructor(positions: QBufferHandle3d);
142
142
  static create(positions: Uint16Array, qparams: QParams3d): SkyBoxGeometryParams | undefined;
143
143
  get isDisposed(): boolean;
144
- dispose(): void;
144
+ [Symbol.dispose](): void;
145
145
  }
146
146
  /** Geometry used for view-space rendering techniques.
147
147
  * @internal
@@ -160,7 +160,7 @@ export declare class SkyBoxQuadsGeometry extends CachedGeometry {
160
160
  get qOrigin(): Float32Array;
161
161
  get qScale(): Float32Array;
162
162
  get isDisposed(): boolean;
163
- dispose(): void;
163
+ [Symbol.dispose](): void;
164
164
  protected _wantWoWReversal(_target: Target): boolean;
165
165
  }
166
166
  /** Geometry used for view-space rendering techniques.
@@ -203,7 +203,7 @@ export declare class SkySphereViewportQuadGeometry extends ViewportQuadGeometry
203
203
  protected constructor(params: IndexedGeometryParams, skybox: RenderSkySphereParams | RenderSkyGradientParams, techniqueId: TechniqueId);
204
204
  static createGeometry(skybox: RenderSkySphereParams | RenderSkyGradientParams): SkySphereViewportQuadGeometry | undefined;
205
205
  get isDisposed(): boolean;
206
- dispose(): void;
206
+ [Symbol.dispose](): void;
207
207
  }
208
208
  /** Geometry used when rendering ambient occlusion information to an output texture
209
209
  * @internal
@@ -338,7 +338,7 @@ export declare class ScreenPointsGeometry extends CachedGeometry {
338
338
  static createGeometry(width: number, height: number, depth: WebGLTexture): ScreenPointsGeometry;
339
339
  draw(): void;
340
340
  get isDisposed(): boolean;
341
- dispose(): void;
341
+ [Symbol.dispose](): void;
342
342
  collectStatistics(stats: RenderMemory.Statistics): void;
343
343
  protected _wantWoWReversal(_target: Target): boolean;
344
344
  get techniqueId(): TechniqueId;
@@ -357,6 +357,6 @@ export declare class PolylineBuffers implements WebGLDisposable {
357
357
  static create(polyline: TesselatedPolyline): PolylineBuffers | undefined;
358
358
  collectStatistics(stats: RenderMemory.Statistics, type: RenderMemory.BufferType): void;
359
359
  get isDisposed(): boolean;
360
- dispose(): void;
360
+ [Symbol.dispose](): void;
361
361
  }
362
362
  //# sourceMappingURL=CachedGeometry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CachedGeometry.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/CachedGeometry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CachedGeometry.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/CachedGeometry.ts"],"names":[],"mappings":"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"}