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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1232) hide show
  1. package/CHANGELOG.md +89 -1
  2. package/LICENSE.md +1 -1
  3. package/lib/cjs/AccuSnap.js +3 -3
  4. package/lib/cjs/AccuSnap.js.map +1 -1
  5. package/lib/cjs/ApproximateTerrainHeights.d.ts.map +1 -1
  6. package/lib/cjs/ApproximateTerrainHeights.js +10 -5
  7. package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
  8. package/lib/cjs/BackgroundMapGeometry.d.ts +1 -1
  9. package/lib/cjs/BackgroundMapGeometry.d.ts.map +1 -1
  10. package/lib/cjs/BackgroundMapGeometry.js +2 -2
  11. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  12. package/lib/cjs/BingLocation.js +2 -2
  13. package/lib/cjs/BingLocation.js.map +1 -1
  14. package/lib/cjs/CheckpointConnection.js +1 -1
  15. package/lib/cjs/CheckpointConnection.js.map +1 -1
  16. package/lib/cjs/ContextRealityModelState.js +1 -1
  17. package/lib/cjs/ContextRealityModelState.js.map +1 -1
  18. package/lib/cjs/DisplayStyleState.d.ts +10 -163
  19. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  20. package/lib/cjs/DisplayStyleState.js +69 -350
  21. package/lib/cjs/DisplayStyleState.js.map +1 -1
  22. package/lib/cjs/DrawingViewState.d.ts +2 -2
  23. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  24. package/lib/cjs/DrawingViewState.js +3 -3
  25. package/lib/cjs/DrawingViewState.js.map +1 -1
  26. package/lib/cjs/ElementLocateManager.d.ts +5 -0
  27. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  28. package/lib/cjs/ElementLocateManager.js +12 -2
  29. package/lib/cjs/ElementLocateManager.js.map +1 -1
  30. package/lib/cjs/EmphasizeElements.d.ts.map +1 -1
  31. package/lib/cjs/EmphasizeElements.js +14 -4
  32. package/lib/cjs/EmphasizeElements.js.map +1 -1
  33. package/lib/cjs/EnvironmentDecorations.d.ts +39 -0
  34. package/lib/cjs/EnvironmentDecorations.d.ts.map +1 -0
  35. package/lib/cjs/EnvironmentDecorations.js +200 -0
  36. package/lib/cjs/EnvironmentDecorations.js.map +1 -0
  37. package/lib/cjs/FrontendHubAccess.d.ts +11 -7
  38. package/lib/cjs/FrontendHubAccess.d.ts.map +1 -1
  39. package/lib/cjs/FrontendHubAccess.js.map +1 -1
  40. package/lib/cjs/FrontendLoggerCategory.d.ts +2 -8
  41. package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
  42. package/lib/cjs/FrontendLoggerCategory.js +2 -8
  43. package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
  44. package/lib/cjs/HitDetail.js +7 -7
  45. package/lib/cjs/HitDetail.js.map +1 -1
  46. package/lib/cjs/IModelApp.d.ts +30 -17
  47. package/lib/cjs/IModelApp.d.ts.map +1 -1
  48. package/lib/cjs/IModelApp.js +33 -26
  49. package/lib/cjs/IModelApp.js.map +1 -1
  50. package/lib/cjs/IModelConnection.d.ts +4 -6
  51. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  52. package/lib/cjs/IModelConnection.js +6 -11
  53. package/lib/cjs/IModelConnection.js.map +1 -1
  54. package/lib/cjs/IModeljs-css.d.ts.map +1 -1
  55. package/lib/cjs/IModeljs-css.js +8 -6
  56. package/lib/cjs/IModeljs-css.js.map +1 -1
  57. package/lib/cjs/ImageUtil.d.ts +3 -3
  58. package/lib/cjs/ImageUtil.d.ts.map +1 -1
  59. package/lib/cjs/ImageUtil.js +7 -4
  60. package/lib/cjs/ImageUtil.js.map +1 -1
  61. package/lib/cjs/LocalhostIpcApp.d.ts +2 -1
  62. package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
  63. package/lib/cjs/LocalhostIpcApp.js +21 -7
  64. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  65. package/lib/cjs/Marker.d.ts +9 -2
  66. package/lib/cjs/Marker.d.ts.map +1 -1
  67. package/lib/cjs/Marker.js +33 -5
  68. package/lib/cjs/Marker.js.map +1 -1
  69. package/lib/cjs/ModelState.js +1 -1
  70. package/lib/cjs/ModelState.js.map +1 -1
  71. package/lib/cjs/NativeApp.d.ts +3 -38
  72. package/lib/cjs/NativeApp.d.ts.map +1 -1
  73. package/lib/cjs/NativeApp.js +4 -73
  74. package/lib/cjs/NativeApp.js.map +1 -1
  75. package/lib/cjs/NoRenderApp.d.ts +0 -1
  76. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  77. package/lib/cjs/NoRenderApp.js +0 -1
  78. package/lib/cjs/NoRenderApp.js.map +1 -1
  79. package/lib/cjs/NotificationManager.d.ts +3 -1
  80. package/lib/cjs/NotificationManager.d.ts.map +1 -1
  81. package/lib/cjs/NotificationManager.js +2 -0
  82. package/lib/cjs/NotificationManager.js.map +1 -1
  83. package/lib/cjs/RealityDataSource.d.ts +59 -29
  84. package/lib/cjs/RealityDataSource.d.ts.map +1 -1
  85. package/lib/cjs/RealityDataSource.js +247 -94
  86. package/lib/cjs/RealityDataSource.js.map +1 -1
  87. package/lib/cjs/RenderScheduleState.d.ts +2 -0
  88. package/lib/cjs/RenderScheduleState.d.ts.map +1 -1
  89. package/lib/cjs/RenderScheduleState.js +10 -5
  90. package/lib/cjs/RenderScheduleState.js.map +1 -1
  91. package/lib/cjs/SheetViewState.d.ts +2 -2
  92. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  93. package/lib/cjs/SheetViewState.js +8 -9
  94. package/lib/cjs/SheetViewState.js.map +1 -1
  95. package/lib/cjs/SpatialViewState.d.ts +10 -2
  96. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  97. package/lib/cjs/SpatialViewState.js +12 -2
  98. package/lib/cjs/SpatialViewState.js.map +1 -1
  99. package/lib/cjs/SubCategoriesCache.js +1 -1
  100. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  101. package/lib/cjs/Tiles.d.ts +11 -1
  102. package/lib/cjs/Tiles.d.ts.map +1 -1
  103. package/lib/cjs/Tiles.js +7 -0
  104. package/lib/cjs/Tiles.js.map +1 -1
  105. package/lib/cjs/TwoWayViewportSync.d.ts +35 -6
  106. package/lib/cjs/TwoWayViewportSync.d.ts.map +1 -1
  107. package/lib/cjs/TwoWayViewportSync.js +51 -11
  108. package/lib/cjs/TwoWayViewportSync.js.map +1 -1
  109. package/lib/cjs/UserPreferences.d.ts +72 -0
  110. package/lib/cjs/UserPreferences.d.ts.map +1 -0
  111. package/lib/cjs/UserPreferences.js +7 -0
  112. package/lib/cjs/UserPreferences.js.map +1 -0
  113. package/lib/cjs/ViewContext.d.ts +3 -1
  114. package/lib/cjs/ViewContext.d.ts.map +1 -1
  115. package/lib/cjs/ViewContext.js +4 -0
  116. package/lib/cjs/ViewContext.js.map +1 -1
  117. package/lib/cjs/ViewCreator2d.js +3 -3
  118. package/lib/cjs/ViewCreator2d.js.map +1 -1
  119. package/lib/cjs/ViewCreator3d.d.ts +1 -1
  120. package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
  121. package/lib/cjs/ViewCreator3d.js +4 -5
  122. package/lib/cjs/ViewCreator3d.js.map +1 -1
  123. package/lib/cjs/ViewManager.d.ts +6 -6
  124. package/lib/cjs/ViewManager.d.ts.map +1 -1
  125. package/lib/cjs/ViewManager.js +13 -13
  126. package/lib/cjs/ViewManager.js.map +1 -1
  127. package/lib/cjs/ViewState.d.ts +11 -5
  128. package/lib/cjs/ViewState.d.ts.map +1 -1
  129. package/lib/cjs/ViewState.js +18 -63
  130. package/lib/cjs/ViewState.js.map +1 -1
  131. package/lib/cjs/ViewingSpace.js +1 -1
  132. package/lib/cjs/ViewingSpace.js.map +1 -1
  133. package/lib/cjs/Viewport.d.ts +57 -11
  134. package/lib/cjs/Viewport.d.ts.map +1 -1
  135. package/lib/cjs/Viewport.js +55 -31
  136. package/lib/cjs/Viewport.js.map +1 -1
  137. package/lib/cjs/core-frontend.d.ts +11 -24
  138. package/lib/cjs/core-frontend.d.ts.map +1 -1
  139. package/lib/cjs/core-frontend.js +11 -24
  140. package/lib/cjs/core-frontend.js.map +1 -1
  141. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts +3 -2
  142. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  143. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js +3 -2
  144. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  145. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts +5 -1
  146. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  147. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js +20 -5
  148. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  149. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +26 -3
  150. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  151. package/lib/cjs/quantity-formatting/QuantityFormatter.js +46 -7
  152. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  153. package/lib/cjs/render/FeatureSymbology.d.ts.map +1 -1
  154. package/lib/cjs/render/FeatureSymbology.js +3 -3
  155. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  156. package/lib/cjs/render/GraphicBranch.d.ts +18 -2
  157. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  158. package/lib/cjs/render/GraphicBranch.js +9 -1
  159. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  160. package/lib/cjs/render/GraphicBuilder.d.ts +7 -1
  161. package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
  162. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  163. package/lib/cjs/render/MockRender.d.ts +3 -1
  164. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  165. package/lib/cjs/render/MockRender.js.map +1 -1
  166. package/lib/cjs/render/RenderMaterial.d.ts +61 -0
  167. package/lib/cjs/render/RenderMaterial.d.ts.map +1 -0
  168. package/lib/cjs/render/RenderMaterial.js +10 -0
  169. package/lib/cjs/render/RenderMaterial.js.map +1 -0
  170. package/lib/cjs/render/RenderMemory.d.ts +21 -15
  171. package/lib/cjs/render/RenderMemory.d.ts.map +1 -1
  172. package/lib/cjs/render/RenderMemory.js +21 -15
  173. package/lib/cjs/render/RenderMemory.js.map +1 -1
  174. package/lib/cjs/render/RenderSystem.d.ts +44 -7
  175. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  176. package/lib/cjs/render/RenderSystem.js +32 -9
  177. package/lib/cjs/render/RenderSystem.js.map +1 -1
  178. package/lib/cjs/render/RenderTarget.d.ts +10 -2
  179. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  180. package/lib/cjs/render/RenderTarget.js +2 -1
  181. package/lib/cjs/render/RenderTarget.js.map +1 -1
  182. package/lib/cjs/render/RenderTexture.d.ts +2 -17
  183. package/lib/cjs/render/RenderTexture.d.ts.map +1 -1
  184. package/lib/cjs/render/RenderTexture.js +0 -17
  185. package/lib/cjs/render/RenderTexture.js.map +1 -1
  186. package/lib/cjs/render/primitives/EdgeParams.d.ts +84 -0
  187. package/lib/cjs/render/primitives/EdgeParams.d.ts.map +1 -0
  188. package/lib/cjs/render/primitives/EdgeParams.js +220 -0
  189. package/lib/cjs/render/primitives/EdgeParams.js.map +1 -0
  190. package/lib/cjs/render/primitives/PointStringParams.d.ts +16 -0
  191. package/lib/cjs/render/primitives/PointStringParams.d.ts.map +1 -0
  192. package/lib/cjs/render/primitives/PointStringParams.js +43 -0
  193. package/lib/cjs/render/primitives/PointStringParams.js.map +1 -0
  194. package/lib/cjs/render/primitives/PolylineParams.d.ts +44 -0
  195. package/lib/cjs/render/primitives/PolylineParams.d.ts.map +1 -0
  196. package/lib/cjs/render/primitives/PolylineParams.js +205 -0
  197. package/lib/cjs/render/primitives/PolylineParams.js.map +1 -0
  198. package/lib/cjs/render/primitives/Primitives.d.ts +1 -1
  199. package/lib/cjs/render/primitives/Primitives.d.ts.map +1 -1
  200. package/lib/cjs/render/primitives/Primitives.js.map +1 -1
  201. package/lib/cjs/render/primitives/SurfaceParams.d.ts +46 -0
  202. package/lib/cjs/render/primitives/SurfaceParams.d.ts.map +1 -0
  203. package/lib/cjs/render/primitives/SurfaceParams.js +42 -0
  204. package/lib/cjs/render/primitives/SurfaceParams.js.map +1 -0
  205. package/lib/cjs/render/primitives/VertexTable.d.ts +4 -123
  206. package/lib/cjs/render/primitives/VertexTable.d.ts.map +1 -1
  207. package/lib/cjs/render/primitives/VertexTable.js +16 -352
  208. package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
  209. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts +2 -0
  210. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  211. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js +2 -1
  212. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  213. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  214. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +1 -0
  215. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  216. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +2 -2
  217. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  218. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +3 -3
  219. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  220. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.d.ts +1 -1
  221. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js +1 -1
  222. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js.map +1 -1
  223. package/lib/cjs/render/webgl/AttributeMap.js +5 -5
  224. package/lib/cjs/render/webgl/BackgroundMapDrape.js +1 -1
  225. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  226. package/lib/cjs/render/webgl/BranchUniforms.d.ts.map +1 -1
  227. package/lib/cjs/render/webgl/BranchUniforms.js +8 -5
  228. package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
  229. package/lib/cjs/render/webgl/CachedGeometry.d.ts +16 -11
  230. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  231. package/lib/cjs/render/webgl/CachedGeometry.js +26 -23
  232. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  233. package/lib/cjs/render/webgl/DrawCommand.d.ts +2 -3
  234. package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
  235. package/lib/cjs/render/webgl/DrawCommand.js +6 -4
  236. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  237. package/lib/cjs/render/webgl/EdgeGeometry.d.ts +73 -0
  238. package/lib/cjs/render/webgl/EdgeGeometry.d.ts.map +1 -0
  239. package/lib/cjs/render/webgl/EdgeGeometry.js +141 -0
  240. package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -0
  241. package/lib/cjs/render/webgl/FeatureOverrides.d.ts +2 -0
  242. package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
  243. package/lib/cjs/render/webgl/FeatureOverrides.js +11 -3
  244. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  245. package/lib/cjs/render/webgl/FloatRGBA.d.ts.map +1 -1
  246. package/lib/cjs/render/webgl/FloatRGBA.js +13 -11
  247. package/lib/cjs/render/webgl/FloatRGBA.js.map +1 -1
  248. package/lib/cjs/render/webgl/Graphic.d.ts +13 -0
  249. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  250. package/lib/cjs/render/webgl/Graphic.js +41 -3
  251. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  252. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts +51 -0
  253. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -0
  254. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js +90 -0
  255. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -0
  256. package/lib/cjs/render/webgl/InstancedGeometry.d.ts +6 -5
  257. package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
  258. package/lib/cjs/render/webgl/InstancedGeometry.js +2 -1
  259. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  260. package/lib/cjs/render/webgl/Material.d.ts +1 -1
  261. package/lib/cjs/render/webgl/Material.d.ts.map +1 -1
  262. package/lib/cjs/render/webgl/Material.js +2 -0
  263. package/lib/cjs/render/webgl/Material.js.map +1 -1
  264. package/lib/cjs/render/webgl/Mesh.d.ts +8 -162
  265. package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
  266. package/lib/cjs/render/webgl/Mesh.js +18 -458
  267. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  268. package/lib/cjs/render/webgl/MeshData.d.ts +38 -0
  269. package/lib/cjs/render/webgl/MeshData.d.ts.map +1 -0
  270. package/lib/cjs/render/webgl/MeshData.js +66 -0
  271. package/lib/cjs/render/webgl/MeshData.js.map +1 -0
  272. package/lib/cjs/render/webgl/MeshGeometry.d.ts +38 -0
  273. package/lib/cjs/render/webgl/MeshGeometry.d.ts.map +1 -0
  274. package/lib/cjs/render/webgl/MeshGeometry.js +59 -0
  275. package/lib/cjs/render/webgl/MeshGeometry.js.map +1 -0
  276. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  277. package/lib/cjs/render/webgl/PlanarClassifier.js +8 -4
  278. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  279. package/lib/cjs/render/webgl/PlanarGrid.d.ts +2 -3
  280. package/lib/cjs/render/webgl/PlanarGrid.d.ts.map +1 -1
  281. package/lib/cjs/render/webgl/PlanarGrid.js +3 -3
  282. package/lib/cjs/render/webgl/PlanarGrid.js.map +1 -1
  283. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  284. package/lib/cjs/render/webgl/PlanarTextureProjection.js +1 -0
  285. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  286. package/lib/cjs/render/webgl/PointCloud.d.ts +2 -2
  287. package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
  288. package/lib/cjs/render/webgl/PointCloud.js +2 -2
  289. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  290. package/lib/cjs/render/webgl/PointString.d.ts +3 -3
  291. package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
  292. package/lib/cjs/render/webgl/PointString.js +1 -1
  293. package/lib/cjs/render/webgl/PointString.js.map +1 -1
  294. package/lib/cjs/render/webgl/Polyline.d.ts +3 -3
  295. package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
  296. package/lib/cjs/render/webgl/Polyline.js +6 -6
  297. package/lib/cjs/render/webgl/Polyline.js.map +1 -1
  298. package/lib/cjs/render/webgl/Primitive.d.ts +2 -2
  299. package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
  300. package/lib/cjs/render/webgl/Primitive.js +5 -5
  301. package/lib/cjs/render/webgl/Primitive.js.map +1 -1
  302. package/lib/cjs/render/webgl/RealityMesh.d.ts +2 -2
  303. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  304. package/lib/cjs/render/webgl/RealityMesh.js +9 -9
  305. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  306. package/lib/cjs/render/webgl/RenderCommands.d.ts +6 -2
  307. package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
  308. package/lib/cjs/render/webgl/RenderCommands.js +81 -48
  309. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  310. package/lib/cjs/render/webgl/RenderFlags.d.ts +48 -1
  311. package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
  312. package/lib/cjs/render/webgl/RenderFlags.js +64 -2
  313. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  314. package/lib/cjs/render/webgl/SceneCompositor.js +10 -9
  315. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  316. package/lib/cjs/render/webgl/ScreenSpaceEffect.js +1 -1
  317. package/lib/cjs/render/webgl/ShaderBuilder.d.ts +23 -20
  318. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  319. package/lib/cjs/render/webgl/ShaderBuilder.js +38 -32
  320. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  321. package/lib/cjs/render/webgl/ShaderProgram.d.ts +1 -1
  322. package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
  323. package/lib/cjs/render/webgl/ShaderProgram.js +4 -4
  324. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  325. package/lib/cjs/render/webgl/SolarShadowMap.d.ts.map +1 -1
  326. package/lib/cjs/render/webgl/SolarShadowMap.js +4 -3
  327. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  328. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts +54 -0
  329. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -0
  330. package/lib/cjs/render/webgl/SurfaceGeometry.js +248 -0
  331. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -0
  332. package/lib/cjs/render/webgl/System.d.ts +13 -10
  333. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  334. package/lib/cjs/render/webgl/System.js +75 -21
  335. package/lib/cjs/render/webgl/System.js.map +1 -1
  336. package/lib/cjs/render/webgl/Target.d.ts +13 -1
  337. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  338. package/lib/cjs/render/webgl/Target.js +88 -2
  339. package/lib/cjs/render/webgl/Target.js.map +1 -1
  340. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  341. package/lib/cjs/render/webgl/Technique.js +112 -119
  342. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  343. package/lib/cjs/render/webgl/TechniqueFlags.d.ts +7 -1
  344. package/lib/cjs/render/webgl/TechniqueFlags.d.ts.map +1 -1
  345. package/lib/cjs/render/webgl/TechniqueFlags.js +10 -1
  346. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  347. package/lib/cjs/render/webgl/TechniqueId.d.ts +29 -28
  348. package/lib/cjs/render/webgl/TechniqueId.d.ts.map +1 -1
  349. package/lib/cjs/render/webgl/TechniqueId.js +7 -7
  350. package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
  351. package/lib/cjs/render/webgl/Texture.d.ts +15 -12
  352. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  353. package/lib/cjs/render/webgl/Texture.js +26 -23
  354. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  355. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  356. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +83 -18
  357. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  358. package/lib/cjs/render/webgl/glsl/Animation.js +1 -1
  359. package/lib/cjs/render/webgl/glsl/Blur.js +1 -1
  360. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js +2 -2
  361. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js +2 -2
  362. package/lib/cjs/render/webgl/glsl/Color.js +1 -1
  363. package/lib/cjs/render/webgl/glsl/Combine3Textures.js +1 -1
  364. package/lib/cjs/render/webgl/glsl/CombineTextures.js +1 -1
  365. package/lib/cjs/render/webgl/glsl/Composite.js +1 -1
  366. package/lib/cjs/render/webgl/glsl/CopyColor.d.ts.map +1 -1
  367. package/lib/cjs/render/webgl/glsl/CopyColor.js +17 -2
  368. package/lib/cjs/render/webgl/glsl/CopyColor.js.map +1 -1
  369. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js +2 -2
  370. package/lib/cjs/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
  371. package/lib/cjs/render/webgl/glsl/CopyStencil.js +10 -13
  372. package/lib/cjs/render/webgl/glsl/CopyStencil.js.map +1 -1
  373. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js +2 -2
  374. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  375. package/lib/cjs/render/webgl/glsl/Edge.d.ts +2 -1
  376. package/lib/cjs/render/webgl/glsl/Edge.d.ts.map +1 -1
  377. package/lib/cjs/render/webgl/glsl/Edge.js +132 -14
  378. package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
  379. package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  380. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +43 -21
  381. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  382. package/lib/cjs/render/webgl/glsl/Fragment.d.ts.map +1 -1
  383. package/lib/cjs/render/webgl/glsl/Fragment.js +19 -11
  384. package/lib/cjs/render/webgl/glsl/Fragment.js.map +1 -1
  385. package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
  386. package/lib/cjs/render/webgl/glsl/LookupTable.d.ts +4 -2
  387. package/lib/cjs/render/webgl/glsl/LookupTable.d.ts.map +1 -1
  388. package/lib/cjs/render/webgl/glsl/LookupTable.js +7 -3
  389. package/lib/cjs/render/webgl/glsl/LookupTable.js.map +1 -1
  390. package/lib/cjs/render/webgl/glsl/PlanarClassification.d.ts.map +1 -1
  391. package/lib/cjs/render/webgl/glsl/PlanarClassification.js +13 -4
  392. package/lib/cjs/render/webgl/glsl/PlanarClassification.js.map +1 -1
  393. package/lib/cjs/render/webgl/glsl/PlanarGrid.js +2 -2
  394. package/lib/cjs/render/webgl/glsl/PlanarGrid.js.map +1 -1
  395. package/lib/cjs/render/webgl/glsl/PointCloud.js +2 -2
  396. package/lib/cjs/render/webgl/glsl/PointCloud.js.map +1 -1
  397. package/lib/cjs/render/webgl/glsl/PointString.js +1 -1
  398. package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
  399. package/lib/cjs/render/webgl/glsl/Polyline.js +1 -1
  400. package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
  401. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  402. package/lib/cjs/render/webgl/glsl/RealityMesh.js +9 -6
  403. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  404. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js +2 -2
  405. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  406. package/lib/cjs/render/webgl/glsl/SkyBox.js +2 -2
  407. package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
  408. package/lib/cjs/render/webgl/glsl/SkySphere.js +2 -2
  409. package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
  410. package/lib/cjs/render/webgl/glsl/Surface.js +41 -16
  411. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  412. package/lib/cjs/render/webgl/glsl/Translucency.js +2 -2
  413. package/lib/cjs/render/webgl/glsl/Vertex.js +2 -2
  414. package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
  415. package/lib/cjs/render/webgl/glsl/ViewportQuad.js +1 -1
  416. package/lib/cjs/render/webgl/glsl/ViewportQuad.js.map +1 -1
  417. package/lib/cjs/render/webgl/glsl/Wiremesh.d.ts +9 -0
  418. package/lib/cjs/render/webgl/glsl/Wiremesh.d.ts.map +1 -0
  419. package/lib/cjs/render/webgl/glsl/Wiremesh.js +40 -0
  420. package/lib/cjs/render/webgl/glsl/Wiremesh.js.map +1 -0
  421. package/lib/cjs/render-primitives.d.ts +5 -1
  422. package/lib/cjs/render-primitives.d.ts.map +1 -1
  423. package/lib/cjs/render-primitives.js +5 -1
  424. package/lib/cjs/render-primitives.js.map +1 -1
  425. package/lib/cjs/request/Request.d.ts +167 -0
  426. package/lib/cjs/request/Request.d.ts.map +1 -0
  427. package/lib/cjs/request/Request.js +315 -0
  428. package/lib/cjs/request/Request.js.map +1 -0
  429. package/lib/cjs/tile/B3dmReader.d.ts +2 -1
  430. package/lib/cjs/tile/B3dmReader.d.ts.map +1 -1
  431. package/lib/cjs/tile/B3dmReader.js +11 -7
  432. package/lib/cjs/tile/B3dmReader.js.map +1 -1
  433. package/lib/cjs/tile/CesiumAssetProvider.d.ts +14 -0
  434. package/lib/cjs/tile/CesiumAssetProvider.d.ts.map +1 -0
  435. package/lib/cjs/tile/CesiumAssetProvider.js +35 -0
  436. package/lib/cjs/tile/CesiumAssetProvider.js.map +1 -0
  437. package/lib/cjs/tile/ContextShareProvider.d.ts +22 -0
  438. package/lib/cjs/tile/ContextShareProvider.d.ts.map +1 -0
  439. package/lib/cjs/tile/ContextShareProvider.js +129 -0
  440. package/lib/cjs/tile/ContextShareProvider.js.map +1 -0
  441. package/lib/cjs/tile/DynamicIModelTile.js +9 -3
  442. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  443. package/lib/cjs/tile/GltfReader.d.ts +594 -55
  444. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  445. package/lib/cjs/tile/GltfReader.js +703 -264
  446. package/lib/cjs/tile/GltfReader.js.map +1 -1
  447. package/lib/cjs/tile/I3dmReader.d.ts +2 -1
  448. package/lib/cjs/tile/I3dmReader.d.ts.map +1 -1
  449. package/lib/cjs/tile/I3dmReader.js +10 -6
  450. package/lib/cjs/tile/I3dmReader.js.map +1 -1
  451. package/lib/cjs/tile/IModelTile.d.ts.map +1 -1
  452. package/lib/cjs/tile/IModelTile.js +14 -7
  453. package/lib/cjs/tile/IModelTile.js.map +1 -1
  454. package/lib/cjs/tile/IModelTileTree.d.ts +8 -0
  455. package/lib/cjs/tile/IModelTileTree.d.ts.map +1 -1
  456. package/lib/cjs/tile/IModelTileTree.js +36 -1
  457. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  458. package/lib/cjs/tile/ImdlReader.d.ts +365 -10
  459. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  460. package/lib/cjs/tile/ImdlReader.js +202 -68
  461. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  462. package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +1 -1
  463. package/lib/cjs/tile/OrbitGtTileTree.js +8 -5
  464. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  465. package/lib/cjs/tile/PrimaryTileTree.d.ts +14 -5
  466. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  467. package/lib/cjs/tile/PrimaryTileTree.js +69 -14
  468. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  469. package/lib/cjs/tile/RealityModelTileTree.d.ts +3 -55
  470. package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
  471. package/lib/cjs/tile/RealityModelTileTree.js +57 -232
  472. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  473. package/lib/cjs/tile/RealityTileLoader.d.ts +1 -0
  474. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  475. package/lib/cjs/tile/RealityTileLoader.js +4 -3
  476. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  477. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  478. package/lib/cjs/tile/Tile.js +5 -1
  479. package/lib/cjs/tile/Tile.js.map +1 -1
  480. package/lib/cjs/tile/TileAdmin.d.ts +37 -4
  481. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  482. package/lib/cjs/tile/TileAdmin.js +18 -12
  483. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  484. package/lib/cjs/tile/TileDrawArgs.d.ts +11 -0
  485. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  486. package/lib/cjs/tile/TileDrawArgs.js +6 -1
  487. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  488. package/lib/cjs/tile/TileTreeReference.d.ts +2 -0
  489. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  490. package/lib/cjs/tile/TileTreeReference.js +5 -0
  491. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  492. package/lib/cjs/tile/internal.d.ts +4 -1
  493. package/lib/cjs/tile/internal.d.ts.map +1 -1
  494. package/lib/cjs/tile/internal.js +4 -1
  495. package/lib/cjs/tile/internal.js.map +1 -1
  496. package/lib/cjs/tile/map/ArcGISTileMap.d.ts +22 -0
  497. package/lib/cjs/tile/map/ArcGISTileMap.d.ts.map +1 -0
  498. package/lib/cjs/tile/map/ArcGISTileMap.js +177 -0
  499. package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -0
  500. package/lib/cjs/tile/map/ArcGisTokenGenerator.js +3 -3
  501. package/lib/cjs/tile/map/ArcGisTokenGenerator.js.map +1 -1
  502. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +1 -1
  503. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  504. package/lib/cjs/tile/map/ArcGisUtilities.js +18 -10
  505. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  506. package/lib/cjs/tile/map/BingElevation.js +4 -4
  507. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  508. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  509. package/lib/cjs/tile/map/CesiumTerrainProvider.js +27 -15
  510. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  511. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -2
  512. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  513. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +23 -44
  514. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  515. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +3 -3
  516. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  517. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +8 -0
  518. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  519. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +51 -10
  520. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  521. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +6 -1
  522. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  523. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +63 -21
  524. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  525. package/lib/cjs/tile/map/ImageryTileTree.d.ts +4 -4
  526. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  527. package/lib/cjs/tile/map/ImageryTileTree.js +20 -24
  528. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  529. package/lib/cjs/tile/map/MapCartoRectangle.js +1 -1
  530. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  531. package/lib/cjs/tile/map/MapLayerAuthentication.d.ts +20 -0
  532. package/lib/cjs/tile/map/MapLayerAuthentication.d.ts.map +1 -0
  533. package/lib/cjs/tile/map/MapLayerAuthentication.js +18 -0
  534. package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -0
  535. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +6 -3
  536. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  537. package/lib/cjs/tile/map/MapLayerFormatRegistry.js +3 -1
  538. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  539. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts +2 -2
  540. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  541. package/lib/cjs/tile/map/MapLayerImageryFormats.js +21 -8
  542. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  543. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +18 -6
  544. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  545. package/lib/cjs/tile/map/MapLayerImageryProvider.js +47 -14
  546. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  547. package/lib/cjs/tile/map/MapLayerSources.d.ts +3 -11
  548. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  549. package/lib/cjs/tile/map/MapLayerSources.js +5 -34
  550. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  551. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  552. package/lib/cjs/tile/map/MapTile.js +4 -3
  553. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  554. package/lib/cjs/tile/map/MapTileLoader.js +2 -2
  555. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  556. package/lib/cjs/tile/map/MapTileTree.d.ts +1 -1
  557. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  558. package/lib/cjs/tile/map/MapTileTree.js +30 -21
  559. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  560. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts +3 -3
  561. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  562. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +4 -6
  563. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  564. package/lib/cjs/tile/map/MapTilingScheme.d.ts +7 -2
  565. package/lib/cjs/tile/map/MapTilingScheme.d.ts.map +1 -1
  566. package/lib/cjs/tile/map/MapTilingScheme.js +21 -8
  567. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  568. package/lib/cjs/tile/map/QuadId.d.ts +1 -0
  569. package/lib/cjs/tile/map/QuadId.d.ts.map +1 -1
  570. package/lib/cjs/tile/map/QuadId.js +2 -1
  571. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  572. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +1 -1
  573. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  574. package/lib/cjs/tile/map/WmsCapabilities.d.ts +8 -1
  575. package/lib/cjs/tile/map/WmsCapabilities.d.ts.map +1 -1
  576. package/lib/cjs/tile/map/WmsCapabilities.js +39 -5
  577. package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
  578. package/lib/cjs/tile/map/WmtsCapabilities.d.ts +11 -1
  579. package/lib/cjs/tile/map/WmtsCapabilities.d.ts.map +1 -1
  580. package/lib/cjs/tile/map/WmtsCapabilities.js +23 -9
  581. package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
  582. package/lib/cjs/tools/EditManipulator.d.ts.map +1 -1
  583. package/lib/cjs/tools/EditManipulator.js +1 -1
  584. package/lib/cjs/tools/EditManipulator.js.map +1 -1
  585. package/lib/cjs/tools/ElementSetTool.js +2 -2
  586. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  587. package/lib/cjs/tools/PrimitiveTool.d.ts +4 -4
  588. package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
  589. package/lib/cjs/tools/PrimitiveTool.js +2 -2
  590. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  591. package/lib/cjs/tools/Tool.d.ts +29 -1
  592. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  593. package/lib/cjs/tools/Tool.js +66 -0
  594. package/lib/cjs/tools/Tool.js.map +1 -1
  595. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  596. package/lib/cjs/tools/ToolAdmin.js +20 -10
  597. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  598. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  599. package/lib/cjs/tools/ViewTool.js +3 -11
  600. package/lib/cjs/tools/ViewTool.js.map +1 -1
  601. package/lib/cjs/webgl.d.ts +5 -0
  602. package/lib/cjs/webgl.d.ts.map +1 -1
  603. package/lib/cjs/webgl.js +5 -0
  604. package/lib/cjs/webgl.js.map +1 -1
  605. package/lib/esm/AccuSnap.js +3 -3
  606. package/lib/esm/AccuSnap.js.map +1 -1
  607. package/lib/esm/ApproximateTerrainHeights.d.ts.map +1 -1
  608. package/lib/esm/ApproximateTerrainHeights.js +10 -5
  609. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  610. package/lib/esm/BackgroundMapGeometry.d.ts +1 -1
  611. package/lib/esm/BackgroundMapGeometry.d.ts.map +1 -1
  612. package/lib/esm/BackgroundMapGeometry.js +2 -2
  613. package/lib/esm/BackgroundMapGeometry.js.map +1 -1
  614. package/lib/esm/BingLocation.js +1 -1
  615. package/lib/esm/BingLocation.js.map +1 -1
  616. package/lib/esm/CheckpointConnection.js +1 -1
  617. package/lib/esm/CheckpointConnection.js.map +1 -1
  618. package/lib/esm/ContextRealityModelState.js +1 -1
  619. package/lib/esm/ContextRealityModelState.js.map +1 -1
  620. package/lib/esm/DisplayStyleState.d.ts +10 -163
  621. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  622. package/lib/esm/DisplayStyleState.js +70 -346
  623. package/lib/esm/DisplayStyleState.js.map +1 -1
  624. package/lib/esm/DrawingViewState.d.ts +2 -2
  625. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  626. package/lib/esm/DrawingViewState.js +3 -3
  627. package/lib/esm/DrawingViewState.js.map +1 -1
  628. package/lib/esm/ElementLocateManager.d.ts +5 -0
  629. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  630. package/lib/esm/ElementLocateManager.js +12 -2
  631. package/lib/esm/ElementLocateManager.js.map +1 -1
  632. package/lib/esm/EmphasizeElements.d.ts.map +1 -1
  633. package/lib/esm/EmphasizeElements.js +14 -4
  634. package/lib/esm/EmphasizeElements.js.map +1 -1
  635. package/lib/esm/EnvironmentDecorations.d.ts +39 -0
  636. package/lib/esm/EnvironmentDecorations.d.ts.map +1 -0
  637. package/lib/esm/EnvironmentDecorations.js +196 -0
  638. package/lib/esm/EnvironmentDecorations.js.map +1 -0
  639. package/lib/esm/FrontendHubAccess.d.ts +11 -7
  640. package/lib/esm/FrontendHubAccess.d.ts.map +1 -1
  641. package/lib/esm/FrontendHubAccess.js.map +1 -1
  642. package/lib/esm/FrontendLoggerCategory.d.ts +2 -8
  643. package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
  644. package/lib/esm/FrontendLoggerCategory.js +2 -8
  645. package/lib/esm/FrontendLoggerCategory.js.map +1 -1
  646. package/lib/esm/HitDetail.js +7 -7
  647. package/lib/esm/HitDetail.js.map +1 -1
  648. package/lib/esm/IModelApp.d.ts +30 -17
  649. package/lib/esm/IModelApp.d.ts.map +1 -1
  650. package/lib/esm/IModelApp.js +32 -25
  651. package/lib/esm/IModelApp.js.map +1 -1
  652. package/lib/esm/IModelConnection.d.ts +4 -6
  653. package/lib/esm/IModelConnection.d.ts.map +1 -1
  654. package/lib/esm/IModelConnection.js +6 -11
  655. package/lib/esm/IModelConnection.js.map +1 -1
  656. package/lib/esm/IModeljs-css.d.ts.map +1 -1
  657. package/lib/esm/IModeljs-css.js +8 -6
  658. package/lib/esm/IModeljs-css.js.map +1 -1
  659. package/lib/esm/ImageUtil.d.ts +3 -3
  660. package/lib/esm/ImageUtil.d.ts.map +1 -1
  661. package/lib/esm/ImageUtil.js +7 -4
  662. package/lib/esm/ImageUtil.js.map +1 -1
  663. package/lib/esm/LocalhostIpcApp.d.ts +2 -1
  664. package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
  665. package/lib/esm/LocalhostIpcApp.js +22 -8
  666. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  667. package/lib/esm/Marker.d.ts +9 -2
  668. package/lib/esm/Marker.d.ts.map +1 -1
  669. package/lib/esm/Marker.js +34 -6
  670. package/lib/esm/Marker.js.map +1 -1
  671. package/lib/esm/ModelState.js +1 -1
  672. package/lib/esm/ModelState.js.map +1 -1
  673. package/lib/esm/NativeApp.d.ts +3 -38
  674. package/lib/esm/NativeApp.d.ts.map +1 -1
  675. package/lib/esm/NativeApp.js +1 -69
  676. package/lib/esm/NativeApp.js.map +1 -1
  677. package/lib/esm/NoRenderApp.d.ts +0 -1
  678. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  679. package/lib/esm/NoRenderApp.js +0 -1
  680. package/lib/esm/NoRenderApp.js.map +1 -1
  681. package/lib/esm/NotificationManager.d.ts +3 -1
  682. package/lib/esm/NotificationManager.d.ts.map +1 -1
  683. package/lib/esm/NotificationManager.js +2 -0
  684. package/lib/esm/NotificationManager.js.map +1 -1
  685. package/lib/esm/RealityDataSource.d.ts +59 -29
  686. package/lib/esm/RealityDataSource.d.ts.map +1 -1
  687. package/lib/esm/RealityDataSource.js +247 -92
  688. package/lib/esm/RealityDataSource.js.map +1 -1
  689. package/lib/esm/RenderScheduleState.d.ts +2 -0
  690. package/lib/esm/RenderScheduleState.d.ts.map +1 -1
  691. package/lib/esm/RenderScheduleState.js +8 -4
  692. package/lib/esm/RenderScheduleState.js.map +1 -1
  693. package/lib/esm/SheetViewState.d.ts +2 -2
  694. package/lib/esm/SheetViewState.d.ts.map +1 -1
  695. package/lib/esm/SheetViewState.js +8 -9
  696. package/lib/esm/SheetViewState.js.map +1 -1
  697. package/lib/esm/SpatialViewState.d.ts +10 -2
  698. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  699. package/lib/esm/SpatialViewState.js +12 -2
  700. package/lib/esm/SpatialViewState.js.map +1 -1
  701. package/lib/esm/SubCategoriesCache.js +1 -1
  702. package/lib/esm/SubCategoriesCache.js.map +1 -1
  703. package/lib/esm/Tiles.d.ts +11 -1
  704. package/lib/esm/Tiles.d.ts.map +1 -1
  705. package/lib/esm/Tiles.js +7 -0
  706. package/lib/esm/Tiles.js.map +1 -1
  707. package/lib/esm/TwoWayViewportSync.d.ts +35 -6
  708. package/lib/esm/TwoWayViewportSync.d.ts.map +1 -1
  709. package/lib/esm/TwoWayViewportSync.js +49 -10
  710. package/lib/esm/TwoWayViewportSync.js.map +1 -1
  711. package/lib/esm/UserPreferences.d.ts +72 -0
  712. package/lib/esm/UserPreferences.d.ts.map +1 -0
  713. package/lib/esm/UserPreferences.js +6 -0
  714. package/lib/esm/UserPreferences.js.map +1 -0
  715. package/lib/esm/ViewContext.d.ts +3 -1
  716. package/lib/esm/ViewContext.d.ts.map +1 -1
  717. package/lib/esm/ViewContext.js +4 -0
  718. package/lib/esm/ViewContext.js.map +1 -1
  719. package/lib/esm/ViewCreator2d.js +3 -3
  720. package/lib/esm/ViewCreator2d.js.map +1 -1
  721. package/lib/esm/ViewCreator3d.d.ts +1 -1
  722. package/lib/esm/ViewCreator3d.d.ts.map +1 -1
  723. package/lib/esm/ViewCreator3d.js +5 -6
  724. package/lib/esm/ViewCreator3d.js.map +1 -1
  725. package/lib/esm/ViewManager.d.ts +6 -6
  726. package/lib/esm/ViewManager.d.ts.map +1 -1
  727. package/lib/esm/ViewManager.js +13 -13
  728. package/lib/esm/ViewManager.js.map +1 -1
  729. package/lib/esm/ViewState.d.ts +11 -5
  730. package/lib/esm/ViewState.d.ts.map +1 -1
  731. package/lib/esm/ViewState.js +21 -66
  732. package/lib/esm/ViewState.js.map +1 -1
  733. package/lib/esm/ViewingSpace.js +1 -1
  734. package/lib/esm/ViewingSpace.js.map +1 -1
  735. package/lib/esm/Viewport.d.ts +57 -11
  736. package/lib/esm/Viewport.d.ts.map +1 -1
  737. package/lib/esm/Viewport.js +56 -32
  738. package/lib/esm/Viewport.js.map +1 -1
  739. package/lib/esm/core-frontend.d.ts +11 -24
  740. package/lib/esm/core-frontend.d.ts.map +1 -1
  741. package/lib/esm/core-frontend.js +11 -24
  742. package/lib/esm/core-frontend.js.map +1 -1
  743. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts +3 -2
  744. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  745. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js +3 -2
  746. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  747. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts +5 -1
  748. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  749. package/lib/esm/quantity-formatting/BasicUnitsProvider.js +18 -4
  750. package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  751. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +26 -3
  752. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  753. package/lib/esm/quantity-formatting/QuantityFormatter.js +45 -7
  754. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  755. package/lib/esm/render/FeatureSymbology.d.ts.map +1 -1
  756. package/lib/esm/render/FeatureSymbology.js +3 -3
  757. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  758. package/lib/esm/render/GraphicBranch.d.ts +18 -2
  759. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  760. package/lib/esm/render/GraphicBranch.js +8 -0
  761. package/lib/esm/render/GraphicBranch.js.map +1 -1
  762. package/lib/esm/render/GraphicBuilder.d.ts +7 -1
  763. package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
  764. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  765. package/lib/esm/render/MockRender.d.ts +3 -1
  766. package/lib/esm/render/MockRender.d.ts.map +1 -1
  767. package/lib/esm/render/MockRender.js.map +1 -1
  768. package/lib/esm/render/RenderMaterial.d.ts +61 -0
  769. package/lib/esm/render/RenderMaterial.d.ts.map +1 -0
  770. package/lib/esm/render/RenderMaterial.js +9 -0
  771. package/lib/esm/render/RenderMaterial.js.map +1 -0
  772. package/lib/esm/render/RenderMemory.d.ts +21 -15
  773. package/lib/esm/render/RenderMemory.d.ts.map +1 -1
  774. package/lib/esm/render/RenderMemory.js +21 -15
  775. package/lib/esm/render/RenderMemory.js.map +1 -1
  776. package/lib/esm/render/RenderSystem.d.ts +44 -7
  777. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  778. package/lib/esm/render/RenderSystem.js +32 -9
  779. package/lib/esm/render/RenderSystem.js.map +1 -1
  780. package/lib/esm/render/RenderTarget.d.ts +10 -2
  781. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  782. package/lib/esm/render/RenderTarget.js +2 -1
  783. package/lib/esm/render/RenderTarget.js.map +1 -1
  784. package/lib/esm/render/RenderTexture.d.ts +2 -17
  785. package/lib/esm/render/RenderTexture.d.ts.map +1 -1
  786. package/lib/esm/render/RenderTexture.js +1 -16
  787. package/lib/esm/render/RenderTexture.js.map +1 -1
  788. package/lib/esm/render/primitives/EdgeParams.d.ts +84 -0
  789. package/lib/esm/render/primitives/EdgeParams.d.ts.map +1 -0
  790. package/lib/esm/render/primitives/EdgeParams.js +217 -0
  791. package/lib/esm/render/primitives/EdgeParams.js.map +1 -0
  792. package/lib/esm/render/primitives/PointStringParams.d.ts +16 -0
  793. package/lib/esm/render/primitives/PointStringParams.d.ts.map +1 -0
  794. package/lib/esm/render/primitives/PointStringParams.js +39 -0
  795. package/lib/esm/render/primitives/PointStringParams.js.map +1 -0
  796. package/lib/esm/render/primitives/PolylineParams.d.ts +44 -0
  797. package/lib/esm/render/primitives/PolylineParams.d.ts.map +1 -0
  798. package/lib/esm/render/primitives/PolylineParams.js +199 -0
  799. package/lib/esm/render/primitives/PolylineParams.js.map +1 -0
  800. package/lib/esm/render/primitives/Primitives.d.ts +1 -1
  801. package/lib/esm/render/primitives/Primitives.d.ts.map +1 -1
  802. package/lib/esm/render/primitives/Primitives.js.map +1 -1
  803. package/lib/esm/render/primitives/SurfaceParams.d.ts +46 -0
  804. package/lib/esm/render/primitives/SurfaceParams.d.ts.map +1 -0
  805. package/lib/esm/render/primitives/SurfaceParams.js +37 -0
  806. package/lib/esm/render/primitives/SurfaceParams.js.map +1 -0
  807. package/lib/esm/render/primitives/VertexTable.d.ts +4 -123
  808. package/lib/esm/render/primitives/VertexTable.d.ts.map +1 -1
  809. package/lib/esm/render/primitives/VertexTable.js +11 -342
  810. package/lib/esm/render/primitives/VertexTable.js.map +1 -1
  811. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts +2 -0
  812. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  813. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js +2 -1
  814. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  815. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  816. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +1 -0
  817. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  818. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +2 -2
  819. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  820. package/lib/esm/render/primitives/mesh/MeshPrimitives.js +3 -3
  821. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  822. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.d.ts +1 -1
  823. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js +1 -1
  824. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js.map +1 -1
  825. package/lib/esm/render/webgl/AttributeMap.js +5 -5
  826. package/lib/esm/render/webgl/BackgroundMapDrape.js +2 -2
  827. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  828. package/lib/esm/render/webgl/BranchUniforms.d.ts.map +1 -1
  829. package/lib/esm/render/webgl/BranchUniforms.js +8 -5
  830. package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
  831. package/lib/esm/render/webgl/CachedGeometry.d.ts +16 -11
  832. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  833. package/lib/esm/render/webgl/CachedGeometry.js +26 -23
  834. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  835. package/lib/esm/render/webgl/DrawCommand.d.ts +2 -3
  836. package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
  837. package/lib/esm/render/webgl/DrawCommand.js +6 -4
  838. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  839. package/lib/esm/render/webgl/EdgeGeometry.d.ts +73 -0
  840. package/lib/esm/render/webgl/EdgeGeometry.d.ts.map +1 -0
  841. package/lib/esm/render/webgl/EdgeGeometry.js +135 -0
  842. package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -0
  843. package/lib/esm/render/webgl/FeatureOverrides.d.ts +2 -0
  844. package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
  845. package/lib/esm/render/webgl/FeatureOverrides.js +11 -3
  846. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  847. package/lib/esm/render/webgl/FloatRGBA.d.ts.map +1 -1
  848. package/lib/esm/render/webgl/FloatRGBA.js +13 -11
  849. package/lib/esm/render/webgl/FloatRGBA.js.map +1 -1
  850. package/lib/esm/render/webgl/Graphic.d.ts +13 -0
  851. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  852. package/lib/esm/render/webgl/Graphic.js +39 -2
  853. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  854. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts +51 -0
  855. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -0
  856. package/lib/esm/render/webgl/IndexedEdgeGeometry.js +85 -0
  857. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -0
  858. package/lib/esm/render/webgl/InstancedGeometry.d.ts +6 -5
  859. package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
  860. package/lib/esm/render/webgl/InstancedGeometry.js +2 -1
  861. package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
  862. package/lib/esm/render/webgl/Material.d.ts +1 -1
  863. package/lib/esm/render/webgl/Material.d.ts.map +1 -1
  864. package/lib/esm/render/webgl/Material.js +2 -0
  865. package/lib/esm/render/webgl/Material.js.map +1 -1
  866. package/lib/esm/render/webgl/Mesh.d.ts +8 -162
  867. package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
  868. package/lib/esm/render/webgl/Mesh.js +12 -445
  869. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  870. package/lib/esm/render/webgl/MeshData.d.ts +38 -0
  871. package/lib/esm/render/webgl/MeshData.d.ts.map +1 -0
  872. package/lib/esm/render/webgl/MeshData.js +62 -0
  873. package/lib/esm/render/webgl/MeshData.js.map +1 -0
  874. package/lib/esm/render/webgl/MeshGeometry.d.ts +38 -0
  875. package/lib/esm/render/webgl/MeshGeometry.d.ts.map +1 -0
  876. package/lib/esm/render/webgl/MeshGeometry.js +55 -0
  877. package/lib/esm/render/webgl/MeshGeometry.js.map +1 -0
  878. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  879. package/lib/esm/render/webgl/PlanarClassifier.js +9 -5
  880. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  881. package/lib/esm/render/webgl/PlanarGrid.d.ts +2 -3
  882. package/lib/esm/render/webgl/PlanarGrid.d.ts.map +1 -1
  883. package/lib/esm/render/webgl/PlanarGrid.js +3 -3
  884. package/lib/esm/render/webgl/PlanarGrid.js.map +1 -1
  885. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  886. package/lib/esm/render/webgl/PlanarTextureProjection.js +1 -0
  887. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  888. package/lib/esm/render/webgl/PointCloud.d.ts +2 -2
  889. package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
  890. package/lib/esm/render/webgl/PointCloud.js +2 -2
  891. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  892. package/lib/esm/render/webgl/PointString.d.ts +3 -3
  893. package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
  894. package/lib/esm/render/webgl/PointString.js +1 -1
  895. package/lib/esm/render/webgl/PointString.js.map +1 -1
  896. package/lib/esm/render/webgl/Polyline.d.ts +3 -3
  897. package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
  898. package/lib/esm/render/webgl/Polyline.js +6 -6
  899. package/lib/esm/render/webgl/Polyline.js.map +1 -1
  900. package/lib/esm/render/webgl/Primitive.d.ts +2 -2
  901. package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
  902. package/lib/esm/render/webgl/Primitive.js +5 -5
  903. package/lib/esm/render/webgl/Primitive.js.map +1 -1
  904. package/lib/esm/render/webgl/RealityMesh.d.ts +2 -2
  905. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  906. package/lib/esm/render/webgl/RealityMesh.js +9 -9
  907. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  908. package/lib/esm/render/webgl/RenderCommands.d.ts +6 -2
  909. package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
  910. package/lib/esm/render/webgl/RenderCommands.js +78 -45
  911. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  912. package/lib/esm/render/webgl/RenderFlags.d.ts +48 -1
  913. package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
  914. package/lib/esm/render/webgl/RenderFlags.js +63 -1
  915. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  916. package/lib/esm/render/webgl/SceneCompositor.js +10 -9
  917. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  918. package/lib/esm/render/webgl/ScreenSpaceEffect.js +1 -1
  919. package/lib/esm/render/webgl/ShaderBuilder.d.ts +23 -20
  920. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  921. package/lib/esm/render/webgl/ShaderBuilder.js +38 -32
  922. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  923. package/lib/esm/render/webgl/ShaderProgram.d.ts +1 -1
  924. package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
  925. package/lib/esm/render/webgl/ShaderProgram.js +4 -4
  926. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  927. package/lib/esm/render/webgl/SolarShadowMap.d.ts.map +1 -1
  928. package/lib/esm/render/webgl/SolarShadowMap.js +5 -4
  929. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  930. package/lib/esm/render/webgl/SurfaceGeometry.d.ts +54 -0
  931. package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -0
  932. package/lib/esm/render/webgl/SurfaceGeometry.js +243 -0
  933. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -0
  934. package/lib/esm/render/webgl/System.d.ts +13 -10
  935. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  936. package/lib/esm/render/webgl/System.js +77 -23
  937. package/lib/esm/render/webgl/System.js.map +1 -1
  938. package/lib/esm/render/webgl/Target.d.ts +13 -1
  939. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  940. package/lib/esm/render/webgl/Target.js +88 -2
  941. package/lib/esm/render/webgl/Target.js.map +1 -1
  942. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  943. package/lib/esm/render/webgl/Technique.js +112 -119
  944. package/lib/esm/render/webgl/Technique.js.map +1 -1
  945. package/lib/esm/render/webgl/TechniqueFlags.d.ts +7 -1
  946. package/lib/esm/render/webgl/TechniqueFlags.d.ts.map +1 -1
  947. package/lib/esm/render/webgl/TechniqueFlags.js +10 -1
  948. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  949. package/lib/esm/render/webgl/TechniqueId.d.ts +29 -28
  950. package/lib/esm/render/webgl/TechniqueId.d.ts.map +1 -1
  951. package/lib/esm/render/webgl/TechniqueId.js +7 -7
  952. package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
  953. package/lib/esm/render/webgl/Texture.d.ts +15 -12
  954. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  955. package/lib/esm/render/webgl/Texture.js +27 -24
  956. package/lib/esm/render/webgl/Texture.js.map +1 -1
  957. package/lib/esm/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  958. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +84 -19
  959. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  960. package/lib/esm/render/webgl/glsl/Animation.js +1 -1
  961. package/lib/esm/render/webgl/glsl/Blur.js +1 -1
  962. package/lib/esm/render/webgl/glsl/ClearPickAndColor.js +2 -2
  963. package/lib/esm/render/webgl/glsl/ClearTranslucent.js +2 -2
  964. package/lib/esm/render/webgl/glsl/Color.js +1 -1
  965. package/lib/esm/render/webgl/glsl/Combine3Textures.js +1 -1
  966. package/lib/esm/render/webgl/glsl/CombineTextures.js +1 -1
  967. package/lib/esm/render/webgl/glsl/Composite.js +1 -1
  968. package/lib/esm/render/webgl/glsl/CopyColor.d.ts.map +1 -1
  969. package/lib/esm/render/webgl/glsl/CopyColor.js +17 -2
  970. package/lib/esm/render/webgl/glsl/CopyColor.js.map +1 -1
  971. package/lib/esm/render/webgl/glsl/CopyPickBuffers.js +2 -2
  972. package/lib/esm/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
  973. package/lib/esm/render/webgl/glsl/CopyStencil.js +10 -13
  974. package/lib/esm/render/webgl/glsl/CopyStencil.js.map +1 -1
  975. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js +2 -2
  976. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  977. package/lib/esm/render/webgl/glsl/Edge.d.ts +2 -1
  978. package/lib/esm/render/webgl/glsl/Edge.d.ts.map +1 -1
  979. package/lib/esm/render/webgl/glsl/Edge.js +132 -14
  980. package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
  981. package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  982. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +44 -22
  983. package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  984. package/lib/esm/render/webgl/glsl/Fragment.d.ts.map +1 -1
  985. package/lib/esm/render/webgl/glsl/Fragment.js +19 -11
  986. package/lib/esm/render/webgl/glsl/Fragment.js.map +1 -1
  987. package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
  988. package/lib/esm/render/webgl/glsl/LookupTable.d.ts +4 -2
  989. package/lib/esm/render/webgl/glsl/LookupTable.d.ts.map +1 -1
  990. package/lib/esm/render/webgl/glsl/LookupTable.js +7 -3
  991. package/lib/esm/render/webgl/glsl/LookupTable.js.map +1 -1
  992. package/lib/esm/render/webgl/glsl/PlanarClassification.d.ts.map +1 -1
  993. package/lib/esm/render/webgl/glsl/PlanarClassification.js +13 -4
  994. package/lib/esm/render/webgl/glsl/PlanarClassification.js.map +1 -1
  995. package/lib/esm/render/webgl/glsl/PlanarGrid.js +2 -2
  996. package/lib/esm/render/webgl/glsl/PlanarGrid.js.map +1 -1
  997. package/lib/esm/render/webgl/glsl/PointCloud.js +2 -2
  998. package/lib/esm/render/webgl/glsl/PointCloud.js.map +1 -1
  999. package/lib/esm/render/webgl/glsl/PointString.js +1 -1
  1000. package/lib/esm/render/webgl/glsl/PointString.js.map +1 -1
  1001. package/lib/esm/render/webgl/glsl/Polyline.js +1 -1
  1002. package/lib/esm/render/webgl/glsl/Polyline.js.map +1 -1
  1003. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  1004. package/lib/esm/render/webgl/glsl/RealityMesh.js +9 -6
  1005. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  1006. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js +2 -2
  1007. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  1008. package/lib/esm/render/webgl/glsl/SkyBox.js +2 -2
  1009. package/lib/esm/render/webgl/glsl/SkyBox.js.map +1 -1
  1010. package/lib/esm/render/webgl/glsl/SkySphere.js +2 -2
  1011. package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
  1012. package/lib/esm/render/webgl/glsl/Surface.js +41 -16
  1013. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  1014. package/lib/esm/render/webgl/glsl/Translucency.js +2 -2
  1015. package/lib/esm/render/webgl/glsl/Vertex.js +3 -3
  1016. package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
  1017. package/lib/esm/render/webgl/glsl/ViewportQuad.js +1 -1
  1018. package/lib/esm/render/webgl/glsl/ViewportQuad.js.map +1 -1
  1019. package/lib/esm/render/webgl/glsl/Wiremesh.d.ts +9 -0
  1020. package/lib/esm/render/webgl/glsl/Wiremesh.d.ts.map +1 -0
  1021. package/lib/esm/render/webgl/glsl/Wiremesh.js +36 -0
  1022. package/lib/esm/render/webgl/glsl/Wiremesh.js.map +1 -0
  1023. package/lib/esm/render-primitives.d.ts +5 -1
  1024. package/lib/esm/render-primitives.d.ts.map +1 -1
  1025. package/lib/esm/render-primitives.js +5 -1
  1026. package/lib/esm/render-primitives.js.map +1 -1
  1027. package/lib/esm/request/Request.d.ts +167 -0
  1028. package/lib/esm/request/Request.d.ts.map +1 -0
  1029. package/lib/esm/request/Request.js +289 -0
  1030. package/lib/esm/request/Request.js.map +1 -0
  1031. package/lib/esm/tile/B3dmReader.d.ts +2 -1
  1032. package/lib/esm/tile/B3dmReader.d.ts.map +1 -1
  1033. package/lib/esm/tile/B3dmReader.js +12 -8
  1034. package/lib/esm/tile/B3dmReader.js.map +1 -1
  1035. package/lib/esm/tile/CesiumAssetProvider.d.ts +14 -0
  1036. package/lib/esm/tile/CesiumAssetProvider.d.ts.map +1 -0
  1037. package/lib/esm/tile/CesiumAssetProvider.js +31 -0
  1038. package/lib/esm/tile/CesiumAssetProvider.js.map +1 -0
  1039. package/lib/esm/tile/ContextShareProvider.d.ts +22 -0
  1040. package/lib/esm/tile/ContextShareProvider.d.ts.map +1 -0
  1041. package/lib/esm/tile/ContextShareProvider.js +125 -0
  1042. package/lib/esm/tile/ContextShareProvider.js.map +1 -0
  1043. package/lib/esm/tile/DynamicIModelTile.js +9 -3
  1044. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  1045. package/lib/esm/tile/GltfReader.d.ts +594 -55
  1046. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  1047. package/lib/esm/tile/GltfReader.js +678 -242
  1048. package/lib/esm/tile/GltfReader.js.map +1 -1
  1049. package/lib/esm/tile/I3dmReader.d.ts +2 -1
  1050. package/lib/esm/tile/I3dmReader.d.ts.map +1 -1
  1051. package/lib/esm/tile/I3dmReader.js +11 -7
  1052. package/lib/esm/tile/I3dmReader.js.map +1 -1
  1053. package/lib/esm/tile/IModelTile.d.ts.map +1 -1
  1054. package/lib/esm/tile/IModelTile.js +14 -7
  1055. package/lib/esm/tile/IModelTile.js.map +1 -1
  1056. package/lib/esm/tile/IModelTileTree.d.ts +8 -0
  1057. package/lib/esm/tile/IModelTileTree.d.ts.map +1 -1
  1058. package/lib/esm/tile/IModelTileTree.js +36 -1
  1059. package/lib/esm/tile/IModelTileTree.js.map +1 -1
  1060. package/lib/esm/tile/ImdlReader.d.ts +365 -10
  1061. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  1062. package/lib/esm/tile/ImdlReader.js +199 -66
  1063. package/lib/esm/tile/ImdlReader.js.map +1 -1
  1064. package/lib/esm/tile/OrbitGtTileTree.d.ts.map +1 -1
  1065. package/lib/esm/tile/OrbitGtTileTree.js +8 -5
  1066. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  1067. package/lib/esm/tile/PrimaryTileTree.d.ts +14 -5
  1068. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  1069. package/lib/esm/tile/PrimaryTileTree.js +70 -15
  1070. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  1071. package/lib/esm/tile/RealityModelTileTree.d.ts +3 -55
  1072. package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
  1073. package/lib/esm/tile/RealityModelTileTree.js +56 -230
  1074. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  1075. package/lib/esm/tile/RealityTileLoader.d.ts +1 -0
  1076. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  1077. package/lib/esm/tile/RealityTileLoader.js +4 -3
  1078. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  1079. package/lib/esm/tile/Tile.d.ts.map +1 -1
  1080. package/lib/esm/tile/Tile.js +5 -1
  1081. package/lib/esm/tile/Tile.js.map +1 -1
  1082. package/lib/esm/tile/TileAdmin.d.ts +37 -4
  1083. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  1084. package/lib/esm/tile/TileAdmin.js +19 -13
  1085. package/lib/esm/tile/TileAdmin.js.map +1 -1
  1086. package/lib/esm/tile/TileDrawArgs.d.ts +11 -0
  1087. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  1088. package/lib/esm/tile/TileDrawArgs.js +6 -1
  1089. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  1090. package/lib/esm/tile/TileTreeReference.d.ts +2 -0
  1091. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  1092. package/lib/esm/tile/TileTreeReference.js +5 -0
  1093. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  1094. package/lib/esm/tile/internal.d.ts +4 -1
  1095. package/lib/esm/tile/internal.d.ts.map +1 -1
  1096. package/lib/esm/tile/internal.js +4 -1
  1097. package/lib/esm/tile/internal.js.map +1 -1
  1098. package/lib/esm/tile/map/ArcGISTileMap.d.ts +22 -0
  1099. package/lib/esm/tile/map/ArcGISTileMap.d.ts.map +1 -0
  1100. package/lib/esm/tile/map/ArcGISTileMap.js +173 -0
  1101. package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -0
  1102. package/lib/esm/tile/map/ArcGisTokenGenerator.js +1 -1
  1103. package/lib/esm/tile/map/ArcGisTokenGenerator.js.map +1 -1
  1104. package/lib/esm/tile/map/ArcGisUtilities.d.ts +1 -1
  1105. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  1106. package/lib/esm/tile/map/ArcGisUtilities.js +14 -6
  1107. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  1108. package/lib/esm/tile/map/BingElevation.js +1 -1
  1109. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  1110. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  1111. package/lib/esm/tile/map/CesiumTerrainProvider.js +25 -13
  1112. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  1113. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -2
  1114. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  1115. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +21 -42
  1116. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  1117. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +2 -2
  1118. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  1119. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +8 -0
  1120. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  1121. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +51 -10
  1122. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  1123. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +6 -1
  1124. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  1125. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +63 -21
  1126. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  1127. package/lib/esm/tile/map/ImageryTileTree.d.ts +4 -4
  1128. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  1129. package/lib/esm/tile/map/ImageryTileTree.js +21 -25
  1130. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  1131. package/lib/esm/tile/map/MapCartoRectangle.js +1 -1
  1132. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  1133. package/lib/esm/tile/map/MapLayerAuthentication.d.ts +20 -0
  1134. package/lib/esm/tile/map/MapLayerAuthentication.d.ts.map +1 -0
  1135. package/lib/esm/tile/map/MapLayerAuthentication.js +15 -0
  1136. package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -0
  1137. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +6 -3
  1138. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  1139. package/lib/esm/tile/map/MapLayerFormatRegistry.js +3 -1
  1140. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  1141. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts +2 -2
  1142. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  1143. package/lib/esm/tile/map/MapLayerImageryFormats.js +22 -9
  1144. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  1145. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +18 -6
  1146. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  1147. package/lib/esm/tile/map/MapLayerImageryProvider.js +44 -11
  1148. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  1149. package/lib/esm/tile/map/MapLayerSources.d.ts +3 -11
  1150. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  1151. package/lib/esm/tile/map/MapLayerSources.js +7 -36
  1152. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  1153. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  1154. package/lib/esm/tile/map/MapTile.js +4 -3
  1155. package/lib/esm/tile/map/MapTile.js.map +1 -1
  1156. package/lib/esm/tile/map/MapTileLoader.js +1 -1
  1157. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  1158. package/lib/esm/tile/map/MapTileTree.d.ts +1 -1
  1159. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  1160. package/lib/esm/tile/map/MapTileTree.js +30 -21
  1161. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  1162. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts +3 -3
  1163. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  1164. package/lib/esm/tile/map/MapTiledGraphicsProvider.js +4 -6
  1165. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  1166. package/lib/esm/tile/map/MapTilingScheme.d.ts +7 -2
  1167. package/lib/esm/tile/map/MapTilingScheme.d.ts.map +1 -1
  1168. package/lib/esm/tile/map/MapTilingScheme.js +22 -9
  1169. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  1170. package/lib/esm/tile/map/QuadId.d.ts +1 -0
  1171. package/lib/esm/tile/map/QuadId.d.ts.map +1 -1
  1172. package/lib/esm/tile/map/QuadId.js +2 -1
  1173. package/lib/esm/tile/map/QuadId.js.map +1 -1
  1174. package/lib/esm/tile/map/TerrainMeshProvider.d.ts +1 -1
  1175. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  1176. package/lib/esm/tile/map/WmsCapabilities.d.ts +8 -1
  1177. package/lib/esm/tile/map/WmsCapabilities.d.ts.map +1 -1
  1178. package/lib/esm/tile/map/WmsCapabilities.js +37 -3
  1179. package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
  1180. package/lib/esm/tile/map/WmtsCapabilities.d.ts +11 -1
  1181. package/lib/esm/tile/map/WmtsCapabilities.d.ts.map +1 -1
  1182. package/lib/esm/tile/map/WmtsCapabilities.js +20 -6
  1183. package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
  1184. package/lib/esm/tools/EditManipulator.d.ts.map +1 -1
  1185. package/lib/esm/tools/EditManipulator.js +1 -1
  1186. package/lib/esm/tools/EditManipulator.js.map +1 -1
  1187. package/lib/esm/tools/ElementSetTool.js +2 -2
  1188. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  1189. package/lib/esm/tools/PrimitiveTool.d.ts +4 -4
  1190. package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
  1191. package/lib/esm/tools/PrimitiveTool.js +2 -2
  1192. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  1193. package/lib/esm/tools/Tool.d.ts +29 -1
  1194. package/lib/esm/tools/Tool.d.ts.map +1 -1
  1195. package/lib/esm/tools/Tool.js +66 -0
  1196. package/lib/esm/tools/Tool.js.map +1 -1
  1197. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  1198. package/lib/esm/tools/ToolAdmin.js +20 -10
  1199. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  1200. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  1201. package/lib/esm/tools/ViewTool.js +3 -11
  1202. package/lib/esm/tools/ViewTool.js.map +1 -1
  1203. package/lib/esm/webgl.d.ts +5 -0
  1204. package/lib/esm/webgl.d.ts.map +1 -1
  1205. package/lib/esm/webgl.js +5 -0
  1206. package/lib/esm/webgl.js.map +1 -1
  1207. package/lib/public/locales/en/iModelJs.json +3 -1
  1208. package/package.json +33 -28
  1209. package/lib/cjs/RealityDataAccessProps.d.ts +0 -42
  1210. package/lib/cjs/RealityDataAccessProps.d.ts.map +0 -1
  1211. package/lib/cjs/RealityDataAccessProps.js +0 -23
  1212. package/lib/cjs/RealityDataAccessProps.js.map +0 -1
  1213. package/lib/cjs/RealityDataConnection.d.ts +0 -31
  1214. package/lib/cjs/RealityDataConnection.d.ts.map +0 -1
  1215. package/lib/cjs/RealityDataConnection.js +0 -101
  1216. package/lib/cjs/RealityDataConnection.js.map +0 -1
  1217. package/lib/cjs/tile/map/MapLayerSettingsService.d.ts +0 -39
  1218. package/lib/cjs/tile/map/MapLayerSettingsService.d.ts.map +0 -1
  1219. package/lib/cjs/tile/map/MapLayerSettingsService.js +0 -190
  1220. package/lib/cjs/tile/map/MapLayerSettingsService.js.map +0 -1
  1221. package/lib/esm/RealityDataAccessProps.d.ts +0 -42
  1222. package/lib/esm/RealityDataAccessProps.d.ts.map +0 -1
  1223. package/lib/esm/RealityDataAccessProps.js +0 -20
  1224. package/lib/esm/RealityDataAccessProps.js.map +0 -1
  1225. package/lib/esm/RealityDataConnection.d.ts +0 -31
  1226. package/lib/esm/RealityDataConnection.d.ts.map +0 -1
  1227. package/lib/esm/RealityDataConnection.js +0 -98
  1228. package/lib/esm/RealityDataConnection.js.map +0 -1
  1229. package/lib/esm/tile/map/MapLayerSettingsService.d.ts +0 -39
  1230. package/lib/esm/tile/map/MapLayerSettingsService.d.ts.map +0 -1
  1231. package/lib/esm/tile/map/MapLayerSettingsService.js +0 -186
  1232. package/lib/esm/tile/map/MapLayerSettingsService.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SheetViewState.d.ts","sourceRoot":"","sources":["../../src/SheetViewState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SheetViewState.d.ts","sourceRoot":"","sources":["../../src/SheetViewState.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,6 @@ const Viewport_1 = require("./Viewport");
25
25
  const ViewState_1 = require("./ViewState");
26
26
  const internal_1 = require("./tile/internal");
27
27
  const ImageUtil_1 = require("./ImageUtil");
28
- const RenderTexture_1 = require("./render/RenderTexture");
29
28
  // cSpell:ignore ovrs
30
29
  /** Describes the geometry and styling of a sheet border decoration.
31
30
  * The sheet border decoration mimics a sheet of paper with a drop shadow.
@@ -348,8 +347,8 @@ class SheetViewState extends ViewState_1.ViewState2d {
348
347
  (0, core_bentley_1.assert)(undefined === this._attachments);
349
348
  }
350
349
  /** @internal */
351
- attachToViewport() {
352
- super.attachToViewport();
350
+ attachToViewport(args) {
351
+ super.attachToViewport(args);
353
352
  (0, core_bentley_1.assert)(undefined === this._attachments);
354
353
  this._attachments = this._attachmentsInfo.createAttachments(this);
355
354
  }
@@ -659,7 +658,7 @@ class RasterAttachment {
659
658
  const skew = maxSize / height;
660
659
  view.setAspectRatioSkew(skew);
661
660
  if (true !== ((_b = (_a = props.jsonProperties) === null || _a === void 0 ? void 0 : _a.displayOptions) === null || _b === void 0 ? void 0 : _b.preserveBackground)) {
662
- // Make background color 100% transparent so that Viewport.readImage() will discard transparent pixels.
661
+ // Make background color 100% transparent so that Viewport.readImageBuffer() will discard transparent pixels.
663
662
  const bgColor = sheetView.displayStyle.backgroundColor.withAlpha(0);
664
663
  view.displayStyle.backgroundColor = bgColor;
665
664
  }
@@ -721,7 +720,7 @@ class RasterAttachment {
721
720
  createGraphics(vp) {
722
721
  var _a, _b;
723
722
  // Create a texture from the contents of the view.
724
- const image = vp.readImage(vp.viewRect, undefined, false);
723
+ const image = vp.readImageBuffer({ upsideDown: true });
725
724
  if (undefined === image)
726
725
  return undefined;
727
726
  const debugImage = false; // set to true to open a window displaying the captured image.
@@ -731,15 +730,13 @@ class RasterAttachment {
731
730
  (0, ImageUtil_1.openImageDataUrlInNewWindow)(url, "Attachment");
732
731
  }
733
732
  const texture = IModelApp_1.IModelApp.renderSystem.createTexture({
734
- image: { source: image, transparency: RenderTexture_1.TextureTransparency.Opaque },
733
+ image: { source: image, transparency: core_common_1.TextureTransparency.Opaque },
735
734
  });
736
735
  if (!texture)
737
736
  return undefined;
738
737
  // Create a material for the texture
739
738
  const graphicParams = new core_common_1.GraphicParams();
740
- const materialParams = new core_common_1.RenderMaterial.Params();
741
- materialParams.textureMapping = new core_common_1.TextureMapping(texture, new core_common_1.TextureMapping.Params());
742
- graphicParams.material = IModelApp_1.IModelApp.renderSystem.createMaterial(materialParams, vp.iModel);
739
+ graphicParams.material = IModelApp_1.IModelApp.renderSystem.createRenderMaterial({ textureMapping: { texture } });
743
740
  // Apply the texture to a rectangular polyface.
744
741
  const depth = this.zDepth;
745
742
  const east = this._placement.bbox.low.x;
@@ -770,6 +767,8 @@ class RasterAttachment {
770
767
  // Wrap the polyface in a GraphicBranch.
771
768
  const branch = new GraphicBranch_1.GraphicBranch(true);
772
769
  const vfOvrs = (0, internal_1.createDefaultViewFlagOverrides)({ clipVolume: true, shadows: false, lighting: false, thematic: false });
770
+ // Disable transparency - background pixels are 100% transparent so they will be discarded anyway. Other pixels are 100% opaque.
771
+ vfOvrs.transparency = false;
773
772
  branch.setViewFlagOverrides(vfOvrs);
774
773
  branch.symbologyOverrides = new FeatureSymbology_1.FeatureSymbology.Overrides();
775
774
  branch.entries.push(graphic);
@@ -1 +1 @@
1
- {"version":3,"file":"SheetViewState.js","sourceRoot":"","sources":["../../src/SheetViewState.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 Views\r\n */\r\n\r\nimport { assert, dispose, Id64Array, Id64String } from \"@itwin/core-bentley\";\r\nimport { Angle, ClipShape, ClipVector, Constant, Matrix3d, Point2d, Point3d, PolyfaceBuilder, Range2d, Range3d, StrokeOptions, Transform } from \"@itwin/core-geometry\";\r\nimport {\r\n AxisAlignedBox3d, ColorDef, Feature, FeatureTable, Frustum, Gradient, GraphicParams, HiddenLine, PackedFeatureTable, Placement2d, RenderMaterial, SheetProps, TextureMapping, ViewAttachmentProps, ViewDefinition2dProps, ViewFlagOverrides, ViewStateProps,\r\n} from \"@itwin/core-common\";\r\nimport { CategorySelectorState } from \"./CategorySelectorState\";\r\nimport { DisplayStyle2dState } from \"./DisplayStyleState\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\nimport { GraphicBuilder, GraphicType } from \"./render/GraphicBuilder\";\r\nimport { RenderGraphic } from \"./render/RenderGraphic\";\r\nimport { GraphicBranch } from \"./render/GraphicBranch\";\r\nimport { Frustum2d } from \"./Frustum2d\";\r\nimport { Scene } from \"./render/Scene\";\r\nimport { Decorations } from \"./render/Decorations\";\r\nimport { MockRender } from \"./render/MockRender\";\r\nimport { RenderClipVolume } from \"./render/RenderClipVolume\";\r\nimport { RenderMemory } from \"./render/RenderMemory\";\r\nimport { FeatureSymbology } from \"./render/FeatureSymbology\";\r\nimport { DecorateContext, SceneContext } from \"./ViewContext\";\r\nimport { ViewRect } from \"./ViewRect\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { CoordSystem } from \"./CoordSystem\";\r\nimport { OffScreenViewport, Viewport } from \"./Viewport\";\r\nimport { ViewState, ViewState2d } from \"./ViewState\";\r\nimport { DrawingViewState } from \"./DrawingViewState\";\r\nimport { createDefaultViewFlagOverrides, DisclosedTileTreeSet, TileGraphicType } from \"./tile/internal\";\r\nimport { imageBufferToPngDataUrl, openImageDataUrlInNewWindow } from \"./ImageUtil\";\r\nimport { TextureTransparency } from \"./render/RenderTexture\";\r\n\r\n// cSpell:ignore ovrs\r\n\r\n/** Describes the geometry and styling of a sheet border decoration.\r\n * The sheet border decoration mimics a sheet of paper with a drop shadow.\r\n */\r\nclass SheetBorder {\r\n private _rect: Point2d[];\r\n private _shadow: Point2d[];\r\n private _gradient: Gradient.Symb;\r\n\r\n private constructor(rect: Point2d[], shadow: Point2d[], gradient: Gradient.Symb) {\r\n this._rect = rect;\r\n this._shadow = shadow;\r\n this._gradient = gradient;\r\n }\r\n\r\n /** Create a new sheet border. If a context is supplied, points are transformed to view coordinates. */\r\n public static create(width: number, height: number, context?: DecorateContext) {\r\n // Rect\r\n const rect: Point3d[] = [\r\n Point3d.create(0, height),\r\n Point3d.create(0, 0),\r\n Point3d.create(width, 0),\r\n Point3d.create(width, height),\r\n Point3d.create(0, height)];\r\n if (context) {\r\n context.viewport.worldToViewArray(rect);\r\n }\r\n\r\n // Shadow\r\n const shadowWidth = .01 * Math.sqrt(width * width + height * height);\r\n const shadow: Point3d[] = [\r\n Point3d.create(shadowWidth, 0),\r\n Point3d.create(shadowWidth, -shadowWidth),\r\n Point3d.create(width + shadowWidth, -shadowWidth),\r\n Point3d.create(width + shadowWidth, height - shadowWidth),\r\n Point3d.create(width, height - shadowWidth),\r\n Point3d.create(width, 0),\r\n Point3d.create(shadowWidth, 0),\r\n ];\r\n if (context) {\r\n context.viewport.worldToViewArray(shadow);\r\n }\r\n\r\n // Gradient\r\n const gradient = new Gradient.Symb();\r\n gradient.mode = Gradient.Mode.Linear;\r\n gradient.angle = Angle.createDegrees(-45);\r\n gradient.keys = [{ value: 0, color: ColorDef.from(25, 25, 25) }, { value: 0.5, color: ColorDef.from(150, 150, 150) }];\r\n\r\n // Copy over points\r\n const rect2d: Point2d[] = [];\r\n for (const point of rect)\r\n rect2d.push(Point2d.createFrom(point));\r\n const shadow2d: Point2d[] = [];\r\n for (const point of shadow)\r\n shadow2d.push(Point2d.createFrom(point));\r\n\r\n return new SheetBorder(rect2d, shadow2d, gradient);\r\n }\r\n\r\n public getRange(): Range2d {\r\n const range = Range2d.createArray(this._rect);\r\n const shadowRange = Range2d.createArray(this._shadow);\r\n range.extendRange(shadowRange);\r\n return range;\r\n }\r\n\r\n /** Add this border to the given GraphicBuilder. */\r\n public addToBuilder(builder: GraphicBuilder) {\r\n const lineColor = ColorDef.black;\r\n const fillColor = ColorDef.black;\r\n\r\n const params = new GraphicParams();\r\n params.fillColor = fillColor;\r\n params.gradient = this._gradient;\r\n\r\n builder.activateGraphicParams(params);\r\n builder.addShape2d(this._shadow, Frustum2d.minimumZDistance);\r\n\r\n builder.setSymbology(lineColor, fillColor, 2);\r\n builder.addLineString2d(this._rect, 0);\r\n }\r\n}\r\n\r\n/** The information required to instantiate an Attachment object. See ViewAttachmentsInfo */\r\ninterface ViewAttachmentInfo extends ViewAttachmentProps {\r\n attachedView: ViewState;\r\n}\r\n\r\n/** The information required to instantiate an ViewAttachments object to draw ViewAttachments into a sheet. The list of view attachment Ids is\r\n * supplied to SheetViewState via the constructor. The corresponding ViewAttachmentProps for each attachment are obtained asynchronously in\r\n * SheetViewState.load(). The Attachments object is created in SheetViewState.attachToViewport and disposed of in SheetViewState.detachFromViewport.\r\n */\r\nclass ViewAttachmentsInfo {\r\n private _attachments: Id64Array | ViewAttachmentInfo[];\r\n\r\n private constructor(attachments: Id64Array | ViewAttachmentInfo[]) {\r\n this._attachments = attachments;\r\n }\r\n\r\n public get isLoaded(): boolean {\r\n return 0 === this._attachments.length || \"string\" !== typeof this._attachments[0];\r\n }\r\n\r\n public get viewAttachmentProps(): Array<Readonly<ViewAttachmentProps>> {\r\n return this.isLoaded ? this._props : [];\r\n }\r\n\r\n private get _props(): ViewAttachmentInfo[] {\r\n assert(this.isLoaded);\r\n return this._attachments as ViewAttachmentInfo[];\r\n }\r\n\r\n private get _ids(): Id64Array {\r\n assert(!this.isLoaded);\r\n return this._attachments as Id64Array;\r\n }\r\n\r\n public static fromJSON(ids: Id64Array = []): ViewAttachmentsInfo {\r\n return new ViewAttachmentsInfo(ids);\r\n }\r\n\r\n public toJSON(): Id64Array {\r\n return this.isLoaded ? this._props.map((x) => x.id!) : [...this._ids];\r\n }\r\n\r\n public clone(): ViewAttachmentsInfo {\r\n // No reason to clone the array.\r\n return new ViewAttachmentsInfo(this._attachments);\r\n }\r\n\r\n public async load(iModel: IModelConnection): Promise<void> {\r\n if (this.isLoaded)\r\n return;\r\n\r\n const attachmentProps = await iModel.elements.getProps(this._ids) as ViewAttachmentInfo[];\r\n const promises = [];\r\n for (const attachment of attachmentProps) {\r\n const loadView = async () => {\r\n try {\r\n const view = await iModel.views.load(attachment.view.id);\r\n return view;\r\n } catch {\r\n return undefined;\r\n }\r\n };\r\n\r\n promises.push(loadView());\r\n }\r\n\r\n const views = await Promise.all(promises);\r\n assert(views.length === attachmentProps.length);\r\n\r\n const attachments = [];\r\n for (let i = 0; i < views.length; i++) {\r\n const view = views[i];\r\n if (view && !(view instanceof SheetViewState)) {\r\n const props = attachmentProps[i];\r\n props.attachedView = view;\r\n attachments.push(props);\r\n }\r\n }\r\n\r\n this._attachments = attachments;\r\n }\r\n\r\n public createAttachments(sheetView: SheetViewState): ViewAttachments | undefined {\r\n return this.isLoaded ? new ViewAttachments(this._props, sheetView) : undefined;\r\n }\r\n}\r\n\r\n/** The set of view attachments to be displayed in a Viewport via a SheetViewState. Allocated when the view becomes attached to a Viewport;\r\n * disposed of when it becomes detached from the viewport.\r\n */\r\nclass ViewAttachments {\r\n private readonly _attachments: Attachment[] = [];\r\n public maxDepth = Frustum2d.minimumZDistance;\r\n\r\n public constructor(infos: ViewAttachmentInfo[], sheetView: SheetViewState) {\r\n for (const info of infos) {\r\n const drawAsRaster = info.jsonProperties?.displayOptions?.drawAsRaster || (info.attachedView.is3d() && info.attachedView.isCameraOn);\r\n const ctor = drawAsRaster ? RasterAttachment : OrthographicAttachment;\r\n const attachment = new ctor(info.attachedView, info, sheetView);\r\n this._attachments.push(attachment);\r\n this.maxDepth = Math.max(this.maxDepth, attachment.zDepth);\r\n }\r\n }\r\n\r\n public dispose(): void {\r\n for (const attachment of this._attachments)\r\n attachment.dispose();\r\n\r\n this._attachments.length = 0;\r\n }\r\n\r\n public [Symbol.iterator](): Iterator<Attachment> {\r\n return this._attachments[Symbol.iterator]();\r\n }\r\n\r\n /** For tests. */\r\n public get attachments(): Object[] {\r\n return this._attachments;\r\n }\r\n\r\n public get isEmpty(): boolean {\r\n return 0 === this._attachments.length;\r\n }\r\n\r\n public get areAllTileTreesLoaded(): boolean {\r\n return this._attachments.every((x) => x.areAllTileTreesLoaded);\r\n }\r\n\r\n public discloseTileTrees(trees: DisclosedTileTreeSet): void {\r\n for (const attachment of this._attachments)\r\n trees.disclose(attachment);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n for (const attachment of this._attachments)\r\n attachment.collectStatistics(stats);\r\n }\r\n\r\n public addToScene(context: SceneContext): void {\r\n for (const attachment of this._attachments)\r\n attachment.addToScene(context);\r\n }\r\n}\r\n\r\n/** A view of a [SheetModel]($backend).\r\n * @public\r\n */\r\nexport class SheetViewState extends ViewState2d {\r\n /** The width and height of the sheet in world coordinates. */\r\n public readonly sheetSize: Point2d;\r\n private _attachmentsInfo: ViewAttachmentsInfo;\r\n private _attachments?: ViewAttachments;\r\n private readonly _viewedExtents: AxisAlignedBox3d;\r\n\r\n public get attachmentIds(): Id64Array {\r\n return this._attachmentsInfo.toJSON();\r\n }\r\n\r\n /** @internal */\r\n public static override get className() { return \"SheetViewDefinition\"; }\r\n\r\n public static override createFromProps(viewStateData: ViewStateProps, iModel: IModelConnection): SheetViewState {\r\n const cat = new CategorySelectorState(viewStateData.categorySelectorProps, iModel);\r\n const displayStyleState = new DisplayStyle2dState(viewStateData.displayStyleProps, iModel);\r\n\r\n // use \"new this\" so subclasses are correct\r\n return new this(viewStateData.viewDefinitionProps as ViewDefinition2dProps, iModel, cat, displayStyleState, viewStateData.sheetProps!, viewStateData.sheetAttachments!);\r\n }\r\n\r\n public override toProps(): ViewStateProps {\r\n const props = super.toProps();\r\n\r\n props.sheetAttachments = this._attachmentsInfo.toJSON();\r\n\r\n // For sheetProps all that is actually used is the size, so just null out everything else.\r\n const codeProps = { spec: \"\", scope: \"\", value: \"\" };\r\n props.sheetProps = {\r\n model: \"\",\r\n code: codeProps,\r\n classFullName: \"\",\r\n width: this.sheetSize.x,\r\n height: this.sheetSize.y,\r\n scale: 1,\r\n };\r\n\r\n return props;\r\n }\r\n\r\n /** Strictly for testing. @internal */\r\n public get viewAttachmentProps(): Array<Readonly<ViewAttachmentProps>> {\r\n return this._attachmentsInfo.viewAttachmentProps;\r\n }\r\n\r\n /** Strictly for testing. @internal */\r\n public get attachments(): Object[] | undefined {\r\n return this._attachments?.attachments;\r\n }\r\n\r\n /** @internal */\r\n public override isDrawingView(): this is DrawingViewState { return false; }\r\n /** @internal */\r\n public override isSheetView(): this is SheetViewState { return true; }\r\n\r\n public constructor(props: ViewDefinition2dProps, iModel: IModelConnection, categories: CategorySelectorState, displayStyle: DisplayStyle2dState, sheetProps: SheetProps, attachments: Id64Array) {\r\n super(props, iModel, categories, displayStyle);\r\n if (categories instanceof SheetViewState) {\r\n // we are coming from clone...\r\n this.sheetSize = categories.sheetSize.clone();\r\n this._attachmentsInfo = categories._attachmentsInfo.clone();\r\n this._viewedExtents = categories._viewedExtents.clone();\r\n } else {\r\n this.sheetSize = Point2d.create(sheetProps.width, sheetProps.height);\r\n this._attachmentsInfo = ViewAttachmentsInfo.fromJSON(attachments);\r\n\r\n const extents = new Range3d(0, 0, 0, this.sheetSize.x, this.sheetSize.y, 0);\r\n const margin = 1.1;\r\n extents.scaleAboutCenterInPlace(margin);\r\n this._viewedExtents = extents;\r\n }\r\n }\r\n\r\n public override getOrigin() {\r\n const origin = super.getOrigin();\r\n if (this._attachments)\r\n origin.z = -this._attachments.maxDepth;\r\n\r\n return origin;\r\n }\r\n\r\n public override getExtents() {\r\n const extents = super.getExtents();\r\n if (this._attachments)\r\n extents.z = this._attachments.maxDepth + Frustum2d.minimumZDistance;\r\n\r\n return extents;\r\n }\r\n\r\n /** Disclose *all* TileTrees currently in use by this view. This set may include trees not reported by [[forEachTileTreeRef]] - e.g., those used by view attachments, map-draped terrain, etc.\r\n * @internal override\r\n */\r\n public override discloseTileTrees(trees: DisclosedTileTreeSet): void {\r\n super.discloseTileTrees(trees);\r\n if (this._attachments)\r\n trees.disclose(this._attachments);\r\n }\r\n\r\n /** @internal */\r\n public override collectNonTileTreeStatistics(stats: RenderMemory.Statistics): void {\r\n super.collectNonTileTreeStatistics(stats);\r\n if (this._attachments)\r\n this._attachments.collectStatistics(stats);\r\n }\r\n\r\n /** @internal */\r\n public override get defaultExtentLimits() {\r\n return { min: Constant.oneMillimeter, max: this.sheetSize.magnitude() * 10 };\r\n }\r\n\r\n /** @internal */\r\n public override getViewedExtents(): AxisAlignedBox3d {\r\n return this._viewedExtents;\r\n }\r\n\r\n /** Load the size and attachment for this sheet, as well as any other 2d view state characteristics.\r\n * @internal override\r\n */\r\n public override async load(): Promise<void> {\r\n await super.load();\r\n await this._attachmentsInfo.load(this.iModel);\r\n }\r\n\r\n /** @internal */\r\n public override createScene(context: SceneContext): void {\r\n super.createScene(context);\r\n if (this._attachments)\r\n this._attachments.addToScene(context);\r\n }\r\n\r\n /** @internal */\r\n public override get secondaryViewports(): Iterable<Viewport> {\r\n const attachments = this._attachments;\r\n if (!attachments)\r\n return super.secondaryViewports;\r\n\r\n function* iterator() {\r\n for (const attachment of attachments!) {\r\n const vp = attachment.viewport;\r\n if (vp)\r\n yield vp;\r\n }\r\n }\r\n\r\n return {\r\n [Symbol.iterator]: () => iterator(),\r\n };\r\n }\r\n\r\n /** @internal */\r\n private async queryAttachmentIds(): Promise<Id64Array> {\r\n const ecsql = `SELECT ECInstanceId as attachmentId FROM bis.ViewAttachment WHERE model.Id=${this.baseModelId}`;\r\n const ids: string[] = [];\r\n for await (const row of this.iModel.query(ecsql))\r\n ids.push(row[0]);\r\n\r\n return ids;\r\n }\r\n\r\n /** @internal */\r\n public override async changeViewedModel(modelId: Id64String): Promise<void> {\r\n await super.changeViewedModel(modelId);\r\n const attachmentIds = await this.queryAttachmentIds();\r\n this._attachmentsInfo = ViewAttachmentsInfo.fromJSON(attachmentIds);\r\n\r\n assert(undefined === this._attachments);\r\n }\r\n\r\n /** @internal */\r\n public override attachToViewport(): void {\r\n super.attachToViewport();\r\n assert(undefined === this._attachments);\r\n this._attachments = this._attachmentsInfo.createAttachments(this);\r\n }\r\n\r\n /** @internal */\r\n public override detachFromViewport(): void {\r\n super.detachFromViewport();\r\n this._attachments = dispose(this._attachments);\r\n }\r\n\r\n /** @internal */\r\n public override get areAllTileTreesLoaded(): boolean {\r\n return super.areAllTileTreesLoaded && (!this._attachments || this._attachments.areAllTileTreesLoaded);\r\n }\r\n\r\n /** Create a sheet border decoration graphic. */\r\n private createBorder(width: number, height: number, context: DecorateContext): RenderGraphic {\r\n const border = SheetBorder.create(width, height, context);\r\n const builder = context.createGraphicBuilder(GraphicType.ViewBackground);\r\n border.addToBuilder(builder);\r\n return builder.finish();\r\n }\r\n\r\n /** @internal */\r\n public override decorate(context: DecorateContext): void {\r\n super.decorate(context);\r\n if (this.sheetSize !== undefined) {\r\n const border = this.createBorder(this.sheetSize.x, this.sheetSize.y, context);\r\n context.setViewBackground(border);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public override computeFitRange(): Range3d {\r\n const size = this.sheetSize;\r\n if (0 >= size.x || 0 >= size.y)\r\n return super.computeFitRange();\r\n return new Range3d(0, 0, -1, size.x, size.y, 1);\r\n }\r\n}\r\n\r\n/** A mostly no-op RenderTarget for an Attachment.\r\n * its Scene and symbology overrides.\r\n */\r\nclass AttachmentTarget extends MockRender.OffScreenTarget {\r\n private readonly _attachment: OrthographicAttachment;\r\n\r\n public constructor(attachment: OrthographicAttachment) {\r\n // The dimensions don't matter - we're not drawing anything.\r\n const rect = new ViewRect(1, 1);\r\n super(IModelApp.renderSystem, rect);\r\n this._attachment = attachment;\r\n }\r\n\r\n public override changeScene(scene: Scene): void {\r\n this._attachment.scene = scene;\r\n }\r\n\r\n public override overrideFeatureSymbology(ovrs: FeatureSymbology.Overrides): void {\r\n this._attachment.symbologyOverrides = ovrs;\r\n }\r\n}\r\n\r\n/** Draws the contents of a view attachment into a sheet view. */\r\ninterface Attachment {\r\n readonly areAllTileTreesLoaded: boolean;\r\n addToScene: (context: SceneContext) => void;\r\n discloseTileTrees: (trees: DisclosedTileTreeSet) => void;\r\n readonly zDepth: number;\r\n collectStatistics: (stats: RenderMemory.Statistics) => void;\r\n viewAttachmentProps: ViewAttachmentProps;\r\n dispose(): void;\r\n readonly viewport?: Viewport;\r\n}\r\n\r\n/** Draws the contents a 2d or orthographic 3d view directly into a sheet view.\r\n * We select tiles for the view in the context of a light-weight offscreen viewport with a no-op RenderTarget, then\r\n * collect the resultant graphics and add them to the sheet view's scene.\r\n */\r\nclass OrthographicAttachment {\r\n private readonly _viewport: OffScreenViewport;\r\n private readonly _props: ViewAttachmentProps;\r\n private readonly _sheetModelId: Id64String;\r\n private readonly _viewFlagOverrides: ViewFlagOverrides;\r\n private readonly _toSheet: Transform;\r\n private readonly _fromSheet: Transform;\r\n private readonly _sizeInMeters: Point2d;\r\n private readonly _range: Range3d;\r\n private readonly _viewRect = new ViewRect(0, 0, 1, 1);\r\n private readonly _originalFrustum = new Frustum();\r\n private readonly _clipVolume?: RenderClipVolume;\r\n private readonly _hiddenLineSettings?: HiddenLine.Settings;\r\n private readonly _scale: { x: number, y: number };\r\n private _debugFeatureTable?: PackedFeatureTable;\r\n public scene?: Scene;\r\n public symbologyOverrides: FeatureSymbology.Overrides;\r\n public readonly zDepth: number;\r\n\r\n public get view(): ViewState {\r\n return this._viewport.view;\r\n }\r\n\r\n public get viewAttachmentProps() {\r\n return this._props;\r\n }\r\n\r\n public get viewport(): Viewport {\r\n return this._viewport;\r\n }\r\n\r\n public constructor(view: ViewState, props: ViewAttachmentProps, sheetView: SheetViewState) {\r\n this.symbologyOverrides = new FeatureSymbology.Overrides(view);\r\n const target = new AttachmentTarget(this);\r\n this._viewport = OffScreenViewport.createViewport(view, target, true);\r\n\r\n this._props = props;\r\n this._sheetModelId = sheetView.baseModelId;\r\n\r\n const applyClip = true; // set to false for debugging\r\n this._viewFlagOverrides = {\r\n ...view.viewFlags,\r\n clipVolume: applyClip,\r\n lighting: false,\r\n shadows: false,\r\n };\r\n\r\n const placement = Placement2d.fromJSON(props.placement);\r\n const range = placement.calculateRange();\r\n this._range = range;\r\n this._sizeInMeters = new Point2d(range.xLength(), range.yLength());\r\n\r\n // Compute transform from attached view's world coordinates to sheet's world coordinates.\r\n // NB: We obtain the extents and origin from the *viewport* not the *view* - they may have been adjusted by the viewport.\r\n const applySkew = true; // set to false for debugging\r\n const skew = applySkew ? view.getAspectRatioSkew() : 1;\r\n const extents = this._viewport.viewingSpace.viewDelta.clone();\r\n const zDepth = Math.abs(extents.z);\r\n const scaleX = this._sizeInMeters.x / Math.abs(extents.x);\r\n const scaleY = skew * this._sizeInMeters.y / Math.abs(extents.y);\r\n this._scale = { x: 1 / scaleX, y: 1 / scaleY };\r\n\r\n const zBias = Frustum2d.depthFromDisplayPriority(props.jsonProperties?.displayPriority ?? 0);\r\n this.zDepth = 1.01 * (zDepth - zBias); // give a little padding so that geometry right up against far plane doesn't get clipped.\r\n\r\n // View origin is at the *back* of the view. Align *front* of view based on display priority.\r\n const viewRot = view.getRotation();\r\n const viewOrg = viewRot.multiplyVector(this._viewport.viewingSpace.viewOrigin);\r\n viewOrg.z += zDepth;\r\n viewRot.multiplyTransposeVectorInPlace(viewOrg);\r\n\r\n const matrix = Matrix3d.createScale(scaleX, scaleY, 1);\r\n matrix.multiplyMatrixMatrix(viewRot, matrix);\r\n const origin = Matrix3d.xyzMinusMatrixTimesXYZ(viewOrg, matrix, viewOrg);\r\n const attachmentOrigin = Point3d.createFrom(placement.origin);\r\n attachmentOrigin.z = zBias;\r\n const viewOrgToAttachment = attachmentOrigin.minus(viewOrg);\r\n origin.addInPlace(viewOrgToAttachment);\r\n this._toSheet = Transform.createRefs(origin, matrix);\r\n this._fromSheet = this._toSheet.inverse()!;\r\n\r\n // ###TODO? If we also apply the attachment's clip to the attached view, we may get additional culling during tile selection.\r\n // However the attached view's frustum is already clipped by intersection with sheet view's frustum, and additional clipping planes\r\n // introduce additional computation, so possibly not worth it.\r\n\r\n // Transform the view's clip (if any) to sheet space\r\n let viewClip = view.viewFlags.clipVolume ? view.getViewClip()?.clone() : undefined;\r\n if (viewClip)\r\n viewClip.transformInPlace(this._toSheet);\r\n else\r\n viewClip = ClipVector.createEmpty();\r\n\r\n let sheetClip;\r\n if (undefined !== props.jsonProperties?.clip)\r\n sheetClip = ClipVector.fromJSON(props.jsonProperties?.clip);\r\n\r\n if (sheetClip && sheetClip.isValid) {\r\n // Clip to view attachment's clip. NB: clip is in sheet coordinate space.\r\n for (const clip of sheetClip.clips)\r\n viewClip.clips.push(clip);\r\n } else {\r\n // Clip to view attachment's bounding box\r\n viewClip.appendShape([\r\n Point3d.create(this._range.low.x, this._range.low.y),\r\n Point3d.create(this._range.high.x, this._range.low.y),\r\n Point3d.create(this._range.high.x, this._range.high.y),\r\n Point3d.create(this._range.low.x, this._range.high.y),\r\n ]);\r\n }\r\n\r\n this._clipVolume = IModelApp.renderSystem.createClipVolume(viewClip);\r\n\r\n // Save off the original frustum (potentially adjusted by viewport).\r\n this._viewport.setupFromView();\r\n this._viewport.viewingSpace.getFrustum(CoordSystem.World, true, this._originalFrustum);\r\n\r\n const applyHiddenLineSettings = true; // for debugging edge display, set to false...\r\n const style = view.displayStyle;\r\n if (style.is3d() && applyHiddenLineSettings)\r\n this._hiddenLineSettings = style.settings.hiddenLineSettings;\r\n }\r\n\r\n public dispose(): void {\r\n this._viewport.dispose();\r\n }\r\n\r\n public discloseTileTrees(trees: DisclosedTileTreeSet): void {\r\n trees.disclose(this._viewport);\r\n }\r\n\r\n public addToScene(context: SceneContext): void {\r\n if (context.viewport.freezeScene)\r\n return;\r\n\r\n if (!context.viewport.view.viewsCategory(this._props.category))\r\n return;\r\n\r\n const wantBounds = context.viewport.wantViewAttachmentBoundaries;\r\n const wantClipShapes = context.viewport.wantViewAttachmentClipShapes;\r\n if (wantBounds || wantClipShapes) {\r\n const builder = context.createSceneGraphicBuilder();\r\n if (wantBounds) {\r\n builder.setSymbology(ColorDef.red, ColorDef.red, 2);\r\n builder.addRangeBox(this._range);\r\n }\r\n\r\n if (wantClipShapes && this._clipVolume) {\r\n builder.setSymbology(ColorDef.blue, ColorDef.blue, 2);\r\n for (const prim of this._clipVolume.clipVector.clips) {\r\n if (!(prim instanceof ClipShape))\r\n continue; // ###TODO handle non-shape primitives, if any such ever encountered\r\n\r\n const pts = [];\r\n const tf = prim.transformFromClip;\r\n for (const pt of prim.polygon) {\r\n const tfPt = tf ? tf.multiplyPoint3d(pt) : pt;\r\n pts.push(new Point2d(tfPt.x, tfPt.y));\r\n }\r\n\r\n builder.addLineString2d(pts, 0);\r\n }\r\n }\r\n\r\n // Put into a Batch so that we can see tooltip with attachment Id on mouseover.\r\n const batch = context.target.renderSystem.createBatch(builder.finish(), this.getDebugFeatureTable(), this._range);\r\n context.outputGraphic(batch);\r\n }\r\n\r\n if (!context.viewport.wantViewAttachments)\r\n return;\r\n\r\n // Pixel size used to compute size of ViewRect so that tiles of appropriate LOD are selected.\r\n const pixelSize = context.viewport.getPixelSizeAtPoint();\r\n if (0 === pixelSize)\r\n return;\r\n\r\n // Adjust attached view frustum based on intersection with sheet view frustum.\r\n const attachFrustum = this._originalFrustum.transformBy(this._toSheet);\r\n const attachFrustumRange = attachFrustum.toRange();\r\n const sheetFrustum = context.viewport.getWorldFrustum();\r\n const sheetFrustumRange = sheetFrustum.toRange();\r\n const intersect = attachFrustumRange.intersect(sheetFrustumRange);\r\n if (intersect.isNull)\r\n return;\r\n\r\n attachFrustum.initFromRange(intersect);\r\n attachFrustum.transformBy(this._fromSheet, attachFrustum);\r\n this._viewport.setupViewFromFrustum(attachFrustum);\r\n\r\n // Adjust view rect based on size of attachment on screen so that tiles of appropriate LOD are selected.\r\n const width = this._sizeInMeters.x * intersect.xLength() / attachFrustumRange.xLength();\r\n const height = this._sizeInMeters.y * intersect.yLength() / attachFrustumRange.yLength();\r\n this._viewRect.width = Math.max(1, Math.round(width / pixelSize));\r\n this._viewRect.height = Math.max(1, Math.round(height / pixelSize));\r\n this._viewport.setRect(this._viewRect);\r\n\r\n // Propagate settings from on-screen viewport.\r\n this._viewport.debugBoundingBoxes = context.viewport.debugBoundingBoxes;\r\n this._viewport.setTileSizeModifier(context.viewport.tileSizeModifier);\r\n\r\n // Create the scene.\r\n this._viewport.renderFrame();\r\n\r\n const scene = this.scene;\r\n if (!scene)\r\n return;\r\n\r\n // Extract scene graphics and insert into on-screen scene context.\r\n const options = {\r\n clipVolume: this._clipVolume,\r\n hline: this._hiddenLineSettings,\r\n frustum: {\r\n is3d: this.view.is3d(),\r\n scale: this._scale,\r\n },\r\n };\r\n\r\n const outputGraphics = (source: RenderGraphic[]) => {\r\n if (0 === source.length)\r\n return;\r\n\r\n const graphics = new GraphicBranch();\r\n graphics.setViewFlagOverrides(this._viewFlagOverrides);\r\n graphics.symbologyOverrides = this.symbologyOverrides;\r\n\r\n for (const graphic of source)\r\n graphics.entries.push(graphic);\r\n\r\n const branch = context.createGraphicBranch(graphics, this._toSheet, options);\r\n context.outputGraphic(branch);\r\n };\r\n\r\n outputGraphics(scene.foreground);\r\n context.withGraphicType(TileGraphicType.BackgroundMap, () => outputGraphics(scene.background));\r\n context.withGraphicType(TileGraphicType.Overlay, () => outputGraphics(scene.overlay));\r\n\r\n // Report tile statistics to sheet view's viewport.\r\n const tileAdmin = IModelApp.tileAdmin;\r\n const selectedAndReady = tileAdmin.getTilesForViewport(this._viewport);\r\n const requested = tileAdmin.getRequestsForViewport(this._viewport);\r\n tileAdmin.addExternalTilesForViewport(context.viewport, {\r\n requested: requested?.size ?? 0,\r\n selected: selectedAndReady?.selected.size ?? 0,\r\n ready: selectedAndReady?.ready.size ?? 0,\r\n });\r\n }\r\n\r\n private getDebugFeatureTable(): PackedFeatureTable {\r\n if (this._debugFeatureTable)\r\n return this._debugFeatureTable;\r\n\r\n const featureTable = new FeatureTable(1, this._sheetModelId);\r\n featureTable.insert(new Feature(this._props.id));\r\n this._debugFeatureTable = PackedFeatureTable.pack(featureTable);\r\n return this._debugFeatureTable;\r\n }\r\n\r\n public get areAllTileTreesLoaded(): boolean {\r\n return this.view.areAllTileTreesLoaded;\r\n }\r\n\r\n public collectStatistics(_stats: RenderMemory.Statistics): void {\r\n // Handled by discloseTileTrees()\r\n }\r\n}\r\n\r\nfunction createRasterAttachmentViewport(_view: ViewState, _rect: ViewRect, _attachment: RasterAttachment): OffScreenViewport {\r\n class RasterAttachmentViewport extends OffScreenViewport {\r\n private _sceneContext?: SceneContext;\r\n private _isSceneReady = false;\r\n private readonly _attachment: RasterAttachment;\r\n\r\n public constructor(view: ViewState, rect: ViewRect, attachment: RasterAttachment) {\r\n super(IModelApp.renderSystem.createOffscreenTarget(rect));\r\n this._attachment = attachment;\r\n this._isAspectRatioLocked = true;\r\n this.changeView(view);\r\n }\r\n\r\n public override createSceneContext(): SceneContext {\r\n assert(!this._isSceneReady);\r\n\r\n this._sceneContext = super.createSceneContext();\r\n return this._sceneContext;\r\n }\r\n\r\n public override renderFrame(): void {\r\n assert(!this._isSceneReady);\r\n\r\n this.clearSceneContext();\r\n super.renderFrame();\r\n\r\n if (undefined !== this._sceneContext) {\r\n this._isSceneReady = !this._sceneContext.hasMissingTiles && this.view.areAllTileTreesLoaded;\r\n if (this._isSceneReady)\r\n this._attachment.produceGraphics(this._sceneContext);\r\n\r\n this._sceneContext = undefined;\r\n }\r\n }\r\n\r\n private clearSceneContext(): void {\r\n this._sceneContext = undefined;\r\n }\r\n\r\n public override addDecorations(_decorations: Decorations): void {\r\n // ###TODO: skybox, ground plane, possibly grid. DecorateContext requires a ScreenViewport...\r\n }\r\n }\r\n\r\n return new RasterAttachmentViewport(_view, _rect, _attachment);\r\n}\r\n\r\n/** Draws a 3d view with camera enabled into a sheet view by producing an image of the view's contents offscreen. */\r\nclass RasterAttachment {\r\n private readonly _props: ViewAttachmentProps;\r\n private readonly _placement: Placement2d;\r\n private readonly _transform: Transform;\r\n public readonly zDepth: number;\r\n private _viewport?: OffScreenViewport;\r\n private _graphics?: RenderGraphic;\r\n\r\n public constructor(view: ViewState, props: ViewAttachmentProps, sheetView: SheetViewState) {\r\n // Render to a 2048x2048 view rect. Scale in Y to preserve aspect ratio.\r\n const maxSize = 2048;\r\n const rect = new ViewRect(0, 0, maxSize, maxSize);\r\n const height = maxSize * view.getAspectRatio() * view.getAspectRatioSkew();\r\n const skew = maxSize / height;\r\n view.setAspectRatioSkew(skew);\r\n\r\n if (true !== props.jsonProperties?.displayOptions?.preserveBackground) {\r\n // Make background color 100% transparent so that Viewport.readImage() will discard transparent pixels.\r\n const bgColor = sheetView.displayStyle.backgroundColor.withAlpha(0);\r\n view.displayStyle.backgroundColor = bgColor;\r\n }\r\n\r\n this._viewport = createRasterAttachmentViewport(view, rect, this);\r\n this._props = props;\r\n this._placement = Placement2d.fromJSON(props.placement);\r\n this._transform = this._placement.transform;\r\n this.zDepth = Frustum2d.depthFromDisplayPriority(props.jsonProperties?.displayPriority ?? 0);\r\n }\r\n\r\n public dispose(): void {\r\n this._viewport?.dispose();\r\n }\r\n\r\n public get viewAttachmentProps() {\r\n return this._props;\r\n }\r\n\r\n public get viewport(): Viewport | undefined {\r\n return this._viewport;\r\n }\r\n\r\n public get areAllTileTreesLoaded() {\r\n return this._viewport?.areAllTileTreesLoaded ?? true;\r\n }\r\n\r\n public addToScene(context: SceneContext): void {\r\n // ###TODO: check viewport.wantViewAttachmentClipShapes\r\n if (!context.viewport.view.viewsCategory(this._props.category))\r\n return;\r\n\r\n if (context.viewport.wantViewAttachmentBoundaries) {\r\n const builder = context.createSceneGraphicBuilder(this._transform);\r\n builder.setSymbology(ColorDef.red, ColorDef.red, 2);\r\n builder.addRangeBox(Range3d.createRange2d(this._placement.bbox));\r\n context.outputGraphic(builder.finish());\r\n }\r\n\r\n if (!context.viewport.wantViewAttachments)\r\n return;\r\n\r\n if (this._graphics) {\r\n context.outputGraphic(this._graphics);\r\n return;\r\n }\r\n\r\n if (undefined === this._viewport)\r\n return;\r\n\r\n this._viewport.debugBoundingBoxes = context.viewport.debugBoundingBoxes;\r\n this._viewport.setTileSizeModifier(context.viewport.tileSizeModifier);\r\n\r\n this._viewport.renderFrame();\r\n if (this._graphics)\r\n context.outputGraphic(this._graphics);\r\n }\r\n\r\n public discloseTileTrees(trees: DisclosedTileTreeSet) {\r\n if (this._viewport)\r\n trees.disclose(this._viewport);\r\n }\r\n\r\n public produceGraphics(context: SceneContext): void {\r\n assert(context.viewport === this._viewport);\r\n this._graphics = this.createGraphics(this._viewport);\r\n this._viewport = dispose(this._viewport);\r\n\r\n if (undefined !== this._graphics)\r\n context.outputGraphic(this._graphics);\r\n }\r\n\r\n private createGraphics(vp: Viewport): RenderGraphic | undefined {\r\n // Create a texture from the contents of the view.\r\n const image = vp.readImage(vp.viewRect, undefined, false);\r\n if (undefined === image)\r\n return undefined;\r\n\r\n const debugImage = false; // set to true to open a window displaying the captured image.\r\n if (debugImage) {\r\n const url = imageBufferToPngDataUrl(image, false);\r\n if (url)\r\n openImageDataUrlInNewWindow(url, \"Attachment\");\r\n }\r\n\r\n const texture = IModelApp.renderSystem.createTexture({\r\n image: { source: image, transparency: TextureTransparency.Opaque },\r\n });\r\n if (!texture)\r\n return undefined;\r\n\r\n // Create a material for the texture\r\n const graphicParams = new GraphicParams();\r\n const materialParams = new RenderMaterial.Params();\r\n materialParams.textureMapping = new TextureMapping(texture, new TextureMapping.Params());\r\n graphicParams.material = IModelApp.renderSystem.createMaterial(materialParams, vp.iModel);\r\n\r\n // Apply the texture to a rectangular polyface.\r\n const depth = this.zDepth;\r\n const east = this._placement.bbox.low.x;\r\n const west = this._placement.bbox.high.x;\r\n const north = this._placement.bbox.low.y;\r\n const south = this._placement.bbox.high.y;\r\n const corners = [\r\n Point3d.create(east, north, depth),\r\n Point3d.create(west, north, depth),\r\n Point3d.create(west, south, depth),\r\n Point3d.create(east, south, depth),\r\n ];\r\n const params = [\r\n Point2d.create(0, 0),\r\n Point2d.create(1, 0),\r\n Point2d.create(1, 1),\r\n Point2d.create(0, 1),\r\n ];\r\n\r\n const strokeOptions = new StrokeOptions();\r\n strokeOptions.needParams = strokeOptions.shouldTriangulate = true;\r\n const polyfaceBuilder = PolyfaceBuilder.create(strokeOptions);\r\n polyfaceBuilder.addQuadFacet(corners, params);\r\n const polyface = polyfaceBuilder.claimPolyface();\r\n\r\n const graphicBuilder = IModelApp.renderSystem.createGraphicBuilder(Transform.createIdentity(), GraphicType.Scene, vp, this._props.id);\r\n graphicBuilder.activateGraphicParams(graphicParams);\r\n graphicBuilder.addPolyface(polyface, false);\r\n const graphic = graphicBuilder.finish();\r\n\r\n // Wrap the polyface in a GraphicBranch.\r\n const branch = new GraphicBranch(true);\r\n const vfOvrs = createDefaultViewFlagOverrides({ clipVolume: true, shadows: false, lighting: false, thematic: false });\r\n branch.setViewFlagOverrides(vfOvrs);\r\n branch.symbologyOverrides = new FeatureSymbology.Overrides();\r\n branch.entries.push(graphic);\r\n\r\n // Apply the attachment's clip, if any.\r\n let clipVolume;\r\n if (this._props.jsonProperties?.clip) {\r\n const clipVector = ClipVector.fromJSON(this._props.jsonProperties?.clip);\r\n if (clipVector.isValid)\r\n clipVolume = IModelApp.renderSystem.createClipVolume(clipVector);\r\n }\r\n\r\n return IModelApp.renderSystem.createGraphicBranch(branch, this._transform, { clipVolume });\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n if (this._graphics)\r\n this._graphics.collectStatistics(stats);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"SheetViewState.js","sourceRoot":"","sources":["../../src/SheetViewState.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 Views\r\n */\r\n\r\nimport { assert, dispose, Id64Array, Id64String } from \"@itwin/core-bentley\";\r\nimport { Angle, ClipShape, ClipVector, Constant, Matrix3d, Point2d, Point3d, PolyfaceBuilder, Range2d, Range3d, StrokeOptions, Transform } from \"@itwin/core-geometry\";\r\nimport {\r\n AxisAlignedBox3d, ColorDef, Feature, FeatureTable, Frustum, Gradient, GraphicParams, HiddenLine, PackedFeatureTable, Placement2d, SheetProps,\r\n TextureTransparency, ViewAttachmentProps, ViewDefinition2dProps, ViewFlagOverrides, ViewStateProps,\r\n} from \"@itwin/core-common\";\r\nimport { CategorySelectorState } from \"./CategorySelectorState\";\r\nimport { DisplayStyle2dState } from \"./DisplayStyleState\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\nimport { GraphicBuilder, GraphicType } from \"./render/GraphicBuilder\";\r\nimport { RenderGraphic } from \"./render/RenderGraphic\";\r\nimport { GraphicBranch } from \"./render/GraphicBranch\";\r\nimport { Frustum2d } from \"./Frustum2d\";\r\nimport { Scene } from \"./render/Scene\";\r\nimport { Decorations } from \"./render/Decorations\";\r\nimport { MockRender } from \"./render/MockRender\";\r\nimport { RenderClipVolume } from \"./render/RenderClipVolume\";\r\nimport { RenderMemory } from \"./render/RenderMemory\";\r\nimport { FeatureSymbology } from \"./render/FeatureSymbology\";\r\nimport { DecorateContext, SceneContext } from \"./ViewContext\";\r\nimport { ViewRect } from \"./ViewRect\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { CoordSystem } from \"./CoordSystem\";\r\nimport { OffScreenViewport, Viewport } from \"./Viewport\";\r\nimport { AttachToViewportArgs, ViewState, ViewState2d } from \"./ViewState\";\r\nimport { DrawingViewState } from \"./DrawingViewState\";\r\nimport { createDefaultViewFlagOverrides, DisclosedTileTreeSet, TileGraphicType } from \"./tile/internal\";\r\nimport { imageBufferToPngDataUrl, openImageDataUrlInNewWindow } from \"./ImageUtil\";\r\n\r\n// cSpell:ignore ovrs\r\n\r\n/** Describes the geometry and styling of a sheet border decoration.\r\n * The sheet border decoration mimics a sheet of paper with a drop shadow.\r\n */\r\nclass SheetBorder {\r\n private _rect: Point2d[];\r\n private _shadow: Point2d[];\r\n private _gradient: Gradient.Symb;\r\n\r\n private constructor(rect: Point2d[], shadow: Point2d[], gradient: Gradient.Symb) {\r\n this._rect = rect;\r\n this._shadow = shadow;\r\n this._gradient = gradient;\r\n }\r\n\r\n /** Create a new sheet border. If a context is supplied, points are transformed to view coordinates. */\r\n public static create(width: number, height: number, context?: DecorateContext) {\r\n // Rect\r\n const rect: Point3d[] = [\r\n Point3d.create(0, height),\r\n Point3d.create(0, 0),\r\n Point3d.create(width, 0),\r\n Point3d.create(width, height),\r\n Point3d.create(0, height)];\r\n if (context) {\r\n context.viewport.worldToViewArray(rect);\r\n }\r\n\r\n // Shadow\r\n const shadowWidth = .01 * Math.sqrt(width * width + height * height);\r\n const shadow: Point3d[] = [\r\n Point3d.create(shadowWidth, 0),\r\n Point3d.create(shadowWidth, -shadowWidth),\r\n Point3d.create(width + shadowWidth, -shadowWidth),\r\n Point3d.create(width + shadowWidth, height - shadowWidth),\r\n Point3d.create(width, height - shadowWidth),\r\n Point3d.create(width, 0),\r\n Point3d.create(shadowWidth, 0),\r\n ];\r\n if (context) {\r\n context.viewport.worldToViewArray(shadow);\r\n }\r\n\r\n // Gradient\r\n const gradient = new Gradient.Symb();\r\n gradient.mode = Gradient.Mode.Linear;\r\n gradient.angle = Angle.createDegrees(-45);\r\n gradient.keys = [{ value: 0, color: ColorDef.from(25, 25, 25) }, { value: 0.5, color: ColorDef.from(150, 150, 150) }];\r\n\r\n // Copy over points\r\n const rect2d: Point2d[] = [];\r\n for (const point of rect)\r\n rect2d.push(Point2d.createFrom(point));\r\n const shadow2d: Point2d[] = [];\r\n for (const point of shadow)\r\n shadow2d.push(Point2d.createFrom(point));\r\n\r\n return new SheetBorder(rect2d, shadow2d, gradient);\r\n }\r\n\r\n public getRange(): Range2d {\r\n const range = Range2d.createArray(this._rect);\r\n const shadowRange = Range2d.createArray(this._shadow);\r\n range.extendRange(shadowRange);\r\n return range;\r\n }\r\n\r\n /** Add this border to the given GraphicBuilder. */\r\n public addToBuilder(builder: GraphicBuilder) {\r\n const lineColor = ColorDef.black;\r\n const fillColor = ColorDef.black;\r\n\r\n const params = new GraphicParams();\r\n params.fillColor = fillColor;\r\n params.gradient = this._gradient;\r\n\r\n builder.activateGraphicParams(params);\r\n builder.addShape2d(this._shadow, Frustum2d.minimumZDistance);\r\n\r\n builder.setSymbology(lineColor, fillColor, 2);\r\n builder.addLineString2d(this._rect, 0);\r\n }\r\n}\r\n\r\n/** The information required to instantiate an Attachment object. See ViewAttachmentsInfo */\r\ninterface ViewAttachmentInfo extends ViewAttachmentProps {\r\n attachedView: ViewState;\r\n}\r\n\r\n/** The information required to instantiate an ViewAttachments object to draw ViewAttachments into a sheet. The list of view attachment Ids is\r\n * supplied to SheetViewState via the constructor. The corresponding ViewAttachmentProps for each attachment are obtained asynchronously in\r\n * SheetViewState.load(). The Attachments object is created in SheetViewState.attachToViewport and disposed of in SheetViewState.detachFromViewport.\r\n */\r\nclass ViewAttachmentsInfo {\r\n private _attachments: Id64Array | ViewAttachmentInfo[];\r\n\r\n private constructor(attachments: Id64Array | ViewAttachmentInfo[]) {\r\n this._attachments = attachments;\r\n }\r\n\r\n public get isLoaded(): boolean {\r\n return 0 === this._attachments.length || \"string\" !== typeof this._attachments[0];\r\n }\r\n\r\n public get viewAttachmentProps(): Array<Readonly<ViewAttachmentProps>> {\r\n return this.isLoaded ? this._props : [];\r\n }\r\n\r\n private get _props(): ViewAttachmentInfo[] {\r\n assert(this.isLoaded);\r\n return this._attachments as ViewAttachmentInfo[];\r\n }\r\n\r\n private get _ids(): Id64Array {\r\n assert(!this.isLoaded);\r\n return this._attachments as Id64Array;\r\n }\r\n\r\n public static fromJSON(ids: Id64Array = []): ViewAttachmentsInfo {\r\n return new ViewAttachmentsInfo(ids);\r\n }\r\n\r\n public toJSON(): Id64Array {\r\n return this.isLoaded ? this._props.map((x) => x.id!) : [...this._ids];\r\n }\r\n\r\n public clone(): ViewAttachmentsInfo {\r\n // No reason to clone the array.\r\n return new ViewAttachmentsInfo(this._attachments);\r\n }\r\n\r\n public async load(iModel: IModelConnection): Promise<void> {\r\n if (this.isLoaded)\r\n return;\r\n\r\n const attachmentProps = await iModel.elements.getProps(this._ids) as ViewAttachmentInfo[];\r\n const promises = [];\r\n for (const attachment of attachmentProps) {\r\n const loadView = async () => {\r\n try {\r\n const view = await iModel.views.load(attachment.view.id);\r\n return view;\r\n } catch {\r\n return undefined;\r\n }\r\n };\r\n\r\n promises.push(loadView());\r\n }\r\n\r\n const views = await Promise.all(promises);\r\n assert(views.length === attachmentProps.length);\r\n\r\n const attachments = [];\r\n for (let i = 0; i < views.length; i++) {\r\n const view = views[i];\r\n if (view && !(view instanceof SheetViewState)) {\r\n const props = attachmentProps[i];\r\n props.attachedView = view;\r\n attachments.push(props);\r\n }\r\n }\r\n\r\n this._attachments = attachments;\r\n }\r\n\r\n public createAttachments(sheetView: SheetViewState): ViewAttachments | undefined {\r\n return this.isLoaded ? new ViewAttachments(this._props, sheetView) : undefined;\r\n }\r\n}\r\n\r\n/** The set of view attachments to be displayed in a Viewport via a SheetViewState. Allocated when the view becomes attached to a Viewport;\r\n * disposed of when it becomes detached from the viewport.\r\n */\r\nclass ViewAttachments {\r\n private readonly _attachments: Attachment[] = [];\r\n public maxDepth = Frustum2d.minimumZDistance;\r\n\r\n public constructor(infos: ViewAttachmentInfo[], sheetView: SheetViewState) {\r\n for (const info of infos) {\r\n const drawAsRaster = info.jsonProperties?.displayOptions?.drawAsRaster || (info.attachedView.is3d() && info.attachedView.isCameraOn);\r\n const ctor = drawAsRaster ? RasterAttachment : OrthographicAttachment;\r\n const attachment = new ctor(info.attachedView, info, sheetView);\r\n this._attachments.push(attachment);\r\n this.maxDepth = Math.max(this.maxDepth, attachment.zDepth);\r\n }\r\n }\r\n\r\n public dispose(): void {\r\n for (const attachment of this._attachments)\r\n attachment.dispose();\r\n\r\n this._attachments.length = 0;\r\n }\r\n\r\n public [Symbol.iterator](): Iterator<Attachment> {\r\n return this._attachments[Symbol.iterator]();\r\n }\r\n\r\n /** For tests. */\r\n public get attachments(): Object[] {\r\n return this._attachments;\r\n }\r\n\r\n public get isEmpty(): boolean {\r\n return 0 === this._attachments.length;\r\n }\r\n\r\n public get areAllTileTreesLoaded(): boolean {\r\n return this._attachments.every((x) => x.areAllTileTreesLoaded);\r\n }\r\n\r\n public discloseTileTrees(trees: DisclosedTileTreeSet): void {\r\n for (const attachment of this._attachments)\r\n trees.disclose(attachment);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n for (const attachment of this._attachments)\r\n attachment.collectStatistics(stats);\r\n }\r\n\r\n public addToScene(context: SceneContext): void {\r\n for (const attachment of this._attachments)\r\n attachment.addToScene(context);\r\n }\r\n}\r\n\r\n/** A view of a [SheetModel]($backend).\r\n * @public\r\n */\r\nexport class SheetViewState extends ViewState2d {\r\n /** The width and height of the sheet in world coordinates. */\r\n public readonly sheetSize: Point2d;\r\n private _attachmentsInfo: ViewAttachmentsInfo;\r\n private _attachments?: ViewAttachments;\r\n private readonly _viewedExtents: AxisAlignedBox3d;\r\n\r\n public get attachmentIds(): Id64Array {\r\n return this._attachmentsInfo.toJSON();\r\n }\r\n\r\n /** @internal */\r\n public static override get className() { return \"SheetViewDefinition\"; }\r\n\r\n public static override createFromProps(viewStateData: ViewStateProps, iModel: IModelConnection): SheetViewState {\r\n const cat = new CategorySelectorState(viewStateData.categorySelectorProps, iModel);\r\n const displayStyleState = new DisplayStyle2dState(viewStateData.displayStyleProps, iModel);\r\n\r\n // use \"new this\" so subclasses are correct\r\n return new this(viewStateData.viewDefinitionProps as ViewDefinition2dProps, iModel, cat, displayStyleState, viewStateData.sheetProps!, viewStateData.sheetAttachments!);\r\n }\r\n\r\n public override toProps(): ViewStateProps {\r\n const props = super.toProps();\r\n\r\n props.sheetAttachments = this._attachmentsInfo.toJSON();\r\n\r\n // For sheetProps all that is actually used is the size, so just null out everything else.\r\n const codeProps = { spec: \"\", scope: \"\", value: \"\" };\r\n props.sheetProps = {\r\n model: \"\",\r\n code: codeProps,\r\n classFullName: \"\",\r\n width: this.sheetSize.x,\r\n height: this.sheetSize.y,\r\n scale: 1,\r\n };\r\n\r\n return props;\r\n }\r\n\r\n /** Strictly for testing. @internal */\r\n public get viewAttachmentProps(): Array<Readonly<ViewAttachmentProps>> {\r\n return this._attachmentsInfo.viewAttachmentProps;\r\n }\r\n\r\n /** Strictly for testing. @internal */\r\n public get attachments(): Object[] | undefined {\r\n return this._attachments?.attachments;\r\n }\r\n\r\n /** @internal */\r\n public override isDrawingView(): this is DrawingViewState { return false; }\r\n /** @internal */\r\n public override isSheetView(): this is SheetViewState { return true; }\r\n\r\n public constructor(props: ViewDefinition2dProps, iModel: IModelConnection, categories: CategorySelectorState, displayStyle: DisplayStyle2dState, sheetProps: SheetProps, attachments: Id64Array) {\r\n super(props, iModel, categories, displayStyle);\r\n if (categories instanceof SheetViewState) {\r\n // we are coming from clone...\r\n this.sheetSize = categories.sheetSize.clone();\r\n this._attachmentsInfo = categories._attachmentsInfo.clone();\r\n this._viewedExtents = categories._viewedExtents.clone();\r\n } else {\r\n this.sheetSize = Point2d.create(sheetProps.width, sheetProps.height);\r\n this._attachmentsInfo = ViewAttachmentsInfo.fromJSON(attachments);\r\n\r\n const extents = new Range3d(0, 0, 0, this.sheetSize.x, this.sheetSize.y, 0);\r\n const margin = 1.1;\r\n extents.scaleAboutCenterInPlace(margin);\r\n this._viewedExtents = extents;\r\n }\r\n }\r\n\r\n public override getOrigin() {\r\n const origin = super.getOrigin();\r\n if (this._attachments)\r\n origin.z = -this._attachments.maxDepth;\r\n\r\n return origin;\r\n }\r\n\r\n public override getExtents() {\r\n const extents = super.getExtents();\r\n if (this._attachments)\r\n extents.z = this._attachments.maxDepth + Frustum2d.minimumZDistance;\r\n\r\n return extents;\r\n }\r\n\r\n /** Disclose *all* TileTrees currently in use by this view. This set may include trees not reported by [[forEachTileTreeRef]] - e.g., those used by view attachments, map-draped terrain, etc.\r\n * @internal override\r\n */\r\n public override discloseTileTrees(trees: DisclosedTileTreeSet): void {\r\n super.discloseTileTrees(trees);\r\n if (this._attachments)\r\n trees.disclose(this._attachments);\r\n }\r\n\r\n /** @internal */\r\n public override collectNonTileTreeStatistics(stats: RenderMemory.Statistics): void {\r\n super.collectNonTileTreeStatistics(stats);\r\n if (this._attachments)\r\n this._attachments.collectStatistics(stats);\r\n }\r\n\r\n /** @internal */\r\n public override get defaultExtentLimits() {\r\n return { min: Constant.oneMillimeter, max: this.sheetSize.magnitude() * 10 };\r\n }\r\n\r\n /** @internal */\r\n public override getViewedExtents(): AxisAlignedBox3d {\r\n return this._viewedExtents;\r\n }\r\n\r\n /** Load the size and attachment for this sheet, as well as any other 2d view state characteristics.\r\n * @internal override\r\n */\r\n public override async load(): Promise<void> {\r\n await super.load();\r\n await this._attachmentsInfo.load(this.iModel);\r\n }\r\n\r\n /** @internal */\r\n public override createScene(context: SceneContext): void {\r\n super.createScene(context);\r\n if (this._attachments)\r\n this._attachments.addToScene(context);\r\n }\r\n\r\n /** @internal */\r\n public override get secondaryViewports(): Iterable<Viewport> {\r\n const attachments = this._attachments;\r\n if (!attachments)\r\n return super.secondaryViewports;\r\n\r\n function* iterator() {\r\n for (const attachment of attachments!) {\r\n const vp = attachment.viewport;\r\n if (vp)\r\n yield vp;\r\n }\r\n }\r\n\r\n return {\r\n [Symbol.iterator]: () => iterator(),\r\n };\r\n }\r\n\r\n /** @internal */\r\n private async queryAttachmentIds(): Promise<Id64Array> {\r\n const ecsql = `SELECT ECInstanceId as attachmentId FROM bis.ViewAttachment WHERE model.Id=${this.baseModelId}`;\r\n const ids: string[] = [];\r\n for await (const row of this.iModel.query(ecsql))\r\n ids.push(row[0]);\r\n\r\n return ids;\r\n }\r\n\r\n /** @internal */\r\n public override async changeViewedModel(modelId: Id64String): Promise<void> {\r\n await super.changeViewedModel(modelId);\r\n const attachmentIds = await this.queryAttachmentIds();\r\n this._attachmentsInfo = ViewAttachmentsInfo.fromJSON(attachmentIds);\r\n\r\n assert(undefined === this._attachments);\r\n }\r\n\r\n /** @internal */\r\n public override attachToViewport(args: AttachToViewportArgs): void {\r\n super.attachToViewport(args);\r\n assert(undefined === this._attachments);\r\n this._attachments = this._attachmentsInfo.createAttachments(this);\r\n }\r\n\r\n /** @internal */\r\n public override detachFromViewport(): void {\r\n super.detachFromViewport();\r\n this._attachments = dispose(this._attachments);\r\n }\r\n\r\n /** @internal */\r\n public override get areAllTileTreesLoaded(): boolean {\r\n return super.areAllTileTreesLoaded && (!this._attachments || this._attachments.areAllTileTreesLoaded);\r\n }\r\n\r\n /** Create a sheet border decoration graphic. */\r\n private createBorder(width: number, height: number, context: DecorateContext): RenderGraphic {\r\n const border = SheetBorder.create(width, height, context);\r\n const builder = context.createGraphicBuilder(GraphicType.ViewBackground);\r\n border.addToBuilder(builder);\r\n return builder.finish();\r\n }\r\n\r\n /** @internal */\r\n public override decorate(context: DecorateContext): void {\r\n super.decorate(context);\r\n if (this.sheetSize !== undefined) {\r\n const border = this.createBorder(this.sheetSize.x, this.sheetSize.y, context);\r\n context.setViewBackground(border);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public override computeFitRange(): Range3d {\r\n const size = this.sheetSize;\r\n if (0 >= size.x || 0 >= size.y)\r\n return super.computeFitRange();\r\n return new Range3d(0, 0, -1, size.x, size.y, 1);\r\n }\r\n}\r\n\r\n/** A mostly no-op RenderTarget for an Attachment.\r\n * its Scene and symbology overrides.\r\n */\r\nclass AttachmentTarget extends MockRender.OffScreenTarget {\r\n private readonly _attachment: OrthographicAttachment;\r\n\r\n public constructor(attachment: OrthographicAttachment) {\r\n // The dimensions don't matter - we're not drawing anything.\r\n const rect = new ViewRect(1, 1);\r\n super(IModelApp.renderSystem, rect);\r\n this._attachment = attachment;\r\n }\r\n\r\n public override changeScene(scene: Scene): void {\r\n this._attachment.scene = scene;\r\n }\r\n\r\n public override overrideFeatureSymbology(ovrs: FeatureSymbology.Overrides): void {\r\n this._attachment.symbologyOverrides = ovrs;\r\n }\r\n}\r\n\r\n/** Draws the contents of a view attachment into a sheet view. */\r\ninterface Attachment {\r\n readonly areAllTileTreesLoaded: boolean;\r\n addToScene: (context: SceneContext) => void;\r\n discloseTileTrees: (trees: DisclosedTileTreeSet) => void;\r\n readonly zDepth: number;\r\n collectStatistics: (stats: RenderMemory.Statistics) => void;\r\n viewAttachmentProps: ViewAttachmentProps;\r\n dispose(): void;\r\n readonly viewport?: Viewport;\r\n}\r\n\r\n/** Draws the contents a 2d or orthographic 3d view directly into a sheet view.\r\n * We select tiles for the view in the context of a light-weight offscreen viewport with a no-op RenderTarget, then\r\n * collect the resultant graphics and add them to the sheet view's scene.\r\n */\r\nclass OrthographicAttachment {\r\n private readonly _viewport: OffScreenViewport;\r\n private readonly _props: ViewAttachmentProps;\r\n private readonly _sheetModelId: Id64String;\r\n private readonly _viewFlagOverrides: ViewFlagOverrides;\r\n private readonly _toSheet: Transform;\r\n private readonly _fromSheet: Transform;\r\n private readonly _sizeInMeters: Point2d;\r\n private readonly _range: Range3d;\r\n private readonly _viewRect = new ViewRect(0, 0, 1, 1);\r\n private readonly _originalFrustum = new Frustum();\r\n private readonly _clipVolume?: RenderClipVolume;\r\n private readonly _hiddenLineSettings?: HiddenLine.Settings;\r\n private readonly _scale: { x: number, y: number };\r\n private _debugFeatureTable?: PackedFeatureTable;\r\n public scene?: Scene;\r\n public symbologyOverrides: FeatureSymbology.Overrides;\r\n public readonly zDepth: number;\r\n\r\n public get view(): ViewState {\r\n return this._viewport.view;\r\n }\r\n\r\n public get viewAttachmentProps() {\r\n return this._props;\r\n }\r\n\r\n public get viewport(): Viewport {\r\n return this._viewport;\r\n }\r\n\r\n public constructor(view: ViewState, props: ViewAttachmentProps, sheetView: SheetViewState) {\r\n this.symbologyOverrides = new FeatureSymbology.Overrides(view);\r\n const target = new AttachmentTarget(this);\r\n this._viewport = OffScreenViewport.createViewport(view, target, true);\r\n\r\n this._props = props;\r\n this._sheetModelId = sheetView.baseModelId;\r\n\r\n const applyClip = true; // set to false for debugging\r\n this._viewFlagOverrides = {\r\n ...view.viewFlags,\r\n clipVolume: applyClip,\r\n lighting: false,\r\n shadows: false,\r\n };\r\n\r\n const placement = Placement2d.fromJSON(props.placement);\r\n const range = placement.calculateRange();\r\n this._range = range;\r\n this._sizeInMeters = new Point2d(range.xLength(), range.yLength());\r\n\r\n // Compute transform from attached view's world coordinates to sheet's world coordinates.\r\n // NB: We obtain the extents and origin from the *viewport* not the *view* - they may have been adjusted by the viewport.\r\n const applySkew = true; // set to false for debugging\r\n const skew = applySkew ? view.getAspectRatioSkew() : 1;\r\n const extents = this._viewport.viewingSpace.viewDelta.clone();\r\n const zDepth = Math.abs(extents.z);\r\n const scaleX = this._sizeInMeters.x / Math.abs(extents.x);\r\n const scaleY = skew * this._sizeInMeters.y / Math.abs(extents.y);\r\n this._scale = { x: 1 / scaleX, y: 1 / scaleY };\r\n\r\n const zBias = Frustum2d.depthFromDisplayPriority(props.jsonProperties?.displayPriority ?? 0);\r\n this.zDepth = 1.01 * (zDepth - zBias); // give a little padding so that geometry right up against far plane doesn't get clipped.\r\n\r\n // View origin is at the *back* of the view. Align *front* of view based on display priority.\r\n const viewRot = view.getRotation();\r\n const viewOrg = viewRot.multiplyVector(this._viewport.viewingSpace.viewOrigin);\r\n viewOrg.z += zDepth;\r\n viewRot.multiplyTransposeVectorInPlace(viewOrg);\r\n\r\n const matrix = Matrix3d.createScale(scaleX, scaleY, 1);\r\n matrix.multiplyMatrixMatrix(viewRot, matrix);\r\n const origin = Matrix3d.xyzMinusMatrixTimesXYZ(viewOrg, matrix, viewOrg);\r\n const attachmentOrigin = Point3d.createFrom(placement.origin);\r\n attachmentOrigin.z = zBias;\r\n const viewOrgToAttachment = attachmentOrigin.minus(viewOrg);\r\n origin.addInPlace(viewOrgToAttachment);\r\n this._toSheet = Transform.createRefs(origin, matrix);\r\n this._fromSheet = this._toSheet.inverse()!;\r\n\r\n // ###TODO? If we also apply the attachment's clip to the attached view, we may get additional culling during tile selection.\r\n // However the attached view's frustum is already clipped by intersection with sheet view's frustum, and additional clipping planes\r\n // introduce additional computation, so possibly not worth it.\r\n\r\n // Transform the view's clip (if any) to sheet space\r\n let viewClip = view.viewFlags.clipVolume ? view.getViewClip()?.clone() : undefined;\r\n if (viewClip)\r\n viewClip.transformInPlace(this._toSheet);\r\n else\r\n viewClip = ClipVector.createEmpty();\r\n\r\n let sheetClip;\r\n if (undefined !== props.jsonProperties?.clip)\r\n sheetClip = ClipVector.fromJSON(props.jsonProperties?.clip);\r\n\r\n if (sheetClip && sheetClip.isValid) {\r\n // Clip to view attachment's clip. NB: clip is in sheet coordinate space.\r\n for (const clip of sheetClip.clips)\r\n viewClip.clips.push(clip);\r\n } else {\r\n // Clip to view attachment's bounding box\r\n viewClip.appendShape([\r\n Point3d.create(this._range.low.x, this._range.low.y),\r\n Point3d.create(this._range.high.x, this._range.low.y),\r\n Point3d.create(this._range.high.x, this._range.high.y),\r\n Point3d.create(this._range.low.x, this._range.high.y),\r\n ]);\r\n }\r\n\r\n this._clipVolume = IModelApp.renderSystem.createClipVolume(viewClip);\r\n\r\n // Save off the original frustum (potentially adjusted by viewport).\r\n this._viewport.setupFromView();\r\n this._viewport.viewingSpace.getFrustum(CoordSystem.World, true, this._originalFrustum);\r\n\r\n const applyHiddenLineSettings = true; // for debugging edge display, set to false...\r\n const style = view.displayStyle;\r\n if (style.is3d() && applyHiddenLineSettings)\r\n this._hiddenLineSettings = style.settings.hiddenLineSettings;\r\n }\r\n\r\n public dispose(): void {\r\n this._viewport.dispose();\r\n }\r\n\r\n public discloseTileTrees(trees: DisclosedTileTreeSet): void {\r\n trees.disclose(this._viewport);\r\n }\r\n\r\n public addToScene(context: SceneContext): void {\r\n if (context.viewport.freezeScene)\r\n return;\r\n\r\n if (!context.viewport.view.viewsCategory(this._props.category))\r\n return;\r\n\r\n const wantBounds = context.viewport.wantViewAttachmentBoundaries;\r\n const wantClipShapes = context.viewport.wantViewAttachmentClipShapes;\r\n if (wantBounds || wantClipShapes) {\r\n const builder = context.createSceneGraphicBuilder();\r\n if (wantBounds) {\r\n builder.setSymbology(ColorDef.red, ColorDef.red, 2);\r\n builder.addRangeBox(this._range);\r\n }\r\n\r\n if (wantClipShapes && this._clipVolume) {\r\n builder.setSymbology(ColorDef.blue, ColorDef.blue, 2);\r\n for (const prim of this._clipVolume.clipVector.clips) {\r\n if (!(prim instanceof ClipShape))\r\n continue; // ###TODO handle non-shape primitives, if any such ever encountered\r\n\r\n const pts = [];\r\n const tf = prim.transformFromClip;\r\n for (const pt of prim.polygon) {\r\n const tfPt = tf ? tf.multiplyPoint3d(pt) : pt;\r\n pts.push(new Point2d(tfPt.x, tfPt.y));\r\n }\r\n\r\n builder.addLineString2d(pts, 0);\r\n }\r\n }\r\n\r\n // Put into a Batch so that we can see tooltip with attachment Id on mouseover.\r\n const batch = context.target.renderSystem.createBatch(builder.finish(), this.getDebugFeatureTable(), this._range);\r\n context.outputGraphic(batch);\r\n }\r\n\r\n if (!context.viewport.wantViewAttachments)\r\n return;\r\n\r\n // Pixel size used to compute size of ViewRect so that tiles of appropriate LOD are selected.\r\n const pixelSize = context.viewport.getPixelSizeAtPoint();\r\n if (0 === pixelSize)\r\n return;\r\n\r\n // Adjust attached view frustum based on intersection with sheet view frustum.\r\n const attachFrustum = this._originalFrustum.transformBy(this._toSheet);\r\n const attachFrustumRange = attachFrustum.toRange();\r\n const sheetFrustum = context.viewport.getWorldFrustum();\r\n const sheetFrustumRange = sheetFrustum.toRange();\r\n const intersect = attachFrustumRange.intersect(sheetFrustumRange);\r\n if (intersect.isNull)\r\n return;\r\n\r\n attachFrustum.initFromRange(intersect);\r\n attachFrustum.transformBy(this._fromSheet, attachFrustum);\r\n this._viewport.setupViewFromFrustum(attachFrustum);\r\n\r\n // Adjust view rect based on size of attachment on screen so that tiles of appropriate LOD are selected.\r\n const width = this._sizeInMeters.x * intersect.xLength() / attachFrustumRange.xLength();\r\n const height = this._sizeInMeters.y * intersect.yLength() / attachFrustumRange.yLength();\r\n this._viewRect.width = Math.max(1, Math.round(width / pixelSize));\r\n this._viewRect.height = Math.max(1, Math.round(height / pixelSize));\r\n this._viewport.setRect(this._viewRect);\r\n\r\n // Propagate settings from on-screen viewport.\r\n this._viewport.debugBoundingBoxes = context.viewport.debugBoundingBoxes;\r\n this._viewport.setTileSizeModifier(context.viewport.tileSizeModifier);\r\n\r\n // Create the scene.\r\n this._viewport.renderFrame();\r\n\r\n const scene = this.scene;\r\n if (!scene)\r\n return;\r\n\r\n // Extract scene graphics and insert into on-screen scene context.\r\n const options = {\r\n clipVolume: this._clipVolume,\r\n hline: this._hiddenLineSettings,\r\n frustum: {\r\n is3d: this.view.is3d(),\r\n scale: this._scale,\r\n },\r\n };\r\n\r\n const outputGraphics = (source: RenderGraphic[]) => {\r\n if (0 === source.length)\r\n return;\r\n\r\n const graphics = new GraphicBranch();\r\n graphics.setViewFlagOverrides(this._viewFlagOverrides);\r\n graphics.symbologyOverrides = this.symbologyOverrides;\r\n\r\n for (const graphic of source)\r\n graphics.entries.push(graphic);\r\n\r\n const branch = context.createGraphicBranch(graphics, this._toSheet, options);\r\n context.outputGraphic(branch);\r\n };\r\n\r\n outputGraphics(scene.foreground);\r\n context.withGraphicType(TileGraphicType.BackgroundMap, () => outputGraphics(scene.background));\r\n context.withGraphicType(TileGraphicType.Overlay, () => outputGraphics(scene.overlay));\r\n\r\n // Report tile statistics to sheet view's viewport.\r\n const tileAdmin = IModelApp.tileAdmin;\r\n const selectedAndReady = tileAdmin.getTilesForViewport(this._viewport);\r\n const requested = tileAdmin.getRequestsForViewport(this._viewport);\r\n tileAdmin.addExternalTilesForViewport(context.viewport, {\r\n requested: requested?.size ?? 0,\r\n selected: selectedAndReady?.selected.size ?? 0,\r\n ready: selectedAndReady?.ready.size ?? 0,\r\n });\r\n }\r\n\r\n private getDebugFeatureTable(): PackedFeatureTable {\r\n if (this._debugFeatureTable)\r\n return this._debugFeatureTable;\r\n\r\n const featureTable = new FeatureTable(1, this._sheetModelId);\r\n featureTable.insert(new Feature(this._props.id));\r\n this._debugFeatureTable = PackedFeatureTable.pack(featureTable);\r\n return this._debugFeatureTable;\r\n }\r\n\r\n public get areAllTileTreesLoaded(): boolean {\r\n return this.view.areAllTileTreesLoaded;\r\n }\r\n\r\n public collectStatistics(_stats: RenderMemory.Statistics): void {\r\n // Handled by discloseTileTrees()\r\n }\r\n}\r\n\r\nfunction createRasterAttachmentViewport(_view: ViewState, _rect: ViewRect, _attachment: RasterAttachment): OffScreenViewport {\r\n class RasterAttachmentViewport extends OffScreenViewport {\r\n private _sceneContext?: SceneContext;\r\n private _isSceneReady = false;\r\n private readonly _attachment: RasterAttachment;\r\n\r\n public constructor(view: ViewState, rect: ViewRect, attachment: RasterAttachment) {\r\n super(IModelApp.renderSystem.createOffscreenTarget(rect));\r\n this._attachment = attachment;\r\n this._isAspectRatioLocked = true;\r\n this.changeView(view);\r\n }\r\n\r\n public override createSceneContext(): SceneContext {\r\n assert(!this._isSceneReady);\r\n\r\n this._sceneContext = super.createSceneContext();\r\n return this._sceneContext;\r\n }\r\n\r\n public override renderFrame(): void {\r\n assert(!this._isSceneReady);\r\n\r\n this.clearSceneContext();\r\n super.renderFrame();\r\n\r\n if (undefined !== this._sceneContext) {\r\n this._isSceneReady = !this._sceneContext.hasMissingTiles && this.view.areAllTileTreesLoaded;\r\n if (this._isSceneReady)\r\n this._attachment.produceGraphics(this._sceneContext);\r\n\r\n this._sceneContext = undefined;\r\n }\r\n }\r\n\r\n private clearSceneContext(): void {\r\n this._sceneContext = undefined;\r\n }\r\n\r\n public override addDecorations(_decorations: Decorations): void {\r\n // ###TODO: skybox, ground plane, possibly grid. DecorateContext requires a ScreenViewport...\r\n }\r\n }\r\n\r\n return new RasterAttachmentViewport(_view, _rect, _attachment);\r\n}\r\n\r\n/** Draws a 3d view with camera enabled into a sheet view by producing an image of the view's contents offscreen. */\r\nclass RasterAttachment {\r\n private readonly _props: ViewAttachmentProps;\r\n private readonly _placement: Placement2d;\r\n private readonly _transform: Transform;\r\n public readonly zDepth: number;\r\n private _viewport?: OffScreenViewport;\r\n private _graphics?: RenderGraphic;\r\n\r\n public constructor(view: ViewState, props: ViewAttachmentProps, sheetView: SheetViewState) {\r\n // Render to a 2048x2048 view rect. Scale in Y to preserve aspect ratio.\r\n const maxSize = 2048;\r\n const rect = new ViewRect(0, 0, maxSize, maxSize);\r\n const height = maxSize * view.getAspectRatio() * view.getAspectRatioSkew();\r\n const skew = maxSize / height;\r\n view.setAspectRatioSkew(skew);\r\n\r\n if (true !== props.jsonProperties?.displayOptions?.preserveBackground) {\r\n // Make background color 100% transparent so that Viewport.readImageBuffer() will discard transparent pixels.\r\n const bgColor = sheetView.displayStyle.backgroundColor.withAlpha(0);\r\n view.displayStyle.backgroundColor = bgColor;\r\n }\r\n\r\n this._viewport = createRasterAttachmentViewport(view, rect, this);\r\n this._props = props;\r\n this._placement = Placement2d.fromJSON(props.placement);\r\n this._transform = this._placement.transform;\r\n this.zDepth = Frustum2d.depthFromDisplayPriority(props.jsonProperties?.displayPriority ?? 0);\r\n }\r\n\r\n public dispose(): void {\r\n this._viewport?.dispose();\r\n }\r\n\r\n public get viewAttachmentProps() {\r\n return this._props;\r\n }\r\n\r\n public get viewport(): Viewport | undefined {\r\n return this._viewport;\r\n }\r\n\r\n public get areAllTileTreesLoaded() {\r\n return this._viewport?.areAllTileTreesLoaded ?? true;\r\n }\r\n\r\n public addToScene(context: SceneContext): void {\r\n // ###TODO: check viewport.wantViewAttachmentClipShapes\r\n if (!context.viewport.view.viewsCategory(this._props.category))\r\n return;\r\n\r\n if (context.viewport.wantViewAttachmentBoundaries) {\r\n const builder = context.createSceneGraphicBuilder(this._transform);\r\n builder.setSymbology(ColorDef.red, ColorDef.red, 2);\r\n builder.addRangeBox(Range3d.createRange2d(this._placement.bbox));\r\n context.outputGraphic(builder.finish());\r\n }\r\n\r\n if (!context.viewport.wantViewAttachments)\r\n return;\r\n\r\n if (this._graphics) {\r\n context.outputGraphic(this._graphics);\r\n return;\r\n }\r\n\r\n if (undefined === this._viewport)\r\n return;\r\n\r\n this._viewport.debugBoundingBoxes = context.viewport.debugBoundingBoxes;\r\n this._viewport.setTileSizeModifier(context.viewport.tileSizeModifier);\r\n\r\n this._viewport.renderFrame();\r\n if (this._graphics)\r\n context.outputGraphic(this._graphics);\r\n }\r\n\r\n public discloseTileTrees(trees: DisclosedTileTreeSet) {\r\n if (this._viewport)\r\n trees.disclose(this._viewport);\r\n }\r\n\r\n public produceGraphics(context: SceneContext): void {\r\n assert(context.viewport === this._viewport);\r\n this._graphics = this.createGraphics(this._viewport);\r\n this._viewport = dispose(this._viewport);\r\n\r\n if (undefined !== this._graphics)\r\n context.outputGraphic(this._graphics);\r\n }\r\n\r\n private createGraphics(vp: Viewport): RenderGraphic | undefined {\r\n // Create a texture from the contents of the view.\r\n const image = vp.readImageBuffer({ upsideDown: true });\r\n if (undefined === image)\r\n return undefined;\r\n\r\n const debugImage = false; // set to true to open a window displaying the captured image.\r\n if (debugImage) {\r\n const url = imageBufferToPngDataUrl(image, false);\r\n if (url)\r\n openImageDataUrlInNewWindow(url, \"Attachment\");\r\n }\r\n\r\n const texture = IModelApp.renderSystem.createTexture({\r\n image: { source: image, transparency: TextureTransparency.Opaque },\r\n });\r\n if (!texture)\r\n return undefined;\r\n\r\n // Create a material for the texture\r\n const graphicParams = new GraphicParams();\r\n graphicParams.material = IModelApp.renderSystem.createRenderMaterial({ textureMapping: { texture } });\r\n\r\n // Apply the texture to a rectangular polyface.\r\n const depth = this.zDepth;\r\n const east = this._placement.bbox.low.x;\r\n const west = this._placement.bbox.high.x;\r\n const north = this._placement.bbox.low.y;\r\n const south = this._placement.bbox.high.y;\r\n const corners = [\r\n Point3d.create(east, north, depth),\r\n Point3d.create(west, north, depth),\r\n Point3d.create(west, south, depth),\r\n Point3d.create(east, south, depth),\r\n ];\r\n const params = [\r\n Point2d.create(0, 0),\r\n Point2d.create(1, 0),\r\n Point2d.create(1, 1),\r\n Point2d.create(0, 1),\r\n ];\r\n\r\n const strokeOptions = new StrokeOptions();\r\n strokeOptions.needParams = strokeOptions.shouldTriangulate = true;\r\n const polyfaceBuilder = PolyfaceBuilder.create(strokeOptions);\r\n polyfaceBuilder.addQuadFacet(corners, params);\r\n const polyface = polyfaceBuilder.claimPolyface();\r\n\r\n const graphicBuilder = IModelApp.renderSystem.createGraphicBuilder(Transform.createIdentity(), GraphicType.Scene, vp, this._props.id);\r\n graphicBuilder.activateGraphicParams(graphicParams);\r\n graphicBuilder.addPolyface(polyface, false);\r\n const graphic = graphicBuilder.finish();\r\n\r\n // Wrap the polyface in a GraphicBranch.\r\n const branch = new GraphicBranch(true);\r\n const vfOvrs = createDefaultViewFlagOverrides({ clipVolume: true, shadows: false, lighting: false, thematic: false });\r\n\r\n // Disable transparency - background pixels are 100% transparent so they will be discarded anyway. Other pixels are 100% opaque.\r\n vfOvrs.transparency = false;\r\n branch.setViewFlagOverrides(vfOvrs);\r\n branch.symbologyOverrides = new FeatureSymbology.Overrides();\r\n branch.entries.push(graphic);\r\n\r\n // Apply the attachment's clip, if any.\r\n let clipVolume;\r\n if (this._props.jsonProperties?.clip) {\r\n const clipVector = ClipVector.fromJSON(this._props.jsonProperties?.clip);\r\n if (clipVector.isValid)\r\n clipVolume = IModelApp.renderSystem.createClipVolume(clipVector);\r\n }\r\n\r\n return IModelApp.renderSystem.createGraphicBranch(branch, this._transform, { clipVolume });\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n if (this._graphics)\r\n this._graphics.collectStatistics(stats);\r\n }\r\n}\r\n"]}
@@ -11,7 +11,7 @@ import { DisplayStyle3dState } from "./DisplayStyleState";
11
11
  import { GeometricModelState } from "./ModelState";
12
12
  import { SceneContext } from "./ViewContext";
13
13
  import { IModelConnection } from "./IModelConnection";
14
- import { ViewState3d } from "./ViewState";
14
+ import { AttachToViewportArgs, ViewState3d } from "./ViewState";
15
15
  import { TileTreeReference } from "./tile/internal";
16
16
  /** Defines a view of one or more SpatialModels.
17
17
  * The list of viewed models is stored in the ModelSelector.
@@ -69,9 +69,17 @@ export declare class SpatialViewState extends ViewState3d {
69
69
  /** @internal */
70
70
  createScene(context: SceneContext): void;
71
71
  /** @internal */
72
- attachToViewport(): void;
72
+ attachToViewport(args: AttachToViewportArgs): void;
73
73
  /** @internal */
74
74
  detachFromViewport(): void;
75
+ /** Chiefly for debugging: change the "deactivated" state of one or more tile tree references. Deactivated references are
76
+ * omitted when iterating the references, so e.g. their graphics are omitted from the scene.
77
+ * @param modelIds The Ids of one or more models whose tile tree references are to be affected. If omitted, all models are affected.
78
+ * @param deactivated True to deactivate the specified references, false to reactivate them, undefined to invert each one's current state.
79
+ * @param which The references to be affected as either a broad category or one or more indices of animated references.
80
+ * @internal
81
+ */
82
+ setTileTreeReferencesDeactivated(modelIds: Id64String | Id64String[] | undefined, deactivated: boolean | undefined, which: "all" | "animated" | "primary" | "section" | number[]): void;
75
83
  private registerModelSelectorListeners;
76
84
  private unregisterModelSelectorListeners;
77
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SpatialViewState.d.ts","sourceRoot":"","sources":["../../src/SpatialViewState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SpatialViewState.d.ts","sourceRoot":"","sources":["../../src/SpatialViewState.ts"],"names":[],"mappings":"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"}
@@ -147,8 +147,8 @@ class SpatialViewState extends ViewState_1.ViewState3d {
147
147
  context.viewport.target.updateSolarShadows(this.getDisplayStyle3d().wantShadows ? context : undefined);
148
148
  }
149
149
  /** @internal */
150
- attachToViewport() {
151
- super.attachToViewport();
150
+ attachToViewport(args) {
151
+ super.attachToViewport(args);
152
152
  this.registerModelSelectorListeners();
153
153
  }
154
154
  /** @internal */
@@ -156,6 +156,16 @@ class SpatialViewState extends ViewState_1.ViewState3d {
156
156
  super.detachFromViewport();
157
157
  this.unregisterModelSelectorListeners();
158
158
  }
159
+ /** Chiefly for debugging: change the "deactivated" state of one or more tile tree references. Deactivated references are
160
+ * omitted when iterating the references, so e.g. their graphics are omitted from the scene.
161
+ * @param modelIds The Ids of one or more models whose tile tree references are to be affected. If omitted, all models are affected.
162
+ * @param deactivated True to deactivate the specified references, false to reactivate them, undefined to invert each one's current state.
163
+ * @param which The references to be affected as either a broad category or one or more indices of animated references.
164
+ * @internal
165
+ */
166
+ setTileTreeReferencesDeactivated(modelIds, deactivated, which) {
167
+ this._treeRefs.setDeactivated(modelIds, deactivated, which);
168
+ }
159
169
  registerModelSelectorListeners() {
160
170
  const models = this.modelSelector.observableModels;
161
171
  const func = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"SpatialViewState.js","sourceRoot":"","sources":["../../src/SpatialViewState.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 Views\r\n */\r\n\r\nimport { BeEvent, Id64String } from \"@itwin/core-bentley\";\r\nimport { Constant, Matrix3d, Range3d, XYAndZ } from \"@itwin/core-geometry\";\r\nimport { AxisAlignedBox3d, SpatialViewDefinitionProps, ViewStateProps } from \"@itwin/core-common\";\r\nimport { AuxCoordSystemSpatialState, AuxCoordSystemState } from \"./AuxCoordSys\";\r\nimport { ModelSelectorState } from \"./ModelSelectorState\";\r\nimport { CategorySelectorState } from \"./CategorySelectorState\";\r\nimport { DisplayStyle3dState } from \"./DisplayStyleState\";\r\nimport { GeometricModel3dState, GeometricModelState } from \"./ModelState\";\r\nimport { SceneContext } from \"./ViewContext\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\nimport { ViewState3d } from \"./ViewState\";\r\nimport { SpatialTileTreeReferences, TileTreeReference } from \"./tile/internal\";\r\n\r\n/** Defines a view of one or more SpatialModels.\r\n * The list of viewed models is stored in the ModelSelector.\r\n * @public\r\n */\r\nexport class SpatialViewState extends ViewState3d {\r\n /** @internal */\r\n public static override get className() { return \"SpatialViewDefinition\"; }\r\n\r\n private readonly _treeRefs: SpatialTileTreeReferences;\r\n private _modelSelector: ModelSelectorState;\r\n private readonly _unregisterModelSelectorListeners: VoidFunction[] = [];\r\n\r\n /** An event raised when the set of models viewed by this view changes, *only* if the view is attached to a [[Viewport]].\r\n * @public\r\n */\r\n public readonly onViewedModelsChanged = new BeEvent<() => void>();\r\n\r\n public get modelSelector(): ModelSelectorState {\r\n return this._modelSelector;\r\n }\r\n\r\n public set modelSelector(selector: ModelSelectorState) {\r\n if (selector === this.modelSelector)\r\n return;\r\n\r\n const isAttached = this.isAttachedToViewport;\r\n this.unregisterModelSelectorListeners();\r\n\r\n this._modelSelector = selector;\r\n\r\n if (isAttached) {\r\n this.registerModelSelectorListeners();\r\n this.onViewedModelsChanged.raiseEvent();\r\n }\r\n }\r\n\r\n /** Create a new *blank* SpatialViewState. The returned SpatialViewState will nave non-persistent empty [[CategorySelectorState]] and [[ModelSelectorState]],\r\n * and a non-persistent [[DisplayStyle3dState]] with default values for all of its components. Generally after creating a blank SpatialViewState,\r\n * callers will modify the state to suit specific needs.\r\n * @param iModel The IModelConnection for the new SpatialViewState\r\n * @param origin The origin for the new SpatialViewState\r\n * @param extents The extents for the new SpatialViewState\r\n * @param rotation The rotation of the new SpatialViewState. If undefined, use top view.\r\n * @public\r\n */\r\n public static createBlank(iModel: IModelConnection, origin: XYAndZ, extents: XYAndZ, rotation?: Matrix3d): SpatialViewState {\r\n const blank = {} as any;\r\n const cat = new CategorySelectorState(blank, iModel);\r\n const modelSelectorState = new ModelSelectorState(blank, iModel);\r\n const displayStyleState = new DisplayStyle3dState(blank, iModel);\r\n const view = new this(blank, iModel, cat, displayStyleState, modelSelectorState);\r\n view.setOrigin(origin);\r\n view.setExtents(extents);\r\n if (undefined !== rotation)\r\n view.setRotation(rotation);\r\n return view;\r\n }\r\n\r\n public static override createFromProps(props: ViewStateProps, iModel: IModelConnection): SpatialViewState {\r\n const cat = new CategorySelectorState(props.categorySelectorProps, iModel);\r\n const displayStyleState = new DisplayStyle3dState(props.displayStyleProps, iModel);\r\n const modelSelectorState = new ModelSelectorState(props.modelSelectorProps!, iModel);\r\n return new this(props.viewDefinitionProps as SpatialViewDefinitionProps, iModel, cat, displayStyleState, modelSelectorState);\r\n }\r\n\r\n public override toProps(): ViewStateProps {\r\n const props = super.toProps();\r\n props.modelSelectorProps = this.modelSelector.toJSON();\r\n return props;\r\n }\r\n\r\n constructor(props: SpatialViewDefinitionProps, iModel: IModelConnection, arg3: CategorySelectorState, displayStyle: DisplayStyle3dState, modelSelector: ModelSelectorState) {\r\n super(props, iModel, arg3, displayStyle);\r\n this._modelSelector = modelSelector;\r\n if (arg3 instanceof SpatialViewState) // from clone\r\n this._modelSelector = arg3.modelSelector.clone();\r\n\r\n this._treeRefs = SpatialTileTreeReferences.create(this);\r\n }\r\n\r\n /** @internal */\r\n public override isSpatialView(): this is SpatialViewState { return true; }\r\n\r\n public override equals(other: this): boolean { return super.equals(other) && this.modelSelector.equals(other.modelSelector); }\r\n\r\n public override createAuxCoordSystem(acsName: string): AuxCoordSystemState { return AuxCoordSystemSpatialState.createNew(acsName, this.iModel); }\r\n public get defaultExtentLimits() { return { min: Constant.oneMillimeter, max: 3 * Constant.diameterOfEarth }; } // Increased max by 3X to support globe mode.\r\n\r\n /** @internal */\r\n public markModelSelectorChanged(): void {\r\n this._treeRefs.update();\r\n }\r\n\r\n /** Get world-space viewed extents based on the iModel's project extents. */\r\n protected getDisplayedExtents(): AxisAlignedBox3d {\r\n const extents = Range3d.fromJSON<AxisAlignedBox3d>(this.iModel.displayedExtents);\r\n extents.scaleAboutCenterInPlace(1.0001); // projectExtents. lying smack up against the extents is not excluded by frustum...\r\n extents.extendRange(this.getGroundExtents());\r\n return extents;\r\n }\r\n\r\n /** Compute world-space range appropriate for fitting the view. If that range is null, use the displayed extents. */\r\n public computeFitRange(): AxisAlignedBox3d {\r\n // Loop over the current models in the model selector with loaded tile trees and union their ranges\r\n const range = new Range3d();\r\n this.forEachTileTreeRef((ref) => {\r\n ref.unionFitRange(range);\r\n });\r\n\r\n if (range.isNull)\r\n range.setFrom(this.getDisplayedExtents());\r\n\r\n range.ensureMinLengths(1.0);\r\n\r\n return range;\r\n }\r\n\r\n public getViewedExtents(): AxisAlignedBox3d {\r\n const extents = this.getDisplayedExtents();\r\n\r\n // Some displayed tile trees may have a transform applied that takes them outside of the displayed extents.\r\n extents.extendRange(this.computeFitRange());\r\n\r\n return extents;\r\n }\r\n\r\n public override toJSON(): SpatialViewDefinitionProps {\r\n const val = super.toJSON() as SpatialViewDefinitionProps;\r\n val.modelSelectorId = this.modelSelector.id;\r\n return val;\r\n }\r\n public override async load(): Promise<void> {\r\n await super.load();\r\n return this.modelSelector.load();\r\n }\r\n public viewsModel(modelId: Id64String): boolean { return this.modelSelector.containsModel(modelId); }\r\n public clearViewedModels() { this.modelSelector.models.clear(); }\r\n public addViewedModel(id: Id64String) { this.modelSelector.addModels(id); }\r\n public removeViewedModel(id: Id64String) { this.modelSelector.dropModels(id); }\r\n\r\n public forEachModel(func: (model: GeometricModelState) => void) {\r\n for (const modelId of this.modelSelector.models) {\r\n const model = this.iModel.models.getLoaded(modelId);\r\n if (undefined !== model && undefined !== model.asGeometricModel3d)\r\n func(model as GeometricModel3dState);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public override forEachModelTreeRef(func: (treeRef: TileTreeReference) => void): void {\r\n for (const ref of this._treeRefs)\r\n func(ref);\r\n }\r\n\r\n /** @internal */\r\n public override createScene(context: SceneContext): void {\r\n super.createScene(context);\r\n context.textureDrapes.forEach((drape) => drape.collectGraphics(context));\r\n context.viewport.target.updateSolarShadows(this.getDisplayStyle3d().wantShadows ? context : undefined);\r\n }\r\n\r\n /** @internal */\r\n public override attachToViewport(): void {\r\n super.attachToViewport();\r\n this.registerModelSelectorListeners();\r\n }\r\n\r\n /** @internal */\r\n public override detachFromViewport(): void {\r\n super.detachFromViewport();\r\n this.unregisterModelSelectorListeners();\r\n }\r\n\r\n private registerModelSelectorListeners(): void {\r\n const models = this.modelSelector.observableModels;\r\n const func = () => {\r\n this.markModelSelectorChanged();\r\n this.onViewedModelsChanged.raiseEvent();\r\n };\r\n\r\n this._unregisterModelSelectorListeners.push(models.onAdded.addListener(func));\r\n this._unregisterModelSelectorListeners.push(models.onDeleted.addListener(func));\r\n this._unregisterModelSelectorListeners.push(models.onCleared.addListener(func));\r\n }\r\n\r\n private unregisterModelSelectorListeners(): void {\r\n this._unregisterModelSelectorListeners.forEach((f) => f());\r\n this._unregisterModelSelectorListeners.length = 0;\r\n }\r\n}\r\n/** Defines a spatial view that displays geometry on the image plane using a parallel orthographic projection.\r\n * @public\r\n */\r\nexport class OrthographicViewState extends SpatialViewState {\r\n /** @internal */\r\n public static override get className() { return \"OrthographicViewDefinition\"; }\r\n\r\n constructor(props: SpatialViewDefinitionProps, iModel: IModelConnection, categories: CategorySelectorState, displayStyle: DisplayStyle3dState, modelSelector: ModelSelectorState) { super(props, iModel, categories, displayStyle, modelSelector); }\r\n\r\n public override supportsCamera(): boolean { return false; }\r\n}\r\n"]}
1
+ {"version":3,"file":"SpatialViewState.js","sourceRoot":"","sources":["../../src/SpatialViewState.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 Views\r\n */\r\n\r\nimport { BeEvent, Id64String } from \"@itwin/core-bentley\";\r\nimport { Constant, Matrix3d, Range3d, XYAndZ } from \"@itwin/core-geometry\";\r\nimport { AxisAlignedBox3d, SpatialViewDefinitionProps, ViewStateProps } from \"@itwin/core-common\";\r\nimport { AuxCoordSystemSpatialState, AuxCoordSystemState } from \"./AuxCoordSys\";\r\nimport { ModelSelectorState } from \"./ModelSelectorState\";\r\nimport { CategorySelectorState } from \"./CategorySelectorState\";\r\nimport { DisplayStyle3dState } from \"./DisplayStyleState\";\r\nimport { GeometricModel3dState, GeometricModelState } from \"./ModelState\";\r\nimport { SceneContext } from \"./ViewContext\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\nimport { AttachToViewportArgs, ViewState3d } from \"./ViewState\";\r\nimport { SpatialTileTreeReferences, TileTreeReference } from \"./tile/internal\";\r\n\r\n/** Defines a view of one or more SpatialModels.\r\n * The list of viewed models is stored in the ModelSelector.\r\n * @public\r\n */\r\nexport class SpatialViewState extends ViewState3d {\r\n /** @internal */\r\n public static override get className() { return \"SpatialViewDefinition\"; }\r\n\r\n private readonly _treeRefs: SpatialTileTreeReferences;\r\n private _modelSelector: ModelSelectorState;\r\n private readonly _unregisterModelSelectorListeners: VoidFunction[] = [];\r\n\r\n /** An event raised when the set of models viewed by this view changes, *only* if the view is attached to a [[Viewport]].\r\n * @public\r\n */\r\n public readonly onViewedModelsChanged = new BeEvent<() => void>();\r\n\r\n public get modelSelector(): ModelSelectorState {\r\n return this._modelSelector;\r\n }\r\n\r\n public set modelSelector(selector: ModelSelectorState) {\r\n if (selector === this.modelSelector)\r\n return;\r\n\r\n const isAttached = this.isAttachedToViewport;\r\n this.unregisterModelSelectorListeners();\r\n\r\n this._modelSelector = selector;\r\n\r\n if (isAttached) {\r\n this.registerModelSelectorListeners();\r\n this.onViewedModelsChanged.raiseEvent();\r\n }\r\n }\r\n\r\n /** Create a new *blank* SpatialViewState. The returned SpatialViewState will nave non-persistent empty [[CategorySelectorState]] and [[ModelSelectorState]],\r\n * and a non-persistent [[DisplayStyle3dState]] with default values for all of its components. Generally after creating a blank SpatialViewState,\r\n * callers will modify the state to suit specific needs.\r\n * @param iModel The IModelConnection for the new SpatialViewState\r\n * @param origin The origin for the new SpatialViewState\r\n * @param extents The extents for the new SpatialViewState\r\n * @param rotation The rotation of the new SpatialViewState. If undefined, use top view.\r\n * @public\r\n */\r\n public static createBlank(iModel: IModelConnection, origin: XYAndZ, extents: XYAndZ, rotation?: Matrix3d): SpatialViewState {\r\n const blank = {} as any;\r\n const cat = new CategorySelectorState(blank, iModel);\r\n const modelSelectorState = new ModelSelectorState(blank, iModel);\r\n const displayStyleState = new DisplayStyle3dState(blank, iModel);\r\n const view = new this(blank, iModel, cat, displayStyleState, modelSelectorState);\r\n view.setOrigin(origin);\r\n view.setExtents(extents);\r\n if (undefined !== rotation)\r\n view.setRotation(rotation);\r\n return view;\r\n }\r\n\r\n public static override createFromProps(props: ViewStateProps, iModel: IModelConnection): SpatialViewState {\r\n const cat = new CategorySelectorState(props.categorySelectorProps, iModel);\r\n const displayStyleState = new DisplayStyle3dState(props.displayStyleProps, iModel);\r\n const modelSelectorState = new ModelSelectorState(props.modelSelectorProps!, iModel);\r\n return new this(props.viewDefinitionProps as SpatialViewDefinitionProps, iModel, cat, displayStyleState, modelSelectorState);\r\n }\r\n\r\n public override toProps(): ViewStateProps {\r\n const props = super.toProps();\r\n props.modelSelectorProps = this.modelSelector.toJSON();\r\n return props;\r\n }\r\n\r\n constructor(props: SpatialViewDefinitionProps, iModel: IModelConnection, arg3: CategorySelectorState, displayStyle: DisplayStyle3dState, modelSelector: ModelSelectorState) {\r\n super(props, iModel, arg3, displayStyle);\r\n this._modelSelector = modelSelector;\r\n if (arg3 instanceof SpatialViewState) // from clone\r\n this._modelSelector = arg3.modelSelector.clone();\r\n\r\n this._treeRefs = SpatialTileTreeReferences.create(this);\r\n }\r\n\r\n /** @internal */\r\n public override isSpatialView(): this is SpatialViewState { return true; }\r\n\r\n public override equals(other: this): boolean { return super.equals(other) && this.modelSelector.equals(other.modelSelector); }\r\n\r\n public override createAuxCoordSystem(acsName: string): AuxCoordSystemState { return AuxCoordSystemSpatialState.createNew(acsName, this.iModel); }\r\n public get defaultExtentLimits() { return { min: Constant.oneMillimeter, max: 3 * Constant.diameterOfEarth }; } // Increased max by 3X to support globe mode.\r\n\r\n /** @internal */\r\n public markModelSelectorChanged(): void {\r\n this._treeRefs.update();\r\n }\r\n\r\n /** Get world-space viewed extents based on the iModel's project extents. */\r\n protected getDisplayedExtents(): AxisAlignedBox3d {\r\n const extents = Range3d.fromJSON<AxisAlignedBox3d>(this.iModel.displayedExtents);\r\n extents.scaleAboutCenterInPlace(1.0001); // projectExtents. lying smack up against the extents is not excluded by frustum...\r\n extents.extendRange(this.getGroundExtents());\r\n return extents;\r\n }\r\n\r\n /** Compute world-space range appropriate for fitting the view. If that range is null, use the displayed extents. */\r\n public computeFitRange(): AxisAlignedBox3d {\r\n // Loop over the current models in the model selector with loaded tile trees and union their ranges\r\n const range = new Range3d();\r\n this.forEachTileTreeRef((ref) => {\r\n ref.unionFitRange(range);\r\n });\r\n\r\n if (range.isNull)\r\n range.setFrom(this.getDisplayedExtents());\r\n\r\n range.ensureMinLengths(1.0);\r\n\r\n return range;\r\n }\r\n\r\n public getViewedExtents(): AxisAlignedBox3d {\r\n const extents = this.getDisplayedExtents();\r\n\r\n // Some displayed tile trees may have a transform applied that takes them outside of the displayed extents.\r\n extents.extendRange(this.computeFitRange());\r\n\r\n return extents;\r\n }\r\n\r\n public override toJSON(): SpatialViewDefinitionProps {\r\n const val = super.toJSON() as SpatialViewDefinitionProps;\r\n val.modelSelectorId = this.modelSelector.id;\r\n return val;\r\n }\r\n public override async load(): Promise<void> {\r\n await super.load();\r\n return this.modelSelector.load();\r\n }\r\n public viewsModel(modelId: Id64String): boolean { return this.modelSelector.containsModel(modelId); }\r\n public clearViewedModels() { this.modelSelector.models.clear(); }\r\n public addViewedModel(id: Id64String) { this.modelSelector.addModels(id); }\r\n public removeViewedModel(id: Id64String) { this.modelSelector.dropModels(id); }\r\n\r\n public forEachModel(func: (model: GeometricModelState) => void) {\r\n for (const modelId of this.modelSelector.models) {\r\n const model = this.iModel.models.getLoaded(modelId);\r\n if (undefined !== model && undefined !== model.asGeometricModel3d)\r\n func(model as GeometricModel3dState);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public override forEachModelTreeRef(func: (treeRef: TileTreeReference) => void): void {\r\n for (const ref of this._treeRefs)\r\n func(ref);\r\n }\r\n\r\n /** @internal */\r\n public override createScene(context: SceneContext): void {\r\n super.createScene(context);\r\n context.textureDrapes.forEach((drape) => drape.collectGraphics(context));\r\n context.viewport.target.updateSolarShadows(this.getDisplayStyle3d().wantShadows ? context : undefined);\r\n }\r\n\r\n /** @internal */\r\n public override attachToViewport(args: AttachToViewportArgs): void {\r\n super.attachToViewport(args);\r\n this.registerModelSelectorListeners();\r\n }\r\n\r\n /** @internal */\r\n public override detachFromViewport(): void {\r\n super.detachFromViewport();\r\n this.unregisterModelSelectorListeners();\r\n }\r\n\r\n /** Chiefly for debugging: change the \"deactivated\" state of one or more tile tree references. Deactivated references are\r\n * omitted when iterating the references, so e.g. their graphics are omitted from the scene.\r\n * @param modelIds The Ids of one or more models whose tile tree references are to be affected. If omitted, all models are affected.\r\n * @param deactivated True to deactivate the specified references, false to reactivate them, undefined to invert each one's current state.\r\n * @param which The references to be affected as either a broad category or one or more indices of animated references.\r\n * @internal\r\n */\r\n public setTileTreeReferencesDeactivated(modelIds: Id64String | Id64String[] | undefined, deactivated: boolean | undefined, which: \"all\" | \"animated\" | \"primary\" | \"section\" | number[]): void {\r\n this._treeRefs.setDeactivated(modelIds, deactivated, which);\r\n }\r\n\r\n private registerModelSelectorListeners(): void {\r\n const models = this.modelSelector.observableModels;\r\n const func = () => {\r\n this.markModelSelectorChanged();\r\n this.onViewedModelsChanged.raiseEvent();\r\n };\r\n\r\n this._unregisterModelSelectorListeners.push(models.onAdded.addListener(func));\r\n this._unregisterModelSelectorListeners.push(models.onDeleted.addListener(func));\r\n this._unregisterModelSelectorListeners.push(models.onCleared.addListener(func));\r\n }\r\n\r\n private unregisterModelSelectorListeners(): void {\r\n this._unregisterModelSelectorListeners.forEach((f) => f());\r\n this._unregisterModelSelectorListeners.length = 0;\r\n }\r\n}\r\n/** Defines a spatial view that displays geometry on the image plane using a parallel orthographic projection.\r\n * @public\r\n */\r\nexport class OrthographicViewState extends SpatialViewState {\r\n /** @internal */\r\n public static override get className() { return \"OrthographicViewDefinition\"; }\r\n\r\n constructor(props: SpatialViewDefinitionProps, iModel: IModelConnection, categories: CategorySelectorState, displayStyle: DisplayStyle3dState, modelSelector: ModelSelectorState) { super(props, iModel, categories, displayStyle, modelSelector); }\r\n\r\n public override supportsCamera(): boolean { return false; }\r\n}\r\n"]}
@@ -104,7 +104,7 @@ exports.SubCategoriesCache = SubCategoriesCache;
104
104
  return undefined;
105
105
  try {
106
106
  const ecsql = this._ecsql[this._curECSqlIndex];
107
- for await (const row of this._imodel.query(ecsql, undefined, core_common_1.QueryRowFormat.UseJsPropertyNames)) {
107
+ for await (const row of this._imodel.query(ecsql, undefined, { rowFormat: core_common_1.QueryRowFormat.UseJsPropertyNames })) {
108
108
  this._result.push(row);
109
109
  if (this.wasCanceled)
110
110
  return undefined;