@itwin/core-frontend 3.1.0-dev.6 → 3.2.0-dev.0

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 (737) hide show
  1. package/CHANGELOG.md +163 -35
  2. package/lib/cjs/AccuSnap.js +2 -2
  3. package/lib/cjs/AccuSnap.js.map +1 -1
  4. package/lib/cjs/ApproximateTerrainHeights.d.ts +1 -1
  5. package/lib/cjs/ApproximateTerrainHeights.d.ts.map +1 -1
  6. package/lib/cjs/ApproximateTerrainHeights.js +21 -9
  7. package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
  8. package/lib/cjs/ApproximateTerrainHeightsProps.d.ts +12 -0
  9. package/lib/cjs/ApproximateTerrainHeightsProps.d.ts.map +1 -0
  10. package/lib/cjs/ApproximateTerrainHeightsProps.js +13 -0
  11. package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -0
  12. package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
  13. package/lib/cjs/BriefcaseConnection.js +6 -5
  14. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  15. package/lib/cjs/CategorySelectorState.js +1 -1
  16. package/lib/cjs/CategorySelectorState.js.map +1 -1
  17. package/lib/cjs/DisplayStyleState.d.ts +4 -3
  18. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  19. package/lib/cjs/DisplayStyleState.js +32 -8
  20. package/lib/cjs/DisplayStyleState.js.map +1 -1
  21. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  22. package/lib/cjs/DrawingViewState.js +9 -8
  23. package/lib/cjs/DrawingViewState.js.map +1 -1
  24. package/lib/cjs/FrontendLoggerCategory.d.ts +3 -1
  25. package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
  26. package/lib/cjs/FrontendLoggerCategory.js +2 -0
  27. package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
  28. package/lib/cjs/IModelApp.d.ts +8 -4
  29. package/lib/cjs/IModelApp.d.ts.map +1 -1
  30. package/lib/cjs/IModelApp.js +20 -10
  31. package/lib/cjs/IModelApp.js.map +1 -1
  32. package/lib/cjs/IModelConnection.d.ts +3 -5
  33. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  34. package/lib/cjs/IModelConnection.js +4 -10
  35. package/lib/cjs/IModelConnection.js.map +1 -1
  36. package/lib/cjs/ImageUtil.d.ts.map +1 -1
  37. package/lib/cjs/ImageUtil.js +8 -14
  38. package/lib/cjs/ImageUtil.js.map +1 -1
  39. package/lib/cjs/LocalhostIpcApp.d.ts +2 -0
  40. package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
  41. package/lib/cjs/LocalhostIpcApp.js +10 -4
  42. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  43. package/lib/cjs/RealityDataSource.d.ts +60 -14
  44. package/lib/cjs/RealityDataSource.d.ts.map +1 -1
  45. package/lib/cjs/RealityDataSource.js +36 -235
  46. package/lib/cjs/RealityDataSource.js.map +1 -1
  47. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts +67 -0
  48. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -0
  49. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js +166 -0
  50. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -0
  51. package/lib/cjs/RealityDataSourceContextShareImpl.d.ts +83 -0
  52. package/lib/cjs/RealityDataSourceContextShareImpl.d.ts.map +1 -0
  53. package/lib/cjs/RealityDataSourceContextShareImpl.js +234 -0
  54. package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -0
  55. package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts +65 -0
  56. package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -0
  57. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js +135 -0
  58. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -0
  59. package/lib/cjs/SheetViewState.js +7 -3
  60. package/lib/cjs/SheetViewState.js.map +1 -1
  61. package/lib/cjs/ViewState.d.ts +8 -0
  62. package/lib/cjs/ViewState.d.ts.map +1 -1
  63. package/lib/cjs/ViewState.js +1 -1
  64. package/lib/cjs/ViewState.js.map +1 -1
  65. package/lib/cjs/Viewport.d.ts +35 -14
  66. package/lib/cjs/Viewport.d.ts.map +1 -1
  67. package/lib/cjs/Viewport.js +59 -10
  68. package/lib/cjs/Viewport.js.map +1 -1
  69. package/lib/cjs/core-frontend.d.ts +6 -4
  70. package/lib/cjs/core-frontend.d.ts.map +1 -1
  71. package/lib/cjs/core-frontend.js +6 -4
  72. package/lib/cjs/core-frontend.js.map +1 -1
  73. package/lib/cjs/extension/Extension.d.ts +48 -0
  74. package/lib/cjs/extension/Extension.d.ts.map +1 -0
  75. package/lib/cjs/extension/Extension.js +18 -0
  76. package/lib/cjs/extension/Extension.js.map +1 -0
  77. package/lib/cjs/extension/ExtensionAdmin.d.ts +64 -0
  78. package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -0
  79. package/lib/cjs/extension/ExtensionAdmin.js +106 -0
  80. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -0
  81. package/lib/cjs/extension/ExtensionHost.d.ts +23 -0
  82. package/lib/cjs/extension/ExtensionHost.d.ts.map +1 -0
  83. package/lib/cjs/extension/ExtensionHost.js +26 -0
  84. package/lib/cjs/extension/ExtensionHost.js.map +1 -0
  85. package/lib/cjs/extension/ExtensionImpl.d.ts +21 -0
  86. package/lib/cjs/extension/ExtensionImpl.d.ts.map +1 -0
  87. package/lib/cjs/extension/ExtensionImpl.js +45 -0
  88. package/lib/cjs/extension/ExtensionImpl.js.map +1 -0
  89. package/lib/cjs/extension/ExtensionLoader.d.ts +26 -0
  90. package/lib/cjs/extension/ExtensionLoader.d.ts.map +1 -0
  91. package/lib/cjs/extension/ExtensionLoader.js +10 -0
  92. package/lib/cjs/extension/ExtensionLoader.js.map +1 -0
  93. package/lib/cjs/extension/ExtensionRuntime.d.ts +5 -0
  94. package/lib/cjs/extension/ExtensionRuntime.d.ts.map +1 -0
  95. package/lib/cjs/extension/ExtensionRuntime.js +86 -0
  96. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -0
  97. package/lib/cjs/extension/extensions.d.ts +19 -0
  98. package/lib/cjs/extension/extensions.d.ts.map +1 -0
  99. package/lib/cjs/extension/extensions.js +36 -0
  100. package/lib/cjs/extension/extensions.js.map +1 -0
  101. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts +2 -2
  102. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  103. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js +48 -44
  104. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  105. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +90 -80
  106. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  107. package/lib/cjs/quantity-formatting/QuantityFormatter.js +85 -45
  108. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  109. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.d.ts +54 -0
  110. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.d.ts.map +1 -0
  111. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js +32 -0
  112. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -0
  113. package/lib/cjs/quantity-formatting/UnitsData.d.ts +11 -0
  114. package/lib/cjs/quantity-formatting/UnitsData.d.ts.map +1 -0
  115. package/lib/cjs/quantity-formatting/UnitsData.js +59 -0
  116. package/lib/cjs/quantity-formatting/UnitsData.js.map +1 -0
  117. package/lib/cjs/render/GraphicBranch.d.ts +2 -0
  118. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  119. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  120. package/lib/cjs/render/RenderPlanarClassifier.d.ts +1 -1
  121. package/lib/cjs/render/RenderPlanarClassifier.d.ts.map +1 -1
  122. package/lib/cjs/render/RenderPlanarClassifier.js.map +1 -1
  123. package/lib/cjs/render/RenderSystem.d.ts +12 -7
  124. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  125. package/lib/cjs/render/RenderSystem.js +8 -5
  126. package/lib/cjs/render/RenderSystem.js.map +1 -1
  127. package/lib/cjs/render/RenderTarget.d.ts +4 -4
  128. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  129. package/lib/cjs/render/RenderTarget.js.map +1 -1
  130. package/lib/cjs/render/Scene.d.ts.map +1 -1
  131. package/lib/cjs/render/Scene.js.map +1 -1
  132. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts +17 -2
  133. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +1 -1
  134. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js +39 -2
  135. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js.map +1 -1
  136. package/lib/cjs/render/webgl/BackgroundMapDrape.js +1 -1
  137. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  138. package/lib/cjs/render/webgl/BranchState.d.ts +2 -0
  139. package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
  140. package/lib/cjs/render/webgl/BranchState.js +5 -3
  141. package/lib/cjs/render/webgl/BranchState.js.map +1 -1
  142. package/lib/cjs/render/webgl/DrawCommand.js +1 -1
  143. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  144. package/lib/cjs/render/webgl/Graphic.d.ts +5 -3
  145. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  146. package/lib/cjs/render/webgl/Graphic.js +7 -2
  147. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  148. package/lib/cjs/render/webgl/PlanarClassifier.d.ts +4 -1
  149. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  150. package/lib/cjs/render/webgl/PlanarClassifier.js +22 -9
  151. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  152. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts +2 -2
  153. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  154. package/lib/cjs/render/webgl/PlanarTextureProjection.js +5 -3
  155. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  156. package/lib/cjs/render/webgl/RealityMesh.d.ts +31 -11
  157. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  158. package/lib/cjs/render/webgl/RealityMesh.js +155 -52
  159. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  160. package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
  161. package/lib/cjs/render/webgl/RenderCommands.js +4 -0
  162. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  163. package/lib/cjs/render/webgl/SceneCompositor.d.ts +3 -0
  164. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  165. package/lib/cjs/render/webgl/SceneCompositor.js +45 -19
  166. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  167. package/lib/cjs/render/webgl/ShaderProgram.d.ts +1 -0
  168. package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
  169. package/lib/cjs/render/webgl/ShaderProgram.js +1 -0
  170. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  171. package/lib/cjs/render/webgl/System.d.ts +9 -9
  172. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  173. package/lib/cjs/render/webgl/System.js +5 -5
  174. package/lib/cjs/render/webgl/System.js.map +1 -1
  175. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  176. package/lib/cjs/render/webgl/Target.js.map +1 -1
  177. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  178. package/lib/cjs/render/webgl/Texture.js +2 -2
  179. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  180. package/lib/cjs/render/webgl/glsl/PlanarClassification.js +1 -1
  181. package/lib/cjs/render/webgl/glsl/PlanarClassification.js.map +1 -1
  182. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  183. package/lib/cjs/render/webgl/glsl/RealityMesh.js +102 -27
  184. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  185. package/lib/cjs/tile/ClassifierTileTree.d.ts +4 -2
  186. package/lib/cjs/tile/ClassifierTileTree.d.ts.map +1 -1
  187. package/lib/cjs/tile/ClassifierTileTree.js +31 -16
  188. package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
  189. package/lib/cjs/tile/DynamicIModelTile.d.ts.map +1 -1
  190. package/lib/cjs/tile/DynamicIModelTile.js +1 -1
  191. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  192. package/lib/cjs/tile/GltfReader.d.ts +22 -3
  193. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  194. package/lib/cjs/tile/GltfReader.js +224 -40
  195. package/lib/cjs/tile/GltfReader.js.map +1 -1
  196. package/lib/cjs/tile/LRUTileList.d.ts +29 -29
  197. package/lib/cjs/tile/LRUTileList.d.ts.map +1 -1
  198. package/lib/cjs/tile/LRUTileList.js +50 -50
  199. package/lib/cjs/tile/LRUTileList.js.map +1 -1
  200. package/lib/cjs/tile/OPCFormatInterpreter.d.ts +22 -0
  201. package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +1 -0
  202. package/lib/cjs/tile/OPCFormatInterpreter.js +92 -0
  203. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -0
  204. package/lib/cjs/tile/OrbitGtTileTree.js +1 -1
  205. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  206. package/lib/cjs/tile/PntsReader.d.ts +1 -1
  207. package/lib/cjs/tile/PntsReader.d.ts.map +1 -1
  208. package/lib/cjs/tile/PntsReader.js +170 -36
  209. package/lib/cjs/tile/PntsReader.js.map +1 -1
  210. package/lib/cjs/tile/PrimaryTileTree.d.ts +18 -2
  211. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  212. package/lib/cjs/tile/PrimaryTileTree.js +53 -2
  213. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  214. package/lib/cjs/tile/RealityModelTileTree.d.ts +24 -3
  215. package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
  216. package/lib/cjs/tile/RealityModelTileTree.js +37 -12
  217. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  218. package/lib/cjs/tile/RealityTile.d.ts +17 -3
  219. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  220. package/lib/cjs/tile/RealityTile.js +34 -2
  221. package/lib/cjs/tile/RealityTile.js.map +1 -1
  222. package/lib/cjs/tile/RealityTileDrawArgs.d.ts +4 -1
  223. package/lib/cjs/tile/RealityTileDrawArgs.d.ts.map +1 -1
  224. package/lib/cjs/tile/RealityTileDrawArgs.js +3 -1
  225. package/lib/cjs/tile/RealityTileDrawArgs.js.map +1 -1
  226. package/lib/cjs/tile/RealityTileLoader.d.ts +8 -5
  227. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  228. package/lib/cjs/tile/RealityTileLoader.js +20 -6
  229. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  230. package/lib/cjs/tile/RealityTileTree.d.ts +4 -1
  231. package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
  232. package/lib/cjs/tile/RealityTileTree.js +12 -4
  233. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  234. package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts +52 -0
  235. package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -0
  236. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +179 -0
  237. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -0
  238. package/lib/cjs/tile/Tile.d.ts +5 -4
  239. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  240. package/lib/cjs/tile/Tile.js +3 -2
  241. package/lib/cjs/tile/Tile.js.map +1 -1
  242. package/lib/cjs/tile/TileAdmin.d.ts +43 -45
  243. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  244. package/lib/cjs/tile/TileAdmin.js +104 -99
  245. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  246. package/lib/cjs/tile/TileDrawArgs.d.ts +2 -0
  247. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  248. package/lib/cjs/tile/TileDrawArgs.js +5 -0
  249. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  250. package/lib/cjs/tile/TileGeometryCollector.d.ts +80 -0
  251. package/lib/cjs/tile/TileGeometryCollector.d.ts.map +1 -0
  252. package/lib/cjs/tile/TileGeometryCollector.js +71 -0
  253. package/lib/cjs/tile/TileGeometryCollector.js.map +1 -0
  254. package/lib/cjs/tile/TileRequest.d.ts +12 -9
  255. package/lib/cjs/tile/TileRequest.d.ts.map +1 -1
  256. package/lib/cjs/tile/TileRequest.js +19 -11
  257. package/lib/cjs/tile/TileRequest.js.map +1 -1
  258. package/lib/cjs/tile/TileRequestChannel.js +3 -3
  259. package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
  260. package/lib/cjs/tile/TileTree.d.ts +7 -1
  261. package/lib/cjs/tile/TileTree.d.ts.map +1 -1
  262. package/lib/cjs/tile/TileTree.js +8 -1
  263. package/lib/cjs/tile/TileTree.js.map +1 -1
  264. package/lib/cjs/tile/TileTreeReference.d.ts +27 -2
  265. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  266. package/lib/cjs/tile/TileTreeReference.js +41 -1
  267. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  268. package/lib/cjs/tile/TileUsageMarker.d.ts +9 -9
  269. package/lib/cjs/tile/TileUsageMarker.d.ts.map +1 -1
  270. package/lib/cjs/tile/TileUsageMarker.js +9 -9
  271. package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
  272. package/lib/cjs/tile/TileUser.d.ts +33 -0
  273. package/lib/cjs/tile/TileUser.d.ts.map +1 -0
  274. package/lib/cjs/tile/TileUser.js +28 -0
  275. package/lib/cjs/tile/TileUser.js.map +1 -0
  276. package/lib/cjs/tile/TileUserSet.d.ts +28 -0
  277. package/lib/cjs/tile/TileUserSet.d.ts.map +1 -0
  278. package/lib/cjs/tile/TileUserSet.js +123 -0
  279. package/lib/cjs/tile/TileUserSet.js.map +1 -0
  280. package/lib/cjs/tile/internal.d.ts +6 -0
  281. package/lib/cjs/tile/internal.d.ts.map +1 -1
  282. package/lib/cjs/tile/internal.js +6 -0
  283. package/lib/cjs/tile/internal.js.map +1 -1
  284. package/lib/cjs/tile/map/CesiumTerrainProvider.js +2 -2
  285. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  286. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +6 -5
  287. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  288. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +46 -13
  289. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  290. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +3 -4
  291. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
  292. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +1 -1
  293. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  294. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts +2 -2
  295. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  296. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  297. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  298. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +3 -4
  299. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  300. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +5 -4
  301. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  302. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +2 -2
  303. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +1 -1
  304. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  305. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +2 -2
  306. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  307. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +1 -1
  308. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  309. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +2 -2
  310. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  311. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  312. package/lib/cjs/tile/map/ImageryTileTree.d.ts +4 -5
  313. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  314. package/lib/cjs/tile/map/ImageryTileTree.js +5 -4
  315. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  316. package/lib/cjs/tile/map/MapFeatureInfo.d.ts +26 -0
  317. package/lib/cjs/tile/map/MapFeatureInfo.d.ts.map +1 -0
  318. package/lib/cjs/tile/map/MapFeatureInfo.js +19 -0
  319. package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -0
  320. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +4 -4
  321. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  322. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  323. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts +3 -3
  324. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  325. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  326. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +5 -4
  327. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  328. package/lib/cjs/tile/map/MapLayerImageryProvider.js +5 -1
  329. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  330. package/lib/cjs/tile/map/MapLayerSources.d.ts +2 -2
  331. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  332. package/lib/cjs/tile/map/MapLayerSources.js +6 -4
  333. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  334. package/lib/cjs/tile/map/MapLayerTileTreeReference.d.ts +10 -2
  335. package/lib/cjs/tile/map/MapLayerTileTreeReference.d.ts.map +1 -1
  336. package/lib/cjs/tile/map/MapLayerTileTreeReference.js +26 -3
  337. package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
  338. package/lib/cjs/tile/map/MapTile.d.ts +12 -10
  339. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  340. package/lib/cjs/tile/map/MapTile.js +60 -39
  341. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  342. package/lib/cjs/tile/map/MapTileLoader.d.ts +2 -1
  343. package/lib/cjs/tile/map/MapTileLoader.d.ts.map +1 -1
  344. package/lib/cjs/tile/map/MapTileLoader.js +4 -1
  345. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  346. package/lib/cjs/tile/map/MapTileTree.d.ts +21 -11
  347. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  348. package/lib/cjs/tile/map/MapTileTree.js +152 -65
  349. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  350. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  351. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +1 -1
  352. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  353. package/lib/cjs/tools/ToolAdmin.d.ts +2 -3
  354. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  355. package/lib/cjs/tools/ToolAdmin.js +7 -2
  356. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  357. package/lib/cjs/tools/ViewTool.d.ts +4 -4
  358. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  359. package/lib/cjs/tools/ViewTool.js +1 -1
  360. package/lib/cjs/tools/ViewTool.js.map +1 -1
  361. package/lib/esm/AccuSnap.js +2 -2
  362. package/lib/esm/AccuSnap.js.map +1 -1
  363. package/lib/esm/ApproximateTerrainHeights.d.ts +1 -1
  364. package/lib/esm/ApproximateTerrainHeights.d.ts.map +1 -1
  365. package/lib/esm/ApproximateTerrainHeights.js +2 -9
  366. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  367. package/lib/esm/ApproximateTerrainHeightsProps.d.ts +12 -0
  368. package/lib/esm/ApproximateTerrainHeightsProps.d.ts.map +1 -0
  369. package/lib/esm/ApproximateTerrainHeightsProps.js +10 -0
  370. package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -0
  371. package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
  372. package/lib/esm/BriefcaseConnection.js +6 -5
  373. package/lib/esm/BriefcaseConnection.js.map +1 -1
  374. package/lib/esm/CategorySelectorState.js +1 -1
  375. package/lib/esm/CategorySelectorState.js.map +1 -1
  376. package/lib/esm/DisplayStyleState.d.ts +4 -3
  377. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  378. package/lib/esm/DisplayStyleState.js +34 -10
  379. package/lib/esm/DisplayStyleState.js.map +1 -1
  380. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  381. package/lib/esm/DrawingViewState.js +9 -8
  382. package/lib/esm/DrawingViewState.js.map +1 -1
  383. package/lib/esm/FrontendLoggerCategory.d.ts +3 -1
  384. package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
  385. package/lib/esm/FrontendLoggerCategory.js +2 -0
  386. package/lib/esm/FrontendLoggerCategory.js.map +1 -1
  387. package/lib/esm/IModelApp.d.ts +8 -4
  388. package/lib/esm/IModelApp.d.ts.map +1 -1
  389. package/lib/esm/IModelApp.js +20 -10
  390. package/lib/esm/IModelApp.js.map +1 -1
  391. package/lib/esm/IModelConnection.d.ts +3 -5
  392. package/lib/esm/IModelConnection.d.ts.map +1 -1
  393. package/lib/esm/IModelConnection.js +5 -11
  394. package/lib/esm/IModelConnection.js.map +1 -1
  395. package/lib/esm/ImageUtil.d.ts.map +1 -1
  396. package/lib/esm/ImageUtil.js +8 -14
  397. package/lib/esm/ImageUtil.js.map +1 -1
  398. package/lib/esm/LocalhostIpcApp.d.ts +2 -0
  399. package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
  400. package/lib/esm/LocalhostIpcApp.js +10 -4
  401. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  402. package/lib/esm/RealityDataSource.d.ts +60 -14
  403. package/lib/esm/RealityDataSource.d.ts.map +1 -1
  404. package/lib/esm/RealityDataSource.js +37 -237
  405. package/lib/esm/RealityDataSource.js.map +1 -1
  406. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts +67 -0
  407. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -0
  408. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js +162 -0
  409. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -0
  410. package/lib/esm/RealityDataSourceContextShareImpl.d.ts +83 -0
  411. package/lib/esm/RealityDataSourceContextShareImpl.d.ts.map +1 -0
  412. package/lib/esm/RealityDataSourceContextShareImpl.js +230 -0
  413. package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -0
  414. package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts +65 -0
  415. package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -0
  416. package/lib/esm/RealityDataSourceTilesetUrlImpl.js +131 -0
  417. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -0
  418. package/lib/esm/SheetViewState.js +7 -3
  419. package/lib/esm/SheetViewState.js.map +1 -1
  420. package/lib/esm/ViewState.d.ts +8 -0
  421. package/lib/esm/ViewState.d.ts.map +1 -1
  422. package/lib/esm/ViewState.js +1 -1
  423. package/lib/esm/ViewState.js.map +1 -1
  424. package/lib/esm/Viewport.d.ts +35 -14
  425. package/lib/esm/Viewport.d.ts.map +1 -1
  426. package/lib/esm/Viewport.js +60 -11
  427. package/lib/esm/Viewport.js.map +1 -1
  428. package/lib/esm/core-frontend.d.ts +6 -4
  429. package/lib/esm/core-frontend.d.ts.map +1 -1
  430. package/lib/esm/core-frontend.js +6 -4
  431. package/lib/esm/core-frontend.js.map +1 -1
  432. package/lib/esm/extension/Extension.d.ts +48 -0
  433. package/lib/esm/extension/Extension.d.ts.map +1 -0
  434. package/lib/esm/extension/Extension.js +15 -0
  435. package/lib/esm/extension/Extension.js.map +1 -0
  436. package/lib/esm/extension/ExtensionAdmin.d.ts +64 -0
  437. package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -0
  438. package/lib/esm/extension/ExtensionAdmin.js +102 -0
  439. package/lib/esm/extension/ExtensionAdmin.js.map +1 -0
  440. package/lib/esm/extension/ExtensionHost.d.ts +23 -0
  441. package/lib/esm/extension/ExtensionHost.d.ts.map +1 -0
  442. package/lib/esm/extension/ExtensionHost.js +22 -0
  443. package/lib/esm/extension/ExtensionHost.js.map +1 -0
  444. package/lib/esm/extension/ExtensionImpl.d.ts +21 -0
  445. package/lib/esm/extension/ExtensionImpl.d.ts.map +1 -0
  446. package/lib/esm/extension/ExtensionImpl.js +40 -0
  447. package/lib/esm/extension/ExtensionImpl.js.map +1 -0
  448. package/lib/esm/extension/ExtensionLoader.d.ts +26 -0
  449. package/lib/esm/extension/ExtensionLoader.d.ts.map +1 -0
  450. package/lib/esm/extension/ExtensionLoader.js +9 -0
  451. package/lib/esm/extension/ExtensionLoader.js.map +1 -0
  452. package/lib/esm/extension/ExtensionRuntime.d.ts +5 -0
  453. package/lib/esm/extension/ExtensionRuntime.d.ts.map +1 -0
  454. package/lib/esm/extension/ExtensionRuntime.js +84 -0
  455. package/lib/esm/extension/ExtensionRuntime.js.map +1 -0
  456. package/lib/esm/extension/extensions.d.ts +19 -0
  457. package/lib/esm/extension/extensions.d.ts.map +1 -0
  458. package/lib/esm/extension/extensions.js +24 -0
  459. package/lib/esm/extension/extensions.js.map +1 -0
  460. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts +2 -2
  461. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  462. package/lib/esm/quantity-formatting/BasicUnitsProvider.js +48 -44
  463. package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  464. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +90 -80
  465. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  466. package/lib/esm/quantity-formatting/QuantityFormatter.js +85 -42
  467. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  468. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.d.ts +54 -0
  469. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.d.ts.map +1 -0
  470. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js +26 -0
  471. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -0
  472. package/lib/esm/quantity-formatting/UnitsData.d.ts +11 -0
  473. package/lib/esm/quantity-formatting/UnitsData.d.ts.map +1 -0
  474. package/lib/esm/quantity-formatting/UnitsData.js +56 -0
  475. package/lib/esm/quantity-formatting/UnitsData.js.map +1 -0
  476. package/lib/esm/render/GraphicBranch.d.ts +2 -0
  477. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  478. package/lib/esm/render/GraphicBranch.js.map +1 -1
  479. package/lib/esm/render/RenderPlanarClassifier.d.ts +1 -1
  480. package/lib/esm/render/RenderPlanarClassifier.d.ts.map +1 -1
  481. package/lib/esm/render/RenderPlanarClassifier.js.map +1 -1
  482. package/lib/esm/render/RenderSystem.d.ts +12 -7
  483. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  484. package/lib/esm/render/RenderSystem.js +6 -3
  485. package/lib/esm/render/RenderSystem.js.map +1 -1
  486. package/lib/esm/render/RenderTarget.d.ts +4 -4
  487. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  488. package/lib/esm/render/RenderTarget.js.map +1 -1
  489. package/lib/esm/render/Scene.d.ts.map +1 -1
  490. package/lib/esm/render/Scene.js.map +1 -1
  491. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts +17 -2
  492. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +1 -1
  493. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js +39 -2
  494. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js.map +1 -1
  495. package/lib/esm/render/webgl/BackgroundMapDrape.js +1 -1
  496. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  497. package/lib/esm/render/webgl/BranchState.d.ts +2 -0
  498. package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
  499. package/lib/esm/render/webgl/BranchState.js +5 -3
  500. package/lib/esm/render/webgl/BranchState.js.map +1 -1
  501. package/lib/esm/render/webgl/DrawCommand.js +1 -1
  502. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  503. package/lib/esm/render/webgl/Graphic.d.ts +5 -3
  504. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  505. package/lib/esm/render/webgl/Graphic.js +7 -2
  506. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  507. package/lib/esm/render/webgl/PlanarClassifier.d.ts +4 -1
  508. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  509. package/lib/esm/render/webgl/PlanarClassifier.js +22 -9
  510. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  511. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts +2 -2
  512. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  513. package/lib/esm/render/webgl/PlanarTextureProjection.js +5 -3
  514. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  515. package/lib/esm/render/webgl/RealityMesh.d.ts +31 -11
  516. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  517. package/lib/esm/render/webgl/RealityMesh.js +155 -52
  518. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  519. package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
  520. package/lib/esm/render/webgl/RenderCommands.js +4 -0
  521. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  522. package/lib/esm/render/webgl/SceneCompositor.d.ts +3 -0
  523. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  524. package/lib/esm/render/webgl/SceneCompositor.js +45 -19
  525. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  526. package/lib/esm/render/webgl/ShaderProgram.d.ts +1 -0
  527. package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
  528. package/lib/esm/render/webgl/ShaderProgram.js +1 -0
  529. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  530. package/lib/esm/render/webgl/System.d.ts +9 -9
  531. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  532. package/lib/esm/render/webgl/System.js +6 -6
  533. package/lib/esm/render/webgl/System.js.map +1 -1
  534. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  535. package/lib/esm/render/webgl/Target.js.map +1 -1
  536. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  537. package/lib/esm/render/webgl/Texture.js +2 -2
  538. package/lib/esm/render/webgl/Texture.js.map +1 -1
  539. package/lib/esm/render/webgl/glsl/PlanarClassification.js +1 -1
  540. package/lib/esm/render/webgl/glsl/PlanarClassification.js.map +1 -1
  541. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  542. package/lib/esm/render/webgl/glsl/RealityMesh.js +103 -28
  543. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  544. package/lib/esm/tile/ClassifierTileTree.d.ts +4 -2
  545. package/lib/esm/tile/ClassifierTileTree.d.ts.map +1 -1
  546. package/lib/esm/tile/ClassifierTileTree.js +32 -17
  547. package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
  548. package/lib/esm/tile/DynamicIModelTile.d.ts.map +1 -1
  549. package/lib/esm/tile/DynamicIModelTile.js +1 -1
  550. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  551. package/lib/esm/tile/GltfReader.d.ts +22 -3
  552. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  553. package/lib/esm/tile/GltfReader.js +207 -42
  554. package/lib/esm/tile/GltfReader.js.map +1 -1
  555. package/lib/esm/tile/LRUTileList.d.ts +29 -29
  556. package/lib/esm/tile/LRUTileList.d.ts.map +1 -1
  557. package/lib/esm/tile/LRUTileList.js +47 -47
  558. package/lib/esm/tile/LRUTileList.js.map +1 -1
  559. package/lib/esm/tile/OPCFormatInterpreter.d.ts +22 -0
  560. package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +1 -0
  561. package/lib/esm/tile/OPCFormatInterpreter.js +88 -0
  562. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -0
  563. package/lib/esm/tile/OrbitGtTileTree.js +1 -1
  564. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  565. package/lib/esm/tile/PntsReader.d.ts +1 -1
  566. package/lib/esm/tile/PntsReader.d.ts.map +1 -1
  567. package/lib/esm/tile/PntsReader.js +154 -39
  568. package/lib/esm/tile/PntsReader.js.map +1 -1
  569. package/lib/esm/tile/PrimaryTileTree.d.ts +18 -2
  570. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  571. package/lib/esm/tile/PrimaryTileTree.js +51 -2
  572. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  573. package/lib/esm/tile/RealityModelTileTree.d.ts +24 -3
  574. package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
  575. package/lib/esm/tile/RealityModelTileTree.js +37 -13
  576. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  577. package/lib/esm/tile/RealityTile.d.ts +17 -3
  578. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  579. package/lib/esm/tile/RealityTile.js +34 -2
  580. package/lib/esm/tile/RealityTile.js.map +1 -1
  581. package/lib/esm/tile/RealityTileDrawArgs.d.ts +4 -1
  582. package/lib/esm/tile/RealityTileDrawArgs.d.ts.map +1 -1
  583. package/lib/esm/tile/RealityTileDrawArgs.js +3 -1
  584. package/lib/esm/tile/RealityTileDrawArgs.js.map +1 -1
  585. package/lib/esm/tile/RealityTileLoader.d.ts +8 -5
  586. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  587. package/lib/esm/tile/RealityTileLoader.js +20 -6
  588. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  589. package/lib/esm/tile/RealityTileTree.d.ts +4 -1
  590. package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
  591. package/lib/esm/tile/RealityTileTree.js +14 -6
  592. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  593. package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts +52 -0
  594. package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -0
  595. package/lib/esm/tile/ThreeDTileFormatInterpreter.js +175 -0
  596. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -0
  597. package/lib/esm/tile/Tile.d.ts +5 -4
  598. package/lib/esm/tile/Tile.d.ts.map +1 -1
  599. package/lib/esm/tile/Tile.js +3 -2
  600. package/lib/esm/tile/Tile.js.map +1 -1
  601. package/lib/esm/tile/TileAdmin.d.ts +43 -45
  602. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  603. package/lib/esm/tile/TileAdmin.js +105 -100
  604. package/lib/esm/tile/TileAdmin.js.map +1 -1
  605. package/lib/esm/tile/TileDrawArgs.d.ts +2 -0
  606. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  607. package/lib/esm/tile/TileDrawArgs.js +5 -0
  608. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  609. package/lib/esm/tile/TileGeometryCollector.d.ts +80 -0
  610. package/lib/esm/tile/TileGeometryCollector.d.ts.map +1 -0
  611. package/lib/esm/tile/TileGeometryCollector.js +67 -0
  612. package/lib/esm/tile/TileGeometryCollector.js.map +1 -0
  613. package/lib/esm/tile/TileRequest.d.ts +12 -9
  614. package/lib/esm/tile/TileRequest.d.ts.map +1 -1
  615. package/lib/esm/tile/TileRequest.js +19 -11
  616. package/lib/esm/tile/TileRequest.js.map +1 -1
  617. package/lib/esm/tile/TileRequestChannel.js +3 -3
  618. package/lib/esm/tile/TileRequestChannel.js.map +1 -1
  619. package/lib/esm/tile/TileTree.d.ts +7 -1
  620. package/lib/esm/tile/TileTree.d.ts.map +1 -1
  621. package/lib/esm/tile/TileTree.js +8 -1
  622. package/lib/esm/tile/TileTree.js.map +1 -1
  623. package/lib/esm/tile/TileTreeReference.d.ts +27 -2
  624. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  625. package/lib/esm/tile/TileTreeReference.js +43 -3
  626. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  627. package/lib/esm/tile/TileUsageMarker.d.ts +9 -9
  628. package/lib/esm/tile/TileUsageMarker.d.ts.map +1 -1
  629. package/lib/esm/tile/TileUsageMarker.js +9 -9
  630. package/lib/esm/tile/TileUsageMarker.js.map +1 -1
  631. package/lib/esm/tile/TileUser.d.ts +33 -0
  632. package/lib/esm/tile/TileUser.d.ts.map +1 -0
  633. package/lib/esm/tile/TileUser.js +25 -0
  634. package/lib/esm/tile/TileUser.js.map +1 -0
  635. package/lib/esm/tile/TileUserSet.d.ts +28 -0
  636. package/lib/esm/tile/TileUserSet.d.ts.map +1 -0
  637. package/lib/esm/tile/TileUserSet.js +118 -0
  638. package/lib/esm/tile/TileUserSet.js.map +1 -0
  639. package/lib/esm/tile/internal.d.ts +6 -0
  640. package/lib/esm/tile/internal.d.ts.map +1 -1
  641. package/lib/esm/tile/internal.js +6 -0
  642. package/lib/esm/tile/internal.js.map +1 -1
  643. package/lib/esm/tile/map/CesiumTerrainProvider.js +2 -2
  644. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  645. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +6 -5
  646. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  647. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +47 -14
  648. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  649. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +3 -4
  650. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
  651. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +1 -1
  652. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  653. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts +2 -2
  654. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  655. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  656. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  657. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +3 -4
  658. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  659. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +5 -4
  660. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  661. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +2 -2
  662. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +1 -1
  663. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  664. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +2 -2
  665. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  666. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +1 -1
  667. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  668. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +2 -2
  669. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  670. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  671. package/lib/esm/tile/map/ImageryTileTree.d.ts +4 -5
  672. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  673. package/lib/esm/tile/map/ImageryTileTree.js +5 -4
  674. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  675. package/lib/esm/tile/map/MapFeatureInfo.d.ts +26 -0
  676. package/lib/esm/tile/map/MapFeatureInfo.d.ts.map +1 -0
  677. package/lib/esm/tile/map/MapFeatureInfo.js +15 -0
  678. package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -0
  679. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +4 -4
  680. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  681. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  682. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts +3 -3
  683. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  684. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  685. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +5 -4
  686. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  687. package/lib/esm/tile/map/MapLayerImageryProvider.js +5 -1
  688. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  689. package/lib/esm/tile/map/MapLayerSources.d.ts +2 -2
  690. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  691. package/lib/esm/tile/map/MapLayerSources.js +6 -4
  692. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  693. package/lib/esm/tile/map/MapLayerTileTreeReference.d.ts +10 -2
  694. package/lib/esm/tile/map/MapLayerTileTreeReference.d.ts.map +1 -1
  695. package/lib/esm/tile/map/MapLayerTileTreeReference.js +25 -3
  696. package/lib/esm/tile/map/MapLayerTileTreeReference.js.map +1 -1
  697. package/lib/esm/tile/map/MapTile.d.ts +12 -10
  698. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  699. package/lib/esm/tile/map/MapTile.js +60 -39
  700. package/lib/esm/tile/map/MapTile.js.map +1 -1
  701. package/lib/esm/tile/map/MapTileLoader.d.ts +2 -1
  702. package/lib/esm/tile/map/MapTileLoader.d.ts.map +1 -1
  703. package/lib/esm/tile/map/MapTileLoader.js +4 -1
  704. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  705. package/lib/esm/tile/map/MapTileTree.d.ts +21 -11
  706. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  707. package/lib/esm/tile/map/MapTileTree.js +154 -67
  708. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  709. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  710. package/lib/esm/tile/map/MapTiledGraphicsProvider.js +2 -2
  711. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  712. package/lib/esm/tools/ToolAdmin.d.ts +2 -3
  713. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  714. package/lib/esm/tools/ToolAdmin.js +8 -3
  715. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  716. package/lib/esm/tools/ViewTool.d.ts +4 -4
  717. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  718. package/lib/esm/tools/ViewTool.js +1 -1
  719. package/lib/esm/tools/ViewTool.js.map +1 -1
  720. package/package.json +22 -20
  721. package/lib/cjs/ViewportSet.d.ts +0 -28
  722. package/lib/cjs/ViewportSet.d.ts.map +0 -1
  723. package/lib/cjs/ViewportSet.js +0 -126
  724. package/lib/cjs/ViewportSet.js.map +0 -1
  725. package/lib/cjs/tile/DracoDecoder.d.ts +0 -20
  726. package/lib/cjs/tile/DracoDecoder.d.ts.map +0 -1
  727. package/lib/cjs/tile/DracoDecoder.js +0 -169
  728. package/lib/cjs/tile/DracoDecoder.js.map +0 -1
  729. package/lib/esm/ViewportSet.d.ts +0 -28
  730. package/lib/esm/ViewportSet.d.ts.map +0 -1
  731. package/lib/esm/ViewportSet.js +0 -121
  732. package/lib/esm/ViewportSet.js.map +0 -1
  733. package/lib/esm/tile/DracoDecoder.d.ts +0 -20
  734. package/lib/esm/tile/DracoDecoder.d.ts.map +0 -1
  735. package/lib/esm/tile/DracoDecoder.js +0 -165
  736. package/lib/esm/tile/DracoDecoder.js.map +0 -1
  737. package/lib/public/assets/approximateTerrainHeights.json +0 -1
@@ -10,7 +10,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.createRealityMeshHiliter = exports.createClassifierRealityMeshHiliter = void 0;
11
11
  const core_bentley_1 = require("@itwin/core-bentley");
12
12
  const core_common_1 = require("@itwin/core-common");
13
+ const core_geometry_1 = require("@itwin/core-geometry");
13
14
  const AttributeMap_1 = require("../AttributeMap");
15
+ const Matrix_1 = require("../Matrix");
14
16
  const RenderFlags_1 = require("../RenderFlags");
15
17
  const ShaderBuilder_1 = require("../ShaderBuilder");
16
18
  const System_1 = require("../System");
@@ -31,31 +33,82 @@ const computeNormal = `
31
33
  g_hillshadeIndex = normal.z; // save off world Z for thematic hill shade mode index
32
34
  return normalize(u_worldToViewN * normal);
33
35
  `;
36
+ const testInside = `
37
+ bool testInside(float x0, float y0, float x1, float y1, float x, float y) {
38
+ vec2 perp = vec2(y0 - y1, x1 - x0), test = vec2(x - x0, y - y0);
39
+ float dot = (test.x * perp.x + test.y * perp.y) / sqrt(perp.x * perp.x + perp.y * perp.y);
40
+ return dot >= -0.001;
41
+ }
42
+ `;
43
+ /* There are two methods of applying a texture to a reality mesh. the first member of "params" denotes which
44
+ method is to be used. A value of zero indicates a standard texture and one represents a projected texture.
45
+
46
+ A standard (nonprojected) texture is generated by multiplying v_textCoord by the scaling and translation packed into the first row
47
+ of "matrix". A clip rectangle is packed into second row of "matrix".
48
+
49
+ A "projected" reality mesh texture is used for map layers. It does not uses v_texCoord, the texture coordinates
50
+ are instead generated by a projection of the model position onto the X-Y plane. We only have eye position, not model position
51
+ so the matrix in this case is a real transform matrix that contains a mapping from eye to model position
52
+ followed by the model to texture projection.
53
+ */
34
54
  const applyTexture = `
35
- bool applyTexture(inout vec4 col, sampler2D sampler, mat4 params) {
36
- vec4 texTransform = params[0].xyzw;
37
- vec4 texClip = params[1].xyzw;
38
- float layerAlpha = params[2].x;
39
- vec2 uv = vec2(texTransform[0] + texTransform[2] * v_texCoord.x, texTransform[1] + texTransform[3] * v_texCoord.y);
40
- if (uv.x >= texClip[0] && uv.x <= texClip[2] && uv.y >= texClip[1] && uv.y <= texClip[3]) {
55
+ bool applyTexture(inout vec4 col, sampler2D sampler, mat4 params, mat4 matrix) {
56
+ vec2 uv;
57
+ float layerAlpha;
58
+ bool isProjected = params[0][0] != 0.0;
59
+ float imageCount = params[0][1];
60
+ vec2 classPos;
61
+
62
+ if (isProjected) {
63
+ vec4 eye4 = vec4(v_eyeSpace, 1.0);
64
+ vec4 classPos4 = matrix * eye4;
65
+ classPos = classPos4.xy / classPos4.w;
66
+
67
+ if (!testInside(params[2].x, params[2].y, params[2].z, params[2].w, classPos.x, classPos.y) ||
68
+ !testInside(params[2].z, params[2].w, params[3].x, params[3].y, classPos.x, classPos.y) ||
69
+ !testInside(params[3].x, params[3].y, params[3].z, params[3].w, classPos.x, classPos.y) ||
70
+ !testInside(params[3].z, params[3].w, params[2].x, params[2].y, classPos.x, classPos.y))
71
+ return false;
72
+
73
+ uv.x = classPos.x;
74
+ uv.y = classPos.y / imageCount;
75
+ layerAlpha = params[0][2];
76
+ if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0)
77
+ return false;
78
+ } else {
79
+ vec4 texTransform = matrix[0].xyzw;
80
+ vec4 texClip = matrix[1].xyzw;
81
+ layerAlpha = matrix[2].x;
82
+ uv = vec2(texTransform[0] + texTransform[2] * v_texCoord.x, texTransform[1] + texTransform[3] * v_texCoord.y);
83
+ if (uv.x < texClip[0] || uv.x > texClip[2] || uv.y < texClip[1] || uv.y > texClip[3])
84
+ return false;
41
85
  uv.y = 1.0 - uv.y;
42
- vec4 texCol = TEXTURE(sampler, uv);
43
- float alpha = layerAlpha * texCol.a;
44
- if (alpha > 0.05) {
45
- col.rgb = (1.0 - alpha) * col.rgb + alpha * texCol.rgb;
46
- if (texCol.a > 0.1)
47
- featureIncrement = params[2].y;
48
- if (alpha > col.a)
49
- col.a = alpha;
50
86
  }
51
- return true;
52
- }
87
+ vec4 texCol = TEXTURE(sampler, uv);
88
+ float alpha = layerAlpha * texCol.a;
89
+ if (alpha > 0.05) {
90
+ vec3 texRgb = isProjected ? (texCol.rgb / texCol.a) : texCol.rgb; // Texture color is premultiplied by alpha only if projected (from classification).
91
+ col.rgb = (1.0 - alpha) * col.rgb + alpha * texRgb;
92
+ if (isProjected) {
93
+ vec4 featureTexel = TEXTURE(sampler, vec2(uv.x, (1.0 + classPos.y) / imageCount));
94
+ classifierId = addUInt32s(params[1], featureTexel * 255.0) / 255.0;
95
+ } else {
96
+ featureIncrement = matrix[2].y;
97
+ classifierId = vec4(0);
98
+ }
99
+ if (alpha > col.a)
100
+ col.a = alpha;
53
101
 
54
- return false;
102
+ return true;
103
+ }
104
+ return false;
55
105
  }
56
106
  `;
57
107
  const computeTexCoord = "return unquantize2d(a_uvParam, u_qTexCoordParams);";
58
- const overrideFeatureId = "return addUInt32s(feature_id * 255.0, vec4(featureIncrement, 0.0, 0.0, 0.0)) / 255.0;";
108
+ const scratchMatrix4d1 = core_geometry_1.Matrix4d.createIdentity();
109
+ const scratchMatrix4d2 = core_geometry_1.Matrix4d.createIdentity();
110
+ const scratchMatrix = new Matrix_1.Matrix4();
111
+ const overrideFeatureId = `return (classifierId == vec4(0)) ? (addUInt32s(feature_id * 255.0, vec4(featureIncrement, 0.0, 0.0, 0.0)) / 255.0) : classifierId;`;
59
112
  function addTextures(builder, maxTexturesPerMesh) {
60
113
  builder.vert.addFunction(Decode_1.unquantize2d);
61
114
  builder.addFunctionComputedVarying("v_texCoord", 3 /* Vec2 */, "computeTexCoord", computeTexCoord);
@@ -70,7 +123,7 @@ function addTextures(builder, maxTexturesPerMesh) {
70
123
  builder.frag.addUniform("u_texturesPresent", 0 /* Boolean */, (program) => {
71
124
  program.addGraphicUniform("u_texturesPresent", (uniform, params) => {
72
125
  var _a;
73
- const textureCount = (_a = params.geometry.asRealityMesh.textureParams) === null || _a === void 0 ? void 0 : _a.textures.length;
126
+ const textureCount = (_a = params.geometry.asRealityMesh.textureParams) === null || _a === void 0 ? void 0 : _a.params.length;
74
127
  uniform.setUniform1i(textureCount ? 1 : 0);
75
128
  });
76
129
  });
@@ -80,7 +133,7 @@ function addTextures(builder, maxTexturesPerMesh) {
80
133
  prog.addGraphicUniform(textureLabel, (uniform, params) => {
81
134
  const textureUnits = [RenderFlags_1.TextureUnit.RealityMesh0, RenderFlags_1.TextureUnit.RealityMesh1, params.target.drawForReadPixels ? RenderFlags_1.TextureUnit.ShadowMap : RenderFlags_1.TextureUnit.PickDepthAndOrder, RenderFlags_1.TextureUnit.RealityMesh3, RenderFlags_1.TextureUnit.RealityMesh4, RenderFlags_1.TextureUnit.RealityMesh5];
82
135
  const realityMesh = params.geometry.asRealityMesh;
83
- const realityTexture = realityMesh.textureParams ? realityMesh.textureParams.textures[i] : undefined;
136
+ const realityTexture = realityMesh.textureParams ? realityMesh.textureParams.params[i].texture : undefined;
84
137
  if (realityTexture !== undefined) {
85
138
  const texture = realityTexture;
86
139
  texture.texture.bindSampler(uniform, textureUnits[i]);
@@ -91,14 +144,33 @@ function addTextures(builder, maxTexturesPerMesh) {
91
144
  }
92
145
  });
93
146
  });
94
- const paramsLabel = `u_texTransform${i}`;
147
+ const paramsLabel = `u_texParams${i}`, matrixLabel = `u_texMatrix${i}`;
148
+ builder.frag.addUniform(matrixLabel, 7 /* Mat4 */, (prog) => {
149
+ prog.addGraphicUniform(matrixLabel, (uniform, params) => {
150
+ var _a;
151
+ const realityMesh = params.geometry.asRealityMesh;
152
+ const textureParam = (_a = realityMesh.textureParams) === null || _a === void 0 ? void 0 : _a.params[i];
153
+ (0, core_bentley_1.assert)(undefined !== textureParam);
154
+ if (undefined !== textureParam) {
155
+ const projectionMatrix = textureParam.getProjectionMatrix();
156
+ if (projectionMatrix) {
157
+ const eyeToModel = core_geometry_1.Matrix4d.createTransform(params.target.uniforms.frustum.viewMatrix.inverse(), scratchMatrix4d1);
158
+ const eyeToTexture = projectionMatrix.multiplyMatrixMatrix(eyeToModel, scratchMatrix4d2);
159
+ uniform.setMatrix4(Matrix_1.Matrix4.fromMatrix4d(eyeToTexture, scratchMatrix));
160
+ }
161
+ else
162
+ uniform.setMatrix4(textureParam.getTerrainMatrix());
163
+ }
164
+ });
165
+ });
95
166
  builder.frag.addUniform(paramsLabel, 7 /* Mat4 */, (prog) => {
96
167
  prog.addGraphicUniform(paramsLabel, (uniform, params) => {
168
+ var _a;
97
169
  const realityMesh = params.geometry.asRealityMesh;
98
- const textureParams = realityMesh.textureParams;
99
- (0, core_bentley_1.assert)(undefined !== textureParams);
100
- if (undefined !== textureParams) {
101
- uniform.setMatrix4(textureParams.matrices[i]);
170
+ const textureParam = (_a = realityMesh.textureParams) === null || _a === void 0 ? void 0 : _a.params[i];
171
+ (0, core_bentley_1.assert)(undefined !== textureParam);
172
+ if (undefined !== textureParam) {
173
+ uniform.setMatrix4(textureParam.getParams(scratchMatrix));
102
174
  }
103
175
  });
104
176
  });
@@ -107,7 +179,7 @@ function addTextures(builder, maxTexturesPerMesh) {
107
179
  function baseColorFromTextures(textureCount, applyFeatureColor) {
108
180
  const applyTextureStrings = [];
109
181
  for (let i = 0; i < textureCount; i++)
110
- applyTextureStrings.push(`if (applyTexture(col, s_texture${i}, u_texTransform${i})) doDiscard = false; `);
182
+ applyTextureStrings.push(`if (applyTexture(col, s_texture${i}, u_texParams${i}, u_texMatrix${i})) doDiscard = false; `);
111
183
  return `
112
184
  if (!u_texturesPresent)
113
185
  return u_baseColor;
@@ -186,6 +258,7 @@ function createRealityMeshBuilder(flags) {
186
258
  (0, SolarShadowMapping_1.addSolarShadowMap)(builder, true);
187
259
  const frag = builder.frag;
188
260
  frag.addGlobal("featureIncrement", 2 /* Float */, "0.0");
261
+ frag.addGlobal("classifierId", 5 /* Vec4 */);
189
262
  frag.set(17 /* OverrideFeatureId */, overrideFeatureId);
190
263
  let textureCount = System_1.System.instance.maxRealityImageryLayers;
191
264
  let gradientTextureUnit = RenderFlags_1.TextureUnit.RealityMeshThematicGradient;
@@ -210,9 +283,11 @@ function createRealityMeshBuilder(flags) {
210
283
  addColorOverrideMix(builder.frag);
211
284
  }
212
285
  const computeFragmentBaseColor = baseColorFromTextures(textureCount, applyFragmentFeatureColor);
286
+ frag.addFunction(Common_1.addUInt32s);
287
+ frag.addFunction(testInside);
288
+ (0, Common_1.addEyeSpace)(builder);
213
289
  frag.addFunction(applyTexture);
214
290
  frag.set(1 /* ComputeBaseColor */, computeFragmentBaseColor);
215
- frag.addFunction(Common_1.addUInt32s);
216
291
  builder.frag.addUniform("u_baseColor", 5 /* Vec4 */, (prog) => {
217
292
  prog.addGraphicUniform("u_baseColor", (uniform, params) => {
218
293
  const realityMesh = params.geometry.asRealityMesh;
@@ -1 +1 @@
1
- {"version":3,"file":"RealityMesh.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/RealityMesh.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAA6C;AAC7C,oDAA8C;AAC9C,kDAA+C;AAC/C,gDAA6C;AAC7C,oDAAuI;AACvI,sCAAmC;AAInC,mCAA0C;AAC1C,qCAAsD;AACtD,qCAAwD;AACxD,yDAA8F;AAC9F,yCAA4F;AAC5F,iEAAyH;AACzH,6DAAyD;AACzD,uCAAkF;AAClF,yCAAyE;AACzE,qCAAyE;AACzE,yCAAyC;AAEzC,MAAM,eAAe,GAAG,8CAA8C,CAAC;AACvE,MAAM,aAAa,GAAG;;;;CAIrB,CAAC;AAEF,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBpB,CAAC;AAEF,MAAM,eAAe,GAAG,oDAAoD,CAAC;AAC7E,MAAM,iBAAiB,GAAG,uFAAuF,CAAC;AAElH,SAAS,WAAW,CAAC,OAAuB,EAAE,kBAA0B;IACtE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAY,CAAC,CAAC;IACvC,OAAO,CAAC,0BAA0B,CAAC,YAAY,gBAAqB,iBAAiB,EAAE,eAAe,CAAC,CAAC;IACxG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,gBAAqB,CAAC,IAAI,EAAE,EAAE;QACvE,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9D,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAc,CAAC;YACnD,IAAI,SAAS,KAAK,WAAW,CAAC,SAAS,EAAE;gBACvC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;aAC9C;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,mBAAwB,CAAC,OAAO,EAAE,EAAE;QAC7E,OAAO,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;;YACjE,MAAM,YAAY,GAAG,MAAA,MAAM,CAAC,QAAQ,CAAC,aAAc,CAAC,aAAa,0CAAE,QAAQ,CAAC,MAAM,CAAC;YACnF,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC,EAAE,EAAE;QAC3C,MAAM,YAAY,GAAG,YAAY,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,qBAA0B,CAAC,IAAI,EAAE,EAAE;YACrE,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACvD,MAAM,YAAY,GAAG,CAAC,yBAAW,CAAC,YAAY,EAAE,yBAAW,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,yBAAW,CAAC,SAAS,CAAC,CAAC,CAAC,yBAAW,CAAC,iBAAiB,EAAE,yBAAW,CAAC,YAAY,EAAE,yBAAW,CAAC,YAAY,EAAE,yBAAW,CAAC,YAAY,CAAC,CAAC;gBACjP,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAc,CAAC;gBACnD,MAAM,cAAc,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACrG,IAAI,cAAc,KAAK,SAAS,EAAE;oBAChC,MAAM,OAAO,GAAG,cAAyB,CAAC;oBAC1C,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvD;qBAAM;oBACL,6EAA6E;oBAC7E,eAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC9D;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,iBAAiB,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,gBAAqB,CAAC,IAAI,EAAE,EAAE;YAC/D,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACtD,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAc,CAAC;gBACnD,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;gBAChD,IAAA,qBAAM,EAAC,SAAS,KAAK,aAAa,CAAC,CAAC;gBACpC,IAAI,SAAS,KAAK,aAAa,EAAE;oBAC/B,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/C;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;AACD,SAAS,qBAAqB,CAAC,YAAoB,EAAE,iBAAyB;IAC5E,MAAM,mBAAmB,GAAG,EAAE,CAAC;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE;QACnC,mBAAmB,CAAC,IAAI,CAAC,kCAAkC,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,CAAC;IAE5G,OAAO;;;;;;IAML,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;;;;IAIhC,iBAAiB;;;CAGpB,CAAC;AACF,CAAC;AAED,gEAAgE;AAChE,4DAA4D;AAC5D,MAAM,eAAe,GAAG;;;GAGrB,CAAC;AAEJ,SAAS,wBAAwB,CAAC,OAAuB,EAAE,mBAAgC;IACzF,IAAA,wBAAe,EAAC,OAAO,CAAC,IAAI,aAAiB,CAAC;IAC9C,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,yBAAe,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,gBAAqB,CAAC;IAC/D,OAAO,CAAC,0BAA0B,CAAC,KAAK,gBAAqB,uBAAuB,EAAE,aAAa,CAAC,CAAC;IACrG,IAAA,6BAAkB,EAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,OAAO,CAAC,wBAAwB,CAAC,iBAAiB,iBAAsB,IAAA,kCAAuB,EAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACnJ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,gBAAqB,CAAC,IAAI,EAAE,EAAE;QACpE,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3D,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,yBAAyB,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,qBAA0B,CAAC,IAAI,EAAE,EAAE;QACpE,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,mBAAmB,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,yBAAW,CAAC,SAAS,CAAC,CAAC,CAAC,yBAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnM,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,IAA2B;IACtD,IAAI,CAAC,UAAU,CAAC,oBAAoB,iBAAsB,CAAC,IAAI,EAAE,EAAE;QACjE,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/D,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAc,CAAC,gBAAgB,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AAEL,CAAC;AAED,SAAS,+BAA+B;IACtC,MAAM,OAAO,GAAG,IAAI,8BAAc,CAAC,2BAAY,CAAC,gBAAgB,sBAA0B,KAAK,CAAC,CAAC,CAAC;IAClG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,CAAC,GAAG,2BAAwC,eAAe,CAAC,CAAC;IACjE,IAAA,qCAA4B,EAAC,IAAI,CAAC,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,GAAG,0BAAyC,0BAAe,CAAC,CAAC;IAC1E,OAAO,OAAO,CAAC;AAEjB,CAAC;AAED,gBAAgB;AAChB,SAAgB,kCAAkC;IAChD,MAAM,OAAO,GAAG,+BAA+B,EAAE,CAAC;IAClD,IAAA,gDAAyB,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1C,OAAO,OAAO,CAAC;AACjB,CAAC;AAJD,gFAIC;AAED,gBAAgB;AAChB,SAAgB,wBAAwB;IACtC,MAAM,OAAO,GAAG,+BAA+B,EAAE,CAAC;IAClD,IAAA,6BAAU,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC3B,OAAO,OAAO,CAAC;AACjB,CAAC;AAJD,4DAIC;AAED,gBAAgB;AAChB,SAAwB,wBAAwB,CAAC,KAAqB;IACpE,MAAM,OAAO,GAAG,IAAI,8BAAc,CAAC,2BAAY,CAAC,gBAAgB,sBAA0B,KAAK,CAAC,CAAC,CAAC;IAClG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,CAAC,GAAG,2BAAwC,eAAe,CAAC,CAAC;IACjE,IAAA,qCAA4B,EAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,KAAK,CAAC,YAAY,gBAAqB;QACzC,IAAA,sCAAiB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAEnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,CAAC,SAAS,CAAC,kBAAkB,iBAAsB,KAAK,CAAC,CAAC;IAC9D,IAAI,CAAC,GAAG,6BAA4C,iBAAiB,CAAC,CAAC;IACvE,IAAI,YAAY,GAAG,eAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAC3D,IAAI,mBAAmB,GAAG,yBAAW,CAAC,2BAA2B,CAAC;IAClE,MAAM,IAAI,GAAG,eAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,gBAAmB,KAAK,CAAC,UAAU,EAAE;QAC5G,YAAY,EAAE,CAAC,CAAC,oGAAoG;QACpH,mBAAmB,GAAG,CAAC,CAAC,CAAC,CAAC,iDAAiD;KAC5E;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC;IAC/B,IAAI,IAAI,GAAG,sBAA0B,IAAI,CAAC,CAAC,kBAAiC,CAAC,aAA6B,CAAC;IAC3G,IAAI,yBAAyB,GAAG,EAAE,CAAC;IAEnC,IAAI,KAAK,CAAC,YAAY,EAAE;QACtB,IAAI,IAAI,eAA8B,CAAC;QACvC,IAAA,+CAAwB,EAAC,OAAO,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACzE,IAAA,8CAAoC,EAAC,OAAO,CAAC,CAAC;KAC/C;IAED,IAAA,sCAAmB,EAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACzC,IAAI,IAAI,sBAA0B,EAAE;QAClC,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC;QACxB,IAAA,uBAAe,EAAC,OAAO,EAAE,sCAAsC,CAAC,CAAC;QACjE,yBAAyB,GAAG,eAAe,CAAC;QAC5C,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACnC;IACD,MAAM,wBAAwB,GAAG,qBAAqB,CAAC,YAAY,EAAE,yBAAyB,CAAC,CAAC;IAEhG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAI,CAAC,GAAG,2BAA2C,wBAAwB,CAAC,CAAC;IAC7E,IAAI,CAAC,WAAW,CAAC,mBAAU,CAAC,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,gBAAqB,CAAC,IAAI,EAAE,EAAE;QACjE,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxD,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAc,CAAC;YACnD,MAAM,SAAS,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;YACvG,OAAO,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC1G,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,GAAG,2BAA2C,wBAAwB,CAAC,CAAC;IACrF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;QACxB,IAAI,iBAAqB,IAAI,EAAE;YAC7B,IAAI,KAAK,CAAC,YAAY;gBACpB,IAAA,iDAA0B,EAAC,OAAO,CAAC,CAAC;YAEtC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAc,CAAC,CAAC;YACzC,IAAI,KAAK,CAAC,YAAY;gBACpB,IAAA,+BAAoB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;gBAEnC,IAAA,kCAAuB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACzC;KACF;IAED,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAEnC,IAAI,gBAAmB,KAAK,CAAC,UAAU;QACrC,wBAAwB,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAEzD,IAAI,KAAK,CAAC,UAAU;QAClB,IAAA,sBAAW,EAAC,OAAO,CAAC,CAAC;IAEvB,OAAO,OAAO,CAAC;AACjB,CAAC;AAxED,2CAwEC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { ColorDef } from \"@itwin/core-common\";\r\nimport { AttributeMap } from \"../AttributeMap\";\r\nimport { TextureUnit } from \"../RenderFlags\";\r\nimport { FragmentShaderBuilder, FragmentShaderComponent, ProgramBuilder, VariableType, VertexShaderComponent } from \"../ShaderBuilder\";\r\nimport { System } from \"../System\";\r\nimport { FeatureMode, IsInstanced, IsShadowable, IsThematic, TechniqueFlags } from \"../TechniqueFlags\";\r\nimport { TechniqueId } from \"../TechniqueId\";\r\nimport { Texture } from \"../Texture\";\r\nimport { addVaryingColor } from \"./Color\";\r\nimport { addShaderFlags, addUInt32s } from \"./Common\";\r\nimport { decodeDepthRgb, unquantize2d } from \"./Decode\";\r\nimport { addFeatureSymbology, addHiliter, FeatureSymbologyOptions } from \"./FeatureSymbology\";\r\nimport { addAltPickBufferOutputs, addPickBufferOutputs, assignFragColor } from \"./Fragment\";\r\nimport { addColorPlanarClassifier, addFeaturePlanarClassifier, addHilitePlanarClassifier } from \"./PlanarClassification\";\r\nimport { addSolarShadowMap } from \"./SolarShadowMapping\";\r\nimport { addClassificationTranslucencyDiscard, octDecodeNormal } from \"./Surface\";\r\nimport { addThematicDisplay, getComputeThematicIndex } from \"./Thematic\";\r\nimport { addModelViewProjectionMatrix, addNormalMatrix } from \"./Vertex\";\r\nimport { addWiremesh } from \"./Wiremesh\";\r\n\r\nconst computePosition = \"gl_PointSize = 1.0; return MAT_MVP * rawPos;\";\r\nconst computeNormal = `\r\n vec3 normal = octDecodeNormal(a_norm); // normal coming in for is already in world space\r\n g_hillshadeIndex = normal.z; // save off world Z for thematic hill shade mode index\r\n return normalize(u_worldToViewN * normal);\r\n`;\r\n\r\nconst applyTexture = `\r\nbool applyTexture(inout vec4 col, sampler2D sampler, mat4 params) {\r\n vec4 texTransform = params[0].xyzw;\r\n vec4 texClip = params[1].xyzw;\r\n float layerAlpha = params[2].x;\r\n vec2 uv = vec2(texTransform[0] + texTransform[2] * v_texCoord.x, texTransform[1] + texTransform[3] * v_texCoord.y);\r\n if (uv.x >= texClip[0] && uv.x <= texClip[2] && uv.y >= texClip[1] && uv.y <= texClip[3]) {\r\n uv.y = 1.0 - uv.y;\r\n vec4 texCol = TEXTURE(sampler, uv);\r\n float alpha = layerAlpha * texCol.a;\r\n if (alpha > 0.05) {\r\n col.rgb = (1.0 - alpha) * col.rgb + alpha * texCol.rgb;\r\n if (texCol.a > 0.1)\r\n featureIncrement = params[2].y;\r\n if (alpha > col.a)\r\n col.a = alpha;\r\n }\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n`;\r\n\r\nconst computeTexCoord = \"return unquantize2d(a_uvParam, u_qTexCoordParams);\";\r\nconst overrideFeatureId = \"return addUInt32s(feature_id * 255.0, vec4(featureIncrement, 0.0, 0.0, 0.0)) / 255.0;\";\r\n\r\nfunction addTextures(builder: ProgramBuilder, maxTexturesPerMesh: number) {\r\n builder.vert.addFunction(unquantize2d);\r\n builder.addFunctionComputedVarying(\"v_texCoord\", VariableType.Vec2, \"computeTexCoord\", computeTexCoord);\r\n builder.vert.addUniform(\"u_qTexCoordParams\", VariableType.Vec4, (prog) => {\r\n prog.addGraphicUniform(\"u_qTexCoordParams\", (uniform, params) => {\r\n const realityMesh = params.geometry.asRealityMesh!;\r\n if (undefined !== realityMesh.uvQParams) {\r\n uniform.setUniform4fv(realityMesh.uvQParams);\r\n }\r\n });\r\n });\r\n\r\n builder.frag.addUniform(\"u_texturesPresent\", VariableType.Boolean, (program) => {\r\n program.addGraphicUniform(\"u_texturesPresent\", (uniform, params) => {\r\n const textureCount = params.geometry.asRealityMesh!.textureParams?.textures.length;\r\n uniform.setUniform1i(textureCount ? 1 : 0);\r\n });\r\n });\r\n\r\n for (let i = 0; i < maxTexturesPerMesh; i++) {\r\n const textureLabel = `s_texture${i}`;\r\n builder.frag.addUniform(textureLabel, VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(textureLabel, (uniform, params) => {\r\n const textureUnits = [TextureUnit.RealityMesh0, TextureUnit.RealityMesh1, params.target.drawForReadPixels ? TextureUnit.ShadowMap : TextureUnit.PickDepthAndOrder, TextureUnit.RealityMesh3, TextureUnit.RealityMesh4, TextureUnit.RealityMesh5];\r\n const realityMesh = params.geometry.asRealityMesh!;\r\n const realityTexture = realityMesh.textureParams ? realityMesh.textureParams.textures[i] : undefined;\r\n if (realityTexture !== undefined) {\r\n const texture = realityTexture as Texture;\r\n texture.texture.bindSampler(uniform, textureUnits[i]);\r\n } else {\r\n // assert(false, \"Terrain Mesh texture not defined when beginning texture.\");\r\n System.instance.ensureSamplerBound(uniform, textureUnits[i]);\r\n }\r\n });\r\n });\r\n const paramsLabel = `u_texTransform${i}`;\r\n builder.frag.addUniform(paramsLabel, VariableType.Mat4, (prog) => {\r\n prog.addGraphicUniform(paramsLabel, (uniform, params) => {\r\n const realityMesh = params.geometry.asRealityMesh!;\r\n const textureParams = realityMesh.textureParams;\r\n assert(undefined !== textureParams);\r\n if (undefined !== textureParams) {\r\n uniform.setMatrix4(textureParams.matrices[i]);\r\n }\r\n });\r\n });\r\n }\r\n}\r\nfunction baseColorFromTextures(textureCount: number, applyFeatureColor: string) {\r\n const applyTextureStrings = [];\r\n\r\n for (let i = 0; i < textureCount; i++)\r\n applyTextureStrings.push(`if (applyTexture(col, s_texture${i}, u_texTransform${i})) doDiscard = false; `);\r\n\r\n return `\r\n if (!u_texturesPresent)\r\n return u_baseColor;\r\n\r\n bool doDiscard = true;\r\n vec4 col = u_baseColor;\r\n ${applyTextureStrings.join(\"\\n \")}\r\n if (doDiscard)\r\n discard;\r\n\r\n ${applyFeatureColor}\r\n\r\n return col;\r\n`;\r\n}\r\n\r\n// feature_rgb.r = -1.0 if rgb color not overridden for feature.\r\n// feature_alpha = -1.0 if alpha not overridden for feature.\r\nconst mixFeatureColor = `\r\n col.rgb = mix(col.rgb, mix(col.rgb, v_color.rgb, u_overrideColorMix), step(0.0, v_color.r));\r\n col.a = mix(col.a, v_color.a, step(0.0, v_color.a));\r\n `;\r\n\r\nfunction addThematicToRealityMesh(builder: ProgramBuilder, gradientTextureUnit: TextureUnit) {\r\n addNormalMatrix(builder.vert, IsInstanced.No);\r\n builder.vert.addFunction(octDecodeNormal);\r\n builder.vert.addGlobal(\"g_hillshadeIndex\", VariableType.Float);\r\n builder.addFunctionComputedVarying(\"v_n\", VariableType.Vec3, \"computeLightingNormal\", computeNormal);\r\n addThematicDisplay(builder, false, true);\r\n builder.addInlineComputedVarying(\"v_thematicIndex\", VariableType.Float, getComputeThematicIndex(builder.vert.usesInstancedGeometry, false, false));\r\n builder.vert.addUniform(\"u_worldToViewN\", VariableType.Mat3, (prog) => {\r\n prog.addGraphicUniform(\"u_worldToViewN\", (uniform, params) => {\r\n params.target.uniforms.branch.bindWorldToViewNTransform(uniform, params.geometry, false);\r\n });\r\n });\r\n builder.frag.addUniform(\"s_texture\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"s_texture\", (uniform, params) => {\r\n params.target.uniforms.thematic.bindTexture(uniform, gradientTextureUnit >= 0 ? gradientTextureUnit : (params.target.drawForReadPixels ? TextureUnit.ShadowMap : TextureUnit.PickDepthAndOrder));\r\n });\r\n });\r\n}\r\n\r\nfunction addColorOverrideMix(frag: FragmentShaderBuilder) {\r\n frag.addUniform(\"u_overrideColorMix\", VariableType.Float, (prog) => {\r\n prog.addGraphicUniform(\"u_overrideColorMix\", (uniform, params) => {\r\n uniform.setUniform1f(params.geometry.asRealityMesh!.overrideColorMix);\r\n });\r\n });\r\n\r\n}\r\n\r\nfunction createRealityMeshHiliterBuilder(): ProgramBuilder {\r\n const builder = new ProgramBuilder(AttributeMap.findAttributeMap(TechniqueId.RealityMesh, false));\r\n const vert = builder.vert;\r\n vert.set(VertexShaderComponent.ComputePosition, computePosition);\r\n addModelViewProjectionMatrix(vert);\r\n builder.frag.set(FragmentShaderComponent.AssignFragData, assignFragColor);\r\n return builder;\r\n\r\n}\r\n\r\n/** @internal */\r\nexport function createClassifierRealityMeshHiliter(): ProgramBuilder {\r\n const builder = createRealityMeshHiliterBuilder();\r\n addHilitePlanarClassifier(builder, false);\r\n return builder;\r\n}\r\n\r\n/** @internal */\r\nexport function createRealityMeshHiliter(): ProgramBuilder {\r\n const builder = createRealityMeshHiliterBuilder();\r\n addHiliter(builder, false);\r\n return builder;\r\n}\r\n\r\n/** @internal */\r\nexport default function createRealityMeshBuilder(flags: TechniqueFlags): ProgramBuilder {\r\n const builder = new ProgramBuilder(AttributeMap.findAttributeMap(TechniqueId.RealityMesh, false));\r\n const vert = builder.vert;\r\n vert.set(VertexShaderComponent.ComputePosition, computePosition);\r\n addModelViewProjectionMatrix(vert);\r\n\r\n if (flags.isShadowable === IsShadowable.Yes)\r\n addSolarShadowMap(builder, true);\r\n\r\n const frag = builder.frag;\r\n frag.addGlobal(\"featureIncrement\", VariableType.Float, \"0.0\");\r\n frag.set(FragmentShaderComponent.OverrideFeatureId, overrideFeatureId);\r\n let textureCount = System.instance.maxRealityImageryLayers;\r\n let gradientTextureUnit = TextureUnit.RealityMeshThematicGradient;\r\n const caps = System.instance.capabilities;\r\n if (Math.min(caps.maxFragTextureUnits, caps.maxVertTextureUnits) < 16 && IsThematic.Yes === flags.isThematic) {\r\n textureCount--; // steal the last bg map layer texture for thematic gradient (just when thematic display is applied)\r\n gradientTextureUnit = -1; // is dependent on drawing mode so will set later\r\n }\r\n\r\n const feat = flags.featureMode;\r\n let opts = FeatureMode.Overrides === feat ? FeatureSymbologyOptions.Surface : FeatureSymbologyOptions.None;\r\n let applyFragmentFeatureColor = \"\";\r\n\r\n if (flags.isClassified) {\r\n opts &= ~FeatureSymbologyOptions.Alpha;\r\n addColorPlanarClassifier(builder, flags.isTranslucent, flags.isThematic);\r\n addClassificationTranslucencyDiscard(builder);\r\n }\r\n\r\n addFeatureSymbology(builder, feat, opts);\r\n if (feat === FeatureMode.Overrides) {\r\n addShaderFlags(builder);\r\n addVaryingColor(builder, \"return vec4(-1.0, -1.0, -1.0, -1.0);\");\r\n applyFragmentFeatureColor = mixFeatureColor;\r\n addColorOverrideMix(builder.frag);\r\n }\r\n const computeFragmentBaseColor = baseColorFromTextures(textureCount, applyFragmentFeatureColor);\r\n\r\n frag.addFunction(applyTexture);\r\n frag.set(FragmentShaderComponent.ComputeBaseColor, computeFragmentBaseColor);\r\n frag.addFunction(addUInt32s);\r\n builder.frag.addUniform(\"u_baseColor\", VariableType.Vec4, (prog) => {\r\n prog.addGraphicUniform(\"u_baseColor\", (uniform, params) => {\r\n const realityMesh = params.geometry.asRealityMesh!;\r\n const baseColor = (realityMesh.baseColor ? realityMesh.baseColor : ColorDef.create(0xff000000)).colors;\r\n uniform.setUniform4fv([baseColor.r / 255, baseColor.g / 255, baseColor.b / 255, 1 - baseColor.t / 255]);\r\n });\r\n });\r\n builder.frag.set(FragmentShaderComponent.ComputeBaseColor, computeFragmentBaseColor);\r\n if (!flags.isTranslucent) {\r\n if (FeatureMode.None !== feat) {\r\n if (flags.isClassified)\r\n addFeaturePlanarClassifier(builder);\r\n\r\n builder.frag.addFunction(decodeDepthRgb);\r\n if (flags.isClassified)\r\n addPickBufferOutputs(builder.frag);\r\n else\r\n addAltPickBufferOutputs(builder.frag);\r\n }\r\n }\r\n\r\n addTextures(builder, textureCount);\r\n\r\n if (IsThematic.Yes === flags.isThematic)\r\n addThematicToRealityMesh(builder, gradientTextureUnit);\r\n\r\n if (flags.isWiremesh)\r\n addWiremesh(builder);\r\n\r\n return builder;\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"RealityMesh.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/RealityMesh.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { ColorDef } from \"@itwin/core-common\";\r\nimport { Matrix4d } from \"@itwin/core-geometry\";\r\nimport { AttributeMap } from \"../AttributeMap\";\r\nimport { Matrix4 } from \"../Matrix\";\r\nimport { TextureUnit } from \"../RenderFlags\";\r\nimport { FragmentShaderBuilder, FragmentShaderComponent, ProgramBuilder, VariableType, VertexShaderComponent } from \"../ShaderBuilder\";\r\nimport { System } from \"../System\";\r\nimport { FeatureMode, IsInstanced, IsShadowable, IsThematic, TechniqueFlags } from \"../TechniqueFlags\";\r\nimport { TechniqueId } from \"../TechniqueId\";\r\nimport { Texture } from \"../Texture\";\r\nimport { addVaryingColor } from \"./Color\";\r\nimport { addEyeSpace, addShaderFlags, addUInt32s } from \"./Common\";\r\nimport { decodeDepthRgb, unquantize2d } from \"./Decode\";\r\nimport { addFeatureSymbology, addHiliter, FeatureSymbologyOptions } from \"./FeatureSymbology\";\r\nimport { addAltPickBufferOutputs, addPickBufferOutputs, assignFragColor } from \"./Fragment\";\r\nimport { addColorPlanarClassifier, addFeaturePlanarClassifier, addHilitePlanarClassifier } from \"./PlanarClassification\";\r\nimport { addSolarShadowMap } from \"./SolarShadowMapping\";\r\nimport { addClassificationTranslucencyDiscard, octDecodeNormal } from \"./Surface\";\r\nimport { addThematicDisplay, getComputeThematicIndex } from \"./Thematic\";\r\nimport { addModelViewProjectionMatrix, addNormalMatrix } from \"./Vertex\";\r\nimport { addWiremesh } from \"./Wiremesh\";\r\n\r\nconst computePosition = \"gl_PointSize = 1.0; return MAT_MVP * rawPos;\";\r\nconst computeNormal = `\r\n vec3 normal = octDecodeNormal(a_norm); // normal coming in for is already in world space\r\n g_hillshadeIndex = normal.z; // save off world Z for thematic hill shade mode index\r\n return normalize(u_worldToViewN * normal);\r\n`;\r\n\r\nconst testInside = `\r\nbool testInside(float x0, float y0, float x1, float y1, float x, float y) {\r\n vec2 perp = vec2(y0 - y1, x1 - x0), test = vec2(x - x0, y - y0);\r\n float dot = (test.x * perp.x + test.y * perp.y) / sqrt(perp.x * perp.x + perp.y * perp.y);\r\n return dot >= -0.001;\r\n}\r\n`;\r\n\r\n/* There are two methods of applying a texture to a reality mesh. the first member of \"params\" denotes which\r\n method is to be used. A value of zero indicates a standard texture and one represents a projected texture.\r\n\r\n A standard (nonprojected) texture is generated by multiplying v_textCoord by the scaling and translation packed into the first row\r\n of \"matrix\". A clip rectangle is packed into second row of \"matrix\".\r\n\r\n A \"projected\" reality mesh texture is used for map layers. It does not uses v_texCoord, the texture coordinates\r\n are instead generated by a projection of the model position onto the X-Y plane. We only have eye position, not model position\r\n so the matrix in this case is a real transform matrix that contains a mapping from eye to model position\r\n followed by the model to texture projection.\r\n*/\r\nconst applyTexture = `\r\nbool applyTexture(inout vec4 col, sampler2D sampler, mat4 params, mat4 matrix) {\r\n vec2 uv;\r\n float layerAlpha;\r\n bool isProjected = params[0][0] != 0.0;\r\n float imageCount = params[0][1];\r\n vec2 classPos;\r\n\r\n if (isProjected) {\r\n vec4 eye4 = vec4(v_eyeSpace, 1.0);\r\n vec4 classPos4 = matrix * eye4;\r\n classPos = classPos4.xy / classPos4.w;\r\n\r\n if (!testInside(params[2].x, params[2].y, params[2].z, params[2].w, classPos.x, classPos.y) ||\r\n !testInside(params[2].z, params[2].w, params[3].x, params[3].y, classPos.x, classPos.y) ||\r\n !testInside(params[3].x, params[3].y, params[3].z, params[3].w, classPos.x, classPos.y) ||\r\n !testInside(params[3].z, params[3].w, params[2].x, params[2].y, classPos.x, classPos.y))\r\n return false;\r\n\r\n uv.x = classPos.x;\r\n uv.y = classPos.y / imageCount;\r\n layerAlpha = params[0][2];\r\n if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0)\r\n return false;\r\n } else {\r\n vec4 texTransform = matrix[0].xyzw;\r\n vec4 texClip = matrix[1].xyzw;\r\n layerAlpha = matrix[2].x;\r\n uv = vec2(texTransform[0] + texTransform[2] * v_texCoord.x, texTransform[1] + texTransform[3] * v_texCoord.y);\r\n if (uv.x < texClip[0] || uv.x > texClip[2] || uv.y < texClip[1] || uv.y > texClip[3])\r\n return false;\r\n uv.y = 1.0 - uv.y;\r\n }\r\n vec4 texCol = TEXTURE(sampler, uv);\r\n float alpha = layerAlpha * texCol.a;\r\n if (alpha > 0.05) {\r\n vec3 texRgb = isProjected ? (texCol.rgb / texCol.a) : texCol.rgb; // Texture color is premultiplied by alpha only if projected (from classification).\r\n col.rgb = (1.0 - alpha) * col.rgb + alpha * texRgb;\r\n if (isProjected) {\r\n vec4 featureTexel = TEXTURE(sampler, vec2(uv.x, (1.0 + classPos.y) / imageCount));\r\n classifierId = addUInt32s(params[1], featureTexel * 255.0) / 255.0;\r\n } else {\r\n featureIncrement = matrix[2].y;\r\n classifierId = vec4(0);\r\n }\r\n if (alpha > col.a)\r\n col.a = alpha;\r\n\r\n return true;\r\n }\r\nreturn false;\r\n}\r\n`;\r\n\r\nconst computeTexCoord = \"return unquantize2d(a_uvParam, u_qTexCoordParams);\";\r\nconst scratchMatrix4d1 = Matrix4d.createIdentity();\r\nconst scratchMatrix4d2 = Matrix4d.createIdentity();\r\nconst scratchMatrix = new Matrix4();\r\n\r\nconst overrideFeatureId = `return (classifierId == vec4(0)) ? (addUInt32s(feature_id * 255.0, vec4(featureIncrement, 0.0, 0.0, 0.0)) / 255.0) : classifierId;`;\r\n\r\nfunction addTextures(builder: ProgramBuilder, maxTexturesPerMesh: number) {\r\n builder.vert.addFunction(unquantize2d);\r\n builder.addFunctionComputedVarying(\"v_texCoord\", VariableType.Vec2, \"computeTexCoord\", computeTexCoord);\r\n builder.vert.addUniform(\"u_qTexCoordParams\", VariableType.Vec4, (prog) => {\r\n prog.addGraphicUniform(\"u_qTexCoordParams\", (uniform, params) => {\r\n const realityMesh = params.geometry.asRealityMesh!;\r\n if (undefined !== realityMesh.uvQParams) {\r\n uniform.setUniform4fv(realityMesh.uvQParams);\r\n }\r\n });\r\n });\r\n\r\n builder.frag.addUniform(\"u_texturesPresent\", VariableType.Boolean, (program) => {\r\n program.addGraphicUniform(\"u_texturesPresent\", (uniform, params) => {\r\n const textureCount = params.geometry.asRealityMesh!.textureParams?.params.length;\r\n uniform.setUniform1i(textureCount ? 1 : 0);\r\n });\r\n });\r\n\r\n for (let i = 0; i < maxTexturesPerMesh; i++) {\r\n const textureLabel = `s_texture${i}`;\r\n builder.frag.addUniform(textureLabel, VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(textureLabel, (uniform, params) => {\r\n const textureUnits = [TextureUnit.RealityMesh0, TextureUnit.RealityMesh1, params.target.drawForReadPixels ? TextureUnit.ShadowMap : TextureUnit.PickDepthAndOrder, TextureUnit.RealityMesh3, TextureUnit.RealityMesh4, TextureUnit.RealityMesh5];\r\n const realityMesh = params.geometry.asRealityMesh!;\r\n const realityTexture = realityMesh.textureParams ? realityMesh.textureParams.params[i].texture : undefined;\r\n if (realityTexture !== undefined) {\r\n const texture = realityTexture as Texture;\r\n texture.texture.bindSampler(uniform, textureUnits[i]);\r\n } else {\r\n // assert(false, \"Terrain Mesh texture not defined when beginning texture.\");\r\n System.instance.ensureSamplerBound(uniform, textureUnits[i]);\r\n }\r\n });\r\n });\r\n const paramsLabel = `u_texParams${i}`, matrixLabel = `u_texMatrix${i}`;\r\n builder.frag.addUniform(matrixLabel, VariableType.Mat4, (prog) => {\r\n prog.addGraphicUniform(matrixLabel, (uniform, params) => {\r\n const realityMesh = params.geometry.asRealityMesh!;\r\n const textureParam = realityMesh.textureParams?.params[i];\r\n assert(undefined !== textureParam);\r\n if (undefined !== textureParam) {\r\n const projectionMatrix = textureParam.getProjectionMatrix();\r\n if (projectionMatrix) {\r\n const eyeToModel = Matrix4d.createTransform(params.target.uniforms.frustum.viewMatrix.inverse()!, scratchMatrix4d1);\r\n const eyeToTexture = projectionMatrix.multiplyMatrixMatrix(eyeToModel, scratchMatrix4d2);\r\n uniform.setMatrix4(Matrix4.fromMatrix4d(eyeToTexture, scratchMatrix));\r\n } else\r\n uniform.setMatrix4(textureParam.getTerrainMatrix()!);\r\n }\r\n });\r\n });\r\n builder.frag.addUniform(paramsLabel, VariableType.Mat4, (prog) => {\r\n prog.addGraphicUniform(paramsLabel, (uniform, params) => {\r\n const realityMesh = params.geometry.asRealityMesh!;\r\n const textureParam = realityMesh.textureParams?.params[i];\r\n assert(undefined !== textureParam);\r\n if (undefined !== textureParam) {\r\n uniform.setMatrix4(textureParam.getParams(scratchMatrix));\r\n }\r\n });\r\n });\r\n }\r\n}\r\nfunction baseColorFromTextures(textureCount: number, applyFeatureColor: string) {\r\n const applyTextureStrings = [];\r\n\r\n for (let i = 0; i < textureCount; i++)\r\n applyTextureStrings.push(`if (applyTexture(col, s_texture${i}, u_texParams${i}, u_texMatrix${i})) doDiscard = false; `);\r\n\r\n return `\r\n if (!u_texturesPresent)\r\n return u_baseColor;\r\n\r\n bool doDiscard = true;\r\n vec4 col = u_baseColor;\r\n ${applyTextureStrings.join(\"\\n \")}\r\n if (doDiscard)\r\n discard;\r\n\r\n ${applyFeatureColor}\r\n\r\n return col;\r\n`;\r\n}\r\n\r\n// feature_rgb.r = -1.0 if rgb color not overridden for feature.\r\n// feature_alpha = -1.0 if alpha not overridden for feature.\r\nconst mixFeatureColor = `\r\n col.rgb = mix(col.rgb, mix(col.rgb, v_color.rgb, u_overrideColorMix), step(0.0, v_color.r));\r\n col.a = mix(col.a, v_color.a, step(0.0, v_color.a));\r\n `;\r\n\r\nfunction addThematicToRealityMesh(builder: ProgramBuilder, gradientTextureUnit: TextureUnit) {\r\n addNormalMatrix(builder.vert, IsInstanced.No);\r\n builder.vert.addFunction(octDecodeNormal);\r\n builder.vert.addGlobal(\"g_hillshadeIndex\", VariableType.Float);\r\n builder.addFunctionComputedVarying(\"v_n\", VariableType.Vec3, \"computeLightingNormal\", computeNormal);\r\n addThematicDisplay(builder, false, true);\r\n builder.addInlineComputedVarying(\"v_thematicIndex\", VariableType.Float, getComputeThematicIndex(builder.vert.usesInstancedGeometry, false, false));\r\n builder.vert.addUniform(\"u_worldToViewN\", VariableType.Mat3, (prog) => {\r\n prog.addGraphicUniform(\"u_worldToViewN\", (uniform, params) => {\r\n params.target.uniforms.branch.bindWorldToViewNTransform(uniform, params.geometry, false);\r\n });\r\n });\r\n builder.frag.addUniform(\"s_texture\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"s_texture\", (uniform, params) => {\r\n params.target.uniforms.thematic.bindTexture(uniform, gradientTextureUnit >= 0 ? gradientTextureUnit : (params.target.drawForReadPixels ? TextureUnit.ShadowMap : TextureUnit.PickDepthAndOrder));\r\n });\r\n });\r\n}\r\n\r\nfunction addColorOverrideMix(frag: FragmentShaderBuilder) {\r\n frag.addUniform(\"u_overrideColorMix\", VariableType.Float, (prog) => {\r\n prog.addGraphicUniform(\"u_overrideColorMix\", (uniform, params) => {\r\n uniform.setUniform1f(params.geometry.asRealityMesh!.overrideColorMix);\r\n });\r\n });\r\n\r\n}\r\n\r\nfunction createRealityMeshHiliterBuilder(): ProgramBuilder {\r\n const builder = new ProgramBuilder(AttributeMap.findAttributeMap(TechniqueId.RealityMesh, false));\r\n const vert = builder.vert;\r\n vert.set(VertexShaderComponent.ComputePosition, computePosition);\r\n addModelViewProjectionMatrix(vert);\r\n builder.frag.set(FragmentShaderComponent.AssignFragData, assignFragColor);\r\n return builder;\r\n\r\n}\r\n\r\n/** @internal */\r\nexport function createClassifierRealityMeshHiliter(): ProgramBuilder {\r\n const builder = createRealityMeshHiliterBuilder();\r\n addHilitePlanarClassifier(builder, false);\r\n return builder;\r\n}\r\n\r\n/** @internal */\r\nexport function createRealityMeshHiliter(): ProgramBuilder {\r\n const builder = createRealityMeshHiliterBuilder();\r\n addHiliter(builder, false);\r\n return builder;\r\n}\r\n\r\n/** @internal */\r\nexport default function createRealityMeshBuilder(flags: TechniqueFlags): ProgramBuilder {\r\n const builder = new ProgramBuilder(AttributeMap.findAttributeMap(TechniqueId.RealityMesh, false));\r\n const vert = builder.vert;\r\n vert.set(VertexShaderComponent.ComputePosition, computePosition);\r\n addModelViewProjectionMatrix(vert);\r\n\r\n if (flags.isShadowable === IsShadowable.Yes)\r\n addSolarShadowMap(builder, true);\r\n\r\n const frag = builder.frag;\r\n frag.addGlobal(\"featureIncrement\", VariableType.Float, \"0.0\");\r\n frag.addGlobal(\"classifierId\", VariableType.Vec4);\r\n frag.set(FragmentShaderComponent.OverrideFeatureId, overrideFeatureId);\r\n let textureCount = System.instance.maxRealityImageryLayers;\r\n let gradientTextureUnit = TextureUnit.RealityMeshThematicGradient;\r\n const caps = System.instance.capabilities;\r\n if (Math.min(caps.maxFragTextureUnits, caps.maxVertTextureUnits) < 16 && IsThematic.Yes === flags.isThematic) {\r\n textureCount--; // steal the last bg map layer texture for thematic gradient (just when thematic display is applied)\r\n gradientTextureUnit = -1; // is dependent on drawing mode so will set later\r\n }\r\n\r\n const feat = flags.featureMode;\r\n let opts = FeatureMode.Overrides === feat ? FeatureSymbologyOptions.Surface : FeatureSymbologyOptions.None;\r\n let applyFragmentFeatureColor = \"\";\r\n\r\n if (flags.isClassified) {\r\n opts &= ~FeatureSymbologyOptions.Alpha;\r\n addColorPlanarClassifier(builder, flags.isTranslucent, flags.isThematic);\r\n addClassificationTranslucencyDiscard(builder);\r\n }\r\n\r\n addFeatureSymbology(builder, feat, opts);\r\n if (feat === FeatureMode.Overrides) {\r\n addShaderFlags(builder);\r\n addVaryingColor(builder, \"return vec4(-1.0, -1.0, -1.0, -1.0);\");\r\n applyFragmentFeatureColor = mixFeatureColor;\r\n addColorOverrideMix(builder.frag);\r\n }\r\n const computeFragmentBaseColor = baseColorFromTextures(textureCount, applyFragmentFeatureColor);\r\n\r\n frag.addFunction(addUInt32s);\r\n frag.addFunction(testInside);\r\n addEyeSpace(builder);\r\n frag.addFunction(applyTexture);\r\n frag.set(FragmentShaderComponent.ComputeBaseColor, computeFragmentBaseColor);\r\n builder.frag.addUniform(\"u_baseColor\", VariableType.Vec4, (prog) => {\r\n prog.addGraphicUniform(\"u_baseColor\", (uniform, params) => {\r\n const realityMesh = params.geometry.asRealityMesh!;\r\n const baseColor = (realityMesh.baseColor ? realityMesh.baseColor : ColorDef.create(0xff000000)).colors;\r\n uniform.setUniform4fv([baseColor.r / 255, baseColor.g / 255, baseColor.b / 255, 1 - baseColor.t / 255]);\r\n });\r\n });\r\n builder.frag.set(FragmentShaderComponent.ComputeBaseColor, computeFragmentBaseColor);\r\n if (!flags.isTranslucent) {\r\n if (FeatureMode.None !== feat) {\r\n if (flags.isClassified)\r\n addFeaturePlanarClassifier(builder);\r\n\r\n builder.frag.addFunction(decodeDepthRgb);\r\n if (flags.isClassified)\r\n addPickBufferOutputs(builder.frag);\r\n else\r\n addAltPickBufferOutputs(builder.frag);\r\n }\r\n }\r\n\r\n addTextures(builder, textureCount);\r\n\r\n if (IsThematic.Yes === flags.isThematic)\r\n addThematicToRealityMesh(builder, gradientTextureUnit);\r\n\r\n if (flags.isWiremesh)\r\n addWiremesh(builder);\r\n\r\n return builder;\r\n}\r\n\r\n"]}
@@ -1,13 +1,15 @@
1
- import { SpatialClassifier, SpatialClassifiers } from "@itwin/core-common";
1
+ import { SpatialClassifier, SpatialClassifiers, ViewFlagsProperties } from "@itwin/core-common";
2
2
  import { DisplayStyleState } from "../DisplayStyleState";
3
3
  import { IModelConnection } from "../IModelConnection";
4
4
  import { ViewState } from "../ViewState";
5
5
  import { TileTreeReference } from "./internal";
6
6
  /** @internal */
7
7
  export declare abstract class SpatialClassifierTileTreeReference extends TileTreeReference {
8
- abstract get classifiers(): SpatialClassifiers;
9
8
  abstract get isPlanar(): boolean;
10
9
  abstract get activeClassifier(): SpatialClassifier | undefined;
10
+ get isOpaque(): boolean; /** When referenced as a map layer reference, BIM models are never opaque. */
11
+ abstract get viewFlags(): Partial<ViewFlagsProperties>;
12
+ get transparency(): number | undefined;
11
13
  }
12
14
  /** @internal */
13
15
  export declare function createClassifierTileTreeReference(classifiers: SpatialClassifiers, classifiedTree: TileTreeReference, iModel: IModelConnection, source: ViewState | DisplayStyleState): SpatialClassifierTileTreeReference;
@@ -1 +1 @@
1
- {"version":3,"file":"ClassifierTileTree.d.ts","sourceRoot":"","sources":["../../../src/tile/ClassifierTileTree.ts"],"names":[],"mappings":"AAQA,OAAO,EAAuF,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAChK,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAC4G,iBAAiB,EACnI,MAAM,YAAY,CAAC;AAkEpB,gBAAgB;AAChB,8BAAsB,kCAAmC,SAAQ,iBAAiB;IAChF,aAAoB,WAAW,IAAI,kBAAkB,CAAC;IACtD,aAAoB,QAAQ,IAAI,OAAO,CAAC;IACxC,aAAoB,gBAAgB,IAAI,iBAAiB,GAAG,SAAS,CAAC;CACvE;AAuFD,gBAAgB;AAChB,wBAAgB,iCAAiC,CAAC,WAAW,EAAE,kBAAkB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,GAAG,iBAAiB,GAAG,kCAAkC,CAEzN"}
1
+ {"version":3,"file":"ClassifierTileTree.d.ts","sourceRoot":"","sources":["../../../src/tile/ClassifierTileTree.ts"],"names":[],"mappings":"AAQA,OAAO,EAAmG,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACjM,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAC4G,iBAAiB,EACnI,MAAM,YAAY,CAAC;AAkEpB,gBAAgB;AAChB,8BAAsB,kCAAmC,SAAQ,iBAAiB;IAChF,aAAoB,QAAQ,IAAI,OAAO,CAAC;IACxC,aAAoB,gBAAgB,IAAI,iBAAiB,GAAG,SAAS,CAAC;IACtE,IAAW,QAAQ,YAAoB,CAAG,6EAA6E;IACvH,aAAoB,SAAS,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9D,IAAW,YAAY,IAAI,MAAM,GAAG,SAAS,CAAsB;CACpE;AAuFD,gBAAgB;AAChB,wBAAgB,iCAAiC,CAAC,WAAW,EAAE,kBAAkB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,GAAG,iBAAiB,GAAG,kCAAkC,CAEzN"}
@@ -65,13 +65,15 @@ class ClassifierTreeSupplier {
65
65
  const classifierTreeSupplier = new ClassifierTreeSupplier();
66
66
  /** @internal */
67
67
  class SpatialClassifierTileTreeReference extends internal_1.TileTreeReference {
68
+ get isOpaque() { return false; } /** When referenced as a map layer reference, BIM models are never opaque. */
69
+ get transparency() { return undefined; }
68
70
  }
69
71
  exports.SpatialClassifierTileTreeReference = SpatialClassifierTileTreeReference;
70
72
  /** @internal */
71
73
  class ClassifierTreeReference extends SpatialClassifierTileTreeReference {
72
74
  constructor(classifiers, classifiedTree, iModel, source) {
73
75
  super();
74
- this._id = this.createId(classifiers, source);
76
+ this._id = createClassifierId(classifiers.active, source);
75
77
  this._source = source;
76
78
  this._iModel = iModel;
77
79
  this._classifiers = classifiers;
@@ -84,7 +86,7 @@ class ClassifierTreeReference extends SpatialClassifierTileTreeReference {
84
86
  return false;
85
87
  }
86
88
  get treeOwner() {
87
- const newId = this.createId(this._classifiers, this._source);
89
+ const newId = createClassifierId(this._classifiers.active, this._source);
88
90
  if (0 !== compareIds(this._id, newId)) {
89
91
  this._id = newId;
90
92
  this._owner = classifierTreeSupplier.getOwner(this._id, this._iModel);
@@ -100,6 +102,20 @@ class ClassifierTreeReference extends SpatialClassifierTileTreeReference {
100
102
  trees.add(classifierTree);
101
103
  }
102
104
  get isPlanar() { return core_common_1.BatchType.PlanarClassifier === this._id.type; }
105
+ get viewFlags() {
106
+ return {
107
+ renderMode: core_common_1.RenderMode.SmoothShade,
108
+ transparency: true,
109
+ textures: false,
110
+ lighting: false,
111
+ shadows: false,
112
+ monochrome: false,
113
+ materials: false,
114
+ ambientOcclusion: false,
115
+ visibleEdges: false,
116
+ hiddenEdges: false,
117
+ };
118
+ }
103
119
  // Add volume classifiers to scene (planar classifiers are added seperately.)
104
120
  addToScene(context) {
105
121
  if (this.isPlanar)
@@ -116,24 +132,23 @@ class ClassifierTreeReference extends SpatialClassifierTileTreeReference {
116
132
  context.setVolumeClassifier(classifier, classifiedTree.modelId);
117
133
  super.addToScene(context);
118
134
  }
119
- createId(classifiers, source) {
120
- const active = classifiers.active;
121
- if (undefined === active)
122
- return { modelId: core_bentley_1.Id64.invalid, type: core_common_1.BatchType.PlanarClassifier, expansion: 0, animationId: undefined };
123
- const type = active.flags.isVolumeClassifier ? core_common_1.BatchType.VolumeClassifier : core_common_1.BatchType.PlanarClassifier;
124
- const script = source.scheduleState;
125
- const animationId = (undefined !== script) ? script.getModelAnimationId(active.modelId) : undefined;
126
- return {
127
- modelId: active.modelId,
128
- type,
129
- expansion: active.expand,
130
- animationId,
131
- };
132
- }
133
135
  }
134
136
  /** @internal */
135
137
  function createClassifierTileTreeReference(classifiers, classifiedTree, iModel, source) {
136
138
  return new ClassifierTreeReference(classifiers, classifiedTree, iModel, source);
137
139
  }
138
140
  exports.createClassifierTileTreeReference = createClassifierTileTreeReference;
141
+ function createClassifierId(classifier, source) {
142
+ if (undefined === classifier)
143
+ return { modelId: core_bentley_1.Id64.invalid, type: core_common_1.BatchType.PlanarClassifier, expansion: 0, animationId: undefined };
144
+ const type = classifier.flags.isVolumeClassifier ? core_common_1.BatchType.VolumeClassifier : core_common_1.BatchType.PlanarClassifier;
145
+ const script = source === null || source === void 0 ? void 0 : source.scheduleState;
146
+ const animationId = (undefined !== script) ? script.getModelAnimationId(classifier.modelId) : undefined;
147
+ return {
148
+ modelId: classifier.modelId,
149
+ type,
150
+ expansion: classifier.expand,
151
+ animationId,
152
+ };
153
+ }
139
154
  //# sourceMappingURL=ClassifierTileTree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClassifierTileTree.js","sourceRoot":"","sources":["../../../src/tile/ClassifierTileTree.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\nimport { compareStrings, compareStringsOrUndefined, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { BatchType, ClassifierTileTreeId, compareIModelTileTreeIds, iModelTileTreeIdToString, SpatialClassifier, SpatialClassifiers } from \"@itwin/core-common\";\r\nimport { DisplayStyleState } from \"../DisplayStyleState\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { GeometricModelState } from \"../ModelState\";\r\nimport { SceneContext } from \"../ViewContext\";\r\nimport { ViewState } from \"../ViewState\";\r\nimport {\r\n DisclosedTileTreeSet, IModelTileTree, iModelTileTreeParamsFromJSON, TileTree, TileTreeLoadStatus, TileTreeOwner, TileTreeReference, TileTreeSupplier,\r\n} from \"./internal\";\r\n\r\ninterface ClassifierTreeId extends ClassifierTileTreeId {\r\n modelId: Id64String;\r\n}\r\n\r\nfunction compareIds(lhs: ClassifierTreeId, rhs: ClassifierTreeId): number {\r\n let cmp = compareStrings(lhs.modelId, rhs.modelId);\r\n if (0 === cmp)\r\n cmp = compareStringsOrUndefined(lhs.animationId, rhs.animationId);\r\n\r\n return 0 === cmp ? compareIModelTileTreeIds(lhs, rhs) : cmp;\r\n}\r\n\r\nclass ClassifierTreeSupplier implements TileTreeSupplier {\r\n private readonly _nonexistentTreeOwner = {\r\n tileTree: undefined,\r\n loadStatus: TileTreeLoadStatus.NotFound,\r\n load: () => undefined,\r\n dispose: () => undefined,\r\n loadTree: async () => undefined,\r\n iModel: undefined as unknown as IModelConnection,\r\n };\r\n\r\n public compareTileTreeIds(lhs: ClassifierTreeId, rhs: ClassifierTreeId): number {\r\n return compareIds(lhs, rhs);\r\n }\r\n\r\n public async createTileTree(id: ClassifierTreeId, iModel: IModelConnection): Promise<TileTree | undefined> {\r\n await iModel.models.load(id.modelId);\r\n const model = iModel.models.getLoaded(id.modelId);\r\n if (undefined === model || !(model instanceof GeometricModelState))\r\n return undefined;\r\n\r\n const idStr = iModelTileTreeIdToString(id.modelId, id, IModelApp.tileAdmin);\r\n const props = await IModelApp.tileAdmin.requestTileTreeProps(iModel, idStr);\r\n\r\n const options = {\r\n edgesRequired: false,\r\n allowInstancing: false,\r\n is3d: true,\r\n batchType: id.type,\r\n };\r\n\r\n const params = iModelTileTreeParamsFromJSON(props, iModel, id.modelId, options);\r\n return new IModelTileTree(params, id);\r\n }\r\n\r\n public getOwner(id: ClassifierTreeId, iModel: IModelConnection): TileTreeOwner {\r\n return Id64.isValid(id.modelId) ? iModel.tiles.getTileTreeOwner(id, this) : this._nonexistentTreeOwner;\r\n }\r\n\r\n public addModelsAnimatedByScript(modelIds: Set<Id64String>, scriptSourceId: Id64String, trees: Iterable<{ id: ClassifierTreeId, owner: TileTreeOwner }>): void {\r\n for (const tree of trees)\r\n if (tree.id.animationId === scriptSourceId)\r\n modelIds.add(tree.id.modelId);\r\n }\r\n\r\n public addSpatialModels(modelIds: Set<Id64String>, trees: Iterable<{ id: ClassifierTreeId, owner: TileTreeOwner }>): void {\r\n for (const tree of trees)\r\n modelIds.add(tree.id.modelId);\r\n }\r\n}\r\n\r\nconst classifierTreeSupplier = new ClassifierTreeSupplier();\r\n\r\n/** @internal */\r\nexport abstract class SpatialClassifierTileTreeReference extends TileTreeReference {\r\n public abstract get classifiers(): SpatialClassifiers;\r\n public abstract get isPlanar(): boolean;\r\n public abstract get activeClassifier(): SpatialClassifier | undefined;\r\n}\r\n\r\n/** @internal */\r\nclass ClassifierTreeReference extends SpatialClassifierTileTreeReference {\r\n private _id: ClassifierTreeId;\r\n private readonly _classifiers: SpatialClassifiers;\r\n private readonly _source: ViewState | DisplayStyleState;\r\n private readonly _iModel: IModelConnection;\r\n private readonly _classifiedTree: TileTreeReference;\r\n private _owner: TileTreeOwner;\r\n\r\n public constructor(classifiers: SpatialClassifiers, classifiedTree: TileTreeReference, iModel: IModelConnection, source: ViewState | DisplayStyleState) {\r\n super();\r\n this._id = this.createId(classifiers, source);\r\n this._source = source;\r\n this._iModel = iModel;\r\n this._classifiers = classifiers;\r\n this._classifiedTree = classifiedTree;\r\n this._owner = classifierTreeSupplier.getOwner(this._id, iModel);\r\n }\r\n\r\n public get classifiers(): SpatialClassifiers { return this._classifiers; }\r\n public get activeClassifier(): SpatialClassifier | undefined { return this.classifiers.active; }\r\n\r\n public override get castsShadows() {\r\n return false;\r\n }\r\n\r\n public get treeOwner(): TileTreeOwner {\r\n const newId = this.createId(this._classifiers, this._source);\r\n if (0 !== compareIds(this._id, newId)) {\r\n this._id = newId;\r\n this._owner = classifierTreeSupplier.getOwner(this._id, this._iModel);\r\n }\r\n\r\n return this._owner;\r\n }\r\n\r\n public override discloseTileTrees(trees: DisclosedTileTreeSet): void {\r\n // NB: We do NOT call super because we don't use our tree if no classifier is active.\r\n trees.disclose(this._classifiedTree);\r\n\r\n const classifier = this.activeClassifier;\r\n const classifierTree = undefined !== classifier ? this.treeOwner.tileTree : undefined;\r\n if (undefined !== classifierTree)\r\n trees.add(classifierTree);\r\n }\r\n public get isPlanar() { return BatchType.PlanarClassifier === this._id.type; }\r\n\r\n // Add volume classifiers to scene (planar classifiers are added seperately.)\r\n public override addToScene(context: SceneContext): void {\r\n if (this.isPlanar)\r\n return;\r\n\r\n const classifiedTree = this._classifiedTree.treeOwner.load();\r\n if (undefined === classifiedTree)\r\n return;\r\n\r\n const classifier = this._classifiers.active;\r\n if (undefined === classifier)\r\n return;\r\n\r\n const classifierTree = this.treeOwner.load();\r\n if (undefined === classifierTree)\r\n return;\r\n\r\n context.setVolumeClassifier(classifier, classifiedTree.modelId);\r\n super.addToScene(context);\r\n }\r\n\r\n private createId(classifiers: SpatialClassifiers, source: ViewState | DisplayStyleState): ClassifierTreeId {\r\n const active = classifiers.active;\r\n if (undefined === active)\r\n return { modelId: Id64.invalid, type: BatchType.PlanarClassifier, expansion: 0, animationId: undefined };\r\n\r\n const type = active.flags.isVolumeClassifier ? BatchType.VolumeClassifier : BatchType.PlanarClassifier;\r\n const script = source.scheduleState;\r\n const animationId = (undefined !== script) ? script.getModelAnimationId(active.modelId) : undefined;\r\n return {\r\n modelId: active.modelId,\r\n type,\r\n expansion: active.expand,\r\n animationId,\r\n };\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function createClassifierTileTreeReference(classifiers: SpatialClassifiers, classifiedTree: TileTreeReference, iModel: IModelConnection, source: ViewState | DisplayStyleState): SpatialClassifierTileTreeReference {\r\n return new ClassifierTreeReference(classifiers, classifiedTree, iModel, source);\r\n}\r\n"]}
1
+ {"version":3,"file":"ClassifierTileTree.js","sourceRoot":"","sources":["../../../src/tile/ClassifierTileTree.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\nimport { compareStrings, compareStringsOrUndefined, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { BatchType, ClassifierTileTreeId, compareIModelTileTreeIds, iModelTileTreeIdToString, RenderMode, SpatialClassifier, SpatialClassifiers, ViewFlagsProperties } from \"@itwin/core-common\";\r\nimport { DisplayStyleState } from \"../DisplayStyleState\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { GeometricModelState } from \"../ModelState\";\r\nimport { SceneContext } from \"../ViewContext\";\r\nimport { ViewState } from \"../ViewState\";\r\nimport {\r\n DisclosedTileTreeSet, IModelTileTree, iModelTileTreeParamsFromJSON, TileTree, TileTreeLoadStatus, TileTreeOwner, TileTreeReference, TileTreeSupplier,\r\n} from \"./internal\";\r\n\r\ninterface ClassifierTreeId extends ClassifierTileTreeId {\r\n modelId: Id64String;\r\n}\r\n\r\nfunction compareIds(lhs: ClassifierTreeId, rhs: ClassifierTreeId): number {\r\n let cmp = compareStrings(lhs.modelId, rhs.modelId);\r\n if (0 === cmp)\r\n cmp = compareStringsOrUndefined(lhs.animationId, rhs.animationId);\r\n\r\n return 0 === cmp ? compareIModelTileTreeIds(lhs, rhs) : cmp;\r\n}\r\n\r\nclass ClassifierTreeSupplier implements TileTreeSupplier {\r\n private readonly _nonexistentTreeOwner = {\r\n tileTree: undefined,\r\n loadStatus: TileTreeLoadStatus.NotFound,\r\n load: () => undefined,\r\n dispose: () => undefined,\r\n loadTree: async () => undefined,\r\n iModel: undefined as unknown as IModelConnection,\r\n };\r\n\r\n public compareTileTreeIds(lhs: ClassifierTreeId, rhs: ClassifierTreeId): number {\r\n return compareIds(lhs, rhs);\r\n }\r\n\r\n public async createTileTree(id: ClassifierTreeId, iModel: IModelConnection): Promise<TileTree | undefined> {\r\n await iModel.models.load(id.modelId);\r\n const model = iModel.models.getLoaded(id.modelId);\r\n if (undefined === model || !(model instanceof GeometricModelState))\r\n return undefined;\r\n\r\n const idStr = iModelTileTreeIdToString(id.modelId, id, IModelApp.tileAdmin);\r\n const props = await IModelApp.tileAdmin.requestTileTreeProps(iModel, idStr);\r\n\r\n const options = {\r\n edgesRequired: false,\r\n allowInstancing: false,\r\n is3d: true,\r\n batchType: id.type,\r\n };\r\n\r\n const params = iModelTileTreeParamsFromJSON(props, iModel, id.modelId, options);\r\n return new IModelTileTree(params, id);\r\n }\r\n\r\n public getOwner(id: ClassifierTreeId, iModel: IModelConnection): TileTreeOwner {\r\n return Id64.isValid(id.modelId) ? iModel.tiles.getTileTreeOwner(id, this) : this._nonexistentTreeOwner;\r\n }\r\n\r\n public addModelsAnimatedByScript(modelIds: Set<Id64String>, scriptSourceId: Id64String, trees: Iterable<{ id: ClassifierTreeId, owner: TileTreeOwner }>): void {\r\n for (const tree of trees)\r\n if (tree.id.animationId === scriptSourceId)\r\n modelIds.add(tree.id.modelId);\r\n }\r\n\r\n public addSpatialModels(modelIds: Set<Id64String>, trees: Iterable<{ id: ClassifierTreeId, owner: TileTreeOwner }>): void {\r\n for (const tree of trees)\r\n modelIds.add(tree.id.modelId);\r\n }\r\n}\r\n\r\nconst classifierTreeSupplier = new ClassifierTreeSupplier();\r\n\r\n/** @internal */\r\nexport abstract class SpatialClassifierTileTreeReference extends TileTreeReference {\r\n public abstract get isPlanar(): boolean;\r\n public abstract get activeClassifier(): SpatialClassifier | undefined;\r\n public get isOpaque() { return false; } /** When referenced as a map layer reference, BIM models are never opaque. */\r\n public abstract get viewFlags(): Partial<ViewFlagsProperties>;\r\n public get transparency(): number | undefined { return undefined; }\r\n}\r\n\r\n/** @internal */\r\nclass ClassifierTreeReference extends SpatialClassifierTileTreeReference {\r\n private _id: ClassifierTreeId;\r\n private readonly _classifiers: SpatialClassifiers;\r\n private readonly _source: ViewState | DisplayStyleState;\r\n private readonly _iModel: IModelConnection;\r\n private readonly _classifiedTree: TileTreeReference;\r\n private _owner: TileTreeOwner;\r\n\r\n public constructor(classifiers: SpatialClassifiers, classifiedTree: TileTreeReference, iModel: IModelConnection, source: ViewState | DisplayStyleState) {\r\n super();\r\n this._id = createClassifierId(classifiers.active, source);\r\n this._source = source;\r\n this._iModel = iModel;\r\n this._classifiers = classifiers;\r\n this._classifiedTree = classifiedTree;\r\n this._owner = classifierTreeSupplier.getOwner(this._id, iModel);\r\n }\r\n\r\n public get classifiers(): SpatialClassifiers { return this._classifiers; }\r\n public get activeClassifier(): SpatialClassifier | undefined { return this.classifiers.active; }\r\n\r\n public override get castsShadows() {\r\n return false;\r\n }\r\n\r\n public get treeOwner(): TileTreeOwner {\r\n const newId = createClassifierId(this._classifiers.active, this._source);\r\n if (0 !== compareIds(this._id, newId)) {\r\n this._id = newId;\r\n this._owner = classifierTreeSupplier.getOwner(this._id, this._iModel);\r\n }\r\n\r\n return this._owner;\r\n }\r\n\r\n public override discloseTileTrees(trees: DisclosedTileTreeSet): void {\r\n // NB: We do NOT call super because we don't use our tree if no classifier is active.\r\n trees.disclose(this._classifiedTree);\r\n\r\n const classifier = this.activeClassifier;\r\n const classifierTree = undefined !== classifier ? this.treeOwner.tileTree : undefined;\r\n if (undefined !== classifierTree)\r\n trees.add(classifierTree);\r\n }\r\n public get isPlanar() { return BatchType.PlanarClassifier === this._id.type; }\r\n\r\n public get viewFlags(): Partial<ViewFlagsProperties> {\r\n return {\r\n renderMode: RenderMode.SmoothShade,\r\n transparency: true, // Igored for point clouds as they don't support transparency.\r\n textures: false,\r\n lighting: false,\r\n shadows: false,\r\n monochrome: false,\r\n materials: false,\r\n ambientOcclusion: false,\r\n visibleEdges: false,\r\n hiddenEdges: false,\r\n };\r\n }\r\n\r\n // Add volume classifiers to scene (planar classifiers are added seperately.)\r\n public override addToScene(context: SceneContext): void {\r\n if (this.isPlanar)\r\n return;\r\n\r\n const classifiedTree = this._classifiedTree.treeOwner.load();\r\n if (undefined === classifiedTree)\r\n return;\r\n\r\n const classifier = this._classifiers.active;\r\n if (undefined === classifier)\r\n return;\r\n\r\n const classifierTree = this.treeOwner.load();\r\n if (undefined === classifierTree)\r\n return;\r\n\r\n context.setVolumeClassifier(classifier, classifiedTree.modelId);\r\n super.addToScene(context);\r\n }\r\n\r\n}\r\n\r\n/** @internal */\r\nexport function createClassifierTileTreeReference(classifiers: SpatialClassifiers, classifiedTree: TileTreeReference, iModel: IModelConnection, source: ViewState | DisplayStyleState): SpatialClassifierTileTreeReference {\r\n return new ClassifierTreeReference(classifiers, classifiedTree, iModel, source);\r\n}\r\n\r\nfunction createClassifierId(classifier: SpatialClassifier | undefined, source: ViewState | DisplayStyleState | undefined): ClassifierTreeId {\r\n if (undefined === classifier)\r\n return { modelId: Id64.invalid, type: BatchType.PlanarClassifier, expansion: 0, animationId: undefined };\r\n\r\n const type = classifier.flags.isVolumeClassifier ? BatchType.VolumeClassifier : BatchType.PlanarClassifier;\r\n const script = source?.scheduleState;\r\n const animationId = (undefined !== script) ? script.getModelAnimationId(classifier.modelId) : undefined;\r\n return {\r\n modelId: classifier.modelId,\r\n type,\r\n expansion: classifier.expand,\r\n animationId,\r\n };\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicIModelTile.d.ts","sourceRoot":"","sources":["../../../src/tile/DynamicIModelTile.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EACG,WAAW,EAA8C,SAAS,EAC3E,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACM,qBAAqB,EAAkD,yBAAyB,EAC5G,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EACuB,cAAc,EAAE,IAAI,EAAe,YAAY,EAAE,UAAU,EAAmC,QAAQ,EACnI,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,8BAAsB,iBAAkB,SAAQ,IAAI;IAClD,SAAS,aAAa,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ;WAI1C,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,iBAAiB;IAIxG,6EAA6E;aAC7D,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,IAAI;IAErF,+GAA+G;IAC/G,aAAoB,kBAAkB,IAAI,yBAAyB,CAAC;IAEpE,kCAAkC;IAClC,aAAoB,cAAc,IAAI,SAAS,CAAC;IAEhD,2EAA2E;aAC3D,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI;IAEvE,4EAA4E;aAC5D,aAAa,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;CAC5D"}
1
+ {"version":3,"file":"DynamicIModelTile.d.ts","sourceRoot":"","sources":["../../../src/tile/DynamicIModelTile.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EACG,WAAW,EAA8C,SAAS,EAC3E,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACM,qBAAqB,EAAkD,yBAAyB,EAC5G,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACuB,cAAc,EAAE,IAAI,EAAe,YAAY,EAAE,UAAU,EAAmC,QAAQ,EACnI,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,8BAAsB,iBAAkB,SAAQ,IAAI;IAClD,SAAS,aAAa,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ;WAI1C,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,iBAAiB;IAIxG,6EAA6E;aAC7D,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,IAAI;IAErF,+GAA+G;IAC/G,aAAoB,kBAAkB,IAAI,yBAAyB,CAAC;IAEpE,kCAAkC;IAClC,aAAoB,cAAc,IAAI,SAAS,CAAC;IAEhD,2EAA2E;aAC3D,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI;IAEvE,4EAA4E;aAC5D,aAAa,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;CAC5D"}
@@ -250,7 +250,7 @@ class GraphicsTile extends internal_1.Tile {
250
250
  this.toleranceLog10 = toleranceLog10;
251
251
  this.tolerance = 10 ** toleranceLog10;
252
252
  }
253
- computeLoadPriority(_viewports) {
253
+ computeLoadPriority() {
254
254
  // We want the element's graphics to be updated as soon as possible
255
255
  return 0;
256
256
  }