@itwin/core-frontend 5.1.1 → 5.1.3-experimental.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 (884) hide show
  1. package/CHANGELOG.md +13 -1
  2. package/lib/cjs/AccuDraw.js.map +1 -1
  3. package/lib/cjs/AccuSnap.js.map +1 -1
  4. package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
  5. package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -1
  6. package/lib/cjs/AuxCoordSys.js.map +1 -1
  7. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  8. package/lib/cjs/BingLocation.js.map +1 -1
  9. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  10. package/lib/cjs/BriefcaseTxns.js.map +1 -1
  11. package/lib/cjs/CatalogConnection.js.map +1 -1
  12. package/lib/cjs/CategorySelectorState.js.map +1 -1
  13. package/lib/cjs/ChangeFlags.js.map +1 -1
  14. package/lib/cjs/CheckpointConnection.js.map +1 -1
  15. package/lib/cjs/ContextRealityModelState.js.map +1 -1
  16. package/lib/cjs/CoordSystem.js.map +1 -1
  17. package/lib/cjs/DecorationsCache.js.map +1 -1
  18. package/lib/cjs/DevTools.js.map +1 -1
  19. package/lib/cjs/DisplayStyleState.js.map +1 -1
  20. package/lib/cjs/DrawingViewState.js.map +1 -1
  21. package/lib/cjs/ElementLocateManager.js.map +1 -1
  22. package/lib/cjs/EmphasizeElements.js.map +1 -1
  23. package/lib/cjs/EntityState.js.map +1 -1
  24. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  25. package/lib/cjs/FeatureOverrideProvider.js.map +1 -1
  26. package/lib/cjs/FlashSettings.js.map +1 -1
  27. package/lib/cjs/FrontendHubAccess.js.map +1 -1
  28. package/lib/cjs/Frustum2d.js.map +1 -1
  29. package/lib/cjs/FrustumAnimator.js.map +1 -1
  30. package/lib/cjs/FuzzySearch.js.map +1 -1
  31. package/lib/cjs/GeoServices.js.map +1 -1
  32. package/lib/cjs/GlobeAnimator.js.map +1 -1
  33. package/lib/cjs/GraphicalEditingScope.js.map +1 -1
  34. package/lib/cjs/HitDetail.js.map +1 -1
  35. package/lib/cjs/IModelApp.js.map +1 -1
  36. package/lib/cjs/IModelConnection.js.map +1 -1
  37. package/lib/cjs/IModelRoutingContext.js.map +1 -1
  38. package/lib/cjs/IModeljs-css.js.map +1 -1
  39. package/lib/cjs/IpcApp.js.map +1 -1
  40. package/lib/cjs/LinePlaneIntersect.js.map +1 -1
  41. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  42. package/lib/cjs/MarginPercent.js.map +1 -1
  43. package/lib/cjs/Marker.js.map +1 -1
  44. package/lib/cjs/ModelSelectorState.js.map +1 -1
  45. package/lib/cjs/ModelState.js.map +1 -1
  46. package/lib/cjs/NativeApp.js.map +1 -1
  47. package/lib/cjs/NativeAppLogger.js.map +1 -1
  48. package/lib/cjs/NoRenderApp.js.map +1 -1
  49. package/lib/cjs/NotificationManager.js.map +1 -1
  50. package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
  51. package/lib/cjs/PlanarClipMaskState.js.map +1 -1
  52. package/lib/cjs/RealityDataSource.js.map +1 -1
  53. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  54. package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -1
  55. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  56. package/lib/cjs/SelectionSet.js.map +1 -1
  57. package/lib/cjs/SheetViewState.js.map +1 -1
  58. package/lib/cjs/SpatialClassifiersState.js.map +1 -1
  59. package/lib/cjs/SpatialViewState.js.map +1 -1
  60. package/lib/cjs/Sprites.js.map +1 -1
  61. package/lib/cjs/StandardView.js.map +1 -1
  62. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  63. package/lib/cjs/TentativePoint.js.map +1 -1
  64. package/lib/cjs/Tiles.js.map +1 -1
  65. package/lib/cjs/TxnEntityChanges.js.map +1 -1
  66. package/lib/cjs/UserPreferences.js.map +1 -1
  67. package/lib/cjs/ViewAnimation.js.map +1 -1
  68. package/lib/cjs/ViewContext.js.map +1 -1
  69. package/lib/cjs/ViewCreator2d.js.map +1 -1
  70. package/lib/cjs/ViewCreator3d.js.map +1 -1
  71. package/lib/cjs/ViewGlobalLocation.js.map +1 -1
  72. package/lib/cjs/ViewManager.js.map +1 -1
  73. package/lib/cjs/ViewPose.js.map +1 -1
  74. package/lib/cjs/ViewState.js.map +1 -1
  75. package/lib/cjs/ViewStatus.js.map +1 -1
  76. package/lib/cjs/ViewingSpace.js.map +1 -1
  77. package/lib/cjs/Viewport.js.map +1 -1
  78. package/lib/cjs/ViewportSync.js.map +1 -1
  79. package/lib/cjs/common/FrontendLoggerCategory.js.map +1 -1
  80. package/lib/cjs/common/ImageUtil.js.map +1 -1
  81. package/lib/cjs/common/ViewRect.js.map +1 -1
  82. package/lib/cjs/common/WorkerProxy.js.map +1 -1
  83. package/lib/cjs/common/gltf/GltfModel.js.map +1 -1
  84. package/lib/cjs/common/gltf/GltfParser.js.map +1 -1
  85. package/lib/cjs/common/gltf/GltfSchema.js.map +1 -1
  86. package/lib/cjs/common/imdl/CompactEdges.js.map +1 -1
  87. package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
  88. package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -1
  89. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
  90. package/lib/cjs/common/internal/Symbols.js.map +1 -1
  91. package/lib/cjs/common/internal/render/AnimationNodeId.js.map +1 -1
  92. package/lib/cjs/common/internal/render/AuxChannelTable.js.map +1 -1
  93. package/lib/cjs/common/internal/render/ColorMap.js.map +1 -1
  94. package/lib/cjs/common/internal/render/DisplayParams.js.map +1 -1
  95. package/lib/cjs/common/internal/render/EdgeParams.js.map +1 -1
  96. package/lib/cjs/common/internal/render/GeometryAccumulator.js.map +1 -1
  97. package/lib/cjs/common/internal/render/GeometryList.js.map +1 -1
  98. package/lib/cjs/common/internal/render/GeometryPrimitives.js.map +1 -1
  99. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -1
  100. package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -1
  101. package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -1
  102. package/lib/cjs/common/internal/render/LineCode.js.map +1 -1
  103. package/lib/cjs/common/internal/render/MeshBuilder.js.map +1 -1
  104. package/lib/cjs/common/internal/render/MeshBuilderMap.js.map +1 -1
  105. package/lib/cjs/common/internal/render/MeshParams.js.map +1 -1
  106. package/lib/cjs/common/internal/render/MeshPrimitive.js.map +1 -1
  107. package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -1
  108. package/lib/cjs/common/internal/render/OvrFlags.js.map +1 -1
  109. package/lib/cjs/common/internal/render/PointCloudPrimitive.js.map +1 -1
  110. package/lib/cjs/common/internal/render/PointStringParams.js.map +1 -1
  111. package/lib/cjs/common/internal/render/Polyface.js.map +1 -1
  112. package/lib/cjs/common/internal/render/PolylineParams.js.map +1 -1
  113. package/lib/cjs/common/internal/render/Primitives.js.map +1 -1
  114. package/lib/cjs/common/internal/render/Strokes.js.map +1 -1
  115. package/lib/cjs/common/internal/render/SurfaceParams.js.map +1 -1
  116. package/lib/cjs/common/internal/render/VertexIndices.js.map +1 -1
  117. package/lib/cjs/common/internal/render/VertexKey.js.map +1 -1
  118. package/lib/cjs/common/internal/render/VertexTable.js.map +1 -1
  119. package/lib/cjs/common/internal/render/VertexTableBuilder.js.map +1 -1
  120. package/lib/cjs/common/internal/render/VertexTableSplitter.js.map +1 -1
  121. package/lib/cjs/common/render/BatchOptions.js.map +1 -1
  122. package/lib/cjs/common/render/GraphicAssembler.js.map +1 -1
  123. package/lib/cjs/common/render/GraphicDescriptionBuilder.js.map +1 -1
  124. package/lib/cjs/common/render/GraphicDescriptionContext.js.map +1 -1
  125. package/lib/cjs/common/render/GraphicPrimitive.js.map +1 -1
  126. package/lib/cjs/common/render/GraphicType.js.map +1 -1
  127. package/lib/cjs/common/render/InstancedGraphicParams.js.map +1 -1
  128. package/lib/cjs/common/render/MaterialParams.js.map +1 -1
  129. package/lib/cjs/common/render/RenderInstancesParams.js.map +1 -1
  130. package/lib/cjs/common/render/TextureParams.js.map +1 -1
  131. package/lib/cjs/common.js.map +1 -1
  132. package/lib/cjs/core-frontend.js.map +1 -1
  133. package/lib/cjs/extension/Extension.js.map +1 -1
  134. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  135. package/lib/cjs/extension/ExtensionHost.js.map +1 -1
  136. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  137. package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
  138. package/lib/cjs/extension/providers/LocalExtensionProvider.js.map +1 -1
  139. package/lib/cjs/extension/providers/RemoteExtensionProvider.js.map +1 -1
  140. package/lib/cjs/internal/GoogleMapsDecorator.js.map +1 -1
  141. package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -1
  142. package/lib/cjs/internal/ScriptUtils.js.map +1 -1
  143. package/lib/cjs/internal/cross-package.js.map +1 -1
  144. package/lib/cjs/internal/render/AnimationBranchState.js.map +1 -1
  145. package/lib/cjs/internal/render/FrameStatsCollector.js.map +1 -1
  146. package/lib/cjs/internal/render/GraphicBranchFrustum.js.map +1 -1
  147. package/lib/cjs/internal/render/GraphicTemplateImpl.js.map +1 -1
  148. package/lib/cjs/internal/render/MeshMapLayerGraphicParams.js.map +1 -1
  149. package/lib/cjs/internal/render/MockRender.js.map +1 -1
  150. package/lib/cjs/internal/render/PrimitiveBuilder.js.map +1 -1
  151. package/lib/cjs/internal/render/QueryVisibileFeatures.js.map +1 -1
  152. package/lib/cjs/internal/render/RenderAreaPattern.js.map +1 -1
  153. package/lib/cjs/internal/render/RenderGeometry.js.map +1 -1
  154. package/lib/cjs/internal/render/RenderInstancesParamsImpl.js.map +1 -1
  155. package/lib/cjs/internal/render/RenderMaterialSource.js.map +1 -1
  156. package/lib/cjs/internal/render/RenderPlan.js.map +1 -1
  157. package/lib/cjs/internal/render/RenderPlanarClassifier.js.map +1 -1
  158. package/lib/cjs/internal/render/RenderSkyBoxParams.js.map +1 -1
  159. package/lib/cjs/internal/render/RenderSystemDebugControl.js.map +1 -1
  160. package/lib/cjs/internal/render/RenderTargetDebugControl.js.map +1 -1
  161. package/lib/cjs/internal/render/RenderTerrain.js.map +1 -1
  162. package/lib/cjs/internal/render/RenderTextureDrape.js.map +1 -1
  163. package/lib/cjs/internal/render/SceneVolumeClassifier.js.map +1 -1
  164. package/lib/cjs/internal/render/UpsampleRealityMeshParams.js.map +1 -1
  165. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
  166. package/lib/cjs/internal/render/webgl/AttributeBuffers.js.map +1 -1
  167. package/lib/cjs/internal/render/webgl/AttributeMap.js.map +1 -1
  168. package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js +1 -1
  169. package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
  170. package/lib/cjs/internal/render/webgl/BatchState.js.map +1 -1
  171. package/lib/cjs/internal/render/webgl/BatchUniforms.js.map +1 -1
  172. package/lib/cjs/internal/render/webgl/BranchStack.js.map +1 -1
  173. package/lib/cjs/internal/render/webgl/BranchState.js.map +1 -1
  174. package/lib/cjs/internal/render/webgl/BranchUniforms.js.map +1 -1
  175. package/lib/cjs/internal/render/webgl/CachedGeometry.js.map +1 -1
  176. package/lib/cjs/internal/render/webgl/ClipStack.js.map +1 -1
  177. package/lib/cjs/internal/render/webgl/ClipVolume.js.map +1 -1
  178. package/lib/cjs/internal/render/webgl/ClippingProgram.js.map +1 -1
  179. package/lib/cjs/internal/render/webgl/ColorInfo.js.map +1 -1
  180. package/lib/cjs/internal/render/webgl/ContourUniforms.js.map +1 -1
  181. package/lib/cjs/internal/render/webgl/Contours.js.map +1 -1
  182. package/lib/cjs/internal/render/webgl/Diagnostics.js.map +1 -1
  183. package/lib/cjs/internal/render/webgl/Disposable.js.map +1 -1
  184. package/lib/cjs/internal/render/webgl/DrawCommand.js.map +1 -1
  185. package/lib/cjs/internal/render/webgl/EDL.js.map +1 -1
  186. package/lib/cjs/internal/render/webgl/EdgeGeometry.js.map +1 -1
  187. package/lib/cjs/internal/render/webgl/EdgeSettings.js.map +1 -1
  188. package/lib/cjs/internal/render/webgl/FeatureOverrides.js.map +1 -1
  189. package/lib/cjs/internal/render/webgl/FloatRGBA.js.map +1 -1
  190. package/lib/cjs/internal/render/webgl/FrameBuffer.js.map +1 -1
  191. package/lib/cjs/internal/render/webgl/FrustumUniforms.js.map +1 -1
  192. package/lib/cjs/internal/render/webgl/GL.js.map +1 -1
  193. package/lib/cjs/internal/render/webgl/GLTimer.js.map +1 -1
  194. package/lib/cjs/internal/render/webgl/Graphic.js.map +1 -1
  195. package/lib/cjs/internal/render/webgl/HiliteUniforms.js.map +1 -1
  196. package/lib/cjs/internal/render/webgl/IModelFrameLifecycle.js.map +1 -1
  197. package/lib/cjs/internal/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  198. package/lib/cjs/internal/render/webgl/InstancedGeometry.js.map +1 -1
  199. package/lib/cjs/internal/render/webgl/Layer.js.map +1 -1
  200. package/lib/cjs/internal/render/webgl/LayerCommands.js.map +1 -1
  201. package/lib/cjs/internal/render/webgl/LightingUniforms.js.map +1 -1
  202. package/lib/cjs/internal/render/webgl/LineCode.js.map +1 -1
  203. package/lib/cjs/internal/render/webgl/MapLayerParams.js.map +1 -1
  204. package/lib/cjs/internal/render/webgl/Material.js.map +1 -1
  205. package/lib/cjs/internal/render/webgl/Matrix.js.map +1 -1
  206. package/lib/cjs/internal/render/webgl/Mesh.js.map +1 -1
  207. package/lib/cjs/internal/render/webgl/MeshData.js.map +1 -1
  208. package/lib/cjs/internal/render/webgl/MeshGeometry.js.map +1 -1
  209. package/lib/cjs/internal/render/webgl/PerformanceMetrics.js.map +1 -1
  210. package/lib/cjs/internal/render/webgl/PlanarClassifier.js +1 -1
  211. package/lib/cjs/internal/render/webgl/PlanarClassifier.js.map +1 -1
  212. package/lib/cjs/internal/render/webgl/PlanarGrid.js.map +1 -1
  213. package/lib/cjs/internal/render/webgl/PlanarTextureProjection.js.map +1 -1
  214. package/lib/cjs/internal/render/webgl/PointCloud.js.map +1 -1
  215. package/lib/cjs/internal/render/webgl/PointString.js.map +1 -1
  216. package/lib/cjs/internal/render/webgl/Polyline.js.map +1 -1
  217. package/lib/cjs/internal/render/webgl/Primitive.js.map +1 -1
  218. package/lib/cjs/internal/render/webgl/RealityMesh.js.map +1 -1
  219. package/lib/cjs/internal/render/webgl/RealityModelUniforms.js.map +1 -1
  220. package/lib/cjs/internal/render/webgl/RenderBuffer.js.map +1 -1
  221. package/lib/cjs/internal/render/webgl/RenderCommands.js.map +1 -1
  222. package/lib/cjs/internal/render/webgl/RenderFlags.js.map +1 -1
  223. package/lib/cjs/internal/render/webgl/RenderState.js.map +1 -1
  224. package/lib/cjs/internal/render/webgl/SceneCompositor.js.map +1 -1
  225. package/lib/cjs/internal/render/webgl/ScratchDrawParams.js.map +1 -1
  226. package/lib/cjs/internal/render/webgl/ScreenSpaceEffect.js.map +1 -1
  227. package/lib/cjs/internal/render/webgl/ShaderBuilder.js.map +1 -1
  228. package/lib/cjs/internal/render/webgl/ShaderProgram.js.map +1 -1
  229. package/lib/cjs/internal/render/webgl/ShadowUniforms.js.map +1 -1
  230. package/lib/cjs/internal/render/webgl/SolarShadowMap.js.map +1 -1
  231. package/lib/cjs/internal/render/webgl/StyleUniforms.js.map +1 -1
  232. package/lib/cjs/internal/render/webgl/SurfaceGeometry.js.map +1 -1
  233. package/lib/cjs/internal/render/webgl/Sync.js.map +1 -1
  234. package/lib/cjs/internal/render/webgl/System.js.map +1 -1
  235. package/lib/cjs/internal/render/webgl/Target.js.map +1 -1
  236. package/lib/cjs/internal/render/webgl/TargetGraphics.js.map +1 -1
  237. package/lib/cjs/internal/render/webgl/TargetUniforms.js.map +1 -1
  238. package/lib/cjs/internal/render/webgl/Technique.js.map +1 -1
  239. package/lib/cjs/internal/render/webgl/TechniqueFlags.js.map +1 -1
  240. package/lib/cjs/internal/render/webgl/TechniqueId.js.map +1 -1
  241. package/lib/cjs/internal/render/webgl/Texture.js.map +1 -1
  242. package/lib/cjs/internal/render/webgl/TextureDrape.js.map +1 -1
  243. package/lib/cjs/internal/render/webgl/ThematicSensors.js.map +1 -1
  244. package/lib/cjs/internal/render/webgl/ThematicUniforms.js.map +1 -1
  245. package/lib/cjs/internal/render/webgl/UniformHandle.js.map +1 -1
  246. package/lib/cjs/internal/render/webgl/VertexLUT.js.map +1 -1
  247. package/lib/cjs/internal/render/webgl/ViewRectUniforms.js.map +1 -1
  248. package/lib/cjs/internal/render/webgl/VisibleTileFeatures.js.map +1 -1
  249. package/lib/cjs/internal/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  250. package/lib/cjs/internal/render/webgl/glsl/Animation.js.map +1 -1
  251. package/lib/cjs/internal/render/webgl/glsl/Atmosphere.js.map +1 -1
  252. package/lib/cjs/internal/render/webgl/glsl/Blur.js.map +1 -1
  253. package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  254. package/lib/cjs/internal/render/webgl/glsl/ClearTranslucent.js.map +1 -1
  255. package/lib/cjs/internal/render/webgl/glsl/Clipping.js.map +1 -1
  256. package/lib/cjs/internal/render/webgl/glsl/Color.js.map +1 -1
  257. package/lib/cjs/internal/render/webgl/glsl/Combine3Textures.js.map +1 -1
  258. package/lib/cjs/internal/render/webgl/glsl/CombineTextures.js.map +1 -1
  259. package/lib/cjs/internal/render/webgl/glsl/Common.js.map +1 -1
  260. package/lib/cjs/internal/render/webgl/glsl/Composite.js.map +1 -1
  261. package/lib/cjs/internal/render/webgl/glsl/Contours.js.map +1 -1
  262. package/lib/cjs/internal/render/webgl/glsl/CopyColor.js.map +1 -1
  263. package/lib/cjs/internal/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
  264. package/lib/cjs/internal/render/webgl/glsl/CopyStencil.js.map +1 -1
  265. package/lib/cjs/internal/render/webgl/glsl/Decode.js.map +1 -1
  266. package/lib/cjs/internal/render/webgl/glsl/EDL.js.map +1 -1
  267. package/lib/cjs/internal/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  268. package/lib/cjs/internal/render/webgl/glsl/Edge.js.map +1 -1
  269. package/lib/cjs/internal/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  270. package/lib/cjs/internal/render/webgl/glsl/Fragment.js.map +1 -1
  271. package/lib/cjs/internal/render/webgl/glsl/Instancing.js.map +1 -1
  272. package/lib/cjs/internal/render/webgl/glsl/Lighting.js.map +1 -1
  273. package/lib/cjs/internal/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
  274. package/lib/cjs/internal/render/webgl/glsl/LookupTable.js.map +1 -1
  275. package/lib/cjs/internal/render/webgl/glsl/MaplayerDraping.js.map +1 -1
  276. package/lib/cjs/internal/render/webgl/glsl/Monochrome.js.map +1 -1
  277. package/lib/cjs/internal/render/webgl/glsl/PlanarClassification.js.map +1 -1
  278. package/lib/cjs/internal/render/webgl/glsl/PlanarGrid.js.map +1 -1
  279. package/lib/cjs/internal/render/webgl/glsl/PointCloud.js.map +1 -1
  280. package/lib/cjs/internal/render/webgl/glsl/PointString.js.map +1 -1
  281. package/lib/cjs/internal/render/webgl/glsl/Polyline.js.map +1 -1
  282. package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
  283. package/lib/cjs/internal/render/webgl/glsl/RenderPass.js.map +1 -1
  284. package/lib/cjs/internal/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  285. package/lib/cjs/internal/render/webgl/glsl/SkyBox.js.map +1 -1
  286. package/lib/cjs/internal/render/webgl/glsl/SkySphere.js.map +1 -1
  287. package/lib/cjs/internal/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
  288. package/lib/cjs/internal/render/webgl/glsl/Surface.js.map +1 -1
  289. package/lib/cjs/internal/render/webgl/glsl/Thematic.js.map +1 -1
  290. package/lib/cjs/internal/render/webgl/glsl/Translucency.js.map +1 -1
  291. package/lib/cjs/internal/render/webgl/glsl/Vertex.js.map +1 -1
  292. package/lib/cjs/internal/render/webgl/glsl/Viewport.js.map +1 -1
  293. package/lib/cjs/internal/render/webgl/glsl/ViewportQuad.js.map +1 -1
  294. package/lib/cjs/internal/render/webgl/glsl/Wiremesh.js.map +1 -1
  295. package/lib/cjs/internal/tile/B3dmReader.js.map +1 -1
  296. package/lib/cjs/internal/tile/BatchedTileIdMap.js.map +1 -1
  297. package/lib/cjs/internal/tile/CesiumAssetProvider.js.map +1 -1
  298. package/lib/cjs/internal/tile/ClassifierTileTree.js.map +1 -1
  299. package/lib/cjs/internal/tile/ContextShareProvider.js.map +1 -1
  300. package/lib/cjs/internal/tile/DynamicIModelTile.js +1 -0
  301. package/lib/cjs/internal/tile/DynamicIModelTile.js.map +1 -1
  302. package/lib/cjs/internal/tile/FetchCloudStorage.js.map +1 -1
  303. package/lib/cjs/internal/tile/GraphicsCollector.js.map +1 -1
  304. package/lib/cjs/internal/tile/I3dmReader.js.map +1 -1
  305. package/lib/cjs/internal/tile/IModelTile.js.map +1 -1
  306. package/lib/cjs/internal/tile/IModelTileRequestChannels.js.map +1 -1
  307. package/lib/cjs/internal/tile/IModelTileTree.js.map +1 -1
  308. package/lib/cjs/internal/tile/ImdlDecoder.js.map +1 -1
  309. package/lib/cjs/internal/tile/ImdlGraphicsCreator.js.map +1 -1
  310. package/lib/cjs/internal/tile/ImdlParser.js.map +1 -1
  311. package/lib/cjs/internal/tile/LRUTileList.js.map +1 -1
  312. package/lib/cjs/internal/tile/LayerTileTreeHandler.js.map +1 -1
  313. package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
  314. package/lib/cjs/internal/tile/MeshoptCompression.js.map +1 -1
  315. package/lib/cjs/internal/tile/OPCFormatInterpreter.js.map +1 -1
  316. package/lib/cjs/internal/tile/OrbitGtTileTree.js.map +1 -1
  317. package/lib/cjs/internal/tile/PntsReader.js.map +1 -1
  318. package/lib/cjs/internal/tile/PrimaryTileTree.js.map +1 -1
  319. package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
  320. package/lib/cjs/internal/tile/RealityTileDrawArgs.js.map +1 -1
  321. package/lib/cjs/internal/tile/RealityTileLoader.js.map +1 -1
  322. package/lib/cjs/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  323. package/lib/cjs/internal/tile/TileUserSet.js.map +1 -1
  324. package/lib/cjs/internal/tile/ViewFlagOverrides.js.map +1 -1
  325. package/lib/cjs/internal/tile/map/ArcGISTileMap.js.map +1 -1
  326. package/lib/cjs/internal/tile/map/ArcGisUtilities.js.map +1 -1
  327. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  328. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  329. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -1
  330. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  331. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  332. package/lib/cjs/internal/tile/map/ImageryProviders/CoordinatesUtils.js.map +1 -1
  333. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +1 -1
  334. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +1 -1
  335. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
  336. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +1 -1
  337. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  338. package/lib/cjs/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  339. package/lib/cjs/internal/tile/map/ImageryProviders/WebMercator.js.map +1 -1
  340. package/lib/cjs/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  341. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  342. package/lib/cjs/internal/tile/map/MapTileAvailability.js.map +1 -1
  343. package/lib/cjs/internal/tile/map/MapTileLoader.js.map +1 -1
  344. package/lib/cjs/internal/tile/map/UrlUtils.js.map +1 -1
  345. package/lib/cjs/internal/tile/map/WmsCapabilities.js.map +1 -1
  346. package/lib/cjs/internal/tile/map/WmsUtilities.js.map +1 -1
  347. package/lib/cjs/internal/tile/map/WmtsCapabilities.js.map +1 -1
  348. package/lib/cjs/internal/webgl.js.map +1 -1
  349. package/lib/cjs/properties/AngleDescription.js.map +1 -1
  350. package/lib/cjs/properties/FormattedQuantityDescription.js.map +1 -1
  351. package/lib/cjs/properties/LengthDescription.js.map +1 -1
  352. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  353. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  354. package/lib/cjs/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
  355. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  356. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
  357. package/lib/cjs/quantity-formatting/UnitsData.js.map +1 -1
  358. package/lib/cjs/render/CanvasDecoration.js.map +1 -1
  359. package/lib/cjs/render/CreateRenderMaterialArgs.js.map +1 -1
  360. package/lib/cjs/render/CreateTextureArgs.js.map +1 -1
  361. package/lib/cjs/render/Decorations.js.map +1 -1
  362. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  363. package/lib/cjs/render/FrameStats.js.map +1 -1
  364. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  365. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  366. package/lib/cjs/render/GraphicTemplate.js.map +1 -1
  367. package/lib/cjs/render/MeshArgs.js.map +1 -1
  368. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  369. package/lib/cjs/render/Pixel.js.map +1 -1
  370. package/lib/cjs/render/PolylineArgs.js.map +1 -1
  371. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  372. package/lib/cjs/render/RenderClipVolume.js.map +1 -1
  373. package/lib/cjs/render/RenderGraphic.js.map +1 -1
  374. package/lib/cjs/render/RenderMemory.js.map +1 -1
  375. package/lib/cjs/render/RenderSystem.js.map +1 -1
  376. package/lib/cjs/render/RenderTarget.js.map +1 -1
  377. package/lib/cjs/render/Scene.js.map +1 -1
  378. package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
  379. package/lib/cjs/render/VisibleFeature.js.map +1 -1
  380. package/lib/cjs/request/Request.js.map +1 -1
  381. package/lib/cjs/request/utils.js.map +1 -1
  382. package/lib/cjs/tile/DisclosedTileTreeSet.js.map +1 -1
  383. package/lib/cjs/tile/GltfReader.js.map +1 -1
  384. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  385. package/lib/cjs/tile/RealityTile.js.map +1 -1
  386. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  387. package/lib/cjs/tile/RenderGraphicTileTree.js.map +1 -1
  388. package/lib/cjs/tile/Tile.js.map +1 -1
  389. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  390. package/lib/cjs/tile/TileContent.js.map +1 -1
  391. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  392. package/lib/cjs/tile/TileGeometryCollector.js.map +1 -1
  393. package/lib/cjs/tile/TileParams.js.map +1 -1
  394. package/lib/cjs/tile/TileRequest.js.map +1 -1
  395. package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
  396. package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
  397. package/lib/cjs/tile/TileStorage.js.map +1 -1
  398. package/lib/cjs/tile/TileTree.js.map +1 -1
  399. package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
  400. package/lib/cjs/tile/TileTreeParams.js.map +1 -1
  401. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  402. package/lib/cjs/tile/TileTreeSupplier.js.map +1 -1
  403. package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
  404. package/lib/cjs/tile/TileUser.js.map +1 -1
  405. package/lib/cjs/tile/TiledGraphicsProvider.js.map +1 -1
  406. package/lib/cjs/tile/internal.js.map +1 -1
  407. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  408. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  409. package/lib/cjs/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  410. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  411. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  412. package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -1
  413. package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -1
  414. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  415. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  416. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  417. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  418. package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
  419. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  420. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  421. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  422. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  423. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  424. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  425. package/lib/cjs/tile/map/TerrainProvider.js.map +1 -1
  426. package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
  427. package/lib/cjs/tools/AccuDrawViewportUI.js.map +1 -1
  428. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  429. package/lib/cjs/tools/EditManipulator.js.map +1 -1
  430. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  431. package/lib/cjs/tools/EventController.js.map +1 -1
  432. package/lib/cjs/tools/IdleTool.js.map +1 -1
  433. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  434. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  435. package/lib/cjs/tools/SelectTool.js.map +1 -1
  436. package/lib/cjs/tools/Tool.js.map +1 -1
  437. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  438. package/lib/cjs/tools/ToolAssistance.js.map +1 -1
  439. package/lib/cjs/tools/ToolSettings.js.map +1 -1
  440. package/lib/cjs/tools/ViewTool.js.map +1 -1
  441. package/lib/cjs/workers/ImdlParser/Worker.js.map +1 -1
  442. package/lib/cjs/workers/RegisterWorker.js.map +1 -1
  443. package/lib/esm/AccuDraw.js.map +1 -1
  444. package/lib/esm/AccuSnap.js.map +1 -1
  445. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  446. package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -1
  447. package/lib/esm/AuxCoordSys.js.map +1 -1
  448. package/lib/esm/BackgroundMapGeometry.js.map +1 -1
  449. package/lib/esm/BingLocation.js.map +1 -1
  450. package/lib/esm/BriefcaseConnection.js.map +1 -1
  451. package/lib/esm/BriefcaseTxns.js.map +1 -1
  452. package/lib/esm/CatalogConnection.js.map +1 -1
  453. package/lib/esm/CategorySelectorState.js.map +1 -1
  454. package/lib/esm/ChangeFlags.js.map +1 -1
  455. package/lib/esm/CheckpointConnection.js.map +1 -1
  456. package/lib/esm/ContextRealityModelState.js.map +1 -1
  457. package/lib/esm/CoordSystem.js.map +1 -1
  458. package/lib/esm/DecorationsCache.js.map +1 -1
  459. package/lib/esm/DevTools.js.map +1 -1
  460. package/lib/esm/DisplayStyleState.js.map +1 -1
  461. package/lib/esm/DrawingViewState.js.map +1 -1
  462. package/lib/esm/ElementLocateManager.js.map +1 -1
  463. package/lib/esm/EmphasizeElements.js.map +1 -1
  464. package/lib/esm/EntityState.js.map +1 -1
  465. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  466. package/lib/esm/FeatureOverrideProvider.js.map +1 -1
  467. package/lib/esm/FlashSettings.js.map +1 -1
  468. package/lib/esm/FrontendHubAccess.js.map +1 -1
  469. package/lib/esm/Frustum2d.js.map +1 -1
  470. package/lib/esm/FrustumAnimator.js.map +1 -1
  471. package/lib/esm/FuzzySearch.js.map +1 -1
  472. package/lib/esm/GeoServices.js.map +1 -1
  473. package/lib/esm/GlobeAnimator.js.map +1 -1
  474. package/lib/esm/GraphicalEditingScope.js.map +1 -1
  475. package/lib/esm/HitDetail.js.map +1 -1
  476. package/lib/esm/IModelApp.js.map +1 -1
  477. package/lib/esm/IModelConnection.js.map +1 -1
  478. package/lib/esm/IModelRoutingContext.js.map +1 -1
  479. package/lib/esm/IModeljs-css.js.map +1 -1
  480. package/lib/esm/IpcApp.js.map +1 -1
  481. package/lib/esm/LinePlaneIntersect.js.map +1 -1
  482. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  483. package/lib/esm/MarginPercent.js.map +1 -1
  484. package/lib/esm/Marker.js.map +1 -1
  485. package/lib/esm/ModelSelectorState.js.map +1 -1
  486. package/lib/esm/ModelState.js.map +1 -1
  487. package/lib/esm/NativeApp.js.map +1 -1
  488. package/lib/esm/NativeAppLogger.js.map +1 -1
  489. package/lib/esm/NoRenderApp.js.map +1 -1
  490. package/lib/esm/NotificationManager.js.map +1 -1
  491. package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
  492. package/lib/esm/PlanarClipMaskState.js.map +1 -1
  493. package/lib/esm/RealityDataSource.js.map +1 -1
  494. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  495. package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -1
  496. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  497. package/lib/esm/SelectionSet.js.map +1 -1
  498. package/lib/esm/SheetViewState.js.map +1 -1
  499. package/lib/esm/SpatialClassifiersState.js.map +1 -1
  500. package/lib/esm/SpatialViewState.js.map +1 -1
  501. package/lib/esm/Sprites.js.map +1 -1
  502. package/lib/esm/StandardView.js.map +1 -1
  503. package/lib/esm/SubCategoriesCache.js.map +1 -1
  504. package/lib/esm/TentativePoint.js.map +1 -1
  505. package/lib/esm/Tiles.js.map +1 -1
  506. package/lib/esm/TxnEntityChanges.js.map +1 -1
  507. package/lib/esm/UserPreferences.js.map +1 -1
  508. package/lib/esm/ViewAnimation.js.map +1 -1
  509. package/lib/esm/ViewContext.js.map +1 -1
  510. package/lib/esm/ViewCreator2d.js.map +1 -1
  511. package/lib/esm/ViewCreator3d.js.map +1 -1
  512. package/lib/esm/ViewGlobalLocation.js.map +1 -1
  513. package/lib/esm/ViewManager.js.map +1 -1
  514. package/lib/esm/ViewPose.js.map +1 -1
  515. package/lib/esm/ViewState.js.map +1 -1
  516. package/lib/esm/ViewStatus.js.map +1 -1
  517. package/lib/esm/ViewingSpace.js.map +1 -1
  518. package/lib/esm/Viewport.js.map +1 -1
  519. package/lib/esm/ViewportSync.js.map +1 -1
  520. package/lib/esm/common/FrontendLoggerCategory.js.map +1 -1
  521. package/lib/esm/common/ImageUtil.js.map +1 -1
  522. package/lib/esm/common/ViewRect.js.map +1 -1
  523. package/lib/esm/common/WorkerProxy.js.map +1 -1
  524. package/lib/esm/common/gltf/GltfModel.js.map +1 -1
  525. package/lib/esm/common/gltf/GltfParser.js.map +1 -1
  526. package/lib/esm/common/gltf/GltfSchema.js.map +1 -1
  527. package/lib/esm/common/imdl/CompactEdges.js.map +1 -1
  528. package/lib/esm/common/imdl/ImdlModel.js.map +1 -1
  529. package/lib/esm/common/imdl/ImdlSchema.js.map +1 -1
  530. package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
  531. package/lib/esm/common/internal/Symbols.js.map +1 -1
  532. package/lib/esm/common/internal/render/AnimationNodeId.js.map +1 -1
  533. package/lib/esm/common/internal/render/AuxChannelTable.js.map +1 -1
  534. package/lib/esm/common/internal/render/ColorMap.js.map +1 -1
  535. package/lib/esm/common/internal/render/DisplayParams.js.map +1 -1
  536. package/lib/esm/common/internal/render/EdgeParams.js.map +1 -1
  537. package/lib/esm/common/internal/render/GeometryAccumulator.js.map +1 -1
  538. package/lib/esm/common/internal/render/GeometryList.js.map +1 -1
  539. package/lib/esm/common/internal/render/GeometryPrimitives.js.map +1 -1
  540. package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -1
  541. package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -1
  542. package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -1
  543. package/lib/esm/common/internal/render/LineCode.js.map +1 -1
  544. package/lib/esm/common/internal/render/MeshBuilder.js.map +1 -1
  545. package/lib/esm/common/internal/render/MeshBuilderMap.js.map +1 -1
  546. package/lib/esm/common/internal/render/MeshParams.js.map +1 -1
  547. package/lib/esm/common/internal/render/MeshPrimitive.js.map +1 -1
  548. package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -1
  549. package/lib/esm/common/internal/render/OvrFlags.js.map +1 -1
  550. package/lib/esm/common/internal/render/PointCloudPrimitive.js.map +1 -1
  551. package/lib/esm/common/internal/render/PointStringParams.js.map +1 -1
  552. package/lib/esm/common/internal/render/Polyface.js.map +1 -1
  553. package/lib/esm/common/internal/render/PolylineParams.js.map +1 -1
  554. package/lib/esm/common/internal/render/Primitives.js.map +1 -1
  555. package/lib/esm/common/internal/render/Strokes.js.map +1 -1
  556. package/lib/esm/common/internal/render/SurfaceParams.js.map +1 -1
  557. package/lib/esm/common/internal/render/VertexIndices.js.map +1 -1
  558. package/lib/esm/common/internal/render/VertexKey.js.map +1 -1
  559. package/lib/esm/common/internal/render/VertexTable.js.map +1 -1
  560. package/lib/esm/common/internal/render/VertexTableBuilder.js.map +1 -1
  561. package/lib/esm/common/internal/render/VertexTableSplitter.js.map +1 -1
  562. package/lib/esm/common/render/BatchOptions.js.map +1 -1
  563. package/lib/esm/common/render/GraphicAssembler.js.map +1 -1
  564. package/lib/esm/common/render/GraphicDescriptionBuilder.js.map +1 -1
  565. package/lib/esm/common/render/GraphicDescriptionContext.js.map +1 -1
  566. package/lib/esm/common/render/GraphicPrimitive.js.map +1 -1
  567. package/lib/esm/common/render/GraphicType.js.map +1 -1
  568. package/lib/esm/common/render/InstancedGraphicParams.js.map +1 -1
  569. package/lib/esm/common/render/MaterialParams.js.map +1 -1
  570. package/lib/esm/common/render/RenderInstancesParams.js.map +1 -1
  571. package/lib/esm/common/render/TextureParams.js.map +1 -1
  572. package/lib/esm/common.js.map +1 -1
  573. package/lib/esm/core-frontend.js.map +1 -1
  574. package/lib/esm/extension/Extension.js.map +1 -1
  575. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  576. package/lib/esm/extension/ExtensionHost.js.map +1 -1
  577. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  578. package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -1
  579. package/lib/esm/extension/providers/LocalExtensionProvider.js.map +1 -1
  580. package/lib/esm/extension/providers/RemoteExtensionProvider.js.map +1 -1
  581. package/lib/esm/internal/GoogleMapsDecorator.js.map +1 -1
  582. package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -1
  583. package/lib/esm/internal/ScriptUtils.js.map +1 -1
  584. package/lib/esm/internal/cross-package.js.map +1 -1
  585. package/lib/esm/internal/render/AnimationBranchState.js.map +1 -1
  586. package/lib/esm/internal/render/FrameStatsCollector.js.map +1 -1
  587. package/lib/esm/internal/render/GraphicBranchFrustum.js.map +1 -1
  588. package/lib/esm/internal/render/GraphicTemplateImpl.js.map +1 -1
  589. package/lib/esm/internal/render/MeshMapLayerGraphicParams.js.map +1 -1
  590. package/lib/esm/internal/render/MockRender.js.map +1 -1
  591. package/lib/esm/internal/render/PrimitiveBuilder.js.map +1 -1
  592. package/lib/esm/internal/render/QueryVisibileFeatures.js.map +1 -1
  593. package/lib/esm/internal/render/RenderAreaPattern.js.map +1 -1
  594. package/lib/esm/internal/render/RenderGeometry.js.map +1 -1
  595. package/lib/esm/internal/render/RenderInstancesParamsImpl.js.map +1 -1
  596. package/lib/esm/internal/render/RenderMaterialSource.js.map +1 -1
  597. package/lib/esm/internal/render/RenderPlan.js.map +1 -1
  598. package/lib/esm/internal/render/RenderPlanarClassifier.js.map +1 -1
  599. package/lib/esm/internal/render/RenderSkyBoxParams.js.map +1 -1
  600. package/lib/esm/internal/render/RenderSystemDebugControl.js.map +1 -1
  601. package/lib/esm/internal/render/RenderTargetDebugControl.js.map +1 -1
  602. package/lib/esm/internal/render/RenderTerrain.js.map +1 -1
  603. package/lib/esm/internal/render/RenderTextureDrape.js.map +1 -1
  604. package/lib/esm/internal/render/SceneVolumeClassifier.js.map +1 -1
  605. package/lib/esm/internal/render/UpsampleRealityMeshParams.js.map +1 -1
  606. package/lib/esm/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
  607. package/lib/esm/internal/render/webgl/AttributeBuffers.js.map +1 -1
  608. package/lib/esm/internal/render/webgl/AttributeMap.js.map +1 -1
  609. package/lib/esm/internal/render/webgl/BackgroundMapDrape.js +1 -1
  610. package/lib/esm/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
  611. package/lib/esm/internal/render/webgl/BatchState.js.map +1 -1
  612. package/lib/esm/internal/render/webgl/BatchUniforms.js.map +1 -1
  613. package/lib/esm/internal/render/webgl/BranchStack.js.map +1 -1
  614. package/lib/esm/internal/render/webgl/BranchState.js.map +1 -1
  615. package/lib/esm/internal/render/webgl/BranchUniforms.js.map +1 -1
  616. package/lib/esm/internal/render/webgl/CachedGeometry.js.map +1 -1
  617. package/lib/esm/internal/render/webgl/ClipStack.js.map +1 -1
  618. package/lib/esm/internal/render/webgl/ClipVolume.js.map +1 -1
  619. package/lib/esm/internal/render/webgl/ClippingProgram.js.map +1 -1
  620. package/lib/esm/internal/render/webgl/ColorInfo.js.map +1 -1
  621. package/lib/esm/internal/render/webgl/ContourUniforms.js.map +1 -1
  622. package/lib/esm/internal/render/webgl/Contours.js.map +1 -1
  623. package/lib/esm/internal/render/webgl/Diagnostics.js.map +1 -1
  624. package/lib/esm/internal/render/webgl/Disposable.js.map +1 -1
  625. package/lib/esm/internal/render/webgl/DrawCommand.js.map +1 -1
  626. package/lib/esm/internal/render/webgl/EDL.js.map +1 -1
  627. package/lib/esm/internal/render/webgl/EdgeGeometry.js.map +1 -1
  628. package/lib/esm/internal/render/webgl/EdgeSettings.js.map +1 -1
  629. package/lib/esm/internal/render/webgl/FeatureOverrides.js.map +1 -1
  630. package/lib/esm/internal/render/webgl/FloatRGBA.js.map +1 -1
  631. package/lib/esm/internal/render/webgl/FrameBuffer.js.map +1 -1
  632. package/lib/esm/internal/render/webgl/FrustumUniforms.js.map +1 -1
  633. package/lib/esm/internal/render/webgl/GL.js.map +1 -1
  634. package/lib/esm/internal/render/webgl/GLTimer.js.map +1 -1
  635. package/lib/esm/internal/render/webgl/Graphic.js.map +1 -1
  636. package/lib/esm/internal/render/webgl/HiliteUniforms.js.map +1 -1
  637. package/lib/esm/internal/render/webgl/IModelFrameLifecycle.js.map +1 -1
  638. package/lib/esm/internal/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  639. package/lib/esm/internal/render/webgl/InstancedGeometry.js.map +1 -1
  640. package/lib/esm/internal/render/webgl/Layer.js.map +1 -1
  641. package/lib/esm/internal/render/webgl/LayerCommands.js.map +1 -1
  642. package/lib/esm/internal/render/webgl/LightingUniforms.js.map +1 -1
  643. package/lib/esm/internal/render/webgl/LineCode.js.map +1 -1
  644. package/lib/esm/internal/render/webgl/MapLayerParams.js.map +1 -1
  645. package/lib/esm/internal/render/webgl/Material.js.map +1 -1
  646. package/lib/esm/internal/render/webgl/Matrix.js.map +1 -1
  647. package/lib/esm/internal/render/webgl/Mesh.js.map +1 -1
  648. package/lib/esm/internal/render/webgl/MeshData.js.map +1 -1
  649. package/lib/esm/internal/render/webgl/MeshGeometry.js.map +1 -1
  650. package/lib/esm/internal/render/webgl/PerformanceMetrics.js.map +1 -1
  651. package/lib/esm/internal/render/webgl/PlanarClassifier.js +1 -1
  652. package/lib/esm/internal/render/webgl/PlanarClassifier.js.map +1 -1
  653. package/lib/esm/internal/render/webgl/PlanarGrid.js.map +1 -1
  654. package/lib/esm/internal/render/webgl/PlanarTextureProjection.js.map +1 -1
  655. package/lib/esm/internal/render/webgl/PointCloud.js.map +1 -1
  656. package/lib/esm/internal/render/webgl/PointString.js.map +1 -1
  657. package/lib/esm/internal/render/webgl/Polyline.js.map +1 -1
  658. package/lib/esm/internal/render/webgl/Primitive.js.map +1 -1
  659. package/lib/esm/internal/render/webgl/RealityMesh.js.map +1 -1
  660. package/lib/esm/internal/render/webgl/RealityModelUniforms.js.map +1 -1
  661. package/lib/esm/internal/render/webgl/RenderBuffer.js.map +1 -1
  662. package/lib/esm/internal/render/webgl/RenderCommands.js.map +1 -1
  663. package/lib/esm/internal/render/webgl/RenderFlags.js.map +1 -1
  664. package/lib/esm/internal/render/webgl/RenderState.js.map +1 -1
  665. package/lib/esm/internal/render/webgl/SceneCompositor.js.map +1 -1
  666. package/lib/esm/internal/render/webgl/ScratchDrawParams.js.map +1 -1
  667. package/lib/esm/internal/render/webgl/ScreenSpaceEffect.js.map +1 -1
  668. package/lib/esm/internal/render/webgl/ShaderBuilder.js.map +1 -1
  669. package/lib/esm/internal/render/webgl/ShaderProgram.js.map +1 -1
  670. package/lib/esm/internal/render/webgl/ShadowUniforms.js.map +1 -1
  671. package/lib/esm/internal/render/webgl/SolarShadowMap.js.map +1 -1
  672. package/lib/esm/internal/render/webgl/StyleUniforms.js.map +1 -1
  673. package/lib/esm/internal/render/webgl/SurfaceGeometry.js.map +1 -1
  674. package/lib/esm/internal/render/webgl/Sync.js.map +1 -1
  675. package/lib/esm/internal/render/webgl/System.js.map +1 -1
  676. package/lib/esm/internal/render/webgl/Target.js.map +1 -1
  677. package/lib/esm/internal/render/webgl/TargetGraphics.js.map +1 -1
  678. package/lib/esm/internal/render/webgl/TargetUniforms.js.map +1 -1
  679. package/lib/esm/internal/render/webgl/Technique.js.map +1 -1
  680. package/lib/esm/internal/render/webgl/TechniqueFlags.js.map +1 -1
  681. package/lib/esm/internal/render/webgl/TechniqueId.js.map +1 -1
  682. package/lib/esm/internal/render/webgl/Texture.js.map +1 -1
  683. package/lib/esm/internal/render/webgl/TextureDrape.js.map +1 -1
  684. package/lib/esm/internal/render/webgl/ThematicSensors.js.map +1 -1
  685. package/lib/esm/internal/render/webgl/ThematicUniforms.js.map +1 -1
  686. package/lib/esm/internal/render/webgl/UniformHandle.js.map +1 -1
  687. package/lib/esm/internal/render/webgl/VertexLUT.js.map +1 -1
  688. package/lib/esm/internal/render/webgl/ViewRectUniforms.js.map +1 -1
  689. package/lib/esm/internal/render/webgl/VisibleTileFeatures.js.map +1 -1
  690. package/lib/esm/internal/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  691. package/lib/esm/internal/render/webgl/glsl/Animation.js.map +1 -1
  692. package/lib/esm/internal/render/webgl/glsl/Atmosphere.js.map +1 -1
  693. package/lib/esm/internal/render/webgl/glsl/Blur.js.map +1 -1
  694. package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  695. package/lib/esm/internal/render/webgl/glsl/ClearTranslucent.js.map +1 -1
  696. package/lib/esm/internal/render/webgl/glsl/Clipping.js.map +1 -1
  697. package/lib/esm/internal/render/webgl/glsl/Color.js.map +1 -1
  698. package/lib/esm/internal/render/webgl/glsl/Combine3Textures.js.map +1 -1
  699. package/lib/esm/internal/render/webgl/glsl/CombineTextures.js.map +1 -1
  700. package/lib/esm/internal/render/webgl/glsl/Common.js.map +1 -1
  701. package/lib/esm/internal/render/webgl/glsl/Composite.js.map +1 -1
  702. package/lib/esm/internal/render/webgl/glsl/Contours.js.map +1 -1
  703. package/lib/esm/internal/render/webgl/glsl/CopyColor.js.map +1 -1
  704. package/lib/esm/internal/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
  705. package/lib/esm/internal/render/webgl/glsl/CopyStencil.js.map +1 -1
  706. package/lib/esm/internal/render/webgl/glsl/Decode.js.map +1 -1
  707. package/lib/esm/internal/render/webgl/glsl/EDL.js.map +1 -1
  708. package/lib/esm/internal/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  709. package/lib/esm/internal/render/webgl/glsl/Edge.js.map +1 -1
  710. package/lib/esm/internal/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  711. package/lib/esm/internal/render/webgl/glsl/Fragment.js.map +1 -1
  712. package/lib/esm/internal/render/webgl/glsl/Instancing.js.map +1 -1
  713. package/lib/esm/internal/render/webgl/glsl/Lighting.js.map +1 -1
  714. package/lib/esm/internal/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
  715. package/lib/esm/internal/render/webgl/glsl/LookupTable.js.map +1 -1
  716. package/lib/esm/internal/render/webgl/glsl/MaplayerDraping.js.map +1 -1
  717. package/lib/esm/internal/render/webgl/glsl/Monochrome.js.map +1 -1
  718. package/lib/esm/internal/render/webgl/glsl/PlanarClassification.js.map +1 -1
  719. package/lib/esm/internal/render/webgl/glsl/PlanarGrid.js.map +1 -1
  720. package/lib/esm/internal/render/webgl/glsl/PointCloud.js.map +1 -1
  721. package/lib/esm/internal/render/webgl/glsl/PointString.js.map +1 -1
  722. package/lib/esm/internal/render/webgl/glsl/Polyline.js.map +1 -1
  723. package/lib/esm/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
  724. package/lib/esm/internal/render/webgl/glsl/RenderPass.js.map +1 -1
  725. package/lib/esm/internal/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  726. package/lib/esm/internal/render/webgl/glsl/SkyBox.js.map +1 -1
  727. package/lib/esm/internal/render/webgl/glsl/SkySphere.js.map +1 -1
  728. package/lib/esm/internal/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
  729. package/lib/esm/internal/render/webgl/glsl/Surface.js.map +1 -1
  730. package/lib/esm/internal/render/webgl/glsl/Thematic.js.map +1 -1
  731. package/lib/esm/internal/render/webgl/glsl/Translucency.js.map +1 -1
  732. package/lib/esm/internal/render/webgl/glsl/Vertex.js.map +1 -1
  733. package/lib/esm/internal/render/webgl/glsl/Viewport.js.map +1 -1
  734. package/lib/esm/internal/render/webgl/glsl/ViewportQuad.js.map +1 -1
  735. package/lib/esm/internal/render/webgl/glsl/Wiremesh.js.map +1 -1
  736. package/lib/esm/internal/tile/B3dmReader.js.map +1 -1
  737. package/lib/esm/internal/tile/BatchedTileIdMap.js.map +1 -1
  738. package/lib/esm/internal/tile/CesiumAssetProvider.js.map +1 -1
  739. package/lib/esm/internal/tile/ClassifierTileTree.js.map +1 -1
  740. package/lib/esm/internal/tile/ContextShareProvider.js.map +1 -1
  741. package/lib/esm/internal/tile/DynamicIModelTile.js +1 -0
  742. package/lib/esm/internal/tile/DynamicIModelTile.js.map +1 -1
  743. package/lib/esm/internal/tile/FetchCloudStorage.js.map +1 -1
  744. package/lib/esm/internal/tile/GraphicsCollector.js.map +1 -1
  745. package/lib/esm/internal/tile/I3dmReader.js.map +1 -1
  746. package/lib/esm/internal/tile/IModelTile.js.map +1 -1
  747. package/lib/esm/internal/tile/IModelTileRequestChannels.js.map +1 -1
  748. package/lib/esm/internal/tile/IModelTileTree.js.map +1 -1
  749. package/lib/esm/internal/tile/ImdlDecoder.js.map +1 -1
  750. package/lib/esm/internal/tile/ImdlGraphicsCreator.js.map +1 -1
  751. package/lib/esm/internal/tile/ImdlParser.js.map +1 -1
  752. package/lib/esm/internal/tile/LRUTileList.js.map +1 -1
  753. package/lib/esm/internal/tile/LayerTileTreeHandler.js.map +1 -1
  754. package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
  755. package/lib/esm/internal/tile/MeshoptCompression.js.map +1 -1
  756. package/lib/esm/internal/tile/OPCFormatInterpreter.js.map +1 -1
  757. package/lib/esm/internal/tile/OrbitGtTileTree.js.map +1 -1
  758. package/lib/esm/internal/tile/PntsReader.js.map +1 -1
  759. package/lib/esm/internal/tile/PrimaryTileTree.js.map +1 -1
  760. package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
  761. package/lib/esm/internal/tile/RealityTileDrawArgs.js.map +1 -1
  762. package/lib/esm/internal/tile/RealityTileLoader.js.map +1 -1
  763. package/lib/esm/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  764. package/lib/esm/internal/tile/TileUserSet.js.map +1 -1
  765. package/lib/esm/internal/tile/ViewFlagOverrides.js.map +1 -1
  766. package/lib/esm/internal/tile/map/ArcGISTileMap.js.map +1 -1
  767. package/lib/esm/internal/tile/map/ArcGisUtilities.js.map +1 -1
  768. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  769. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  770. package/lib/esm/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -1
  771. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  772. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  773. package/lib/esm/internal/tile/map/ImageryProviders/CoordinatesUtils.js.map +1 -1
  774. package/lib/esm/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +1 -1
  775. package/lib/esm/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +1 -1
  776. package/lib/esm/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
  777. package/lib/esm/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +1 -1
  778. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  779. package/lib/esm/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  780. package/lib/esm/internal/tile/map/ImageryProviders/WebMercator.js.map +1 -1
  781. package/lib/esm/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  782. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  783. package/lib/esm/internal/tile/map/MapTileAvailability.js.map +1 -1
  784. package/lib/esm/internal/tile/map/MapTileLoader.js.map +1 -1
  785. package/lib/esm/internal/tile/map/UrlUtils.js.map +1 -1
  786. package/lib/esm/internal/tile/map/WmsCapabilities.js.map +1 -1
  787. package/lib/esm/internal/tile/map/WmsUtilities.js.map +1 -1
  788. package/lib/esm/internal/tile/map/WmtsCapabilities.js.map +1 -1
  789. package/lib/esm/internal/webgl.js.map +1 -1
  790. package/lib/esm/properties/AngleDescription.js.map +1 -1
  791. package/lib/esm/properties/FormattedQuantityDescription.js.map +1 -1
  792. package/lib/esm/properties/LengthDescription.js.map +1 -1
  793. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  794. package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  795. package/lib/esm/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
  796. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  797. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
  798. package/lib/esm/quantity-formatting/UnitsData.js.map +1 -1
  799. package/lib/esm/render/CanvasDecoration.js.map +1 -1
  800. package/lib/esm/render/CreateRenderMaterialArgs.js.map +1 -1
  801. package/lib/esm/render/CreateTextureArgs.js.map +1 -1
  802. package/lib/esm/render/Decorations.js.map +1 -1
  803. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  804. package/lib/esm/render/FrameStats.js.map +1 -1
  805. package/lib/esm/render/GraphicBranch.js.map +1 -1
  806. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  807. package/lib/esm/render/GraphicTemplate.js.map +1 -1
  808. package/lib/esm/render/MeshArgs.js.map +1 -1
  809. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  810. package/lib/esm/render/Pixel.js.map +1 -1
  811. package/lib/esm/render/PolylineArgs.js.map +1 -1
  812. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  813. package/lib/esm/render/RenderClipVolume.js.map +1 -1
  814. package/lib/esm/render/RenderGraphic.js.map +1 -1
  815. package/lib/esm/render/RenderMemory.js.map +1 -1
  816. package/lib/esm/render/RenderSystem.js.map +1 -1
  817. package/lib/esm/render/RenderTarget.js.map +1 -1
  818. package/lib/esm/render/Scene.js.map +1 -1
  819. package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
  820. package/lib/esm/render/VisibleFeature.js.map +1 -1
  821. package/lib/esm/request/Request.js.map +1 -1
  822. package/lib/esm/request/utils.js.map +1 -1
  823. package/lib/esm/tile/DisclosedTileTreeSet.js.map +1 -1
  824. package/lib/esm/tile/GltfReader.js.map +1 -1
  825. package/lib/esm/tile/ImdlReader.js.map +1 -1
  826. package/lib/esm/tile/RealityTile.js.map +1 -1
  827. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  828. package/lib/esm/tile/RenderGraphicTileTree.js.map +1 -1
  829. package/lib/esm/tile/Tile.js.map +1 -1
  830. package/lib/esm/tile/TileAdmin.js.map +1 -1
  831. package/lib/esm/tile/TileContent.js.map +1 -1
  832. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  833. package/lib/esm/tile/TileGeometryCollector.js.map +1 -1
  834. package/lib/esm/tile/TileParams.js.map +1 -1
  835. package/lib/esm/tile/TileRequest.js.map +1 -1
  836. package/lib/esm/tile/TileRequestChannel.js.map +1 -1
  837. package/lib/esm/tile/TileRequestChannels.js.map +1 -1
  838. package/lib/esm/tile/TileStorage.js.map +1 -1
  839. package/lib/esm/tile/TileTree.js.map +1 -1
  840. package/lib/esm/tile/TileTreeOwner.js.map +1 -1
  841. package/lib/esm/tile/TileTreeParams.js.map +1 -1
  842. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  843. package/lib/esm/tile/TileTreeSupplier.js.map +1 -1
  844. package/lib/esm/tile/TileUsageMarker.js.map +1 -1
  845. package/lib/esm/tile/TileUser.js.map +1 -1
  846. package/lib/esm/tile/TiledGraphicsProvider.js.map +1 -1
  847. package/lib/esm/tile/internal.js.map +1 -1
  848. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  849. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  850. package/lib/esm/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  851. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  852. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  853. package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -1
  854. package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -1
  855. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  856. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  857. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  858. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  859. package/lib/esm/tile/map/MapLayerTileTreeReference.js.map +1 -1
  860. package/lib/esm/tile/map/MapTile.js.map +1 -1
  861. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  862. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  863. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  864. package/lib/esm/tile/map/QuadId.js.map +1 -1
  865. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  866. package/lib/esm/tile/map/TerrainProvider.js.map +1 -1
  867. package/lib/esm/tools/AccuDrawTool.js.map +1 -1
  868. package/lib/esm/tools/AccuDrawViewportUI.js.map +1 -1
  869. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  870. package/lib/esm/tools/EditManipulator.js.map +1 -1
  871. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  872. package/lib/esm/tools/EventController.js.map +1 -1
  873. package/lib/esm/tools/IdleTool.js.map +1 -1
  874. package/lib/esm/tools/MeasureTool.js.map +1 -1
  875. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  876. package/lib/esm/tools/SelectTool.js.map +1 -1
  877. package/lib/esm/tools/Tool.js.map +1 -1
  878. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  879. package/lib/esm/tools/ToolAssistance.js.map +1 -1
  880. package/lib/esm/tools/ToolSettings.js.map +1 -1
  881. package/lib/esm/tools/ViewTool.js.map +1 -1
  882. package/lib/esm/workers/ImdlParser/Worker.js.map +1 -1
  883. package/lib/esm/workers/RegisterWorker.js.map +1 -1
  884. package/package.json +20 -20
@@ -1 +1 @@
1
- {"version":3,"file":"TileAdmin.js","sourceRoot":"","sources":["../../../src/tile/TileAdmin.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 Tiles\r\n */\r\nimport {\r\n assert, BeDuration, BeEvent, BentleyStatus, BeTimePoint, Id64, Id64Array, Id64String, IModelStatus, ProcessDetector,\r\n} from \"@itwin/core-bentley\";\r\nimport {\r\n BackendError, defaultTileOptions, EdgeOptions, ElementGraphicsRequestProps, getMaximumMajorTileFormatVersion, IModelError, IModelTileRpcInterface,\r\n IModelTileTreeProps, RenderSchedule, RpcOperation, RpcResponseCacheControl, ServerTimeoutError, TileContentSource, TileVersionInfo,\r\n} from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IpcApp } from \"../IpcApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport {\r\n DisclosedTileTreeSet, FetchCloudStorage, IModelTileTree, LRUTileList, ReadonlyTileUserSet, Tile, TileContentDecodingStatistics, TileLoadStatus,\r\n TileRequest, TileRequestChannels, TileStorage, TileTree, TileTreeOwner, TileUsageMarker, TileUser, UniqueTileUserSets,\r\n} from \"./internal\";\r\nimport type { FrontendStorage } from \"@itwin/object-storage-core/lib/frontend\";\r\n\r\n/** Details about any tiles not handled by [[TileAdmin]]. At this time, that means OrbitGT point cloud tiles.\r\n * Used for bookkeeping by SelectedAndReadyTiles\r\n * @internal\r\n */\r\nexport interface ExternalTileStatistics {\r\n requested: number;\r\n selected: number;\r\n ready: number;\r\n}\r\n\r\n/** Describes two sets of tiles associated with a viewport's current scene.\r\n * @internal\r\n */\r\nexport interface SelectedAndReadyTiles {\r\n /** The tiles actually selected for the viewport's scene. This includes tiles drawn to the screen; it may also include tiles selected for the shadow map.\r\n * These represent the \"best available\" tiles for the current view - some may have been selected as placeholders while more appropriate tiles are loaded.\r\n */\r\n readonly selected: Set<Tile>;\r\n /** The tiles that are considered appropriate for the current view and that are ready to draw. Some may not have actually been selected for drawing in the\r\n * current view, e.g., because sibling tiles are not yet ready to draw.\r\n */\r\n readonly ready: Set<Tile>;\r\n /** Details about any tiles not handled by [[TileAdmin]]. At this time, that means OrbitGT point cloud tiles and tiles for view attachments. */\r\n readonly external: ExternalTileStatistics;\r\n}\r\n\r\n/** Describes a strategy for imposing limits upon the amount of GPU memory consumed by [[Tile]] content.\r\n *\r\n * For a given view, a set of tiles is required to display its contents. As the user navigates the view by panning, rotating, zooming, etc, that set of tiles changes.\r\n * Previously-displayed tiles can remain in memory for a short while so that if they are subsequently required for display again they will be immediately available.\r\n * Keeping too many tiles in memory can consume excessive amounts of GPU memory; in extreme cases, more GPU memory can be consumed than is available, resulting in loss of\r\n * the WebGL context, which causes all rendering to stop.\r\n *\r\n * Over-consumption of GPU memory can be prevented by imposing a limit on the maximum amount that can be in use at any one time. When the limit is exceeded, the contents\r\n * of [[Tile]]s that are not currently being displayed by any [[Viewport]] are discarded, freeing up memory, until the limit is satisfied or all\r\n * undisplayed tiles' contents have been discarded. The least-recently-displayed tiles' contents are discarded first, under the assumption that they are the least likely to\r\n * be displayed again in the near future. Contents of tiles that are currently being displayed by at least one viewport will not be discarded.\r\n *\r\n * WebGL provides no direct access to the GPU, so the amount of memory actually being consumed can only be estimated based on the amount of memory\r\n * requested from it; the actual amount will invariably be larger - sometimes much larger.\r\n *\r\n * The number of bytes corresponding to the various limits is estimated at run-time based on whether the client is running on a mobile device or not - tighter limits\r\n * are imposed on mobile devices due to their tighter resource constraints.\r\n *\r\n * In addition to the memory limits, tile contents are naturally discarded after a certain length of time during which they have been displayed by no viewports based on\r\n * [[TileAdmin.Props.tileExpirationTime]].\r\n *\r\n * The options are:\r\n * - \"none\" - no limits are imposed. Tile contents are discarded solely based on [[TileAdmin.Props.tileExpirationTime]].\r\n * - \"aggressive\" - a small limit resulting in tile contents being more aggressively discarded.\r\n * - \"default\" - a moderate limit that strives to balance limiting memory consumption while keeping tiles likely to be displayed again in memory.\r\n * - \"relaxed\" - a larger limit that may be appropriate for devices equipped with ample GPU memory.\r\n * - number - an explicit limit, in number of bytes. Because of the vagaries of actual GPU memory consumption under WebGL, this should be a conservative estimate - no more than perhaps 1/4 of the total GPU memory available, depending on the device.\r\n * @see [[TileAdmin.Props.gpuMemoryLimits]] to configure the limit at startup.\r\n * @see [[TileAdmin.gpuMemoryLimit]] to adjust the limit after startup.\r\n * @see [[TileAdmin.totalTileContentBytes]] for the current amount of GPU memory being used for tile contents.\r\n * @public\r\n * @extensions\r\n */\r\nexport type GpuMemoryLimit = \"none\" | \"default\" | \"aggressive\" | \"relaxed\" | number;\r\n\r\n/** Defines separate [[GpuMemoryLimit]]s for mobile and desktop clients.\r\n * @see [[TileAdmin.Props.gpuMemoryLimits]] to configure the limit at startup.\r\n * @see [[GpuMemoryLimit]] for a description of how the available limits and how they are imposed.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface GpuMemoryLimits {\r\n /** Limits applied to clients running on mobile devices. Defaults to \"default\" if undefined. */\r\n mobile?: GpuMemoryLimit;\r\n /** Limits applied to clients running on non-mobile devices. Defaults to 6,000 MB if undefined. */\r\n nonMobile?: GpuMemoryLimit;\r\n}\r\n\r\n/** Manages [[Tile]]s and [[TileTree]]s on behalf of [[IModelApp]]. Its responsibilities include scheduling requests for tile content via a priority queue;\r\n * keeping track of and imposing limits upon the amount of GPU memory consumed by tiles; and notifying listeners of tile-related events.\r\n * @see [[IModelApp.tileAdmin]] to access the instance of the TileAdmin.\r\n * @see [[TileAdmin.Props]] to configure the TileAdmin at startup.\r\n * @public\r\n * @extensions\r\n */\r\nexport class TileAdmin {\r\n private _versionInfo?: TileVersionInfo;\r\n public readonly channels: TileRequestChannels;\r\n private readonly _users = new Set<TileUser>();\r\n private readonly _requestsPerUser = new Map<TileUser, Set<Tile>>();\r\n private readonly _tileUsagePerUser = new Map<TileUser, Set<TileUsageMarker>>();\r\n private readonly _selectedAndReady = new Map<TileUser, SelectedAndReadyTiles>();\r\n private readonly _tileUserSetsForRequests = new UniqueTileUserSets();\r\n private readonly _maxActiveTileTreePropsRequests: number;\r\n private _defaultTileSizeModifier: number;\r\n private readonly _retryInterval: number;\r\n private readonly _enableInstancing: boolean;\r\n /** @internal */\r\n public readonly edgeOptions: EdgeOptions;\r\n /** @internal */\r\n public readonly enableImprovedElision: boolean;\r\n /** @internal */\r\n public readonly enableFrontendScheduleScripts: boolean;\r\n /** @internal */\r\n public readonly decodeImdlInWorker: boolean;\r\n /** @internal */\r\n public readonly ignoreAreaPatterns: boolean;\r\n /** @internal */\r\n public readonly enableExternalTextures: boolean;\r\n /** @internal */\r\n public readonly disableMagnification: boolean;\r\n /** @internal */\r\n public readonly percentGPUMemDisablePreload: number;\r\n /** @internal */\r\n public readonly alwaysRequestEdges: boolean;\r\n /** @internal */\r\n public readonly alwaysSubdivideIncompleteTiles: boolean;\r\n /** @internal */\r\n public readonly minimumSpatialTolerance: number;\r\n /** @internal */\r\n public readonly maximumMajorTileFormatVersion: number;\r\n /** @internal */\r\n public readonly useProjectExtents: boolean;\r\n /** @internal */\r\n public readonly expandProjectExtents: boolean;\r\n /** @internal */\r\n public readonly optimizeBRepProcessing: boolean;\r\n /** @internal */\r\n public readonly disablePolyfaceDecimation: boolean;\r\n /** @internal */\r\n public readonly useLargerTiles: boolean;\r\n /** @internal */\r\n public readonly maximumLevelsToSkip: number;\r\n /** @internal */\r\n public readonly mobileRealityTileMinToleranceRatio: number;\r\n /** @internal */\r\n public readonly tileTreeExpirationTime: BeDuration;\r\n /** @internal */\r\n public readonly tileExpirationTime: BeDuration;\r\n /** @internal */\r\n public readonly contextPreloadParentDepth: number;\r\n /** @internal */\r\n public readonly contextPreloadParentSkip: number;\r\n /** @beta */\r\n public readonly cesiumIonKey?: string;\r\n private readonly _removeIModelConnectionOnCloseListener: () => void;\r\n private _totalElided = 0;\r\n private _rpcInitialized = false;\r\n private _nextPruneTime: BeTimePoint;\r\n private _nextPurgeTime: BeTimePoint;\r\n private _tileTreePropsRequests: TileTreePropsRequest[] = [];\r\n private _cleanup?: () => void;\r\n private readonly _lruList = new LRUTileList();\r\n private _maxTotalTileContentBytes?: number;\r\n private _gpuMemoryLimit: GpuMemoryLimit = \"none\";\r\n private readonly _isMobile: boolean;\r\n private readonly _cloudStorage?: FrontendStorage;\r\n\r\n /** Create a TileAdmin suitable for passing to [[IModelApp.startup]] via [[IModelAppOptions.tileAdmin]] to customize aspects of\r\n * its behavior.\r\n * @param props Options for customizing the behavior of the TileAdmin.\r\n * @returns the TileAdmin\r\n */\r\n public static async create(props?: TileAdmin.Props): Promise<TileAdmin> {\r\n const rpcConcurrency = IpcApp.isValid ? (await IpcApp.appFunctionIpc.queryConcurrency(\"cpu\")) : undefined;\r\n const isMobile = ProcessDetector.isMobileBrowser;\r\n return new TileAdmin(isMobile, rpcConcurrency, props);\r\n }\r\n\r\n /** @internal */\r\n public get emptyTileUserSet(): ReadonlyTileUserSet { return UniqueTileUserSets.emptySet; }\r\n\r\n /** Returns basic statistics about the TileAdmin's current state. */\r\n public get statistics(): TileAdmin.Statistics {\r\n let numActiveTileTreePropsRequests = 0;\r\n for (const req of this._tileTreePropsRequests) {\r\n if (!req.isDispatched)\r\n break;\r\n\r\n ++numActiveTileTreePropsRequests;\r\n }\r\n\r\n return {\r\n ...this.channels.statistics,\r\n totalElidedTiles: this._totalElided,\r\n numActiveTileTreePropsRequests,\r\n numPendingTileTreePropsRequests: this._tileTreePropsRequests.length - numActiveTileTreePropsRequests,\r\n };\r\n }\r\n\r\n /** Resets the cumulative (per-session) statistics like totalCompletedRequests, totalEmptyTiles, etc. */\r\n public resetStatistics(): void {\r\n this.channels.resetStatistics();\r\n this._totalElided = 0;\r\n }\r\n\r\n /** Exposed as public strictly for tests.\r\n * @internal\r\n */\r\n public constructor(isMobile: boolean, rpcConcurrency: number | undefined, options?: TileAdmin.Props) {\r\n this._isMobile = isMobile;\r\n if (undefined === options)\r\n options = {};\r\n\r\n this.channels = new TileRequestChannels(rpcConcurrency, true === options.cacheTileMetadata);\r\n\r\n this._maxActiveTileTreePropsRequests = options.maxActiveTileTreePropsRequests ?? 10;\r\n this._defaultTileSizeModifier = (undefined !== options.defaultTileSizeModifier && options.defaultTileSizeModifier > 0) ? options.defaultTileSizeModifier : 1.0;\r\n this._retryInterval = undefined !== options.retryInterval ? options.retryInterval : 1000;\r\n this._enableInstancing = options.enableInstancing ?? defaultTileOptions.enableInstancing;\r\n this.edgeOptions = {\r\n type: false === options.enableIndexedEdges ? \"non-indexed\" : \"compact\",\r\n smooth: options.generateAllPolyfaceEdges ?? true,\r\n };\r\n this.enableImprovedElision = options.enableImprovedElision ?? defaultTileOptions.enableImprovedElision;\r\n this.enableFrontendScheduleScripts = options.enableFrontendScheduleScripts ?? false;\r\n this.decodeImdlInWorker = options.decodeImdlInWorker ?? true;\r\n this.ignoreAreaPatterns = options.ignoreAreaPatterns ?? defaultTileOptions.ignoreAreaPatterns;\r\n this.enableExternalTextures = options.enableExternalTextures ?? defaultTileOptions.enableExternalTextures;\r\n this.disableMagnification = options.disableMagnification ?? defaultTileOptions.disableMagnification;\r\n this.percentGPUMemDisablePreload = Math.max(0, Math.min((options.percentGPUMemDisablePreload === undefined ? 80 : options.percentGPUMemDisablePreload), 80));\r\n this.alwaysRequestEdges = true === options.alwaysRequestEdges;\r\n this.alwaysSubdivideIncompleteTiles = options.alwaysSubdivideIncompleteTiles ?? defaultTileOptions.alwaysSubdivideIncompleteTiles;\r\n this.maximumMajorTileFormatVersion = options.maximumMajorTileFormatVersion ?? defaultTileOptions.maximumMajorTileFormatVersion;\r\n this.useProjectExtents = options.useProjectExtents ?? defaultTileOptions.useProjectExtents;\r\n this.expandProjectExtents = options.expandProjectExtents ?? defaultTileOptions.expandProjectExtents;\r\n this.optimizeBRepProcessing = options.optimizeBRepProcessing ?? defaultTileOptions.optimizeBRepProcessing;\r\n this.disablePolyfaceDecimation = options.disablePolyfaceDecimation ?? defaultTileOptions.disablePolyfaceDecimation;\r\n this.useLargerTiles = options.useLargerTiles ?? defaultTileOptions.useLargerTiles;\r\n this.mobileRealityTileMinToleranceRatio = Math.max(options.mobileRealityTileMinToleranceRatio ?? 3.0, 1.0);\r\n this.cesiumIonKey = options.cesiumIonKey;\r\n this._cloudStorage = options.tileStorage;\r\n\r\n const gpuMemoryLimits = options.gpuMemoryLimits;\r\n let gpuMemoryLimit: GpuMemoryLimit | undefined;\r\n if (typeof gpuMemoryLimits === \"object\")\r\n gpuMemoryLimit = isMobile ? gpuMemoryLimits.mobile : gpuMemoryLimits.nonMobile;\r\n else\r\n gpuMemoryLimit = gpuMemoryLimits;\r\n\r\n if (undefined === gpuMemoryLimit)\r\n gpuMemoryLimit = isMobile ? \"default\" : TileAdmin.nonMobileUndefinedGpuMemoryLimit;\r\n\r\n this.gpuMemoryLimit = gpuMemoryLimit;\r\n\r\n if (undefined !== options.maximumLevelsToSkip)\r\n this.maximumLevelsToSkip = Math.floor(Math.max(0, options.maximumLevelsToSkip));\r\n else\r\n this.maximumLevelsToSkip = 1;\r\n\r\n const minSpatialTol = options.minimumSpatialTolerance;\r\n this.minimumSpatialTolerance = undefined !== minSpatialTol ? Math.max(minSpatialTol, 0) : 0.001;\r\n\r\n const clamp = (seconds: number, min: number, max: number): BeDuration => {\r\n seconds = Math.min(seconds, max);\r\n seconds = Math.max(seconds, min);\r\n return BeDuration.fromSeconds(seconds);\r\n };\r\n\r\n const ignoreMinimums = true === options.ignoreMinimumExpirationTimes;\r\n const minTileTime = ignoreMinimums ? 0.1 : 5;\r\n const minTreeTime = ignoreMinimums ? 0.1 : 10;\r\n\r\n // If unspecified, tile expiration time defaults to 20 seconds.\r\n this.tileExpirationTime = clamp((options.tileExpirationTime ?? 20), minTileTime, 60)!;\r\n\r\n // If unspecified, trees never expire (will change this to use a default later).\r\n this.tileTreeExpirationTime = clamp(options.tileTreeExpirationTime ?? 300, minTreeTime, 3600);\r\n\r\n const now = BeTimePoint.now();\r\n this._nextPruneTime = now.plus(this.tileExpirationTime);\r\n this._nextPurgeTime = now.plus(this.tileTreeExpirationTime);\r\n\r\n this._removeIModelConnectionOnCloseListener = IModelConnection.onClose.addListener((iModel) => this.onIModelClosed(iModel));\r\n\r\n // If unspecified preload 2 levels of parents for context tiles.\r\n this.contextPreloadParentDepth = Math.max(0, Math.min((options.contextPreloadParentDepth === undefined ? 2 : options.contextPreloadParentDepth), 8));\r\n // If unspecified skip one level before preloading of parents of context tiles.\r\n this.contextPreloadParentSkip = Math.max(0, Math.min((options.contextPreloadParentSkip === undefined ? 1 : options.contextPreloadParentSkip), 5));\r\n\r\n const removals = [\r\n this.onTileLoad.addListener(() => this.invalidateAllScenes()),\r\n this.onTileChildrenLoad.addListener(() => this.invalidateAllScenes()),\r\n this.onTileTreeLoad.addListener(() => {\r\n // A reality model tile tree's range may extend outside of the project extents - we'll want to recompute the extents\r\n // of any spatial view's that may be displaying the reality model.\r\n for (const user of this.tileUsers)\r\n if (user instanceof Viewport && user.view.isSpatialView())\r\n user.invalidateController();\r\n }),\r\n ];\r\n\r\n this._cleanup = () => {\r\n removals.forEach((removal) => removal());\r\n };\r\n }\r\n\r\n private _tileStorage?: TileStorage;\r\n private async getTileStorage(): Promise<TileStorage> {\r\n if (this._tileStorage !== undefined)\r\n return this._tileStorage;\r\n\r\n // if custom implementation is provided, construct a new TileStorage instance and return it.\r\n if (this._cloudStorage !== undefined) {\r\n this._tileStorage = new TileStorage(this._cloudStorage);\r\n return this._tileStorage;\r\n }\r\n\r\n const fetchStorage = new FetchCloudStorage();\r\n this._tileStorage = new TileStorage(fetchStorage);\r\n return this._tileStorage;\r\n }\r\n\r\n /** @internal */\r\n public get enableInstancing() { return this._enableInstancing; }\r\n\r\n /** Given a numeric combined major+minor tile format version (typically obtained from a request to the backend to query the maximum tile format version it supports),\r\n * return the maximum *major* format version to be used to request tile content from the backend.\r\n * @see [[TileAdmin.Props.maximumMajorTileFormatVersion]]\r\n * @see [[CurrentImdlVersion]]\r\n */\r\n public getMaximumMajorTileFormatVersion(formatVersion?: number): number {\r\n return getMaximumMajorTileFormatVersion(this.maximumMajorTileFormatVersion, formatVersion);\r\n }\r\n\r\n /** A default multiplier applied to the size in pixels of a [[Tile]] during tile selection for any [[Viewport]].\r\n * Individual Viewports can override this multiplier if desired.\r\n * A value greater than 1.0 causes lower-resolution tiles to be selected; a value < 1.0 selects higher-resolution tiles.\r\n * This can allow an application to sacrifice quality for performance or vice-versa.\r\n * This property is initialized from the value supplied by the [[TileAdmin.Props.defaultTileSizeModifier]] used to initialize the TileAdmin at startup.\r\n * Changing it after startup will change it for all Viewports that do not explicitly override it with their own multiplier.\r\n * This value must be greater than zero.\r\n */\r\n public get defaultTileSizeModifier() { return this._defaultTileSizeModifier; }\r\n public set defaultTileSizeModifier(modifier: number) {\r\n if (modifier !== this._defaultTileSizeModifier && modifier > 0 && !Number.isNaN(modifier)) {\r\n this._defaultTileSizeModifier = modifier;\r\n IModelApp.viewManager.invalidateScenes();\r\n }\r\n }\r\n\r\n /** The total number of bytes of GPU memory allocated to [[Tile]] contents.\r\n * @see [[gpuMemoryLimit]] to impose limits on how high this can grow.\r\n */\r\n public get totalTileContentBytes(): number {\r\n return this._lruList.totalBytesUsed;\r\n }\r\n\r\n /** The maximum number of bytes of GPU memory that can be allocated to the contents of [[Tile]]s. When this limit is exceeded, the contents of the least-recently-drawn\r\n * tiles are discarded until the total is below this limit or all undisplayed tiles' contents have been discarded.\r\n * @see [[totalTileContentBytes]] for the current GPU memory usage.\r\n * @see [[gpuMemoryLimit]] to adjust this maximum.\r\n */\r\n public get maxTotalTileContentBytes(): number | undefined {\r\n return this._maxTotalTileContentBytes;\r\n }\r\n\r\n /** The strategy for limiting the amount of GPU memory allocated to [[Tile]] graphics.\r\n * @see [[TileAdmin.Props.gpuMemoryLimits]] to configure this at startup.\r\n * @see [[maxTotalTileContentBytes]] for the limit as a maximum number of bytes.\r\n */\r\n public get gpuMemoryLimit(): GpuMemoryLimit {\r\n return this._gpuMemoryLimit;\r\n }\r\n public set gpuMemoryLimit(limit: GpuMemoryLimit) {\r\n if (limit === this.gpuMemoryLimit)\r\n return;\r\n\r\n let maxBytes: number | undefined;\r\n if (typeof limit === \"number\") {\r\n limit = Math.max(0, limit);\r\n maxBytes = limit;\r\n } else {\r\n switch (limit) {\r\n case \"default\":\r\n case \"aggressive\":\r\n case \"relaxed\":\r\n const spec = this._isMobile ? TileAdmin.mobileGpuMemoryLimits : TileAdmin.nonMobileGpuMemoryLimits;\r\n maxBytes = spec[limit];\r\n break;\r\n default:\r\n limit = \"none\";\r\n // eslint-disable-next-line no-fallthrough\r\n case \"none\":\r\n maxBytes = undefined;\r\n break;\r\n }\r\n }\r\n\r\n this._gpuMemoryLimit = limit;\r\n this._maxTotalTileContentBytes = maxBytes;\r\n }\r\n\r\n /** Returns whether or not preloading for context (reality and map tiles) is currently allowed.\r\n * It is not allowed on mobile devices or if [[TileAdmin.Props.percentGPUMemDisablePreload]] is 0.\r\n * Otherwise it is always allowed if [[GpuMemoryLimit]] is \"none\".\r\n * Otherwise it is only allowed if current GPU memory utilization is less than [[TileAdmin.Props.percentGPUMemDisablePreload]] of GpuMemoryLimit.\r\n * @internal\r\n */\r\n public get isPreloadingAllowed(): boolean {\r\n return !this._isMobile && this.percentGPUMemDisablePreload > 0 && (this._maxTotalTileContentBytes === undefined || this._lruList.totalBytesUsed / this._maxTotalTileContentBytes * 100 < this.percentGPUMemDisablePreload);\r\n }\r\n\r\n /** Invoked from the [[ToolAdmin]] event loop to process any pending or active requests for tiles.\r\n * @internal\r\n */\r\n public process(): void {\r\n this.processQueue();\r\n\r\n // Prune expired tiles and purge expired tile trees. This may free up some memory.\r\n this.pruneAndPurge();\r\n\r\n // Free up any additional memory as required to keep within our limit.\r\n this.freeMemory();\r\n }\r\n\r\n /** Iterate over the tiles that have content loaded but are not in use by any [[TileUser]].\r\n * @alpha\r\n */\r\n public get unselectedLoadedTiles(): Iterable<Tile> {\r\n return this._lruList.unselectedTiles;\r\n }\r\n\r\n /** Iterate over the tiles that have content loaded and are in use by any [[TileUser]].\r\n * @alpha\r\n */\r\n public get selectedLoadedTiles(): Iterable<Tile> {\r\n return this._lruList.selectedTiles;\r\n }\r\n\r\n /** Returns the number of pending and active requests associated with the specified viewport. */\r\n public getNumRequestsForViewport(vp: Viewport): number {\r\n return this.getNumRequestsForUser(vp);\r\n }\r\n\r\n /** Returns the number of pending and active requests associated with the specified user. */\r\n public getNumRequestsForUser(user: TileUser): number {\r\n const requests = this.getRequestsForUser(user);\r\n let count = requests?.size ?? 0;\r\n const tiles = this.getTilesForUser(user);\r\n if (tiles)\r\n count += tiles.external.requested;\r\n\r\n return count;\r\n }\r\n\r\n /** Returns the current set of Tiles requested by the specified TileUser.\r\n * Do not modify the set or the Tiles.\r\n * @internal\r\n */\r\n public getRequestsForUser(user: TileUser): Set<Tile> | undefined {\r\n return this._requestsPerUser.get(user);\r\n }\r\n\r\n /** Specifies the set of tiles currently requested for use by a TileUser. This set replaces any previously specified for the same user.\r\n * The requests are not actually processed until the next call to [[TileAdmin.process].\r\n * This is typically invoked when a viewport recreates its scene, e.g. in response to camera movement.\r\n * @internal\r\n */\r\n public requestTiles(user: TileUser, tiles: Set<Tile>): void {\r\n this._requestsPerUser.set(user, tiles);\r\n }\r\n\r\n /** Returns two sets of tiles associated with the specified user - typically, a viewport's current scene.\r\n * Do not modify the returned sets.\r\n * @internal\r\n */\r\n public getTilesForUser(user: TileUser): SelectedAndReadyTiles | undefined {\r\n return this._selectedAndReady.get(user);\r\n }\r\n\r\n /** Adds the specified tiles to the sets of selected and ready tiles for the specified TileUser.\r\n * The TileAdmin takes ownership of the `ready` set - do not modify it after passing it in.\r\n * @internal\r\n */\r\n public addTilesForUser(user: TileUser, selected: Tile[], ready: Set<Tile>, touched: Set<Tile>): void {\r\n // \"selected\" are tiles we are drawing.\r\n this._lruList.markUsed(user.tileUserId, selected);\r\n // \"ready\" are tiles we want to draw but can't yet because, for example, their siblings are not yet ready to be drawn.\r\n this._lruList.markUsed(user.tileUserId, ready);\r\n // \"touched\" are tiles whose contents we want to keep in memory regardless of whether they are \"selected\" or \"ready\".\r\n this._lruList.markUsed(user.tileUserId, touched);\r\n\r\n const entry = this.getTilesForUser(user);\r\n if (undefined === entry) {\r\n this._selectedAndReady.set(user, { ready, selected: new Set<Tile>(selected), external: { selected: 0, requested: 0, ready: 0 } });\r\n return;\r\n }\r\n\r\n for (const tile of selected)\r\n entry.selected.add(tile);\r\n\r\n for (const tile of ready)\r\n entry.ready.add(tile);\r\n }\r\n\r\n /** Disclose statistics about tiles that are handled externally from TileAdmin. At this time, that means OrbitGT point cloud tiles.\r\n * These statistics are included in the return value of [[getTilesForUser]].\r\n * @internal\r\n */\r\n public addExternalTilesForUser(user: TileUser, statistics: ExternalTileStatistics): void {\r\n const entry = this.getTilesForUser(user);\r\n if (!entry) {\r\n this._selectedAndReady.set(user, { ready: new Set<Tile>(), selected: new Set<Tile>(), external: { ...statistics } });\r\n return;\r\n }\r\n\r\n entry.external.requested += statistics.requested;\r\n entry.external.selected += statistics.selected;\r\n entry.external.ready += statistics.ready;\r\n }\r\n\r\n /** Clears the sets of tiles associated with a TileUser. */\r\n public clearTilesForUser(user: TileUser): void {\r\n this._selectedAndReady.delete(user);\r\n this._lruList.clearUsed(user.tileUserId);\r\n }\r\n\r\n /** Indicates that the TileAdmin should cease tracking the specified TileUser, e.g. because it is about to be destroyed.\r\n * Any requests which are of interest only to the specified user will be canceled.\r\n */\r\n public forgetUser(user: TileUser): void {\r\n this.onUserIModelClosed(user);\r\n this._users.delete(user);\r\n }\r\n\r\n /** Indicates that the TileAdmin should track tile requests for the specified TileUser.\r\n * This is invoked by the Viewport constructor and should be invoked manually for any non-Viewport TileUser.\r\n * [[forgetUser]] must be later invoked to unregister the user.\r\n */\r\n public registerUser(user: TileUser): void {\r\n this._users.add(user);\r\n }\r\n\r\n /** Iterable over all TileUsers registered with TileAdmin. This may include [[OffScreenViewport]]s.\r\n * @alpha\r\n */\r\n public get tileUsers(): Iterable<TileUser> {\r\n return this._users;\r\n }\r\n\r\n /** @internal */\r\n public invalidateAllScenes() {\r\n for (const user of this.tileUsers)\r\n if (user instanceof Viewport)\r\n user.invalidateScene();\r\n }\r\n\r\n /** @internal */\r\n public onShutDown(): void {\r\n if (this._cleanup) {\r\n this._cleanup();\r\n this._cleanup = undefined;\r\n }\r\n\r\n this._removeIModelConnectionOnCloseListener();\r\n this.channels.onShutDown();\r\n\r\n for (const req of this._tileTreePropsRequests)\r\n req.abandon();\r\n\r\n this._requestsPerUser.clear();\r\n this._tileUserSetsForRequests.clear();\r\n this._tileUsagePerUser.clear();\r\n this._tileTreePropsRequests.length = 0;\r\n this._lruList[Symbol.dispose]();\r\n }\r\n\r\n /** Returns the union of the input set and the input TileUser, to be associated with a [[TileRequest]].\r\n * @internal\r\n */\r\n public getTileUserSetForRequest(user: TileUser, users?: ReadonlyTileUserSet): ReadonlyTileUserSet {\r\n return this._tileUserSetsForRequests.getTileUserSet(user, users);\r\n }\r\n\r\n /** Marks the Tile as \"in use\" by the specified TileUser, where the tile defines what \"in use\" means.\r\n * A tile will not be discarded while it is in use by any TileUser.\r\n * @see [[TileTree.prune]]\r\n * @internal\r\n */\r\n public markTileUsed(marker: TileUsageMarker, user: TileUser): void {\r\n let set = this._tileUsagePerUser.get(user);\r\n if (!set)\r\n this._tileUsagePerUser.set(user, set = new Set<TileUsageMarker>());\r\n\r\n set.add(marker);\r\n }\r\n\r\n /** Returns true if the Tile is currently in use by any TileUser.\r\n * @see [[markTileUsed]].\r\n * @internal\r\n */\r\n public isTileInUse(marker: TileUsageMarker): boolean {\r\n for (const [_user, markers] of this._tileUsagePerUser)\r\n if (markers.has(marker))\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n /** Indicates that the TileAdmin should reset usage tracking for the specified TileUser, e.g. because the user is a Viewport about\r\n * to recreate its scene. Any tiles currently marked as \"in use\" by this user no longer will be.\r\n * @internal\r\n */\r\n public clearUsageForUser(user: TileUser): void {\r\n this._tileUsagePerUser.delete(user);\r\n }\r\n\r\n /** @internal */\r\n public async requestTileTreeProps(iModel: IModelConnection, treeId: string): Promise<IModelTileTreeProps> {\r\n this.initializeRpc();\r\n const requests = this._tileTreePropsRequests;\r\n return new Promise<IModelTileTreeProps>((resolve, reject) => {\r\n const request = new TileTreePropsRequest(iModel, treeId, resolve, reject);\r\n requests.push(request);\r\n if (this._tileTreePropsRequests.length <= this._maxActiveTileTreePropsRequests)\r\n request.dispatch();\r\n });\r\n }\r\n\r\n /** Temporary workaround for authoring applications. Usage:\r\n * ```ts\r\n * async function handleModelChanged(modelId: Id64String, iModel: IModelConnection): Promise<void> {\r\n * await iModel.tiles.purgeTileTrees([modelId]);\r\n * IModelApp.viewManager.refreshForModifiedModels(modelId);\r\n * }\r\n * ```\r\n * @internal\r\n */\r\n public async purgeTileTrees(iModel: IModelConnection, modelIds: Id64Array | undefined): Promise<void> {\r\n this.initializeRpc();\r\n return IModelTileRpcInterface.getClient().purgeTileTrees(iModel.getRpcProps(), modelIds);\r\n }\r\n\r\n /** @internal */\r\n public async requestCachedTileContent(tile: { iModelTree: IModelTileTree, contentId: string }): Promise<Uint8Array | undefined> {\r\n if (tile.iModelTree.iModel.iModelId === undefined)\r\n throw new Error(\"Provided iModel has no iModelId\");\r\n\r\n const { guid, tokenProps, treeId } = this.getTileRequestProps(tile);\r\n const content = await (await this.getTileStorage()).downloadTile(tokenProps, tile.iModelTree.iModel.iModelId, tile.iModelTree.iModel.changeset.id, treeId, tile.contentId, guid);\r\n return content;\r\n }\r\n\r\n /** @internal */\r\n public async generateTileContent(tile: { iModelTree: IModelTileTree, contentId: string, request?: { isCanceled: boolean } }): Promise<Uint8Array> {\r\n this.initializeRpc();\r\n const props = this.getTileRequestProps(tile);\r\n const retrieveMethod = await IModelTileRpcInterface.getClient().generateTileContent(props.tokenProps, props.treeId, props.contentId, props.guid);\r\n if (tile.request?.isCanceled) {\r\n // the content is no longer needed, return an empty array.\r\n return new Uint8Array();\r\n }\r\n\r\n if (retrieveMethod === TileContentSource.ExternalCache) {\r\n const tileContent = await this.requestCachedTileContent(tile);\r\n if (tileContent === undefined)\r\n throw new IModelError(IModelStatus.NoContent, \"Failed to fetch generated tile from external cache\");\r\n return tileContent;\r\n } else if (retrieveMethod === TileContentSource.Backend) {\r\n return IModelTileRpcInterface.getClient().retrieveTileContent(props.tokenProps, this.getTileRequestProps(tile));\r\n }\r\n throw new BackendError(BentleyStatus.ERROR, \"\", \"Invalid response from RPC backend\");\r\n }\r\n\r\n /** @internal */\r\n public getTileRequestProps(tile: { iModelTree: IModelTileTree, contentId: string }) {\r\n const tree = tile.iModelTree;\r\n const tokenProps = tree.iModel.getRpcProps();\r\n let guid = tree.geometryGuid || tokenProps.changeset?.id || \"first\";\r\n if (tree.contentIdQualifier)\r\n guid = `${guid}_${tree.contentIdQualifier}`;\r\n\r\n const contentId = tile.contentId;\r\n const treeId = tree.id;\r\n return { tokenProps, treeId, contentId, guid };\r\n }\r\n\r\n /** Request graphics for a single element or geometry stream.\r\n * @see [[readElementGraphics]] to convert the result into a [[RenderGraphic]] for display.\r\n * @public\r\n */\r\n public async requestElementGraphics(iModel: IModelConnection, requestProps: ElementGraphicsRequestProps): Promise<Uint8Array | undefined> {\r\n if (true !== requestProps.omitEdges && undefined === requestProps.edgeType)\r\n requestProps = { ...requestProps, edgeType: \"non-indexed\" !== this.edgeOptions.type ? 2 : 1 };\r\n\r\n // For backwards compatibility, these options default to true in the backend. Explicitly set them to false in (newer) frontends if not supplied.\r\n if (undefined === requestProps.quantizePositions || undefined === requestProps.useAbsolutePositions) {\r\n requestProps = {\r\n ...requestProps,\r\n quantizePositions: requestProps.quantizePositions ?? false,\r\n useAbsolutePositions: requestProps.useAbsolutePositions ?? false,\r\n };\r\n }\r\n\r\n this.initializeRpc();\r\n const intfc = IModelTileRpcInterface.getClient();\r\n return intfc.requestElementGraphics(iModel.getRpcProps(), requestProps);\r\n }\r\n\r\n /** Obtain information about the version/format of the tiles supplied by the backend. */\r\n public async queryVersionInfo(): Promise<Readonly<TileVersionInfo>> {\r\n if (!this._versionInfo) {\r\n this.initializeRpc();\r\n this._versionInfo = await IModelTileRpcInterface.getClient().queryVersionInfo();\r\n }\r\n\r\n return this._versionInfo;\r\n }\r\n\r\n /** @internal */\r\n public onTilesElided(numElided: number) {\r\n this._totalElided += numElided;\r\n }\r\n\r\n /** Invoked when a Tile marks itself as \"ready\" - i.e., its content is loaded (or determined not to exist, or not to be needed).\r\n * If the tile has content, it is added to the LRU list of tiles with content.\r\n * The `onTileLoad` event will also be raised.\r\n * @internal\r\n */\r\n public onTileContentLoaded(tile: Tile): void {\r\n // It may already be present if it previously had content - perhaps we're replacing its content.\r\n this._lruList.drop(tile);\r\n this._lruList.add(tile);\r\n this.onTileLoad.raiseEvent(tile);\r\n }\r\n\r\n /** Invoked when a Tile's content is disposed of. It will be removed from the LRU list of tiles with content.\r\n * @internal\r\n */\r\n public onTileContentDisposed(tile: Tile): void {\r\n this._lruList.drop(tile);\r\n }\r\n\r\n /** @internal */\r\n public terminateTileTreePropsRequest(request: TileTreePropsRequest): void {\r\n const index = this._tileTreePropsRequests.indexOf(request);\r\n if (index >= 0) {\r\n this._tileTreePropsRequests.splice(index, 1);\r\n this.dispatchTileTreePropsRequests();\r\n }\r\n }\r\n\r\n /** Event raised when a request to load a tile's content completes. */\r\n public readonly onTileLoad = new BeEvent<(tile: Tile) => void>();\r\n\r\n /** Event raised when a request to load a tile tree completes. */\r\n public readonly onTileTreeLoad = new BeEvent<(tileTree: TileTreeOwner) => void>();\r\n\r\n /** Event raised when a request to load a tile's child tiles completes. */\r\n public readonly onTileChildrenLoad = new BeEvent<(parentTile: Tile) => void>();\r\n\r\n /** Subscribe to [[onTileLoad]], [[onTileTreeLoad]], and [[onTileChildrenLoad]]. */\r\n public addLoadListener(callback: (imodel: IModelConnection) => void): () => void {\r\n const tileLoad = this.onTileLoad.addListener((tile) => callback(tile.tree.iModel));\r\n const treeLoad = this.onTileTreeLoad.addListener((tree) => callback(tree.iModel));\r\n const childLoad = this.onTileChildrenLoad.addListener((tile) => callback(tile.tree.iModel));\r\n return () => {\r\n tileLoad();\r\n treeLoad();\r\n childLoad();\r\n };\r\n }\r\n\r\n /** Determine what information about the schedule script is needed to produce tiles.\r\n * If no script, or the script doesn't require batching, then no information is needed - normal tiles can be used.\r\n * If possible and enabled, normal tiles can be requested and then processed on the frontend based on the ModelTimeline.\r\n * Otherwise, special tiles must be requested based on the script's sourceId (RenderTimeline or DisplayStyle element).\r\n * @internal\r\n */\r\n public getScriptInfoForTreeId(modelId: Id64String, script: RenderSchedule.ScriptReference | undefined): { timeline?: RenderSchedule.ModelTimeline, animationId?: Id64String } | undefined {\r\n if (!script || !script.script.requiresBatching)\r\n return undefined;\r\n\r\n const timeline = script.script.modelTimelines.find((x) => x.modelId === modelId);\r\n if (!timeline || (!timeline.requiresBatching && !timeline.containsTransform))\r\n return undefined;\r\n\r\n // Frontend schedule scripts require the element Ids to be included in the script - previously saved views may have omitted them.\r\n if (!Id64.isValidId64(script.sourceId) || (this.enableFrontendScheduleScripts && !timeline.omitsElementIds))\r\n return { timeline };\r\n\r\n return { animationId: script.sourceId };\r\n }\r\n\r\n private dispatchTileTreePropsRequests(): void {\r\n for (let i = 0; i < this._maxActiveTileTreePropsRequests && i < this._tileTreePropsRequests.length; i++)\r\n this._tileTreePropsRequests[i].dispatch();\r\n }\r\n\r\n private processQueue(): void {\r\n // Mark all requests as being associated with no users, indicating they are no longer needed.\r\n this._tileUserSetsForRequests.clearAll();\r\n\r\n // Notify channels that we are enqueuing new requests.\r\n this.channels.swapPending();\r\n\r\n // Repopulate pending requests queue from each user. We do NOT sort by priority while doing so.\r\n this._requestsPerUser.forEach((value, key) => this.processRequests(key, value));\r\n\r\n // Ask channels to update their queues and dispatch requests.\r\n this.channels.process();\r\n }\r\n\r\n /** Exported strictly for tests. @internal */\r\n public freeMemory(): void {\r\n if (undefined !== this._maxTotalTileContentBytes)\r\n this._lruList.freeMemory(this._maxTotalTileContentBytes);\r\n }\r\n\r\n private pruneAndPurge(): void {\r\n const now = BeTimePoint.now();\r\n const needPrune = this._nextPruneTime.before(now);\r\n const needPurge = this._nextPurgeTime.before(now);\r\n if (!needPrune && !needPurge)\r\n return;\r\n\r\n // Identify all of the TileTrees in use by all of the TileUsers known to the TileAdmin.\r\n // NOTE: A single viewport can display tiles from more than one IModelConnection.\r\n // NOTE: A viewport may be displaying no trees - but we need to record its IModel so we can purge those which are NOT being displayed\r\n // NOTE: That won't catch external tile trees previously used by that viewport.\r\n const trees = new DisclosedTileTreeSet();\r\n const treesByIModel = needPurge ? new Map<IModelConnection, Set<TileTree>>() : undefined;\r\n for (const user of this._users) {\r\n if (!user.iModel.isOpen) // case of closing an IModelConnection while keeping the Viewport open, possibly for reuse with a different IModelConnection.\r\n continue;\r\n\r\n user.discloseTileTrees(trees);\r\n if (treesByIModel && undefined === treesByIModel.get(user.iModel))\r\n treesByIModel.set(user.iModel, new Set<TileTree>());\r\n }\r\n\r\n if (needPrune) {\r\n // Request that each displayed tile tree discard any tiles and/or tile content that is no longer needed.\r\n for (const tree of trees)\r\n tree.prune();\r\n\r\n this._nextPruneTime = now.plus(this.tileExpirationTime);\r\n }\r\n\r\n if (treesByIModel) {\r\n for (const tree of trees) {\r\n let set = treesByIModel.get(tree.iModel);\r\n if (undefined === set)\r\n treesByIModel.set(tree.iModel, set = new Set<TileTree>());\r\n\r\n set.add(tree);\r\n }\r\n\r\n // Discard any tile trees that are no longer in use by any user.\r\n const olderThan = now.minus(this.tileTreeExpirationTime);\r\n for (const entry of treesByIModel)\r\n entry[0].tiles.purge(olderThan, entry[1]);\r\n\r\n this._nextPurgeTime = now.plus(this.tileTreeExpirationTime);\r\n }\r\n }\r\n\r\n private processRequests(user: TileUser, tiles: Set<Tile>): void {\r\n for (const tile of tiles) {\r\n if (undefined === tile.request) {\r\n // ###TODO: This assertion triggers for AttachmentViewports used for rendering 3d sheet attachments.\r\n // Determine why and fix.\r\n // assert(tile.loadStatus === Tile.LoadStatus.NotLoaded);\r\n if (TileLoadStatus.NotLoaded === tile.loadStatus) {\r\n const request = new TileRequest(tile, user);\r\n tile.request = request;\r\n assert(this.channels.has(request.channel));\r\n request.channel.append(request);\r\n }\r\n } else {\r\n const req = tile.request;\r\n assert(undefined !== req);\r\n if (undefined !== req) {\r\n // Request may already be dispatched (in channel's active requests) - if so do not re-enqueue!\r\n if (req.isQueued && 0 === req.users.length)\r\n req.channel.append(req);\r\n\r\n req.addUser(user);\r\n assert(0 < req.users.length);\r\n }\r\n }\r\n }\r\n }\r\n\r\n // NB: This does *not* remove from this._users - a viewport could later be reused with a different IModelConnection.\r\n private onUserIModelClosed(user: TileUser): void {\r\n this.clearUsageForUser(user);\r\n this.clearTilesForUser(user);\r\n\r\n // NB: user will be removed from TileUserSets in process() - but if we can establish that only this user wants a given tile, cancel its request immediately.\r\n const tiles = this._requestsPerUser.get(user);\r\n if (undefined !== tiles) {\r\n for (const tile of tiles) {\r\n const request = tile.request;\r\n if (undefined !== request && 1 === request.users.length)\r\n request.cancel();\r\n }\r\n\r\n this._requestsPerUser.delete(user);\r\n }\r\n }\r\n\r\n private onIModelClosed(iModel: IModelConnection): void {\r\n this._requestsPerUser.forEach((_req, user) => {\r\n if (user.iModel === iModel)\r\n this.onUserIModelClosed(user);\r\n });\r\n\r\n // Remove any TileTreeProps requests associated with this iModel.\r\n this._tileTreePropsRequests = this._tileTreePropsRequests.filter((req) => {\r\n if (req.iModel !== iModel)\r\n return true;\r\n\r\n req.abandon();\r\n return false;\r\n });\r\n\r\n // Dispatch TileTreeProps requests not associated with this iModel.\r\n this.dispatchTileTreePropsRequests();\r\n\r\n this.channels.onIModelClosed(iModel);\r\n }\r\n\r\n private initializeRpc(): void {\r\n // Would prefer to do this in constructor - but nothing enforces that the app initializes the rpc interfaces before it creates the TileAdmin (via IModelApp.startup()) - so do it on first request instead.\r\n if (this._rpcInitialized)\r\n return;\r\n\r\n this._rpcInitialized = true;\r\n const retryInterval = this._retryInterval;\r\n RpcOperation.lookup(IModelTileRpcInterface, \"requestTileTreeProps\").policy.retryInterval = () => retryInterval;\r\n\r\n const policy = RpcOperation.lookup(IModelTileRpcInterface, \"generateTileContent\").policy;\r\n policy.retryInterval = () => retryInterval;\r\n policy.allowResponseCaching = () => RpcResponseCacheControl.Immutable;\r\n }\r\n}\r\n\r\n/** @public */\r\nexport namespace TileAdmin {\r\n /** Statistics regarding the current and cumulative state of the [[TileAdmin]]. Useful for monitoring performance and diagnosing problems.\r\n * @public\r\n */\r\n export interface Statistics {\r\n /** The number of requests in the queue which have not yet been dispatched. */\r\n numPendingRequests: number;\r\n /** The number of requests which have been dispatched but not yet completed. */\r\n numActiveRequests: number;\r\n /** The number of requests canceled during the most recent update. */\r\n numCanceled: number;\r\n /** The total number of completed requests during this session. */\r\n totalCompletedRequests: number;\r\n /** The total number of failed requests during this session. */\r\n totalFailedRequests: number;\r\n /** The total number of timed-out requests during this session. */\r\n totalTimedOutRequests: number;\r\n /** The total number of completed requests during this session which produced an empty tile. These tiles also contribute to totalCompletedRequests, but not to totalUndisplayableTiles. */\r\n totalEmptyTiles: number;\r\n /** The total number of completed requests during this session which produced an undisplayable tile. These tiles also contribute to totalCompletedRequests, but not to totalEmptyTiles. */\r\n totalUndisplayableTiles: number;\r\n /** The total number of tiles whose contents were not requested during this session because their volumes were determined to be empty. */\r\n totalElidedTiles: number;\r\n /** The total number of tiles whose contents were not found in cloud storage cache and therefore resulted in a backend request to generate the tile content. */\r\n totalCacheMisses: number;\r\n /** The total number of tiles for which content requests were dispatched. */\r\n totalDispatchedRequests: number;\r\n /** The total number of tiles for which content requests were dispatched and then canceled on the backend before completion. */\r\n totalAbortedRequests: number;\r\n /** The number of in-flight IModelTileTreeProps requests. */\r\n numActiveTileTreePropsRequests: number;\r\n /** The number of pending IModelTileTreeProps requests. */\r\n numPendingTileTreePropsRequests: number;\r\n /** See [[TileContentDecodingStatistics]].\r\n * @beta\r\n */\r\n decoding: TileContentDecodingStatistics;\r\n }\r\n\r\n /** Describes the configuration of the [[TileAdmin]].\r\n * @see [[TileAdmin.create]] to specify the configuration at [[IModelApp.startup]] time.\r\n * @note Many of these settings serve as \"feature gates\" introduced alongside new, potentially experimental features.\r\n * Over time, as a feature is tested and proven, their relevance wanes, and the feature becomes enabled by default.\r\n * Such properties should be flagged as `beta` and removed or rendered non-operational once the feature itself is considered\r\n * stable.\r\n * @public\r\n */\r\n export interface Props {\r\n /**\r\n * The client side storage implementation of @itwin/object-storage-core to use for retrieving tiles from tile cache.\r\n *\r\n * Defaults to AzureFrontendStorage\r\n * @beta\r\n */\r\n tileStorage?: FrontendStorage;\r\n\r\n /** The maximum number of simultaneously active requests for IModelTileTreeProps. Requests are fulfilled in FIFO order.\r\n *\r\n * Default value: 10\r\n * @alpha\r\n */\r\n maxActiveTileTreePropsRequests?: number;\r\n\r\n /** A default multiplier applied to the size in pixels of a [[Tile]] during tile selection for any [[Viewport]].\r\n * Individual Viewports can override this multiplier if desired.\r\n * A value greater than 1.0 causes lower-resolution tiles to be selected; a value < 1.0 selects higher-resolution tiles.\r\n * This value must be greater than zero.\r\n * This can allow an application to sacrifice quality for performance or vice-versa.\r\n *\r\n * Default value: 1.0\r\n */\r\n defaultTileSizeModifier?: number;\r\n\r\n /** If true, tiles may represent repeated geometry as sets of instances. This can reduce tile size and tile generation time, and improve performance.\r\n *\r\n * Default value: true\r\n */\r\n enableInstancing?: boolean;\r\n\r\n /** If true - and WebGL 2 is supported by the [[RenderSystem]] - when tiles containing edges are requested, request that they produce\r\n * indexed edges to reduce tile size and GPU memory consumption.\r\n *\r\n * Default value: true\r\n */\r\n enableIndexedEdges?: boolean;\r\n\r\n /** If true then if a [Polyface]($geometry) lacks edge visibility information, the display system will display the edges of all of its faces.\r\n * Otherwise, the display system will attempt to infer the visibility of each interior edge based on the angle between the two adjacent faces.\r\n * Edge inference can produce less visually useful results.\r\n *\r\n * Default value: true\r\n * @beta\r\n */\r\n generateAllPolyfaceEdges?: boolean;\r\n\r\n /** If true, during tile generation the backend will perform tighter intersection tests to more accurately identify empty sub-volumes.\r\n * This can reduce the number of tiles requested and the number of tile requests that return no content.\r\n *\r\n * Default value: true\r\n */\r\n enableImprovedElision?: boolean;\r\n\r\n /** If true, during tile generation the backend will omit geometry for area patterns. This can help reduce the amount of memory consumed by the backend and the amount\r\n * of geometry sent to the frontend.\r\n *\r\n * Default value: false\r\n * @public\r\n */\r\n ignoreAreaPatterns?: boolean;\r\n\r\n /** If true, during tile generation the backend will not embed all texture image data in the tile content. If texture image data is considered large enough by the backend, it will not be embedded in the tile content and the frontend will request that element texture data separately from the backend. This can help reduce the amount of memory consumed by the frontend and the amount of data sent to the frontend. Also, if this is enabled, requested textures that exceed the maximum texture size supported by the client will be downsampled.\r\n *\r\n * Default value: true\r\n */\r\n enableExternalTextures?: boolean;\r\n\r\n /** The interval in milliseconds at which a request for tile content will be retried until a response is received.\r\n *\r\n * Default value: 1000 (1 second)\r\n * @public\r\n */\r\n retryInterval?: number;\r\n\r\n /** If defined, specifies the maximum MAJOR tile format version to request. For example, if CurrentImdlVersion.Major = 3, and maximumMajorTileFormatVersion = 2,\r\n * requests for tile content will obtain tile content in some version 2.x of the format, never of some version 3.x.\r\n * Note that the actual maximum major version is also dependent on the backend which fulfills the requests - if the backend only knows how to produce tiles of format version 1.5, for example,\r\n * requests for tiles in format version 2.1 will still return content in format version 1.5.\r\n * This can be used to feature-gate newer tile formats on a per-user basis.\r\n *\r\n * Default value: undefined\r\n * @internal\r\n */\r\n maximumMajorTileFormatVersion?: number;\r\n\r\n /** When computing the range of a spatial tile tree we can use either the range of the model, or the project extents. If the model range is small relative to the\r\n * project extents, the \"low-resolution\" tiles will be much higher-resolution than is appropriate when the view is fit to the project extents. This can cause poor\r\n * framerate due to too much tiny geometry. Setting this option to `true` will use the project extents for the tile tree range; `false` will use the model range.\r\n *\r\n * Default value: true\r\n *\r\n * @internal\r\n */\r\n useProjectExtents?: boolean;\r\n\r\n /** @internal See TreeFlags.ExpandProjectExtents. Default: true. */\r\n expandProjectExtents?: boolean;\r\n\r\n /** When producing facets from BRep entities, use an optimized pipeline to improve performance.\r\n * Default value: true\r\n * @internal\r\n */\r\n optimizeBRepProcessing?: boolean;\r\n\r\n /** Produce tiles that are larger in screen pixels to reduce the number of tiles requested and drawn by the scene.\r\n * Default value: true\r\n * @public\r\n */\r\n useLargerTiles?: boolean;\r\n\r\n /** Specifies that metadata about each [[IModelTile]] loaded during the session should be cached until the corresponding [[IModelConnection]] is closed; and\r\n * that the graphics for cached tiles should never be reloaded when the tile is re-requested after having been discarded. This fulfills a niche scenario in\r\n * which the application does not care about displaying the graphics, only about ensuring the tile content is generated and uploaded to blob storage.\r\n * @internal\r\n */\r\n cacheTileMetadata?: boolean;\r\n\r\n /** The minimum number of seconds to keep a Tile in memory after it has become unused.\r\n * Each tile has an expiration timer. Each time tiles are selected for drawing in a view, if we decide to draw a tile we reset its expiration timer.\r\n * Otherwise, if its expiration timer has exceeded this minimum, we discard it along with all of its children. This allows us to free up memory for other tiles.\r\n * If we later want to draw the same tile, we must re-request it (typically from some cache).\r\n * Setting this value too small will cause excessive tile requests. Setting it too high will cause excessive memory consumption.\r\n *\r\n * Default value: 20 seconds.\r\n * Minimum value: 5 seconds.\r\n * Maximum value: 60 seconds.\r\n */\r\n tileExpirationTime?: number;\r\n\r\n /** The minimum number of seconds to keep a TileTree in memory after it has become disused.\r\n * Each time a TileTree is drawn, we record the current time as its most-recently-used time.\r\n * Periodically we traverse all TileTrees in the system. Any which have not been used within this specified number of seconds will be discarded, freeing up memory.\r\n *\r\n * @note This is separate from [[tileExpirationTime]], which is applied to individual Tiles each time the TileTree *is* drawn.\r\n *\r\n * Default value: 300 seconds (5 minutes).\r\n * Minimum value: 10 seconds.\r\n * Maximum value: 3600 seconds (1 hour).\r\n *\r\n * @public\r\n */\r\n tileTreeExpirationTime?: number;\r\n\r\n /** Defines optional limits on the total amount of GPU memory allocated to [[Tile]] contents.\r\n * If an instance of [[GpuMemoryLimits]], defines separate limits for mobile and non-mobile devices; otherwise, defines the limit for whatever\r\n * type of device the client is running on.\r\n *\r\n * Default value: `{ \"mobile\": \"default\" }`.\r\n *\r\n * @see [[GpuMemoryLimit]] for a description of the available limits and how they are imposed.\r\n */\r\n gpuMemoryLimits?: GpuMemoryLimit | GpuMemoryLimits;\r\n\r\n /** Nominally the error on screen size of a reality tile. The minimum value of 1.0 will apply a direct 1:1 scale.\r\n * A ratio higher than 1.0 will result in lower quality display as the reality tile refinement becomes more coarse.\r\n *\r\n * @note This value only has an effect on mobile devices. On non-mobile devices, this ratio will always internally be 1.0 and any setting here will be ignored.\r\n *\r\n * Default value: 3.0\r\n * Minimum value: 1.0\r\n *\r\n * @public\r\n */\r\n mobileRealityTileMinToleranceRatio?: number;\r\n\r\n /** Used strictly for tests to circumvent the minimum expiration times.\r\n * This allows tests to reduce the expiration times below their stated minimums so that tests execute more quickly.\r\n * @internal\r\n */\r\n ignoreMinimumExpirationTimes?: boolean;\r\n\r\n /** When producing child tiles for a given tile, two refinement strategies are considered:\r\n * - Subdivision: typical oct- or quad-tree subdivision into 8 or 4 smaller child tiles; and\r\n * - Magnification: production of a single child tile of the same size as the parent but with twice the level of detail\r\n * The magnification strategy can in some cases produce extremely large, detailed tiles, because the heuristic which decides which strategy to use considers that if\r\n * a tile contains fewer than some \"small\" number of elements, it is not worth subdividing, and instead chooses magnification - but element sizes vary **wildly**.\r\n *\r\n * If this option is defined and true, the magnification strategy will never be chosen.\r\n *\r\n * Default value: false\r\n * @alpha\r\n */\r\n disableMagnification?: boolean;\r\n\r\n /** The Percentage of GPU memory utilization at which to disable preloading for context (reality and map tiles).\r\n * While GPU memory usage is at or above this percentage of the limit, preloading will be disabled.\r\n * A setting of 0 will disable preloading altogether.\r\n * If GpuMemoryLimit is \"none\", then a setting of anything above 0 is ignored.\r\n * Mobile devices do not allow preloading and will ignore this setting.\r\n *\r\n * Default value: 80\r\n * Minimum value 0.\r\n * Maximum value 80.\r\n * @alpha\r\n */\r\n percentGPUMemDisablePreload?: number;\r\n\r\n /** Preloading parents for context (reality and map tiles) will improve the user experience by making it more likely that tiles in nearly the required resolution will be\r\n * already loaded as the view is manipulated. This value controls the depth above the the selected tile depth that will be preloaded. The default\r\n * value (2) with default contextPreloadParentDepth of one will load only grandparents and great grandparents. This generally preloads around 20% more tiles than are required.\r\n * Default value: 2.\r\n * Minimum value 0.\r\n * Maximum value 8.\r\n * @alpha\r\n */\r\n contextPreloadParentDepth?: number;\r\n\r\n /** Preloading parents for context (reality and map tiles) will improve the user experience by making it more likely that tiles in nearly the required resolution will be\r\n * already loaded as the view is manipulated. This value controls the number of parents that are skipped before parents are preloaded. The default value of 1 will skip\r\n * immediate parents and significantly reduce the number of preloaded tiles without significant reducing the value of preloading.\r\n * Default value: 1;\r\n * Minimum value: 0.\r\n * Maximum value: 5.\r\n * @alpha\r\n */\r\n contextPreloadParentSkip?: number;\r\n\r\n /** For iModel tile trees, the maximum number of levels of the tree to skip loading when selecting tiles.\r\n * When selecting tiles, if a given tile is too coarse to display and its graphics have not yet been loaded, we can skip loading its graphics and instead try to select one or more of its children\r\n * - *until* we have skipped the specified maximum number of levels of the tree, at which point we will load the coarse tile's graphics before evaluating its children for selection.\r\n * Increasing this value can reduce the amount of time before all tiles are ready when opening a zoomed-in view, but can also increase the number of tiles requested.\r\n * Default value: 1\r\n * Minimum value: 0\r\n * @alpha\r\n */\r\n maximumLevelsToSkip?: number;\r\n\r\n /** If true, when requesting tile content, edges will always be requested, even if they are not required for the view.\r\n * This can improve user experience in cases in which the user or application is expected to frequently switch between views of the same models with\r\n * different edge settings, because otherwise, toggling edge display may require loading completely new tiles.\r\n * However, edges require additional memory and bandwidth that may be wasted if they are never displayed.\r\n * Default value: false\r\n * @public\r\n */\r\n alwaysRequestEdges?: boolean;\r\n\r\n /** If true, when choosing whether to sub-divide or magnify a tile for refinement, the tile will always be sub-divided if any geometry was omitted from it.\r\n * Default value: false\r\n * @internal\r\n */\r\n alwaysSubdivideIncompleteTiles?: boolean;\r\n\r\n /** If defined and greater than zero, specifies the minimum chord tolerance in meters of a tile. A tile with chord tolerance less than this minimum will not be refined.\r\n * Applies only to spatial models, which model real-world assets on real-world scales.\r\n * A reasonable value is on the order of millimeters.\r\n * Default value: 0.001 (1 millimeter).\r\n * @public\r\n */\r\n minimumSpatialTolerance?: number;\r\n\r\n /** An API key that can be used to access content from [Cesium ION](https://cesium.com/platform/cesium-ion/) like terrain meshes and OpenStreetMap Buildings meshes.\r\n * If a valid key is not supplied, such content can neither be obtained nor displayed.\r\n * @public\r\n */\r\n cesiumIonKey?: string;\r\n\r\n /** If true, when applying a schedule script to a view, ordinary tiles will be requested and then reprocessed on the frontend to align with the script's\r\n * animation nodes. This permits the use of schedule scripts not stored in the iModel and improves utilization of the tile cache for animated views.\r\n * If false, the schedule script must be stored in the iModel and special tiles must be requested from the backend to align with the script's animation nodes.\r\n * Default value: false.\r\n * @public\r\n */\r\n enableFrontendScheduleScripts?: boolean;\r\n\r\n /** If true, contents of tiles in iMdl format will be decoded in a web worker to avoid blocking the main (UI) thread.\r\n * Default value: true\r\n * @alpha This was primarily introduced because the electron version of certa does not serve local assets, so the tests can't locate the worker script.\r\n */\r\n decodeImdlInWorker?: boolean;\r\n\r\n /** If true, disable polyface decimation during tile generation.\r\n * When the tiler encounters a [Polyface]($geometry) in an element's geometry stream, it may attempt to reduce the number of vertices\r\n * to match the tile's level of detail (\"LOD\"). This can deform the mesh, though the deformation is generally not noticeable at the tile's LOD.\r\n * If `disablePolyfaceDecimation` is `true`, the tiler will never attempt to decimate polyfaces.\r\n * Default value: false.\r\n * @beta\r\n */\r\n disablePolyfaceDecimation?: boolean;\r\n }\r\n\r\n /** The number of bytes of GPU memory associated with the various [[GpuMemoryLimit]]s for non-mobile devices.\r\n * @see [[TileAdmin.Props.gpuMemoryLimits]] to specify the limit at startup.\r\n * @see [[TileAdmin.gpuMemoryLimit]] to adjust the actual limit after startup.\r\n * @see [[TileAdmin.mobileMemoryLimits]] for mobile devices.\r\n */\r\n export const nonMobileGpuMemoryLimits = {\r\n default: 1024 * 1024 * 1024, // 1 GB\r\n aggressive: 500 * 1024 * 1024, // 500 MB\r\n relaxed: 2.5 * 1024 * 1024 * 1024, // 2.5 GB\r\n };\r\n\r\n /** @internal exported for tests */\r\n export const nonMobileUndefinedGpuMemoryLimit = 6000 * 1024 * 1024; // 6,000 MB - used when nonMobile limit is undefined\r\n\r\n /** The number of bytes of GPU memory associated with the various [[GpuMemoryLimit]]s for mobile devices.\r\n * @see [[TileAdmin.Props.gpuMemoryLimits]] to specify the limit at startup.\r\n * @see [[TileAdmin.gpuMemoryLimit]] to adjust the actual limit after startup.\r\n * @see [[TileAdmin.nonMobileMemoryLimits]] for non-mobile devices.\r\n */\r\n export const mobileGpuMemoryLimits = {\r\n default: 200 * 1024 * 1024, // 200 MB\r\n aggressive: 75 * 1024 * 1024, // 75 MB\r\n relaxed: 500 * 1024 * 1024, // 500 MB\r\n };\r\n}\r\n\r\n/** Some views contain thousands of models. When we open such a view, the first thing we do is request the IModelTileTreeProps for each model. This involves a http request per model,\r\n * which can exceed the maximum number of simultaneous requests permitted by the browser.\r\n * Similar to how we throttle requests for tile *content*, we throttle requests for IModelTileTreeProps based on `TileAdmin.Props.maxActiveTileTreePropsRequests`, heretofore referred to as `N`.\r\n * TileAdmin maintains a FIFO queue of requests for IModelTileTreeProps. The first N of those requests have been dispatched; the remainder are waiting for their turn.\r\n * When `TileAdmin.requestTileTreeProps` is called, it appends a new request to the queue, and if the queue length < N, dispatches it immediately.\r\n * When a request completes, throws an error, or is canceled, it is removed from the queue, and any not-yet-dispatched requests are dispatched (not exceeding N total in flight).\r\n * When an IModelConnection is closed, any requests associated with that iModel are canceled.\r\n * NOTE: This request queue currently does not interact at all with the tile content request queue.\r\n * NOTE: We rely on TreeOwner to not request the same IModelTileTreeProps multiple times - we do not check the queue for presence of a requested tree before enqeueing it.\r\n */\r\nclass TileTreePropsRequest {\r\n private _isDispatched = false;\r\n\r\n public constructor(\r\n public readonly iModel: IModelConnection,\r\n private readonly _treeId: string,\r\n private readonly _resolve: (props: IModelTileTreeProps) => void,\r\n private readonly _reject: (error: Error) => void) {\r\n }\r\n\r\n public get isDispatched(): boolean { return this._isDispatched; }\r\n\r\n public dispatch(): void {\r\n if (this.isDispatched)\r\n return;\r\n\r\n this._isDispatched = true;\r\n\r\n requestTileTreeProps(this.iModel, this._treeId).then((props) => {\r\n this.terminate();\r\n this._resolve(props);\r\n }).catch((err) => {\r\n this.terminate();\r\n this._reject(err);\r\n });\r\n }\r\n\r\n /** The IModelConnection was closed, or IModelApp was shut down. Don't call terminate(), because we don't want to dispatch pending requests as a result.\r\n * Just reject if not yet dispatched.\r\n */\r\n public abandon(): void {\r\n if (!this.isDispatched) {\r\n // A little white lie that tells the TileTreeOwner it can try to load again later if needed, rather than treating rejection as failure to load.\r\n this._reject(new ServerTimeoutError(\"requestTileTreeProps cancelled\"));\r\n }\r\n }\r\n\r\n private terminate(): void {\r\n IModelApp.tileAdmin.terminateTileTreePropsRequest(this);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport type RequestTileTreePropsFunc = (iModel: IModelConnection, treeId: string) => Promise<IModelTileTreeProps>;\r\n\r\nlet requestTileTreePropsOverride: RequestTileTreePropsFunc | undefined;\r\n\r\nasync function requestTileTreeProps(iModel: IModelConnection, treeId: string): Promise<IModelTileTreeProps> {\r\n if (requestTileTreePropsOverride)\r\n return requestTileTreePropsOverride(iModel, treeId);\r\n\r\n return IModelTileRpcInterface.getClient().requestTileTreeProps(iModel.getRpcProps(), treeId);\r\n}\r\n\r\n/** Strictly for tests - overrides the call to IModelTileRpcInterface.requestTileTreeProps with a custom function, or clears the override.\r\n * @internal\r\n */\r\nexport function overrideRequestTileTreeProps(func: RequestTileTreePropsFunc | undefined): void {\r\n requestTileTreePropsOverride = func;\r\n}\r\n"]}
1
+ {"version":3,"file":"TileAdmin.js","sourceRoot":"","sources":["../../../src/tile/TileAdmin.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,OAAO,EACL,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAyB,YAAY,EAAE,eAAe,GACpH,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,YAAY,EAAE,kBAAkB,EAA4C,gCAAgC,EAAE,WAAW,EAAE,sBAAsB,EAC5G,YAAY,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,iBAAiB,GAClH,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EACL,oBAAoB,EAAE,iBAAiB,EAAkB,WAAW,EAA4D,cAAc,EAC9I,WAAW,EAAE,mBAAmB,EAAE,WAAW,EAAsD,kBAAkB,GACtH,MAAM,YAAY,CAAC;AA6EpB;;;;;;GAMG;AACH,MAAM,OAAO,SAAS;IACZ,YAAY,CAAmB;IACvB,QAAQ,CAAsB;IAC7B,MAAM,GAAG,IAAI,GAAG,EAAY,CAAC;IAC7B,gBAAgB,GAAG,IAAI,GAAG,EAAuB,CAAC;IAClD,iBAAiB,GAAG,IAAI,GAAG,EAAkC,CAAC;IAC9D,iBAAiB,GAAG,IAAI,GAAG,EAAmC,CAAC;IAC/D,wBAAwB,GAAG,IAAI,kBAAkB,EAAE,CAAC;IACpD,+BAA+B,CAAS;IACjD,wBAAwB,CAAS;IACxB,cAAc,CAAS;IACvB,iBAAiB,CAAU;IAC5C,gBAAgB;IACA,WAAW,CAAc;IACzC,gBAAgB;IACA,qBAAqB,CAAU;IAC/C,gBAAgB;IACA,6BAA6B,CAAU;IACvD,gBAAgB;IACA,kBAAkB,CAAU;IAC5C,gBAAgB;IACA,kBAAkB,CAAU;IAC5C,gBAAgB;IACA,sBAAsB,CAAU;IAChD,gBAAgB;IACA,oBAAoB,CAAU;IAC9C,gBAAgB;IACA,2BAA2B,CAAS;IACpD,gBAAgB;IACA,kBAAkB,CAAU;IAC5C,gBAAgB;IACA,8BAA8B,CAAU;IACxD,gBAAgB;IACA,uBAAuB,CAAS;IAChD,gBAAgB;IACA,6BAA6B,CAAS;IACtD,gBAAgB;IACA,iBAAiB,CAAU;IAC3C,gBAAgB;IACA,oBAAoB,CAAU;IAC9C,gBAAgB;IACA,sBAAsB,CAAU;IAChD,gBAAgB;IACA,yBAAyB,CAAU;IACnD,gBAAgB;IACA,cAAc,CAAU;IACxC,gBAAgB;IACA,mBAAmB,CAAS;IAC5C,gBAAgB;IACA,kCAAkC,CAAS;IAC3D,gBAAgB;IACA,sBAAsB,CAAa;IACnD,gBAAgB;IACA,kBAAkB,CAAa;IAC/C,gBAAgB;IACA,yBAAyB,CAAS;IAClD,gBAAgB;IACA,wBAAwB,CAAS;IACjD,YAAY;IACI,YAAY,CAAU;IACrB,sCAAsC,CAAa;IAC5D,YAAY,GAAG,CAAC,CAAC;IACjB,eAAe,GAAG,KAAK,CAAC;IACxB,cAAc,CAAc;IAC5B,cAAc,CAAc;IAC5B,sBAAsB,GAA2B,EAAE,CAAC;IACpD,QAAQ,CAAc;IACb,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,yBAAyB,CAAU;IACnC,eAAe,GAAmB,MAAM,CAAC;IAChC,SAAS,CAAU;IACnB,aAAa,CAAmB;IAEjD;;;;OAIG;IACI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAuB;QAChD,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1G,MAAM,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC;QACjD,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,gBAAgB;IAChB,IAAW,gBAAgB,KAA0B,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE1F,oEAAoE;IACpE,IAAW,UAAU;QACnB,IAAI,8BAA8B,GAAG,CAAC,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9C,IAAI,CAAC,GAAG,CAAC,YAAY;gBACnB,MAAM;YAER,EAAE,8BAA8B,CAAC;QACnC,CAAC;QAED,OAAO;YACL,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU;YAC3B,gBAAgB,EAAE,IAAI,CAAC,YAAY;YACnC,8BAA8B;YAC9B,+BAA+B,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,8BAA8B;SACrG,CAAC;IACJ,CAAC;IAED,wGAAwG;IACjG,eAAe;QACpB,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,YAAmB,QAAiB,EAAE,cAAkC,EAAE,OAAyB;QACjG,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,SAAS,KAAK,OAAO;YACvB,OAAO,GAAG,EAAE,CAAC;QAEf,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAmB,CAAC,cAAc,EAAE,IAAI,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAE5F,IAAI,CAAC,+BAA+B,GAAG,OAAO,CAAC,8BAA8B,IAAI,EAAE,CAAC;QACpF,IAAI,CAAC,wBAAwB,GAAG,CAAC,SAAS,KAAK,OAAO,CAAC,uBAAuB,IAAI,OAAO,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/J,IAAI,CAAC,cAAc,GAAG,SAAS,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;QACzF,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,IAAI,kBAAkB,CAAC,gBAAgB,CAAC;QACzF,IAAI,CAAC,WAAW,GAAG;YACjB,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;YACtE,MAAM,EAAE,OAAO,CAAC,wBAAwB,IAAI,IAAI;SACjD,CAAC;QACF,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,IAAI,kBAAkB,CAAC,qBAAqB,CAAC;QACvG,IAAI,CAAC,6BAA6B,GAAG,OAAO,CAAC,6BAA6B,IAAI,KAAK,CAAC;QACpF,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,IAAI,CAAC;QAC7D,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,kBAAkB,CAAC;QAC9F,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,IAAI,kBAAkB,CAAC,sBAAsB,CAAC;QAC1G,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,IAAI,kBAAkB,CAAC,oBAAoB,CAAC;QACpG,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,2BAA2B,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7J,IAAI,CAAC,kBAAkB,GAAG,IAAI,KAAK,OAAO,CAAC,kBAAkB,CAAC;QAC9D,IAAI,CAAC,8BAA8B,GAAG,OAAO,CAAC,8BAA8B,IAAI,kBAAkB,CAAC,8BAA8B,CAAC;QAClI,IAAI,CAAC,6BAA6B,GAAG,OAAO,CAAC,6BAA6B,IAAI,kBAAkB,CAAC,6BAA6B,CAAC;QAC/H,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,kBAAkB,CAAC,iBAAiB,CAAC;QAC3F,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,IAAI,kBAAkB,CAAC,oBAAoB,CAAC;QACpG,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,IAAI,kBAAkB,CAAC,sBAAsB,CAAC;QAC1G,IAAI,CAAC,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,IAAI,kBAAkB,CAAC,yBAAyB,CAAC;QACnH,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,kBAAkB,CAAC,cAAc,CAAC;QAClF,IAAI,CAAC,kCAAkC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,kCAAkC,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3G,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;QAEzC,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAChD,IAAI,cAA0C,CAAC;QAC/C,IAAI,OAAO,eAAe,KAAK,QAAQ;YACrC,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC;;YAE/E,cAAc,GAAG,eAAe,CAAC;QAEnC,IAAI,SAAS,KAAK,cAAc;YAC9B,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,gCAAgC,CAAC;QAErF,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QAErC,IAAI,SAAS,KAAK,OAAO,CAAC,mBAAmB;YAC3C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;;YAEhF,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAE/B,MAAM,aAAa,GAAG,OAAO,CAAC,uBAAuB,CAAC;QACtD,IAAI,CAAC,uBAAuB,GAAG,SAAS,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAEhG,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,GAAW,EAAE,GAAW,EAAc,EAAE;YACtE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACjC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACjC,OAAO,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,KAAK,OAAO,CAAC,4BAA4B,CAAC;QACrE,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAE9C,+DAA+D;QAC/D,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,CAAE,CAAC;QAEtF,gFAAgF;QAChF,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,OAAO,CAAC,sBAAsB,IAAI,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAE9F,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACxD,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAE5D,IAAI,CAAC,sCAAsC,GAAG,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;QAE5H,gEAAgE;QAChE,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,yBAAyB,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACrJ,gFAAgF;QAChF,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,wBAAwB,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAElJ,MAAM,QAAQ,GAAG;YACf,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7D,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACrE,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,EAAE;gBACnC,oHAAoH;gBACpH,kEAAkE;gBAClE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS;oBAC/B,IAAI,IAAI,YAAY,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;wBACvD,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAClC,CAAC,CAAC;SACH,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE;YACnB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC;IACJ,CAAC;IAEO,YAAY,CAAe;IAC3B,KAAK,CAAC,cAAc;QAC1B,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YACjC,OAAO,IAAI,CAAC,YAAY,CAAC;QAE3B,4FAA4F;QAC5F,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,YAAY,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACxD,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,gBAAgB;IAChB,IAAW,gBAAgB,KAAK,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAEhE;;;;OAIG;IACI,gCAAgC,CAAC,aAAsB;QAC5D,OAAO,gCAAgC,CAAC,IAAI,CAAC,6BAA6B,EAAE,aAAa,CAAC,CAAC;IAC7F,CAAC;IAED;;;;;;;OAOG;IACH,IAAW,uBAAuB,KAAK,OAAO,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAC9E,IAAW,uBAAuB,CAAC,QAAgB;QACjD,IAAI,QAAQ,KAAK,IAAI,CAAC,wBAAwB,IAAI,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1F,IAAI,CAAC,wBAAwB,GAAG,QAAQ,CAAC;YACzC,SAAS,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAW,qBAAqB;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,IAAW,wBAAwB;QACjC,OAAO,IAAI,CAAC,yBAAyB,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,IAAW,cAAc;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IACD,IAAW,cAAc,CAAC,KAAqB;QAC7C,IAAI,KAAK,KAAK,IAAI,CAAC,cAAc;YAC/B,OAAO;QAET,IAAI,QAA4B,CAAC;QACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC3B,QAAQ,GAAG,KAAK,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,QAAQ,KAAK,EAAE,CAAC;gBACd,KAAK,SAAS,CAAC;gBACf,KAAK,YAAY,CAAC;gBAClB,KAAK,SAAS;oBACZ,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC;oBACnG,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvB,MAAM;gBACR;oBACE,KAAK,GAAG,MAAM,CAAC;gBACjB,0CAA0C;gBAC1C,KAAK,MAAM;oBACT,QAAQ,GAAG,SAAS,CAAC;oBACrB,MAAM;YACV,CAAC;QACH,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,yBAAyB,GAAG,QAAQ,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,IAAW,mBAAmB;QAC5B,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,2BAA2B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,yBAAyB,GAAG,GAAG,GAAG,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC7N,CAAC;IAED;;OAEG;IACI,OAAO;QACZ,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,kFAAkF;QAClF,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,sEAAsE;QACtE,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,IAAW,qBAAqB;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,IAAW,mBAAmB;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;IACrC,CAAC;IAED,gGAAgG;IACzF,yBAAyB,CAAC,EAAY;QAC3C,OAAO,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,4FAA4F;IACrF,qBAAqB,CAAC,IAAc;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,KAAK,GAAG,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,KAAK;YACP,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QAEpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACI,kBAAkB,CAAC,IAAc;QACtC,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,IAAc,EAAE,KAAgB;QAClD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACI,eAAe,CAAC,IAAc;QACnC,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACI,eAAe,CAAC,IAAc,EAAE,QAAgB,EAAE,KAAgB,EAAE,OAAkB;QAC3F,uCAAuC;QACvC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClD,sHAAsH;QACtH,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/C,qHAAqH;QACrH,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEjD,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAO,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAClI,OAAO;QACT,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,QAAQ;YACzB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE3B,KAAK,MAAM,IAAI,IAAI,KAAK;YACtB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACI,uBAAuB,CAAC,IAAc,EAAE,UAAkC;QAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,EAAQ,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAQ,EAAE,QAAQ,EAAE,EAAE,GAAG,UAAU,EAAE,EAAE,CAAC,CAAC;YACrH,OAAO;QACT,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC;QACjD,KAAK,CAAC,QAAQ,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC;QAC/C,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IAC3C,CAAC;IAED,2DAA2D;IACpD,iBAAiB,CAAC,IAAc;QACrC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACI,UAAU,CAAC,IAAc;QAC9B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACI,YAAY,CAAC,IAAc;QAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,gBAAgB;IACT,mBAAmB;QACxB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS;YAC/B,IAAI,IAAI,YAAY,QAAQ;gBAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;IAC7B,CAAC;IAED,gBAAgB;IACT,UAAU;QACf,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,sCAAsC,EAAE,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAE3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,sBAAsB;YAC3C,GAAG,CAAC,OAAO,EAAE,CAAC;QAEhB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,wBAAwB,CAAC,IAAc,EAAE,KAA2B;QACzE,OAAO,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,MAAuB,EAAE,IAAc;QACzD,IAAI,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG;YACN,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,GAAG,EAAmB,CAAC,CAAC;QAErE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAED;;;OAGG;IACI,WAAW,CAAC,MAAuB;QACxC,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,iBAAiB;YACnD,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;gBACrB,OAAO,IAAI,CAAC;QAEhB,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACI,iBAAiB,CAAC,IAAc;QACrC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,gBAAgB;IACT,KAAK,CAAC,oBAAoB,CAAC,MAAwB,EAAE,MAAc;QACxE,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAC7C,OAAO,IAAI,OAAO,CAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1D,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAC1E,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,IAAI,IAAI,CAAC,+BAA+B;gBAC5E,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,cAAc,CAAC,MAAwB,EAAE,QAA+B;QACnF,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,sBAAsB,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC3F,CAAC;IAED,gBAAgB;IACT,KAAK,CAAC,wBAAwB,CAAC,IAAuD;QAC3F,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS;YAC/C,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAErD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACjL,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gBAAgB;IACT,KAAK,CAAC,mBAAmB,CAAC,IAA0F;QACzH,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,cAAc,GAAG,MAAM,sBAAsB,CAAC,SAAS,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACjJ,IAAI,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;YAC7B,0DAA0D;YAC1D,OAAO,IAAI,UAAU,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,cAAc,KAAK,iBAAiB,CAAC,aAAa,EAAE,CAAC;YACvD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;YAC9D,IAAI,WAAW,KAAK,SAAS;gBAC3B,MAAM,IAAI,WAAW,CAAC,YAAY,CAAC,SAAS,EAAE,oDAAoD,CAAC,CAAC;YACtG,OAAO,WAAW,CAAC;QACrB,CAAC;aAAM,IAAI,cAAc,KAAK,iBAAiB,CAAC,OAAO,EAAE,CAAC;YACxD,OAAO,sBAAsB,CAAC,SAAS,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QAClH,CAAC;QACD,MAAM,IAAI,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,mCAAmC,CAAC,CAAC;IACvF,CAAC;IAED,gBAAgB;IACT,mBAAmB,CAAC,IAAuD;QAChF,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC7C,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,IAAI,UAAU,CAAC,SAAS,EAAE,EAAE,IAAI,OAAO,CAAC;QACpE,IAAI,IAAI,CAAC,kBAAkB;YACzB,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE9C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACjD,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,sBAAsB,CAAC,MAAwB,EAAE,YAAyC;QACrG,IAAI,IAAI,KAAK,YAAY,CAAC,SAAS,IAAI,SAAS,KAAK,YAAY,CAAC,QAAQ;YACxE,YAAY,GAAG,EAAE,GAAG,YAAY,EAAE,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEhG,gJAAgJ;QAChJ,IAAI,SAAS,KAAK,YAAY,CAAC,iBAAiB,IAAI,SAAS,KAAK,YAAY,CAAC,oBAAoB,EAAE,CAAC;YACpG,YAAY,GAAG;gBACb,GAAG,YAAY;gBACf,iBAAiB,EAAE,YAAY,CAAC,iBAAiB,IAAI,KAAK;gBAC1D,oBAAoB,EAAE,YAAY,CAAC,oBAAoB,IAAI,KAAK;aACjE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,sBAAsB,CAAC,SAAS,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC,sBAAsB,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC,CAAC;IAC1E,CAAC;IAED,wFAAwF;IACjF,KAAK,CAAC,gBAAgB;QAC3B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,GAAG,MAAM,sBAAsB,CAAC,SAAS,EAAE,CAAC,gBAAgB,EAAE,CAAC;QAClF,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,gBAAgB;IACT,aAAa,CAAC,SAAiB;QACpC,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACI,mBAAmB,CAAC,IAAU;QACnC,gGAAgG;QAChG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACI,qBAAqB,CAAC,IAAU;QACrC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,gBAAgB;IACT,6BAA6B,CAAC,OAA6B;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IAED,sEAAsE;IACtD,UAAU,GAAG,IAAI,OAAO,EAAwB,CAAC;IAEjE,iEAAiE;IACjD,cAAc,GAAG,IAAI,OAAO,EAAqC,CAAC;IAElF,0EAA0E;IAC1D,kBAAkB,GAAG,IAAI,OAAO,EAA8B,CAAC;IAE/E,mFAAmF;IAC5E,eAAe,CAAC,QAA4C;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAClF,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5F,OAAO,GAAG,EAAE;YACV,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,CAAC;QACd,CAAC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,sBAAsB,CAAC,OAAmB,EAAE,MAAkD;QACnG,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB;YAC5C,OAAO,SAAS,CAAC;QAEnB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;QACjF,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC1E,OAAO,SAAS,CAAC;QAEnB,iIAAiI;QACjI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;YACzG,OAAO,EAAE,QAAQ,EAAE,CAAC;QAEtB,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC1C,CAAC;IAEO,6BAA6B;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,+BAA+B,IAAI,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC,EAAE;YACrG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9C,CAAC;IAEO,YAAY;QAClB,6FAA6F;QAC7F,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;QAEzC,sDAAsD;QACtD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAE5B,+FAA+F;QAC/F,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QAEhF,6DAA6D;QAC7D,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED,6CAA6C;IACtC,UAAU;QACf,IAAI,SAAS,KAAK,IAAI,CAAC,yBAAyB;YAC9C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC7D,CAAC;IAEO,aAAa;QACnB,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS;YAC1B,OAAO;QAET,uFAAuF;QACvF,iFAAiF;QACjF,qIAAqI;QACrI,gFAAgF;QAChF,MAAM,KAAK,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACzC,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,EAAmC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,6HAA6H;gBACpJ,SAAS;YAEX,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,aAAa,IAAI,SAAS,KAAK,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC/D,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,EAAY,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,wGAAwG;YACxG,KAAK,MAAM,IAAI,IAAI,KAAK;gBACtB,IAAI,CAAC,KAAK,EAAE,CAAC;YAEf,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzC,IAAI,SAAS,KAAK,GAAG;oBACnB,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,GAAG,EAAY,CAAC,CAAC;gBAE5D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;YAED,gEAAgE;YAChE,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACzD,KAAK,MAAM,KAAK,IAAI,aAAa;gBAC/B,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAE5C,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,IAAc,EAAE,KAAgB;QACtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC/B,oGAAoG;gBACpG,yBAAyB;gBACzB,yDAAyD;gBACzD,IAAI,cAAc,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;oBACjD,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;oBACvB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC3C,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;gBACzB,MAAM,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC;gBAC1B,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;oBACtB,8FAA8F;oBAC9F,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM;wBACxC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAE1B,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAClB,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,oHAAoH;IAC5G,kBAAkB,CAAC,IAAc;QACvC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE7B,4JAA4J;QAC5J,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACxB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC7B,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,MAAM;oBACrD,OAAO,CAAC,MAAM,EAAE,CAAC;YACrB,CAAC;YAED,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,MAAwB;QAC7C,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;gBACxB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,iEAAiE;QACjE,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACvE,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM;gBACvB,OAAO,IAAI,CAAC;YAEd,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,mEAAmE;QACnE,IAAI,CAAC,6BAA6B,EAAE,CAAC;QAErC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAEO,aAAa;QACnB,2MAA2M;QAC3M,IAAI,IAAI,CAAC,eAAe;YACtB,OAAO;QAET,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,YAAY,CAAC,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,CAAC,MAAM,CAAC,aAAa,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC;QAE/G,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,sBAAsB,EAAE,qBAAqB,CAAC,CAAC,MAAM,CAAC;QACzF,MAAM,CAAC,aAAa,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC;QAC3C,MAAM,CAAC,oBAAoB,GAAG,GAAG,EAAE,CAAC,uBAAuB,CAAC,SAAS,CAAC;IACxE,CAAC;CACF;AAED,cAAc;AACd,WAAiB,SAAS;IAyUxB;;;;OAIG;IACU,kCAAwB,GAAG;QACtC,OAAO,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO;QACpC,UAAU,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,SAAS;QACxC,OAAO,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,SAAS;KAC7C,CAAC;IAEF,mCAAmC;IACtB,0CAAgC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,oDAAoD;IAExH;;;;OAIG;IACU,+BAAqB,GAAG;QACnC,OAAO,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,SAAS;QACrC,UAAU,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,QAAQ;QACtC,OAAO,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,SAAS;KACtC,CAAC;AACJ,CAAC,EAjWgB,SAAS,KAAT,SAAS,QAiWzB;AAED;;;;;;;;;GASG;AACH,MAAM,oBAAoB;IAIN;IACC;IACA;IACA;IANX,aAAa,GAAG,KAAK,CAAC;IAE9B,YACkB,MAAwB,EACvB,OAAe,EACf,QAA8C,EAC9C,OAA+B;QAHhC,WAAM,GAAN,MAAM,CAAkB;QACvB,YAAO,GAAP,OAAO,CAAQ;QACf,aAAQ,GAAR,QAAQ,CAAsC;QAC9C,YAAO,GAAP,OAAO,CAAwB;IAClD,CAAC;IAED,IAAW,YAAY,KAAc,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAE1D,QAAQ;QACb,IAAI,IAAI,CAAC,YAAY;YACnB,OAAO;QAET,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAE1B,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACf,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,OAAO;QACZ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,+IAA+I;YAC/I,IAAI,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,gCAAgC,CAAC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAEO,SAAS;QACf,SAAS,CAAC,SAAS,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;CACF;AAKD,IAAI,4BAAkE,CAAC;AAEvE,KAAK,UAAU,oBAAoB,CAAC,MAAwB,EAAE,MAAc;IAC1E,IAAI,4BAA4B;QAC9B,OAAO,4BAA4B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtD,OAAO,sBAAsB,CAAC,SAAS,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;AAC/F,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAA0C;IACrF,4BAA4B,GAAG,IAAI,CAAC;AACtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TileContent.js","sourceRoot":"","sources":["../../../src/tile/TileContent.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG","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 Tiles\r\n */\r\n\r\nimport { ElementAlignedBox3d } from \"@itwin/core-common\";\r\nimport { RenderGraphic } from \"../render/RenderGraphic\";\r\n\r\n/**\r\n * Describes the contents of a [[Tile]]. Specific sub-types of [[Tile]] may describe their content using sub-types of this interface.\r\n * @see [[Tile.readContent]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface TileContent {\r\n /** Graphical representation of the tile's geometry. */\r\n graphic?: RenderGraphic;\r\n /** Bounding box tightly enclosing the tile's geometry. */\r\n contentRange?: ElementAlignedBox3d;\r\n /** True if this tile requires no subdivision or refinement - i.e., has no child tiles. */\r\n isLeaf?: boolean;\r\n /** Whether the content includes one or more point clouds.\r\n * Generally, if this is true, it contains exactly one point cloud and no other geometry.\r\n * We need to know this for the classification shaders.\r\n * @internal\r\n */\r\n containsPointCloud?: boolean;\r\n}\r\n"]}
1
+ {"version":3,"file":"TileContent.js","sourceRoot":"","sources":["../../../src/tile/TileContent.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG"}
@@ -1 +1 @@
1
- {"version":3,"file":"TileDrawArgs.js","sourceRoot":"","sources":["../../../src/tile/TileDrawArgs.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 Tiles\r\n */\r\n\r\nimport { BeTimePoint } from \"@itwin/core-bentley\";\r\nimport { ClipVector, Geometry, Map4d, Matrix4d, Point3d, Point4d, Range1d, Range3d, Transform, Vector3d } from \"@itwin/core-geometry\";\r\nimport { FeatureAppearanceProvider, FrustumPlanes, HiddenLine, ViewFlagOverrides } from \"@itwin/core-common\";\r\nimport { FeatureSymbology } from \"../render/FeatureSymbology\";\r\nimport { GraphicBranch, GraphicBranchOptions } from \"../render/GraphicBranch\";\r\nimport { RenderClipVolume } from \"../render/RenderClipVolume\";\r\nimport { RenderGraphic } from \"../render/RenderGraphic\";\r\nimport { RenderPlanarClassifier } from \"../internal/render/RenderPlanarClassifier\";\r\nimport { SceneContext } from \"../ViewContext\";\r\nimport { ViewingSpace } from \"../ViewingSpace\";\r\nimport { CoordSystem } from \"../CoordSystem\";\r\nimport { Tile, TileGraphicType, TileTree } from \"./internal\";\r\nimport { RenderTextureDrape } from \"../internal/render/RenderTextureDrape\";\r\n\r\nconst scratchRange = new Range3d();\r\nconst scratchPoint = Point3d.create();\r\nconst scratchPoint4d = Point4d.create();\r\nconst scratchXRange = Range1d.createNull();\r\nconst scratchYRange = Range1d.createNull();\r\nconst scratchMatrix4d = Matrix4d.createIdentity();\r\n\r\n/** Parameters used to construct [[TileDrawArgs]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface TileDrawArgParams {\r\n /** Context for the scene into which the tiles are to be rendered. */\r\n context: SceneContext;\r\n /** Transform to be applied when drawing the tiles. */\r\n location: Transform;\r\n /** The tile tree from which to obtain tiles. */\r\n tree: TileTree;\r\n /** The time at which these args were created. */\r\n now: BeTimePoint;\r\n /** Overrides to apply to the view's [ViewFlags]($common) when drawing the tiles. */\r\n viewFlagOverrides: ViewFlagOverrides;\r\n /** Clip volume used to clip the tiles. */\r\n clipVolume?: RenderClipVolume;\r\n /** True if a tile and its child tiles should not be drawn simultaneously. */\r\n parentsAndChildrenExclusive: boolean;\r\n /** Symbology overrides to apply to the tiles. */\r\n symbologyOverrides: FeatureSymbology.Overrides | undefined;\r\n /** Optionally customizes the view's symbology overrides for the tiles. */\r\n appearanceProvider?: FeatureAppearanceProvider;\r\n /** Optionally overrides the view's hidden line settings. */\r\n hiddenLineSettings?: HiddenLine.Settings;\r\n /** If defined, tiles should be culled if they do not intersect this clip. */\r\n intersectionClip?: ClipVector;\r\n /** If defined, the Id of a node in the scene's [RenderSchedule.Script]($common) that applies a transform to the graphics;\r\n * or \"0xffffffff\" for any node that does *not* apply a transform.\r\n * @internal\r\n */\r\n animationTransformNodeId?: number;\r\n /** See [[GraphicBranch.groupNodeId]].\r\n * @internal\r\n */\r\n groupNodeId?: number;\r\n /** If defined, a bounding range in tile tree coordinates outside of which tiles should not be selected. */\r\n boundingRange?: Range3d;\r\n /** @alpha */\r\n maximumScreenSpaceError?: number;\r\n /** @alpha */\r\n transformFromIModel?: Transform;\r\n}\r\n\r\n/**\r\n * Provides context used when selecting and drawing [[Tile]]s.\r\n * @see [[TileTree.selectTiles]]\r\n * @see [[TileTree.draw]]\r\n * @public\r\n * @extensions\r\n */\r\nexport class TileDrawArgs {\r\n /** Transform to the location in iModel coordinates at which the tiles are to be drawn. */\r\n public readonly location: Transform;\r\n /** The tile tree being drawn. */\r\n public readonly tree: TileTree;\r\n /** Optional clip volume applied to the tiles. */\r\n public clipVolume: RenderClipVolume | undefined;\r\n /** The context in which the tiles will be drawn, exposing, e.g., the [[Viewport]] and accepting [[RenderGraphic]]s to be drawn. */\r\n public readonly context: SceneContext;\r\n /** Describes the viewed volume. */\r\n public viewingSpace: ViewingSpace;\r\n /** Holds the tile graphics to be drawn. */\r\n public readonly graphics: GraphicBranch = new GraphicBranch();\r\n /** @internal */\r\n public readonly now: BeTimePoint;\r\n /** The planes of the viewing frustum, used for frustum culling. */\r\n protected _frustumPlanes?: FrustumPlanes;\r\n /** @internal */\r\n public planarClassifier?: RenderPlanarClassifier;\r\n /** @internal */\r\n public drape?: RenderTextureDrape;\r\n /** Optional clip volume applied to all tiles in the view. */\r\n public readonly viewClip?: ClipVector;\r\n /** True if a tile and its child tiles should not be drawn simultaneously. */\r\n public parentsAndChildrenExclusive: boolean;\r\n /** @internal */\r\n private _appearanceProvider?: FeatureAppearanceProvider;\r\n /** Optional overrides for the view's hidden line settings. */\r\n public hiddenLineSettings?: HiddenLine.Settings;\r\n /** Tiles that we want to draw and that are ready to draw. May not actually be selected, e.g. if sibling tiles are not yet ready. */\r\n public readonly readyTiles = new Set<Tile>();\r\n /** Tiles whose contents should be kept in memory regardless of whether or not they are selected for display.\r\n * @internal\r\n */\r\n public readonly touchedTiles = new Set<Tile>();\r\n /** For perspective views, the view-Z of the near plane. */\r\n private readonly _nearFrontCenter?: Point3d;\r\n /** Overrides applied to the view's [ViewFlags]($common) when drawing the tiles. */\r\n public get viewFlagOverrides(): ViewFlagOverrides { return this.graphics.viewFlagOverrides; }\r\n /** If defined, replaces the view's own symbology overrides when drawing the tiles. */\r\n public get symbologyOverrides(): FeatureSymbology.Overrides | undefined { return this.graphics.symbologyOverrides; }\r\n /** If defined, tiles will be culled if they do not intersect this clip. */\r\n public intersectionClip?: ClipVector;\r\n /** If defined, a bounding range in tile tree coordinates outside of which tiles should not be selected. */\r\n public boundingRange?: Range3d;\r\n /** @internal */\r\n public readonly pixelSizeScaleFactor;\r\n /** @internal */\r\n public readonly animationTransformNodeId?: number;\r\n /** @internal */\r\n public readonly groupNodeId?: number;\r\n /** @alpha */\r\n public maximumScreenSpaceError;\r\n /** @alpha */\r\n public transformFromIModel?: Transform;\r\n\r\n /** Compute the size in pixels of the specified tile at the point on its bounding sphere closest to the camera. */\r\n public getPixelSize(tile: Tile): number {\r\n const sizeFromProjection = this.getPixelSizeFromProjection(tile);\r\n if (undefined !== sizeFromProjection)\r\n return sizeFromProjection;\r\n\r\n const radius = this.getTileRadius(tile); // use a sphere to test pixel size. We don't know the orientation of the image within the bounding box.\r\n const center = this.getTileCenter(tile);\r\n\r\n const pixelSizeAtPt = this.computePixelSizeInMetersAtClosestPoint(center, radius);\r\n return 0 !== pixelSizeAtPt ? this.context.adjustPixelSizeForLOD(radius / pixelSizeAtPt) : 1.0e-3;\r\n }\r\n\r\n /** If the tile provides corners (from an OBB) then this produces most accurate representation of the tile size */\r\n private getPixelSizeFromProjection(tile: Tile): number | undefined {\r\n const sizeProjectionCorners = tile.getSizeProjectionCorners();\r\n if (!sizeProjectionCorners)\r\n return undefined;\r\n\r\n /* For maps or global reality models we use the projected screen rectangle rather than sphere to calculate pixel size to avoid excessive tiles at horizon. */\r\n const tileToView = this.worldToViewMap.transform0.multiplyMatrixMatrix(Matrix4d.createTransform(this.location, scratchMatrix4d), scratchMatrix4d);\r\n scratchXRange.setNull();\r\n scratchYRange.setNull();\r\n\r\n let behindEye = false;\r\n for (const corner of sizeProjectionCorners) {\r\n const viewCorner = tileToView.multiplyPoint3d(corner, 1, scratchPoint4d);\r\n if (viewCorner.w < 0.0) {\r\n behindEye = true;\r\n break;\r\n }\r\n\r\n scratchXRange.extendX(viewCorner.x / viewCorner.w);\r\n scratchYRange.extendX(viewCorner.y / viewCorner.w);\r\n }\r\n if (behindEye)\r\n return undefined;\r\n\r\n return scratchXRange.isNull ? 1.0E-3 : this.context.adjustPixelSizeForLOD(Math.sqrt(scratchXRange.length() * scratchYRange.length()));\r\n }\r\n\r\n /** Compute the size in meters of one pixel at the point on the tile's bounding sphere closest to the camera. */\r\n public getPixelSizeInMetersAtClosestPoint(tile: Tile): number {\r\n const radius = this.getTileRadius(tile); // use a sphere to test pixel size. We don't know the orientation of the image within the bounding box.\r\n const center = this.getTileCenter(tile);\r\n\r\n const pixelSizeAtPt = this.computePixelSizeInMetersAtClosestPoint(center, radius);\r\n return 0 !== pixelSizeAtPt ? this.context.adjustPixelSizeForLOD(pixelSizeAtPt) : 1.0e-3;\r\n }\r\n\r\n /** Compute the size in meters of one pixel at the point on a sphere closest to the camera.\r\n * Device scaling is not applied.\r\n */\r\n public computePixelSizeInMetersAtClosestPoint(center: Point3d, radius: number): number {\r\n if (this.context.viewport.view.is3d() && this.context.viewport.isCameraOn && this._nearFrontCenter) {\r\n const toFront = Vector3d.createStartEnd(center, this._nearFrontCenter);\r\n const viewZ = this.context.viewport.rotation.rowZ();\r\n // If the sphere overlaps the near front plane just use near front point. This also handles behind eye conditions.\r\n if (viewZ.dotProduct(toFront) < radius) {\r\n center = this._nearFrontCenter;\r\n } else {\r\n // Find point on sphere closest to eye.\r\n const toEye = center.unitVectorTo(this.context.viewport.view.camera.eye);\r\n\r\n if (toEye) { // Only if tile is not already behind the eye.\r\n toEye.scaleInPlace(radius);\r\n center.addInPlace(toEye);\r\n }\r\n }\r\n }\r\n\r\n const viewPt = this.worldToViewMap.transform0.multiplyPoint3dQuietNormalize(center);\r\n const viewPt2 = new Point3d(viewPt.x + 1.0, viewPt.y, viewPt.z);\r\n return this.worldToViewMap.transform1.multiplyPoint3dQuietNormalize(viewPt).distance(this.worldToViewMap.transform1.multiplyPoint3dQuietNormalize(viewPt2));\r\n }\r\n\r\n /** Compute this size of a sphere on screen in pixels */\r\n public getRangePixelSize(range: Range3d): number {\r\n const transformedRange = this.location.multiplyRange(range, scratchRange);\r\n const center = transformedRange.localXYZToWorld(.5, .5, .5, scratchPoint)!;\r\n const radius = transformedRange.diagonal().magnitude();\r\n\r\n const viewPt = this.worldToViewMap.transform0.multiplyPoint3dQuietNormalize(center);\r\n const viewPt2 = new Point3d(viewPt.x + 1.0, viewPt.y, viewPt.z);\r\n const pixelSizeAtPt = this.worldToViewMap.transform1.multiplyPoint3dQuietNormalize(viewPt).distance(this.worldToViewMap.transform1.multiplyPoint3dQuietNormalize(viewPt2));\r\n return 0 !== pixelSizeAtPt ? radius / pixelSizeAtPt : 1.0e-3;\r\n }\r\n\r\n /** @internal */\r\n public getTileGraphics(tile: Tile) {\r\n return tile.produceGraphics();\r\n }\r\n\r\n /** The planes of the viewing frustum, used for frustum culling. */\r\n public get frustumPlanes(): FrustumPlanes {\r\n return this._frustumPlanes !== undefined ? this._frustumPlanes : this.context.frustumPlanes;\r\n }\r\n\r\n /** Provides conversions between [[CoordSystem.World]] and [[CoordSystem.View]]. */\r\n public get worldToViewMap(): Map4d {\r\n return this.viewingSpace.worldToViewMap;\r\n }\r\n\r\n private computePixelSizeScaleFactor(): number {\r\n // Check to see if a model display transform with non-uniform scaling is being used.\r\n const mat = this.context.viewport.view.modelDisplayTransformProvider?.getModelDisplayTransform(this.tree.modelId)?.transform.matrix;\r\n if (!mat)\r\n return 1;\r\n\r\n const scale = [0, 1, 2].map((x) => mat.getColumn(x).magnitude());\r\n if (Math.abs(scale[0] - scale[1]) <= Geometry.smallMetricDistance && Math.abs(scale[0] - scale[2]) <= Geometry.smallMetricDistance)\r\n return 1;\r\n\r\n // If the component with the largest scale is not the same as the component with the largest tile range use it to adjust the pixel size.\r\n const rangeDiag = this.tree.range.diagonal();\r\n let maxS = 0;\r\n let maxR = 0;\r\n if (scale[0] > scale[1])\r\n maxS = (scale[0] > scale[2] ? 0 : 2);\r\n else\r\n maxS = (scale[1] > scale[2] ? 1 : 2);\r\n\r\n if (rangeDiag.x > rangeDiag.y)\r\n maxR = (rangeDiag.x > rangeDiag.z ? 0 : 2);\r\n else\r\n maxR = (rangeDiag.y > rangeDiag.z ? 1 : 2);\r\n\r\n return maxS !== maxR ? scale[maxS] : 1;\r\n }\r\n\r\n /** Constructor */\r\n public constructor(params: TileDrawArgParams) {\r\n const { location, tree, context, now, viewFlagOverrides, clipVolume, parentsAndChildrenExclusive, symbologyOverrides } = params;\r\n this.location = location;\r\n this.tree = tree;\r\n this.context = context;\r\n this.now = now;\r\n this._appearanceProvider = params.appearanceProvider;\r\n this.hiddenLineSettings = params.hiddenLineSettings;\r\n this.animationTransformNodeId = params.animationTransformNodeId;\r\n this.groupNodeId = params.groupNodeId;\r\n this.boundingRange = params.boundingRange;\r\n this.maximumScreenSpaceError = params.maximumScreenSpaceError ?? 16; // 16 is Cesium's default.\r\n this.transformFromIModel = params.transformFromIModel;\r\n\r\n // Do not cull tiles based on clip volume if tiles outside clip are supposed to be drawn but in a different color.\r\n if (undefined !== clipVolume && !context.viewport.view.displayStyle.settings.clipStyle.outsideColor)\r\n this.clipVolume = clipVolume;\r\n\r\n this.graphics.setViewFlagOverrides(viewFlagOverrides);\r\n this.graphics.symbologyOverrides = symbologyOverrides;\r\n this.graphics.animationId = tree.modelId;\r\n\r\n this.viewingSpace = context.viewingSpace;\r\n this._frustumPlanes = FrustumPlanes.fromFrustum(this.viewingSpace.getFrustum());\r\n\r\n this.planarClassifier = context.getPlanarClassifierForModel(tree.modelId);\r\n this.drape = context.getTextureDrapeForModel(tree.modelId);\r\n\r\n // NB: If the tile tree has its own clip, do not also apply the view's clip.\r\n if (context.viewFlags.clipVolume && false !== viewFlagOverrides.clipVolume && undefined === clipVolume) {\r\n const outsideClipColor = context.viewport.displayStyle.settings.clipStyle.outsideColor;\r\n this.viewClip = undefined === outsideClipColor ? context.viewport.view.getViewClip() : undefined;\r\n }\r\n\r\n this.parentsAndChildrenExclusive = parentsAndChildrenExclusive;\r\n if (context.viewport.isCameraOn)\r\n this._nearFrontCenter = context.viewport.getFrustum(CoordSystem.World).frontCenter;\r\n\r\n this.pixelSizeScaleFactor = this.computePixelSizeScaleFactor();\r\n }\r\n\r\n /** A multiplier applied to a [[Tile]]'s `maximumSize` property to adjust level of detail.\r\n * @see [[Viewport.tileSizeModifier]].\r\n * @public\r\n */\r\n public get tileSizeModifier(): number { return this.context.viewport.tileSizeModifier; }\r\n\r\n /** @internal */\r\n public getTileCenter(tile: Tile): Point3d { return this.location.multiplyPoint3d(tile.center); }\r\n\r\n /** @internal */\r\n public getTileRadius(tile: Tile): number {\r\n let range: Range3d = tile.range.clone(scratchRange);\r\n if (tile.tree.is2d) {\r\n // 2d tiles have a fixed Z range of [-1, 1]. Sometimes (e.g., hypermodeling) we draw them within a 3d view. Prevent Z from artificially expanding the radius.\r\n range.low.z = range.high.z = 0;\r\n }\r\n\r\n range = this.location.multiplyRange(range, range);\r\n return 0.5 * range.low.distance(range.high);\r\n }\r\n\r\n /** @internal */\r\n public get clip(): ClipVector | undefined {\r\n return undefined !== this.clipVolume ? this.clipVolume.clipVector : undefined;\r\n }\r\n\r\n /** Add a provider to supplement or override the symbology overrides for the view.\r\n * @note If a provider already exists, the new provider will be chained such that it sees the base overrides\r\n * after they have potentially been modified by the existing provider.\r\n * @public\r\n */\r\n public addAppearanceProvider(provider: FeatureAppearanceProvider): void {\r\n this._appearanceProvider = this._appearanceProvider ? FeatureAppearanceProvider.chain(this._appearanceProvider, provider) : provider;\r\n }\r\n\r\n /** Optionally customizes aspects of the view's [[FeatureSymbology.Overrides]]. */\r\n public get appearanceProvider(): FeatureAppearanceProvider | undefined {\r\n return this._appearanceProvider;\r\n }\r\n\r\n /** @internal */\r\n public produceGraphics(): RenderGraphic | undefined {\r\n return this._produceGraphicBranch(this.graphics);\r\n }\r\n /** @internal */\r\n public get secondaryClassifiers(): Map<number, RenderPlanarClassifier>| undefined {\r\n return undefined;\r\n }\r\n\r\n /** @internal */\r\n private _produceGraphicBranch(graphics: GraphicBranch): RenderGraphic | undefined {\r\n if (graphics.isEmpty)\r\n return undefined;\r\n\r\n const opts: GraphicBranchOptions = {\r\n iModel: this.tree.iModel,\r\n transformFromIModel: this.transformFromIModel,\r\n clipVolume: this.clipVolume,\r\n classifierOrDrape: this.planarClassifier ?? this.drape,\r\n appearanceProvider: this.appearanceProvider,\r\n hline: this.hiddenLineSettings,\r\n secondaryClassifiers: this.secondaryClassifiers,\r\n };\r\n\r\n let graphic = this.context.createGraphicBranch(graphics, this.location, opts);\r\n if (undefined !== this.animationTransformNodeId)\r\n graphic = this.context.renderSystem.createAnimationTransformNode(graphic, this.animationTransformNodeId);\r\n\r\n if (undefined !== this.groupNodeId) {\r\n const branch = new GraphicBranch();\r\n branch.add(graphic);\r\n branch.groupNodeId = this.groupNodeId;\r\n graphic = this.context.createGraphicBranch(branch, Transform.identity);\r\n }\r\n\r\n return graphic;\r\n }\r\n\r\n /** Output graphics for all accumulated tiles. */\r\n public drawGraphics(): void {\r\n const graphics = this.produceGraphics();\r\n if (undefined !== graphics)\r\n this.context.outputGraphic(graphics);\r\n }\r\n\r\n /** Output graphics of the specified type for all accumulated tiles. */\r\n public drawGraphicsWithType(graphicType: TileGraphicType, graphics: GraphicBranch): void {\r\n const branch = this._produceGraphicBranch(graphics);\r\n if (undefined !== branch)\r\n this.context.withGraphicType(graphicType, () => this.context.outputGraphic(branch));\r\n }\r\n\r\n /** Indicate that graphics for the specified tile are desired but not yet available. Subsequently a request will be enqueued to load the tile's graphics. */\r\n public insertMissing(tile: Tile): void {\r\n this.context.insertMissingTile(tile);\r\n }\r\n\r\n /** Indicate that some requested child tiles are not yet loaded. */\r\n public markChildrenLoading(): void {\r\n this.context.markChildrenLoading();\r\n }\r\n\r\n /** Indicate that the specified tile is being used for some purpose by the [[SceneContext]]'s [[Viewport]]. Typically \"used\" means \"displayed\", but the exact meaning is up to the [[TileTree]] - for example, \"used\" might also mean that the tile's children are being used. A tile that is \"in use\" by any [[Viewport]] will not be discarded. */\r\n public markUsed(tile: Tile): void {\r\n tile.usageMarker.mark(this.context.viewport, this.now);\r\n }\r\n\r\n /** Indicate that the specified tile should be displayed and that its graphics are ready to be displayed. The number of \"ready\" tiles is used in conjunction with the number of \"missing\" tiles to convey to the user how complete the current view is.\r\n * @see [[insertMissing]]\r\n */\r\n public markReady(tile: Tile): void {\r\n this.readyTiles.add(tile);\r\n }\r\n\r\n /** Invoked by [[TileTree.selectTiles]]. This exists chiefly for [[SolarShadowMap]].\r\n * @internal\r\n */\r\n public processSelectedTiles(_tiles: Tile[]): void { }\r\n\r\n /* @internal */\r\n public get maxRealityTreeSelectionCount(): number | undefined { return undefined; }\r\n\r\n /* @internal */\r\n public get shouldCollectClassifierGraphics(): boolean { return true; }\r\n}\r\n"]}
1
+ {"version":3,"file":"TileDrawArgs.js","sourceRoot":"","sources":["../../../src/tile/TileDrawArgs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TileGeometryCollector.js","sourceRoot":"","sources":["../../../src/tile/TileGeometryCollector.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA2BzC;;;;;GAKG;AACH,MAAM,OAAO,qBAAqB;IAChC;;;OAGG;IACa,SAAS,GAAsB,EAAE,CAAC;IACjC,QAAQ,GAAG,IAAI,GAAG,EAAQ,CAAC;IACpC,QAAQ,GAAG,KAAK,CAAC;IACzB,oDAAoD;IACjC,QAAQ,CAA+B;IAE1D,8BAA8B;IAC9B,YAAmB,OAAqC;QACtD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACI,WAAW;QAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,mBAAmB;QACxB,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtE,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,IAAU;QAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAW,mBAAmB;QAC5B,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC;IACpD,CAAC;IAED;;;OAGG;IACI,WAAW,CAAC,IAAU;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACvG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC7C,OAAO,QAAQ,CAAC;QAElB,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa;YAC/C,OAAO,UAAU,CAAC;QAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;QACjD,OAAO,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;IAC1E,CAAC;CACF","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 Tiles\r\n */\r\n\r\nimport { IndexedPolyface, Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport {\r\n Tile, TileTreeReference, TileUser,\r\n} from \"./internal\";\r\n\r\n/** Enumerates the statuses returned by [[TileGeometryCollector.collectTile]].\r\n * - \"accept\": The tile's geometry should be collected.\r\n * - \"reject\": The tile's geometry (and that of all of its child tiles) should be omitted.\r\n * - \"continue\": The tile's geometry should be omitted, but that of its child tiles should be evaluated for collection.\r\n * @public\r\n */\r\nexport type CollectTileStatus = \"accept\" | \"reject\" | \"continue\";\r\n\r\n/** Options for creating a [[TileGeometryCollector]].\r\n * @public\r\n */\r\nexport interface TileGeometryCollectorOptions {\r\n /** The chord tolerance in meters describing the minimum level of detail desired of the tile geometry. */\r\n chordTolerance: number;\r\n /** The volume in which to collect tiles. Geometry of tiles that do not intersect this volume will not be collected. */\r\n range: Range3d;\r\n /** The [[TileUser]] that will make use of the tiles. */\r\n user: TileUser;\r\n /** An optional transform to be applied to the tile ranges before testing intersection with [[range]]. Typically this is obtained from [[TileTree.iModelTransform]]. */\r\n transform?: Transform;\r\n}\r\n\r\n/** Collects geoemtry from a [[GeometryTileTreeReference]] within a specified volume at a specified level of detail.\r\n * Subclasses can refine the collection criterion.\r\n * The tile geometry is obtained asynchronously, so successive collections over multiple frames may be required before all of the geometry\r\n * is collected.\r\n * @public\r\n */\r\nexport class TileGeometryCollector {\r\n /** The list of accumulated polyfaces, populated during [[GeometryTileTreeReference.collectTileGeometry]].\r\n * The polyfaces belong to the [[Tile]]s - they should not be modified.\r\n * If [[isAllGeometryLoaded]] is `false`, then this list is incomplete - another geometry collection should be performed with a new collector on a subsequent frame.\r\n */\r\n public readonly polyfaces: IndexedPolyface[] = [];\r\n private readonly _missing = new Set<Tile>();\r\n private _loading = false;\r\n /** The options used to construct this collector. */\r\n protected readonly _options: TileGeometryCollectorOptions;\r\n\r\n /** Create a new collector. */\r\n public constructor(options: TileGeometryCollectorOptions) {\r\n this._options = options;\r\n }\r\n\r\n /** Allows an implementation of [[GeometryTileTreeReference.collectTileGeoemtry]] to indicate that further loading is required before\r\n * the collection can be completed.\r\n * This will cause [[isAllGeometryLoaded]] to return `false`.\r\n */\r\n public markLoading(): void {\r\n this._loading = true;\r\n }\r\n\r\n /** Enqueues requests to obtain the content of any tiles whose content is required to complete the geometry collection.\r\n * @see [[isAllGeometryLoaded]] to determine if geometry collection is complete.\r\n */\r\n public requestMissingTiles(): void {\r\n IModelApp.tileAdmin.requestTiles(this._options.user, this._missing);\r\n }\r\n\r\n /** Allows an implementation of [[GeometryTileTreeReference.collectTileGeometry]] to indicate that the specified tile's content must be loaded\r\n * before geometry collection can be completed.\r\n * This will cause [[isAllGeometryLoaded]] to return `false`.\r\n */\r\n public addMissingTile(tile: Tile): void {\r\n this._missing.add(tile);\r\n }\r\n\r\n /** Returns true if [[polyfaces]] has been fully populated with all the geometry satisfying this collector's criteria.\r\n * If it returns false, another collection using a new collector should be performed on a subsequent frame to load more geometry.\r\n */\r\n public get isAllGeometryLoaded(): boolean {\r\n return !this._loading && this._missing.size === 0;\r\n }\r\n\r\n /** Determine whether to collect the specified tile's geometry, reject it, or to evaluate the geometry of its child tiles for collection.\r\n * This base implementation makes that determination based on the collector's range and chord tolerance. Subclasses should typically call `super.collectTile` and, if\r\n * it returns \"accept\" or \"continue\", apply their own criteria to the tile.\r\n */\r\n public collectTile(tile: Tile): CollectTileStatus {\r\n const range = this._options.transform ? this._options.transform.multiplyRange(tile.range) : tile.range;\r\n if (!range.intersectsRange(this._options.range))\r\n return \"reject\";\r\n\r\n if (tile.maximumSize === 0 || !tile.isDisplayable)\r\n return \"continue\";\r\n\r\n const tolerance = tile.radius / tile.maximumSize;\r\n return tolerance < this._options.chordTolerance ? \"accept\" : \"continue\";\r\n }\r\n}\r\n\r\n/** A [[TileTreeReference]] that can supply geometry in the form of [Polyface]($core-geometry)s from [[Tile]]s belonging to its [[TileTree]] and satisfying the criteria defined\r\n * by a [[TileGeometryCollector]].\r\n * Use [[TileTreeReference.createGeometryTreeReference]] to obtain a GeometryTileTreeReference from an existing TileTreeReference.\r\n * @public\r\n */\r\nexport interface GeometryTileTreeReference extends TileTreeReference {\r\n /** Populate [[TileGeometryCollector.polyfaces]] with geometry satisfying `collector`'s criteria.\r\n * Because tile geometry is obtained asynchronously, successive collections over multiple frames may be required before the list of polyfaces is fully populated.\r\n * @see [[TileGeometryCollector.isAllGeometryLoaded]] to determine if the list of polyfaces is fully populated.\r\n */\r\n collectTileGeometry: (collector: TileGeometryCollector) => void;\r\n /** If set to true, tile geometry will be reprojected using the tile's reprojection transform when geometry is collected from the referenced TileTree.\r\n * Currently only applies to point clouds, reality meshes, and terrain.\r\n * @internal\r\n */\r\n reprojectGeometry?: boolean;\r\n}\r\n"]}
1
+ {"version":3,"file":"TileGeometryCollector.js","sourceRoot":"","sources":["../../../src/tile/TileGeometryCollector.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA2BzC;;;;;GAKG;AACH,MAAM,OAAO,qBAAqB;IAChC;;;OAGG;IACa,SAAS,GAAsB,EAAE,CAAC;IACjC,QAAQ,GAAG,IAAI,GAAG,EAAQ,CAAC;IACpC,QAAQ,GAAG,KAAK,CAAC;IACzB,oDAAoD;IACjC,QAAQ,CAA+B;IAE1D,8BAA8B;IAC9B,YAAmB,OAAqC;QACtD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACI,WAAW;QAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,mBAAmB;QACxB,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtE,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,IAAU;QAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAW,mBAAmB;QAC5B,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC;IACpD,CAAC;IAED;;;OAGG;IACI,WAAW,CAAC,IAAU;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACvG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC7C,OAAO,QAAQ,CAAC;QAElB,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa;YAC/C,OAAO,UAAU,CAAC;QAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;QACjD,OAAO,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;IAC1E,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"TileParams.js","sourceRoot":"","sources":["../../../src/tile/TileParams.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG","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 Tiles\r\n */\r\n\r\nimport { ElementAlignedBox3d } from \"@itwin/core-common\";\r\nimport { Tile } from \"./internal\";\r\n\r\n/**\r\n * Parameters used to construct a [[Tile]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface TileParams {\r\n /** This tile's parent tile, if any.\r\n * @note Every tile has exactly one parent, except for [[TileTree.rootTile]] which has no parent.\r\n */\r\n parent?: Tile;\r\n /** True if this tile has no child tiles - i.e., requires no refinement. */\r\n isLeaf?: boolean;\r\n /** Uniquely identifies this tile's content within the context of its [[TileTree]]. */\r\n contentId: string;\r\n /** The volume of space occupied by this tile. If the tile has a parent tile, this tile's volume must be fully enclosed by its parent tile's volume. */\r\n range: ElementAlignedBox3d;\r\n /** Optionally, a volume more tightly encompassing this tile's contents. Must be fully enclosed by [[range]]. */\r\n contentRange?: ElementAlignedBox3d;\r\n /** The size in pixels beyond which this tile is considered too low-resolution for display. If zero, the tile is considered undisplayable.\r\n * An undisplayable tile may have displayable child tiles.\r\n */\r\n maximumSize: number;\r\n}\r\n"]}
1
+ {"version":3,"file":"TileParams.js","sourceRoot":"","sources":["../../../src/tile/TileParams.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG"}
@@ -1 +1 @@
1
- {"version":3,"file":"TileRequest.js","sourceRoot":"","sources":["../../../src/tile/TileRequest.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 Tiles\r\n */\r\n\r\nimport { assert, base64StringToUint8Array, IModelStatus } from \"@itwin/core-bentley\";\r\nimport { ImageSource } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport { ReadonlyTileUserSet, Tile, TileContent, TileRequestChannel, TileTree, TileUser } from \"./internal\";\r\n\r\n/** Represents a pending or active request to load the contents of a [[Tile]]. The request coordinates with the [[Tile.requestContent]] to obtain the raw content and\r\n * [[Tile.readContent]] to convert the result into a [[RenderGraphic]]. TileRequests are created internally as needed; it is never necessary or useful for external code to create them.\r\n * @public\r\n * @extensions\r\n */\r\nexport class TileRequest {\r\n /** The requested tile. While the request is pending or active, `tile.request` points back to this TileRequest. */\r\n public readonly tile: Tile;\r\n /** The channel via which the request will be executed. */\r\n public readonly channel: TileRequestChannel;\r\n /** The set of [[TileUser]]s that are awaiting the result of this request. When this becomes empty, the request is canceled because no user cares about it.\r\n * @internal\r\n */\r\n public users: ReadonlyTileUserSet;\r\n private _state: TileRequest.State;\r\n /** Determines the order in which pending requests are pulled off the queue to become active. A tile with a lower priority value takes precedence over one with a higher value. */\r\n public priority = 0;\r\n\r\n /** Constructor */\r\n public constructor(tile: Tile, user: TileUser) {\r\n this._state = TileRequest.State.Queued;\r\n this.tile = tile;\r\n this.channel = tile.channel;\r\n this.users = IModelApp.tileAdmin.getTileUserSetForRequest(user);\r\n }\r\n\r\n /** The set of [[Viewport]]s that are awaiting the result of this request. When this becomes empty, the request is canceled because no user cares about it. */\r\n public get viewports(): Iterable<Viewport> {\r\n return TileUser.viewportsFromUsers(this.users);\r\n }\r\n\r\n /** The request's current state. */\r\n public get state(): TileRequest.State { return this._state; }\r\n\r\n /** True if the request has been enqueued but not yet dispatched. */\r\n public get isQueued() { return TileRequest.State.Queued === this._state; }\r\n\r\n /** True if the request has been canceled. */\r\n public get isCanceled(): boolean {\r\n // If iModel was closed, cancel immediately\r\n if (this.tile.iModel.tiles.isDisposed)\r\n return true;\r\n\r\n // After we've received the raw tile data, always finish processing it - otherwise tile may end up in limbo (and producing tile content should be faster than re-requesting raw data).\r\n if (TileRequest.State.Loading === this._state)\r\n return false;\r\n\r\n // If no user cares about this tile any more, we're canceled.\r\n return this.users.isEmpty;\r\n }\r\n\r\n /** The tile tree to which the requested [[Tile]] belongs. */\r\n public get tree(): TileTree { return this.tile.tree; }\r\n\r\n /** Indicate that the specified user is awaiting the result of this request.\r\n * @internal\r\n */\r\n public addUser(user: TileUser): void {\r\n this.users = IModelApp.tileAdmin.getTileUserSetForRequest(user, this.users);\r\n }\r\n\r\n /** Transition the request from \"queued\" to \"active\", kicking off a series of asynchronous operations usually beginning with an http request, and -\r\n * if the request is not subsequently canceled - resulting in either a successfully-loaded Tile, or a failed (\"not found\") Tile.\r\n * @internal\r\n */\r\n public async dispatch(onHttpResponse: () => void): Promise<void> {\r\n if (this.isCanceled)\r\n return;\r\n\r\n assert(this._state === TileRequest.State.Queued);\r\n this._state = TileRequest.State.Dispatched;\r\n let response;\r\n let gotResponse = false;\r\n try {\r\n response = await this.channel.requestContent(this.tile, () => this.isCanceled);\r\n gotResponse = true;\r\n\r\n // Set this now, so our `isCanceled` check can see it.\r\n this._state = TileRequest.State.Loading;\r\n } catch (err: any) {\r\n if (err.errorNumber && err.errorNumber === IModelStatus.ServerTimeout) {\r\n // Invalidate scene - if tile is re-selected, it will be re-requested.\r\n this.notifyAndClear();\r\n this._state = TileRequest.State.Failed;\r\n this.channel.recordTimeout();\r\n } else {\r\n // Unknown error - not retryable\r\n this.setFailed();\r\n }\r\n }\r\n\r\n // Notify caller that we have finished http activity.\r\n onHttpResponse();\r\n\r\n if (!gotResponse || this.isCanceled)\r\n return;\r\n\r\n if (undefined === response && this.channel.onNoContent(this)) {\r\n // Invalidate scene - if tile is re-selected, it will be re-requested - presumably via a different channel.\r\n this.notifyAndClear();\r\n this._state = TileRequest.State.Failed;\r\n return;\r\n }\r\n\r\n return this.handleResponse(response);\r\n }\r\n\r\n /** Cancels this request. This leaves the associated Tile's state untouched.\r\n * @internal\r\n */\r\n public cancel(): void {\r\n this.notifyAndClear();\r\n if (TileRequest.State.Dispatched === this._state)\r\n this.channel.onActiveRequestCanceled(this);\r\n\r\n this._state = TileRequest.State.Failed;\r\n }\r\n\r\n /** Invalidates the scene of each [[TileUser]] interested in this request - typically because the request succeeded, failed, or was canceled. */\r\n private notify(): void {\r\n this.users.forEach((user) => {\r\n if (user.onRequestStateChanged)\r\n user.onRequestStateChanged(this);\r\n });\r\n }\r\n\r\n /** Invalidates the scene of each [[TileUser]] interested in this request and clears the set of interested users. */\r\n private notifyAndClear(): void {\r\n this.notify();\r\n this.users = IModelApp.tileAdmin.emptyTileUserSet;\r\n this.tile.request = undefined;\r\n }\r\n\r\n private setFailed() {\r\n this.notifyAndClear();\r\n this._state = TileRequest.State.Failed;\r\n this.tile.setNotFound();\r\n this.channel.recordFailure();\r\n }\r\n\r\n /** Invoked when the raw tile content becomes available, to convert it into a tile graphic. */\r\n private async handleResponse(response: TileRequest.Response): Promise<void> {\r\n let content: TileContent | undefined;\r\n let data: TileRequest.ResponseData | undefined;\r\n if (undefined !== response) {\r\n if (typeof response === \"string\")\r\n data = base64StringToUint8Array(response);\r\n else if (response instanceof Uint8Array || response instanceof ImageSource)\r\n data = response;\r\n else if (response instanceof ArrayBuffer)\r\n data = new Uint8Array(response);\r\n else if (typeof response === \"object\") {\r\n if (\"content\" in response)\r\n content = response.content;\r\n else if (\"data\" in response)\r\n data = response;\r\n }\r\n }\r\n\r\n if (!content && !data) {\r\n this.setFailed();\r\n return;\r\n }\r\n\r\n try {\r\n const start = Date.now();\r\n if (!content) {\r\n assert(undefined !== data);\r\n content = await this.tile.readContent(data, IModelApp.renderSystem, () => this.isCanceled);\r\n if (this.isCanceled)\r\n return;\r\n }\r\n\r\n this._state = TileRequest.State.Completed;\r\n this.tile.setContent(content);\r\n this.notifyAndClear();\r\n this.channel.recordCompletion(this.tile, content, Date.now() - start);\r\n } catch {\r\n this.setFailed();\r\n }\r\n }\r\n}\r\n\r\n/** @public */\r\nexport namespace TileRequest {\r\n /** The type of a raw response to a request for tile content. Processed upon receipt into a [[TileRequest.Response]] type.\r\n * [[Tile.requestContent]] produces a response of this type; it is then converted to a [[Tile.ResponseData]] from which [[Tile.readContent]]\r\n * can produce a [[RenderGraphic]].\r\n * @public\r\n */\r\n export type Response = Uint8Array | ArrayBuffer | string | ImageSource | { content: TileContent } | { data: any } | undefined;\r\n\r\n /** The input to [[Tile.readContent]], to be converted into a [[RenderGraphic]].\r\n * @public\r\n */\r\n export type ResponseData = Uint8Array | ImageSource | { data: any };\r\n\r\n /** The states through which a [[TileRequest]] proceeds. During the first 3 states, the [[Tile]]'s `request` member is defined,\r\n * and its [[Tile.LoadStatus]] is computed based on the state of its request.\r\n *@ public\r\n */\r\n export enum State {\r\n /** Initial state. Request is pending but not yet dispatched. */\r\n Queued,\r\n /** Follows `Queued` when request begins to be actively processed. */\r\n Dispatched,\r\n /** Follows `Dispatched` when the response to the request is being converted into tile graphics. */\r\n Loading,\r\n /** Follows `Loading` when tile graphic has successfully been produced. */\r\n Completed,\r\n /** Follows any state in which an error prevents progression, or during which the request was canceled. */\r\n Failed,\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"TileRequest.js","sourceRoot":"","sources":["../../../src/tile/TileRequest.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TileRequestChannel.js","sourceRoot":"","sources":["../../../src/tile/TileRequestChannel.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 Tiles\r\n */\r\n\r\nimport { assert, PriorityQueue } from \"@itwin/core-bentley\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { Tile, TileContent, TileRequest } from \"./internal\";\r\n\r\nclass TileRequestQueue extends PriorityQueue<TileRequest> {\r\n public constructor() {\r\n super((lhs, rhs) => {\r\n const diff = lhs.tile.tree.loadPriority - rhs.tile.tree.loadPriority;\r\n return 0 !== diff ? diff : lhs.priority - rhs.priority;\r\n });\r\n }\r\n}\r\n\r\n/** As part of a [[TileRequestChannelStatistics]], summarizes cumulative time spent decoding tile content.\r\n * For each Tile, the time elapsed between receiving the raw tile content (e.g., over the network) and converting it to a [[TileContent]] via [[Tile.readContent]]\r\n * is recorded.\r\n * All times are reported in milliseconds.\r\n * @beta\r\n */\r\nexport interface TileContentDecodingStatistics {\r\n /** The total number of milliseconds spent decoding content. */\r\n total: number;\r\n /** The mean (average) number of milliseconds spent decoding content. */\r\n mean: number;\r\n /** The longest amount of time, in milliseconds, spent decoding any single tile's content. */\r\n max: number;\r\n /** The shortest amount of time, in milliseconds, spent decoding any single tile's content. */\r\n min: number;\r\n}\r\n\r\n/** Statistics regarding the current and cumulative state of one or more [[TileRequestChannel]]s. Useful for monitoring performance and diagnosing problems.\r\n * @see [[TileRequestChannel.statistics]] for a specific channel's statistics.\r\n * @see [[TileRequestChannels.statistics]] for statistics from all channels.\r\n * @see [[TileAdmin.statistics]] for additional statistics.\r\n * @public\r\n * @extensions\r\n */\r\nexport class TileRequestChannelStatistics {\r\n /** The number of queued requests that have not yet been dispatched. */\r\n public numPendingRequests = 0;\r\n /** The number of requests that have been dispatched but not yet completed. */\r\n public numActiveRequests = 0;\r\n /** The number of requests canceled during the most recent update. */\r\n public numCanceled = 0;\r\n /** The total number of completed requests during this session. */\r\n public totalCompletedRequests = 0;\r\n /** The total number of failed requests during this session. */\r\n public totalFailedRequests = 0;\r\n /** The total number of timed-out requests during this session. */\r\n public totalTimedOutRequests = 0;\r\n /** The total number of completed requests during this session which produced an empty tile.\r\n * These tiles also contribute to [[totalCompletedRequests]], but not to [[totalUndisplayableTiles]].\r\n */\r\n public totalEmptyTiles = 0;\r\n /** The total number of completed requests during this session that produced an undisplayable tile.\r\n * These tiles also contribute to [[totalCompletedRequests]], but not to [[totalEmptyTiles]].\r\n */\r\n public totalUndisplayableTiles = 0;\r\n /** The total number of tiles whose contents were not found in cloud storage cache and therefore resulted in a backend request to generate the tile content. */\r\n public totalCacheMisses = 0;\r\n /** The total number of tiles for which content requests were dispatched. */\r\n public totalDispatchedRequests = 0;\r\n /** The total number of tiles for which content requests were dispatched and then canceled on the backend before completion. */\r\n public totalAbortedRequests = 0;\r\n /** Statistics summarizing time spent decoding tile content.\r\n * @beta\r\n */\r\n public decoding: TileContentDecodingStatistics = {\r\n total: 0,\r\n mean: 0,\r\n max: Number.MIN_SAFE_INTEGER,\r\n min: Number.MAX_SAFE_INTEGER,\r\n };\r\n\r\n /** @internal */\r\n public addTo(stats: TileRequestChannelStatistics): void {\r\n for (const propName in this) { // eslint-disable-line guard-for-in\r\n const key = propName as keyof TileRequestChannelStatistics;\r\n const val = this[key];\r\n if (typeof val === \"number\") {\r\n assert(typeof stats[key] === \"number\");\r\n (stats[key] as number) += val; // eslint-disable-line @typescript-eslint/no-unnecessary-type-assertion\r\n }\r\n }\r\n\r\n stats.decoding.total += this.decoding.total;\r\n stats.decoding.max = Math.max(this.decoding.max, stats.decoding.max);\r\n stats.decoding.min = Math.min(this.decoding.min, stats.decoding.min);\r\n\r\n if (stats.totalCompletedRequests > 0)\r\n stats.decoding.mean = (stats.decoding.total) / stats.totalCompletedRequests;\r\n }\r\n\r\n /** @internal */\r\n public recordCompletion(tile: Tile, elapsedMilliseconds: number): void {\r\n ++this.totalCompletedRequests;\r\n if (tile.isEmpty)\r\n ++this.totalEmptyTiles;\r\n else if (!tile.isDisplayable)\r\n ++this.totalUndisplayableTiles;\r\n\r\n this.decoding.total += elapsedMilliseconds;\r\n this.decoding.mean = this.decoding.total / this.totalCompletedRequests;\r\n this.decoding.max = Math.max(this.decoding.max, elapsedMilliseconds);\r\n this.decoding.min = Math.min(this.decoding.min, elapsedMilliseconds);\r\n }\r\n}\r\n\r\n/** A channel over which requests for tile content can be made. The channel may request content over HTTP, calls to the backend via IPC or RPC, or any other method like generating the content\r\n * on the frontend. The channel consists of a queue of pending requests and a set of \"active\" requests (dispatched and awaiting a response). Incoming requests are placed onto the queue. Requests are popped of the queue in order of priority and dispatched, until the maximum number of simultaneously-active requests is reached.\r\n * The maximum number of active requests depends on the transport mechanism. For HTTP 1.1, browsers impose a limit of 6 simultaneous connections to a given domain, so ideally each unique domain will use its own unique channel with a limit of 6 active requests. Even for requests satisfied entirely by the frontend, imposing a limit is important for throttling the amount of work done at one time, especially because as the user navigates the view, tiles that were previously requested may no longer be of interest and we shouldn't waste resources producing their content.\r\n * A channel must be registered with [[TileRequestChannels]] and must have a unique name among all registered channels.\r\n * @see [[TileRequestChannels.getForHttp]] to obtain (and register if not already registered) an HTTP-based channel.\r\n * @see [[TileAdmin.channels]] for the channels configured for use with the iTwin.js display system.\r\n * @see [[Tile.channel]] to specify the channel to be used to request a given tile's content.\r\n * @public\r\n * @extensions\r\n */\r\nexport class TileRequestChannel {\r\n /** The channel's name. It must be unique among all registered [[TileRequestChannels]]. */\r\n public readonly name: string;\r\n private _concurrency: number;\r\n /** Protected strictly for tests. @internal */\r\n protected readonly _active = new Set<TileRequest>();\r\n private _pending = new TileRequestQueue();\r\n private _previouslyPending = new TileRequestQueue();\r\n protected _statistics = new TileRequestChannelStatistics();\r\n /** Callback invoked by recordCompletion. See IModelTileMetadataCacheChannel.\r\n * @internal\r\n */\r\n public contentCallback?: (tile: Tile, content: TileContent) => void;\r\n\r\n /** Create a new channel.\r\n * @param name The unique name of the channel.\r\n * @param concurrency The maximum number of requests that can be dispatched and awaiting a response at any given time. Requests beyond this maximum are enqueued for deferred dispatch.\r\n * @see [[TileRequestChannels.getForHttp]] to create an HTTP-based channel.\r\n */\r\n public constructor(name: string, concurrency: number) {\r\n this.name = name;\r\n this._concurrency = concurrency;\r\n }\r\n\r\n /** The maximum number of active requests. This is generally only modified for debugging purposes.\r\n * @note When reducing `concurrency`, the number of active requests ([[numActive]]) will only decrease to the new value after a sufficient number of dispatched requests are resolved.\r\n */\r\n public get concurrency(): number {\r\n return this._concurrency;\r\n }\r\n public set concurrency(max: number) {\r\n this._concurrency = max;\r\n }\r\n\r\n /** The number of requests that have been dispatched and are awaiting a response. */\r\n public get numActive(): number {\r\n return this._active.size;\r\n }\r\n\r\n /** The number of requests that have been enqueued for later dispatch. */\r\n public get numPending(): number {\r\n return this._pending.length;\r\n }\r\n\r\n /** The total number of requests in this channel, whether dispatched or enqueued. */\r\n public get size(): number {\r\n return this.numActive + this.numPending;\r\n }\r\n\r\n /** Statistics intended primarily for debugging. */\r\n public get statistics(): Readonly<TileRequestChannelStatistics> {\r\n this._statistics.numPendingRequests = this.numPending;\r\n this._statistics.numActiveRequests = this.numActive;\r\n return this._statistics;\r\n }\r\n\r\n /** Reset all of this channel's [[statistics]] to zero. */\r\n public resetStatistics(): void {\r\n this._statistics = new TileRequestChannelStatistics();\r\n }\r\n\r\n /** Invoked by [[TileRequest]] when a request times out.\r\n * @internal\r\n */\r\n public recordTimeout(): void {\r\n ++this._statistics.totalTimedOutRequests;\r\n }\r\n\r\n /** Invoked by [[TileRequest]] when a request fails to produce a response.\r\n * @internal\r\n */\r\n public recordFailure(): void {\r\n ++this._statistics.totalFailedRequests;\r\n }\r\n\r\n /** Invoked by [[TileRequest]] after a request completes.\r\n * @internal\r\n */\r\n public recordCompletion(tile: Tile, content: TileContent, elapsedMilliseconds: number): void {\r\n this._statistics.recordCompletion(tile, elapsedMilliseconds);\r\n\r\n if (this.contentCallback)\r\n this.contentCallback(tile, content);\r\n }\r\n\r\n /** Invoked by [[TileRequestChannels.swapPending]] when [[TileAdmin]] is about to start enqueuing new requests.\r\n * @internal\r\n */\r\n public swapPending(): void {\r\n const previouslyPending = this._pending;\r\n this._pending = this._previouslyPending;\r\n this._previouslyPending = previouslyPending;\r\n }\r\n\r\n /** Invoked by [[TileAdmin.processRequests]] to enqueue a request. Ordering is ignored - the queue will be re-sorted later.\r\n * @internal\r\n */\r\n public append(request: TileRequest): void {\r\n assert(request.channel === this);\r\n this._pending.append(request);\r\n }\r\n\r\n /** Invoked by [[TileRequestChannels.process]] to process the active and pending requests.\r\n * @internal\r\n */\r\n public process(): void {\r\n this._statistics.numCanceled = 0;\r\n\r\n // Recompute priority of each request.\r\n for (const pending of this._pending)\r\n pending.priority = pending.tile.computeLoadPriority(pending.viewports, pending.users);\r\n\r\n // Sort pending requests by priority.\r\n this._pending.sort();\r\n\r\n // Cancel any previously pending requests that are no longer needed.\r\n for (const queued of this._previouslyPending)\r\n if (queued.users.isEmpty)\r\n this.cancel(queued);\r\n\r\n this._previouslyPending.clear();\r\n\r\n // Cancel any active requests that are no longer needed.\r\n // NB: Do NOT remove them from the active set until their http activity has completed.\r\n for (const active of this._active)\r\n if (active.users.isEmpty)\r\n this.cancel(active);\r\n\r\n // Batch-cancel running requests.\r\n this.processCancellations();\r\n\r\n // Dispatch requests from the queue up to our maximum.\r\n while (this._active.size < this._concurrency) {\r\n const request = this._pending.pop();\r\n if (!request)\r\n break;\r\n\r\n this.dispatch(request);\r\n }\r\n }\r\n\r\n /** Cancel all active and queued requests and clear the active set and queue.\r\n * @internal\r\n */\r\n public cancelAndClearAll(): void {\r\n for (const active of this._active)\r\n active.cancel();\r\n\r\n for (const queued of this._pending)\r\n queued.cancel();\r\n\r\n this._active.clear();\r\n this._pending.clear();\r\n }\r\n\r\n /** Invoked when [[Tile.requestContent]] returns `undefined`. Return true if the request can be retried, e.g., via different channel.\r\n * If so, the tile will remain marked as \"not loaded\" and, if re-selected for display, a new [[TileRequest]] will be enqueued for it.\r\n * Otherwise, the tile will be marked as \"failed to load\" and no further requests will be made for its content.\r\n * The default implementation always returns `false`.\r\n */\r\n public onNoContent(_request: TileRequest): boolean {\r\n return false;\r\n }\r\n\r\n /** Invoked when a request that was previously dispatched is canceled before a response is received.\r\n * Some channels accumulate such requests for later cancellation in [[processCancellations]].\r\n */\r\n public onActiveRequestCanceled(_request: TileRequest): void { }\r\n\r\n /** Invoked to do any additional work to cancel tiles accumulated by [[onActiveRequestCanceled]]. For example, a channel that requests tile content\r\n * over IPC may signal to the tile generation process that it should cease generating content for those tiles.\r\n */\r\n public processCancellations(): void { }\r\n\r\n /** Invoked when an iModel is closed, to clean up any state associated with that iModel. */\r\n public onIModelClosed(_iModel: IModelConnection): void { }\r\n\r\n /** Request content for the specified tile. The default implementation simply forwards to [[Tile.requestContent]]. */\r\n public async requestContent(tile: Tile, isCanceled: () => boolean): Promise<TileRequest.Response> {\r\n return tile.requestContent(isCanceled);\r\n }\r\n\r\n /** Protected only for tests - do not override.\r\n * @internal\r\n */\r\n protected dispatch(request: TileRequest): void {\r\n ++this._statistics.totalDispatchedRequests;\r\n this._active.add(request);\r\n request.dispatch(() => {\r\n this.dropActiveRequest(request);\r\n }).catch((_) => {\r\n //\r\n });\r\n }\r\n\r\n /** Protected only for tests - do not override.\r\n * @internal\r\n */\r\n protected cancel(request: TileRequest): void {\r\n request.cancel();\r\n ++this._statistics.numCanceled;\r\n }\r\n\r\n /** Protected only for tests - do not override.\r\n * @internal\r\n */\r\n protected dropActiveRequest(request: TileRequest): void {\r\n assert(this._active.has(request) || request.isCanceled);\r\n this._active.delete(request);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"TileRequestChannel.js","sourceRoot":"","sources":["../../../src/tile/TileRequestChannel.ts"],"names":[],"mappings":"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"}