@itwin/core-frontend 5.0.0-dev.57 → 5.0.0-dev.59

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 (1217) hide show
  1. package/lib/cjs/DrawingViewState.js +1 -1
  2. package/lib/cjs/DrawingViewState.js.map +1 -1
  3. package/lib/cjs/EnvironmentDecorations.d.ts +1 -1
  4. package/lib/cjs/EnvironmentDecorations.d.ts.map +1 -1
  5. package/lib/cjs/EnvironmentDecorations.js +1 -2
  6. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  7. package/lib/cjs/NoRenderApp.d.ts +1 -1
  8. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  9. package/lib/cjs/NoRenderApp.js.map +1 -1
  10. package/lib/cjs/SheetViewState.js +1 -1
  11. package/lib/cjs/SheetViewState.js.map +1 -1
  12. package/lib/cjs/ViewContext.d.ts +3 -2
  13. package/lib/cjs/ViewContext.d.ts.map +1 -1
  14. package/lib/cjs/ViewContext.js.map +1 -1
  15. package/lib/cjs/Viewport.d.ts +17 -2
  16. package/lib/cjs/Viewport.d.ts.map +1 -1
  17. package/lib/cjs/Viewport.js +13 -11
  18. package/lib/cjs/Viewport.js.map +1 -1
  19. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  20. package/lib/cjs/common/imdl/ParseImdlDocument.js +2 -5
  21. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
  22. package/lib/cjs/core-frontend.d.ts +1 -5
  23. package/lib/cjs/core-frontend.d.ts.map +1 -1
  24. package/lib/cjs/core-frontend.js +55 -5
  25. package/lib/cjs/core-frontend.js.map +1 -1
  26. package/lib/cjs/internal/cross-package.d.ts +4 -0
  27. package/lib/cjs/internal/cross-package.d.ts.map +1 -1
  28. package/lib/cjs/internal/cross-package.js +27 -1
  29. package/lib/cjs/internal/cross-package.js.map +1 -1
  30. package/lib/cjs/internal/render/AnimationBranchState.d.ts +24 -0
  31. package/lib/cjs/internal/render/AnimationBranchState.d.ts.map +1 -0
  32. package/lib/cjs/internal/render/AnimationBranchState.js +47 -0
  33. package/lib/cjs/internal/render/AnimationBranchState.js.map +1 -0
  34. package/lib/cjs/internal/render/FrameStatsCollector.d.ts +24 -0
  35. package/lib/cjs/internal/render/FrameStatsCollector.d.ts.map +1 -0
  36. package/lib/cjs/internal/render/FrameStatsCollector.js +87 -0
  37. package/lib/cjs/internal/render/FrameStatsCollector.js.map +1 -0
  38. package/lib/cjs/internal/render/GraphicBranchFrustum.d.ts +12 -0
  39. package/lib/cjs/internal/render/GraphicBranchFrustum.d.ts.map +1 -0
  40. package/lib/cjs/internal/render/GraphicBranchFrustum.js +10 -0
  41. package/lib/cjs/internal/render/GraphicBranchFrustum.js.map +1 -0
  42. package/lib/cjs/internal/render/GraphicTemplateImpl.d.ts +47 -0
  43. package/lib/cjs/internal/render/GraphicTemplateImpl.d.ts.map +1 -0
  44. package/lib/cjs/internal/render/GraphicTemplateImpl.js +40 -0
  45. package/lib/cjs/internal/render/GraphicTemplateImpl.js.map +1 -0
  46. package/lib/cjs/internal/render/MockRender.d.ts +160 -0
  47. package/lib/cjs/internal/render/MockRender.d.ts.map +1 -0
  48. package/lib/cjs/internal/render/MockRender.js +211 -0
  49. package/lib/cjs/internal/render/MockRender.js.map +1 -0
  50. package/lib/cjs/internal/render/PrimitiveBuilder.d.ts +0 -1
  51. package/lib/cjs/internal/render/PrimitiveBuilder.d.ts.map +1 -1
  52. package/lib/cjs/internal/render/PrimitiveBuilder.js +3 -4
  53. package/lib/cjs/internal/render/PrimitiveBuilder.js.map +1 -1
  54. package/lib/cjs/internal/render/QueryVisibileFeatures.d.ts +8 -0
  55. package/lib/cjs/internal/render/QueryVisibileFeatures.d.ts.map +1 -0
  56. package/lib/cjs/internal/render/QueryVisibileFeatures.js +145 -0
  57. package/lib/cjs/internal/render/QueryVisibileFeatures.js.map +1 -0
  58. package/lib/cjs/internal/render/RealityMeshGraphicParams.d.ts +21 -0
  59. package/lib/cjs/internal/render/RealityMeshGraphicParams.d.ts.map +1 -0
  60. package/lib/cjs/internal/render/RealityMeshGraphicParams.js.map +1 -0
  61. package/lib/cjs/internal/render/RenderAreaPattern.d.ts +12 -0
  62. package/lib/cjs/internal/render/RenderAreaPattern.d.ts.map +1 -0
  63. package/lib/cjs/internal/render/RenderAreaPattern.js +11 -0
  64. package/lib/cjs/internal/render/RenderAreaPattern.js.map +1 -0
  65. package/lib/cjs/internal/render/RenderMaterialSource.d.ts +13 -0
  66. package/lib/cjs/internal/render/RenderMaterialSource.d.ts.map +1 -0
  67. package/lib/cjs/internal/render/RenderMaterialSource.js +10 -0
  68. package/lib/cjs/internal/render/RenderMaterialSource.js.map +1 -0
  69. package/lib/cjs/internal/render/RenderPlan.d.ts +47 -0
  70. package/lib/cjs/internal/render/RenderPlan.d.ts.map +1 -0
  71. package/lib/cjs/internal/render/RenderPlan.js +135 -0
  72. package/lib/cjs/internal/render/RenderPlan.js.map +1 -0
  73. package/lib/cjs/internal/render/RenderPlanarClassifier.d.ts +26 -0
  74. package/lib/cjs/internal/render/RenderPlanarClassifier.d.ts.map +1 -0
  75. package/lib/cjs/internal/render/RenderPlanarClassifier.js.map +1 -0
  76. package/lib/cjs/internal/render/RenderSkyBoxParams.d.ts +21 -0
  77. package/lib/cjs/internal/render/RenderSkyBoxParams.d.ts.map +1 -0
  78. package/lib/cjs/internal/render/RenderSkyBoxParams.js +10 -0
  79. package/lib/cjs/internal/render/RenderSkyBoxParams.js.map +1 -0
  80. package/lib/cjs/internal/render/RenderSystemDebugControl.d.ts +58 -0
  81. package/lib/cjs/internal/render/RenderSystemDebugControl.d.ts.map +1 -0
  82. package/lib/cjs/internal/render/RenderSystemDebugControl.js +38 -0
  83. package/lib/cjs/internal/render/RenderSystemDebugControl.js.map +1 -0
  84. package/lib/cjs/internal/render/RenderTargetDebugControl.d.ts +45 -0
  85. package/lib/cjs/internal/render/RenderTargetDebugControl.d.ts.map +1 -0
  86. package/lib/cjs/internal/render/RenderTargetDebugControl.js +24 -0
  87. package/lib/cjs/internal/render/RenderTargetDebugControl.js.map +1 -0
  88. package/lib/cjs/internal/render/RenderTerrain.d.ts +24 -0
  89. package/lib/cjs/internal/render/RenderTerrain.d.ts.map +1 -0
  90. package/lib/cjs/internal/render/RenderTerrain.js +38 -0
  91. package/lib/cjs/internal/render/RenderTerrain.js.map +1 -0
  92. package/lib/cjs/internal/render/RenderTextureDrape.d.ts +15 -0
  93. package/lib/cjs/internal/render/RenderTextureDrape.d.ts.map +1 -0
  94. package/lib/cjs/internal/render/RenderTextureDrape.js +15 -0
  95. package/lib/cjs/internal/render/RenderTextureDrape.js.map +1 -0
  96. package/lib/cjs/internal/render/SceneVolumeClassifier.d.ts +11 -0
  97. package/lib/cjs/internal/render/SceneVolumeClassifier.d.ts.map +1 -0
  98. package/lib/cjs/internal/render/SceneVolumeClassifier.js +10 -0
  99. package/lib/cjs/internal/render/SceneVolumeClassifier.js.map +1 -0
  100. package/lib/cjs/internal/render/UpsampleRealityMeshParams.d.ts +11 -0
  101. package/lib/cjs/internal/render/UpsampleRealityMeshParams.d.ts.map +1 -0
  102. package/lib/cjs/internal/render/UpsampleRealityMeshParams.js +204 -0
  103. package/lib/cjs/internal/render/UpsampleRealityMeshParams.js.map +1 -0
  104. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
  105. package/lib/cjs/internal/render/webgl/CachedGeometry.d.ts +1 -1
  106. package/lib/cjs/internal/render/webgl/CachedGeometry.d.ts.map +1 -1
  107. package/lib/cjs/internal/render/webgl/CachedGeometry.js.map +1 -1
  108. package/lib/cjs/internal/render/webgl/GLTimer.d.ts +1 -1
  109. package/lib/cjs/internal/render/webgl/GLTimer.d.ts.map +1 -1
  110. package/lib/cjs/internal/render/webgl/GLTimer.js.map +1 -1
  111. package/lib/cjs/internal/render/webgl/Graphic.d.ts +2 -1
  112. package/lib/cjs/internal/render/webgl/Graphic.d.ts.map +1 -1
  113. package/lib/cjs/internal/render/webgl/Graphic.js.map +1 -1
  114. package/lib/cjs/internal/render/webgl/Material.d.ts +3 -3
  115. package/lib/cjs/internal/render/webgl/Material.d.ts.map +1 -1
  116. package/lib/cjs/internal/render/webgl/Material.js +1 -4
  117. package/lib/cjs/internal/render/webgl/Material.js.map +1 -1
  118. package/lib/cjs/internal/render/webgl/PerformanceMetrics.d.ts +1 -1
  119. package/lib/cjs/internal/render/webgl/PerformanceMetrics.d.ts.map +1 -1
  120. package/lib/cjs/internal/render/webgl/PerformanceMetrics.js.map +1 -1
  121. package/lib/cjs/internal/render/webgl/PlanarClassifier.d.ts +1 -1
  122. package/lib/cjs/internal/render/webgl/PlanarClassifier.d.ts.map +1 -1
  123. package/lib/cjs/internal/render/webgl/PlanarClassifier.js +1 -1
  124. package/lib/cjs/internal/render/webgl/PlanarClassifier.js.map +1 -1
  125. package/lib/cjs/internal/render/webgl/Primitive.js +3 -3
  126. package/lib/cjs/internal/render/webgl/Primitive.js.map +1 -1
  127. package/lib/cjs/internal/render/webgl/RealityMesh.d.ts +4 -3
  128. package/lib/cjs/internal/render/webgl/RealityMesh.d.ts.map +1 -1
  129. package/lib/cjs/internal/render/webgl/RealityMesh.js +3 -3
  130. package/lib/cjs/internal/render/webgl/RealityMesh.js.map +1 -1
  131. package/lib/cjs/internal/render/webgl/RenderCommands.js.map +1 -1
  132. package/lib/cjs/internal/render/webgl/ShaderProgram.js +3 -3
  133. package/lib/cjs/internal/render/webgl/ShaderProgram.js.map +1 -1
  134. package/lib/cjs/internal/render/webgl/StyleUniforms.d.ts +1 -1
  135. package/lib/cjs/internal/render/webgl/StyleUniforms.d.ts.map +1 -1
  136. package/lib/cjs/internal/render/webgl/StyleUniforms.js.map +1 -1
  137. package/lib/cjs/internal/render/webgl/System.d.ts +12 -9
  138. package/lib/cjs/internal/render/webgl/System.d.ts.map +1 -1
  139. package/lib/cjs/internal/render/webgl/System.js +5 -9
  140. package/lib/cjs/internal/render/webgl/System.js.map +1 -1
  141. package/lib/cjs/internal/render/webgl/Target.d.ts +9 -8
  142. package/lib/cjs/internal/render/webgl/Target.d.ts.map +1 -1
  143. package/lib/cjs/internal/render/webgl/Target.js +12 -7
  144. package/lib/cjs/internal/render/webgl/Target.js.map +1 -1
  145. package/lib/cjs/internal/render/webgl/TargetUniforms.d.ts +1 -1
  146. package/lib/cjs/internal/render/webgl/TargetUniforms.d.ts.map +1 -1
  147. package/lib/cjs/internal/render/webgl/TargetUniforms.js.map +1 -1
  148. package/lib/cjs/internal/render/webgl/TextureDrape.d.ts +1 -1
  149. package/lib/cjs/internal/render/webgl/TextureDrape.d.ts.map +1 -1
  150. package/lib/cjs/internal/render/webgl/TextureDrape.js.map +1 -1
  151. package/lib/cjs/internal/tile/B3dmReader.d.ts +30 -0
  152. package/lib/cjs/internal/tile/B3dmReader.d.ts.map +1 -0
  153. package/lib/cjs/internal/tile/B3dmReader.js +173 -0
  154. package/lib/cjs/internal/tile/B3dmReader.js.map +1 -0
  155. package/lib/cjs/internal/tile/BatchedTileIdMap.d.ts +24 -0
  156. package/lib/cjs/internal/tile/BatchedTileIdMap.d.ts.map +1 -0
  157. package/lib/cjs/internal/tile/BatchedTileIdMap.js +55 -0
  158. package/lib/cjs/internal/tile/BatchedTileIdMap.js.map +1 -0
  159. package/lib/cjs/internal/tile/CesiumAssetProvider.d.ts +13 -0
  160. package/lib/cjs/internal/tile/CesiumAssetProvider.d.ts.map +1 -0
  161. package/lib/cjs/internal/tile/CesiumAssetProvider.js +34 -0
  162. package/lib/cjs/internal/tile/CesiumAssetProvider.js.map +1 -0
  163. package/lib/cjs/internal/tile/ClassifierTileTree.d.ts +14 -0
  164. package/lib/cjs/internal/tile/ClassifierTileTree.d.ts.map +1 -0
  165. package/lib/cjs/internal/tile/ClassifierTileTree.js +160 -0
  166. package/lib/cjs/internal/tile/ClassifierTileTree.js.map +1 -0
  167. package/lib/cjs/internal/tile/ContextShareProvider.d.ts +21 -0
  168. package/lib/cjs/internal/tile/ContextShareProvider.d.ts.map +1 -0
  169. package/lib/cjs/internal/tile/ContextShareProvider.js +136 -0
  170. package/lib/cjs/internal/tile/ContextShareProvider.js.map +1 -0
  171. package/lib/cjs/internal/tile/DynamicIModelTile.d.ts +25 -0
  172. package/lib/cjs/internal/tile/DynamicIModelTile.d.ts.map +1 -0
  173. package/lib/cjs/internal/tile/DynamicIModelTile.js +325 -0
  174. package/lib/cjs/internal/tile/DynamicIModelTile.js.map +1 -0
  175. package/lib/cjs/internal/tile/FetchCloudStorage.d.ts +14 -0
  176. package/lib/cjs/internal/tile/FetchCloudStorage.d.ts.map +1 -0
  177. package/lib/cjs/internal/tile/FetchCloudStorage.js +34 -0
  178. package/lib/cjs/internal/tile/FetchCloudStorage.js.map +1 -0
  179. package/lib/cjs/internal/tile/GraphicsCollector.d.ts +24 -0
  180. package/lib/cjs/internal/tile/GraphicsCollector.d.ts.map +1 -0
  181. package/lib/cjs/internal/tile/GraphicsCollector.js +42 -0
  182. package/lib/cjs/internal/tile/GraphicsCollector.js.map +1 -0
  183. package/lib/cjs/internal/tile/I3dmReader.d.ts +28 -0
  184. package/lib/cjs/internal/tile/I3dmReader.d.ts.map +1 -0
  185. package/lib/cjs/internal/tile/I3dmReader.js +159 -0
  186. package/lib/cjs/internal/tile/I3dmReader.js.map +1 -0
  187. package/lib/cjs/internal/tile/IModelTile.d.ts +54 -0
  188. package/lib/cjs/internal/tile/IModelTile.d.ts.map +1 -0
  189. package/lib/cjs/internal/tile/IModelTile.js +273 -0
  190. package/lib/cjs/internal/tile/IModelTile.js.map +1 -0
  191. package/lib/cjs/internal/tile/IModelTileRequestChannels.d.ts +24 -0
  192. package/lib/cjs/internal/tile/IModelTileRequestChannels.d.ts.map +1 -0
  193. package/lib/cjs/internal/tile/IModelTileRequestChannels.js +157 -0
  194. package/lib/cjs/internal/tile/IModelTileRequestChannels.js.map +1 -0
  195. package/lib/cjs/internal/tile/IModelTileTree.d.ts +80 -0
  196. package/lib/cjs/internal/tile/IModelTileTree.d.ts.map +1 -0
  197. package/lib/cjs/internal/tile/IModelTileTree.js +347 -0
  198. package/lib/cjs/internal/tile/IModelTileTree.js.map +1 -0
  199. package/lib/cjs/internal/tile/ImdlDecoder.d.ts +56 -0
  200. package/lib/cjs/internal/tile/ImdlDecoder.d.ts.map +1 -0
  201. package/lib/cjs/internal/tile/ImdlDecoder.js +34 -0
  202. package/lib/cjs/internal/tile/ImdlDecoder.js.map +1 -0
  203. package/lib/cjs/internal/tile/ImdlGraphicsCreator.d.ts +22 -0
  204. package/lib/cjs/internal/tile/ImdlGraphicsCreator.d.ts.map +1 -0
  205. package/lib/cjs/internal/tile/ImdlGraphicsCreator.js +431 -0
  206. package/lib/cjs/internal/tile/ImdlGraphicsCreator.js.map +1 -0
  207. package/lib/cjs/internal/tile/ImdlParser.d.ts +23 -0
  208. package/lib/cjs/internal/tile/ImdlParser.d.ts.map +1 -0
  209. package/lib/cjs/internal/tile/ImdlParser.js +72 -0
  210. package/lib/cjs/internal/tile/ImdlParser.js.map +1 -0
  211. package/lib/cjs/internal/tile/LRUTileList.d.ts +118 -0
  212. package/lib/cjs/internal/tile/LRUTileList.d.ts.map +1 -0
  213. package/lib/cjs/internal/tile/LRUTileList.js +360 -0
  214. package/lib/cjs/internal/tile/LRUTileList.js.map +1 -0
  215. package/lib/cjs/internal/tile/MeshoptCompression.d.ts +21 -0
  216. package/lib/cjs/internal/tile/MeshoptCompression.d.ts.map +1 -0
  217. package/lib/cjs/internal/tile/MeshoptCompression.js +122 -0
  218. package/lib/cjs/internal/tile/MeshoptCompression.js.map +1 -0
  219. package/lib/cjs/internal/tile/OPCFormatInterpreter.d.ts +19 -0
  220. package/lib/cjs/internal/tile/OPCFormatInterpreter.d.ts.map +1 -0
  221. package/lib/cjs/internal/tile/OPCFormatInterpreter.js +95 -0
  222. package/lib/cjs/internal/tile/OPCFormatInterpreter.js.map +1 -0
  223. package/lib/cjs/internal/tile/OrbitGtTileTree.d.ts +63 -0
  224. package/lib/cjs/internal/tile/OrbitGtTileTree.d.ts.map +1 -0
  225. package/lib/cjs/internal/tile/OrbitGtTileTree.js +455 -0
  226. package/lib/cjs/internal/tile/OrbitGtTileTree.js.map +1 -0
  227. package/lib/cjs/internal/tile/PntsReader.d.ts +16 -0
  228. package/lib/cjs/internal/tile/PntsReader.d.ts.map +1 -0
  229. package/lib/cjs/internal/tile/PntsReader.js +230 -0
  230. package/lib/cjs/internal/tile/PntsReader.js.map +1 -0
  231. package/lib/cjs/internal/tile/PrimaryTileTree.d.ts +106 -0
  232. package/lib/cjs/internal/tile/PrimaryTileTree.d.ts.map +1 -0
  233. package/lib/cjs/internal/tile/PrimaryTileTree.js +628 -0
  234. package/lib/cjs/internal/tile/PrimaryTileTree.js.map +1 -0
  235. package/lib/cjs/internal/tile/RealityModelTileTree.d.ts +123 -0
  236. package/lib/cjs/internal/tile/RealityModelTileTree.d.ts.map +1 -0
  237. package/lib/cjs/internal/tile/RealityModelTileTree.js +768 -0
  238. package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -0
  239. package/lib/cjs/internal/tile/RealityTileDrawArgs.d.ts +16 -0
  240. package/lib/cjs/internal/tile/RealityTileDrawArgs.d.ts.map +1 -0
  241. package/lib/cjs/internal/tile/RealityTileDrawArgs.js +27 -0
  242. package/lib/cjs/internal/tile/RealityTileDrawArgs.js.map +1 -0
  243. package/lib/cjs/internal/tile/RealityTileLoader.d.ts +43 -0
  244. package/lib/cjs/internal/tile/RealityTileLoader.d.ts.map +1 -0
  245. package/lib/cjs/internal/tile/RealityTileLoader.js +207 -0
  246. package/lib/cjs/internal/tile/RealityTileLoader.js.map +1 -0
  247. package/lib/cjs/internal/tile/ThreeDTileFormatInterpreter.d.ts +44 -0
  248. package/lib/cjs/internal/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -0
  249. package/lib/cjs/internal/tile/ThreeDTileFormatInterpreter.js +176 -0
  250. package/lib/cjs/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -0
  251. package/lib/cjs/internal/tile/TileUserSet.d.ts +26 -0
  252. package/lib/cjs/internal/tile/TileUserSet.d.ts.map +1 -0
  253. package/lib/cjs/internal/tile/TileUserSet.js +119 -0
  254. package/lib/cjs/internal/tile/TileUserSet.js.map +1 -0
  255. package/lib/cjs/internal/tile/ViewFlagOverrides.d.ts +14 -0
  256. package/lib/cjs/internal/tile/ViewFlagOverrides.d.ts.map +1 -0
  257. package/lib/cjs/internal/tile/ViewFlagOverrides.js +38 -0
  258. package/lib/cjs/internal/tile/ViewFlagOverrides.js.map +1 -0
  259. package/lib/cjs/internal/tile/map/ArcGISTileMap.d.ts +29 -0
  260. package/lib/cjs/internal/tile/map/ArcGISTileMap.d.ts.map +1 -0
  261. package/lib/cjs/internal/tile/map/ArcGISTileMap.js +236 -0
  262. package/lib/cjs/internal/tile/map/ArcGISTileMap.js.map +1 -0
  263. package/lib/cjs/internal/tile/map/ArcGisUtilities.d.ts +122 -0
  264. package/lib/cjs/internal/tile/map/ArcGisUtilities.d.ts.map +1 -0
  265. package/lib/cjs/internal/tile/map/ArcGisUtilities.js +355 -0
  266. package/lib/cjs/internal/tile/map/ArcGisUtilities.js.map +1 -0
  267. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +39 -0
  268. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -0
  269. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js +169 -0
  270. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -0
  271. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +89 -0
  272. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -0
  273. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +341 -0
  274. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -0
  275. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts +14 -0
  276. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts.map +1 -0
  277. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js +58 -0
  278. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -0
  279. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +11 -0
  280. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -0
  281. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +29 -0
  282. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -0
  283. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +26 -0
  284. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -0
  285. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js +199 -0
  286. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -0
  287. package/lib/cjs/internal/tile/map/ImageryProviders/CoordinatesUtils.d.ts.map +1 -0
  288. package/lib/cjs/internal/tile/map/ImageryProviders/CoordinatesUtils.js.map +1 -0
  289. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.d.ts.map +1 -0
  290. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +1 -0
  291. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.d.ts +47 -0
  292. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.d.ts.map +1 -0
  293. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +1 -0
  294. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts +40 -0
  295. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts.map +1 -0
  296. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js +120 -0
  297. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -0
  298. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.d.ts +15 -0
  299. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.d.ts.map +1 -0
  300. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +1 -0
  301. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +21 -0
  302. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -0
  303. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +51 -0
  304. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -0
  305. package/lib/cjs/internal/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +13 -0
  306. package/lib/cjs/internal/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +1 -0
  307. package/lib/cjs/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js +30 -0
  308. package/lib/cjs/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -0
  309. package/lib/cjs/internal/tile/map/ImageryProviders/WebMercator.d.ts.map +1 -0
  310. package/lib/cjs/internal/tile/map/ImageryProviders/WebMercator.js.map +1 -0
  311. package/lib/cjs/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +25 -0
  312. package/lib/cjs/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -0
  313. package/lib/cjs/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +177 -0
  314. package/lib/cjs/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -0
  315. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +21 -0
  316. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -0
  317. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +159 -0
  318. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -0
  319. package/lib/cjs/internal/tile/map/MapTileAvailability.d.ts +60 -0
  320. package/lib/cjs/internal/tile/map/MapTileAvailability.d.ts.map +1 -0
  321. package/lib/cjs/internal/tile/map/MapTileAvailability.js +225 -0
  322. package/lib/cjs/internal/tile/map/MapTileAvailability.js.map +1 -0
  323. package/lib/cjs/internal/tile/map/MapTileLoader.d.ts +37 -0
  324. package/lib/cjs/internal/tile/map/MapTileLoader.d.ts.map +1 -0
  325. package/lib/cjs/internal/tile/map/MapTileLoader.js +87 -0
  326. package/lib/cjs/internal/tile/map/MapTileLoader.js.map +1 -0
  327. package/lib/cjs/internal/tile/map/UrlUtils.d.ts.map +1 -0
  328. package/lib/cjs/internal/tile/map/UrlUtils.js.map +1 -0
  329. package/lib/cjs/internal/tile/map/WmsCapabilities.d.ts +61 -0
  330. package/lib/cjs/internal/tile/map/WmsCapabilities.d.ts.map +1 -0
  331. package/lib/cjs/internal/tile/map/WmsCapabilities.js +226 -0
  332. package/lib/cjs/internal/tile/map/WmsCapabilities.js.map +1 -0
  333. package/lib/cjs/internal/tile/map/WmsUtilities.d.ts +14 -0
  334. package/lib/cjs/internal/tile/map/WmsUtilities.d.ts.map +1 -0
  335. package/lib/cjs/internal/tile/map/WmsUtilities.js +40 -0
  336. package/lib/cjs/internal/tile/map/WmsUtilities.js.map +1 -0
  337. package/lib/cjs/internal/tile/map/WmtsCapabilities.d.ts +121 -0
  338. package/lib/cjs/internal/tile/map/WmtsCapabilities.d.ts.map +1 -0
  339. package/lib/cjs/internal/tile/map/WmtsCapabilities.js +486 -0
  340. package/lib/cjs/internal/tile/map/WmtsCapabilities.js.map +1 -0
  341. package/lib/cjs/render/CreateRenderMaterialArgs.d.ts +1 -10
  342. package/lib/cjs/render/CreateRenderMaterialArgs.d.ts.map +1 -1
  343. package/lib/cjs/render/CreateRenderMaterialArgs.js.map +1 -1
  344. package/lib/cjs/render/FrameStats.d.ts +0 -21
  345. package/lib/cjs/render/FrameStats.d.ts.map +1 -1
  346. package/lib/cjs/render/FrameStats.js +0 -78
  347. package/lib/cjs/render/FrameStats.js.map +1 -1
  348. package/lib/cjs/render/GraphicBranch.d.ts +4 -35
  349. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  350. package/lib/cjs/render/GraphicBranch.js +1 -38
  351. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  352. package/lib/cjs/render/GraphicTemplate.d.ts +1 -42
  353. package/lib/cjs/render/GraphicTemplate.d.ts.map +1 -1
  354. package/lib/cjs/render/GraphicTemplate.js +0 -29
  355. package/lib/cjs/render/GraphicTemplate.js.map +1 -1
  356. package/lib/cjs/render/RenderSystem.d.ts +15 -142
  357. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  358. package/lib/cjs/render/RenderSystem.js +2 -69
  359. package/lib/cjs/render/RenderSystem.js.map +1 -1
  360. package/lib/cjs/render/RenderTarget.d.ts +9 -47
  361. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  362. package/lib/cjs/render/RenderTarget.js +2 -15
  363. package/lib/cjs/render/RenderTarget.js.map +1 -1
  364. package/lib/cjs/render/Scene.d.ts +3 -11
  365. package/lib/cjs/render/Scene.d.ts.map +1 -1
  366. package/lib/cjs/render/Scene.js.map +1 -1
  367. package/lib/cjs/render/VisibleFeature.d.ts +0 -5
  368. package/lib/cjs/render/VisibleFeature.d.ts.map +1 -1
  369. package/lib/cjs/render/VisibleFeature.js +0 -137
  370. package/lib/cjs/render/VisibleFeature.js.map +1 -1
  371. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  372. package/lib/cjs/tile/GltfReader.js +2 -2
  373. package/lib/cjs/tile/GltfReader.js.map +1 -1
  374. package/lib/cjs/tile/TileDrawArgs.d.ts +2 -2
  375. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  376. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  377. package/lib/cjs/tile/internal.d.ts +50 -50
  378. package/lib/cjs/tile/internal.d.ts.map +1 -1
  379. package/lib/cjs/tile/internal.js +50 -50
  380. package/lib/cjs/tile/internal.js.map +1 -1
  381. package/lib/cjs/tile/map/MapTile.d.ts +2 -1
  382. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  383. package/lib/cjs/tile/map/MapTile.js +3 -3
  384. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  385. package/lib/cjs/tile/map/MapTileTree.d.ts +1 -1
  386. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  387. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  388. package/lib/esm/DrawingViewState.js +1 -1
  389. package/lib/esm/DrawingViewState.js.map +1 -1
  390. package/lib/esm/EnvironmentDecorations.d.ts +1 -1
  391. package/lib/esm/EnvironmentDecorations.d.ts.map +1 -1
  392. package/lib/esm/EnvironmentDecorations.js +2 -3
  393. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  394. package/lib/esm/NoRenderApp.d.ts +1 -1
  395. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  396. package/lib/esm/NoRenderApp.js.map +1 -1
  397. package/lib/esm/SheetViewState.js +1 -1
  398. package/lib/esm/SheetViewState.js.map +1 -1
  399. package/lib/esm/ViewContext.d.ts +3 -2
  400. package/lib/esm/ViewContext.d.ts.map +1 -1
  401. package/lib/esm/ViewContext.js.map +1 -1
  402. package/lib/esm/Viewport.d.ts +17 -2
  403. package/lib/esm/Viewport.d.ts.map +1 -1
  404. package/lib/esm/Viewport.js +10 -8
  405. package/lib/esm/Viewport.js.map +1 -1
  406. package/lib/esm/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  407. package/lib/esm/common/imdl/ParseImdlDocument.js +3 -6
  408. package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
  409. package/lib/esm/core-frontend.d.ts +1 -5
  410. package/lib/esm/core-frontend.d.ts.map +1 -1
  411. package/lib/esm/core-frontend.js +1 -5
  412. package/lib/esm/core-frontend.js.map +1 -1
  413. package/lib/esm/internal/cross-package.d.ts +4 -0
  414. package/lib/esm/internal/cross-package.d.ts.map +1 -1
  415. package/lib/esm/internal/cross-package.js +5 -0
  416. package/lib/esm/internal/cross-package.js.map +1 -1
  417. package/lib/esm/internal/render/AnimationBranchState.d.ts +24 -0
  418. package/lib/esm/internal/render/AnimationBranchState.d.ts.map +1 -0
  419. package/lib/esm/internal/render/AnimationBranchState.js +43 -0
  420. package/lib/esm/internal/render/AnimationBranchState.js.map +1 -0
  421. package/lib/esm/internal/render/FrameStatsCollector.d.ts +24 -0
  422. package/lib/esm/internal/render/FrameStatsCollector.d.ts.map +1 -0
  423. package/lib/esm/internal/render/FrameStatsCollector.js +83 -0
  424. package/lib/esm/internal/render/FrameStatsCollector.js.map +1 -0
  425. package/lib/esm/internal/render/GraphicBranchFrustum.d.ts +12 -0
  426. package/lib/esm/internal/render/GraphicBranchFrustum.d.ts.map +1 -0
  427. package/lib/esm/internal/render/GraphicBranchFrustum.js +9 -0
  428. package/lib/esm/internal/render/GraphicBranchFrustum.js.map +1 -0
  429. package/lib/esm/internal/render/GraphicTemplateImpl.d.ts +47 -0
  430. package/lib/esm/internal/render/GraphicTemplateImpl.d.ts.map +1 -0
  431. package/lib/esm/internal/render/GraphicTemplateImpl.js +37 -0
  432. package/lib/esm/internal/render/GraphicTemplateImpl.js.map +1 -0
  433. package/lib/esm/internal/render/MockRender.d.ts +160 -0
  434. package/lib/esm/internal/render/MockRender.d.ts.map +1 -0
  435. package/lib/esm/internal/render/MockRender.js +208 -0
  436. package/lib/esm/internal/render/MockRender.js.map +1 -0
  437. package/lib/esm/internal/render/PrimitiveBuilder.d.ts +0 -1
  438. package/lib/esm/internal/render/PrimitiveBuilder.d.ts.map +1 -1
  439. package/lib/esm/internal/render/PrimitiveBuilder.js +1 -2
  440. package/lib/esm/internal/render/PrimitiveBuilder.js.map +1 -1
  441. package/lib/esm/internal/render/QueryVisibileFeatures.d.ts +8 -0
  442. package/lib/esm/internal/render/QueryVisibileFeatures.d.ts.map +1 -0
  443. package/lib/esm/internal/render/QueryVisibileFeatures.js +142 -0
  444. package/lib/esm/internal/render/QueryVisibileFeatures.js.map +1 -0
  445. package/lib/esm/internal/render/RealityMeshGraphicParams.d.ts +21 -0
  446. package/lib/esm/internal/render/RealityMeshGraphicParams.d.ts.map +1 -0
  447. package/lib/esm/internal/render/RealityMeshGraphicParams.js.map +1 -0
  448. package/lib/esm/internal/render/RenderAreaPattern.d.ts +12 -0
  449. package/lib/esm/internal/render/RenderAreaPattern.d.ts.map +1 -0
  450. package/lib/esm/internal/render/RenderAreaPattern.js +9 -0
  451. package/lib/esm/internal/render/RenderAreaPattern.js.map +1 -0
  452. package/lib/esm/internal/render/RenderMaterialSource.d.ts +13 -0
  453. package/lib/esm/internal/render/RenderMaterialSource.d.ts.map +1 -0
  454. package/lib/esm/internal/render/RenderMaterialSource.js +9 -0
  455. package/lib/esm/internal/render/RenderMaterialSource.js.map +1 -0
  456. package/lib/esm/internal/render/RenderPlan.d.ts +47 -0
  457. package/lib/esm/internal/render/RenderPlan.d.ts.map +1 -0
  458. package/lib/esm/internal/render/RenderPlan.js +129 -0
  459. package/lib/esm/internal/render/RenderPlan.js.map +1 -0
  460. package/lib/esm/internal/render/RenderPlanarClassifier.d.ts +26 -0
  461. package/lib/esm/internal/render/RenderPlanarClassifier.d.ts.map +1 -0
  462. package/lib/esm/internal/render/RenderPlanarClassifier.js.map +1 -0
  463. package/lib/esm/internal/render/RenderSkyBoxParams.d.ts +21 -0
  464. package/lib/esm/internal/render/RenderSkyBoxParams.d.ts.map +1 -0
  465. package/lib/esm/internal/render/RenderSkyBoxParams.js +9 -0
  466. package/lib/esm/internal/render/RenderSkyBoxParams.js.map +1 -0
  467. package/lib/esm/internal/render/RenderSystemDebugControl.d.ts +58 -0
  468. package/lib/esm/internal/render/RenderSystemDebugControl.d.ts.map +1 -0
  469. package/lib/esm/internal/render/RenderSystemDebugControl.js +34 -0
  470. package/lib/esm/internal/render/RenderSystemDebugControl.js.map +1 -0
  471. package/lib/esm/internal/render/RenderTargetDebugControl.d.ts +45 -0
  472. package/lib/esm/internal/render/RenderTargetDebugControl.d.ts.map +1 -0
  473. package/lib/esm/internal/render/RenderTargetDebugControl.js +21 -0
  474. package/lib/esm/internal/render/RenderTargetDebugControl.js.map +1 -0
  475. package/lib/esm/internal/render/RenderTerrain.d.ts +24 -0
  476. package/lib/esm/internal/render/RenderTerrain.d.ts.map +1 -0
  477. package/lib/esm/internal/render/RenderTerrain.js +33 -0
  478. package/lib/esm/internal/render/RenderTerrain.js.map +1 -0
  479. package/lib/esm/internal/render/RenderTextureDrape.d.ts +15 -0
  480. package/lib/esm/internal/render/RenderTextureDrape.d.ts.map +1 -0
  481. package/lib/esm/internal/render/RenderTextureDrape.js +11 -0
  482. package/lib/esm/internal/render/RenderTextureDrape.js.map +1 -0
  483. package/lib/esm/internal/render/SceneVolumeClassifier.d.ts +11 -0
  484. package/lib/esm/internal/render/SceneVolumeClassifier.d.ts.map +1 -0
  485. package/lib/esm/internal/render/SceneVolumeClassifier.js +9 -0
  486. package/lib/esm/internal/render/SceneVolumeClassifier.js.map +1 -0
  487. package/lib/esm/internal/render/UpsampleRealityMeshParams.d.ts +11 -0
  488. package/lib/esm/internal/render/UpsampleRealityMeshParams.d.ts.map +1 -0
  489. package/lib/esm/internal/render/UpsampleRealityMeshParams.js +201 -0
  490. package/lib/esm/internal/render/UpsampleRealityMeshParams.js.map +1 -0
  491. package/lib/esm/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
  492. package/lib/esm/internal/render/webgl/CachedGeometry.d.ts +1 -1
  493. package/lib/esm/internal/render/webgl/CachedGeometry.d.ts.map +1 -1
  494. package/lib/esm/internal/render/webgl/CachedGeometry.js.map +1 -1
  495. package/lib/esm/internal/render/webgl/GLTimer.d.ts +1 -1
  496. package/lib/esm/internal/render/webgl/GLTimer.d.ts.map +1 -1
  497. package/lib/esm/internal/render/webgl/GLTimer.js.map +1 -1
  498. package/lib/esm/internal/render/webgl/Graphic.d.ts +2 -1
  499. package/lib/esm/internal/render/webgl/Graphic.d.ts.map +1 -1
  500. package/lib/esm/internal/render/webgl/Graphic.js.map +1 -1
  501. package/lib/esm/internal/render/webgl/Material.d.ts +3 -3
  502. package/lib/esm/internal/render/webgl/Material.d.ts.map +1 -1
  503. package/lib/esm/internal/render/webgl/Material.js +2 -5
  504. package/lib/esm/internal/render/webgl/Material.js.map +1 -1
  505. package/lib/esm/internal/render/webgl/PerformanceMetrics.d.ts +1 -1
  506. package/lib/esm/internal/render/webgl/PerformanceMetrics.d.ts.map +1 -1
  507. package/lib/esm/internal/render/webgl/PerformanceMetrics.js.map +1 -1
  508. package/lib/esm/internal/render/webgl/PlanarClassifier.d.ts +1 -1
  509. package/lib/esm/internal/render/webgl/PlanarClassifier.d.ts.map +1 -1
  510. package/lib/esm/internal/render/webgl/PlanarClassifier.js +1 -1
  511. package/lib/esm/internal/render/webgl/PlanarClassifier.js.map +1 -1
  512. package/lib/esm/internal/render/webgl/Primitive.js +1 -1
  513. package/lib/esm/internal/render/webgl/Primitive.js.map +1 -1
  514. package/lib/esm/internal/render/webgl/RealityMesh.d.ts +4 -3
  515. package/lib/esm/internal/render/webgl/RealityMesh.d.ts.map +1 -1
  516. package/lib/esm/internal/render/webgl/RealityMesh.js +1 -1
  517. package/lib/esm/internal/render/webgl/RealityMesh.js.map +1 -1
  518. package/lib/esm/internal/render/webgl/RenderCommands.js.map +1 -1
  519. package/lib/esm/internal/render/webgl/ShaderProgram.js +1 -1
  520. package/lib/esm/internal/render/webgl/ShaderProgram.js.map +1 -1
  521. package/lib/esm/internal/render/webgl/StyleUniforms.d.ts +1 -1
  522. package/lib/esm/internal/render/webgl/StyleUniforms.d.ts.map +1 -1
  523. package/lib/esm/internal/render/webgl/StyleUniforms.js.map +1 -1
  524. package/lib/esm/internal/render/webgl/System.d.ts +12 -9
  525. package/lib/esm/internal/render/webgl/System.d.ts.map +1 -1
  526. package/lib/esm/internal/render/webgl/System.js +5 -9
  527. package/lib/esm/internal/render/webgl/System.js.map +1 -1
  528. package/lib/esm/internal/render/webgl/Target.d.ts +9 -8
  529. package/lib/esm/internal/render/webgl/Target.d.ts.map +1 -1
  530. package/lib/esm/internal/render/webgl/Target.js +11 -6
  531. package/lib/esm/internal/render/webgl/Target.js.map +1 -1
  532. package/lib/esm/internal/render/webgl/TargetUniforms.d.ts +1 -1
  533. package/lib/esm/internal/render/webgl/TargetUniforms.d.ts.map +1 -1
  534. package/lib/esm/internal/render/webgl/TargetUniforms.js.map +1 -1
  535. package/lib/esm/internal/render/webgl/TextureDrape.d.ts +1 -1
  536. package/lib/esm/internal/render/webgl/TextureDrape.d.ts.map +1 -1
  537. package/lib/esm/internal/render/webgl/TextureDrape.js.map +1 -1
  538. package/lib/esm/internal/tile/B3dmReader.d.ts +30 -0
  539. package/lib/esm/internal/tile/B3dmReader.d.ts.map +1 -0
  540. package/lib/esm/internal/tile/B3dmReader.js +169 -0
  541. package/lib/esm/internal/tile/B3dmReader.js.map +1 -0
  542. package/lib/esm/internal/tile/BatchedTileIdMap.d.ts +24 -0
  543. package/lib/esm/internal/tile/BatchedTileIdMap.d.ts.map +1 -0
  544. package/lib/esm/internal/tile/BatchedTileIdMap.js +51 -0
  545. package/lib/esm/internal/tile/BatchedTileIdMap.js.map +1 -0
  546. package/lib/esm/internal/tile/CesiumAssetProvider.d.ts +13 -0
  547. package/lib/esm/internal/tile/CesiumAssetProvider.d.ts.map +1 -0
  548. package/lib/esm/internal/tile/CesiumAssetProvider.js +30 -0
  549. package/lib/esm/internal/tile/CesiumAssetProvider.js.map +1 -0
  550. package/lib/esm/internal/tile/ClassifierTileTree.d.ts +14 -0
  551. package/lib/esm/internal/tile/ClassifierTileTree.d.ts.map +1 -0
  552. package/lib/esm/internal/tile/ClassifierTileTree.js +155 -0
  553. package/lib/esm/internal/tile/ClassifierTileTree.js.map +1 -0
  554. package/lib/esm/internal/tile/ContextShareProvider.d.ts +21 -0
  555. package/lib/esm/internal/tile/ContextShareProvider.d.ts.map +1 -0
  556. package/lib/esm/internal/tile/ContextShareProvider.js +132 -0
  557. package/lib/esm/internal/tile/ContextShareProvider.js.map +1 -0
  558. package/lib/esm/internal/tile/DynamicIModelTile.d.ts +25 -0
  559. package/lib/esm/internal/tile/DynamicIModelTile.d.ts.map +1 -0
  560. package/lib/esm/internal/tile/DynamicIModelTile.js +321 -0
  561. package/lib/esm/internal/tile/DynamicIModelTile.js.map +1 -0
  562. package/lib/esm/internal/tile/FetchCloudStorage.d.ts +14 -0
  563. package/lib/esm/internal/tile/FetchCloudStorage.d.ts.map +1 -0
  564. package/lib/esm/internal/tile/FetchCloudStorage.js +30 -0
  565. package/lib/esm/internal/tile/FetchCloudStorage.js.map +1 -0
  566. package/lib/esm/internal/tile/GraphicsCollector.d.ts +24 -0
  567. package/lib/esm/internal/tile/GraphicsCollector.d.ts.map +1 -0
  568. package/lib/esm/internal/tile/GraphicsCollector.js +38 -0
  569. package/lib/esm/internal/tile/GraphicsCollector.js.map +1 -0
  570. package/lib/esm/internal/tile/I3dmReader.d.ts +28 -0
  571. package/lib/esm/internal/tile/I3dmReader.d.ts.map +1 -0
  572. package/lib/esm/internal/tile/I3dmReader.js +155 -0
  573. package/lib/esm/internal/tile/I3dmReader.js.map +1 -0
  574. package/lib/esm/internal/tile/IModelTile.d.ts +54 -0
  575. package/lib/esm/internal/tile/IModelTile.d.ts.map +1 -0
  576. package/lib/esm/internal/tile/IModelTile.js +268 -0
  577. package/lib/esm/internal/tile/IModelTile.js.map +1 -0
  578. package/lib/esm/internal/tile/IModelTileRequestChannels.d.ts +24 -0
  579. package/lib/esm/internal/tile/IModelTileRequestChannels.d.ts.map +1 -0
  580. package/lib/esm/internal/tile/IModelTileRequestChannels.js +153 -0
  581. package/lib/esm/internal/tile/IModelTileRequestChannels.js.map +1 -0
  582. package/lib/esm/internal/tile/IModelTileTree.d.ts +80 -0
  583. package/lib/esm/internal/tile/IModelTileTree.d.ts.map +1 -0
  584. package/lib/esm/internal/tile/IModelTileTree.js +342 -0
  585. package/lib/esm/internal/tile/IModelTileTree.js.map +1 -0
  586. package/lib/esm/internal/tile/ImdlDecoder.d.ts +56 -0
  587. package/lib/esm/internal/tile/ImdlDecoder.d.ts.map +1 -0
  588. package/lib/esm/internal/tile/ImdlDecoder.js +31 -0
  589. package/lib/esm/internal/tile/ImdlDecoder.js.map +1 -0
  590. package/lib/esm/internal/tile/ImdlGraphicsCreator.d.ts +22 -0
  591. package/lib/esm/internal/tile/ImdlGraphicsCreator.d.ts.map +1 -0
  592. package/lib/esm/internal/tile/ImdlGraphicsCreator.js +426 -0
  593. package/lib/esm/internal/tile/ImdlGraphicsCreator.js.map +1 -0
  594. package/lib/esm/internal/tile/ImdlParser.d.ts +23 -0
  595. package/lib/esm/internal/tile/ImdlParser.d.ts.map +1 -0
  596. package/lib/esm/internal/tile/ImdlParser.js +69 -0
  597. package/lib/esm/internal/tile/ImdlParser.js.map +1 -0
  598. package/lib/esm/internal/tile/LRUTileList.d.ts +118 -0
  599. package/lib/esm/internal/tile/LRUTileList.d.ts.map +1 -0
  600. package/lib/esm/internal/tile/LRUTileList.js +354 -0
  601. package/lib/esm/internal/tile/LRUTileList.js.map +1 -0
  602. package/lib/esm/internal/tile/MeshoptCompression.d.ts +21 -0
  603. package/lib/esm/internal/tile/MeshoptCompression.d.ts.map +1 -0
  604. package/lib/esm/internal/tile/MeshoptCompression.js +118 -0
  605. package/lib/esm/internal/tile/MeshoptCompression.js.map +1 -0
  606. package/lib/esm/internal/tile/OPCFormatInterpreter.d.ts +19 -0
  607. package/lib/esm/internal/tile/OPCFormatInterpreter.d.ts.map +1 -0
  608. package/lib/esm/internal/tile/OPCFormatInterpreter.js +91 -0
  609. package/lib/esm/internal/tile/OPCFormatInterpreter.js.map +1 -0
  610. package/lib/esm/internal/tile/OrbitGtTileTree.d.ts +63 -0
  611. package/lib/esm/internal/tile/OrbitGtTileTree.d.ts.map +1 -0
  612. package/lib/esm/internal/tile/OrbitGtTileTree.js +449 -0
  613. package/lib/esm/internal/tile/OrbitGtTileTree.js.map +1 -0
  614. package/lib/esm/internal/tile/PntsReader.d.ts +16 -0
  615. package/lib/esm/internal/tile/PntsReader.d.ts.map +1 -0
  616. package/lib/esm/internal/tile/PntsReader.js +204 -0
  617. package/lib/esm/internal/tile/PntsReader.js.map +1 -0
  618. package/lib/esm/internal/tile/PrimaryTileTree.d.ts +106 -0
  619. package/lib/esm/internal/tile/PrimaryTileTree.d.ts.map +1 -0
  620. package/lib/esm/internal/tile/PrimaryTileTree.js +618 -0
  621. package/lib/esm/internal/tile/PrimaryTileTree.js.map +1 -0
  622. package/lib/esm/internal/tile/RealityModelTileTree.d.ts +123 -0
  623. package/lib/esm/internal/tile/RealityModelTileTree.d.ts.map +1 -0
  624. package/lib/esm/internal/tile/RealityModelTileTree.js +760 -0
  625. package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -0
  626. package/lib/esm/internal/tile/RealityTileDrawArgs.d.ts +16 -0
  627. package/lib/esm/internal/tile/RealityTileDrawArgs.d.ts.map +1 -0
  628. package/lib/esm/internal/tile/RealityTileDrawArgs.js +23 -0
  629. package/lib/esm/internal/tile/RealityTileDrawArgs.js.map +1 -0
  630. package/lib/esm/internal/tile/RealityTileLoader.d.ts +43 -0
  631. package/lib/esm/internal/tile/RealityTileLoader.d.ts.map +1 -0
  632. package/lib/esm/internal/tile/RealityTileLoader.js +203 -0
  633. package/lib/esm/internal/tile/RealityTileLoader.js.map +1 -0
  634. package/lib/esm/internal/tile/ThreeDTileFormatInterpreter.d.ts +44 -0
  635. package/lib/esm/internal/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -0
  636. package/lib/esm/internal/tile/ThreeDTileFormatInterpreter.js +172 -0
  637. package/lib/esm/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -0
  638. package/lib/esm/internal/tile/TileUserSet.d.ts +26 -0
  639. package/lib/esm/internal/tile/TileUserSet.d.ts.map +1 -0
  640. package/lib/esm/internal/tile/TileUserSet.js +114 -0
  641. package/lib/esm/internal/tile/TileUserSet.js.map +1 -0
  642. package/lib/esm/internal/tile/ViewFlagOverrides.d.ts +14 -0
  643. package/lib/esm/internal/tile/ViewFlagOverrides.d.ts.map +1 -0
  644. package/lib/esm/internal/tile/ViewFlagOverrides.js +35 -0
  645. package/lib/esm/internal/tile/ViewFlagOverrides.js.map +1 -0
  646. package/lib/esm/internal/tile/map/ArcGISTileMap.d.ts +29 -0
  647. package/lib/esm/internal/tile/map/ArcGISTileMap.d.ts.map +1 -0
  648. package/lib/esm/internal/tile/map/ArcGISTileMap.js +232 -0
  649. package/lib/esm/internal/tile/map/ArcGISTileMap.js.map +1 -0
  650. package/lib/esm/internal/tile/map/ArcGisUtilities.d.ts +122 -0
  651. package/lib/esm/internal/tile/map/ArcGisUtilities.d.ts.map +1 -0
  652. package/lib/esm/internal/tile/map/ArcGisUtilities.js +351 -0
  653. package/lib/esm/internal/tile/map/ArcGisUtilities.js.map +1 -0
  654. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +39 -0
  655. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -0
  656. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js +165 -0
  657. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -0
  658. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +89 -0
  659. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -0
  660. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +336 -0
  661. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -0
  662. package/lib/esm/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts +14 -0
  663. package/lib/esm/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts.map +1 -0
  664. package/lib/esm/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js +54 -0
  665. package/lib/esm/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -0
  666. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +11 -0
  667. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -0
  668. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +25 -0
  669. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -0
  670. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +26 -0
  671. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -0
  672. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js +195 -0
  673. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -0
  674. package/lib/esm/internal/tile/map/ImageryProviders/CoordinatesUtils.d.ts.map +1 -0
  675. package/lib/esm/internal/tile/map/ImageryProviders/CoordinatesUtils.js.map +1 -0
  676. package/lib/esm/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.d.ts.map +1 -0
  677. package/lib/esm/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +1 -0
  678. package/lib/esm/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.d.ts +47 -0
  679. package/lib/esm/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.d.ts.map +1 -0
  680. package/lib/esm/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +1 -0
  681. package/lib/esm/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts +40 -0
  682. package/lib/esm/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts.map +1 -0
  683. package/lib/esm/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js +116 -0
  684. package/lib/esm/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -0
  685. package/lib/esm/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.d.ts +15 -0
  686. package/lib/esm/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.d.ts.map +1 -0
  687. package/lib/esm/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +1 -0
  688. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +21 -0
  689. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -0
  690. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +47 -0
  691. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -0
  692. package/lib/esm/internal/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +13 -0
  693. package/lib/esm/internal/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +1 -0
  694. package/lib/esm/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js +26 -0
  695. package/lib/esm/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -0
  696. package/lib/esm/internal/tile/map/ImageryProviders/WebMercator.d.ts.map +1 -0
  697. package/lib/esm/internal/tile/map/ImageryProviders/WebMercator.js.map +1 -0
  698. package/lib/esm/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +25 -0
  699. package/lib/esm/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -0
  700. package/lib/esm/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +173 -0
  701. package/lib/esm/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -0
  702. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +21 -0
  703. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -0
  704. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +155 -0
  705. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -0
  706. package/lib/esm/internal/tile/map/MapTileAvailability.d.ts +60 -0
  707. package/lib/esm/internal/tile/map/MapTileAvailability.d.ts.map +1 -0
  708. package/lib/esm/internal/tile/map/MapTileAvailability.js +221 -0
  709. package/lib/esm/internal/tile/map/MapTileAvailability.js.map +1 -0
  710. package/lib/esm/internal/tile/map/MapTileLoader.d.ts +37 -0
  711. package/lib/esm/internal/tile/map/MapTileLoader.d.ts.map +1 -0
  712. package/lib/esm/internal/tile/map/MapTileLoader.js +83 -0
  713. package/lib/esm/internal/tile/map/MapTileLoader.js.map +1 -0
  714. package/lib/esm/internal/tile/map/UrlUtils.d.ts.map +1 -0
  715. package/lib/esm/internal/tile/map/UrlUtils.js.map +1 -0
  716. package/lib/esm/internal/tile/map/WmsCapabilities.d.ts +61 -0
  717. package/lib/esm/internal/tile/map/WmsCapabilities.d.ts.map +1 -0
  718. package/lib/esm/internal/tile/map/WmsCapabilities.js +219 -0
  719. package/lib/esm/internal/tile/map/WmsCapabilities.js.map +1 -0
  720. package/lib/esm/internal/tile/map/WmsUtilities.d.ts +14 -0
  721. package/lib/esm/internal/tile/map/WmsUtilities.d.ts.map +1 -0
  722. package/lib/esm/internal/tile/map/WmsUtilities.js +36 -0
  723. package/lib/esm/internal/tile/map/WmsUtilities.js.map +1 -0
  724. package/lib/esm/internal/tile/map/WmtsCapabilities.d.ts +121 -0
  725. package/lib/esm/internal/tile/map/WmtsCapabilities.d.ts.map +1 -0
  726. package/lib/esm/internal/tile/map/WmtsCapabilities.js +482 -0
  727. package/lib/esm/internal/tile/map/WmtsCapabilities.js.map +1 -0
  728. package/lib/esm/render/CreateRenderMaterialArgs.d.ts +1 -10
  729. package/lib/esm/render/CreateRenderMaterialArgs.d.ts.map +1 -1
  730. package/lib/esm/render/CreateRenderMaterialArgs.js.map +1 -1
  731. package/lib/esm/render/FrameStats.d.ts +0 -21
  732. package/lib/esm/render/FrameStats.d.ts.map +1 -1
  733. package/lib/esm/render/FrameStats.js +1 -76
  734. package/lib/esm/render/FrameStats.js.map +1 -1
  735. package/lib/esm/render/GraphicBranch.d.ts +4 -35
  736. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  737. package/lib/esm/render/GraphicBranch.js +0 -36
  738. package/lib/esm/render/GraphicBranch.js.map +1 -1
  739. package/lib/esm/render/GraphicTemplate.d.ts +1 -42
  740. package/lib/esm/render/GraphicTemplate.d.ts.map +1 -1
  741. package/lib/esm/render/GraphicTemplate.js +0 -28
  742. package/lib/esm/render/GraphicTemplate.js.map +1 -1
  743. package/lib/esm/render/RenderSystem.d.ts +15 -142
  744. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  745. package/lib/esm/render/RenderSystem.js +1 -64
  746. package/lib/esm/render/RenderSystem.js.map +1 -1
  747. package/lib/esm/render/RenderTarget.d.ts +9 -47
  748. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  749. package/lib/esm/render/RenderTarget.js +1 -14
  750. package/lib/esm/render/RenderTarget.js.map +1 -1
  751. package/lib/esm/render/Scene.d.ts +3 -11
  752. package/lib/esm/render/Scene.d.ts.map +1 -1
  753. package/lib/esm/render/Scene.js.map +1 -1
  754. package/lib/esm/render/VisibleFeature.d.ts +0 -5
  755. package/lib/esm/render/VisibleFeature.d.ts.map +1 -1
  756. package/lib/esm/render/VisibleFeature.js +1 -136
  757. package/lib/esm/render/VisibleFeature.js.map +1 -1
  758. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  759. package/lib/esm/tile/GltfReader.js +1 -1
  760. package/lib/esm/tile/GltfReader.js.map +1 -1
  761. package/lib/esm/tile/TileDrawArgs.d.ts +2 -2
  762. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  763. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  764. package/lib/esm/tile/internal.d.ts +50 -50
  765. package/lib/esm/tile/internal.d.ts.map +1 -1
  766. package/lib/esm/tile/internal.js +50 -50
  767. package/lib/esm/tile/internal.js.map +1 -1
  768. package/lib/esm/tile/map/MapTile.d.ts +2 -1
  769. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  770. package/lib/esm/tile/map/MapTile.js +2 -2
  771. package/lib/esm/tile/map/MapTile.js.map +1 -1
  772. package/lib/esm/tile/map/MapTileTree.d.ts +1 -1
  773. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  774. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  775. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  776. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  777. package/package.json +16 -16
  778. package/lib/cjs/render/MockRender.d.ts +0 -159
  779. package/lib/cjs/render/MockRender.d.ts.map +0 -1
  780. package/lib/cjs/render/MockRender.js +0 -211
  781. package/lib/cjs/render/MockRender.js.map +0 -1
  782. package/lib/cjs/render/RealityMeshGraphicParams.d.ts +0 -20
  783. package/lib/cjs/render/RealityMeshGraphicParams.d.ts.map +0 -1
  784. package/lib/cjs/render/RealityMeshGraphicParams.js.map +0 -1
  785. package/lib/cjs/render/RenderPlan.d.ts +0 -54
  786. package/lib/cjs/render/RenderPlan.d.ts.map +0 -1
  787. package/lib/cjs/render/RenderPlan.js +0 -140
  788. package/lib/cjs/render/RenderPlan.js.map +0 -1
  789. package/lib/cjs/render/RenderPlanarClassifier.d.ts +0 -26
  790. package/lib/cjs/render/RenderPlanarClassifier.d.ts.map +0 -1
  791. package/lib/cjs/render/RenderPlanarClassifier.js.map +0 -1
  792. package/lib/cjs/render/UpsampleRealityMeshParams.d.ts +0 -11
  793. package/lib/cjs/render/UpsampleRealityMeshParams.d.ts.map +0 -1
  794. package/lib/cjs/render/UpsampleRealityMeshParams.js +0 -204
  795. package/lib/cjs/render/UpsampleRealityMeshParams.js.map +0 -1
  796. package/lib/cjs/tile/B3dmReader.d.ts +0 -31
  797. package/lib/cjs/tile/B3dmReader.d.ts.map +0 -1
  798. package/lib/cjs/tile/B3dmReader.js +0 -174
  799. package/lib/cjs/tile/B3dmReader.js.map +0 -1
  800. package/lib/cjs/tile/BatchedTileIdMap.d.ts +0 -25
  801. package/lib/cjs/tile/BatchedTileIdMap.d.ts.map +0 -1
  802. package/lib/cjs/tile/BatchedTileIdMap.js +0 -56
  803. package/lib/cjs/tile/BatchedTileIdMap.js.map +0 -1
  804. package/lib/cjs/tile/CesiumAssetProvider.d.ts +0 -14
  805. package/lib/cjs/tile/CesiumAssetProvider.d.ts.map +0 -1
  806. package/lib/cjs/tile/CesiumAssetProvider.js +0 -35
  807. package/lib/cjs/tile/CesiumAssetProvider.js.map +0 -1
  808. package/lib/cjs/tile/ClassifierTileTree.d.ts +0 -16
  809. package/lib/cjs/tile/ClassifierTileTree.d.ts.map +0 -1
  810. package/lib/cjs/tile/ClassifierTileTree.js +0 -163
  811. package/lib/cjs/tile/ClassifierTileTree.js.map +0 -1
  812. package/lib/cjs/tile/ContextShareProvider.d.ts +0 -22
  813. package/lib/cjs/tile/ContextShareProvider.d.ts.map +0 -1
  814. package/lib/cjs/tile/ContextShareProvider.js +0 -137
  815. package/lib/cjs/tile/ContextShareProvider.js.map +0 -1
  816. package/lib/cjs/tile/DynamicIModelTile.d.ts +0 -26
  817. package/lib/cjs/tile/DynamicIModelTile.d.ts.map +0 -1
  818. package/lib/cjs/tile/DynamicIModelTile.js +0 -326
  819. package/lib/cjs/tile/DynamicIModelTile.js.map +0 -1
  820. package/lib/cjs/tile/FetchCloudStorage.d.ts +0 -15
  821. package/lib/cjs/tile/FetchCloudStorage.d.ts.map +0 -1
  822. package/lib/cjs/tile/FetchCloudStorage.js +0 -35
  823. package/lib/cjs/tile/FetchCloudStorage.js.map +0 -1
  824. package/lib/cjs/tile/GraphicsCollector.d.ts +0 -26
  825. package/lib/cjs/tile/GraphicsCollector.d.ts.map +0 -1
  826. package/lib/cjs/tile/GraphicsCollector.js +0 -43
  827. package/lib/cjs/tile/GraphicsCollector.js.map +0 -1
  828. package/lib/cjs/tile/I3dmReader.d.ts +0 -29
  829. package/lib/cjs/tile/I3dmReader.d.ts.map +0 -1
  830. package/lib/cjs/tile/I3dmReader.js +0 -160
  831. package/lib/cjs/tile/I3dmReader.js.map +0 -1
  832. package/lib/cjs/tile/IModelTile.d.ts +0 -59
  833. package/lib/cjs/tile/IModelTile.d.ts.map +0 -1
  834. package/lib/cjs/tile/IModelTile.js +0 -276
  835. package/lib/cjs/tile/IModelTile.js.map +0 -1
  836. package/lib/cjs/tile/IModelTileRequestChannels.d.ts +0 -25
  837. package/lib/cjs/tile/IModelTileRequestChannels.d.ts.map +0 -1
  838. package/lib/cjs/tile/IModelTileRequestChannels.js +0 -158
  839. package/lib/cjs/tile/IModelTileRequestChannels.js.map +0 -1
  840. package/lib/cjs/tile/IModelTileTree.d.ts +0 -85
  841. package/lib/cjs/tile/IModelTileTree.d.ts.map +0 -1
  842. package/lib/cjs/tile/IModelTileTree.js +0 -349
  843. package/lib/cjs/tile/IModelTileTree.js.map +0 -1
  844. package/lib/cjs/tile/ImdlDecoder.d.ts +0 -58
  845. package/lib/cjs/tile/ImdlDecoder.d.ts.map +0 -1
  846. package/lib/cjs/tile/ImdlDecoder.js +0 -34
  847. package/lib/cjs/tile/ImdlDecoder.js.map +0 -1
  848. package/lib/cjs/tile/ImdlGraphicsCreator.d.ts +0 -26
  849. package/lib/cjs/tile/ImdlGraphicsCreator.d.ts.map +0 -1
  850. package/lib/cjs/tile/ImdlGraphicsCreator.js +0 -436
  851. package/lib/cjs/tile/ImdlGraphicsCreator.js.map +0 -1
  852. package/lib/cjs/tile/ImdlParser.d.ts +0 -26
  853. package/lib/cjs/tile/ImdlParser.d.ts.map +0 -1
  854. package/lib/cjs/tile/ImdlParser.js +0 -73
  855. package/lib/cjs/tile/ImdlParser.js.map +0 -1
  856. package/lib/cjs/tile/LRUTileList.d.ts +0 -122
  857. package/lib/cjs/tile/LRUTileList.d.ts.map +0 -1
  858. package/lib/cjs/tile/LRUTileList.js +0 -363
  859. package/lib/cjs/tile/LRUTileList.js.map +0 -1
  860. package/lib/cjs/tile/MeshoptCompression.d.ts +0 -25
  861. package/lib/cjs/tile/MeshoptCompression.d.ts.map +0 -1
  862. package/lib/cjs/tile/MeshoptCompression.js +0 -124
  863. package/lib/cjs/tile/MeshoptCompression.js.map +0 -1
  864. package/lib/cjs/tile/OPCFormatInterpreter.d.ts +0 -22
  865. package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +0 -1
  866. package/lib/cjs/tile/OPCFormatInterpreter.js +0 -98
  867. package/lib/cjs/tile/OPCFormatInterpreter.js.map +0 -1
  868. package/lib/cjs/tile/OrbitGtTileTree.d.ts +0 -66
  869. package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +0 -1
  870. package/lib/cjs/tile/OrbitGtTileTree.js +0 -458
  871. package/lib/cjs/tile/OrbitGtTileTree.js.map +0 -1
  872. package/lib/cjs/tile/PntsReader.d.ts +0 -17
  873. package/lib/cjs/tile/PntsReader.d.ts.map +0 -1
  874. package/lib/cjs/tile/PntsReader.js +0 -231
  875. package/lib/cjs/tile/PntsReader.js.map +0 -1
  876. package/lib/cjs/tile/PrimaryTileTree.d.ts +0 -112
  877. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +0 -1
  878. package/lib/cjs/tile/PrimaryTileTree.js +0 -636
  879. package/lib/cjs/tile/PrimaryTileTree.js.map +0 -1
  880. package/lib/cjs/tile/RealityModelTileTree.d.ts +0 -129
  881. package/lib/cjs/tile/RealityModelTileTree.d.ts.map +0 -1
  882. package/lib/cjs/tile/RealityModelTileTree.js +0 -781
  883. package/lib/cjs/tile/RealityModelTileTree.js.map +0 -1
  884. package/lib/cjs/tile/RealityTileDrawArgs.d.ts +0 -17
  885. package/lib/cjs/tile/RealityTileDrawArgs.d.ts.map +0 -1
  886. package/lib/cjs/tile/RealityTileDrawArgs.js +0 -28
  887. package/lib/cjs/tile/RealityTileDrawArgs.js.map +0 -1
  888. package/lib/cjs/tile/RealityTileLoader.d.ts +0 -43
  889. package/lib/cjs/tile/RealityTileLoader.d.ts.map +0 -1
  890. package/lib/cjs/tile/RealityTileLoader.js +0 -207
  891. package/lib/cjs/tile/RealityTileLoader.js.map +0 -1
  892. package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts +0 -52
  893. package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts.map +0 -1
  894. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +0 -183
  895. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +0 -1
  896. package/lib/cjs/tile/TileUserSet.d.ts +0 -28
  897. package/lib/cjs/tile/TileUserSet.d.ts.map +0 -1
  898. package/lib/cjs/tile/TileUserSet.js +0 -121
  899. package/lib/cjs/tile/TileUserSet.js.map +0 -1
  900. package/lib/cjs/tile/ViewFlagOverrides.d.ts +0 -15
  901. package/lib/cjs/tile/ViewFlagOverrides.d.ts.map +0 -1
  902. package/lib/cjs/tile/ViewFlagOverrides.js +0 -39
  903. package/lib/cjs/tile/ViewFlagOverrides.js.map +0 -1
  904. package/lib/cjs/tile/map/ArcGISTileMap.d.ts +0 -31
  905. package/lib/cjs/tile/map/ArcGISTileMap.d.ts.map +0 -1
  906. package/lib/cjs/tile/map/ArcGISTileMap.js +0 -237
  907. package/lib/cjs/tile/map/ArcGISTileMap.js.map +0 -1
  908. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +0 -124
  909. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +0 -1
  910. package/lib/cjs/tile/map/ArcGisUtilities.js +0 -355
  911. package/lib/cjs/tile/map/ArcGisUtilities.js.map +0 -1
  912. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +0 -40
  913. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +0 -1
  914. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js +0 -170
  915. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +0 -1
  916. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +0 -89
  917. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +0 -1
  918. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +0 -341
  919. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +0 -1
  920. package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts +0 -14
  921. package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts.map +0 -1
  922. package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js +0 -58
  923. package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +0 -1
  924. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +0 -12
  925. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +0 -1
  926. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +0 -30
  927. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +0 -1
  928. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts +0 -27
  929. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +0 -1
  930. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +0 -202
  931. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +0 -1
  932. package/lib/cjs/tile/map/ImageryProviders/CoordinatesUtils.d.ts.map +0 -1
  933. package/lib/cjs/tile/map/ImageryProviders/CoordinatesUtils.js.map +0 -1
  934. package/lib/cjs/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.d.ts.map +0 -1
  935. package/lib/cjs/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +0 -1
  936. package/lib/cjs/tile/map/ImageryProviders/FeatureGeometryRenderer.d.ts +0 -47
  937. package/lib/cjs/tile/map/ImageryProviders/FeatureGeometryRenderer.d.ts.map +0 -1
  938. package/lib/cjs/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +0 -1
  939. package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts +0 -43
  940. package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts.map +0 -1
  941. package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.js +0 -120
  942. package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +0 -1
  943. package/lib/cjs/tile/map/ImageryProviders/FeatureSymbologyRenderer.d.ts +0 -15
  944. package/lib/cjs/tile/map/ImageryProviders/FeatureSymbologyRenderer.d.ts.map +0 -1
  945. package/lib/cjs/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +0 -1
  946. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +0 -22
  947. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +0 -1
  948. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +0 -52
  949. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +0 -1
  950. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +0 -14
  951. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +0 -1
  952. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.js +0 -31
  953. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +0 -1
  954. package/lib/cjs/tile/map/ImageryProviders/WebMercator.d.ts.map +0 -1
  955. package/lib/cjs/tile/map/ImageryProviders/WebMercator.js.map +0 -1
  956. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +0 -27
  957. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +0 -1
  958. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +0 -178
  959. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +0 -1
  960. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +0 -22
  961. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +0 -1
  962. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +0 -160
  963. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +0 -1
  964. package/lib/cjs/tile/map/MapTileAvailability.d.ts +0 -63
  965. package/lib/cjs/tile/map/MapTileAvailability.d.ts.map +0 -1
  966. package/lib/cjs/tile/map/MapTileAvailability.js +0 -229
  967. package/lib/cjs/tile/map/MapTileAvailability.js.map +0 -1
  968. package/lib/cjs/tile/map/MapTileLoader.d.ts +0 -38
  969. package/lib/cjs/tile/map/MapTileLoader.d.ts.map +0 -1
  970. package/lib/cjs/tile/map/MapTileLoader.js +0 -88
  971. package/lib/cjs/tile/map/MapTileLoader.js.map +0 -1
  972. package/lib/cjs/tile/map/UrlUtils.d.ts.map +0 -1
  973. package/lib/cjs/tile/map/UrlUtils.js.map +0 -1
  974. package/lib/cjs/tile/map/WmsCapabilities.d.ts +0 -64
  975. package/lib/cjs/tile/map/WmsCapabilities.d.ts.map +0 -1
  976. package/lib/cjs/tile/map/WmsCapabilities.js +0 -229
  977. package/lib/cjs/tile/map/WmsCapabilities.js.map +0 -1
  978. package/lib/cjs/tile/map/WmsUtilities.d.ts +0 -15
  979. package/lib/cjs/tile/map/WmsUtilities.d.ts.map +0 -1
  980. package/lib/cjs/tile/map/WmsUtilities.js +0 -41
  981. package/lib/cjs/tile/map/WmsUtilities.js.map +0 -1
  982. package/lib/cjs/tile/map/WmtsCapabilities.d.ts +0 -125
  983. package/lib/cjs/tile/map/WmtsCapabilities.d.ts.map +0 -1
  984. package/lib/cjs/tile/map/WmtsCapabilities.js +0 -491
  985. package/lib/cjs/tile/map/WmtsCapabilities.js.map +0 -1
  986. package/lib/esm/render/MockRender.d.ts +0 -159
  987. package/lib/esm/render/MockRender.d.ts.map +0 -1
  988. package/lib/esm/render/MockRender.js +0 -208
  989. package/lib/esm/render/MockRender.js.map +0 -1
  990. package/lib/esm/render/RealityMeshGraphicParams.d.ts +0 -20
  991. package/lib/esm/render/RealityMeshGraphicParams.d.ts.map +0 -1
  992. package/lib/esm/render/RealityMeshGraphicParams.js.map +0 -1
  993. package/lib/esm/render/RenderPlan.d.ts +0 -54
  994. package/lib/esm/render/RenderPlan.d.ts.map +0 -1
  995. package/lib/esm/render/RenderPlan.js +0 -134
  996. package/lib/esm/render/RenderPlan.js.map +0 -1
  997. package/lib/esm/render/RenderPlanarClassifier.d.ts +0 -26
  998. package/lib/esm/render/RenderPlanarClassifier.d.ts.map +0 -1
  999. package/lib/esm/render/RenderPlanarClassifier.js.map +0 -1
  1000. package/lib/esm/render/UpsampleRealityMeshParams.d.ts +0 -11
  1001. package/lib/esm/render/UpsampleRealityMeshParams.d.ts.map +0 -1
  1002. package/lib/esm/render/UpsampleRealityMeshParams.js +0 -201
  1003. package/lib/esm/render/UpsampleRealityMeshParams.js.map +0 -1
  1004. package/lib/esm/tile/B3dmReader.d.ts +0 -31
  1005. package/lib/esm/tile/B3dmReader.d.ts.map +0 -1
  1006. package/lib/esm/tile/B3dmReader.js +0 -170
  1007. package/lib/esm/tile/B3dmReader.js.map +0 -1
  1008. package/lib/esm/tile/BatchedTileIdMap.d.ts +0 -25
  1009. package/lib/esm/tile/BatchedTileIdMap.d.ts.map +0 -1
  1010. package/lib/esm/tile/BatchedTileIdMap.js +0 -52
  1011. package/lib/esm/tile/BatchedTileIdMap.js.map +0 -1
  1012. package/lib/esm/tile/CesiumAssetProvider.d.ts +0 -14
  1013. package/lib/esm/tile/CesiumAssetProvider.d.ts.map +0 -1
  1014. package/lib/esm/tile/CesiumAssetProvider.js +0 -31
  1015. package/lib/esm/tile/CesiumAssetProvider.js.map +0 -1
  1016. package/lib/esm/tile/ClassifierTileTree.d.ts +0 -16
  1017. package/lib/esm/tile/ClassifierTileTree.d.ts.map +0 -1
  1018. package/lib/esm/tile/ClassifierTileTree.js +0 -158
  1019. package/lib/esm/tile/ClassifierTileTree.js.map +0 -1
  1020. package/lib/esm/tile/ContextShareProvider.d.ts +0 -22
  1021. package/lib/esm/tile/ContextShareProvider.d.ts.map +0 -1
  1022. package/lib/esm/tile/ContextShareProvider.js +0 -133
  1023. package/lib/esm/tile/ContextShareProvider.js.map +0 -1
  1024. package/lib/esm/tile/DynamicIModelTile.d.ts +0 -26
  1025. package/lib/esm/tile/DynamicIModelTile.d.ts.map +0 -1
  1026. package/lib/esm/tile/DynamicIModelTile.js +0 -322
  1027. package/lib/esm/tile/DynamicIModelTile.js.map +0 -1
  1028. package/lib/esm/tile/FetchCloudStorage.d.ts +0 -15
  1029. package/lib/esm/tile/FetchCloudStorage.d.ts.map +0 -1
  1030. package/lib/esm/tile/FetchCloudStorage.js +0 -31
  1031. package/lib/esm/tile/FetchCloudStorage.js.map +0 -1
  1032. package/lib/esm/tile/GraphicsCollector.d.ts +0 -26
  1033. package/lib/esm/tile/GraphicsCollector.d.ts.map +0 -1
  1034. package/lib/esm/tile/GraphicsCollector.js +0 -39
  1035. package/lib/esm/tile/GraphicsCollector.js.map +0 -1
  1036. package/lib/esm/tile/I3dmReader.d.ts +0 -29
  1037. package/lib/esm/tile/I3dmReader.d.ts.map +0 -1
  1038. package/lib/esm/tile/I3dmReader.js +0 -156
  1039. package/lib/esm/tile/I3dmReader.js.map +0 -1
  1040. package/lib/esm/tile/IModelTile.d.ts +0 -59
  1041. package/lib/esm/tile/IModelTile.d.ts.map +0 -1
  1042. package/lib/esm/tile/IModelTile.js +0 -271
  1043. package/lib/esm/tile/IModelTile.js.map +0 -1
  1044. package/lib/esm/tile/IModelTileRequestChannels.d.ts +0 -25
  1045. package/lib/esm/tile/IModelTileRequestChannels.d.ts.map +0 -1
  1046. package/lib/esm/tile/IModelTileRequestChannels.js +0 -154
  1047. package/lib/esm/tile/IModelTileRequestChannels.js.map +0 -1
  1048. package/lib/esm/tile/IModelTileTree.d.ts +0 -85
  1049. package/lib/esm/tile/IModelTileTree.d.ts.map +0 -1
  1050. package/lib/esm/tile/IModelTileTree.js +0 -344
  1051. package/lib/esm/tile/IModelTileTree.js.map +0 -1
  1052. package/lib/esm/tile/ImdlDecoder.d.ts +0 -58
  1053. package/lib/esm/tile/ImdlDecoder.d.ts.map +0 -1
  1054. package/lib/esm/tile/ImdlDecoder.js +0 -31
  1055. package/lib/esm/tile/ImdlDecoder.js.map +0 -1
  1056. package/lib/esm/tile/ImdlGraphicsCreator.d.ts +0 -26
  1057. package/lib/esm/tile/ImdlGraphicsCreator.d.ts.map +0 -1
  1058. package/lib/esm/tile/ImdlGraphicsCreator.js +0 -431
  1059. package/lib/esm/tile/ImdlGraphicsCreator.js.map +0 -1
  1060. package/lib/esm/tile/ImdlParser.d.ts +0 -26
  1061. package/lib/esm/tile/ImdlParser.d.ts.map +0 -1
  1062. package/lib/esm/tile/ImdlParser.js +0 -70
  1063. package/lib/esm/tile/ImdlParser.js.map +0 -1
  1064. package/lib/esm/tile/LRUTileList.d.ts +0 -122
  1065. package/lib/esm/tile/LRUTileList.d.ts.map +0 -1
  1066. package/lib/esm/tile/LRUTileList.js +0 -357
  1067. package/lib/esm/tile/LRUTileList.js.map +0 -1
  1068. package/lib/esm/tile/MeshoptCompression.d.ts +0 -25
  1069. package/lib/esm/tile/MeshoptCompression.d.ts.map +0 -1
  1070. package/lib/esm/tile/MeshoptCompression.js +0 -120
  1071. package/lib/esm/tile/MeshoptCompression.js.map +0 -1
  1072. package/lib/esm/tile/OPCFormatInterpreter.d.ts +0 -22
  1073. package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +0 -1
  1074. package/lib/esm/tile/OPCFormatInterpreter.js +0 -94
  1075. package/lib/esm/tile/OPCFormatInterpreter.js.map +0 -1
  1076. package/lib/esm/tile/OrbitGtTileTree.d.ts +0 -66
  1077. package/lib/esm/tile/OrbitGtTileTree.d.ts.map +0 -1
  1078. package/lib/esm/tile/OrbitGtTileTree.js +0 -452
  1079. package/lib/esm/tile/OrbitGtTileTree.js.map +0 -1
  1080. package/lib/esm/tile/PntsReader.d.ts +0 -17
  1081. package/lib/esm/tile/PntsReader.d.ts.map +0 -1
  1082. package/lib/esm/tile/PntsReader.js +0 -205
  1083. package/lib/esm/tile/PntsReader.js.map +0 -1
  1084. package/lib/esm/tile/PrimaryTileTree.d.ts +0 -112
  1085. package/lib/esm/tile/PrimaryTileTree.d.ts.map +0 -1
  1086. package/lib/esm/tile/PrimaryTileTree.js +0 -626
  1087. package/lib/esm/tile/PrimaryTileTree.js.map +0 -1
  1088. package/lib/esm/tile/RealityModelTileTree.d.ts +0 -129
  1089. package/lib/esm/tile/RealityModelTileTree.d.ts.map +0 -1
  1090. package/lib/esm/tile/RealityModelTileTree.js +0 -773
  1091. package/lib/esm/tile/RealityModelTileTree.js.map +0 -1
  1092. package/lib/esm/tile/RealityTileDrawArgs.d.ts +0 -17
  1093. package/lib/esm/tile/RealityTileDrawArgs.d.ts.map +0 -1
  1094. package/lib/esm/tile/RealityTileDrawArgs.js +0 -24
  1095. package/lib/esm/tile/RealityTileDrawArgs.js.map +0 -1
  1096. package/lib/esm/tile/RealityTileLoader.d.ts +0 -43
  1097. package/lib/esm/tile/RealityTileLoader.d.ts.map +0 -1
  1098. package/lib/esm/tile/RealityTileLoader.js +0 -203
  1099. package/lib/esm/tile/RealityTileLoader.js.map +0 -1
  1100. package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts +0 -52
  1101. package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts.map +0 -1
  1102. package/lib/esm/tile/ThreeDTileFormatInterpreter.js +0 -179
  1103. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +0 -1
  1104. package/lib/esm/tile/TileUserSet.d.ts +0 -28
  1105. package/lib/esm/tile/TileUserSet.d.ts.map +0 -1
  1106. package/lib/esm/tile/TileUserSet.js +0 -116
  1107. package/lib/esm/tile/TileUserSet.js.map +0 -1
  1108. package/lib/esm/tile/ViewFlagOverrides.d.ts +0 -15
  1109. package/lib/esm/tile/ViewFlagOverrides.d.ts.map +0 -1
  1110. package/lib/esm/tile/ViewFlagOverrides.js +0 -36
  1111. package/lib/esm/tile/ViewFlagOverrides.js.map +0 -1
  1112. package/lib/esm/tile/map/ArcGISTileMap.d.ts +0 -31
  1113. package/lib/esm/tile/map/ArcGISTileMap.d.ts.map +0 -1
  1114. package/lib/esm/tile/map/ArcGISTileMap.js +0 -233
  1115. package/lib/esm/tile/map/ArcGISTileMap.js.map +0 -1
  1116. package/lib/esm/tile/map/ArcGisUtilities.d.ts +0 -124
  1117. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +0 -1
  1118. package/lib/esm/tile/map/ArcGisUtilities.js +0 -351
  1119. package/lib/esm/tile/map/ArcGisUtilities.js.map +0 -1
  1120. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +0 -40
  1121. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +0 -1
  1122. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js +0 -166
  1123. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +0 -1
  1124. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +0 -89
  1125. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +0 -1
  1126. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +0 -336
  1127. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +0 -1
  1128. package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts +0 -14
  1129. package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts.map +0 -1
  1130. package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js +0 -54
  1131. package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +0 -1
  1132. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +0 -12
  1133. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +0 -1
  1134. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +0 -26
  1135. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +0 -1
  1136. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts +0 -27
  1137. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +0 -1
  1138. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +0 -198
  1139. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +0 -1
  1140. package/lib/esm/tile/map/ImageryProviders/CoordinatesUtils.d.ts.map +0 -1
  1141. package/lib/esm/tile/map/ImageryProviders/CoordinatesUtils.js.map +0 -1
  1142. package/lib/esm/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.d.ts.map +0 -1
  1143. package/lib/esm/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +0 -1
  1144. package/lib/esm/tile/map/ImageryProviders/FeatureGeometryRenderer.d.ts +0 -47
  1145. package/lib/esm/tile/map/ImageryProviders/FeatureGeometryRenderer.d.ts.map +0 -1
  1146. package/lib/esm/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +0 -1
  1147. package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts +0 -43
  1148. package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts.map +0 -1
  1149. package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.js +0 -116
  1150. package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +0 -1
  1151. package/lib/esm/tile/map/ImageryProviders/FeatureSymbologyRenderer.d.ts +0 -15
  1152. package/lib/esm/tile/map/ImageryProviders/FeatureSymbologyRenderer.d.ts.map +0 -1
  1153. package/lib/esm/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +0 -1
  1154. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +0 -22
  1155. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +0 -1
  1156. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +0 -48
  1157. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +0 -1
  1158. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +0 -14
  1159. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +0 -1
  1160. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.js +0 -27
  1161. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +0 -1
  1162. package/lib/esm/tile/map/ImageryProviders/WebMercator.d.ts.map +0 -1
  1163. package/lib/esm/tile/map/ImageryProviders/WebMercator.js.map +0 -1
  1164. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +0 -27
  1165. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +0 -1
  1166. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +0 -174
  1167. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +0 -1
  1168. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +0 -22
  1169. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +0 -1
  1170. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +0 -156
  1171. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +0 -1
  1172. package/lib/esm/tile/map/MapTileAvailability.d.ts +0 -63
  1173. package/lib/esm/tile/map/MapTileAvailability.d.ts.map +0 -1
  1174. package/lib/esm/tile/map/MapTileAvailability.js +0 -225
  1175. package/lib/esm/tile/map/MapTileAvailability.js.map +0 -1
  1176. package/lib/esm/tile/map/MapTileLoader.d.ts +0 -38
  1177. package/lib/esm/tile/map/MapTileLoader.d.ts.map +0 -1
  1178. package/lib/esm/tile/map/MapTileLoader.js +0 -84
  1179. package/lib/esm/tile/map/MapTileLoader.js.map +0 -1
  1180. package/lib/esm/tile/map/UrlUtils.d.ts.map +0 -1
  1181. package/lib/esm/tile/map/UrlUtils.js.map +0 -1
  1182. package/lib/esm/tile/map/WmsCapabilities.d.ts +0 -64
  1183. package/lib/esm/tile/map/WmsCapabilities.d.ts.map +0 -1
  1184. package/lib/esm/tile/map/WmsCapabilities.js +0 -222
  1185. package/lib/esm/tile/map/WmsCapabilities.js.map +0 -1
  1186. package/lib/esm/tile/map/WmsUtilities.d.ts +0 -15
  1187. package/lib/esm/tile/map/WmsUtilities.d.ts.map +0 -1
  1188. package/lib/esm/tile/map/WmsUtilities.js +0 -37
  1189. package/lib/esm/tile/map/WmsUtilities.js.map +0 -1
  1190. package/lib/esm/tile/map/WmtsCapabilities.d.ts +0 -125
  1191. package/lib/esm/tile/map/WmtsCapabilities.d.ts.map +0 -1
  1192. package/lib/esm/tile/map/WmtsCapabilities.js +0 -487
  1193. package/lib/esm/tile/map/WmtsCapabilities.js.map +0 -1
  1194. /package/lib/cjs/{render → internal/render}/RealityMeshGraphicParams.js +0 -0
  1195. /package/lib/cjs/{render → internal/render}/RenderPlanarClassifier.js +0 -0
  1196. /package/lib/cjs/{tile → internal/tile}/map/ImageryProviders/CoordinatesUtils.d.ts +0 -0
  1197. /package/lib/cjs/{tile → internal/tile}/map/ImageryProviders/CoordinatesUtils.js +0 -0
  1198. /package/lib/cjs/{tile → internal/tile}/map/ImageryProviders/FeatureAttributeDrivenSymbology.d.ts +0 -0
  1199. /package/lib/cjs/{tile → internal/tile}/map/ImageryProviders/FeatureAttributeDrivenSymbology.js +0 -0
  1200. /package/lib/cjs/{tile → internal/tile}/map/ImageryProviders/FeatureGeometryRenderer.js +0 -0
  1201. /package/lib/cjs/{tile → internal/tile}/map/ImageryProviders/FeatureSymbologyRenderer.js +0 -0
  1202. /package/lib/cjs/{tile → internal/tile}/map/ImageryProviders/WebMercator.d.ts +0 -0
  1203. /package/lib/cjs/{tile → internal/tile}/map/ImageryProviders/WebMercator.js +0 -0
  1204. /package/lib/cjs/{tile → internal/tile}/map/UrlUtils.d.ts +0 -0
  1205. /package/lib/cjs/{tile → internal/tile}/map/UrlUtils.js +0 -0
  1206. /package/lib/esm/{render → internal/render}/RealityMeshGraphicParams.js +0 -0
  1207. /package/lib/esm/{render → internal/render}/RenderPlanarClassifier.js +0 -0
  1208. /package/lib/esm/{tile → internal/tile}/map/ImageryProviders/CoordinatesUtils.d.ts +0 -0
  1209. /package/lib/esm/{tile → internal/tile}/map/ImageryProviders/CoordinatesUtils.js +0 -0
  1210. /package/lib/esm/{tile → internal/tile}/map/ImageryProviders/FeatureAttributeDrivenSymbology.d.ts +0 -0
  1211. /package/lib/esm/{tile → internal/tile}/map/ImageryProviders/FeatureAttributeDrivenSymbology.js +0 -0
  1212. /package/lib/esm/{tile → internal/tile}/map/ImageryProviders/FeatureGeometryRenderer.js +0 -0
  1213. /package/lib/esm/{tile → internal/tile}/map/ImageryProviders/FeatureSymbologyRenderer.js +0 -0
  1214. /package/lib/esm/{tile → internal/tile}/map/ImageryProviders/WebMercator.d.ts +0 -0
  1215. /package/lib/esm/{tile → internal/tile}/map/ImageryProviders/WebMercator.js +0 -0
  1216. /package/lib/esm/{tile → internal/tile}/map/UrlUtils.d.ts +0 -0
  1217. /package/lib/esm/{tile → internal/tile}/map/UrlUtils.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"PlanarClassifier.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/PlanarClassifier.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { BeEvent, dispose } from \"@itwin/core-bentley\";\nimport {\n ColorDef, Frustum, FrustumPlanes, RenderMode, RenderTexture, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, TextureTransparency,\n} from \"@itwin/core-common\";\nimport { Matrix4d, Plane3dByOriginAndUnitNormal, Point3d, Range3d, Vector3d } from \"@itwin/core-geometry\";\nimport { PlanarClipMaskState } from \"../../../PlanarClipMaskState\";\nimport { GraphicsCollectorDrawArgs, SpatialClassifierTileTreeReference, TileTreeReference } from \"../../../tile/internal\";\nimport { SceneContext } from \"../../../ViewContext\";\nimport { FeatureSymbology } from \"../../../render/FeatureSymbology\";\nimport { RenderGraphic } from \"../../../render/RenderGraphic\";\nimport { RenderMemory } from \"../../../render/RenderMemory\";\nimport { PlanarClassifierTarget, RenderPlanarClassifier } from \"../../../render/RenderPlanarClassifier\";\nimport { BatchState } from \"./BatchState\";\nimport { BranchStack } from \"./BranchStack\";\nimport { CachedGeometry, Combine3TexturesGeometry, CombineTexturesGeometry, ViewportQuadGeometry } from \"./CachedGeometry\";\nimport { WebGLDisposable } from \"./Disposable\";\nimport { DrawCommands } from \"./DrawCommand\";\nimport { FrameBuffer } from \"./FrameBuffer\";\nimport { GL } from \"./GL\";\nimport { Batch, Branch } from \"./Graphic\";\nimport { PlanarTextureProjection } from \"./PlanarTextureProjection\";\nimport { RenderCommands } from \"./RenderCommands\";\nimport { RenderPass } from \"./RenderFlags\";\nimport { RenderState } from \"./RenderState\";\nimport { getDrawParams } from \"./ScratchDrawParams\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { TechniqueId } from \"./TechniqueId\";\nimport { Texture, TextureHandle } from \"./Texture\";\nimport { ActiveSpatialClassifier } from \"../../../SpatialClassifiersState\";\n\nexport enum PlanarClassifierContent { None = 0, MaskOnly = 1, ClassifierOnly = 2, ClassifierAndMask = 3 }\n\nfunction createTexture(handle: TextureHandle): Texture {\n return new Texture({\n handle,\n ownership: \"external\",\n type: RenderTexture.Type.TileSection,\n transparency: TextureTransparency.Opaque,\n });\n}\n\nfunction createTextureHandle(width: number, height: number, heightMult = 1.0) {\n return TextureHandle.createForAttachment(width, height * heightMult, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\n}\n\nclass ClassifierTextures implements WebGLDisposable {\n private constructor(public readonly color: Texture,\n public readonly feature: Texture,\n public readonly hilite: Texture) { }\n\n public get isDisposed(): boolean {\n return this.color.isDisposed\n && this.feature.isDisposed\n && this.hilite.isDisposed;\n }\n\n public [Symbol.dispose](): void {\n dispose(this.color);\n dispose(this.feature);\n dispose(this.hilite);\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n stats.addPlanarClassifier(this.color.bytesUsed);\n stats.addPlanarClassifier(this.feature.bytesUsed);\n stats.addPlanarClassifier(this.hilite.bytesUsed);\n }\n\n public static create(width: number, height: number): ClassifierTextures | undefined {\n const hColor = createTextureHandle(width, height);\n const hFeature = createTextureHandle(width, height);\n const hHilite = createTextureHandle(width, height);\n if (!hColor || !hFeature || !hHilite)\n return undefined;\n\n const color = createTexture(hColor);\n const feature = createTexture(hFeature);\n const hilite = createTexture(hHilite);\n if (!color || !feature || !hilite)\n return undefined;\n\n return new ClassifierTextures(color, feature, hilite);\n }\n}\n\nclass ClassifierFrameBuffers implements WebGLDisposable {\n private constructor(\n public readonly textures: ClassifierTextures,\n private readonly _hilite: FrameBuffer,\n private readonly _fbo: FrameBuffer,\n private readonly _clearGeom: ViewportQuadGeometry) {\n }\n\n public get isDisposed(): boolean {\n return this.textures.isDisposed && this._hilite.isDisposed && this._fbo.isDisposed && this._clearGeom.isDisposed;\n }\n\n public [Symbol.dispose](): void {\n dispose(this._fbo);\n dispose(this._clearGeom);\n dispose(this.textures);\n dispose(this._hilite);\n }\n\n public draw(cmds: DrawCommands, target: Target): void {\n System.instance.frameBufferStack.execute(this._fbo, true, false, () => {\n target.techniques.draw(getDrawParams(target, this._clearGeom));\n target.techniques.execute(target, cmds, RenderPass.PlanarClassification);\n });\n }\n\n public drawHilite(cmds: DrawCommands, target: Target): void {\n const system = System.instance;\n const gl = system.context;\n system.frameBufferStack.execute(this._hilite, true, false, () => {\n gl.clearColor(0, 0, 0, 0);\n gl.clear(GL.BufferBit.Color);\n target.techniques.execute(target, cmds, RenderPass.Hilite);\n });\n }\n\n public static create(width: number, height: number): ClassifierFrameBuffers | undefined {\n const textures = ClassifierTextures.create(width, height);\n if (undefined === textures)\n return undefined;\n\n const hiliteFbo = FrameBuffer.create([textures.hilite.texture]);\n if (undefined === hiliteFbo)\n return undefined;\n\n const fbo = FrameBuffer.create([textures.color.texture, textures.feature.texture]);\n if (undefined === fbo)\n return undefined;\n\n const geom = ViewportQuadGeometry.create(TechniqueId.ClearPickAndColor);\n return undefined !== geom ? new this(textures, hiliteFbo, fbo, geom) : undefined;\n }\n}\n\ninterface TextureAndFbo {\n texture: Texture;\n fbo: FrameBuffer;\n}\n\nabstract class SingleTextureFrameBuffer implements WebGLDisposable {\n public texture: Texture;\n protected fbo: FrameBuffer;\n public get isDisposed(): boolean { return this.texture.isDisposed && this.fbo.isDisposed; }\n public collectStatistics(stats: RenderMemory.Statistics): void { stats.addPlanarClassifier(this.texture.bytesUsed); }\n protected constructor(textureAndFbo: TextureAndFbo) {\n this.texture = textureAndFbo.texture;\n this.fbo = textureAndFbo.fbo;\n }\n public [Symbol.dispose](): void {\n dispose(this.texture);\n dispose(this.fbo);\n }\n public static createTextureAndFrameBuffer(width: number, height: number): TextureAndFbo | undefined {\n const hTexture = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\n if (!hTexture)\n return undefined;\n\n const texture = new Texture({ type: RenderTexture.Type.TileSection, ownership: \"external\", handle: hTexture, transparency: TextureTransparency.Opaque });\n if (!texture)\n return undefined;\n\n const fbo = FrameBuffer.create([texture.texture]);\n if (undefined === fbo)\n return undefined;\n\n return { texture, fbo };\n }\n}\nclass MaskFrameBuffer extends SingleTextureFrameBuffer {\n public static create(width: number, height: number): MaskFrameBuffer | undefined {\n const textureFbo = SingleTextureFrameBuffer.createTextureAndFrameBuffer(width, height);\n return undefined === textureFbo ? undefined : new MaskFrameBuffer(textureFbo);\n }\n public draw(cmds: DrawCommands, target: Target): void {\n const system = System.instance;\n const gl = system.context;\n\n system.frameBufferStack.execute(this.fbo, true, false, () => {\n gl.clearColor(0, 0, 0, 0);\n gl.clear(GL.BufferBit.Color);\n target.techniques.execute(target, cmds, RenderPass.PlanarClassification);\n });\n }\n}\nabstract class CombineTexturesFrameBuffer extends SingleTextureFrameBuffer {\n constructor(textureAndFbo: TextureAndFbo, private _combineGeom: CachedGeometry, private _width: number, private _height: number, private _heightMult: number) { super(textureAndFbo); }\n public compose(target: Target): void {\n const system = System.instance;\n const gl = system.context;\n system.context.viewport(0, 0, this._width, this._heightMult * this._height);\n system.frameBufferStack.execute(this.fbo, true, false, () => {\n gl.clearColor(0, 0, 0, 0);\n gl.clear(GL.BufferBit.Color);\n target.techniques.draw(getDrawParams(target, this._combineGeom));\n });\n }\n}\n\nclass ClassifierCombinationBuffer extends CombineTexturesFrameBuffer {\n public static create(width: number, height: number, classifierColor: Texture, classifierFeature: Texture): ClassifierAndMaskCombinationBuffer | undefined {\n const combineGeom = CombineTexturesGeometry.createGeometry(classifierColor.texture.getHandle()!, classifierFeature.texture.getHandle()!);\n if (undefined === combineGeom)\n return undefined;\n\n const textureFbo = SingleTextureFrameBuffer.createTextureAndFrameBuffer(width, 2 * height);\n return undefined === textureFbo ? undefined : new ClassifierCombinationBuffer(textureFbo, combineGeom, width, height, 2);\n }\n}\nclass ClassifierAndMaskCombinationBuffer extends CombineTexturesFrameBuffer {\n public static create(width: number, height: number, classifierColor: Texture, classifierFeature: Texture, mask: Texture): ClassifierAndMaskCombinationBuffer | undefined {\n const combineGeom = Combine3TexturesGeometry.createGeometry(classifierColor.texture.getHandle()!, classifierFeature.texture.getHandle()!, mask.texture.getHandle()!);\n if (undefined === combineGeom)\n return undefined;\n\n const textureFbo = SingleTextureFrameBuffer.createTextureAndFrameBuffer(width, 3 * height);\n return undefined === textureFbo ? undefined : new ClassifierAndMaskCombinationBuffer(textureFbo, combineGeom, width, height, 3);\n }\n}\n\nconst scratchPrevRenderState = new RenderState();\n\n/** @internal */\nexport class PlanarClassifier extends RenderPlanarClassifier implements RenderMemory.Consumer, WebGLDisposable {\n private _classifierBuffers?: ClassifierFrameBuffers;\n private _maskBuffer?: MaskFrameBuffer;\n private _classifierCombinedBuffer?: ClassifierCombinationBuffer;\n private _classifierAndMaskCombinedBuffer?: ClassifierAndMaskCombinationBuffer;\n private _projectionMatrix = Matrix4d.createIdentity();\n private _graphics?: RenderGraphic[];\n private readonly _classifierGraphics: RenderGraphic[] = [];\n private readonly _maskGraphics: RenderGraphic[] = [];\n private _frustum?: Frustum;\n private _width = 0;\n private _height = 0;\n private _baseBatchId = 0;\n private _anyHilited = false;\n private _anyOpaque = false;\n private _anyTranslucent = false;\n private _classifier?: ActiveSpatialClassifier;\n private readonly _plane = Plane3dByOriginAndUnitNormal.create(new Point3d(0, 0, 0), new Vector3d(0, 0, 1))!; // TBD -- Support other planes - default to X-Y for now.\n private readonly _renderState = new RenderState();\n private readonly _renderCommands: RenderCommands;\n private readonly _branchStack = new BranchStack();\n private readonly _batchState: BatchState;\n private _planarClipMask?: PlanarClipMaskState;\n private _classifierTreeRef?: SpatialClassifierTileTreeReference;\n private _planarClipMaskOverrides?: FeatureSymbology.Overrides;\n private _contentMode: PlanarClassifierContent = PlanarClassifierContent.None;\n private _removeMe?: () => void;\n private _featureSymbologySource: FeatureSymbology.Source = {\n onSourceDisposed: new BeEvent<() => void>(),\n };;\n\n private static _postProjectionMatrix = Matrix4d.createRowValues(\n 0, 1, 0, 0,\n 0, 0, -1, 0,\n 1, 0, 0, 0,\n 0, 0, 0, 1);\n private _debugFrustum?: Frustum;\n private _doDebugFrustum = false;\n private _debugFrustumGraphic?: RenderGraphic = undefined;\n private _isClassifyingPointCloud?: boolean; // we will detect this the first time we draw\n private readonly _bgColor = ColorDef.from(0, 0, 0, 255);\n\n private constructor(classifier: ActiveSpatialClassifier | undefined, target: Target) {\n super();\n this._classifier = classifier;\n\n const flags = this._renderState.flags;\n flags.depthMask = flags.blend = flags.depthTest = false;\n\n this._batchState = new BatchState(this._branchStack);\n this._renderCommands = new RenderCommands(target, this._branchStack, this._batchState);\n }\n public get textureImageCount(): number { return this._contentMode; }\n\n public getParams(params: Float32Array): void {\n params[0] = this.insideDisplay;\n params[1] = this.outsideDisplay;\n params[2] = this._contentMode;\n if (this._planarClipMask?.settings.invert) // If the mask sense is inverted, negate the contentMode to indicate this to the shader.\n params[2] = - params[2];\n\n params[3] = (this._planarClipMask?.settings.transparency === undefined) ? -1 : this._planarClipMask.settings.transparency;\n\n }\n\n public get hiliteTexture(): Texture | undefined { return undefined !== this._classifierBuffers ? this._classifierBuffers.textures.hilite : undefined; }\n public get projectionMatrix(): Matrix4d { return this._projectionMatrix; }\n // public get properties(): SpatialClassifier { return this._classifier; }\n public get baseBatchId(): number { return this._baseBatchId; }\n public get anyHilited(): boolean { return this._anyHilited; }\n public get anyOpaque(): boolean { return this._anyOpaque; }\n public get anyTranslucent(): boolean { return this._anyTranslucent; }\n public get insideDisplay(): SpatialClassifierInsideDisplay { return this._classifier ? this._classifier.flags.inside : SpatialClassifierInsideDisplay.Off; }\n public get outsideDisplay(): SpatialClassifierOutsideDisplay { return this._classifier ? this._classifier.flags.outside : SpatialClassifierOutsideDisplay.On; }\n public get isClassifyingPointCloud(): boolean { return true === this._isClassifyingPointCloud; }\n\n public addGraphic(graphic: RenderGraphic) {\n this._graphics!.push(graphic);\n }\n\n public static create(properties: ActiveSpatialClassifier | undefined, target: Target): PlanarClassifier {\n return new PlanarClassifier(properties, target);\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n if (undefined !== this._classifierBuffers)\n this._classifierBuffers.textures.collectStatistics(stats);\n\n if (undefined !== this._maskBuffer)\n this._maskBuffer.collectStatistics(stats);\n\n if (undefined !== this._classifierCombinedBuffer)\n this._classifierCombinedBuffer.collectStatistics(stats);\n\n if (undefined !== this._classifierAndMaskCombinedBuffer)\n this._classifierAndMaskCombinedBuffer.collectStatistics(stats);\n }\n\n public get isDisposed(): boolean { return undefined === this._classifierBuffers; }\n\n public [Symbol.dispose]() {\n this._classifierBuffers = dispose(this._classifierBuffers);\n this._maskBuffer = dispose(this._maskBuffer);\n this._classifierCombinedBuffer = dispose(this._classifierCombinedBuffer);\n this._classifierAndMaskCombinedBuffer = dispose(this._classifierAndMaskCombinedBuffer);\n if (this._removeMe) {\n this._removeMe();\n this._removeMe = undefined;\n }\n this._featureSymbologySource.onSourceDisposed.raiseEvent();\n }\n\n public get texture(): Texture | undefined {\n switch (this._contentMode) {\n case PlanarClassifierContent.None:\n return undefined;\n case PlanarClassifierContent.ClassifierOnly:\n return this._classifierCombinedBuffer?.texture;\n case PlanarClassifierContent.MaskOnly:\n return this._maskBuffer?.texture;\n case PlanarClassifierContent.ClassifierAndMask:\n return this._classifierAndMaskCombinedBuffer?.texture;\n }\n }\n public getOrCreateClassifierTexture(): Texture | undefined {\n if (undefined === this._classifierBuffers)\n this._classifierBuffers = ClassifierFrameBuffers.create(this._width, this._height);\n if (undefined !== this._classifierBuffers && undefined === this._classifierCombinedBuffer)\n this._classifierCombinedBuffer = ClassifierCombinationBuffer.create(this._width, this._height, this._classifierBuffers.textures.color, this._classifierBuffers.textures.feature);\n\n return this._classifierCombinedBuffer?.texture;\n }\n\n private pushBatches(batchState: BatchState, graphics: RenderGraphic[]) {\n graphics.forEach((graphic) => {\n if (graphic instanceof Batch) {\n batchState.push(graphic, true);\n batchState.pop();\n } else if (graphic instanceof Branch) {\n this.pushBatches(batchState, graphic.branch.entries);\n }\n });\n }\n public get sourceTransparency() {\n return this._classifierTreeRef?.transparency;\n }\n\n public pushBatchState(batchState: BatchState) {\n this._baseBatchId = batchState.nextBatchId - 1;\n if (undefined !== this._classifierGraphics)\n this.pushBatches(batchState, this._classifierGraphics);\n }\n\n public setSource(classifierTreeRef?: SpatialClassifierTileTreeReference, planarClipMask?: PlanarClipMaskState) {\n this._classifierTreeRef = classifierTreeRef;\n this._classifier = classifierTreeRef?.activeClassifier;\n this._planarClipMask = planarClipMask;\n }\n\n public collectGraphics(context: SceneContext, target: PlanarClassifierTarget): void {\n this._classifierGraphics.length = this._maskGraphics.length = 0;\n if (undefined === context.viewingSpace)\n return;\n\n const viewState = context.viewingSpace.view;\n if (!viewState.isSpatialView())\n return;\n\n this._doDebugFrustum = context.target.debugControl?.displayMaskFrustum ?? false;\n\n const maxTextureSize = System.instance.maxTexSizeAllow;\n const requiredHeight = maxTextureSize;\n const requiredWidth = maxTextureSize;\n\n if (requiredWidth !== this._width || requiredHeight !== this._height)\n this[Symbol.dispose]();\n\n this._width = requiredWidth;\n this._height = requiredHeight;\n const maskRange = Range3d.createNull();\n const maskTrees = this._planarClipMask?.getTileTrees(context, target.modelId, maskRange);\n if (!maskTrees && !this._classifierTreeRef)\n return;\n\n const allTrees = maskTrees ? maskTrees.slice() : new Array<TileTreeReference>();\n if (this._classifierTreeRef)\n allTrees.push(this._classifierTreeRef);\n\n const projection = PlanarTextureProjection.computePlanarTextureProjection(this._plane, context, target, allTrees, viewState, this._width, this._height, maskRange);\n if (!projection.textureFrustum || !projection.projectionMatrix || !projection.worldToViewMap)\n return;\n\n this._projectionMatrix = projection.projectionMatrix;\n this._frustum = projection.textureFrustum;\n this._debugFrustum = projection.debugFrustum;\n this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides(context, this._featureSymbologySource);\n if (!this._planarClipMask?.usingViewportOverrides && this._removeMe) {\n this._removeMe();\n this._removeMe = undefined;\n } else if (this._planarClipMask?.usingViewportOverrides && !this._removeMe) {\n this._removeMe = context.viewport.onFeatureOverridesChanged.addListener(() => {\n this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides(context, this._featureSymbologySource);\n context.viewport.requestRedraw();\n });\n }\n\n const drawTree = (treeRef: TileTreeReference, graphics: RenderGraphic[]) => {\n this._graphics = graphics;\n const frustumPlanes = this._frustum ? FrustumPlanes.fromFrustum(this._frustum) : FrustumPlanes.createEmpty();\n const drawArgs = GraphicsCollectorDrawArgs.create(context, this, treeRef, frustumPlanes, projection.worldToViewMap!);\n if (undefined !== drawArgs)\n treeRef.draw(drawArgs);\n\n this._graphics = undefined;\n };\n if (this._classifierTreeRef)\n drawTree(this._classifierTreeRef, this._classifierGraphics);\n\n if (maskTrees)\n maskTrees.forEach((maskTree) => drawTree(maskTree, this._maskGraphics));\n\n // Shader behaves slightly differently when classifying surfaces vs point clouds.\n this._isClassifyingPointCloud = target.isPointCloud;\n\n if (this._doDebugFrustum) {\n this._debugFrustumGraphic = dispose(this._debugFrustumGraphic);\n const builder = context.createSceneGraphicBuilder();\n\n builder.setSymbology(ColorDef.green, ColorDef.green, 2);\n builder.addFrustum(context.viewingSpace.getFrustum());\n builder.setSymbology(ColorDef.red, ColorDef.red, 2);\n builder.addFrustum(this._debugFrustum!);\n builder.setSymbology(ColorDef.blue, ColorDef.blue, 2);\n builder.addFrustum(this._frustum);\n\n builder.setSymbology(ColorDef.from(0, 200, 0, 222), ColorDef.from(0, 200, 0, 222), 2);\n builder.addFrustumSides(context.viewingSpace.getFrustum());\n builder.setSymbology(ColorDef.from(200, 0, 0, 222), ColorDef.from(200, 0, 0, 222), 2);\n builder.addFrustumSides(this._debugFrustum!);\n builder.setSymbology(ColorDef.from(0, 0, 200, 222), ColorDef.from(0, 0, 200, 222), 2);\n builder.addFrustumSides(this._frustum);\n this._debugFrustumGraphic = builder.finish();\n context.outputGraphic(this._debugFrustumGraphic);\n }\n }\n\n public draw(target: Target) {\n if (undefined === this._frustum)\n return;\n\n this._contentMode = PlanarClassifierContent.None;\n let combinationBuffer: ClassifierCombinationBuffer | undefined;\n if (this._classifierGraphics.length === 0) {\n if (this._maskGraphics.length === 0) {\n return;\n } else {\n if (undefined === this._maskBuffer) {\n this._maskBuffer = MaskFrameBuffer.create(this._width, this._height);\n if (undefined === this._maskBuffer)\n return;\n }\n this._contentMode = PlanarClassifierContent.MaskOnly;\n }\n } else {\n if (undefined === this._classifierBuffers) {\n this._classifierBuffers = ClassifierFrameBuffers.create(this._width, this._height);\n if (undefined === this._classifierBuffers)\n return;\n }\n if (this._maskGraphics.length === 0) {\n if (undefined === this._classifierCombinedBuffer) {\n combinationBuffer = this._classifierCombinedBuffer = ClassifierCombinationBuffer.create(this._width, this._height, this._classifierBuffers.textures.color, this._classifierBuffers.textures.feature);\n if (undefined === this._classifierCombinedBuffer)\n return;\n }\n this._contentMode = PlanarClassifierContent.ClassifierOnly;\n combinationBuffer = this._classifierCombinedBuffer;\n } else {\n if (undefined === this._maskBuffer) {\n this._maskBuffer = MaskFrameBuffer.create(this._width, this._height);\n if (undefined === this._maskBuffer)\n return;\n }\n if (undefined === this._classifierAndMaskCombinedBuffer) {\n combinationBuffer = this._classifierAndMaskCombinedBuffer = ClassifierAndMaskCombinationBuffer.create(this._width, this._height, this._classifierBuffers.textures.color, this._classifierBuffers.textures.feature, this._maskBuffer.texture);\n if (undefined === this._classifierAndMaskCombinedBuffer)\n return;\n }\n combinationBuffer = this._classifierAndMaskCombinedBuffer;\n this._contentMode = PlanarClassifierContent.ClassifierAndMask;\n }\n }\n\n // Temporarily override the Target's state.\n const system = System.instance;\n const maskViewFlags = {\n renderMode: RenderMode.SmoothShade,\n wiremesh: false,\n transparency: !this.isClassifyingPointCloud, // point clouds don't support transparency.\n textures: false,\n lighting: false,\n shadows: false,\n monochrome: false,\n materials: false,\n ambientOcclusion: false,\n visibleEdges: false,\n hiddenEdges: false,\n };\n const prevState = system.currentRenderState.clone(scratchPrevRenderState);\n system.context.viewport(0, 0, this._width, this._height);\n const vf = target.currentViewFlags.copy(this._classifierTreeRef ? this._classifierTreeRef.viewFlags : maskViewFlags);\n\n system.applyRenderState(this._renderState);\n const prevPlan = target.plan;\n const prevOverrides = target.currentFeatureSymbologyOverrides;\n\n target.uniforms.style.changeBackgroundColor(this._bgColor); // Avoid white on white reversal. Will be reset in changeRenderPlan below.\n target.changeFrustum(this._frustum, this._frustum.getFraction(), true);\n this._anyTranslucent = false;\n\n const prevProjMatrix = target.uniforms.frustum.projectionMatrix;\n target.uniforms.frustum.changeProjectionMatrix(PlanarClassifier._postProjectionMatrix.multiplyMatrixMatrix(prevProjMatrix));\n target.uniforms.branch.changeRenderPlan(vf, target.plan.is3d, target.plan.hline);\n\n const addCmds = (oldCmds: DrawCommands, newCmds: DrawCommands) => {\n if (undefined === newCmds)\n return oldCmds;\n if (newCmds.length > 50000) {\n \t// This method is slower for smaller array sizes, but when the size of newCmds gets larger it's performance is ok.\n return oldCmds.concat(newCmds);\n } else {\n \t// This method runs faster, but gets a stack overflow when the size of newCmds is too large.\n oldCmds.push(...newCmds);\n return oldCmds;\n }\n }\n\n const renderCommands = this._renderCommands;\n const getDrawCommands = (graphics: RenderGraphic[]) => {\n this._batchState.reset();\n renderCommands.reset(target, this._branchStack, this._batchState);\n renderCommands.collectGraphicsForPlanarProjection(graphics);\n\n // Draw the classifiers into our attachments.\n // When using Display.ElementColor, the color and transparency come from the classifier geometry. Therefore we may need to draw the classified geometry\n // in a different pass - or both passes - depending on the transparency of the classifiers.\n // NB: \"Outside\" geometry by definition cannot take color/transparency from element...\n let cmds = renderCommands.getCommands(RenderPass.OpaquePlanar);\n\n // NB: We don't strictly require the classifier geometry to be planar, and sometimes (e.g., \"planar\" polyface/bspsurf) we do not detect planarity.\n cmds = addCmds(cmds, renderCommands.getCommands(RenderPass.OpaqueGeneral));\n cmds = addCmds(cmds, renderCommands.getCommands(RenderPass.OpaqueLinear));\n this._anyOpaque = cmds.length > 0;\n const transCmds = renderCommands.getCommands(RenderPass.Translucent);\n if (transCmds.length > 0) {\n cmds = addCmds(cmds, renderCommands.getCommands(RenderPass.Translucent));\n this._anyTranslucent = true;\n }\n return cmds;\n };\n\n if (this._classifierGraphics.length > 0 && this._classifierBuffers) {\n this._classifierBuffers.draw(getDrawCommands(this._classifierGraphics), target);\n\n // Draw any hilited classifiers.\n const hiliteCommands = renderCommands.getCommands(RenderPass.Hilite);\n this._anyHilited = 0 !== hiliteCommands.length;\n if (this._anyHilited)\n this._classifierBuffers.drawHilite(hiliteCommands, target);\n }\n if (this._maskGraphics.length > 0 && this._maskBuffer) {\n if (this._planarClipMaskOverrides)\n target.overrideFeatureSymbology(this._planarClipMaskOverrides);\n if (this._planarClipMask && this._planarClipMask.settings.transparency !== undefined && this._planarClipMask.settings.transparency > 0.0)\n this._anyTranslucent = true;\n\n this._maskBuffer.draw(getDrawCommands(this._maskGraphics), target);\n\n }\n if (combinationBuffer)\n combinationBuffer.compose(target);\n\n this._batchState.reset();\n target.changeRenderPlan(prevPlan);\n target.overrideFeatureSymbology(prevOverrides);\n\n system.applyRenderState(prevState);\n system.context.viewport(0, 0, target.viewRect.width, target.viewRect.height);\n }\n}\n\n"]}
1
+ {"version":3,"file":"PlanarClassifier.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/PlanarClassifier.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { BeEvent, dispose } from \"@itwin/core-bentley\";\nimport {\n ColorDef, Frustum, FrustumPlanes, RenderMode, RenderTexture, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, TextureTransparency,\n} from \"@itwin/core-common\";\nimport { Matrix4d, Plane3dByOriginAndUnitNormal, Point3d, Range3d, Vector3d } from \"@itwin/core-geometry\";\nimport { PlanarClipMaskState } from \"../../../PlanarClipMaskState\";\nimport { GraphicsCollectorDrawArgs, SpatialClassifierTileTreeReference, TileTreeReference } from \"../../../tile/internal\";\nimport { SceneContext } from \"../../../ViewContext\";\nimport { FeatureSymbology } from \"../../../render/FeatureSymbology\";\nimport { RenderGraphic } from \"../../../render/RenderGraphic\";\nimport { RenderMemory } from \"../../../render/RenderMemory\";\nimport { PlanarClassifierTarget, RenderPlanarClassifier } from \"../RenderPlanarClassifier\";\nimport { BatchState } from \"./BatchState\";\nimport { BranchStack } from \"./BranchStack\";\nimport { CachedGeometry, Combine3TexturesGeometry, CombineTexturesGeometry, ViewportQuadGeometry } from \"./CachedGeometry\";\nimport { WebGLDisposable } from \"./Disposable\";\nimport { DrawCommands } from \"./DrawCommand\";\nimport { FrameBuffer } from \"./FrameBuffer\";\nimport { GL } from \"./GL\";\nimport { Batch, Branch } from \"./Graphic\";\nimport { PlanarTextureProjection } from \"./PlanarTextureProjection\";\nimport { RenderCommands } from \"./RenderCommands\";\nimport { RenderPass } from \"./RenderFlags\";\nimport { RenderState } from \"./RenderState\";\nimport { getDrawParams } from \"./ScratchDrawParams\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { TechniqueId } from \"./TechniqueId\";\nimport { Texture, TextureHandle } from \"./Texture\";\nimport { ActiveSpatialClassifier } from \"../../../SpatialClassifiersState\";\n\nexport enum PlanarClassifierContent { None = 0, MaskOnly = 1, ClassifierOnly = 2, ClassifierAndMask = 3 }\n\nfunction createTexture(handle: TextureHandle): Texture {\n return new Texture({\n handle,\n ownership: \"external\",\n type: RenderTexture.Type.TileSection,\n transparency: TextureTransparency.Opaque,\n });\n}\n\nfunction createTextureHandle(width: number, height: number, heightMult = 1.0) {\n return TextureHandle.createForAttachment(width, height * heightMult, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\n}\n\nclass ClassifierTextures implements WebGLDisposable {\n private constructor(public readonly color: Texture,\n public readonly feature: Texture,\n public readonly hilite: Texture) { }\n\n public get isDisposed(): boolean {\n return this.color.isDisposed\n && this.feature.isDisposed\n && this.hilite.isDisposed;\n }\n\n public [Symbol.dispose](): void {\n dispose(this.color);\n dispose(this.feature);\n dispose(this.hilite);\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n stats.addPlanarClassifier(this.color.bytesUsed);\n stats.addPlanarClassifier(this.feature.bytesUsed);\n stats.addPlanarClassifier(this.hilite.bytesUsed);\n }\n\n public static create(width: number, height: number): ClassifierTextures | undefined {\n const hColor = createTextureHandle(width, height);\n const hFeature = createTextureHandle(width, height);\n const hHilite = createTextureHandle(width, height);\n if (!hColor || !hFeature || !hHilite)\n return undefined;\n\n const color = createTexture(hColor);\n const feature = createTexture(hFeature);\n const hilite = createTexture(hHilite);\n if (!color || !feature || !hilite)\n return undefined;\n\n return new ClassifierTextures(color, feature, hilite);\n }\n}\n\nclass ClassifierFrameBuffers implements WebGLDisposable {\n private constructor(\n public readonly textures: ClassifierTextures,\n private readonly _hilite: FrameBuffer,\n private readonly _fbo: FrameBuffer,\n private readonly _clearGeom: ViewportQuadGeometry) {\n }\n\n public get isDisposed(): boolean {\n return this.textures.isDisposed && this._hilite.isDisposed && this._fbo.isDisposed && this._clearGeom.isDisposed;\n }\n\n public [Symbol.dispose](): void {\n dispose(this._fbo);\n dispose(this._clearGeom);\n dispose(this.textures);\n dispose(this._hilite);\n }\n\n public draw(cmds: DrawCommands, target: Target): void {\n System.instance.frameBufferStack.execute(this._fbo, true, false, () => {\n target.techniques.draw(getDrawParams(target, this._clearGeom));\n target.techniques.execute(target, cmds, RenderPass.PlanarClassification);\n });\n }\n\n public drawHilite(cmds: DrawCommands, target: Target): void {\n const system = System.instance;\n const gl = system.context;\n system.frameBufferStack.execute(this._hilite, true, false, () => {\n gl.clearColor(0, 0, 0, 0);\n gl.clear(GL.BufferBit.Color);\n target.techniques.execute(target, cmds, RenderPass.Hilite);\n });\n }\n\n public static create(width: number, height: number): ClassifierFrameBuffers | undefined {\n const textures = ClassifierTextures.create(width, height);\n if (undefined === textures)\n return undefined;\n\n const hiliteFbo = FrameBuffer.create([textures.hilite.texture]);\n if (undefined === hiliteFbo)\n return undefined;\n\n const fbo = FrameBuffer.create([textures.color.texture, textures.feature.texture]);\n if (undefined === fbo)\n return undefined;\n\n const geom = ViewportQuadGeometry.create(TechniqueId.ClearPickAndColor);\n return undefined !== geom ? new this(textures, hiliteFbo, fbo, geom) : undefined;\n }\n}\n\ninterface TextureAndFbo {\n texture: Texture;\n fbo: FrameBuffer;\n}\n\nabstract class SingleTextureFrameBuffer implements WebGLDisposable {\n public texture: Texture;\n protected fbo: FrameBuffer;\n public get isDisposed(): boolean { return this.texture.isDisposed && this.fbo.isDisposed; }\n public collectStatistics(stats: RenderMemory.Statistics): void { stats.addPlanarClassifier(this.texture.bytesUsed); }\n protected constructor(textureAndFbo: TextureAndFbo) {\n this.texture = textureAndFbo.texture;\n this.fbo = textureAndFbo.fbo;\n }\n public [Symbol.dispose](): void {\n dispose(this.texture);\n dispose(this.fbo);\n }\n public static createTextureAndFrameBuffer(width: number, height: number): TextureAndFbo | undefined {\n const hTexture = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\n if (!hTexture)\n return undefined;\n\n const texture = new Texture({ type: RenderTexture.Type.TileSection, ownership: \"external\", handle: hTexture, transparency: TextureTransparency.Opaque });\n if (!texture)\n return undefined;\n\n const fbo = FrameBuffer.create([texture.texture]);\n if (undefined === fbo)\n return undefined;\n\n return { texture, fbo };\n }\n}\nclass MaskFrameBuffer extends SingleTextureFrameBuffer {\n public static create(width: number, height: number): MaskFrameBuffer | undefined {\n const textureFbo = SingleTextureFrameBuffer.createTextureAndFrameBuffer(width, height);\n return undefined === textureFbo ? undefined : new MaskFrameBuffer(textureFbo);\n }\n public draw(cmds: DrawCommands, target: Target): void {\n const system = System.instance;\n const gl = system.context;\n\n system.frameBufferStack.execute(this.fbo, true, false, () => {\n gl.clearColor(0, 0, 0, 0);\n gl.clear(GL.BufferBit.Color);\n target.techniques.execute(target, cmds, RenderPass.PlanarClassification);\n });\n }\n}\nabstract class CombineTexturesFrameBuffer extends SingleTextureFrameBuffer {\n constructor(textureAndFbo: TextureAndFbo, private _combineGeom: CachedGeometry, private _width: number, private _height: number, private _heightMult: number) { super(textureAndFbo); }\n public compose(target: Target): void {\n const system = System.instance;\n const gl = system.context;\n system.context.viewport(0, 0, this._width, this._heightMult * this._height);\n system.frameBufferStack.execute(this.fbo, true, false, () => {\n gl.clearColor(0, 0, 0, 0);\n gl.clear(GL.BufferBit.Color);\n target.techniques.draw(getDrawParams(target, this._combineGeom));\n });\n }\n}\n\nclass ClassifierCombinationBuffer extends CombineTexturesFrameBuffer {\n public static create(width: number, height: number, classifierColor: Texture, classifierFeature: Texture): ClassifierAndMaskCombinationBuffer | undefined {\n const combineGeom = CombineTexturesGeometry.createGeometry(classifierColor.texture.getHandle()!, classifierFeature.texture.getHandle()!);\n if (undefined === combineGeom)\n return undefined;\n\n const textureFbo = SingleTextureFrameBuffer.createTextureAndFrameBuffer(width, 2 * height);\n return undefined === textureFbo ? undefined : new ClassifierCombinationBuffer(textureFbo, combineGeom, width, height, 2);\n }\n}\nclass ClassifierAndMaskCombinationBuffer extends CombineTexturesFrameBuffer {\n public static create(width: number, height: number, classifierColor: Texture, classifierFeature: Texture, mask: Texture): ClassifierAndMaskCombinationBuffer | undefined {\n const combineGeom = Combine3TexturesGeometry.createGeometry(classifierColor.texture.getHandle()!, classifierFeature.texture.getHandle()!, mask.texture.getHandle()!);\n if (undefined === combineGeom)\n return undefined;\n\n const textureFbo = SingleTextureFrameBuffer.createTextureAndFrameBuffer(width, 3 * height);\n return undefined === textureFbo ? undefined : new ClassifierAndMaskCombinationBuffer(textureFbo, combineGeom, width, height, 3);\n }\n}\n\nconst scratchPrevRenderState = new RenderState();\n\n/** @internal */\nexport class PlanarClassifier extends RenderPlanarClassifier implements RenderMemory.Consumer, WebGLDisposable {\n private _classifierBuffers?: ClassifierFrameBuffers;\n private _maskBuffer?: MaskFrameBuffer;\n private _classifierCombinedBuffer?: ClassifierCombinationBuffer;\n private _classifierAndMaskCombinedBuffer?: ClassifierAndMaskCombinationBuffer;\n private _projectionMatrix = Matrix4d.createIdentity();\n private _graphics?: RenderGraphic[];\n private readonly _classifierGraphics: RenderGraphic[] = [];\n private readonly _maskGraphics: RenderGraphic[] = [];\n private _frustum?: Frustum;\n private _width = 0;\n private _height = 0;\n private _baseBatchId = 0;\n private _anyHilited = false;\n private _anyOpaque = false;\n private _anyTranslucent = false;\n private _classifier?: ActiveSpatialClassifier;\n private readonly _plane = Plane3dByOriginAndUnitNormal.create(new Point3d(0, 0, 0), new Vector3d(0, 0, 1))!; // TBD -- Support other planes - default to X-Y for now.\n private readonly _renderState = new RenderState();\n private readonly _renderCommands: RenderCommands;\n private readonly _branchStack = new BranchStack();\n private readonly _batchState: BatchState;\n private _planarClipMask?: PlanarClipMaskState;\n private _classifierTreeRef?: SpatialClassifierTileTreeReference;\n private _planarClipMaskOverrides?: FeatureSymbology.Overrides;\n private _contentMode: PlanarClassifierContent = PlanarClassifierContent.None;\n private _removeMe?: () => void;\n private _featureSymbologySource: FeatureSymbology.Source = {\n onSourceDisposed: new BeEvent<() => void>(),\n };;\n\n private static _postProjectionMatrix = Matrix4d.createRowValues(\n 0, 1, 0, 0,\n 0, 0, -1, 0,\n 1, 0, 0, 0,\n 0, 0, 0, 1);\n private _debugFrustum?: Frustum;\n private _doDebugFrustum = false;\n private _debugFrustumGraphic?: RenderGraphic = undefined;\n private _isClassifyingPointCloud?: boolean; // we will detect this the first time we draw\n private readonly _bgColor = ColorDef.from(0, 0, 0, 255);\n\n private constructor(classifier: ActiveSpatialClassifier | undefined, target: Target) {\n super();\n this._classifier = classifier;\n\n const flags = this._renderState.flags;\n flags.depthMask = flags.blend = flags.depthTest = false;\n\n this._batchState = new BatchState(this._branchStack);\n this._renderCommands = new RenderCommands(target, this._branchStack, this._batchState);\n }\n public get textureImageCount(): number { return this._contentMode; }\n\n public getParams(params: Float32Array): void {\n params[0] = this.insideDisplay;\n params[1] = this.outsideDisplay;\n params[2] = this._contentMode;\n if (this._planarClipMask?.settings.invert) // If the mask sense is inverted, negate the contentMode to indicate this to the shader.\n params[2] = - params[2];\n\n params[3] = (this._planarClipMask?.settings.transparency === undefined) ? -1 : this._planarClipMask.settings.transparency;\n\n }\n\n public get hiliteTexture(): Texture | undefined { return undefined !== this._classifierBuffers ? this._classifierBuffers.textures.hilite : undefined; }\n public get projectionMatrix(): Matrix4d { return this._projectionMatrix; }\n // public get properties(): SpatialClassifier { return this._classifier; }\n public get baseBatchId(): number { return this._baseBatchId; }\n public get anyHilited(): boolean { return this._anyHilited; }\n public get anyOpaque(): boolean { return this._anyOpaque; }\n public get anyTranslucent(): boolean { return this._anyTranslucent; }\n public get insideDisplay(): SpatialClassifierInsideDisplay { return this._classifier ? this._classifier.flags.inside : SpatialClassifierInsideDisplay.Off; }\n public get outsideDisplay(): SpatialClassifierOutsideDisplay { return this._classifier ? this._classifier.flags.outside : SpatialClassifierOutsideDisplay.On; }\n public get isClassifyingPointCloud(): boolean { return true === this._isClassifyingPointCloud; }\n\n public addGraphic(graphic: RenderGraphic) {\n this._graphics!.push(graphic);\n }\n\n public static create(properties: ActiveSpatialClassifier | undefined, target: Target): PlanarClassifier {\n return new PlanarClassifier(properties, target);\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n if (undefined !== this._classifierBuffers)\n this._classifierBuffers.textures.collectStatistics(stats);\n\n if (undefined !== this._maskBuffer)\n this._maskBuffer.collectStatistics(stats);\n\n if (undefined !== this._classifierCombinedBuffer)\n this._classifierCombinedBuffer.collectStatistics(stats);\n\n if (undefined !== this._classifierAndMaskCombinedBuffer)\n this._classifierAndMaskCombinedBuffer.collectStatistics(stats);\n }\n\n public get isDisposed(): boolean { return undefined === this._classifierBuffers; }\n\n public [Symbol.dispose]() {\n this._classifierBuffers = dispose(this._classifierBuffers);\n this._maskBuffer = dispose(this._maskBuffer);\n this._classifierCombinedBuffer = dispose(this._classifierCombinedBuffer);\n this._classifierAndMaskCombinedBuffer = dispose(this._classifierAndMaskCombinedBuffer);\n if (this._removeMe) {\n this._removeMe();\n this._removeMe = undefined;\n }\n this._featureSymbologySource.onSourceDisposed.raiseEvent();\n }\n\n public get texture(): Texture | undefined {\n switch (this._contentMode) {\n case PlanarClassifierContent.None:\n return undefined;\n case PlanarClassifierContent.ClassifierOnly:\n return this._classifierCombinedBuffer?.texture;\n case PlanarClassifierContent.MaskOnly:\n return this._maskBuffer?.texture;\n case PlanarClassifierContent.ClassifierAndMask:\n return this._classifierAndMaskCombinedBuffer?.texture;\n }\n }\n public getOrCreateClassifierTexture(): Texture | undefined {\n if (undefined === this._classifierBuffers)\n this._classifierBuffers = ClassifierFrameBuffers.create(this._width, this._height);\n if (undefined !== this._classifierBuffers && undefined === this._classifierCombinedBuffer)\n this._classifierCombinedBuffer = ClassifierCombinationBuffer.create(this._width, this._height, this._classifierBuffers.textures.color, this._classifierBuffers.textures.feature);\n\n return this._classifierCombinedBuffer?.texture;\n }\n\n private pushBatches(batchState: BatchState, graphics: RenderGraphic[]) {\n graphics.forEach((graphic) => {\n if (graphic instanceof Batch) {\n batchState.push(graphic, true);\n batchState.pop();\n } else if (graphic instanceof Branch) {\n this.pushBatches(batchState, graphic.branch.entries);\n }\n });\n }\n public get sourceTransparency() {\n return this._classifierTreeRef?.transparency;\n }\n\n public pushBatchState(batchState: BatchState) {\n this._baseBatchId = batchState.nextBatchId - 1;\n if (undefined !== this._classifierGraphics)\n this.pushBatches(batchState, this._classifierGraphics);\n }\n\n public setSource(classifierTreeRef?: SpatialClassifierTileTreeReference, planarClipMask?: PlanarClipMaskState) {\n this._classifierTreeRef = classifierTreeRef;\n this._classifier = classifierTreeRef?.activeClassifier;\n this._planarClipMask = planarClipMask;\n }\n\n public collectGraphics(context: SceneContext, target: PlanarClassifierTarget): void {\n this._classifierGraphics.length = this._maskGraphics.length = 0;\n if (undefined === context.viewingSpace)\n return;\n\n const viewState = context.viewingSpace.view;\n if (!viewState.isSpatialView())\n return;\n\n this._doDebugFrustum = context.target.debugControl?.displayMaskFrustum ?? false;\n\n const maxTextureSize = System.instance.maxTexSizeAllow;\n const requiredHeight = maxTextureSize;\n const requiredWidth = maxTextureSize;\n\n if (requiredWidth !== this._width || requiredHeight !== this._height)\n this[Symbol.dispose]();\n\n this._width = requiredWidth;\n this._height = requiredHeight;\n const maskRange = Range3d.createNull();\n const maskTrees = this._planarClipMask?.getTileTrees(context, target.modelId, maskRange);\n if (!maskTrees && !this._classifierTreeRef)\n return;\n\n const allTrees = maskTrees ? maskTrees.slice() : new Array<TileTreeReference>();\n if (this._classifierTreeRef)\n allTrees.push(this._classifierTreeRef);\n\n const projection = PlanarTextureProjection.computePlanarTextureProjection(this._plane, context, target, allTrees, viewState, this._width, this._height, maskRange);\n if (!projection.textureFrustum || !projection.projectionMatrix || !projection.worldToViewMap)\n return;\n\n this._projectionMatrix = projection.projectionMatrix;\n this._frustum = projection.textureFrustum;\n this._debugFrustum = projection.debugFrustum;\n this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides(context, this._featureSymbologySource);\n if (!this._planarClipMask?.usingViewportOverrides && this._removeMe) {\n this._removeMe();\n this._removeMe = undefined;\n } else if (this._planarClipMask?.usingViewportOverrides && !this._removeMe) {\n this._removeMe = context.viewport.onFeatureOverridesChanged.addListener(() => {\n this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides(context, this._featureSymbologySource);\n context.viewport.requestRedraw();\n });\n }\n\n const drawTree = (treeRef: TileTreeReference, graphics: RenderGraphic[]) => {\n this._graphics = graphics;\n const frustumPlanes = this._frustum ? FrustumPlanes.fromFrustum(this._frustum) : FrustumPlanes.createEmpty();\n const drawArgs = GraphicsCollectorDrawArgs.create(context, this, treeRef, frustumPlanes, projection.worldToViewMap!);\n if (undefined !== drawArgs)\n treeRef.draw(drawArgs);\n\n this._graphics = undefined;\n };\n if (this._classifierTreeRef)\n drawTree(this._classifierTreeRef, this._classifierGraphics);\n\n if (maskTrees)\n maskTrees.forEach((maskTree) => drawTree(maskTree, this._maskGraphics));\n\n // Shader behaves slightly differently when classifying surfaces vs point clouds.\n this._isClassifyingPointCloud = target.isPointCloud;\n\n if (this._doDebugFrustum) {\n this._debugFrustumGraphic = dispose(this._debugFrustumGraphic);\n const builder = context.createSceneGraphicBuilder();\n\n builder.setSymbology(ColorDef.green, ColorDef.green, 2);\n builder.addFrustum(context.viewingSpace.getFrustum());\n builder.setSymbology(ColorDef.red, ColorDef.red, 2);\n builder.addFrustum(this._debugFrustum!);\n builder.setSymbology(ColorDef.blue, ColorDef.blue, 2);\n builder.addFrustum(this._frustum);\n\n builder.setSymbology(ColorDef.from(0, 200, 0, 222), ColorDef.from(0, 200, 0, 222), 2);\n builder.addFrustumSides(context.viewingSpace.getFrustum());\n builder.setSymbology(ColorDef.from(200, 0, 0, 222), ColorDef.from(200, 0, 0, 222), 2);\n builder.addFrustumSides(this._debugFrustum!);\n builder.setSymbology(ColorDef.from(0, 0, 200, 222), ColorDef.from(0, 0, 200, 222), 2);\n builder.addFrustumSides(this._frustum);\n this._debugFrustumGraphic = builder.finish();\n context.outputGraphic(this._debugFrustumGraphic);\n }\n }\n\n public draw(target: Target) {\n if (undefined === this._frustum)\n return;\n\n this._contentMode = PlanarClassifierContent.None;\n let combinationBuffer: ClassifierCombinationBuffer | undefined;\n if (this._classifierGraphics.length === 0) {\n if (this._maskGraphics.length === 0) {\n return;\n } else {\n if (undefined === this._maskBuffer) {\n this._maskBuffer = MaskFrameBuffer.create(this._width, this._height);\n if (undefined === this._maskBuffer)\n return;\n }\n this._contentMode = PlanarClassifierContent.MaskOnly;\n }\n } else {\n if (undefined === this._classifierBuffers) {\n this._classifierBuffers = ClassifierFrameBuffers.create(this._width, this._height);\n if (undefined === this._classifierBuffers)\n return;\n }\n if (this._maskGraphics.length === 0) {\n if (undefined === this._classifierCombinedBuffer) {\n combinationBuffer = this._classifierCombinedBuffer = ClassifierCombinationBuffer.create(this._width, this._height, this._classifierBuffers.textures.color, this._classifierBuffers.textures.feature);\n if (undefined === this._classifierCombinedBuffer)\n return;\n }\n this._contentMode = PlanarClassifierContent.ClassifierOnly;\n combinationBuffer = this._classifierCombinedBuffer;\n } else {\n if (undefined === this._maskBuffer) {\n this._maskBuffer = MaskFrameBuffer.create(this._width, this._height);\n if (undefined === this._maskBuffer)\n return;\n }\n if (undefined === this._classifierAndMaskCombinedBuffer) {\n combinationBuffer = this._classifierAndMaskCombinedBuffer = ClassifierAndMaskCombinationBuffer.create(this._width, this._height, this._classifierBuffers.textures.color, this._classifierBuffers.textures.feature, this._maskBuffer.texture);\n if (undefined === this._classifierAndMaskCombinedBuffer)\n return;\n }\n combinationBuffer = this._classifierAndMaskCombinedBuffer;\n this._contentMode = PlanarClassifierContent.ClassifierAndMask;\n }\n }\n\n // Temporarily override the Target's state.\n const system = System.instance;\n const maskViewFlags = {\n renderMode: RenderMode.SmoothShade,\n wiremesh: false,\n transparency: !this.isClassifyingPointCloud, // point clouds don't support transparency.\n textures: false,\n lighting: false,\n shadows: false,\n monochrome: false,\n materials: false,\n ambientOcclusion: false,\n visibleEdges: false,\n hiddenEdges: false,\n };\n const prevState = system.currentRenderState.clone(scratchPrevRenderState);\n system.context.viewport(0, 0, this._width, this._height);\n const vf = target.currentViewFlags.copy(this._classifierTreeRef ? this._classifierTreeRef.viewFlags : maskViewFlags);\n\n system.applyRenderState(this._renderState);\n const prevPlan = target.plan;\n const prevOverrides = target.currentFeatureSymbologyOverrides;\n\n target.uniforms.style.changeBackgroundColor(this._bgColor); // Avoid white on white reversal. Will be reset in changeRenderPlan below.\n target.changeFrustum(this._frustum, this._frustum.getFraction(), true);\n this._anyTranslucent = false;\n\n const prevProjMatrix = target.uniforms.frustum.projectionMatrix;\n target.uniforms.frustum.changeProjectionMatrix(PlanarClassifier._postProjectionMatrix.multiplyMatrixMatrix(prevProjMatrix));\n target.uniforms.branch.changeRenderPlan(vf, target.plan.is3d, target.plan.hline);\n\n const addCmds = (oldCmds: DrawCommands, newCmds: DrawCommands) => {\n if (undefined === newCmds)\n return oldCmds;\n if (newCmds.length > 50000) {\n \t// This method is slower for smaller array sizes, but when the size of newCmds gets larger it's performance is ok.\n return oldCmds.concat(newCmds);\n } else {\n \t// This method runs faster, but gets a stack overflow when the size of newCmds is too large.\n oldCmds.push(...newCmds);\n return oldCmds;\n }\n }\n\n const renderCommands = this._renderCommands;\n const getDrawCommands = (graphics: RenderGraphic[]) => {\n this._batchState.reset();\n renderCommands.reset(target, this._branchStack, this._batchState);\n renderCommands.collectGraphicsForPlanarProjection(graphics);\n\n // Draw the classifiers into our attachments.\n // When using Display.ElementColor, the color and transparency come from the classifier geometry. Therefore we may need to draw the classified geometry\n // in a different pass - or both passes - depending on the transparency of the classifiers.\n // NB: \"Outside\" geometry by definition cannot take color/transparency from element...\n let cmds = renderCommands.getCommands(RenderPass.OpaquePlanar);\n\n // NB: We don't strictly require the classifier geometry to be planar, and sometimes (e.g., \"planar\" polyface/bspsurf) we do not detect planarity.\n cmds = addCmds(cmds, renderCommands.getCommands(RenderPass.OpaqueGeneral));\n cmds = addCmds(cmds, renderCommands.getCommands(RenderPass.OpaqueLinear));\n this._anyOpaque = cmds.length > 0;\n const transCmds = renderCommands.getCommands(RenderPass.Translucent);\n if (transCmds.length > 0) {\n cmds = addCmds(cmds, renderCommands.getCommands(RenderPass.Translucent));\n this._anyTranslucent = true;\n }\n return cmds;\n };\n\n if (this._classifierGraphics.length > 0 && this._classifierBuffers) {\n this._classifierBuffers.draw(getDrawCommands(this._classifierGraphics), target);\n\n // Draw any hilited classifiers.\n const hiliteCommands = renderCommands.getCommands(RenderPass.Hilite);\n this._anyHilited = 0 !== hiliteCommands.length;\n if (this._anyHilited)\n this._classifierBuffers.drawHilite(hiliteCommands, target);\n }\n if (this._maskGraphics.length > 0 && this._maskBuffer) {\n if (this._planarClipMaskOverrides)\n target.overrideFeatureSymbology(this._planarClipMaskOverrides);\n if (this._planarClipMask && this._planarClipMask.settings.transparency !== undefined && this._planarClipMask.settings.transparency > 0.0)\n this._anyTranslucent = true;\n\n this._maskBuffer.draw(getDrawCommands(this._maskGraphics), target);\n\n }\n if (combinationBuffer)\n combinationBuffer.compose(target);\n\n this._batchState.reset();\n target.changeRenderPlan(prevPlan);\n target.overrideFeatureSymbology(prevOverrides);\n\n system.applyRenderState(prevState);\n system.context.viewport(0, 0, target.viewRect.width, target.viewRect.height);\n }\n}\n\n"]}
@@ -9,7 +9,7 @@
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.SkySpherePrimitive = exports.SkyCubePrimitive = exports.Primitive = void 0;
11
11
  const core_bentley_1 = require("@itwin/core-bentley");
12
- const RenderTarget_1 = require("../../../render/RenderTarget");
12
+ const RenderTargetDebugControl_1 = require("../RenderTargetDebugControl");
13
13
  const CachedGeometry_1 = require("./CachedGeometry");
14
14
  const DrawCommand_1 = require("./DrawCommand");
15
15
  const Graphic_1 = require("./Graphic");
@@ -64,11 +64,11 @@ class Primitive extends Graphic_1.Graphic {
64
64
  if (this.isPixelMode)
65
65
  return "view-overlay";
66
66
  switch (target.primitiveVisibility) {
67
- case RenderTarget_1.PrimitiveVisibility.Uninstanced:
67
+ case RenderTargetDebugControl_1.PrimitiveVisibility.Uninstanced:
68
68
  if (this.cachedGeometry.isInstanced)
69
69
  return "none";
70
70
  break;
71
- case RenderTarget_1.PrimitiveVisibility.Instanced:
71
+ case RenderTargetDebugControl_1.PrimitiveVisibility.Instanced:
72
72
  if (!this.cachedGeometry.isInstanced)
73
73
  return "none";
74
74
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"Primitive.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/Primitive.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert, dispose } from \"@itwin/core-bentley\";\nimport { RenderMemory } from \"../../../render/RenderMemory\";\nimport { PrimitiveVisibility } from \"../../../render/RenderTarget\";\nimport { CachedGeometry, LUTGeometry, SkySphereViewportQuadGeometry } from \"./CachedGeometry\";\nimport { DrawParams, PrimitiveCommand } from \"./DrawCommand\";\nimport { Graphic } from \"./Graphic\";\nimport { InstanceBuffers, InstancedGeometry, PatternBuffers } from \"./InstancedGeometry\";\nimport { RenderCommands } from \"./RenderCommands\";\nimport { Pass, RenderOrder, RenderPass } from \"./RenderFlags\";\nimport { ShaderProgramExecutor } from \"./ShaderProgram\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { TechniqueId } from \"./TechniqueId\";\nimport { Range3d } from \"@itwin/core-geometry\";\n\n/** @internal */\nexport class Primitive extends Graphic {\n public cachedGeometry: CachedGeometry;\n public isPixelMode: boolean = false;\n\n protected constructor(cachedGeom: CachedGeometry) {\n super();\n this.cachedGeometry = cachedGeom;\n }\n\n public static create(geom: CachedGeometry | undefined, instances?: InstanceBuffers | PatternBuffers): Primitive | undefined {\n if (!geom)\n return undefined;\n\n if (instances) {\n assert(geom instanceof LUTGeometry, \"Invalid geometry type for instancing\");\n if (instances instanceof PatternBuffers) {\n geom = InstancedGeometry.createPattern(geom, true, instances);\n } else {\n geom = InstancedGeometry.create(geom, true, instances);\n }\n }\n\n return new this(geom);\n }\n\n public static createShared(geom: CachedGeometry | undefined, instances?: InstanceBuffers | PatternBuffers): Primitive | undefined {\n if (!geom)\n return undefined;\n\n if (instances) {\n assert(geom instanceof LUTGeometry, \"Invalid geometry type for instancing\");\n if (instances instanceof InstanceBuffers)\n geom = InstancedGeometry.create(geom, false, instances);\n else\n geom = InstancedGeometry.createPattern(geom, false, instances);\n }\n\n return new this(geom);\n }\n\n public get isDisposed(): boolean { return this.cachedGeometry.isDisposed; }\n public get isPickable() { return false; }\n\n public dispose() {\n dispose(this.cachedGeometry);\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n this.cachedGeometry.collectStatistics(stats);\n }\n\n public override unionRange(range: Range3d) {\n range.extendRange(this.cachedGeometry.computeRange());\n }\n\n public getPass(target: Target): Pass {\n if (this.isPixelMode)\n return \"view-overlay\";\n\n switch (target.primitiveVisibility) {\n case PrimitiveVisibility.Uninstanced:\n if (this.cachedGeometry.isInstanced)\n return \"none\";\n break;\n case PrimitiveVisibility.Instanced:\n if (!this.cachedGeometry.isInstanced)\n return \"none\";\n break;\n }\n\n return this.cachedGeometry.getPass(target);\n }\n\n public get hasFeatures(): boolean { return this.cachedGeometry.hasFeatures; }\n\n public addCommands(commands: RenderCommands): void { commands.addPrimitive(this); }\n\n public override addHiliteCommands(commands: RenderCommands, pass: RenderPass): void {\n // Edges do not contribute to hilite pass.\n // Note that IsEdge() does not imply geom->ToEdge() => true...polylines can be edges too...\n if (!this.isEdge)\n commands.getCommands(pass).push(new PrimitiveCommand(this));\n }\n\n public get hasAnimation(): boolean { return this.cachedGeometry.hasAnimation; }\n public get isInstanced(): boolean { return this.cachedGeometry.isInstanced; }\n public get isLit(): boolean { return this.cachedGeometry.isLitSurface; }\n public get isEdge(): boolean { return this.cachedGeometry.isEdge; }\n public get renderOrder(): RenderOrder { return this.cachedGeometry.renderOrder; }\n public get hasMaterialAtlas(): boolean { return this.cachedGeometry.hasMaterialAtlas; }\n\n public override toPrimitive(): Primitive { return this; }\n\n private static _drawParams?: DrawParams;\n\n public static freeParams(): void { Primitive._drawParams = undefined; }\n\n public draw(shader: ShaderProgramExecutor): void {\n // ###TODO: local to world should be pushed before we're invoked...we shouldn't need to pass (or copy) it\n if (undefined === Primitive._drawParams)\n Primitive._drawParams = new DrawParams();\n\n const drawParams = Primitive._drawParams;\n drawParams.init(shader.params, this.cachedGeometry);\n shader.draw(drawParams);\n }\n\n public get techniqueId(): TechniqueId { return this.cachedGeometry.techniqueId; }\n}\n\n/** @internal */\nexport class SkyCubePrimitive extends Primitive {\n public constructor(cachedGeom: CachedGeometry) { super(cachedGeom); }\n\n public override draw(shader: ShaderProgramExecutor): void {\n // Alter viewport to maintain square aspect ratio of skybox images even as viewRect resizes\n const vh = shader.target.viewRect.height;\n const vw = shader.target.viewRect.width;\n if (vw > vh)\n System.instance.context.viewport(0, -(vw - vh) / 2, vw, vw);\n else\n System.instance.context.viewport(-(vh - vw) / 2, 0, vh, vh);\n\n super.draw(shader); // Draw the skybox cubemap\n\n System.instance.context.viewport(0, 0, vw, vh); // Restore viewport\n }\n}\n\n/** @internal */\nexport class SkySpherePrimitive extends Primitive {\n public constructor(cachedGeom: CachedGeometry) {\n super(cachedGeom);\n assert(cachedGeom instanceof SkySphereViewportQuadGeometry);\n }\n\n public override draw(shader: ShaderProgramExecutor): void {\n (this.cachedGeometry as SkySphereViewportQuadGeometry).initWorldPos(shader.target);\n super.draw(shader); // Draw the skybox sphere\n }\n}\n"]}
1
+ {"version":3,"file":"Primitive.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/Primitive.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAAsD;AAEtD,0EAAkE;AAClE,qDAA8F;AAC9F,+CAA6D;AAC7D,uCAAoC;AACpC,2DAAyF;AAIzF,qCAAkC;AAKlC,gBAAgB;AAChB,MAAa,SAAU,SAAQ,iBAAO;IAC7B,cAAc,CAAiB;IAC/B,WAAW,GAAY,KAAK,CAAC;IAEpC,YAAsB,UAA0B;QAC9C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;IACnC,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,IAAgC,EAAE,SAA4C;QACjG,IAAI,CAAC,IAAI;YACP,OAAO,SAAS,CAAC;QAEnB,IAAI,SAAS,EAAE,CAAC;YACd,IAAA,qBAAM,EAAC,IAAI,YAAY,4BAAW,EAAE,sCAAsC,CAAC,CAAC;YAC5E,IAAI,SAAS,YAAY,kCAAc,EAAE,CAAC;gBACxC,IAAI,GAAG,qCAAiB,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,qCAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,IAAgC,EAAE,SAA4C;QACvG,IAAI,CAAC,IAAI;YACP,OAAO,SAAS,CAAC;QAEnB,IAAI,SAAS,EAAE,CAAC;YACd,IAAA,qBAAM,EAAC,IAAI,YAAY,4BAAW,EAAE,sCAAsC,CAAC,CAAC;YAC5E,IAAI,SAAS,YAAY,mCAAe;gBACtC,IAAI,GAAG,qCAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;;gBAExD,IAAI,GAAG,qCAAiB,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,IAAW,UAAU,KAAc,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3E,IAAW,UAAU,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC;IAElC,OAAO;QACZ,IAAA,sBAAO,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/B,CAAC;IAEM,iBAAiB,CAAC,KAA8B;QACrD,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAEe,UAAU,CAAC,KAAc;QACvC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC;IACxD,CAAC;IAEM,OAAO,CAAC,MAAc;QAC3B,IAAI,IAAI,CAAC,WAAW;YAClB,OAAO,cAAc,CAAC;QAExB,QAAQ,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACnC,KAAK,8CAAmB,CAAC,WAAW;gBAClC,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW;oBACjC,OAAO,MAAM,CAAC;gBAChB,MAAM;YACR,KAAK,8CAAmB,CAAC,SAAS;gBAChC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW;oBAClC,OAAO,MAAM,CAAC;gBAChB,MAAM;QACV,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,IAAW,WAAW,KAAc,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;IAEtE,WAAW,CAAC,QAAwB,IAAU,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEnE,iBAAiB,CAAC,QAAwB,EAAE,IAAgB;QAC1E,0CAA0C;QAC1C,2FAA2F;QAC3F,IAAI,CAAC,IAAI,CAAC,MAAM;YACd,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,8BAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,IAAW,YAAY,KAAc,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;IAC/E,IAAW,WAAW,KAAc,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7E,IAAW,KAAK,KAAc,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;IACxE,IAAW,MAAM,KAAc,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,IAAW,WAAW,KAAkB,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;IACjF,IAAW,gBAAgB,KAAc,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvE,WAAW,KAAgB,OAAO,IAAI,CAAC,CAAC,CAAC;IAEjD,MAAM,CAAC,WAAW,CAAc;IAEjC,MAAM,CAAC,UAAU,KAAW,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC;IAEhE,IAAI,CAAC,MAA6B;QACvC,yGAAyG;QACzG,IAAI,SAAS,KAAK,SAAS,CAAC,WAAW;YACrC,SAAS,CAAC,WAAW,GAAG,IAAI,wBAAU,EAAE,CAAC;QAE3C,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC;QACzC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC;IAED,IAAW,WAAW,KAAkB,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;CAClF;AA5GD,8BA4GC;AAED,gBAAgB;AAChB,MAAa,gBAAiB,SAAQ,SAAS;IAC7C,YAAmB,UAA0B,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAErD,IAAI,CAAC,MAA6B;QAChD,2FAA2F;QAC3F,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QACzC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QACxC,IAAI,EAAE,GAAG,EAAE;YACT,eAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;;YAE5D,eAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAE9D,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,0BAA0B;QAE9C,eAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB;IACrE,CAAC;CACF;AAhBD,4CAgBC;AAED,gBAAgB;AAChB,MAAa,kBAAmB,SAAQ,SAAS;IAC/C,YAAmB,UAA0B;QAC3C,KAAK,CAAC,UAAU,CAAC,CAAC;QAClB,IAAA,qBAAM,EAAC,UAAU,YAAY,8CAA6B,CAAC,CAAC;IAC9D,CAAC;IAEe,IAAI,CAAC,MAA6B;QAC/C,IAAI,CAAC,cAAgD,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,yBAAyB;IAC/C,CAAC;CACF;AAVD,gDAUC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert, dispose } from \"@itwin/core-bentley\";\nimport { RenderMemory } from \"../../../render/RenderMemory\";\nimport { PrimitiveVisibility } from \"../RenderTargetDebugControl\";\nimport { CachedGeometry, LUTGeometry, SkySphereViewportQuadGeometry } from \"./CachedGeometry\";\nimport { DrawParams, PrimitiveCommand } from \"./DrawCommand\";\nimport { Graphic } from \"./Graphic\";\nimport { InstanceBuffers, InstancedGeometry, PatternBuffers } from \"./InstancedGeometry\";\nimport { RenderCommands } from \"./RenderCommands\";\nimport { Pass, RenderOrder, RenderPass } from \"./RenderFlags\";\nimport { ShaderProgramExecutor } from \"./ShaderProgram\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { TechniqueId } from \"./TechniqueId\";\nimport { Range3d } from \"@itwin/core-geometry\";\n\n/** @internal */\nexport class Primitive extends Graphic {\n public cachedGeometry: CachedGeometry;\n public isPixelMode: boolean = false;\n\n protected constructor(cachedGeom: CachedGeometry) {\n super();\n this.cachedGeometry = cachedGeom;\n }\n\n public static create(geom: CachedGeometry | undefined, instances?: InstanceBuffers | PatternBuffers): Primitive | undefined {\n if (!geom)\n return undefined;\n\n if (instances) {\n assert(geom instanceof LUTGeometry, \"Invalid geometry type for instancing\");\n if (instances instanceof PatternBuffers) {\n geom = InstancedGeometry.createPattern(geom, true, instances);\n } else {\n geom = InstancedGeometry.create(geom, true, instances);\n }\n }\n\n return new this(geom);\n }\n\n public static createShared(geom: CachedGeometry | undefined, instances?: InstanceBuffers | PatternBuffers): Primitive | undefined {\n if (!geom)\n return undefined;\n\n if (instances) {\n assert(geom instanceof LUTGeometry, \"Invalid geometry type for instancing\");\n if (instances instanceof InstanceBuffers)\n geom = InstancedGeometry.create(geom, false, instances);\n else\n geom = InstancedGeometry.createPattern(geom, false, instances);\n }\n\n return new this(geom);\n }\n\n public get isDisposed(): boolean { return this.cachedGeometry.isDisposed; }\n public get isPickable() { return false; }\n\n public dispose() {\n dispose(this.cachedGeometry);\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n this.cachedGeometry.collectStatistics(stats);\n }\n\n public override unionRange(range: Range3d) {\n range.extendRange(this.cachedGeometry.computeRange());\n }\n\n public getPass(target: Target): Pass {\n if (this.isPixelMode)\n return \"view-overlay\";\n\n switch (target.primitiveVisibility) {\n case PrimitiveVisibility.Uninstanced:\n if (this.cachedGeometry.isInstanced)\n return \"none\";\n break;\n case PrimitiveVisibility.Instanced:\n if (!this.cachedGeometry.isInstanced)\n return \"none\";\n break;\n }\n\n return this.cachedGeometry.getPass(target);\n }\n\n public get hasFeatures(): boolean { return this.cachedGeometry.hasFeatures; }\n\n public addCommands(commands: RenderCommands): void { commands.addPrimitive(this); }\n\n public override addHiliteCommands(commands: RenderCommands, pass: RenderPass): void {\n // Edges do not contribute to hilite pass.\n // Note that IsEdge() does not imply geom->ToEdge() => true...polylines can be edges too...\n if (!this.isEdge)\n commands.getCommands(pass).push(new PrimitiveCommand(this));\n }\n\n public get hasAnimation(): boolean { return this.cachedGeometry.hasAnimation; }\n public get isInstanced(): boolean { return this.cachedGeometry.isInstanced; }\n public get isLit(): boolean { return this.cachedGeometry.isLitSurface; }\n public get isEdge(): boolean { return this.cachedGeometry.isEdge; }\n public get renderOrder(): RenderOrder { return this.cachedGeometry.renderOrder; }\n public get hasMaterialAtlas(): boolean { return this.cachedGeometry.hasMaterialAtlas; }\n\n public override toPrimitive(): Primitive { return this; }\n\n private static _drawParams?: DrawParams;\n\n public static freeParams(): void { Primitive._drawParams = undefined; }\n\n public draw(shader: ShaderProgramExecutor): void {\n // ###TODO: local to world should be pushed before we're invoked...we shouldn't need to pass (or copy) it\n if (undefined === Primitive._drawParams)\n Primitive._drawParams = new DrawParams();\n\n const drawParams = Primitive._drawParams;\n drawParams.init(shader.params, this.cachedGeometry);\n shader.draw(drawParams);\n }\n\n public get techniqueId(): TechniqueId { return this.cachedGeometry.techniqueId; }\n}\n\n/** @internal */\nexport class SkyCubePrimitive extends Primitive {\n public constructor(cachedGeom: CachedGeometry) { super(cachedGeom); }\n\n public override draw(shader: ShaderProgramExecutor): void {\n // Alter viewport to maintain square aspect ratio of skybox images even as viewRect resizes\n const vh = shader.target.viewRect.height;\n const vw = shader.target.viewRect.width;\n if (vw > vh)\n System.instance.context.viewport(0, -(vw - vh) / 2, vw, vw);\n else\n System.instance.context.viewport(-(vh - vw) / 2, 0, vh, vh);\n\n super.draw(shader); // Draw the skybox cubemap\n\n System.instance.context.viewport(0, 0, vw, vh); // Restore viewport\n }\n}\n\n/** @internal */\nexport class SkySpherePrimitive extends Primitive {\n public constructor(cachedGeom: CachedGeometry) {\n super(cachedGeom);\n assert(cachedGeom instanceof SkySphereViewportQuadGeometry);\n }\n\n public override draw(shader: ShaderProgramExecutor): void {\n (this.cachedGeometry as SkySphereViewportQuadGeometry).initWorldPos(shader.target);\n super.draw(shader); // Draw the skybox sphere\n }\n}\n"]}
@@ -1,11 +1,11 @@
1
1
  import { ColorDef, RenderTexture } from "@itwin/core-common";
2
2
  import { Matrix4d, Range2d, Range3d, Transform } from "@itwin/core-geometry";
3
- import { RealityMeshGraphicParams } from "../../../render/RealityMeshGraphicParams";
3
+ import { RealityMeshGraphicParams } from "../RealityMeshGraphicParams";
4
4
  import { RealityMeshParams } from "../../../render/RealityMeshParams";
5
5
  import { RenderGraphic } from "../../../render/RenderGraphic";
6
6
  import { RenderMemory } from "../../../render/RenderMemory";
7
- import { RenderPlanarClassifier } from "../../../render/RenderPlanarClassifier";
8
- import { RenderSystem, TerrainTexture } from "../../../render/RenderSystem";
7
+ import { RenderPlanarClassifier } from "../RenderPlanarClassifier";
8
+ import { RenderSystem } from "../../../render/RenderSystem";
9
9
  import { BufferHandle, QBufferHandle2d, QBufferHandle3d } from "./AttributeBuffers";
10
10
  import { IndexedGeometry, IndexedGeometryParams } from "./CachedGeometry";
11
11
  import { Matrix4 } from "./Matrix";
@@ -14,6 +14,7 @@ import { RenderOrder } from "./RenderFlags";
14
14
  import { Target } from "./Target";
15
15
  import { TechniqueId } from "./TechniqueId";
16
16
  import { RenderGeometry } from "../../../internal/render/RenderGeometry";
17
+ import { TerrainTexture } from "../RenderTerrain";
17
18
  declare class ProjectedTexture {
18
19
  meshParams: RealityMeshGraphicParams;
19
20
  targetRectangle: Range2d;
@@ -1 +1 @@
1
- {"version":3,"file":"RealityMesh.d.ts","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/RealityMesh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RealityMesh.d.ts","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/RealityMesh.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,6 @@ const core_bentley_1 = require("@itwin/core-bentley");
12
12
  const core_common_1 = require("@itwin/core-common");
13
13
  const core_geometry_1 = require("@itwin/core-geometry");
14
14
  const GraphicBranch_1 = require("../../../render/GraphicBranch");
15
- const RenderSystem_1 = require("../../../render/RenderSystem");
16
15
  const AttributeBuffers_1 = require("./AttributeBuffers");
17
16
  const AttributeMap_1 = require("./AttributeMap");
18
17
  const CachedGeometry_1 = require("./CachedGeometry");
@@ -20,6 +19,7 @@ const GL_1 = require("./GL");
20
19
  const Matrix_1 = require("./Matrix");
21
20
  const Primitive_1 = require("./Primitive");
22
21
  const System_1 = require("./System");
22
+ const RenderTerrain_1 = require("../RenderTerrain");
23
23
  const scratchOverlapRange = core_geometry_1.Range2d.createNull();
24
24
  const scratchBytes = new Uint8Array(4);
25
25
  const scratchBatchBaseId = new Uint32Array(scratchBytes.buffer);
@@ -122,7 +122,7 @@ class RealityTextureParams {
122
122
  (0, core_bentley_1.assert)(textures.length <= maxTexturesPerMesh);
123
123
  const textureParams = new Array();
124
124
  for (const texture of textures) {
125
- if (texture instanceof RenderSystem_1.TerrainTexture) {
125
+ if (texture instanceof RenderTerrain_1.TerrainTexture) {
126
126
  const terrainTexture = texture;
127
127
  const matrix = new Matrix_1.Matrix4(); // Published as Mat4.
128
128
  (0, core_bentley_1.assert)(terrainTexture.texture !== undefined, "Texture not defined in TerrainTextureParams constructor");
@@ -270,7 +270,7 @@ class RealityMeshGeometry extends CachedGeometry_1.IndexedGeometry {
270
270
  const params = RealityMeshGeometryParams.fromRealityMesh(realityMesh);
271
271
  if (!params)
272
272
  return undefined;
273
- const texture = realityMesh.texture ? new RenderSystem_1.TerrainTexture(realityMesh.texture, realityMesh.featureID ?? 0, core_geometry_1.Vector2d.create(1.0, -1.0), core_geometry_1.Vector2d.create(0.0, 1.0), core_geometry_1.Range2d.createXYXY(0, 0, 1, 1), 0, 0) : undefined;
273
+ const texture = realityMesh.texture ? new RenderTerrain_1.TerrainTexture(realityMesh.texture, realityMesh.featureID ?? 0, core_geometry_1.Vector2d.create(1.0, -1.0), core_geometry_1.Vector2d.create(0.0, 1.0), core_geometry_1.Range2d.createXYXY(0, 0, 1, 1), 0, 0) : undefined;
274
274
  return new RealityMeshGeometry({ realityMeshParams: params, textureParams: texture ? RealityTextureParams.create([texture]) : undefined, baseIsTransparent: false, isTerrain: false, disableTextureDisposal });
275
275
  }
276
276
  getRange() {
@@ -1 +1 @@
1
- {"version":3,"file":"RealityMesh.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/RealityMesh.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert, dispose, disposeArray, UintArray } from \"@itwin/core-bentley\";\nimport { ColorDef, Quantization, RenderTexture } from \"@itwin/core-common\";\nimport { Matrix4d, Range2d, Range3d, Transform, Vector2d } from \"@itwin/core-geometry\";\nimport { GraphicBranch } from \"../../../render/GraphicBranch\";\nimport { RealityMeshGraphicParams } from \"../../../render/RealityMeshGraphicParams\";\nimport { RealityMeshParams } from \"../../../render/RealityMeshParams\";\nimport { RenderGraphic } from \"../../../render/RenderGraphic\";\nimport { RenderMemory } from \"../../../render/RenderMemory\";\nimport { RenderPlanarClassifier } from \"../../../render/RenderPlanarClassifier\";\nimport { RenderSystem, TerrainTexture } from \"../../../render/RenderSystem\";\nimport { BufferHandle, BufferParameters, QBufferHandle2d, QBufferHandle3d } from \"./AttributeBuffers\";\nimport { AttributeMap } from \"./AttributeMap\";\nimport { IndexedGeometry, IndexedGeometryParams } from \"./CachedGeometry\";\nimport { GL } from \"./GL\";\nimport { Matrix4 } from \"./Matrix\";\nimport { PlanarClassifier } from \"./PlanarClassifier\";\nimport { Primitive } from \"./Primitive\";\nimport { RenderOrder } from \"./RenderFlags\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { TechniqueId } from \"./TechniqueId\";\nimport { RenderGeometry } from \"../../../internal/render/RenderGeometry\";\n\nconst scratchOverlapRange = Range2d.createNull();\nconst scratchBytes = new Uint8Array(4);\nconst scratchBatchBaseId = new Uint32Array(scratchBytes.buffer);\nconst scratchRange2d = Range2d.createNull();\nclass ProjectedTexture {\n public classifier: PlanarClassifier;\n constructor(classifier: RenderPlanarClassifier, public meshParams: RealityMeshGraphicParams, public targetRectangle: Range2d) {\n this.classifier = classifier as PlanarClassifier;\n }\n public clone(targetRectangle: Range2d) {\n return new ProjectedTexture(this.classifier, this.meshParams, targetRectangle.clone());\n }\n}\ntype TerrainOrProjectedTexture = TerrainTexture | ProjectedTexture;\n\nclass RealityTextureParam implements Disposable {\n constructor(public texture: RenderTexture | undefined, private _projectedTextureOrMatrix: ProjectedTexture | Matrix4) { }\n public get isProjected() { return this._projectedTextureOrMatrix instanceof ProjectedTexture; }\n\n public [Symbol.dispose](): void {\n this.texture = dispose(this.texture);\n }\n\n /* There are two methods of applying a texture to a reality mesh. the first member of \"params\" denotes which\n method is to be used. A value of zero indicates a standard texture and one represents a classified texture.\n\n A standard (nonprojected) texture is generated by multiplying v_textCoord by the scaling and translation packed into the first row\n of \"matrix\". A clip rectangle is packed into second row of \"matrix\".\n\n A \"classified\" reality mesh texture is used for map layers. It does not uses v_texCoord, the texture coordinates\n are instead generated by a projection of the model position onto the X-Y plane. We only have eye position, not model position\n so the matrix in this case is a real transform matrix that contains a mapping from eye to model position\n followed by the model to texture projection.\n*/\n public getProjectionMatrix(): Matrix4d | undefined {\n return this._projectedTextureOrMatrix instanceof ProjectedTexture ? this._projectedTextureOrMatrix.classifier.projectionMatrix : undefined;\n }\n public getTerrainMatrix(): Matrix4 | undefined {\n return this._projectedTextureOrMatrix instanceof Matrix4 ? this._projectedTextureOrMatrix : undefined;\n }\n\n public getParams(result: Matrix4): Matrix4 {\n /** Entry 0 is 0 for */\n if (this._projectedTextureOrMatrix instanceof ProjectedTexture) {\n const projectedTexture = this._projectedTextureOrMatrix;\n\n result.data[0] = 1;\n result.data[1] = projectedTexture.classifier.textureImageCount;\n result.data[2] = projectedTexture.classifier.sourceTransparency === undefined ? 1.0 : (1.0 - projectedTexture.classifier.sourceTransparency);\n scratchBatchBaseId[0] = projectedTexture.classifier.baseBatchId;\n result.data[4] = scratchBytes[0];\n result.data[5] = scratchBytes[1];\n result.data[6] = scratchBytes[2];\n result.data[7] = scratchBytes[3];\n\n const points = [];\n const meshParams = projectedTexture.meshParams;\n // Calculate range in the tiles local coordinates.\n const low = meshParams.tileRectangle.worldToLocal(projectedTexture.targetRectangle.low, scratchRange2d.low)!;\n const high = meshParams.tileRectangle.worldToLocal(projectedTexture.targetRectangle.high, scratchRange2d.high)!;\n points.push(meshParams.projection.getGlobalPoint(low.x, low.y, 0));\n points.push(meshParams.projection.getGlobalPoint(high.x, low.y, 0));\n points.push(meshParams.projection.getGlobalPoint(high.x, high.y, 0));\n points.push(meshParams.projection.getGlobalPoint(low.x, high.y, 0));\n for (let i = 0, j = 8; i < 4; i++) {\n const projectedPoint = projectedTexture.classifier.projectionMatrix.multiplyPoint3dQuietNormalize(points[i]);\n result.data[j++] = projectedPoint.x;\n result.data[j++] = projectedPoint.y;\n }\n const x0 = result.data[10] - result.data[8], y0 = result.data[11] - result.data[9];\n const x1 = result.data[12] - result.data[8], y1 = result.data[13] - result.data[9];\n if (x0 * y1 - x1 * y0 < 0) {\n const swap = ((i: number, j: number) => {\n const temp = result.data[i];\n result.data[i] = result.data[j];\n result.data[j] = temp;\n });\n for (let i = 8, j = 14; i <= 10; i += 2, j -= 2) {\n swap(i, j);\n swap(i + 1, j + 1);\n }\n }\n } else {\n result.data[0] = 0;\n }\n return result;\n }\n}\n\n/** @internal */\nexport class RealityTextureParams implements Disposable {\n constructor(public params: RealityTextureParam[]) { }\n public static create(textures: TerrainOrProjectedTexture[]) {\n const maxTexturesPerMesh = System.instance.maxRealityImageryLayers;\n assert(textures.length <= maxTexturesPerMesh);\n\n const textureParams = new Array<RealityTextureParam>();\n for (const texture of textures) {\n if (texture instanceof TerrainTexture) {\n const terrainTexture = texture;\n const matrix = new Matrix4(); // Published as Mat4.\n assert(terrainTexture.texture !== undefined, \"Texture not defined in TerrainTextureParams constructor\");\n matrix.data[0] = terrainTexture.translate.x;\n matrix.data[1] = terrainTexture.translate.y;\n matrix.data[2] = terrainTexture.scale.x;\n matrix.data[3] = terrainTexture.scale.y;\n\n if (terrainTexture.clipRectangle) {\n matrix.data[4] = terrainTexture.clipRectangle.low.x;\n matrix.data[5] = terrainTexture.clipRectangle.low.y;\n matrix.data[6] = terrainTexture.clipRectangle.high.x;\n matrix.data[7] = terrainTexture.clipRectangle.high.y;\n } else {\n matrix.data[4] = matrix.data[5] = 0;\n matrix.data[6] = matrix.data[7] = 1;\n }\n matrix.data[8] = (1.0 - terrainTexture.transparency);\n matrix.data[9] = terrainTexture.featureId;\n textureParams.push(new RealityTextureParam(terrainTexture.texture, matrix));\n } else {\n const classifier = texture.classifier;\n textureParams.push(new RealityTextureParam(classifier.getOrCreateClassifierTexture(), texture));\n }\n }\n\n for (let i = textures.length; i < maxTexturesPerMesh; i++) {\n const matrix = new Matrix4();\n matrix.data[0] = matrix.data[1] = 0.0;\n matrix.data[2] = matrix.data[3] = 1.0;\n matrix.data[4] = matrix.data[5] = 1;\n matrix.data[6] = matrix.data[7] = -1;\n matrix.data[15] = 0; // Denotes a terrain texture.\n textureParams.push(new RealityTextureParam(undefined, matrix));\n }\n return new RealityTextureParams(textureParams);\n }\n\n public [Symbol.dispose](): void {\n disposeArray(this.params);\n }\n}\n/** @internal */\n\nexport class RealityMeshGeometryParams extends IndexedGeometryParams {\n public readonly uvParams: QBufferHandle2d;\n public readonly featureID?: number;\n public readonly normals?: BufferHandle;\n public readonly numBytesPerIndex: 1 | 2 | 4;\n\n protected constructor(positions: QBufferHandle3d, normals: BufferHandle | undefined, uvParams: QBufferHandle2d, indices: BufferHandle, numIndices: number, numBytesPerIndex: 1 | 2 | 4, featureID?: number) {\n super(positions, indices, numIndices);\n this.numBytesPerIndex = numBytesPerIndex;\n let attrParams = AttributeMap.findAttribute(\"a_uvParam\", TechniqueId.RealityMesh, false);\n assert(attrParams !== undefined);\n this.buffers.addBuffer(uvParams, [BufferParameters.create(attrParams.location, 2, GL.DataType.UnsignedShort, false, 0, 0, false)]);\n this.uvParams = uvParams;\n\n if (undefined !== normals) {\n attrParams = AttributeMap.findAttribute(\"a_norm\", TechniqueId.RealityMesh, false);\n assert(attrParams !== undefined);\n if (normals.bytesUsed > 0)\n this.buffers.addBuffer(normals, [BufferParameters.create(attrParams.location, 2, GL.DataType.UnsignedByte, false, 0, 0, false)]);\n this.normals = normals;\n }\n this.featureID = featureID;\n }\n\n private static createFromBuffers(posBuf: QBufferHandle3d, uvParamBuf: QBufferHandle2d, indices: UintArray, normBuf: BufferHandle | undefined, featureID: number) {\n const indBuf = BufferHandle.createBuffer(GL.Buffer.Target.ElementArrayBuffer, indices);\n\n if (undefined === indBuf)\n return undefined;\n\n const bytesPerIndex = indices.BYTES_PER_ELEMENT;\n assert(1 === bytesPerIndex || 2 === bytesPerIndex || 4 === bytesPerIndex);\n return new RealityMeshGeometryParams(posBuf, normBuf, uvParamBuf, indBuf, indices.length, bytesPerIndex, featureID);\n\n }\n\n public static fromRealityMesh(params: RealityMeshParams) {\n const posBuf = QBufferHandle3d.create(params.positions.params, params.positions.points);\n const uvParamBuf = QBufferHandle2d.create(params.uvs.params, params.uvs.points);\n const normalBuf = params.normals ? BufferHandle.createArrayBuffer(params.normals) : undefined;\n return (undefined === posBuf || undefined === uvParamBuf) ? undefined : this.createFromBuffers(posBuf, uvParamBuf, params.indices, normalBuf, params.featureID ?? 0);\n }\n\n public override get isDisposed(): boolean {\n return super.isDisposed && this.uvParams.isDisposed;\n }\n public get bytesUsed(): number { return this.positions.bytesUsed + (undefined === this.normals ? 0 : this.normals.bytesUsed) + this.uvParams.bytesUsed + this.indices.bytesUsed; }\n\n public override[Symbol.dispose]() {\n super[Symbol.dispose]();\n dispose(this.uvParams);\n }\n}\n\n/** @internal */\nexport class RealityMeshGeometry extends IndexedGeometry implements RenderGeometry {\n public readonly renderGeometryType: \"reality-mesh\" = \"reality-mesh\" as const;\n public readonly isInstanceable = false;\n public noDispose = false;\n public readonly hasTextures: boolean;\n public override get asRealityMesh(): RealityMeshGeometry | undefined { return this; }\n public override get isDisposed(): boolean { return this._realityMeshParams.isDisposed; }\n public get uvQParams() { return this._realityMeshParams.uvParams.params; }\n public override get hasFeatures(): boolean { return this._realityMeshParams.featureID !== undefined; }\n public override get supportsThematicDisplay() { return true; }\n public get overrideColorMix() { return .5; } // This could be a setting from either the mesh or the override if required.\n public get transform(): Transform | undefined { return this._transform; }\n\n private _realityMeshParams: RealityMeshGeometryParams;\n private readonly _indexType: GL.DataType;\n public textureParams: RealityTextureParams | undefined;\n private readonly _transform: Transform | undefined;\n public readonly baseColor: ColorDef | undefined;\n private _baseIsTransparent: boolean;\n private _isTerrain: boolean;\n private _disableTextureDisposal: boolean;\n\n private constructor(props: {\n realityMeshParams: RealityMeshGeometryParams;\n textureParams?: RealityTextureParams;\n transform?: Transform;\n baseColor?: ColorDef;\n baseIsTransparent: boolean;\n isTerrain: boolean;\n disableTextureDisposal: boolean;\n }) {\n super(props.realityMeshParams);\n this._realityMeshParams = props.realityMeshParams;\n this.textureParams = props.textureParams;\n this._transform = props.transform;\n this.baseColor = props.baseColor;\n this._baseIsTransparent = props.baseIsTransparent;\n this._isTerrain = props.isTerrain;\n this._disableTextureDisposal = props.disableTextureDisposal;\n this.hasTextures = undefined !== this.textureParams && this.textureParams.params.some((x) => undefined !== x.texture);\n\n const bytesPerIndex = props.realityMeshParams.numBytesPerIndex;\n this._indexType = 1 === bytesPerIndex ? GL.DataType.UnsignedByte : (2 === bytesPerIndex ? GL.DataType.UnsignedShort : GL.DataType.UnsignedInt);\n }\n\n public override[Symbol.dispose]() {\n if (this.noDispose) {\n return;\n }\n\n super[Symbol.dispose]();\n dispose(this._realityMeshParams);\n if (true !== this._disableTextureDisposal)\n dispose(this.textureParams);\n }\n\n public static createForTerrain(mesh: RealityMeshParams, transform: Transform | undefined, disableTextureDisposal = false) {\n const params = RealityMeshGeometryParams.fromRealityMesh(mesh);\n if (!params)\n return undefined;\n\n return new RealityMeshGeometry({\n realityMeshParams: params,\n transform,\n baseIsTransparent: false,\n isTerrain: true,\n disableTextureDisposal,\n });\n }\n\n public static createFromRealityMesh(realityMesh: RealityMeshParams, disableTextureDisposal = false): RealityMeshGeometry | undefined {\n const params = RealityMeshGeometryParams.fromRealityMesh(realityMesh);\n if (!params)\n return undefined;\n const texture = realityMesh.texture ? new TerrainTexture(realityMesh.texture, realityMesh.featureID ?? 0, Vector2d.create(1.0, -1.0), Vector2d.create(0.0, 1.0), Range2d.createXYXY(0, 0, 1, 1), 0, 0) : undefined;\n\n return new RealityMeshGeometry({ realityMeshParams: params, textureParams: texture ? RealityTextureParams.create([texture]) : undefined, baseIsTransparent: false, isTerrain: false, disableTextureDisposal });\n }\n\n public getRange(): Range3d {\n return Range3d.createXYZXYZ(this.qOrigin[0], this.qOrigin[1], this.qOrigin[2], this.qOrigin[0] + Quantization.rangeScale16 * this.qScale[0], this.qOrigin[1] + Quantization.rangeScale16 * this.qScale[1], this.qOrigin[2] + Quantization.rangeScale16 * this.qScale[2]);\n }\n\n public static createGraphic(system: RenderSystem, params: RealityMeshGraphicParams, disableTextureDisposal = false): RenderGraphic | undefined {\n const meshes = [];\n const textures = params.textures ?? [];\n const realityMesh = params.realityMesh as RealityMeshGeometry;\n const { baseColor, baseTransparent, featureTable, tileId, layerClassifiers } = params;\n\n const texturesPerMesh = System.instance.maxRealityImageryLayers;\n const layers = new Array<(TerrainTexture | ProjectedTexture)[]>();\n // Collate the textures and classifiers layers into a single array.\n for (const texture of textures) {\n const layer = layers[texture.layerIndex];\n if (layer) {\n (layer as TerrainTexture[]).push(texture);\n } else {\n layers[texture.layerIndex] = [texture];\n }\n }\n params.layerClassifiers?.forEach((layerClassifier, layerIndex) => layers[layerIndex] = [new ProjectedTexture(layerClassifier, params, params.tileRectangle)]);\n\n if (layers.length < 2 && !layerClassifiers?.size && textures.length < texturesPerMesh) {\n // If only there is not more than one layer then we can group all of the textures into a single draw call.\n meshes.push(new RealityMeshGeometry({ realityMeshParams: realityMesh._realityMeshParams, textureParams: RealityTextureParams.create(textures), transform: realityMesh._transform, baseColor, baseIsTransparent: baseTransparent, isTerrain: realityMesh._isTerrain, disableTextureDisposal }));\n } else {\n let primaryLayer;\n while (primaryLayer === undefined)\n primaryLayer = layers.shift();\n if (!primaryLayer)\n return undefined;\n for (const primaryTexture of primaryLayer) {\n const targetRectangle = primaryTexture.targetRectangle;\n const overlapMinimum = 1.0E-5 * (targetRectangle.high.x - targetRectangle.low.x) * (targetRectangle.high.y - targetRectangle.low.y);\n let layerTextures = [primaryTexture];\n for (const secondaryLayer of layers) {\n if (!secondaryLayer)\n continue;\n for (const secondaryTexture of secondaryLayer) {\n if (secondaryTexture instanceof ProjectedTexture) {\n layerTextures.push(secondaryTexture.clone(targetRectangle));\n } else {\n const secondaryRectangle = secondaryTexture.targetRectangle;\n const overlap = targetRectangle.intersect(secondaryRectangle, scratchOverlapRange);\n if (!overlap.isNull && (overlap.high.x - overlap.low.x) * (overlap.high.y - overlap.low.y) > overlapMinimum) {\n const textureRange = Range2d.createXYXY(overlap.low.x, overlap.low.y, overlap.high.x, overlap.high.y);\n secondaryRectangle.worldToLocal(textureRange.low, textureRange.low);\n secondaryRectangle.worldToLocal(textureRange.high, textureRange.high);\n\n if (secondaryTexture.clipRectangle)\n textureRange.intersect(secondaryTexture.clipRectangle, textureRange);\n\n if (!textureRange.isNull && textureRange) {\n layerTextures.push(secondaryTexture.cloneWithClip(textureRange));\n }\n }\n }\n }\n }\n while (layerTextures.length > texturesPerMesh) {\n meshes.push(new RealityMeshGeometry({ realityMeshParams: realityMesh._realityMeshParams, textureParams: RealityTextureParams.create(layerTextures.slice(0, texturesPerMesh)), transform: realityMesh._transform, baseColor, baseIsTransparent: baseTransparent, isTerrain: realityMesh._isTerrain, disableTextureDisposal }));\n layerTextures = layerTextures.slice(texturesPerMesh);\n }\n meshes.push(new RealityMeshGeometry({ realityMeshParams: realityMesh._realityMeshParams, textureParams: RealityTextureParams.create(layerTextures), transform: realityMesh._transform, baseColor, baseIsTransparent: baseTransparent, isTerrain: realityMesh._isTerrain, disableTextureDisposal }));\n }\n }\n\n if (meshes.length === 0)\n return undefined;\n\n const branch = new GraphicBranch(true);\n for (const mesh of meshes) {\n const primitive = Primitive.create(mesh);\n branch.add(system.createBatch(primitive!, featureTable, mesh.getRange(), { tileId }));\n }\n\n return system.createBranch(branch, realityMesh._transform ? realityMesh._transform : Transform.createIdentity(), { disableClipStyle: params.disableClipStyle });\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n this._isTerrain ? stats.addTerrain(this._realityMeshParams.bytesUsed) : stats.addRealityMesh(this._realityMeshParams.bytesUsed);\n if (this.textureParams?.params) {\n for (const param of this.textureParams.params) {\n if (param.texture?.bytesUsed)\n stats.addTexture(param.texture.bytesUsed);\n }\n }\n }\n\n public get techniqueId(): TechniqueId { return TechniqueId.RealityMesh; }\n\n public override getPass(target: Target) {\n if (this._baseIsTransparent || (target.wantThematicDisplay && target.uniforms.thematic.wantIsoLines))\n return \"translucent\";\n\n return \"opaque\";\n }\n public get renderOrder(): RenderOrder { return RenderOrder.UnlitSurface; }\n\n public override draw(): void {\n this._params.buffers.bind();\n System.instance.context.drawElements(GL.PrimitiveType.Triangles, this._params.numIndices, this._indexType, 0);\n this._params.buffers.unbind();\n }\n}\n"]}
1
+ {"version":3,"file":"RealityMesh.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/RealityMesh.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert, dispose, disposeArray, UintArray } from \"@itwin/core-bentley\";\nimport { ColorDef, Quantization, RenderTexture } from \"@itwin/core-common\";\nimport { Matrix4d, Range2d, Range3d, Transform, Vector2d } from \"@itwin/core-geometry\";\nimport { GraphicBranch } from \"../../../render/GraphicBranch\";\nimport { RealityMeshGraphicParams } from \"../RealityMeshGraphicParams\";\nimport { RealityMeshParams } from \"../../../render/RealityMeshParams\";\nimport { RenderGraphic } from \"../../../render/RenderGraphic\";\nimport { RenderMemory } from \"../../../render/RenderMemory\";\nimport { RenderPlanarClassifier } from \"../RenderPlanarClassifier\";\nimport { RenderSystem, } from \"../../../render/RenderSystem\";\nimport { BufferHandle, BufferParameters, QBufferHandle2d, QBufferHandle3d } from \"./AttributeBuffers\";\nimport { AttributeMap } from \"./AttributeMap\";\nimport { IndexedGeometry, IndexedGeometryParams } from \"./CachedGeometry\";\nimport { GL } from \"./GL\";\nimport { Matrix4 } from \"./Matrix\";\nimport { PlanarClassifier } from \"./PlanarClassifier\";\nimport { Primitive } from \"./Primitive\";\nimport { RenderOrder } from \"./RenderFlags\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { TechniqueId } from \"./TechniqueId\";\nimport { RenderGeometry } from \"../../../internal/render/RenderGeometry\";\nimport { TerrainTexture } from \"../RenderTerrain\";\n\nconst scratchOverlapRange = Range2d.createNull();\nconst scratchBytes = new Uint8Array(4);\nconst scratchBatchBaseId = new Uint32Array(scratchBytes.buffer);\nconst scratchRange2d = Range2d.createNull();\nclass ProjectedTexture {\n public classifier: PlanarClassifier;\n constructor(classifier: RenderPlanarClassifier, public meshParams: RealityMeshGraphicParams, public targetRectangle: Range2d) {\n this.classifier = classifier as PlanarClassifier;\n }\n public clone(targetRectangle: Range2d) {\n return new ProjectedTexture(this.classifier, this.meshParams, targetRectangle.clone());\n }\n}\ntype TerrainOrProjectedTexture = TerrainTexture | ProjectedTexture;\n\nclass RealityTextureParam implements Disposable {\n constructor(public texture: RenderTexture | undefined, private _projectedTextureOrMatrix: ProjectedTexture | Matrix4) { }\n public get isProjected() { return this._projectedTextureOrMatrix instanceof ProjectedTexture; }\n\n public [Symbol.dispose](): void {\n this.texture = dispose(this.texture);\n }\n\n /* There are two methods of applying a texture to a reality mesh. the first member of \"params\" denotes which\n method is to be used. A value of zero indicates a standard texture and one represents a classified texture.\n\n A standard (nonprojected) texture is generated by multiplying v_textCoord by the scaling and translation packed into the first row\n of \"matrix\". A clip rectangle is packed into second row of \"matrix\".\n\n A \"classified\" reality mesh texture is used for map layers. It does not uses v_texCoord, the texture coordinates\n are instead generated by a projection of the model position onto the X-Y plane. We only have eye position, not model position\n so the matrix in this case is a real transform matrix that contains a mapping from eye to model position\n followed by the model to texture projection.\n*/\n public getProjectionMatrix(): Matrix4d | undefined {\n return this._projectedTextureOrMatrix instanceof ProjectedTexture ? this._projectedTextureOrMatrix.classifier.projectionMatrix : undefined;\n }\n public getTerrainMatrix(): Matrix4 | undefined {\n return this._projectedTextureOrMatrix instanceof Matrix4 ? this._projectedTextureOrMatrix : undefined;\n }\n\n public getParams(result: Matrix4): Matrix4 {\n /** Entry 0 is 0 for */\n if (this._projectedTextureOrMatrix instanceof ProjectedTexture) {\n const projectedTexture = this._projectedTextureOrMatrix;\n\n result.data[0] = 1;\n result.data[1] = projectedTexture.classifier.textureImageCount;\n result.data[2] = projectedTexture.classifier.sourceTransparency === undefined ? 1.0 : (1.0 - projectedTexture.classifier.sourceTransparency);\n scratchBatchBaseId[0] = projectedTexture.classifier.baseBatchId;\n result.data[4] = scratchBytes[0];\n result.data[5] = scratchBytes[1];\n result.data[6] = scratchBytes[2];\n result.data[7] = scratchBytes[3];\n\n const points = [];\n const meshParams = projectedTexture.meshParams;\n // Calculate range in the tiles local coordinates.\n const low = meshParams.tileRectangle.worldToLocal(projectedTexture.targetRectangle.low, scratchRange2d.low)!;\n const high = meshParams.tileRectangle.worldToLocal(projectedTexture.targetRectangle.high, scratchRange2d.high)!;\n points.push(meshParams.projection.getGlobalPoint(low.x, low.y, 0));\n points.push(meshParams.projection.getGlobalPoint(high.x, low.y, 0));\n points.push(meshParams.projection.getGlobalPoint(high.x, high.y, 0));\n points.push(meshParams.projection.getGlobalPoint(low.x, high.y, 0));\n for (let i = 0, j = 8; i < 4; i++) {\n const projectedPoint = projectedTexture.classifier.projectionMatrix.multiplyPoint3dQuietNormalize(points[i]);\n result.data[j++] = projectedPoint.x;\n result.data[j++] = projectedPoint.y;\n }\n const x0 = result.data[10] - result.data[8], y0 = result.data[11] - result.data[9];\n const x1 = result.data[12] - result.data[8], y1 = result.data[13] - result.data[9];\n if (x0 * y1 - x1 * y0 < 0) {\n const swap = ((i: number, j: number) => {\n const temp = result.data[i];\n result.data[i] = result.data[j];\n result.data[j] = temp;\n });\n for (let i = 8, j = 14; i <= 10; i += 2, j -= 2) {\n swap(i, j);\n swap(i + 1, j + 1);\n }\n }\n } else {\n result.data[0] = 0;\n }\n return result;\n }\n}\n\n/** @internal */\nexport class RealityTextureParams implements Disposable {\n constructor(public params: RealityTextureParam[]) { }\n public static create(textures: TerrainOrProjectedTexture[]) {\n const maxTexturesPerMesh = System.instance.maxRealityImageryLayers;\n assert(textures.length <= maxTexturesPerMesh);\n\n const textureParams = new Array<RealityTextureParam>();\n for (const texture of textures) {\n if (texture instanceof TerrainTexture) {\n const terrainTexture = texture;\n const matrix = new Matrix4(); // Published as Mat4.\n assert(terrainTexture.texture !== undefined, \"Texture not defined in TerrainTextureParams constructor\");\n matrix.data[0] = terrainTexture.translate.x;\n matrix.data[1] = terrainTexture.translate.y;\n matrix.data[2] = terrainTexture.scale.x;\n matrix.data[3] = terrainTexture.scale.y;\n\n if (terrainTexture.clipRectangle) {\n matrix.data[4] = terrainTexture.clipRectangle.low.x;\n matrix.data[5] = terrainTexture.clipRectangle.low.y;\n matrix.data[6] = terrainTexture.clipRectangle.high.x;\n matrix.data[7] = terrainTexture.clipRectangle.high.y;\n } else {\n matrix.data[4] = matrix.data[5] = 0;\n matrix.data[6] = matrix.data[7] = 1;\n }\n matrix.data[8] = (1.0 - terrainTexture.transparency);\n matrix.data[9] = terrainTexture.featureId;\n textureParams.push(new RealityTextureParam(terrainTexture.texture, matrix));\n } else {\n const classifier = texture.classifier;\n textureParams.push(new RealityTextureParam(classifier.getOrCreateClassifierTexture(), texture));\n }\n }\n\n for (let i = textures.length; i < maxTexturesPerMesh; i++) {\n const matrix = new Matrix4();\n matrix.data[0] = matrix.data[1] = 0.0;\n matrix.data[2] = matrix.data[3] = 1.0;\n matrix.data[4] = matrix.data[5] = 1;\n matrix.data[6] = matrix.data[7] = -1;\n matrix.data[15] = 0; // Denotes a terrain texture.\n textureParams.push(new RealityTextureParam(undefined, matrix));\n }\n return new RealityTextureParams(textureParams);\n }\n\n public [Symbol.dispose](): void {\n disposeArray(this.params);\n }\n}\n/** @internal */\n\nexport class RealityMeshGeometryParams extends IndexedGeometryParams {\n public readonly uvParams: QBufferHandle2d;\n public readonly featureID?: number;\n public readonly normals?: BufferHandle;\n public readonly numBytesPerIndex: 1 | 2 | 4;\n\n protected constructor(positions: QBufferHandle3d, normals: BufferHandle | undefined, uvParams: QBufferHandle2d, indices: BufferHandle, numIndices: number, numBytesPerIndex: 1 | 2 | 4, featureID?: number) {\n super(positions, indices, numIndices);\n this.numBytesPerIndex = numBytesPerIndex;\n let attrParams = AttributeMap.findAttribute(\"a_uvParam\", TechniqueId.RealityMesh, false);\n assert(attrParams !== undefined);\n this.buffers.addBuffer(uvParams, [BufferParameters.create(attrParams.location, 2, GL.DataType.UnsignedShort, false, 0, 0, false)]);\n this.uvParams = uvParams;\n\n if (undefined !== normals) {\n attrParams = AttributeMap.findAttribute(\"a_norm\", TechniqueId.RealityMesh, false);\n assert(attrParams !== undefined);\n if (normals.bytesUsed > 0)\n this.buffers.addBuffer(normals, [BufferParameters.create(attrParams.location, 2, GL.DataType.UnsignedByte, false, 0, 0, false)]);\n this.normals = normals;\n }\n this.featureID = featureID;\n }\n\n private static createFromBuffers(posBuf: QBufferHandle3d, uvParamBuf: QBufferHandle2d, indices: UintArray, normBuf: BufferHandle | undefined, featureID: number) {\n const indBuf = BufferHandle.createBuffer(GL.Buffer.Target.ElementArrayBuffer, indices);\n\n if (undefined === indBuf)\n return undefined;\n\n const bytesPerIndex = indices.BYTES_PER_ELEMENT;\n assert(1 === bytesPerIndex || 2 === bytesPerIndex || 4 === bytesPerIndex);\n return new RealityMeshGeometryParams(posBuf, normBuf, uvParamBuf, indBuf, indices.length, bytesPerIndex, featureID);\n\n }\n\n public static fromRealityMesh(params: RealityMeshParams) {\n const posBuf = QBufferHandle3d.create(params.positions.params, params.positions.points);\n const uvParamBuf = QBufferHandle2d.create(params.uvs.params, params.uvs.points);\n const normalBuf = params.normals ? BufferHandle.createArrayBuffer(params.normals) : undefined;\n return (undefined === posBuf || undefined === uvParamBuf) ? undefined : this.createFromBuffers(posBuf, uvParamBuf, params.indices, normalBuf, params.featureID ?? 0);\n }\n\n public override get isDisposed(): boolean {\n return super.isDisposed && this.uvParams.isDisposed;\n }\n public get bytesUsed(): number { return this.positions.bytesUsed + (undefined === this.normals ? 0 : this.normals.bytesUsed) + this.uvParams.bytesUsed + this.indices.bytesUsed; }\n\n public override[Symbol.dispose]() {\n super[Symbol.dispose]();\n dispose(this.uvParams);\n }\n}\n\n/** @internal */\nexport class RealityMeshGeometry extends IndexedGeometry implements RenderGeometry {\n public readonly renderGeometryType: \"reality-mesh\" = \"reality-mesh\" as const;\n public readonly isInstanceable = false;\n public noDispose = false;\n public readonly hasTextures: boolean;\n public override get asRealityMesh(): RealityMeshGeometry | undefined { return this; }\n public override get isDisposed(): boolean { return this._realityMeshParams.isDisposed; }\n public get uvQParams() { return this._realityMeshParams.uvParams.params; }\n public override get hasFeatures(): boolean { return this._realityMeshParams.featureID !== undefined; }\n public override get supportsThematicDisplay() { return true; }\n public get overrideColorMix() { return .5; } // This could be a setting from either the mesh or the override if required.\n public get transform(): Transform | undefined { return this._transform; }\n\n private _realityMeshParams: RealityMeshGeometryParams;\n private readonly _indexType: GL.DataType;\n public textureParams: RealityTextureParams | undefined;\n private readonly _transform: Transform | undefined;\n public readonly baseColor: ColorDef | undefined;\n private _baseIsTransparent: boolean;\n private _isTerrain: boolean;\n private _disableTextureDisposal: boolean;\n\n private constructor(props: {\n realityMeshParams: RealityMeshGeometryParams;\n textureParams?: RealityTextureParams;\n transform?: Transform;\n baseColor?: ColorDef;\n baseIsTransparent: boolean;\n isTerrain: boolean;\n disableTextureDisposal: boolean;\n }) {\n super(props.realityMeshParams);\n this._realityMeshParams = props.realityMeshParams;\n this.textureParams = props.textureParams;\n this._transform = props.transform;\n this.baseColor = props.baseColor;\n this._baseIsTransparent = props.baseIsTransparent;\n this._isTerrain = props.isTerrain;\n this._disableTextureDisposal = props.disableTextureDisposal;\n this.hasTextures = undefined !== this.textureParams && this.textureParams.params.some((x) => undefined !== x.texture);\n\n const bytesPerIndex = props.realityMeshParams.numBytesPerIndex;\n this._indexType = 1 === bytesPerIndex ? GL.DataType.UnsignedByte : (2 === bytesPerIndex ? GL.DataType.UnsignedShort : GL.DataType.UnsignedInt);\n }\n\n public override[Symbol.dispose]() {\n if (this.noDispose) {\n return;\n }\n\n super[Symbol.dispose]();\n dispose(this._realityMeshParams);\n if (true !== this._disableTextureDisposal)\n dispose(this.textureParams);\n }\n\n public static createForTerrain(mesh: RealityMeshParams, transform: Transform | undefined, disableTextureDisposal = false) {\n const params = RealityMeshGeometryParams.fromRealityMesh(mesh);\n if (!params)\n return undefined;\n\n return new RealityMeshGeometry({\n realityMeshParams: params,\n transform,\n baseIsTransparent: false,\n isTerrain: true,\n disableTextureDisposal,\n });\n }\n\n public static createFromRealityMesh(realityMesh: RealityMeshParams, disableTextureDisposal = false): RealityMeshGeometry | undefined {\n const params = RealityMeshGeometryParams.fromRealityMesh(realityMesh);\n if (!params)\n return undefined;\n const texture = realityMesh.texture ? new TerrainTexture(realityMesh.texture, realityMesh.featureID ?? 0, Vector2d.create(1.0, -1.0), Vector2d.create(0.0, 1.0), Range2d.createXYXY(0, 0, 1, 1), 0, 0) : undefined;\n\n return new RealityMeshGeometry({ realityMeshParams: params, textureParams: texture ? RealityTextureParams.create([texture]) : undefined, baseIsTransparent: false, isTerrain: false, disableTextureDisposal });\n }\n\n public getRange(): Range3d {\n return Range3d.createXYZXYZ(this.qOrigin[0], this.qOrigin[1], this.qOrigin[2], this.qOrigin[0] + Quantization.rangeScale16 * this.qScale[0], this.qOrigin[1] + Quantization.rangeScale16 * this.qScale[1], this.qOrigin[2] + Quantization.rangeScale16 * this.qScale[2]);\n }\n\n public static createGraphic(system: RenderSystem, params: RealityMeshGraphicParams, disableTextureDisposal = false): RenderGraphic | undefined {\n const meshes = [];\n const textures = params.textures ?? [];\n const realityMesh = params.realityMesh as RealityMeshGeometry;\n const { baseColor, baseTransparent, featureTable, tileId, layerClassifiers } = params;\n\n const texturesPerMesh = System.instance.maxRealityImageryLayers;\n const layers = new Array<(TerrainTexture | ProjectedTexture)[]>();\n // Collate the textures and classifiers layers into a single array.\n for (const texture of textures) {\n const layer = layers[texture.layerIndex];\n if (layer) {\n (layer as TerrainTexture[]).push(texture);\n } else {\n layers[texture.layerIndex] = [texture];\n }\n }\n params.layerClassifiers?.forEach((layerClassifier, layerIndex) => layers[layerIndex] = [new ProjectedTexture(layerClassifier, params, params.tileRectangle)]);\n\n if (layers.length < 2 && !layerClassifiers?.size && textures.length < texturesPerMesh) {\n // If only there is not more than one layer then we can group all of the textures into a single draw call.\n meshes.push(new RealityMeshGeometry({ realityMeshParams: realityMesh._realityMeshParams, textureParams: RealityTextureParams.create(textures), transform: realityMesh._transform, baseColor, baseIsTransparent: baseTransparent, isTerrain: realityMesh._isTerrain, disableTextureDisposal }));\n } else {\n let primaryLayer;\n while (primaryLayer === undefined)\n primaryLayer = layers.shift();\n if (!primaryLayer)\n return undefined;\n for (const primaryTexture of primaryLayer) {\n const targetRectangle = primaryTexture.targetRectangle;\n const overlapMinimum = 1.0E-5 * (targetRectangle.high.x - targetRectangle.low.x) * (targetRectangle.high.y - targetRectangle.low.y);\n let layerTextures = [primaryTexture];\n for (const secondaryLayer of layers) {\n if (!secondaryLayer)\n continue;\n for (const secondaryTexture of secondaryLayer) {\n if (secondaryTexture instanceof ProjectedTexture) {\n layerTextures.push(secondaryTexture.clone(targetRectangle));\n } else {\n const secondaryRectangle = secondaryTexture.targetRectangle;\n const overlap = targetRectangle.intersect(secondaryRectangle, scratchOverlapRange);\n if (!overlap.isNull && (overlap.high.x - overlap.low.x) * (overlap.high.y - overlap.low.y) > overlapMinimum) {\n const textureRange = Range2d.createXYXY(overlap.low.x, overlap.low.y, overlap.high.x, overlap.high.y);\n secondaryRectangle.worldToLocal(textureRange.low, textureRange.low);\n secondaryRectangle.worldToLocal(textureRange.high, textureRange.high);\n\n if (secondaryTexture.clipRectangle)\n textureRange.intersect(secondaryTexture.clipRectangle, textureRange);\n\n if (!textureRange.isNull && textureRange) {\n layerTextures.push(secondaryTexture.cloneWithClip(textureRange));\n }\n }\n }\n }\n }\n while (layerTextures.length > texturesPerMesh) {\n meshes.push(new RealityMeshGeometry({ realityMeshParams: realityMesh._realityMeshParams, textureParams: RealityTextureParams.create(layerTextures.slice(0, texturesPerMesh)), transform: realityMesh._transform, baseColor, baseIsTransparent: baseTransparent, isTerrain: realityMesh._isTerrain, disableTextureDisposal }));\n layerTextures = layerTextures.slice(texturesPerMesh);\n }\n meshes.push(new RealityMeshGeometry({ realityMeshParams: realityMesh._realityMeshParams, textureParams: RealityTextureParams.create(layerTextures), transform: realityMesh._transform, baseColor, baseIsTransparent: baseTransparent, isTerrain: realityMesh._isTerrain, disableTextureDisposal }));\n }\n }\n\n if (meshes.length === 0)\n return undefined;\n\n const branch = new GraphicBranch(true);\n for (const mesh of meshes) {\n const primitive = Primitive.create(mesh);\n branch.add(system.createBatch(primitive!, featureTable, mesh.getRange(), { tileId }));\n }\n\n return system.createBranch(branch, realityMesh._transform ? realityMesh._transform : Transform.createIdentity(), { disableClipStyle: params.disableClipStyle });\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n this._isTerrain ? stats.addTerrain(this._realityMeshParams.bytesUsed) : stats.addRealityMesh(this._realityMeshParams.bytesUsed);\n if (this.textureParams?.params) {\n for (const param of this.textureParams.params) {\n if (param.texture?.bytesUsed)\n stats.addTexture(param.texture.bytesUsed);\n }\n }\n }\n\n public get techniqueId(): TechniqueId { return TechniqueId.RealityMesh; }\n\n public override getPass(target: Target) {\n if (this._baseIsTransparent || (target.wantThematicDisplay && target.uniforms.thematic.wantIsoLines))\n return \"translucent\";\n\n return \"opaque\";\n }\n public get renderOrder(): RenderOrder { return RenderOrder.UnlitSurface; }\n\n public override draw(): void {\n this._params.buffers.bind();\n System.instance.context.drawElements(GL.PrimitiveType.Triangles, this._params.numIndices, this._indexType, 0);\n this._params.buffers.unbind();\n }\n}\n"]}