@itwin/core-frontend 3.1.0-dev.8 → 3.2.0-dev.3

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 (789) hide show
  1. package/CHANGELOG.md +163 -35
  2. package/lib/cjs/AccuSnap.js +2 -2
  3. package/lib/cjs/AccuSnap.js.map +1 -1
  4. package/lib/cjs/ApproximateTerrainHeights.d.ts +1 -1
  5. package/lib/cjs/ApproximateTerrainHeights.d.ts.map +1 -1
  6. package/lib/cjs/ApproximateTerrainHeights.js +21 -9
  7. package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
  8. package/lib/cjs/ApproximateTerrainHeightsProps.d.ts +12 -0
  9. package/lib/cjs/ApproximateTerrainHeightsProps.d.ts.map +1 -0
  10. package/lib/cjs/ApproximateTerrainHeightsProps.js +13 -0
  11. package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -0
  12. package/lib/cjs/CategorySelectorState.js +1 -1
  13. package/lib/cjs/CategorySelectorState.js.map +1 -1
  14. package/lib/cjs/DisplayStyleState.d.ts +4 -3
  15. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  16. package/lib/cjs/DisplayStyleState.js +32 -8
  17. package/lib/cjs/DisplayStyleState.js.map +1 -1
  18. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  19. package/lib/cjs/DrawingViewState.js +6 -5
  20. package/lib/cjs/DrawingViewState.js.map +1 -1
  21. package/lib/cjs/FrontendLoggerCategory.d.ts +3 -1
  22. package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
  23. package/lib/cjs/FrontendLoggerCategory.js +2 -0
  24. package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
  25. package/lib/cjs/HitDetail.js.map +1 -1
  26. package/lib/cjs/IModelApp.d.ts +8 -4
  27. package/lib/cjs/IModelApp.d.ts.map +1 -1
  28. package/lib/cjs/IModelApp.js +20 -10
  29. package/lib/cjs/IModelApp.js.map +1 -1
  30. package/lib/cjs/IModelConnection.d.ts +3 -5
  31. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  32. package/lib/cjs/IModelConnection.js +4 -10
  33. package/lib/cjs/IModelConnection.js.map +1 -1
  34. package/lib/cjs/ImageUtil.d.ts.map +1 -1
  35. package/lib/cjs/ImageUtil.js +8 -14
  36. package/lib/cjs/ImageUtil.js.map +1 -1
  37. package/lib/cjs/LocalhostIpcApp.d.ts +2 -0
  38. package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
  39. package/lib/cjs/LocalhostIpcApp.js +10 -4
  40. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  41. package/lib/cjs/RealityDataSource.d.ts +60 -14
  42. package/lib/cjs/RealityDataSource.d.ts.map +1 -1
  43. package/lib/cjs/RealityDataSource.js +36 -235
  44. package/lib/cjs/RealityDataSource.js.map +1 -1
  45. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts +67 -0
  46. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -0
  47. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js +166 -0
  48. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -0
  49. package/lib/cjs/RealityDataSourceContextShareImpl.d.ts +83 -0
  50. package/lib/cjs/RealityDataSourceContextShareImpl.d.ts.map +1 -0
  51. package/lib/cjs/RealityDataSourceContextShareImpl.js +234 -0
  52. package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -0
  53. package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts +65 -0
  54. package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -0
  55. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js +135 -0
  56. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -0
  57. package/lib/cjs/SheetViewState.js +4 -0
  58. package/lib/cjs/SheetViewState.js.map +1 -1
  59. package/lib/cjs/ViewState.d.ts +8 -0
  60. package/lib/cjs/ViewState.d.ts.map +1 -1
  61. package/lib/cjs/ViewState.js +1 -1
  62. package/lib/cjs/ViewState.js.map +1 -1
  63. package/lib/cjs/Viewport.d.ts +30 -12
  64. package/lib/cjs/Viewport.d.ts.map +1 -1
  65. package/lib/cjs/Viewport.js +43 -1
  66. package/lib/cjs/Viewport.js.map +1 -1
  67. package/lib/cjs/core-frontend.d.ts +6 -4
  68. package/lib/cjs/core-frontend.d.ts.map +1 -1
  69. package/lib/cjs/core-frontend.js +6 -4
  70. package/lib/cjs/core-frontend.js.map +1 -1
  71. package/lib/cjs/extension/Extension.d.ts +48 -0
  72. package/lib/cjs/extension/Extension.d.ts.map +1 -0
  73. package/lib/cjs/extension/Extension.js +18 -0
  74. package/lib/cjs/extension/Extension.js.map +1 -0
  75. package/lib/cjs/extension/ExtensionAdmin.d.ts +64 -0
  76. package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -0
  77. package/lib/cjs/extension/ExtensionAdmin.js +106 -0
  78. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -0
  79. package/lib/cjs/extension/ExtensionHost.d.ts +23 -0
  80. package/lib/cjs/extension/ExtensionHost.d.ts.map +1 -0
  81. package/lib/cjs/extension/ExtensionHost.js +26 -0
  82. package/lib/cjs/extension/ExtensionHost.js.map +1 -0
  83. package/lib/cjs/extension/ExtensionImpl.d.ts +21 -0
  84. package/lib/cjs/extension/ExtensionImpl.d.ts.map +1 -0
  85. package/lib/cjs/extension/ExtensionImpl.js +45 -0
  86. package/lib/cjs/extension/ExtensionImpl.js.map +1 -0
  87. package/lib/cjs/extension/ExtensionLoader.d.ts +26 -0
  88. package/lib/cjs/extension/ExtensionLoader.d.ts.map +1 -0
  89. package/lib/cjs/extension/ExtensionLoader.js +10 -0
  90. package/lib/cjs/extension/ExtensionLoader.js.map +1 -0
  91. package/lib/cjs/extension/ExtensionRuntime.d.ts +5 -0
  92. package/lib/cjs/extension/ExtensionRuntime.d.ts.map +1 -0
  93. package/lib/cjs/extension/ExtensionRuntime.js +86 -0
  94. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -0
  95. package/lib/cjs/extension/extensions.d.ts +19 -0
  96. package/lib/cjs/extension/extensions.d.ts.map +1 -0
  97. package/lib/cjs/extension/extensions.js +36 -0
  98. package/lib/cjs/extension/extensions.js.map +1 -0
  99. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts +2 -2
  100. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  101. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js +48 -44
  102. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  103. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +90 -80
  104. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  105. package/lib/cjs/quantity-formatting/QuantityFormatter.js +85 -45
  106. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  107. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.d.ts +54 -0
  108. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.d.ts.map +1 -0
  109. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js +32 -0
  110. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -0
  111. package/lib/cjs/quantity-formatting/UnitsData.d.ts +11 -0
  112. package/lib/cjs/quantity-formatting/UnitsData.d.ts.map +1 -0
  113. package/lib/cjs/quantity-formatting/UnitsData.js +59 -0
  114. package/lib/cjs/quantity-formatting/UnitsData.js.map +1 -0
  115. package/lib/cjs/render/GraphicBranch.d.ts +2 -0
  116. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  117. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  118. package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
  119. package/lib/cjs/render/ParticleCollectionBuilder.js +16 -9
  120. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  121. package/lib/cjs/render/RenderPlanarClassifier.d.ts +1 -1
  122. package/lib/cjs/render/RenderPlanarClassifier.d.ts.map +1 -1
  123. package/lib/cjs/render/RenderPlanarClassifier.js.map +1 -1
  124. package/lib/cjs/render/RenderSystem.d.ts +12 -7
  125. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  126. package/lib/cjs/render/RenderSystem.js +27 -22
  127. package/lib/cjs/render/RenderSystem.js.map +1 -1
  128. package/lib/cjs/render/RenderTarget.d.ts +4 -4
  129. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  130. package/lib/cjs/render/RenderTarget.js.map +1 -1
  131. package/lib/cjs/render/Scene.d.ts.map +1 -1
  132. package/lib/cjs/render/Scene.js.map +1 -1
  133. package/lib/cjs/render/primitives/EdgeParams.d.ts.map +1 -1
  134. package/lib/cjs/render/primitives/EdgeParams.js +3 -1
  135. package/lib/cjs/render/primitives/EdgeParams.js.map +1 -1
  136. package/lib/cjs/render/primitives/PolylineParams.d.ts.map +1 -1
  137. package/lib/cjs/render/primitives/PolylineParams.js +10 -5
  138. package/lib/cjs/render/primitives/PolylineParams.js.map +1 -1
  139. package/lib/cjs/render/primitives/VertexKey.d.ts +11 -8
  140. package/lib/cjs/render/primitives/VertexKey.d.ts.map +1 -1
  141. package/lib/cjs/render/primitives/VertexKey.js +24 -6
  142. package/lib/cjs/render/primitives/VertexKey.js.map +1 -1
  143. package/lib/cjs/render/primitives/VertexTable.d.ts +15 -2
  144. package/lib/cjs/render/primitives/VertexTable.d.ts.map +1 -1
  145. package/lib/cjs/render/primitives/VertexTable.js +273 -108
  146. package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
  147. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  148. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js +22 -10
  149. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  150. package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts +4 -6
  151. package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  152. package/lib/cjs/render/primitives/mesh/MeshBuilder.js +16 -13
  153. package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
  154. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
  155. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js +12 -1
  156. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  157. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +45 -28
  158. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  159. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +107 -146
  160. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  161. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts +17 -2
  162. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +1 -1
  163. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js +39 -2
  164. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js.map +1 -1
  165. package/lib/cjs/render/webgl/BackgroundMapDrape.js +1 -1
  166. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  167. package/lib/cjs/render/webgl/BranchState.d.ts +2 -0
  168. package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
  169. package/lib/cjs/render/webgl/BranchState.js +5 -3
  170. package/lib/cjs/render/webgl/BranchState.js.map +1 -1
  171. package/lib/cjs/render/webgl/CachedGeometry.d.ts +6 -0
  172. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  173. package/lib/cjs/render/webgl/CachedGeometry.js +6 -0
  174. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  175. package/lib/cjs/render/webgl/DrawCommand.js +1 -1
  176. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  177. package/lib/cjs/render/webgl/Graphic.d.ts +5 -3
  178. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  179. package/lib/cjs/render/webgl/Graphic.js +7 -2
  180. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  181. package/lib/cjs/render/webgl/PlanarClassifier.d.ts +4 -1
  182. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  183. package/lib/cjs/render/webgl/PlanarClassifier.js +22 -9
  184. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  185. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts +2 -2
  186. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  187. package/lib/cjs/render/webgl/PlanarTextureProjection.js +5 -3
  188. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  189. package/lib/cjs/render/webgl/RealityMesh.d.ts +31 -11
  190. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  191. package/lib/cjs/render/webgl/RealityMesh.js +155 -52
  192. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  193. package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
  194. package/lib/cjs/render/webgl/RenderCommands.js +4 -0
  195. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  196. package/lib/cjs/render/webgl/SceneCompositor.d.ts +3 -0
  197. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  198. package/lib/cjs/render/webgl/SceneCompositor.js +45 -19
  199. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  200. package/lib/cjs/render/webgl/ShaderBuilder.d.ts +8 -7
  201. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  202. package/lib/cjs/render/webgl/ShaderBuilder.js +12 -5
  203. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  204. package/lib/cjs/render/webgl/ShaderProgram.d.ts +1 -0
  205. package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
  206. package/lib/cjs/render/webgl/ShaderProgram.js +1 -0
  207. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  208. package/lib/cjs/render/webgl/System.d.ts +9 -9
  209. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  210. package/lib/cjs/render/webgl/System.js +5 -5
  211. package/lib/cjs/render/webgl/System.js.map +1 -1
  212. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  213. package/lib/cjs/render/webgl/Target.js.map +1 -1
  214. package/lib/cjs/render/webgl/VertexLUT.d.ts +2 -1
  215. package/lib/cjs/render/webgl/VertexLUT.d.ts.map +1 -1
  216. package/lib/cjs/render/webgl/VertexLUT.js +4 -3
  217. package/lib/cjs/render/webgl/VertexLUT.js.map +1 -1
  218. package/lib/cjs/render/webgl/glsl/Color.js +1 -1
  219. package/lib/cjs/render/webgl/glsl/Color.js.map +1 -1
  220. package/lib/cjs/render/webgl/glsl/Decode.d.ts +6 -0
  221. package/lib/cjs/render/webgl/glsl/Decode.d.ts.map +1 -1
  222. package/lib/cjs/render/webgl/glsl/Decode.js +18 -1
  223. package/lib/cjs/render/webgl/glsl/Decode.js.map +1 -1
  224. package/lib/cjs/render/webgl/glsl/Edge.d.ts.map +1 -1
  225. package/lib/cjs/render/webgl/glsl/Edge.js +15 -6
  226. package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
  227. package/lib/cjs/render/webgl/glsl/PlanarClassification.js +1 -1
  228. package/lib/cjs/render/webgl/glsl/PlanarClassification.js.map +1 -1
  229. package/lib/cjs/render/webgl/glsl/PointString.d.ts.map +1 -1
  230. package/lib/cjs/render/webgl/glsl/PointString.js +1 -1
  231. package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
  232. package/lib/cjs/render/webgl/glsl/Polyline.d.ts +2 -2
  233. package/lib/cjs/render/webgl/glsl/Polyline.d.ts.map +1 -1
  234. package/lib/cjs/render/webgl/glsl/Polyline.js +24 -9
  235. package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
  236. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  237. package/lib/cjs/render/webgl/glsl/RealityMesh.js +102 -27
  238. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  239. package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
  240. package/lib/cjs/render/webgl/glsl/Surface.js +18 -19
  241. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  242. package/lib/cjs/render/webgl/glsl/Thematic.d.ts.map +1 -1
  243. package/lib/cjs/render/webgl/glsl/Thematic.js +1 -6
  244. package/lib/cjs/render/webgl/glsl/Thematic.js.map +1 -1
  245. package/lib/cjs/render/webgl/glsl/Vertex.d.ts.map +1 -1
  246. package/lib/cjs/render/webgl/glsl/Vertex.js +31 -14
  247. package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
  248. package/lib/cjs/tile/ClassifierTileTree.d.ts +4 -2
  249. package/lib/cjs/tile/ClassifierTileTree.d.ts.map +1 -1
  250. package/lib/cjs/tile/ClassifierTileTree.js +31 -16
  251. package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
  252. package/lib/cjs/tile/GltfReader.d.ts +22 -3
  253. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  254. package/lib/cjs/tile/GltfReader.js +231 -45
  255. package/lib/cjs/tile/GltfReader.js.map +1 -1
  256. package/lib/cjs/tile/OPCFormatInterpreter.d.ts +22 -0
  257. package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +1 -0
  258. package/lib/cjs/tile/OPCFormatInterpreter.js +92 -0
  259. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -0
  260. package/lib/cjs/tile/PntsReader.d.ts +1 -1
  261. package/lib/cjs/tile/PntsReader.d.ts.map +1 -1
  262. package/lib/cjs/tile/PntsReader.js +170 -36
  263. package/lib/cjs/tile/PntsReader.js.map +1 -1
  264. package/lib/cjs/tile/PrimaryTileTree.d.ts +18 -2
  265. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  266. package/lib/cjs/tile/PrimaryTileTree.js +53 -2
  267. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  268. package/lib/cjs/tile/RealityModelTileTree.d.ts +24 -3
  269. package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
  270. package/lib/cjs/tile/RealityModelTileTree.js +36 -11
  271. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  272. package/lib/cjs/tile/RealityTile.d.ts +16 -2
  273. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  274. package/lib/cjs/tile/RealityTile.js +32 -0
  275. package/lib/cjs/tile/RealityTile.js.map +1 -1
  276. package/lib/cjs/tile/RealityTileDrawArgs.d.ts +4 -1
  277. package/lib/cjs/tile/RealityTileDrawArgs.d.ts.map +1 -1
  278. package/lib/cjs/tile/RealityTileDrawArgs.js +3 -1
  279. package/lib/cjs/tile/RealityTileDrawArgs.js.map +1 -1
  280. package/lib/cjs/tile/RealityTileLoader.d.ts +7 -4
  281. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  282. package/lib/cjs/tile/RealityTileLoader.js +19 -5
  283. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  284. package/lib/cjs/tile/RealityTileTree.d.ts +4 -1
  285. package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
  286. package/lib/cjs/tile/RealityTileTree.js +11 -3
  287. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  288. package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts +52 -0
  289. package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -0
  290. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +179 -0
  291. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -0
  292. package/lib/cjs/tile/TileDrawArgs.d.ts +2 -0
  293. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  294. package/lib/cjs/tile/TileDrawArgs.js +5 -0
  295. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  296. package/lib/cjs/tile/TileGeometryCollector.d.ts +80 -0
  297. package/lib/cjs/tile/TileGeometryCollector.d.ts.map +1 -0
  298. package/lib/cjs/tile/TileGeometryCollector.js +71 -0
  299. package/lib/cjs/tile/TileGeometryCollector.js.map +1 -0
  300. package/lib/cjs/tile/TileTree.d.ts +7 -1
  301. package/lib/cjs/tile/TileTree.d.ts.map +1 -1
  302. package/lib/cjs/tile/TileTree.js +7 -0
  303. package/lib/cjs/tile/TileTree.js.map +1 -1
  304. package/lib/cjs/tile/TileTreeReference.d.ts +26 -1
  305. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  306. package/lib/cjs/tile/TileTreeReference.js +40 -0
  307. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  308. package/lib/cjs/tile/internal.d.ts +4 -0
  309. package/lib/cjs/tile/internal.d.ts.map +1 -1
  310. package/lib/cjs/tile/internal.js +4 -0
  311. package/lib/cjs/tile/internal.js.map +1 -1
  312. package/lib/cjs/tile/map/BingElevation.d.ts +2 -16
  313. package/lib/cjs/tile/map/BingElevation.d.ts.map +1 -1
  314. package/lib/cjs/tile/map/BingElevation.js +1 -63
  315. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  316. package/lib/cjs/tile/map/CesiumTerrainProvider.js +2 -2
  317. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  318. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +5 -3
  319. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  320. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +45 -12
  321. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  322. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +2 -2
  323. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
  324. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  325. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts +2 -2
  326. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  327. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  328. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +2 -2
  329. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  330. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +4 -3
  331. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  332. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +2 -2
  333. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +1 -1
  334. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  335. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +2 -2
  336. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  337. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +1 -1
  338. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  339. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +2 -2
  340. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  341. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  342. package/lib/cjs/tile/map/ImageryTileTree.d.ts +2 -3
  343. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  344. package/lib/cjs/tile/map/ImageryTileTree.js +4 -3
  345. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  346. package/lib/cjs/tile/map/MapFeatureInfo.d.ts +26 -0
  347. package/lib/cjs/tile/map/MapFeatureInfo.d.ts.map +1 -0
  348. package/lib/cjs/tile/map/MapFeatureInfo.js +19 -0
  349. package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -0
  350. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +4 -4
  351. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  352. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  353. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts +3 -3
  354. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  355. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  356. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +5 -4
  357. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  358. package/lib/cjs/tile/map/MapLayerImageryProvider.js +5 -1
  359. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  360. package/lib/cjs/tile/map/MapLayerSources.d.ts +2 -2
  361. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  362. package/lib/cjs/tile/map/MapLayerSources.js +6 -4
  363. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  364. package/lib/cjs/tile/map/MapLayerTileTreeReference.d.ts +10 -2
  365. package/lib/cjs/tile/map/MapLayerTileTreeReference.d.ts.map +1 -1
  366. package/lib/cjs/tile/map/MapLayerTileTreeReference.js +26 -3
  367. package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
  368. package/lib/cjs/tile/map/MapTile.d.ts +12 -10
  369. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  370. package/lib/cjs/tile/map/MapTile.js +60 -39
  371. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  372. package/lib/cjs/tile/map/MapTileLoader.d.ts +2 -1
  373. package/lib/cjs/tile/map/MapTileLoader.d.ts.map +1 -1
  374. package/lib/cjs/tile/map/MapTileLoader.js +4 -1
  375. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  376. package/lib/cjs/tile/map/MapTileTree.d.ts +18 -8
  377. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  378. package/lib/cjs/tile/map/MapTileTree.js +148 -61
  379. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  380. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  381. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +1 -1
  382. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  383. package/lib/cjs/tools/ToolAdmin.d.ts +2 -3
  384. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  385. package/lib/cjs/tools/ToolAdmin.js +7 -2
  386. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  387. package/lib/cjs/tools/ViewTool.d.ts +4 -4
  388. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  389. package/lib/cjs/tools/ViewTool.js +1 -1
  390. package/lib/cjs/tools/ViewTool.js.map +1 -1
  391. package/lib/esm/AccuSnap.js +2 -2
  392. package/lib/esm/AccuSnap.js.map +1 -1
  393. package/lib/esm/ApproximateTerrainHeights.d.ts +1 -1
  394. package/lib/esm/ApproximateTerrainHeights.d.ts.map +1 -1
  395. package/lib/esm/ApproximateTerrainHeights.js +2 -9
  396. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  397. package/lib/esm/ApproximateTerrainHeightsProps.d.ts +12 -0
  398. package/lib/esm/ApproximateTerrainHeightsProps.d.ts.map +1 -0
  399. package/lib/esm/ApproximateTerrainHeightsProps.js +10 -0
  400. package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -0
  401. package/lib/esm/CategorySelectorState.js +1 -1
  402. package/lib/esm/CategorySelectorState.js.map +1 -1
  403. package/lib/esm/DisplayStyleState.d.ts +4 -3
  404. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  405. package/lib/esm/DisplayStyleState.js +34 -10
  406. package/lib/esm/DisplayStyleState.js.map +1 -1
  407. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  408. package/lib/esm/DrawingViewState.js +6 -5
  409. package/lib/esm/DrawingViewState.js.map +1 -1
  410. package/lib/esm/FrontendLoggerCategory.d.ts +3 -1
  411. package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
  412. package/lib/esm/FrontendLoggerCategory.js +2 -0
  413. package/lib/esm/FrontendLoggerCategory.js.map +1 -1
  414. package/lib/esm/HitDetail.js.map +1 -1
  415. package/lib/esm/IModelApp.d.ts +8 -4
  416. package/lib/esm/IModelApp.d.ts.map +1 -1
  417. package/lib/esm/IModelApp.js +20 -10
  418. package/lib/esm/IModelApp.js.map +1 -1
  419. package/lib/esm/IModelConnection.d.ts +3 -5
  420. package/lib/esm/IModelConnection.d.ts.map +1 -1
  421. package/lib/esm/IModelConnection.js +5 -11
  422. package/lib/esm/IModelConnection.js.map +1 -1
  423. package/lib/esm/ImageUtil.d.ts.map +1 -1
  424. package/lib/esm/ImageUtil.js +8 -14
  425. package/lib/esm/ImageUtil.js.map +1 -1
  426. package/lib/esm/LocalhostIpcApp.d.ts +2 -0
  427. package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
  428. package/lib/esm/LocalhostIpcApp.js +10 -4
  429. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  430. package/lib/esm/RealityDataSource.d.ts +60 -14
  431. package/lib/esm/RealityDataSource.d.ts.map +1 -1
  432. package/lib/esm/RealityDataSource.js +37 -237
  433. package/lib/esm/RealityDataSource.js.map +1 -1
  434. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts +67 -0
  435. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -0
  436. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js +162 -0
  437. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -0
  438. package/lib/esm/RealityDataSourceContextShareImpl.d.ts +83 -0
  439. package/lib/esm/RealityDataSourceContextShareImpl.d.ts.map +1 -0
  440. package/lib/esm/RealityDataSourceContextShareImpl.js +230 -0
  441. package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -0
  442. package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts +65 -0
  443. package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -0
  444. package/lib/esm/RealityDataSourceTilesetUrlImpl.js +131 -0
  445. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -0
  446. package/lib/esm/SheetViewState.js +4 -0
  447. package/lib/esm/SheetViewState.js.map +1 -1
  448. package/lib/esm/ViewState.d.ts +8 -0
  449. package/lib/esm/ViewState.d.ts.map +1 -1
  450. package/lib/esm/ViewState.js +1 -1
  451. package/lib/esm/ViewState.js.map +1 -1
  452. package/lib/esm/Viewport.d.ts +30 -12
  453. package/lib/esm/Viewport.d.ts.map +1 -1
  454. package/lib/esm/Viewport.js +43 -1
  455. package/lib/esm/Viewport.js.map +1 -1
  456. package/lib/esm/core-frontend.d.ts +6 -4
  457. package/lib/esm/core-frontend.d.ts.map +1 -1
  458. package/lib/esm/core-frontend.js +6 -4
  459. package/lib/esm/core-frontend.js.map +1 -1
  460. package/lib/esm/extension/Extension.d.ts +48 -0
  461. package/lib/esm/extension/Extension.d.ts.map +1 -0
  462. package/lib/esm/extension/Extension.js +15 -0
  463. package/lib/esm/extension/Extension.js.map +1 -0
  464. package/lib/esm/extension/ExtensionAdmin.d.ts +64 -0
  465. package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -0
  466. package/lib/esm/extension/ExtensionAdmin.js +102 -0
  467. package/lib/esm/extension/ExtensionAdmin.js.map +1 -0
  468. package/lib/esm/extension/ExtensionHost.d.ts +23 -0
  469. package/lib/esm/extension/ExtensionHost.d.ts.map +1 -0
  470. package/lib/esm/extension/ExtensionHost.js +22 -0
  471. package/lib/esm/extension/ExtensionHost.js.map +1 -0
  472. package/lib/esm/extension/ExtensionImpl.d.ts +21 -0
  473. package/lib/esm/extension/ExtensionImpl.d.ts.map +1 -0
  474. package/lib/esm/extension/ExtensionImpl.js +40 -0
  475. package/lib/esm/extension/ExtensionImpl.js.map +1 -0
  476. package/lib/esm/extension/ExtensionLoader.d.ts +26 -0
  477. package/lib/esm/extension/ExtensionLoader.d.ts.map +1 -0
  478. package/lib/esm/extension/ExtensionLoader.js +9 -0
  479. package/lib/esm/extension/ExtensionLoader.js.map +1 -0
  480. package/lib/esm/extension/ExtensionRuntime.d.ts +5 -0
  481. package/lib/esm/extension/ExtensionRuntime.d.ts.map +1 -0
  482. package/lib/esm/extension/ExtensionRuntime.js +84 -0
  483. package/lib/esm/extension/ExtensionRuntime.js.map +1 -0
  484. package/lib/esm/extension/extensions.d.ts +19 -0
  485. package/lib/esm/extension/extensions.d.ts.map +1 -0
  486. package/lib/esm/extension/extensions.js +24 -0
  487. package/lib/esm/extension/extensions.js.map +1 -0
  488. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts +2 -2
  489. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  490. package/lib/esm/quantity-formatting/BasicUnitsProvider.js +48 -44
  491. package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  492. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +90 -80
  493. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  494. package/lib/esm/quantity-formatting/QuantityFormatter.js +85 -42
  495. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  496. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.d.ts +54 -0
  497. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.d.ts.map +1 -0
  498. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js +26 -0
  499. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -0
  500. package/lib/esm/quantity-formatting/UnitsData.d.ts +11 -0
  501. package/lib/esm/quantity-formatting/UnitsData.d.ts.map +1 -0
  502. package/lib/esm/quantity-formatting/UnitsData.js +56 -0
  503. package/lib/esm/quantity-formatting/UnitsData.js.map +1 -0
  504. package/lib/esm/render/GraphicBranch.d.ts +2 -0
  505. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  506. package/lib/esm/render/GraphicBranch.js.map +1 -1
  507. package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
  508. package/lib/esm/render/ParticleCollectionBuilder.js +17 -10
  509. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  510. package/lib/esm/render/RenderPlanarClassifier.d.ts +1 -1
  511. package/lib/esm/render/RenderPlanarClassifier.d.ts.map +1 -1
  512. package/lib/esm/render/RenderPlanarClassifier.js.map +1 -1
  513. package/lib/esm/render/RenderSystem.d.ts +12 -7
  514. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  515. package/lib/esm/render/RenderSystem.js +25 -20
  516. package/lib/esm/render/RenderSystem.js.map +1 -1
  517. package/lib/esm/render/RenderTarget.d.ts +4 -4
  518. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  519. package/lib/esm/render/RenderTarget.js.map +1 -1
  520. package/lib/esm/render/Scene.d.ts.map +1 -1
  521. package/lib/esm/render/Scene.js.map +1 -1
  522. package/lib/esm/render/primitives/EdgeParams.d.ts.map +1 -1
  523. package/lib/esm/render/primitives/EdgeParams.js +3 -1
  524. package/lib/esm/render/primitives/EdgeParams.js.map +1 -1
  525. package/lib/esm/render/primitives/PolylineParams.d.ts.map +1 -1
  526. package/lib/esm/render/primitives/PolylineParams.js +11 -6
  527. package/lib/esm/render/primitives/PolylineParams.js.map +1 -1
  528. package/lib/esm/render/primitives/VertexKey.d.ts +11 -8
  529. package/lib/esm/render/primitives/VertexKey.d.ts.map +1 -1
  530. package/lib/esm/render/primitives/VertexKey.js +24 -6
  531. package/lib/esm/render/primitives/VertexKey.js.map +1 -1
  532. package/lib/esm/render/primitives/VertexTable.d.ts +15 -2
  533. package/lib/esm/render/primitives/VertexTable.d.ts.map +1 -1
  534. package/lib/esm/render/primitives/VertexTable.js +274 -109
  535. package/lib/esm/render/primitives/VertexTable.js.map +1 -1
  536. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  537. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js +23 -11
  538. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  539. package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts +4 -6
  540. package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  541. package/lib/esm/render/primitives/mesh/MeshBuilder.js +17 -14
  542. package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
  543. package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
  544. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js +12 -1
  545. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  546. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +45 -28
  547. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  548. package/lib/esm/render/primitives/mesh/MeshPrimitives.js +108 -144
  549. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  550. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts +17 -2
  551. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +1 -1
  552. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js +39 -2
  553. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js.map +1 -1
  554. package/lib/esm/render/webgl/BackgroundMapDrape.js +1 -1
  555. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  556. package/lib/esm/render/webgl/BranchState.d.ts +2 -0
  557. package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
  558. package/lib/esm/render/webgl/BranchState.js +5 -3
  559. package/lib/esm/render/webgl/BranchState.js.map +1 -1
  560. package/lib/esm/render/webgl/CachedGeometry.d.ts +6 -0
  561. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  562. package/lib/esm/render/webgl/CachedGeometry.js +6 -0
  563. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  564. package/lib/esm/render/webgl/DrawCommand.js +1 -1
  565. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  566. package/lib/esm/render/webgl/Graphic.d.ts +5 -3
  567. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  568. package/lib/esm/render/webgl/Graphic.js +7 -2
  569. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  570. package/lib/esm/render/webgl/PlanarClassifier.d.ts +4 -1
  571. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  572. package/lib/esm/render/webgl/PlanarClassifier.js +22 -9
  573. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  574. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts +2 -2
  575. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  576. package/lib/esm/render/webgl/PlanarTextureProjection.js +5 -3
  577. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  578. package/lib/esm/render/webgl/RealityMesh.d.ts +31 -11
  579. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  580. package/lib/esm/render/webgl/RealityMesh.js +155 -52
  581. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  582. package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
  583. package/lib/esm/render/webgl/RenderCommands.js +4 -0
  584. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  585. package/lib/esm/render/webgl/SceneCompositor.d.ts +3 -0
  586. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  587. package/lib/esm/render/webgl/SceneCompositor.js +45 -19
  588. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  589. package/lib/esm/render/webgl/ShaderBuilder.d.ts +8 -7
  590. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  591. package/lib/esm/render/webgl/ShaderBuilder.js +12 -5
  592. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  593. package/lib/esm/render/webgl/ShaderProgram.d.ts +1 -0
  594. package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
  595. package/lib/esm/render/webgl/ShaderProgram.js +1 -0
  596. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  597. package/lib/esm/render/webgl/System.d.ts +9 -9
  598. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  599. package/lib/esm/render/webgl/System.js +6 -6
  600. package/lib/esm/render/webgl/System.js.map +1 -1
  601. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  602. package/lib/esm/render/webgl/Target.js.map +1 -1
  603. package/lib/esm/render/webgl/VertexLUT.d.ts +2 -1
  604. package/lib/esm/render/webgl/VertexLUT.d.ts.map +1 -1
  605. package/lib/esm/render/webgl/VertexLUT.js +4 -3
  606. package/lib/esm/render/webgl/VertexLUT.js.map +1 -1
  607. package/lib/esm/render/webgl/glsl/Color.js +1 -1
  608. package/lib/esm/render/webgl/glsl/Color.js.map +1 -1
  609. package/lib/esm/render/webgl/glsl/Decode.d.ts +6 -0
  610. package/lib/esm/render/webgl/glsl/Decode.d.ts.map +1 -1
  611. package/lib/esm/render/webgl/glsl/Decode.js +17 -0
  612. package/lib/esm/render/webgl/glsl/Decode.js.map +1 -1
  613. package/lib/esm/render/webgl/glsl/Edge.d.ts.map +1 -1
  614. package/lib/esm/render/webgl/glsl/Edge.js +15 -6
  615. package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
  616. package/lib/esm/render/webgl/glsl/PlanarClassification.js +1 -1
  617. package/lib/esm/render/webgl/glsl/PlanarClassification.js.map +1 -1
  618. package/lib/esm/render/webgl/glsl/PointString.d.ts.map +1 -1
  619. package/lib/esm/render/webgl/glsl/PointString.js +1 -1
  620. package/lib/esm/render/webgl/glsl/PointString.js.map +1 -1
  621. package/lib/esm/render/webgl/glsl/Polyline.d.ts +2 -2
  622. package/lib/esm/render/webgl/glsl/Polyline.d.ts.map +1 -1
  623. package/lib/esm/render/webgl/glsl/Polyline.js +24 -9
  624. package/lib/esm/render/webgl/glsl/Polyline.js.map +1 -1
  625. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  626. package/lib/esm/render/webgl/glsl/RealityMesh.js +103 -28
  627. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  628. package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
  629. package/lib/esm/render/webgl/glsl/Surface.js +18 -19
  630. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  631. package/lib/esm/render/webgl/glsl/Thematic.d.ts.map +1 -1
  632. package/lib/esm/render/webgl/glsl/Thematic.js +1 -6
  633. package/lib/esm/render/webgl/glsl/Thematic.js.map +1 -1
  634. package/lib/esm/render/webgl/glsl/Vertex.d.ts.map +1 -1
  635. package/lib/esm/render/webgl/glsl/Vertex.js +32 -15
  636. package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
  637. package/lib/esm/tile/ClassifierTileTree.d.ts +4 -2
  638. package/lib/esm/tile/ClassifierTileTree.d.ts.map +1 -1
  639. package/lib/esm/tile/ClassifierTileTree.js +32 -17
  640. package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
  641. package/lib/esm/tile/GltfReader.d.ts +22 -3
  642. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  643. package/lib/esm/tile/GltfReader.js +215 -48
  644. package/lib/esm/tile/GltfReader.js.map +1 -1
  645. package/lib/esm/tile/OPCFormatInterpreter.d.ts +22 -0
  646. package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +1 -0
  647. package/lib/esm/tile/OPCFormatInterpreter.js +88 -0
  648. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -0
  649. package/lib/esm/tile/PntsReader.d.ts +1 -1
  650. package/lib/esm/tile/PntsReader.d.ts.map +1 -1
  651. package/lib/esm/tile/PntsReader.js +154 -39
  652. package/lib/esm/tile/PntsReader.js.map +1 -1
  653. package/lib/esm/tile/PrimaryTileTree.d.ts +18 -2
  654. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  655. package/lib/esm/tile/PrimaryTileTree.js +51 -2
  656. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  657. package/lib/esm/tile/RealityModelTileTree.d.ts +24 -3
  658. package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
  659. package/lib/esm/tile/RealityModelTileTree.js +36 -12
  660. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  661. package/lib/esm/tile/RealityTile.d.ts +16 -2
  662. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  663. package/lib/esm/tile/RealityTile.js +32 -0
  664. package/lib/esm/tile/RealityTile.js.map +1 -1
  665. package/lib/esm/tile/RealityTileDrawArgs.d.ts +4 -1
  666. package/lib/esm/tile/RealityTileDrawArgs.d.ts.map +1 -1
  667. package/lib/esm/tile/RealityTileDrawArgs.js +3 -1
  668. package/lib/esm/tile/RealityTileDrawArgs.js.map +1 -1
  669. package/lib/esm/tile/RealityTileLoader.d.ts +7 -4
  670. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  671. package/lib/esm/tile/RealityTileLoader.js +19 -5
  672. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  673. package/lib/esm/tile/RealityTileTree.d.ts +4 -1
  674. package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
  675. package/lib/esm/tile/RealityTileTree.js +13 -5
  676. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  677. package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts +52 -0
  678. package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -0
  679. package/lib/esm/tile/ThreeDTileFormatInterpreter.js +175 -0
  680. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -0
  681. package/lib/esm/tile/TileDrawArgs.d.ts +2 -0
  682. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  683. package/lib/esm/tile/TileDrawArgs.js +5 -0
  684. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  685. package/lib/esm/tile/TileGeometryCollector.d.ts +80 -0
  686. package/lib/esm/tile/TileGeometryCollector.d.ts.map +1 -0
  687. package/lib/esm/tile/TileGeometryCollector.js +67 -0
  688. package/lib/esm/tile/TileGeometryCollector.js.map +1 -0
  689. package/lib/esm/tile/TileTree.d.ts +7 -1
  690. package/lib/esm/tile/TileTree.d.ts.map +1 -1
  691. package/lib/esm/tile/TileTree.js +7 -0
  692. package/lib/esm/tile/TileTree.js.map +1 -1
  693. package/lib/esm/tile/TileTreeReference.d.ts +26 -1
  694. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  695. package/lib/esm/tile/TileTreeReference.js +42 -2
  696. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  697. package/lib/esm/tile/internal.d.ts +4 -0
  698. package/lib/esm/tile/internal.d.ts.map +1 -1
  699. package/lib/esm/tile/internal.js +4 -0
  700. package/lib/esm/tile/internal.js.map +1 -1
  701. package/lib/esm/tile/map/BingElevation.d.ts +2 -16
  702. package/lib/esm/tile/map/BingElevation.d.ts.map +1 -1
  703. package/lib/esm/tile/map/BingElevation.js +1 -63
  704. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  705. package/lib/esm/tile/map/CesiumTerrainProvider.js +2 -2
  706. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  707. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +5 -3
  708. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  709. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +46 -13
  710. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  711. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +2 -2
  712. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
  713. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  714. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts +2 -2
  715. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  716. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  717. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +2 -2
  718. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  719. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +4 -3
  720. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  721. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +2 -2
  722. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +1 -1
  723. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  724. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +2 -2
  725. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  726. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +1 -1
  727. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  728. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +2 -2
  729. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  730. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  731. package/lib/esm/tile/map/ImageryTileTree.d.ts +2 -3
  732. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  733. package/lib/esm/tile/map/ImageryTileTree.js +4 -3
  734. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  735. package/lib/esm/tile/map/MapFeatureInfo.d.ts +26 -0
  736. package/lib/esm/tile/map/MapFeatureInfo.d.ts.map +1 -0
  737. package/lib/esm/tile/map/MapFeatureInfo.js +15 -0
  738. package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -0
  739. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +4 -4
  740. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  741. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  742. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts +3 -3
  743. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  744. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  745. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +5 -4
  746. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  747. package/lib/esm/tile/map/MapLayerImageryProvider.js +5 -1
  748. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  749. package/lib/esm/tile/map/MapLayerSources.d.ts +2 -2
  750. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  751. package/lib/esm/tile/map/MapLayerSources.js +6 -4
  752. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  753. package/lib/esm/tile/map/MapLayerTileTreeReference.d.ts +10 -2
  754. package/lib/esm/tile/map/MapLayerTileTreeReference.d.ts.map +1 -1
  755. package/lib/esm/tile/map/MapLayerTileTreeReference.js +25 -3
  756. package/lib/esm/tile/map/MapLayerTileTreeReference.js.map +1 -1
  757. package/lib/esm/tile/map/MapTile.d.ts +12 -10
  758. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  759. package/lib/esm/tile/map/MapTile.js +60 -39
  760. package/lib/esm/tile/map/MapTile.js.map +1 -1
  761. package/lib/esm/tile/map/MapTileLoader.d.ts +2 -1
  762. package/lib/esm/tile/map/MapTileLoader.d.ts.map +1 -1
  763. package/lib/esm/tile/map/MapTileLoader.js +4 -1
  764. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  765. package/lib/esm/tile/map/MapTileTree.d.ts +18 -8
  766. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  767. package/lib/esm/tile/map/MapTileTree.js +150 -63
  768. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  769. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  770. package/lib/esm/tile/map/MapTiledGraphicsProvider.js +2 -2
  771. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  772. package/lib/esm/tools/ToolAdmin.d.ts +2 -3
  773. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  774. package/lib/esm/tools/ToolAdmin.js +8 -3
  775. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  776. package/lib/esm/tools/ViewTool.d.ts +4 -4
  777. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  778. package/lib/esm/tools/ViewTool.js +1 -1
  779. package/lib/esm/tools/ViewTool.js.map +1 -1
  780. package/package.json +22 -20
  781. package/lib/cjs/tile/DracoDecoder.d.ts +0 -20
  782. package/lib/cjs/tile/DracoDecoder.d.ts.map +0 -1
  783. package/lib/cjs/tile/DracoDecoder.js +0 -169
  784. package/lib/cjs/tile/DracoDecoder.js.map +0 -1
  785. package/lib/esm/tile/DracoDecoder.d.ts +0 -20
  786. package/lib/esm/tile/DracoDecoder.d.ts.map +0 -1
  787. package/lib/esm/tile/DracoDecoder.js +0 -165
  788. package/lib/esm/tile/DracoDecoder.js.map +0 -1
  789. package/lib/public/assets/approximateTerrainHeights.json +0 -1
@@ -1,4 +1,4 @@
1
- import { MapLayerSettings } from "@itwin/core-common";
1
+ import { ImageMapLayerSettings } from "@itwin/core-common";
2
2
  import { ImageryMapTile, MapLayerImageryProvider, QuadId } from "../../internal";
3
3
  /** @internal */
4
4
  export declare class WmtsMapLayerImageryProvider extends MapLayerImageryProvider {
@@ -8,7 +8,7 @@ export declare class WmtsMapLayerImageryProvider extends MapLayerImageryProvider
8
8
  private _preferredLayerStyle;
9
9
  displayedLayerName: string;
10
10
  get mutualExclusiveSubLayer(): boolean;
11
- constructor(settings: MapLayerSettings);
11
+ constructor(settings: ImageMapLayerSettings);
12
12
  initialize(): Promise<void>;
13
13
  private initDisplayedLayer;
14
14
  private initPreferredTileMatrixSet;
@@ -1 +1 @@
1
- {"version":3,"file":"WmtsMapLayerImageryProvider.d.ts","sourceRoot":"","sources":["../../../../../src/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.ts"],"names":[],"mappings":"AAQA,OAAO,EAAgB,gBAAgB,EAAe,MAAM,oBAAoB,CAAC;AACjF,OAAO,EACL,cAAc,EACd,uBAAuB,EAEvB,MAAM,EAEP,MAAM,gBAAgB,CAAC;AAGxB,gBAAgB;AAChB,qBAAa,2BAA4B,SAAQ,uBAAuB;IACtE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAAC,CAAmB;IACzC,OAAO,CAAC,4BAA4B,CAA6C;IACjF,OAAO,CAAC,oBAAoB,CAA2C;IAChE,kBAAkB,SAAM;IAE/B,IAAoB,uBAAuB,IAAI,OAAO,CAAiB;gBAE3D,QAAQ,EAAE,gBAAgB;IAKhB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBjD,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,0BAA0B;IAwClC,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,kCAAkC;cAIvB,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI;IAoBxG,IAAoB,yBAAyB,IAAI,OAAO,CAGvD;IAEY,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAiB3F"}
1
+ {"version":3,"file":"WmtsMapLayerImageryProvider.d.ts","sourceRoot":"","sources":["../../../../../src/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAA6B,MAAM,oBAAoB,CAAC;AACtF,OAAO,EACL,cAAc,EACd,uBAAuB,EAEvB,MAAM,EAEP,MAAM,gBAAgB,CAAC;AAGxB,gBAAgB;AAChB,qBAAa,2BAA4B,SAAQ,uBAAuB;IACtE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAAC,CAAmB;IACzC,OAAO,CAAC,4BAA4B,CAA6C;IACjF,OAAO,CAAC,oBAAoB,CAA2C;IAChE,kBAAkB,SAAM;IAE/B,IAAoB,uBAAuB,IAAI,OAAO,CAAiB;gBAE3D,QAAQ,EAAE,qBAAqB;IAKrB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBjD,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,0BAA0B;IAwClC,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,kCAAkC;cAIvB,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI;IAoBxG,IAAoB,yBAAyB,IAAI,OAAO,CAGvD;IAEY,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAiB3F"}
@@ -1 +1 @@
1
- {"version":3,"file":"WmtsMapLayerImageryProvider.js","sourceRoot":"","sources":["../../../../../src/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.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 { assert } from \"@itwin/core-bentley\";\r\nimport { IModelStatus, MapLayerSettings, ServerError } from \"@itwin/core-common\";\r\nimport {\r\n ImageryMapTile,\r\n MapLayerImageryProvider,\r\n MapLayerImageryProviderStatus,\r\n QuadId,\r\n WmsUtilities, WmtsCapabilities, WmtsCapability,\r\n} from \"../../internal\";\r\n\r\ninterface TileMatrixSetAndLimits { tileMatrixSet: WmtsCapability.TileMatrixSet, limits: WmtsCapability.TileMatrixSetLimits[] | undefined }\r\n/** @internal */\r\nexport class WmtsMapLayerImageryProvider extends MapLayerImageryProvider {\r\n private _baseUrl: string;\r\n private _capabilities?: WmtsCapabilities;\r\n private _preferredLayerTileMatrixSet = new Map<string, TileMatrixSetAndLimits>();\r\n private _preferredLayerStyle = new Map<string, WmtsCapability.Style>();\r\n public displayedLayerName = \"\";\r\n\r\n public override get mutualExclusiveSubLayer(): boolean { return true; }\r\n\r\n constructor(settings: MapLayerSettings) {\r\n super(settings, true);\r\n this._baseUrl = WmsUtilities.getBaseUrl(this._settings.url);\r\n }\r\n\r\n public override async initialize(): Promise<void> {\r\n try {\r\n this._capabilities = await WmtsCapabilities.create(this._baseUrl);\r\n this.initPreferredTileMatrixSet();\r\n this.initPreferredStyle();\r\n this.initCartoRange();\r\n this.initDisplayedLayer();\r\n\r\n if (this._preferredLayerTileMatrixSet.size === 0 || this._preferredLayerStyle.size === 0)\r\n throw new ServerError(IModelStatus.ValidationFailed, \"\");\r\n } catch (error: any) {\r\n // Don't throw error if unauthorized status:\r\n // We want the tile tree to be created, so that end-user can get feedback on which layer is missing credentials.\r\n // When credentials will be provided, a new provider will be created, and initialization should be fine.\r\n if (error?.status === 401) {\r\n this.setStatus(MapLayerImageryProviderStatus.RequireAuth);\r\n } else {\r\n throw new ServerError(IModelStatus.ValidationFailed, \"\");\r\n }\r\n }\r\n }\r\n private initDisplayedLayer() {\r\n if (0 === this._settings.subLayers.length) {\r\n assert(false);\r\n return;\r\n }\r\n\r\n const firstDisplayedLayer = this._settings.subLayers.find((subLayer) => subLayer.visible);\r\n this.displayedLayerName = firstDisplayedLayer ? firstDisplayedLayer.name : this._settings.subLayers[0].name;\r\n }\r\n\r\n // Each layer can be served in multiple tile matrix set (i.e. TileTree).\r\n // We have to pick one for each layer: for now we look for a Google Maps compatible tile tree.\r\n private initPreferredTileMatrixSet() {\r\n const googleMapsTms = this._capabilities?.contents?.getGoogleMapsCompatibleTileMatrixSet();\r\n const wellGoogleKnownTms = googleMapsTms?.find((tms) => { return tms.wellKnownScaleSet?.toLowerCase().includes(WmtsCapability.Constants.GOOGLEMAPS_COMPATIBLE_WELLKNOWNNAME); });\r\n\r\n this._capabilities?.contents?.layers.forEach((layer) => {\r\n let preferredTms: WmtsCapability.TileMatrixSet | undefined;\r\n\r\n if (wellGoogleKnownTms && layer.tileMatrixSetLinks.some((tmsl) => { return (tmsl.tileMatrixSet === wellGoogleKnownTms.identifier); })) {\r\n // Favor tile matrix set that was explicitly marked as GoogleMaps compatible\r\n preferredTms = wellGoogleKnownTms;\r\n } else {\r\n\r\n // Search all compatible tile set matrix if previous attempt didn't work.\r\n // If more than one candidate is found, pick the tile set with the most LODs.\r\n let tileMatrixSets = googleMapsTms?.filter((tms) => {\r\n return layer.tileMatrixSetLinks.some((tmsl) => { return (tmsl.tileMatrixSet === tms.identifier); });\r\n });\r\n\r\n if (!tileMatrixSets || tileMatrixSets.length === 0) {\r\n const eps4326CompatibleTms = this._capabilities?.contents?.getEpsg4326CompatibleTileMatrixSet();\r\n tileMatrixSets = eps4326CompatibleTms?.filter((tms) => {\r\n return layer.tileMatrixSetLinks.some((tmsl) => { return (tmsl.tileMatrixSet === tms.identifier); });\r\n });\r\n }\r\n\r\n if (tileMatrixSets && tileMatrixSets.length === 1)\r\n preferredTms = tileMatrixSets[0];\r\n else if (tileMatrixSets && tileMatrixSets?.length > 1)\r\n preferredTms = tileMatrixSets.reduce((prev, current) => (prev.tileMatrix.length > current.tileMatrix.length) ? prev : current);\r\n\r\n }\r\n\r\n if (preferredTms !== undefined) {\r\n const tmsLink= layer.tileMatrixSetLinks.find((tmsl) => tmsl.tileMatrixSet === preferredTms!.identifier);\r\n this._preferredLayerTileMatrixSet.set(layer.identifier, { tileMatrixSet: preferredTms, limits: tmsLink?.tileMatrixSetLimits } );\r\n }\r\n });\r\n }\r\n\r\n // Each layer can be published different style. We look for a style flagged as 'Default'.\r\n private initPreferredStyle() {\r\n this._capabilities?.contents?.layers.forEach((layer) => {\r\n let preferredStyle: WmtsCapability.Style | undefined;\r\n if (layer.styles.length === 1)\r\n preferredStyle = layer.styles[0];\r\n else if (layer.styles.length > 1) {\r\n // If more than style is available, takes the default one, otherwise the first one.\r\n const defaultStyle = layer.styles.find((style) => style.isDefault);\r\n if (defaultStyle)\r\n preferredStyle = defaultStyle;\r\n else\r\n preferredStyle = layer.styles[0];\r\n }\r\n\r\n if (preferredStyle)\r\n this._preferredLayerStyle.set(layer.identifier, preferredStyle);\r\n });\r\n }\r\n\r\n private initCartoRange() {\r\n this._capabilities?.contents?.layers.forEach((layer) => {\r\n\r\n if (layer.wsg84BoundingBox) {\r\n if (this.cartoRange)\r\n this.cartoRange.extendRange(layer.wsg84BoundingBox);\r\n else\r\n this.cartoRange = layer.wsg84BoundingBox.clone();\r\n }\r\n });\r\n }\r\n private getDisplayedTileMatrixSetAndLimits(): TileMatrixSetAndLimits | undefined {\r\n return this._preferredLayerTileMatrixSet.get(this.displayedLayerName);\r\n }\r\n\r\n protected override _generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void) {\r\n const childIds = this.getPotentialChildIds(tile);\r\n const matrixSetAndLimits = this.getDisplayedTileMatrixSetAndLimits();\r\n if (!matrixSetAndLimits) {\r\n assert(false); // Must always hava a matrix set.\r\n return;\r\n }\r\n const limits = matrixSetAndLimits.limits?.[tile.quadId.level + 1]?.limits;\r\n if (!limits) {\r\n resolveChildren(childIds);\r\n return;\r\n }\r\n\r\n const availableChildIds = [];\r\n for (const childId of childIds)\r\n if (limits.containsXY(childId.column, childId.row))\r\n availableChildIds.push(childId);\r\n\r\n resolveChildren(availableChildIds);\r\n }\r\n public override get useGeographicTilingScheme(): boolean {\r\n const matrixSetAndLimits = this.getDisplayedTileMatrixSetAndLimits();\r\n return matrixSetAndLimits ? (matrixSetAndLimits?.tileMatrixSet.identifier?.includes(\"4326\") || matrixSetAndLimits?.tileMatrixSet.supportedCrs?.includes(\"4326\")) : false;\r\n }\r\n\r\n public async constructUrl(row: number, column: number, zoomLevel: number): Promise<string> {\r\n const matrixSetAndLimits = this.getDisplayedTileMatrixSetAndLimits();\r\n const style = this._preferredLayerStyle.get(this.displayedLayerName);\r\n\r\n // Matrix identifier might be something other than standard 0..n zoom level,\r\n // so lookup the matrix identifier just in case.\r\n let tileMatrix;\r\n if (matrixSetAndLimits && matrixSetAndLimits.tileMatrixSet.tileMatrix.length > zoomLevel)\r\n tileMatrix = matrixSetAndLimits.tileMatrixSet.tileMatrix[zoomLevel].identifier;\r\n\r\n const styleParam = (style?.identifier === undefined ? \"\" : `&style=${style.identifier}`);\r\n if (tileMatrix !== undefined && matrixSetAndLimits !== undefined)\r\n return `${this._baseUrl}?Service=WMTS&Version=1.0.0&Request=GetTile&Format=image%2Fpng&layer=${this.displayedLayerName}${styleParam}&TileMatrixSet=${matrixSetAndLimits.tileMatrixSet.identifier}&TileMatrix=${tileMatrix}&TileCol=${column}&TileRow=${row} `;\r\n else\r\n return \"\";\r\n\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"WmtsMapLayerImageryProvider.js","sourceRoot":"","sources":["../../../../../src/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.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 { assert } from \"@itwin/core-bentley\";\r\nimport { ImageMapLayerSettings, IModelStatus, ServerError } from \"@itwin/core-common\";\r\nimport {\r\n ImageryMapTile,\r\n MapLayerImageryProvider,\r\n MapLayerImageryProviderStatus,\r\n QuadId,\r\n WmsUtilities, WmtsCapabilities, WmtsCapability,\r\n} from \"../../internal\";\r\n\r\ninterface TileMatrixSetAndLimits { tileMatrixSet: WmtsCapability.TileMatrixSet, limits: WmtsCapability.TileMatrixSetLimits[] | undefined }\r\n/** @internal */\r\nexport class WmtsMapLayerImageryProvider extends MapLayerImageryProvider {\r\n private _baseUrl: string;\r\n private _capabilities?: WmtsCapabilities;\r\n private _preferredLayerTileMatrixSet = new Map<string, TileMatrixSetAndLimits>();\r\n private _preferredLayerStyle = new Map<string, WmtsCapability.Style>();\r\n public displayedLayerName = \"\";\r\n\r\n public override get mutualExclusiveSubLayer(): boolean { return true; }\r\n\r\n constructor(settings: ImageMapLayerSettings) {\r\n super(settings, true);\r\n this._baseUrl = WmsUtilities.getBaseUrl(this._settings.url);\r\n }\r\n\r\n public override async initialize(): Promise<void> {\r\n try {\r\n this._capabilities = await WmtsCapabilities.create(this._baseUrl);\r\n this.initPreferredTileMatrixSet();\r\n this.initPreferredStyle();\r\n this.initCartoRange();\r\n this.initDisplayedLayer();\r\n\r\n if (this._preferredLayerTileMatrixSet.size === 0 || this._preferredLayerStyle.size === 0)\r\n throw new ServerError(IModelStatus.ValidationFailed, \"\");\r\n } catch (error: any) {\r\n // Don't throw error if unauthorized status:\r\n // We want the tile tree to be created, so that end-user can get feedback on which layer is missing credentials.\r\n // When credentials will be provided, a new provider will be created, and initialization should be fine.\r\n if (error?.status === 401) {\r\n this.setStatus(MapLayerImageryProviderStatus.RequireAuth);\r\n } else {\r\n throw new ServerError(IModelStatus.ValidationFailed, \"\");\r\n }\r\n }\r\n }\r\n private initDisplayedLayer() {\r\n if (0 === this._settings.subLayers.length) {\r\n assert(false);\r\n return;\r\n }\r\n\r\n const firstDisplayedLayer = this._settings.subLayers.find((subLayer) => subLayer.visible);\r\n this.displayedLayerName = firstDisplayedLayer ? firstDisplayedLayer.name : this._settings.subLayers[0].name;\r\n }\r\n\r\n // Each layer can be served in multiple tile matrix set (i.e. TileTree).\r\n // We have to pick one for each layer: for now we look for a Google Maps compatible tile tree.\r\n private initPreferredTileMatrixSet() {\r\n const googleMapsTms = this._capabilities?.contents?.getGoogleMapsCompatibleTileMatrixSet();\r\n const wellGoogleKnownTms = googleMapsTms?.find((tms) => { return tms.wellKnownScaleSet?.toLowerCase().includes(WmtsCapability.Constants.GOOGLEMAPS_COMPATIBLE_WELLKNOWNNAME); });\r\n\r\n this._capabilities?.contents?.layers.forEach((layer) => {\r\n let preferredTms: WmtsCapability.TileMatrixSet | undefined;\r\n\r\n if (wellGoogleKnownTms && layer.tileMatrixSetLinks.some((tmsl) => { return (tmsl.tileMatrixSet === wellGoogleKnownTms.identifier); })) {\r\n // Favor tile matrix set that was explicitly marked as GoogleMaps compatible\r\n preferredTms = wellGoogleKnownTms;\r\n } else {\r\n\r\n // Search all compatible tile set matrix if previous attempt didn't work.\r\n // If more than one candidate is found, pick the tile set with the most LODs.\r\n let tileMatrixSets = googleMapsTms?.filter((tms) => {\r\n return layer.tileMatrixSetLinks.some((tmsl) => { return (tmsl.tileMatrixSet === tms.identifier); });\r\n });\r\n\r\n if (!tileMatrixSets || tileMatrixSets.length === 0) {\r\n const eps4326CompatibleTms = this._capabilities?.contents?.getEpsg4326CompatibleTileMatrixSet();\r\n tileMatrixSets = eps4326CompatibleTms?.filter((tms) => {\r\n return layer.tileMatrixSetLinks.some((tmsl) => { return (tmsl.tileMatrixSet === tms.identifier); });\r\n });\r\n }\r\n\r\n if (tileMatrixSets && tileMatrixSets.length === 1)\r\n preferredTms = tileMatrixSets[0];\r\n else if (tileMatrixSets && tileMatrixSets?.length > 1)\r\n preferredTms = tileMatrixSets.reduce((prev, current) => (prev.tileMatrix.length > current.tileMatrix.length) ? prev : current);\r\n\r\n }\r\n\r\n if (preferredTms !== undefined) {\r\n const tmsLink= layer.tileMatrixSetLinks.find((tmsl) => tmsl.tileMatrixSet === preferredTms!.identifier);\r\n this._preferredLayerTileMatrixSet.set(layer.identifier, { tileMatrixSet: preferredTms, limits: tmsLink?.tileMatrixSetLimits } );\r\n }\r\n });\r\n }\r\n\r\n // Each layer can be published different style. We look for a style flagged as 'Default'.\r\n private initPreferredStyle() {\r\n this._capabilities?.contents?.layers.forEach((layer) => {\r\n let preferredStyle: WmtsCapability.Style | undefined;\r\n if (layer.styles.length === 1)\r\n preferredStyle = layer.styles[0];\r\n else if (layer.styles.length > 1) {\r\n // If more than style is available, takes the default one, otherwise the first one.\r\n const defaultStyle = layer.styles.find((style) => style.isDefault);\r\n if (defaultStyle)\r\n preferredStyle = defaultStyle;\r\n else\r\n preferredStyle = layer.styles[0];\r\n }\r\n\r\n if (preferredStyle)\r\n this._preferredLayerStyle.set(layer.identifier, preferredStyle);\r\n });\r\n }\r\n\r\n private initCartoRange() {\r\n this._capabilities?.contents?.layers.forEach((layer) => {\r\n\r\n if (layer.wsg84BoundingBox) {\r\n if (this.cartoRange)\r\n this.cartoRange.extendRange(layer.wsg84BoundingBox);\r\n else\r\n this.cartoRange = layer.wsg84BoundingBox.clone();\r\n }\r\n });\r\n }\r\n private getDisplayedTileMatrixSetAndLimits(): TileMatrixSetAndLimits | undefined {\r\n return this._preferredLayerTileMatrixSet.get(this.displayedLayerName);\r\n }\r\n\r\n protected override _generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void) {\r\n const childIds = this.getPotentialChildIds(tile);\r\n const matrixSetAndLimits = this.getDisplayedTileMatrixSetAndLimits();\r\n if (!matrixSetAndLimits) {\r\n assert(false); // Must always hava a matrix set.\r\n return;\r\n }\r\n const limits = matrixSetAndLimits.limits?.[tile.quadId.level + 1]?.limits;\r\n if (!limits) {\r\n resolveChildren(childIds);\r\n return;\r\n }\r\n\r\n const availableChildIds = [];\r\n for (const childId of childIds)\r\n if (limits.containsXY(childId.column, childId.row))\r\n availableChildIds.push(childId);\r\n\r\n resolveChildren(availableChildIds);\r\n }\r\n public override get useGeographicTilingScheme(): boolean {\r\n const matrixSetAndLimits = this.getDisplayedTileMatrixSetAndLimits();\r\n return matrixSetAndLimits ? (matrixSetAndLimits?.tileMatrixSet.identifier?.includes(\"4326\") || matrixSetAndLimits?.tileMatrixSet.supportedCrs?.includes(\"4326\")) : false;\r\n }\r\n\r\n public async constructUrl(row: number, column: number, zoomLevel: number): Promise<string> {\r\n const matrixSetAndLimits = this.getDisplayedTileMatrixSetAndLimits();\r\n const style = this._preferredLayerStyle.get(this.displayedLayerName);\r\n\r\n // Matrix identifier might be something other than standard 0..n zoom level,\r\n // so lookup the matrix identifier just in case.\r\n let tileMatrix;\r\n if (matrixSetAndLimits && matrixSetAndLimits.tileMatrixSet.tileMatrix.length > zoomLevel)\r\n tileMatrix = matrixSetAndLimits.tileMatrixSet.tileMatrix[zoomLevel].identifier;\r\n\r\n const styleParam = (style?.identifier === undefined ? \"\" : `&style=${style.identifier}`);\r\n if (tileMatrix !== undefined && matrixSetAndLimits !== undefined)\r\n return `${this._baseUrl}?Service=WMTS&Version=1.0.0&Request=GetTile&Format=image%2Fpng&layer=${this.displayedLayerName}${styleParam}&TileMatrixSet=${matrixSetAndLimits.tileMatrixSet.identifier}&TileMatrix=${tileMatrix}&TileCol=${column}&TileRow=${row} `;\r\n else\r\n return \"\";\r\n\r\n }\r\n}\r\n"]}
@@ -6,7 +6,7 @@ import { IModelConnection } from "../../IModelConnection";
6
6
  import { RenderMemory } from "../../render/RenderMemory";
7
7
  import { RenderSystem } from "../../render/RenderSystem";
8
8
  import { ScreenViewport } from "../../Viewport";
9
- import { MapCartoRectangle, MapLayerImageryProvider, MapLayerTileTreeReference, MapTile, MapTilingScheme, QuadId, RealityTile, RealityTileLoader, RealityTileTree, RealityTileTreeParams, Tile, TileContent, TileDrawArgs, TileLoadPriority, TileParams, TileRequest, TileTreeLoadStatus, TileTreeOwner } from "../internal";
9
+ import { MapCartoRectangle, MapLayerFeatureInfo, MapLayerImageryProvider, MapLayerTileTreeReference, MapTile, MapTilingScheme, QuadId, RealityTile, RealityTileLoader, RealityTileTree, RealityTileTreeParams, Tile, TileContent, TileDrawArgs, TileLoadPriority, TileParams, TileRequest, TileTreeLoadStatus, TileTreeOwner } from "../internal";
10
10
  /** @internal */
11
11
  export interface ImageryTileContent extends TileContent {
12
12
  imageryTexture?: RenderTexture;
@@ -65,6 +65,7 @@ declare class ImageryTileLoader extends RealityTileLoader {
65
65
  get maximumScreenSize(): number;
66
66
  get imageryProvider(): MapLayerImageryProvider;
67
67
  getToolTip(strings: string[], quadId: QuadId, carto: Cartographic, tree: ImageryMapTileTree): Promise<void>;
68
+ getMapFeatureInfo(featureInfos: MapLayerFeatureInfo[], quadId: QuadId, carto: Cartographic, tree: ImageryMapTileTree): Promise<void>;
68
69
  generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void): void;
69
70
  /** Load this tile's children, possibly asynchronously. Pass them to `resolve`, or an error to `reject`. */
70
71
  loadChildren(_tile: RealityTile): Promise<Tile[] | undefined>;
@@ -77,10 +78,8 @@ declare class ImageryTileLoader extends RealityTileLoader {
77
78
  * @internal
78
79
  */
79
80
  export declare class ImageryMapLayerTreeReference extends MapLayerTileTreeReference {
80
- iModel: IModelConnection;
81
81
  constructor(layerSettings: MapLayerSettings, layerIndex: number, iModel: IModelConnection);
82
82
  get castsShadows(): boolean;
83
- get layerName(): string;
84
83
  /** Return the owner of the TileTree to draw. */
85
84
  get treeOwner(): TileTreeOwner;
86
85
  get imageryProvider(): MapLayerImageryProvider | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"ImageryTileTree.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/ImageryTileTree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImageryTileTree.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/ImageryTileTree.ts"],"names":[],"mappings":"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"}
@@ -154,6 +154,9 @@ class ImageryTileLoader extends RealityTileLoader {
154
154
  get maximumScreenSize() { return this._imageryProvider.maximumScreenSize; }
155
155
  get imageryProvider() { return this._imageryProvider; }
156
156
  async getToolTip(strings, quadId, carto, tree) { await this._imageryProvider.getToolTip(strings, quadId, carto, tree); }
157
+ async getMapFeatureInfo(featureInfos, quadId, carto, tree) {
158
+ await this._imageryProvider.getFeatureInfo(featureInfos, quadId, carto, tree);
159
+ }
157
160
  generateChildIds(tile, resolveChildren) { return this._imageryProvider.generateChildIds(tile, resolveChildren); }
158
161
  /** Load this tile's children, possibly asynchronously. Pass them to `resolve`, or an error to `reject`. */
159
162
  async loadChildren(_tile) { assert(false); return undefined; }
@@ -237,11 +240,9 @@ const imageryTreeSupplier = new ImageryMapLayerTreeSupplier();
237
240
  */
238
241
  export class ImageryMapLayerTreeReference extends MapLayerTileTreeReference {
239
242
  constructor(layerSettings, layerIndex, iModel) {
240
- super(layerSettings, layerIndex);
241
- this.iModel = iModel;
243
+ super(layerSettings, layerIndex, iModel);
242
244
  }
243
245
  get castsShadows() { return false; }
244
- get layerName() { return this._layerSettings.name; }
245
246
  /** Return the owner of the TileTree to draw. */
246
247
  get treeOwner() {
247
248
  return this.iModel.tiles.getTileTreeOwner({ settings: this._layerSettings }, imageryTreeSupplier);
@@ -1 +1 @@
1
- {"version":3,"file":"ImageryTileTree.js","sourceRoot":"","sources":["../../../../src/tile/map/ImageryTileTree.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAClI,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAgB,WAAW,EAAoB,aAAa,EAAqB,MAAM,oBAAoB,CAAC;AACnH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAK5C,OAAO,EACL,iBAAiB,EAA2B,yBAAyB,EAA4B,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,EAChG,gBAAgB,EAAqC,kBAAkB,GAEhI,MAAM,aAAa,CAAC;AAOrB,gBAAgB;AAChB,MAAM,OAAO,cAAe,SAAQ,WAAW;IAG7C,YAAY,MAAkB,EAAS,WAA+B,EAAS,MAAc,EAAS,SAA4B;QAChI,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QADU,gBAAW,GAAX,WAAW,CAAoB;QAAS,WAAM,GAAN,MAAM,CAAQ;QAAS,cAAS,GAAT,SAAS,CAAmB;QAD1H,uBAAkB,GAAG,CAAC,CAAC;IAG/B,CAAC;IACD,IAAW,OAAO,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9C,IAAW,YAAY,KAAK,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;IACnE,IAAoB,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IAEvE,UAAU,CAAC,OAA2B;QACpD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,CAAQ,8FAA8F;QAC7I,IAAI,SAAS,KAAK,OAAO,CAAC,cAAc;YACrC,IAAI,CAAC,MAA0B,CAAC,OAAO,EAAE,CAAC,CAAG,6DAA6D;QAE7G,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEM,qBAAqB,CAAC,UAA4B,EAAE,gBAAmC,EAAE,cAAsB,EAAE,IAAkB;QACxI,sHAAsH;QACtH,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,cAAc,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC3G,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU;gBACxC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,OAAO,kBAAkB,CAAC,MAAM,CAAC;SAClC;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACjC,IAAI,kBAAkB,CAAC,OAAO,KAAK,MAAM,EAAE;YACzC,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B;aAAM,IAAI,kBAAkB,CAAC,MAAM,KAAK,MAAM,EAAE;YAC/C,IAAI,SAAS,KAAK,IAAI,CAAC,QAAQ,EAAE;gBAC/B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjC,MAAM,QAAQ,GAAG,KAAuB,CAAC;oBACzC,IAAI,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,gBAAgB,CAAC;wBACtD,MAAM,GAAG,QAAQ,CAAC,qBAAqB,CAAC,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;oBAC9F,IAAI,kBAAkB,CAAC,MAAM,KAAK,MAAM;wBACtC,MAAM;iBACT;aACF;SACF;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACM,gBAAgB;QACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IACM,mBAAmB;QACxB,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,kBAAkB;YACzB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAED,gBAAgB;IACA,OAAO;QACrB,mDAAmD;QACnD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC,MAAM,CAAC;IACvD,CAAC;IAEkB,aAAa,CAAC,OAA+C,EAAE,OAA+B;QAE/G,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,MAAM,eAAe,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC7C,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAQ,CAAC;YACnC,MAAM,iBAAiB,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,WAAW,CAAC,QAAQ,CAAC;YACpE,kEAAkE;YAClE,uFAAuF;YACvF,iFAAiF;YACjF,MAAM,mBAAmB,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC;YAEpE,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC1B,MAAM,SAAS,GAAG,WAAW,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtG,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/G,MAAM,WAAW,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;gBAC7F,QAAQ,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;YAClK,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC,CAAC;QAEF,WAAW,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACpE,CAAC;IAEkB,kBAAkB,CAAC,KAA8B;QAClE,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,QAAQ;YACf,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAEe,UAAU;QACxB,uIAAuI;IACzI,CAAC;IAEe,eAAe;QAC7B,IAAI,CAAC,KAAK,IAAI,CAAC,kBAAkB,EAAE;YACjC,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;IACH,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IACe,OAAO;QACrB,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;QAC5B,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;CACF;AAED,gBAAgB;AAChB,MAAM,OAAO,kBAAmB,SAAQ,eAAe;IACrD,YAAY,MAA6B,EAAU,cAAiC;QAClF,KAAK,CAAC,MAAM,CAAC,CAAC;QADmC,mBAAc,GAAd,cAAc,CAAmB;QAElF,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,cAAc,CAAC,eAAe,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5G,CAAC;IACD,IAAW,YAAY,KAAsB,OAAO,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC;IAChG,OAAO,CAAC,EAAkB,IAAqC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxG,gBAAgB,CAAC,MAAc;QACpC,OAAO,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;IACD,IAAW,aAAa,KAAwB,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IAC7E,IAAoB,IAAI,KAAc,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC;IACpE,IAAoB,iBAAiB,KAAwB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACxF,IAAoB,kBAAkB,KAAc,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAC9D,YAAY,CAAC,KAAmB,IAAY,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1E,IAAI,CAAC,KAAmB,IAAU,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAK3D,qBAAqB,CAAC,UAA4B,EAAE,WAAoB,EAAE,IAAkB;QACjG,MAAM,cAAc,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;QAC9F,sHAAsH;QACtH,MAAM,cAAc,GAAG,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,WAAW,CAAC;QACxF,cAAc,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CAAC,CAAI,0DAA0D;QACjJ,OAAQ,IAAI,CAAC,QAA2B,CAAC,qBAAqB,CAAC,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACnH,CAAC;IACM,wBAAwB,CAAC,MAAc,IAAuB,OAAO,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;AAV5I,yCAAsB,GAAG,IAAI,iBAAiB,EAAE,CAAC;AACjD,0CAAuB,GAAG,GAAG,GAAG,MAAM,CAAC;AAYxD,MAAM,iBAAkB,SAAQ,iBAAiB;IAC/C,YAAoB,gBAAyC,EAAU,OAAyB;QAC9F,KAAK,EAAE,CAAC;QADU,qBAAgB,GAAhB,gBAAgB,CAAyB;QAAU,YAAO,GAAP,OAAO,CAAkB;IAEhG,CAAC;IACe,mBAAmB,CAAC,IAAU;QAC5C,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAK,6EAA6E;IAC7J,CAAC,CAAE,wCAAwC;IAE3C,IAAW,QAAQ,KAAa,OAAO,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAChF,IAAW,QAAQ,KAAa,OAAO,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAChF,IAAW,QAAQ,KAAuB,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,EAAkB,IAAqC,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACjH,IAAW,iBAAiB,KAAa,OAAO,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC1F,IAAW,eAAe,KAA8B,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAChF,KAAK,CAAC,UAAU,CAAC,OAAiB,EAAE,MAAc,EAAE,KAAmB,EAAE,IAAwB,IAAmB,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3L,gBAAgB,CAAC,IAAoB,EAAE,eAA6C,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAEtK,2GAA2G;IACpG,KAAK,CAAC,YAAY,CAAC,KAAkB,IAAiC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC;IACxG,KAAK,CAAC,kBAAkB,CAAC,IAAU,EAAE,WAA0B;QACpE,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACjF,CAAC;IAEM,iBAAiB,CAAC,KAAW;QAClC,kFAAkF;QAClF,OAAO,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACpE,CAAC;IAEe,KAAK,CAAC,eAAe,CAAC,IAAU,EAAE,IAA8B,EAAE,MAAoB;QACpG,MAAM,CAAC,IAAI,YAAY,WAAW,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,YAAY,cAAc,CAAC,CAAC;QACvC,MAAM,OAAO,GAAuB,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,SAAS,KAAK,OAAO;YACvB,OAAO,OAAO,CAAC;QAEjB,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC;QACjC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,MAAmB,EAAE,MAAoB;QACtE,IAAI;YACF,OAAO,MAAM,MAAM,CAAC,uBAAuB,CAAC;gBAC1C,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,mBAAmB;gBAC5C,MAAM;aACP,CAAC,CAAC;SACJ;QAAC,MAAM;YACN,OAAO,SAAS,CAAC;SAClB;IACH,CAAC;CACF;AAMD;;GAEG;AACH,MAAM,2BAA2B;IAC/B;;OAEG;IACI,kBAAkB,CAAC,GAA0B,EAAE,GAA0B;QAC9E,IAAI,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,GAAG,EAAE;YACb,GAAG,GAAG,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC9E,IAAI,CAAC,KAAK,GAAG,EAAE;gBACb,GAAG,GAAG,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC9E,IAAI,CAAC,KAAK,GAAG,EAAE;oBACb,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;oBAC9F,IAAI,CAAC,KAAK,GAAG,EAAE;wBACb,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;wBACnF,IAAI,CAAC,KAAK,GAAG,EAAE;4BACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE;gCACjE,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;yBAC/F;qBACF;iBACF;aACF;SACF;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,iGAAiG;IAC1F,KAAK,CAAC,cAAc,CAAC,EAAyB,EAAE,MAAwB;QAC7E,MAAM,eAAe,GAAG,SAAS,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC5F,IAAI,SAAS,KAAK,eAAe;YAC/B,OAAO,SAAS,CAAC;QAEnB,MAAM,eAAe,CAAC,UAAU,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;QACzC,MAAM,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC;QAClD,MAAM,SAAS,GAAI,CAAC,CAAC,KAAK,YAAY,CAAC,uBAAuB,IAAI,CAAC,KAAK,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvH,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACzD,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAC7H,MAAM,aAAa,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QAClF,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC;QACxL,OAAO,IAAI,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;CACF;AAED,MAAM,mBAAmB,GAAG,IAAI,2BAA2B,EAAE,CAAC;AAE9D;;GAEG;AACH,MAAM,OAAO,4BAA6B,SAAQ,yBAAyB;IAGzE,YAAmB,aAA+B,EAAE,UAAkB,EAAE,MAAwB;QAC9F,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAoB,YAAY,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC;IACpD,IAAW,SAAS,KAAK,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAE3D,gDAAgD;IAChD,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,mBAAmB,CAAC,CAAC;IACpG,CAAC;IACD,IAAW,eAAe;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,YAAY,kBAAkB,CAAC;YAChD,OAAO,SAAS,CAAC;QAEnB,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;IAC5C,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 { assert, compareBooleans, compareNumbers, compareStrings, compareStringsOrUndefined, dispose } from \"@itwin/core-bentley\";\r\nimport { Angle, Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport { Cartographic, ImageSource, MapLayerSettings, RenderTexture, ViewFlagOverrides } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../../IModelApp\";\r\nimport { IModelConnection } from \"../../IModelConnection\";\r\nimport { RenderMemory } from \"../../render/RenderMemory\";\r\nimport { RenderSystem } from \"../../render/RenderSystem\";\r\nimport { ScreenViewport } from \"../../Viewport\";\r\nimport {\r\n MapCartoRectangle, MapLayerImageryProvider, MapLayerTileTreeReference, MapTile, MapTilingScheme, QuadId, RealityTile, RealityTileLoader, RealityTileTree,\r\n RealityTileTreeParams, Tile, TileContent, TileDrawArgs, TileLoadPriority, TileParams, TileRequest, TileTree, TileTreeLoadStatus, TileTreeOwner,\r\n TileTreeSupplier,\r\n} from \"../internal\";\r\n\r\n/** @internal */\r\nexport interface ImageryTileContent extends TileContent {\r\n imageryTexture?: RenderTexture;\r\n}\r\n\r\n/** @internal */\r\nexport class ImageryMapTile extends RealityTile {\r\n private _texture?: RenderTexture;\r\n private _mapTileUsageCount = 0;\r\n constructor(params: TileParams, public imageryTree: ImageryMapTileTree, public quadId: QuadId, public rectangle: MapCartoRectangle) {\r\n super(params, imageryTree);\r\n }\r\n public get texture() { return this._texture; }\r\n public get tilingScheme() { return this.imageryTree.tilingScheme; }\r\n public override get isDisplayable() { return (this.depth > 1) && super.isDisplayable; }\r\n\r\n public override setContent(content: ImageryTileContent): void {\r\n this._texture = content.imageryTexture; // No dispose - textures may be shared by terrain tiles so let garbage collector dispose them.\r\n if (undefined === content.imageryTexture)\r\n (this.parent! as ImageryMapTile).setLeaf(); // Avoid traversing bing branches after no graphics is found.\r\n\r\n this.setIsReady();\r\n }\r\n\r\n public selectCartoDrapeTiles(drapeTiles: ImageryMapTile[], rectangleToDrape: MapCartoRectangle, drapePixelSize: number, args: TileDrawArgs): TileTreeLoadStatus {\r\n // Base draping overlap on width rather than height so that tiling schemes with multiple root nodes overlay correctly.\r\n if (this.isLeaf || (this.rectangle.xLength() / this.maximumSize) < drapePixelSize || this._anyChildNotFound) {\r\n if (this.isDisplayable && !this.isNotFound)\r\n drapeTiles.push(this);\r\n return TileTreeLoadStatus.Loaded;\r\n }\r\n\r\n let status = this.loadChildren();\r\n if (TileTreeLoadStatus.Loading === status) {\r\n args.markChildrenLoading();\r\n } else if (TileTreeLoadStatus.Loaded === status) {\r\n if (undefined !== this.children) {\r\n for (const child of this.children) {\r\n const mapChild = child as ImageryMapTile;\r\n if (mapChild.rectangle.intersectsRange(rectangleToDrape))\r\n status = mapChild.selectCartoDrapeTiles(drapeTiles, rectangleToDrape, drapePixelSize, args);\r\n if (TileTreeLoadStatus.Loaded !== status)\r\n break;\r\n }\r\n }\r\n }\r\n return status;\r\n }\r\n public markMapTileUsage() {\r\n this._mapTileUsageCount++;\r\n }\r\n public releaseMapTileUsage() {\r\n assert(!this._texture || this._mapTileUsageCount > 0);\r\n if (this._mapTileUsageCount)\r\n this._mapTileUsageCount--;\r\n }\r\n\r\n /** @internal */\r\n public override setLeaf(): void {\r\n // Don't potentially re-request the children later.\r\n this.disposeChildren();\r\n this._isLeaf = true;\r\n this._childrenLoadStatus = TileTreeLoadStatus.Loaded;\r\n }\r\n\r\n protected override _loadChildren(resolve: (children: Tile[] | undefined) => void, _reject: (error: Error) => void): void {\r\n\r\n const imageryTree = this.imageryTree;\r\n const resolveChildren = (childIds: QuadId[]) => {\r\n const children = new Array<Tile>();\r\n const childrenAreLeaves = (this.depth + 1) === imageryTree.maxDepth;\r\n // If children depth is lower than min LOD, mark them as disabled.\r\n // This is important: if those tiles are requested and the server refuse to serve them,\r\n // they will be marked as not found and their descendant will never be displayed.\r\n const childrenAreDisabled = (this.depth + 1) < imageryTree.minDepth;\r\n\r\n childIds.forEach((quadId) => {\r\n const rectangle = imageryTree.tilingScheme.tileXYToRectangle(quadId.column, quadId.row, quadId.level);\r\n const range = Range3d.createXYZXYZ(rectangle.low.x, rectangle.low.x, 0, rectangle.high.x, rectangle.high.y, 0);\r\n const maximumSize = (childrenAreDisabled ? 0 : imageryTree.imageryLoader.maximumScreenSize);\r\n children.push(new ImageryMapTile({ parent: this, isLeaf: childrenAreLeaves, contentId: quadId.contentId, range, maximumSize }, imageryTree, quadId, rectangle));\r\n });\r\n\r\n resolve(children);\r\n };\r\n\r\n imageryTree.imageryLoader.generateChildIds(this, resolveChildren);\r\n }\r\n\r\n protected override _collectStatistics(stats: RenderMemory.Statistics): void {\r\n super._collectStatistics(stats);\r\n if (this._texture)\r\n stats.addTexture(this._texture.bytesUsed);\r\n }\r\n\r\n public override freeMemory(): void {\r\n // ###TODO MapTiles and ImageryMapTiles share resources and don't currently interact well with TileAdmin.freeMemory(). Opt out for now.\r\n }\r\n\r\n public override disposeContents() {\r\n if (0 === this._mapTileUsageCount) {\r\n super.disposeContents();\r\n this.disposeTexture();\r\n }\r\n }\r\n\r\n private disposeTexture(): void {\r\n this._texture = dispose(this._texture);\r\n }\r\n public override dispose() {\r\n this._mapTileUsageCount = 0;\r\n super.dispose();\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class ImageryMapTileTree extends RealityTileTree {\r\n constructor(params: RealityTileTreeParams, private _imageryLoader: ImageryTileLoader) {\r\n super(params);\r\n const rootQuadId = new QuadId(_imageryLoader.imageryProvider.tilingScheme.rootLevel, 0, 0);\r\n this._rootTile = new ImageryMapTile(params.rootTile, this, rootQuadId, this.getTileRectangle(rootQuadId));\r\n }\r\n public get tilingScheme(): MapTilingScheme { return this._imageryLoader.imageryProvider.tilingScheme; }\r\n public getLogo(vp: ScreenViewport): HTMLTableRowElement | undefined { return this._imageryLoader.getLogo(vp); }\r\n public getTileRectangle(quadId: QuadId): MapCartoRectangle {\r\n return this.tilingScheme.tileXYToRectangle(quadId.column, quadId.row, quadId.level);\r\n }\r\n public get imageryLoader(): ImageryTileLoader { return this._imageryLoader; }\r\n public override get is3d(): boolean { assert(false); return false; }\r\n public override get viewFlagOverrides(): ViewFlagOverrides { assert(false); return {}; }\r\n public override get isContentUnbounded(): boolean { assert(false); return true; }\r\n protected override _selectTiles(_args: TileDrawArgs): Tile[] { assert(false); return []; }\r\n public override draw(_args: TileDrawArgs): void { assert(false); }\r\n\r\n private static _scratchDrapeRectangle = new MapCartoRectangle();\r\n private static _drapeIntersectionScale = 1.0 - 1.0E-5;\r\n\r\n public selectCartoDrapeTiles(drapeTiles: ImageryMapTile[], tileToDrape: MapTile, args: TileDrawArgs): TileTreeLoadStatus {\r\n const drapeRectangle = tileToDrape.rectangle.clone(ImageryMapTileTree._scratchDrapeRectangle);\r\n // Base draping overlap on width rather than height so that tiling schemes with multiple root nodes overlay correctly.\r\n const drapePixelSize = 1.05 * tileToDrape.rectangle.xLength() / tileToDrape.maximumSize;\r\n drapeRectangle.scaleAboutCenterInPlace(ImageryMapTileTree._drapeIntersectionScale); // Contract slightly to avoid draping adjacent or slivers.\r\n return (this.rootTile as ImageryMapTile).selectCartoDrapeTiles(drapeTiles, drapeRectangle, drapePixelSize, args);\r\n }\r\n public cartoRectangleFromQuadId(quadId: QuadId): MapCartoRectangle { return this.tilingScheme.tileXYToRectangle(quadId.column, quadId.row, quadId.level); }\r\n}\r\n\r\nclass ImageryTileLoader extends RealityTileLoader {\r\n constructor(private _imageryProvider: MapLayerImageryProvider, private _iModel: IModelConnection) {\r\n super();\r\n }\r\n public override computeTilePriority(tile: Tile): number {\r\n return 25 * (this._imageryProvider.usesCachedTiles ? 2 : 1) - tile.depth; // Always cached first then descending by depth (high resolution/front first)\r\n } // Prioritized fast, cached tiles first.\r\n\r\n public get maxDepth(): number { return this._imageryProvider.maximumZoomLevel; }\r\n public get minDepth(): number { return this._imageryProvider.minimumZoomLevel; }\r\n public get priority(): TileLoadPriority { return TileLoadPriority.Map; }\r\n public getLogo(vp: ScreenViewport): HTMLTableRowElement | undefined { return this._imageryProvider.getLogo(vp); }\r\n public get maximumScreenSize(): number { return this._imageryProvider.maximumScreenSize; }\r\n public get imageryProvider(): MapLayerImageryProvider { return this._imageryProvider; }\r\n public async getToolTip(strings: string[], quadId: QuadId, carto: Cartographic, tree: ImageryMapTileTree): Promise<void> { await this._imageryProvider.getToolTip(strings, quadId, carto, tree); }\r\n public generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void) { return this._imageryProvider.generateChildIds(tile, resolveChildren); }\r\n\r\n /** Load this tile's children, possibly asynchronously. Pass them to `resolve`, or an error to `reject`. */\r\n public async loadChildren(_tile: RealityTile): Promise<Tile[] | undefined> { assert(false); return undefined; }\r\n public async requestTileContent(tile: Tile, _isCanceled: () => boolean): Promise<TileRequest.Response> {\r\n const quadId = QuadId.createFromContentId(tile.contentId);\r\n return this._imageryProvider.loadTile(quadId.row, quadId.column, quadId.level);\r\n }\r\n\r\n public getRequestChannel(_tile: Tile) {\r\n // ###TODO use hostname from url - but so many layers to go through to get that...\r\n return IModelApp.tileAdmin.channels.getForHttp(\"itwinjs-imagery\");\r\n }\r\n\r\n public override async loadTileContent(tile: Tile, data: TileRequest.ResponseData, system: RenderSystem): Promise<ImageryTileContent> {\r\n assert(data instanceof ImageSource);\r\n assert(tile instanceof ImageryMapTile);\r\n const content: ImageryTileContent = {};\r\n const texture = await this.loadTextureImage(data, system);\r\n if (undefined === texture)\r\n return content;\r\n\r\n content.imageryTexture = texture;\r\n return content;\r\n }\r\n\r\n private async loadTextureImage(source: ImageSource, system: RenderSystem): Promise<RenderTexture | undefined> {\r\n try {\r\n return await system.createTextureFromSource({\r\n type: RenderTexture.Type.FilteredTileSection,\r\n source,\r\n });\r\n } catch {\r\n return undefined;\r\n }\r\n }\r\n}\r\n\r\ninterface ImageryMapLayerTreeId {\r\n settings: MapLayerSettings;\r\n}\r\n\r\n/** Supplies a TileTree that can load and draw tiles based on our imagery provider.\r\n * The TileTree is uniquely identified by its imagery type.\r\n */\r\nclass ImageryMapLayerTreeSupplier implements TileTreeSupplier {\r\n /** Return a numeric value indicating how two tree IDs are ordered relative to one another.\r\n * This allows the ID to serve as a lookup key to find the corresponding TileTree.\r\n */\r\n public compareTileTreeIds(lhs: ImageryMapLayerTreeId, rhs: ImageryMapLayerTreeId): number {\r\n let cmp = compareStrings(lhs.settings.url, rhs.settings.url);\r\n if (0 === cmp) {\r\n cmp = compareStringsOrUndefined(lhs.settings.userName, rhs.settings.userName);\r\n if (0 === cmp) {\r\n cmp = compareStringsOrUndefined(lhs.settings.password, rhs.settings.password);\r\n if (0 === cmp) {\r\n cmp = compareBooleans(lhs.settings.transparentBackground, rhs.settings.transparentBackground);\r\n if (0 === cmp) {\r\n cmp = compareNumbers(lhs.settings.subLayers.length, rhs.settings.subLayers.length);\r\n if (0 === cmp) {\r\n for (let i = 0; i < lhs.settings.subLayers.length && 0 === cmp; i++)\r\n cmp = compareBooleans(lhs.settings.subLayers[i].visible, rhs.settings.subLayers[i].visible);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n /** The first time a tree of a particular imagery type is requested, this function creates it. */\r\n public async createTileTree(id: ImageryMapLayerTreeId, iModel: IModelConnection): Promise<TileTree | undefined> {\r\n const imageryProvider = IModelApp.mapLayerFormatRegistry.createImageryProvider(id.settings);\r\n if (undefined === imageryProvider)\r\n return undefined;\r\n\r\n await imageryProvider.initialize();\r\n const modelId = iModel.transientIds.next;\r\n const tilingScheme = imageryProvider.tilingScheme;\r\n const rootLevel = (1 === tilingScheme.numberOfLevelZeroTilesX && 1 === tilingScheme.numberOfLevelZeroTilesY) ? 0 : -1;\r\n const rootTileId = new QuadId(rootLevel, 0, 0).contentId;\r\n const rootRange = Range3d.createXYZXYZ(-Angle.piRadians, -Angle.piOver2Radians, 0, Angle.piRadians, Angle.piOver2Radians, 0);\r\n const rootTileProps = { contentId: rootTileId, range: rootRange, maximumSize: 0 };\r\n const loader = new ImageryTileLoader(imageryProvider, iModel);\r\n const treeProps = { rootTile: rootTileProps, id: modelId, modelId, iModel, location: Transform.createIdentity(), priority: TileLoadPriority.Map, loader, gcsConverterAvailable: false };\r\n return new ImageryMapTileTree(treeProps, loader);\r\n }\r\n}\r\n\r\nconst imageryTreeSupplier = new ImageryMapLayerTreeSupplier();\r\n\r\n/** A reference to one of our tile trees. The specific TileTree drawn may change when the desired imagery type or target iModel changes.\r\n * @internal\r\n */\r\nexport class ImageryMapLayerTreeReference extends MapLayerTileTreeReference {\r\n public iModel: IModelConnection;\r\n\r\n public constructor(layerSettings: MapLayerSettings, layerIndex: number, iModel: IModelConnection) {\r\n super(layerSettings, layerIndex);\r\n this.iModel = iModel;\r\n }\r\n\r\n public override get castsShadows() { return false; }\r\n public get layerName() { return this._layerSettings.name; }\r\n\r\n /** Return the owner of the TileTree to draw. */\r\n public get treeOwner(): TileTreeOwner {\r\n return this.iModel.tiles.getTileTreeOwner({ settings: this._layerSettings }, imageryTreeSupplier);\r\n }\r\n public get imageryProvider(): MapLayerImageryProvider | undefined {\r\n const tree = this.treeOwner.load();\r\n if (!tree || !(tree instanceof ImageryMapTileTree))\r\n return undefined;\r\n\r\n return tree.imageryLoader.imageryProvider;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ImageryTileTree.js","sourceRoot":"","sources":["../../../../src/tile/map/ImageryTileTree.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, compareBooleans, compareNumbers, compareStrings, compareStringsOrUndefined, dispose } from \"@itwin/core-bentley\";\r\nimport { Angle, Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport { Cartographic, ImageMapLayerSettings, ImageSource, MapLayerSettings, RenderTexture, ViewFlagOverrides } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../../IModelApp\";\r\nimport { IModelConnection } from \"../../IModelConnection\";\r\nimport { RenderMemory } from \"../../render/RenderMemory\";\r\nimport { RenderSystem } from \"../../render/RenderSystem\";\r\nimport { ScreenViewport } from \"../../Viewport\";\r\nimport {\r\n MapCartoRectangle, MapLayerFeatureInfo, MapLayerImageryProvider, MapLayerTileTreeReference, MapTile, MapTilingScheme, QuadId, RealityTile, RealityTileLoader, RealityTileTree,\r\n RealityTileTreeParams, Tile, TileContent, TileDrawArgs, TileLoadPriority, TileParams, TileRequest, TileTree, TileTreeLoadStatus, TileTreeOwner,\r\n TileTreeSupplier,\r\n} from \"../internal\";\r\n\r\n/** @internal */\r\nexport interface ImageryTileContent extends TileContent {\r\n imageryTexture?: RenderTexture;\r\n}\r\n\r\n/** @internal */\r\nexport class ImageryMapTile extends RealityTile {\r\n private _texture?: RenderTexture;\r\n private _mapTileUsageCount = 0;\r\n constructor(params: TileParams, public imageryTree: ImageryMapTileTree, public quadId: QuadId, public rectangle: MapCartoRectangle) {\r\n super(params, imageryTree);\r\n }\r\n public get texture() { return this._texture; }\r\n public get tilingScheme() { return this.imageryTree.tilingScheme; }\r\n public override get isDisplayable() { return (this.depth > 1) && super.isDisplayable; }\r\n\r\n public override setContent(content: ImageryTileContent): void {\r\n this._texture = content.imageryTexture; // No dispose - textures may be shared by terrain tiles so let garbage collector dispose them.\r\n if (undefined === content.imageryTexture)\r\n (this.parent! as ImageryMapTile).setLeaf(); // Avoid traversing bing branches after no graphics is found.\r\n\r\n this.setIsReady();\r\n }\r\n\r\n public selectCartoDrapeTiles(drapeTiles: ImageryMapTile[], rectangleToDrape: MapCartoRectangle, drapePixelSize: number, args: TileDrawArgs): TileTreeLoadStatus {\r\n // Base draping overlap on width rather than height so that tiling schemes with multiple root nodes overlay correctly.\r\n if (this.isLeaf || (this.rectangle.xLength() / this.maximumSize) < drapePixelSize || this._anyChildNotFound) {\r\n if (this.isDisplayable && !this.isNotFound)\r\n drapeTiles.push(this);\r\n return TileTreeLoadStatus.Loaded;\r\n }\r\n\r\n let status = this.loadChildren();\r\n if (TileTreeLoadStatus.Loading === status) {\r\n args.markChildrenLoading();\r\n } else if (TileTreeLoadStatus.Loaded === status) {\r\n if (undefined !== this.children) {\r\n for (const child of this.children) {\r\n const mapChild = child as ImageryMapTile;\r\n if (mapChild.rectangle.intersectsRange(rectangleToDrape))\r\n status = mapChild.selectCartoDrapeTiles(drapeTiles, rectangleToDrape, drapePixelSize, args);\r\n if (TileTreeLoadStatus.Loaded !== status)\r\n break;\r\n }\r\n }\r\n }\r\n return status;\r\n }\r\n public markMapTileUsage() {\r\n this._mapTileUsageCount++;\r\n }\r\n public releaseMapTileUsage() {\r\n assert(!this._texture || this._mapTileUsageCount > 0);\r\n if (this._mapTileUsageCount)\r\n this._mapTileUsageCount--;\r\n }\r\n\r\n /** @internal */\r\n public override setLeaf(): void {\r\n // Don't potentially re-request the children later.\r\n this.disposeChildren();\r\n this._isLeaf = true;\r\n this._childrenLoadStatus = TileTreeLoadStatus.Loaded;\r\n }\r\n\r\n protected override _loadChildren(resolve: (children: Tile[] | undefined) => void, _reject: (error: Error) => void): void {\r\n\r\n const imageryTree = this.imageryTree;\r\n const resolveChildren = (childIds: QuadId[]) => {\r\n const children = new Array<Tile>();\r\n const childrenAreLeaves = (this.depth + 1) === imageryTree.maxDepth;\r\n // If children depth is lower than min LOD, mark them as disabled.\r\n // This is important: if those tiles are requested and the server refuse to serve them,\r\n // they will be marked as not found and their descendant will never be displayed.\r\n const childrenAreDisabled = (this.depth + 1) < imageryTree.minDepth;\r\n\r\n childIds.forEach((quadId) => {\r\n const rectangle = imageryTree.tilingScheme.tileXYToRectangle(quadId.column, quadId.row, quadId.level);\r\n const range = Range3d.createXYZXYZ(rectangle.low.x, rectangle.low.x, 0, rectangle.high.x, rectangle.high.y, 0);\r\n const maximumSize = (childrenAreDisabled ? 0 : imageryTree.imageryLoader.maximumScreenSize);\r\n children.push(new ImageryMapTile({ parent: this, isLeaf: childrenAreLeaves, contentId: quadId.contentId, range, maximumSize }, imageryTree, quadId, rectangle));\r\n });\r\n\r\n resolve(children);\r\n };\r\n\r\n imageryTree.imageryLoader.generateChildIds(this, resolveChildren);\r\n }\r\n\r\n protected override _collectStatistics(stats: RenderMemory.Statistics): void {\r\n super._collectStatistics(stats);\r\n if (this._texture)\r\n stats.addTexture(this._texture.bytesUsed);\r\n }\r\n\r\n public override freeMemory(): void {\r\n // ###TODO MapTiles and ImageryMapTiles share resources and don't currently interact well with TileAdmin.freeMemory(). Opt out for now.\r\n }\r\n\r\n public override disposeContents() {\r\n if (0 === this._mapTileUsageCount) {\r\n super.disposeContents();\r\n this.disposeTexture();\r\n }\r\n }\r\n\r\n private disposeTexture(): void {\r\n this._texture = dispose(this._texture);\r\n }\r\n public override dispose() {\r\n this._mapTileUsageCount = 0;\r\n super.dispose();\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class ImageryMapTileTree extends RealityTileTree {\r\n constructor(params: RealityTileTreeParams, private _imageryLoader: ImageryTileLoader) {\r\n super(params);\r\n const rootQuadId = new QuadId(_imageryLoader.imageryProvider.tilingScheme.rootLevel, 0, 0);\r\n this._rootTile = new ImageryMapTile(params.rootTile, this, rootQuadId, this.getTileRectangle(rootQuadId));\r\n }\r\n public get tilingScheme(): MapTilingScheme { return this._imageryLoader.imageryProvider.tilingScheme; }\r\n public getLogo(vp: ScreenViewport): HTMLTableRowElement | undefined { return this._imageryLoader.getLogo(vp); }\r\n public getTileRectangle(quadId: QuadId): MapCartoRectangle {\r\n return this.tilingScheme.tileXYToRectangle(quadId.column, quadId.row, quadId.level);\r\n }\r\n public get imageryLoader(): ImageryTileLoader { return this._imageryLoader; }\r\n public override get is3d(): boolean { assert(false); return false; }\r\n public override get viewFlagOverrides(): ViewFlagOverrides { assert(false); return {}; }\r\n public override get isContentUnbounded(): boolean { assert(false); return true; }\r\n protected override _selectTiles(_args: TileDrawArgs): Tile[] { assert(false); return []; }\r\n public override draw(_args: TileDrawArgs): void { assert(false); }\r\n\r\n private static _scratchDrapeRectangle = new MapCartoRectangle();\r\n private static _drapeIntersectionScale = 1.0 - 1.0E-5;\r\n\r\n public selectCartoDrapeTiles(drapeTiles: ImageryMapTile[], tileToDrape: MapTile, args: TileDrawArgs): TileTreeLoadStatus {\r\n const drapeRectangle = tileToDrape.rectangle.clone(ImageryMapTileTree._scratchDrapeRectangle);\r\n // Base draping overlap on width rather than height so that tiling schemes with multiple root nodes overlay correctly.\r\n const drapePixelSize = 1.05 * tileToDrape.rectangle.xLength() / tileToDrape.maximumSize;\r\n drapeRectangle.scaleAboutCenterInPlace(ImageryMapTileTree._drapeIntersectionScale); // Contract slightly to avoid draping adjacent or slivers.\r\n return (this.rootTile as ImageryMapTile).selectCartoDrapeTiles(drapeTiles, drapeRectangle, drapePixelSize, args);\r\n }\r\n public cartoRectangleFromQuadId(quadId: QuadId): MapCartoRectangle { return this.tilingScheme.tileXYToRectangle(quadId.column, quadId.row, quadId.level); }\r\n}\r\n\r\nclass ImageryTileLoader extends RealityTileLoader {\r\n constructor(private _imageryProvider: MapLayerImageryProvider, private _iModel: IModelConnection) {\r\n super();\r\n }\r\n public override computeTilePriority(tile: Tile): number {\r\n return 25 * (this._imageryProvider.usesCachedTiles ? 2 : 1) - tile.depth; // Always cached first then descending by depth (high resolution/front first)\r\n } // Prioritized fast, cached tiles first.\r\n\r\n public get maxDepth(): number { return this._imageryProvider.maximumZoomLevel; }\r\n public get minDepth(): number { return this._imageryProvider.minimumZoomLevel; }\r\n public get priority(): TileLoadPriority { return TileLoadPriority.Map; }\r\n public getLogo(vp: ScreenViewport): HTMLTableRowElement | undefined { return this._imageryProvider.getLogo(vp); }\r\n public get maximumScreenSize(): number { return this._imageryProvider.maximumScreenSize; }\r\n public get imageryProvider(): MapLayerImageryProvider { return this._imageryProvider; }\r\n public async getToolTip(strings: string[], quadId: QuadId, carto: Cartographic, tree: ImageryMapTileTree): Promise<void> { await this._imageryProvider.getToolTip(strings, quadId, carto, tree); }\r\n\r\n public async getMapFeatureInfo(featureInfos: MapLayerFeatureInfo[], quadId: QuadId, carto: Cartographic, tree: ImageryMapTileTree): Promise<void> {\r\n await this._imageryProvider.getFeatureInfo(featureInfos, quadId, carto, tree);\r\n }\r\n\r\n public generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void) { return this._imageryProvider.generateChildIds(tile, resolveChildren); }\r\n\r\n /** Load this tile's children, possibly asynchronously. Pass them to `resolve`, or an error to `reject`. */\r\n public async loadChildren(_tile: RealityTile): Promise<Tile[] | undefined> { assert(false); return undefined; }\r\n public async requestTileContent(tile: Tile, _isCanceled: () => boolean): Promise<TileRequest.Response> {\r\n const quadId = QuadId.createFromContentId(tile.contentId);\r\n return this._imageryProvider.loadTile(quadId.row, quadId.column, quadId.level);\r\n }\r\n\r\n public getRequestChannel(_tile: Tile) {\r\n // ###TODO use hostname from url - but so many layers to go through to get that...\r\n return IModelApp.tileAdmin.channels.getForHttp(\"itwinjs-imagery\");\r\n }\r\n\r\n public override async loadTileContent(tile: Tile, data: TileRequest.ResponseData, system: RenderSystem): Promise<ImageryTileContent> {\r\n assert(data instanceof ImageSource);\r\n assert(tile instanceof ImageryMapTile);\r\n const content: ImageryTileContent = {};\r\n const texture = await this.loadTextureImage(data, system);\r\n if (undefined === texture)\r\n return content;\r\n\r\n content.imageryTexture = texture;\r\n return content;\r\n }\r\n\r\n private async loadTextureImage(source: ImageSource, system: RenderSystem): Promise<RenderTexture | undefined> {\r\n try {\r\n return await system.createTextureFromSource({\r\n type: RenderTexture.Type.FilteredTileSection,\r\n source,\r\n });\r\n } catch {\r\n return undefined;\r\n }\r\n }\r\n}\r\n\r\ninterface ImageryMapLayerTreeId {\r\n settings: ImageMapLayerSettings;\r\n}\r\n\r\n/** Supplies a TileTree that can load and draw tiles based on our imagery provider.\r\n * The TileTree is uniquely identified by its imagery type.\r\n */\r\nclass ImageryMapLayerTreeSupplier implements TileTreeSupplier {\r\n /** Return a numeric value indicating how two tree IDs are ordered relative to one another.\r\n * This allows the ID to serve as a lookup key to find the corresponding TileTree.\r\n */\r\n public compareTileTreeIds(lhs: ImageryMapLayerTreeId, rhs: ImageryMapLayerTreeId): number {\r\n let cmp = compareStrings(lhs.settings.url, rhs.settings.url);\r\n if (0 === cmp) {\r\n cmp = compareStringsOrUndefined(lhs.settings.userName, rhs.settings.userName);\r\n if (0 === cmp) {\r\n cmp = compareStringsOrUndefined(lhs.settings.password, rhs.settings.password);\r\n if (0 === cmp) {\r\n cmp = compareBooleans(lhs.settings.transparentBackground, rhs.settings.transparentBackground);\r\n if (0 === cmp) {\r\n cmp = compareNumbers(lhs.settings.subLayers.length, rhs.settings.subLayers.length);\r\n if (0 === cmp) {\r\n for (let i = 0; i < lhs.settings.subLayers.length && 0 === cmp; i++)\r\n cmp = compareBooleans(lhs.settings.subLayers[i].visible, rhs.settings.subLayers[i].visible);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n /** The first time a tree of a particular imagery type is requested, this function creates it. */\r\n public async createTileTree(id: ImageryMapLayerTreeId, iModel: IModelConnection): Promise<TileTree | undefined> {\r\n const imageryProvider = IModelApp.mapLayerFormatRegistry.createImageryProvider(id.settings);\r\n if (undefined === imageryProvider)\r\n return undefined;\r\n\r\n await imageryProvider.initialize();\r\n const modelId = iModel.transientIds.next;\r\n const tilingScheme = imageryProvider.tilingScheme;\r\n const rootLevel = (1 === tilingScheme.numberOfLevelZeroTilesX && 1 === tilingScheme.numberOfLevelZeroTilesY) ? 0 : -1;\r\n const rootTileId = new QuadId(rootLevel, 0, 0).contentId;\r\n const rootRange = Range3d.createXYZXYZ(-Angle.piRadians, -Angle.piOver2Radians, 0, Angle.piRadians, Angle.piOver2Radians, 0);\r\n const rootTileProps = { contentId: rootTileId, range: rootRange, maximumSize: 0 };\r\n const loader = new ImageryTileLoader(imageryProvider, iModel);\r\n const treeProps = { rootTile: rootTileProps, id: modelId, modelId, iModel, location: Transform.createIdentity(), priority: TileLoadPriority.Map, loader, gcsConverterAvailable: false };\r\n return new ImageryMapTileTree(treeProps, loader);\r\n }\r\n}\r\n\r\nconst imageryTreeSupplier = new ImageryMapLayerTreeSupplier();\r\n\r\n/** A reference to one of our tile trees. The specific TileTree drawn may change when the desired imagery type or target iModel changes.\r\n * @internal\r\n */\r\nexport class ImageryMapLayerTreeReference extends MapLayerTileTreeReference {\r\n public constructor(layerSettings: MapLayerSettings, layerIndex: number, iModel: IModelConnection) {\r\n super(layerSettings, layerIndex, iModel);\r\n }\r\n\r\n public override get castsShadows() { return false; }\r\n\r\n /** Return the owner of the TileTree to draw. */\r\n public get treeOwner(): TileTreeOwner {\r\n return this.iModel.tiles.getTileTreeOwner({ settings: this._layerSettings }, imageryTreeSupplier);\r\n }\r\n public override get imageryProvider(): MapLayerImageryProvider | undefined {\r\n const tree = this.treeOwner.load();\r\n if (!tree || !(tree instanceof ImageryMapTileTree))\r\n return undefined;\r\n\r\n return tree.imageryLoader.imageryProvider;\r\n }\r\n}\r\n"]}
@@ -0,0 +1,26 @@
1
+ /** @packageDocumentation
2
+ * @module MapLayers
3
+ */
4
+ import { PropertyDescription, PropertyRecord, PropertyValue } from "@itwin/appui-abstract";
5
+ import { Cartographic } from "@itwin/core-common";
6
+ /** @alpha */
7
+ export declare class MapFeatureInfoRecord extends PropertyRecord {
8
+ constructor(value: PropertyValue, property: PropertyDescription);
9
+ }
10
+ /** @alpha */
11
+ export interface MapFeatureInfo {
12
+ layerInfo?: MapLayerFeatureInfo[];
13
+ hitPoint?: Cartographic;
14
+ }
15
+ /** @alpha */
16
+ export interface MapLayerFeatureInfo {
17
+ layerName: string;
18
+ info?: MapSubLayerFeatureInfo[] | HTMLElement;
19
+ }
20
+ /** @alpha */
21
+ export interface MapSubLayerFeatureInfo {
22
+ subLayerName: string;
23
+ displayFieldName?: string;
24
+ records?: MapFeatureInfoRecord[];
25
+ }
26
+ //# sourceMappingURL=MapFeatureInfo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapFeatureInfo.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/MapFeatureInfo.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,aAAa;AACb,qBAAa,oBAAqB,SAAQ,cAAc;gBACnC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,mBAAmB;CAGvE;AAED,aAAa;AACb,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAClC,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,aAAa;AACb,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,sBAAsB,EAAE,GAAG,WAAW,CAAC;CAC/C;AAED,aAAa;AACb,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAClC"}
@@ -0,0 +1,15 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module MapLayers
7
+ */
8
+ import { PropertyRecord } from "@itwin/appui-abstract";
9
+ /** @alpha */
10
+ export class MapFeatureInfoRecord extends PropertyRecord {
11
+ constructor(value, property) {
12
+ super(value, property);
13
+ }
14
+ }
15
+ //# sourceMappingURL=MapFeatureInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapFeatureInfo.js","sourceRoot":"","sources":["../../../../src/tile/map/MapFeatureInfo.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAuB,cAAc,EAAiB,MAAM,uBAAuB,CAAC;AAE3F,aAAa;AACb,MAAM,OAAO,oBAAqB,SAAQ,cAAc;IACtD,YAAmB,KAAoB,EAAE,QAA6B;QACpE,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACzB,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 MapLayers\r\n */\r\n\r\nimport { PropertyDescription, PropertyRecord, PropertyValue } from \"@itwin/appui-abstract\";\r\nimport { Cartographic } from \"@itwin/core-common\";\r\n/** @alpha */\r\nexport class MapFeatureInfoRecord extends PropertyRecord {\r\n public constructor(value: PropertyValue, property: PropertyDescription) {\r\n super(value, property);\r\n }\r\n}\r\n\r\n/** @alpha */\r\nexport interface MapFeatureInfo {\r\n layerInfo?: MapLayerFeatureInfo[];\r\n hitPoint?: Cartographic;\r\n}\r\n\r\n/** @alpha */\r\nexport interface MapLayerFeatureInfo {\r\n layerName: string;\r\n info?: MapSubLayerFeatureInfo[] | HTMLElement;\r\n}\r\n\r\n/** @alpha */\r\nexport interface MapSubLayerFeatureInfo {\r\n subLayerName: string;\r\n displayFieldName?: string;\r\n records?: MapFeatureInfoRecord[];\r\n}\r\n"]}
@@ -1,7 +1,7 @@
1
1
  /** @packageDocumentation
2
2
  * @module MapLayers
3
3
  */
4
- import { MapLayerKey, MapLayerSettings, MapSubLayerProps } from "@itwin/core-common";
4
+ import { ImageMapLayerSettings, MapLayerKey, MapLayerSettings, MapSubLayerProps } from "@itwin/core-common";
5
5
  import { IModelConnection } from "../../IModelConnection";
6
6
  import { ImageryMapLayerTreeReference, MapLayerAuthenticationInfo, MapLayerImageryProvider, MapLayerSourceStatus, MapLayerTileTreeReference } from "../internal";
7
7
  import { RequestBasicCredentials } from "../../request/Request";
@@ -27,7 +27,7 @@ export interface MapLayerSourceValidation {
27
27
  */
28
28
  export interface MapLayerOptions {
29
29
  AzureMaps?: MapLayerKey;
30
- MapBoxImagery?: MapLayerKey;
30
+ MapboxImagery?: MapLayerKey;
31
31
  BingMaps?: MapLayerKey;
32
32
  [format: string]: MapLayerKey | undefined;
33
33
  }
@@ -38,8 +38,8 @@ export declare class MapLayerFormatRegistry {
38
38
  private _formats;
39
39
  register(formatClass: MapLayerFormatType): void;
40
40
  get configOptions(): MapLayerOptions;
41
- createImageryMapLayerTree(layerSettings: MapLayerSettings, layerIndex: number, iModel: IModelConnection): ImageryMapLayerTreeReference | undefined;
42
- createImageryProvider(layerSettings: MapLayerSettings): MapLayerImageryProvider | undefined;
41
+ createImageryMapLayerTree(layerSettings: ImageMapLayerSettings, layerIndex: number, iModel: IModelConnection): ImageryMapLayerTreeReference | undefined;
42
+ createImageryProvider(layerSettings: ImageMapLayerSettings): MapLayerImageryProvider | undefined;
43
43
  validateSource(formatId: string, url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<MapLayerSourceValidation>;
44
44
  }
45
45
  //# sourceMappingURL=MapLayerFormatRegistry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapLayerFormatRegistry.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerFormatRegistry.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAErF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAkC,0BAA0B,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACjM,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,gBAAgB;AAChB,qBAAa,cAAc;IACzB,OAAc,QAAQ,EAAE,MAAM,CAAC;WACjB,QAAQ;WACR,qBAAqB,CAAC,SAAS,EAAE,gBAAgB,GAAG,uBAAuB,GAAG,SAAS;WACvF,kBAAkB,CAAC,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,yBAAyB,GAAG,SAAS;WAIrI,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,uBAAuB,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,CAAC;CACpJ;AAED,gBAAgB;AAChB,oBAAY,kBAAkB,GAAG,OAAO,cAAc,CAAC;AAEvD,gBAAgB;AAChB,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,0BAA0B,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAE9B,SAAS,CAAC,EAAE,WAAW,CAAC;IAExB,aAAa,CAAC,EAAE,WAAW,CAAC;IAE5B,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;CAC3C;AAED,gBAAgB;AAChB,qBAAa,sBAAsB;IACjC,OAAO,CAAC,cAAc,CAAkB;gBAC5B,IAAI,CAAC,EAAE,eAAe;IAIlC,OAAO,CAAC,QAAQ,CAAyC;IAClD,QAAQ,CAAC,WAAW,EAAE,kBAAkB;IAM/C,IAAW,aAAa,IAAI,eAAe,CAE1C;IACM,yBAAyB,CAAC,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,4BAA4B,GAAG,SAAS;IAIlJ,qBAAqB,CAAC,aAAa,EAAE,gBAAgB,GAAG,uBAAuB,GAAG,SAAS;IASrF,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAI5J"}
1
+ {"version":3,"file":"MapLayerFormatRegistry.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerFormatRegistry.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE5G,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAkC,0BAA0B,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACjM,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,gBAAgB;AAChB,qBAAa,cAAc;IACzB,OAAc,QAAQ,EAAE,MAAM,CAAC;WACjB,QAAQ;WACR,qBAAqB,CAAC,SAAS,EAAE,gBAAgB,GAAG,uBAAuB,GAAG,SAAS;WACvF,kBAAkB,CAAC,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,yBAAyB,GAAG,SAAS;WAIrI,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,uBAAuB,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,CAAC;CACpJ;AAED,gBAAgB;AAChB,oBAAY,kBAAkB,GAAG,OAAO,cAAc,CAAC;AAEvD,gBAAgB;AAChB,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,0BAA0B,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAE9B,SAAS,CAAC,EAAE,WAAW,CAAC;IAExB,aAAa,CAAC,EAAE,WAAW,CAAC;IAE5B,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;CAC3C;AAED,gBAAgB;AAChB,qBAAa,sBAAsB;IACjC,OAAO,CAAC,cAAc,CAAkB;gBAC5B,IAAI,CAAC,EAAE,eAAe;IAIlC,OAAO,CAAC,QAAQ,CAAyC;IAClD,QAAQ,CAAC,WAAW,EAAE,kBAAkB;IAM/C,IAAW,aAAa,IAAI,eAAe,CAE1C;IACM,yBAAyB,CAAC,aAAa,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,4BAA4B,GAAG,SAAS;IAIvJ,qBAAqB,CAAC,aAAa,EAAE,qBAAqB,GAAG,uBAAuB,GAAG,SAAS;IAS1F,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAI5J"}
@@ -1 +1 @@
1
- {"version":3,"file":"MapLayerFormatRegistry.js","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerFormatRegistry.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 MapLayers\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { MapLayerKey, MapLayerSettings, MapSubLayerProps } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../../IModelApp\";\r\nimport { IModelConnection } from \"../../IModelConnection\";\r\nimport { ImageryMapLayerTreeReference, internalMapLayerImageryFormats, MapLayerAuthenticationInfo, MapLayerImageryProvider, MapLayerSourceStatus, MapLayerTileTreeReference } from \"../internal\";\r\nimport { RequestBasicCredentials } from \"../../request/Request\";\r\n\r\n/** @internal */\r\nexport class MapLayerFormat {\r\n public static formatId: string;\r\n public static register() { IModelApp.mapLayerFormatRegistry.register(this); }\r\n public static createImageryProvider(_settings: MapLayerSettings): MapLayerImageryProvider | undefined { assert(false); }\r\n public static createMapLayerTree(_layerSettings: MapLayerSettings, _layerIndex: number, _iModel: IModelConnection): MapLayerTileTreeReference | undefined {\r\n assert(false);\r\n return undefined;\r\n }\r\n public static async validateSource(_url: string, _credentials?: RequestBasicCredentials, _ignoreCache?: boolean): Promise<MapLayerSourceValidation> { return { status: MapLayerSourceStatus.Valid }; }\r\n}\r\n\r\n/** @internal */\r\nexport type MapLayerFormatType = typeof MapLayerFormat;\r\n\r\n/** @internal */\r\nexport interface MapLayerSourceValidation {\r\n status: MapLayerSourceStatus;\r\n subLayers?: MapSubLayerProps[];\r\n authInfo?: MapLayerAuthenticationInfo;\r\n}\r\n\r\n/**\r\n * Options to be passed to the IModelApp on startup which contain access keys for various layer formats\r\n * @beta\r\n */\r\nexport interface MapLayerOptions {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n AzureMaps?: MapLayerKey;\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n MapBoxImagery?: MapLayerKey;\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n BingMaps?: MapLayerKey;\r\n [format: string]: MapLayerKey | undefined;\r\n}\r\n\r\n/** @internal */\r\nexport class MapLayerFormatRegistry {\r\n private _configOptions: MapLayerOptions;\r\n constructor(opts?: MapLayerOptions) {\r\n this._configOptions = opts ?? {};\r\n internalMapLayerImageryFormats.forEach((format) => this.register(format));\r\n }\r\n private _formats = new Map<string, MapLayerFormatType>();\r\n public register(formatClass: MapLayerFormatType) {\r\n if (formatClass.formatId.length === 0)\r\n return; // must be an abstract class, ignore it\r\n\r\n this._formats.set(formatClass.formatId, formatClass);\r\n }\r\n public get configOptions(): MapLayerOptions {\r\n return this._configOptions;\r\n }\r\n public createImageryMapLayerTree(layerSettings: MapLayerSettings, layerIndex: number, iModel: IModelConnection): ImageryMapLayerTreeReference | undefined {\r\n const format = this._formats.get(layerSettings.formatId);\r\n return format !== undefined ? (format.createMapLayerTree(layerSettings, layerIndex, iModel) as ImageryMapLayerTreeReference) : undefined;\r\n }\r\n public createImageryProvider(layerSettings: MapLayerSettings): MapLayerImageryProvider | undefined {\r\n const format = this._formats.get(layerSettings.formatId);\r\n if (this._configOptions[layerSettings.formatId] !== undefined) {\r\n const keyValuePair = this._configOptions[layerSettings.formatId]!;\r\n const key: MapLayerKey = { key: keyValuePair.key, value: keyValuePair.value };\r\n layerSettings = layerSettings.clone({ accessKey: key });\r\n }\r\n return (format === undefined) ? undefined : format.createImageryProvider(layerSettings);\r\n }\r\n public async validateSource(formatId: string, url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<MapLayerSourceValidation> {\r\n const format = this._formats.get(formatId);\r\n return (format === undefined) ? { status: MapLayerSourceStatus.InvalidFormat } : format.validateSource(url, credentials, ignoreCache);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"MapLayerFormatRegistry.js","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerFormatRegistry.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 MapLayers\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { ImageMapLayerSettings, MapLayerKey, MapLayerSettings, MapSubLayerProps } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../../IModelApp\";\r\nimport { IModelConnection } from \"../../IModelConnection\";\r\nimport { ImageryMapLayerTreeReference, internalMapLayerImageryFormats, MapLayerAuthenticationInfo, MapLayerImageryProvider, MapLayerSourceStatus, MapLayerTileTreeReference } from \"../internal\";\r\nimport { RequestBasicCredentials } from \"../../request/Request\";\r\n\r\n/** @internal */\r\nexport class MapLayerFormat {\r\n public static formatId: string;\r\n public static register() { IModelApp.mapLayerFormatRegistry.register(this); }\r\n public static createImageryProvider(_settings: MapLayerSettings): MapLayerImageryProvider | undefined { assert(false); }\r\n public static createMapLayerTree(_layerSettings: MapLayerSettings, _layerIndex: number, _iModel: IModelConnection): MapLayerTileTreeReference | undefined {\r\n assert(false);\r\n return undefined;\r\n }\r\n public static async validateSource(_url: string, _credentials?: RequestBasicCredentials, _ignoreCache?: boolean): Promise<MapLayerSourceValidation> { return { status: MapLayerSourceStatus.Valid }; }\r\n}\r\n\r\n/** @internal */\r\nexport type MapLayerFormatType = typeof MapLayerFormat;\r\n\r\n/** @internal */\r\nexport interface MapLayerSourceValidation {\r\n status: MapLayerSourceStatus;\r\n subLayers?: MapSubLayerProps[];\r\n authInfo?: MapLayerAuthenticationInfo;\r\n}\r\n\r\n/**\r\n * Options to be passed to the IModelApp on startup which contain access keys for various layer formats\r\n * @beta\r\n */\r\nexport interface MapLayerOptions {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n AzureMaps?: MapLayerKey;\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n MapboxImagery?: MapLayerKey;\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n BingMaps?: MapLayerKey;\r\n [format: string]: MapLayerKey | undefined;\r\n}\r\n\r\n/** @internal */\r\nexport class MapLayerFormatRegistry {\r\n private _configOptions: MapLayerOptions;\r\n constructor(opts?: MapLayerOptions) {\r\n this._configOptions = opts ?? {};\r\n internalMapLayerImageryFormats.forEach((format) => this.register(format));\r\n }\r\n private _formats = new Map<string, MapLayerFormatType>();\r\n public register(formatClass: MapLayerFormatType) {\r\n if (formatClass.formatId.length === 0)\r\n return; // must be an abstract class, ignore it\r\n\r\n this._formats.set(formatClass.formatId, formatClass);\r\n }\r\n public get configOptions(): MapLayerOptions {\r\n return this._configOptions;\r\n }\r\n public createImageryMapLayerTree(layerSettings: ImageMapLayerSettings, layerIndex: number, iModel: IModelConnection): ImageryMapLayerTreeReference | undefined {\r\n const format = this._formats.get(layerSettings.formatId);\r\n return format !== undefined ? (format.createMapLayerTree(layerSettings, layerIndex, iModel) as ImageryMapLayerTreeReference) : undefined;\r\n }\r\n public createImageryProvider(layerSettings: ImageMapLayerSettings): MapLayerImageryProvider | undefined {\r\n const format = this._formats.get(layerSettings.formatId);\r\n if (this._configOptions[layerSettings.formatId] !== undefined) {\r\n const keyValuePair = this._configOptions[layerSettings.formatId]!;\r\n const key: MapLayerKey = { key: keyValuePair.key, value: keyValuePair.value };\r\n layerSettings = layerSettings.clone({ accessKey: key });\r\n }\r\n return (format === undefined) ? undefined : format.createImageryProvider(layerSettings);\r\n }\r\n public async validateSource(formatId: string, url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<MapLayerSourceValidation> {\r\n const format = this._formats.get(formatId);\r\n return (format === undefined) ? { status: MapLayerSourceStatus.InvalidFormat } : format.validateSource(url, credentials, ignoreCache);\r\n }\r\n}\r\n"]}
@@ -1,19 +1,19 @@
1
1
  /** @packageDocumentation
2
2
  * @module MapLayers
3
3
  */
4
- import { MapLayerSettings } from "@itwin/core-common";
5
4
  import { RequestBasicCredentials } from "../../request/Request";
5
+ import { ImageMapLayerSettings } from "@itwin/core-common";
6
6
  import { IModelConnection } from "../../IModelConnection";
7
7
  import { MapLayerFormat, MapLayerImageryProvider, MapLayerSourceValidation, MapLayerTileTreeReference } from "../internal";
8
8
  /** Base class imagery map layer formats. Subclasses should override formatId and [[MapLayerFormat.createImageryProvider]].
9
9
  * @internal
10
10
  */
11
11
  export declare class ImageryMapLayerFormat extends MapLayerFormat {
12
- static createMapLayerTree(layerSettings: MapLayerSettings, layerIndex: number, iModel: IModelConnection): MapLayerTileTreeReference | undefined;
12
+ static createMapLayerTree(layerSettings: ImageMapLayerSettings, layerIndex: number, iModel: IModelConnection): MapLayerTileTreeReference | undefined;
13
13
  }
14
14
  declare class WmsMapLayerFormat extends ImageryMapLayerFormat {
15
15
  static formatId: string;
16
- static createImageryProvider(settings: MapLayerSettings): MapLayerImageryProvider | undefined;
16
+ static createImageryProvider(settings: ImageMapLayerSettings): MapLayerImageryProvider | undefined;
17
17
  static validateSource(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<MapLayerSourceValidation>;
18
18
  }
19
19
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"MapLayerImageryFormats.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerImageryFormats.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAoB,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EASL,cAAc,EACd,uBAAuB,EAEvB,wBAAwB,EACxB,yBAAyB,EAO1B,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,cAAc;WAChC,kBAAkB,CAAC,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,yBAAyB,GAAG,SAAS;CAGhK;AAED,cAAM,iBAAkB,SAAQ,qBAAqB;IACnD,OAAuB,QAAQ,SAAS;WAEjB,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,uBAAuB,GAAG,SAAS;WAGhF,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAyD1J;AAiGD,gBAAgB;AAChB,eAAO,MAAM,8BAA8B,8BAA2K,CAAC"}
1
+ {"version":3,"file":"MapLayerImageryFormats.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerImageryFormats.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAoB,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EASL,cAAc,EACd,uBAAuB,EAEvB,wBAAwB,EACxB,yBAAyB,EAO1B,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,cAAc;WAChC,kBAAkB,CAAC,aAAa,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,yBAAyB,GAAG,SAAS;CAGrK;AAED,cAAM,iBAAkB,SAAQ,qBAAqB;IACnD,OAAuB,QAAQ,SAAS;WAEjB,qBAAqB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,uBAAuB,GAAG,SAAS;WAGrF,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAyD1J;AAiGD,gBAAgB;AAChB,eAAO,MAAM,8BAA8B,8BAA2K,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MapLayerImageryFormats.js","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerImageryFormats.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 MapLayers\r\n */\r\n\r\nimport { MapLayerSettings, MapSubLayerProps } from \"@itwin/core-common\";\r\nimport { RequestBasicCredentials } from \"../../request/Request\";\r\nimport { IModelConnection } from \"../../IModelConnection\";\r\nimport {\r\n ArcGISMapLayerImageryProvider,\r\n ArcGisUtilities,\r\n AzureMapsLayerImageryProvider,\r\n BingMapsImageryLayerProvider,\r\n ImageryMapLayerTreeReference,\r\n MapBoxLayerImageryProvider,\r\n MapLayerAuthenticationInfo,\r\n MapLayerAuthType,\r\n MapLayerFormat,\r\n MapLayerImageryProvider,\r\n MapLayerSourceStatus,\r\n MapLayerSourceValidation,\r\n MapLayerTileTreeReference,\r\n TileUrlImageryProvider,\r\n WmsCapabilities,\r\n WmsMapLayerImageryProvider,\r\n WmtsCapabilities,\r\n WmtsCapability,\r\n WmtsMapLayerImageryProvider,\r\n} from \"../internal\";\r\n\r\n/** Base class imagery map layer formats. Subclasses should override formatId and [[MapLayerFormat.createImageryProvider]].\r\n * @internal\r\n */\r\nexport class ImageryMapLayerFormat extends MapLayerFormat {\r\n public static override createMapLayerTree(layerSettings: MapLayerSettings, layerIndex: number, iModel: IModelConnection): MapLayerTileTreeReference | undefined {\r\n return new ImageryMapLayerTreeReference(layerSettings, layerIndex, iModel);\r\n }\r\n}\r\n\r\nclass WmsMapLayerFormat extends ImageryMapLayerFormat {\r\n public static override formatId = \"WMS\";\r\n\r\n public static override createImageryProvider(settings: MapLayerSettings): MapLayerImageryProvider | undefined {\r\n return new WmsMapLayerImageryProvider(settings);\r\n }\r\n public static override async validateSource(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<MapLayerSourceValidation> {\r\n try {\r\n let subLayers: MapSubLayerProps[] | undefined;\r\n const maxVisibleSubLayers = 50;\r\n const capabilities = await WmsCapabilities.create(url, credentials, ignoreCache);\r\n if (capabilities !== undefined) {\r\n subLayers = capabilities.getSubLayers(false);\r\n const rootsSubLayer = subLayers?.find((sublayer) => sublayer.parent === undefined);\r\n const hasTooManyLayers = subLayers && subLayers.length > maxVisibleSubLayers;\r\n\r\n if (!Array.isArray(subLayers))\r\n return { status: MapLayerSourceStatus.Valid, subLayers };\r\n\r\n for (const subLayer of subLayers) {\r\n // In general for WMS, we prefer to have the children of root node visible, but not the root itself.\r\n // Thats simply to give more flexibility in the UI.\r\n // Two exceptions to this rule: If there are too many layers or the root node is not named.\r\n if (subLayer.id && subLayer.id === rootsSubLayer?.id\r\n && (!(subLayer.name && subLayer.name.length > 0) || hasTooManyLayers)) {\r\n subLayer.visible = true;\r\n break; // if root node is visible, don't bother turning ON any other layers\r\n }\r\n\r\n // Make children of the root node visible.\r\n if (subLayer.parent && subLayer.parent === rootsSubLayer?.id && !hasTooManyLayers) {\r\n const isUnnamedGroup = (layer: MapSubLayerProps) => { return layer.children && layer.children.length > 0 && (!layer.name || layer.name.length === 0); };\r\n const makeChildrenVisible = (layers: MapSubLayerProps[] | undefined, layer: MapSubLayerProps) => {\r\n layer?.children?.forEach((childId) => {\r\n const childSubLayer = subLayers?.find((child) => child?.id === childId);\r\n if (childSubLayer) {\r\n childSubLayer.visible = true;\r\n if (isUnnamedGroup(childSubLayer))\r\n makeChildrenVisible(layers, childSubLayer);\r\n }\r\n });\r\n };\r\n\r\n subLayer.visible = true;\r\n\r\n // If we got a unnamed group, make children visible recursively until we have a leaf or named group\r\n if (isUnnamedGroup(subLayer))\r\n makeChildrenVisible(subLayers, subLayer);\r\n }\r\n }\r\n }\r\n\r\n return { status: MapLayerSourceStatus.Valid, subLayers };\r\n } catch (err: any) {\r\n let status = MapLayerSourceStatus.InvalidUrl;\r\n let authInfo: MapLayerAuthenticationInfo|undefined;\r\n if (err?.status === 401) {\r\n status = (credentials ? MapLayerSourceStatus.InvalidCredentials : MapLayerSourceStatus.RequireAuth);\r\n authInfo = {authMethod: MapLayerAuthType.Basic};\r\n }\r\n return { status, authInfo};\r\n }\r\n }\r\n}\r\n\r\nclass WmtsMapLayerFormat extends ImageryMapLayerFormat {\r\n public static override formatId = \"WMTS\";\r\n\r\n public static override createImageryProvider(settings: MapLayerSettings): MapLayerImageryProvider | undefined {\r\n return new WmtsMapLayerImageryProvider(settings);\r\n }\r\n\r\n public static override async validateSource(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<MapLayerSourceValidation> {\r\n try {\r\n const subLayers: MapSubLayerProps[] = [];\r\n const capabilities = await WmtsCapabilities.create(url, credentials, ignoreCache);\r\n if (!capabilities)\r\n return { status: MapLayerSourceStatus.InvalidUrl };\r\n\r\n // Only returns layer that can be published in the Google maps or WGS84 aligned tile trees.\r\n let supportedTms: WmtsCapability.TileMatrixSet[] = [];\r\n const googleMapsTms = capabilities?.contents?.getGoogleMapsCompatibleTileMatrixSet();\r\n if (googleMapsTms) {\r\n supportedTms = googleMapsTms;\r\n }\r\n const wsg84Tms = capabilities?.contents?.getEpsg4326CompatibleTileMatrixSet();\r\n if (wsg84Tms) {\r\n supportedTms = supportedTms.concat(wsg84Tms);\r\n }\r\n\r\n if (supportedTms.length === 0) {\r\n // This WMTS server doesn't support either GoogleMaps or WSG84\r\n return { status: MapLayerSourceStatus.InvalidTileTree };\r\n }\r\n\r\n let subLayerId = 0;\r\n capabilities?.contents?.layers.forEach((layer) => {\r\n const hasSupportedTms = supportedTms?.some((tms) => {\r\n return layer.tileMatrixSetLinks.some((tmls) => { return (tmls.tileMatrixSet === tms.identifier); });\r\n });\r\n if (hasSupportedTms) {\r\n subLayers.push({\r\n name: layer.identifier,\r\n title: layer.title ?? layer.identifier,\r\n visible: (subLayers.length === 0), // Make the first layer visible.\r\n parent: undefined,\r\n children: undefined,\r\n id: subLayerId++,\r\n });\r\n }\r\n });\r\n\r\n // Return error if we could find a single compatible layer.\r\n if (subLayers.length === 0)\r\n return { status: MapLayerSourceStatus.InvalidTileTree };\r\n\r\n return { status: MapLayerSourceStatus.Valid, subLayers };\r\n } catch (err) {\r\n console.error(err); // eslint-disable-line no-console\r\n return { status: MapLayerSourceStatus.InvalidUrl };\r\n }\r\n }\r\n\r\n}\r\n\r\nclass ArcGISMapLayerFormat extends ImageryMapLayerFormat {\r\n public static override formatId = \"ArcGIS\";\r\n public static override async validateSource(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<MapLayerSourceValidation> {\r\n return ArcGisUtilities.validateSource(url, credentials, ignoreCache);\r\n }\r\n public static override createImageryProvider(settings: MapLayerSettings): MapLayerImageryProvider | undefined {\r\n return new ArcGISMapLayerImageryProvider(settings);\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nclass AzureMapsMapLayerFormat extends ImageryMapLayerFormat {\r\n public static override formatId = \"AzureMaps\";\r\n public static override createImageryProvider(settings: MapLayerSettings): MapLayerImageryProvider | undefined {\r\n return new AzureMapsLayerImageryProvider(settings);\r\n }\r\n}\r\nclass BingMapsMapLayerFormat extends ImageryMapLayerFormat {\r\n public static override formatId = \"BingMaps\";\r\n public static override createImageryProvider(settings: MapLayerSettings): MapLayerImageryProvider | undefined {\r\n return new BingMapsImageryLayerProvider(settings);\r\n }\r\n}\r\n\r\nclass MapBoxImageryMapLayerFormat extends ImageryMapLayerFormat {\r\n public static override formatId = \"MapboxImagery\";\r\n public static override createImageryProvider(settings: MapLayerSettings): MapLayerImageryProvider | undefined {\r\n return new MapBoxLayerImageryProvider(settings);\r\n }\r\n}\r\nclass TileUrlMapLayerFormat extends ImageryMapLayerFormat {\r\n public static override formatId = \"TileURL\";\r\n public static override createImageryProvider(settings: MapLayerSettings): MapLayerImageryProvider | undefined { return new TileUrlImageryProvider(settings); }\r\n}\r\n\r\n/** @internal */\r\nexport const internalMapLayerImageryFormats = [WmsMapLayerFormat, WmtsMapLayerFormat, ArcGISMapLayerFormat, /* AzureMapsMapLayerFormat, */ BingMapsMapLayerFormat, MapBoxImageryMapLayerFormat, TileUrlMapLayerFormat];\r\n"]}
1
+ {"version":3,"file":"MapLayerImageryFormats.js","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerImageryFormats.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 MapLayers\r\n */\r\n\r\nimport { RequestBasicCredentials } from \"../../request/Request\";\r\nimport { ImageMapLayerSettings, MapSubLayerProps } from \"@itwin/core-common\";\r\nimport { IModelConnection } from \"../../IModelConnection\";\r\nimport {\r\n ArcGISMapLayerImageryProvider,\r\n ArcGisUtilities,\r\n AzureMapsLayerImageryProvider,\r\n BingMapsImageryLayerProvider,\r\n ImageryMapLayerTreeReference,\r\n MapBoxLayerImageryProvider,\r\n MapLayerAuthenticationInfo,\r\n MapLayerAuthType,\r\n MapLayerFormat,\r\n MapLayerImageryProvider,\r\n MapLayerSourceStatus,\r\n MapLayerSourceValidation,\r\n MapLayerTileTreeReference,\r\n TileUrlImageryProvider,\r\n WmsCapabilities,\r\n WmsMapLayerImageryProvider,\r\n WmtsCapabilities,\r\n WmtsCapability,\r\n WmtsMapLayerImageryProvider,\r\n} from \"../internal\";\r\n\r\n/** Base class imagery map layer formats. Subclasses should override formatId and [[MapLayerFormat.createImageryProvider]].\r\n * @internal\r\n */\r\nexport class ImageryMapLayerFormat extends MapLayerFormat {\r\n public static override createMapLayerTree(layerSettings: ImageMapLayerSettings, layerIndex: number, iModel: IModelConnection): MapLayerTileTreeReference | undefined {\r\n return new ImageryMapLayerTreeReference(layerSettings, layerIndex, iModel);\r\n }\r\n}\r\n\r\nclass WmsMapLayerFormat extends ImageryMapLayerFormat {\r\n public static override formatId = \"WMS\";\r\n\r\n public static override createImageryProvider(settings: ImageMapLayerSettings): MapLayerImageryProvider | undefined {\r\n return new WmsMapLayerImageryProvider(settings);\r\n }\r\n public static override async validateSource(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<MapLayerSourceValidation> {\r\n try {\r\n let subLayers: MapSubLayerProps[] | undefined;\r\n const maxVisibleSubLayers = 50;\r\n const capabilities = await WmsCapabilities.create(url, credentials, ignoreCache);\r\n if (capabilities !== undefined) {\r\n subLayers = capabilities.getSubLayers(false);\r\n const rootsSubLayer = subLayers?.find((sublayer) => sublayer.parent === undefined);\r\n const hasTooManyLayers = subLayers && subLayers.length > maxVisibleSubLayers;\r\n\r\n if (!Array.isArray(subLayers))\r\n return { status: MapLayerSourceStatus.Valid, subLayers };\r\n\r\n for (const subLayer of subLayers) {\r\n // In general for WMS, we prefer to have the children of root node visible, but not the root itself.\r\n // Thats simply to give more flexibility in the UI.\r\n // Two exceptions to this rule: If there are too many layers or the root node is not named.\r\n if (subLayer.id && subLayer.id === rootsSubLayer?.id\r\n && (!(subLayer.name && subLayer.name.length > 0) || hasTooManyLayers)) {\r\n subLayer.visible = true;\r\n break; // if root node is visible, don't bother turning ON any other layers\r\n }\r\n\r\n // Make children of the root node visible.\r\n if (subLayer.parent && subLayer.parent === rootsSubLayer?.id && !hasTooManyLayers) {\r\n const isUnnamedGroup = (layer: MapSubLayerProps) => { return layer.children && layer.children.length > 0 && (!layer.name || layer.name.length === 0); };\r\n const makeChildrenVisible = (layers: MapSubLayerProps[] | undefined, layer: MapSubLayerProps) => {\r\n layer?.children?.forEach((childId) => {\r\n const childSubLayer = subLayers?.find((child) => child?.id === childId);\r\n if (childSubLayer) {\r\n childSubLayer.visible = true;\r\n if (isUnnamedGroup(childSubLayer))\r\n makeChildrenVisible(layers, childSubLayer);\r\n }\r\n });\r\n };\r\n\r\n subLayer.visible = true;\r\n\r\n // If we got a unnamed group, make children visible recursively until we have a leaf or named group\r\n if (isUnnamedGroup(subLayer))\r\n makeChildrenVisible(subLayers, subLayer);\r\n }\r\n }\r\n }\r\n\r\n return { status: MapLayerSourceStatus.Valid, subLayers };\r\n } catch (err: any) {\r\n let status = MapLayerSourceStatus.InvalidUrl;\r\n let authInfo: MapLayerAuthenticationInfo|undefined;\r\n if (err?.status === 401) {\r\n status = (credentials ? MapLayerSourceStatus.InvalidCredentials : MapLayerSourceStatus.RequireAuth);\r\n authInfo = {authMethod: MapLayerAuthType.Basic};\r\n }\r\n return { status, authInfo};\r\n }\r\n }\r\n}\r\n\r\nclass WmtsMapLayerFormat extends ImageryMapLayerFormat {\r\n public static override formatId = \"WMTS\";\r\n\r\n public static override createImageryProvider(settings: ImageMapLayerSettings): MapLayerImageryProvider | undefined {\r\n return new WmtsMapLayerImageryProvider(settings);\r\n }\r\n\r\n public static override async validateSource(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<MapLayerSourceValidation> {\r\n try {\r\n const subLayers: MapSubLayerProps[] = [];\r\n const capabilities = await WmtsCapabilities.create(url, credentials, ignoreCache);\r\n if (!capabilities)\r\n return { status: MapLayerSourceStatus.InvalidUrl };\r\n\r\n // Only returns layer that can be published in the Google maps or WGS84 aligned tile trees.\r\n let supportedTms: WmtsCapability.TileMatrixSet[] = [];\r\n const googleMapsTms = capabilities?.contents?.getGoogleMapsCompatibleTileMatrixSet();\r\n if (googleMapsTms) {\r\n supportedTms = googleMapsTms;\r\n }\r\n const wsg84Tms = capabilities?.contents?.getEpsg4326CompatibleTileMatrixSet();\r\n if (wsg84Tms) {\r\n supportedTms = supportedTms.concat(wsg84Tms);\r\n }\r\n\r\n if (supportedTms.length === 0) {\r\n // This WMTS server doesn't support either GoogleMaps or WSG84\r\n return { status: MapLayerSourceStatus.InvalidTileTree };\r\n }\r\n\r\n let subLayerId = 0;\r\n capabilities?.contents?.layers.forEach((layer) => {\r\n const hasSupportedTms = supportedTms?.some((tms) => {\r\n return layer.tileMatrixSetLinks.some((tmls) => { return (tmls.tileMatrixSet === tms.identifier); });\r\n });\r\n if (hasSupportedTms) {\r\n subLayers.push({\r\n name: layer.identifier,\r\n title: layer.title ?? layer.identifier,\r\n visible: (subLayers.length === 0), // Make the first layer visible.\r\n parent: undefined,\r\n children: undefined,\r\n id: subLayerId++,\r\n });\r\n }\r\n });\r\n\r\n // Return error if we could find a single compatible layer.\r\n if (subLayers.length === 0)\r\n return { status: MapLayerSourceStatus.InvalidTileTree };\r\n\r\n return { status: MapLayerSourceStatus.Valid, subLayers };\r\n } catch (err) {\r\n console.error(err); // eslint-disable-line no-console\r\n return { status: MapLayerSourceStatus.InvalidUrl };\r\n }\r\n }\r\n\r\n}\r\n\r\nclass ArcGISMapLayerFormat extends ImageryMapLayerFormat {\r\n public static override formatId = \"ArcGIS\";\r\n public static override async validateSource(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<MapLayerSourceValidation> {\r\n return ArcGisUtilities.validateSource(url, credentials, ignoreCache);\r\n }\r\n public static override createImageryProvider(settings: ImageMapLayerSettings): MapLayerImageryProvider | undefined {\r\n return new ArcGISMapLayerImageryProvider(settings);\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nclass AzureMapsMapLayerFormat extends ImageryMapLayerFormat {\r\n public static override formatId = \"AzureMaps\";\r\n public static override createImageryProvider(settings: ImageMapLayerSettings): MapLayerImageryProvider | undefined {\r\n return new AzureMapsLayerImageryProvider(settings);\r\n }\r\n}\r\nclass BingMapsMapLayerFormat extends ImageryMapLayerFormat {\r\n public static override formatId = \"BingMaps\";\r\n public static override createImageryProvider(settings: ImageMapLayerSettings): MapLayerImageryProvider | undefined {\r\n return new BingMapsImageryLayerProvider(settings);\r\n }\r\n}\r\n\r\nclass MapBoxImageryMapLayerFormat extends ImageryMapLayerFormat {\r\n public static override formatId = \"MapboxImagery\";\r\n public static override createImageryProvider(settings: ImageMapLayerSettings): MapLayerImageryProvider | undefined {\r\n return new MapBoxLayerImageryProvider(settings);\r\n }\r\n}\r\nclass TileUrlMapLayerFormat extends ImageryMapLayerFormat {\r\n public static override formatId = \"TileURL\";\r\n public static override createImageryProvider(settings: ImageMapLayerSettings): MapLayerImageryProvider | undefined { return new TileUrlImageryProvider(settings); }\r\n}\r\n\r\n/** @internal */\r\nexport const internalMapLayerImageryFormats = [WmsMapLayerFormat, WmtsMapLayerFormat, ArcGISMapLayerFormat, /* AzureMapsMapLayerFormat, */ BingMapsMapLayerFormat, MapBoxImageryMapLayerFormat, TileUrlMapLayerFormat];\r\n"]}
@@ -2,10 +2,10 @@
2
2
  * @module MapLayers
3
3
  */
4
4
  import { BeEvent } from "@itwin/core-bentley";
5
- import { Cartographic, ImageSource, MapLayerSettings } from "@itwin/core-common";
5
+ import { Cartographic, ImageMapLayerSettings, ImageSource } from "@itwin/core-common";
6
6
  import { RequestBasicCredentials, Response } from "../../request/Request";
7
7
  import { ScreenViewport } from "../../Viewport";
8
- import { ImageryMapTile, ImageryMapTileTree, MapCartoRectangle, MapTilingScheme, QuadId } from "../internal";
8
+ import { ImageryMapTile, ImageryMapTileTree, MapCartoRectangle, MapLayerFeatureInfo, MapTilingScheme, QuadId } from "../internal";
9
9
  /** @internal */
10
10
  export declare enum MapLayerImageryProviderStatus {
11
11
  Valid = 0,
@@ -15,7 +15,7 @@ export declare enum MapLayerImageryProviderStatus {
15
15
  * @internal
16
16
  */
17
17
  export declare abstract class MapLayerImageryProvider {
18
- protected readonly _settings: MapLayerSettings;
18
+ protected readonly _settings: ImageMapLayerSettings;
19
19
  protected _usesCachedTiles: boolean;
20
20
  protected _hasSuccessfullyFetchedTile: boolean;
21
21
  status: MapLayerImageryProviderStatus;
@@ -31,7 +31,7 @@ export declare abstract class MapLayerImageryProvider {
31
31
  get useGeographicTilingScheme(): boolean;
32
32
  cartoRange?: MapCartoRectangle;
33
33
  protected get _filterByCartoRange(): boolean;
34
- constructor(_settings: MapLayerSettings, _usesCachedTiles: boolean);
34
+ constructor(_settings: ImageMapLayerSettings, _usesCachedTiles: boolean);
35
35
  initialize(): Promise<void>;
36
36
  abstract constructUrl(row: number, column: number, zoomLevel: number): Promise<string>;
37
37
  get tilingScheme(): MapTilingScheme;
@@ -43,6 +43,7 @@ export declare abstract class MapLayerImageryProvider {
43
43
  protected _generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void): void;
44
44
  generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void): void;
45
45
  getToolTip(strings: string[], quadId: QuadId, _carto: Cartographic, tree: ImageryMapTileTree): Promise<void>;
46
+ getFeatureInfo(featureInfos: MapLayerFeatureInfo[], _quadId: QuadId, _carto: Cartographic, _tree: ImageryMapTileTree): Promise<void>;
46
47
  protected getRequestAuthorization(): RequestBasicCredentials | undefined;
47
48
  protected getImageFromTileResponse(tileResponse: Response, zoomLevel: number): ImageSource | undefined;
48
49
  setStatus(status: MapLayerImageryProviderStatus): void;