@itwin/core-frontend 3.0.0-dev.99 → 3.1.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1232) hide show
  1. package/CHANGELOG.md +89 -1
  2. package/LICENSE.md +1 -1
  3. package/lib/cjs/AccuSnap.js +3 -3
  4. package/lib/cjs/AccuSnap.js.map +1 -1
  5. package/lib/cjs/ApproximateTerrainHeights.d.ts.map +1 -1
  6. package/lib/cjs/ApproximateTerrainHeights.js +10 -5
  7. package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
  8. package/lib/cjs/BackgroundMapGeometry.d.ts +1 -1
  9. package/lib/cjs/BackgroundMapGeometry.d.ts.map +1 -1
  10. package/lib/cjs/BackgroundMapGeometry.js +2 -2
  11. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  12. package/lib/cjs/BingLocation.js +2 -2
  13. package/lib/cjs/BingLocation.js.map +1 -1
  14. package/lib/cjs/CheckpointConnection.js +1 -1
  15. package/lib/cjs/CheckpointConnection.js.map +1 -1
  16. package/lib/cjs/ContextRealityModelState.js +1 -1
  17. package/lib/cjs/ContextRealityModelState.js.map +1 -1
  18. package/lib/cjs/DisplayStyleState.d.ts +10 -163
  19. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  20. package/lib/cjs/DisplayStyleState.js +69 -350
  21. package/lib/cjs/DisplayStyleState.js.map +1 -1
  22. package/lib/cjs/DrawingViewState.d.ts +2 -2
  23. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  24. package/lib/cjs/DrawingViewState.js +3 -3
  25. package/lib/cjs/DrawingViewState.js.map +1 -1
  26. package/lib/cjs/ElementLocateManager.d.ts +5 -0
  27. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  28. package/lib/cjs/ElementLocateManager.js +12 -2
  29. package/lib/cjs/ElementLocateManager.js.map +1 -1
  30. package/lib/cjs/EmphasizeElements.d.ts.map +1 -1
  31. package/lib/cjs/EmphasizeElements.js +14 -4
  32. package/lib/cjs/EmphasizeElements.js.map +1 -1
  33. package/lib/cjs/EnvironmentDecorations.d.ts +39 -0
  34. package/lib/cjs/EnvironmentDecorations.d.ts.map +1 -0
  35. package/lib/cjs/EnvironmentDecorations.js +200 -0
  36. package/lib/cjs/EnvironmentDecorations.js.map +1 -0
  37. package/lib/cjs/FrontendHubAccess.d.ts +11 -7
  38. package/lib/cjs/FrontendHubAccess.d.ts.map +1 -1
  39. package/lib/cjs/FrontendHubAccess.js.map +1 -1
  40. package/lib/cjs/FrontendLoggerCategory.d.ts +2 -8
  41. package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
  42. package/lib/cjs/FrontendLoggerCategory.js +2 -8
  43. package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
  44. package/lib/cjs/HitDetail.js +7 -7
  45. package/lib/cjs/HitDetail.js.map +1 -1
  46. package/lib/cjs/IModelApp.d.ts +30 -17
  47. package/lib/cjs/IModelApp.d.ts.map +1 -1
  48. package/lib/cjs/IModelApp.js +33 -26
  49. package/lib/cjs/IModelApp.js.map +1 -1
  50. package/lib/cjs/IModelConnection.d.ts +4 -6
  51. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  52. package/lib/cjs/IModelConnection.js +6 -11
  53. package/lib/cjs/IModelConnection.js.map +1 -1
  54. package/lib/cjs/IModeljs-css.d.ts.map +1 -1
  55. package/lib/cjs/IModeljs-css.js +8 -6
  56. package/lib/cjs/IModeljs-css.js.map +1 -1
  57. package/lib/cjs/ImageUtil.d.ts +3 -3
  58. package/lib/cjs/ImageUtil.d.ts.map +1 -1
  59. package/lib/cjs/ImageUtil.js +7 -4
  60. package/lib/cjs/ImageUtil.js.map +1 -1
  61. package/lib/cjs/LocalhostIpcApp.d.ts +2 -1
  62. package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
  63. package/lib/cjs/LocalhostIpcApp.js +21 -7
  64. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  65. package/lib/cjs/Marker.d.ts +9 -2
  66. package/lib/cjs/Marker.d.ts.map +1 -1
  67. package/lib/cjs/Marker.js +33 -5
  68. package/lib/cjs/Marker.js.map +1 -1
  69. package/lib/cjs/ModelState.js +1 -1
  70. package/lib/cjs/ModelState.js.map +1 -1
  71. package/lib/cjs/NativeApp.d.ts +3 -38
  72. package/lib/cjs/NativeApp.d.ts.map +1 -1
  73. package/lib/cjs/NativeApp.js +4 -73
  74. package/lib/cjs/NativeApp.js.map +1 -1
  75. package/lib/cjs/NoRenderApp.d.ts +0 -1
  76. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  77. package/lib/cjs/NoRenderApp.js +0 -1
  78. package/lib/cjs/NoRenderApp.js.map +1 -1
  79. package/lib/cjs/NotificationManager.d.ts +3 -1
  80. package/lib/cjs/NotificationManager.d.ts.map +1 -1
  81. package/lib/cjs/NotificationManager.js +2 -0
  82. package/lib/cjs/NotificationManager.js.map +1 -1
  83. package/lib/cjs/RealityDataSource.d.ts +59 -29
  84. package/lib/cjs/RealityDataSource.d.ts.map +1 -1
  85. package/lib/cjs/RealityDataSource.js +247 -94
  86. package/lib/cjs/RealityDataSource.js.map +1 -1
  87. package/lib/cjs/RenderScheduleState.d.ts +2 -0
  88. package/lib/cjs/RenderScheduleState.d.ts.map +1 -1
  89. package/lib/cjs/RenderScheduleState.js +10 -5
  90. package/lib/cjs/RenderScheduleState.js.map +1 -1
  91. package/lib/cjs/SheetViewState.d.ts +2 -2
  92. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  93. package/lib/cjs/SheetViewState.js +8 -9
  94. package/lib/cjs/SheetViewState.js.map +1 -1
  95. package/lib/cjs/SpatialViewState.d.ts +10 -2
  96. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  97. package/lib/cjs/SpatialViewState.js +12 -2
  98. package/lib/cjs/SpatialViewState.js.map +1 -1
  99. package/lib/cjs/SubCategoriesCache.js +1 -1
  100. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  101. package/lib/cjs/Tiles.d.ts +11 -1
  102. package/lib/cjs/Tiles.d.ts.map +1 -1
  103. package/lib/cjs/Tiles.js +7 -0
  104. package/lib/cjs/Tiles.js.map +1 -1
  105. package/lib/cjs/TwoWayViewportSync.d.ts +35 -6
  106. package/lib/cjs/TwoWayViewportSync.d.ts.map +1 -1
  107. package/lib/cjs/TwoWayViewportSync.js +51 -11
  108. package/lib/cjs/TwoWayViewportSync.js.map +1 -1
  109. package/lib/cjs/UserPreferences.d.ts +72 -0
  110. package/lib/cjs/UserPreferences.d.ts.map +1 -0
  111. package/lib/cjs/UserPreferences.js +7 -0
  112. package/lib/cjs/UserPreferences.js.map +1 -0
  113. package/lib/cjs/ViewContext.d.ts +3 -1
  114. package/lib/cjs/ViewContext.d.ts.map +1 -1
  115. package/lib/cjs/ViewContext.js +4 -0
  116. package/lib/cjs/ViewContext.js.map +1 -1
  117. package/lib/cjs/ViewCreator2d.js +3 -3
  118. package/lib/cjs/ViewCreator2d.js.map +1 -1
  119. package/lib/cjs/ViewCreator3d.d.ts +1 -1
  120. package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
  121. package/lib/cjs/ViewCreator3d.js +4 -5
  122. package/lib/cjs/ViewCreator3d.js.map +1 -1
  123. package/lib/cjs/ViewManager.d.ts +6 -6
  124. package/lib/cjs/ViewManager.d.ts.map +1 -1
  125. package/lib/cjs/ViewManager.js +13 -13
  126. package/lib/cjs/ViewManager.js.map +1 -1
  127. package/lib/cjs/ViewState.d.ts +11 -5
  128. package/lib/cjs/ViewState.d.ts.map +1 -1
  129. package/lib/cjs/ViewState.js +18 -63
  130. package/lib/cjs/ViewState.js.map +1 -1
  131. package/lib/cjs/ViewingSpace.js +1 -1
  132. package/lib/cjs/ViewingSpace.js.map +1 -1
  133. package/lib/cjs/Viewport.d.ts +57 -11
  134. package/lib/cjs/Viewport.d.ts.map +1 -1
  135. package/lib/cjs/Viewport.js +55 -31
  136. package/lib/cjs/Viewport.js.map +1 -1
  137. package/lib/cjs/core-frontend.d.ts +11 -24
  138. package/lib/cjs/core-frontend.d.ts.map +1 -1
  139. package/lib/cjs/core-frontend.js +11 -24
  140. package/lib/cjs/core-frontend.js.map +1 -1
  141. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts +3 -2
  142. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  143. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js +3 -2
  144. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  145. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts +5 -1
  146. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  147. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js +20 -5
  148. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  149. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +26 -3
  150. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  151. package/lib/cjs/quantity-formatting/QuantityFormatter.js +46 -7
  152. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  153. package/lib/cjs/render/FeatureSymbology.d.ts.map +1 -1
  154. package/lib/cjs/render/FeatureSymbology.js +3 -3
  155. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  156. package/lib/cjs/render/GraphicBranch.d.ts +18 -2
  157. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  158. package/lib/cjs/render/GraphicBranch.js +9 -1
  159. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  160. package/lib/cjs/render/GraphicBuilder.d.ts +7 -1
  161. package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
  162. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  163. package/lib/cjs/render/MockRender.d.ts +3 -1
  164. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  165. package/lib/cjs/render/MockRender.js.map +1 -1
  166. package/lib/cjs/render/RenderMaterial.d.ts +61 -0
  167. package/lib/cjs/render/RenderMaterial.d.ts.map +1 -0
  168. package/lib/cjs/render/RenderMaterial.js +10 -0
  169. package/lib/cjs/render/RenderMaterial.js.map +1 -0
  170. package/lib/cjs/render/RenderMemory.d.ts +21 -15
  171. package/lib/cjs/render/RenderMemory.d.ts.map +1 -1
  172. package/lib/cjs/render/RenderMemory.js +21 -15
  173. package/lib/cjs/render/RenderMemory.js.map +1 -1
  174. package/lib/cjs/render/RenderSystem.d.ts +44 -7
  175. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  176. package/lib/cjs/render/RenderSystem.js +32 -9
  177. package/lib/cjs/render/RenderSystem.js.map +1 -1
  178. package/lib/cjs/render/RenderTarget.d.ts +10 -2
  179. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  180. package/lib/cjs/render/RenderTarget.js +2 -1
  181. package/lib/cjs/render/RenderTarget.js.map +1 -1
  182. package/lib/cjs/render/RenderTexture.d.ts +2 -17
  183. package/lib/cjs/render/RenderTexture.d.ts.map +1 -1
  184. package/lib/cjs/render/RenderTexture.js +0 -17
  185. package/lib/cjs/render/RenderTexture.js.map +1 -1
  186. package/lib/cjs/render/primitives/EdgeParams.d.ts +84 -0
  187. package/lib/cjs/render/primitives/EdgeParams.d.ts.map +1 -0
  188. package/lib/cjs/render/primitives/EdgeParams.js +220 -0
  189. package/lib/cjs/render/primitives/EdgeParams.js.map +1 -0
  190. package/lib/cjs/render/primitives/PointStringParams.d.ts +16 -0
  191. package/lib/cjs/render/primitives/PointStringParams.d.ts.map +1 -0
  192. package/lib/cjs/render/primitives/PointStringParams.js +43 -0
  193. package/lib/cjs/render/primitives/PointStringParams.js.map +1 -0
  194. package/lib/cjs/render/primitives/PolylineParams.d.ts +44 -0
  195. package/lib/cjs/render/primitives/PolylineParams.d.ts.map +1 -0
  196. package/lib/cjs/render/primitives/PolylineParams.js +205 -0
  197. package/lib/cjs/render/primitives/PolylineParams.js.map +1 -0
  198. package/lib/cjs/render/primitives/Primitives.d.ts +1 -1
  199. package/lib/cjs/render/primitives/Primitives.d.ts.map +1 -1
  200. package/lib/cjs/render/primitives/Primitives.js.map +1 -1
  201. package/lib/cjs/render/primitives/SurfaceParams.d.ts +46 -0
  202. package/lib/cjs/render/primitives/SurfaceParams.d.ts.map +1 -0
  203. package/lib/cjs/render/primitives/SurfaceParams.js +42 -0
  204. package/lib/cjs/render/primitives/SurfaceParams.js.map +1 -0
  205. package/lib/cjs/render/primitives/VertexTable.d.ts +4 -123
  206. package/lib/cjs/render/primitives/VertexTable.d.ts.map +1 -1
  207. package/lib/cjs/render/primitives/VertexTable.js +16 -352
  208. package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
  209. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts +2 -0
  210. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  211. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js +2 -1
  212. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  213. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  214. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +1 -0
  215. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  216. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +2 -2
  217. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  218. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +3 -3
  219. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  220. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.d.ts +1 -1
  221. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js +1 -1
  222. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js.map +1 -1
  223. package/lib/cjs/render/webgl/AttributeMap.js +5 -5
  224. package/lib/cjs/render/webgl/BackgroundMapDrape.js +1 -1
  225. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  226. package/lib/cjs/render/webgl/BranchUniforms.d.ts.map +1 -1
  227. package/lib/cjs/render/webgl/BranchUniforms.js +8 -5
  228. package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
  229. package/lib/cjs/render/webgl/CachedGeometry.d.ts +16 -11
  230. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  231. package/lib/cjs/render/webgl/CachedGeometry.js +26 -23
  232. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  233. package/lib/cjs/render/webgl/DrawCommand.d.ts +2 -3
  234. package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
  235. package/lib/cjs/render/webgl/DrawCommand.js +6 -4
  236. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  237. package/lib/cjs/render/webgl/EdgeGeometry.d.ts +73 -0
  238. package/lib/cjs/render/webgl/EdgeGeometry.d.ts.map +1 -0
  239. package/lib/cjs/render/webgl/EdgeGeometry.js +141 -0
  240. package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -0
  241. package/lib/cjs/render/webgl/FeatureOverrides.d.ts +2 -0
  242. package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
  243. package/lib/cjs/render/webgl/FeatureOverrides.js +11 -3
  244. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  245. package/lib/cjs/render/webgl/FloatRGBA.d.ts.map +1 -1
  246. package/lib/cjs/render/webgl/FloatRGBA.js +13 -11
  247. package/lib/cjs/render/webgl/FloatRGBA.js.map +1 -1
  248. package/lib/cjs/render/webgl/Graphic.d.ts +13 -0
  249. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  250. package/lib/cjs/render/webgl/Graphic.js +41 -3
  251. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  252. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts +51 -0
  253. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -0
  254. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js +90 -0
  255. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -0
  256. package/lib/cjs/render/webgl/InstancedGeometry.d.ts +6 -5
  257. package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
  258. package/lib/cjs/render/webgl/InstancedGeometry.js +2 -1
  259. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  260. package/lib/cjs/render/webgl/Material.d.ts +1 -1
  261. package/lib/cjs/render/webgl/Material.d.ts.map +1 -1
  262. package/lib/cjs/render/webgl/Material.js +2 -0
  263. package/lib/cjs/render/webgl/Material.js.map +1 -1
  264. package/lib/cjs/render/webgl/Mesh.d.ts +8 -162
  265. package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
  266. package/lib/cjs/render/webgl/Mesh.js +18 -458
  267. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  268. package/lib/cjs/render/webgl/MeshData.d.ts +38 -0
  269. package/lib/cjs/render/webgl/MeshData.d.ts.map +1 -0
  270. package/lib/cjs/render/webgl/MeshData.js +66 -0
  271. package/lib/cjs/render/webgl/MeshData.js.map +1 -0
  272. package/lib/cjs/render/webgl/MeshGeometry.d.ts +38 -0
  273. package/lib/cjs/render/webgl/MeshGeometry.d.ts.map +1 -0
  274. package/lib/cjs/render/webgl/MeshGeometry.js +59 -0
  275. package/lib/cjs/render/webgl/MeshGeometry.js.map +1 -0
  276. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  277. package/lib/cjs/render/webgl/PlanarClassifier.js +8 -4
  278. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  279. package/lib/cjs/render/webgl/PlanarGrid.d.ts +2 -3
  280. package/lib/cjs/render/webgl/PlanarGrid.d.ts.map +1 -1
  281. package/lib/cjs/render/webgl/PlanarGrid.js +3 -3
  282. package/lib/cjs/render/webgl/PlanarGrid.js.map +1 -1
  283. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  284. package/lib/cjs/render/webgl/PlanarTextureProjection.js +1 -0
  285. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  286. package/lib/cjs/render/webgl/PointCloud.d.ts +2 -2
  287. package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
  288. package/lib/cjs/render/webgl/PointCloud.js +2 -2
  289. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  290. package/lib/cjs/render/webgl/PointString.d.ts +3 -3
  291. package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
  292. package/lib/cjs/render/webgl/PointString.js +1 -1
  293. package/lib/cjs/render/webgl/PointString.js.map +1 -1
  294. package/lib/cjs/render/webgl/Polyline.d.ts +3 -3
  295. package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
  296. package/lib/cjs/render/webgl/Polyline.js +6 -6
  297. package/lib/cjs/render/webgl/Polyline.js.map +1 -1
  298. package/lib/cjs/render/webgl/Primitive.d.ts +2 -2
  299. package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
  300. package/lib/cjs/render/webgl/Primitive.js +5 -5
  301. package/lib/cjs/render/webgl/Primitive.js.map +1 -1
  302. package/lib/cjs/render/webgl/RealityMesh.d.ts +2 -2
  303. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  304. package/lib/cjs/render/webgl/RealityMesh.js +9 -9
  305. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  306. package/lib/cjs/render/webgl/RenderCommands.d.ts +6 -2
  307. package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
  308. package/lib/cjs/render/webgl/RenderCommands.js +81 -48
  309. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  310. package/lib/cjs/render/webgl/RenderFlags.d.ts +48 -1
  311. package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
  312. package/lib/cjs/render/webgl/RenderFlags.js +64 -2
  313. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  314. package/lib/cjs/render/webgl/SceneCompositor.js +10 -9
  315. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  316. package/lib/cjs/render/webgl/ScreenSpaceEffect.js +1 -1
  317. package/lib/cjs/render/webgl/ShaderBuilder.d.ts +23 -20
  318. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  319. package/lib/cjs/render/webgl/ShaderBuilder.js +38 -32
  320. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  321. package/lib/cjs/render/webgl/ShaderProgram.d.ts +1 -1
  322. package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
  323. package/lib/cjs/render/webgl/ShaderProgram.js +4 -4
  324. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  325. package/lib/cjs/render/webgl/SolarShadowMap.d.ts.map +1 -1
  326. package/lib/cjs/render/webgl/SolarShadowMap.js +4 -3
  327. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  328. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts +54 -0
  329. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -0
  330. package/lib/cjs/render/webgl/SurfaceGeometry.js +248 -0
  331. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -0
  332. package/lib/cjs/render/webgl/System.d.ts +13 -10
  333. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  334. package/lib/cjs/render/webgl/System.js +75 -21
  335. package/lib/cjs/render/webgl/System.js.map +1 -1
  336. package/lib/cjs/render/webgl/Target.d.ts +13 -1
  337. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  338. package/lib/cjs/render/webgl/Target.js +88 -2
  339. package/lib/cjs/render/webgl/Target.js.map +1 -1
  340. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  341. package/lib/cjs/render/webgl/Technique.js +112 -119
  342. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  343. package/lib/cjs/render/webgl/TechniqueFlags.d.ts +7 -1
  344. package/lib/cjs/render/webgl/TechniqueFlags.d.ts.map +1 -1
  345. package/lib/cjs/render/webgl/TechniqueFlags.js +10 -1
  346. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  347. package/lib/cjs/render/webgl/TechniqueId.d.ts +29 -28
  348. package/lib/cjs/render/webgl/TechniqueId.d.ts.map +1 -1
  349. package/lib/cjs/render/webgl/TechniqueId.js +7 -7
  350. package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
  351. package/lib/cjs/render/webgl/Texture.d.ts +15 -12
  352. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  353. package/lib/cjs/render/webgl/Texture.js +26 -23
  354. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  355. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  356. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +83 -18
  357. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  358. package/lib/cjs/render/webgl/glsl/Animation.js +1 -1
  359. package/lib/cjs/render/webgl/glsl/Blur.js +1 -1
  360. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js +2 -2
  361. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js +2 -2
  362. package/lib/cjs/render/webgl/glsl/Color.js +1 -1
  363. package/lib/cjs/render/webgl/glsl/Combine3Textures.js +1 -1
  364. package/lib/cjs/render/webgl/glsl/CombineTextures.js +1 -1
  365. package/lib/cjs/render/webgl/glsl/Composite.js +1 -1
  366. package/lib/cjs/render/webgl/glsl/CopyColor.d.ts.map +1 -1
  367. package/lib/cjs/render/webgl/glsl/CopyColor.js +17 -2
  368. package/lib/cjs/render/webgl/glsl/CopyColor.js.map +1 -1
  369. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js +2 -2
  370. package/lib/cjs/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
  371. package/lib/cjs/render/webgl/glsl/CopyStencil.js +10 -13
  372. package/lib/cjs/render/webgl/glsl/CopyStencil.js.map +1 -1
  373. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js +2 -2
  374. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  375. package/lib/cjs/render/webgl/glsl/Edge.d.ts +2 -1
  376. package/lib/cjs/render/webgl/glsl/Edge.d.ts.map +1 -1
  377. package/lib/cjs/render/webgl/glsl/Edge.js +132 -14
  378. package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
  379. package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  380. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +43 -21
  381. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  382. package/lib/cjs/render/webgl/glsl/Fragment.d.ts.map +1 -1
  383. package/lib/cjs/render/webgl/glsl/Fragment.js +19 -11
  384. package/lib/cjs/render/webgl/glsl/Fragment.js.map +1 -1
  385. package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
  386. package/lib/cjs/render/webgl/glsl/LookupTable.d.ts +4 -2
  387. package/lib/cjs/render/webgl/glsl/LookupTable.d.ts.map +1 -1
  388. package/lib/cjs/render/webgl/glsl/LookupTable.js +7 -3
  389. package/lib/cjs/render/webgl/glsl/LookupTable.js.map +1 -1
  390. package/lib/cjs/render/webgl/glsl/PlanarClassification.d.ts.map +1 -1
  391. package/lib/cjs/render/webgl/glsl/PlanarClassification.js +13 -4
  392. package/lib/cjs/render/webgl/glsl/PlanarClassification.js.map +1 -1
  393. package/lib/cjs/render/webgl/glsl/PlanarGrid.js +2 -2
  394. package/lib/cjs/render/webgl/glsl/PlanarGrid.js.map +1 -1
  395. package/lib/cjs/render/webgl/glsl/PointCloud.js +2 -2
  396. package/lib/cjs/render/webgl/glsl/PointCloud.js.map +1 -1
  397. package/lib/cjs/render/webgl/glsl/PointString.js +1 -1
  398. package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
  399. package/lib/cjs/render/webgl/glsl/Polyline.js +1 -1
  400. package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
  401. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  402. package/lib/cjs/render/webgl/glsl/RealityMesh.js +9 -6
  403. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  404. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js +2 -2
  405. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  406. package/lib/cjs/render/webgl/glsl/SkyBox.js +2 -2
  407. package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
  408. package/lib/cjs/render/webgl/glsl/SkySphere.js +2 -2
  409. package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
  410. package/lib/cjs/render/webgl/glsl/Surface.js +41 -16
  411. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  412. package/lib/cjs/render/webgl/glsl/Translucency.js +2 -2
  413. package/lib/cjs/render/webgl/glsl/Vertex.js +2 -2
  414. package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
  415. package/lib/cjs/render/webgl/glsl/ViewportQuad.js +1 -1
  416. package/lib/cjs/render/webgl/glsl/ViewportQuad.js.map +1 -1
  417. package/lib/cjs/render/webgl/glsl/Wiremesh.d.ts +9 -0
  418. package/lib/cjs/render/webgl/glsl/Wiremesh.d.ts.map +1 -0
  419. package/lib/cjs/render/webgl/glsl/Wiremesh.js +40 -0
  420. package/lib/cjs/render/webgl/glsl/Wiremesh.js.map +1 -0
  421. package/lib/cjs/render-primitives.d.ts +5 -1
  422. package/lib/cjs/render-primitives.d.ts.map +1 -1
  423. package/lib/cjs/render-primitives.js +5 -1
  424. package/lib/cjs/render-primitives.js.map +1 -1
  425. package/lib/cjs/request/Request.d.ts +167 -0
  426. package/lib/cjs/request/Request.d.ts.map +1 -0
  427. package/lib/cjs/request/Request.js +315 -0
  428. package/lib/cjs/request/Request.js.map +1 -0
  429. package/lib/cjs/tile/B3dmReader.d.ts +2 -1
  430. package/lib/cjs/tile/B3dmReader.d.ts.map +1 -1
  431. package/lib/cjs/tile/B3dmReader.js +11 -7
  432. package/lib/cjs/tile/B3dmReader.js.map +1 -1
  433. package/lib/cjs/tile/CesiumAssetProvider.d.ts +14 -0
  434. package/lib/cjs/tile/CesiumAssetProvider.d.ts.map +1 -0
  435. package/lib/cjs/tile/CesiumAssetProvider.js +35 -0
  436. package/lib/cjs/tile/CesiumAssetProvider.js.map +1 -0
  437. package/lib/cjs/tile/ContextShareProvider.d.ts +22 -0
  438. package/lib/cjs/tile/ContextShareProvider.d.ts.map +1 -0
  439. package/lib/cjs/tile/ContextShareProvider.js +129 -0
  440. package/lib/cjs/tile/ContextShareProvider.js.map +1 -0
  441. package/lib/cjs/tile/DynamicIModelTile.js +9 -3
  442. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  443. package/lib/cjs/tile/GltfReader.d.ts +594 -55
  444. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  445. package/lib/cjs/tile/GltfReader.js +703 -264
  446. package/lib/cjs/tile/GltfReader.js.map +1 -1
  447. package/lib/cjs/tile/I3dmReader.d.ts +2 -1
  448. package/lib/cjs/tile/I3dmReader.d.ts.map +1 -1
  449. package/lib/cjs/tile/I3dmReader.js +10 -6
  450. package/lib/cjs/tile/I3dmReader.js.map +1 -1
  451. package/lib/cjs/tile/IModelTile.d.ts.map +1 -1
  452. package/lib/cjs/tile/IModelTile.js +14 -7
  453. package/lib/cjs/tile/IModelTile.js.map +1 -1
  454. package/lib/cjs/tile/IModelTileTree.d.ts +8 -0
  455. package/lib/cjs/tile/IModelTileTree.d.ts.map +1 -1
  456. package/lib/cjs/tile/IModelTileTree.js +36 -1
  457. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  458. package/lib/cjs/tile/ImdlReader.d.ts +365 -10
  459. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  460. package/lib/cjs/tile/ImdlReader.js +202 -68
  461. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  462. package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +1 -1
  463. package/lib/cjs/tile/OrbitGtTileTree.js +8 -5
  464. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  465. package/lib/cjs/tile/PrimaryTileTree.d.ts +14 -5
  466. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  467. package/lib/cjs/tile/PrimaryTileTree.js +69 -14
  468. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  469. package/lib/cjs/tile/RealityModelTileTree.d.ts +3 -55
  470. package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
  471. package/lib/cjs/tile/RealityModelTileTree.js +57 -232
  472. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  473. package/lib/cjs/tile/RealityTileLoader.d.ts +1 -0
  474. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  475. package/lib/cjs/tile/RealityTileLoader.js +4 -3
  476. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  477. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  478. package/lib/cjs/tile/Tile.js +5 -1
  479. package/lib/cjs/tile/Tile.js.map +1 -1
  480. package/lib/cjs/tile/TileAdmin.d.ts +37 -4
  481. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  482. package/lib/cjs/tile/TileAdmin.js +18 -12
  483. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  484. package/lib/cjs/tile/TileDrawArgs.d.ts +11 -0
  485. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  486. package/lib/cjs/tile/TileDrawArgs.js +6 -1
  487. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  488. package/lib/cjs/tile/TileTreeReference.d.ts +2 -0
  489. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  490. package/lib/cjs/tile/TileTreeReference.js +5 -0
  491. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  492. package/lib/cjs/tile/internal.d.ts +4 -1
  493. package/lib/cjs/tile/internal.d.ts.map +1 -1
  494. package/lib/cjs/tile/internal.js +4 -1
  495. package/lib/cjs/tile/internal.js.map +1 -1
  496. package/lib/cjs/tile/map/ArcGISTileMap.d.ts +22 -0
  497. package/lib/cjs/tile/map/ArcGISTileMap.d.ts.map +1 -0
  498. package/lib/cjs/tile/map/ArcGISTileMap.js +177 -0
  499. package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -0
  500. package/lib/cjs/tile/map/ArcGisTokenGenerator.js +3 -3
  501. package/lib/cjs/tile/map/ArcGisTokenGenerator.js.map +1 -1
  502. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +1 -1
  503. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  504. package/lib/cjs/tile/map/ArcGisUtilities.js +18 -10
  505. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  506. package/lib/cjs/tile/map/BingElevation.js +4 -4
  507. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  508. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  509. package/lib/cjs/tile/map/CesiumTerrainProvider.js +27 -15
  510. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  511. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -2
  512. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  513. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +23 -44
  514. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  515. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +3 -3
  516. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  517. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +8 -0
  518. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  519. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +51 -10
  520. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  521. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +6 -1
  522. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  523. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +63 -21
  524. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  525. package/lib/cjs/tile/map/ImageryTileTree.d.ts +4 -4
  526. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  527. package/lib/cjs/tile/map/ImageryTileTree.js +20 -24
  528. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  529. package/lib/cjs/tile/map/MapCartoRectangle.js +1 -1
  530. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  531. package/lib/cjs/tile/map/MapLayerAuthentication.d.ts +20 -0
  532. package/lib/cjs/tile/map/MapLayerAuthentication.d.ts.map +1 -0
  533. package/lib/cjs/tile/map/MapLayerAuthentication.js +18 -0
  534. package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -0
  535. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +6 -3
  536. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  537. package/lib/cjs/tile/map/MapLayerFormatRegistry.js +3 -1
  538. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  539. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts +2 -2
  540. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  541. package/lib/cjs/tile/map/MapLayerImageryFormats.js +21 -8
  542. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  543. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +18 -6
  544. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  545. package/lib/cjs/tile/map/MapLayerImageryProvider.js +47 -14
  546. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  547. package/lib/cjs/tile/map/MapLayerSources.d.ts +3 -11
  548. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  549. package/lib/cjs/tile/map/MapLayerSources.js +5 -34
  550. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  551. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  552. package/lib/cjs/tile/map/MapTile.js +4 -3
  553. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  554. package/lib/cjs/tile/map/MapTileLoader.js +2 -2
  555. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  556. package/lib/cjs/tile/map/MapTileTree.d.ts +1 -1
  557. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  558. package/lib/cjs/tile/map/MapTileTree.js +30 -21
  559. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  560. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts +3 -3
  561. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  562. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +4 -6
  563. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  564. package/lib/cjs/tile/map/MapTilingScheme.d.ts +7 -2
  565. package/lib/cjs/tile/map/MapTilingScheme.d.ts.map +1 -1
  566. package/lib/cjs/tile/map/MapTilingScheme.js +21 -8
  567. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  568. package/lib/cjs/tile/map/QuadId.d.ts +1 -0
  569. package/lib/cjs/tile/map/QuadId.d.ts.map +1 -1
  570. package/lib/cjs/tile/map/QuadId.js +2 -1
  571. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  572. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +1 -1
  573. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  574. package/lib/cjs/tile/map/WmsCapabilities.d.ts +8 -1
  575. package/lib/cjs/tile/map/WmsCapabilities.d.ts.map +1 -1
  576. package/lib/cjs/tile/map/WmsCapabilities.js +39 -5
  577. package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
  578. package/lib/cjs/tile/map/WmtsCapabilities.d.ts +11 -1
  579. package/lib/cjs/tile/map/WmtsCapabilities.d.ts.map +1 -1
  580. package/lib/cjs/tile/map/WmtsCapabilities.js +23 -9
  581. package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
  582. package/lib/cjs/tools/EditManipulator.d.ts.map +1 -1
  583. package/lib/cjs/tools/EditManipulator.js +1 -1
  584. package/lib/cjs/tools/EditManipulator.js.map +1 -1
  585. package/lib/cjs/tools/ElementSetTool.js +2 -2
  586. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  587. package/lib/cjs/tools/PrimitiveTool.d.ts +4 -4
  588. package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
  589. package/lib/cjs/tools/PrimitiveTool.js +2 -2
  590. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  591. package/lib/cjs/tools/Tool.d.ts +29 -1
  592. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  593. package/lib/cjs/tools/Tool.js +66 -0
  594. package/lib/cjs/tools/Tool.js.map +1 -1
  595. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  596. package/lib/cjs/tools/ToolAdmin.js +20 -10
  597. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  598. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  599. package/lib/cjs/tools/ViewTool.js +3 -11
  600. package/lib/cjs/tools/ViewTool.js.map +1 -1
  601. package/lib/cjs/webgl.d.ts +5 -0
  602. package/lib/cjs/webgl.d.ts.map +1 -1
  603. package/lib/cjs/webgl.js +5 -0
  604. package/lib/cjs/webgl.js.map +1 -1
  605. package/lib/esm/AccuSnap.js +3 -3
  606. package/lib/esm/AccuSnap.js.map +1 -1
  607. package/lib/esm/ApproximateTerrainHeights.d.ts.map +1 -1
  608. package/lib/esm/ApproximateTerrainHeights.js +10 -5
  609. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  610. package/lib/esm/BackgroundMapGeometry.d.ts +1 -1
  611. package/lib/esm/BackgroundMapGeometry.d.ts.map +1 -1
  612. package/lib/esm/BackgroundMapGeometry.js +2 -2
  613. package/lib/esm/BackgroundMapGeometry.js.map +1 -1
  614. package/lib/esm/BingLocation.js +1 -1
  615. package/lib/esm/BingLocation.js.map +1 -1
  616. package/lib/esm/CheckpointConnection.js +1 -1
  617. package/lib/esm/CheckpointConnection.js.map +1 -1
  618. package/lib/esm/ContextRealityModelState.js +1 -1
  619. package/lib/esm/ContextRealityModelState.js.map +1 -1
  620. package/lib/esm/DisplayStyleState.d.ts +10 -163
  621. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  622. package/lib/esm/DisplayStyleState.js +70 -346
  623. package/lib/esm/DisplayStyleState.js.map +1 -1
  624. package/lib/esm/DrawingViewState.d.ts +2 -2
  625. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  626. package/lib/esm/DrawingViewState.js +3 -3
  627. package/lib/esm/DrawingViewState.js.map +1 -1
  628. package/lib/esm/ElementLocateManager.d.ts +5 -0
  629. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  630. package/lib/esm/ElementLocateManager.js +12 -2
  631. package/lib/esm/ElementLocateManager.js.map +1 -1
  632. package/lib/esm/EmphasizeElements.d.ts.map +1 -1
  633. package/lib/esm/EmphasizeElements.js +14 -4
  634. package/lib/esm/EmphasizeElements.js.map +1 -1
  635. package/lib/esm/EnvironmentDecorations.d.ts +39 -0
  636. package/lib/esm/EnvironmentDecorations.d.ts.map +1 -0
  637. package/lib/esm/EnvironmentDecorations.js +196 -0
  638. package/lib/esm/EnvironmentDecorations.js.map +1 -0
  639. package/lib/esm/FrontendHubAccess.d.ts +11 -7
  640. package/lib/esm/FrontendHubAccess.d.ts.map +1 -1
  641. package/lib/esm/FrontendHubAccess.js.map +1 -1
  642. package/lib/esm/FrontendLoggerCategory.d.ts +2 -8
  643. package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
  644. package/lib/esm/FrontendLoggerCategory.js +2 -8
  645. package/lib/esm/FrontendLoggerCategory.js.map +1 -1
  646. package/lib/esm/HitDetail.js +7 -7
  647. package/lib/esm/HitDetail.js.map +1 -1
  648. package/lib/esm/IModelApp.d.ts +30 -17
  649. package/lib/esm/IModelApp.d.ts.map +1 -1
  650. package/lib/esm/IModelApp.js +32 -25
  651. package/lib/esm/IModelApp.js.map +1 -1
  652. package/lib/esm/IModelConnection.d.ts +4 -6
  653. package/lib/esm/IModelConnection.d.ts.map +1 -1
  654. package/lib/esm/IModelConnection.js +6 -11
  655. package/lib/esm/IModelConnection.js.map +1 -1
  656. package/lib/esm/IModeljs-css.d.ts.map +1 -1
  657. package/lib/esm/IModeljs-css.js +8 -6
  658. package/lib/esm/IModeljs-css.js.map +1 -1
  659. package/lib/esm/ImageUtil.d.ts +3 -3
  660. package/lib/esm/ImageUtil.d.ts.map +1 -1
  661. package/lib/esm/ImageUtil.js +7 -4
  662. package/lib/esm/ImageUtil.js.map +1 -1
  663. package/lib/esm/LocalhostIpcApp.d.ts +2 -1
  664. package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
  665. package/lib/esm/LocalhostIpcApp.js +22 -8
  666. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  667. package/lib/esm/Marker.d.ts +9 -2
  668. package/lib/esm/Marker.d.ts.map +1 -1
  669. package/lib/esm/Marker.js +34 -6
  670. package/lib/esm/Marker.js.map +1 -1
  671. package/lib/esm/ModelState.js +1 -1
  672. package/lib/esm/ModelState.js.map +1 -1
  673. package/lib/esm/NativeApp.d.ts +3 -38
  674. package/lib/esm/NativeApp.d.ts.map +1 -1
  675. package/lib/esm/NativeApp.js +1 -69
  676. package/lib/esm/NativeApp.js.map +1 -1
  677. package/lib/esm/NoRenderApp.d.ts +0 -1
  678. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  679. package/lib/esm/NoRenderApp.js +0 -1
  680. package/lib/esm/NoRenderApp.js.map +1 -1
  681. package/lib/esm/NotificationManager.d.ts +3 -1
  682. package/lib/esm/NotificationManager.d.ts.map +1 -1
  683. package/lib/esm/NotificationManager.js +2 -0
  684. package/lib/esm/NotificationManager.js.map +1 -1
  685. package/lib/esm/RealityDataSource.d.ts +59 -29
  686. package/lib/esm/RealityDataSource.d.ts.map +1 -1
  687. package/lib/esm/RealityDataSource.js +247 -92
  688. package/lib/esm/RealityDataSource.js.map +1 -1
  689. package/lib/esm/RenderScheduleState.d.ts +2 -0
  690. package/lib/esm/RenderScheduleState.d.ts.map +1 -1
  691. package/lib/esm/RenderScheduleState.js +8 -4
  692. package/lib/esm/RenderScheduleState.js.map +1 -1
  693. package/lib/esm/SheetViewState.d.ts +2 -2
  694. package/lib/esm/SheetViewState.d.ts.map +1 -1
  695. package/lib/esm/SheetViewState.js +8 -9
  696. package/lib/esm/SheetViewState.js.map +1 -1
  697. package/lib/esm/SpatialViewState.d.ts +10 -2
  698. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  699. package/lib/esm/SpatialViewState.js +12 -2
  700. package/lib/esm/SpatialViewState.js.map +1 -1
  701. package/lib/esm/SubCategoriesCache.js +1 -1
  702. package/lib/esm/SubCategoriesCache.js.map +1 -1
  703. package/lib/esm/Tiles.d.ts +11 -1
  704. package/lib/esm/Tiles.d.ts.map +1 -1
  705. package/lib/esm/Tiles.js +7 -0
  706. package/lib/esm/Tiles.js.map +1 -1
  707. package/lib/esm/TwoWayViewportSync.d.ts +35 -6
  708. package/lib/esm/TwoWayViewportSync.d.ts.map +1 -1
  709. package/lib/esm/TwoWayViewportSync.js +49 -10
  710. package/lib/esm/TwoWayViewportSync.js.map +1 -1
  711. package/lib/esm/UserPreferences.d.ts +72 -0
  712. package/lib/esm/UserPreferences.d.ts.map +1 -0
  713. package/lib/esm/UserPreferences.js +6 -0
  714. package/lib/esm/UserPreferences.js.map +1 -0
  715. package/lib/esm/ViewContext.d.ts +3 -1
  716. package/lib/esm/ViewContext.d.ts.map +1 -1
  717. package/lib/esm/ViewContext.js +4 -0
  718. package/lib/esm/ViewContext.js.map +1 -1
  719. package/lib/esm/ViewCreator2d.js +3 -3
  720. package/lib/esm/ViewCreator2d.js.map +1 -1
  721. package/lib/esm/ViewCreator3d.d.ts +1 -1
  722. package/lib/esm/ViewCreator3d.d.ts.map +1 -1
  723. package/lib/esm/ViewCreator3d.js +5 -6
  724. package/lib/esm/ViewCreator3d.js.map +1 -1
  725. package/lib/esm/ViewManager.d.ts +6 -6
  726. package/lib/esm/ViewManager.d.ts.map +1 -1
  727. package/lib/esm/ViewManager.js +13 -13
  728. package/lib/esm/ViewManager.js.map +1 -1
  729. package/lib/esm/ViewState.d.ts +11 -5
  730. package/lib/esm/ViewState.d.ts.map +1 -1
  731. package/lib/esm/ViewState.js +21 -66
  732. package/lib/esm/ViewState.js.map +1 -1
  733. package/lib/esm/ViewingSpace.js +1 -1
  734. package/lib/esm/ViewingSpace.js.map +1 -1
  735. package/lib/esm/Viewport.d.ts +57 -11
  736. package/lib/esm/Viewport.d.ts.map +1 -1
  737. package/lib/esm/Viewport.js +56 -32
  738. package/lib/esm/Viewport.js.map +1 -1
  739. package/lib/esm/core-frontend.d.ts +11 -24
  740. package/lib/esm/core-frontend.d.ts.map +1 -1
  741. package/lib/esm/core-frontend.js +11 -24
  742. package/lib/esm/core-frontend.js.map +1 -1
  743. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts +3 -2
  744. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  745. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js +3 -2
  746. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  747. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts +5 -1
  748. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  749. package/lib/esm/quantity-formatting/BasicUnitsProvider.js +18 -4
  750. package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  751. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +26 -3
  752. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  753. package/lib/esm/quantity-formatting/QuantityFormatter.js +45 -7
  754. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  755. package/lib/esm/render/FeatureSymbology.d.ts.map +1 -1
  756. package/lib/esm/render/FeatureSymbology.js +3 -3
  757. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  758. package/lib/esm/render/GraphicBranch.d.ts +18 -2
  759. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  760. package/lib/esm/render/GraphicBranch.js +8 -0
  761. package/lib/esm/render/GraphicBranch.js.map +1 -1
  762. package/lib/esm/render/GraphicBuilder.d.ts +7 -1
  763. package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
  764. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  765. package/lib/esm/render/MockRender.d.ts +3 -1
  766. package/lib/esm/render/MockRender.d.ts.map +1 -1
  767. package/lib/esm/render/MockRender.js.map +1 -1
  768. package/lib/esm/render/RenderMaterial.d.ts +61 -0
  769. package/lib/esm/render/RenderMaterial.d.ts.map +1 -0
  770. package/lib/esm/render/RenderMaterial.js +9 -0
  771. package/lib/esm/render/RenderMaterial.js.map +1 -0
  772. package/lib/esm/render/RenderMemory.d.ts +21 -15
  773. package/lib/esm/render/RenderMemory.d.ts.map +1 -1
  774. package/lib/esm/render/RenderMemory.js +21 -15
  775. package/lib/esm/render/RenderMemory.js.map +1 -1
  776. package/lib/esm/render/RenderSystem.d.ts +44 -7
  777. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  778. package/lib/esm/render/RenderSystem.js +32 -9
  779. package/lib/esm/render/RenderSystem.js.map +1 -1
  780. package/lib/esm/render/RenderTarget.d.ts +10 -2
  781. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  782. package/lib/esm/render/RenderTarget.js +2 -1
  783. package/lib/esm/render/RenderTarget.js.map +1 -1
  784. package/lib/esm/render/RenderTexture.d.ts +2 -17
  785. package/lib/esm/render/RenderTexture.d.ts.map +1 -1
  786. package/lib/esm/render/RenderTexture.js +1 -16
  787. package/lib/esm/render/RenderTexture.js.map +1 -1
  788. package/lib/esm/render/primitives/EdgeParams.d.ts +84 -0
  789. package/lib/esm/render/primitives/EdgeParams.d.ts.map +1 -0
  790. package/lib/esm/render/primitives/EdgeParams.js +217 -0
  791. package/lib/esm/render/primitives/EdgeParams.js.map +1 -0
  792. package/lib/esm/render/primitives/PointStringParams.d.ts +16 -0
  793. package/lib/esm/render/primitives/PointStringParams.d.ts.map +1 -0
  794. package/lib/esm/render/primitives/PointStringParams.js +39 -0
  795. package/lib/esm/render/primitives/PointStringParams.js.map +1 -0
  796. package/lib/esm/render/primitives/PolylineParams.d.ts +44 -0
  797. package/lib/esm/render/primitives/PolylineParams.d.ts.map +1 -0
  798. package/lib/esm/render/primitives/PolylineParams.js +199 -0
  799. package/lib/esm/render/primitives/PolylineParams.js.map +1 -0
  800. package/lib/esm/render/primitives/Primitives.d.ts +1 -1
  801. package/lib/esm/render/primitives/Primitives.d.ts.map +1 -1
  802. package/lib/esm/render/primitives/Primitives.js.map +1 -1
  803. package/lib/esm/render/primitives/SurfaceParams.d.ts +46 -0
  804. package/lib/esm/render/primitives/SurfaceParams.d.ts.map +1 -0
  805. package/lib/esm/render/primitives/SurfaceParams.js +37 -0
  806. package/lib/esm/render/primitives/SurfaceParams.js.map +1 -0
  807. package/lib/esm/render/primitives/VertexTable.d.ts +4 -123
  808. package/lib/esm/render/primitives/VertexTable.d.ts.map +1 -1
  809. package/lib/esm/render/primitives/VertexTable.js +11 -342
  810. package/lib/esm/render/primitives/VertexTable.js.map +1 -1
  811. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts +2 -0
  812. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  813. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js +2 -1
  814. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  815. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  816. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +1 -0
  817. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  818. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +2 -2
  819. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  820. package/lib/esm/render/primitives/mesh/MeshPrimitives.js +3 -3
  821. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  822. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.d.ts +1 -1
  823. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js +1 -1
  824. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js.map +1 -1
  825. package/lib/esm/render/webgl/AttributeMap.js +5 -5
  826. package/lib/esm/render/webgl/BackgroundMapDrape.js +2 -2
  827. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  828. package/lib/esm/render/webgl/BranchUniforms.d.ts.map +1 -1
  829. package/lib/esm/render/webgl/BranchUniforms.js +8 -5
  830. package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
  831. package/lib/esm/render/webgl/CachedGeometry.d.ts +16 -11
  832. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  833. package/lib/esm/render/webgl/CachedGeometry.js +26 -23
  834. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  835. package/lib/esm/render/webgl/DrawCommand.d.ts +2 -3
  836. package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
  837. package/lib/esm/render/webgl/DrawCommand.js +6 -4
  838. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  839. package/lib/esm/render/webgl/EdgeGeometry.d.ts +73 -0
  840. package/lib/esm/render/webgl/EdgeGeometry.d.ts.map +1 -0
  841. package/lib/esm/render/webgl/EdgeGeometry.js +135 -0
  842. package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -0
  843. package/lib/esm/render/webgl/FeatureOverrides.d.ts +2 -0
  844. package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
  845. package/lib/esm/render/webgl/FeatureOverrides.js +11 -3
  846. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  847. package/lib/esm/render/webgl/FloatRGBA.d.ts.map +1 -1
  848. package/lib/esm/render/webgl/FloatRGBA.js +13 -11
  849. package/lib/esm/render/webgl/FloatRGBA.js.map +1 -1
  850. package/lib/esm/render/webgl/Graphic.d.ts +13 -0
  851. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  852. package/lib/esm/render/webgl/Graphic.js +39 -2
  853. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  854. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts +51 -0
  855. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -0
  856. package/lib/esm/render/webgl/IndexedEdgeGeometry.js +85 -0
  857. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -0
  858. package/lib/esm/render/webgl/InstancedGeometry.d.ts +6 -5
  859. package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
  860. package/lib/esm/render/webgl/InstancedGeometry.js +2 -1
  861. package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
  862. package/lib/esm/render/webgl/Material.d.ts +1 -1
  863. package/lib/esm/render/webgl/Material.d.ts.map +1 -1
  864. package/lib/esm/render/webgl/Material.js +2 -0
  865. package/lib/esm/render/webgl/Material.js.map +1 -1
  866. package/lib/esm/render/webgl/Mesh.d.ts +8 -162
  867. package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
  868. package/lib/esm/render/webgl/Mesh.js +12 -445
  869. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  870. package/lib/esm/render/webgl/MeshData.d.ts +38 -0
  871. package/lib/esm/render/webgl/MeshData.d.ts.map +1 -0
  872. package/lib/esm/render/webgl/MeshData.js +62 -0
  873. package/lib/esm/render/webgl/MeshData.js.map +1 -0
  874. package/lib/esm/render/webgl/MeshGeometry.d.ts +38 -0
  875. package/lib/esm/render/webgl/MeshGeometry.d.ts.map +1 -0
  876. package/lib/esm/render/webgl/MeshGeometry.js +55 -0
  877. package/lib/esm/render/webgl/MeshGeometry.js.map +1 -0
  878. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  879. package/lib/esm/render/webgl/PlanarClassifier.js +9 -5
  880. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  881. package/lib/esm/render/webgl/PlanarGrid.d.ts +2 -3
  882. package/lib/esm/render/webgl/PlanarGrid.d.ts.map +1 -1
  883. package/lib/esm/render/webgl/PlanarGrid.js +3 -3
  884. package/lib/esm/render/webgl/PlanarGrid.js.map +1 -1
  885. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  886. package/lib/esm/render/webgl/PlanarTextureProjection.js +1 -0
  887. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  888. package/lib/esm/render/webgl/PointCloud.d.ts +2 -2
  889. package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
  890. package/lib/esm/render/webgl/PointCloud.js +2 -2
  891. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  892. package/lib/esm/render/webgl/PointString.d.ts +3 -3
  893. package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
  894. package/lib/esm/render/webgl/PointString.js +1 -1
  895. package/lib/esm/render/webgl/PointString.js.map +1 -1
  896. package/lib/esm/render/webgl/Polyline.d.ts +3 -3
  897. package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
  898. package/lib/esm/render/webgl/Polyline.js +6 -6
  899. package/lib/esm/render/webgl/Polyline.js.map +1 -1
  900. package/lib/esm/render/webgl/Primitive.d.ts +2 -2
  901. package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
  902. package/lib/esm/render/webgl/Primitive.js +5 -5
  903. package/lib/esm/render/webgl/Primitive.js.map +1 -1
  904. package/lib/esm/render/webgl/RealityMesh.d.ts +2 -2
  905. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  906. package/lib/esm/render/webgl/RealityMesh.js +9 -9
  907. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  908. package/lib/esm/render/webgl/RenderCommands.d.ts +6 -2
  909. package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
  910. package/lib/esm/render/webgl/RenderCommands.js +78 -45
  911. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  912. package/lib/esm/render/webgl/RenderFlags.d.ts +48 -1
  913. package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
  914. package/lib/esm/render/webgl/RenderFlags.js +63 -1
  915. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  916. package/lib/esm/render/webgl/SceneCompositor.js +10 -9
  917. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  918. package/lib/esm/render/webgl/ScreenSpaceEffect.js +1 -1
  919. package/lib/esm/render/webgl/ShaderBuilder.d.ts +23 -20
  920. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  921. package/lib/esm/render/webgl/ShaderBuilder.js +38 -32
  922. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  923. package/lib/esm/render/webgl/ShaderProgram.d.ts +1 -1
  924. package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
  925. package/lib/esm/render/webgl/ShaderProgram.js +4 -4
  926. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  927. package/lib/esm/render/webgl/SolarShadowMap.d.ts.map +1 -1
  928. package/lib/esm/render/webgl/SolarShadowMap.js +5 -4
  929. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  930. package/lib/esm/render/webgl/SurfaceGeometry.d.ts +54 -0
  931. package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -0
  932. package/lib/esm/render/webgl/SurfaceGeometry.js +243 -0
  933. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -0
  934. package/lib/esm/render/webgl/System.d.ts +13 -10
  935. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  936. package/lib/esm/render/webgl/System.js +77 -23
  937. package/lib/esm/render/webgl/System.js.map +1 -1
  938. package/lib/esm/render/webgl/Target.d.ts +13 -1
  939. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  940. package/lib/esm/render/webgl/Target.js +88 -2
  941. package/lib/esm/render/webgl/Target.js.map +1 -1
  942. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  943. package/lib/esm/render/webgl/Technique.js +112 -119
  944. package/lib/esm/render/webgl/Technique.js.map +1 -1
  945. package/lib/esm/render/webgl/TechniqueFlags.d.ts +7 -1
  946. package/lib/esm/render/webgl/TechniqueFlags.d.ts.map +1 -1
  947. package/lib/esm/render/webgl/TechniqueFlags.js +10 -1
  948. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  949. package/lib/esm/render/webgl/TechniqueId.d.ts +29 -28
  950. package/lib/esm/render/webgl/TechniqueId.d.ts.map +1 -1
  951. package/lib/esm/render/webgl/TechniqueId.js +7 -7
  952. package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
  953. package/lib/esm/render/webgl/Texture.d.ts +15 -12
  954. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  955. package/lib/esm/render/webgl/Texture.js +27 -24
  956. package/lib/esm/render/webgl/Texture.js.map +1 -1
  957. package/lib/esm/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  958. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +84 -19
  959. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  960. package/lib/esm/render/webgl/glsl/Animation.js +1 -1
  961. package/lib/esm/render/webgl/glsl/Blur.js +1 -1
  962. package/lib/esm/render/webgl/glsl/ClearPickAndColor.js +2 -2
  963. package/lib/esm/render/webgl/glsl/ClearTranslucent.js +2 -2
  964. package/lib/esm/render/webgl/glsl/Color.js +1 -1
  965. package/lib/esm/render/webgl/glsl/Combine3Textures.js +1 -1
  966. package/lib/esm/render/webgl/glsl/CombineTextures.js +1 -1
  967. package/lib/esm/render/webgl/glsl/Composite.js +1 -1
  968. package/lib/esm/render/webgl/glsl/CopyColor.d.ts.map +1 -1
  969. package/lib/esm/render/webgl/glsl/CopyColor.js +17 -2
  970. package/lib/esm/render/webgl/glsl/CopyColor.js.map +1 -1
  971. package/lib/esm/render/webgl/glsl/CopyPickBuffers.js +2 -2
  972. package/lib/esm/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
  973. package/lib/esm/render/webgl/glsl/CopyStencil.js +10 -13
  974. package/lib/esm/render/webgl/glsl/CopyStencil.js.map +1 -1
  975. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js +2 -2
  976. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  977. package/lib/esm/render/webgl/glsl/Edge.d.ts +2 -1
  978. package/lib/esm/render/webgl/glsl/Edge.d.ts.map +1 -1
  979. package/lib/esm/render/webgl/glsl/Edge.js +132 -14
  980. package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
  981. package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  982. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +44 -22
  983. package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  984. package/lib/esm/render/webgl/glsl/Fragment.d.ts.map +1 -1
  985. package/lib/esm/render/webgl/glsl/Fragment.js +19 -11
  986. package/lib/esm/render/webgl/glsl/Fragment.js.map +1 -1
  987. package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
  988. package/lib/esm/render/webgl/glsl/LookupTable.d.ts +4 -2
  989. package/lib/esm/render/webgl/glsl/LookupTable.d.ts.map +1 -1
  990. package/lib/esm/render/webgl/glsl/LookupTable.js +7 -3
  991. package/lib/esm/render/webgl/glsl/LookupTable.js.map +1 -1
  992. package/lib/esm/render/webgl/glsl/PlanarClassification.d.ts.map +1 -1
  993. package/lib/esm/render/webgl/glsl/PlanarClassification.js +13 -4
  994. package/lib/esm/render/webgl/glsl/PlanarClassification.js.map +1 -1
  995. package/lib/esm/render/webgl/glsl/PlanarGrid.js +2 -2
  996. package/lib/esm/render/webgl/glsl/PlanarGrid.js.map +1 -1
  997. package/lib/esm/render/webgl/glsl/PointCloud.js +2 -2
  998. package/lib/esm/render/webgl/glsl/PointCloud.js.map +1 -1
  999. package/lib/esm/render/webgl/glsl/PointString.js +1 -1
  1000. package/lib/esm/render/webgl/glsl/PointString.js.map +1 -1
  1001. package/lib/esm/render/webgl/glsl/Polyline.js +1 -1
  1002. package/lib/esm/render/webgl/glsl/Polyline.js.map +1 -1
  1003. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  1004. package/lib/esm/render/webgl/glsl/RealityMesh.js +9 -6
  1005. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  1006. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js +2 -2
  1007. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  1008. package/lib/esm/render/webgl/glsl/SkyBox.js +2 -2
  1009. package/lib/esm/render/webgl/glsl/SkyBox.js.map +1 -1
  1010. package/lib/esm/render/webgl/glsl/SkySphere.js +2 -2
  1011. package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
  1012. package/lib/esm/render/webgl/glsl/Surface.js +41 -16
  1013. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  1014. package/lib/esm/render/webgl/glsl/Translucency.js +2 -2
  1015. package/lib/esm/render/webgl/glsl/Vertex.js +3 -3
  1016. package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
  1017. package/lib/esm/render/webgl/glsl/ViewportQuad.js +1 -1
  1018. package/lib/esm/render/webgl/glsl/ViewportQuad.js.map +1 -1
  1019. package/lib/esm/render/webgl/glsl/Wiremesh.d.ts +9 -0
  1020. package/lib/esm/render/webgl/glsl/Wiremesh.d.ts.map +1 -0
  1021. package/lib/esm/render/webgl/glsl/Wiremesh.js +36 -0
  1022. package/lib/esm/render/webgl/glsl/Wiremesh.js.map +1 -0
  1023. package/lib/esm/render-primitives.d.ts +5 -1
  1024. package/lib/esm/render-primitives.d.ts.map +1 -1
  1025. package/lib/esm/render-primitives.js +5 -1
  1026. package/lib/esm/render-primitives.js.map +1 -1
  1027. package/lib/esm/request/Request.d.ts +167 -0
  1028. package/lib/esm/request/Request.d.ts.map +1 -0
  1029. package/lib/esm/request/Request.js +289 -0
  1030. package/lib/esm/request/Request.js.map +1 -0
  1031. package/lib/esm/tile/B3dmReader.d.ts +2 -1
  1032. package/lib/esm/tile/B3dmReader.d.ts.map +1 -1
  1033. package/lib/esm/tile/B3dmReader.js +12 -8
  1034. package/lib/esm/tile/B3dmReader.js.map +1 -1
  1035. package/lib/esm/tile/CesiumAssetProvider.d.ts +14 -0
  1036. package/lib/esm/tile/CesiumAssetProvider.d.ts.map +1 -0
  1037. package/lib/esm/tile/CesiumAssetProvider.js +31 -0
  1038. package/lib/esm/tile/CesiumAssetProvider.js.map +1 -0
  1039. package/lib/esm/tile/ContextShareProvider.d.ts +22 -0
  1040. package/lib/esm/tile/ContextShareProvider.d.ts.map +1 -0
  1041. package/lib/esm/tile/ContextShareProvider.js +125 -0
  1042. package/lib/esm/tile/ContextShareProvider.js.map +1 -0
  1043. package/lib/esm/tile/DynamicIModelTile.js +9 -3
  1044. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  1045. package/lib/esm/tile/GltfReader.d.ts +594 -55
  1046. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  1047. package/lib/esm/tile/GltfReader.js +678 -242
  1048. package/lib/esm/tile/GltfReader.js.map +1 -1
  1049. package/lib/esm/tile/I3dmReader.d.ts +2 -1
  1050. package/lib/esm/tile/I3dmReader.d.ts.map +1 -1
  1051. package/lib/esm/tile/I3dmReader.js +11 -7
  1052. package/lib/esm/tile/I3dmReader.js.map +1 -1
  1053. package/lib/esm/tile/IModelTile.d.ts.map +1 -1
  1054. package/lib/esm/tile/IModelTile.js +14 -7
  1055. package/lib/esm/tile/IModelTile.js.map +1 -1
  1056. package/lib/esm/tile/IModelTileTree.d.ts +8 -0
  1057. package/lib/esm/tile/IModelTileTree.d.ts.map +1 -1
  1058. package/lib/esm/tile/IModelTileTree.js +36 -1
  1059. package/lib/esm/tile/IModelTileTree.js.map +1 -1
  1060. package/lib/esm/tile/ImdlReader.d.ts +365 -10
  1061. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  1062. package/lib/esm/tile/ImdlReader.js +199 -66
  1063. package/lib/esm/tile/ImdlReader.js.map +1 -1
  1064. package/lib/esm/tile/OrbitGtTileTree.d.ts.map +1 -1
  1065. package/lib/esm/tile/OrbitGtTileTree.js +8 -5
  1066. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  1067. package/lib/esm/tile/PrimaryTileTree.d.ts +14 -5
  1068. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  1069. package/lib/esm/tile/PrimaryTileTree.js +70 -15
  1070. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  1071. package/lib/esm/tile/RealityModelTileTree.d.ts +3 -55
  1072. package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
  1073. package/lib/esm/tile/RealityModelTileTree.js +56 -230
  1074. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  1075. package/lib/esm/tile/RealityTileLoader.d.ts +1 -0
  1076. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  1077. package/lib/esm/tile/RealityTileLoader.js +4 -3
  1078. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  1079. package/lib/esm/tile/Tile.d.ts.map +1 -1
  1080. package/lib/esm/tile/Tile.js +5 -1
  1081. package/lib/esm/tile/Tile.js.map +1 -1
  1082. package/lib/esm/tile/TileAdmin.d.ts +37 -4
  1083. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  1084. package/lib/esm/tile/TileAdmin.js +19 -13
  1085. package/lib/esm/tile/TileAdmin.js.map +1 -1
  1086. package/lib/esm/tile/TileDrawArgs.d.ts +11 -0
  1087. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  1088. package/lib/esm/tile/TileDrawArgs.js +6 -1
  1089. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  1090. package/lib/esm/tile/TileTreeReference.d.ts +2 -0
  1091. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  1092. package/lib/esm/tile/TileTreeReference.js +5 -0
  1093. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  1094. package/lib/esm/tile/internal.d.ts +4 -1
  1095. package/lib/esm/tile/internal.d.ts.map +1 -1
  1096. package/lib/esm/tile/internal.js +4 -1
  1097. package/lib/esm/tile/internal.js.map +1 -1
  1098. package/lib/esm/tile/map/ArcGISTileMap.d.ts +22 -0
  1099. package/lib/esm/tile/map/ArcGISTileMap.d.ts.map +1 -0
  1100. package/lib/esm/tile/map/ArcGISTileMap.js +173 -0
  1101. package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -0
  1102. package/lib/esm/tile/map/ArcGisTokenGenerator.js +1 -1
  1103. package/lib/esm/tile/map/ArcGisTokenGenerator.js.map +1 -1
  1104. package/lib/esm/tile/map/ArcGisUtilities.d.ts +1 -1
  1105. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  1106. package/lib/esm/tile/map/ArcGisUtilities.js +14 -6
  1107. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  1108. package/lib/esm/tile/map/BingElevation.js +1 -1
  1109. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  1110. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  1111. package/lib/esm/tile/map/CesiumTerrainProvider.js +25 -13
  1112. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  1113. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -2
  1114. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  1115. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +21 -42
  1116. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  1117. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +2 -2
  1118. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  1119. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +8 -0
  1120. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  1121. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +51 -10
  1122. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  1123. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +6 -1
  1124. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  1125. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +63 -21
  1126. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  1127. package/lib/esm/tile/map/ImageryTileTree.d.ts +4 -4
  1128. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  1129. package/lib/esm/tile/map/ImageryTileTree.js +21 -25
  1130. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  1131. package/lib/esm/tile/map/MapCartoRectangle.js +1 -1
  1132. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  1133. package/lib/esm/tile/map/MapLayerAuthentication.d.ts +20 -0
  1134. package/lib/esm/tile/map/MapLayerAuthentication.d.ts.map +1 -0
  1135. package/lib/esm/tile/map/MapLayerAuthentication.js +15 -0
  1136. package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -0
  1137. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +6 -3
  1138. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  1139. package/lib/esm/tile/map/MapLayerFormatRegistry.js +3 -1
  1140. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  1141. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts +2 -2
  1142. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  1143. package/lib/esm/tile/map/MapLayerImageryFormats.js +22 -9
  1144. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  1145. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +18 -6
  1146. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  1147. package/lib/esm/tile/map/MapLayerImageryProvider.js +44 -11
  1148. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  1149. package/lib/esm/tile/map/MapLayerSources.d.ts +3 -11
  1150. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  1151. package/lib/esm/tile/map/MapLayerSources.js +7 -36
  1152. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  1153. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  1154. package/lib/esm/tile/map/MapTile.js +4 -3
  1155. package/lib/esm/tile/map/MapTile.js.map +1 -1
  1156. package/lib/esm/tile/map/MapTileLoader.js +1 -1
  1157. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  1158. package/lib/esm/tile/map/MapTileTree.d.ts +1 -1
  1159. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  1160. package/lib/esm/tile/map/MapTileTree.js +30 -21
  1161. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  1162. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts +3 -3
  1163. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  1164. package/lib/esm/tile/map/MapTiledGraphicsProvider.js +4 -6
  1165. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  1166. package/lib/esm/tile/map/MapTilingScheme.d.ts +7 -2
  1167. package/lib/esm/tile/map/MapTilingScheme.d.ts.map +1 -1
  1168. package/lib/esm/tile/map/MapTilingScheme.js +22 -9
  1169. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  1170. package/lib/esm/tile/map/QuadId.d.ts +1 -0
  1171. package/lib/esm/tile/map/QuadId.d.ts.map +1 -1
  1172. package/lib/esm/tile/map/QuadId.js +2 -1
  1173. package/lib/esm/tile/map/QuadId.js.map +1 -1
  1174. package/lib/esm/tile/map/TerrainMeshProvider.d.ts +1 -1
  1175. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  1176. package/lib/esm/tile/map/WmsCapabilities.d.ts +8 -1
  1177. package/lib/esm/tile/map/WmsCapabilities.d.ts.map +1 -1
  1178. package/lib/esm/tile/map/WmsCapabilities.js +37 -3
  1179. package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
  1180. package/lib/esm/tile/map/WmtsCapabilities.d.ts +11 -1
  1181. package/lib/esm/tile/map/WmtsCapabilities.d.ts.map +1 -1
  1182. package/lib/esm/tile/map/WmtsCapabilities.js +20 -6
  1183. package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
  1184. package/lib/esm/tools/EditManipulator.d.ts.map +1 -1
  1185. package/lib/esm/tools/EditManipulator.js +1 -1
  1186. package/lib/esm/tools/EditManipulator.js.map +1 -1
  1187. package/lib/esm/tools/ElementSetTool.js +2 -2
  1188. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  1189. package/lib/esm/tools/PrimitiveTool.d.ts +4 -4
  1190. package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
  1191. package/lib/esm/tools/PrimitiveTool.js +2 -2
  1192. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  1193. package/lib/esm/tools/Tool.d.ts +29 -1
  1194. package/lib/esm/tools/Tool.d.ts.map +1 -1
  1195. package/lib/esm/tools/Tool.js +66 -0
  1196. package/lib/esm/tools/Tool.js.map +1 -1
  1197. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  1198. package/lib/esm/tools/ToolAdmin.js +20 -10
  1199. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  1200. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  1201. package/lib/esm/tools/ViewTool.js +3 -11
  1202. package/lib/esm/tools/ViewTool.js.map +1 -1
  1203. package/lib/esm/webgl.d.ts +5 -0
  1204. package/lib/esm/webgl.d.ts.map +1 -1
  1205. package/lib/esm/webgl.js +5 -0
  1206. package/lib/esm/webgl.js.map +1 -1
  1207. package/lib/public/locales/en/iModelJs.json +3 -1
  1208. package/package.json +33 -28
  1209. package/lib/cjs/RealityDataAccessProps.d.ts +0 -42
  1210. package/lib/cjs/RealityDataAccessProps.d.ts.map +0 -1
  1211. package/lib/cjs/RealityDataAccessProps.js +0 -23
  1212. package/lib/cjs/RealityDataAccessProps.js.map +0 -1
  1213. package/lib/cjs/RealityDataConnection.d.ts +0 -31
  1214. package/lib/cjs/RealityDataConnection.d.ts.map +0 -1
  1215. package/lib/cjs/RealityDataConnection.js +0 -101
  1216. package/lib/cjs/RealityDataConnection.js.map +0 -1
  1217. package/lib/cjs/tile/map/MapLayerSettingsService.d.ts +0 -39
  1218. package/lib/cjs/tile/map/MapLayerSettingsService.d.ts.map +0 -1
  1219. package/lib/cjs/tile/map/MapLayerSettingsService.js +0 -190
  1220. package/lib/cjs/tile/map/MapLayerSettingsService.js.map +0 -1
  1221. package/lib/esm/RealityDataAccessProps.d.ts +0 -42
  1222. package/lib/esm/RealityDataAccessProps.d.ts.map +0 -1
  1223. package/lib/esm/RealityDataAccessProps.js +0 -20
  1224. package/lib/esm/RealityDataAccessProps.js.map +0 -1
  1225. package/lib/esm/RealityDataConnection.d.ts +0 -31
  1226. package/lib/esm/RealityDataConnection.d.ts.map +0 -1
  1227. package/lib/esm/RealityDataConnection.js +0 -98
  1228. package/lib/esm/RealityDataConnection.js.map +0 -1
  1229. package/lib/esm/tile/map/MapLayerSettingsService.d.ts +0 -39
  1230. package/lib/esm/tile/map/MapLayerSettingsService.d.ts.map +0 -1
  1231. package/lib/esm/tile/map/MapLayerSettingsService.js +0 -186
  1232. package/lib/esm/tile/map/MapLayerSettingsService.js.map +0 -1
@@ -15,7 +15,6 @@ const ImageUtil_1 = require("../../ImageUtil");
15
15
  const IModelApp_1 = require("../../IModelApp");
16
16
  const IModelConnection_1 = require("../../IModelConnection");
17
17
  const GeometryListBuilder_1 = require("../primitives/geometry/GeometryListBuilder");
18
- const RenderTexture_1 = require("../RenderTexture");
19
18
  const RenderSystem_1 = require("../RenderSystem");
20
19
  const BackgroundMapDrape_1 = require("./BackgroundMapDrape");
21
20
  const CachedGeometry_1 = require("./CachedGeometry");
@@ -130,10 +129,16 @@ class IdMap {
130
129
  if (material.key)
131
130
  this.materials.set(material.key, material);
132
131
  }
133
- /** Add a texture to this IdMap, given that it has a valid key. */
134
- addTexture(texture) {
132
+ /** Add a texture to this IdMap, given that it has a valid string key. If specified, it will instead use the key parameter, which could also be a gradient symb. */
133
+ addTexture(texture, key) {
135
134
  (0, core_bentley_1.assert)(texture instanceof Texture_1.Texture);
136
- if (texture.key)
135
+ if (undefined !== key) {
136
+ if ("string" === typeof key)
137
+ this.textures.set(key, texture);
138
+ else
139
+ this.addGradient(key, texture);
140
+ }
141
+ else if (texture.key)
137
142
  this.textures.set(texture.key, texture);
138
143
  }
139
144
  /** Add a texture to this IdMap using gradient symbology. */
@@ -149,6 +154,7 @@ class IdMap {
149
154
  return this.gradients.get(symb);
150
155
  }
151
156
  /** Find or create a new material given material parameters. This will cache the material if its key is valid. */
157
+ // eslint-disable-next-line deprecation/deprecation
152
158
  getMaterial(params) {
153
159
  if (!params.key || !core_bentley_1.Id64.isValidId64(params.key)) // Only cache persistent materials.
154
160
  return new Material_1.Material(params);
@@ -172,10 +178,16 @@ class IdMap {
172
178
  let tex = this.findTexture(params.key);
173
179
  if (tex)
174
180
  return tex;
175
- const handle = Texture_1.TextureHandle.createForElement(key, iModel, params.type, format);
181
+ const handle = Texture_1.TextureHandle.createForElement(key, iModel, params.type, format, (_, data) => {
182
+ var _a;
183
+ if (tex) {
184
+ (0, core_bentley_1.assert)(tex instanceof Texture_1.Texture);
185
+ tex.transparency = (_a = data.transparency) !== null && _a !== void 0 ? _a : core_common_1.TextureTransparency.Mixed;
186
+ }
187
+ });
176
188
  if (!handle)
177
189
  return undefined;
178
- tex = new Texture_1.Texture({ handle, type: params.type, ownership: { key, iModel } });
190
+ tex = new Texture_1.Texture({ handle, type: params.type, ownership: { key, iModel }, transparency: core_common_1.TextureTransparency.Opaque });
179
191
  this.addTexture(tex);
180
192
  return tex;
181
193
  }
@@ -194,7 +206,7 @@ class IdMap {
194
206
  async createTextureFromImageSource(args, key) {
195
207
  var _a;
196
208
  // JPEGs don't support transparency.
197
- const transparency = core_common_1.ImageSourceFormat.Jpeg === args.source.format ? RenderTexture_1.TextureTransparency.Opaque : ((_a = args.transparency) !== null && _a !== void 0 ? _a : RenderTexture_1.TextureTransparency.Translucent);
209
+ const transparency = core_common_1.ImageSourceFormat.Jpeg === args.source.format ? core_common_1.TextureTransparency.Opaque : ((_a = args.transparency) !== null && _a !== void 0 ? _a : core_common_1.TextureTransparency.Mixed);
198
210
  try {
199
211
  const image = await (0, ImageUtil_1.imageElementFromImageSource)(args.source);
200
212
  if (!IModelApp_1.IModelApp.hasRenderSystem)
@@ -224,7 +236,7 @@ class IdMap {
224
236
  if (!handle)
225
237
  return undefined;
226
238
  const ownership = params.key ? { key: params.key, iModel: this._iModel } : (params.isOwned ? "external" : undefined);
227
- tex = new Texture_1.Texture({ handle, ownership, type: params.type });
239
+ tex = new Texture_1.Texture({ handle, ownership, type: params.type, transparency: core_common_1.TextureTransparency.Opaque });
228
240
  this.addTexture(tex);
229
241
  return tex;
230
242
  }
@@ -238,6 +250,11 @@ class IdMap {
238
250
  }
239
251
  }
240
252
  exports.IdMap = IdMap;
253
+ function getMaterialColor(color) {
254
+ if (color instanceof core_common_1.ColorDef)
255
+ return color;
256
+ return color ? core_common_1.ColorDef.from(color.r, color.g, color.b) : undefined;
257
+ }
241
258
  /** @internal */
242
259
  class System extends RenderSystem_1.RenderSystem {
243
260
  constructor(canvas, context, capabilities, options) {
@@ -257,7 +274,6 @@ class System extends RenderSystem_1.RenderSystem {
257
274
  0 /* Disabled */, 0 /* Disabled */, 0 /* Disabled */, 0 /* Disabled */,
258
275
  ];
259
276
  this.debugShaderFiles = [];
260
- this._drawSurfacesAsWiremesh = false;
261
277
  this.canvas = canvas;
262
278
  this.context = context;
263
279
  this.capabilities = capabilities;
@@ -289,6 +305,8 @@ class System extends RenderSystem_1.RenderSystem {
289
305
  get maxTextureSize() { return this.capabilities.maxTextureSize; }
290
306
  get supportsInstancing() { return this.capabilities.supportsInstancing; }
291
307
  get supportsNonuniformScaledInstancing() { return this.capabilities.isWebGL2; }
308
+ /** Requires gl_VertexID (WebGL 2 only) and > 8 texture units (WebGL 1 only guarantees 8). */
309
+ get supportsIndexedEdges() { return this.isWebGL2; }
292
310
  get isWebGL2() { return this.capabilities.isWebGL2; }
293
311
  get isMobile() { return this.capabilities.isMobile; }
294
312
  setDrawBuffers(attachments) { this._extensions.setDrawBuffers(attachments); }
@@ -433,6 +451,9 @@ class System extends RenderSystem_1.RenderSystem {
433
451
  createGraphicBranch(branch, transform, options) {
434
452
  return new Graphic_1.Branch(branch, transform, undefined, options);
435
453
  }
454
+ createAnimationTransformNode(graphic, nodeId) {
455
+ return new Graphic_1.AnimationTransformBranch(graphic, nodeId);
456
+ }
436
457
  createBatch(graphic, features, range, options) {
437
458
  return new Graphic_1.Batch(graphic, features, range, options);
438
459
  }
@@ -446,9 +467,8 @@ class System extends RenderSystem_1.RenderSystem {
446
467
  return new Layer_1.LayerContainer(graphic, drawAsOverlay, transparency, elevation);
447
468
  }
448
469
  createSkyBox(params) {
449
- if (undefined !== params.cube)
450
- return Primitive_1.SkyCubePrimitive.create(CachedGeometry_1.SkyBoxQuadsGeometry.create(params.cube));
451
- (0, core_bentley_1.assert)(undefined !== params.sphere || undefined !== params.gradient);
470
+ if ("cube" === params.type)
471
+ return Primitive_1.SkyCubePrimitive.create(CachedGeometry_1.SkyBoxQuadsGeometry.create(params.texture));
452
472
  return Primitive_1.SkySpherePrimitive.create(CachedGeometry_1.SkySphereViewportQuadGeometry.createGeometry(params));
453
473
  }
454
474
  createScreenSpaceEffectBuilder(params) {
@@ -506,11 +526,48 @@ class System extends RenderSystem_1.RenderSystem {
506
526
  this.resourceCache.delete(imodel);
507
527
  }
508
528
  /** Attempt to create a material for the given iModel using a set of material parameters. */
529
+ // eslint-disable-next-line deprecation/deprecation
509
530
  createMaterial(params, imodel) {
510
531
  const idMap = this.getIdMap(imodel);
511
532
  const material = idMap.getMaterial(params);
512
533
  return material;
513
534
  }
535
+ createRenderMaterial(args) {
536
+ var _a, _b, _c;
537
+ if (args.source) {
538
+ const cached = this.findMaterial(args.source.id, args.source.iModel);
539
+ if (cached)
540
+ return cached;
541
+ }
542
+ // eslint-disable-next-line deprecation/deprecation
543
+ const params = new core_common_1.RenderMaterial.Params();
544
+ params.alpha = args.alpha;
545
+ if (undefined !== ((_a = args.diffuse) === null || _a === void 0 ? void 0 : _a.weight))
546
+ params.diffuse = args.diffuse.weight;
547
+ params.diffuseColor = getMaterialColor((_b = args.diffuse) === null || _b === void 0 ? void 0 : _b.color);
548
+ if (args.specular) {
549
+ params.specularColor = getMaterialColor((_c = args.specular) === null || _c === void 0 ? void 0 : _c.color);
550
+ if (undefined !== args.specular.weight)
551
+ params.specular = args.specular.weight;
552
+ if (undefined !== args.specular.exponent)
553
+ params.specularExponent = args.specular.exponent;
554
+ }
555
+ if (args.textureMapping) {
556
+ params.textureMapping = new core_common_1.TextureMapping(args.textureMapping.texture, new core_common_1.TextureMapping.Params({
557
+ textureMat2x3: args.textureMapping.transform,
558
+ mapMode: args.textureMapping.mode,
559
+ textureWeight: args.textureMapping.weight,
560
+ worldMapping: args.textureMapping.worldMapping,
561
+ }));
562
+ }
563
+ if (args.source) {
564
+ params.key = args.source.id;
565
+ return this.getIdMap(args.source.iModel).getMaterial(params);
566
+ }
567
+ else {
568
+ return new Material_1.Material(params);
569
+ }
570
+ }
514
571
  /** Using its key, search for an existing material of an open iModel. */
515
572
  findMaterial(key, imodel) {
516
573
  const idMap = this.resourceCache.get(imodel);
@@ -523,24 +580,23 @@ class System extends RenderSystem_1.RenderSystem {
523
580
  return owner ? { idMap: this.getIdMap(owner.iModel), key: owner.key } : undefined;
524
581
  }
525
582
  createTexture(args) {
526
- var _a;
583
+ var _a, _b;
527
584
  const info = this.getTextureCacheInfo(args);
528
585
  const existing = info === null || info === void 0 ? void 0 : info.idMap.findTexture(info === null || info === void 0 ? void 0 : info.key);
529
586
  if (existing)
530
587
  return existing;
531
588
  const type = (_a = args.type) !== null && _a !== void 0 ? _a : core_common_1.RenderTexture.Type.Normal;
532
589
  const source = args.image.source;
533
- // ###TODO createForImageBuffer should take args.transparency.
534
590
  let handle;
535
591
  if (source instanceof core_common_1.ImageBuffer)
536
- handle = Texture_1.TextureHandle.createForImageBuffer(source, type); // ###TODO use transparency from args
592
+ handle = Texture_1.TextureHandle.createForImageBuffer(source, type);
537
593
  else
538
- handle = Texture_1.TextureHandle.createForImage(source, RenderTexture_1.TextureTransparency.Opaque !== args.image.transparency, type);
594
+ handle = Texture_1.TextureHandle.createForImage(source, type);
539
595
  if (!handle)
540
596
  return undefined;
541
- const texture = new Texture_1.Texture({ handle, type, ownership: args.ownership });
597
+ const texture = new Texture_1.Texture({ handle, type, ownership: args.ownership, transparency: (_b = args.image.transparency) !== null && _b !== void 0 ? _b : core_common_1.TextureTransparency.Mixed });
542
598
  if (texture && info)
543
- info.idMap.addTexture(texture);
599
+ info.idMap.addTexture(texture, info.key);
544
600
  return texture;
545
601
  }
546
602
  async createTextureFromSource(args) {
@@ -562,7 +618,7 @@ class System extends RenderSystem_1.RenderSystem {
562
618
  return this.createTexture({
563
619
  image: {
564
620
  source,
565
- transparency: core_common_1.ImageBufferFormat.Rgba === source.format ? RenderTexture_1.TextureTransparency.Translucent : RenderTexture_1.TextureTransparency.Opaque,
621
+ transparency: core_common_1.ImageBufferFormat.Rgba === source.format ? core_common_1.TextureTransparency.Mixed : core_common_1.TextureTransparency.Opaque,
566
622
  },
567
623
  ownership: iModel ? { iModel, key: symb } : undefined,
568
624
  type: core_common_1.RenderTexture.Type.Normal,
@@ -676,8 +732,6 @@ class System extends RenderSystem_1.RenderSystem {
676
732
  }
677
733
  // RenderSystemDebugControl
678
734
  get debugControl() { return this; }
679
- get drawSurfacesAsWiremesh() { return this._drawSurfacesAsWiremesh; }
680
- set drawSurfacesAsWiremesh(asWiremesh) { this._drawSurfacesAsWiremesh = asWiremesh; }
681
735
  get dpiAwareLOD() { var _a; return (_a = this._dpiAwareLOD) !== null && _a !== void 0 ? _a : super.dpiAwareLOD; }
682
736
  set dpiAwareLOD(dpiAware) { this._dpiAwareLOD = dpiAware; }
683
737
  loseContext() {
@@ -1 +1 @@
1
- {"version":3,"file":"System.js","sourceRoot":"","sources":["../../../../src/render/webgl/System.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAAmG;AAEnG,oDAE4B;AAC5B,oEAAmF;AAEnF,+CAA8D;AAC9D,+CAA4C;AAC5C,6DAA0D;AAM1D,oFAA8E;AAQ9E,oDAAwH;AACxH,kDAEyB;AAGzB,6DAA0D;AAC1D,qDAAsF;AACtF,6CAA0C;AAC1C,2DAA+E;AAC/E,+CAAsC;AAEtC,+CAA8D;AAC9D,6BAA0B;AAC1B,uCAAoC;AACpC,uCAAgF;AAChF,mCAAgD;AAChD,yCAAsC;AACtC,yCAAsC;AACtC,iCAAyD;AACzD,6CAAkD;AAClD,+CAAoD;AACpD,yCAA8C;AAC9C,2CAA8E;AAC9E,iDAAuE;AACvE,+CAA4C;AAC5C,+CAA4C;AAC5C,2DAAyF;AACzF,qCAA2D;AAC3D,2CAAyC;AACzC,+CAAoD;AACpD,uCAA0E;AAE1E,6CAAkD;AAWlD;;GAEG;AACH,MAAe,eAAe;IAE5B,YAAmB,MAAc;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IACD,IAAW,MAAM,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;CAK7C;AAED;;GAEG;AACH,MAAM,gBAAiB,SAAQ,eAAe;IAI5C,YAAmB,MAAc,EAAE,cAA8C,EAAE,aAAiD;QAClI,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,qBAAqB,GAAG,cAAc,CAAC;QAC5C,IAAI,CAAC,oBAAoB,GAAG,aAAa,CAAC;IAC5C,CAAC;IAEM,cAAc,CAAC,WAAqB;QACzC,kJAAkJ;QAClJ,IAAI,SAAS,KAAK,IAAI,CAAC,qBAAqB;YAC1C,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC7D,CAAC;IAEM,mBAAmB,CAAC,KAAa,EAAE,OAAe;QACvD,IAAA,qBAAM,EAAC,SAAS,KAAK,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAChD,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAEM,cAAc,CAAC,IAAsB,EAAE,KAAa,EAAE,KAAa,EAAE,YAAoB;QAC9F,IAAI,SAAS,KAAK,IAAI,CAAC,oBAAoB,EAAE;YAC3C,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;SACtF;IACH,CAAC;IAEM,qBAAqB,CAAC,YAAsB,IAAU,CAAC,CAAC,2BAA2B;CAC3F;AAED;;GAEG;AACH,MAAM,gBAAiB,SAAQ,eAAe;IAE5C,YAAmB,MAAc;QAC/B,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAiC,CAAC;IAC3D,CAAC;IAEM,cAAc,CAAC,WAAqB;QACzC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAEM,mBAAmB,CAAC,KAAa,EAAE,OAAe;QACvD,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAEM,cAAc,CAAC,IAAsB,EAAE,KAAa,EAAE,KAAa,EAAE,YAAoB,IAAU,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAEzK,qBAAqB,CAAC,WAAqB;QAChD,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC9E,CAAC;CACF;AAED;;GAEG;AACH,MAAa,KAAK;IAWhB,YAAmB,MAAwB;QAT3C,gDAAgD;QAChC,cAAS,GAAG,IAAI,GAAG,EAA0B,CAAC;QAC9D,+CAA+C;QAC/B,aAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;QAC5D,oDAAoD;QACpC,cAAS,GAAG,IAAI,yBAAU,CAA+B,sBAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpG,mIAAmI;QACnH,6BAAwB,GAAG,IAAI,GAAG,EAA8C,CAAC;QAG/F,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC/D,CAAC;IAEM,OAAO;QACZ,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC;QAE1D,KAAK,MAAM,OAAO,IAAI,UAAU;YAC9B,IAAA,sBAAO,EAAC,OAAO,CAAC,CAAC;QAEnB,KAAK,MAAM,QAAQ,IAAI,WAAW;YAChC,IAAA,sBAAO,EAAC,QAAQ,CAAC,CAAC;QAEpB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,mEAAmE;IAC5D,WAAW,CAAC,QAAwB;QACzC,IAAI,QAAQ,CAAC,GAAG;YACd,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,kEAAkE;IAC3D,UAAU,CAAC,OAAsB;QACtC,IAAA,qBAAM,EAAC,OAAO,YAAY,iBAAO,CAAC,CAAC;QACnC,IAAI,OAAO,CAAC,GAAG;YACb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,4DAA4D;IACrD,WAAW,CAAC,YAA2B,EAAE,OAAsB;QACpE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,6EAA6E;IACtE,YAAY,CAAC,GAAW;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,4FAA4F;IACrF,YAAY,CAAC,IAAmB;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,iHAAiH;IAC1G,WAAW,CAAC,MAA6B;QAC9C,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAI,mCAAmC;YACrF,OAAO,IAAI,mBAAQ,CAAC,MAAM,CAAC,CAAC;QAE9B,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG,IAAI,mBAAQ,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;SAC1C;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,WAAW,CAAC,GAA4B;QAC7C,IAAI,SAAS,KAAK,GAAG;YACnB,OAAO,SAAS,CAAC;aACd,IAAI,OAAO,GAAG,KAAK,QAAQ;YAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;;YAE9B,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,mDAAmD;IAC5C,qBAAqB,CAAC,GAAe,EAAE,MAAwB,EAAE,MAA4B,EAAE,MAAyB;QAC7H,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,GAAG;YACL,OAAO,GAAG,CAAC;QAEb,MAAM,MAAM,GAAG,uBAAa,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAChF,IAAI,CAAC,MAAM;YACT,OAAO,SAAS,CAAC;QAEnB,GAAG,GAAG,IAAI,iBAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;IAEM,KAAK,CAAC,yBAAyB,CAAC,IAAiC,EAAE,GAAW;QACnF,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,OAAO;YACT,OAAO,OAAO,CAAC;QAEjB,wDAAwD;QACxD,IAAI,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,OAAO;YACT,OAAO,OAAO,CAAC;QAEjB,OAAO,GAAG,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,4BAA4B,CAAC,IAAiC,EAAE,GAAW;;QACtF,oCAAoC;QACpC,MAAM,YAAY,GAAG,+BAAiB,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,mCAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,YAAY,mCAAI,mCAAmB,CAAC,WAAW,CAAC,CAAC;QACzJ,IAAI;YACF,MAAM,KAAK,GAAG,MAAM,IAAA,uCAA2B,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7D,IAAI,CAAC,qBAAS,CAAC,eAAe;gBAC5B,OAAO,SAAS,CAAC;YAEnB,OAAO,qBAAS,CAAC,YAAY,CAAC,aAAa,CAAC;gBAC1C,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,KAAK,EAAE;oBACL,MAAM,EAAE,KAAK;oBACb,YAAY;iBACb;aACF,CAAC,CAAC;SACJ;QAAC,MAAM;YACN,OAAO,SAAS,CAAC;SAClB;gBAAS;YACR,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC3C;IACH,CAAC;IAED,mDAAmD;IAC5C,wBAAwB,CAAC,IAAsB,EAAE,IAAsB,EAAE,IAAsB,EAAE,IAAsB,EAAE,IAAsB,EAAE,IAAsB,EAAE,MAA4B;QAC1M,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,GAAG;YACL,OAAO,GAAG,CAAC;QAEb,MAAM,MAAM,GAAG,uBAAa,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrF,IAAI,CAAC,MAAM;YACT,OAAO,SAAS,CAAC;QAEnB,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACrH,GAAG,GAAG,IAAI,iBAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;IAEM,iBAAiB,CAAC,KAA8B;QACrD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC1C,IAAI,OAAO,YAAY,iBAAO;gBAC5B,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAExC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS;YACnC,IAAI,QAAQ,YAAY,iBAAO;gBAC7B,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;CACF;AAlKD,sBAkKC;AAgBD,gBAAgB;AAChB,MAAa,MAAO,SAAQ,2BAAY;IAoZtC,YAAsB,MAAyB,EAAE,OAAqB,EAAE,YAA0B,EAAE,OAA6B;QAC/H,KAAK,CAAC,OAAO,CAAC,CAAC;QAnZD,uBAAkB,GAAG,IAAI,yBAAW,EAAE,CAAC;QAEvC,qBAAgB,GAAG,IAAI,8BAAgB,EAAE,CAAC,CAAE,4CAA4C;QAKvF,qBAAgB,GAAqB,EAAE,CAAC;QAGzD,gHAAgH;QAC/F,2BAAsB,GAAwB;;;;SAI9D,CAAC;QACe,4BAAuB,GAAwB;;;;SAI/D,CAAC;QAOc,qBAAgB,GAAsB,EAAE,CAAC;QA2fjD,4BAAuB,GAAG,KAAK,CAAC;QAlItC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAA2B,CAAC;QACxD,IAAI,CAAC,OAAO,GAAG,iBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,YAAY,CAAC,QAAQ;YACvB,IAAI,CAAC,WAAW,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;aAC3C;YACH,MAAM,oBAAoB,GAAG,YAAY,CAAC,oBAAoB,CAAqB,oBAAoB,CAAC,CAAC;YACzG,MAAM,mBAAmB,GAAG,YAAY,CAAC,oBAAoB,CAAyB,wBAAwB,CAAC,CAAC;YAChH,IAAI,CAAC,WAAW,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;SAC1F;QAED,0EAA0E;QAC1E,IAAI,CAAC,oBAAoB,GAAG,mCAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;QAE3G,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE,CAAC,2BAAY,CAAC,kBAAkB,EAAE,EAAE,KAAK,CAAC,CAAC;IACpG,CAAC;IAxYM,MAAM,KAAK,QAAQ,KAAK,OAAO,qBAAS,CAAC,YAAsB,CAAC,CAAC,CAAC;IAEzE,IAAW,OAAO,KAAc,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;IACnE,IAAW,eAAe,KAAK,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC9D,IAAW,YAAY,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAExD,IAAW,UAAU;QACnB,IAAA,qBAAM,EAAC,SAAS,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAW,kBAAkB;QAC3B,IAAA,qBAAM,EAAC,SAAS,KAAK,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,IAAoB,cAAc,KAAa,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;IACzF,IAAoB,kBAAkB,KAAc,OAAO,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAClG,IAAoB,kCAAkC,KAAc,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxG,IAAW,QAAQ,KAAc,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrE,IAAoB,QAAQ,KAAc,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEvE,cAAc,CAAC,WAAqB,IAAU,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAE7F,UAAU;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;IACjD,CAAC;IAED,gIAAgI;IAChH,KAAK,CAAC,0BAA0B;QAC9C,MAAM,YAAY,GAAG,+BAAqB,CAAC,QAAQ,CAAC;QACpD,IAAI,YAAY,CAAC,iBAAiB,GAAG,CAAC,IAAI,YAAY,CAAC,kBAAkB,GAAG,CAAC;YAC3E,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,OAAY,EAAE,EAAE;YACjD,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE;gBACzC,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,sFAAsF;IAC/E,MAAM,CAAC,aAAa,CAAC,MAAyB,EAAE,SAAkB,EAAE,sBAA+C;QACxH,IAAI,iBAAiB,GAA2B,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAC;QACxF,IAAI,SAAS,KAAK,sBAAsB,EAAE;YACxC,gHAAgH;YAChH,iBAAiB,GAAG,EAAE,GAAG,iBAAiB,EAAE,GAAG,sBAAsB,EAAE,CAAC;SACzE;QAED,sDAAsD;QACtD,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,SAAS;YACX,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QAE3D,oCAAoC;QACpC,IAAI,IAAI,KAAK,OAAO;YAClB,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QAE1D,OAAO,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,SAAS,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,SAAgC;QACnD,MAAM,OAAO,GAAyB,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,IAAI,KAAK,MAAM;YACjB,MAAM,IAAI,yBAAW,CAAC,4BAAa,CAAC,KAAK,EAAE,oCAAoC,CAAC,CAAC;QAEnF,MAAM,SAAS,GAAG,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,iBAAiB,CAAC,CAAC;QACpF,IAAI,SAAS,KAAK,OAAO,EAAE;YACzB,MAAM,IAAI,yBAAW,CAAC,4BAAa,CAAC,KAAK,EAAE,gCAAgC,CAAC,CAAC;SAC9E;QAED,MAAM,YAAY,GAAG,kCAAY,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC9E,IAAI,SAAS,KAAK,YAAY;YAC5B,MAAM,IAAI,yBAAW,CAAC,4BAAa,CAAC,KAAK,EAAE,6CAA6C,CAAC,CAAC;QAE5F,sDAAsD;QACtD,OAAO,CAAC,SAAS,CAAC,OAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAE,cAAc;QAExD,IAAI,CAAC,YAAY,CAAC,kBAAkB;YAClC,OAAO,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACtC,IAAI,CAAC,YAAY,CAAC,iBAAiB;YACjC,OAAO,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,gCAAgC,EAAE;YAClD,OAAO,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAClC,OAAO,CAAC,sBAAsB,GAAG,KAAK,CAAC;SACxC;QACD,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,SAAS,KAAK,IAAI,CAAC,WAAW;eAChC,SAAS,KAAK,IAAI,CAAC,gBAAgB;eACnC,SAAS,KAAK,IAAI,CAAC,aAAa;eAChC,SAAS,KAAK,IAAI,CAAC,mBAAmB,CAAC;IAC9C,CAAC;IAED,+HAA+H;IACxH,OAAO;QACZ,IAAI,CAAC,WAAW,GAAG,IAAA,sBAAO,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,mBAAmB,GAAG,IAAA,sBAAO,EAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC7D,IAAI,CAAC,gBAAgB,GAAG,IAAA,sBAAO,EAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACvD,IAAI,CAAC,aAAa,GAAG,IAAA,sBAAO,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEjD,8GAA8G;QAC9G,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAY,EAAE,EAAE;YAC1C,IAAA,sBAAO,EAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,SAAS,KAAK,IAAI,CAAC,oBAAoB,EAAE;YAC3C,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;SACvC;IACH,CAAC;IAEe,aAAa;QAC3B,IAAI,CAAC,WAAW,GAAG,sBAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnD,MAAM,QAAQ,GAAG,CAAC,CAAC;QACnB,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7G,IAAI,CAAC,aAAa,GAAG,uBAAa,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAE,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/I,IAAA,qBAAM,EAAC,SAAS,KAAK,IAAI,CAAC,aAAa,EAAE,kCAAkC,CAAC,CAAC;QAE7E,IAAI,CAAC,gBAAgB,GAAG,uBAAa,CAAC,aAAa,CAAC,mBAAQ,CAAC,IAAI,EAAE,mBAAQ,CAAC,KAAK,EAAE,IAAI,UAAU,CAAC,mBAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,OAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAE,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1L,IAAA,qBAAM,EAAC,SAAS,KAAK,IAAI,CAAC,gBAAgB,EAAE,qCAAqC,CAAC,CAAC;QAEnF,IAAI,CAAC,mBAAmB,GAAG,IAAI,sCAAkB,EAAE,CAAC;IACtD,CAAC;IAEM,YAAY,CAAC,MAAyB;QAC3C,OAAO,IAAI,uBAAc,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAEM,qBAAqB,CAAC,IAAc;QACzC,OAAO,IAAI,wBAAe,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAEM,aAAa,CAAC,OAAoE;QACvF,OAAO,IAAI,sCAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAEe,gBAAgB,CAAC,OAAgB,EAAE,IAAqB;QACtE,OAAO,+BAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAEe,4BAA4B,CAAC,WAAiC,EAAE,SAAqB;QACnG,OAAO,iCAAmB,CAAC,qBAAqB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC3E,CAAC;IAEe,wBAAwB,CAAC,eAAoC,EAAE,YAAgC,EAAE,MAA0B,EAAE,SAA+B,EAAE,eAAwB,EAAE,QAA2B;QACjO,OAAO,iCAAmB,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IAC9H,CAAC;IACe,iBAAiB,CAAC,WAAiC;QACjE,MAAM,IAAI,GAAG,iCAAmB,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,CAAC,CAAC,qBAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC;IAEe,kBAAkB,CAAC,MAAkB,EAAE,QAAkB;QACvE,OAAO,yBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IAEe,sBAAsB,CAAC,MAAsB,EAAE,QAAkB;QAC/E,OAAO,2BAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;IAEe,yBAAyB,CAAC,MAAyB,EAAE,QAAkB;QACrF,OAAO,iCAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAEe,iBAAiB,CAAC,MAA4B;QAC5D,OAAO,kCAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAEe,mBAAmB,CAAC,QAAwB,EAAE,SAAsD;QAClH,IAAI,CAAC,CAAC,QAAQ,YAAY,yBAAkB,CAAC,EAAE;YAC7C,IAAI,QAAQ,YAAY,2BAAgB,IAAI,QAAQ,YAAY,iCAAmB;gBACjF,OAAO,qBAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAE/C,IAAA,qBAAM,EAAC,KAAK,EAAE,uDAAuD,CAAC,CAAC;YACvE,OAAO,SAAS,CAAC;SAClB;QAED,IAAA,qBAAM,EAAC,CAAC,SAAS,IAAI,SAAS,YAAY,kCAAc,IAAI,IAAA,4CAAwB,EAAC,SAAS,CAAC,CAAC,CAAC;QACjG,OAAO,kBAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACjD,CAAC;IAEe,gBAAgB,CAAC,IAAoB;QACnD,OAAO,qBAAS,CAAC,MAAM,CAAC,IAAI,+BAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IAEM,iBAAiB,CAAC,UAA2B;QAClD,OAAO,IAAI,uBAAa,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAEM,mBAAmB,CAAC,MAAqB,EAAE,SAAoB,EAAE,OAA8B;QACpG,OAAO,IAAI,gBAAM,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAEM,WAAW,CAAC,OAAsB,EAAE,QAA4B,EAAE,KAA0B,EAAE,OAAsB;QACzH,OAAO,IAAI,eAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAEe,kBAAkB,CAAC,KAAoB;QACrD,OAAO,IAAI,sBAAY,CAAC,KAAgB,CAAC,CAAC;IAC5C,CAAC;IAEe,kBAAkB,CAAC,OAAsB,EAAE,OAAe;QACxE,OAAO,IAAI,aAAK,CAAC,OAAkB,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAEe,2BAA2B,CAAC,OAAsB,EAAE,aAAsB,EAAE,YAAoB,EAAE,SAAiB;QACjI,OAAO,IAAI,sBAAc,CAAC,OAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IACxF,CAAC;IAEe,YAAY,CAAC,MAA2B;QACtD,IAAI,SAAS,KAAK,MAAM,CAAC,IAAI;YAC3B,OAAO,4BAAgB,CAAC,MAAM,CAAC,oCAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1E,IAAA,qBAAM,EAAC,SAAS,KAAK,MAAM,CAAC,MAAM,IAAI,SAAS,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrE,OAAO,8BAAkB,CAAC,MAAM,CAAC,8CAA6B,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IACzF,CAAC;IAEe,8BAA8B,CAAC,MAAsC;QACnF,OAAO,IAAA,kDAA8B,EAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAEM,gBAAgB,CAAC,QAAqB;QAC3C,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACxC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAEM,iBAAiB,CAAC,KAAa,EAAE,MAAc,EAAE,aAAqB,CAAC;QAC5E,+GAA+G;QAC/G,QAAQ,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;YACtC,KAAK,+BAAS,CAAC,2BAA2B,CAAC,CAAC;gBAC1C,OAAO,2BAAY,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aAC3C;YACD,KAAK,+BAAS,CAAC,oBAAoB,CAAC,CAAC;gBACnC,OAAO,uBAAa,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAE,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,OAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;aAC5H;YACD,KAAK,+BAAS,CAAC,4BAA4B,CAAC,CAAC;gBAC3C,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;oBAC9B,IAAI,UAAU,GAAG,CAAC,EAAE;wBAClB,OAAO,sCAAuB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,sBAAsB,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;qBAC3G;yBAAM;wBACL,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAiC,CAAC;wBACxD,OAAO,uBAAa,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAE,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;qBACrH;iBACF;qBAAM;oBACL,MAAM,KAAK,GAAoC,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAsB,qBAAqB,CAAC,CAAC;oBAClI,OAAO,uBAAa,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAE,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,KAAM,CAAC,uBAAuB,CAAC,CAAC;iBACzH;aACF;YACD,OAAO,CAAC,CAAC;gBACP,IAAA,qBAAM,EAAC,KAAK,CAAC,CAAC;gBACd,OAAO,SAAS,CAAC;aAClB;SACF;IACH,CAAC;IAED,sGAAsG;IAC/F,eAAe,CAAC,MAAwB;QAC7C,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE;YACV,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;YAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;SACvC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kFAAkF;IAC1E,eAAe,CAAC,MAAwB;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,KAAK,KAAK,SAAS;YACrB,OAAO;QACT,IAAA,sBAAO,EAAC,KAAK,CAAC,CAAC;QACf,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,4FAA4F;IAC5E,cAAc,CAAC,MAA6B,EAAE,MAAwB;QACpF,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,wEAAwE;IACxD,YAAY,CAAC,GAAW,EAAE,MAAwB;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK;YACR,OAAO,SAAS,CAAC;QACnB,OAAO,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAEO,mBAAmB,CAAC,IAAuB;QACjD,MAAM,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACzG,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,CAAC;IAEe,aAAa,CAAC,IAAuB;;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAC,WAAW,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAC,CAAC;QACpD,IAAI,QAAQ;YACV,OAAO,QAAQ,CAAC;QAElB,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,IAAI,mCAAI,2BAAa,CAAC,IAAI,CAAC,MAAM,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAEjC,8DAA8D;QAC9D,IAAI,MAAM,CAAC;QACX,IAAI,MAAM,YAAY,yBAAW;YAC/B,MAAM,GAAG,uBAAa,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,qCAAqC;;YAEhG,MAAM,GAAG,uBAAa,CAAC,cAAc,CAAC,MAAM,EAAE,mCAAmB,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAE9G,IAAI,CAAC,MAAM;YACT,OAAO,SAAS,CAAC;QAEnB,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACzE,IAAI,OAAO,IAAI,IAAI;YACjB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEjC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEe,KAAK,CAAC,uBAAuB,CAAC,IAAiC;QAC7E,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;YACpC,OAAO,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAE7C,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAClG,CAAC;IAED,mDAAmD;IACnC,wBAAwB,CAAC,EAAc,EAAE,MAAwB,EAAE,MAA4B,EAAE,MAAyB;QACxI,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACjF,CAAC;IAED,mDAAmD;IACnC,2BAA2B,CAAC,IAAsB,EAAE,IAAsB,EAAE,IAAsB,EAAE,IAAsB,EAAE,IAAsB,EAAE,IAAsB,EAAE,MAAwB,EAAE,MAA4B;QAChP,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACpG,CAAC;IAED,4DAA4D;IAC5C,kBAAkB,CAAC,IAAmB,EAAE,MAAyB;QAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,aAAa,CAAC;YACxB,KAAK,EAAE;gBACL,MAAM;gBACN,YAAY,EAAE,+BAAiB,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,mCAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,mCAAmB,CAAC,MAAM;aACtH;YACD,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;YACrD,IAAI,EAAE,2BAAa,CAAC,IAAI,CAAC,MAAM;SAChC,CAAC,CAAC;IACL,CAAC;IAED,uEAAuE;IACvD,WAAW,CAAC,GAAoB,EAAE,MAAwB;QACxE,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK;YACR,OAAO,SAAS,CAAC;QAEnB,OAAO,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAEe,gBAAgB,CAAC,UAAsB;QACrD,OAAO,uBAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IACe,wBAAwB,CAAC,UAA6B,EAAE,OAA6B;QACnG,OAAO,uCAAkB,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAuBD,kCAAkC;IAC3B,QAAQ,CAAC,MAAwB;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAO,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IAEO,WAAW,CAAC,IAAiB,EAAE,MAAyB,EAAE,OAAuB,EAAE,UAAmB;QAC5G,MAAM,KAAK,GAAG,IAAI,GAAG,yBAAW,CAAC,IAAI,CAAC;QACtC,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE;YAC5C,IAAI,UAAU;gBACZ,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAEnC,OAAO;SACR;QAED,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3E,CAAC;IAED,wGAAwG;IACjG,aAAa,CAAC,IAAiB,EAAE,OAAuB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACtI,wGAAwG;IACjG,kBAAkB,CAAC,IAAiB,EAAE,OAAuB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAE,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5I,iGAAiG;IAC1F,iBAAiB,CAAC,IAAiB,EAAE,OAAuB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACzI,iGAAiG;IAC1F,sBAAsB,CAAC,IAAiB,EAAE,OAAuB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAE,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAE/I,oFAAoF;IAC7E,kBAAkB,CAAC,OAAsB,EAAE,IAAiB;QACjE,IAAI,CAAC,eAAgB,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IACD,IAAoB,uBAAuB,KAAK,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtJ,cAAc,CAAC,OAAqB;QACzC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrD,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;gBACxC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;gBACrC,MAAM;aACP;SACF;IACH,CAAC;IAED,0EAA0E;IAC1E,kHAAkH;IAClH,qHAAqH;IAC9G,uBAAuB,CAAC,EAAU,EAAE,SAAkB;QAC3D,IAAA,qBAAM,EAAC,EAAE,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,+DAA+D,CAAC,CAAC;QAClH,IAAA,qBAAM,EAAC,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,+DAA+D,CAAC,CAAC;QAEjH,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,0BAAoC,CAAC,gBAA0B,CAAC;IAChH,CAAC;IAEM,wBAAwB;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,QAAQ,KAAK,QAAQ,EAAE;gBACzB,0CAA0C;gBAC1C,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,kBAA4B,QAAQ,CAAC,CAAC;gBAChE,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,kBAA4B,QAAQ,CAAC,CAAC;gBAChE,IAAI,UAAU,KAAK,UAAU,EAAE;oBAC7B,IAAI,UAAU,EAAE;wBACd,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;qBACpC;yBAAM;wBACL,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;qBACrC;iBACF;gBAED,uDAAuD;gBACvD,IAAI,UAAU,EAAE;oBACd,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,oBAA8B,QAAQ,CAAC,CAAC;oBACpE,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,oBAA8B,QAAQ,CAAC,CAAC;oBACpE,IAAI,YAAY,KAAK,YAAY,EAAE;wBACjC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACnD;iBACF;gBAED,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;aACnB;YAED,gEAAgE;YAChE,IAAI,CAAC,CAAC,CAAC,IAAI,gBAA0B,CAAC;SACvC;IACH,CAAC;IAEM,mBAAmB,CAAC,KAAa,EAAE,OAAe,IAAI,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAE7G,UAAU,CAAC,IAAsB,EAAE,KAAa,EAAE,KAAa,EAAE,YAAoB;QAC1F,IAAI,CAAC,KAAK,YAAY,EAAE;YACtB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;SACnE;aAAM;YACL,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SAC7C;IACH,CAAC;IAEM,qBAAqB,CAAC,WAAqB,IAAU,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAElG,iBAAiB,CAAC,MAAyB;QACzD,mBAAK,CAAC,YAAY,GAAG,gCAAiB,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,gCAAiB,CAAC,WAAW,CAAC,CAAC;QACzF,mBAAK,CAAC,eAAe,GAAG,gCAAiB,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,gCAAiB,CAAC,KAAK,CAAC,CAAC;IACxF,CAAC;IAED,2BAA2B;IAC3B,IAAoB,YAAY,KAA+B,OAAO,IAAI,CAAC,CAAC,CAAC;IAE7E,IAAW,sBAAsB,KAAK,OAAO,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC5E,IAAW,sBAAsB,CAAC,UAAmB,IAAI,IAAI,CAAC,uBAAuB,GAAG,UAAU,CAAC,CAAC,CAAC;IAGrG,IAAoB,WAAW,aAAc,OAAO,MAAA,IAAI,CAAC,YAAY,mCAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7F,IAAoB,WAAW,CAAC,QAAiB,IAAI,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC;IAE7E,WAAW;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAqB,oBAAoB,CAAC,CAAC;QAC7F,IAAI,SAAS,KAAK,GAAG;YACnB,OAAO,KAAK,CAAC;QAEf,GAAG,CAAC,WAAW,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,iBAAiB;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;IAC1C,CAAC;IAED,IAAW,kBAAkB,KAAc,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7E,IAAW,eAAe,CAAC,QAA2C;QACpE,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,QAAQ,CAAC;IAC1C,CAAC;IAEe,iBAAiB,CAAC,KAA8B;QAC9D,IAAI,SAAS,KAAK,IAAI,CAAC,gBAAgB;YACrC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEpD,IAAI,SAAS,KAAK,IAAI,CAAC,aAAa;YAClC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAEjD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YAC7C,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAEM,gBAAgB,CAAC,GAAuB;QAC7C,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;CACF;AAhkBD,wBAgkBC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, BentleyStatus, Dictionary, dispose, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { ClipVector, Point3d, Transform } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorDef, ElementAlignedBox3d, Frustum, Gradient, ImageBuffer, ImageBufferFormat, ImageSourceFormat, IModelError, PackedFeatureTable, RenderMaterial, RenderTexture,\r\n} from \"@itwin/core-common\";\r\nimport { Capabilities, DepthType, WebGLContext } from \"@itwin/webgl-compatibility\";\r\nimport { SkyBox } from \"../../DisplayStyleState\";\r\nimport { imageElementFromImageSource } from \"../../ImageUtil\";\r\nimport { IModelApp } from \"../../IModelApp\";\r\nimport { IModelConnection } from \"../../IModelConnection\";\r\nimport { MapTileTreeReference, TileTreeReference } from \"../../tile/internal\";\r\nimport { ViewRect } from \"../../ViewRect\";\r\nimport { GraphicBranch, GraphicBranchOptions } from \"../GraphicBranch\";\r\nimport { BatchOptions, CustomGraphicBuilderOptions, GraphicBuilder, ViewportGraphicBuilderOptions } from \"../GraphicBuilder\";\r\nimport { InstancedGraphicParams, PatternGraphicParams } from \"../InstancedGraphicParams\";\r\nimport { PrimitiveBuilder } from \"../primitives/geometry/GeometryListBuilder\";\r\nimport { RealityMeshPrimitive } from \"../primitives/mesh/RealityMeshPrimitive\";\r\nimport { TerrainMeshPrimitive } from \"../primitives/mesh/TerrainMeshPrimitive\";\r\nimport { PointCloudArgs } from \"../primitives/PointCloudPrimitive\";\r\nimport { MeshParams, PointStringParams, PolylineParams } from \"../primitives/VertexTable\";\r\nimport { RenderClipVolume } from \"../RenderClipVolume\";\r\nimport { RenderGraphic, RenderGraphicOwner } from \"../RenderGraphic\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { CreateTextureArgs, CreateTextureFromSourceArgs, TextureCacheKey, TextureTransparency } from \"../RenderTexture\";\r\nimport {\r\n DebugShaderFile, GLTimerResultCallback, PlanarGridProps, RenderAreaPattern, RenderDiagnostics, RenderGeometry, RenderSystem, RenderSystemDebugControl, TerrainTexture,\r\n} from \"../RenderSystem\";\r\nimport { RenderTarget } from \"../RenderTarget\";\r\nimport { ScreenSpaceEffectBuilder, ScreenSpaceEffectBuilderParams } from \"../ScreenSpaceEffectBuilder\";\r\nimport { BackgroundMapDrape } from \"./BackgroundMapDrape\";\r\nimport { SkyBoxQuadsGeometry, SkySphereViewportQuadGeometry } from \"./CachedGeometry\";\r\nimport { ClipVolume } from \"./ClipVolume\";\r\nimport { isInstancedGraphicParams, PatternBuffers } from \"./InstancedGeometry\";\r\nimport { Debug } from \"./Diagnostics\";\r\nimport { WebGLDisposable } from \"./Disposable\";\r\nimport { DepthBuffer, FrameBufferStack } from \"./FrameBuffer\";\r\nimport { GL } from \"./GL\";\r\nimport { GLTimer } from \"./GLTimer\";\r\nimport { Batch, Branch, Graphic, GraphicOwner, GraphicsArray } from \"./Graphic\";\r\nimport { Layer, LayerContainer } from \"./Layer\";\r\nimport { LineCode } from \"./LineCode\";\r\nimport { Material } from \"./Material\";\r\nimport { MeshGraphic, MeshRenderGeometry } from \"./Mesh\";\r\nimport { PointCloudGeometry } from \"./PointCloud\";\r\nimport { PointStringGeometry } from \"./PointString\";\r\nimport { PolylineGeometry } from \"./Polyline\";\r\nimport { Primitive, SkyCubePrimitive, SkySpherePrimitive } from \"./Primitive\";\r\nimport { RenderBuffer, RenderBufferMultiSample } from \"./RenderBuffer\";\r\nimport { TextureUnit } from \"./RenderFlags\";\r\nimport { RenderState } from \"./RenderState\";\r\nimport { createScreenSpaceEffectBuilder, ScreenSpaceEffects } from \"./ScreenSpaceEffect\";\r\nimport { OffScreenTarget, OnScreenTarget } from \"./Target\";\r\nimport { Techniques } from \"./Technique\";\r\nimport { RealityMeshGeometry } from \"./RealityMesh\";\r\nimport { ExternalTextureLoader, Texture, TextureHandle } from \"./Texture\";\r\nimport { UniformHandle } from \"./UniformHandle\";\r\nimport { PlanarGridGeometry } from \"./PlanarGrid\";\r\n\r\n/* eslint-disable no-restricted-syntax */\r\n\r\n/** @internal */\r\nexport const enum ContextState {\r\n Uninitialized,\r\n Success,\r\n Error,\r\n}\r\n\r\n/** Describes WebGL extension methods.\r\n * @internal\r\n */\r\nabstract class WebGLExtensions {\r\n private _system: System;\r\n public constructor(system: System) {\r\n this._system = system;\r\n }\r\n public get system() { return this._system; }\r\n public abstract setDrawBuffers(attachments: GLenum[]): void;\r\n public abstract vertexAttribDivisor(index: number, divisor: number): void;\r\n public abstract drawArraysInst(type: GL.PrimitiveType, first: number, count: number, numInstances: number): void;\r\n public abstract invalidateFrameBuffer(_attachments: number[]): void;\r\n}\r\n\r\n/** Describes WebGL1 extension methods.\r\n * @internal\r\n */\r\nclass WebGL1Extensions extends WebGLExtensions {\r\n private readonly _drawBuffersExtension?: WEBGL_draw_buffers;\r\n private readonly _instancingExtension?: ANGLE_instanced_arrays;\r\n\r\n public constructor(system: System, drawBuffersExt: WEBGL_draw_buffers | undefined, instancingExt: ANGLE_instanced_arrays | undefined) {\r\n super(system);\r\n this._drawBuffersExtension = drawBuffersExt;\r\n this._instancingExtension = instancingExt;\r\n }\r\n\r\n public setDrawBuffers(attachments: GLenum[]): void {\r\n // NB: The WEBGL_draw_buffers member is not exported directly because that type name is not available in some contexts (e.g. test-imodel-service).\r\n if (undefined !== this._drawBuffersExtension)\r\n this._drawBuffersExtension.drawBuffersWEBGL(attachments);\r\n }\r\n\r\n public vertexAttribDivisor(index: number, divisor: number): void {\r\n assert(undefined !== this._instancingExtension);\r\n this._instancingExtension.vertexAttribDivisorANGLE(index, divisor);\r\n }\r\n\r\n public drawArraysInst(type: GL.PrimitiveType, first: number, count: number, numInstances: number): void {\r\n if (undefined !== this._instancingExtension) {\r\n this._instancingExtension.drawArraysInstancedANGLE(type, first, count, numInstances);\r\n }\r\n }\r\n\r\n public invalidateFrameBuffer(_attachments: number[]): void { } // does not exist in WebGL1\r\n}\r\n\r\n/** Describes WebGL2 extension methods.\r\n * @internal\r\n */\r\nclass WebGL2Extensions extends WebGLExtensions {\r\n private _context: WebGL2RenderingContext;\r\n public constructor(system: System) {\r\n super(system);\r\n this._context = system.context as WebGL2RenderingContext;\r\n }\r\n\r\n public setDrawBuffers(attachments: GLenum[]): void {\r\n this._context.drawBuffers(attachments);\r\n }\r\n\r\n public vertexAttribDivisor(index: number, divisor: number): void {\r\n this._context.vertexAttribDivisor(index, divisor);\r\n }\r\n\r\n public drawArraysInst(type: GL.PrimitiveType, first: number, count: number, numInstances: number): void { this._context.drawArraysInstanced(type, first, count, numInstances); }\r\n\r\n public invalidateFrameBuffer(attachments: number[]): void {\r\n this._context.invalidateFramebuffer(this._context.FRAMEBUFFER, attachments);\r\n }\r\n}\r\n\r\n/** Id map holds key value pairs for both materials and textures, useful for caching such objects.\r\n * @internal\r\n */\r\nexport class IdMap implements WebGLDisposable {\r\n private readonly _iModel: IModelConnection;\r\n /** Mapping of materials by their key values. */\r\n public readonly materials = new Map<string, RenderMaterial>();\r\n /** Mapping of textures by their key values. */\r\n public readonly textures = new Map<string, RenderTexture>();\r\n /** Mapping of textures using gradient symbology. */\r\n public readonly gradients = new Dictionary<Gradient.Symb, RenderTexture>(Gradient.Symb.compareSymb);\r\n /** Pending promises to create a texture from an ImageSource. This prevents us from decoding the same ImageSource multiple times */\r\n public readonly texturesFromImageSources = new Map<string, Promise<RenderTexture | undefined>>();\r\n\r\n public constructor(iModel: IModelConnection) {\r\n this._iModel = iModel;\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return 0 === this.textures.size && 0 === this.gradients.size;\r\n }\r\n\r\n public dispose() {\r\n const textureArr = Array.from(this.textures.values());\r\n const gradientArr = this.gradients.extractArrays().values;\r\n\r\n for (const texture of textureArr)\r\n dispose(texture);\r\n\r\n for (const gradient of gradientArr)\r\n dispose(gradient);\r\n\r\n this.textures.clear();\r\n this.gradients.clear();\r\n this.materials.clear();\r\n }\r\n\r\n /** Add a material to this IdMap, given that it has a valid key. */\r\n public addMaterial(material: RenderMaterial) {\r\n if (material.key)\r\n this.materials.set(material.key, material);\r\n }\r\n\r\n /** Add a texture to this IdMap, given that it has a valid key. */\r\n public addTexture(texture: RenderTexture) {\r\n assert(texture instanceof Texture);\r\n if (texture.key)\r\n this.textures.set(texture.key, texture);\r\n }\r\n\r\n /** Add a texture to this IdMap using gradient symbology. */\r\n public addGradient(gradientSymb: Gradient.Symb, texture: RenderTexture) {\r\n this.gradients.set(gradientSymb, texture);\r\n }\r\n\r\n /** Find a cached material using its key. If not found, returns undefined. */\r\n public findMaterial(key: string): RenderMaterial | undefined {\r\n return this.materials.get(key);\r\n }\r\n\r\n /** Find a cached gradient using the gradient symbology. If not found, returns undefined. */\r\n public findGradient(symb: Gradient.Symb): RenderTexture | undefined {\r\n return this.gradients.get(symb);\r\n }\r\n\r\n /** Find or create a new material given material parameters. This will cache the material if its key is valid. */\r\n public getMaterial(params: RenderMaterial.Params): RenderMaterial {\r\n if (!params.key || !Id64.isValidId64(params.key)) // Only cache persistent materials.\r\n return new Material(params);\r\n\r\n let material = this.materials.get(params.key);\r\n if (!material) {\r\n material = new Material(params);\r\n this.materials.set(params.key, material);\r\n }\r\n return material;\r\n }\r\n\r\n public findTexture(key?: string | Gradient.Symb): RenderTexture | undefined {\r\n if (undefined === key)\r\n return undefined;\r\n else if (typeof key === \"string\")\r\n return this.textures.get(key);\r\n else\r\n return this.findGradient(key);\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public getTextureFromElement(key: Id64String, iModel: IModelConnection, params: RenderTexture.Params, format: ImageSourceFormat): RenderTexture | undefined {\r\n let tex = this.findTexture(params.key);\r\n if (tex)\r\n return tex;\r\n\r\n const handle = TextureHandle.createForElement(key, iModel, params.type, format);\r\n if (!handle)\r\n return undefined;\r\n\r\n tex = new Texture({ handle, type: params.type, ownership: { key, iModel } });\r\n this.addTexture(tex);\r\n return tex;\r\n }\r\n\r\n public async getTextureFromImageSource(args: CreateTextureFromSourceArgs, key: string): Promise<RenderTexture | undefined> {\r\n const texture = this.findTexture(key);\r\n if (texture)\r\n return texture;\r\n\r\n // Are we already in the process of decoding this image?\r\n let promise = this.texturesFromImageSources.get(key);\r\n if (promise)\r\n return promise;\r\n\r\n promise = this.createTextureFromImageSource(args, key);\r\n this.texturesFromImageSources.set(key, promise);\r\n return promise;\r\n }\r\n\r\n public async createTextureFromImageSource(args: CreateTextureFromSourceArgs, key: string): Promise<RenderTexture | undefined> {\r\n // JPEGs don't support transparency.\r\n const transparency = ImageSourceFormat.Jpeg === args.source.format ? TextureTransparency.Opaque : (args.transparency ?? TextureTransparency.Translucent);\r\n try {\r\n const image = await imageElementFromImageSource(args.source);\r\n if (!IModelApp.hasRenderSystem)\r\n return undefined;\r\n\r\n return IModelApp.renderSystem.createTexture({\r\n type: args.type,\r\n ownership: args.ownership,\r\n image: {\r\n source: image,\r\n transparency,\r\n },\r\n });\r\n } catch {\r\n return undefined;\r\n } finally {\r\n this.texturesFromImageSources.delete(key);\r\n }\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public getTextureFromCubeImages(posX: HTMLImageElement, negX: HTMLImageElement, posY: HTMLImageElement, negY: HTMLImageElement, posZ: HTMLImageElement, negZ: HTMLImageElement, params: RenderTexture.Params): RenderTexture | undefined {\r\n let tex = this.findTexture(params.key);\r\n if (tex)\r\n return tex;\r\n\r\n const handle = TextureHandle.createForCubeImages(posX, negX, posY, negY, posZ, negZ);\r\n if (!handle)\r\n return undefined;\r\n\r\n const ownership = params.key ? { key: params.key, iModel: this._iModel } : (params.isOwned ? \"external\" : undefined);\r\n tex = new Texture({ handle, ownership, type: params.type });\r\n this.addTexture(tex);\r\n return tex;\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n for (const texture of this.textures.values())\r\n if (texture instanceof Texture)\r\n stats.addTexture(texture.bytesUsed);\r\n\r\n for (const gradient of this.gradients)\r\n if (gradient instanceof Texture)\r\n stats.addTexture(gradient.bytesUsed);\r\n }\r\n}\r\n\r\nexport type TextureBinding = WebGLTexture | undefined;\r\n\r\nconst enum VertexAttribState {\r\n Disabled = 0,\r\n Enabled = 1 << 0,\r\n Instanced = 1 << 2,\r\n InstancedEnabled = Instanced | Enabled,\r\n}\r\n\r\ninterface TextureCacheInfo {\r\n idMap: IdMap;\r\n key: TextureCacheKey;\r\n}\r\n\r\n/** @internal */\r\nexport class System extends RenderSystem implements RenderSystemDebugControl, RenderMemory.Consumer, WebGLDisposable {\r\n public readonly canvas: HTMLCanvasElement;\r\n public readonly currentRenderState = new RenderState();\r\n public readonly context: WebGLContext;\r\n public readonly frameBufferStack = new FrameBufferStack(); // frame buffers are not owned by the system\r\n public readonly capabilities: Capabilities;\r\n public readonly resourceCache: Map<IModelConnection, IdMap>;\r\n public readonly glTimer: GLTimer;\r\n private readonly _extensions: WebGLExtensions;\r\n private readonly _textureBindings: TextureBinding[] = [];\r\n private _removeEventListener?: () => void;\r\n\r\n // NB: Increase the size of these arrays when the maximum number of attributes used by any one shader increases.\r\n private readonly _curVertexAttribStates: VertexAttribState[] = [\r\n VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled,\r\n VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled,\r\n VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled,\r\n ];\r\n private readonly _nextVertexAttribStates: VertexAttribState[] = [\r\n VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled,\r\n VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled,\r\n VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled,\r\n ];\r\n\r\n // The following are initialized immediately after the System is constructed.\r\n private _lineCodeTexture?: TextureHandle;\r\n private _noiseTexture?: TextureHandle;\r\n private _techniques?: Techniques;\r\n private _screenSpaceEffects?: ScreenSpaceEffects;\r\n public readonly debugShaderFiles: DebugShaderFile[] = [];\r\n\r\n public static get instance() { return IModelApp.renderSystem as System; }\r\n\r\n public get isValid(): boolean { return this.canvas !== undefined; }\r\n public get lineCodeTexture() { return this._lineCodeTexture; }\r\n public get noiseTexture() { return this._noiseTexture; }\r\n\r\n public get techniques() {\r\n assert(undefined !== this._techniques);\r\n return this._techniques;\r\n }\r\n\r\n public get screenSpaceEffects() {\r\n assert(undefined !== this._screenSpaceEffects);\r\n return this._screenSpaceEffects;\r\n }\r\n\r\n public override get maxTextureSize(): number { return this.capabilities.maxTextureSize; }\r\n public override get supportsInstancing(): boolean { return this.capabilities.supportsInstancing; }\r\n public override get supportsNonuniformScaledInstancing(): boolean { return this.capabilities.isWebGL2; }\r\n public get isWebGL2(): boolean { return this.capabilities.isWebGL2; }\r\n public override get isMobile(): boolean { return this.capabilities.isMobile; }\r\n\r\n public setDrawBuffers(attachments: GLenum[]): void { this._extensions.setDrawBuffers(attachments); }\r\n\r\n public doIdleWork(): boolean {\r\n return this.techniques.idleCompileNextShader();\r\n }\r\n\r\n /** Return a Promise which when resolved indicates that all pending external textures have finished loading from the backend. */\r\n public override async waitForAllExternalTextures(): Promise<void> {\r\n const extTexLoader = ExternalTextureLoader.instance;\r\n if (extTexLoader.numActiveRequests < 1 && extTexLoader.numPendingRequests < 1)\r\n return Promise.resolve();\r\n const promise = new Promise<void>((resolve: any) => {\r\n extTexLoader.onTexturesLoaded.addOnce(() => {\r\n resolve();\r\n });\r\n });\r\n return promise;\r\n }\r\n\r\n /** Attempt to create a WebGLRenderingContext, returning undefined if unsuccessful. */\r\n public static createContext(canvas: HTMLCanvasElement, useWebGL2: boolean, inputContextAttributes?: WebGLContextAttributes): WebGLContext | undefined {\r\n let contextAttributes: WebGLContextAttributes = { powerPreference: \"high-performance\" };\r\n if (undefined !== inputContextAttributes) {\r\n // NOTE: Order matters with spread operator - if caller wants to override powerPreference, he should be able to.\r\n contextAttributes = { ...contextAttributes, ...inputContextAttributes };\r\n }\r\n\r\n // If requested, first try obtaining a WebGL2 context.\r\n let context = null;\r\n if (useWebGL2)\r\n context = canvas.getContext(\"webgl2\", contextAttributes);\r\n\r\n // Fall back to WebGL1 if necessary.\r\n if (null === context)\r\n context = canvas.getContext(\"webgl\", contextAttributes);\r\n\r\n return context ?? undefined;\r\n }\r\n\r\n public static create(optionsIn?: RenderSystem.Options): System {\r\n const options: RenderSystem.Options = undefined !== optionsIn ? optionsIn : {};\r\n const canvas = document.createElement(\"canvas\");\r\n if (null === canvas)\r\n throw new IModelError(BentleyStatus.ERROR, \"Failed to obtain HTMLCanvasElement\");\r\n\r\n const useWebGL2 = (undefined === options.useWebGL2 ? true : options.useWebGL2);\r\n const context = this.createContext(canvas, useWebGL2, optionsIn?.contextAttributes);\r\n if (undefined === context) {\r\n throw new IModelError(BentleyStatus.ERROR, \"Failed to obtain WebGL context\");\r\n }\r\n\r\n const capabilities = Capabilities.create(context, options.disabledExtensions);\r\n if (undefined === capabilities)\r\n throw new IModelError(BentleyStatus.ERROR, \"Failed to initialize rendering capabilities\");\r\n\r\n // set actual gl state to match desired state defaults\r\n context.depthFunc(GL.DepthFunc.Default); // LessOrEqual\r\n\r\n if (!capabilities.supportsShadowMaps)\r\n options.displaySolarShadows = false;\r\n if (!capabilities.supportsFragDepth)\r\n options.logarithmicDepthBuffer = false;\r\n if (!capabilities.supportsTextureFilterAnisotropic) {\r\n options.filterMapTextures = false;\r\n options.filterMapDrapeTextures = false;\r\n }\r\n return new this(canvas, context, capabilities, options);\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return undefined === this._techniques\r\n && undefined === this._lineCodeTexture\r\n && undefined === this._noiseTexture\r\n && undefined === this._screenSpaceEffects;\r\n }\r\n\r\n // Note: FrameBuffers inside of the FrameBufferStack are not owned by the System, and are only used as a central storage device\r\n public dispose() {\r\n this._techniques = dispose(this._techniques);\r\n this._screenSpaceEffects = dispose(this._screenSpaceEffects);\r\n this._lineCodeTexture = dispose(this._lineCodeTexture);\r\n this._noiseTexture = dispose(this._noiseTexture);\r\n\r\n // We must attempt to dispose of each idmap in the resourceCache (if idmap is already disposed, has no effect)\r\n this.resourceCache.forEach((idMap: IdMap) => {\r\n dispose(idMap);\r\n });\r\n\r\n this.resourceCache.clear();\r\n if (undefined !== this._removeEventListener) {\r\n this._removeEventListener();\r\n this._removeEventListener = undefined;\r\n }\r\n }\r\n\r\n public override onInitialized(): void {\r\n this._techniques = Techniques.create(this.context);\r\n\r\n const noiseDim = 4;\r\n const noiseArr = new Uint8Array([152, 235, 94, 173, 219, 215, 115, 176, 73, 205, 43, 201, 10, 81, 205, 198]);\r\n this._noiseTexture = TextureHandle.createForData(noiseDim, noiseDim, noiseArr, false, GL.Texture.WrapMode.Repeat, GL.Texture.Format.Luminance);\r\n assert(undefined !== this._noiseTexture, \"System.noiseTexture not created.\");\r\n\r\n this._lineCodeTexture = TextureHandle.createForData(LineCode.size, LineCode.count, new Uint8Array(LineCode.lineCodeData), false, GL.Texture.WrapMode.Repeat, GL.Texture.Format.Luminance);\r\n assert(undefined !== this._lineCodeTexture, \"System.lineCodeTexture not created.\");\r\n\r\n this._screenSpaceEffects = new ScreenSpaceEffects();\r\n }\r\n\r\n public createTarget(canvas: HTMLCanvasElement): RenderTarget {\r\n return new OnScreenTarget(canvas);\r\n }\r\n\r\n public createOffscreenTarget(rect: ViewRect): RenderTarget {\r\n return new OffScreenTarget(rect);\r\n }\r\n\r\n public createGraphic(options: CustomGraphicBuilderOptions | ViewportGraphicBuilderOptions): GraphicBuilder {\r\n return new PrimitiveBuilder(this, options);\r\n }\r\n\r\n public override createPlanarGrid(frustum: Frustum, grid: PlanarGridProps): RenderGraphic | undefined {\r\n return PlanarGridGeometry.create(frustum, grid, this);\r\n }\r\n\r\n public override createRealityMeshFromTerrain(terrainMesh: TerrainMeshPrimitive, transform?: Transform): RealityMeshGeometry | undefined {\r\n return RealityMeshGeometry.createFromTerrainMesh(terrainMesh, transform);\r\n }\r\n\r\n public override createRealityMeshGraphic(terrainGeometry: RealityMeshGeometry, featureTable: PackedFeatureTable, tileId: string | undefined, baseColor: ColorDef | undefined, baseTransparent: boolean, textures?: TerrainTexture[]): RenderGraphic | undefined {\r\n return RealityMeshGeometry.createGraphic(this, terrainGeometry, featureTable, tileId, baseColor, baseTransparent, textures);\r\n }\r\n public override createRealityMesh(realityMesh: RealityMeshPrimitive): RenderGraphic | undefined {\r\n const geom = RealityMeshGeometry.createFromRealityMesh(realityMesh);\r\n return geom ? Primitive.create(geom) : undefined;\r\n }\r\n\r\n public override createMeshGeometry(params: MeshParams, viOrigin?: Point3d): MeshRenderGeometry | undefined {\r\n return MeshRenderGeometry.create(params, viOrigin);\r\n }\r\n\r\n public override createPolylineGeometry(params: PolylineParams, viOrigin?: Point3d): PolylineGeometry | undefined {\r\n return PolylineGeometry.create(params, viOrigin);\r\n }\r\n\r\n public override createPointStringGeometry(params: PointStringParams, viOrigin?: Point3d): PointStringGeometry | undefined {\r\n return PointStringGeometry.create(params, viOrigin);\r\n }\r\n\r\n public override createAreaPattern(params: PatternGraphicParams): PatternBuffers | undefined {\r\n return PatternBuffers.create(params);\r\n }\r\n\r\n public override createRenderGraphic(geometry: RenderGeometry, instances?: InstancedGraphicParams | RenderAreaPattern): RenderGraphic | undefined {\r\n if (!(geometry instanceof MeshRenderGeometry)) {\r\n if (geometry instanceof PolylineGeometry || geometry instanceof PointStringGeometry)\r\n return Primitive.create(geometry, instances);\r\n\r\n assert(false, \"Invalid RenderGeometry for System.createRenderGraphic\");\r\n return undefined;\r\n }\r\n\r\n assert(!instances || instances instanceof PatternBuffers || isInstancedGraphicParams(instances));\r\n return MeshGraphic.create(geometry, instances);\r\n }\r\n\r\n public override createPointCloud(args: PointCloudArgs): RenderGraphic | undefined {\r\n return Primitive.create(new PointCloudGeometry(args));\r\n }\r\n\r\n public createGraphicList(primitives: RenderGraphic[]): RenderGraphic {\r\n return new GraphicsArray(primitives);\r\n }\r\n\r\n public createGraphicBranch(branch: GraphicBranch, transform: Transform, options?: GraphicBranchOptions): RenderGraphic {\r\n return new Branch(branch, transform, undefined, options);\r\n }\r\n\r\n public createBatch(graphic: RenderGraphic, features: PackedFeatureTable, range: ElementAlignedBox3d, options?: BatchOptions): RenderGraphic {\r\n return new Batch(graphic, features, range, options);\r\n }\r\n\r\n public override createGraphicOwner(owned: RenderGraphic): RenderGraphicOwner {\r\n return new GraphicOwner(owned as Graphic);\r\n }\r\n\r\n public override createGraphicLayer(graphic: RenderGraphic, layerId: string) {\r\n return new Layer(graphic as Graphic, layerId);\r\n }\r\n\r\n public override createGraphicLayerContainer(graphic: RenderGraphic, drawAsOverlay: boolean, transparency: number, elevation: number) {\r\n return new LayerContainer(graphic as Graphic, drawAsOverlay, transparency, elevation);\r\n }\r\n\r\n public override createSkyBox(params: SkyBox.CreateParams): RenderGraphic | undefined {\r\n if (undefined !== params.cube)\r\n return SkyCubePrimitive.create(SkyBoxQuadsGeometry.create(params.cube));\r\n\r\n assert(undefined !== params.sphere || undefined !== params.gradient);\r\n return SkySpherePrimitive.create(SkySphereViewportQuadGeometry.createGeometry(params));\r\n }\r\n\r\n public override createScreenSpaceEffectBuilder(params: ScreenSpaceEffectBuilderParams): ScreenSpaceEffectBuilder {\r\n return createScreenSpaceEffectBuilder(params);\r\n }\r\n\r\n public applyRenderState(newState: RenderState) {\r\n newState.apply(this.currentRenderState);\r\n this.currentRenderState.copyFrom(newState);\r\n }\r\n\r\n public createDepthBuffer(width: number, height: number, numSamples: number = 1): DepthBuffer | undefined {\r\n // Note: The buffer/texture created here have ownership passed to the caller (system will not dispose of these)\r\n switch (this.capabilities.maxDepthType) {\r\n case DepthType.RenderBufferUnsignedShort16: {\r\n return RenderBuffer.create(width, height);\r\n }\r\n case DepthType.TextureUnsignedInt32: {\r\n return TextureHandle.createForAttachment(width, height, GL.Texture.Format.DepthComponent, GL.Texture.DataType.UnsignedInt);\r\n }\r\n case DepthType.TextureUnsignedInt24Stencil8: {\r\n if (this.capabilities.isWebGL2) {\r\n if (numSamples > 1) {\r\n return RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.DEPTH24_STENCIL8, numSamples);\r\n } else {\r\n const context2 = this.context as WebGL2RenderingContext;\r\n return TextureHandle.createForAttachment(width, height, GL.Texture.Format.DepthStencil, context2.UNSIGNED_INT_24_8);\r\n }\r\n } else {\r\n const dtExt: WEBGL_depth_texture | undefined = this.capabilities.queryExtensionObject<WEBGL_depth_texture>(\"WEBGL_depth_texture\");\r\n return TextureHandle.createForAttachment(width, height, GL.Texture.Format.DepthStencil, dtExt!.UNSIGNED_INT_24_8_WEBGL);\r\n }\r\n }\r\n default: {\r\n assert(false);\r\n return undefined;\r\n }\r\n }\r\n }\r\n\r\n /** Returns the corresponding IdMap for an IModelConnection. Creates a new one if it doesn't exist. */\r\n public createIModelMap(imodel: IModelConnection): IdMap {\r\n let idMap = this.resourceCache.get(imodel);\r\n if (!idMap) {\r\n idMap = new IdMap(imodel);\r\n this.resourceCache.set(imodel, idMap);\r\n }\r\n return idMap;\r\n }\r\n\r\n /** Removes an IModelConnection-IdMap pairing from the system's resource cache. */\r\n private removeIModelMap(imodel: IModelConnection) {\r\n const idMap = this.resourceCache.get(imodel);\r\n if (idMap === undefined)\r\n return;\r\n dispose(idMap);\r\n this.resourceCache.delete(imodel);\r\n }\r\n\r\n /** Attempt to create a material for the given iModel using a set of material parameters. */\r\n public override createMaterial(params: RenderMaterial.Params, imodel: IModelConnection): RenderMaterial | undefined {\r\n const idMap = this.getIdMap(imodel);\r\n const material = idMap.getMaterial(params);\r\n return material;\r\n }\r\n\r\n /** Using its key, search for an existing material of an open iModel. */\r\n public override findMaterial(key: string, imodel: IModelConnection): RenderMaterial | undefined {\r\n const idMap = this.resourceCache.get(imodel);\r\n if (!idMap)\r\n return undefined;\r\n return idMap.findMaterial(key);\r\n }\r\n\r\n private getTextureCacheInfo(args: CreateTextureArgs): TextureCacheInfo | undefined {\r\n const owner = undefined !== args.ownership && args.ownership !== \"external\" ? args.ownership : undefined;\r\n return owner ? { idMap: this.getIdMap(owner.iModel), key: owner.key } : undefined;\r\n }\r\n\r\n public override createTexture(args: CreateTextureArgs): RenderTexture | undefined {\r\n const info = this.getTextureCacheInfo(args);\r\n const existing = info?.idMap.findTexture(info?.key);\r\n if (existing)\r\n return existing;\r\n\r\n const type = args.type ?? RenderTexture.Type.Normal;\r\n const source = args.image.source;\r\n\r\n // ###TODO createForImageBuffer should take args.transparency.\r\n let handle;\r\n if (source instanceof ImageBuffer)\r\n handle = TextureHandle.createForImageBuffer(source, type); // ###TODO use transparency from args\r\n else\r\n handle = TextureHandle.createForImage(source, TextureTransparency.Opaque !== args.image.transparency, type);\r\n\r\n if (!handle)\r\n return undefined;\r\n\r\n const texture = new Texture({ handle, type, ownership: args.ownership });\r\n if (texture && info)\r\n info.idMap.addTexture(texture);\r\n\r\n return texture;\r\n }\r\n\r\n public override async createTextureFromSource(args: CreateTextureFromSourceArgs): Promise<RenderTexture | undefined> {\r\n if (typeof args.ownership !== \"object\")\r\n return super.createTextureFromSource(args);\r\n\r\n return this.getIdMap(args.ownership.iModel).getTextureFromImageSource(args, args.ownership.key);\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public override createTextureFromElement(id: Id64String, imodel: IModelConnection, params: RenderTexture.Params, format: ImageSourceFormat): RenderTexture | undefined {\r\n return this.getIdMap(imodel).getTextureFromElement(id, imodel, params, format);\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public override createTextureFromCubeImages(posX: HTMLImageElement, negX: HTMLImageElement, posY: HTMLImageElement, negY: HTMLImageElement, posZ: HTMLImageElement, negZ: HTMLImageElement, imodel: IModelConnection, params: RenderTexture.Params): RenderTexture | undefined {\r\n return this.getIdMap(imodel).getTextureFromCubeImages(posX, negX, posY, negY, posZ, negZ, params);\r\n }\r\n\r\n /** Attempt to create a texture using gradient symbology. */\r\n public override getGradientTexture(symb: Gradient.Symb, iModel?: IModelConnection): RenderTexture | undefined {\r\n const source = symb.getImage(0x100, 0x100);\r\n return this.createTexture({\r\n image: {\r\n source,\r\n transparency: ImageBufferFormat.Rgba === source.format ? TextureTransparency.Translucent : TextureTransparency.Opaque,\r\n },\r\n ownership: iModel ? { iModel, key: symb } : undefined,\r\n type: RenderTexture.Type.Normal,\r\n });\r\n }\r\n\r\n /** Using its key, search for an existing texture of an open iModel. */\r\n public override findTexture(key: TextureCacheKey, imodel: IModelConnection): RenderTexture | undefined {\r\n const idMap = this.resourceCache.get(imodel);\r\n if (!idMap)\r\n return undefined;\r\n\r\n return idMap.findTexture(key);\r\n }\r\n\r\n public override createClipVolume(clipVector: ClipVector): RenderClipVolume | undefined {\r\n return ClipVolume.create(clipVector);\r\n }\r\n public override createBackgroundMapDrape(drapedTree: TileTreeReference, mapTree: MapTileTreeReference) {\r\n return BackgroundMapDrape.create(drapedTree, mapTree);\r\n }\r\n\r\n protected constructor(canvas: HTMLCanvasElement, context: WebGLContext, capabilities: Capabilities, options: RenderSystem.Options) {\r\n super(options);\r\n this.canvas = canvas;\r\n this.context = context;\r\n this.capabilities = capabilities;\r\n this.resourceCache = new Map<IModelConnection, IdMap>();\r\n this.glTimer = GLTimer.create(this);\r\n if (capabilities.isWebGL2)\r\n this._extensions = new WebGL2Extensions(this);\r\n else {\r\n const drawBuffersExtension = capabilities.queryExtensionObject<WEBGL_draw_buffers>(\"WEBGL_draw_buffers\");\r\n const instancingExtension = capabilities.queryExtensionObject<ANGLE_instanced_arrays>(\"ANGLE_instanced_arrays\");\r\n this._extensions = new WebGL1Extensions(this, drawBuffersExtension, instancingExtension);\r\n }\r\n\r\n // Make this System a subscriber to the the IModelConnection onClose event\r\n this._removeEventListener = IModelConnection.onClose.addListener((imodel) => this.removeIModelMap(imodel));\r\n\r\n canvas.addEventListener(\"webglcontextlost\", async () => RenderSystem.contextLossHandler(), false);\r\n }\r\n\r\n /** Exposed strictly for tests. */\r\n public getIdMap(imodel: IModelConnection): IdMap {\r\n const map = this.resourceCache.get(imodel);\r\n return undefined !== map ? map : this.createIModelMap(imodel);\r\n }\r\n\r\n private bindTexture(unit: TextureUnit, target: GL.Texture.Target, texture: TextureBinding, makeActive: boolean): void {\r\n const index = unit - TextureUnit.Zero;\r\n if (this._textureBindings[index] === texture) {\r\n if (makeActive)\r\n this.context.activeTexture(unit);\r\n\r\n return;\r\n }\r\n\r\n this._textureBindings[index] = texture;\r\n this.context.activeTexture(unit);\r\n this.context.bindTexture(target, undefined !== texture ? texture : null);\r\n }\r\n\r\n /** Bind the specified texture to the specified unit. This may *or may not* make the texture *active* */\r\n public bindTexture2d(unit: TextureUnit, texture: TextureBinding) { this.bindTexture(unit, GL.Texture.Target.TwoDee, texture, false); }\r\n /** Bind the specified texture to the specified unit. This may *or may not* make the texture *active* */\r\n public bindTextureCubeMap(unit: TextureUnit, texture: TextureBinding) { this.bindTexture(unit, GL.Texture.Target.CubeMap, texture, false); }\r\n /** Bind the specified texture to the specified unit. This *always* makes the texture *active* */\r\n public activateTexture2d(unit: TextureUnit, texture: TextureBinding) { this.bindTexture(unit, GL.Texture.Target.TwoDee, texture, true); }\r\n /** Bind the specified texture to the specified unit. This *always* makes the texture *active* */\r\n public activateTextureCubeMap(unit: TextureUnit, texture: TextureBinding) { this.bindTexture(unit, GL.Texture.Target.CubeMap, texture, true); }\r\n\r\n // Ensure *something* is bound to suppress 'no texture assigned to unit x' warnings.\r\n public ensureSamplerBound(uniform: UniformHandle, unit: TextureUnit): void {\r\n this.lineCodeTexture!.bindSampler(uniform, unit);\r\n }\r\n public override get maxRealityImageryLayers() { return Math.min(this.capabilities.maxFragTextureUnits, this.capabilities.maxVertTextureUnits) < 16 ? 3 : 6; }\r\n\r\n public disposeTexture(texture: WebGLTexture) {\r\n System.instance.context.deleteTexture(texture);\r\n for (let i = 0; i < this._textureBindings.length; i++) {\r\n if (this._textureBindings[i] === texture) {\r\n this._textureBindings[i] = undefined;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // System keeps track of current enabled state of vertex attribute arrays.\r\n // This prevents errors caused by leaving a vertex attrib array enabled after disposing of the buffer bound to it;\r\n // also prevents unnecessarily 'updating' the enabled state of a vertex attrib array when it hasn't actually changed.\r\n public enableVertexAttribArray(id: number, instanced: boolean): void {\r\n assert(id < this._nextVertexAttribStates.length, \"if you add new vertex attributes you must update array length\");\r\n assert(id < this._curVertexAttribStates.length, \"if you add new vertex attributes you must update array length\");\r\n\r\n this._nextVertexAttribStates[id] = instanced ? VertexAttribState.InstancedEnabled : VertexAttribState.Enabled;\r\n }\r\n\r\n public updateVertexAttribArrays(): void {\r\n const cur = this._curVertexAttribStates;\r\n const next = this._nextVertexAttribStates;\r\n const context = this.context;\r\n\r\n for (let i = 0; i < next.length; i++) {\r\n const oldState = cur[i];\r\n const newState = next[i];\r\n if (oldState !== newState) {\r\n // Update the enabled state if it changed.\r\n const wasEnabled = 0 !== (VertexAttribState.Enabled & oldState);\r\n const nowEnabled = 0 !== (VertexAttribState.Enabled & newState);\r\n if (wasEnabled !== nowEnabled) {\r\n if (nowEnabled) {\r\n context.enableVertexAttribArray(i);\r\n } else {\r\n context.disableVertexAttribArray(i);\r\n }\r\n }\r\n\r\n // Only update the divisor if the attribute is enabled.\r\n if (nowEnabled) {\r\n const wasInstanced = 0 !== (VertexAttribState.Instanced & oldState);\r\n const nowInstanced = 0 !== (VertexAttribState.Instanced & newState);\r\n if (wasInstanced !== nowInstanced) {\r\n this.vertexAttribDivisor(i, nowInstanced ? 1 : 0);\r\n }\r\n }\r\n\r\n cur[i] = newState;\r\n }\r\n\r\n // Set the attribute back to disabled, but preserve the divisor.\r\n next[i] &= ~VertexAttribState.Enabled;\r\n }\r\n }\r\n\r\n public vertexAttribDivisor(index: number, divisor: number) { this._extensions.vertexAttribDivisor(index, divisor); }\r\n\r\n public drawArrays(type: GL.PrimitiveType, first: number, count: number, numInstances: number): void {\r\n if (0 !== numInstances) {\r\n this._extensions.drawArraysInst(type, first, count, numInstances);\r\n } else {\r\n this.context.drawArrays(type, first, count);\r\n }\r\n }\r\n\r\n public invalidateFrameBuffer(attachments: number[]): void { this._extensions.invalidateFrameBuffer(attachments); }\r\n\r\n public override enableDiagnostics(enable: RenderDiagnostics): void {\r\n Debug.printEnabled = RenderDiagnostics.None !== (enable & RenderDiagnostics.DebugOutput);\r\n Debug.evaluateEnabled = RenderDiagnostics.None !== (enable & RenderDiagnostics.WebGL);\r\n }\r\n\r\n // RenderSystemDebugControl\r\n public override get debugControl(): RenderSystemDebugControl { return this; }\r\n private _drawSurfacesAsWiremesh = false;\r\n public get drawSurfacesAsWiremesh() { return this._drawSurfacesAsWiremesh; }\r\n public set drawSurfacesAsWiremesh(asWiremesh: boolean) { this._drawSurfacesAsWiremesh = asWiremesh; }\r\n\r\n private _dpiAwareLOD?: boolean;\r\n public override get dpiAwareLOD(): boolean { return this._dpiAwareLOD ?? super.dpiAwareLOD; }\r\n public override set dpiAwareLOD(dpiAware: boolean) { this._dpiAwareLOD = dpiAware; }\r\n\r\n public loseContext(): boolean {\r\n const ext = this.capabilities.queryExtensionObject<WEBGL_lose_context>(\"WEBGL_lose_context\");\r\n if (undefined === ext)\r\n return false;\r\n\r\n ext.loseContext();\r\n return true;\r\n }\r\n\r\n public compileAllShaders(): boolean {\r\n return this.techniques.compileShaders();\r\n }\r\n\r\n public get isGLTimerSupported(): boolean { return this.glTimer.isSupported; }\r\n public set resultsCallback(callback: GLTimerResultCallback | undefined) {\r\n this.glTimer.resultsCallback = callback;\r\n }\r\n\r\n public override collectStatistics(stats: RenderMemory.Statistics): void {\r\n if (undefined !== this._lineCodeTexture)\r\n stats.addTexture(this._lineCodeTexture.bytesUsed);\r\n\r\n if (undefined !== this._noiseTexture)\r\n stats.addTexture(this._noiseTexture.bytesUsed);\r\n\r\n for (const idMap of this.resourceCache.values())\r\n idMap.collectStatistics(stats);\r\n }\r\n\r\n public setMaxAnisotropy(max: number | undefined): void {\r\n this.capabilities.setMaxAnisotropy(max, this.context);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"System.js","sourceRoot":"","sources":["../../../../src/render/webgl/System.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, BentleyStatus, Dictionary, dispose, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { ClipVector, Point3d, Transform } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorDef, ElementAlignedBox3d, Frustum, Gradient, ImageBuffer, ImageBufferFormat, ImageSourceFormat, IModelError, PackedFeatureTable,\r\n RenderMaterial, RenderTexture, RgbColorProps, TextureMapping, TextureTransparency,\r\n} from \"@itwin/core-common\";\r\nimport { Capabilities, DepthType, WebGLContext } from \"@itwin/webgl-compatibility\";\r\nimport { imageElementFromImageSource } from \"../../ImageUtil\";\r\nimport { IModelApp } from \"../../IModelApp\";\r\nimport { IModelConnection } from \"../../IModelConnection\";\r\nimport { MapTileTreeReference, TileTreeReference } from \"../../tile/internal\";\r\nimport { ViewRect } from \"../../ViewRect\";\r\nimport { GraphicBranch, GraphicBranchOptions } from \"../GraphicBranch\";\r\nimport { BatchOptions, CustomGraphicBuilderOptions, GraphicBuilder, ViewportGraphicBuilderOptions } from \"../GraphicBuilder\";\r\nimport { InstancedGraphicParams, PatternGraphicParams } from \"../InstancedGraphicParams\";\r\nimport { PrimitiveBuilder } from \"../primitives/geometry/GeometryListBuilder\";\r\nimport { RealityMeshPrimitive } from \"../primitives/mesh/RealityMeshPrimitive\";\r\nimport { TerrainMeshPrimitive } from \"../primitives/mesh/TerrainMeshPrimitive\";\r\nimport { PointCloudArgs } from \"../primitives/PointCloudPrimitive\";\r\nimport { MeshParams } from \"../primitives/VertexTable\";\r\nimport { PointStringParams } from \"../primitives/PointStringParams\";\r\nimport { PolylineParams } from \"../primitives/PolylineParams\";\r\nimport { RenderClipVolume } from \"../RenderClipVolume\";\r\nimport { RenderGraphic, RenderGraphicOwner } from \"../RenderGraphic\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { CreateTextureArgs, CreateTextureFromSourceArgs, TextureCacheKey } from \"../RenderTexture\";\r\nimport { CreateRenderMaterialArgs } from \"../RenderMaterial\";\r\nimport {\r\n DebugShaderFile, GLTimerResultCallback, PlanarGridProps, RenderAreaPattern, RenderDiagnostics, RenderGeometry, RenderSkyBoxParams,\r\n RenderSystem, RenderSystemDebugControl, TerrainTexture,\r\n} from \"../RenderSystem\";\r\nimport { RenderTarget } from \"../RenderTarget\";\r\nimport { ScreenSpaceEffectBuilder, ScreenSpaceEffectBuilderParams } from \"../ScreenSpaceEffectBuilder\";\r\nimport { BackgroundMapDrape } from \"./BackgroundMapDrape\";\r\nimport { SkyBoxQuadsGeometry, SkySphereViewportQuadGeometry } from \"./CachedGeometry\";\r\nimport { ClipVolume } from \"./ClipVolume\";\r\nimport { isInstancedGraphicParams, PatternBuffers } from \"./InstancedGeometry\";\r\nimport { Debug } from \"./Diagnostics\";\r\nimport { WebGLDisposable } from \"./Disposable\";\r\nimport { DepthBuffer, FrameBufferStack } from \"./FrameBuffer\";\r\nimport { GL } from \"./GL\";\r\nimport { GLTimer } from \"./GLTimer\";\r\nimport { AnimationTransformBranch, Batch, Branch, Graphic, GraphicOwner, GraphicsArray } from \"./Graphic\";\r\nimport { Layer, LayerContainer } from \"./Layer\";\r\nimport { LineCode } from \"./LineCode\";\r\nimport { Material } from \"./Material\";\r\nimport { MeshGraphic, MeshRenderGeometry } from \"./Mesh\";\r\nimport { PointCloudGeometry } from \"./PointCloud\";\r\nimport { PointStringGeometry } from \"./PointString\";\r\nimport { PolylineGeometry } from \"./Polyline\";\r\nimport { Primitive, SkyCubePrimitive, SkySpherePrimitive } from \"./Primitive\";\r\nimport { RenderBuffer, RenderBufferMultiSample } from \"./RenderBuffer\";\r\nimport { TextureUnit } from \"./RenderFlags\";\r\nimport { RenderState } from \"./RenderState\";\r\nimport { createScreenSpaceEffectBuilder, ScreenSpaceEffects } from \"./ScreenSpaceEffect\";\r\nimport { OffScreenTarget, OnScreenTarget } from \"./Target\";\r\nimport { Techniques } from \"./Technique\";\r\nimport { RealityMeshGeometry } from \"./RealityMesh\";\r\nimport { ExternalTextureLoader, Texture, TextureHandle } from \"./Texture\";\r\nimport { UniformHandle } from \"./UniformHandle\";\r\nimport { PlanarGridGeometry } from \"./PlanarGrid\";\r\n\r\n/* eslint-disable no-restricted-syntax */\r\n\r\n/** @internal */\r\nexport const enum ContextState {\r\n Uninitialized,\r\n Success,\r\n Error,\r\n}\r\n\r\n/** Describes WebGL extension methods.\r\n * @internal\r\n */\r\nabstract class WebGLExtensions {\r\n private _system: System;\r\n public constructor(system: System) {\r\n this._system = system;\r\n }\r\n public get system() { return this._system; }\r\n public abstract setDrawBuffers(attachments: GLenum[]): void;\r\n public abstract vertexAttribDivisor(index: number, divisor: number): void;\r\n public abstract drawArraysInst(type: GL.PrimitiveType, first: number, count: number, numInstances: number): void;\r\n public abstract invalidateFrameBuffer(_attachments: number[]): void;\r\n}\r\n\r\n/** Describes WebGL1 extension methods.\r\n * @internal\r\n */\r\nclass WebGL1Extensions extends WebGLExtensions {\r\n private readonly _drawBuffersExtension?: WEBGL_draw_buffers;\r\n private readonly _instancingExtension?: ANGLE_instanced_arrays;\r\n\r\n public constructor(system: System, drawBuffersExt: WEBGL_draw_buffers | undefined, instancingExt: ANGLE_instanced_arrays | undefined) {\r\n super(system);\r\n this._drawBuffersExtension = drawBuffersExt;\r\n this._instancingExtension = instancingExt;\r\n }\r\n\r\n public setDrawBuffers(attachments: GLenum[]): void {\r\n // NB: The WEBGL_draw_buffers member is not exported directly because that type name is not available in some contexts (e.g. test-imodel-service).\r\n if (undefined !== this._drawBuffersExtension)\r\n this._drawBuffersExtension.drawBuffersWEBGL(attachments);\r\n }\r\n\r\n public vertexAttribDivisor(index: number, divisor: number): void {\r\n assert(undefined !== this._instancingExtension);\r\n this._instancingExtension.vertexAttribDivisorANGLE(index, divisor);\r\n }\r\n\r\n public drawArraysInst(type: GL.PrimitiveType, first: number, count: number, numInstances: number): void {\r\n if (undefined !== this._instancingExtension) {\r\n this._instancingExtension.drawArraysInstancedANGLE(type, first, count, numInstances);\r\n }\r\n }\r\n\r\n public invalidateFrameBuffer(_attachments: number[]): void { } // does not exist in WebGL1\r\n}\r\n\r\n/** Describes WebGL2 extension methods.\r\n * @internal\r\n */\r\nclass WebGL2Extensions extends WebGLExtensions {\r\n private _context: WebGL2RenderingContext;\r\n public constructor(system: System) {\r\n super(system);\r\n this._context = system.context as WebGL2RenderingContext;\r\n }\r\n\r\n public setDrawBuffers(attachments: GLenum[]): void {\r\n this._context.drawBuffers(attachments);\r\n }\r\n\r\n public vertexAttribDivisor(index: number, divisor: number): void {\r\n this._context.vertexAttribDivisor(index, divisor);\r\n }\r\n\r\n public drawArraysInst(type: GL.PrimitiveType, first: number, count: number, numInstances: number): void { this._context.drawArraysInstanced(type, first, count, numInstances); }\r\n\r\n public invalidateFrameBuffer(attachments: number[]): void {\r\n this._context.invalidateFramebuffer(this._context.FRAMEBUFFER, attachments);\r\n }\r\n}\r\n\r\n/** Id map holds key value pairs for both materials and textures, useful for caching such objects.\r\n * @internal\r\n */\r\nexport class IdMap implements WebGLDisposable {\r\n private readonly _iModel: IModelConnection;\r\n /** Mapping of materials by their key values. */\r\n public readonly materials = new Map<string, RenderMaterial>();\r\n /** Mapping of textures by their key values. */\r\n public readonly textures = new Map<string, RenderTexture>();\r\n /** Mapping of textures using gradient symbology. */\r\n public readonly gradients = new Dictionary<Gradient.Symb, RenderTexture>(Gradient.Symb.compareSymb);\r\n /** Pending promises to create a texture from an ImageSource. This prevents us from decoding the same ImageSource multiple times */\r\n public readonly texturesFromImageSources = new Map<string, Promise<RenderTexture | undefined>>();\r\n\r\n public constructor(iModel: IModelConnection) {\r\n this._iModel = iModel;\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return 0 === this.textures.size && 0 === this.gradients.size;\r\n }\r\n\r\n public dispose() {\r\n const textureArr = Array.from(this.textures.values());\r\n const gradientArr = this.gradients.extractArrays().values;\r\n\r\n for (const texture of textureArr)\r\n dispose(texture);\r\n\r\n for (const gradient of gradientArr)\r\n dispose(gradient);\r\n\r\n this.textures.clear();\r\n this.gradients.clear();\r\n this.materials.clear();\r\n }\r\n\r\n /** Add a material to this IdMap, given that it has a valid key. */\r\n public addMaterial(material: RenderMaterial) {\r\n if (material.key)\r\n this.materials.set(material.key, material);\r\n }\r\n\r\n /** Add a texture to this IdMap, given that it has a valid string key. If specified, it will instead use the key parameter, which could also be a gradient symb. */\r\n public addTexture(texture: RenderTexture, key?: TextureCacheKey) {\r\n assert(texture instanceof Texture);\r\n if (undefined !== key) {\r\n if (\"string\" === typeof key)\r\n this.textures.set(key, texture);\r\n else\r\n this.addGradient(key, texture);\r\n } else if (texture.key)\r\n this.textures.set(texture.key, texture);\r\n }\r\n\r\n /** Add a texture to this IdMap using gradient symbology. */\r\n public addGradient(gradientSymb: Gradient.Symb, texture: RenderTexture) {\r\n this.gradients.set(gradientSymb, texture);\r\n }\r\n\r\n /** Find a cached material using its key. If not found, returns undefined. */\r\n public findMaterial(key: string): RenderMaterial | undefined {\r\n return this.materials.get(key);\r\n }\r\n\r\n /** Find a cached gradient using the gradient symbology. If not found, returns undefined. */\r\n public findGradient(symb: Gradient.Symb): RenderTexture | undefined {\r\n return this.gradients.get(symb);\r\n }\r\n\r\n /** Find or create a new material given material parameters. This will cache the material if its key is valid. */\r\n // eslint-disable-next-line deprecation/deprecation\r\n public getMaterial(params: RenderMaterial.Params): RenderMaterial {\r\n if (!params.key || !Id64.isValidId64(params.key)) // Only cache persistent materials.\r\n return new Material(params);\r\n\r\n let material = this.materials.get(params.key);\r\n if (!material) {\r\n material = new Material(params);\r\n this.materials.set(params.key, material);\r\n }\r\n return material;\r\n }\r\n\r\n public findTexture(key?: string | Gradient.Symb): RenderTexture | undefined {\r\n if (undefined === key)\r\n return undefined;\r\n else if (typeof key === \"string\")\r\n return this.textures.get(key);\r\n else\r\n return this.findGradient(key);\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public getTextureFromElement(key: Id64String, iModel: IModelConnection, params: RenderTexture.Params, format: ImageSourceFormat): RenderTexture | undefined {\r\n let tex = this.findTexture(params.key);\r\n if (tex)\r\n return tex;\r\n\r\n const handle = TextureHandle.createForElement(key, iModel, params.type, format, (_, data) => {\r\n if (tex) {\r\n assert(tex instanceof Texture);\r\n tex.transparency = data.transparency ?? TextureTransparency.Mixed;\r\n }\r\n });\r\n\r\n if (!handle)\r\n return undefined;\r\n\r\n tex = new Texture({ handle, type: params.type, ownership: { key, iModel }, transparency: TextureTransparency.Opaque });\r\n this.addTexture(tex);\r\n return tex;\r\n }\r\n\r\n public async getTextureFromImageSource(args: CreateTextureFromSourceArgs, key: string): Promise<RenderTexture | undefined> {\r\n const texture = this.findTexture(key);\r\n if (texture)\r\n return texture;\r\n\r\n // Are we already in the process of decoding this image?\r\n let promise = this.texturesFromImageSources.get(key);\r\n if (promise)\r\n return promise;\r\n\r\n promise = this.createTextureFromImageSource(args, key);\r\n this.texturesFromImageSources.set(key, promise);\r\n return promise;\r\n }\r\n\r\n public async createTextureFromImageSource(args: CreateTextureFromSourceArgs, key: string): Promise<RenderTexture | undefined> {\r\n // JPEGs don't support transparency.\r\n const transparency = ImageSourceFormat.Jpeg === args.source.format ? TextureTransparency.Opaque : (args.transparency ?? TextureTransparency.Mixed);\r\n try {\r\n const image = await imageElementFromImageSource(args.source);\r\n if (!IModelApp.hasRenderSystem)\r\n return undefined;\r\n\r\n return IModelApp.renderSystem.createTexture({\r\n type: args.type,\r\n ownership: args.ownership,\r\n image: {\r\n source: image,\r\n transparency,\r\n },\r\n });\r\n } catch {\r\n return undefined;\r\n } finally {\r\n this.texturesFromImageSources.delete(key);\r\n }\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public getTextureFromCubeImages(posX: HTMLImageElement, negX: HTMLImageElement, posY: HTMLImageElement, negY: HTMLImageElement, posZ: HTMLImageElement, negZ: HTMLImageElement, params: RenderTexture.Params): RenderTexture | undefined {\r\n let tex = this.findTexture(params.key);\r\n if (tex)\r\n return tex;\r\n\r\n const handle = TextureHandle.createForCubeImages(posX, negX, posY, negY, posZ, negZ);\r\n if (!handle)\r\n return undefined;\r\n\r\n const ownership = params.key ? { key: params.key, iModel: this._iModel } : (params.isOwned ? \"external\" : undefined);\r\n tex = new Texture({ handle, ownership, type: params.type, transparency: TextureTransparency.Opaque });\r\n this.addTexture(tex);\r\n return tex;\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n for (const texture of this.textures.values())\r\n if (texture instanceof Texture)\r\n stats.addTexture(texture.bytesUsed);\r\n\r\n for (const gradient of this.gradients)\r\n if (gradient instanceof Texture)\r\n stats.addTexture(gradient.bytesUsed);\r\n }\r\n}\r\n\r\nexport type TextureBinding = WebGLTexture | undefined;\r\n\r\nconst enum VertexAttribState {\r\n Disabled = 0,\r\n Enabled = 1 << 0,\r\n Instanced = 1 << 2,\r\n InstancedEnabled = Instanced | Enabled,\r\n}\r\n\r\ninterface TextureCacheInfo {\r\n idMap: IdMap;\r\n key: TextureCacheKey;\r\n}\r\n\r\nfunction getMaterialColor(color: ColorDef | RgbColorProps | undefined): ColorDef | undefined {\r\n if (color instanceof ColorDef)\r\n return color;\r\n\r\n return color ? ColorDef.from(color.r, color.g, color.b) : undefined;\r\n}\r\n\r\n/** @internal */\r\nexport class System extends RenderSystem implements RenderSystemDebugControl, RenderMemory.Consumer, WebGLDisposable {\r\n public readonly canvas: HTMLCanvasElement;\r\n public readonly currentRenderState = new RenderState();\r\n public readonly context: WebGLContext;\r\n public readonly frameBufferStack = new FrameBufferStack(); // frame buffers are not owned by the system\r\n public readonly capabilities: Capabilities;\r\n public readonly resourceCache: Map<IModelConnection, IdMap>;\r\n public readonly glTimer: GLTimer;\r\n private readonly _extensions: WebGLExtensions;\r\n private readonly _textureBindings: TextureBinding[] = [];\r\n private _removeEventListener?: () => void;\r\n\r\n // NB: Increase the size of these arrays when the maximum number of attributes used by any one shader increases.\r\n private readonly _curVertexAttribStates: VertexAttribState[] = [\r\n VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled,\r\n VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled,\r\n VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled,\r\n ];\r\n private readonly _nextVertexAttribStates: VertexAttribState[] = [\r\n VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled,\r\n VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled,\r\n VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled, VertexAttribState.Disabled,\r\n ];\r\n\r\n // The following are initialized immediately after the System is constructed.\r\n private _lineCodeTexture?: TextureHandle;\r\n private _noiseTexture?: TextureHandle;\r\n private _techniques?: Techniques;\r\n private _screenSpaceEffects?: ScreenSpaceEffects;\r\n public readonly debugShaderFiles: DebugShaderFile[] = [];\r\n\r\n public static get instance() { return IModelApp.renderSystem as System; }\r\n\r\n public get isValid(): boolean { return this.canvas !== undefined; }\r\n public get lineCodeTexture() { return this._lineCodeTexture; }\r\n public get noiseTexture() { return this._noiseTexture; }\r\n\r\n public get techniques() {\r\n assert(undefined !== this._techniques);\r\n return this._techniques;\r\n }\r\n\r\n public get screenSpaceEffects() {\r\n assert(undefined !== this._screenSpaceEffects);\r\n return this._screenSpaceEffects;\r\n }\r\n\r\n public override get maxTextureSize(): number { return this.capabilities.maxTextureSize; }\r\n public override get supportsInstancing(): boolean { return this.capabilities.supportsInstancing; }\r\n public override get supportsNonuniformScaledInstancing(): boolean { return this.capabilities.isWebGL2; }\r\n\r\n /** Requires gl_VertexID (WebGL 2 only) and > 8 texture units (WebGL 1 only guarantees 8). */\r\n public override get supportsIndexedEdges(): boolean { return this.isWebGL2; }\r\n public get isWebGL2(): boolean { return this.capabilities.isWebGL2; }\r\n public override get isMobile(): boolean { return this.capabilities.isMobile; }\r\n\r\n public setDrawBuffers(attachments: GLenum[]): void { this._extensions.setDrawBuffers(attachments); }\r\n\r\n public doIdleWork(): boolean {\r\n return this.techniques.idleCompileNextShader();\r\n }\r\n\r\n /** Return a Promise which when resolved indicates that all pending external textures have finished loading from the backend. */\r\n public override async waitForAllExternalTextures(): Promise<void> {\r\n const extTexLoader = ExternalTextureLoader.instance;\r\n if (extTexLoader.numActiveRequests < 1 && extTexLoader.numPendingRequests < 1)\r\n return Promise.resolve();\r\n const promise = new Promise<void>((resolve: any) => {\r\n extTexLoader.onTexturesLoaded.addOnce(() => {\r\n resolve();\r\n });\r\n });\r\n return promise;\r\n }\r\n\r\n /** Attempt to create a WebGLRenderingContext, returning undefined if unsuccessful. */\r\n public static createContext(canvas: HTMLCanvasElement, useWebGL2: boolean, inputContextAttributes?: WebGLContextAttributes): WebGLContext | undefined {\r\n let contextAttributes: WebGLContextAttributes = { powerPreference: \"high-performance\" };\r\n if (undefined !== inputContextAttributes) {\r\n // NOTE: Order matters with spread operator - if caller wants to override powerPreference, he should be able to.\r\n contextAttributes = { ...contextAttributes, ...inputContextAttributes };\r\n }\r\n\r\n // If requested, first try obtaining a WebGL2 context.\r\n let context = null;\r\n if (useWebGL2)\r\n context = canvas.getContext(\"webgl2\", contextAttributes);\r\n\r\n // Fall back to WebGL1 if necessary.\r\n if (null === context)\r\n context = canvas.getContext(\"webgl\", contextAttributes);\r\n\r\n return context ?? undefined;\r\n }\r\n\r\n public static create(optionsIn?: RenderSystem.Options): System {\r\n const options: RenderSystem.Options = undefined !== optionsIn ? optionsIn : {};\r\n const canvas = document.createElement(\"canvas\");\r\n if (null === canvas)\r\n throw new IModelError(BentleyStatus.ERROR, \"Failed to obtain HTMLCanvasElement\");\r\n\r\n const useWebGL2 = (undefined === options.useWebGL2 ? true : options.useWebGL2);\r\n const context = this.createContext(canvas, useWebGL2, optionsIn?.contextAttributes);\r\n if (undefined === context) {\r\n throw new IModelError(BentleyStatus.ERROR, \"Failed to obtain WebGL context\");\r\n }\r\n\r\n const capabilities = Capabilities.create(context, options.disabledExtensions);\r\n if (undefined === capabilities)\r\n throw new IModelError(BentleyStatus.ERROR, \"Failed to initialize rendering capabilities\");\r\n\r\n // set actual gl state to match desired state defaults\r\n context.depthFunc(GL.DepthFunc.Default); // LessOrEqual\r\n\r\n if (!capabilities.supportsShadowMaps)\r\n options.displaySolarShadows = false;\r\n if (!capabilities.supportsFragDepth)\r\n options.logarithmicDepthBuffer = false;\r\n if (!capabilities.supportsTextureFilterAnisotropic) {\r\n options.filterMapTextures = false;\r\n options.filterMapDrapeTextures = false;\r\n }\r\n return new this(canvas, context, capabilities, options);\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return undefined === this._techniques\r\n && undefined === this._lineCodeTexture\r\n && undefined === this._noiseTexture\r\n && undefined === this._screenSpaceEffects;\r\n }\r\n\r\n // Note: FrameBuffers inside of the FrameBufferStack are not owned by the System, and are only used as a central storage device\r\n public dispose() {\r\n this._techniques = dispose(this._techniques);\r\n this._screenSpaceEffects = dispose(this._screenSpaceEffects);\r\n this._lineCodeTexture = dispose(this._lineCodeTexture);\r\n this._noiseTexture = dispose(this._noiseTexture);\r\n\r\n // We must attempt to dispose of each idmap in the resourceCache (if idmap is already disposed, has no effect)\r\n this.resourceCache.forEach((idMap: IdMap) => {\r\n dispose(idMap);\r\n });\r\n\r\n this.resourceCache.clear();\r\n if (undefined !== this._removeEventListener) {\r\n this._removeEventListener();\r\n this._removeEventListener = undefined;\r\n }\r\n }\r\n\r\n public override onInitialized(): void {\r\n this._techniques = Techniques.create(this.context);\r\n\r\n const noiseDim = 4;\r\n const noiseArr = new Uint8Array([152, 235, 94, 173, 219, 215, 115, 176, 73, 205, 43, 201, 10, 81, 205, 198]);\r\n this._noiseTexture = TextureHandle.createForData(noiseDim, noiseDim, noiseArr, false, GL.Texture.WrapMode.Repeat, GL.Texture.Format.Luminance);\r\n assert(undefined !== this._noiseTexture, \"System.noiseTexture not created.\");\r\n\r\n this._lineCodeTexture = TextureHandle.createForData(LineCode.size, LineCode.count, new Uint8Array(LineCode.lineCodeData), false, GL.Texture.WrapMode.Repeat, GL.Texture.Format.Luminance);\r\n assert(undefined !== this._lineCodeTexture, \"System.lineCodeTexture not created.\");\r\n\r\n this._screenSpaceEffects = new ScreenSpaceEffects();\r\n }\r\n\r\n public createTarget(canvas: HTMLCanvasElement): RenderTarget {\r\n return new OnScreenTarget(canvas);\r\n }\r\n\r\n public createOffscreenTarget(rect: ViewRect): RenderTarget {\r\n return new OffScreenTarget(rect);\r\n }\r\n\r\n public createGraphic(options: CustomGraphicBuilderOptions | ViewportGraphicBuilderOptions): GraphicBuilder {\r\n return new PrimitiveBuilder(this, options);\r\n }\r\n\r\n public override createPlanarGrid(frustum: Frustum, grid: PlanarGridProps): RenderGraphic | undefined {\r\n return PlanarGridGeometry.create(frustum, grid, this);\r\n }\r\n\r\n public override createRealityMeshFromTerrain(terrainMesh: TerrainMeshPrimitive, transform?: Transform): RealityMeshGeometry | undefined {\r\n return RealityMeshGeometry.createFromTerrainMesh(terrainMesh, transform);\r\n }\r\n\r\n public override createRealityMeshGraphic(terrainGeometry: RealityMeshGeometry, featureTable: PackedFeatureTable, tileId: string | undefined, baseColor: ColorDef | undefined, baseTransparent: boolean, textures?: TerrainTexture[]): RenderGraphic | undefined {\r\n return RealityMeshGeometry.createGraphic(this, terrainGeometry, featureTable, tileId, baseColor, baseTransparent, textures);\r\n }\r\n public override createRealityMesh(realityMesh: RealityMeshPrimitive): RenderGraphic | undefined {\r\n const geom = RealityMeshGeometry.createFromRealityMesh(realityMesh);\r\n return geom ? Primitive.create(geom) : undefined;\r\n }\r\n\r\n public override createMeshGeometry(params: MeshParams, viOrigin?: Point3d): MeshRenderGeometry | undefined {\r\n return MeshRenderGeometry.create(params, viOrigin);\r\n }\r\n\r\n public override createPolylineGeometry(params: PolylineParams, viOrigin?: Point3d): PolylineGeometry | undefined {\r\n return PolylineGeometry.create(params, viOrigin);\r\n }\r\n\r\n public override createPointStringGeometry(params: PointStringParams, viOrigin?: Point3d): PointStringGeometry | undefined {\r\n return PointStringGeometry.create(params, viOrigin);\r\n }\r\n\r\n public override createAreaPattern(params: PatternGraphicParams): PatternBuffers | undefined {\r\n return PatternBuffers.create(params);\r\n }\r\n\r\n public override createRenderGraphic(geometry: RenderGeometry, instances?: InstancedGraphicParams | RenderAreaPattern): RenderGraphic | undefined {\r\n if (!(geometry instanceof MeshRenderGeometry)) {\r\n if (geometry instanceof PolylineGeometry || geometry instanceof PointStringGeometry)\r\n return Primitive.create(geometry, instances);\r\n\r\n assert(false, \"Invalid RenderGeometry for System.createRenderGraphic\");\r\n return undefined;\r\n }\r\n\r\n assert(!instances || instances instanceof PatternBuffers || isInstancedGraphicParams(instances));\r\n return MeshGraphic.create(geometry, instances);\r\n }\r\n\r\n public override createPointCloud(args: PointCloudArgs): RenderGraphic | undefined {\r\n return Primitive.create(new PointCloudGeometry(args));\r\n }\r\n\r\n public createGraphicList(primitives: RenderGraphic[]): RenderGraphic {\r\n return new GraphicsArray(primitives);\r\n }\r\n\r\n public createGraphicBranch(branch: GraphicBranch, transform: Transform, options?: GraphicBranchOptions): RenderGraphic {\r\n return new Branch(branch, transform, undefined, options);\r\n }\r\n\r\n public override createAnimationTransformNode(graphic: RenderGraphic, nodeId: number): RenderGraphic {\r\n return new AnimationTransformBranch(graphic, nodeId);\r\n }\r\n\r\n public createBatch(graphic: RenderGraphic, features: PackedFeatureTable, range: ElementAlignedBox3d, options?: BatchOptions): RenderGraphic {\r\n return new Batch(graphic, features, range, options);\r\n }\r\n\r\n public override createGraphicOwner(owned: RenderGraphic): RenderGraphicOwner {\r\n return new GraphicOwner(owned as Graphic);\r\n }\r\n\r\n public override createGraphicLayer(graphic: RenderGraphic, layerId: string) {\r\n return new Layer(graphic as Graphic, layerId);\r\n }\r\n\r\n public override createGraphicLayerContainer(graphic: RenderGraphic, drawAsOverlay: boolean, transparency: number, elevation: number) {\r\n return new LayerContainer(graphic as Graphic, drawAsOverlay, transparency, elevation);\r\n }\r\n\r\n public override createSkyBox(params: RenderSkyBoxParams): RenderGraphic | undefined {\r\n if (\"cube\" === params.type)\r\n return SkyCubePrimitive.create(SkyBoxQuadsGeometry.create(params.texture));\r\n\r\n return SkySpherePrimitive.create(SkySphereViewportQuadGeometry.createGeometry(params));\r\n }\r\n\r\n public override createScreenSpaceEffectBuilder(params: ScreenSpaceEffectBuilderParams): ScreenSpaceEffectBuilder {\r\n return createScreenSpaceEffectBuilder(params);\r\n }\r\n\r\n public applyRenderState(newState: RenderState) {\r\n newState.apply(this.currentRenderState);\r\n this.currentRenderState.copyFrom(newState);\r\n }\r\n\r\n public createDepthBuffer(width: number, height: number, numSamples: number = 1): DepthBuffer | undefined {\r\n // Note: The buffer/texture created here have ownership passed to the caller (system will not dispose of these)\r\n switch (this.capabilities.maxDepthType) {\r\n case DepthType.RenderBufferUnsignedShort16: {\r\n return RenderBuffer.create(width, height);\r\n }\r\n case DepthType.TextureUnsignedInt32: {\r\n return TextureHandle.createForAttachment(width, height, GL.Texture.Format.DepthComponent, GL.Texture.DataType.UnsignedInt);\r\n }\r\n case DepthType.TextureUnsignedInt24Stencil8: {\r\n if (this.capabilities.isWebGL2) {\r\n if (numSamples > 1) {\r\n return RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.DEPTH24_STENCIL8, numSamples);\r\n } else {\r\n const context2 = this.context as WebGL2RenderingContext;\r\n return TextureHandle.createForAttachment(width, height, GL.Texture.Format.DepthStencil, context2.UNSIGNED_INT_24_8);\r\n }\r\n } else {\r\n const dtExt: WEBGL_depth_texture | undefined = this.capabilities.queryExtensionObject<WEBGL_depth_texture>(\"WEBGL_depth_texture\");\r\n return TextureHandle.createForAttachment(width, height, GL.Texture.Format.DepthStencil, dtExt!.UNSIGNED_INT_24_8_WEBGL);\r\n }\r\n }\r\n default: {\r\n assert(false);\r\n return undefined;\r\n }\r\n }\r\n }\r\n\r\n /** Returns the corresponding IdMap for an IModelConnection. Creates a new one if it doesn't exist. */\r\n public createIModelMap(imodel: IModelConnection): IdMap {\r\n let idMap = this.resourceCache.get(imodel);\r\n if (!idMap) {\r\n idMap = new IdMap(imodel);\r\n this.resourceCache.set(imodel, idMap);\r\n }\r\n return idMap;\r\n }\r\n\r\n /** Removes an IModelConnection-IdMap pairing from the system's resource cache. */\r\n private removeIModelMap(imodel: IModelConnection) {\r\n const idMap = this.resourceCache.get(imodel);\r\n if (idMap === undefined)\r\n return;\r\n dispose(idMap);\r\n this.resourceCache.delete(imodel);\r\n }\r\n\r\n /** Attempt to create a material for the given iModel using a set of material parameters. */\r\n // eslint-disable-next-line deprecation/deprecation\r\n public override createMaterial(params: RenderMaterial.Params, imodel: IModelConnection): RenderMaterial | undefined {\r\n const idMap = this.getIdMap(imodel);\r\n const material = idMap.getMaterial(params);\r\n return material;\r\n }\r\n\r\n public override createRenderMaterial(args: CreateRenderMaterialArgs): RenderMaterial | undefined {\r\n if (args.source) {\r\n const cached = this.findMaterial(args.source.id, args.source.iModel);\r\n if (cached)\r\n return cached;\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n const params = new RenderMaterial.Params();\r\n params.alpha = args.alpha;\r\n if (undefined !== args.diffuse?.weight)\r\n params.diffuse = args.diffuse.weight;\r\n\r\n params.diffuseColor = getMaterialColor(args.diffuse?.color);\r\n\r\n if (args.specular) {\r\n params.specularColor = getMaterialColor(args.specular?.color);\r\n if (undefined !== args.specular.weight)\r\n params.specular = args.specular.weight;\r\n\r\n if (undefined !== args.specular.exponent)\r\n params.specularExponent = args.specular.exponent;\r\n }\r\n\r\n if (args.textureMapping) {\r\n params.textureMapping = new TextureMapping(args.textureMapping.texture, new TextureMapping.Params({\r\n textureMat2x3: args.textureMapping.transform,\r\n mapMode: args.textureMapping.mode,\r\n textureWeight: args.textureMapping.weight,\r\n worldMapping: args.textureMapping.worldMapping,\r\n }));\r\n }\r\n\r\n if (args.source) {\r\n params.key = args.source.id;\r\n return this.getIdMap(args.source.iModel).getMaterial(params);\r\n } else {\r\n return new Material(params);\r\n }\r\n }\r\n\r\n /** Using its key, search for an existing material of an open iModel. */\r\n public override findMaterial(key: string, imodel: IModelConnection): RenderMaterial | undefined {\r\n const idMap = this.resourceCache.get(imodel);\r\n if (!idMap)\r\n return undefined;\r\n return idMap.findMaterial(key);\r\n }\r\n\r\n private getTextureCacheInfo(args: CreateTextureArgs): TextureCacheInfo | undefined {\r\n const owner = undefined !== args.ownership && args.ownership !== \"external\" ? args.ownership : undefined;\r\n return owner ? { idMap: this.getIdMap(owner.iModel), key: owner.key } : undefined;\r\n }\r\n\r\n public override createTexture(args: CreateTextureArgs): RenderTexture | undefined {\r\n const info = this.getTextureCacheInfo(args);\r\n const existing = info?.idMap.findTexture(info?.key);\r\n if (existing)\r\n return existing;\r\n\r\n const type = args.type ?? RenderTexture.Type.Normal;\r\n const source = args.image.source;\r\n\r\n let handle;\r\n if (source instanceof ImageBuffer)\r\n handle = TextureHandle.createForImageBuffer(source, type);\r\n else\r\n handle = TextureHandle.createForImage(source, type);\r\n\r\n if (!handle)\r\n return undefined;\r\n\r\n const texture = new Texture({ handle, type, ownership: args.ownership, transparency: args.image.transparency ?? TextureTransparency.Mixed });\r\n if (texture && info)\r\n info.idMap.addTexture(texture, info.key);\r\n\r\n return texture;\r\n }\r\n\r\n public override async createTextureFromSource(args: CreateTextureFromSourceArgs): Promise<RenderTexture | undefined> {\r\n if (typeof args.ownership !== \"object\")\r\n return super.createTextureFromSource(args);\r\n\r\n return this.getIdMap(args.ownership.iModel).getTextureFromImageSource(args, args.ownership.key);\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public override createTextureFromElement(id: Id64String, imodel: IModelConnection, params: RenderTexture.Params, format: ImageSourceFormat): RenderTexture | undefined {\r\n return this.getIdMap(imodel).getTextureFromElement(id, imodel, params, format);\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public override createTextureFromCubeImages(posX: HTMLImageElement, negX: HTMLImageElement, posY: HTMLImageElement, negY: HTMLImageElement, posZ: HTMLImageElement, negZ: HTMLImageElement, imodel: IModelConnection, params: RenderTexture.Params): RenderTexture | undefined {\r\n return this.getIdMap(imodel).getTextureFromCubeImages(posX, negX, posY, negY, posZ, negZ, params);\r\n }\r\n\r\n /** Attempt to create a texture using gradient symbology. */\r\n public override getGradientTexture(symb: Gradient.Symb, iModel?: IModelConnection): RenderTexture | undefined {\r\n const source = symb.getImage(0x100, 0x100);\r\n return this.createTexture({\r\n image: {\r\n source,\r\n transparency: ImageBufferFormat.Rgba === source.format ? TextureTransparency.Mixed : TextureTransparency.Opaque,\r\n },\r\n ownership: iModel ? { iModel, key: symb } : undefined,\r\n type: RenderTexture.Type.Normal,\r\n });\r\n }\r\n\r\n /** Using its key, search for an existing texture of an open iModel. */\r\n public override findTexture(key: TextureCacheKey, imodel: IModelConnection): RenderTexture | undefined {\r\n const idMap = this.resourceCache.get(imodel);\r\n if (!idMap)\r\n return undefined;\r\n\r\n return idMap.findTexture(key);\r\n }\r\n\r\n public override createClipVolume(clipVector: ClipVector): RenderClipVolume | undefined {\r\n return ClipVolume.create(clipVector);\r\n }\r\n public override createBackgroundMapDrape(drapedTree: TileTreeReference, mapTree: MapTileTreeReference) {\r\n return BackgroundMapDrape.create(drapedTree, mapTree);\r\n }\r\n\r\n protected constructor(canvas: HTMLCanvasElement, context: WebGLContext, capabilities: Capabilities, options: RenderSystem.Options) {\r\n super(options);\r\n this.canvas = canvas;\r\n this.context = context;\r\n this.capabilities = capabilities;\r\n this.resourceCache = new Map<IModelConnection, IdMap>();\r\n this.glTimer = GLTimer.create(this);\r\n if (capabilities.isWebGL2)\r\n this._extensions = new WebGL2Extensions(this);\r\n else {\r\n const drawBuffersExtension = capabilities.queryExtensionObject<WEBGL_draw_buffers>(\"WEBGL_draw_buffers\");\r\n const instancingExtension = capabilities.queryExtensionObject<ANGLE_instanced_arrays>(\"ANGLE_instanced_arrays\");\r\n this._extensions = new WebGL1Extensions(this, drawBuffersExtension, instancingExtension);\r\n }\r\n\r\n // Make this System a subscriber to the the IModelConnection onClose event\r\n this._removeEventListener = IModelConnection.onClose.addListener((imodel) => this.removeIModelMap(imodel));\r\n\r\n canvas.addEventListener(\"webglcontextlost\", async () => RenderSystem.contextLossHandler(), false);\r\n }\r\n\r\n /** Exposed strictly for tests. */\r\n public getIdMap(imodel: IModelConnection): IdMap {\r\n const map = this.resourceCache.get(imodel);\r\n return undefined !== map ? map : this.createIModelMap(imodel);\r\n }\r\n\r\n private bindTexture(unit: TextureUnit, target: GL.Texture.Target, texture: TextureBinding, makeActive: boolean): void {\r\n const index = unit - TextureUnit.Zero;\r\n if (this._textureBindings[index] === texture) {\r\n if (makeActive)\r\n this.context.activeTexture(unit);\r\n\r\n return;\r\n }\r\n\r\n this._textureBindings[index] = texture;\r\n this.context.activeTexture(unit);\r\n this.context.bindTexture(target, undefined !== texture ? texture : null);\r\n }\r\n\r\n /** Bind the specified texture to the specified unit. This may *or may not* make the texture *active* */\r\n public bindTexture2d(unit: TextureUnit, texture: TextureBinding) { this.bindTexture(unit, GL.Texture.Target.TwoDee, texture, false); }\r\n /** Bind the specified texture to the specified unit. This may *or may not* make the texture *active* */\r\n public bindTextureCubeMap(unit: TextureUnit, texture: TextureBinding) { this.bindTexture(unit, GL.Texture.Target.CubeMap, texture, false); }\r\n /** Bind the specified texture to the specified unit. This *always* makes the texture *active* */\r\n public activateTexture2d(unit: TextureUnit, texture: TextureBinding) { this.bindTexture(unit, GL.Texture.Target.TwoDee, texture, true); }\r\n /** Bind the specified texture to the specified unit. This *always* makes the texture *active* */\r\n public activateTextureCubeMap(unit: TextureUnit, texture: TextureBinding) { this.bindTexture(unit, GL.Texture.Target.CubeMap, texture, true); }\r\n\r\n // Ensure *something* is bound to suppress 'no texture assigned to unit x' warnings.\r\n public ensureSamplerBound(uniform: UniformHandle, unit: TextureUnit): void {\r\n this.lineCodeTexture!.bindSampler(uniform, unit);\r\n }\r\n public override get maxRealityImageryLayers() { return Math.min(this.capabilities.maxFragTextureUnits, this.capabilities.maxVertTextureUnits) < 16 ? 3 : 6; }\r\n\r\n public disposeTexture(texture: WebGLTexture) {\r\n System.instance.context.deleteTexture(texture);\r\n for (let i = 0; i < this._textureBindings.length; i++) {\r\n if (this._textureBindings[i] === texture) {\r\n this._textureBindings[i] = undefined;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // System keeps track of current enabled state of vertex attribute arrays.\r\n // This prevents errors caused by leaving a vertex attrib array enabled after disposing of the buffer bound to it;\r\n // also prevents unnecessarily 'updating' the enabled state of a vertex attrib array when it hasn't actually changed.\r\n public enableVertexAttribArray(id: number, instanced: boolean): void {\r\n assert(id < this._nextVertexAttribStates.length, \"if you add new vertex attributes you must update array length\");\r\n assert(id < this._curVertexAttribStates.length, \"if you add new vertex attributes you must update array length\");\r\n\r\n this._nextVertexAttribStates[id] = instanced ? VertexAttribState.InstancedEnabled : VertexAttribState.Enabled;\r\n }\r\n\r\n public updateVertexAttribArrays(): void {\r\n const cur = this._curVertexAttribStates;\r\n const next = this._nextVertexAttribStates;\r\n const context = this.context;\r\n\r\n for (let i = 0; i < next.length; i++) {\r\n const oldState = cur[i];\r\n const newState = next[i];\r\n if (oldState !== newState) {\r\n // Update the enabled state if it changed.\r\n const wasEnabled = 0 !== (VertexAttribState.Enabled & oldState);\r\n const nowEnabled = 0 !== (VertexAttribState.Enabled & newState);\r\n if (wasEnabled !== nowEnabled) {\r\n if (nowEnabled) {\r\n context.enableVertexAttribArray(i);\r\n } else {\r\n context.disableVertexAttribArray(i);\r\n }\r\n }\r\n\r\n // Only update the divisor if the attribute is enabled.\r\n if (nowEnabled) {\r\n const wasInstanced = 0 !== (VertexAttribState.Instanced & oldState);\r\n const nowInstanced = 0 !== (VertexAttribState.Instanced & newState);\r\n if (wasInstanced !== nowInstanced) {\r\n this.vertexAttribDivisor(i, nowInstanced ? 1 : 0);\r\n }\r\n }\r\n\r\n cur[i] = newState;\r\n }\r\n\r\n // Set the attribute back to disabled, but preserve the divisor.\r\n next[i] &= ~VertexAttribState.Enabled;\r\n }\r\n }\r\n\r\n public vertexAttribDivisor(index: number, divisor: number) { this._extensions.vertexAttribDivisor(index, divisor); }\r\n\r\n public drawArrays(type: GL.PrimitiveType, first: number, count: number, numInstances: number): void {\r\n if (0 !== numInstances) {\r\n this._extensions.drawArraysInst(type, first, count, numInstances);\r\n } else {\r\n this.context.drawArrays(type, first, count);\r\n }\r\n }\r\n\r\n public invalidateFrameBuffer(attachments: number[]): void { this._extensions.invalidateFrameBuffer(attachments); }\r\n\r\n public override enableDiagnostics(enable: RenderDiagnostics): void {\r\n Debug.printEnabled = RenderDiagnostics.None !== (enable & RenderDiagnostics.DebugOutput);\r\n Debug.evaluateEnabled = RenderDiagnostics.None !== (enable & RenderDiagnostics.WebGL);\r\n }\r\n\r\n // RenderSystemDebugControl\r\n public override get debugControl(): RenderSystemDebugControl { return this; }\r\n\r\n private _dpiAwareLOD?: boolean;\r\n public override get dpiAwareLOD(): boolean { return this._dpiAwareLOD ?? super.dpiAwareLOD; }\r\n public override set dpiAwareLOD(dpiAware: boolean) { this._dpiAwareLOD = dpiAware; }\r\n\r\n public loseContext(): boolean {\r\n const ext = this.capabilities.queryExtensionObject<WEBGL_lose_context>(\"WEBGL_lose_context\");\r\n if (undefined === ext)\r\n return false;\r\n\r\n ext.loseContext();\r\n return true;\r\n }\r\n\r\n public compileAllShaders(): boolean {\r\n return this.techniques.compileShaders();\r\n }\r\n\r\n public get isGLTimerSupported(): boolean { return this.glTimer.isSupported; }\r\n public set resultsCallback(callback: GLTimerResultCallback | undefined) {\r\n this.glTimer.resultsCallback = callback;\r\n }\r\n\r\n public override collectStatistics(stats: RenderMemory.Statistics): void {\r\n if (undefined !== this._lineCodeTexture)\r\n stats.addTexture(this._lineCodeTexture.bytesUsed);\r\n\r\n if (undefined !== this._noiseTexture)\r\n stats.addTexture(this._noiseTexture.bytesUsed);\r\n\r\n for (const idMap of this.resourceCache.values())\r\n idMap.collectStatistics(stats);\r\n }\r\n\r\n public setMaxAnisotropy(max: number | undefined): void {\r\n this.capabilities.setMaxAnisotropy(max, this.context);\r\n }\r\n}\r\n"]}
@@ -6,7 +6,7 @@ import { Point2d, Point3d, Range3d, Transform, XAndY, XYZ } from "@itwin/core-ge
6
6
  import { AmbientOcclusion, AnalysisStyle, Frustum, ImageBuffer, RenderTexture, SpatialClassifier, ViewFlags } from "@itwin/core-common";
7
7
  import { HiliteSet } from "../../SelectionSet";
8
8
  import { SceneContext } from "../../ViewContext";
9
- import { Viewport } from "../../Viewport";
9
+ import { ReadImageBufferArgs, Viewport } from "../../Viewport";
10
10
  import { ViewRect } from "../../ViewRect";
11
11
  import { IModelConnection } from "../../IModelConnection";
12
12
  import { CanvasDecoration } from "../CanvasDecoration";
@@ -88,6 +88,7 @@ export declare abstract class Target extends RenderTarget implements RenderTarge
88
88
  activeVolumeClassifierTexture?: WebGLTexture;
89
89
  activeVolumeClassifierProps?: SpatialClassifier;
90
90
  activeVolumeClassifierModelId?: Id64String;
91
+ private _currentAnimationTransformNodeId?;
91
92
  vcSupportIntersectingVolumes: boolean;
92
93
  drawForReadPixels: boolean;
93
94
  drawingBackgroundForReadPixels: boolean;
@@ -214,6 +215,7 @@ export declare abstract class Target extends RenderTarget implements RenderTarge
214
215
  * If wantRect.right or wantRect.bottom is -1, that means "read the entire image".
215
216
  */
216
217
  readImage(wantRectIn: ViewRect, targetSizeIn: Point2d, flipVertically: boolean): ImageBuffer | undefined;
218
+ readImageBuffer(args?: ReadImageBufferArgs): ImageBuffer | undefined;
217
219
  copyImageToCanvas(): HTMLCanvasElement;
218
220
  drawPlanarClassifiers(): void;
219
221
  drawSolarShadowMap(): void;
@@ -221,11 +223,21 @@ export declare abstract class Target extends RenderTarget implements RenderTarge
221
223
  get screenSpaceEffects(): Iterable<string>;
222
224
  set screenSpaceEffects(effects: Iterable<string>);
223
225
  get screenSpaceEffectContext(): ScreenSpaceEffectContext;
226
+ get currentAnimationTransformNodeId(): number | undefined;
227
+ set currentAnimationTransformNodeId(id: number | undefined);
228
+ /** Given GraphicBranch.animationId identifying *any* node in the scene's schedule script, return the transform node Id
229
+ * that should be used to filter the branch's graphics for display, or undefined if no filtering should be applied.
230
+ */
231
+ getAnimationTransformNodeId(animationNodeId: number | undefined): number | undefined;
224
232
  protected abstract _assignDC(): boolean;
225
233
  protected abstract _beginPaint(fbo: FrameBuffer): void;
226
234
  protected abstract _endPaint(): void;
227
235
  collectStatistics(stats: RenderMemory.Statistics): void;
228
236
  protected cssViewRectToDeviceViewRect(rect: ViewRect): ViewRect;
237
+ getRenderCommands(): Array<{
238
+ name: string;
239
+ count: number;
240
+ }>;
229
241
  }
230
242
  /** A Target that renders to a canvas on the screen
231
243
  * @internal