@itwin/core-frontend 3.0.0-extension.0 → 3.1.0-dev.5

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 (1302) hide show
  1. package/CHANGELOG.md +89 -1
  2. package/LICENSE.md +1 -1
  3. package/lib/cjs/AccuSnap.js +3 -3
  4. package/lib/cjs/AccuSnap.js.map +1 -1
  5. package/lib/cjs/ApproximateTerrainHeights.d.ts.map +1 -1
  6. package/lib/cjs/ApproximateTerrainHeights.js +10 -5
  7. package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
  8. package/lib/cjs/BackgroundMapGeometry.d.ts +1 -1
  9. package/lib/cjs/BackgroundMapGeometry.d.ts.map +1 -1
  10. package/lib/cjs/BackgroundMapGeometry.js +2 -2
  11. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  12. package/lib/cjs/BingLocation.js +2 -2
  13. package/lib/cjs/BingLocation.js.map +1 -1
  14. package/lib/cjs/CheckpointConnection.js +1 -1
  15. package/lib/cjs/CheckpointConnection.js.map +1 -1
  16. package/lib/cjs/ContextRealityModelState.js +1 -1
  17. package/lib/cjs/ContextRealityModelState.js.map +1 -1
  18. package/lib/cjs/DisplayStyleState.d.ts +10 -163
  19. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  20. package/lib/cjs/DisplayStyleState.js +69 -350
  21. package/lib/cjs/DisplayStyleState.js.map +1 -1
  22. package/lib/cjs/DrawingViewState.d.ts +2 -2
  23. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  24. package/lib/cjs/DrawingViewState.js +3 -3
  25. package/lib/cjs/DrawingViewState.js.map +1 -1
  26. package/lib/cjs/ElementLocateManager.d.ts +5 -0
  27. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  28. package/lib/cjs/ElementLocateManager.js +12 -2
  29. package/lib/cjs/ElementLocateManager.js.map +1 -1
  30. package/lib/cjs/EmphasizeElements.d.ts.map +1 -1
  31. package/lib/cjs/EmphasizeElements.js +14 -4
  32. package/lib/cjs/EmphasizeElements.js.map +1 -1
  33. package/lib/cjs/EnvironmentDecorations.d.ts +39 -0
  34. package/lib/cjs/EnvironmentDecorations.d.ts.map +1 -0
  35. package/lib/cjs/EnvironmentDecorations.js +200 -0
  36. package/lib/cjs/EnvironmentDecorations.js.map +1 -0
  37. package/lib/cjs/FrontendHubAccess.d.ts +11 -7
  38. package/lib/cjs/FrontendHubAccess.d.ts.map +1 -1
  39. package/lib/cjs/FrontendHubAccess.js.map +1 -1
  40. package/lib/cjs/FrontendLoggerCategory.d.ts +2 -8
  41. package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
  42. package/lib/cjs/FrontendLoggerCategory.js +2 -8
  43. package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
  44. package/lib/cjs/HitDetail.js +7 -7
  45. package/lib/cjs/HitDetail.js.map +1 -1
  46. package/lib/cjs/IModelApp.d.ts +31 -24
  47. package/lib/cjs/IModelApp.d.ts.map +1 -1
  48. package/lib/cjs/IModelApp.js +35 -36
  49. package/lib/cjs/IModelApp.js.map +1 -1
  50. package/lib/cjs/IModelConnection.d.ts +4 -6
  51. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  52. package/lib/cjs/IModelConnection.js +6 -11
  53. package/lib/cjs/IModelConnection.js.map +1 -1
  54. package/lib/cjs/IModeljs-css.d.ts.map +1 -1
  55. package/lib/cjs/IModeljs-css.js +8 -6
  56. package/lib/cjs/IModeljs-css.js.map +1 -1
  57. package/lib/cjs/ImageUtil.d.ts +3 -3
  58. package/lib/cjs/ImageUtil.d.ts.map +1 -1
  59. package/lib/cjs/ImageUtil.js +7 -4
  60. package/lib/cjs/ImageUtil.js.map +1 -1
  61. package/lib/cjs/LocalhostIpcApp.d.ts +2 -1
  62. package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
  63. package/lib/cjs/LocalhostIpcApp.js +21 -7
  64. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  65. package/lib/cjs/Marker.d.ts +9 -2
  66. package/lib/cjs/Marker.d.ts.map +1 -1
  67. package/lib/cjs/Marker.js +33 -5
  68. package/lib/cjs/Marker.js.map +1 -1
  69. package/lib/cjs/ModelState.js +1 -1
  70. package/lib/cjs/ModelState.js.map +1 -1
  71. package/lib/cjs/NativeApp.d.ts +3 -38
  72. package/lib/cjs/NativeApp.d.ts.map +1 -1
  73. package/lib/cjs/NativeApp.js +4 -73
  74. package/lib/cjs/NativeApp.js.map +1 -1
  75. package/lib/cjs/NoRenderApp.d.ts +0 -1
  76. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  77. package/lib/cjs/NoRenderApp.js +0 -1
  78. package/lib/cjs/NoRenderApp.js.map +1 -1
  79. package/lib/cjs/NotificationManager.d.ts +3 -1
  80. package/lib/cjs/NotificationManager.d.ts.map +1 -1
  81. package/lib/cjs/NotificationManager.js +2 -0
  82. package/lib/cjs/NotificationManager.js.map +1 -1
  83. package/lib/cjs/RealityDataSource.d.ts +59 -29
  84. package/lib/cjs/RealityDataSource.d.ts.map +1 -1
  85. package/lib/cjs/RealityDataSource.js +247 -94
  86. package/lib/cjs/RealityDataSource.js.map +1 -1
  87. package/lib/cjs/RenderScheduleState.d.ts +2 -0
  88. package/lib/cjs/RenderScheduleState.d.ts.map +1 -1
  89. package/lib/cjs/RenderScheduleState.js +10 -5
  90. package/lib/cjs/RenderScheduleState.js.map +1 -1
  91. package/lib/cjs/SheetViewState.d.ts +2 -2
  92. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  93. package/lib/cjs/SheetViewState.js +8 -9
  94. package/lib/cjs/SheetViewState.js.map +1 -1
  95. package/lib/cjs/SpatialViewState.d.ts +10 -2
  96. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  97. package/lib/cjs/SpatialViewState.js +12 -2
  98. package/lib/cjs/SpatialViewState.js.map +1 -1
  99. package/lib/cjs/SubCategoriesCache.js +1 -1
  100. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  101. package/lib/cjs/Tiles.d.ts +11 -1
  102. package/lib/cjs/Tiles.d.ts.map +1 -1
  103. package/lib/cjs/Tiles.js +7 -0
  104. package/lib/cjs/Tiles.js.map +1 -1
  105. package/lib/cjs/TwoWayViewportSync.d.ts +35 -6
  106. package/lib/cjs/TwoWayViewportSync.d.ts.map +1 -1
  107. package/lib/cjs/TwoWayViewportSync.js +51 -11
  108. package/lib/cjs/TwoWayViewportSync.js.map +1 -1
  109. package/lib/cjs/UserPreferences.d.ts +72 -0
  110. package/lib/cjs/UserPreferences.d.ts.map +1 -0
  111. package/lib/cjs/{extension/ExtensionLoader.js → UserPreferences.js} +1 -5
  112. package/lib/cjs/UserPreferences.js.map +1 -0
  113. package/lib/cjs/ViewContext.d.ts +3 -1
  114. package/lib/cjs/ViewContext.d.ts.map +1 -1
  115. package/lib/cjs/ViewContext.js +4 -0
  116. package/lib/cjs/ViewContext.js.map +1 -1
  117. package/lib/cjs/ViewCreator2d.js +3 -3
  118. package/lib/cjs/ViewCreator2d.js.map +1 -1
  119. package/lib/cjs/ViewCreator3d.d.ts +1 -1
  120. package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
  121. package/lib/cjs/ViewCreator3d.js +4 -5
  122. package/lib/cjs/ViewCreator3d.js.map +1 -1
  123. package/lib/cjs/ViewManager.d.ts +6 -6
  124. package/lib/cjs/ViewManager.d.ts.map +1 -1
  125. package/lib/cjs/ViewManager.js +13 -13
  126. package/lib/cjs/ViewManager.js.map +1 -1
  127. package/lib/cjs/ViewState.d.ts +11 -5
  128. package/lib/cjs/ViewState.d.ts.map +1 -1
  129. package/lib/cjs/ViewState.js +18 -63
  130. package/lib/cjs/ViewState.js.map +1 -1
  131. package/lib/cjs/ViewingSpace.js +1 -1
  132. package/lib/cjs/ViewingSpace.js.map +1 -1
  133. package/lib/cjs/Viewport.d.ts +57 -11
  134. package/lib/cjs/Viewport.d.ts.map +1 -1
  135. package/lib/cjs/Viewport.js +55 -31
  136. package/lib/cjs/Viewport.js.map +1 -1
  137. package/lib/cjs/core-frontend.d.ts +17 -31
  138. package/lib/cjs/core-frontend.d.ts.map +1 -1
  139. package/lib/cjs/core-frontend.js +17 -31
  140. package/lib/cjs/core-frontend.js.map +1 -1
  141. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts +3 -2
  142. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  143. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js +3 -2
  144. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  145. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts +5 -1
  146. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  147. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js +20 -5
  148. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  149. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +26 -3
  150. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  151. package/lib/cjs/quantity-formatting/QuantityFormatter.js +46 -7
  152. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  153. package/lib/cjs/render/FeatureSymbology.d.ts.map +1 -1
  154. package/lib/cjs/render/FeatureSymbology.js +3 -3
  155. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  156. package/lib/cjs/render/GraphicBranch.d.ts +18 -2
  157. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  158. package/lib/cjs/render/GraphicBranch.js +9 -1
  159. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  160. package/lib/cjs/render/GraphicBuilder.d.ts +7 -1
  161. package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
  162. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  163. package/lib/cjs/render/MockRender.d.ts +3 -1
  164. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  165. package/lib/cjs/render/MockRender.js.map +1 -1
  166. package/lib/cjs/render/RenderMaterial.d.ts +61 -0
  167. package/lib/cjs/render/RenderMaterial.d.ts.map +1 -0
  168. package/lib/cjs/render/RenderMaterial.js +10 -0
  169. package/lib/cjs/render/RenderMaterial.js.map +1 -0
  170. package/lib/cjs/render/RenderMemory.d.ts +21 -15
  171. package/lib/cjs/render/RenderMemory.d.ts.map +1 -1
  172. package/lib/cjs/render/RenderMemory.js +21 -15
  173. package/lib/cjs/render/RenderMemory.js.map +1 -1
  174. package/lib/cjs/render/RenderSystem.d.ts +44 -7
  175. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  176. package/lib/cjs/render/RenderSystem.js +32 -9
  177. package/lib/cjs/render/RenderSystem.js.map +1 -1
  178. package/lib/cjs/render/RenderTarget.d.ts +10 -2
  179. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  180. package/lib/cjs/render/RenderTarget.js +2 -1
  181. package/lib/cjs/render/RenderTarget.js.map +1 -1
  182. package/lib/cjs/render/RenderTexture.d.ts +2 -17
  183. package/lib/cjs/render/RenderTexture.d.ts.map +1 -1
  184. package/lib/cjs/render/RenderTexture.js +0 -17
  185. package/lib/cjs/render/RenderTexture.js.map +1 -1
  186. package/lib/cjs/render/primitives/EdgeParams.d.ts +84 -0
  187. package/lib/cjs/render/primitives/EdgeParams.d.ts.map +1 -0
  188. package/lib/cjs/render/primitives/EdgeParams.js +220 -0
  189. package/lib/cjs/render/primitives/EdgeParams.js.map +1 -0
  190. package/lib/cjs/render/primitives/PointStringParams.d.ts +16 -0
  191. package/lib/cjs/render/primitives/PointStringParams.d.ts.map +1 -0
  192. package/lib/cjs/render/primitives/PointStringParams.js +43 -0
  193. package/lib/cjs/render/primitives/PointStringParams.js.map +1 -0
  194. package/lib/cjs/render/primitives/PolylineParams.d.ts +44 -0
  195. package/lib/cjs/render/primitives/PolylineParams.d.ts.map +1 -0
  196. package/lib/cjs/render/primitives/PolylineParams.js +205 -0
  197. package/lib/cjs/render/primitives/PolylineParams.js.map +1 -0
  198. package/lib/cjs/render/primitives/Primitives.d.ts +1 -1
  199. package/lib/cjs/render/primitives/Primitives.d.ts.map +1 -1
  200. package/lib/cjs/render/primitives/Primitives.js.map +1 -1
  201. package/lib/cjs/render/primitives/SurfaceParams.d.ts +46 -0
  202. package/lib/cjs/render/primitives/SurfaceParams.d.ts.map +1 -0
  203. package/lib/cjs/render/primitives/SurfaceParams.js +42 -0
  204. package/lib/cjs/render/primitives/SurfaceParams.js.map +1 -0
  205. package/lib/cjs/render/primitives/VertexTable.d.ts +4 -123
  206. package/lib/cjs/render/primitives/VertexTable.d.ts.map +1 -1
  207. package/lib/cjs/render/primitives/VertexTable.js +16 -352
  208. package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
  209. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts +2 -0
  210. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  211. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js +2 -1
  212. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  213. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  214. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +1 -0
  215. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  216. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +2 -2
  217. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  218. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +3 -3
  219. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  220. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.d.ts +1 -1
  221. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js +1 -1
  222. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js.map +1 -1
  223. package/lib/cjs/render/webgl/AttributeMap.js +5 -5
  224. package/lib/cjs/render/webgl/BackgroundMapDrape.js +1 -1
  225. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  226. package/lib/cjs/render/webgl/BranchUniforms.d.ts.map +1 -1
  227. package/lib/cjs/render/webgl/BranchUniforms.js +8 -5
  228. package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
  229. package/lib/cjs/render/webgl/CachedGeometry.d.ts +16 -11
  230. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  231. package/lib/cjs/render/webgl/CachedGeometry.js +26 -23
  232. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  233. package/lib/cjs/render/webgl/DrawCommand.d.ts +2 -3
  234. package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
  235. package/lib/cjs/render/webgl/DrawCommand.js +6 -4
  236. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  237. package/lib/cjs/render/webgl/EdgeGeometry.d.ts +73 -0
  238. package/lib/cjs/render/webgl/EdgeGeometry.d.ts.map +1 -0
  239. package/lib/cjs/render/webgl/EdgeGeometry.js +141 -0
  240. package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -0
  241. package/lib/cjs/render/webgl/FeatureOverrides.d.ts +2 -0
  242. package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
  243. package/lib/cjs/render/webgl/FeatureOverrides.js +11 -3
  244. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  245. package/lib/cjs/render/webgl/FloatRGBA.d.ts.map +1 -1
  246. package/lib/cjs/render/webgl/FloatRGBA.js +13 -11
  247. package/lib/cjs/render/webgl/FloatRGBA.js.map +1 -1
  248. package/lib/cjs/render/webgl/Graphic.d.ts +13 -0
  249. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  250. package/lib/cjs/render/webgl/Graphic.js +41 -3
  251. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  252. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts +51 -0
  253. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -0
  254. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js +90 -0
  255. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -0
  256. package/lib/cjs/render/webgl/InstancedGeometry.d.ts +6 -5
  257. package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
  258. package/lib/cjs/render/webgl/InstancedGeometry.js +2 -1
  259. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  260. package/lib/cjs/render/webgl/LightingUniforms.d.ts +1 -0
  261. package/lib/cjs/render/webgl/LightingUniforms.d.ts.map +1 -1
  262. package/lib/cjs/render/webgl/LightingUniforms.js +4 -1
  263. package/lib/cjs/render/webgl/LightingUniforms.js.map +1 -1
  264. package/lib/cjs/render/webgl/Material.d.ts +1 -1
  265. package/lib/cjs/render/webgl/Material.d.ts.map +1 -1
  266. package/lib/cjs/render/webgl/Material.js +2 -0
  267. package/lib/cjs/render/webgl/Material.js.map +1 -1
  268. package/lib/cjs/render/webgl/Mesh.d.ts +8 -162
  269. package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
  270. package/lib/cjs/render/webgl/Mesh.js +18 -458
  271. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  272. package/lib/cjs/render/webgl/MeshData.d.ts +38 -0
  273. package/lib/cjs/render/webgl/MeshData.d.ts.map +1 -0
  274. package/lib/cjs/render/webgl/MeshData.js +66 -0
  275. package/lib/cjs/render/webgl/MeshData.js.map +1 -0
  276. package/lib/cjs/render/webgl/MeshGeometry.d.ts +38 -0
  277. package/lib/cjs/render/webgl/MeshGeometry.d.ts.map +1 -0
  278. package/lib/cjs/render/webgl/MeshGeometry.js +59 -0
  279. package/lib/cjs/render/webgl/MeshGeometry.js.map +1 -0
  280. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  281. package/lib/cjs/render/webgl/PlanarClassifier.js +8 -4
  282. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  283. package/lib/cjs/render/webgl/PlanarGrid.d.ts +2 -3
  284. package/lib/cjs/render/webgl/PlanarGrid.d.ts.map +1 -1
  285. package/lib/cjs/render/webgl/PlanarGrid.js +3 -3
  286. package/lib/cjs/render/webgl/PlanarGrid.js.map +1 -1
  287. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  288. package/lib/cjs/render/webgl/PlanarTextureProjection.js +1 -0
  289. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  290. package/lib/cjs/render/webgl/PointCloud.d.ts +2 -2
  291. package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
  292. package/lib/cjs/render/webgl/PointCloud.js +2 -2
  293. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  294. package/lib/cjs/render/webgl/PointString.d.ts +3 -3
  295. package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
  296. package/lib/cjs/render/webgl/PointString.js +1 -1
  297. package/lib/cjs/render/webgl/PointString.js.map +1 -1
  298. package/lib/cjs/render/webgl/Polyline.d.ts +3 -3
  299. package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
  300. package/lib/cjs/render/webgl/Polyline.js +6 -6
  301. package/lib/cjs/render/webgl/Polyline.js.map +1 -1
  302. package/lib/cjs/render/webgl/Primitive.d.ts +2 -2
  303. package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
  304. package/lib/cjs/render/webgl/Primitive.js +5 -5
  305. package/lib/cjs/render/webgl/Primitive.js.map +1 -1
  306. package/lib/cjs/render/webgl/RealityMesh.d.ts +2 -2
  307. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  308. package/lib/cjs/render/webgl/RealityMesh.js +9 -9
  309. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  310. package/lib/cjs/render/webgl/RenderCommands.d.ts +6 -2
  311. package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
  312. package/lib/cjs/render/webgl/RenderCommands.js +81 -48
  313. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  314. package/lib/cjs/render/webgl/RenderFlags.d.ts +48 -1
  315. package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
  316. package/lib/cjs/render/webgl/RenderFlags.js +64 -2
  317. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  318. package/lib/cjs/render/webgl/SceneCompositor.js +10 -9
  319. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  320. package/lib/cjs/render/webgl/ScreenSpaceEffect.js +1 -1
  321. package/lib/cjs/render/webgl/ShaderBuilder.d.ts +23 -20
  322. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  323. package/lib/cjs/render/webgl/ShaderBuilder.js +38 -32
  324. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  325. package/lib/cjs/render/webgl/ShaderProgram.d.ts +1 -1
  326. package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
  327. package/lib/cjs/render/webgl/ShaderProgram.js +4 -4
  328. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  329. package/lib/cjs/render/webgl/SolarShadowMap.d.ts.map +1 -1
  330. package/lib/cjs/render/webgl/SolarShadowMap.js +4 -3
  331. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  332. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts +54 -0
  333. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -0
  334. package/lib/cjs/render/webgl/SurfaceGeometry.js +248 -0
  335. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -0
  336. package/lib/cjs/render/webgl/System.d.ts +13 -10
  337. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  338. package/lib/cjs/render/webgl/System.js +75 -21
  339. package/lib/cjs/render/webgl/System.js.map +1 -1
  340. package/lib/cjs/render/webgl/Target.d.ts +13 -1
  341. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  342. package/lib/cjs/render/webgl/Target.js +88 -2
  343. package/lib/cjs/render/webgl/Target.js.map +1 -1
  344. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  345. package/lib/cjs/render/webgl/Technique.js +112 -119
  346. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  347. package/lib/cjs/render/webgl/TechniqueFlags.d.ts +7 -1
  348. package/lib/cjs/render/webgl/TechniqueFlags.d.ts.map +1 -1
  349. package/lib/cjs/render/webgl/TechniqueFlags.js +10 -1
  350. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  351. package/lib/cjs/render/webgl/TechniqueId.d.ts +29 -28
  352. package/lib/cjs/render/webgl/TechniqueId.d.ts.map +1 -1
  353. package/lib/cjs/render/webgl/TechniqueId.js +7 -7
  354. package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
  355. package/lib/cjs/render/webgl/Texture.d.ts +15 -12
  356. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  357. package/lib/cjs/render/webgl/Texture.js +26 -23
  358. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  359. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  360. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +83 -18
  361. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  362. package/lib/cjs/render/webgl/glsl/Animation.js +1 -1
  363. package/lib/cjs/render/webgl/glsl/Blur.js +1 -1
  364. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js +2 -2
  365. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js +2 -2
  366. package/lib/cjs/render/webgl/glsl/Color.js +1 -1
  367. package/lib/cjs/render/webgl/glsl/Combine3Textures.js +1 -1
  368. package/lib/cjs/render/webgl/glsl/CombineTextures.js +1 -1
  369. package/lib/cjs/render/webgl/glsl/Composite.js +1 -1
  370. package/lib/cjs/render/webgl/glsl/CopyColor.d.ts.map +1 -1
  371. package/lib/cjs/render/webgl/glsl/CopyColor.js +17 -2
  372. package/lib/cjs/render/webgl/glsl/CopyColor.js.map +1 -1
  373. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js +2 -2
  374. package/lib/cjs/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
  375. package/lib/cjs/render/webgl/glsl/CopyStencil.js +10 -13
  376. package/lib/cjs/render/webgl/glsl/CopyStencil.js.map +1 -1
  377. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js +2 -2
  378. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  379. package/lib/cjs/render/webgl/glsl/Edge.d.ts +2 -1
  380. package/lib/cjs/render/webgl/glsl/Edge.d.ts.map +1 -1
  381. package/lib/cjs/render/webgl/glsl/Edge.js +132 -14
  382. package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
  383. package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  384. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +43 -21
  385. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  386. package/lib/cjs/render/webgl/glsl/Fragment.d.ts.map +1 -1
  387. package/lib/cjs/render/webgl/glsl/Fragment.js +19 -11
  388. package/lib/cjs/render/webgl/glsl/Fragment.js.map +1 -1
  389. package/lib/cjs/render/webgl/glsl/Lighting.d.ts.map +1 -1
  390. package/lib/cjs/render/webgl/glsl/Lighting.js +16 -2
  391. package/lib/cjs/render/webgl/glsl/Lighting.js.map +1 -1
  392. package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
  393. package/lib/cjs/render/webgl/glsl/LookupTable.d.ts +4 -2
  394. package/lib/cjs/render/webgl/glsl/LookupTable.d.ts.map +1 -1
  395. package/lib/cjs/render/webgl/glsl/LookupTable.js +7 -3
  396. package/lib/cjs/render/webgl/glsl/LookupTable.js.map +1 -1
  397. package/lib/cjs/render/webgl/glsl/PlanarClassification.d.ts.map +1 -1
  398. package/lib/cjs/render/webgl/glsl/PlanarClassification.js +13 -4
  399. package/lib/cjs/render/webgl/glsl/PlanarClassification.js.map +1 -1
  400. package/lib/cjs/render/webgl/glsl/PlanarGrid.js +2 -2
  401. package/lib/cjs/render/webgl/glsl/PlanarGrid.js.map +1 -1
  402. package/lib/cjs/render/webgl/glsl/PointCloud.js +2 -2
  403. package/lib/cjs/render/webgl/glsl/PointCloud.js.map +1 -1
  404. package/lib/cjs/render/webgl/glsl/PointString.js +1 -1
  405. package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
  406. package/lib/cjs/render/webgl/glsl/Polyline.js +1 -1
  407. package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
  408. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  409. package/lib/cjs/render/webgl/glsl/RealityMesh.js +9 -6
  410. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  411. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js +2 -2
  412. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  413. package/lib/cjs/render/webgl/glsl/SkyBox.js +2 -2
  414. package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
  415. package/lib/cjs/render/webgl/glsl/SkySphere.js +2 -2
  416. package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
  417. package/lib/cjs/render/webgl/glsl/Surface.js +41 -16
  418. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  419. package/lib/cjs/render/webgl/glsl/Translucency.js +2 -2
  420. package/lib/cjs/render/webgl/glsl/Vertex.js +2 -2
  421. package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
  422. package/lib/cjs/render/webgl/glsl/ViewportQuad.js +1 -1
  423. package/lib/cjs/render/webgl/glsl/ViewportQuad.js.map +1 -1
  424. package/lib/cjs/render/webgl/glsl/Wiremesh.d.ts +9 -0
  425. package/lib/cjs/render/webgl/glsl/Wiremesh.d.ts.map +1 -0
  426. package/lib/cjs/render/webgl/glsl/Wiremesh.js +40 -0
  427. package/lib/cjs/render/webgl/glsl/Wiremesh.js.map +1 -0
  428. package/lib/cjs/render-primitives.d.ts +5 -1
  429. package/lib/cjs/render-primitives.d.ts.map +1 -1
  430. package/lib/cjs/render-primitives.js +5 -1
  431. package/lib/cjs/render-primitives.js.map +1 -1
  432. package/lib/cjs/request/Request.d.ts +167 -0
  433. package/lib/cjs/request/Request.d.ts.map +1 -0
  434. package/lib/cjs/request/Request.js +315 -0
  435. package/lib/cjs/request/Request.js.map +1 -0
  436. package/lib/cjs/tile/B3dmReader.d.ts +2 -1
  437. package/lib/cjs/tile/B3dmReader.d.ts.map +1 -1
  438. package/lib/cjs/tile/B3dmReader.js +11 -7
  439. package/lib/cjs/tile/B3dmReader.js.map +1 -1
  440. package/lib/cjs/tile/CesiumAssetProvider.d.ts +14 -0
  441. package/lib/cjs/tile/CesiumAssetProvider.d.ts.map +1 -0
  442. package/lib/cjs/tile/CesiumAssetProvider.js +35 -0
  443. package/lib/cjs/tile/CesiumAssetProvider.js.map +1 -0
  444. package/lib/cjs/tile/ContextShareProvider.d.ts +22 -0
  445. package/lib/cjs/tile/ContextShareProvider.d.ts.map +1 -0
  446. package/lib/cjs/tile/ContextShareProvider.js +129 -0
  447. package/lib/cjs/tile/ContextShareProvider.js.map +1 -0
  448. package/lib/cjs/tile/DynamicIModelTile.js +9 -3
  449. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  450. package/lib/cjs/tile/GltfReader.d.ts +594 -55
  451. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  452. package/lib/cjs/tile/GltfReader.js +703 -264
  453. package/lib/cjs/tile/GltfReader.js.map +1 -1
  454. package/lib/cjs/tile/I3dmReader.d.ts +2 -1
  455. package/lib/cjs/tile/I3dmReader.d.ts.map +1 -1
  456. package/lib/cjs/tile/I3dmReader.js +10 -6
  457. package/lib/cjs/tile/I3dmReader.js.map +1 -1
  458. package/lib/cjs/tile/IModelTile.d.ts.map +1 -1
  459. package/lib/cjs/tile/IModelTile.js +14 -7
  460. package/lib/cjs/tile/IModelTile.js.map +1 -1
  461. package/lib/cjs/tile/IModelTileTree.d.ts +8 -0
  462. package/lib/cjs/tile/IModelTileTree.d.ts.map +1 -1
  463. package/lib/cjs/tile/IModelTileTree.js +36 -1
  464. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  465. package/lib/cjs/tile/ImdlReader.d.ts +365 -10
  466. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  467. package/lib/cjs/tile/ImdlReader.js +202 -68
  468. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  469. package/lib/cjs/tile/OrbitGtTileTree.d.ts +0 -9
  470. package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +1 -1
  471. package/lib/cjs/tile/OrbitGtTileTree.js +10 -20
  472. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  473. package/lib/cjs/tile/PrimaryTileTree.d.ts +14 -5
  474. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  475. package/lib/cjs/tile/PrimaryTileTree.js +69 -14
  476. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  477. package/lib/cjs/tile/RealityModelTileTree.d.ts +2 -41
  478. package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
  479. package/lib/cjs/tile/RealityModelTileTree.js +57 -217
  480. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  481. package/lib/cjs/tile/RealityTileLoader.d.ts +1 -0
  482. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  483. package/lib/cjs/tile/RealityTileLoader.js +4 -3
  484. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  485. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  486. package/lib/cjs/tile/Tile.js +5 -1
  487. package/lib/cjs/tile/Tile.js.map +1 -1
  488. package/lib/cjs/tile/TileAdmin.d.ts +37 -4
  489. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  490. package/lib/cjs/tile/TileAdmin.js +18 -12
  491. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  492. package/lib/cjs/tile/TileDrawArgs.d.ts +11 -0
  493. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  494. package/lib/cjs/tile/TileDrawArgs.js +6 -1
  495. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  496. package/lib/cjs/tile/TileTreeReference.d.ts +2 -0
  497. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  498. package/lib/cjs/tile/TileTreeReference.js +5 -0
  499. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  500. package/lib/cjs/tile/internal.d.ts +4 -1
  501. package/lib/cjs/tile/internal.d.ts.map +1 -1
  502. package/lib/cjs/tile/internal.js +4 -1
  503. package/lib/cjs/tile/internal.js.map +1 -1
  504. package/lib/cjs/tile/map/ArcGISTileMap.d.ts +22 -0
  505. package/lib/cjs/tile/map/ArcGISTileMap.d.ts.map +1 -0
  506. package/lib/cjs/tile/map/ArcGISTileMap.js +177 -0
  507. package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -0
  508. package/lib/cjs/tile/map/ArcGisTokenGenerator.js +3 -3
  509. package/lib/cjs/tile/map/ArcGisTokenGenerator.js.map +1 -1
  510. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +1 -1
  511. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  512. package/lib/cjs/tile/map/ArcGisUtilities.js +18 -10
  513. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  514. package/lib/cjs/tile/map/BingElevation.js +4 -4
  515. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  516. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  517. package/lib/cjs/tile/map/CesiumTerrainProvider.js +27 -15
  518. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  519. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -2
  520. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  521. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +23 -44
  522. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  523. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +3 -3
  524. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  525. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +8 -0
  526. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  527. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +51 -10
  528. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  529. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +6 -1
  530. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  531. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +63 -21
  532. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  533. package/lib/cjs/tile/map/ImageryTileTree.d.ts +4 -4
  534. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  535. package/lib/cjs/tile/map/ImageryTileTree.js +20 -24
  536. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  537. package/lib/cjs/tile/map/MapCartoRectangle.js +1 -1
  538. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  539. package/lib/cjs/tile/map/MapLayerAuthentication.d.ts +20 -0
  540. package/lib/cjs/tile/map/MapLayerAuthentication.d.ts.map +1 -0
  541. package/lib/cjs/tile/map/MapLayerAuthentication.js +18 -0
  542. package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -0
  543. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +6 -3
  544. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  545. package/lib/cjs/tile/map/MapLayerFormatRegistry.js +3 -1
  546. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  547. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts +2 -2
  548. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  549. package/lib/cjs/tile/map/MapLayerImageryFormats.js +21 -8
  550. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  551. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +18 -6
  552. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  553. package/lib/cjs/tile/map/MapLayerImageryProvider.js +47 -14
  554. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  555. package/lib/cjs/tile/map/MapLayerSources.d.ts +3 -11
  556. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  557. package/lib/cjs/tile/map/MapLayerSources.js +5 -34
  558. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  559. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  560. package/lib/cjs/tile/map/MapTile.js +4 -3
  561. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  562. package/lib/cjs/tile/map/MapTileLoader.js +2 -2
  563. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  564. package/lib/cjs/tile/map/MapTileTree.d.ts +1 -1
  565. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  566. package/lib/cjs/tile/map/MapTileTree.js +30 -21
  567. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  568. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts +3 -3
  569. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  570. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +4 -6
  571. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  572. package/lib/cjs/tile/map/MapTilingScheme.d.ts +7 -2
  573. package/lib/cjs/tile/map/MapTilingScheme.d.ts.map +1 -1
  574. package/lib/cjs/tile/map/MapTilingScheme.js +21 -8
  575. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  576. package/lib/cjs/tile/map/QuadId.d.ts +1 -0
  577. package/lib/cjs/tile/map/QuadId.d.ts.map +1 -1
  578. package/lib/cjs/tile/map/QuadId.js +2 -1
  579. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  580. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +1 -1
  581. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  582. package/lib/cjs/tile/map/WmsCapabilities.d.ts +8 -1
  583. package/lib/cjs/tile/map/WmsCapabilities.d.ts.map +1 -1
  584. package/lib/cjs/tile/map/WmsCapabilities.js +39 -5
  585. package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
  586. package/lib/cjs/tile/map/WmtsCapabilities.d.ts +11 -1
  587. package/lib/cjs/tile/map/WmtsCapabilities.d.ts.map +1 -1
  588. package/lib/cjs/tile/map/WmtsCapabilities.js +23 -9
  589. package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
  590. package/lib/cjs/tools/EditManipulator.d.ts.map +1 -1
  591. package/lib/cjs/tools/EditManipulator.js +1 -1
  592. package/lib/cjs/tools/EditManipulator.js.map +1 -1
  593. package/lib/cjs/tools/ElementSetTool.js +2 -2
  594. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  595. package/lib/cjs/tools/PrimitiveTool.d.ts +4 -4
  596. package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
  597. package/lib/cjs/tools/PrimitiveTool.js +2 -2
  598. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  599. package/lib/cjs/tools/Tool.d.ts +29 -1
  600. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  601. package/lib/cjs/tools/Tool.js +66 -0
  602. package/lib/cjs/tools/Tool.js.map +1 -1
  603. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  604. package/lib/cjs/tools/ToolAdmin.js +20 -10
  605. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  606. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  607. package/lib/cjs/tools/ViewTool.js +3 -11
  608. package/lib/cjs/tools/ViewTool.js.map +1 -1
  609. package/lib/cjs/webgl.d.ts +5 -0
  610. package/lib/cjs/webgl.d.ts.map +1 -1
  611. package/lib/cjs/webgl.js +5 -0
  612. package/lib/cjs/webgl.js.map +1 -1
  613. package/lib/esm/AccuSnap.js +3 -3
  614. package/lib/esm/AccuSnap.js.map +1 -1
  615. package/lib/esm/ApproximateTerrainHeights.d.ts.map +1 -1
  616. package/lib/esm/ApproximateTerrainHeights.js +10 -5
  617. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  618. package/lib/esm/BackgroundMapGeometry.d.ts +1 -1
  619. package/lib/esm/BackgroundMapGeometry.d.ts.map +1 -1
  620. package/lib/esm/BackgroundMapGeometry.js +2 -2
  621. package/lib/esm/BackgroundMapGeometry.js.map +1 -1
  622. package/lib/esm/BingLocation.js +1 -1
  623. package/lib/esm/BingLocation.js.map +1 -1
  624. package/lib/esm/CheckpointConnection.js +1 -1
  625. package/lib/esm/CheckpointConnection.js.map +1 -1
  626. package/lib/esm/ContextRealityModelState.js +1 -1
  627. package/lib/esm/ContextRealityModelState.js.map +1 -1
  628. package/lib/esm/DisplayStyleState.d.ts +10 -163
  629. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  630. package/lib/esm/DisplayStyleState.js +70 -346
  631. package/lib/esm/DisplayStyleState.js.map +1 -1
  632. package/lib/esm/DrawingViewState.d.ts +2 -2
  633. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  634. package/lib/esm/DrawingViewState.js +3 -3
  635. package/lib/esm/DrawingViewState.js.map +1 -1
  636. package/lib/esm/ElementLocateManager.d.ts +5 -0
  637. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  638. package/lib/esm/ElementLocateManager.js +12 -2
  639. package/lib/esm/ElementLocateManager.js.map +1 -1
  640. package/lib/esm/EmphasizeElements.d.ts.map +1 -1
  641. package/lib/esm/EmphasizeElements.js +14 -4
  642. package/lib/esm/EmphasizeElements.js.map +1 -1
  643. package/lib/esm/EnvironmentDecorations.d.ts +39 -0
  644. package/lib/esm/EnvironmentDecorations.d.ts.map +1 -0
  645. package/lib/esm/EnvironmentDecorations.js +196 -0
  646. package/lib/esm/EnvironmentDecorations.js.map +1 -0
  647. package/lib/esm/FrontendHubAccess.d.ts +11 -7
  648. package/lib/esm/FrontendHubAccess.d.ts.map +1 -1
  649. package/lib/esm/FrontendHubAccess.js.map +1 -1
  650. package/lib/esm/FrontendLoggerCategory.d.ts +2 -8
  651. package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
  652. package/lib/esm/FrontendLoggerCategory.js +2 -8
  653. package/lib/esm/FrontendLoggerCategory.js.map +1 -1
  654. package/lib/esm/HitDetail.js +7 -7
  655. package/lib/esm/HitDetail.js.map +1 -1
  656. package/lib/esm/IModelApp.d.ts +31 -24
  657. package/lib/esm/IModelApp.d.ts.map +1 -1
  658. package/lib/esm/IModelApp.js +34 -35
  659. package/lib/esm/IModelApp.js.map +1 -1
  660. package/lib/esm/IModelConnection.d.ts +4 -6
  661. package/lib/esm/IModelConnection.d.ts.map +1 -1
  662. package/lib/esm/IModelConnection.js +6 -11
  663. package/lib/esm/IModelConnection.js.map +1 -1
  664. package/lib/esm/IModeljs-css.d.ts.map +1 -1
  665. package/lib/esm/IModeljs-css.js +8 -6
  666. package/lib/esm/IModeljs-css.js.map +1 -1
  667. package/lib/esm/ImageUtil.d.ts +3 -3
  668. package/lib/esm/ImageUtil.d.ts.map +1 -1
  669. package/lib/esm/ImageUtil.js +7 -4
  670. package/lib/esm/ImageUtil.js.map +1 -1
  671. package/lib/esm/LocalhostIpcApp.d.ts +2 -1
  672. package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
  673. package/lib/esm/LocalhostIpcApp.js +22 -8
  674. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  675. package/lib/esm/Marker.d.ts +9 -2
  676. package/lib/esm/Marker.d.ts.map +1 -1
  677. package/lib/esm/Marker.js +34 -6
  678. package/lib/esm/Marker.js.map +1 -1
  679. package/lib/esm/ModelState.js +1 -1
  680. package/lib/esm/ModelState.js.map +1 -1
  681. package/lib/esm/NativeApp.d.ts +3 -38
  682. package/lib/esm/NativeApp.d.ts.map +1 -1
  683. package/lib/esm/NativeApp.js +1 -69
  684. package/lib/esm/NativeApp.js.map +1 -1
  685. package/lib/esm/NoRenderApp.d.ts +0 -1
  686. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  687. package/lib/esm/NoRenderApp.js +0 -1
  688. package/lib/esm/NoRenderApp.js.map +1 -1
  689. package/lib/esm/NotificationManager.d.ts +3 -1
  690. package/lib/esm/NotificationManager.d.ts.map +1 -1
  691. package/lib/esm/NotificationManager.js +2 -0
  692. package/lib/esm/NotificationManager.js.map +1 -1
  693. package/lib/esm/RealityDataSource.d.ts +59 -29
  694. package/lib/esm/RealityDataSource.d.ts.map +1 -1
  695. package/lib/esm/RealityDataSource.js +247 -92
  696. package/lib/esm/RealityDataSource.js.map +1 -1
  697. package/lib/esm/RenderScheduleState.d.ts +2 -0
  698. package/lib/esm/RenderScheduleState.d.ts.map +1 -1
  699. package/lib/esm/RenderScheduleState.js +8 -4
  700. package/lib/esm/RenderScheduleState.js.map +1 -1
  701. package/lib/esm/SheetViewState.d.ts +2 -2
  702. package/lib/esm/SheetViewState.d.ts.map +1 -1
  703. package/lib/esm/SheetViewState.js +8 -9
  704. package/lib/esm/SheetViewState.js.map +1 -1
  705. package/lib/esm/SpatialViewState.d.ts +10 -2
  706. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  707. package/lib/esm/SpatialViewState.js +12 -2
  708. package/lib/esm/SpatialViewState.js.map +1 -1
  709. package/lib/esm/SubCategoriesCache.js +1 -1
  710. package/lib/esm/SubCategoriesCache.js.map +1 -1
  711. package/lib/esm/Tiles.d.ts +11 -1
  712. package/lib/esm/Tiles.d.ts.map +1 -1
  713. package/lib/esm/Tiles.js +7 -0
  714. package/lib/esm/Tiles.js.map +1 -1
  715. package/lib/esm/TwoWayViewportSync.d.ts +35 -6
  716. package/lib/esm/TwoWayViewportSync.d.ts.map +1 -1
  717. package/lib/esm/TwoWayViewportSync.js +49 -10
  718. package/lib/esm/TwoWayViewportSync.js.map +1 -1
  719. package/lib/esm/UserPreferences.d.ts +72 -0
  720. package/lib/esm/UserPreferences.d.ts.map +1 -0
  721. package/lib/esm/{extension/ExtensionLoader.js → UserPreferences.js} +1 -5
  722. package/lib/esm/UserPreferences.js.map +1 -0
  723. package/lib/esm/ViewContext.d.ts +3 -1
  724. package/lib/esm/ViewContext.d.ts.map +1 -1
  725. package/lib/esm/ViewContext.js +4 -0
  726. package/lib/esm/ViewContext.js.map +1 -1
  727. package/lib/esm/ViewCreator2d.js +3 -3
  728. package/lib/esm/ViewCreator2d.js.map +1 -1
  729. package/lib/esm/ViewCreator3d.d.ts +1 -1
  730. package/lib/esm/ViewCreator3d.d.ts.map +1 -1
  731. package/lib/esm/ViewCreator3d.js +5 -6
  732. package/lib/esm/ViewCreator3d.js.map +1 -1
  733. package/lib/esm/ViewManager.d.ts +6 -6
  734. package/lib/esm/ViewManager.d.ts.map +1 -1
  735. package/lib/esm/ViewManager.js +13 -13
  736. package/lib/esm/ViewManager.js.map +1 -1
  737. package/lib/esm/ViewState.d.ts +11 -5
  738. package/lib/esm/ViewState.d.ts.map +1 -1
  739. package/lib/esm/ViewState.js +21 -66
  740. package/lib/esm/ViewState.js.map +1 -1
  741. package/lib/esm/ViewingSpace.js +1 -1
  742. package/lib/esm/ViewingSpace.js.map +1 -1
  743. package/lib/esm/Viewport.d.ts +57 -11
  744. package/lib/esm/Viewport.d.ts.map +1 -1
  745. package/lib/esm/Viewport.js +56 -32
  746. package/lib/esm/Viewport.js.map +1 -1
  747. package/lib/esm/core-frontend.d.ts +17 -31
  748. package/lib/esm/core-frontend.d.ts.map +1 -1
  749. package/lib/esm/core-frontend.js +17 -31
  750. package/lib/esm/core-frontend.js.map +1 -1
  751. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts +3 -2
  752. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  753. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js +3 -2
  754. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  755. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts +5 -1
  756. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  757. package/lib/esm/quantity-formatting/BasicUnitsProvider.js +18 -4
  758. package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  759. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +26 -3
  760. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  761. package/lib/esm/quantity-formatting/QuantityFormatter.js +45 -7
  762. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  763. package/lib/esm/render/FeatureSymbology.d.ts.map +1 -1
  764. package/lib/esm/render/FeatureSymbology.js +3 -3
  765. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  766. package/lib/esm/render/GraphicBranch.d.ts +18 -2
  767. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  768. package/lib/esm/render/GraphicBranch.js +8 -0
  769. package/lib/esm/render/GraphicBranch.js.map +1 -1
  770. package/lib/esm/render/GraphicBuilder.d.ts +7 -1
  771. package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
  772. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  773. package/lib/esm/render/MockRender.d.ts +3 -1
  774. package/lib/esm/render/MockRender.d.ts.map +1 -1
  775. package/lib/esm/render/MockRender.js.map +1 -1
  776. package/lib/esm/render/RenderMaterial.d.ts +61 -0
  777. package/lib/esm/render/RenderMaterial.d.ts.map +1 -0
  778. package/lib/esm/render/RenderMaterial.js +9 -0
  779. package/lib/esm/render/RenderMaterial.js.map +1 -0
  780. package/lib/esm/render/RenderMemory.d.ts +21 -15
  781. package/lib/esm/render/RenderMemory.d.ts.map +1 -1
  782. package/lib/esm/render/RenderMemory.js +21 -15
  783. package/lib/esm/render/RenderMemory.js.map +1 -1
  784. package/lib/esm/render/RenderSystem.d.ts +44 -7
  785. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  786. package/lib/esm/render/RenderSystem.js +32 -9
  787. package/lib/esm/render/RenderSystem.js.map +1 -1
  788. package/lib/esm/render/RenderTarget.d.ts +10 -2
  789. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  790. package/lib/esm/render/RenderTarget.js +2 -1
  791. package/lib/esm/render/RenderTarget.js.map +1 -1
  792. package/lib/esm/render/RenderTexture.d.ts +2 -17
  793. package/lib/esm/render/RenderTexture.d.ts.map +1 -1
  794. package/lib/esm/render/RenderTexture.js +1 -16
  795. package/lib/esm/render/RenderTexture.js.map +1 -1
  796. package/lib/esm/render/primitives/EdgeParams.d.ts +84 -0
  797. package/lib/esm/render/primitives/EdgeParams.d.ts.map +1 -0
  798. package/lib/esm/render/primitives/EdgeParams.js +217 -0
  799. package/lib/esm/render/primitives/EdgeParams.js.map +1 -0
  800. package/lib/esm/render/primitives/PointStringParams.d.ts +16 -0
  801. package/lib/esm/render/primitives/PointStringParams.d.ts.map +1 -0
  802. package/lib/esm/render/primitives/PointStringParams.js +39 -0
  803. package/lib/esm/render/primitives/PointStringParams.js.map +1 -0
  804. package/lib/esm/render/primitives/PolylineParams.d.ts +44 -0
  805. package/lib/esm/render/primitives/PolylineParams.d.ts.map +1 -0
  806. package/lib/esm/render/primitives/PolylineParams.js +199 -0
  807. package/lib/esm/render/primitives/PolylineParams.js.map +1 -0
  808. package/lib/esm/render/primitives/Primitives.d.ts +1 -1
  809. package/lib/esm/render/primitives/Primitives.d.ts.map +1 -1
  810. package/lib/esm/render/primitives/Primitives.js.map +1 -1
  811. package/lib/esm/render/primitives/SurfaceParams.d.ts +46 -0
  812. package/lib/esm/render/primitives/SurfaceParams.d.ts.map +1 -0
  813. package/lib/esm/render/primitives/SurfaceParams.js +37 -0
  814. package/lib/esm/render/primitives/SurfaceParams.js.map +1 -0
  815. package/lib/esm/render/primitives/VertexTable.d.ts +4 -123
  816. package/lib/esm/render/primitives/VertexTable.d.ts.map +1 -1
  817. package/lib/esm/render/primitives/VertexTable.js +11 -342
  818. package/lib/esm/render/primitives/VertexTable.js.map +1 -1
  819. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts +2 -0
  820. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  821. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js +2 -1
  822. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  823. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  824. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +1 -0
  825. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  826. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +2 -2
  827. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  828. package/lib/esm/render/primitives/mesh/MeshPrimitives.js +3 -3
  829. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  830. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.d.ts +1 -1
  831. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js +1 -1
  832. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js.map +1 -1
  833. package/lib/esm/render/webgl/AttributeMap.js +5 -5
  834. package/lib/esm/render/webgl/BackgroundMapDrape.js +2 -2
  835. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  836. package/lib/esm/render/webgl/BranchUniforms.d.ts.map +1 -1
  837. package/lib/esm/render/webgl/BranchUniforms.js +8 -5
  838. package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
  839. package/lib/esm/render/webgl/CachedGeometry.d.ts +16 -11
  840. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  841. package/lib/esm/render/webgl/CachedGeometry.js +26 -23
  842. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  843. package/lib/esm/render/webgl/DrawCommand.d.ts +2 -3
  844. package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
  845. package/lib/esm/render/webgl/DrawCommand.js +6 -4
  846. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  847. package/lib/esm/render/webgl/EdgeGeometry.d.ts +73 -0
  848. package/lib/esm/render/webgl/EdgeGeometry.d.ts.map +1 -0
  849. package/lib/esm/render/webgl/EdgeGeometry.js +135 -0
  850. package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -0
  851. package/lib/esm/render/webgl/FeatureOverrides.d.ts +2 -0
  852. package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
  853. package/lib/esm/render/webgl/FeatureOverrides.js +11 -3
  854. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  855. package/lib/esm/render/webgl/FloatRGBA.d.ts.map +1 -1
  856. package/lib/esm/render/webgl/FloatRGBA.js +13 -11
  857. package/lib/esm/render/webgl/FloatRGBA.js.map +1 -1
  858. package/lib/esm/render/webgl/Graphic.d.ts +13 -0
  859. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  860. package/lib/esm/render/webgl/Graphic.js +39 -2
  861. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  862. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts +51 -0
  863. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -0
  864. package/lib/esm/render/webgl/IndexedEdgeGeometry.js +85 -0
  865. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -0
  866. package/lib/esm/render/webgl/InstancedGeometry.d.ts +6 -5
  867. package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
  868. package/lib/esm/render/webgl/InstancedGeometry.js +2 -1
  869. package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
  870. package/lib/esm/render/webgl/LightingUniforms.d.ts +1 -0
  871. package/lib/esm/render/webgl/LightingUniforms.d.ts.map +1 -1
  872. package/lib/esm/render/webgl/LightingUniforms.js +4 -1
  873. package/lib/esm/render/webgl/LightingUniforms.js.map +1 -1
  874. package/lib/esm/render/webgl/Material.d.ts +1 -1
  875. package/lib/esm/render/webgl/Material.d.ts.map +1 -1
  876. package/lib/esm/render/webgl/Material.js +2 -0
  877. package/lib/esm/render/webgl/Material.js.map +1 -1
  878. package/lib/esm/render/webgl/Mesh.d.ts +8 -162
  879. package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
  880. package/lib/esm/render/webgl/Mesh.js +12 -445
  881. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  882. package/lib/esm/render/webgl/MeshData.d.ts +38 -0
  883. package/lib/esm/render/webgl/MeshData.d.ts.map +1 -0
  884. package/lib/esm/render/webgl/MeshData.js +62 -0
  885. package/lib/esm/render/webgl/MeshData.js.map +1 -0
  886. package/lib/esm/render/webgl/MeshGeometry.d.ts +38 -0
  887. package/lib/esm/render/webgl/MeshGeometry.d.ts.map +1 -0
  888. package/lib/esm/render/webgl/MeshGeometry.js +55 -0
  889. package/lib/esm/render/webgl/MeshGeometry.js.map +1 -0
  890. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  891. package/lib/esm/render/webgl/PlanarClassifier.js +9 -5
  892. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  893. package/lib/esm/render/webgl/PlanarGrid.d.ts +2 -3
  894. package/lib/esm/render/webgl/PlanarGrid.d.ts.map +1 -1
  895. package/lib/esm/render/webgl/PlanarGrid.js +3 -3
  896. package/lib/esm/render/webgl/PlanarGrid.js.map +1 -1
  897. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  898. package/lib/esm/render/webgl/PlanarTextureProjection.js +1 -0
  899. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  900. package/lib/esm/render/webgl/PointCloud.d.ts +2 -2
  901. package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
  902. package/lib/esm/render/webgl/PointCloud.js +2 -2
  903. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  904. package/lib/esm/render/webgl/PointString.d.ts +3 -3
  905. package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
  906. package/lib/esm/render/webgl/PointString.js +1 -1
  907. package/lib/esm/render/webgl/PointString.js.map +1 -1
  908. package/lib/esm/render/webgl/Polyline.d.ts +3 -3
  909. package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
  910. package/lib/esm/render/webgl/Polyline.js +6 -6
  911. package/lib/esm/render/webgl/Polyline.js.map +1 -1
  912. package/lib/esm/render/webgl/Primitive.d.ts +2 -2
  913. package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
  914. package/lib/esm/render/webgl/Primitive.js +5 -5
  915. package/lib/esm/render/webgl/Primitive.js.map +1 -1
  916. package/lib/esm/render/webgl/RealityMesh.d.ts +2 -2
  917. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  918. package/lib/esm/render/webgl/RealityMesh.js +9 -9
  919. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  920. package/lib/esm/render/webgl/RenderCommands.d.ts +6 -2
  921. package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
  922. package/lib/esm/render/webgl/RenderCommands.js +78 -45
  923. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  924. package/lib/esm/render/webgl/RenderFlags.d.ts +48 -1
  925. package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
  926. package/lib/esm/render/webgl/RenderFlags.js +63 -1
  927. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  928. package/lib/esm/render/webgl/SceneCompositor.js +10 -9
  929. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  930. package/lib/esm/render/webgl/ScreenSpaceEffect.js +1 -1
  931. package/lib/esm/render/webgl/ShaderBuilder.d.ts +23 -20
  932. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  933. package/lib/esm/render/webgl/ShaderBuilder.js +38 -32
  934. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  935. package/lib/esm/render/webgl/ShaderProgram.d.ts +1 -1
  936. package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
  937. package/lib/esm/render/webgl/ShaderProgram.js +4 -4
  938. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  939. package/lib/esm/render/webgl/SolarShadowMap.d.ts.map +1 -1
  940. package/lib/esm/render/webgl/SolarShadowMap.js +5 -4
  941. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  942. package/lib/esm/render/webgl/SurfaceGeometry.d.ts +54 -0
  943. package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -0
  944. package/lib/esm/render/webgl/SurfaceGeometry.js +243 -0
  945. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -0
  946. package/lib/esm/render/webgl/System.d.ts +13 -10
  947. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  948. package/lib/esm/render/webgl/System.js +77 -23
  949. package/lib/esm/render/webgl/System.js.map +1 -1
  950. package/lib/esm/render/webgl/Target.d.ts +13 -1
  951. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  952. package/lib/esm/render/webgl/Target.js +88 -2
  953. package/lib/esm/render/webgl/Target.js.map +1 -1
  954. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  955. package/lib/esm/render/webgl/Technique.js +112 -119
  956. package/lib/esm/render/webgl/Technique.js.map +1 -1
  957. package/lib/esm/render/webgl/TechniqueFlags.d.ts +7 -1
  958. package/lib/esm/render/webgl/TechniqueFlags.d.ts.map +1 -1
  959. package/lib/esm/render/webgl/TechniqueFlags.js +10 -1
  960. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  961. package/lib/esm/render/webgl/TechniqueId.d.ts +29 -28
  962. package/lib/esm/render/webgl/TechniqueId.d.ts.map +1 -1
  963. package/lib/esm/render/webgl/TechniqueId.js +7 -7
  964. package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
  965. package/lib/esm/render/webgl/Texture.d.ts +15 -12
  966. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  967. package/lib/esm/render/webgl/Texture.js +27 -24
  968. package/lib/esm/render/webgl/Texture.js.map +1 -1
  969. package/lib/esm/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  970. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +84 -19
  971. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  972. package/lib/esm/render/webgl/glsl/Animation.js +1 -1
  973. package/lib/esm/render/webgl/glsl/Blur.js +1 -1
  974. package/lib/esm/render/webgl/glsl/ClearPickAndColor.js +2 -2
  975. package/lib/esm/render/webgl/glsl/ClearTranslucent.js +2 -2
  976. package/lib/esm/render/webgl/glsl/Color.js +1 -1
  977. package/lib/esm/render/webgl/glsl/Combine3Textures.js +1 -1
  978. package/lib/esm/render/webgl/glsl/CombineTextures.js +1 -1
  979. package/lib/esm/render/webgl/glsl/Composite.js +1 -1
  980. package/lib/esm/render/webgl/glsl/CopyColor.d.ts.map +1 -1
  981. package/lib/esm/render/webgl/glsl/CopyColor.js +17 -2
  982. package/lib/esm/render/webgl/glsl/CopyColor.js.map +1 -1
  983. package/lib/esm/render/webgl/glsl/CopyPickBuffers.js +2 -2
  984. package/lib/esm/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
  985. package/lib/esm/render/webgl/glsl/CopyStencil.js +10 -13
  986. package/lib/esm/render/webgl/glsl/CopyStencil.js.map +1 -1
  987. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js +2 -2
  988. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  989. package/lib/esm/render/webgl/glsl/Edge.d.ts +2 -1
  990. package/lib/esm/render/webgl/glsl/Edge.d.ts.map +1 -1
  991. package/lib/esm/render/webgl/glsl/Edge.js +132 -14
  992. package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
  993. package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  994. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +44 -22
  995. package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  996. package/lib/esm/render/webgl/glsl/Fragment.d.ts.map +1 -1
  997. package/lib/esm/render/webgl/glsl/Fragment.js +19 -11
  998. package/lib/esm/render/webgl/glsl/Fragment.js.map +1 -1
  999. package/lib/esm/render/webgl/glsl/Lighting.d.ts.map +1 -1
  1000. package/lib/esm/render/webgl/glsl/Lighting.js +16 -2
  1001. package/lib/esm/render/webgl/glsl/Lighting.js.map +1 -1
  1002. package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
  1003. package/lib/esm/render/webgl/glsl/LookupTable.d.ts +4 -2
  1004. package/lib/esm/render/webgl/glsl/LookupTable.d.ts.map +1 -1
  1005. package/lib/esm/render/webgl/glsl/LookupTable.js +7 -3
  1006. package/lib/esm/render/webgl/glsl/LookupTable.js.map +1 -1
  1007. package/lib/esm/render/webgl/glsl/PlanarClassification.d.ts.map +1 -1
  1008. package/lib/esm/render/webgl/glsl/PlanarClassification.js +13 -4
  1009. package/lib/esm/render/webgl/glsl/PlanarClassification.js.map +1 -1
  1010. package/lib/esm/render/webgl/glsl/PlanarGrid.js +2 -2
  1011. package/lib/esm/render/webgl/glsl/PlanarGrid.js.map +1 -1
  1012. package/lib/esm/render/webgl/glsl/PointCloud.js +2 -2
  1013. package/lib/esm/render/webgl/glsl/PointCloud.js.map +1 -1
  1014. package/lib/esm/render/webgl/glsl/PointString.js +1 -1
  1015. package/lib/esm/render/webgl/glsl/PointString.js.map +1 -1
  1016. package/lib/esm/render/webgl/glsl/Polyline.js +1 -1
  1017. package/lib/esm/render/webgl/glsl/Polyline.js.map +1 -1
  1018. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  1019. package/lib/esm/render/webgl/glsl/RealityMesh.js +9 -6
  1020. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  1021. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js +2 -2
  1022. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  1023. package/lib/esm/render/webgl/glsl/SkyBox.js +2 -2
  1024. package/lib/esm/render/webgl/glsl/SkyBox.js.map +1 -1
  1025. package/lib/esm/render/webgl/glsl/SkySphere.js +2 -2
  1026. package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
  1027. package/lib/esm/render/webgl/glsl/Surface.js +41 -16
  1028. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  1029. package/lib/esm/render/webgl/glsl/Translucency.js +2 -2
  1030. package/lib/esm/render/webgl/glsl/Vertex.js +3 -3
  1031. package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
  1032. package/lib/esm/render/webgl/glsl/ViewportQuad.js +1 -1
  1033. package/lib/esm/render/webgl/glsl/ViewportQuad.js.map +1 -1
  1034. package/lib/esm/render/webgl/glsl/Wiremesh.d.ts +9 -0
  1035. package/lib/esm/render/webgl/glsl/Wiremesh.d.ts.map +1 -0
  1036. package/lib/esm/render/webgl/glsl/Wiremesh.js +36 -0
  1037. package/lib/esm/render/webgl/glsl/Wiremesh.js.map +1 -0
  1038. package/lib/esm/render-primitives.d.ts +5 -1
  1039. package/lib/esm/render-primitives.d.ts.map +1 -1
  1040. package/lib/esm/render-primitives.js +5 -1
  1041. package/lib/esm/render-primitives.js.map +1 -1
  1042. package/lib/esm/request/Request.d.ts +167 -0
  1043. package/lib/esm/request/Request.d.ts.map +1 -0
  1044. package/lib/esm/request/Request.js +289 -0
  1045. package/lib/esm/request/Request.js.map +1 -0
  1046. package/lib/esm/tile/B3dmReader.d.ts +2 -1
  1047. package/lib/esm/tile/B3dmReader.d.ts.map +1 -1
  1048. package/lib/esm/tile/B3dmReader.js +12 -8
  1049. package/lib/esm/tile/B3dmReader.js.map +1 -1
  1050. package/lib/esm/tile/CesiumAssetProvider.d.ts +14 -0
  1051. package/lib/esm/tile/CesiumAssetProvider.d.ts.map +1 -0
  1052. package/lib/esm/tile/CesiumAssetProvider.js +31 -0
  1053. package/lib/esm/tile/CesiumAssetProvider.js.map +1 -0
  1054. package/lib/esm/tile/ContextShareProvider.d.ts +22 -0
  1055. package/lib/esm/tile/ContextShareProvider.d.ts.map +1 -0
  1056. package/lib/esm/tile/ContextShareProvider.js +125 -0
  1057. package/lib/esm/tile/ContextShareProvider.js.map +1 -0
  1058. package/lib/esm/tile/DynamicIModelTile.js +9 -3
  1059. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  1060. package/lib/esm/tile/GltfReader.d.ts +594 -55
  1061. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  1062. package/lib/esm/tile/GltfReader.js +678 -242
  1063. package/lib/esm/tile/GltfReader.js.map +1 -1
  1064. package/lib/esm/tile/I3dmReader.d.ts +2 -1
  1065. package/lib/esm/tile/I3dmReader.d.ts.map +1 -1
  1066. package/lib/esm/tile/I3dmReader.js +11 -7
  1067. package/lib/esm/tile/I3dmReader.js.map +1 -1
  1068. package/lib/esm/tile/IModelTile.d.ts.map +1 -1
  1069. package/lib/esm/tile/IModelTile.js +14 -7
  1070. package/lib/esm/tile/IModelTile.js.map +1 -1
  1071. package/lib/esm/tile/IModelTileTree.d.ts +8 -0
  1072. package/lib/esm/tile/IModelTileTree.d.ts.map +1 -1
  1073. package/lib/esm/tile/IModelTileTree.js +36 -1
  1074. package/lib/esm/tile/IModelTileTree.js.map +1 -1
  1075. package/lib/esm/tile/ImdlReader.d.ts +365 -10
  1076. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  1077. package/lib/esm/tile/ImdlReader.js +199 -66
  1078. package/lib/esm/tile/ImdlReader.js.map +1 -1
  1079. package/lib/esm/tile/OrbitGtTileTree.d.ts +0 -9
  1080. package/lib/esm/tile/OrbitGtTileTree.d.ts.map +1 -1
  1081. package/lib/esm/tile/OrbitGtTileTree.js +10 -20
  1082. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  1083. package/lib/esm/tile/PrimaryTileTree.d.ts +14 -5
  1084. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  1085. package/lib/esm/tile/PrimaryTileTree.js +70 -15
  1086. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  1087. package/lib/esm/tile/RealityModelTileTree.d.ts +2 -41
  1088. package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
  1089. package/lib/esm/tile/RealityModelTileTree.js +56 -215
  1090. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  1091. package/lib/esm/tile/RealityTileLoader.d.ts +1 -0
  1092. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  1093. package/lib/esm/tile/RealityTileLoader.js +4 -3
  1094. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  1095. package/lib/esm/tile/Tile.d.ts.map +1 -1
  1096. package/lib/esm/tile/Tile.js +5 -1
  1097. package/lib/esm/tile/Tile.js.map +1 -1
  1098. package/lib/esm/tile/TileAdmin.d.ts +37 -4
  1099. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  1100. package/lib/esm/tile/TileAdmin.js +19 -13
  1101. package/lib/esm/tile/TileAdmin.js.map +1 -1
  1102. package/lib/esm/tile/TileDrawArgs.d.ts +11 -0
  1103. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  1104. package/lib/esm/tile/TileDrawArgs.js +6 -1
  1105. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  1106. package/lib/esm/tile/TileTreeReference.d.ts +2 -0
  1107. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  1108. package/lib/esm/tile/TileTreeReference.js +5 -0
  1109. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  1110. package/lib/esm/tile/internal.d.ts +4 -1
  1111. package/lib/esm/tile/internal.d.ts.map +1 -1
  1112. package/lib/esm/tile/internal.js +4 -1
  1113. package/lib/esm/tile/internal.js.map +1 -1
  1114. package/lib/esm/tile/map/ArcGISTileMap.d.ts +22 -0
  1115. package/lib/esm/tile/map/ArcGISTileMap.d.ts.map +1 -0
  1116. package/lib/esm/tile/map/ArcGISTileMap.js +173 -0
  1117. package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -0
  1118. package/lib/esm/tile/map/ArcGisTokenGenerator.js +1 -1
  1119. package/lib/esm/tile/map/ArcGisTokenGenerator.js.map +1 -1
  1120. package/lib/esm/tile/map/ArcGisUtilities.d.ts +1 -1
  1121. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  1122. package/lib/esm/tile/map/ArcGisUtilities.js +14 -6
  1123. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  1124. package/lib/esm/tile/map/BingElevation.js +1 -1
  1125. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  1126. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  1127. package/lib/esm/tile/map/CesiumTerrainProvider.js +25 -13
  1128. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  1129. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -2
  1130. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  1131. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +21 -42
  1132. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  1133. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +2 -2
  1134. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  1135. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +8 -0
  1136. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  1137. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +51 -10
  1138. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  1139. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +6 -1
  1140. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  1141. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +63 -21
  1142. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  1143. package/lib/esm/tile/map/ImageryTileTree.d.ts +4 -4
  1144. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  1145. package/lib/esm/tile/map/ImageryTileTree.js +21 -25
  1146. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  1147. package/lib/esm/tile/map/MapCartoRectangle.js +1 -1
  1148. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  1149. package/lib/esm/tile/map/MapLayerAuthentication.d.ts +20 -0
  1150. package/lib/esm/tile/map/MapLayerAuthentication.d.ts.map +1 -0
  1151. package/lib/esm/tile/map/MapLayerAuthentication.js +15 -0
  1152. package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -0
  1153. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +6 -3
  1154. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  1155. package/lib/esm/tile/map/MapLayerFormatRegistry.js +3 -1
  1156. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  1157. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts +2 -2
  1158. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  1159. package/lib/esm/tile/map/MapLayerImageryFormats.js +22 -9
  1160. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  1161. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +18 -6
  1162. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  1163. package/lib/esm/tile/map/MapLayerImageryProvider.js +44 -11
  1164. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  1165. package/lib/esm/tile/map/MapLayerSources.d.ts +3 -11
  1166. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  1167. package/lib/esm/tile/map/MapLayerSources.js +7 -36
  1168. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  1169. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  1170. package/lib/esm/tile/map/MapTile.js +4 -3
  1171. package/lib/esm/tile/map/MapTile.js.map +1 -1
  1172. package/lib/esm/tile/map/MapTileLoader.js +1 -1
  1173. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  1174. package/lib/esm/tile/map/MapTileTree.d.ts +1 -1
  1175. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  1176. package/lib/esm/tile/map/MapTileTree.js +30 -21
  1177. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  1178. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts +3 -3
  1179. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  1180. package/lib/esm/tile/map/MapTiledGraphicsProvider.js +4 -6
  1181. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  1182. package/lib/esm/tile/map/MapTilingScheme.d.ts +7 -2
  1183. package/lib/esm/tile/map/MapTilingScheme.d.ts.map +1 -1
  1184. package/lib/esm/tile/map/MapTilingScheme.js +22 -9
  1185. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  1186. package/lib/esm/tile/map/QuadId.d.ts +1 -0
  1187. package/lib/esm/tile/map/QuadId.d.ts.map +1 -1
  1188. package/lib/esm/tile/map/QuadId.js +2 -1
  1189. package/lib/esm/tile/map/QuadId.js.map +1 -1
  1190. package/lib/esm/tile/map/TerrainMeshProvider.d.ts +1 -1
  1191. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  1192. package/lib/esm/tile/map/WmsCapabilities.d.ts +8 -1
  1193. package/lib/esm/tile/map/WmsCapabilities.d.ts.map +1 -1
  1194. package/lib/esm/tile/map/WmsCapabilities.js +37 -3
  1195. package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
  1196. package/lib/esm/tile/map/WmtsCapabilities.d.ts +11 -1
  1197. package/lib/esm/tile/map/WmtsCapabilities.d.ts.map +1 -1
  1198. package/lib/esm/tile/map/WmtsCapabilities.js +20 -6
  1199. package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
  1200. package/lib/esm/tools/EditManipulator.d.ts.map +1 -1
  1201. package/lib/esm/tools/EditManipulator.js +1 -1
  1202. package/lib/esm/tools/EditManipulator.js.map +1 -1
  1203. package/lib/esm/tools/ElementSetTool.js +2 -2
  1204. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  1205. package/lib/esm/tools/PrimitiveTool.d.ts +4 -4
  1206. package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
  1207. package/lib/esm/tools/PrimitiveTool.js +2 -2
  1208. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  1209. package/lib/esm/tools/Tool.d.ts +29 -1
  1210. package/lib/esm/tools/Tool.d.ts.map +1 -1
  1211. package/lib/esm/tools/Tool.js +66 -0
  1212. package/lib/esm/tools/Tool.js.map +1 -1
  1213. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  1214. package/lib/esm/tools/ToolAdmin.js +20 -10
  1215. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  1216. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  1217. package/lib/esm/tools/ViewTool.js +3 -11
  1218. package/lib/esm/tools/ViewTool.js.map +1 -1
  1219. package/lib/esm/webgl.d.ts +5 -0
  1220. package/lib/esm/webgl.d.ts.map +1 -1
  1221. package/lib/esm/webgl.js +5 -0
  1222. package/lib/esm/webgl.js.map +1 -1
  1223. package/lib/public/locales/en/iModelJs.json +3 -1
  1224. package/package.json +33 -28
  1225. package/lib/cjs/RealityDataAccessProps.d.ts +0 -44
  1226. package/lib/cjs/RealityDataAccessProps.d.ts.map +0 -1
  1227. package/lib/cjs/RealityDataAccessProps.js +0 -23
  1228. package/lib/cjs/RealityDataAccessProps.js.map +0 -1
  1229. package/lib/cjs/RealityDataConnection.d.ts +0 -31
  1230. package/lib/cjs/RealityDataConnection.d.ts.map +0 -1
  1231. package/lib/cjs/RealityDataConnection.js +0 -101
  1232. package/lib/cjs/RealityDataConnection.js.map +0 -1
  1233. package/lib/cjs/extension/Extension.d.ts +0 -39
  1234. package/lib/cjs/extension/Extension.d.ts.map +0 -1
  1235. package/lib/cjs/extension/Extension.js +0 -39
  1236. package/lib/cjs/extension/Extension.js.map +0 -1
  1237. package/lib/cjs/extension/ExtensionAdmin.d.ts +0 -70
  1238. package/lib/cjs/extension/ExtensionAdmin.d.ts.map +0 -1
  1239. package/lib/cjs/extension/ExtensionAdmin.js +0 -105
  1240. package/lib/cjs/extension/ExtensionAdmin.js.map +0 -1
  1241. package/lib/cjs/extension/ExtensionHost.d.ts +0 -20
  1242. package/lib/cjs/extension/ExtensionHost.d.ts.map +0 -1
  1243. package/lib/cjs/extension/ExtensionHost.js +0 -19
  1244. package/lib/cjs/extension/ExtensionHost.js.map +0 -1
  1245. package/lib/cjs/extension/ExtensionImpl.d.ts +0 -16
  1246. package/lib/cjs/extension/ExtensionImpl.d.ts.map +0 -1
  1247. package/lib/cjs/extension/ExtensionImpl.js +0 -40
  1248. package/lib/cjs/extension/ExtensionImpl.js.map +0 -1
  1249. package/lib/cjs/extension/ExtensionLoader.d.ts +0 -20
  1250. package/lib/cjs/extension/ExtensionLoader.d.ts.map +0 -1
  1251. package/lib/cjs/extension/ExtensionLoader.js.map +0 -1
  1252. package/lib/cjs/extension/ExtensionRuntime.d.ts +0 -2
  1253. package/lib/cjs/extension/ExtensionRuntime.d.ts.map +0 -1
  1254. package/lib/cjs/extension/ExtensionRuntime.js +0 -60
  1255. package/lib/cjs/extension/ExtensionRuntime.js.map +0 -1
  1256. package/lib/cjs/extension/extensions.d.ts +0 -18
  1257. package/lib/cjs/extension/extensions.d.ts.map +0 -1
  1258. package/lib/cjs/extension/extensions.js +0 -35
  1259. package/lib/cjs/extension/extensions.js.map +0 -1
  1260. package/lib/cjs/tile/map/MapLayerSettingsService.d.ts +0 -39
  1261. package/lib/cjs/tile/map/MapLayerSettingsService.d.ts.map +0 -1
  1262. package/lib/cjs/tile/map/MapLayerSettingsService.js +0 -190
  1263. package/lib/cjs/tile/map/MapLayerSettingsService.js.map +0 -1
  1264. package/lib/esm/RealityDataAccessProps.d.ts +0 -44
  1265. package/lib/esm/RealityDataAccessProps.d.ts.map +0 -1
  1266. package/lib/esm/RealityDataAccessProps.js +0 -20
  1267. package/lib/esm/RealityDataAccessProps.js.map +0 -1
  1268. package/lib/esm/RealityDataConnection.d.ts +0 -31
  1269. package/lib/esm/RealityDataConnection.d.ts.map +0 -1
  1270. package/lib/esm/RealityDataConnection.js +0 -98
  1271. package/lib/esm/RealityDataConnection.js.map +0 -1
  1272. package/lib/esm/extension/Extension.d.ts +0 -39
  1273. package/lib/esm/extension/Extension.d.ts.map +0 -1
  1274. package/lib/esm/extension/Extension.js +0 -38
  1275. package/lib/esm/extension/Extension.js.map +0 -1
  1276. package/lib/esm/extension/ExtensionAdmin.d.ts +0 -70
  1277. package/lib/esm/extension/ExtensionAdmin.d.ts.map +0 -1
  1278. package/lib/esm/extension/ExtensionAdmin.js +0 -101
  1279. package/lib/esm/extension/ExtensionAdmin.js.map +0 -1
  1280. package/lib/esm/extension/ExtensionHost.d.ts +0 -20
  1281. package/lib/esm/extension/ExtensionHost.d.ts.map +0 -1
  1282. package/lib/esm/extension/ExtensionHost.js +0 -15
  1283. package/lib/esm/extension/ExtensionHost.js.map +0 -1
  1284. package/lib/esm/extension/ExtensionImpl.d.ts +0 -16
  1285. package/lib/esm/extension/ExtensionImpl.d.ts.map +0 -1
  1286. package/lib/esm/extension/ExtensionImpl.js +0 -35
  1287. package/lib/esm/extension/ExtensionImpl.js.map +0 -1
  1288. package/lib/esm/extension/ExtensionLoader.d.ts +0 -20
  1289. package/lib/esm/extension/ExtensionLoader.d.ts.map +0 -1
  1290. package/lib/esm/extension/ExtensionLoader.js.map +0 -1
  1291. package/lib/esm/extension/ExtensionRuntime.d.ts +0 -2
  1292. package/lib/esm/extension/ExtensionRuntime.d.ts.map +0 -1
  1293. package/lib/esm/extension/ExtensionRuntime.js +0 -58
  1294. package/lib/esm/extension/ExtensionRuntime.js.map +0 -1
  1295. package/lib/esm/extension/extensions.d.ts +0 -18
  1296. package/lib/esm/extension/extensions.d.ts.map +0 -1
  1297. package/lib/esm/extension/extensions.js +0 -23
  1298. package/lib/esm/extension/extensions.js.map +0 -1
  1299. package/lib/esm/tile/map/MapLayerSettingsService.d.ts +0 -39
  1300. package/lib/esm/tile/map/MapLayerSettingsService.d.ts.map +0 -1
  1301. package/lib/esm/tile/map/MapLayerSettingsService.js +0 -186
  1302. package/lib/esm/tile/map/MapLayerSettingsService.js.map +0 -1
@@ -11,7 +11,7 @@ export declare class ArcGISMapLayerImageryProvider extends MapLayerImageryProvid
11
11
  private _copyrightText;
12
12
  private _querySupported;
13
13
  private _tileMapSupported;
14
- private _availabilityMap;
14
+ private _tileMap;
15
15
  serviceJson: any;
16
16
  constructor(settings: MapLayerSettings);
17
17
  protected get _filterByCartoRange(): boolean;
@@ -23,7 +23,7 @@ export declare class ArcGISMapLayerImageryProvider extends MapLayerImageryProvid
23
23
  };
24
24
  private fetchTile;
25
25
  loadTile(row: number, column: number, zoomLevel: number): Promise<ImageSource | undefined>;
26
- protected _testChildAvailability(tile: ImageryMapTile, resolveChildren: () => void): void;
26
+ protected _generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void): void;
27
27
  private isEpsg3857Compatible;
28
28
  initialize(): Promise<void>;
29
29
  getLogo(_vp: ScreenViewport): HTMLTableRowElement;
@@ -1 +1 @@
1
- {"version":3,"file":"ArcGISMapLayerImageryProvider.d.ts","sourceRoot":"","sources":["../../../../../src/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAe,MAAM,oBAAoB,CAAC;AAI9F,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACwE,cAAc,EAAE,kBAAkB,EAC/G,uBAAuB,EAAiC,MAAM,EAC/D,MAAM,gBAAgB,CAAC;AAMxB,gBAAgB;AAChB,qBAAa,6BAA8B,SAAQ,uBAAuB;IACxE,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,gBAAgB,CAAmF;IACpG,WAAW,EAAE,GAAG,CAAC;gBACZ,QAAQ,EAAE,gBAAgB;IAItC,cAAuB,mBAAmB,YAAoB;IAE9D,IAAoB,gBAAgB,WAAsE;IAC1G,IAAoB,gBAAgB,WAAyF;IAEtH,YAAY,CAAC,SAAS,EAAE,GAAG;;;;YAKpB,SAAS;IAUD,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;cAsD7F,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,IAAI;IA8C3F,OAAO,CAAC,oBAAoB;IAQN,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsCjC,OAAO,CAAC,GAAG,EAAE,cAAc;IAIrB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkDjI,SAAS,CAAC,cAAc,CAAC,MAAM,SAAS,GAAG,MAAM;IAMpC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAY5E,mBAAmB;CAgBlC"}
1
+ {"version":3,"file":"ArcGISMapLayerImageryProvider.d.ts","sourceRoot":"","sources":["../../../../../src/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAgB,gBAAgB,EAAe,MAAM,oBAAoB,CAAC;AAI5G,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACuF,cAAc,EAAE,kBAAkB,EAC9H,uBAAuB,EAAiC,MAAM,EAC/D,MAAM,gBAAgB,CAAC;AAKxB,gBAAgB;AAChB,qBAAa,6BAA8B,SAAQ,uBAAuB;IACxE,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,QAAQ,CAA0B;IACnC,WAAW,EAAE,GAAG,CAAC;gBACZ,QAAQ,EAAE,gBAAgB;IAItC,cAAuB,mBAAmB,YAAoB;IAE9D,IAAoB,gBAAgB,WAAsE;IAC1G,IAAoB,gBAAgB,WAAyF;IAEtH,YAAY,CAAC,SAAS,EAAE,GAAG;;;;YAKpB,SAAS;IAUD,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;cAqD7F,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI;IAoBxG,OAAO,CAAC,oBAAoB;IAQN,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA6CjC,OAAO,CAAC,GAAG,EAAE,cAAc;IAIrB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkDjI,SAAS,CAAC,cAAc,CAAC,MAAM,SAAS,GAAG,MAAM;IAMpC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAY5E,mBAAmB;CAgBlC"}
@@ -5,15 +5,13 @@
5
5
  /** @packageDocumentation
6
6
  * @module Tiles
7
7
  */
8
- import { Dictionary, IModelStatus } from "@itwin/core-bentley";
9
- import { ServerError } from "@itwin/core-common";
10
- import { getJson, request } from "@bentley/itwin-client";
8
+ import { IModelStatus, ServerError } from "@itwin/core-common";
9
+ import { getJson, request } from "../../../request/Request";
11
10
  import { IModelApp } from "../../../IModelApp";
12
11
  import { NotifyMessageDetails, OutputMessagePriority } from "../../../NotificationManager";
13
- import { ArcGisErrorCode, ArcGisTokenClientType, ArcGisTokenManager, ArcGisUtilities, MapCartoRectangle, MapLayerImageryProvider, MapLayerImageryProviderStatus, QuadId, } from "../../internal";
12
+ import { ArcGisErrorCode, ArcGISTileMap, ArcGisTokenClientType, ArcGisTokenManager, ArcGisUtilities, MapCartoRectangle, MapLayerImageryProvider, MapLayerImageryProviderStatus, } from "../../internal";
14
13
  // eslint-disable-next-line prefer-const
15
14
  let doToolTips = true;
16
- const scratchQuadId = new QuadId(0, 0, 0);
17
15
  /** @internal */
18
16
  export class ArcGISMapLayerImageryProvider extends MapLayerImageryProvider {
19
17
  constructor(settings) {
@@ -23,7 +21,6 @@ export class ArcGISMapLayerImageryProvider extends MapLayerImageryProvider {
23
21
  this._copyrightText = "Copyright";
24
22
  this._querySupported = false;
25
23
  this._tileMapSupported = false;
26
- this._availabilityMap = new Dictionary((lhs, rhs) => lhs.compare(rhs));
27
24
  }
28
25
  get _filterByCartoRange() { return false; } // Can't trust footprint ranges (USGS Hydro)
29
26
  get minimumZoomLevel() { return Math.max(super.minimumZoomLevel, this._minDepthFromLod); }
@@ -85,45 +82,22 @@ export class ArcGISMapLayerImageryProvider extends MapLayerImageryProvider {
85
82
  return undefined;
86
83
  }
87
84
  }
88
- _testChildAvailability(tile, resolveChildren) {
89
- if (!this._tileMapSupported || tile.quadId.level < Math.max(4, this.minimumZoomLevel)) {
90
- resolveChildren();
85
+ _generateChildIds(tile, resolveChildren) {
86
+ const childIds = this.getPotentialChildIds(tile);
87
+ if (!this._tileMap || tile.quadId.level < Math.max(4, this.minimumZoomLevel - 1)) {
88
+ resolveChildren(childIds);
91
89
  return;
92
90
  }
93
- const quadId = tile.quadId;
94
- let availability;
95
- if (undefined !== (availability = this._availabilityMap.get(tile.quadId))) {
96
- if (availability)
97
- resolveChildren();
98
- return;
91
+ if (this._tileMap) {
92
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
93
+ this._tileMap.getChildrenAvailability(childIds).then((availability) => {
94
+ const availableChildIds = new Array();
95
+ for (let i = 0; i < availability.length; i++)
96
+ if (availability[i])
97
+ availableChildIds.push(childIds[i]);
98
+ resolveChildren(availableChildIds);
99
+ });
99
100
  }
100
- const row = quadId.row * 2;
101
- const column = quadId.column * 2;
102
- const level = quadId.level + 1;
103
- const queryDim = Math.min(1 << level, 32), queryDimHalf = queryDim / 2;
104
- const queryRow = Math.max(0, row - queryDimHalf);
105
- const queryColumn = Math.max(0, column - queryDimHalf);
106
- getJson(`${this._settings.url}/tilemap/${level}/${queryRow}/${queryColumn}/${queryDim}/${queryDim}?f=json`).then((json) => {
107
- availability = true;
108
- if (Array.isArray(json.data)) {
109
- let index = 0;
110
- const data = json.data;
111
- for (let iCol = 0; iCol < queryDim; iCol++) {
112
- for (let iRow = 0; iRow < queryDim; iRow++) {
113
- scratchQuadId.level = quadId.level;
114
- scratchQuadId.column = (queryColumn + iCol) / 2;
115
- scratchQuadId.row = (queryRow + iRow) / 2;
116
- if (0 === quadId.compare(scratchQuadId))
117
- availability = data[index];
118
- this._availabilityMap.set(scratchQuadId, data[index++]);
119
- }
120
- }
121
- }
122
- if (availability)
123
- resolveChildren();
124
- }).catch((_error) => {
125
- resolveChildren();
126
- });
127
101
  }
128
102
  isEpsg3857Compatible(tileInfo) {
129
103
  var _a;
@@ -133,6 +107,7 @@ export class ArcGISMapLayerImageryProvider extends MapLayerImageryProvider {
133
107
  return zeroLod.level === 0 && Math.abs(zeroLod.resolution - 156543.03392800014) < .001;
134
108
  }
135
109
  async initialize() {
110
+ var _a, _b;
136
111
  const json = await ArcGisUtilities.getServiceJson(this._settings.url, this.getRequestAuthorization());
137
112
  if (json === undefined)
138
113
  throw new ServerError(IModelStatus.ValidationFailed, "");
@@ -150,6 +125,10 @@ export class ArcGISMapLayerImageryProvider extends MapLayerImageryProvider {
150
125
  ;
151
126
  }
152
127
  }
128
+ // Create tile map object only if we are going to request tiles from this server and it support tilemap requests.
129
+ if (this._usesCachedTiles && this._tileMapSupported) {
130
+ this._tileMap = new ArcGISTileMap(this._settings.url, (_b = (_a = json.tileInfo) === null || _a === void 0 ? void 0 : _a.lods) === null || _b === void 0 ? void 0 : _b.length);
131
+ }
153
132
  const footprintJson = await ArcGisUtilities.getFootprintJson(this._settings.url, this.getRequestAuthorization());
154
133
  if (undefined !== footprintJson && undefined !== footprintJson.featureCollection && Array.isArray(footprintJson.featureCollection.layers)) {
155
134
  for (const layer of footprintJson.featureCollection.layers) {
@@ -1 +1 @@
1
- {"version":3,"file":"ArcGISMapLayerImageryProvider.js","sourceRoot":"","sources":["../../../../../src/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.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 { Dictionary, IModelStatus } from \"@itwin/core-bentley\";\r\nimport { Cartographic, ImageSource, MapLayerSettings, ServerError } from \"@itwin/core-common\";\r\nimport { getJson, request, RequestOptions, Response } from \"@bentley/itwin-client\";\r\nimport { IModelApp } from \"../../../IModelApp\";\r\nimport { NotifyMessageDetails, OutputMessagePriority } from \"../../../NotificationManager\";\r\nimport { ScreenViewport } from \"../../../Viewport\";\r\nimport {\r\n ArcGisErrorCode, ArcGisTokenClientType, ArcGisTokenManager, ArcGisUtilities, ImageryMapTile, ImageryMapTileTree, MapCartoRectangle,\r\n MapLayerImageryProvider, MapLayerImageryProviderStatus, QuadId,\r\n} from \"../../internal\";\r\n\r\n// eslint-disable-next-line prefer-const\r\nlet doToolTips = true;\r\nconst scratchQuadId = new QuadId(0, 0, 0);\r\n\r\n/** @internal */\r\nexport class ArcGISMapLayerImageryProvider extends MapLayerImageryProvider {\r\n private _maxDepthFromLod = 0;\r\n private _minDepthFromLod = 0;\r\n private _copyrightText = \"Copyright\";\r\n private _querySupported = false;\r\n private _tileMapSupported = false;\r\n private _availabilityMap = new Dictionary<QuadId, boolean>((lhs: QuadId, rhs: QuadId) => lhs.compare(rhs));\r\n public serviceJson: any;\r\n constructor(settings: MapLayerSettings) {\r\n super(settings, false);\r\n }\r\n\r\n protected override get _filterByCartoRange() { return false; } // Can't trust footprint ranges (USGS Hydro)\r\n\r\n public override get minimumZoomLevel() { return Math.max(super.minimumZoomLevel, this._minDepthFromLod); }\r\n public override get maximumZoomLevel() { return this._maxDepthFromLod > 0 ? this._maxDepthFromLod : super.maximumZoomLevel; }\r\n\r\n public uintToString(uintArray: any) {\r\n return Buffer.from(uintArray).toJSON();\r\n\r\n }\r\n\r\n private async fetchTile(row: number, column: number, zoomLevel: number): Promise<Response | undefined> {\r\n const tileRequestOptions: RequestOptions = { method: \"GET\", responseType: \"arraybuffer\" };\r\n tileRequestOptions.auth = this.getRequestAuthorization();\r\n const tileUrl: string = await this.constructUrl(row, column, zoomLevel);\r\n if (tileUrl.length === 0)\r\n return undefined;\r\n\r\n return request(tileUrl, tileRequestOptions);\r\n }\r\n\r\n public override async loadTile(row: number, column: number, zoomLevel: number): Promise<ImageSource | undefined> {\r\n\r\n if ((this.status === MapLayerImageryProviderStatus.RequireAuth)) {\r\n return undefined;\r\n }\r\n\r\n try {\r\n let tileResponse = await this.fetchTile(row, column, zoomLevel);\r\n if (tileResponse === undefined)\r\n return undefined;\r\n\r\n // Check the content type from the response, it might contain an authentication error that need to be reported.\r\n // Skip if the layer state was already invalid\r\n if (ArcGisUtilities.hasTokenError(tileResponse)) {\r\n\r\n // Token might have expired, make a second attempt by forcing new token.\r\n if (this._settings.userName && this._settings.userName.length > 0) {\r\n ArcGisTokenManager.invalidateToken(this._settings.url, this._settings.userName);\r\n tileResponse = await this.fetchTile(row, column, zoomLevel);\r\n if (tileResponse === undefined)\r\n return undefined;\r\n }\r\n\r\n // OK at this point, if response still contain a token error, we assume end-user will\r\n // have to provide credentials again. Change the layer status so we\r\n // don't make additional invalid requests..\r\n if (tileResponse && ArcGisUtilities.hasTokenError(tileResponse)) {\r\n // Check again layer status, it might have change during await.\r\n if (this.status === MapLayerImageryProviderStatus.Valid) {\r\n this.status = MapLayerImageryProviderStatus.RequireAuth;\r\n this.onStatusChanged.raiseEvent(this);\r\n\r\n // Only report error to end-user if we were previously able to fetch tiles\r\n // and then encountered an error, otherwise I assume an error was already reported\r\n // through the source validation process.\r\n if (this._hasSuccessfullyFetchedTile) {\r\n const msg = IModelApp.localization.getLocalizedString(\"iModelJs:MapLayers.Messages.LoadTileTokenError\", { layerName: this._settings.name });\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Warning, msg));\r\n }\r\n\r\n }\r\n\r\n return undefined;\r\n }\r\n }\r\n\r\n if (!this._hasSuccessfullyFetchedTile) {\r\n this._hasSuccessfullyFetchedTile = true;\r\n }\r\n return this.getImageFromTileResponse(tileResponse, zoomLevel);\r\n } catch (error) {\r\n return undefined;\r\n }\r\n }\r\n protected override _testChildAvailability(tile: ImageryMapTile, resolveChildren: () => void) {\r\n if (!this._tileMapSupported || tile.quadId.level < Math.max(4, this.minimumZoomLevel)) {\r\n resolveChildren();\r\n return;\r\n }\r\n\r\n const quadId = tile.quadId;\r\n let availability;\r\n if (undefined !== (availability = this._availabilityMap.get(tile.quadId))) {\r\n if (availability)\r\n resolveChildren();\r\n\r\n return;\r\n }\r\n\r\n const row = quadId.row * 2;\r\n const column = quadId.column * 2;\r\n const level = quadId.level + 1;\r\n const queryDim = Math.min(1 << level, 32), queryDimHalf = queryDim / 2;\r\n const queryRow = Math.max(0, row - queryDimHalf);\r\n const queryColumn = Math.max(0, column - queryDimHalf);\r\n\r\n getJson(`${this._settings.url}/tilemap/${level}/${queryRow}/${queryColumn}/${queryDim}/${queryDim}?f=json`).then((json) => {\r\n availability = true;\r\n if (Array.isArray(json.data)) {\r\n let index = 0;\r\n const data = json.data;\r\n for (let iCol = 0; iCol < queryDim; iCol++) {\r\n for (let iRow = 0; iRow < queryDim; iRow++) {\r\n scratchQuadId.level = quadId.level;\r\n scratchQuadId.column = (queryColumn + iCol) / 2;\r\n scratchQuadId.row = (queryRow + iRow) / 2;\r\n if (0 === quadId.compare(scratchQuadId))\r\n availability = data[index];\r\n this._availabilityMap.set(scratchQuadId, data[index++]);\r\n }\r\n }\r\n }\r\n if (availability)\r\n resolveChildren();\r\n\r\n }).catch((_error) => {\r\n resolveChildren();\r\n });\r\n }\r\n\r\n private isEpsg3857Compatible(tileInfo: any) {\r\n if (tileInfo.spatialReference?.latestWkid !== 3857 || !Array.isArray(tileInfo.lods))\r\n return false;\r\n\r\n const zeroLod = tileInfo.lods[0];\r\n return zeroLod.level === 0 && Math.abs(zeroLod.resolution - 156543.03392800014) < .001;\r\n }\r\n\r\n public override async initialize(): Promise<void> {\r\n const json = await ArcGisUtilities.getServiceJson(this._settings.url, this.getRequestAuthorization());\r\n if (json === undefined)\r\n throw new ServerError(IModelStatus.ValidationFailed, \"\");\r\n\r\n if (json !== undefined) {\r\n this.serviceJson = json;\r\n if (json.capabilities) {\r\n this._querySupported = json.capabilities.indexOf(\"Query\") >= 0;\r\n this._tileMapSupported = json.capabilities.indexOf(\"Tilemap\") >= 0;\r\n }\r\n if (json.copyrightText) this._copyrightText = json.copyrightText;\r\n if (false !== (this._usesCachedTiles = json.tileInfo !== undefined && this.isEpsg3857Compatible(json.tileInfo))) {\r\n if (json.maxScale !== undefined && json.maxScale !== 0 && Array.isArray(json.tileInfo.lods)) {\r\n for (; this._maxDepthFromLod < json.tileInfo.lods.length && json.tileInfo.lods[this._maxDepthFromLod].scale > json.maxScale; this._maxDepthFromLod++)\r\n ;\r\n }\r\n }\r\n const footprintJson = await ArcGisUtilities.getFootprintJson(this._settings.url, this.getRequestAuthorization());\r\n if (undefined !== footprintJson && undefined !== footprintJson.featureCollection && Array.isArray(footprintJson.featureCollection.layers)) {\r\n for (const layer of footprintJson.featureCollection.layers) {\r\n if (layer.layerDefinition && layer.layerDefinition.extent) {\r\n this.cartoRange = MapCartoRectangle.createFromDegrees(layer.layerDefinition.extent.xmin, layer.layerDefinition.extent.ymin, layer.layerDefinition.extent.xmax, layer.layerDefinition.extent.ymax);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // Read minLOD if available\r\n if (json.minLOD !== undefined) {\r\n const minLod = parseInt(json.minLOD, 10);\r\n if (!Number.isNaN(minLod)) {\r\n this._minDepthFromLod = minLod;\r\n }\r\n }\r\n }\r\n }\r\n\r\n public override getLogo(_vp: ScreenViewport) {\r\n return IModelApp.makeLogoCard({ heading: \"ArcGIS\", notice: this._copyrightText });\r\n }\r\n\r\n public override async getToolTip(strings: string[], quadId: QuadId, carto: Cartographic, tree: ImageryMapTileTree): Promise<void> {\r\n await super.getToolTip(strings, quadId, carto, tree);\r\n if (!doToolTips)\r\n return;\r\n\r\n if (!this._querySupported)\r\n return;\r\n\r\n const stringSet = new Set<string>();\r\n const bboxString = this.getEPSG3857ExtentString(quadId.row, quadId.column, quadId.level);\r\n const x = this.getEPSG3857X(carto.longitudeDegrees);\r\n const y = this.getEPSG3857Y(carto.latitudeDegrees);\r\n const tmpUrl = `${this._settings.url}/identify?f=json&tolerance=1&returnGeometry=false&sr=3857&imageDisplay=${this.tileSize},${this.tileSize},96&layers=${this.getLayerString(\"visible\")}&geometry=${x},${y}&geometryType=esriGeometryPoint&mapExtent=${bboxString}`;\r\n const url = await this.appendSecurityToken(tmpUrl);\r\n\r\n let json = await getJson(url);\r\n if (json?.error?.code === ArcGisErrorCode.TokenRequired || json?.error?.code === ArcGisErrorCode.InvalidToken) {\r\n // Token might have expired, make a second attempt by forcing new token.\r\n if (this._settings.userName && this._settings.userName.length > 0) {\r\n ArcGisTokenManager.invalidateToken(this._settings.url, this._settings.userName);\r\n json = await getJson(url);\r\n }\r\n\r\n // OK at this point, if response still contain a token error, we assume end-user will\r\n // have to provide credentials again. Change the layer status so we\r\n // don't make additional invalid requests..\r\n if (json?.error?.code === ArcGisErrorCode.TokenRequired || json?.error?.code === ArcGisErrorCode.InvalidToken) {\r\n // Check again layer status, it might have change during await.\r\n if (this.status === MapLayerImageryProviderStatus.Valid) {\r\n this.status = MapLayerImageryProviderStatus.RequireAuth;\r\n const msg = IModelApp.localization.getLocalizedString(\"iModelJs:MapLayers.Messages.FetchTooltipTokenError\", { layerName: this._settings.name });\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Warning, msg));\r\n }\r\n\r\n return;\r\n }\r\n }\r\n\r\n if (json && Array.isArray(json.results)) {\r\n for (const result of json.results) {\r\n if (result.attributes !== undefined && result.attributes[result.displayFieldName] !== undefined) {\r\n const thisString = `${result.displayFieldName}: ${result.attributes[result.displayFieldName]}`;\r\n if (!stringSet.has(thisString)) {\r\n strings.push(thisString);\r\n stringSet.add(thisString);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n protected getLayerString(prefix = \"show\"): string {\r\n const layers = new Array<string>();\r\n this._settings.subLayers.forEach((subLayer) => { if (this._settings.isSubLayerVisible(subLayer)) layers.push(subLayer.idString); });\r\n return `${prefix}: ${layers.join(\",\")} `;\r\n }\r\n // construct the Url from the desired Tile\r\n public async constructUrl(row: number, column: number, zoomLevel: number): Promise<string> {\r\n let tmpUrl;\r\n if (this._usesCachedTiles) {\r\n tmpUrl = `${this._settings.url}/tile/${zoomLevel}/${row}/${column} `;\r\n } else {\r\n const bboxString = `${this.getEPSG3857ExtentString(row, column, zoomLevel)}&bboxSR=3857`;\r\n tmpUrl = `${this._settings.url}/export?bbox=${bboxString}&size=${this.tileSize},${this.tileSize}&layers=${this.getLayerString()}&format=png&transparent=${this.transparentBackgroundString}&f=image&sr=3857&imagesr=3857`;\r\n }\r\n return this.appendSecurityToken(tmpUrl);\r\n }\r\n\r\n // construct the Url from the desired Tile\r\n private async appendSecurityToken(url: string): Promise<string> {\r\n // Append security token if required\r\n let tokenParam = \"\";\r\n if (this._settings.userName && this._settings.password) {\r\n try {\r\n const token = await ArcGisTokenManager.getToken(this._settings.url, this._settings.userName, this._settings.password,\r\n {\r\n client: ArcGisTokenClientType.referer,\r\n });\r\n if (token?.token)\r\n tokenParam = `&token=${token.token}`;\r\n } catch {\r\n }\r\n }\r\n return `${url}${tokenParam}`;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ArcGISMapLayerImageryProvider.js","sourceRoot":"","sources":["../../../../../src/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.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 { Cartographic, ImageSource, IModelStatus, MapLayerSettings, ServerError } from \"@itwin/core-common\";\r\nimport { getJson, request, RequestOptions, Response } from \"../../../request/Request\";\r\nimport { IModelApp } from \"../../../IModelApp\";\r\nimport { NotifyMessageDetails, OutputMessagePriority } from \"../../../NotificationManager\";\r\nimport { ScreenViewport } from \"../../../Viewport\";\r\nimport {\r\n ArcGisErrorCode, ArcGISTileMap, ArcGisTokenClientType, ArcGisTokenManager, ArcGisUtilities, ImageryMapTile, ImageryMapTileTree, MapCartoRectangle,\r\n MapLayerImageryProvider, MapLayerImageryProviderStatus, QuadId,\r\n} from \"../../internal\";\r\n\r\n// eslint-disable-next-line prefer-const\r\nlet doToolTips = true;\r\n\r\n/** @internal */\r\nexport class ArcGISMapLayerImageryProvider extends MapLayerImageryProvider {\r\n private _maxDepthFromLod = 0;\r\n private _minDepthFromLod = 0;\r\n private _copyrightText = \"Copyright\";\r\n private _querySupported = false;\r\n private _tileMapSupported = false;\r\n private _tileMap: ArcGISTileMap|undefined;\r\n public serviceJson: any;\r\n constructor(settings: MapLayerSettings) {\r\n super(settings, false);\r\n }\r\n\r\n protected override get _filterByCartoRange() { return false; } // Can't trust footprint ranges (USGS Hydro)\r\n\r\n public override get minimumZoomLevel() { return Math.max(super.minimumZoomLevel, this._minDepthFromLod); }\r\n public override get maximumZoomLevel() { return this._maxDepthFromLod > 0 ? this._maxDepthFromLod : super.maximumZoomLevel; }\r\n\r\n public uintToString(uintArray: any) {\r\n return Buffer.from(uintArray).toJSON();\r\n\r\n }\r\n\r\n private async fetchTile(row: number, column: number, zoomLevel: number): Promise<Response | undefined> {\r\n const tileRequestOptions: RequestOptions = { method: \"GET\", responseType: \"arraybuffer\" };\r\n tileRequestOptions.auth = this.getRequestAuthorization();\r\n const tileUrl: string = await this.constructUrl(row, column, zoomLevel);\r\n if (tileUrl.length === 0)\r\n return undefined;\r\n\r\n return request(tileUrl, tileRequestOptions);\r\n }\r\n\r\n public override async loadTile(row: number, column: number, zoomLevel: number): Promise<ImageSource | undefined> {\r\n\r\n if ((this.status === MapLayerImageryProviderStatus.RequireAuth)) {\r\n return undefined;\r\n }\r\n\r\n try {\r\n let tileResponse = await this.fetchTile(row, column, zoomLevel);\r\n if (tileResponse === undefined)\r\n return undefined;\r\n\r\n // Check the content type from the response, it might contain an authentication error that need to be reported.\r\n // Skip if the layer state was already invalid\r\n if (ArcGisUtilities.hasTokenError(tileResponse)) {\r\n\r\n // Token might have expired, make a second attempt by forcing new token.\r\n if (this._settings.userName && this._settings.userName.length > 0) {\r\n ArcGisTokenManager.invalidateToken(this._settings.url, this._settings.userName);\r\n tileResponse = await this.fetchTile(row, column, zoomLevel);\r\n if (tileResponse === undefined)\r\n return undefined;\r\n }\r\n\r\n // OK at this point, if response still contain a token error, we assume end-user will\r\n // have to provide credentials again. Change the layer status so we\r\n // don't make additional invalid requests..\r\n if (tileResponse && ArcGisUtilities.hasTokenError(tileResponse)) {\r\n // Check again layer status, it might have change during await.\r\n if (this.status === MapLayerImageryProviderStatus.Valid) {\r\n this.status = MapLayerImageryProviderStatus.RequireAuth;\r\n this.onStatusChanged.raiseEvent(this);\r\n\r\n // Only report error to end-user if we were previously able to fetch tiles\r\n // and then encountered an error, otherwise I assume an error was already reported\r\n // through the source validation process.\r\n if (this._hasSuccessfullyFetchedTile) {\r\n const msg = IModelApp.localization.getLocalizedString(\"iModelJs:MapLayers.Messages.LoadTileTokenError\", { layerName: this._settings.name });\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Warning, msg));\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n }\r\n\r\n if (!this._hasSuccessfullyFetchedTile) {\r\n this._hasSuccessfullyFetchedTile = true;\r\n }\r\n return this.getImageFromTileResponse(tileResponse, zoomLevel);\r\n } catch (error) {\r\n return undefined;\r\n }\r\n }\r\n protected override _generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void) {\r\n const childIds = this.getPotentialChildIds(tile);\r\n if (!this._tileMap || tile.quadId.level < Math.max(4, this.minimumZoomLevel-1)) {\r\n resolveChildren(childIds);\r\n return;\r\n }\r\n\r\n if (this._tileMap) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._tileMap.getChildrenAvailability(childIds).then((availability) => {\r\n const availableChildIds = new Array<QuadId>();\r\n for (let i = 0; i < availability.length; i++)\r\n if (availability[i])\r\n availableChildIds.push(childIds[i]);\r\n\r\n resolveChildren (availableChildIds);\r\n });\r\n }\r\n }\r\n\r\n private isEpsg3857Compatible(tileInfo: any) {\r\n if (tileInfo.spatialReference?.latestWkid !== 3857 || !Array.isArray(tileInfo.lods))\r\n return false;\r\n\r\n const zeroLod = tileInfo.lods[0];\r\n return zeroLod.level === 0 && Math.abs(zeroLod.resolution - 156543.03392800014) < .001;\r\n }\r\n\r\n public override async initialize(): Promise<void> {\r\n const json = await ArcGisUtilities.getServiceJson(this._settings.url, this.getRequestAuthorization());\r\n if (json === undefined)\r\n throw new ServerError(IModelStatus.ValidationFailed, \"\");\r\n\r\n if (json !== undefined) {\r\n this.serviceJson = json;\r\n if (json.capabilities) {\r\n\r\n this._querySupported = json.capabilities.indexOf(\"Query\") >= 0;\r\n this._tileMapSupported = json.capabilities.indexOf(\"Tilemap\") >= 0;\r\n }\r\n if (json.copyrightText) this._copyrightText = json.copyrightText;\r\n if (false !== (this._usesCachedTiles = json.tileInfo !== undefined && this.isEpsg3857Compatible(json.tileInfo))) {\r\n if (json.maxScale !== undefined && json.maxScale !== 0 && Array.isArray(json.tileInfo.lods)) {\r\n for (; this._maxDepthFromLod < json.tileInfo.lods.length && json.tileInfo.lods[this._maxDepthFromLod].scale > json.maxScale; this._maxDepthFromLod++)\r\n ;\r\n }\r\n }\r\n\r\n // Create tile map object only if we are going to request tiles from this server and it support tilemap requests.\r\n if (this._usesCachedTiles && this._tileMapSupported) {\r\n this._tileMap = new ArcGISTileMap(this._settings.url, json.tileInfo?.lods?.length);\r\n }\r\n\r\n const footprintJson = await ArcGisUtilities.getFootprintJson(this._settings.url, this.getRequestAuthorization());\r\n if (undefined !== footprintJson && undefined !== footprintJson.featureCollection && Array.isArray(footprintJson.featureCollection.layers)) {\r\n for (const layer of footprintJson.featureCollection.layers) {\r\n if (layer.layerDefinition && layer.layerDefinition.extent) {\r\n this.cartoRange = MapCartoRectangle.createFromDegrees(layer.layerDefinition.extent.xmin, layer.layerDefinition.extent.ymin, layer.layerDefinition.extent.xmax, layer.layerDefinition.extent.ymax);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // Read minLOD if available\r\n if (json.minLOD !== undefined) {\r\n const minLod = parseInt(json.minLOD, 10);\r\n if (!Number.isNaN(minLod)) {\r\n this._minDepthFromLod = minLod;\r\n }\r\n }\r\n }\r\n }\r\n\r\n public override getLogo(_vp: ScreenViewport) {\r\n return IModelApp.makeLogoCard({ heading: \"ArcGIS\", notice: this._copyrightText });\r\n }\r\n\r\n public override async getToolTip(strings: string[], quadId: QuadId, carto: Cartographic, tree: ImageryMapTileTree): Promise<void> {\r\n await super.getToolTip(strings, quadId, carto, tree);\r\n if (!doToolTips)\r\n return;\r\n\r\n if (!this._querySupported)\r\n return;\r\n\r\n const stringSet = new Set<string>();\r\n const bboxString = this.getEPSG3857ExtentString(quadId.row, quadId.column, quadId.level);\r\n const x = this.getEPSG3857X(carto.longitudeDegrees);\r\n const y = this.getEPSG3857Y(carto.latitudeDegrees);\r\n const tmpUrl = `${this._settings.url}/identify?f=json&tolerance=1&returnGeometry=false&sr=3857&imageDisplay=${this.tileSize},${this.tileSize},96&layers=${this.getLayerString(\"visible\")}&geometry=${x},${y}&geometryType=esriGeometryPoint&mapExtent=${bboxString}`;\r\n const url = await this.appendSecurityToken(tmpUrl);\r\n\r\n let json = await getJson(url);\r\n if (json?.error?.code === ArcGisErrorCode.TokenRequired || json?.error?.code === ArcGisErrorCode.InvalidToken) {\r\n // Token might have expired, make a second attempt by forcing new token.\r\n if (this._settings.userName && this._settings.userName.length > 0) {\r\n ArcGisTokenManager.invalidateToken(this._settings.url, this._settings.userName);\r\n json = await getJson(url);\r\n }\r\n\r\n // OK at this point, if response still contain a token error, we assume end-user will\r\n // have to provide credentials again. Change the layer status so we\r\n // don't make additional invalid requests..\r\n if (json?.error?.code === ArcGisErrorCode.TokenRequired || json?.error?.code === ArcGisErrorCode.InvalidToken) {\r\n // Check again layer status, it might have change during await.\r\n if (this.status === MapLayerImageryProviderStatus.Valid) {\r\n this.status = MapLayerImageryProviderStatus.RequireAuth;\r\n const msg = IModelApp.localization.getLocalizedString(\"iModelJs:MapLayers.Messages.FetchTooltipTokenError\", { layerName: this._settings.name });\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Warning, msg));\r\n }\r\n\r\n return;\r\n }\r\n }\r\n\r\n if (json && Array.isArray(json.results)) {\r\n for (const result of json.results) {\r\n if (result.attributes !== undefined && result.attributes[result.displayFieldName] !== undefined) {\r\n const thisString = `${result.displayFieldName}: ${result.attributes[result.displayFieldName]}`;\r\n if (!stringSet.has(thisString)) {\r\n strings.push(thisString);\r\n stringSet.add(thisString);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n protected getLayerString(prefix = \"show\"): string {\r\n const layers = new Array<string>();\r\n this._settings.subLayers.forEach((subLayer) => { if (this._settings.isSubLayerVisible(subLayer)) layers.push(subLayer.idString); });\r\n return `${prefix}: ${layers.join(\",\")} `;\r\n }\r\n // construct the Url from the desired Tile\r\n public async constructUrl(row: number, column: number, zoomLevel: number): Promise<string> {\r\n let tmpUrl;\r\n if (this._usesCachedTiles) {\r\n tmpUrl = `${this._settings.url}/tile/${zoomLevel}/${row}/${column} `;\r\n } else {\r\n const bboxString = `${this.getEPSG3857ExtentString(row, column, zoomLevel)}&bboxSR=3857`;\r\n tmpUrl = `${this._settings.url}/export?bbox=${bboxString}&size=${this.tileSize},${this.tileSize}&layers=${this.getLayerString()}&format=png&transparent=${this.transparentBackgroundString}&f=image&sr=3857&imagesr=3857`;\r\n }\r\n return this.appendSecurityToken(tmpUrl);\r\n }\r\n\r\n // construct the Url from the desired Tile\r\n private async appendSecurityToken(url: string): Promise<string> {\r\n // Append security token if required\r\n let tokenParam = \"\";\r\n if (this._settings.userName && this._settings.password) {\r\n try {\r\n const token = await ArcGisTokenManager.getToken(this._settings.url, this._settings.userName, this._settings.password,\r\n {\r\n client: ArcGisTokenClientType.referer,\r\n });\r\n if (token?.token)\r\n tokenParam = `&token=${token.token}`;\r\n } catch {\r\n }\r\n }\r\n return `${url}${tokenParam}`;\r\n }\r\n}\r\n"]}
@@ -6,7 +6,7 @@
6
6
  * @module Tiles
7
7
  */
8
8
  import { assert, BentleyError, IModelStatus } from "@itwin/core-bentley";
9
- import { request } from "@bentley/itwin-client";
9
+ import { request } from "../../../request/Request";
10
10
  import { IModelApp } from "../../../IModelApp";
11
11
  import { MapLayerImageryProvider, MapTile, QuadId, WebMercatorTilingScheme, } from "../../internal";
12
12
  /** Represents one range of geography and tile zoom levels for a bing data provider
@@ -132,7 +132,7 @@ export class BingMapsImageryLayerProvider extends MapLayerImageryProvider {
132
132
  copyrightMsg += "<br>";
133
133
  copyrightMsg += copyrights[i];
134
134
  }
135
- return IModelApp.makeLogoCard({ iconSrc: "images/bing.svg", heading: "Microsoft Bing", notice: copyrightMsg });
135
+ return IModelApp.makeLogoCard({ iconSrc: `${IModelApp.publicPath}images/bing.svg`, heading: "Microsoft Bing", notice: copyrightMsg });
136
136
  }
137
137
  // initializes the BingImageryProvider by reading the templateUrl, logo image, and attribution list.
138
138
  async initialize() {
@@ -1 +1 @@
1
- {"version":3,"file":"BingImageryProvider.js","sourceRoot":"","sources":["../../../../../src/tile/map/ImageryProviders/BingImageryProvider.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, BentleyError, IModelStatus } from \"@itwin/core-bentley\";\r\nimport { Range2d } from \"@itwin/core-geometry\";\r\nimport { ImageSource, MapLayerSettings } from \"@itwin/core-common\";\r\nimport { request, RequestOptions, Response } from \"@bentley/itwin-client\";\r\nimport { IModelApp } from \"../../../IModelApp\";\r\nimport { ScreenViewport } from \"../../../Viewport\";\r\nimport {\r\n MapLayerImageryProvider, MapTile, MapTilingScheme, QuadId,\r\n Tile, WebMercatorTilingScheme,\r\n} from \"../../internal\";\r\n\r\n/** Represents one range of geography and tile zoom levels for a bing data provider\r\n * @internal\r\n */\r\nclass Coverage {\r\n constructor(private _lowerLeftLatitude: number,\r\n private _lowerLeftLongitude: number,\r\n private _upperRightLatitude: number,\r\n private _upperRightLongitude: number,\r\n private _minimumZoomLevel: number,\r\n private _maximumZoomLevel: number) { }\r\n\r\n public overlaps(quadId: QuadId, tilingScheme: MapTilingScheme): boolean {\r\n const range: Range2d = quadId.getLatLongRange(tilingScheme);\r\n if (quadId.level < this._minimumZoomLevel)\r\n return false;\r\n if (quadId.level > this._maximumZoomLevel)\r\n return false;\r\n if (range.low.x > this._upperRightLongitude)\r\n return false;\r\n if (range.low.y > this._upperRightLatitude)\r\n return false;\r\n if (range.high.x < this._lowerLeftLongitude)\r\n return false;\r\n if (range.high.y < this._lowerLeftLatitude)\r\n return false;\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Represents the copyright message and an array of coverage data for one of bing's data providers (HERE for example).\r\n * @internal\r\n */\r\nclass BingAttribution {\r\n constructor(public copyrightMessage: string, private _coverages: Coverage[]) { }\r\n\r\n public matchesTile(tile: Tile, tilingScheme: MapTilingScheme): boolean {\r\n const quadId = QuadId.createFromContentId(tile.contentId);\r\n for (const coverage of this._coverages) {\r\n if (coverage.overlaps(quadId, tilingScheme))\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n\r\n// in deployed applications, we can only make https requests, but the Bing Maps metadata request returns templates with \"http:\".\r\n// This function fixes those.\r\nfunction replaceHttpWithHttps(originalUrl: string) {\r\n return originalUrl.startsWith(\"http:\") ? \"https:\".concat(originalUrl.slice(5)) : originalUrl;\r\n}\r\n\r\n/** @internal */\r\nexport class BingMapsImageryLayerProvider extends MapLayerImageryProvider {\r\n private _urlTemplate?: string;\r\n private _urlSubdomains?: string[];\r\n private _zoomMax: number;\r\n private _tileHeight: number;\r\n private _tileWidth: number;\r\n private _attributions?: BingAttribution[]; // array of Bing's data providers.\r\n private _mapTilingScheme: MapTilingScheme;\r\n private _urlBase: string;\r\n\r\n constructor(settings: MapLayerSettings) {\r\n super(settings, true);\r\n this._urlBase = settings.url;\r\n this._zoomMax = 0;\r\n this._tileHeight = this._tileWidth = 0;\r\n this._mapTilingScheme = new WebMercatorTilingScheme();\r\n }\r\n\r\n public get tileWidth(): number { return this._tileWidth; }\r\n public get tileHeight(): number { return this._tileHeight; }\r\n\r\n private tileXYToQuadKey(tileX: number, tileY: number, zoomLevel: number) {\r\n // from C# example in bing documentation https://msdn.microsoft.com/en-us/library/bb259689.aspx\r\n let quadKey: string = \"\";\r\n\r\n // Root tile is not displayable. Returns 0 for _GetMaximumSize(). Should not end up here.\r\n assert(0 !== zoomLevel);\r\n\r\n for (let i: number = zoomLevel; i > 0; i--) {\r\n let digit: number = 0x30; // '0'\r\n const mask: number = 1 << (i - 1);\r\n if ((tileX & mask) !== 0) {\r\n digit++;\r\n }\r\n if ((tileY & mask) !== 0) {\r\n digit++;\r\n digit++;\r\n }\r\n quadKey = quadKey.concat(String.fromCharCode(digit));\r\n }\r\n return quadKey;\r\n }\r\n\r\n // construct the Url from the desired Tile\r\n public async constructUrl(row: number, column: number, zoomLevel: number): Promise<string> {\r\n // From the tile, get a \"quadKey\" the Microsoft way.\r\n const quadKey: string = this.tileXYToQuadKey(column, row, zoomLevel);\r\n const subdomain: string = this._urlSubdomains![(row + column) % this._urlSubdomains!.length];\r\n\r\n // from the template url, construct the tile url.\r\n let url: string = this._urlTemplate!.replace(\"{subdomain}\", subdomain);\r\n url = url.replace(\"{quadkey}\", quadKey);\r\n\r\n return url;\r\n }\r\n\r\n // gets the attributions that match the tile set.\r\n private getMatchingAttributions(tiles: Set<Tile> | undefined): BingAttribution[] {\r\n const matchingAttributions: BingAttribution[] = new Array<BingAttribution>();\r\n if (!this._attributions || !tiles)\r\n return matchingAttributions;\r\n\r\n const unmatchedSet: BingAttribution[] = this._attributions.slice();\r\n for (const tile of tiles) {\r\n if (tile instanceof MapTile)\r\n // compare to the set of Bing attributions that we have not yet matched.\r\n for (let iAttr = 0; iAttr < unmatchedSet.length; iAttr++) {\r\n const attribution = unmatchedSet[iAttr];\r\n if (attribution && attribution.matchesTile(tile, this._mapTilingScheme)) {\r\n matchingAttributions.push(attribution);\r\n delete unmatchedSet[iAttr];\r\n }\r\n }\r\n }\r\n return matchingAttributions;\r\n }\r\n\r\n public override getLogo(vp: ScreenViewport): HTMLTableRowElement | undefined {\r\n const tiles = IModelApp.tileAdmin.getTilesForViewport(vp)?.selected;\r\n const matchingAttributions = this.getMatchingAttributions(tiles);\r\n const copyrights: string[] = [];\r\n for (const match of matchingAttributions)\r\n copyrights.push(match.copyrightMessage);\r\n\r\n let copyrightMsg = \"\";\r\n for (let i = 0; i < copyrights.length; ++i) {\r\n if (i > 0)\r\n copyrightMsg += \"<br>\";\r\n copyrightMsg += copyrights[i];\r\n }\r\n return IModelApp.makeLogoCard({ iconSrc: \"images/bing.svg\", heading: \"Microsoft Bing\", notice: copyrightMsg });\r\n }\r\n\r\n // initializes the BingImageryProvider by reading the templateUrl, logo image, and attribution list.\r\n public override async initialize(): Promise<void> {\r\n // get the template url\r\n const bingRequestUrl = this._urlBase.replace(\"{bingKey}\", this._settings.accessKey ? this._settings.accessKey.value : \"\");\r\n const requestOptions: RequestOptions = { method: \"GET\" };\r\n\r\n try {\r\n const response: Response = await request(bingRequestUrl, requestOptions);\r\n const bingResponseProps: any = response.body;\r\n\r\n const thisResourceSetProps = bingResponseProps.resourceSets[0];\r\n const thisResourceProps = thisResourceSetProps.resources[0];\r\n this._zoomMax = thisResourceProps.zoomMax;\r\n this._tileHeight = thisResourceProps.imageHeight;\r\n this._tileWidth = thisResourceProps.imageWidth;\r\n this._urlTemplate = replaceHttpWithHttps(thisResourceProps.imageUrl.replace(\"{culture}\", \"en-US\")); // NEEDSWORK - get locale from somewhere.\r\n this._urlSubdomains = thisResourceProps.imageUrlSubdomains;\r\n // read the list of Bing's data suppliers and the range of data they provide. Used in calculation of copyright message.\r\n this.readAttributions(thisResourceProps.imageryProviders);\r\n\r\n // Bing sometimes provides tiles that have nothing but a camera icon in the middle of them when you ask\r\n // for tiles at zoom levels where they don't have data. Their application stops you from zooming in when that's the\r\n // case, but we can't stop - the user might want to look at design data a closer zoom. So we intentionally load such\r\n // a tile, and then compare other tiles to it, rejecting them if they match.\r\n this.loadTile(0, 0, this._zoomMax - 1).then((tileData: ImageSource | undefined) => { // eslint-disable-line @typescript-eslint/no-floating-promises\r\n if (tileData !== undefined) this._missingTileData = tileData.data as Uint8Array;\r\n });\r\n } catch (error) {\r\n throw new BentleyError(IModelStatus.BadModel, \"Error in Bing Server communications\");\r\n }\r\n }\r\n\r\n // reads the list of Bing data providers and the map range for which they each provide data.\r\n private readAttributions(attributionProps: any) {\r\n for (const thisAttributionProps of attributionProps) {\r\n const copyrightMessage: string = thisAttributionProps.attribution;\r\n const coverages: Coverage[] = new Array<Coverage>();\r\n for (const thisCoverageProps of thisAttributionProps.coverageAreas) {\r\n const thisCoverage = new Coverage(thisCoverageProps.bbox[0], thisCoverageProps.bbox[1], thisCoverageProps.bbox[2], thisCoverageProps.bbox[3],\r\n thisCoverageProps.zoomMin, thisCoverageProps.zoomMax);\r\n coverages.push(thisCoverage);\r\n }\r\n const thisAttribution: BingAttribution = new BingAttribution(copyrightMessage, coverages);\r\n if (!this._attributions)\r\n this._attributions = new Array<BingAttribution>();\r\n this._attributions.push(thisAttribution);\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"BingImageryProvider.js","sourceRoot":"","sources":["../../../../../src/tile/map/ImageryProviders/BingImageryProvider.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, BentleyError, IModelStatus } from \"@itwin/core-bentley\";\r\nimport { Range2d } from \"@itwin/core-geometry\";\r\nimport { ImageSource, MapLayerSettings } from \"@itwin/core-common\";\r\nimport { request, RequestOptions, Response } from \"../../../request/Request\";\r\nimport { IModelApp } from \"../../../IModelApp\";\r\nimport { ScreenViewport } from \"../../../Viewport\";\r\nimport {\r\n MapLayerImageryProvider, MapTile, MapTilingScheme, QuadId,\r\n Tile, WebMercatorTilingScheme,\r\n} from \"../../internal\";\r\n\r\n/** Represents one range of geography and tile zoom levels for a bing data provider\r\n * @internal\r\n */\r\nclass Coverage {\r\n constructor(private _lowerLeftLatitude: number,\r\n private _lowerLeftLongitude: number,\r\n private _upperRightLatitude: number,\r\n private _upperRightLongitude: number,\r\n private _minimumZoomLevel: number,\r\n private _maximumZoomLevel: number) { }\r\n\r\n public overlaps(quadId: QuadId, tilingScheme: MapTilingScheme): boolean {\r\n const range: Range2d = quadId.getLatLongRange(tilingScheme);\r\n if (quadId.level < this._minimumZoomLevel)\r\n return false;\r\n if (quadId.level > this._maximumZoomLevel)\r\n return false;\r\n if (range.low.x > this._upperRightLongitude)\r\n return false;\r\n if (range.low.y > this._upperRightLatitude)\r\n return false;\r\n if (range.high.x < this._lowerLeftLongitude)\r\n return false;\r\n if (range.high.y < this._lowerLeftLatitude)\r\n return false;\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Represents the copyright message and an array of coverage data for one of bing's data providers (HERE for example).\r\n * @internal\r\n */\r\nclass BingAttribution {\r\n constructor(public copyrightMessage: string, private _coverages: Coverage[]) { }\r\n\r\n public matchesTile(tile: Tile, tilingScheme: MapTilingScheme): boolean {\r\n const quadId = QuadId.createFromContentId(tile.contentId);\r\n for (const coverage of this._coverages) {\r\n if (coverage.overlaps(quadId, tilingScheme))\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n\r\n// in deployed applications, we can only make https requests, but the Bing Maps metadata request returns templates with \"http:\".\r\n// This function fixes those.\r\nfunction replaceHttpWithHttps(originalUrl: string) {\r\n return originalUrl.startsWith(\"http:\") ? \"https:\".concat(originalUrl.slice(5)) : originalUrl;\r\n}\r\n\r\n/** @internal */\r\nexport class BingMapsImageryLayerProvider extends MapLayerImageryProvider {\r\n private _urlTemplate?: string;\r\n private _urlSubdomains?: string[];\r\n private _zoomMax: number;\r\n private _tileHeight: number;\r\n private _tileWidth: number;\r\n private _attributions?: BingAttribution[]; // array of Bing's data providers.\r\n private _mapTilingScheme: MapTilingScheme;\r\n private _urlBase: string;\r\n\r\n constructor(settings: MapLayerSettings) {\r\n super(settings, true);\r\n this._urlBase = settings.url;\r\n this._zoomMax = 0;\r\n this._tileHeight = this._tileWidth = 0;\r\n this._mapTilingScheme = new WebMercatorTilingScheme();\r\n }\r\n\r\n public get tileWidth(): number { return this._tileWidth; }\r\n public get tileHeight(): number { return this._tileHeight; }\r\n\r\n private tileXYToQuadKey(tileX: number, tileY: number, zoomLevel: number) {\r\n // from C# example in bing documentation https://msdn.microsoft.com/en-us/library/bb259689.aspx\r\n let quadKey: string = \"\";\r\n\r\n // Root tile is not displayable. Returns 0 for _GetMaximumSize(). Should not end up here.\r\n assert(0 !== zoomLevel);\r\n\r\n for (let i: number = zoomLevel; i > 0; i--) {\r\n let digit: number = 0x30; // '0'\r\n const mask: number = 1 << (i - 1);\r\n if ((tileX & mask) !== 0) {\r\n digit++;\r\n }\r\n if ((tileY & mask) !== 0) {\r\n digit++;\r\n digit++;\r\n }\r\n quadKey = quadKey.concat(String.fromCharCode(digit));\r\n }\r\n return quadKey;\r\n }\r\n\r\n // construct the Url from the desired Tile\r\n public async constructUrl(row: number, column: number, zoomLevel: number): Promise<string> {\r\n // From the tile, get a \"quadKey\" the Microsoft way.\r\n const quadKey: string = this.tileXYToQuadKey(column, row, zoomLevel);\r\n const subdomain: string = this._urlSubdomains![(row + column) % this._urlSubdomains!.length];\r\n\r\n // from the template url, construct the tile url.\r\n let url: string = this._urlTemplate!.replace(\"{subdomain}\", subdomain);\r\n url = url.replace(\"{quadkey}\", quadKey);\r\n\r\n return url;\r\n }\r\n\r\n // gets the attributions that match the tile set.\r\n private getMatchingAttributions(tiles: Set<Tile> | undefined): BingAttribution[] {\r\n const matchingAttributions: BingAttribution[] = new Array<BingAttribution>();\r\n if (!this._attributions || !tiles)\r\n return matchingAttributions;\r\n\r\n const unmatchedSet: BingAttribution[] = this._attributions.slice();\r\n for (const tile of tiles) {\r\n if (tile instanceof MapTile)\r\n // compare to the set of Bing attributions that we have not yet matched.\r\n for (let iAttr = 0; iAttr < unmatchedSet.length; iAttr++) {\r\n const attribution = unmatchedSet[iAttr];\r\n if (attribution && attribution.matchesTile(tile, this._mapTilingScheme)) {\r\n matchingAttributions.push(attribution);\r\n delete unmatchedSet[iAttr];\r\n }\r\n }\r\n }\r\n return matchingAttributions;\r\n }\r\n\r\n public override getLogo(vp: ScreenViewport): HTMLTableRowElement | undefined {\r\n const tiles = IModelApp.tileAdmin.getTilesForViewport(vp)?.selected;\r\n const matchingAttributions = this.getMatchingAttributions(tiles);\r\n const copyrights: string[] = [];\r\n for (const match of matchingAttributions)\r\n copyrights.push(match.copyrightMessage);\r\n\r\n let copyrightMsg = \"\";\r\n for (let i = 0; i < copyrights.length; ++i) {\r\n if (i > 0)\r\n copyrightMsg += \"<br>\";\r\n copyrightMsg += copyrights[i];\r\n }\r\n return IModelApp.makeLogoCard({ iconSrc: `${IModelApp.publicPath}images/bing.svg`, heading: \"Microsoft Bing\", notice: copyrightMsg });\r\n }\r\n\r\n // initializes the BingImageryProvider by reading the templateUrl, logo image, and attribution list.\r\n public override async initialize(): Promise<void> {\r\n // get the template url\r\n const bingRequestUrl = this._urlBase.replace(\"{bingKey}\", this._settings.accessKey ? this._settings.accessKey.value : \"\");\r\n const requestOptions: RequestOptions = { method: \"GET\" };\r\n\r\n try {\r\n const response: Response = await request(bingRequestUrl, requestOptions);\r\n const bingResponseProps: any = response.body;\r\n\r\n const thisResourceSetProps = bingResponseProps.resourceSets[0];\r\n const thisResourceProps = thisResourceSetProps.resources[0];\r\n this._zoomMax = thisResourceProps.zoomMax;\r\n this._tileHeight = thisResourceProps.imageHeight;\r\n this._tileWidth = thisResourceProps.imageWidth;\r\n this._urlTemplate = replaceHttpWithHttps(thisResourceProps.imageUrl.replace(\"{culture}\", \"en-US\")); // NEEDSWORK - get locale from somewhere.\r\n this._urlSubdomains = thisResourceProps.imageUrlSubdomains;\r\n // read the list of Bing's data suppliers and the range of data they provide. Used in calculation of copyright message.\r\n this.readAttributions(thisResourceProps.imageryProviders);\r\n\r\n // Bing sometimes provides tiles that have nothing but a camera icon in the middle of them when you ask\r\n // for tiles at zoom levels where they don't have data. Their application stops you from zooming in when that's the\r\n // case, but we can't stop - the user might want to look at design data a closer zoom. So we intentionally load such\r\n // a tile, and then compare other tiles to it, rejecting them if they match.\r\n this.loadTile(0, 0, this._zoomMax - 1).then((tileData: ImageSource | undefined) => { // eslint-disable-line @typescript-eslint/no-floating-promises\r\n if (tileData !== undefined) this._missingTileData = tileData.data as Uint8Array;\r\n });\r\n } catch (error) {\r\n throw new BentleyError(IModelStatus.BadModel, \"Error in Bing Server communications\");\r\n }\r\n }\r\n\r\n // reads the list of Bing data providers and the map range for which they each provide data.\r\n private readAttributions(attributionProps: any) {\r\n for (const thisAttributionProps of attributionProps) {\r\n const copyrightMessage: string = thisAttributionProps.attribution;\r\n const coverages: Coverage[] = new Array<Coverage>();\r\n for (const thisCoverageProps of thisAttributionProps.coverageAreas) {\r\n const thisCoverage = new Coverage(thisCoverageProps.bbox[0], thisCoverageProps.bbox[1], thisCoverageProps.bbox[2], thisCoverageProps.bbox[3],\r\n thisCoverageProps.zoomMin, thisCoverageProps.zoomMax);\r\n coverages.push(thisCoverage);\r\n }\r\n const thisAttribution: BingAttribution = new BingAttribution(copyrightMessage, coverages);\r\n if (!this._attributions)\r\n this._attributions = new Array<BingAttribution>();\r\n this._attributions.push(thisAttribution);\r\n }\r\n }\r\n}\r\n"]}
@@ -1,18 +1,26 @@
1
1
  import { Cartographic, MapLayerSettings } from "@itwin/core-common";
2
2
  import { ImageryMapTileTree, MapLayerImageryProvider, QuadId } from "../../internal";
3
3
  /** @internal */
4
+ export interface WmsCrsSupport {
5
+ support3857: boolean;
6
+ support4326: boolean;
7
+ }
8
+ /** @internal */
4
9
  export declare class WmsMapLayerImageryProvider extends MapLayerImageryProvider {
5
10
  private _capabilities?;
6
11
  private _allLayersRange?;
7
12
  private _subLayerRanges;
8
13
  private _baseUrl;
9
14
  private _isVersion1_1;
15
+ private _crsSupport;
10
16
  constructor(settings: MapLayerSettings);
11
17
  initialize(): Promise<void>;
12
18
  private getVisibleLayerString;
13
19
  private getVisibleLayers;
20
+ private getVisibleLayersSrs;
14
21
  private getQueryableLayers;
15
22
  private getVisibleQueryableLayersString;
23
+ getCrsSupport(): WmsCrsSupport;
16
24
  constructUrl(row: number, column: number, zoomLevel: number): Promise<string>;
17
25
  getToolTip(strings: string[], quadId: QuadId, carto: Cartographic, tree: ImageryMapTileTree): Promise<void>;
18
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WmsMapLayerImageryProvider.d.ts","sourceRoot":"","sources":["../../../../../src/tile/map/ImageryProviders/WmsMapLayerImageryProvider.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAe,MAAM,oBAAoB,CAAC;AAEjF,OAAO,EACL,kBAAkB,EAAqB,uBAAuB,EAAiC,MAAM,EAEtG,MAAM,gBAAgB,CAAC;AAOxB,gBAAgB;AAChB,qBAAa,0BAA2B,SAAQ,uBAAuB;IACrE,OAAO,CAAC,aAAa,CAAC,CAAkB;IACxC,OAAO,CAAC,eAAe,CAAC,CAAoB;IAC5C,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,aAAa,CAAS;gBAClB,QAAQ,EAAE,gBAAgB;IAKhB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAyCjD,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,+BAA+B;IAS1B,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMpE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CAoBlI"}
1
+ {"version":3,"file":"WmsMapLayerImageryProvider.d.ts","sourceRoot":"","sources":["../../../../../src/tile/map/ImageryProviders/WmsMapLayerImageryProvider.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAoC,MAAM,oBAAoB,CAAC;AAEtG,OAAO,EACL,kBAAkB,EAAqB,uBAAuB,EAAiC,MAAM,EAEtG,MAAM,gBAAgB,CAAC;AAOxB,gBAAgB;AAChB,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,gBAAgB;AAChB,qBAAa,0BAA2B,SAAQ,uBAAuB;IACrE,OAAO,CAAC,aAAa,CAAC,CAAkB;IACxC,OAAO,CAAC,eAAe,CAAC,CAAoB;IAC5C,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,WAAW,CAA0B;gBAEjC,QAAQ,EAAE,gBAAgB;IAKhB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA2CjD,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,+BAA+B;IAQhC,aAAa,IAAI,aAAa;IAyBxB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBpE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CAoBlI"}
@@ -48,6 +48,7 @@ export class WmsMapLayerImageryProvider extends MapLayerImageryProvider {
48
48
  }
49
49
  if (!this.cartoRange)
50
50
  this.cartoRange = this._allLayersRange;
51
+ this._crsSupport = this.getCrsSupport();
51
52
  }
52
53
  }
53
54
  catch (error) {
@@ -63,14 +64,17 @@ export class WmsMapLayerImageryProvider extends MapLayerImageryProvider {
63
64
  }
64
65
  }
65
66
  getVisibleLayerString() {
66
- const layerNames = this.getVisibleLayers();
67
+ const layerNames = this.getVisibleLayers().map((layer) => layer.name);
67
68
  return layerNames.join("%2C");
68
69
  }
69
70
  getVisibleLayers() {
70
- const layerNames = new Array();
71
- this._settings.subLayers.forEach((subLayer) => { if (this._settings.isSubLayerVisible(subLayer) && subLayer.isNamed)
72
- layerNames.push(subLayer.name); });
73
- return layerNames;
71
+ return this._settings.subLayers.filter((subLayer) => this._settings.isSubLayerVisible(subLayer) && subLayer.isNamed);
72
+ }
73
+ getVisibleLayersSrs() {
74
+ var _a;
75
+ const visibleLayers = this.getVisibleLayers();
76
+ const visibleLayerNames = visibleLayers.map((layer) => layer.name);
77
+ return (_a = this._capabilities) === null || _a === void 0 ? void 0 : _a.getSubLayersCrs(visibleLayerNames);
74
78
  }
75
79
  getQueryableLayers() {
76
80
  var _a, _b, _c;
@@ -88,17 +92,54 @@ export class WmsMapLayerImageryProvider extends MapLayerImageryProvider {
88
92
  }
89
93
  getVisibleQueryableLayersString() {
90
94
  const layers = new Array();
91
- const queryables = this.getQueryableLayers();
92
- const visibles = this.getVisibleLayers();
93
- queryables.forEach((layer) => { if (visibles.includes(layer))
95
+ const queryable = this.getQueryableLayers();
96
+ const visibleLayerNames = this.getVisibleLayers().map((layer) => layer.name);
97
+ queryable.forEach((layer) => { if (visibleLayerNames.includes(layer))
94
98
  layers.push(layer); });
95
99
  return layers.join("%2C");
96
100
  }
101
+ getCrsSupport() {
102
+ const layersCrs = this.getVisibleLayersSrs();
103
+ let support3857;
104
+ let support4326;
105
+ if (layersCrs) {
106
+ for (const [_layerName, crs] of layersCrs) {
107
+ if (crs.find((layerCrs) => { return layerCrs.includes("3857"); }) === undefined) {
108
+ support3857 = false;
109
+ }
110
+ else if (support3857 === undefined) {
111
+ support3857 = true;
112
+ }
113
+ if (crs.find((layerCrs) => { return layerCrs.includes("4326"); }) === undefined) {
114
+ support4326 = false;
115
+ }
116
+ else if (support4326 === undefined) {
117
+ support4326 = true;
118
+ }
119
+ }
120
+ }
121
+ return { support3857: support3857 !== null && support3857 !== void 0 ? support3857 : false, support4326: support4326 !== null && support4326 !== void 0 ? support4326 : false };
122
+ }
97
123
  // construct the Url from the desired Tile
98
124
  async constructUrl(row, column, zoomLevel) {
99
- const bboxString = this.getEPSG3857ExtentString(row, column, zoomLevel);
125
+ var _a, _b;
126
+ let bboxString = "";
127
+ let crsString = "";
128
+ // We support 2 SRS: EPSG:3857 and EPSG:4326, we prefer EPSG:3857.
129
+ if ((_a = this._crsSupport) === null || _a === void 0 ? void 0 : _a.support3857) {
130
+ bboxString = this.getEPSG3857ExtentString(row, column, zoomLevel);
131
+ crsString = "EPSG%3A3857";
132
+ }
133
+ else if ((_b = this._crsSupport) === null || _b === void 0 ? void 0 : _b.support4326) {
134
+ // The WMS 1.3.0 specification mandates using the axis ordering as defined in the EPSG database.
135
+ // For instance, for EPSG:4326 the axis ordering is latitude/longitude, or north/east.
136
+ bboxString = this.getEPSG4326ExtentString(row, column, zoomLevel, true); // lat/long ordering
137
+ crsString = "EPSG%3A4326";
138
+ }
100
139
  const layerString = this.getVisibleLayerString();
101
- return `${this._baseUrl}?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=${this.transparentBackgroundString}&LAYERS=${layerString}&WIDTH=${this.tileSize}&HEIGHT=${this.tileSize}&CRS=EPSG%3A3857&STYLES=&BBOX=${bboxString}`;
140
+ if (bboxString.length === 0 || crsString.length === 0 || layerString.length === 0)
141
+ return "";
142
+ return `${this._baseUrl}?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=${this.transparentBackgroundString}&LAYERS=${layerString}&WIDTH=${this.tileSize}&HEIGHT=${this.tileSize}&CRS=${crsString}&STYLES=&BBOX=${bboxString}`;
102
143
  }
103
144
  async getToolTip(strings, quadId, carto, tree) {
104
145
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"WmsMapLayerImageryProvider.js","sourceRoot":"","sources":["../../../../../src/tile/map/ImageryProviders/WmsMapLayerImageryProvider.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 { IModelStatus } from \"@itwin/core-bentley\";\r\nimport { Point2d } from \"@itwin/core-geometry\";\r\nimport { Cartographic, MapLayerSettings, ServerError } from \"@itwin/core-common\";\r\n\r\nimport {\r\n ImageryMapTileTree, MapCartoRectangle, MapLayerImageryProvider, MapLayerImageryProviderStatus, QuadId, WmsCapabilities,\r\n WmsCapability, WmsUtilities,\r\n} from \"../../internal\";\r\n\r\n// eslint-disable-next-line prefer-const\r\nlet doToolTips = true;\r\n\r\nconst scratchPoint2d = Point2d.createZero();\r\n\r\n/** @internal */\r\nexport class WmsMapLayerImageryProvider extends MapLayerImageryProvider {\r\n private _capabilities?: WmsCapabilities;\r\n private _allLayersRange?: MapCartoRectangle;\r\n private _subLayerRanges = new Map<string, MapCartoRectangle>();\r\n private _baseUrl: string;\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private _isVersion1_1 = false;\r\n constructor(settings: MapLayerSettings) {\r\n super(settings, false);\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 WmsCapabilities.create(this._baseUrl);\r\n if (undefined !== this._capabilities) {\r\n this._allLayersRange = this._capabilities.cartoRange;\r\n this._isVersion1_1 = this._capabilities.version !== undefined && 0 === this._capabilities.version.indexOf(\"1.1\");\r\n if (this._capabilities.layer && Array.isArray(this._capabilities.layer.subLayers)) {\r\n const mapCartoRanges = ((subLayer: WmsCapability.SubLayer) => {\r\n if (Array.isArray(subLayer.children))\r\n subLayer.children.forEach((child) => mapCartoRanges(child));\r\n else if (subLayer.cartoRange)\r\n this._subLayerRanges.set(subLayer.name, subLayer.cartoRange);\r\n });\r\n this._capabilities.layer.subLayers.forEach((subLayer) => mapCartoRanges(subLayer));\r\n this._settings.subLayers.forEach((subLayer) => {\r\n if (subLayer.isNamed && this._settings.isSubLayerVisible(subLayer)) {\r\n const subLayerRange = this._subLayerRanges.get(subLayer.name);\r\n if (subLayerRange)\r\n if (this.cartoRange)\r\n this.cartoRange.extendRange(subLayerRange);\r\n else\r\n this.cartoRange = subLayerRange.clone();\r\n }\r\n });\r\n }\r\n\r\n if (!this.cartoRange)\r\n this.cartoRange = this._allLayersRange;\r\n }\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\r\n private getVisibleLayerString() {\r\n const layerNames = this.getVisibleLayers();\r\n return layerNames.join(\"%2C\");\r\n }\r\n private getVisibleLayers(): string[] {\r\n const layerNames = new Array<string>();\r\n this._settings.subLayers.forEach((subLayer) => { if (this._settings.isSubLayerVisible(subLayer) && subLayer.isNamed) layerNames.push(subLayer.name); });\r\n return layerNames;\r\n }\r\n\r\n private getQueryableLayers(): string[] {\r\n const layerNames = new Array<string>();\r\n const getQueryableSubLayers = ((subLayer: WmsCapability.SubLayer) => {\r\n if (!subLayer)\r\n return;\r\n\r\n if (subLayer.queryable)\r\n layerNames.push(subLayer.name);\r\n\r\n subLayer.children?.forEach((childSubLayer) => { getQueryableSubLayers(childSubLayer); });\r\n });\r\n this._capabilities?.layer?.subLayers?.forEach((subLayer) => { getQueryableSubLayers(subLayer); });\r\n return layerNames;\r\n }\r\n\r\n private getVisibleQueryableLayersString(): string {\r\n const layers = new Array<string>();\r\n const queryables = this.getQueryableLayers();\r\n const visibles = this.getVisibleLayers();\r\n queryables.forEach((layer: string) => { if (visibles.includes(layer)) layers.push(layer); });\r\n return layers.join(\"%2C\");\r\n }\r\n\r\n // construct the Url from the desired Tile\r\n public async constructUrl(row: number, column: number, zoomLevel: number): Promise<string> {\r\n const bboxString = this.getEPSG3857ExtentString(row, column, zoomLevel);\r\n const layerString = this.getVisibleLayerString();\r\n return `${this._baseUrl}?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=${this.transparentBackgroundString}&LAYERS=${layerString}&WIDTH=${this.tileSize}&HEIGHT=${this.tileSize}&CRS=EPSG%3A3857&STYLES=&BBOX=${bboxString}`;\r\n }\r\n\r\n public override async getToolTip(strings: string[], quadId: QuadId, carto: Cartographic, tree: ImageryMapTileTree): Promise<void> {\r\n await super.getToolTip(strings, quadId, carto, tree);\r\n const infoFormats = this._capabilities?.featureInfoFormats;\r\n if (!doToolTips || undefined === infoFormats)\r\n return;\r\n let formatString = infoFormats.find((format) => format === \"text/html\");\r\n if (!formatString) formatString = infoFormats[0];\r\n\r\n const bboxString = this.getEPSG3857ExtentString(quadId.row, quadId.column, quadId.level);\r\n const layerString = this.getVisibleQueryableLayersString();\r\n if (layerString.length === 0)\r\n return;\r\n const rectangle = tree.getTileRectangle(quadId);\r\n const fraction = rectangle.worldToLocal(Point2d.create(carto.longitude, carto.latitude, scratchPoint2d))!;\r\n const x = Math.floor(.5 + fraction.x * this.tileSize);\r\n const y = Math.floor(.5 + (1.0 - fraction.y) * this.tileSize);\r\n const coordinateString = (false && this._isVersion1_1) ? `&x=${x}&y=${y}` : `&i=${x}&j=${y}`;\r\n const getFeatureUrl = `${this._baseUrl}?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetFeatureInfo&LAYERS=${layerString}&WIDTH=${this.tileSize}&HEIGHT=${this.tileSize}&CRS=EPSG%3A3857&BBOX=${bboxString}&QUERY_LAYERS=${layerString}${coordinateString}&info_format=${formatString}`;\r\n return this.toolTipFromUrl(strings, getFeatureUrl);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"WmsMapLayerImageryProvider.js","sourceRoot":"","sources":["../../../../../src/tile/map/ImageryProviders/WmsMapLayerImageryProvider.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 { IModelStatus } from \"@itwin/core-bentley\";\r\nimport { Point2d } from \"@itwin/core-geometry\";\r\nimport { Cartographic, MapLayerSettings, MapSubLayerSettings, ServerError } from \"@itwin/core-common\";\r\n\r\nimport {\r\n ImageryMapTileTree, MapCartoRectangle, MapLayerImageryProvider, MapLayerImageryProviderStatus, QuadId, WmsCapabilities,\r\n WmsCapability, WmsUtilities,\r\n} from \"../../internal\";\r\n\r\n// eslint-disable-next-line prefer-const\r\nlet doToolTips = true;\r\n\r\nconst scratchPoint2d = Point2d.createZero();\r\n\r\n/** @internal */\r\nexport interface WmsCrsSupport {\r\n support3857: boolean;\r\n support4326: boolean;\r\n}\r\n\r\n/** @internal */\r\nexport class WmsMapLayerImageryProvider extends MapLayerImageryProvider {\r\n private _capabilities?: WmsCapabilities;\r\n private _allLayersRange?: MapCartoRectangle;\r\n private _subLayerRanges = new Map<string, MapCartoRectangle>();\r\n private _baseUrl: string;\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private _isVersion1_1 = false;\r\n private _crsSupport: WmsCrsSupport|undefined;\r\n\r\n constructor(settings: MapLayerSettings) {\r\n super(settings, false);\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 WmsCapabilities.create(this._baseUrl);\r\n if (undefined !== this._capabilities) {\r\n this._allLayersRange = this._capabilities.cartoRange;\r\n this._isVersion1_1 = this._capabilities.version !== undefined && 0 === this._capabilities.version.indexOf(\"1.1\");\r\n if (this._capabilities.layer && Array.isArray(this._capabilities.layer.subLayers)) {\r\n const mapCartoRanges = ((subLayer: WmsCapability.SubLayer) => {\r\n if (Array.isArray(subLayer.children))\r\n subLayer.children.forEach((child) => mapCartoRanges(child));\r\n else if (subLayer.cartoRange)\r\n this._subLayerRanges.set(subLayer.name, subLayer.cartoRange);\r\n });\r\n this._capabilities.layer.subLayers.forEach((subLayer) => mapCartoRanges(subLayer));\r\n this._settings.subLayers.forEach((subLayer) => {\r\n if (subLayer.isNamed && this._settings.isSubLayerVisible(subLayer)) {\r\n const subLayerRange = this._subLayerRanges.get(subLayer.name);\r\n if (subLayerRange)\r\n if (this.cartoRange)\r\n this.cartoRange.extendRange(subLayerRange);\r\n else\r\n this.cartoRange = subLayerRange.clone();\r\n }\r\n });\r\n }\r\n\r\n if (!this.cartoRange)\r\n this.cartoRange = this._allLayersRange;\r\n\r\n this._crsSupport = this.getCrsSupport();\r\n }\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\r\n private getVisibleLayerString() {\r\n const layerNames = this.getVisibleLayers().map((layer)=>layer.name);\r\n return layerNames.join(\"%2C\");\r\n }\r\n\r\n private getVisibleLayers(): MapSubLayerSettings[] {\r\n return this._settings.subLayers.filter((subLayer) => this._settings.isSubLayerVisible(subLayer) && subLayer.isNamed);\r\n }\r\n\r\n private getVisibleLayersSrs() {\r\n const visibleLayers = this.getVisibleLayers();\r\n const visibleLayerNames = visibleLayers.map((layer) => layer.name);\r\n return this._capabilities?.getSubLayersCrs(visibleLayerNames);\r\n }\r\n\r\n private getQueryableLayers(): string[] {\r\n const layerNames = new Array<string>();\r\n const getQueryableSubLayers = ((subLayer: WmsCapability.SubLayer) => {\r\n if (!subLayer)\r\n return;\r\n\r\n if (subLayer.queryable)\r\n layerNames.push(subLayer.name);\r\n\r\n subLayer.children?.forEach((childSubLayer) => { getQueryableSubLayers(childSubLayer); });\r\n });\r\n this._capabilities?.layer?.subLayers?.forEach((subLayer) => { getQueryableSubLayers(subLayer); });\r\n return layerNames;\r\n }\r\n\r\n private getVisibleQueryableLayersString(): string {\r\n const layers = new Array<string>();\r\n const queryable = this.getQueryableLayers();\r\n const visibleLayerNames = this.getVisibleLayers().map((layer) => layer.name);\r\n queryable.forEach((layer: string) => { if (visibleLayerNames.includes(layer)) layers.push(layer); });\r\n return layers.join(\"%2C\");\r\n }\r\n\r\n public getCrsSupport(): WmsCrsSupport {\r\n const layersCrs = this.getVisibleLayersSrs();\r\n\r\n let support3857: boolean|undefined;\r\n let support4326: boolean|undefined;\r\n if (layersCrs) {\r\n for (const [_layerName, crs] of layersCrs) {\r\n if (crs.find((layerCrs) => {return layerCrs.includes(\"3857\");}) === undefined ) {\r\n support3857 = false;\r\n } else if (support3857 === undefined) {\r\n support3857 = true;\r\n }\r\n\r\n if (crs.find((layerCrs) => {return layerCrs.includes(\"4326\");}) === undefined ) {\r\n support4326 = false;\r\n } else if (support4326 === undefined) {\r\n support4326 = true;\r\n }\r\n }\r\n }\r\n\r\n return {support3857: support3857 ?? false, support4326: support4326 ?? false};\r\n }\r\n\r\n // construct the Url from the desired Tile\r\n public async constructUrl(row: number, column: number, zoomLevel: number): Promise<string> {\r\n\r\n let bboxString =\"\";\r\n let crsString =\"\";\r\n\r\n // We support 2 SRS: EPSG:3857 and EPSG:4326, we prefer EPSG:3857.\r\n if (this._crsSupport?.support3857) {\r\n bboxString = this.getEPSG3857ExtentString(row, column, zoomLevel);\r\n crsString= \"EPSG%3A3857\";\r\n } else if (this._crsSupport?.support4326) {\r\n // The WMS 1.3.0 specification mandates using the axis ordering as defined in the EPSG database.\r\n // For instance, for EPSG:4326 the axis ordering is latitude/longitude, or north/east.\r\n bboxString = this.getEPSG4326ExtentString(row, column, zoomLevel, true); // lat/long ordering\r\n crsString= \"EPSG%3A4326\";\r\n }\r\n\r\n const layerString = this.getVisibleLayerString();\r\n\r\n if (bboxString.length === 0 || crsString.length === 0 ||layerString.length === 0)\r\n return \"\";\r\n\r\n return `${this._baseUrl}?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=${this.transparentBackgroundString}&LAYERS=${layerString}&WIDTH=${this.tileSize}&HEIGHT=${this.tileSize}&CRS=${crsString}&STYLES=&BBOX=${bboxString}`;\r\n }\r\n\r\n public override async getToolTip(strings: string[], quadId: QuadId, carto: Cartographic, tree: ImageryMapTileTree): Promise<void> {\r\n await super.getToolTip(strings, quadId, carto, tree);\r\n const infoFormats = this._capabilities?.featureInfoFormats;\r\n if (!doToolTips || undefined === infoFormats)\r\n return;\r\n let formatString = infoFormats.find((format) => format === \"text/html\");\r\n if (!formatString) formatString = infoFormats[0];\r\n\r\n const bboxString = this.getEPSG3857ExtentString(quadId.row, quadId.column, quadId.level);\r\n const layerString = this.getVisibleQueryableLayersString();\r\n if (layerString.length === 0)\r\n return;\r\n const rectangle = tree.getTileRectangle(quadId);\r\n const fraction = rectangle.worldToLocal(Point2d.create(carto.longitude, carto.latitude, scratchPoint2d))!;\r\n const x = Math.floor(.5 + fraction.x * this.tileSize);\r\n const y = Math.floor(.5 + (1.0 - fraction.y) * this.tileSize);\r\n const coordinateString = (false && this._isVersion1_1) ? `&x=${x}&y=${y}` : `&i=${x}&j=${y}`;\r\n const getFeatureUrl = `${this._baseUrl}?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetFeatureInfo&LAYERS=${layerString}&WIDTH=${this.tileSize}&HEIGHT=${this.tileSize}&CRS=EPSG%3A3857&BBOX=${bboxString}&QUERY_LAYERS=${layerString}${coordinateString}&info_format=${formatString}`;\r\n return this.toolTipFromUrl(strings, getFeatureUrl);\r\n }\r\n}\r\n"]}
@@ -1,17 +1,22 @@
1
1
  import { MapLayerSettings } from "@itwin/core-common";
2
- import { MapLayerImageryProvider } from "../../internal";
2
+ import { ImageryMapTile, MapLayerImageryProvider, QuadId } from "../../internal";
3
3
  /** @internal */
4
4
  export declare class WmtsMapLayerImageryProvider extends MapLayerImageryProvider {
5
5
  private _baseUrl;
6
6
  private _capabilities?;
7
7
  private _preferredLayerTileMatrixSet;
8
8
  private _preferredLayerStyle;
9
+ displayedLayerName: string;
9
10
  get mutualExclusiveSubLayer(): boolean;
10
11
  constructor(settings: MapLayerSettings);
11
12
  initialize(): Promise<void>;
13
+ private initDisplayedLayer;
12
14
  private initPreferredTileMatrixSet;
13
15
  private initPreferredStyle;
14
16
  private initCartoRange;
17
+ private getDisplayedTileMatrixSetAndLimits;
18
+ protected _generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void): void;
19
+ get useGeographicTilingScheme(): boolean;
15
20
  constructUrl(row: number, column: number, zoomLevel: number): Promise<string>;
16
21
  }
17
22
  //# sourceMappingURL=WmtsMapLayerImageryProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WmtsMapLayerImageryProvider.d.ts","sourceRoot":"","sources":["../../../../../src/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAe,MAAM,oBAAoB,CAAC;AACnE,OAAO,EACL,uBAAuB,EAGxB,MAAM,gBAAgB,CAAC;AAExB,gBAAgB;AAChB,qBAAa,2BAA4B,SAAQ,uBAAuB;IACtE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAAC,CAAmB;IACzC,OAAO,CAAC,4BAA4B,CAAmD;IACvF,OAAO,CAAC,oBAAoB,CAA2C;IAEvE,IAAoB,uBAAuB,IAAI,OAAO,CAAiB;gBAE3D,QAAQ,EAAE,gBAAgB;IAKhB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBjD,OAAO,CAAC,0BAA0B;IA8BlC,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,cAAc;IAYT,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAqB3F"}
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"}