@itwin/core-frontend 5.1.0-dev.7 → 5.1.0-dev.71

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 (735) hide show
  1. package/CHANGELOG.md +92 -1
  2. package/lib/cjs/AccuDraw.d.ts +2 -0
  3. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  4. package/lib/cjs/AccuDraw.js +4 -2
  5. package/lib/cjs/AccuDraw.js.map +1 -1
  6. package/lib/cjs/AccuSnap.d.ts.map +1 -1
  7. package/lib/cjs/AccuSnap.js +15 -6
  8. package/lib/cjs/AccuSnap.js.map +1 -1
  9. package/lib/cjs/AuxCoordSys.js +1 -1
  10. package/lib/cjs/AuxCoordSys.js.map +1 -1
  11. package/lib/cjs/DisplayStyleState.d.ts +37 -0
  12. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  13. package/lib/cjs/DisplayStyleState.js +65 -0
  14. package/lib/cjs/DisplayStyleState.js.map +1 -1
  15. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  16. package/lib/cjs/DrawingViewState.js +1 -0
  17. package/lib/cjs/DrawingViewState.js.map +1 -1
  18. package/lib/cjs/GraphicalEditingScope.d.ts +1 -1
  19. package/lib/cjs/GraphicalEditingScope.d.ts.map +1 -1
  20. package/lib/cjs/GraphicalEditingScope.js +1 -1
  21. package/lib/cjs/GraphicalEditingScope.js.map +1 -1
  22. package/lib/cjs/HitDetail.d.ts +1 -1
  23. package/lib/cjs/HitDetail.d.ts.map +1 -1
  24. package/lib/cjs/HitDetail.js.map +1 -1
  25. package/lib/cjs/IModelApp.d.ts +19 -4
  26. package/lib/cjs/IModelApp.d.ts.map +1 -1
  27. package/lib/cjs/IModelApp.js +21 -2
  28. package/lib/cjs/IModelApp.js.map +1 -1
  29. package/lib/cjs/IModelConnection.d.ts +8 -9
  30. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  31. package/lib/cjs/IModelConnection.js +52 -24
  32. package/lib/cjs/IModelConnection.js.map +1 -1
  33. package/lib/cjs/IpcApp.d.ts +2 -1
  34. package/lib/cjs/IpcApp.d.ts.map +1 -1
  35. package/lib/cjs/IpcApp.js +4 -2
  36. package/lib/cjs/IpcApp.js.map +1 -1
  37. package/lib/cjs/RealityDataSource.d.ts +65 -3
  38. package/lib/cjs/RealityDataSource.d.ts.map +1 -1
  39. package/lib/cjs/RealityDataSource.js +79 -3
  40. package/lib/cjs/RealityDataSource.js.map +1 -1
  41. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js +1 -1
  42. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  43. package/lib/cjs/SelectionSet.d.ts +7 -7
  44. package/lib/cjs/SelectionSet.js +3 -3
  45. package/lib/cjs/SelectionSet.js.map +1 -1
  46. package/lib/cjs/SheetViewState.d.ts +2 -0
  47. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  48. package/lib/cjs/SheetViewState.js +25 -3
  49. package/lib/cjs/SheetViewState.js.map +1 -1
  50. package/lib/cjs/ViewState.d.ts +1 -1
  51. package/lib/cjs/ViewState.js +1 -1
  52. package/lib/cjs/ViewState.js.map +1 -1
  53. package/lib/cjs/Viewport.d.ts +6 -4
  54. package/lib/cjs/Viewport.d.ts.map +1 -1
  55. package/lib/cjs/Viewport.js +23 -3
  56. package/lib/cjs/Viewport.js.map +1 -1
  57. package/lib/cjs/common/gltf/GltfSchema.d.ts +18 -0
  58. package/lib/cjs/common/gltf/GltfSchema.d.ts.map +1 -1
  59. package/lib/cjs/common/gltf/GltfSchema.js +1 -0
  60. package/lib/cjs/common/gltf/GltfSchema.js.map +1 -1
  61. package/lib/cjs/common/imdl/CompactEdges.d.ts +11 -0
  62. package/lib/cjs/common/imdl/CompactEdges.d.ts.map +1 -1
  63. package/lib/cjs/common/imdl/CompactEdges.js +9 -6
  64. package/lib/cjs/common/imdl/CompactEdges.js.map +1 -1
  65. package/lib/cjs/common/imdl/ImdlSchema.d.ts +5 -1
  66. package/lib/cjs/common/imdl/ImdlSchema.d.ts.map +1 -1
  67. package/lib/cjs/common/imdl/ImdlSchema.js +4 -0
  68. package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -1
  69. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  70. package/lib/cjs/common/imdl/ParseImdlDocument.js +11 -9
  71. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
  72. package/lib/cjs/common/internal/render/EdgeParams.d.ts +7 -2
  73. package/lib/cjs/common/internal/render/EdgeParams.d.ts.map +1 -1
  74. package/lib/cjs/common/internal/render/EdgeParams.js +30 -8
  75. package/lib/cjs/common/internal/render/EdgeParams.js.map +1 -1
  76. package/lib/cjs/common/internal/render/MeshPrimitives.d.ts +2 -1
  77. package/lib/cjs/common/internal/render/MeshPrimitives.d.ts.map +1 -1
  78. package/lib/cjs/common/internal/render/MeshPrimitives.js +5 -7
  79. package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -1
  80. package/lib/cjs/common/internal/render/PolylineParams.d.ts +8 -3
  81. package/lib/cjs/common/internal/render/PolylineParams.d.ts.map +1 -1
  82. package/lib/cjs/common/internal/render/PolylineParams.js +6 -9
  83. package/lib/cjs/common/internal/render/PolylineParams.js.map +1 -1
  84. package/lib/cjs/common/internal/render/VertexTableSplitter.d.ts.map +1 -1
  85. package/lib/cjs/common/internal/render/VertexTableSplitter.js +9 -7
  86. package/lib/cjs/common/internal/render/VertexTableSplitter.js.map +1 -1
  87. package/lib/cjs/core-frontend.d.ts +2 -2
  88. package/lib/cjs/core-frontend.d.ts.map +1 -1
  89. package/lib/cjs/core-frontend.js +1 -1
  90. package/lib/cjs/core-frontend.js.map +1 -1
  91. package/lib/cjs/extension/ExtensionRuntime.js +15 -2
  92. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  93. package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
  94. package/lib/cjs/internal/GoogleMapsDecorator.d.ts +53 -0
  95. package/lib/cjs/internal/GoogleMapsDecorator.d.ts.map +1 -0
  96. package/lib/cjs/internal/GoogleMapsDecorator.js +132 -0
  97. package/lib/cjs/internal/GoogleMapsDecorator.js.map +1 -0
  98. package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.d.ts +83 -0
  99. package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.d.ts.map +1 -0
  100. package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.js +201 -0
  101. package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -0
  102. package/lib/cjs/internal/ScriptUtils.d.ts +5 -0
  103. package/lib/cjs/internal/ScriptUtils.d.ts.map +1 -0
  104. package/lib/cjs/internal/ScriptUtils.js +120 -0
  105. package/lib/cjs/internal/ScriptUtils.js.map +1 -0
  106. package/lib/cjs/internal/cross-package.d.ts +1 -0
  107. package/lib/cjs/internal/cross-package.d.ts.map +1 -1
  108. package/lib/cjs/internal/cross-package.js +4 -1
  109. package/lib/cjs/internal/cross-package.js.map +1 -1
  110. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.d.ts +1 -1
  111. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
  112. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js +1 -1
  113. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
  114. package/lib/cjs/internal/render/webgl/AttributeBuffers.d.ts +2 -2
  115. package/lib/cjs/internal/render/webgl/AttributeBuffers.d.ts.map +1 -1
  116. package/lib/cjs/internal/render/webgl/AttributeBuffers.js +2 -2
  117. package/lib/cjs/internal/render/webgl/AttributeBuffers.js.map +1 -1
  118. package/lib/cjs/internal/render/webgl/BatchUniforms.js +1 -1
  119. package/lib/cjs/internal/render/webgl/BatchUniforms.js.map +1 -1
  120. package/lib/cjs/internal/render/webgl/BranchStack.d.ts +2 -2
  121. package/lib/cjs/internal/render/webgl/BranchStack.d.ts.map +1 -1
  122. package/lib/cjs/internal/render/webgl/BranchStack.js +3 -2
  123. package/lib/cjs/internal/render/webgl/BranchStack.js.map +1 -1
  124. package/lib/cjs/internal/render/webgl/BranchState.d.ts +4 -2
  125. package/lib/cjs/internal/render/webgl/BranchState.d.ts.map +1 -1
  126. package/lib/cjs/internal/render/webgl/BranchState.js +4 -1
  127. package/lib/cjs/internal/render/webgl/BranchState.js.map +1 -1
  128. package/lib/cjs/internal/render/webgl/BranchUniforms.d.ts +2 -2
  129. package/lib/cjs/internal/render/webgl/BranchUniforms.d.ts.map +1 -1
  130. package/lib/cjs/internal/render/webgl/BranchUniforms.js +2 -2
  131. package/lib/cjs/internal/render/webgl/BranchUniforms.js.map +1 -1
  132. package/lib/cjs/internal/render/webgl/ClippingProgram.d.ts +1 -1
  133. package/lib/cjs/internal/render/webgl/ClippingProgram.d.ts.map +1 -1
  134. package/lib/cjs/internal/render/webgl/ClippingProgram.js +1 -1
  135. package/lib/cjs/internal/render/webgl/ClippingProgram.js.map +1 -1
  136. package/lib/cjs/internal/render/webgl/ContourUniforms.d.ts.map +1 -1
  137. package/lib/cjs/internal/render/webgl/ContourUniforms.js +2 -3
  138. package/lib/cjs/internal/render/webgl/ContourUniforms.js.map +1 -1
  139. package/lib/cjs/internal/render/webgl/Contours.js +8 -8
  140. package/lib/cjs/internal/render/webgl/Contours.js.map +1 -1
  141. package/lib/cjs/internal/render/webgl/EdgeGeometry.d.ts +8 -6
  142. package/lib/cjs/internal/render/webgl/EdgeGeometry.d.ts.map +1 -1
  143. package/lib/cjs/internal/render/webgl/EdgeGeometry.js +21 -7
  144. package/lib/cjs/internal/render/webgl/EdgeGeometry.js.map +1 -1
  145. package/lib/cjs/internal/render/webgl/Graphic.d.ts +2 -1
  146. package/lib/cjs/internal/render/webgl/Graphic.d.ts.map +1 -1
  147. package/lib/cjs/internal/render/webgl/Graphic.js +2 -0
  148. package/lib/cjs/internal/render/webgl/Graphic.js.map +1 -1
  149. package/lib/cjs/internal/render/webgl/IndexedEdgeGeometry.d.ts +6 -1
  150. package/lib/cjs/internal/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  151. package/lib/cjs/internal/render/webgl/IndexedEdgeGeometry.js +19 -4
  152. package/lib/cjs/internal/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  153. package/lib/cjs/internal/render/webgl/Mesh.d.ts +1 -1
  154. package/lib/cjs/internal/render/webgl/Mesh.d.ts.map +1 -1
  155. package/lib/cjs/internal/render/webgl/Mesh.js +13 -6
  156. package/lib/cjs/internal/render/webgl/Mesh.js.map +1 -1
  157. package/lib/cjs/internal/render/webgl/SceneCompositor.js +2 -1
  158. package/lib/cjs/internal/render/webgl/SceneCompositor.js.map +1 -1
  159. package/lib/cjs/internal/render/webgl/ShaderProgram.d.ts +2 -2
  160. package/lib/cjs/internal/render/webgl/ShaderProgram.d.ts.map +1 -1
  161. package/lib/cjs/internal/render/webgl/ShaderProgram.js +2 -2
  162. package/lib/cjs/internal/render/webgl/ShaderProgram.js.map +1 -1
  163. package/lib/cjs/internal/render/webgl/Target.d.ts +2 -1
  164. package/lib/cjs/internal/render/webgl/Target.d.ts.map +1 -1
  165. package/lib/cjs/internal/render/webgl/Target.js +3 -1
  166. package/lib/cjs/internal/render/webgl/Target.js.map +1 -1
  167. package/lib/cjs/internal/render/webgl/Technique.d.ts +3 -3
  168. package/lib/cjs/internal/render/webgl/Technique.d.ts.map +1 -1
  169. package/lib/cjs/internal/render/webgl/Technique.js +3 -3
  170. package/lib/cjs/internal/render/webgl/Technique.js.map +1 -1
  171. package/lib/cjs/internal/tile/ClassifierTileTree.js +3 -1
  172. package/lib/cjs/internal/tile/ClassifierTileTree.js.map +1 -1
  173. package/lib/cjs/internal/tile/IModelTile.d.ts +1 -0
  174. package/lib/cjs/internal/tile/IModelTile.d.ts.map +1 -1
  175. package/lib/cjs/internal/tile/IModelTile.js +4 -0
  176. package/lib/cjs/internal/tile/IModelTile.js.map +1 -1
  177. package/lib/cjs/internal/tile/IModelTileTree.d.ts +4 -2
  178. package/lib/cjs/internal/tile/IModelTileTree.d.ts.map +1 -1
  179. package/lib/cjs/internal/tile/IModelTileTree.js +58 -0
  180. package/lib/cjs/internal/tile/IModelTileTree.js.map +1 -1
  181. package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -1
  182. package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js +8 -0
  183. package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
  184. package/lib/cjs/internal/tile/OrbitGtTileTree.d.ts +4 -1
  185. package/lib/cjs/internal/tile/OrbitGtTileTree.d.ts.map +1 -1
  186. package/lib/cjs/internal/tile/OrbitGtTileTree.js +4 -0
  187. package/lib/cjs/internal/tile/OrbitGtTileTree.js.map +1 -1
  188. package/lib/cjs/internal/tile/PrimaryTileTree.d.ts.map +1 -1
  189. package/lib/cjs/internal/tile/PrimaryTileTree.js +5 -4
  190. package/lib/cjs/internal/tile/PrimaryTileTree.js.map +1 -1
  191. package/lib/cjs/internal/tile/RealityModelTileTree.d.ts +26 -7
  192. package/lib/cjs/internal/tile/RealityModelTileTree.d.ts.map +1 -1
  193. package/lib/cjs/internal/tile/RealityModelTileTree.js +48 -21
  194. package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
  195. package/lib/cjs/internal/tile/RealityTileLoader.d.ts +2 -2
  196. package/lib/cjs/internal/tile/RealityTileLoader.d.ts.map +1 -1
  197. package/lib/cjs/internal/tile/RealityTileLoader.js +10 -2
  198. package/lib/cjs/internal/tile/RealityTileLoader.js.map +1 -1
  199. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +1 -1
  200. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  201. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +1 -1
  202. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  203. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +1 -1
  204. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
  205. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +1 -1
  206. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  207. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +1 -1
  208. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  209. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  210. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  211. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +1 -1
  212. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  213. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +1 -1
  214. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  215. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +4 -0
  216. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  217. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +52 -11
  218. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  219. package/lib/cjs/internal/tile/map/WmtsCapabilities.d.ts +7 -0
  220. package/lib/cjs/internal/tile/map/WmtsCapabilities.d.ts.map +1 -1
  221. package/lib/cjs/internal/tile/map/WmtsCapabilities.js +17 -0
  222. package/lib/cjs/internal/tile/map/WmtsCapabilities.js.map +1 -1
  223. package/lib/cjs/internal/webgl.d.ts +1 -1
  224. package/lib/cjs/internal/webgl.d.ts.map +1 -1
  225. package/lib/cjs/internal/webgl.js.map +1 -1
  226. package/lib/cjs/properties/AngleDescription.d.ts +4 -1
  227. package/lib/cjs/properties/AngleDescription.d.ts.map +1 -1
  228. package/lib/cjs/properties/AngleDescription.js +10 -2
  229. package/lib/cjs/properties/AngleDescription.js.map +1 -1
  230. package/lib/cjs/properties/FormattedQuantityDescription.d.ts +11 -1
  231. package/lib/cjs/properties/FormattedQuantityDescription.d.ts.map +1 -1
  232. package/lib/cjs/properties/FormattedQuantityDescription.js +7 -2
  233. package/lib/cjs/properties/FormattedQuantityDescription.js.map +1 -1
  234. package/lib/cjs/properties/LengthDescription.d.ts +12 -3
  235. package/lib/cjs/properties/LengthDescription.d.ts.map +1 -1
  236. package/lib/cjs/properties/LengthDescription.js +30 -6
  237. package/lib/cjs/properties/LengthDescription.js.map +1 -1
  238. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +103 -7
  239. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  240. package/lib/cjs/quantity-formatting/QuantityFormatter.js +210 -23
  241. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  242. package/lib/cjs/render/Decorations.d.ts +1 -1
  243. package/lib/cjs/render/Decorations.d.ts.map +1 -1
  244. package/lib/cjs/render/Decorations.js +1 -1
  245. package/lib/cjs/render/Decorations.js.map +1 -1
  246. package/lib/cjs/render/GraphicBranch.d.ts +4 -2
  247. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  248. package/lib/cjs/render/GraphicBranch.js +1 -1
  249. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  250. package/lib/cjs/render/MeshArgs.d.ts +8 -3
  251. package/lib/cjs/render/MeshArgs.d.ts.map +1 -1
  252. package/lib/cjs/render/MeshArgs.js.map +1 -1
  253. package/lib/cjs/render/RenderGraphic.d.ts +1 -1
  254. package/lib/cjs/render/RenderGraphic.d.ts.map +1 -1
  255. package/lib/cjs/render/RenderGraphic.js.map +1 -1
  256. package/lib/cjs/render/RenderSystem.d.ts +2 -2
  257. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  258. package/lib/cjs/render/RenderSystem.js.map +1 -1
  259. package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts +1 -1
  260. package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
  261. package/lib/cjs/request/Request.d.ts +2 -2
  262. package/lib/cjs/request/Request.js.map +1 -1
  263. package/lib/cjs/tile/GltfReader.d.ts +6 -2
  264. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  265. package/lib/cjs/tile/GltfReader.js +154 -18
  266. package/lib/cjs/tile/GltfReader.js.map +1 -1
  267. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  268. package/lib/cjs/tile/RealityTile.d.ts +9 -0
  269. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  270. package/lib/cjs/tile/RealityTile.js +12 -0
  271. package/lib/cjs/tile/RealityTile.js.map +1 -1
  272. package/lib/cjs/tile/RealityTileTree.d.ts +4 -0
  273. package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
  274. package/lib/cjs/tile/RealityTileTree.js +4 -0
  275. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  276. package/lib/cjs/tile/Tile.d.ts +1 -1
  277. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  278. package/lib/cjs/tile/Tile.js +1 -1
  279. package/lib/cjs/tile/Tile.js.map +1 -1
  280. package/lib/cjs/tile/TileAdmin.d.ts +10 -0
  281. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  282. package/lib/cjs/tile/TileAdmin.js +3 -0
  283. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  284. package/lib/cjs/tile/TileGeometryCollector.d.ts +5 -0
  285. package/lib/cjs/tile/TileGeometryCollector.d.ts.map +1 -1
  286. package/lib/cjs/tile/TileGeometryCollector.js.map +1 -1
  287. package/lib/cjs/tile/TileTree.d.ts +15 -2
  288. package/lib/cjs/tile/TileTree.d.ts.map +1 -1
  289. package/lib/cjs/tile/TileTree.js +14 -1
  290. package/lib/cjs/tile/TileTree.js.map +1 -1
  291. package/lib/cjs/tile/TileTreeReference.d.ts +17 -3
  292. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  293. package/lib/cjs/tile/TileTreeReference.js +11 -5
  294. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  295. package/lib/cjs/tile/map/CesiumTerrainProvider.js +1 -1
  296. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  297. package/lib/cjs/tile/map/ImageryTileTree.d.ts +2 -2
  298. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  299. package/lib/cjs/tile/map/ImageryTileTree.js +2 -2
  300. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  301. package/lib/cjs/tile/map/MapCartoRectangle.d.ts +10 -0
  302. package/lib/cjs/tile/map/MapCartoRectangle.d.ts.map +1 -1
  303. package/lib/cjs/tile/map/MapCartoRectangle.js +12 -0
  304. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  305. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +3 -3
  306. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  307. package/lib/cjs/tile/map/MapLayerImageryProvider.js +9 -5
  308. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  309. package/lib/cjs/tile/map/MapTileTree.d.ts +1 -1
  310. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  311. package/lib/cjs/tile/map/MapTileTree.js +1 -1
  312. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  313. package/lib/cjs/tile/map/QuadId.d.ts +15 -0
  314. package/lib/cjs/tile/map/QuadId.d.ts.map +1 -1
  315. package/lib/cjs/tile/map/QuadId.js +12 -0
  316. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  317. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +1 -1
  318. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  319. package/lib/cjs/tile/map/TerrainMeshProvider.js +1 -1
  320. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  321. package/lib/cjs/tools/AccuDrawViewportUI.d.ts +7 -0
  322. package/lib/cjs/tools/AccuDrawViewportUI.d.ts.map +1 -1
  323. package/lib/cjs/tools/AccuDrawViewportUI.js +14 -0
  324. package/lib/cjs/tools/AccuDrawViewportUI.js.map +1 -1
  325. package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
  326. package/lib/cjs/tools/ClipViewTool.js +18 -7
  327. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  328. package/lib/cjs/tools/ElementSetTool.d.ts +9 -1
  329. package/lib/cjs/tools/ElementSetTool.d.ts.map +1 -1
  330. package/lib/cjs/tools/ElementSetTool.js +130 -7
  331. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  332. package/lib/cjs/tools/IdleTool.d.ts.map +1 -1
  333. package/lib/cjs/tools/IdleTool.js +4 -1
  334. package/lib/cjs/tools/IdleTool.js.map +1 -1
  335. package/lib/cjs/tools/MeasureTool.d.ts +9 -0
  336. package/lib/cjs/tools/MeasureTool.d.ts.map +1 -1
  337. package/lib/cjs/tools/MeasureTool.js +57 -24
  338. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  339. package/lib/cjs/tools/PrimitiveTool.d.ts +1 -1
  340. package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
  341. package/lib/cjs/tools/PrimitiveTool.js +4 -3
  342. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  343. package/lib/cjs/tools/SelectTool.d.ts +2 -2
  344. package/lib/cjs/tools/SelectTool.d.ts.map +1 -1
  345. package/lib/cjs/tools/SelectTool.js +26 -97
  346. package/lib/cjs/tools/SelectTool.js.map +1 -1
  347. package/lib/cjs/tools/Tool.d.ts +10 -1
  348. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  349. package/lib/cjs/tools/Tool.js +27 -4
  350. package/lib/cjs/tools/Tool.js.map +1 -1
  351. package/lib/cjs/tools/ToolAdmin.d.ts +1 -0
  352. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  353. package/lib/cjs/tools/ToolAdmin.js +59 -18
  354. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  355. package/lib/cjs/tools/ToolAssistance.d.ts +1 -1
  356. package/lib/cjs/tools/ToolAssistance.js.map +1 -1
  357. package/lib/cjs/tools/ToolSettings.d.ts +5 -0
  358. package/lib/cjs/tools/ToolSettings.d.ts.map +1 -1
  359. package/lib/cjs/tools/ToolSettings.js +5 -0
  360. package/lib/cjs/tools/ToolSettings.js.map +1 -1
  361. package/lib/cjs/tools/ViewTool.d.ts +1 -2
  362. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  363. package/lib/cjs/tools/ViewTool.js +143 -84
  364. package/lib/cjs/tools/ViewTool.js.map +1 -1
  365. package/lib/esm/AccuDraw.d.ts +2 -0
  366. package/lib/esm/AccuDraw.d.ts.map +1 -1
  367. package/lib/esm/AccuDraw.js +4 -2
  368. package/lib/esm/AccuDraw.js.map +1 -1
  369. package/lib/esm/AccuSnap.d.ts.map +1 -1
  370. package/lib/esm/AccuSnap.js +15 -6
  371. package/lib/esm/AccuSnap.js.map +1 -1
  372. package/lib/esm/AuxCoordSys.js +1 -1
  373. package/lib/esm/AuxCoordSys.js.map +1 -1
  374. package/lib/esm/DisplayStyleState.d.ts +37 -0
  375. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  376. package/lib/esm/DisplayStyleState.js +65 -0
  377. package/lib/esm/DisplayStyleState.js.map +1 -1
  378. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  379. package/lib/esm/DrawingViewState.js +1 -0
  380. package/lib/esm/DrawingViewState.js.map +1 -1
  381. package/lib/esm/GraphicalEditingScope.d.ts +1 -1
  382. package/lib/esm/GraphicalEditingScope.d.ts.map +1 -1
  383. package/lib/esm/GraphicalEditingScope.js +1 -1
  384. package/lib/esm/GraphicalEditingScope.js.map +1 -1
  385. package/lib/esm/HitDetail.d.ts +1 -1
  386. package/lib/esm/HitDetail.d.ts.map +1 -1
  387. package/lib/esm/HitDetail.js.map +1 -1
  388. package/lib/esm/IModelApp.d.ts +19 -4
  389. package/lib/esm/IModelApp.d.ts.map +1 -1
  390. package/lib/esm/IModelApp.js +22 -3
  391. package/lib/esm/IModelApp.js.map +1 -1
  392. package/lib/esm/IModelConnection.d.ts +8 -9
  393. package/lib/esm/IModelConnection.d.ts.map +1 -1
  394. package/lib/esm/IModelConnection.js +53 -25
  395. package/lib/esm/IModelConnection.js.map +1 -1
  396. package/lib/esm/IpcApp.d.ts +2 -1
  397. package/lib/esm/IpcApp.d.ts.map +1 -1
  398. package/lib/esm/IpcApp.js +4 -2
  399. package/lib/esm/IpcApp.js.map +1 -1
  400. package/lib/esm/RealityDataSource.d.ts +65 -3
  401. package/lib/esm/RealityDataSource.d.ts.map +1 -1
  402. package/lib/esm/RealityDataSource.js +77 -3
  403. package/lib/esm/RealityDataSource.js.map +1 -1
  404. package/lib/esm/RealityDataSourceTilesetUrlImpl.js +1 -1
  405. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  406. package/lib/esm/SelectionSet.d.ts +7 -7
  407. package/lib/esm/SelectionSet.js +3 -3
  408. package/lib/esm/SelectionSet.js.map +1 -1
  409. package/lib/esm/SheetViewState.d.ts +2 -0
  410. package/lib/esm/SheetViewState.d.ts.map +1 -1
  411. package/lib/esm/SheetViewState.js +25 -3
  412. package/lib/esm/SheetViewState.js.map +1 -1
  413. package/lib/esm/ViewState.d.ts +1 -1
  414. package/lib/esm/ViewState.js +1 -1
  415. package/lib/esm/ViewState.js.map +1 -1
  416. package/lib/esm/Viewport.d.ts +6 -4
  417. package/lib/esm/Viewport.d.ts.map +1 -1
  418. package/lib/esm/Viewport.js +23 -3
  419. package/lib/esm/Viewport.js.map +1 -1
  420. package/lib/esm/common/gltf/GltfSchema.d.ts +18 -0
  421. package/lib/esm/common/gltf/GltfSchema.d.ts.map +1 -1
  422. package/lib/esm/common/gltf/GltfSchema.js +1 -0
  423. package/lib/esm/common/gltf/GltfSchema.js.map +1 -1
  424. package/lib/esm/common/imdl/CompactEdges.d.ts +11 -0
  425. package/lib/esm/common/imdl/CompactEdges.d.ts.map +1 -1
  426. package/lib/esm/common/imdl/CompactEdges.js +8 -6
  427. package/lib/esm/common/imdl/CompactEdges.js.map +1 -1
  428. package/lib/esm/common/imdl/ImdlSchema.d.ts +5 -1
  429. package/lib/esm/common/imdl/ImdlSchema.d.ts.map +1 -1
  430. package/lib/esm/common/imdl/ImdlSchema.js +4 -0
  431. package/lib/esm/common/imdl/ImdlSchema.js.map +1 -1
  432. package/lib/esm/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  433. package/lib/esm/common/imdl/ParseImdlDocument.js +11 -9
  434. package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
  435. package/lib/esm/common/internal/render/EdgeParams.d.ts +7 -2
  436. package/lib/esm/common/internal/render/EdgeParams.d.ts.map +1 -1
  437. package/lib/esm/common/internal/render/EdgeParams.js +31 -9
  438. package/lib/esm/common/internal/render/EdgeParams.js.map +1 -1
  439. package/lib/esm/common/internal/render/MeshPrimitives.d.ts +2 -1
  440. package/lib/esm/common/internal/render/MeshPrimitives.d.ts.map +1 -1
  441. package/lib/esm/common/internal/render/MeshPrimitives.js +5 -7
  442. package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -1
  443. package/lib/esm/common/internal/render/PolylineParams.d.ts +8 -3
  444. package/lib/esm/common/internal/render/PolylineParams.d.ts.map +1 -1
  445. package/lib/esm/common/internal/render/PolylineParams.js +5 -8
  446. package/lib/esm/common/internal/render/PolylineParams.js.map +1 -1
  447. package/lib/esm/common/internal/render/VertexTableSplitter.d.ts.map +1 -1
  448. package/lib/esm/common/internal/render/VertexTableSplitter.js +9 -7
  449. package/lib/esm/common/internal/render/VertexTableSplitter.js.map +1 -1
  450. package/lib/esm/core-frontend.d.ts +2 -2
  451. package/lib/esm/core-frontend.d.ts.map +1 -1
  452. package/lib/esm/core-frontend.js +1 -1
  453. package/lib/esm/core-frontend.js.map +1 -1
  454. package/lib/esm/extension/ExtensionRuntime.js +15 -2
  455. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  456. package/lib/esm/extension/providers/ExtensionLoadScript.js +1 -1
  457. package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -1
  458. package/lib/esm/internal/GoogleMapsDecorator.d.ts +53 -0
  459. package/lib/esm/internal/GoogleMapsDecorator.d.ts.map +1 -0
  460. package/lib/esm/internal/GoogleMapsDecorator.js +126 -0
  461. package/lib/esm/internal/GoogleMapsDecorator.js.map +1 -0
  462. package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.d.ts +83 -0
  463. package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.d.ts.map +1 -0
  464. package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.js +197 -0
  465. package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -0
  466. package/lib/esm/internal/ScriptUtils.d.ts +5 -0
  467. package/lib/esm/internal/ScriptUtils.d.ts.map +1 -0
  468. package/lib/esm/internal/ScriptUtils.js +117 -0
  469. package/lib/esm/internal/ScriptUtils.js.map +1 -0
  470. package/lib/esm/internal/cross-package.d.ts +1 -0
  471. package/lib/esm/internal/cross-package.d.ts.map +1 -1
  472. package/lib/esm/internal/cross-package.js +1 -0
  473. package/lib/esm/internal/cross-package.js.map +1 -1
  474. package/lib/esm/internal/render/webgl/AtmosphereUniforms.d.ts +1 -1
  475. package/lib/esm/internal/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
  476. package/lib/esm/internal/render/webgl/AtmosphereUniforms.js +1 -1
  477. package/lib/esm/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
  478. package/lib/esm/internal/render/webgl/AttributeBuffers.d.ts +2 -2
  479. package/lib/esm/internal/render/webgl/AttributeBuffers.d.ts.map +1 -1
  480. package/lib/esm/internal/render/webgl/AttributeBuffers.js +2 -2
  481. package/lib/esm/internal/render/webgl/AttributeBuffers.js.map +1 -1
  482. package/lib/esm/internal/render/webgl/BatchUniforms.js +1 -1
  483. package/lib/esm/internal/render/webgl/BatchUniforms.js.map +1 -1
  484. package/lib/esm/internal/render/webgl/BranchStack.d.ts +2 -2
  485. package/lib/esm/internal/render/webgl/BranchStack.d.ts.map +1 -1
  486. package/lib/esm/internal/render/webgl/BranchStack.js +3 -2
  487. package/lib/esm/internal/render/webgl/BranchStack.js.map +1 -1
  488. package/lib/esm/internal/render/webgl/BranchState.d.ts +4 -2
  489. package/lib/esm/internal/render/webgl/BranchState.d.ts.map +1 -1
  490. package/lib/esm/internal/render/webgl/BranchState.js +4 -1
  491. package/lib/esm/internal/render/webgl/BranchState.js.map +1 -1
  492. package/lib/esm/internal/render/webgl/BranchUniforms.d.ts +2 -2
  493. package/lib/esm/internal/render/webgl/BranchUniforms.d.ts.map +1 -1
  494. package/lib/esm/internal/render/webgl/BranchUniforms.js +2 -2
  495. package/lib/esm/internal/render/webgl/BranchUniforms.js.map +1 -1
  496. package/lib/esm/internal/render/webgl/ClippingProgram.d.ts +1 -1
  497. package/lib/esm/internal/render/webgl/ClippingProgram.d.ts.map +1 -1
  498. package/lib/esm/internal/render/webgl/ClippingProgram.js +1 -1
  499. package/lib/esm/internal/render/webgl/ClippingProgram.js.map +1 -1
  500. package/lib/esm/internal/render/webgl/ContourUniforms.d.ts.map +1 -1
  501. package/lib/esm/internal/render/webgl/ContourUniforms.js +2 -3
  502. package/lib/esm/internal/render/webgl/ContourUniforms.js.map +1 -1
  503. package/lib/esm/internal/render/webgl/Contours.js +8 -8
  504. package/lib/esm/internal/render/webgl/Contours.js.map +1 -1
  505. package/lib/esm/internal/render/webgl/EdgeGeometry.d.ts +8 -6
  506. package/lib/esm/internal/render/webgl/EdgeGeometry.d.ts.map +1 -1
  507. package/lib/esm/internal/render/webgl/EdgeGeometry.js +21 -7
  508. package/lib/esm/internal/render/webgl/EdgeGeometry.js.map +1 -1
  509. package/lib/esm/internal/render/webgl/Graphic.d.ts +2 -1
  510. package/lib/esm/internal/render/webgl/Graphic.d.ts.map +1 -1
  511. package/lib/esm/internal/render/webgl/Graphic.js +2 -0
  512. package/lib/esm/internal/render/webgl/Graphic.js.map +1 -1
  513. package/lib/esm/internal/render/webgl/IndexedEdgeGeometry.d.ts +6 -1
  514. package/lib/esm/internal/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  515. package/lib/esm/internal/render/webgl/IndexedEdgeGeometry.js +19 -4
  516. package/lib/esm/internal/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  517. package/lib/esm/internal/render/webgl/Mesh.d.ts +1 -1
  518. package/lib/esm/internal/render/webgl/Mesh.d.ts.map +1 -1
  519. package/lib/esm/internal/render/webgl/Mesh.js +14 -7
  520. package/lib/esm/internal/render/webgl/Mesh.js.map +1 -1
  521. package/lib/esm/internal/render/webgl/SceneCompositor.js +2 -1
  522. package/lib/esm/internal/render/webgl/SceneCompositor.js.map +1 -1
  523. package/lib/esm/internal/render/webgl/ShaderProgram.d.ts +2 -2
  524. package/lib/esm/internal/render/webgl/ShaderProgram.d.ts.map +1 -1
  525. package/lib/esm/internal/render/webgl/ShaderProgram.js +2 -2
  526. package/lib/esm/internal/render/webgl/ShaderProgram.js.map +1 -1
  527. package/lib/esm/internal/render/webgl/Target.d.ts +2 -1
  528. package/lib/esm/internal/render/webgl/Target.d.ts.map +1 -1
  529. package/lib/esm/internal/render/webgl/Target.js +3 -1
  530. package/lib/esm/internal/render/webgl/Target.js.map +1 -1
  531. package/lib/esm/internal/render/webgl/Technique.d.ts +3 -3
  532. package/lib/esm/internal/render/webgl/Technique.d.ts.map +1 -1
  533. package/lib/esm/internal/render/webgl/Technique.js +3 -3
  534. package/lib/esm/internal/render/webgl/Technique.js.map +1 -1
  535. package/lib/esm/internal/tile/ClassifierTileTree.js +3 -1
  536. package/lib/esm/internal/tile/ClassifierTileTree.js.map +1 -1
  537. package/lib/esm/internal/tile/IModelTile.d.ts +1 -0
  538. package/lib/esm/internal/tile/IModelTile.d.ts.map +1 -1
  539. package/lib/esm/internal/tile/IModelTile.js +4 -0
  540. package/lib/esm/internal/tile/IModelTile.js.map +1 -1
  541. package/lib/esm/internal/tile/IModelTileTree.d.ts +4 -2
  542. package/lib/esm/internal/tile/IModelTileTree.d.ts.map +1 -1
  543. package/lib/esm/internal/tile/IModelTileTree.js +60 -2
  544. package/lib/esm/internal/tile/IModelTileTree.js.map +1 -1
  545. package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -1
  546. package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js +8 -0
  547. package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
  548. package/lib/esm/internal/tile/OrbitGtTileTree.d.ts +4 -1
  549. package/lib/esm/internal/tile/OrbitGtTileTree.d.ts.map +1 -1
  550. package/lib/esm/internal/tile/OrbitGtTileTree.js +5 -1
  551. package/lib/esm/internal/tile/OrbitGtTileTree.js.map +1 -1
  552. package/lib/esm/internal/tile/PrimaryTileTree.d.ts.map +1 -1
  553. package/lib/esm/internal/tile/PrimaryTileTree.js +5 -4
  554. package/lib/esm/internal/tile/PrimaryTileTree.js.map +1 -1
  555. package/lib/esm/internal/tile/RealityModelTileTree.d.ts +26 -7
  556. package/lib/esm/internal/tile/RealityModelTileTree.d.ts.map +1 -1
  557. package/lib/esm/internal/tile/RealityModelTileTree.js +48 -22
  558. package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
  559. package/lib/esm/internal/tile/RealityTileLoader.d.ts +2 -2
  560. package/lib/esm/internal/tile/RealityTileLoader.d.ts.map +1 -1
  561. package/lib/esm/internal/tile/RealityTileLoader.js +10 -2
  562. package/lib/esm/internal/tile/RealityTileLoader.js.map +1 -1
  563. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +1 -1
  564. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  565. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +1 -1
  566. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  567. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +1 -1
  568. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
  569. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +1 -1
  570. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  571. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +1 -1
  572. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  573. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  574. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  575. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +1 -1
  576. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  577. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +1 -1
  578. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  579. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +4 -0
  580. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  581. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +52 -11
  582. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  583. package/lib/esm/internal/tile/map/WmtsCapabilities.d.ts +7 -0
  584. package/lib/esm/internal/tile/map/WmtsCapabilities.d.ts.map +1 -1
  585. package/lib/esm/internal/tile/map/WmtsCapabilities.js +17 -0
  586. package/lib/esm/internal/tile/map/WmtsCapabilities.js.map +1 -1
  587. package/lib/esm/internal/webgl.d.ts +1 -1
  588. package/lib/esm/internal/webgl.d.ts.map +1 -1
  589. package/lib/esm/internal/webgl.js.map +1 -1
  590. package/lib/esm/properties/AngleDescription.d.ts +4 -1
  591. package/lib/esm/properties/AngleDescription.d.ts.map +1 -1
  592. package/lib/esm/properties/AngleDescription.js +10 -2
  593. package/lib/esm/properties/AngleDescription.js.map +1 -1
  594. package/lib/esm/properties/FormattedQuantityDescription.d.ts +11 -1
  595. package/lib/esm/properties/FormattedQuantityDescription.d.ts.map +1 -1
  596. package/lib/esm/properties/FormattedQuantityDescription.js +7 -2
  597. package/lib/esm/properties/FormattedQuantityDescription.js.map +1 -1
  598. package/lib/esm/properties/LengthDescription.d.ts +12 -3
  599. package/lib/esm/properties/LengthDescription.d.ts.map +1 -1
  600. package/lib/esm/properties/LengthDescription.js +30 -6
  601. package/lib/esm/properties/LengthDescription.js.map +1 -1
  602. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +103 -7
  603. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  604. package/lib/esm/quantity-formatting/QuantityFormatter.js +208 -23
  605. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  606. package/lib/esm/render/Decorations.d.ts +1 -1
  607. package/lib/esm/render/Decorations.d.ts.map +1 -1
  608. package/lib/esm/render/Decorations.js +1 -1
  609. package/lib/esm/render/Decorations.js.map +1 -1
  610. package/lib/esm/render/GraphicBranch.d.ts +4 -2
  611. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  612. package/lib/esm/render/GraphicBranch.js +1 -1
  613. package/lib/esm/render/GraphicBranch.js.map +1 -1
  614. package/lib/esm/render/MeshArgs.d.ts +8 -3
  615. package/lib/esm/render/MeshArgs.d.ts.map +1 -1
  616. package/lib/esm/render/MeshArgs.js.map +1 -1
  617. package/lib/esm/render/RenderGraphic.d.ts +1 -1
  618. package/lib/esm/render/RenderGraphic.d.ts.map +1 -1
  619. package/lib/esm/render/RenderGraphic.js.map +1 -1
  620. package/lib/esm/render/RenderSystem.d.ts +2 -2
  621. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  622. package/lib/esm/render/RenderSystem.js.map +1 -1
  623. package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts +1 -1
  624. package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
  625. package/lib/esm/request/Request.d.ts +2 -2
  626. package/lib/esm/request/Request.js.map +1 -1
  627. package/lib/esm/tile/GltfReader.d.ts +6 -2
  628. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  629. package/lib/esm/tile/GltfReader.js +154 -19
  630. package/lib/esm/tile/GltfReader.js.map +1 -1
  631. package/lib/esm/tile/ImdlReader.js.map +1 -1
  632. package/lib/esm/tile/RealityTile.d.ts +9 -0
  633. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  634. package/lib/esm/tile/RealityTile.js +12 -0
  635. package/lib/esm/tile/RealityTile.js.map +1 -1
  636. package/lib/esm/tile/RealityTileTree.d.ts +4 -0
  637. package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
  638. package/lib/esm/tile/RealityTileTree.js +4 -0
  639. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  640. package/lib/esm/tile/Tile.d.ts +1 -1
  641. package/lib/esm/tile/Tile.d.ts.map +1 -1
  642. package/lib/esm/tile/Tile.js +1 -1
  643. package/lib/esm/tile/Tile.js.map +1 -1
  644. package/lib/esm/tile/TileAdmin.d.ts +10 -0
  645. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  646. package/lib/esm/tile/TileAdmin.js +3 -0
  647. package/lib/esm/tile/TileAdmin.js.map +1 -1
  648. package/lib/esm/tile/TileGeometryCollector.d.ts +5 -0
  649. package/lib/esm/tile/TileGeometryCollector.d.ts.map +1 -1
  650. package/lib/esm/tile/TileGeometryCollector.js.map +1 -1
  651. package/lib/esm/tile/TileTree.d.ts +15 -2
  652. package/lib/esm/tile/TileTree.d.ts.map +1 -1
  653. package/lib/esm/tile/TileTree.js +14 -1
  654. package/lib/esm/tile/TileTree.js.map +1 -1
  655. package/lib/esm/tile/TileTreeReference.d.ts +17 -3
  656. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  657. package/lib/esm/tile/TileTreeReference.js +11 -5
  658. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  659. package/lib/esm/tile/map/CesiumTerrainProvider.js +1 -1
  660. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  661. package/lib/esm/tile/map/ImageryTileTree.d.ts +2 -2
  662. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  663. package/lib/esm/tile/map/ImageryTileTree.js +2 -2
  664. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  665. package/lib/esm/tile/map/MapCartoRectangle.d.ts +10 -0
  666. package/lib/esm/tile/map/MapCartoRectangle.d.ts.map +1 -1
  667. package/lib/esm/tile/map/MapCartoRectangle.js +12 -0
  668. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  669. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +3 -3
  670. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  671. package/lib/esm/tile/map/MapLayerImageryProvider.js +9 -5
  672. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  673. package/lib/esm/tile/map/MapTileTree.d.ts +1 -1
  674. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  675. package/lib/esm/tile/map/MapTileTree.js +1 -1
  676. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  677. package/lib/esm/tile/map/QuadId.d.ts +15 -0
  678. package/lib/esm/tile/map/QuadId.d.ts.map +1 -1
  679. package/lib/esm/tile/map/QuadId.js +12 -0
  680. package/lib/esm/tile/map/QuadId.js.map +1 -1
  681. package/lib/esm/tile/map/TerrainMeshProvider.d.ts +1 -1
  682. package/lib/esm/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  683. package/lib/esm/tile/map/TerrainMeshProvider.js +1 -1
  684. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  685. package/lib/esm/tools/AccuDrawViewportUI.d.ts +7 -0
  686. package/lib/esm/tools/AccuDrawViewportUI.d.ts.map +1 -1
  687. package/lib/esm/tools/AccuDrawViewportUI.js +14 -0
  688. package/lib/esm/tools/AccuDrawViewportUI.js.map +1 -1
  689. package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
  690. package/lib/esm/tools/ClipViewTool.js +18 -7
  691. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  692. package/lib/esm/tools/ElementSetTool.d.ts +9 -1
  693. package/lib/esm/tools/ElementSetTool.d.ts.map +1 -1
  694. package/lib/esm/tools/ElementSetTool.js +132 -9
  695. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  696. package/lib/esm/tools/IdleTool.d.ts.map +1 -1
  697. package/lib/esm/tools/IdleTool.js +4 -1
  698. package/lib/esm/tools/IdleTool.js.map +1 -1
  699. package/lib/esm/tools/MeasureTool.d.ts +9 -0
  700. package/lib/esm/tools/MeasureTool.d.ts.map +1 -1
  701. package/lib/esm/tools/MeasureTool.js +57 -24
  702. package/lib/esm/tools/MeasureTool.js.map +1 -1
  703. package/lib/esm/tools/PrimitiveTool.d.ts +1 -1
  704. package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
  705. package/lib/esm/tools/PrimitiveTool.js +4 -3
  706. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  707. package/lib/esm/tools/SelectTool.d.ts +2 -2
  708. package/lib/esm/tools/SelectTool.d.ts.map +1 -1
  709. package/lib/esm/tools/SelectTool.js +26 -97
  710. package/lib/esm/tools/SelectTool.js.map +1 -1
  711. package/lib/esm/tools/Tool.d.ts +10 -1
  712. package/lib/esm/tools/Tool.d.ts.map +1 -1
  713. package/lib/esm/tools/Tool.js +27 -4
  714. package/lib/esm/tools/Tool.js.map +1 -1
  715. package/lib/esm/tools/ToolAdmin.d.ts +1 -0
  716. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  717. package/lib/esm/tools/ToolAdmin.js +59 -18
  718. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  719. package/lib/esm/tools/ToolAssistance.d.ts +1 -1
  720. package/lib/esm/tools/ToolAssistance.js.map +1 -1
  721. package/lib/esm/tools/ToolSettings.d.ts +5 -0
  722. package/lib/esm/tools/ToolSettings.d.ts.map +1 -1
  723. package/lib/esm/tools/ToolSettings.js +5 -0
  724. package/lib/esm/tools/ToolSettings.js.map +1 -1
  725. package/lib/esm/tools/ViewTool.d.ts +1 -2
  726. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  727. package/lib/esm/tools/ViewTool.js +143 -84
  728. package/lib/esm/tools/ViewTool.js.map +1 -1
  729. package/lib/public/images/google_on_non_white.png +0 -0
  730. package/lib/public/images/google_on_non_white_hdpi.png +0 -0
  731. package/lib/public/images/google_on_white.png +0 -0
  732. package/lib/public/images/google_on_white_hdpi.png +0 -0
  733. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  734. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  735. package/package.json +25 -22
@@ -1 +1 @@
1
- {"version":3,"file":"GraphicBranch.js","sourceRoot":"","sources":["../../../src/render/GraphicBranch.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAA+D;AAe/D;;;;;;;GAOG;AACH,MAAa,aAAa;IACxB,qCAAqC;IACrB,OAAO,GAAoB,EAAE,CAAC;IAC9C,6GAA6G;IAC7F,WAAW,CAAU;IACrC;;OAEG;IACI,iBAAiB,GAAsB,EAAE,CAAC;IACjD;;OAEG;IACI,2BAA2B,CAA+B;IACjE,gBAAgB;IACT,iBAAiB,CAAW;IACnC,gFAAgF;IACzE,kBAAkB,CAA8B;IACvD;;OAEG;IACI,WAAW,CAAU;IAC5B;;OAEG;IACI,eAAe,CAA4B;IAElD;;;;;;;;OAQG;IACI,WAAW,CAAU;IAE5B;;OAEG;IACH,YAAmB,cAAuB,KAAK;QAC7C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,oCAAoC;IAC7B,GAAG,CAAC,OAAsB;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACI,YAAY,CAAC,KAAgB;QAClC,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChD,CAAC;IAED,uFAAuF;IAChF,YAAY,CAAC,KAAgB;QAClC,IAAI,CAAC,iBAAiB,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IACxC,CAAC;IAED,oCAAoC;IAC7B,oBAAoB,CAAC,GAAsB;QAChD,IAAI,CAAC,iBAAiB,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IACtC,CAAC;IAED,uFAAuF;IAChF,CAAC,MAAM,CAAC,OAAO,CAAC;QACrB,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,uDAAuD;IAChD,OAAO;QACZ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,wDAAwD;IACxD,IAAW,OAAO;QAChB,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACnC,CAAC;IAED,sIAAsI;IAC/H,KAAK;QACV,IAAI,IAAI,CAAC,WAAW;YAClB,IAAA,2BAAY,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;YAE3B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,gBAAgB;IACT,iBAAiB,CAAC,KAA8B;QACrD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO;YAC9B,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;CACF;AA/FD,sCA+FC","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 { disposeArray, Id64String } from \"@itwin/core-bentley\";\nimport {\n FeatureAppearanceProvider, HiddenLine, RealityModelDisplaySettings, ViewFlagOverrides, ViewFlags,\n} from \"@itwin/core-common\";\nimport { IModelConnection } from \"../IModelConnection\";\nimport { FeatureSymbology } from \"./FeatureSymbology\";\nimport { RenderClipVolume } from \"./RenderClipVolume\";\nimport { RenderGraphic } from \"./RenderGraphic\";\nimport { RenderMemory } from \"./RenderMemory\";\nimport { RenderPlanarClassifier } from \"../internal/render/RenderPlanarClassifier\";\nimport { RenderTextureDrape } from \"../internal/render/RenderTextureDrape\";\nimport { Range3d, Transform } from \"@itwin/core-geometry\";\nimport { AnimationNodeId } from \"../common/internal/render/AnimationNodeId\";\nimport { GraphicBranchFrustum } from \"../internal/render/GraphicBranchFrustum\";\n\n/**\n * A node in a scene graph. The branch itself is not renderable. Instead it contains a list of RenderGraphics,\n * and a transform, symbology overrides, and clip volume which are to be applied when rendering them.\n * Branches can be nested to build an arbitrarily-complex scene graph.\n * @see [[RenderSystem.createBranch]]\n * @public\n * @extensions\n */\nexport class GraphicBranch implements Disposable /* , RenderMemory.Consumer */ {\n /** The child nodes of this branch */\n public readonly entries: RenderGraphic[] = [];\n /** If true, when the branch is disposed of, the RenderGraphics in its entries array will also be disposed */\n public readonly ownsEntries: boolean;\n /** Selectively overrides the view's [ViewFlags]($common) while drawing graphics within this branch. The default overrides nothing.\n * @see [[setViewFlagOverrides]].\n */\n public viewFlagOverrides: ViewFlagOverrides = {};\n /** Controls how reality models are displayed within this branch.\n * @beta\n */\n public realityModelDisplaySettings?: RealityModelDisplaySettings;\n /** @internal */\n public realityModelRange?: Range3d;\n /** Optional symbology overrides to be applied to all graphics in this branch */\n public symbologyOverrides?: FeatureSymbology.Overrides;\n /** Optional animation branch Id that incorporates the model Id and, for element timelines, the batch Id.\n * @internal\n */\n public animationId?: string;\n /** Identifies the node in the [RenderSchedule.Script]($backend) with which this branch is associated.\n * @internal\n */\n public animationNodeId?: AnimationNodeId | number;\n\n /** Identifies the \"group\" to which this branch belongs.\n * Groups represent cross-cutting subsets of a tile tree's contents.\n * For example, if a tile tree contains geometry from multiple models, each model (or smaller groups of multiple models) could be considered a group.\n * The top-level branches containing graphics from multiple tiles will each specify the group they represent, and the child branches within each\n * tile will likewise specify the group to which they belong.\n * When drawing, only the graphics within a tile that correlate with the current group will be drawn.\n * Groups cannot nest.\n * @internal\n */\n public groupNodeId?: number;\n\n /** Constructor\n * @param ownsEntries If true, when this branch is [[dispose]]d, all of the [[RenderGraphic]]s it contains will also be disposed.\n */\n public constructor(ownsEntries: boolean = false) {\n this.ownsEntries = ownsEntries;\n }\n\n /** Add a graphic to this branch. */\n public add(graphic: RenderGraphic): void {\n this.entries.push(graphic);\n }\n\n /** Compute the view flags that result from applying this branch's [[viewFlagOverrides]] to the input flags.\n * @param flags The input view flags, e.g., from the view's [[DisplayStyleState]].\n * @returns The result of applying [[viewFlagOverrides]] to `flags`.\n */\n public getViewFlags(flags: ViewFlags): ViewFlags {\n return flags.override(this.viewFlagOverrides);\n }\n\n /** Set [[viewFlagOverrides]] to override **all** ViewFlags as specified by `flags`. */\n public setViewFlags(flags: ViewFlags): void {\n this.viewFlagOverrides = { ...flags };\n }\n\n /** Change [[viewFlagOverrides]]. */\n public setViewFlagOverrides(ovr: ViewFlagOverrides): void {\n this.viewFlagOverrides = { ...ovr };\n }\n\n /** Disposes of all graphics in this branch, if and only if [[ownsEntries]] is true. */\n public [Symbol.dispose]() {\n this.clear();\n }\n\n /** @deprecated in 5.0 Use [Symbol.dispose] instead. */\n public dispose() {\n this[Symbol.dispose]();\n }\n\n /** Returns true if this branch contains no graphics. */\n public get isEmpty(): boolean {\n return 0 === this.entries.length;\n }\n\n /** Empties the list of [[RenderGraphic]]s contained in this branch, and if the [[ownsEntries]] flag is set, also disposes of them. */\n public clear(): void {\n if (this.ownsEntries)\n disposeArray(this.entries);\n else\n this.entries.length = 0;\n }\n\n /** @internal */\n public collectStatistics(stats: RenderMemory.Statistics): void {\n for (const entry of this.entries)\n entry.collectStatistics(stats);\n }\n}\n\n/** Options passed to [[RenderSystem.createGraphicBranch]].\n * @public\n * @extensions\n */\nexport interface GraphicBranchOptions {\n /** Clip applied to the graphics in the branch. */\n clipVolume?: RenderClipVolume;\n /** @internal */\n classifierOrDrape?: RenderPlanarClassifier | RenderTextureDrape;\n /** Optionally replaces the view's hidden line settings when drawing the branch. */\n hline?: HiddenLine.Settings;\n /** The iModel from which the graphics originate, if different than that associated with the view. */\n iModel?: IModelConnection;\n /** An optional transform from the coordinate system of [[iModel]] to those of a different [[IModelConnection]].\n * This is used by [[AccuSnap]] when displaying one iModel in the context of another iModel (i.e., the iModel associated\n * with the [[Viewport]]).\n */\n transformFromIModel?: Transform;\n /** @internal */\n frustum?: GraphicBranchFrustum;\n /** Supplements the view's [[FeatureSymbology.Overrides]] for graphics in the branch. */\n appearanceProvider?: FeatureAppearanceProvider;\n /** @internal Secondary planar classifiers (map layers) */\n secondaryClassifiers?: Map<number, RenderPlanarClassifier>;\n /** The Id of the [ViewAttachment]($backend) from which this branch's graphics originated.\n * @internal\n */\n viewAttachmentId?: Id64String;\n /** @internal */\n inSectionDrawingAttachment?: boolean;\n /** If true, the view's [DisplayStyleSettings.clipStyle]($common) will be disabled for this branch.\n * No [ClipStyle.insideColor]($common), [ClipStyle.outsideColor]($common), or [ClipStyle.intersectionStyle]($common) will be applied.\n */\n disableClipStyle?: true;\n}\n"]}
1
+ {"version":3,"file":"GraphicBranch.js","sourceRoot":"","sources":["../../../src/render/GraphicBranch.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAA+D;AAgB/D;;;;;;;GAOG;AACH,MAAa,aAAa;IACxB,qCAAqC;IACrB,OAAO,GAAoB,EAAE,CAAC;IAC9C,6GAA6G;IAC7F,WAAW,CAAU;IACrC;;OAEG;IACI,iBAAiB,GAAsB,EAAE,CAAC;IACjD;;OAEG;IACI,2BAA2B,CAA+B;IACjE,gBAAgB;IACT,iBAAiB,CAAW;IACnC,gFAAgF;IACzE,kBAAkB,CAA8B;IACvD;;OAEG;IACI,WAAW,CAAU;IAC5B;;OAEG;IACI,eAAe,CAA4B;IAElD;;;;;;;;OAQG;IACI,WAAW,CAAU;IAE5B;;OAEG;IACH,YAAmB,cAAuB,KAAK;QAC7C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,oCAAoC;IAC7B,GAAG,CAAC,OAAsB;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACI,YAAY,CAAC,KAAgB;QAClC,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChD,CAAC;IAED,uFAAuF;IAChF,YAAY,CAAC,KAAgB;QAClC,IAAI,CAAC,iBAAiB,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IACxC,CAAC;IAED,oCAAoC;IAC7B,oBAAoB,CAAC,GAAsB;QAChD,IAAI,CAAC,iBAAiB,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IACtC,CAAC;IAED,uFAAuF;IAChF,CAAC,MAAM,CAAC,OAAO,CAAC;QACrB,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,qGAAqG;IAC9F,OAAO;QACZ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,wDAAwD;IACxD,IAAW,OAAO;QAChB,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACnC,CAAC;IAED,sIAAsI;IAC/H,KAAK;QACV,IAAI,IAAI,CAAC,WAAW;YAClB,IAAA,2BAAY,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;YAE3B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,gBAAgB;IACT,iBAAiB,CAAC,KAA8B;QACrD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO;YAC9B,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;CACF;AA/FD,sCA+FC","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 { disposeArray, Id64String } from \"@itwin/core-bentley\";\nimport {\n ContourDisplay,\n FeatureAppearanceProvider, HiddenLine, RealityModelDisplaySettings, ViewFlagOverrides, ViewFlags,\n} from \"@itwin/core-common\";\nimport { IModelConnection } from \"../IModelConnection\";\nimport { FeatureSymbology } from \"./FeatureSymbology\";\nimport { RenderClipVolume } from \"./RenderClipVolume\";\nimport { RenderGraphic } from \"./RenderGraphic\";\nimport { RenderMemory } from \"./RenderMemory\";\nimport { RenderPlanarClassifier } from \"../internal/render/RenderPlanarClassifier\";\nimport { RenderTextureDrape } from \"../internal/render/RenderTextureDrape\";\nimport { Range3d, Transform } from \"@itwin/core-geometry\";\nimport { AnimationNodeId } from \"../common/internal/render/AnimationNodeId\";\nimport { GraphicBranchFrustum } from \"../internal/render/GraphicBranchFrustum\";\n\n/**\n * A node in a scene graph. The branch itself is not renderable. Instead it contains a list of RenderGraphics,\n * and a transform, symbology overrides, and clip volume which are to be applied when rendering them.\n * Branches can be nested to build an arbitrarily-complex scene graph.\n * @see [[RenderSystem.createBranch]]\n * @public\n * @extensions\n */\nexport class GraphicBranch implements Disposable /* , RenderMemory.Consumer */ {\n /** The child nodes of this branch */\n public readonly entries: RenderGraphic[] = [];\n /** If true, when the branch is disposed of, the RenderGraphics in its entries array will also be disposed */\n public readonly ownsEntries: boolean;\n /** Selectively overrides the view's [ViewFlags]($common) while drawing graphics within this branch. The default overrides nothing.\n * @see [[setViewFlagOverrides]].\n */\n public viewFlagOverrides: ViewFlagOverrides = {};\n /** Controls how reality models are displayed within this branch.\n * @beta\n */\n public realityModelDisplaySettings?: RealityModelDisplaySettings;\n /** @internal */\n public realityModelRange?: Range3d;\n /** Optional symbology overrides to be applied to all graphics in this branch */\n public symbologyOverrides?: FeatureSymbology.Overrides;\n /** Optional animation branch Id that incorporates the model Id and, for element timelines, the batch Id.\n * @internal\n */\n public animationId?: string;\n /** Identifies the node in the [RenderSchedule.Script]($backend) with which this branch is associated.\n * @internal\n */\n public animationNodeId?: AnimationNodeId | number;\n\n /** Identifies the \"group\" to which this branch belongs.\n * Groups represent cross-cutting subsets of a tile tree's contents.\n * For example, if a tile tree contains geometry from multiple models, each model (or smaller groups of multiple models) could be considered a group.\n * The top-level branches containing graphics from multiple tiles will each specify the group they represent, and the child branches within each\n * tile will likewise specify the group to which they belong.\n * When drawing, only the graphics within a tile that correlate with the current group will be drawn.\n * Groups cannot nest.\n * @internal\n */\n public groupNodeId?: number;\n\n /** Constructor\n * @param ownsEntries If true, when this branch is [[dispose]]d, all of the [[RenderGraphic]]s it contains will also be disposed.\n */\n public constructor(ownsEntries: boolean = false) {\n this.ownsEntries = ownsEntries;\n }\n\n /** Add a graphic to this branch. */\n public add(graphic: RenderGraphic): void {\n this.entries.push(graphic);\n }\n\n /** Compute the view flags that result from applying this branch's [[viewFlagOverrides]] to the input flags.\n * @param flags The input view flags, e.g., from the view's [[DisplayStyleState]].\n * @returns The result of applying [[viewFlagOverrides]] to `flags`.\n */\n public getViewFlags(flags: ViewFlags): ViewFlags {\n return flags.override(this.viewFlagOverrides);\n }\n\n /** Set [[viewFlagOverrides]] to override **all** ViewFlags as specified by `flags`. */\n public setViewFlags(flags: ViewFlags): void {\n this.viewFlagOverrides = { ...flags };\n }\n\n /** Change [[viewFlagOverrides]]. */\n public setViewFlagOverrides(ovr: ViewFlagOverrides): void {\n this.viewFlagOverrides = { ...ovr };\n }\n\n /** Disposes of all graphics in this branch, if and only if [[ownsEntries]] is true. */\n public [Symbol.dispose]() {\n this.clear();\n }\n\n /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [Symbol.dispose] instead. */\n public dispose() {\n this[Symbol.dispose]();\n }\n\n /** Returns true if this branch contains no graphics. */\n public get isEmpty(): boolean {\n return 0 === this.entries.length;\n }\n\n /** Empties the list of [[RenderGraphic]]s contained in this branch, and if the [[ownsEntries]] flag is set, also disposes of them. */\n public clear(): void {\n if (this.ownsEntries)\n disposeArray(this.entries);\n else\n this.entries.length = 0;\n }\n\n /** @internal */\n public collectStatistics(stats: RenderMemory.Statistics): void {\n for (const entry of this.entries)\n entry.collectStatistics(stats);\n }\n}\n\n/** Options passed to [[RenderSystem.createGraphicBranch]].\n * @public\n * @extensions\n */\nexport interface GraphicBranchOptions {\n /** Clip applied to the graphics in the branch. */\n clipVolume?: RenderClipVolume;\n /** @internal */\n classifierOrDrape?: RenderPlanarClassifier | RenderTextureDrape;\n /** Optionally replaces the view's hidden line settings when drawing the branch. */\n hline?: HiddenLine.Settings;\n /** The iModel from which the graphics originate, if different than that associated with the view. */\n iModel?: IModelConnection;\n /** An optional transform from the coordinate system of [[iModel]] to those of a different [[IModelConnection]].\n * This is used by [[AccuSnap]] when displaying one iModel in the context of another iModel (i.e., the iModel associated\n * with the [[Viewport]]).\n */\n transformFromIModel?: Transform;\n /** @internal */\n frustum?: GraphicBranchFrustum;\n /** Supplements the view's [[FeatureSymbology.Overrides]] for graphics in the branch. */\n appearanceProvider?: FeatureAppearanceProvider;\n /** @internal Secondary planar classifiers (map layers) */\n secondaryClassifiers?: Map<number, RenderPlanarClassifier>;\n /** The Id of the [ViewAttachment]($backend) from which this branch's graphics originated.\n * @internal\n */\n viewAttachmentId?: Id64String;\n /** @internal */\n inSectionDrawingAttachment?: boolean;\n /** If true, the view's [DisplayStyleSettings.clipStyle]($common) will be disabled for this branch.\n * No [ClipStyle.insideColor]($common), [ClipStyle.outsideColor]($common), or [ClipStyle.intersectionStyle]($common) will be applied.\n */\n disableClipStyle?: true;\n /** @internal */\n contours?: ContourDisplay;\n}\n"]}
@@ -4,6 +4,13 @@
4
4
  import { ColorIndex, FeatureIndex, FillFlags, OctEncodedNormal, QPoint3dList, RenderMaterial, RenderTexture } from "@itwin/core-common";
5
5
  import { MeshArgsEdges } from "../common/internal/render/MeshPrimitives";
6
6
  import { AuxChannel, Point2d, Point3d, Range3d } from "@itwin/core-geometry";
7
+ /** The positions of the vertices in a [[MeshArgs]]. If the positions are not quantized, they must include
8
+ * a precomputed [Range3d]($core-geometry) encompassing all of the points.
9
+ * @public
10
+ */
11
+ export type MeshArgsPositions = QPoint3dList | (Array<Point3d> & {
12
+ range: Range3d;
13
+ });
7
14
  /** Arguments supplied to [[RenderSystem.createTriMesh]] describing a triangle mesh.
8
15
  * @public
9
16
  */
@@ -18,9 +25,7 @@ export interface MeshArgs {
18
25
  /** The positions of the mesh's vertices, indexed by [[vertIndices]]. If the positions are not quantized, they must include
19
26
  * a precomputed [Range3d]($core-geometry) encompassing all of the points.
20
27
  */
21
- points: QPoint3dList | (Array<Point3d> & {
22
- range: Range3d;
23
- });
28
+ points: MeshArgsPositions;
24
29
  /** The per-vertex normal vectors, indexed by [[vertIndices]].
25
30
  * Normal vectors are required if the mesh is to be lit or have [ThematicDisplay]($common) applied to it.
26
31
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MeshArgs.d.ts","sourceRoot":"","sources":["../../../src/render/MeshArgs.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxI,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,gBAAgB;IAChB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;OAGG;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;;OAEG;IACH,MAAM,EAAE,YAAY,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC7D;;OAEG;IACH,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,gCAAgC;IAChC,MAAM,EAAE,UAAU,CAAC;IACnB,uDAAuD;IACvD,QAAQ,EAAE,YAAY,CAAC;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+GAA+G;IAC/G,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kHAAkH;IAClH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,+CAA+C;IAC/C,WAAW,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACxC,wCAAwC;IACxC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,mDAAmD;IACnD,cAAc,CAAC,EAAE;QACf,yBAAyB;QACzB,OAAO,EAAE,aAAa,CAAC;QACvB,sEAAsE;QACtE,QAAQ,EAAE,OAAO,EAAE,CAAC;KACrB,CAAC;CACH"}
1
+ {"version":3,"file":"MeshArgs.d.ts","sourceRoot":"","sources":["../../../src/render/MeshArgs.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxI,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE7E;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAErF;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,gBAAgB;IAChB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;OAGG;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;;OAEG;IACH,MAAM,EAAE,iBAAiB,CAAC;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,gCAAgC;IAChC,MAAM,EAAE,UAAU,CAAC;IACnB,uDAAuD;IACvD,QAAQ,EAAE,YAAY,CAAC;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+GAA+G;IAC/G,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kHAAkH;IAClH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,+CAA+C;IAC/C,WAAW,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACxC,wCAAwC;IACxC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,mDAAmD;IACnD,cAAc,CAAC,EAAE;QACf,yBAAyB;QACzB,OAAO,EAAE,aAAa,CAAC;QACvB,sEAAsE;QACtE,QAAQ,EAAE,OAAO,EAAE,CAAC;KACrB,CAAC;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"MeshArgs.js","sourceRoot":"","sources":["../../../src/render/MeshArgs.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","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 { ColorIndex, FeatureIndex, FillFlags, OctEncodedNormal, QPoint3dList, RenderMaterial, RenderTexture } from \"@itwin/core-common\";\nimport { MeshArgsEdges } from \"../common/internal/render/MeshPrimitives\";\nimport { AuxChannel, Point2d, Point3d, Range3d } from \"@itwin/core-geometry\";\n\n/** Arguments supplied to [[RenderSystem.createTriMesh]] describing a triangle mesh.\n * @public\n */\nexport interface MeshArgs {\n /** @internal */\n edges?: MeshArgsEdges;\n /** The indices of the triangles. Each consecutive set of three indices represents one triangle.\n * The indices are used to index into the vertex attribute arrays like [[points]] and [[normals]].\n * Their values must be 32-bit unsigned integers.\n */\n vertIndices: number[];\n /** The positions of the mesh's vertices, indexed by [[vertIndices]]. If the positions are not quantized, they must include\n * a precomputed [Range3d]($core-geometry) encompassing all of the points.\n */\n points: QPoint3dList | (Array<Point3d> & { range: Range3d });\n /** The per-vertex normal vectors, indexed by [[vertIndices]].\n * Normal vectors are required if the mesh is to be lit or have [ThematicDisplay]($common) applied to it.\n */\n normals?: OctEncodedNormal[];\n /** The color(s) of the mesh. */\n colors: ColorIndex;\n /** The [Feature]($common)(s) contained in the mesh. */\n features: FeatureIndex;\n /** If [[isPlanar]] is `true`, describes how fill is applied to planar region interiors in wireframe mode.\n * Default: [FillFlags.ByView]($common).\n */\n fillFlags?: FillFlags;\n /** If `true`, indicates that the mesh represents a planar region. Default: false. */\n isPlanar?: boolean;\n /** If `true`, indicates that the mesh is two-dimensional - i.e., all [[points]] have the same z coordinate. */\n is2d?: boolean;\n /** If `true`, indicates that the mesh has a texture that includes static lighting - e.g., from photogrammetry. */\n hasBakedLighting?: boolean;\n /** @internal */\n isVolumeClassifier?: boolean;\n /** Auxiliary data associated with the mesh. */\n auxChannels?: ReadonlyArray<AuxChannel>;\n /** The material applied to the mesh. */\n material?: RenderMaterial;\n /** A texture mapping to be applied to the mesh. */\n textureMapping?: {\n /** The texture image. */\n texture: RenderTexture;\n /** The per-vertex texture coordinates, indexed by [[vertIndices]]. */\n uvParams: Point2d[];\n };\n}\n\n"]}
1
+ {"version":3,"file":"MeshArgs.js","sourceRoot":"","sources":["../../../src/render/MeshArgs.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","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 { ColorIndex, FeatureIndex, FillFlags, OctEncodedNormal, QPoint3dList, RenderMaterial, RenderTexture } from \"@itwin/core-common\";\nimport { MeshArgsEdges } from \"../common/internal/render/MeshPrimitives\";\nimport { AuxChannel, Point2d, Point3d, Range3d } from \"@itwin/core-geometry\";\n\n/** The positions of the vertices in a [[MeshArgs]]. If the positions are not quantized, they must include\n * a precomputed [Range3d]($core-geometry) encompassing all of the points.\n * @public\n */\nexport type MeshArgsPositions = QPoint3dList | (Array<Point3d> & { range: Range3d });\n\n/** Arguments supplied to [[RenderSystem.createTriMesh]] describing a triangle mesh.\n * @public\n */\nexport interface MeshArgs {\n /** @internal */\n edges?: MeshArgsEdges;\n /** The indices of the triangles. Each consecutive set of three indices represents one triangle.\n * The indices are used to index into the vertex attribute arrays like [[points]] and [[normals]].\n * Their values must be 32-bit unsigned integers.\n */\n vertIndices: number[];\n /** The positions of the mesh's vertices, indexed by [[vertIndices]]. If the positions are not quantized, they must include\n * a precomputed [Range3d]($core-geometry) encompassing all of the points.\n */\n points: MeshArgsPositions;\n /** The per-vertex normal vectors, indexed by [[vertIndices]].\n * Normal vectors are required if the mesh is to be lit or have [ThematicDisplay]($common) applied to it.\n */\n normals?: OctEncodedNormal[];\n /** The color(s) of the mesh. */\n colors: ColorIndex;\n /** The [Feature]($common)(s) contained in the mesh. */\n features: FeatureIndex;\n /** If [[isPlanar]] is `true`, describes how fill is applied to planar region interiors in wireframe mode.\n * Default: [FillFlags.ByView]($common).\n */\n fillFlags?: FillFlags;\n /** If `true`, indicates that the mesh represents a planar region. Default: false. */\n isPlanar?: boolean;\n /** If `true`, indicates that the mesh is two-dimensional - i.e., all [[points]] have the same z coordinate. */\n is2d?: boolean;\n /** If `true`, indicates that the mesh has a texture that includes static lighting - e.g., from photogrammetry. */\n hasBakedLighting?: boolean;\n /** @internal */\n isVolumeClassifier?: boolean;\n /** Auxiliary data associated with the mesh. */\n auxChannels?: ReadonlyArray<AuxChannel>;\n /** The material applied to the mesh. */\n material?: RenderMaterial;\n /** A texture mapping to be applied to the mesh. */\n textureMapping?: {\n /** The texture image. */\n texture: RenderTexture;\n /** The per-vertex texture coordinates, indexed by [[vertIndices]]. */\n uvParams: Point2d[];\n };\n}\n\n"]}
@@ -13,7 +13,7 @@ import { Range3d } from "@itwin/core-geometry";
13
13
  */
14
14
  export declare abstract class RenderGraphic implements Disposable {
15
15
  [Symbol.dispose](): void;
16
- /** @deprecated in 5.0 Will be made protected in a future release. Use [Symbol.dispose] instead. */
16
+ /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Will be made protected in a future release. Use [Symbol.dispose] instead. */
17
17
  abstract dispose(): void;
18
18
  /** @internal */
19
19
  abstract collectStatistics(stats: RenderMemory.Statistics): void;
@@ -1 +1 @@
1
- {"version":3,"file":"RenderGraphic.d.ts","sourceRoot":"","sources":["../../../src/render/RenderGraphic.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C;;;;;;;GAOG;AACH,8BAAsB,aAAc,YAAW,UAAU;IAChD,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAI/B,mGAAmG;aACnF,OAAO,IAAI,IAAI;IAE/B,gBAAgB;aACA,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAEvE;;MAEE;aACc,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;CACjD;AAED;;;;;;GAMG;AACH,8BAAsB,kBAAmB,SAAQ,aAAa;IAC5D,yBAAyB;IACzB,aAAoB,OAAO,IAAI,aAAa,CAAC;IAC7C,6EAA6E;IACtE,OAAO,IAAI,IAAI;IACtB,qCAAqC;IAC9B,cAAc,IAAI,IAAI;IAC7B,gBAAgB;IACT,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAC9D,gBAAgB;IACA,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;CACjD;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"RenderGraphic.d.ts","sourceRoot":"","sources":["../../../src/render/RenderGraphic.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C;;;;;;;GAOG;AACH,8BAAsB,aAAc,YAAW,UAAU;IAChD,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAI/B,iJAAiJ;aACjI,OAAO,IAAI,IAAI;IAE/B,gBAAgB;aACA,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAEvE;;MAEE;aACc,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;CACjD;AAED;;;;;;GAMG;AACH,8BAAsB,kBAAmB,SAAQ,aAAa;IAC5D,yBAAyB;IACzB,aAAoB,OAAO,IAAI,aAAa,CAAC;IAC7C,6EAA6E;IACtE,OAAO,IAAI,IAAI;IACtB,qCAAqC;IAC9B,cAAc,IAAI,IAAI;IAC7B,gBAAgB;IACT,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAC9D,gBAAgB;IACA,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;CACjD;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RenderGraphic.js","sourceRoot":"","sources":["../../../src/render/RenderGraphic.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAKH;;;;;;;GAOG;AACH,MAAsB,aAAa;IAC1B,CAAC,MAAM,CAAC,OAAO,CAAC;QACrB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,uDAAuD;IACzE,CAAC;CAYF;AAfD,sCAeC;AAED;;;;;;GAMG;AACH,MAAsB,kBAAmB,SAAQ,aAAa;IAG5D,6EAA6E;IACtE,OAAO,KAAW,CAAC;IAC1B,qCAAqC;IAC9B,cAAc,KAAW,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,gBAAgB;IACT,iBAAiB,CAAC,KAA8B,IAAU,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzG,gBAAgB;IACA,UAAU,CAAC,KAAc,IAAU,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CACrF;AAXD,gDAWC","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 { RenderMemory } from \"./RenderMemory\";\nimport { Range3d } from \"@itwin/core-geometry\";\n\n/** Abstract representation of an object which can be rendered by a [[RenderSystem]].\n * Two broad classes of graphics exist:\n * - \"Scene\" graphics generated on the back-end to represent the contents of the models displayed in a [[Viewport]]; and\n * - [[Decorations]] created on the front-end to be rendered along with the scene.\n * The latter are produced using a [[GraphicBuilder]].\n * @public\n * @extensions\n */\nexport abstract class RenderGraphic implements Disposable /* , RenderMemory.Consumer */ {\n public [Symbol.dispose](): void {\n this.dispose(); // eslint-disable-line @typescript-eslint/no-deprecated\n }\n\n /** @deprecated in 5.0 Will be made protected in a future release. Use [Symbol.dispose] instead. */\n public abstract dispose(): void; // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** @internal */\n public abstract collectStatistics(stats: RenderMemory.Statistics): void;\n\n /** Extend `range` to include the bounding box of this graphic, including any child graphics.\n * @internal\n */\n public abstract unionRange(range: Range3d): void;\n}\n\n/** A graphic that owns another graphic. By default, every time a [[Viewport]]'s decorations or dynamics graphics change, the previous graphics are disposed of.\n * Use a GraphicOwner to prevent disposal of a graphic that you want to reuse. The graphic owner can be added to decorations and list of dynamics just like any other graphic, but the graphic it owns\n * will never be automatically disposed of. Instead, you assume responsibility for disposing of the owned graphic by calling [[disposeGraphic]] when the owned graphic is no longer in use. Failure\n * to do so will result in leaks of graphics memory or other webgl resources.\n * @public\n * @extensions\n */\nexport abstract class RenderGraphicOwner extends RenderGraphic {\n /** The owned graphic. */\n public abstract get graphic(): RenderGraphic;\n /** Does nothing. To dispose of the owned graphic, use [[disposeGraphic]]. */\n public dispose(): void { }\n /** Disposes of the owned graphic. */\n public disposeGraphic(): void { this.graphic[Symbol.dispose](); }\n /** @internal */\n public collectStatistics(stats: RenderMemory.Statistics): void { this.graphic.collectStatistics(stats); }\n /** @internal */\n public override unionRange(range: Range3d): void { this.graphic.unionRange(range); }\n}\n\n/** An array of [[RenderGraphic]]s.\n * @public\n * @extensions\n */\nexport type GraphicList = RenderGraphic[];\n"]}
1
+ {"version":3,"file":"RenderGraphic.js","sourceRoot":"","sources":["../../../src/render/RenderGraphic.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAKH;;;;;;;GAOG;AACH,MAAsB,aAAa;IAC1B,CAAC,MAAM,CAAC,OAAO,CAAC;QACrB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,uDAAuD;IACzE,CAAC;CAYF;AAfD,sCAeC;AAED;;;;;;GAMG;AACH,MAAsB,kBAAmB,SAAQ,aAAa;IAG5D,6EAA6E;IACtE,OAAO,KAAW,CAAC;IAC1B,qCAAqC;IAC9B,cAAc,KAAW,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,gBAAgB;IACT,iBAAiB,CAAC,KAA8B,IAAU,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzG,gBAAgB;IACA,UAAU,CAAC,KAAc,IAAU,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CACrF;AAXD,gDAWC","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 { RenderMemory } from \"./RenderMemory\";\nimport { Range3d } from \"@itwin/core-geometry\";\n\n/** Abstract representation of an object which can be rendered by a [[RenderSystem]].\n * Two broad classes of graphics exist:\n * - \"Scene\" graphics generated on the back-end to represent the contents of the models displayed in a [[Viewport]]; and\n * - [[Decorations]] created on the front-end to be rendered along with the scene.\n * The latter are produced using a [[GraphicBuilder]].\n * @public\n * @extensions\n */\nexport abstract class RenderGraphic implements Disposable /* , RenderMemory.Consumer */ {\n public [Symbol.dispose](): void {\n this.dispose(); // eslint-disable-line @typescript-eslint/no-deprecated\n }\n\n /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Will be made protected in a future release. Use [Symbol.dispose] instead. */\n public abstract dispose(): void; // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** @internal */\n public abstract collectStatistics(stats: RenderMemory.Statistics): void;\n\n /** Extend `range` to include the bounding box of this graphic, including any child graphics.\n * @internal\n */\n public abstract unionRange(range: Range3d): void;\n}\n\n/** A graphic that owns another graphic. By default, every time a [[Viewport]]'s decorations or dynamics graphics change, the previous graphics are disposed of.\n * Use a GraphicOwner to prevent disposal of a graphic that you want to reuse. The graphic owner can be added to decorations and list of dynamics just like any other graphic, but the graphic it owns\n * will never be automatically disposed of. Instead, you assume responsibility for disposing of the owned graphic by calling [[disposeGraphic]] when the owned graphic is no longer in use. Failure\n * to do so will result in leaks of graphics memory or other webgl resources.\n * @public\n * @extensions\n */\nexport abstract class RenderGraphicOwner extends RenderGraphic {\n /** The owned graphic. */\n public abstract get graphic(): RenderGraphic;\n /** Does nothing. To dispose of the owned graphic, use [[disposeGraphic]]. */\n public dispose(): void { }\n /** Disposes of the owned graphic. */\n public disposeGraphic(): void { this.graphic[Symbol.dispose](); }\n /** @internal */\n public collectStatistics(stats: RenderMemory.Statistics): void { this.graphic.collectStatistics(stats); }\n /** @internal */\n public override unionRange(range: Range3d): void { this.graphic.unionRange(range); }\n}\n\n/** An array of [[RenderGraphic]]s.\n * @public\n * @extensions\n */\nexport type GraphicList = RenderGraphic[];\n"]}
@@ -135,7 +135,7 @@ export declare abstract class RenderSystem implements Disposable {
135
135
  /** @internal */
136
136
  abstract get isValid(): boolean;
137
137
  [Symbol.dispose](): void;
138
- /** @deprecated in 5.0 Will be made protected in a future release. Use [Symbol.dispose] instead. */
138
+ /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Will be made protected in a future release. Use [Symbol.dispose] instead. */
139
139
  abstract dispose(): void;
140
140
  /** The maximum permitted width or height of a texture supported by this render system. */
141
141
  get maxTextureSize(): number;
@@ -462,7 +462,7 @@ export declare namespace RenderSystem {
462
462
  /** Previously, this property dictated whether to attempt to use a WebGL 2 rendering context before falling back to WebGL 1.
463
463
  * WebGL 1 is no longer supported, so this property is now ignored.
464
464
  * @public
465
- * @deprecated in 4.x. WebGL 1 is no longer supported.
465
+ * @deprecated in 4.0.0 - will not be removed until after 2026-06-13. WebGL 1 is no longer supported.
466
466
  */
467
467
  useWebGL2?: boolean;
468
468
  /** If true, plan projection models will be rendered using [PlanProjectionSettings]($common) defined by the [[DisplayStyle3dState]].
@@ -1 +1 @@
1
- {"version":3,"file":"RenderSystem.d.ts","sourceRoot":"","sources":["../../../src/render/RenderSystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RenderSystem.d.ts","sourceRoot":"","sources":["../../../src/render/RenderSystem.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RenderSystem.js","sourceRoot":"","sources":["../../../src/render/RenderSystem.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 { base64StringToUint8Array, Id64String } from \"@itwin/core-bentley\";\nimport {\n ColorDef, ColorIndex, ElementAlignedBox3d, FeatureIndex, FeatureIndexType, FillFlags, Frustum, Gradient, ImageBuffer, ImageSource, ImageSourceFormat,\n isValidImageSourceFormat, PackedFeatureTable, QParams3d, QPoint3dList, RenderFeatureTable, RenderMaterial, RenderTexture, RenderTextureParams, TextureProps, TextureTransparency,\n} from \"@itwin/core-common\";\nimport { ClipVector, Matrix3d, Point2d, Point3d, Range3d, Transform, XAndY, XYAndZ } from \"@itwin/core-geometry\";\nimport { WebGLExtensionName } from \"@itwin/webgl-compatibility\";\nimport { IModelApp } from \"../IModelApp\";\nimport { IModelConnection } from \"../IModelConnection\";\nimport { createGraphicFromDescription, createGraphicTemplateFromDescription, MapTileTreeReference, TileTreeReference } from \"../tile/internal\";\nimport { ToolAdmin } from \"../tools/ToolAdmin\";\nimport { Viewport } from \"../Viewport\";\nimport { imageElementFromImageSource, tryImageElementFromUrl } from \"../common/ImageUtil\";\nimport { MeshParams } from \"../common/internal/render/MeshParams\";\nimport { createPointStringParams, PointStringParams } from \"../common/internal/render/PointStringParams\";\nimport { createPolylineParams, PolylineParams } from \"../common/internal/render/PolylineParams\";\nimport { TextureCacheKey } from \"../common/render/TextureParams\";\nimport { ViewRect } from \"../common/ViewRect\";\nimport { GraphicBranch, GraphicBranchOptions } from \"./GraphicBranch\";\nimport { CustomGraphicBuilderOptions, GraphicBuilder, ViewportGraphicBuilderOptions } from \"./GraphicBuilder\";\nimport { InstancedGraphicParams, PatternGraphicParams } from \"../common/render/InstancedGraphicParams\";\nimport { Mesh } from \"../common/internal/render/MeshPrimitives\";\nimport { MeshMapLayerGraphicParams } from \"../internal/render/MeshMapLayerGraphicParams\";\nimport { RealityMeshParams } from \"./RealityMeshParams\";\nimport { PointCloudArgs } from \"../common/internal/render/PointCloudPrimitive\";\nimport { RenderClipVolume } from \"./RenderClipVolume\";\nimport { RenderGraphic, RenderGraphicOwner } from \"./RenderGraphic\";\nimport { CreateRenderMaterialArgs } from \"./CreateRenderMaterialArgs\";\nimport { RenderMemory } from \"./RenderMemory\";\nimport { RenderTarget } from \"./RenderTarget\";\nimport { CreateTextureArgs, CreateTextureFromSourceArgs } from \"./CreateTextureArgs\";\nimport { ScreenSpaceEffectBuilder, ScreenSpaceEffectBuilderParams } from \"./ScreenSpaceEffectBuilder\";\nimport { createMeshParams } from \"../common/internal/render/VertexTableBuilder\";\nimport { GraphicType } from \"../common/render/GraphicType\";\nimport { BatchOptions } from \"../common/render/BatchOptions\";\nimport { GraphicDescription } from \"../common/render/GraphicDescriptionBuilder\";\nimport { GraphicDescriptionContextPropsImpl, WorkerGraphicDescriptionContextPropsImpl } from \"../common/internal/render/GraphicDescriptionContextImpl\";\nimport { _featureTable, _implementationProhibited, _renderSystem, _textures, _transformCenter, _transforms } from \"../common/internal/Symbols\";\nimport { GraphicDescriptionContext, GraphicDescriptionContextProps, WorkerGraphicDescriptionContextProps } from \"../common/render/GraphicDescriptionContext\";\nimport { MeshArgs } from \"./MeshArgs\";\nimport { PolylineArgs } from \"./PolylineArgs\";\nimport { RenderGeometry } from \"../internal/render/RenderGeometry\";\nimport { RenderInstancesParams } from \"../common/render/RenderInstancesParams\";\nimport { GraphicTemplate } from \"./GraphicTemplate\";\nimport { RenderSystemDebugControl } from \"../internal/render/RenderSystemDebugControl\";\nimport { RenderTextureDrape } from \"../internal/render/RenderTextureDrape\";\nimport { RenderTerrainGeometry } from \"../internal/render/RenderTerrain\";\nimport { RenderSkyBoxParams } from \"../internal/render/RenderSkyBoxParams\";\nimport { RenderAreaPattern } from \"../internal/render/RenderAreaPattern\";\nimport { LayerTileData } from \"../internal/render/webgl/MapLayerParams\";\n\n// cSpell:ignore deserializing subcat uninstanced wiremesh qorigin trimesh\n\n/** Default implementation of RenderGraphicOwner. */\nclass GraphicOwner extends RenderGraphicOwner {\n public constructor(private readonly _graphic: RenderGraphic) { super(); }\n public get graphic(): RenderGraphic { return this._graphic; }\n}\n\n/** Transparency settings for planar grid display.\n * @alpha\n */\nexport class PlanarGridTransparency {\n /** Transparency for the grid plane. This should generally be fairly high to avoid obscuring other geometry */\n public readonly planeTransparency = .9;\n /** Transparency of the grid lines. This should be higher than the plane, but less than reference line transparency */\n public readonly lineTransparency = .75;\n /** Transparency of the reference lines. This should be less than plane or line transparency so that reference lines are more prominent */\n public readonly refTransparency = .5;\n}\n\n/** Settings for planar grid display.\n * @alpha\n */\nexport interface PlanarGridProps {\n /** The grid origin */\n origin: Point3d;\n /** The grid orientation. The grid X and Y direction are the first and second matrix rows */\n rMatrix: Matrix3d;\n /** The spacing between grid liens in the X and Y direction */\n spacing: XAndY;\n /** Grid lines per reference. If zero no reference lines are displayed. */\n gridsPerRef: number;\n /** Grid color. [[Use Viewport.getContrastToBackgroundColor]] to get best constrast color based on current background. */\n color: ColorDef;\n /** Transparency settings. If omitted then the [[PlanarGridTransparency]] defaults are used. */\n transparency?: PlanarGridTransparency;\n}\n\n/** Contains the WebGL resources necessary to draw multiple [[Instance]]s of a [[GraphicTemplate]] using [instanced rendering](https://webglfundamentals.org/webgl/lessons/webgl-instanced-drawing.html).\n * Use [[RenderSystem.createRenderInstances]] to create one.\n * The instances may be associated with [Feature]($common)s, in which case those features override any defined in the template itself.\n * Example usage:\n * ```ts\n * [[include:Gltf_Instancing]]\n * ```\n * @beta\n */\nexport interface RenderInstances {\n /** @internal */\n readonly [_implementationProhibited]: \"renderInstances\";\n /** @internal */\n readonly [_transformCenter]: XYAndZ;\n /** @internal */\n readonly [_transforms]: Float32Array;\n /** @internal */\n readonly [_featureTable]?: PackedFeatureTable;\n}\n\n/** Arguments supplied to [[RenderSystem.createGraphicFromDescription]].\n * @beta\n */\nexport interface CreateGraphicFromDescriptionArgs {\n /** A description of the [[RenderGraphic]] to create, obtained from a [[GraphicDescriptionBuilder]]. */\n description: GraphicDescription;\n /** The context that was used to create the graphic description, obtained from [[RenderSystem.resolveGraphicDescriptionContext]]. */\n context: GraphicDescriptionContext;\n}\n\n/** Arguments supplied to [[RenderSystem.createGraphicFromTemplate]].\n * @beta\n */\nexport interface CreateGraphicFromTemplateArgs {\n /** Describes how to draw the graphic. */\n template: GraphicTemplate;\n /** Optionally describes how to draw multiple repetitions of the graphic. */\n instances?: RenderInstances;\n}\n\n/** A RenderSystem provides access to resources used by the internal WebGL-based rendering system.\n * An application rarely interacts directly with the RenderSystem; instead it interacts with types like [[Viewport]] which\n * coordinate with the RenderSystem on the application's behalf.\n * @see [Display system overview]($docs/learning/display/index.md)\n * @see [[IModelApp.renderSystem]].\n * @public\n * @extensions\n */\nexport abstract class RenderSystem implements Disposable {\n /** Options used to initialize the RenderSystem. These are primarily used for feature-gating.\n * This object is frozen and cannot be modified after the RenderSystem is created.\n * @internal\n */\n public readonly options: RenderSystem.Options;\n\n /** Antialias samples to use on all subsequently created render targets.\n * Default value: undefined (no antialiasing)\n * @beta\n */\n public antialiasSamples?: number;\n\n /** Initialize the RenderSystem with the specified options.\n * @note The RenderSystem takes ownership of the supplied Options and freezes it.\n * @internal\n */\n protected constructor(options?: RenderSystem.Options) {\n this.options = undefined !== options ? options : {};\n Object.freeze(this.options);\n if (undefined !== this.options.disabledExtensions)\n Object.freeze(this.options.disabledExtensions);\n }\n\n /** @internal */\n public abstract get isValid(): boolean;\n\n public [Symbol.dispose]() {\n this.dispose(); // eslint-disable-line @typescript-eslint/no-deprecated\n }\n\n /** @deprecated in 5.0 Will be made protected in a future release. Use [Symbol.dispose] instead. */\n public abstract dispose(): void; // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** The maximum permitted width or height of a texture supported by this render system. */\n public get maxTextureSize(): number { return 0; }\n\n /** @internal */\n public get supportsCreateImageBitmap(): boolean { return false; }\n\n /** @internal */\n public get dpiAwareLOD(): boolean { return true === this.options.dpiAwareLOD; }\n\n /** @internal */\n public get isMobile(): boolean { return false; }\n\n /** @internal */\n public abstract createTarget(canvas: HTMLCanvasElement): RenderTarget;\n /** @internal */\n public abstract createOffscreenTarget(rect: ViewRect): RenderTarget;\n\n /** Perform a small unit of idle work and return true if more idle work remains to be done. This function is invoked on each tick of the javascript event loop as long as no viewports are registered with the ViewManager, until it returns false to indicate all idle work has been completed.\n * @internal\n */\n public abstract doIdleWork(): boolean;\n\n /** Find a previously-created [RenderMaterial]($common) by its ID.\n * @param _key The unique ID of the material within the context of the IModelConnection. Typically an element ID.\n * @param _imodel The IModelConnection with which the material is associated.\n * @returns A previously-created material matching the specified ID, or undefined if no such material exists.\n */\n public findMaterial(_key: string, _imodel: IModelConnection): RenderMaterial | undefined { return undefined; }\n\n /** Create a [RenderMaterial]($common).\n * @see [[CreateRenderMaterialArgs]] for a description of the material parameters.\n */\n public createRenderMaterial(_args: CreateRenderMaterialArgs): RenderMaterial | undefined {\n return undefined;\n }\n\n /** Creates a [[GraphicBuilder]] for creating a [[RenderGraphic]].\n * @param placement The local-to-world transform in which the builder's geometry is to be defined.\n * @param type The type of builder to create.\n * @param viewport The viewport in which the resultant [[RenderGraphic]] will be rendered.\n * @param pickableId If the decoration is to be pickable, a unique identifier to associate with the resultant [[RenderGraphic]].\n * @returns A builder for creating a [[RenderGraphic]] of the specified type appropriate for rendering within the specified viewport.\n * @see [[IModelConnection.transientIds]] for obtaining an ID for a pickable decoration.\n * @see [[RenderContext.createGraphicBuilder]].\n * @see [[Decorator]]\n */\n public createGraphicBuilder(placement: Transform, type: GraphicType, viewport: Viewport, pickableId?: Id64String): GraphicBuilder {\n const pickable = undefined !== pickableId ? { id: pickableId } : undefined;\n return this.createGraphic({ type, viewport, placement, pickable });\n }\n\n /** Obtain a [[GraphicBuilder]] from which to produce a [[RenderGraphic]].\n * @param options Options describing how to create the builder.\n * @returns A builder that produces a [[RenderGraphic]].\n */\n public abstract createGraphic(options: CustomGraphicBuilderOptions | ViewportGraphicBuilderOptions): GraphicBuilder;\n\n /** Obtain an object capable of producing a custom screen-space effect to be applied to the image rendered by a [[Viewport]].\n * @returns undefined if screen-space effects are not supported by this RenderSystem.\n */\n public createScreenSpaceEffectBuilder(_params: ScreenSpaceEffectBuilderParams): ScreenSpaceEffectBuilder | undefined {\n return undefined;\n }\n\n /** Create a graphic from a low-level representation of a triangle mesh.\n * @param args A description of the mesh.\n * @param instances Repetitions of the mesh to be drawn.\n * @see [[createGraphic]] to obtain a [[GraphicBuilder]] that can assemble a mesh from higher-level primitives.\n */\n public createTriMesh(args: MeshArgs, instances?: InstancedGraphicParams): RenderGraphic | undefined;\n /** @internal */\n public createTriMesh(args: MeshArgs, instances?: InstancedGraphicParams | RenderAreaPattern | Point3d): RenderGraphic | undefined; // eslint-disable-line @typescript-eslint/unified-signatures\n /** @internal */\n public createTriMesh(args: MeshArgs, instances?: InstancedGraphicParams | RenderAreaPattern | Point3d): RenderGraphic | undefined {\n const params = createMeshParams(args, this.maxTextureSize, IModelApp.tileAdmin.edgeOptions.type !== \"non-indexed\");\n return this.createMesh(params, instances);\n }\n\n /** @internal */\n public createMeshGraphics(mesh: Mesh, instances?: InstancedGraphicParams | Point3d): RenderGraphic | undefined {\n const meshArgs = mesh.toMeshArgs();\n if (meshArgs) {\n return this.createTriMesh(meshArgs, instances);\n }\n\n const polylineArgs = mesh.toPolylineArgs();\n return polylineArgs ? this.createIndexedPolylines(polylineArgs, instances) : undefined;\n }\n\n /** @internal */\n public createGeometryFromMesh(mesh: Mesh, viOrigin: Point3d | undefined, tileData?: LayerTileData): RenderGeometry | undefined {\n const meshArgs = mesh.toMeshArgs();\n if (meshArgs) {\n const meshParams = createMeshParams(meshArgs, this.maxTextureSize, IModelApp.tileAdmin.edgeOptions.type !== \"non-indexed\");\n meshParams.tileData = tileData;\n return this.createMeshGeometry(meshParams, viOrigin);\n }\n\n const plArgs = mesh.toPolylineArgs();\n if (!plArgs) {\n return undefined;\n }\n\n if (plArgs.flags.isDisjoint) {\n const psParams = createPointStringParams(plArgs, this.maxTextureSize);\n return psParams ? this.createPointStringGeometry(psParams, viOrigin) : undefined;\n }\n\n const plParams = createPolylineParams(plArgs, this.maxTextureSize);\n return plParams ? this.createPolylineGeometry(plParams, viOrigin) : undefined;\n }\n\n /** Create a graphic from a low-level representation of a set of line strings.\n * @param args A description of the line strings.\n * @param instances Repetitions of the line strings to be drawn.\n */\n public createIndexedPolylines(args: PolylineArgs, instances?: InstancedGraphicParams): RenderGraphic | undefined;\n /** @internal */\n public createIndexedPolylines(args: PolylineArgs, instances?: InstancedGraphicParams | RenderAreaPattern | Point3d): RenderGraphic | undefined; // eslint-disable-line @typescript-eslint/unified-signatures\n /** @internal */\n public createIndexedPolylines(args: PolylineArgs, instances?: InstancedGraphicParams | RenderAreaPattern | Point3d): RenderGraphic | undefined {\n if (args.flags.isDisjoint) {\n const pointStringParams = createPointStringParams(args, this.maxTextureSize);\n return undefined !== pointStringParams ? this.createPointString(pointStringParams, instances) : undefined;\n } else {\n const polylineParams = createPolylineParams(args, this.maxTextureSize);\n return undefined !== polylineParams ? this.createPolyline(polylineParams, instances) : undefined;\n }\n }\n\n /** @internal */\n public createMeshGeometry(_params: MeshParams, _viewIndependentOrigin?: Point3d): RenderGeometry | undefined { return undefined; }\n /** @internal */\n public createPolylineGeometry(_params: PolylineParams, _viewIndependentOrigin?: Point3d): RenderGeometry | undefined { return undefined; }\n /** @internal */\n public createPointStringGeometry(_params: PointStringParams, _viewIndependentOrigin?: Point3d): RenderGeometry | undefined { return undefined; }\n /** @internal */\n public createPointCloudGeometry(_args: PointCloudArgs): RenderGeometry | undefined { return undefined; }\n /** @internal */\n public createRealityMeshGeometry(_params: RealityMeshParams, _disableTextureDisposal = false): RenderGeometry | undefined { return undefined; }\n\n /** @internal */\n public createAreaPattern(_params: PatternGraphicParams): RenderAreaPattern | undefined { return undefined; }\n\n /** Create a [[RenderInstances]] from a [[RenderInstancesParams]], to be supplied to [[createGraphicFromTemplate]] via [[CreateGraphicFromTempalateArgs.instances]].\n * @beta\n */\n public createRenderInstances(_params: RenderInstancesParams): RenderInstances | undefined { return undefined; }\n\n /** Creates a graphic that draws any number of repetitions of a [[GraphicTemplate]].\n * @beta\n */\n public abstract createGraphicFromTemplate(args: CreateGraphicFromTemplateArgs): RenderGraphic;\n\n /** Create a RenderGraphic from a RenderGeometry produced by this RenderSystem.\n * @internal\n */\n public abstract createRenderGraphic(_geometry: RenderGeometry, instances?: InstancedGraphicParams | RenderAreaPattern): RenderGraphic | undefined;\n\n private createGraphicFromGeometry(\n createGeometry: (viewIndependentOrigin?: Point3d) => RenderGeometry | undefined,\n instancesOrOrigin?: InstancedGraphicParams | RenderAreaPattern | Point3d): RenderGraphic | undefined {\n let viOrigin;\n let instances;\n if (instancesOrOrigin instanceof Point3d)\n viOrigin = instancesOrOrigin;\n else\n instances = instancesOrOrigin;\n\n const geom = createGeometry(viOrigin);\n return geom ? this.createRenderGraphic(geom, instances) : undefined;\n }\n\n /** @internal */\n public createMesh(params: MeshParams, instances?: InstancedGraphicParams | RenderAreaPattern | Point3d): RenderGraphic | undefined {\n return this.createGraphicFromGeometry((viOrigin) => this.createMeshGeometry(params, viOrigin), instances);\n }\n\n /** @internal */\n public createPolyline(params: PolylineParams, instances?: InstancedGraphicParams | RenderAreaPattern | Point3d): RenderGraphic | undefined {\n return this.createGraphicFromGeometry((origin) => this.createPolylineGeometry(params, origin), instances);\n }\n\n /** @internal */\n public createPointString(params: PointStringParams, instances?: InstancedGraphicParams | RenderAreaPattern | Point3d): RenderGraphic | undefined {\n return this.createGraphicFromGeometry((origin) => this.createPointStringGeometry(params, origin), instances);\n }\n\n /** @internal */\n public createTerrainMesh(_params: RealityMeshParams, _transform?: Transform, _disableTextureDisposal = false): RenderTerrainGeometry | undefined {\n return undefined;\n }\n\n /** @internal */\n public createRealityMeshGraphic(_params: MeshMapLayerGraphicParams, _disableTextureDisposal = false): RenderGraphic | undefined { return undefined; }\n /** @internal */\n public createRealityMesh(realityMesh: RealityMeshParams, disableTextureDisposal = false): RenderGraphic | undefined {\n const geom = this.createRealityMeshGeometry(realityMesh, disableTextureDisposal);\n return geom ? this.createRenderGraphic(geom) : undefined;\n }\n\n /** @internal */\n public get maxRealityImageryLayers() { return 0; }\n /** @internal */\n public createPointCloud(args: PointCloudArgs, _imodel: IModelConnection): RenderGraphic | undefined {\n const geom = this.createPointCloudGeometry(args);\n return geom ? this.createRenderGraphic(geom) : undefined;\n }\n\n /** Create a clip volume to clip geometry.\n * @note The clip volume takes ownership of the ClipVector, which must not be subsequently mutated.\n * @param _clipVector Defines how the volume clips geometry.\n * @returns A clip volume, or undefined if, e.g., the clip vector does not clip anything.\n */\n public createClipVolume(_clipVector: ClipVector): RenderClipVolume | undefined { return undefined; }\n\n /** @internal */\n public createPlanarGrid(_frustum: Frustum, _grid: PlanarGridProps): RenderGraphic | undefined { return undefined; }\n /** @internal */\n public createBackgroundMapDrape(_drapedTree: TileTreeReference, _mapTree: MapTileTreeReference): RenderTextureDrape | undefined { return undefined; }\n /** @internal */\n public createTile(tileTexture: RenderTexture, corners: Point3d[], featureIndex?: number): RenderGraphic | undefined {\n // corners\n // [0] [1]\n // [2] [3]\n // Quantize the points according to their range\n const points = new QPoint3dList(QParams3d.fromRange(Range3d.create(...corners)));\n for (let i = 0; i < 4; i++)\n points.add(corners[i]);\n\n // Now remove the translation from the quantized points and put it into a transform instead.\n // This prevents graphical artifacts when quantization origin is large relative to quantization scale.\n // ###TODO: Would be better not to create a branch for every tile.\n const qorigin = points.params.origin;\n const transform = Transform.createTranslationXYZ(qorigin.x, qorigin.y, qorigin.z);\n qorigin.setZero();\n\n const features = new FeatureIndex();\n if (undefined !== featureIndex) {\n features.featureID = featureIndex;\n features.type = FeatureIndexType.Uniform;\n }\n\n const rasterTile: MeshArgs = {\n points,\n vertIndices: [0, 1, 2, 2, 1, 3],\n isPlanar: true,\n features,\n colors: new ColorIndex(),\n fillFlags: FillFlags.None,\n textureMapping: {\n uvParams: [new Point2d(0, 0), new Point2d(1, 0), new Point2d(0, 1), new Point2d(1, 1)],\n texture: tileTexture,\n },\n };\n\n const trimesh = this.createTriMesh(rasterTile);\n if (undefined === trimesh)\n return undefined;\n\n const branch = new GraphicBranch(true);\n branch.add(trimesh);\n return this.createBranch(branch, transform);\n }\n\n /** Create a Graphic for a [[SkyBox]] which encompasses the entire scene, rotating with the camera.\n * @internal\n */\n public createSkyBox(_params: RenderSkyBoxParams): RenderGraphic | undefined { return undefined; }\n\n /** Create a RenderGraphic consisting of a list of Graphics to be drawn together. */\n public abstract createGraphicList(primitives: RenderGraphic[]): RenderGraphic;\n\n /** Create a RenderGraphic consisting of a list of Graphics, with optional transform and symbology overrides applied to the list */\n public createBranch(branch: GraphicBranch, transform: Transform, options?: GraphicBranchOptions): RenderGraphic {\n return this.createGraphicBranch(branch, transform, options);\n }\n\n /** Create a graphic from a [[GraphicBranch]]. */\n public abstract createGraphicBranch(branch: GraphicBranch, transform: Transform, options?: GraphicBranchOptions): RenderGraphic;\n\n /** Create a node in the scene graph corresponding to a transform node in the scene's schedule script.\n * Nodes under this branch will only be drawn if they belong to the specified transform node.\n * This allows the graphics in a single Tile to be efficiently drawn with different transforms applied by different nodes.\n * The node Id is either the Id of a single transform node in the script, of 0xffffffff to indicate all nodes that have no transform applied to them.\n * @internal\n */\n public createAnimationTransformNode(graphic: RenderGraphic, _nodeId: number): RenderGraphic {\n return graphic;\n }\n\n /** Create a \"batch\" of graphics containing individual [Feature]($common)s.\n * @param graphic The graphic representing the contents of the batch.\n * @param features The features contained within the batch.\n * @param range A volume fully encompassing the batch's geometry.\n * @param options Options customizing the behavior of the batch.\n */\n public abstract createBatch(graphic: RenderGraphic, features: RenderFeatureTable, range: ElementAlignedBox3d, options?: BatchOptions): RenderGraphic;\n\n /** Return a Promise which when resolved indicates that all pending external textures have finished loading from the backend. */\n public async waitForAllExternalTextures(): Promise<void> { return Promise.resolve(); }\n /** @internal */\n public get hasExternalTextureRequests(): boolean { return false; }\n\n /** Create a graphic that assumes ownership of another graphic.\n * @param ownedGraphic The RenderGraphic to be owned.\n * @returns The owning graphic that exposes a `disposeGraphic` method for explicitly disposing of the owned graphic.\n * @see [[RenderGraphicOwner]] for details regarding ownership semantics.\n * @public\n */\n public createGraphicOwner(ownedGraphic: RenderGraphic): RenderGraphicOwner { return new GraphicOwner(ownedGraphic); }\n\n /** Create a \"layer\" containing the graphics belonging to it. A layer has a unique identifier and all of its geometry lies in an XY plane.\n * Different layers can be drawn coincident with one another; their draw order can be controlled by a per-layer priority value so that one layer draws\n * on top of another. Layers cannot nest inside other layers. Multiple GraphicLayers can exist with the same ID; they are treated as belonging to the same layer.\n * A GraphicLayer must be contained (perhaps indirectly) inside a GraphicLayerContainer.\n * @see [[createGraphicLayerContainer]]\n * @internal\n */\n public createGraphicLayer(graphic: RenderGraphic, _layerId: string): RenderGraphic { return graphic; }\n\n /** Create a graphic that can contain [[GraphicLayer]]s.\n * @internal\n */\n public createGraphicLayerContainer(graphic: RenderGraphic, _drawAsOverlay: boolean, _transparency: number, _elevation: number): RenderGraphic { return graphic; }\n\n /** Find a previously-created [[RenderTexture]] by its key.\n * @param _key The unique key of the texture within the context of the IModelConnection. Typically an element Id.\n * @param _imodel The IModelConnection with which the texture is associated.\n * @returns A previously-created texture matching the specified key, or undefined if no such texture exists.\n */\n public findTexture(_key: TextureCacheKey, _imodel: IModelConnection): RenderTexture | undefined {\n return undefined;\n }\n\n /** Find or create a [[RenderTexture]] from a persistent texture element.\n * @param id The ID of the texture element.\n * @param iModel The IModel containing the texture element.\n * @returns A Promise resolving to the created RenderTexture or to undefined if the texture could not be created.\n * @note If the texture is successfully created, it will be cached on the IModelConnection such that it can later be retrieved by its ID using [[RenderSystem.findTexture]].\n * @see [[RenderSystem.loadTextureImage]].\n */\n public async loadTexture(id: Id64String, iModel: IModelConnection): Promise<RenderTexture | undefined> {\n let texture = this.findTexture(id.toString(), iModel);\n if (undefined === texture) {\n const image = await this.loadTextureImage(id, iModel);\n if (undefined !== image) {\n // This will return a pre-existing RenderTexture if somebody else loaded it while we were awaiting the image.\n texture = this.createTexture({\n type: RenderTexture.Type.Normal,\n ownership: { key: id, iModel },\n image: {\n source: image.image,\n transparency: ImageSourceFormat.Png === image.format ? TextureTransparency.Mixed : TextureTransparency.Opaque,\n },\n });\n }\n }\n\n return texture;\n }\n\n /**\n * Load a texture image given the ID of a texture element.\n * @param id The ID of the texture element.\n * @param iModel The IModel containing the texture element.\n * @returns A Promise resolving to a TextureImage created from the texture element's data, or to undefined if the TextureImage could not be created.\n * @see [[RenderSystem.loadTexture]]\n * @internal\n */\n public async loadTextureImage(id: Id64String, iModel: IModelConnection): Promise<{ image: HTMLImageElement, format: ImageSourceFormat } | undefined> {\n const elemProps = await iModel.elements.getProps(id);\n if (1 !== elemProps.length)\n return undefined;\n\n const textureProps = elemProps[0] as TextureProps;\n if (undefined === textureProps.data || \"string\" !== typeof (textureProps.data) || undefined === textureProps.format || \"number\" !== typeof (textureProps.format))\n return undefined;\n\n const format = textureProps.format;\n if (!isValidImageSourceFormat(format))\n return undefined;\n\n const imageSource = new ImageSource(base64StringToUint8Array(textureProps.data), format);\n const image = await imageElementFromImageSource(imageSource);\n return { image, format };\n }\n\n /** Obtain a texture created from a gradient.\n * @param _symb The description of the gradient.\n * @param _imodel The IModelConnection with which the texture is associated.\n * @returns A texture created from the gradient image, or undefined if the texture could not be created.\n * @note If a texture matching the specified gradient is already cached on the iModel, it will be returned.\n * Otherwise, if an iModel is supplied, the newly-created texture will be cached on the iModel such that subsequent calls with an equivalent gradient and the\n * same iModel will return the cached texture instead of creating a new one.\n */\n public getGradientTexture(_symb: Gradient.Symb, _imodel?: IModelConnection): RenderTexture | undefined {\n return undefined;\n }\n\n /** Create a texture from an ImageSource. */\n public async createTextureFromSource(args: CreateTextureFromSourceArgs): Promise<RenderTexture | undefined> {\n try {\n // JPEGs don't support transparency.\n const transparency = ImageSourceFormat.Jpeg === args.source.format ? TextureTransparency.Opaque : (args.transparency ?? TextureTransparency.Mixed);\n const image = await imageElementFromImageSource(args.source);\n if (!IModelApp.hasRenderSystem)\n return undefined;\n\n return this.createTexture({\n type: args.type,\n ownership: args.ownership,\n image: {\n source: image,\n transparency,\n },\n });\n } catch {\n return undefined;\n }\n }\n\n /** Create a new texture by its element ID. This texture will be retrieved asynchronously from the backend. A placeholder image will be associated with the texture until the requested image data loads. */\n\n public createTextureFromElement(_id: Id64String, _imodel: IModelConnection, _params: RenderTextureParams, _format: ImageSourceFormat): RenderTexture | undefined {\n return undefined;\n }\n\n public createTexture(_args: CreateTextureArgs): RenderTexture | undefined {\n return undefined;\n }\n\n /** Create a new texture from a cube of HTML images.\n * @internal\n */\n\n public createTextureFromCubeImages(_posX: HTMLImageElement, _negX: HTMLImageElement, _posY: HTMLImageElement, _negY: HTMLImageElement, _posZ: HTMLImageElement, _negZ: HTMLImageElement, _imodel: IModelConnection, _params: RenderTextureParams): RenderTexture | undefined {\n return undefined;\n }\n\n /** @internal */\n public onInitialized(): void { }\n\n /** @internal */\n public get supportsLogZBuffer(): boolean { return false !== this.options.logarithmicDepthBuffer; }\n\n /** Obtain an object that can be used to control various debugging features. Returns `undefined` if debugging features are unavailable for this `RenderSystem`.\n * @internal\n */\n public get debugControl(): RenderSystemDebugControl | undefined { return undefined; }\n\n /** @internal */\n public collectStatistics(_stats: RenderMemory.Statistics): void { }\n\n /** A function that is invoked after the WebGL context is lost. Context loss is almost always caused by excessive consumption of GPU memory.\n * After context loss occurs, the RenderSystem will be unable to interact with WebGL by rendering viewports, creating graphics and textures, etc.\n * By default, this function invokes [[ToolAdmin.exceptionHandler]] with a brief message describing what occurred.\n * An application can override this behavior as follows:\n * ```ts\n * RenderSystem.contextLossHandler = (): Promise<any> => {\n * // your implementation here.\n * }\n * ```\n * @note Context loss is reported by the browser some short time *after* it has occurred. It is not possible to determine the specific cause.\n * @see [[TileAdmin.gpuMemoryLimit]] to limit the amount of GPU memory consumed thereby reducing the likelihood of context loss.\n * @see [[TileAdmin.totalTileContentBytes]] for the amount of GPU memory allocated for tile graphics.\n */\n public static async contextLossHandler(): Promise<any> {\n const msg = IModelApp.localization.getLocalizedString(\"iModelJs:Errors.WebGLContextLost\");\n return ToolAdmin.exceptionHandler(msg);\n }\n\n /** Convert a [[GraphicDescription]] produced by a [[GraphicDescriptionBuilder]] into a [[RenderGraphic]].\n * @beta\n */\n public createGraphicFromDescription(args: CreateGraphicFromDescriptionArgs): RenderGraphic | undefined {\n return createGraphicFromDescription(args.description, args.context, this);\n }\n\n /** Convert a [[GraphicDescription]] produced by a [[GraphicDescriptionBuilder]] into a [[GraphicTemplate]].\n * @beta\n */\n public createTemplateFromDescription(args: CreateGraphicFromDescriptionArgs): GraphicTemplate {\n return createGraphicTemplateFromDescription(args.description, args.context, this);\n }\n\n /** Obtain the JSON representation of a [[WorkerGraphicDescriptionContext]] for the specified `iModel` that can be forwarded to a Worker for use with a [[GraphicDescriptionBuilder]].\n * @beta\n */\n public createWorkerGraphicDescriptionContextProps(iModel: IModelConnection): WorkerGraphicDescriptionContextProps {\n const props: WorkerGraphicDescriptionContextPropsImpl = {\n [_implementationProhibited]: undefined,\n transientIds: iModel.transientIds.fork(),\n constraints: {\n [_implementationProhibited]: undefined,\n maxTextureSize: this.maxTextureSize,\n },\n };\n\n return props;\n }\n\n /** Synchronize changes made to a [[WorkerGraphicDescriptionContext]] on a Worker with the state of the `iModel` from which it was created.\n * @beta\n */\n public async resolveGraphicDescriptionContext(props: GraphicDescriptionContextProps, iModel: IModelConnection): Promise<GraphicDescriptionContext> {\n const impl = props as GraphicDescriptionContextPropsImpl;\n if (typeof impl.transientIds !== \"object\" || !Array.isArray(impl.textures)) {\n throw new Error(\"Invalid GraphicDescriptionContextProps\");\n }\n\n if (impl.resolved) {\n throw new Error(\"resolveGraphicDescriptionContext can only be called once for a given GraphicDescriptionContextProps\");\n }\n\n const textures = new Map<string, RenderTexture>();\n\n await Promise.allSettled(impl.textures.map(async (tex, i) => {\n let texture: RenderTexture | undefined;\n if (tex.source.gradient) {\n texture = this.getGradientTexture(Gradient.Symb.fromJSON(tex.source.gradient));\n } else if (tex.source.imageSource) {\n texture = await this.createTextureFromSource({\n source: new ImageSource(tex.source.imageSource, tex.source.format),\n type: tex.type,\n transparency: tex.transparency,\n });\n } else if (tex.source.imageBuffer) {\n texture = this.createTexture({\n type: tex.type,\n image: {\n source: ImageBuffer.create(tex.source.imageBuffer, tex.source.format, tex.source.width),\n transparency: tex.transparency,\n },\n });\n } else if (tex.source.url) {\n const image = await tryImageElementFromUrl(tex.source.url);\n if (image) {\n texture = this.createTexture({\n type: tex.type,\n image: {\n source: image,\n transparency: tex.transparency,\n },\n });\n }\n }\n\n if (texture) {\n textures.set(i.toString(10), texture);\n }\n }));\n\n const remap = iModel.transientIds.merge(impl.transientIds);\n impl.resolved = true;\n return {\n [_implementationProhibited]: undefined,\n remapTransientLocalId: (source) => remap(source),\n [_textures]: textures,\n };\n }\n}\n\n/** A RenderSystem provides access to resources used by the internal WebGL-based rendering system.\n * An application rarely interacts directly with the RenderSystem; instead it interacts with types like [[Viewport]] which\n * coordinate with the RenderSystem on the application's behalf.\n * @see [[IModelApp.renderSystem]].\n * @public\n */\nexport namespace RenderSystem {\n /** Options passed to [[IModelApp.supplyRenderSystem]] to configure the [[RenderSystem]] on startup. Many of these options serve as \"feature flags\" used to enable newer, experimental features. As such they typically begin life tagged as \"alpha\" or \"beta\" and are subsequently deprecated when the feature is declared stable.\n *\n * @public\n */\n export interface Options {\n /** WebGL extensions to be explicitly disabled, regardless of whether or not the WebGL implementation supports them.\n * This is chiefly useful for testing code that only executes in the absence of particular extensions, while running on a system that supports those extensions.\n *\n * Default value: undefined\n *\n * @public\n */\n disabledExtensions?: WebGLExtensionName[];\n\n /** If true, preserve the shader source code as internal strings, useful for debugging purposes.\n *\n * Default value: false\n *\n * @public\n */\n preserveShaderSourceCode?: boolean;\n\n /** If true, display solar shadows when enabled by [ViewFlags.shadows]($common).\n *\n * Default value: true\n *\n * @beta\n */\n displaySolarShadows?: boolean;\n\n /** If the view frustum is sufficiently large, and the EXT_frag_depth WebGL extension is available, use a logarithmic depth buffer to improve depth buffer resolution. Framerate may degrade to an extent while the logarithmic depth buffer is in use. If this option is disabled, or the extension is not supported, the near and far planes of very large view frustums will instead be moved to reduce the draw distance.\n *\n * Default value: true\n *\n * @public\n */\n logarithmicDepthBuffer?: boolean;\n\n /** If true, [[ScreenViewport]]s will respect the DPI of the display. See [[Viewport.devicePixelRatio]] and [[Viewport.cssPixelsToDevicePixels]].\n * @see [[dpiAwareLOD]] to control whether device pixel ratio affects the level of detail for tile graphics and decorations.\n * @see [[Viewport.cssPixelsToDevicePixels]] to convert CSS pixels to device pixels.\n * @see [[Viewport.devicePixelRatio]].\n *\n * Default value: true\n *\n * @public\n */\n dpiAwareViewports?: boolean;\n\n /** If defined, this will be used as the device pixel ratio instead of the system's actual device pixel ratio.\n * This can be helpful for situations like running in the iOS Simulator where forcing a lower resolution by setting a sub-1 device pixel ratio would increase performance.\n * @note If this setting is used to decrease the effective device pixel ratio, the view will appear pixelated.\n * @note This setting should only be used to increase performance in situations like the iOS Simulator for testing purposes only. It should not be used in a production situation.\n * @note This setting has no effect if [[dpiAwareViewports]] is `false`.\n *\n * Default value: undefined\n *\n * @public\n */\n devicePixelRatioOverride?: number;\n\n /** If true, [[ScreenViewport]]s will take into account the DPI of the display when computing the level of detail for tile graphics and decorations.\n * This can result in sharper-looking images on high-DPI devices like mobile phones, but may reduce performance on such devices.\n * @note This setting has no effect if [[dpiAwareViewports]] is `false`.\n * @see [[Viewport.devicePixelRatio]].\n *\n * Default value: false\n *\n * @public\n */\n dpiAwareLOD?: boolean;\n\n /** Previously, this property dictated whether to attempt to use a WebGL 2 rendering context before falling back to WebGL 1.\n * WebGL 1 is no longer supported, so this property is now ignored.\n * @public\n * @deprecated in 4.x. WebGL 1 is no longer supported.\n */\n useWebGL2?: boolean;\n\n /** If true, plan projection models will be rendered using [PlanProjectionSettings]($common) defined by the [[DisplayStyle3dState]].\n * Default value: true\n * @public\n */\n planProjections?: boolean;\n\n /** To help prevent delays when a user interacts with a [[Viewport]], the WebGL render system can precompile shader programs before any Viewport is opened.\n * This particularly helps applications when they do not open a Viewport immediately upon startup - for example, if the user is first expected to select an iModel and a view through the user interface.\n * Shader precompilation will cease once all shader programs have been compiled, or when a Viewport is opened (registered with the [[ViewManager]]).\n * @note Enabling this feature can slow UI interactions before a [[Viewport]] is opened.\n * To enable this feature, set this to `true`.\n *\n * Default value: false\n *\n * @beta\n */\n doIdleWork?: boolean;\n\n /** WebGL context attributes to explicitly set when initializing [[IModelApp.renderSystem]].\n * Exposed chiefly for OpenCities Planner.\n * @internal\n */\n contextAttributes?: WebGLContextAttributes;\n\n /** If true, will cause exception when a shader uniform is missing (usually optimized out), otherwise will only log these.\n * Default value: false\n * @public\n */\n errorOnMissingUniform?: boolean;\n\n /** If true, and the `WEBGL_debug_shaders` extension is available, accumulate debug information during shader compilation.\n * This information can be accessed via `RenderSystemDebugControl.debugShaderFiles`.\n * Default value: false\n * @internal\n */\n debugShaders?: boolean;\n\n /** Initial antialias setting.\n * If antialiasing is supported, a value greater than 1 enables it using that many samples, and a value less than or equal to 1 disables antialiasing.\n * Default value: 1\n * @public\n */\n antialiasSamples?: number;\n }\n}\n"]}
1
+ {"version":3,"file":"RenderSystem.js","sourceRoot":"","sources":["../../../src/render/RenderSystem.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 { base64StringToUint8Array, Id64String } from \"@itwin/core-bentley\";\nimport {\n ColorDef, ColorIndex, ElementAlignedBox3d, FeatureIndex, FeatureIndexType, FillFlags, Frustum, Gradient, ImageBuffer, ImageSource, ImageSourceFormat,\n isValidImageSourceFormat, PackedFeatureTable, QParams3d, QPoint3dList, RenderFeatureTable, RenderMaterial, RenderTexture, RenderTextureParams, TextureProps, TextureTransparency,\n} from \"@itwin/core-common\";\nimport { ClipVector, Matrix3d, Point2d, Point3d, Range3d, Transform, XAndY, XYAndZ } from \"@itwin/core-geometry\";\nimport { WebGLExtensionName } from \"@itwin/webgl-compatibility\";\nimport { IModelApp } from \"../IModelApp\";\nimport { IModelConnection } from \"../IModelConnection\";\nimport { createGraphicFromDescription, createGraphicTemplateFromDescription, MapTileTreeReference, TileTreeReference } from \"../tile/internal\";\nimport { ToolAdmin } from \"../tools/ToolAdmin\";\nimport { Viewport } from \"../Viewport\";\nimport { imageElementFromImageSource, tryImageElementFromUrl } from \"../common/ImageUtil\";\nimport { MeshParams } from \"../common/internal/render/MeshParams\";\nimport { createPointStringParams, PointStringParams } from \"../common/internal/render/PointStringParams\";\nimport { createPolylineParams, PolylineParams } from \"../common/internal/render/PolylineParams\";\nimport { TextureCacheKey } from \"../common/render/TextureParams\";\nimport { ViewRect } from \"../common/ViewRect\";\nimport { GraphicBranch, GraphicBranchOptions } from \"./GraphicBranch\";\nimport { CustomGraphicBuilderOptions, GraphicBuilder, ViewportGraphicBuilderOptions } from \"./GraphicBuilder\";\nimport { InstancedGraphicParams, PatternGraphicParams } from \"../common/render/InstancedGraphicParams\";\nimport { Mesh } from \"../common/internal/render/MeshPrimitives\";\nimport { MeshMapLayerGraphicParams } from \"../internal/render/MeshMapLayerGraphicParams\";\nimport { RealityMeshParams } from \"./RealityMeshParams\";\nimport { PointCloudArgs } from \"../common/internal/render/PointCloudPrimitive\";\nimport { RenderClipVolume } from \"./RenderClipVolume\";\nimport { RenderGraphic, RenderGraphicOwner } from \"./RenderGraphic\";\nimport { CreateRenderMaterialArgs } from \"./CreateRenderMaterialArgs\";\nimport { RenderMemory } from \"./RenderMemory\";\nimport { RenderTarget } from \"./RenderTarget\";\nimport { CreateTextureArgs, CreateTextureFromSourceArgs } from \"./CreateTextureArgs\";\nimport { ScreenSpaceEffectBuilder, ScreenSpaceEffectBuilderParams } from \"./ScreenSpaceEffectBuilder\";\nimport { createMeshParams } from \"../common/internal/render/VertexTableBuilder\";\nimport { GraphicType } from \"../common/render/GraphicType\";\nimport { BatchOptions } from \"../common/render/BatchOptions\";\nimport { GraphicDescription } from \"../common/render/GraphicDescriptionBuilder\";\nimport { GraphicDescriptionContextPropsImpl, WorkerGraphicDescriptionContextPropsImpl } from \"../common/internal/render/GraphicDescriptionContextImpl\";\nimport { _featureTable, _implementationProhibited, _renderSystem, _textures, _transformCenter, _transforms } from \"../common/internal/Symbols\";\nimport { GraphicDescriptionContext, GraphicDescriptionContextProps, WorkerGraphicDescriptionContextProps } from \"../common/render/GraphicDescriptionContext\";\nimport { MeshArgs } from \"./MeshArgs\";\nimport { PolylineArgs } from \"./PolylineArgs\";\nimport { RenderGeometry } from \"../internal/render/RenderGeometry\";\nimport { RenderInstancesParams } from \"../common/render/RenderInstancesParams\";\nimport { GraphicTemplate } from \"./GraphicTemplate\";\nimport { RenderSystemDebugControl } from \"../internal/render/RenderSystemDebugControl\";\nimport { RenderTextureDrape } from \"../internal/render/RenderTextureDrape\";\nimport { RenderTerrainGeometry } from \"../internal/render/RenderTerrain\";\nimport { RenderSkyBoxParams } from \"../internal/render/RenderSkyBoxParams\";\nimport { RenderAreaPattern } from \"../internal/render/RenderAreaPattern\";\nimport { LayerTileData } from \"../internal/render/webgl/MapLayerParams\";\n\n// cSpell:ignore deserializing subcat uninstanced wiremesh qorigin trimesh\n\n/** Default implementation of RenderGraphicOwner. */\nclass GraphicOwner extends RenderGraphicOwner {\n public constructor(private readonly _graphic: RenderGraphic) { super(); }\n public get graphic(): RenderGraphic { return this._graphic; }\n}\n\n/** Transparency settings for planar grid display.\n * @alpha\n */\nexport class PlanarGridTransparency {\n /** Transparency for the grid plane. This should generally be fairly high to avoid obscuring other geometry */\n public readonly planeTransparency = .9;\n /** Transparency of the grid lines. This should be higher than the plane, but less than reference line transparency */\n public readonly lineTransparency = .75;\n /** Transparency of the reference lines. This should be less than plane or line transparency so that reference lines are more prominent */\n public readonly refTransparency = .5;\n}\n\n/** Settings for planar grid display.\n * @alpha\n */\nexport interface PlanarGridProps {\n /** The grid origin */\n origin: Point3d;\n /** The grid orientation. The grid X and Y direction are the first and second matrix rows */\n rMatrix: Matrix3d;\n /** The spacing between grid liens in the X and Y direction */\n spacing: XAndY;\n /** Grid lines per reference. If zero no reference lines are displayed. */\n gridsPerRef: number;\n /** Grid color. [[Use Viewport.getContrastToBackgroundColor]] to get best constrast color based on current background. */\n color: ColorDef;\n /** Transparency settings. If omitted then the [[PlanarGridTransparency]] defaults are used. */\n transparency?: PlanarGridTransparency;\n}\n\n/** Contains the WebGL resources necessary to draw multiple [[Instance]]s of a [[GraphicTemplate]] using [instanced rendering](https://webglfundamentals.org/webgl/lessons/webgl-instanced-drawing.html).\n * Use [[RenderSystem.createRenderInstances]] to create one.\n * The instances may be associated with [Feature]($common)s, in which case those features override any defined in the template itself.\n * Example usage:\n * ```ts\n * [[include:Gltf_Instancing]]\n * ```\n * @beta\n */\nexport interface RenderInstances {\n /** @internal */\n readonly [_implementationProhibited]: \"renderInstances\";\n /** @internal */\n readonly [_transformCenter]: XYAndZ;\n /** @internal */\n readonly [_transforms]: Float32Array;\n /** @internal */\n readonly [_featureTable]?: PackedFeatureTable;\n}\n\n/** Arguments supplied to [[RenderSystem.createGraphicFromDescription]].\n * @beta\n */\nexport interface CreateGraphicFromDescriptionArgs {\n /** A description of the [[RenderGraphic]] to create, obtained from a [[GraphicDescriptionBuilder]]. */\n description: GraphicDescription;\n /** The context that was used to create the graphic description, obtained from [[RenderSystem.resolveGraphicDescriptionContext]]. */\n context: GraphicDescriptionContext;\n}\n\n/** Arguments supplied to [[RenderSystem.createGraphicFromTemplate]].\n * @beta\n */\nexport interface CreateGraphicFromTemplateArgs {\n /** Describes how to draw the graphic. */\n template: GraphicTemplate;\n /** Optionally describes how to draw multiple repetitions of the graphic. */\n instances?: RenderInstances;\n}\n\n/** A RenderSystem provides access to resources used by the internal WebGL-based rendering system.\n * An application rarely interacts directly with the RenderSystem; instead it interacts with types like [[Viewport]] which\n * coordinate with the RenderSystem on the application's behalf.\n * @see [Display system overview]($docs/learning/display/index.md)\n * @see [[IModelApp.renderSystem]].\n * @public\n * @extensions\n */\nexport abstract class RenderSystem implements Disposable {\n /** Options used to initialize the RenderSystem. These are primarily used for feature-gating.\n * This object is frozen and cannot be modified after the RenderSystem is created.\n * @internal\n */\n public readonly options: RenderSystem.Options;\n\n /** Antialias samples to use on all subsequently created render targets.\n * Default value: undefined (no antialiasing)\n * @beta\n */\n public antialiasSamples?: number;\n\n /** Initialize the RenderSystem with the specified options.\n * @note The RenderSystem takes ownership of the supplied Options and freezes it.\n * @internal\n */\n protected constructor(options?: RenderSystem.Options) {\n this.options = undefined !== options ? options : {};\n Object.freeze(this.options);\n if (undefined !== this.options.disabledExtensions)\n Object.freeze(this.options.disabledExtensions);\n }\n\n /** @internal */\n public abstract get isValid(): boolean;\n\n public [Symbol.dispose]() {\n this.dispose(); // eslint-disable-line @typescript-eslint/no-deprecated\n }\n\n /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Will be made protected in a future release. Use [Symbol.dispose] instead. */\n public abstract dispose(): void; // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** The maximum permitted width or height of a texture supported by this render system. */\n public get maxTextureSize(): number { return 0; }\n\n /** @internal */\n public get supportsCreateImageBitmap(): boolean { return false; }\n\n /** @internal */\n public get dpiAwareLOD(): boolean { return true === this.options.dpiAwareLOD; }\n\n /** @internal */\n public get isMobile(): boolean { return false; }\n\n /** @internal */\n public abstract createTarget(canvas: HTMLCanvasElement): RenderTarget;\n /** @internal */\n public abstract createOffscreenTarget(rect: ViewRect): RenderTarget;\n\n /** Perform a small unit of idle work and return true if more idle work remains to be done. This function is invoked on each tick of the javascript event loop as long as no viewports are registered with the ViewManager, until it returns false to indicate all idle work has been completed.\n * @internal\n */\n public abstract doIdleWork(): boolean;\n\n /** Find a previously-created [RenderMaterial]($common) by its ID.\n * @param _key The unique ID of the material within the context of the IModelConnection. Typically an element ID.\n * @param _imodel The IModelConnection with which the material is associated.\n * @returns A previously-created material matching the specified ID, or undefined if no such material exists.\n */\n public findMaterial(_key: string, _imodel: IModelConnection): RenderMaterial | undefined { return undefined; }\n\n /** Create a [RenderMaterial]($common).\n * @see [[CreateRenderMaterialArgs]] for a description of the material parameters.\n */\n public createRenderMaterial(_args: CreateRenderMaterialArgs): RenderMaterial | undefined {\n return undefined;\n }\n\n /** Creates a [[GraphicBuilder]] for creating a [[RenderGraphic]].\n * @param placement The local-to-world transform in which the builder's geometry is to be defined.\n * @param type The type of builder to create.\n * @param viewport The viewport in which the resultant [[RenderGraphic]] will be rendered.\n * @param pickableId If the decoration is to be pickable, a unique identifier to associate with the resultant [[RenderGraphic]].\n * @returns A builder for creating a [[RenderGraphic]] of the specified type appropriate for rendering within the specified viewport.\n * @see [[IModelConnection.transientIds]] for obtaining an ID for a pickable decoration.\n * @see [[RenderContext.createGraphicBuilder]].\n * @see [[Decorator]]\n */\n public createGraphicBuilder(placement: Transform, type: GraphicType, viewport: Viewport, pickableId?: Id64String): GraphicBuilder {\n const pickable = undefined !== pickableId ? { id: pickableId } : undefined;\n return this.createGraphic({ type, viewport, placement, pickable });\n }\n\n /** Obtain a [[GraphicBuilder]] from which to produce a [[RenderGraphic]].\n * @param options Options describing how to create the builder.\n * @returns A builder that produces a [[RenderGraphic]].\n */\n public abstract createGraphic(options: CustomGraphicBuilderOptions | ViewportGraphicBuilderOptions): GraphicBuilder;\n\n /** Obtain an object capable of producing a custom screen-space effect to be applied to the image rendered by a [[Viewport]].\n * @returns undefined if screen-space effects are not supported by this RenderSystem.\n */\n public createScreenSpaceEffectBuilder(_params: ScreenSpaceEffectBuilderParams): ScreenSpaceEffectBuilder | undefined {\n return undefined;\n }\n\n /** Create a graphic from a low-level representation of a triangle mesh.\n * @param args A description of the mesh.\n * @param instances Repetitions of the mesh to be drawn.\n * @see [[createGraphic]] to obtain a [[GraphicBuilder]] that can assemble a mesh from higher-level primitives.\n */\n public createTriMesh(args: MeshArgs, instances?: InstancedGraphicParams): RenderGraphic | undefined;\n /** @internal */\n public createTriMesh(args: MeshArgs, instances?: InstancedGraphicParams | RenderAreaPattern | Point3d): RenderGraphic | undefined; // eslint-disable-line @typescript-eslint/unified-signatures\n /** @internal */\n public createTriMesh(args: MeshArgs, instances?: InstancedGraphicParams | RenderAreaPattern | Point3d): RenderGraphic | undefined {\n const params = createMeshParams(args, this.maxTextureSize, IModelApp.tileAdmin.edgeOptions.type !== \"non-indexed\");\n return this.createMesh(params, instances);\n }\n\n /** @internal */\n public createMeshGraphics(mesh: Mesh, instances?: InstancedGraphicParams | Point3d): RenderGraphic | undefined {\n const meshArgs = mesh.toMeshArgs();\n if (meshArgs) {\n return this.createTriMesh(meshArgs, instances);\n }\n\n const polylineArgs = mesh.toPolylineArgs();\n return polylineArgs ? this.createIndexedPolylines(polylineArgs, instances) : undefined;\n }\n\n /** @internal */\n public createGeometryFromMesh(mesh: Mesh, viOrigin: Point3d | undefined, tileData?: LayerTileData): RenderGeometry | undefined {\n const meshArgs = mesh.toMeshArgs();\n if (meshArgs) {\n const meshParams = createMeshParams(meshArgs, this.maxTextureSize, IModelApp.tileAdmin.edgeOptions.type !== \"non-indexed\");\n meshParams.tileData = tileData;\n return this.createMeshGeometry(meshParams, viOrigin);\n }\n\n const plArgs = mesh.toPolylineArgs();\n if (!plArgs) {\n return undefined;\n }\n\n if (plArgs.flags.isDisjoint) {\n const psParams = createPointStringParams(plArgs, this.maxTextureSize);\n return psParams ? this.createPointStringGeometry(psParams, viOrigin) : undefined;\n }\n\n const plParams = createPolylineParams(plArgs, this.maxTextureSize);\n return plParams ? this.createPolylineGeometry(plParams, viOrigin) : undefined;\n }\n\n /** Create a graphic from a low-level representation of a set of line strings.\n * @param args A description of the line strings.\n * @param instances Repetitions of the line strings to be drawn.\n */\n public createIndexedPolylines(args: PolylineArgs, instances?: InstancedGraphicParams): RenderGraphic | undefined;\n /** @internal */\n public createIndexedPolylines(args: PolylineArgs, instances?: InstancedGraphicParams | RenderAreaPattern | Point3d): RenderGraphic | undefined; // eslint-disable-line @typescript-eslint/unified-signatures\n /** @internal */\n public createIndexedPolylines(args: PolylineArgs, instances?: InstancedGraphicParams | RenderAreaPattern | Point3d): RenderGraphic | undefined {\n if (args.flags.isDisjoint) {\n const pointStringParams = createPointStringParams(args, this.maxTextureSize);\n return undefined !== pointStringParams ? this.createPointString(pointStringParams, instances) : undefined;\n } else {\n const polylineParams = createPolylineParams(args, this.maxTextureSize);\n return undefined !== polylineParams ? this.createPolyline(polylineParams, instances) : undefined;\n }\n }\n\n /** @internal */\n public createMeshGeometry(_params: MeshParams, _viewIndependentOrigin?: Point3d): RenderGeometry | undefined { return undefined; }\n /** @internal */\n public createPolylineGeometry(_params: PolylineParams, _viewIndependentOrigin?: Point3d): RenderGeometry | undefined { return undefined; }\n /** @internal */\n public createPointStringGeometry(_params: PointStringParams, _viewIndependentOrigin?: Point3d): RenderGeometry | undefined { return undefined; }\n /** @internal */\n public createPointCloudGeometry(_args: PointCloudArgs): RenderGeometry | undefined { return undefined; }\n /** @internal */\n public createRealityMeshGeometry(_params: RealityMeshParams, _disableTextureDisposal = false): RenderGeometry | undefined { return undefined; }\n\n /** @internal */\n public createAreaPattern(_params: PatternGraphicParams): RenderAreaPattern | undefined { return undefined; }\n\n /** Create a [[RenderInstances]] from a [[RenderInstancesParams]], to be supplied to [[createGraphicFromTemplate]] via [[CreateGraphicFromTempalateArgs.instances]].\n * @beta\n */\n public createRenderInstances(_params: RenderInstancesParams): RenderInstances | undefined { return undefined; }\n\n /** Creates a graphic that draws any number of repetitions of a [[GraphicTemplate]].\n * @beta\n */\n public abstract createGraphicFromTemplate(args: CreateGraphicFromTemplateArgs): RenderGraphic;\n\n /** Create a RenderGraphic from a RenderGeometry produced by this RenderSystem.\n * @internal\n */\n public abstract createRenderGraphic(_geometry: RenderGeometry, instances?: InstancedGraphicParams | RenderAreaPattern): RenderGraphic | undefined;\n\n private createGraphicFromGeometry(\n createGeometry: (viewIndependentOrigin?: Point3d) => RenderGeometry | undefined,\n instancesOrOrigin?: InstancedGraphicParams | RenderAreaPattern | Point3d): RenderGraphic | undefined {\n let viOrigin;\n let instances;\n if (instancesOrOrigin instanceof Point3d)\n viOrigin = instancesOrOrigin;\n else\n instances = instancesOrOrigin;\n\n const geom = createGeometry(viOrigin);\n return geom ? this.createRenderGraphic(geom, instances) : undefined;\n }\n\n /** @internal */\n public createMesh(params: MeshParams, instances?: InstancedGraphicParams | RenderAreaPattern | Point3d): RenderGraphic | undefined {\n return this.createGraphicFromGeometry((viOrigin) => this.createMeshGeometry(params, viOrigin), instances);\n }\n\n /** @internal */\n public createPolyline(params: PolylineParams, instances?: InstancedGraphicParams | RenderAreaPattern | Point3d): RenderGraphic | undefined {\n return this.createGraphicFromGeometry((origin) => this.createPolylineGeometry(params, origin), instances);\n }\n\n /** @internal */\n public createPointString(params: PointStringParams, instances?: InstancedGraphicParams | RenderAreaPattern | Point3d): RenderGraphic | undefined {\n return this.createGraphicFromGeometry((origin) => this.createPointStringGeometry(params, origin), instances);\n }\n\n /** @internal */\n public createTerrainMesh(_params: RealityMeshParams, _transform?: Transform, _disableTextureDisposal = false): RenderTerrainGeometry | undefined {\n return undefined;\n }\n\n /** @internal */\n public createRealityMeshGraphic(_params: MeshMapLayerGraphicParams, _disableTextureDisposal = false): RenderGraphic | undefined { return undefined; }\n /** @internal */\n public createRealityMesh(realityMesh: RealityMeshParams, disableTextureDisposal = false): RenderGraphic | undefined {\n const geom = this.createRealityMeshGeometry(realityMesh, disableTextureDisposal);\n return geom ? this.createRenderGraphic(geom) : undefined;\n }\n\n /** @internal */\n public get maxRealityImageryLayers() { return 0; }\n /** @internal */\n public createPointCloud(args: PointCloudArgs, _imodel: IModelConnection): RenderGraphic | undefined {\n const geom = this.createPointCloudGeometry(args);\n return geom ? this.createRenderGraphic(geom) : undefined;\n }\n\n /** Create a clip volume to clip geometry.\n * @note The clip volume takes ownership of the ClipVector, which must not be subsequently mutated.\n * @param _clipVector Defines how the volume clips geometry.\n * @returns A clip volume, or undefined if, e.g., the clip vector does not clip anything.\n */\n public createClipVolume(_clipVector: ClipVector): RenderClipVolume | undefined { return undefined; }\n\n /** @internal */\n public createPlanarGrid(_frustum: Frustum, _grid: PlanarGridProps): RenderGraphic | undefined { return undefined; }\n /** @internal */\n public createBackgroundMapDrape(_drapedTree: TileTreeReference, _mapTree: MapTileTreeReference): RenderTextureDrape | undefined { return undefined; }\n /** @internal */\n public createTile(tileTexture: RenderTexture, corners: Point3d[], featureIndex?: number): RenderGraphic | undefined {\n // corners\n // [0] [1]\n // [2] [3]\n // Quantize the points according to their range\n const points = new QPoint3dList(QParams3d.fromRange(Range3d.create(...corners)));\n for (let i = 0; i < 4; i++)\n points.add(corners[i]);\n\n // Now remove the translation from the quantized points and put it into a transform instead.\n // This prevents graphical artifacts when quantization origin is large relative to quantization scale.\n // ###TODO: Would be better not to create a branch for every tile.\n const qorigin = points.params.origin;\n const transform = Transform.createTranslationXYZ(qorigin.x, qorigin.y, qorigin.z);\n qorigin.setZero();\n\n const features = new FeatureIndex();\n if (undefined !== featureIndex) {\n features.featureID = featureIndex;\n features.type = FeatureIndexType.Uniform;\n }\n\n const rasterTile: MeshArgs = {\n points,\n vertIndices: [0, 1, 2, 2, 1, 3],\n isPlanar: true,\n features,\n colors: new ColorIndex(),\n fillFlags: FillFlags.None,\n textureMapping: {\n uvParams: [new Point2d(0, 0), new Point2d(1, 0), new Point2d(0, 1), new Point2d(1, 1)],\n texture: tileTexture,\n },\n };\n\n const trimesh = this.createTriMesh(rasterTile);\n if (undefined === trimesh)\n return undefined;\n\n const branch = new GraphicBranch(true);\n branch.add(trimesh);\n return this.createBranch(branch, transform);\n }\n\n /** Create a Graphic for a [[SkyBox]] which encompasses the entire scene, rotating with the camera.\n * @internal\n */\n public createSkyBox(_params: RenderSkyBoxParams): RenderGraphic | undefined { return undefined; }\n\n /** Create a RenderGraphic consisting of a list of Graphics to be drawn together. */\n public abstract createGraphicList(primitives: RenderGraphic[]): RenderGraphic;\n\n /** Create a RenderGraphic consisting of a list of Graphics, with optional transform and symbology overrides applied to the list */\n public createBranch(branch: GraphicBranch, transform: Transform, options?: GraphicBranchOptions): RenderGraphic {\n return this.createGraphicBranch(branch, transform, options);\n }\n\n /** Create a graphic from a [[GraphicBranch]]. */\n public abstract createGraphicBranch(branch: GraphicBranch, transform: Transform, options?: GraphicBranchOptions): RenderGraphic;\n\n /** Create a node in the scene graph corresponding to a transform node in the scene's schedule script.\n * Nodes under this branch will only be drawn if they belong to the specified transform node.\n * This allows the graphics in a single Tile to be efficiently drawn with different transforms applied by different nodes.\n * The node Id is either the Id of a single transform node in the script, of 0xffffffff to indicate all nodes that have no transform applied to them.\n * @internal\n */\n public createAnimationTransformNode(graphic: RenderGraphic, _nodeId: number): RenderGraphic {\n return graphic;\n }\n\n /** Create a \"batch\" of graphics containing individual [Feature]($common)s.\n * @param graphic The graphic representing the contents of the batch.\n * @param features The features contained within the batch.\n * @param range A volume fully encompassing the batch's geometry.\n * @param options Options customizing the behavior of the batch.\n */\n public abstract createBatch(graphic: RenderGraphic, features: RenderFeatureTable, range: ElementAlignedBox3d, options?: BatchOptions): RenderGraphic;\n\n /** Return a Promise which when resolved indicates that all pending external textures have finished loading from the backend. */\n public async waitForAllExternalTextures(): Promise<void> { return Promise.resolve(); }\n /** @internal */\n public get hasExternalTextureRequests(): boolean { return false; }\n\n /** Create a graphic that assumes ownership of another graphic.\n * @param ownedGraphic The RenderGraphic to be owned.\n * @returns The owning graphic that exposes a `disposeGraphic` method for explicitly disposing of the owned graphic.\n * @see [[RenderGraphicOwner]] for details regarding ownership semantics.\n * @public\n */\n public createGraphicOwner(ownedGraphic: RenderGraphic): RenderGraphicOwner { return new GraphicOwner(ownedGraphic); }\n\n /** Create a \"layer\" containing the graphics belonging to it. A layer has a unique identifier and all of its geometry lies in an XY plane.\n * Different layers can be drawn coincident with one another; their draw order can be controlled by a per-layer priority value so that one layer draws\n * on top of another. Layers cannot nest inside other layers. Multiple GraphicLayers can exist with the same ID; they are treated as belonging to the same layer.\n * A GraphicLayer must be contained (perhaps indirectly) inside a GraphicLayerContainer.\n * @see [[createGraphicLayerContainer]]\n * @internal\n */\n public createGraphicLayer(graphic: RenderGraphic, _layerId: string): RenderGraphic { return graphic; }\n\n /** Create a graphic that can contain [[GraphicLayer]]s.\n * @internal\n */\n public createGraphicLayerContainer(graphic: RenderGraphic, _drawAsOverlay: boolean, _transparency: number, _elevation: number): RenderGraphic { return graphic; }\n\n /** Find a previously-created [[RenderTexture]] by its key.\n * @param _key The unique key of the texture within the context of the IModelConnection. Typically an element Id.\n * @param _imodel The IModelConnection with which the texture is associated.\n * @returns A previously-created texture matching the specified key, or undefined if no such texture exists.\n */\n public findTexture(_key: TextureCacheKey, _imodel: IModelConnection): RenderTexture | undefined {\n return undefined;\n }\n\n /** Find or create a [[RenderTexture]] from a persistent texture element.\n * @param id The ID of the texture element.\n * @param iModel The IModel containing the texture element.\n * @returns A Promise resolving to the created RenderTexture or to undefined if the texture could not be created.\n * @note If the texture is successfully created, it will be cached on the IModelConnection such that it can later be retrieved by its ID using [[RenderSystem.findTexture]].\n * @see [[RenderSystem.loadTextureImage]].\n */\n public async loadTexture(id: Id64String, iModel: IModelConnection): Promise<RenderTexture | undefined> {\n let texture = this.findTexture(id.toString(), iModel);\n if (undefined === texture) {\n const image = await this.loadTextureImage(id, iModel);\n if (undefined !== image) {\n // This will return a pre-existing RenderTexture if somebody else loaded it while we were awaiting the image.\n texture = this.createTexture({\n type: RenderTexture.Type.Normal,\n ownership: { key: id, iModel },\n image: {\n source: image.image,\n transparency: ImageSourceFormat.Png === image.format ? TextureTransparency.Mixed : TextureTransparency.Opaque,\n },\n });\n }\n }\n\n return texture;\n }\n\n /**\n * Load a texture image given the ID of a texture element.\n * @param id The ID of the texture element.\n * @param iModel The IModel containing the texture element.\n * @returns A Promise resolving to a TextureImage created from the texture element's data, or to undefined if the TextureImage could not be created.\n * @see [[RenderSystem.loadTexture]]\n * @internal\n */\n public async loadTextureImage(id: Id64String, iModel: IModelConnection): Promise<{ image: HTMLImageElement, format: ImageSourceFormat } | undefined> {\n const elemProps = await iModel.elements.getProps(id);\n if (1 !== elemProps.length)\n return undefined;\n\n const textureProps = elemProps[0] as TextureProps;\n if (undefined === textureProps.data || \"string\" !== typeof (textureProps.data) || undefined === textureProps.format || \"number\" !== typeof (textureProps.format))\n return undefined;\n\n const format = textureProps.format;\n if (!isValidImageSourceFormat(format))\n return undefined;\n\n const imageSource = new ImageSource(base64StringToUint8Array(textureProps.data), format);\n const image = await imageElementFromImageSource(imageSource);\n return { image, format };\n }\n\n /** Obtain a texture created from a gradient.\n * @param _symb The description of the gradient.\n * @param _imodel The IModelConnection with which the texture is associated.\n * @returns A texture created from the gradient image, or undefined if the texture could not be created.\n * @note If a texture matching the specified gradient is already cached on the iModel, it will be returned.\n * Otherwise, if an iModel is supplied, the newly-created texture will be cached on the iModel such that subsequent calls with an equivalent gradient and the\n * same iModel will return the cached texture instead of creating a new one.\n */\n public getGradientTexture(_symb: Gradient.Symb, _imodel?: IModelConnection): RenderTexture | undefined {\n return undefined;\n }\n\n /** Create a texture from an ImageSource. */\n public async createTextureFromSource(args: CreateTextureFromSourceArgs): Promise<RenderTexture | undefined> {\n try {\n // JPEGs don't support transparency.\n const transparency = ImageSourceFormat.Jpeg === args.source.format ? TextureTransparency.Opaque : (args.transparency ?? TextureTransparency.Mixed);\n const image = await imageElementFromImageSource(args.source);\n if (!IModelApp.hasRenderSystem)\n return undefined;\n\n return this.createTexture({\n type: args.type,\n ownership: args.ownership,\n image: {\n source: image,\n transparency,\n },\n });\n } catch {\n return undefined;\n }\n }\n\n /** Create a new texture by its element ID. This texture will be retrieved asynchronously from the backend. A placeholder image will be associated with the texture until the requested image data loads. */\n\n public createTextureFromElement(_id: Id64String, _imodel: IModelConnection, _params: RenderTextureParams, _format: ImageSourceFormat): RenderTexture | undefined {\n return undefined;\n }\n\n public createTexture(_args: CreateTextureArgs): RenderTexture | undefined {\n return undefined;\n }\n\n /** Create a new texture from a cube of HTML images.\n * @internal\n */\n\n public createTextureFromCubeImages(_posX: HTMLImageElement, _negX: HTMLImageElement, _posY: HTMLImageElement, _negY: HTMLImageElement, _posZ: HTMLImageElement, _negZ: HTMLImageElement, _imodel: IModelConnection, _params: RenderTextureParams): RenderTexture | undefined {\n return undefined;\n }\n\n /** @internal */\n public onInitialized(): void { }\n\n /** @internal */\n public get supportsLogZBuffer(): boolean { return false !== this.options.logarithmicDepthBuffer; }\n\n /** Obtain an object that can be used to control various debugging features. Returns `undefined` if debugging features are unavailable for this `RenderSystem`.\n * @internal\n */\n public get debugControl(): RenderSystemDebugControl | undefined { return undefined; }\n\n /** @internal */\n public collectStatistics(_stats: RenderMemory.Statistics): void { }\n\n /** A function that is invoked after the WebGL context is lost. Context loss is almost always caused by excessive consumption of GPU memory.\n * After context loss occurs, the RenderSystem will be unable to interact with WebGL by rendering viewports, creating graphics and textures, etc.\n * By default, this function invokes [[ToolAdmin.exceptionHandler]] with a brief message describing what occurred.\n * An application can override this behavior as follows:\n * ```ts\n * RenderSystem.contextLossHandler = (): Promise<any> => {\n * // your implementation here.\n * }\n * ```\n * @note Context loss is reported by the browser some short time *after* it has occurred. It is not possible to determine the specific cause.\n * @see [[TileAdmin.gpuMemoryLimit]] to limit the amount of GPU memory consumed thereby reducing the likelihood of context loss.\n * @see [[TileAdmin.totalTileContentBytes]] for the amount of GPU memory allocated for tile graphics.\n */\n public static async contextLossHandler(): Promise<any> {\n const msg = IModelApp.localization.getLocalizedString(\"iModelJs:Errors.WebGLContextLost\");\n return ToolAdmin.exceptionHandler(msg);\n }\n\n /** Convert a [[GraphicDescription]] produced by a [[GraphicDescriptionBuilder]] into a [[RenderGraphic]].\n * @beta\n */\n public createGraphicFromDescription(args: CreateGraphicFromDescriptionArgs): RenderGraphic | undefined {\n return createGraphicFromDescription(args.description, args.context, this);\n }\n\n /** Convert a [[GraphicDescription]] produced by a [[GraphicDescriptionBuilder]] into a [[GraphicTemplate]].\n * @beta\n */\n public createTemplateFromDescription(args: CreateGraphicFromDescriptionArgs): GraphicTemplate {\n return createGraphicTemplateFromDescription(args.description, args.context, this);\n }\n\n /** Obtain the JSON representation of a [[WorkerGraphicDescriptionContext]] for the specified `iModel` that can be forwarded to a Worker for use with a [[GraphicDescriptionBuilder]].\n * @beta\n */\n public createWorkerGraphicDescriptionContextProps(iModel: IModelConnection): WorkerGraphicDescriptionContextProps {\n const props: WorkerGraphicDescriptionContextPropsImpl = {\n [_implementationProhibited]: undefined,\n transientIds: iModel.transientIds.fork(),\n constraints: {\n [_implementationProhibited]: undefined,\n maxTextureSize: this.maxTextureSize,\n },\n };\n\n return props;\n }\n\n /** Synchronize changes made to a [[WorkerGraphicDescriptionContext]] on a Worker with the state of the `iModel` from which it was created.\n * @beta\n */\n public async resolveGraphicDescriptionContext(props: GraphicDescriptionContextProps, iModel: IModelConnection): Promise<GraphicDescriptionContext> {\n const impl = props as GraphicDescriptionContextPropsImpl;\n if (typeof impl.transientIds !== \"object\" || !Array.isArray(impl.textures)) {\n throw new Error(\"Invalid GraphicDescriptionContextProps\");\n }\n\n if (impl.resolved) {\n throw new Error(\"resolveGraphicDescriptionContext can only be called once for a given GraphicDescriptionContextProps\");\n }\n\n const textures = new Map<string, RenderTexture>();\n\n await Promise.allSettled(impl.textures.map(async (tex, i) => {\n let texture: RenderTexture | undefined;\n if (tex.source.gradient) {\n texture = this.getGradientTexture(Gradient.Symb.fromJSON(tex.source.gradient));\n } else if (tex.source.imageSource) {\n texture = await this.createTextureFromSource({\n source: new ImageSource(tex.source.imageSource, tex.source.format),\n type: tex.type,\n transparency: tex.transparency,\n });\n } else if (tex.source.imageBuffer) {\n texture = this.createTexture({\n type: tex.type,\n image: {\n source: ImageBuffer.create(tex.source.imageBuffer, tex.source.format, tex.source.width),\n transparency: tex.transparency,\n },\n });\n } else if (tex.source.url) {\n const image = await tryImageElementFromUrl(tex.source.url);\n if (image) {\n texture = this.createTexture({\n type: tex.type,\n image: {\n source: image,\n transparency: tex.transparency,\n },\n });\n }\n }\n\n if (texture) {\n textures.set(i.toString(10), texture);\n }\n }));\n\n const remap = iModel.transientIds.merge(impl.transientIds);\n impl.resolved = true;\n return {\n [_implementationProhibited]: undefined,\n remapTransientLocalId: (source) => remap(source),\n [_textures]: textures,\n };\n }\n}\n\n/** A RenderSystem provides access to resources used by the internal WebGL-based rendering system.\n * An application rarely interacts directly with the RenderSystem; instead it interacts with types like [[Viewport]] which\n * coordinate with the RenderSystem on the application's behalf.\n * @see [[IModelApp.renderSystem]].\n * @public\n */\nexport namespace RenderSystem {\n /** Options passed to [[IModelApp.supplyRenderSystem]] to configure the [[RenderSystem]] on startup. Many of these options serve as \"feature flags\" used to enable newer, experimental features. As such they typically begin life tagged as \"alpha\" or \"beta\" and are subsequently deprecated when the feature is declared stable.\n *\n * @public\n */\n export interface Options {\n /** WebGL extensions to be explicitly disabled, regardless of whether or not the WebGL implementation supports them.\n * This is chiefly useful for testing code that only executes in the absence of particular extensions, while running on a system that supports those extensions.\n *\n * Default value: undefined\n *\n * @public\n */\n disabledExtensions?: WebGLExtensionName[];\n\n /** If true, preserve the shader source code as internal strings, useful for debugging purposes.\n *\n * Default value: false\n *\n * @public\n */\n preserveShaderSourceCode?: boolean;\n\n /** If true, display solar shadows when enabled by [ViewFlags.shadows]($common).\n *\n * Default value: true\n *\n * @beta\n */\n displaySolarShadows?: boolean;\n\n /** If the view frustum is sufficiently large, and the EXT_frag_depth WebGL extension is available, use a logarithmic depth buffer to improve depth buffer resolution. Framerate may degrade to an extent while the logarithmic depth buffer is in use. If this option is disabled, or the extension is not supported, the near and far planes of very large view frustums will instead be moved to reduce the draw distance.\n *\n * Default value: true\n *\n * @public\n */\n logarithmicDepthBuffer?: boolean;\n\n /** If true, [[ScreenViewport]]s will respect the DPI of the display. See [[Viewport.devicePixelRatio]] and [[Viewport.cssPixelsToDevicePixels]].\n * @see [[dpiAwareLOD]] to control whether device pixel ratio affects the level of detail for tile graphics and decorations.\n * @see [[Viewport.cssPixelsToDevicePixels]] to convert CSS pixels to device pixels.\n * @see [[Viewport.devicePixelRatio]].\n *\n * Default value: true\n *\n * @public\n */\n dpiAwareViewports?: boolean;\n\n /** If defined, this will be used as the device pixel ratio instead of the system's actual device pixel ratio.\n * This can be helpful for situations like running in the iOS Simulator where forcing a lower resolution by setting a sub-1 device pixel ratio would increase performance.\n * @note If this setting is used to decrease the effective device pixel ratio, the view will appear pixelated.\n * @note This setting should only be used to increase performance in situations like the iOS Simulator for testing purposes only. It should not be used in a production situation.\n * @note This setting has no effect if [[dpiAwareViewports]] is `false`.\n *\n * Default value: undefined\n *\n * @public\n */\n devicePixelRatioOverride?: number;\n\n /** If true, [[ScreenViewport]]s will take into account the DPI of the display when computing the level of detail for tile graphics and decorations.\n * This can result in sharper-looking images on high-DPI devices like mobile phones, but may reduce performance on such devices.\n * @note This setting has no effect if [[dpiAwareViewports]] is `false`.\n * @see [[Viewport.devicePixelRatio]].\n *\n * Default value: false\n *\n * @public\n */\n dpiAwareLOD?: boolean;\n\n /** Previously, this property dictated whether to attempt to use a WebGL 2 rendering context before falling back to WebGL 1.\n * WebGL 1 is no longer supported, so this property is now ignored.\n * @public\n * @deprecated in 4.0.0 - will not be removed until after 2026-06-13. WebGL 1 is no longer supported.\n */\n useWebGL2?: boolean;\n\n /** If true, plan projection models will be rendered using [PlanProjectionSettings]($common) defined by the [[DisplayStyle3dState]].\n * Default value: true\n * @public\n */\n planProjections?: boolean;\n\n /** To help prevent delays when a user interacts with a [[Viewport]], the WebGL render system can precompile shader programs before any Viewport is opened.\n * This particularly helps applications when they do not open a Viewport immediately upon startup - for example, if the user is first expected to select an iModel and a view through the user interface.\n * Shader precompilation will cease once all shader programs have been compiled, or when a Viewport is opened (registered with the [[ViewManager]]).\n * @note Enabling this feature can slow UI interactions before a [[Viewport]] is opened.\n * To enable this feature, set this to `true`.\n *\n * Default value: false\n *\n * @beta\n */\n doIdleWork?: boolean;\n\n /** WebGL context attributes to explicitly set when initializing [[IModelApp.renderSystem]].\n * Exposed chiefly for OpenCities Planner.\n * @internal\n */\n contextAttributes?: WebGLContextAttributes;\n\n /** If true, will cause exception when a shader uniform is missing (usually optimized out), otherwise will only log these.\n * Default value: false\n * @public\n */\n errorOnMissingUniform?: boolean;\n\n /** If true, and the `WEBGL_debug_shaders` extension is available, accumulate debug information during shader compilation.\n * This information can be accessed via `RenderSystemDebugControl.debugShaderFiles`.\n * Default value: false\n * @internal\n */\n debugShaders?: boolean;\n\n /** Initial antialias setting.\n * If antialiasing is supported, a value greater than 1 enables it using that many samples, and a value less than or equal to 1 disables antialiasing.\n * Default value: 1\n * @public\n */\n antialiasSamples?: number;\n }\n}\n"]}
@@ -174,7 +174,7 @@ export interface ScreenSpaceEffectContext {
174
174
  */
175
175
  export interface ScreenSpaceEffectBuilder {
176
176
  /** True if the shader will be used with a WebGL 2 rendering context.
177
- * @deprecated in 4.x. WebGL 1 is no longer supported, so this property is always `true`.
177
+ * @deprecated in 4.0.0 - will not be removed until after 2026-06-13. WebGL 1 is no longer supported, so this property is always `true`.
178
178
  */
179
179
  readonly isWebGL2: boolean;
180
180
  /** Add a uniform variable to the shader program. */
@@ -1 +1 @@
1
- {"version":3,"file":"ScreenSpaceEffectBuilder.js","sourceRoot":"","sources":["../../../src/render/ScreenSpaceEffectBuilder.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAIH;;;;;GAKG;AACH,IAAY,WAaX;AAbD,WAAY,WAAW;IACrB,mBAAmB;IACnB,6CAAI,CAAA;IACJ,kBAAkB;IAClB,2CAAG,CAAA;IACH,oBAAoB;IACpB,+CAAK,CAAA;IACL,mBAAmB;IACnB,6CAAI,CAAA;IACJ,mBAAmB;IACnB,6CAAI,CAAA;IACJ,mBAAmB;IACnB,6CAAI,CAAA;AACN,CAAC,EAbW,WAAW,2BAAX,WAAW,QAatB;AAED;;;;GAIG;AACH,IAAY,WASX;AATD,WAAY,WAAW;IACrB,oBAAoB;IACpB,+CAAK,CAAA;IACL,mBAAmB;IACnB,6CAAI,CAAA;IACJ,mBAAmB;IACnB,6CAAI,CAAA;IACJ,mBAAmB;IACnB,6CAAI,CAAA;AACN,CAAC,EATW,WAAW,2BAAX,WAAW,QAStB","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 { Viewport } from \"../Viewport\";\n\n/** The underlying data types that can be used for uniform variables in screen-space effect shaders.\n * @see [[ScreenSpaceEffectBuilder.addUniform]] to define a uniform variable.\n * @see [[Uniform]] to set the value of a uniform variable.\n * @public\n * @extensions\n */\nexport enum UniformType {\n /** GLSL `bool`. */\n Bool,\n /** GLSL `int`. */\n Int,\n /** GLSL `float`. */\n Float,\n /** GLSL `vec2`. */\n Vec2,\n /** GLSL `vec3`. */\n Vec3,\n /** GLSL `vec4`. */\n Vec4,\n}\n\n/** The underlying data types that can be used for varying variables in screen-space effect shaders.\n * @see [[ScreenSpaceEffectBuilder.addVarying]] to define a varying variable.\n * @public\n * @extensions\n */\nexport enum VaryingType {\n /** GLSL `float`. */\n Float,\n /** GLSL `vec2`. */\n Vec2,\n /** GLSL `vec3`. */\n Vec3,\n /** GLSL `vec4`. */\n Vec4,\n}\n\n/** Represents a uniform variable in a shader program used by a custom screen-space effect, providing methods for setting the current value of the uniform.\n * @see [[UniformParams.bind]] to provide the value of the variable.\n * @see [[ScreenSpaceEffectBuilder.addUniform]] to add a uniform variable to an effect shader.\n * @public\n * @extensions\n */\nexport interface Uniform {\n /** Sets the value to an integer - equivalent to `WebGLRenderingContext.uniform1i`. */\n setUniform1i: (value: number) => void;\n /** Sets the value to a float - equivalent to `WebGLRenderingContext.uniform1f`. */\n setUniform1f: (value: number) => void;\n /** Sets the value to an array of floats - equivalent to `WebGLRenderingContext.uniform1fv`. */\n setUniform1fv: (value: Float32Array | number[]) => void;\n /** Sets the value to an array of integers - equivalent to `WebGLRenderingContext.uniform1iv`. */\n setUniform1iv: (value: Int32Array | number[]) => void;\n /** Sets the value as a vec2, equivalent to `WebGLRenderingContext.uniform2fv`. */\n setUniform2fv: (value: Float32Array | number[]) => void;\n /** Sets the value as a vec3 - equivalent to `WebGLRenderingContext.uniform3fv`. */\n setUniform3fv: (value: Float32Array | number[]) => void;\n /** Sets the value as a vec4 - equivalent to `WebGLRenderingContext.uniform4fv`. */\n setUniform4fv: (value: Float32Array | number[]) => void;\n}\n\n/** Context supplied to [[UniformParams.bind]].\n * @public\n * @extensions\n */\nexport interface UniformContext {\n /** The viewport to which the screen-space effect is to be applied. */\n viewport: Viewport;\n}\n\n/** Parameters used to define a uniform variable for a [[ScreenSpaceEffectBuilder]]'s shader program.\n * @see [[ScreenSpaceEffectBuilder.addUniform]] to add a uniform variable to an effect shader.\n * @public\n * @extensions\n */\nexport interface UniformParams {\n /** The data type of the uniform variable. */\n type: UniformType;\n /** The name of the variable. It must be unique among all uniforms used by the shader program. */\n name: string;\n /** A function that computes the value of the variable and binds it to the shader program each time the effect is rendered. */\n bind: (uniform: Uniform, context: UniformContext) => void;\n}\n\n/** Parameters used to define an array of uniform variables for a [[ScreenSpaceEffectBuilder]]'s shader program.\n * @see [[ScreenSpaceEffectBuilder.addUniformArray]] to add a uniform array to an effect shader.\n * @public\n * @extensions\n */\nexport interface UniformArrayParams extends UniformParams {\n /** The number of elements in the array. */\n length: number;\n}\n\n/** The GLSL implementation of the effect produced by a [[ScreenSpaceEffectBuilder]], to be integrated into a complete shader program. The effect shader code differs slightly from that of an ordinary shader:\n * - Instead of `main`, it should implement `effectMain`.\n * - It can include other functions, variables, etc outside of `effectMain`.\n * - It should omit declarations of uniform and varying variables - these will be generated from those supplied to [[ScreenSpaceEffectBuilder.addUniform]] and [[ScreenSpaceEffectBuilder.addVarying]].\n * The program receives one pre-defined `uniform sampler2D u_diffuse` representing the viewport's rendered image.\n * @public\n * @extensions\n */\nexport interface ScreenSpaceEffectSource {\n /** The GLSL implementation of the vertex shader. Instead of `main`, it implements `void effectMain(vec4 position)` where `position` is the vertex position in normalized device coordinates ([-1..1]).\n * `effectMain` should compute whatever information is required by the fragment shader. It should not assign to `gl_Position`.\n */\n vertex: string;\n\n /** The GLSL implementation of the fragment shader. Instead of `main`, it implements `vec4 effectMain()` returning the color to be output.\n * `effectMain` should sample `u_diffuse` directly using `TEXTURE()` or `TEXTURE_PROJ()` instead of `texture2D()`, `texture2DProj()`, or `texture()`;\n * or, if [[ScreenSpaceEffectSource.sampleSourcePixel]] is defined, it can use `sampleSourcePixel()` instead.\n * It should not assign to `gl_FragColor`.\n * The alpha component of the output color is ignored as there is nothing with which to blend.\n */\n fragment: string;\n\n /** If the fragment shader shifts pixels from their original locations, then by default element locate will not work, because it expects the pixels produced by an element\n * to remain at their original locations. This can be fixed by supplying the body of a GLSL function `vec4 sampleSourcePixel()` that, as part of the fragment shader,\n * obtains the pixel in the source image corresponding to the pixel that will be output by the shader.\n * For example, if the source pixel is simply specified by a `varying vec2 v_texCoord` computed by the vertex shader, then this property should be defined as `return TEXTURE(u_diffuse, v_texCoord);`.\n * This function will automatically be included in the fragment shader, so it can also be used by `effectMain` when computing the output color.\n * @note `sampleSourcePixel` should not modify the sample in any way - that should be done only in `effectMain`.\n * @note `sampleSourcePixel` should **not** be supplied if the effect does **not** shift pixels as it can negatively impact performance of element locate.\n * @see [FlipImageEffect]($frontend-devtools) or [LensDistortionEffect]($frontend-devtools) for examples of effects that implement this property.\n */\n sampleSourcePixel?: string;\n}\n\n/** Parameters used to create a [[ScreenSpaceEffectBuilder]].\n * @see [[RenderSystem.createScreenSpaceEffectBuilder]].\n * @public\n * @extensions\n */\nexport interface ScreenSpaceEffectBuilderParams {\n /** The name of the effect. Must be unique among all registered screen-space effects. It is not displayed to the user. */\n name: string;\n /** If true, adds a `vec2 textureCoordFromPosition(vec4 position)` function to the vertex shader that computes a UV coordinate based on the vertex's position. */\n textureCoordFromPosition?: boolean;\n\n /** The GLSL implementation of the effect.\n * @see [[ScreenSpaceEffectSource]] for details.\n */\n source: ScreenSpaceEffectSource;\n}\n\n/** Context passed to [[ScreenSpaceEffectBuilder.shouldApply]].\n * @public\n * @extensions\n */\nexport interface ScreenSpaceEffectContext {\n /** The viewport to which the screen-space effect is to be applied. */\n viewport: Viewport;\n}\n\n/** An interface used to construct and register with the [[IModelApp.renderSystem]] a custom screen-space effect.\n * Screen-space effects take as input the image rendered by a Viewport, as a WebGL texture, and execute a shader program to modify the image.\n * Any number of screen-space effects can be registered, but each must have a unique name. Each Viewport has an ordered list of effects to be applied to it.\n *\n * Each time a Viewport's contents are rendered, the [[RenderSystem]] does the following:\n * - Render Viewport's contents to a texture.\n * - For each effect name in [[Viewport.screenSpaceEffects]]:\n * - Look up the corresponding registered effect.\n * - If `shouldApply is defined and returns false, skip the effect. Otherwise:\n * - For each [[Uniform]] defined by the effect, invoke its `bind` property to set its current value.\n * - Bind the Viewport's rendered image to the uniform `u_diffuse`.\n * - Execute the effect shader to alter the viewport's image.\n * In this way, a series of multiple effects can be chained together, each consuming as input the image output by the previous effect.\n *\n * A screen-space effect that **moves** pixels from their original locations rather than simply recoloring them may cause some tools to behave unexpectedly:\n * - Element locate will only work correctly if [[ScreenSpaceEffectBuilderParams.sampleSourcePixel]] is properly defined.\n * - Tools like the measurement tool that require snapping to element geometry will not snap correctly since the element geometry has been distorted by the shader.\n * @see [Screen-space Effects Sample](https://www.itwinjs.org/sample-showcase/?group=Viewer+Features&sample=screen-space-effects-sample&imodel=Villa) for an interactive demonstration.\n * @see [[RenderSystem.createScreenSpaceEffectBuilder]] to create and register a new effect.\n * @see [[ScreenSpaceEffectBuilderParams]] to define the initial state of the builder.\n * @see [[Viewport.screenSpaceEffects]], [[Viewport.addScreenSpaceEffect]], and [[Viewport.removeScreenSpaceEffects]] to change the effects applied to a viewport.\n * @see [LensDistortionEffect]($frontend-devtools) for an simulation of the fish-eye distortion produced by real-world cameras with very wide fields of view.\n * @see [SaturationEffect]($frontend-devtools) for an example of an effect that adjusts the saturation of the original image.\n * @see [VignetteEffect]($frontend-devtools) for an example of an effect that applies [vignetting](https://en.wikipedia.org/wiki/Vignetting) to the original image.\n * @see [ConvolutionEffect]($frontend-devtools) for examples of effects like blur, sharpen, and emboss.\n * @see [FlipImageEffect]($frontend-devtools) for a very simple example of an effect that shifts pixels from their original locations.\n * @public\n * @extensions\n */\nexport interface ScreenSpaceEffectBuilder {\n /** True if the shader will be used with a WebGL 2 rendering context.\n * @deprecated in 4.x. WebGL 1 is no longer supported, so this property is always `true`.\n */\n readonly isWebGL2: boolean;\n\n /** Add a uniform variable to the shader program. */\n addUniform: (params: UniformParams) => void;\n\n /** Add an array of uniform variables to the shader program. */\n addUniformArray: (params: UniformArrayParams) => void;\n\n /** Add a varying variable to the shader program. */\n addVarying: (name: string, type: VaryingType) => void;\n\n /** If defined, a function invoked each frame before the effect is applied. If it returns false, the effect will be skipped for that frame. */\n shouldApply?: (context: ScreenSpaceEffectContext) => boolean;\n\n /** Finishes construction of the effect and, if successful, registers it with [[IModelApp.renderSystem]].\n * @throws Error if the shader fails to compile and link, or an effect with the same name has already been registered.\n * @note After `finish` is called, no other properties or methods of the builder will have any effect.\n */\n finish: () => void;\n}\n"]}
1
+ {"version":3,"file":"ScreenSpaceEffectBuilder.js","sourceRoot":"","sources":["../../../src/render/ScreenSpaceEffectBuilder.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAIH;;;;;GAKG;AACH,IAAY,WAaX;AAbD,WAAY,WAAW;IACrB,mBAAmB;IACnB,6CAAI,CAAA;IACJ,kBAAkB;IAClB,2CAAG,CAAA;IACH,oBAAoB;IACpB,+CAAK,CAAA;IACL,mBAAmB;IACnB,6CAAI,CAAA;IACJ,mBAAmB;IACnB,6CAAI,CAAA;IACJ,mBAAmB;IACnB,6CAAI,CAAA;AACN,CAAC,EAbW,WAAW,2BAAX,WAAW,QAatB;AAED;;;;GAIG;AACH,IAAY,WASX;AATD,WAAY,WAAW;IACrB,oBAAoB;IACpB,+CAAK,CAAA;IACL,mBAAmB;IACnB,6CAAI,CAAA;IACJ,mBAAmB;IACnB,6CAAI,CAAA;IACJ,mBAAmB;IACnB,6CAAI,CAAA;AACN,CAAC,EATW,WAAW,2BAAX,WAAW,QAStB","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 { Viewport } from \"../Viewport\";\n\n/** The underlying data types that can be used for uniform variables in screen-space effect shaders.\n * @see [[ScreenSpaceEffectBuilder.addUniform]] to define a uniform variable.\n * @see [[Uniform]] to set the value of a uniform variable.\n * @public\n * @extensions\n */\nexport enum UniformType {\n /** GLSL `bool`. */\n Bool,\n /** GLSL `int`. */\n Int,\n /** GLSL `float`. */\n Float,\n /** GLSL `vec2`. */\n Vec2,\n /** GLSL `vec3`. */\n Vec3,\n /** GLSL `vec4`. */\n Vec4,\n}\n\n/** The underlying data types that can be used for varying variables in screen-space effect shaders.\n * @see [[ScreenSpaceEffectBuilder.addVarying]] to define a varying variable.\n * @public\n * @extensions\n */\nexport enum VaryingType {\n /** GLSL `float`. */\n Float,\n /** GLSL `vec2`. */\n Vec2,\n /** GLSL `vec3`. */\n Vec3,\n /** GLSL `vec4`. */\n Vec4,\n}\n\n/** Represents a uniform variable in a shader program used by a custom screen-space effect, providing methods for setting the current value of the uniform.\n * @see [[UniformParams.bind]] to provide the value of the variable.\n * @see [[ScreenSpaceEffectBuilder.addUniform]] to add a uniform variable to an effect shader.\n * @public\n * @extensions\n */\nexport interface Uniform {\n /** Sets the value to an integer - equivalent to `WebGLRenderingContext.uniform1i`. */\n setUniform1i: (value: number) => void;\n /** Sets the value to a float - equivalent to `WebGLRenderingContext.uniform1f`. */\n setUniform1f: (value: number) => void;\n /** Sets the value to an array of floats - equivalent to `WebGLRenderingContext.uniform1fv`. */\n setUniform1fv: (value: Float32Array | number[]) => void;\n /** Sets the value to an array of integers - equivalent to `WebGLRenderingContext.uniform1iv`. */\n setUniform1iv: (value: Int32Array | number[]) => void;\n /** Sets the value as a vec2, equivalent to `WebGLRenderingContext.uniform2fv`. */\n setUniform2fv: (value: Float32Array | number[]) => void;\n /** Sets the value as a vec3 - equivalent to `WebGLRenderingContext.uniform3fv`. */\n setUniform3fv: (value: Float32Array | number[]) => void;\n /** Sets the value as a vec4 - equivalent to `WebGLRenderingContext.uniform4fv`. */\n setUniform4fv: (value: Float32Array | number[]) => void;\n}\n\n/** Context supplied to [[UniformParams.bind]].\n * @public\n * @extensions\n */\nexport interface UniformContext {\n /** The viewport to which the screen-space effect is to be applied. */\n viewport: Viewport;\n}\n\n/** Parameters used to define a uniform variable for a [[ScreenSpaceEffectBuilder]]'s shader program.\n * @see [[ScreenSpaceEffectBuilder.addUniform]] to add a uniform variable to an effect shader.\n * @public\n * @extensions\n */\nexport interface UniformParams {\n /** The data type of the uniform variable. */\n type: UniformType;\n /** The name of the variable. It must be unique among all uniforms used by the shader program. */\n name: string;\n /** A function that computes the value of the variable and binds it to the shader program each time the effect is rendered. */\n bind: (uniform: Uniform, context: UniformContext) => void;\n}\n\n/** Parameters used to define an array of uniform variables for a [[ScreenSpaceEffectBuilder]]'s shader program.\n * @see [[ScreenSpaceEffectBuilder.addUniformArray]] to add a uniform array to an effect shader.\n * @public\n * @extensions\n */\nexport interface UniformArrayParams extends UniformParams {\n /** The number of elements in the array. */\n length: number;\n}\n\n/** The GLSL implementation of the effect produced by a [[ScreenSpaceEffectBuilder]], to be integrated into a complete shader program. The effect shader code differs slightly from that of an ordinary shader:\n * - Instead of `main`, it should implement `effectMain`.\n * - It can include other functions, variables, etc outside of `effectMain`.\n * - It should omit declarations of uniform and varying variables - these will be generated from those supplied to [[ScreenSpaceEffectBuilder.addUniform]] and [[ScreenSpaceEffectBuilder.addVarying]].\n * The program receives one pre-defined `uniform sampler2D u_diffuse` representing the viewport's rendered image.\n * @public\n * @extensions\n */\nexport interface ScreenSpaceEffectSource {\n /** The GLSL implementation of the vertex shader. Instead of `main`, it implements `void effectMain(vec4 position)` where `position` is the vertex position in normalized device coordinates ([-1..1]).\n * `effectMain` should compute whatever information is required by the fragment shader. It should not assign to `gl_Position`.\n */\n vertex: string;\n\n /** The GLSL implementation of the fragment shader. Instead of `main`, it implements `vec4 effectMain()` returning the color to be output.\n * `effectMain` should sample `u_diffuse` directly using `TEXTURE()` or `TEXTURE_PROJ()` instead of `texture2D()`, `texture2DProj()`, or `texture()`;\n * or, if [[ScreenSpaceEffectSource.sampleSourcePixel]] is defined, it can use `sampleSourcePixel()` instead.\n * It should not assign to `gl_FragColor`.\n * The alpha component of the output color is ignored as there is nothing with which to blend.\n */\n fragment: string;\n\n /** If the fragment shader shifts pixels from their original locations, then by default element locate will not work, because it expects the pixels produced by an element\n * to remain at their original locations. This can be fixed by supplying the body of a GLSL function `vec4 sampleSourcePixel()` that, as part of the fragment shader,\n * obtains the pixel in the source image corresponding to the pixel that will be output by the shader.\n * For example, if the source pixel is simply specified by a `varying vec2 v_texCoord` computed by the vertex shader, then this property should be defined as `return TEXTURE(u_diffuse, v_texCoord);`.\n * This function will automatically be included in the fragment shader, so it can also be used by `effectMain` when computing the output color.\n * @note `sampleSourcePixel` should not modify the sample in any way - that should be done only in `effectMain`.\n * @note `sampleSourcePixel` should **not** be supplied if the effect does **not** shift pixels as it can negatively impact performance of element locate.\n * @see [FlipImageEffect]($frontend-devtools) or [LensDistortionEffect]($frontend-devtools) for examples of effects that implement this property.\n */\n sampleSourcePixel?: string;\n}\n\n/** Parameters used to create a [[ScreenSpaceEffectBuilder]].\n * @see [[RenderSystem.createScreenSpaceEffectBuilder]].\n * @public\n * @extensions\n */\nexport interface ScreenSpaceEffectBuilderParams {\n /** The name of the effect. Must be unique among all registered screen-space effects. It is not displayed to the user. */\n name: string;\n /** If true, adds a `vec2 textureCoordFromPosition(vec4 position)` function to the vertex shader that computes a UV coordinate based on the vertex's position. */\n textureCoordFromPosition?: boolean;\n\n /** The GLSL implementation of the effect.\n * @see [[ScreenSpaceEffectSource]] for details.\n */\n source: ScreenSpaceEffectSource;\n}\n\n/** Context passed to [[ScreenSpaceEffectBuilder.shouldApply]].\n * @public\n * @extensions\n */\nexport interface ScreenSpaceEffectContext {\n /** The viewport to which the screen-space effect is to be applied. */\n viewport: Viewport;\n}\n\n/** An interface used to construct and register with the [[IModelApp.renderSystem]] a custom screen-space effect.\n * Screen-space effects take as input the image rendered by a Viewport, as a WebGL texture, and execute a shader program to modify the image.\n * Any number of screen-space effects can be registered, but each must have a unique name. Each Viewport has an ordered list of effects to be applied to it.\n *\n * Each time a Viewport's contents are rendered, the [[RenderSystem]] does the following:\n * - Render Viewport's contents to a texture.\n * - For each effect name in [[Viewport.screenSpaceEffects]]:\n * - Look up the corresponding registered effect.\n * - If `shouldApply is defined and returns false, skip the effect. Otherwise:\n * - For each [[Uniform]] defined by the effect, invoke its `bind` property to set its current value.\n * - Bind the Viewport's rendered image to the uniform `u_diffuse`.\n * - Execute the effect shader to alter the viewport's image.\n * In this way, a series of multiple effects can be chained together, each consuming as input the image output by the previous effect.\n *\n * A screen-space effect that **moves** pixels from their original locations rather than simply recoloring them may cause some tools to behave unexpectedly:\n * - Element locate will only work correctly if [[ScreenSpaceEffectBuilderParams.sampleSourcePixel]] is properly defined.\n * - Tools like the measurement tool that require snapping to element geometry will not snap correctly since the element geometry has been distorted by the shader.\n * @see [Screen-space Effects Sample](https://www.itwinjs.org/sample-showcase/?group=Viewer+Features&sample=screen-space-effects-sample&imodel=Villa) for an interactive demonstration.\n * @see [[RenderSystem.createScreenSpaceEffectBuilder]] to create and register a new effect.\n * @see [[ScreenSpaceEffectBuilderParams]] to define the initial state of the builder.\n * @see [[Viewport.screenSpaceEffects]], [[Viewport.addScreenSpaceEffect]], and [[Viewport.removeScreenSpaceEffects]] to change the effects applied to a viewport.\n * @see [LensDistortionEffect]($frontend-devtools) for an simulation of the fish-eye distortion produced by real-world cameras with very wide fields of view.\n * @see [SaturationEffect]($frontend-devtools) for an example of an effect that adjusts the saturation of the original image.\n * @see [VignetteEffect]($frontend-devtools) for an example of an effect that applies [vignetting](https://en.wikipedia.org/wiki/Vignetting) to the original image.\n * @see [ConvolutionEffect]($frontend-devtools) for examples of effects like blur, sharpen, and emboss.\n * @see [FlipImageEffect]($frontend-devtools) for a very simple example of an effect that shifts pixels from their original locations.\n * @public\n * @extensions\n */\nexport interface ScreenSpaceEffectBuilder {\n /** True if the shader will be used with a WebGL 2 rendering context.\n * @deprecated in 4.0.0 - will not be removed until after 2026-06-13. WebGL 1 is no longer supported, so this property is always `true`.\n */\n readonly isWebGL2: boolean;\n\n /** Add a uniform variable to the shader program. */\n addUniform: (params: UniformParams) => void;\n\n /** Add an array of uniform variables to the shader program. */\n addUniformArray: (params: UniformArrayParams) => void;\n\n /** Add a varying variable to the shader program. */\n addVarying: (name: string, type: VaryingType) => void;\n\n /** If defined, a function invoked each frame before the effect is applied. If it returns false, the effect will be skipped for that frame. */\n shouldApply?: (context: ScreenSpaceEffectContext) => boolean;\n\n /** Finishes construction of the effect and, if successful, registers it with [[IModelApp.renderSystem]].\n * @throws Error if the shader fails to compile and link, or an effect with the same name has already been registered.\n * @note After `finish` is called, no other properties or methods of the builder will have any effect.\n */\n finish: () => void;\n}\n"]}
@@ -26,7 +26,7 @@ export declare function request(url: string, responseType: "json", options?: Req
26
26
  export declare function request(url: string, responseType: "text", options?: RequestOptions): Promise<string>;
27
27
  /**
28
28
  * @internal
29
- * @deprecated in 4.0. Use [[DownloadProgressInfo]].
29
+ * @deprecated in 4.0 - will not be removed until after 2026-06-13. Use [[DownloadProgressInfo]].
30
30
  */
31
31
  export interface ProgressInfo {
32
32
  percent?: number;
@@ -35,7 +35,7 @@ export interface ProgressInfo {
35
35
  }
36
36
  /**
37
37
  * @internal
38
- * @deprecated in 4.0. Use [[OnDownloadProgress]].
38
+ * @deprecated in 4.0 - will not be removed until after 2026-06-13. Use [[OnDownloadProgress]].
39
39
  */
40
40
  export type ProgressCallback = (progress: ProgressInfo) => void;
41
41
  //# sourceMappingURL=Request.d.ts.map