@itwin/core-frontend 5.0.0-dev.40 → 5.0.0-dev.49

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 (566) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/lib/cjs/AccuDraw.d.ts +21 -3
  3. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  4. package/lib/cjs/AccuDraw.js +174 -56
  5. package/lib/cjs/AccuDraw.js.map +1 -1
  6. package/lib/cjs/BriefcaseConnection.js +1 -1
  7. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  8. package/lib/cjs/BriefcaseTxns.d.ts +1 -1
  9. package/lib/cjs/BriefcaseTxns.d.ts.map +1 -1
  10. package/lib/cjs/BriefcaseTxns.js +1 -1
  11. package/lib/cjs/BriefcaseTxns.js.map +1 -1
  12. package/lib/cjs/DrawingViewState.js +2 -2
  13. package/lib/cjs/DrawingViewState.js.map +1 -1
  14. package/lib/cjs/EnvironmentDecorations.d.ts +1 -1
  15. package/lib/cjs/EnvironmentDecorations.d.ts.map +1 -1
  16. package/lib/cjs/EnvironmentDecorations.js +1 -1
  17. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  18. package/lib/cjs/GraphicalEditingScope.d.ts +3 -1
  19. package/lib/cjs/GraphicalEditingScope.d.ts.map +1 -1
  20. package/lib/cjs/GraphicalEditingScope.js +7 -3
  21. package/lib/cjs/GraphicalEditingScope.js.map +1 -1
  22. package/lib/cjs/IModelApp.d.ts +0 -5
  23. package/lib/cjs/IModelApp.d.ts.map +1 -1
  24. package/lib/cjs/IModelApp.js +0 -5
  25. package/lib/cjs/IModelApp.js.map +1 -1
  26. package/lib/cjs/IModelConnection.js +1 -1
  27. package/lib/cjs/IModelConnection.js.map +1 -1
  28. package/lib/cjs/NoRenderApp.d.ts +1 -1
  29. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  30. package/lib/cjs/NoRenderApp.js +1 -2
  31. package/lib/cjs/NoRenderApp.js.map +1 -1
  32. package/lib/cjs/SheetViewState.js +6 -6
  33. package/lib/cjs/SheetViewState.js.map +1 -1
  34. package/lib/cjs/SubCategoriesCache.d.ts +1 -1
  35. package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
  36. package/lib/cjs/SubCategoriesCache.js +1 -1
  37. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  38. package/lib/cjs/Tiles.d.ts +1 -1
  39. package/lib/cjs/Tiles.d.ts.map +1 -1
  40. package/lib/cjs/Tiles.js +6 -6
  41. package/lib/cjs/Tiles.js.map +1 -1
  42. package/lib/cjs/ViewManager.js +1 -1
  43. package/lib/cjs/ViewManager.js.map +1 -1
  44. package/lib/cjs/ViewState.js +1 -1
  45. package/lib/cjs/ViewState.js.map +1 -1
  46. package/lib/cjs/Viewport.d.ts +5 -3
  47. package/lib/cjs/Viewport.d.ts.map +1 -1
  48. package/lib/cjs/Viewport.js +8 -4
  49. package/lib/cjs/Viewport.js.map +1 -1
  50. package/lib/cjs/common/internal/render/MeshPrimitives.js +1 -1
  51. package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -1
  52. package/lib/cjs/core-frontend.d.ts +1 -0
  53. package/lib/cjs/core-frontend.d.ts.map +1 -1
  54. package/lib/cjs/core-frontend.js +1 -0
  55. package/lib/cjs/core-frontend.js.map +1 -1
  56. package/lib/cjs/internal/render/RenderGeometry.d.ts +1 -2
  57. package/lib/cjs/internal/render/RenderGeometry.d.ts.map +1 -1
  58. package/lib/cjs/internal/render/RenderGeometry.js.map +1 -1
  59. package/lib/cjs/render/Decorations.d.ts +3 -2
  60. package/lib/cjs/render/Decorations.d.ts.map +1 -1
  61. package/lib/cjs/render/Decorations.js +5 -1
  62. package/lib/cjs/render/Decorations.js.map +1 -1
  63. package/lib/cjs/render/GraphicBranch.d.ts +4 -2
  64. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  65. package/lib/cjs/render/GraphicBranch.js +5 -1
  66. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  67. package/lib/cjs/render/MockRender.d.ts +2 -2
  68. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  69. package/lib/cjs/render/MockRender.js +3 -4
  70. package/lib/cjs/render/MockRender.js.map +1 -1
  71. package/lib/cjs/render/RenderGraphic.d.ts +3 -2
  72. package/lib/cjs/render/RenderGraphic.d.ts.map +1 -1
  73. package/lib/cjs/render/RenderGraphic.js +4 -1
  74. package/lib/cjs/render/RenderGraphic.js.map +1 -1
  75. package/lib/cjs/render/RenderPlanarClassifier.d.ts +3 -3
  76. package/lib/cjs/render/RenderPlanarClassifier.d.ts.map +1 -1
  77. package/lib/cjs/render/RenderPlanarClassifier.js.map +1 -1
  78. package/lib/cjs/render/RenderSystem.d.ts +9 -8
  79. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  80. package/lib/cjs/render/RenderSystem.js +3 -0
  81. package/lib/cjs/render/RenderSystem.js.map +1 -1
  82. package/lib/cjs/render/RenderTarget.d.ts +3 -3
  83. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  84. package/lib/cjs/render/RenderTarget.js +1 -1
  85. package/lib/cjs/render/RenderTarget.js.map +1 -1
  86. package/lib/cjs/render/VisibleFeature.d.ts.map +1 -1
  87. package/lib/cjs/render/VisibleFeature.js +60 -3
  88. package/lib/cjs/render/VisibleFeature.js.map +1 -1
  89. package/lib/cjs/render/webgl/AtmosphereUniforms.d.ts +2 -0
  90. package/lib/cjs/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
  91. package/lib/cjs/render/webgl/AtmosphereUniforms.js +5 -1
  92. package/lib/cjs/render/webgl/AtmosphereUniforms.js.map +1 -1
  93. package/lib/cjs/render/webgl/AttributeBuffers.d.ts +6 -2
  94. package/lib/cjs/render/webgl/AttributeBuffers.d.ts.map +1 -1
  95. package/lib/cjs/render/webgl/AttributeBuffers.js +12 -4
  96. package/lib/cjs/render/webgl/AttributeBuffers.js.map +1 -1
  97. package/lib/cjs/render/webgl/BackgroundMapDrape.d.ts +1 -1
  98. package/lib/cjs/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
  99. package/lib/cjs/render/webgl/BackgroundMapDrape.js +3 -3
  100. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  101. package/lib/cjs/render/webgl/CachedGeometry.d.ts +8 -8
  102. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  103. package/lib/cjs/render/webgl/CachedGeometry.js +8 -8
  104. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  105. package/lib/cjs/render/webgl/ClippingProgram.d.ts +2 -0
  106. package/lib/cjs/render/webgl/ClippingProgram.d.ts.map +1 -1
  107. package/lib/cjs/render/webgl/ClippingProgram.js +5 -1
  108. package/lib/cjs/render/webgl/ClippingProgram.js.map +1 -1
  109. package/lib/cjs/render/webgl/Contours.d.ts +1 -1
  110. package/lib/cjs/render/webgl/Contours.d.ts.map +1 -1
  111. package/lib/cjs/render/webgl/Contours.js +1 -1
  112. package/lib/cjs/render/webgl/Contours.js.map +1 -1
  113. package/lib/cjs/render/webgl/Disposable.d.ts +1 -2
  114. package/lib/cjs/render/webgl/Disposable.d.ts.map +1 -1
  115. package/lib/cjs/render/webgl/Disposable.js +4 -0
  116. package/lib/cjs/render/webgl/Disposable.js.map +1 -1
  117. package/lib/cjs/render/webgl/EDL.d.ts +1 -1
  118. package/lib/cjs/render/webgl/EDL.d.ts.map +1 -1
  119. package/lib/cjs/render/webgl/EDL.js +3 -3
  120. package/lib/cjs/render/webgl/EDL.js.map +1 -1
  121. package/lib/cjs/render/webgl/EdgeGeometry.d.ts +3 -3
  122. package/lib/cjs/render/webgl/EdgeGeometry.d.ts.map +1 -1
  123. package/lib/cjs/render/webgl/EdgeGeometry.js +4 -4
  124. package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -1
  125. package/lib/cjs/render/webgl/FeatureOverrides.d.ts +1 -1
  126. package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
  127. package/lib/cjs/render/webgl/FeatureOverrides.js +1 -1
  128. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  129. package/lib/cjs/render/webgl/FrameBuffer.d.ts +1 -1
  130. package/lib/cjs/render/webgl/FrameBuffer.d.ts.map +1 -1
  131. package/lib/cjs/render/webgl/FrameBuffer.js +1 -1
  132. package/lib/cjs/render/webgl/FrameBuffer.js.map +1 -1
  133. package/lib/cjs/render/webgl/Graphic.d.ts +2 -2
  134. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  135. package/lib/cjs/render/webgl/Graphic.js +11 -11
  136. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  137. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts +2 -2
  138. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  139. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js +2 -2
  140. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  141. package/lib/cjs/render/webgl/InstancedGeometry.d.ts +4 -4
  142. package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
  143. package/lib/cjs/render/webgl/InstancedGeometry.js +5 -6
  144. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  145. package/lib/cjs/render/webgl/Layer.js +1 -1
  146. package/lib/cjs/render/webgl/Layer.js.map +1 -1
  147. package/lib/cjs/render/webgl/Mesh.d.ts +1 -1
  148. package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
  149. package/lib/cjs/render/webgl/Mesh.js +1 -1
  150. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  151. package/lib/cjs/render/webgl/MeshData.d.ts +1 -1
  152. package/lib/cjs/render/webgl/MeshData.d.ts.map +1 -1
  153. package/lib/cjs/render/webgl/MeshData.js +2 -2
  154. package/lib/cjs/render/webgl/MeshData.js.map +1 -1
  155. package/lib/cjs/render/webgl/PlanarClassifier.d.ts +1 -1
  156. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  157. package/lib/cjs/render/webgl/PlanarClassifier.js +22 -9
  158. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  159. package/lib/cjs/render/webgl/PointCloud.d.ts +1 -1
  160. package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
  161. package/lib/cjs/render/webgl/PointCloud.js +1 -1
  162. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  163. package/lib/cjs/render/webgl/PointString.d.ts +1 -1
  164. package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
  165. package/lib/cjs/render/webgl/PointString.js +1 -1
  166. package/lib/cjs/render/webgl/PointString.js.map +1 -1
  167. package/lib/cjs/render/webgl/Polyline.d.ts +1 -1
  168. package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
  169. package/lib/cjs/render/webgl/Polyline.js +1 -1
  170. package/lib/cjs/render/webgl/Polyline.js.map +1 -1
  171. package/lib/cjs/render/webgl/RealityMesh.d.ts +6 -10
  172. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  173. package/lib/cjs/render/webgl/RealityMesh.js +6 -6
  174. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  175. package/lib/cjs/render/webgl/RenderBuffer.d.ts +2 -2
  176. package/lib/cjs/render/webgl/RenderBuffer.d.ts.map +1 -1
  177. package/lib/cjs/render/webgl/RenderBuffer.js +2 -2
  178. package/lib/cjs/render/webgl/RenderBuffer.js.map +1 -1
  179. package/lib/cjs/render/webgl/SceneCompositor.d.ts +1 -1
  180. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  181. package/lib/cjs/render/webgl/SceneCompositor.js +6 -6
  182. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  183. package/lib/cjs/render/webgl/ScreenSpaceEffect.d.ts +1 -1
  184. package/lib/cjs/render/webgl/ScreenSpaceEffect.d.ts.map +1 -1
  185. package/lib/cjs/render/webgl/ScreenSpaceEffect.js +2 -2
  186. package/lib/cjs/render/webgl/ScreenSpaceEffect.js.map +1 -1
  187. package/lib/cjs/render/webgl/ShaderProgram.d.ts +5 -1
  188. package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
  189. package/lib/cjs/render/webgl/ShaderProgram.js +11 -3
  190. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  191. package/lib/cjs/render/webgl/SolarShadowMap.d.ts +1 -1
  192. package/lib/cjs/render/webgl/SolarShadowMap.d.ts.map +1 -1
  193. package/lib/cjs/render/webgl/SolarShadowMap.js +3 -3
  194. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  195. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts +1 -1
  196. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  197. package/lib/cjs/render/webgl/SurfaceGeometry.js +1 -1
  198. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
  199. package/lib/cjs/render/webgl/System.d.ts +1 -1
  200. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  201. package/lib/cjs/render/webgl/System.js +1 -1
  202. package/lib/cjs/render/webgl/System.js.map +1 -1
  203. package/lib/cjs/render/webgl/Target.d.ts +2 -2
  204. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  205. package/lib/cjs/render/webgl/Target.js +9 -10
  206. package/lib/cjs/render/webgl/Target.js.map +1 -1
  207. package/lib/cjs/render/webgl/TargetGraphics.d.ts +1 -1
  208. package/lib/cjs/render/webgl/TargetGraphics.d.ts.map +1 -1
  209. package/lib/cjs/render/webgl/TargetGraphics.js +1 -1
  210. package/lib/cjs/render/webgl/TargetGraphics.js.map +1 -1
  211. package/lib/cjs/render/webgl/Technique.d.ts +6 -0
  212. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  213. package/lib/cjs/render/webgl/Technique.js +97 -15
  214. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  215. package/lib/cjs/render/webgl/Texture.d.ts +1 -1
  216. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  217. package/lib/cjs/render/webgl/Texture.js +1 -1
  218. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  219. package/lib/cjs/render/webgl/TextureDrape.d.ts +1 -1
  220. package/lib/cjs/render/webgl/TextureDrape.d.ts.map +1 -1
  221. package/lib/cjs/render/webgl/TextureDrape.js +1 -1
  222. package/lib/cjs/render/webgl/TextureDrape.js.map +1 -1
  223. package/lib/cjs/render/webgl/ThematicSensors.d.ts +1 -1
  224. package/lib/cjs/render/webgl/ThematicSensors.d.ts.map +1 -1
  225. package/lib/cjs/render/webgl/ThematicSensors.js +1 -1
  226. package/lib/cjs/render/webgl/ThematicSensors.js.map +1 -1
  227. package/lib/cjs/render/webgl/ThematicUniforms.d.ts +1 -1
  228. package/lib/cjs/render/webgl/ThematicUniforms.d.ts.map +1 -1
  229. package/lib/cjs/render/webgl/ThematicUniforms.js +1 -1
  230. package/lib/cjs/render/webgl/ThematicUniforms.js.map +1 -1
  231. package/lib/cjs/render/webgl/VertexLUT.d.ts +2 -2
  232. package/lib/cjs/render/webgl/VertexLUT.d.ts.map +1 -1
  233. package/lib/cjs/render/webgl/VertexLUT.js +2 -2
  234. package/lib/cjs/render/webgl/VertexLUT.js.map +1 -1
  235. package/lib/cjs/render/webgl/VisibleTileFeatures.js +60 -3
  236. package/lib/cjs/render/webgl/VisibleTileFeatures.js.map +1 -1
  237. package/lib/cjs/tile/ClassifierTileTree.js +1 -1
  238. package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
  239. package/lib/cjs/tile/DynamicIModelTile.js +3 -3
  240. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  241. package/lib/cjs/tile/IModelTileTree.d.ts +1 -1
  242. package/lib/cjs/tile/IModelTileTree.d.ts.map +1 -1
  243. package/lib/cjs/tile/IModelTileTree.js +12 -10
  244. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  245. package/lib/cjs/tile/ImdlDecoder.d.ts +1 -1
  246. package/lib/cjs/tile/ImdlDecoder.js +1 -1
  247. package/lib/cjs/tile/ImdlDecoder.js.map +1 -1
  248. package/lib/cjs/tile/LRUTileList.d.ts +1 -1
  249. package/lib/cjs/tile/LRUTileList.d.ts.map +1 -1
  250. package/lib/cjs/tile/LRUTileList.js +1 -1
  251. package/lib/cjs/tile/LRUTileList.js.map +1 -1
  252. package/lib/cjs/tile/OrbitGtTileTree.d.ts +1 -1
  253. package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +1 -1
  254. package/lib/cjs/tile/OrbitGtTileTree.js +6 -6
  255. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  256. package/lib/cjs/tile/PrimaryTileTree.js +1 -1
  257. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  258. package/lib/cjs/tile/Tile.d.ts +2 -0
  259. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  260. package/lib/cjs/tile/Tile.js +6 -2
  261. package/lib/cjs/tile/Tile.js.map +1 -1
  262. package/lib/cjs/tile/TileAdmin.js +1 -1
  263. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  264. package/lib/cjs/tile/TileTree.d.ts +2 -0
  265. package/lib/cjs/tile/TileTree.d.ts.map +1 -1
  266. package/lib/cjs/tile/TileTree.js +5 -1
  267. package/lib/cjs/tile/TileTree.js.map +1 -1
  268. package/lib/cjs/tile/TileTreeOwner.d.ts +1 -1
  269. package/lib/cjs/tile/TileTreeOwner.d.ts.map +1 -1
  270. package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
  271. package/lib/cjs/tile/map/ImageryTileTree.d.ts +1 -1
  272. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  273. package/lib/cjs/tile/map/ImageryTileTree.js +2 -2
  274. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  275. package/lib/cjs/tools/AccuDrawTool.d.ts +4 -2
  276. package/lib/cjs/tools/AccuDrawTool.d.ts.map +1 -1
  277. package/lib/cjs/tools/AccuDrawTool.js +34 -56
  278. package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
  279. package/lib/cjs/tools/AccuDrawViewportUI.d.ts +154 -0
  280. package/lib/cjs/tools/AccuDrawViewportUI.d.ts.map +1 -0
  281. package/lib/cjs/tools/AccuDrawViewportUI.js +715 -0
  282. package/lib/cjs/tools/AccuDrawViewportUI.js.map +1 -0
  283. package/lib/esm/AccuDraw.d.ts +21 -3
  284. package/lib/esm/AccuDraw.d.ts.map +1 -1
  285. package/lib/esm/AccuDraw.js +174 -56
  286. package/lib/esm/AccuDraw.js.map +1 -1
  287. package/lib/esm/BriefcaseConnection.js +1 -1
  288. package/lib/esm/BriefcaseConnection.js.map +1 -1
  289. package/lib/esm/BriefcaseTxns.d.ts +1 -1
  290. package/lib/esm/BriefcaseTxns.d.ts.map +1 -1
  291. package/lib/esm/BriefcaseTxns.js +1 -1
  292. package/lib/esm/BriefcaseTxns.js.map +1 -1
  293. package/lib/esm/DrawingViewState.js +2 -2
  294. package/lib/esm/DrawingViewState.js.map +1 -1
  295. package/lib/esm/EnvironmentDecorations.d.ts +1 -1
  296. package/lib/esm/EnvironmentDecorations.d.ts.map +1 -1
  297. package/lib/esm/EnvironmentDecorations.js +1 -1
  298. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  299. package/lib/esm/GraphicalEditingScope.d.ts +3 -1
  300. package/lib/esm/GraphicalEditingScope.d.ts.map +1 -1
  301. package/lib/esm/GraphicalEditingScope.js +7 -3
  302. package/lib/esm/GraphicalEditingScope.js.map +1 -1
  303. package/lib/esm/IModelApp.d.ts +0 -5
  304. package/lib/esm/IModelApp.d.ts.map +1 -1
  305. package/lib/esm/IModelApp.js +0 -5
  306. package/lib/esm/IModelApp.js.map +1 -1
  307. package/lib/esm/IModelConnection.js +1 -1
  308. package/lib/esm/IModelConnection.js.map +1 -1
  309. package/lib/esm/NoRenderApp.d.ts +1 -1
  310. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  311. package/lib/esm/NoRenderApp.js +1 -2
  312. package/lib/esm/NoRenderApp.js.map +1 -1
  313. package/lib/esm/SheetViewState.js +6 -6
  314. package/lib/esm/SheetViewState.js.map +1 -1
  315. package/lib/esm/SubCategoriesCache.d.ts +1 -1
  316. package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
  317. package/lib/esm/SubCategoriesCache.js +1 -1
  318. package/lib/esm/SubCategoriesCache.js.map +1 -1
  319. package/lib/esm/Tiles.d.ts +1 -1
  320. package/lib/esm/Tiles.d.ts.map +1 -1
  321. package/lib/esm/Tiles.js +6 -6
  322. package/lib/esm/Tiles.js.map +1 -1
  323. package/lib/esm/ViewManager.js +1 -1
  324. package/lib/esm/ViewManager.js.map +1 -1
  325. package/lib/esm/ViewState.js +1 -1
  326. package/lib/esm/ViewState.js.map +1 -1
  327. package/lib/esm/Viewport.d.ts +5 -3
  328. package/lib/esm/Viewport.d.ts.map +1 -1
  329. package/lib/esm/Viewport.js +8 -4
  330. package/lib/esm/Viewport.js.map +1 -1
  331. package/lib/esm/common/internal/render/MeshPrimitives.js +2 -2
  332. package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -1
  333. package/lib/esm/core-frontend.d.ts +1 -0
  334. package/lib/esm/core-frontend.d.ts.map +1 -1
  335. package/lib/esm/core-frontend.js +1 -0
  336. package/lib/esm/core-frontend.js.map +1 -1
  337. package/lib/esm/internal/render/RenderGeometry.d.ts +1 -2
  338. package/lib/esm/internal/render/RenderGeometry.d.ts.map +1 -1
  339. package/lib/esm/internal/render/RenderGeometry.js.map +1 -1
  340. package/lib/esm/render/Decorations.d.ts +3 -2
  341. package/lib/esm/render/Decorations.d.ts.map +1 -1
  342. package/lib/esm/render/Decorations.js +5 -1
  343. package/lib/esm/render/Decorations.js.map +1 -1
  344. package/lib/esm/render/GraphicBranch.d.ts +4 -2
  345. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  346. package/lib/esm/render/GraphicBranch.js +5 -1
  347. package/lib/esm/render/GraphicBranch.js.map +1 -1
  348. package/lib/esm/render/MockRender.d.ts +2 -2
  349. package/lib/esm/render/MockRender.d.ts.map +1 -1
  350. package/lib/esm/render/MockRender.js +3 -4
  351. package/lib/esm/render/MockRender.js.map +1 -1
  352. package/lib/esm/render/RenderGraphic.d.ts +3 -2
  353. package/lib/esm/render/RenderGraphic.d.ts.map +1 -1
  354. package/lib/esm/render/RenderGraphic.js +4 -1
  355. package/lib/esm/render/RenderGraphic.js.map +1 -1
  356. package/lib/esm/render/RenderPlanarClassifier.d.ts +3 -3
  357. package/lib/esm/render/RenderPlanarClassifier.d.ts.map +1 -1
  358. package/lib/esm/render/RenderPlanarClassifier.js.map +1 -1
  359. package/lib/esm/render/RenderSystem.d.ts +9 -8
  360. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  361. package/lib/esm/render/RenderSystem.js +3 -0
  362. package/lib/esm/render/RenderSystem.js.map +1 -1
  363. package/lib/esm/render/RenderTarget.d.ts +3 -3
  364. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  365. package/lib/esm/render/RenderTarget.js +1 -1
  366. package/lib/esm/render/RenderTarget.js.map +1 -1
  367. package/lib/esm/render/VisibleFeature.d.ts.map +1 -1
  368. package/lib/esm/render/VisibleFeature.js +60 -3
  369. package/lib/esm/render/VisibleFeature.js.map +1 -1
  370. package/lib/esm/render/webgl/AtmosphereUniforms.d.ts +2 -0
  371. package/lib/esm/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
  372. package/lib/esm/render/webgl/AtmosphereUniforms.js +5 -1
  373. package/lib/esm/render/webgl/AtmosphereUniforms.js.map +1 -1
  374. package/lib/esm/render/webgl/AttributeBuffers.d.ts +6 -2
  375. package/lib/esm/render/webgl/AttributeBuffers.d.ts.map +1 -1
  376. package/lib/esm/render/webgl/AttributeBuffers.js +12 -4
  377. package/lib/esm/render/webgl/AttributeBuffers.js.map +1 -1
  378. package/lib/esm/render/webgl/BackgroundMapDrape.d.ts +1 -1
  379. package/lib/esm/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
  380. package/lib/esm/render/webgl/BackgroundMapDrape.js +3 -3
  381. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  382. package/lib/esm/render/webgl/CachedGeometry.d.ts +8 -8
  383. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  384. package/lib/esm/render/webgl/CachedGeometry.js +8 -8
  385. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  386. package/lib/esm/render/webgl/ClippingProgram.d.ts +2 -0
  387. package/lib/esm/render/webgl/ClippingProgram.d.ts.map +1 -1
  388. package/lib/esm/render/webgl/ClippingProgram.js +5 -1
  389. package/lib/esm/render/webgl/ClippingProgram.js.map +1 -1
  390. package/lib/esm/render/webgl/Contours.d.ts +1 -1
  391. package/lib/esm/render/webgl/Contours.d.ts.map +1 -1
  392. package/lib/esm/render/webgl/Contours.js +1 -1
  393. package/lib/esm/render/webgl/Contours.js.map +1 -1
  394. package/lib/esm/render/webgl/Disposable.d.ts +1 -2
  395. package/lib/esm/render/webgl/Disposable.d.ts.map +1 -1
  396. package/lib/esm/render/webgl/Disposable.js +4 -0
  397. package/lib/esm/render/webgl/Disposable.js.map +1 -1
  398. package/lib/esm/render/webgl/EDL.d.ts +1 -1
  399. package/lib/esm/render/webgl/EDL.d.ts.map +1 -1
  400. package/lib/esm/render/webgl/EDL.js +3 -3
  401. package/lib/esm/render/webgl/EDL.js.map +1 -1
  402. package/lib/esm/render/webgl/EdgeGeometry.d.ts +3 -3
  403. package/lib/esm/render/webgl/EdgeGeometry.d.ts.map +1 -1
  404. package/lib/esm/render/webgl/EdgeGeometry.js +4 -4
  405. package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -1
  406. package/lib/esm/render/webgl/FeatureOverrides.d.ts +1 -1
  407. package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
  408. package/lib/esm/render/webgl/FeatureOverrides.js +1 -1
  409. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  410. package/lib/esm/render/webgl/FrameBuffer.d.ts +1 -1
  411. package/lib/esm/render/webgl/FrameBuffer.d.ts.map +1 -1
  412. package/lib/esm/render/webgl/FrameBuffer.js +1 -1
  413. package/lib/esm/render/webgl/FrameBuffer.js.map +1 -1
  414. package/lib/esm/render/webgl/Graphic.d.ts +2 -2
  415. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  416. package/lib/esm/render/webgl/Graphic.js +11 -11
  417. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  418. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts +2 -2
  419. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  420. package/lib/esm/render/webgl/IndexedEdgeGeometry.js +2 -2
  421. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  422. package/lib/esm/render/webgl/InstancedGeometry.d.ts +4 -4
  423. package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
  424. package/lib/esm/render/webgl/InstancedGeometry.js +5 -6
  425. package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
  426. package/lib/esm/render/webgl/Layer.js +1 -1
  427. package/lib/esm/render/webgl/Layer.js.map +1 -1
  428. package/lib/esm/render/webgl/Mesh.d.ts +1 -1
  429. package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
  430. package/lib/esm/render/webgl/Mesh.js +1 -1
  431. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  432. package/lib/esm/render/webgl/MeshData.d.ts +1 -1
  433. package/lib/esm/render/webgl/MeshData.d.ts.map +1 -1
  434. package/lib/esm/render/webgl/MeshData.js +2 -2
  435. package/lib/esm/render/webgl/MeshData.js.map +1 -1
  436. package/lib/esm/render/webgl/PlanarClassifier.d.ts +1 -1
  437. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  438. package/lib/esm/render/webgl/PlanarClassifier.js +22 -9
  439. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  440. package/lib/esm/render/webgl/PointCloud.d.ts +1 -1
  441. package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
  442. package/lib/esm/render/webgl/PointCloud.js +1 -1
  443. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  444. package/lib/esm/render/webgl/PointString.d.ts +1 -1
  445. package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
  446. package/lib/esm/render/webgl/PointString.js +1 -1
  447. package/lib/esm/render/webgl/PointString.js.map +1 -1
  448. package/lib/esm/render/webgl/Polyline.d.ts +1 -1
  449. package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
  450. package/lib/esm/render/webgl/Polyline.js +1 -1
  451. package/lib/esm/render/webgl/Polyline.js.map +1 -1
  452. package/lib/esm/render/webgl/RealityMesh.d.ts +6 -10
  453. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  454. package/lib/esm/render/webgl/RealityMesh.js +6 -6
  455. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  456. package/lib/esm/render/webgl/RenderBuffer.d.ts +2 -2
  457. package/lib/esm/render/webgl/RenderBuffer.d.ts.map +1 -1
  458. package/lib/esm/render/webgl/RenderBuffer.js +2 -2
  459. package/lib/esm/render/webgl/RenderBuffer.js.map +1 -1
  460. package/lib/esm/render/webgl/SceneCompositor.d.ts +1 -1
  461. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  462. package/lib/esm/render/webgl/SceneCompositor.js +6 -6
  463. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  464. package/lib/esm/render/webgl/ScreenSpaceEffect.d.ts +1 -1
  465. package/lib/esm/render/webgl/ScreenSpaceEffect.d.ts.map +1 -1
  466. package/lib/esm/render/webgl/ScreenSpaceEffect.js +2 -2
  467. package/lib/esm/render/webgl/ScreenSpaceEffect.js.map +1 -1
  468. package/lib/esm/render/webgl/ShaderProgram.d.ts +5 -1
  469. package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
  470. package/lib/esm/render/webgl/ShaderProgram.js +11 -3
  471. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  472. package/lib/esm/render/webgl/SolarShadowMap.d.ts +1 -1
  473. package/lib/esm/render/webgl/SolarShadowMap.d.ts.map +1 -1
  474. package/lib/esm/render/webgl/SolarShadowMap.js +3 -3
  475. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  476. package/lib/esm/render/webgl/SurfaceGeometry.d.ts +1 -1
  477. package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  478. package/lib/esm/render/webgl/SurfaceGeometry.js +1 -1
  479. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -1
  480. package/lib/esm/render/webgl/System.d.ts +1 -1
  481. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  482. package/lib/esm/render/webgl/System.js +1 -1
  483. package/lib/esm/render/webgl/System.js.map +1 -1
  484. package/lib/esm/render/webgl/Target.d.ts +2 -2
  485. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  486. package/lib/esm/render/webgl/Target.js +9 -10
  487. package/lib/esm/render/webgl/Target.js.map +1 -1
  488. package/lib/esm/render/webgl/TargetGraphics.d.ts +1 -1
  489. package/lib/esm/render/webgl/TargetGraphics.d.ts.map +1 -1
  490. package/lib/esm/render/webgl/TargetGraphics.js +1 -1
  491. package/lib/esm/render/webgl/TargetGraphics.js.map +1 -1
  492. package/lib/esm/render/webgl/Technique.d.ts +6 -0
  493. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  494. package/lib/esm/render/webgl/Technique.js +98 -16
  495. package/lib/esm/render/webgl/Technique.js.map +1 -1
  496. package/lib/esm/render/webgl/Texture.d.ts +1 -1
  497. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  498. package/lib/esm/render/webgl/Texture.js +1 -1
  499. package/lib/esm/render/webgl/Texture.js.map +1 -1
  500. package/lib/esm/render/webgl/TextureDrape.d.ts +1 -1
  501. package/lib/esm/render/webgl/TextureDrape.d.ts.map +1 -1
  502. package/lib/esm/render/webgl/TextureDrape.js +1 -1
  503. package/lib/esm/render/webgl/TextureDrape.js.map +1 -1
  504. package/lib/esm/render/webgl/ThematicSensors.d.ts +1 -1
  505. package/lib/esm/render/webgl/ThematicSensors.d.ts.map +1 -1
  506. package/lib/esm/render/webgl/ThematicSensors.js +1 -1
  507. package/lib/esm/render/webgl/ThematicSensors.js.map +1 -1
  508. package/lib/esm/render/webgl/ThematicUniforms.d.ts +1 -1
  509. package/lib/esm/render/webgl/ThematicUniforms.d.ts.map +1 -1
  510. package/lib/esm/render/webgl/ThematicUniforms.js +1 -1
  511. package/lib/esm/render/webgl/ThematicUniforms.js.map +1 -1
  512. package/lib/esm/render/webgl/VertexLUT.d.ts +2 -2
  513. package/lib/esm/render/webgl/VertexLUT.d.ts.map +1 -1
  514. package/lib/esm/render/webgl/VertexLUT.js +2 -2
  515. package/lib/esm/render/webgl/VertexLUT.js.map +1 -1
  516. package/lib/esm/render/webgl/VisibleTileFeatures.js +60 -3
  517. package/lib/esm/render/webgl/VisibleTileFeatures.js.map +1 -1
  518. package/lib/esm/tile/ClassifierTileTree.js +1 -1
  519. package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
  520. package/lib/esm/tile/DynamicIModelTile.js +3 -3
  521. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  522. package/lib/esm/tile/IModelTileTree.d.ts +1 -1
  523. package/lib/esm/tile/IModelTileTree.d.ts.map +1 -1
  524. package/lib/esm/tile/IModelTileTree.js +12 -10
  525. package/lib/esm/tile/IModelTileTree.js.map +1 -1
  526. package/lib/esm/tile/ImdlDecoder.d.ts +1 -1
  527. package/lib/esm/tile/ImdlDecoder.js +1 -1
  528. package/lib/esm/tile/ImdlDecoder.js.map +1 -1
  529. package/lib/esm/tile/LRUTileList.d.ts +1 -1
  530. package/lib/esm/tile/LRUTileList.d.ts.map +1 -1
  531. package/lib/esm/tile/LRUTileList.js +1 -1
  532. package/lib/esm/tile/LRUTileList.js.map +1 -1
  533. package/lib/esm/tile/OrbitGtTileTree.d.ts +1 -1
  534. package/lib/esm/tile/OrbitGtTileTree.d.ts.map +1 -1
  535. package/lib/esm/tile/OrbitGtTileTree.js +6 -6
  536. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  537. package/lib/esm/tile/PrimaryTileTree.js +1 -1
  538. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  539. package/lib/esm/tile/Tile.d.ts +2 -0
  540. package/lib/esm/tile/Tile.d.ts.map +1 -1
  541. package/lib/esm/tile/Tile.js +6 -2
  542. package/lib/esm/tile/Tile.js.map +1 -1
  543. package/lib/esm/tile/TileAdmin.js +1 -1
  544. package/lib/esm/tile/TileAdmin.js.map +1 -1
  545. package/lib/esm/tile/TileTree.d.ts +2 -0
  546. package/lib/esm/tile/TileTree.d.ts.map +1 -1
  547. package/lib/esm/tile/TileTree.js +5 -1
  548. package/lib/esm/tile/TileTree.js.map +1 -1
  549. package/lib/esm/tile/TileTreeOwner.d.ts +1 -1
  550. package/lib/esm/tile/TileTreeOwner.d.ts.map +1 -1
  551. package/lib/esm/tile/TileTreeOwner.js.map +1 -1
  552. package/lib/esm/tile/map/ImageryTileTree.d.ts +1 -1
  553. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  554. package/lib/esm/tile/map/ImageryTileTree.js +2 -2
  555. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  556. package/lib/esm/tools/AccuDrawTool.d.ts +4 -2
  557. package/lib/esm/tools/AccuDrawTool.d.ts.map +1 -1
  558. package/lib/esm/tools/AccuDrawTool.js +34 -56
  559. package/lib/esm/tools/AccuDrawTool.js.map +1 -1
  560. package/lib/esm/tools/AccuDrawViewportUI.d.ts +154 -0
  561. package/lib/esm/tools/AccuDrawViewportUI.d.ts.map +1 -0
  562. package/lib/esm/tools/AccuDrawViewportUI.js +711 -0
  563. package/lib/esm/tools/AccuDrawViewportUI.js.map +1 -0
  564. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  565. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  566. package/package.json +16 -17
@@ -1 +1 @@
1
- {"version":3,"file":"PlanarClassifier.js","sourceRoot":"","sources":["../../../../src/render/webgl/PlanarClassifier.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH,sDAAuD;AACvD,oDAE4B;AAC5B,wDAA0G;AAE1G,kDAAuH;AAKvH,sEAA2F;AAC3F,6CAA0C;AAC1C,+CAA4C;AAC5C,qDAA2H;AAG3H,+CAA4C;AAC5C,6BAA0B;AAC1B,uCAA0C;AAC1C,uEAAoE;AACpE,qDAAkD;AAElD,+CAA4C;AAC5C,2DAAoD;AACpD,qCAAkC;AAGlC,uCAAmD;AAGnD,IAAY,uBAA6F;AAAzG,WAAY,uBAAuB;IAAG,qEAAQ,CAAA;IAAE,6EAAY,CAAA;IAAE,yFAAkB,CAAA;IAAE,+FAAqB,CAAA;AAAC,CAAC,EAA7F,uBAAuB,uCAAvB,uBAAuB,QAAsE;AAEzG,SAAS,aAAa,CAAC,MAAqB;IAC1C,OAAO,IAAI,iBAAO,CAAC;QACjB,MAAM;QACN,SAAS,EAAE,UAAU;QACrB,IAAI,EAAE,2BAAa,CAAC,IAAI,CAAC,WAAW;QACpC,YAAY,EAAE,iCAAmB,CAAC,MAAM;KACzC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa,EAAE,MAAc,EAAE,UAAU,GAAG,GAAG;IAC1E,OAAO,uBAAa,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,OAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACjI,CAAC;AAED,MAAM,kBAAkB;IACtB,YAAoC,KAAc,EAChC,OAAgB,EAChB,MAAe;QAFG,UAAK,GAAL,KAAK,CAAS;QAChC,YAAO,GAAP,OAAO,CAAS;QAChB,WAAM,GAAN,MAAM,CAAS;IAAI,CAAC;IAEtC,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU;eACvB,IAAI,CAAC,OAAO,CAAC,UAAU;eACvB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAC9B,CAAC;IAEM,OAAO;QACZ,IAAA,sBAAO,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,IAAA,sBAAO,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,IAAA,sBAAO,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAEM,iBAAiB,CAAC,KAA8B;QACrD,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAChD,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAClD,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,KAAa,EAAE,MAAc;QAChD,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO;YAClC,OAAO,SAAS,CAAC;QAEnB,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM;YAC/B,OAAO,SAAS,CAAC;QAEnB,OAAO,IAAI,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;CACF;AAED,MAAM,sBAAsB;IAC1B,YACkB,QAA4B,EAC3B,OAAoB,EACpB,IAAiB,EACjB,UAAgC;QAHjC,aAAQ,GAAR,QAAQ,CAAoB;QAC3B,YAAO,GAAP,OAAO,CAAa;QACpB,SAAI,GAAJ,IAAI,CAAa;QACjB,eAAU,GAAV,UAAU,CAAsB;IACnD,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;IACnH,CAAC;IAEM,OAAO;QACZ,IAAA,sBAAO,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,IAAA,sBAAO,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzB,IAAA,sBAAO,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,IAAA,sBAAO,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAEM,IAAI,CAAC,IAAkB,EAAE,MAAc;QAC5C,eAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;YACpE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAA,iCAAa,EAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAC/D,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,2CAAkC,CAAC;QAC3E,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,UAAU,CAAC,IAAkB,EAAE,MAAc;QAClD,MAAM,MAAM,GAAG,eAAM,CAAC,QAAQ,CAAC;QAC/B,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;QAC1B,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9D,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,EAAE,CAAC,KAAK,CAAC,OAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC7B,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,6BAAoB,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,KAAa,EAAE,MAAc;QAChD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,SAAS,KAAK,QAAQ;YACxB,OAAO,SAAS,CAAC;QAEnB,MAAM,SAAS,GAAG,yBAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAChE,IAAI,SAAS,KAAK,SAAS;YACzB,OAAO,SAAS,CAAC;QAEnB,MAAM,GAAG,GAAG,yBAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACnF,IAAI,SAAS,KAAK,GAAG;YACnB,OAAO,SAAS,CAAC;QAEnB,MAAM,IAAI,GAAG,qCAAoB,CAAC,MAAM,wCAA+B,CAAC;QACxE,OAAO,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnF,CAAC;CACF;AAOD,MAAe,wBAAwB;IAGrC,IAAW,UAAU,KAAc,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACpF,iBAAiB,CAAC,KAA8B,IAAU,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACrH,YAAsB,aAA4B;QAChD,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC;IAC/B,CAAC;IACM,OAAO;QACZ,IAAA,sBAAO,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,IAAA,sBAAO,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IACM,MAAM,CAAC,2BAA2B,CAAC,KAAa,EAAE,MAAc;QACrE,MAAM,QAAQ,GAAG,uBAAa,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC5H,IAAI,CAAC,QAAQ;YACX,OAAO,SAAS,CAAC;QAEnB,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,EAAE,IAAI,EAAE,2BAAa,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,iCAAmB,CAAC,MAAM,EAAE,CAAC,CAAC;QACzJ,IAAI,CAAC,OAAO;YACV,OAAO,SAAS,CAAC;QAEnB,MAAM,GAAG,GAAG,yBAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAClD,IAAI,SAAS,KAAK,GAAG;YACnB,OAAO,SAAS,CAAC;QAEnB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC1B,CAAC;CACF;AACD,MAAM,eAAgB,SAAQ,wBAAwB;IAC7C,MAAM,CAAC,MAAM,CAAC,KAAa,EAAE,MAAc;QAChD,MAAM,UAAU,GAAG,wBAAwB,CAAC,2BAA2B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvF,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;IAChF,CAAC;IACM,IAAI,CAAC,IAAkB,EAAE,MAAc;QAC5C,MAAM,MAAM,GAAG,eAAM,CAAC,QAAQ,CAAC;QAC/B,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;QAE1B,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;YAC1D,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,EAAE,CAAC,KAAK,CAAC,OAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC7B,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,2CAAkC,CAAC;QAC3E,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AACD,MAAe,0BAA2B,SAAQ,wBAAwB;IACxE,YAAY,aAA4B,EAAU,YAA4B,EAAU,MAAc,EAAU,OAAe,EAAU,WAAmB;QAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QAAnI,iBAAY,GAAZ,YAAY,CAAgB;QAAU,WAAM,GAAN,MAAM,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAQ;QAAU,gBAAW,GAAX,WAAW,CAAQ;IAA0B,CAAC;IAChL,OAAO,CAAC,MAAc;QAC3B,MAAM,MAAM,GAAG,eAAM,CAAC,QAAQ,CAAC;QAC/B,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;QAC1B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5E,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;YAC1D,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,EAAE,CAAC,KAAK,CAAC,OAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC7B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAA,iCAAa,EAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,2BAA4B,SAAQ,0BAA0B;IAC3D,MAAM,CAAC,MAAM,CAAC,KAAa,EAAE,MAAc,EAAE,eAAwB,EAAE,iBAA0B;QACtG,MAAM,WAAW,GAAG,wCAAuB,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,EAAG,EAAE,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAG,CAAC,CAAC;QACzI,IAAI,SAAS,KAAK,WAAW;YAC3B,OAAO,SAAS,CAAC;QAEnB,MAAM,UAAU,GAAG,wBAAwB,CAAC,2BAA2B,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;QAC3F,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,2BAA2B,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3H,CAAC;CACF;AACD,MAAM,kCAAmC,SAAQ,0BAA0B;IAClE,MAAM,CAAC,MAAM,CAAC,KAAa,EAAE,MAAc,EAAE,eAAwB,EAAE,iBAA0B,EAAE,IAAa;QACrH,MAAM,WAAW,GAAG,yCAAwB,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,EAAG,EAAE,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAG,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAG,CAAC,CAAC;QACrK,IAAI,SAAS,KAAK,WAAW;YAC3B,OAAO,SAAS,CAAC;QAEnB,MAAM,UAAU,GAAG,wBAAwB,CAAC,2BAA2B,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;QAC3F,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,kCAAkC,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAClI,CAAC;CACF;AAED,MAAM,sBAAsB,GAAG,IAAI,yBAAW,EAAE,CAAC;AAEjD,gBAAgB;AAChB,MAAa,gBAAiB,SAAQ,+CAAsB;IA6BxD,CAAC;aAEY,0BAAqB,GAAG,wBAAQ,CAAC,eAAe,CAC7D,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACV,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EACX,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACV,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,AAJuB,CAItB;IAOd,YAAoB,UAA+C,EAAE,MAAc;QACjF,KAAK,EAAE,CAAC;QAtCF,sBAAiB,GAAG,wBAAQ,CAAC,cAAc,EAAE,CAAC;QAErC,wBAAmB,GAAoB,EAAE,CAAC;QAC1C,kBAAa,GAAoB,EAAE,CAAC;QAE7C,WAAM,GAAG,CAAC,CAAC;QACX,YAAO,GAAG,CAAC,CAAC;QACZ,iBAAY,GAAG,CAAC,CAAC;QACjB,gBAAW,GAAG,KAAK,CAAC;QACpB,eAAU,GAAG,KAAK,CAAC;QACnB,oBAAe,GAAG,KAAK,CAAC;QAEf,WAAM,GAAG,4CAA4B,CAAC,MAAM,CAAC,IAAI,uBAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,wBAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAI,wDAAwD;QACvJ,iBAAY,GAAG,IAAI,yBAAW,EAAE,CAAC;QAEjC,iBAAY,GAAG,IAAI,yBAAW,EAAE,CAAC;QAK1C,iBAAY,GAA4B,uBAAuB,CAAC,IAAI,CAAC;QAErE,4BAAuB,GAA4B;YACzD,gBAAgB,EAAE,IAAI,sBAAO,EAAc;SAC5C,CAAC;QAQM,oBAAe,GAAG,KAAK,CAAC;QACxB,yBAAoB,GAAmB,SAAS,CAAC;QAExC,aAAQ,GAAG,sBAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAItD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAE9B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QACtC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QAExD,IAAI,CAAC,WAAW,GAAG,IAAI,uBAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrD,IAAI,CAAC,eAAe,GAAG,IAAI,+BAAc,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACzF,CAAC;IACD,IAAW,iBAAiB,KAAa,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAE7D,SAAS,CAAC,MAAoB;QACnC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;QAChC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9B,IAAI,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,EAAI,wFAAwF;YACnI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAE1B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC;IAE5H,CAAC;IAED,IAAW,aAAa,KAA0B,OAAO,SAAS,KAAK,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACvJ,IAAW,gBAAgB,KAAe,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC1E,0EAA0E;IAC1E,IAAW,WAAW,KAAa,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9D,IAAW,UAAU,KAAc,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7D,IAAW,SAAS,KAAc,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3D,IAAW,cAAc,KAAc,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IACrE,IAAW,aAAa,KAAqC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,4CAA8B,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5J,IAAW,cAAc,KAAsC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,6CAA+B,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/J,IAAW,uBAAuB,KAAc,OAAO,IAAI,KAAK,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAEzF,UAAU,CAAC,OAAsB;QACtC,IAAI,CAAC,SAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,UAA+C,EAAE,MAAc;QAClF,OAAO,IAAI,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAEM,iBAAiB,CAAC,KAA8B;QACrD,IAAI,SAAS,KAAK,IAAI,CAAC,kBAAkB;YACvC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAE5D,IAAI,SAAS,KAAK,IAAI,CAAC,WAAW;YAChC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAE5C,IAAI,SAAS,KAAK,IAAI,CAAC,yBAAyB;YAC9C,IAAI,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAE1D,IAAI,SAAS,KAAK,IAAI,CAAC,gCAAgC;YACrD,IAAI,CAAC,gCAAgC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC;IAED,IAAW,UAAU,KAAc,OAAO,SAAS,KAAK,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE3E,OAAO;QACZ,IAAI,CAAC,kBAAkB,GAAG,IAAA,sBAAO,EAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC3D,IAAI,CAAC,WAAW,GAAG,IAAA,sBAAO,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,yBAAyB,GAAG,IAAA,sBAAO,EAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACzE,IAAI,CAAC,gCAAgC,GAAG,IAAA,sBAAO,EAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QACvF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;IAC7D,CAAC;IAED,IAAW,OAAO;QAChB,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,KAAK,uBAAuB,CAAC,IAAI;gBAC/B,OAAO,SAAS,CAAC;YACnB,KAAK,uBAAuB,CAAC,cAAc;gBACzC,OAAO,IAAI,CAAC,yBAAyB,EAAE,OAAO,CAAC;YACjD,KAAK,uBAAuB,CAAC,QAAQ;gBACnC,OAAO,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;YACnC,KAAK,uBAAuB,CAAC,iBAAiB;gBAC5C,OAAO,IAAI,CAAC,gCAAgC,EAAE,OAAO,CAAC;QAC1D,CAAC;IACH,CAAC;IACM,4BAA4B;QACjC,IAAI,SAAS,KAAK,IAAI,CAAC,kBAAkB;YACvC,IAAI,CAAC,kBAAkB,GAAG,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACrF,IAAI,SAAS,KAAK,IAAI,CAAC,kBAAkB,IAAI,SAAS,KAAK,IAAI,CAAC,yBAAyB;YACvF,IAAI,CAAC,yBAAyB,GAAG,2BAA2B,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEnL,OAAO,IAAI,CAAC,yBAAyB,EAAE,OAAO,CAAC;IACjD,CAAC;IAEO,WAAW,CAAC,UAAsB,EAAE,QAAyB;QACnE,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,OAAO,YAAY,eAAK,EAAE,CAAC;gBAC7B,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC/B,UAAU,CAAC,GAAG,EAAE,CAAC;YACnB,CAAC;iBAAM,IAAI,OAAO,YAAY,gBAAM,EAAE,CAAC;gBACrC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACvD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAW,kBAAkB;QAC3B,OAAO,IAAI,CAAC,kBAAkB,EAAE,YAAY,CAAC;IAC/C,CAAC;IAEM,cAAc,CAAC,UAAsB;QAC1C,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,WAAW,GAAG,CAAC,CAAC;QAC/C,IAAI,SAAS,KAAK,IAAI,CAAC,mBAAmB;YACxC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC3D,CAAC;IAEM,SAAS,CAAC,iBAAsD,EAAE,cAAoC;QAC3G,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,iBAAiB,EAAE,gBAAgB,CAAC;QACvD,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IACxC,CAAC;IAEM,eAAe,CAAC,OAAqB,EAAE,MAA8B;QAC1E,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAChE,IAAI,SAAS,KAAK,OAAO,CAAC,YAAY;YACpC,OAAO;QAET,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;YAC5B,OAAO;QAET,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,kBAAkB,IAAI,KAAK,CAAC;QAEhF,MAAM,cAAc,GAAG,eAAM,CAAC,QAAQ,CAAC,eAAe,CAAC;QACvD,MAAM,cAAc,GAAG,cAAc,CAAC;QACtC,MAAM,aAAa,GAAG,cAAc,CAAC;QAErC,IAAI,aAAa,KAAK,IAAI,CAAC,MAAM,IAAI,cAAc,KAAK,IAAI,CAAC,OAAO;YAClE,IAAI,CAAC,OAAO,EAAE,CAAC;QAEjB,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC;QAC9B,MAAM,SAAS,GAAG,uBAAO,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACzF,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,kBAAkB;YACxC,OAAO;QAET,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAqB,CAAC;QAChF,IAAI,IAAI,CAAC,kBAAkB;YACzB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEzC,MAAM,UAAU,GAAG,iDAAuB,CAAC,8BAA8B,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACnK,IAAI,CAAC,UAAU,CAAC,cAAc,IAAI,CAAC,UAAU,CAAC,gBAAgB,IAAI,CAAC,UAAU,CAAC,cAAc;YAC1F,OAAO;QAET,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,gBAAgB,CAAC;QACrD,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,YAAY,CAAC;QAC7C,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,eAAe,EAAE,mCAAmC,CAAC,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACjI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,sBAAsB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpE,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7B,CAAC;aAAM,IAAI,IAAI,CAAC,eAAe,EAAE,sBAAsB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3E,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,WAAW,CAAC,GAAG,EAAE;gBAC3E,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,eAAe,EAAE,mCAAmC,CAAC,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBACjI,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;YACnC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,OAA0B,EAAE,QAAyB,EAAE,EAAE;YACzE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,2BAAa,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,2BAAa,CAAC,WAAW,EAAE,CAAC;YAC7G,MAAM,QAAQ,GAAG,oCAAyB,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,CAAC,cAAe,CAAC,CAAC;YACrH,IAAI,SAAS,KAAK,QAAQ;gBACxB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7B,CAAC,CAAC;QACF,IAAI,IAAI,CAAC,kBAAkB;YACzB,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAE9D,IAAI,SAAS;YACX,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAE1E,iFAAiF;QACjF,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,YAAY,CAAC;QAEpD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,oBAAoB,GAAG,IAAA,sBAAO,EAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;YAEpD,OAAO,CAAC,YAAY,CAAC,sBAAQ,CAAC,KAAK,EAAE,sBAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,YAAY,CAAC,sBAAQ,CAAC,GAAG,EAAE,sBAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,aAAc,CAAC,CAAC;YACxC,OAAO,CAAC,YAAY,CAAC,sBAAQ,CAAC,IAAI,EAAE,sBAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAElC,OAAO,CAAC,YAAY,CAAC,sBAAQ,CAAC,IAAI,CAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,CAAC,EAAE,sBAAQ,CAAC,IAAI,CAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;YAC3D,OAAO,CAAC,YAAY,CAAC,sBAAQ,CAAC,IAAI,CAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,CAAC,EAAE,sBAAQ,CAAC,IAAI,CAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,aAAc,CAAC,CAAC;YAC7C,OAAO,CAAC,YAAY,CAAC,sBAAQ,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAE,sBAAQ,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7C,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAEM,IAAI,CAAC,MAAc;QACxB,IAAI,SAAS,KAAK,IAAI,CAAC,QAAQ;YAC7B,OAAO;QAET,IAAI,CAAC,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC;QACjD,IAAI,iBAA0D,CAAC;QAC/D,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpC,OAAO;YACT,CAAC;iBAAM,CAAC;gBACN,IAAI,SAAS,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnC,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oBACrE,IAAI,SAAS,KAAK,IAAI,CAAC,WAAW;wBAChC,OAAO;gBACX,CAAC;gBACD,IAAI,CAAC,YAAY,GAAG,uBAAuB,CAAC,QAAQ,CAAC;YACvD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,SAAS,KAAK,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1C,IAAI,CAAC,kBAAkB,GAAG,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBACnF,IAAI,SAAS,KAAK,IAAI,CAAC,kBAAkB;oBACvC,OAAO;YACX,CAAC;YACD,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpC,IAAI,SAAS,KAAK,IAAI,CAAC,yBAAyB,EAAE,CAAC;oBACjD,iBAAiB,GAAG,IAAI,CAAC,yBAAyB,GAAG,2BAA2B,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACrM,IAAI,SAAS,KAAK,IAAI,CAAC,yBAAyB;wBAC9C,OAAO;gBACX,CAAC;gBACD,IAAI,CAAC,YAAY,GAAG,uBAAuB,CAAC,cAAc,CAAC;gBAC3D,iBAAiB,GAAG,IAAI,CAAC,yBAAyB,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,IAAI,SAAS,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnC,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oBACrE,IAAI,SAAS,KAAK,IAAI,CAAC,WAAW;wBAChC,OAAO;gBACX,CAAC;gBACD,IAAI,SAAS,KAAK,IAAI,CAAC,gCAAgC,EAAE,CAAC;oBACxD,iBAAiB,GAAG,IAAI,CAAC,gCAAgC,GAAG,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC7O,IAAI,SAAS,KAAK,IAAI,CAAC,gCAAgC;wBACrD,OAAO;gBACX,CAAC;gBACD,iBAAiB,GAAG,IAAI,CAAC,gCAAgC,CAAC;gBAC1D,IAAI,CAAC,YAAY,GAAG,uBAAuB,CAAC,iBAAiB,CAAC;YAChE,CAAC;QACH,CAAC;QAED,2CAA2C;QAC3C,MAAM,MAAM,GAAG,eAAM,CAAC,QAAQ,CAAC;QAC/B,MAAM,aAAa,GAAG;YACpB,UAAU,EAAE,wBAAU,CAAC,WAAW;YAClC,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,2CAA2C;YACxF,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,KAAK;YAChB,gBAAgB,EAAE,KAAK;YACvB,YAAY,EAAE,KAAK;YACnB,WAAW,EAAE,KAAK;SACnB,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1E,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QAErH,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;QAC7B,MAAM,aAAa,GAAG,MAAM,CAAC,gCAAgC,CAAC;QAE9D,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,0EAA0E;QACtI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAE7B,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAChE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC;QAC5H,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEjF,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5C,MAAM,eAAe,GAAG,CAAC,QAAyB,EAAE,EAAE;YACpD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACzB,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAClE,cAAc,CAAC,kCAAkC,CAAC,QAAQ,CAAC,CAAC;YAE5D,6CAA6C;YAC7C,uJAAuJ;YACvJ,2FAA2F;YAC3F,sFAAsF;YACtF,MAAM,IAAI,GAAG,cAAc,CAAC,WAAW,iCAAyB,CAAC;YAEjE,kJAAkJ;YAClJ,IAAI,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,WAAW,kCAA0B,CAAC,CAAC;YACnE,IAAI,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,WAAW,iCAAyB,CAAC,CAAC;YAClE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,gCAAwB,CAAC;YACrE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;gBACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC9B,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACnE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC,CAAC;YAEhF,gCAAgC;YAChC,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,4BAAmB,CAAC;YACrE,IAAI,CAAC,WAAW,GAAG,CAAC,KAAK,cAAc,CAAC,MAAM,CAAC;YAC/C,IAAI,IAAI,CAAC,WAAW;gBAClB,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACtD,IAAI,IAAI,CAAC,wBAAwB;gBAC/B,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACjE,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,GAAG,GAAG;gBACtI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAE9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;QAErE,CAAC;QACD,IAAI,iBAAiB;YACnB,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEpC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;QAE/C,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/E,CAAC;;AAvXH,4CAwXC","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 \"../FeatureSymbology\";\nimport { RenderGraphic } from \"../RenderGraphic\";\nimport { RenderMemory } from \"../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 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 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 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 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.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 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 const 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.push(...renderCommands.getCommands(RenderPass.OpaqueGeneral));\n cmds.push(...renderCommands.getCommands(RenderPass.OpaqueLinear));\n this._anyOpaque = cmds.length > 0;\n const transCmds = renderCommands.getCommands(RenderPass.Translucent);\n if (transCmds.length > 0) {\n cmds.push(...transCmds);\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/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 \"../FeatureSymbology\";\nimport { RenderGraphic } from \"../RenderGraphic\";\nimport { RenderMemory } from \"../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"]}
@@ -23,7 +23,7 @@ export declare class PointCloudGeometry extends CachedGeometry implements Render
23
23
  get asPointCloud(): PointCloudGeometry | undefined;
24
24
  get supportsThematicDisplay(): boolean;
25
25
  get overrideColorMix(): number;
26
- dispose(): void;
26
+ [Symbol.dispose](): void;
27
27
  constructor(pointCloud: PointCloudArgs);
28
28
  collectStatistics(stats: RenderMemory.Statistics): void;
29
29
  protected _wantWoWReversal(_target: Target): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"PointCloud.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PointCloud.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAoB,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AACvG,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAEtE,gBAAgB;AAChB,qBAAa,kBAAmB,SAAQ,cAAe,YAAW,cAAc;IAC9E,SAAgB,kBAAkB,EAAE,aAAa,CAA0B;IAC3E,SAAgB,cAAc,SAAS;IAChC,SAAS,UAAS;IACzB,SAAgB,OAAO,EAAE,gBAAgB,CAAC;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IACpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IAEvC,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,UAAU,EAAE,OAAO,CAAC;IAEpC,IAAW,UAAU,IAAI,OAAO,CAAiE;IACjG,IAAoB,YAAY,IAAI,kBAAkB,GAAG,SAAS,CAAiB;IACnF,IAAoB,uBAAuB,YAAmB;IAC9D,IAAW,gBAAgB,WAAiB;IAErC,OAAO;gBAOF,UAAU,EAAE,cAAc;IAqB/B,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAK9D,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAEpD,IAAW,WAAW,IAAI,WAAW,CAAmC;IACxD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI7C,IAAW,WAAW,IAAI,WAAW,CAA+B;IACpE,IAAW,OAAO,IAAI,YAAY,CAAkC;IACpE,IAAW,MAAM,IAAI,YAAY,CAAiC;IAClE,IAAW,MAAM,IAAI,YAAY,GAAG,SAAS,CAA8B;IAC3E,IAAoB,WAAW,YAAgC;IAC/D,IAAoB,gBAAgB,YAAmB;IAEhD,IAAI,IAAI,IAAI;IAOH,aAAa,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM;CAIpE"}
1
+ {"version":3,"file":"PointCloud.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PointCloud.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAoB,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AACvG,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAEtE,gBAAgB;AAChB,qBAAa,kBAAmB,SAAQ,cAAe,YAAW,cAAc;IAC9E,SAAgB,kBAAkB,EAAE,aAAa,CAA0B;IAC3E,SAAgB,cAAc,SAAS;IAChC,SAAS,UAAS;IACzB,SAAgB,OAAO,EAAE,gBAAgB,CAAC;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IACpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IAEvC,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,UAAU,EAAE,OAAO,CAAC;IAEpC,IAAW,UAAU,IAAI,OAAO,CAAiE;IACjG,IAAoB,YAAY,IAAI,kBAAkB,GAAG,SAAS,CAAiB;IACnF,IAAoB,uBAAuB,YAAmB;IAC9D,IAAW,gBAAgB,WAAiB;IAErC,CAAC,MAAM,CAAC,OAAO,CAAC;gBAOX,UAAU,EAAE,cAAc;IAqB/B,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAK9D,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAEpD,IAAW,WAAW,IAAI,WAAW,CAAmC;IACxD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI7C,IAAW,WAAW,IAAI,WAAW,CAA+B;IACpE,IAAW,OAAO,IAAI,YAAY,CAAkC;IACpE,IAAW,MAAM,IAAI,YAAY,CAAiC;IAClE,IAAW,MAAM,IAAI,YAAY,GAAG,SAAS,CAA8B;IAC3E,IAAoB,WAAW,YAAgC;IAC/D,IAAoB,gBAAgB,YAAmB;IAEhD,IAAI,IAAI,IAAI;IAOH,aAAa,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM;CAIpE"}
@@ -21,7 +21,7 @@ class PointCloudGeometry extends CachedGeometry_1.CachedGeometry {
21
21
  get asPointCloud() { return this; }
22
22
  get supportsThematicDisplay() { return true; }
23
23
  get overrideColorMix() { return .5; } // This could be a setting from either the mesh or the override if required.
24
- dispose() {
24
+ [Symbol.dispose]() {
25
25
  if (!this.noDispose) {
26
26
  (0, core_bentley_1.dispose)(this.buffers);
27
27
  (0, core_bentley_1.dispose)(this._vertices);
@@ -1 +1 @@
1
- {"version":3,"file":"PointCloud.js","sourceRoot":"","sources":["../../../../src/render/webgl/PointCloud.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 } from \"@itwin/core-bentley\";\nimport { FeatureIndexType } from \"@itwin/core-common\";\nimport { PointCloudArgs } from \"../../common/internal/render/PointCloudPrimitive\";\nimport { RenderMemory } from \"../RenderMemory\";\nimport { AttributeMap } from \"./AttributeMap\";\nimport { CachedGeometry } from \"./CachedGeometry\";\nimport { ShaderProgramParams } from \"./DrawCommand\";\nimport { GL } from \"./GL\";\nimport { BufferHandle, BufferParameters, BuffersContainer, QBufferHandle3d } from \"./AttributeBuffers\";\nimport { Pass, RenderOrder } from \"./RenderFlags\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { TechniqueId } from \"./TechniqueId\";\nimport { RenderGeometry } from \"../../internal/render/RenderGeometry\";\n\n/** @internal */\nexport class PointCloudGeometry extends CachedGeometry implements RenderGeometry {\n public readonly renderGeometryType: \"point-cloud\" = \"point-cloud\" as const;\n public readonly isInstanceable = false;\n public noDispose = false;\n public readonly buffers: BuffersContainer;\n private readonly _vertices: QBufferHandle3d;\n private readonly _vertexCount: number;\n private readonly _colorHandle: BufferHandle | undefined = undefined;\n private readonly _hasFeatures: boolean;\n\n public readonly voxelSize: number;\n public readonly colorIsBgr: boolean;\n\n public get isDisposed(): boolean { return this.buffers.isDisposed && this._vertices.isDisposed; }\n public override get asPointCloud(): PointCloudGeometry | undefined { return this; }\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\n public dispose() {\n if (!this.noDispose) {\n dispose(this.buffers);\n dispose(this._vertices);\n }\n }\n\n constructor(pointCloud: PointCloudArgs) {\n super();\n this.buffers = BuffersContainer.create();\n this._vertices = QBufferHandle3d.create(pointCloud.qparams, pointCloud.positions) as QBufferHandle3d;\n const attrPos = AttributeMap.findAttribute(\"a_pos\", TechniqueId.PointCloud, false);\n assert(undefined !== attrPos);\n const vertexDataType = (pointCloud.positions instanceof Float32Array) ? GL.DataType.Float : ((pointCloud.positions instanceof Uint8Array) ? GL.DataType.UnsignedByte : GL.DataType.UnsignedShort);\n this.buffers.addBuffer(this._vertices, [BufferParameters.create(attrPos.location, 3, vertexDataType, false, 0, 0, false)]);\n this._vertexCount = pointCloud.positions.length / 3;\n this._hasFeatures = FeatureIndexType.Empty !== pointCloud.features.type;\n this.voxelSize = pointCloud.voxelSize;\n this.colorIsBgr = \"bgr\" === pointCloud.colorFormat;\n\n if (undefined !== pointCloud.colors) {\n this._colorHandle = BufferHandle.createArrayBuffer(pointCloud.colors);\n const attrColor = AttributeMap.findAttribute(\"a_color\", TechniqueId.PointCloud, false);\n assert(undefined !== attrColor);\n this.buffers.addBuffer(this._colorHandle!, [BufferParameters.create(attrColor.location, 3, GL.DataType.UnsignedByte, true, 0, 0, false)]);\n }\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n const bytesUsed = this._vertices.bytesUsed + (undefined !== this._colorHandle ? this._colorHandle.bytesUsed : 0);\n stats.addPointCloud(bytesUsed);\n }\n\n protected _wantWoWReversal(_target: Target): boolean { return false; }\n\n public get techniqueId(): TechniqueId { return TechniqueId.PointCloud; }\n public override getPass(target: Target): Pass {\n // Point clouds don't cast shadows.\n return target.isDrawingShadowMap ? \"none\" : \"point-clouds\";\n }\n public get renderOrder(): RenderOrder { return RenderOrder.Linear; }\n public get qOrigin(): Float32Array { return this._vertices.origin; }\n public get qScale(): Float32Array { return this._vertices.scale; }\n public get colors(): BufferHandle | undefined { return this._colorHandle; }\n public override get hasFeatures() { return this._hasFeatures; }\n public override get hasBakedLighting() { return true; }\n\n public draw(): void {\n this.buffers.bind();\n System.instance.context.drawArrays(GL.PrimitiveType.Points, 0, this._vertexCount);\n this.buffers.unbind();\n }\n\n // ###TODO delete this.\n public override getLineWeight(_params: ShaderProgramParams): number {\n // If line weight < 0 it is real size in meters (voxel size).\n return (this.voxelSize > 0) ? - this.voxelSize : 1;\n }\n}\n"]}
1
+ {"version":3,"file":"PointCloud.js","sourceRoot":"","sources":["../../../../src/render/webgl/PointCloud.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 } from \"@itwin/core-bentley\";\nimport { FeatureIndexType } from \"@itwin/core-common\";\nimport { PointCloudArgs } from \"../../common/internal/render/PointCloudPrimitive\";\nimport { RenderMemory } from \"../RenderMemory\";\nimport { AttributeMap } from \"./AttributeMap\";\nimport { CachedGeometry } from \"./CachedGeometry\";\nimport { ShaderProgramParams } from \"./DrawCommand\";\nimport { GL } from \"./GL\";\nimport { BufferHandle, BufferParameters, BuffersContainer, QBufferHandle3d } from \"./AttributeBuffers\";\nimport { Pass, RenderOrder } from \"./RenderFlags\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { TechniqueId } from \"./TechniqueId\";\nimport { RenderGeometry } from \"../../internal/render/RenderGeometry\";\n\n/** @internal */\nexport class PointCloudGeometry extends CachedGeometry implements RenderGeometry {\n public readonly renderGeometryType: \"point-cloud\" = \"point-cloud\" as const;\n public readonly isInstanceable = false;\n public noDispose = false;\n public readonly buffers: BuffersContainer;\n private readonly _vertices: QBufferHandle3d;\n private readonly _vertexCount: number;\n private readonly _colorHandle: BufferHandle | undefined = undefined;\n private readonly _hasFeatures: boolean;\n\n public readonly voxelSize: number;\n public readonly colorIsBgr: boolean;\n\n public get isDisposed(): boolean { return this.buffers.isDisposed && this._vertices.isDisposed; }\n public override get asPointCloud(): PointCloudGeometry | undefined { return this; }\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\n public [Symbol.dispose]() {\n if (!this.noDispose) {\n dispose(this.buffers);\n dispose(this._vertices);\n }\n }\n\n constructor(pointCloud: PointCloudArgs) {\n super();\n this.buffers = BuffersContainer.create();\n this._vertices = QBufferHandle3d.create(pointCloud.qparams, pointCloud.positions) as QBufferHandle3d;\n const attrPos = AttributeMap.findAttribute(\"a_pos\", TechniqueId.PointCloud, false);\n assert(undefined !== attrPos);\n const vertexDataType = (pointCloud.positions instanceof Float32Array) ? GL.DataType.Float : ((pointCloud.positions instanceof Uint8Array) ? GL.DataType.UnsignedByte : GL.DataType.UnsignedShort);\n this.buffers.addBuffer(this._vertices, [BufferParameters.create(attrPos.location, 3, vertexDataType, false, 0, 0, false)]);\n this._vertexCount = pointCloud.positions.length / 3;\n this._hasFeatures = FeatureIndexType.Empty !== pointCloud.features.type;\n this.voxelSize = pointCloud.voxelSize;\n this.colorIsBgr = \"bgr\" === pointCloud.colorFormat;\n\n if (undefined !== pointCloud.colors) {\n this._colorHandle = BufferHandle.createArrayBuffer(pointCloud.colors);\n const attrColor = AttributeMap.findAttribute(\"a_color\", TechniqueId.PointCloud, false);\n assert(undefined !== attrColor);\n this.buffers.addBuffer(this._colorHandle!, [BufferParameters.create(attrColor.location, 3, GL.DataType.UnsignedByte, true, 0, 0, false)]);\n }\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n const bytesUsed = this._vertices.bytesUsed + (undefined !== this._colorHandle ? this._colorHandle.bytesUsed : 0);\n stats.addPointCloud(bytesUsed);\n }\n\n protected _wantWoWReversal(_target: Target): boolean { return false; }\n\n public get techniqueId(): TechniqueId { return TechniqueId.PointCloud; }\n public override getPass(target: Target): Pass {\n // Point clouds don't cast shadows.\n return target.isDrawingShadowMap ? \"none\" : \"point-clouds\";\n }\n public get renderOrder(): RenderOrder { return RenderOrder.Linear; }\n public get qOrigin(): Float32Array { return this._vertices.origin; }\n public get qScale(): Float32Array { return this._vertices.scale; }\n public get colors(): BufferHandle | undefined { return this._colorHandle; }\n public override get hasFeatures() { return this._hasFeatures; }\n public override get hasBakedLighting() { return true; }\n\n public draw(): void {\n this.buffers.bind();\n System.instance.context.drawArrays(GL.PrimitiveType.Points, 0, this._vertexCount);\n this.buffers.unbind();\n }\n\n // ###TODO delete this.\n public override getLineWeight(_params: ShaderProgramParams): number {\n // If line weight < 0 it is real size in meters (voxel size).\n return (this.voxelSize > 0) ? - this.voxelSize : 1;\n }\n}\n"]}
@@ -36,7 +36,7 @@ export declare class PointStringGeometry extends LUTGeometry implements RenderGe
36
36
  protected _draw(numInstances: number, instanceBuffersContainer?: BuffersContainer): void;
37
37
  static create(params: PointStringParams, viOrigin: Point3d | undefined): PointStringGeometry | undefined;
38
38
  get isDisposed(): boolean;
39
- dispose(): void;
39
+ [Symbol.dispose](): void;
40
40
  collectStatistics(stats: RenderMemory.Statistics): void;
41
41
  }
42
42
  //# sourceMappingURL=PointString.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PointString.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PointString.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAoB,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAoB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAEtE,gBAAgB;AAChB,qBAAa,mBAAoB,SAAQ,WAAY,YAAW,cAAc;IAC5E,SAAgB,kBAAkB,EAAE,cAAc,CAA2B;IAC7E,SAAgB,cAAc,EAAE,OAAO,CAAC;IACjC,SAAS,UAAS;IACzB,SAAgB,OAAO,EAAE,gBAAgB,CAAC;IAC1C,SAAgB,YAAY,EAAE,SAAS,CAAC;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,GAAG,EAAE,SAAS,CAAC;IAC/B,SAAgB,OAAO,EAAE,YAAY,CAAC;IACtC,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC,IAAW,UAAU,qBAA2B;IAEhD,OAAO;IAeP,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAEpD,IAAW,WAAW,IAAI,WAAW,CAAoC;IACzD,OAAO,IAAI,IAAI;IAC/B,IAAoB,WAAW,YAAgC;IAC/D,IAAW,WAAW,IAAI,WAAW,CAAqC;cACvD,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM;IAEvE,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,gBAAgB,GAAG,IAAI;WAS1E,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,mBAAmB,GAAG,SAAS;IAa/G,IAAW,UAAU,IAAI,OAAO,CAI/B;IAEM,OAAO;IAQP,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;CAI/D"}
1
+ {"version":3,"file":"PointString.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PointString.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAoB,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAoB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAEtE,gBAAgB;AAChB,qBAAa,mBAAoB,SAAQ,WAAY,YAAW,cAAc;IAC5E,SAAgB,kBAAkB,EAAE,cAAc,CAA2B;IAC7E,SAAgB,cAAc,EAAE,OAAO,CAAC;IACjC,SAAS,UAAS;IACzB,SAAgB,OAAO,EAAE,gBAAgB,CAAC;IAC1C,SAAgB,YAAY,EAAE,SAAS,CAAC;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,GAAG,EAAE,SAAS,CAAC;IAC/B,SAAgB,OAAO,EAAE,YAAY,CAAC;IACtC,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC,IAAW,UAAU,qBAA2B;IAEhD,OAAO;IAeP,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAEpD,IAAW,WAAW,IAAI,WAAW,CAAoC;IACzD,OAAO,IAAI,IAAI;IAC/B,IAAoB,WAAW,YAAgC;IAC/D,IAAW,WAAW,IAAI,WAAW,CAAqC;cACvD,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM;IAEvE,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,gBAAgB,GAAG,IAAI;WAS1E,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,mBAAmB,GAAG,SAAS;IAa/G,IAAW,UAAU,IAAI,OAAO,CAI/B;IAEM,CAAC,MAAM,CAAC,OAAO,CAAC;IAQhB,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;CAI/D"}
@@ -63,7 +63,7 @@ class PointStringGeometry extends CachedGeometry_1.LUTGeometry {
63
63
  && this.lut.isDisposed
64
64
  && this.indices.isDisposed;
65
65
  }
66
- dispose() {
66
+ [Symbol.dispose]() {
67
67
  if (!this.noDispose) {
68
68
  (0, core_bentley_1.dispose)(this.buffers);
69
69
  (0, core_bentley_1.dispose)(this.lut);
@@ -1 +1 @@
1
- {"version":3,"file":"PointString.js","sourceRoot":"","sources":["../../../../src/render/webgl/PointString.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 { Point3d } from \"@itwin/core-geometry\";\nimport { FeatureIndexType, QParams3d } from \"@itwin/core-common\";\nimport { PointStringParams } from \"../../common/internal/render/PointStringParams\";\nimport { RenderMemory } from \"../RenderMemory\";\nimport { AttributeMap } from \"./AttributeMap\";\nimport { LUTGeometry } from \"./CachedGeometry\";\nimport { ShaderProgramParams } from \"./DrawCommand\";\nimport { GL } from \"./GL\";\nimport { BufferHandle, BufferParameters, BuffersContainer } from \"./AttributeBuffers\";\nimport { Pass, RenderOrder } from \"./RenderFlags\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { TechniqueId } from \"./TechniqueId\";\nimport { VertexLUT } from \"./VertexLUT\";\nimport { RenderGeometry } from \"../../internal/render/RenderGeometry\";\n\n/** @internal */\nexport class PointStringGeometry extends LUTGeometry implements RenderGeometry {\n public readonly renderGeometryType: \"point-string\" = \"point-string\" as const;\n public readonly isInstanceable: boolean;\n public noDispose = false;\n public readonly buffers: BuffersContainer;\n public readonly vertexParams: QParams3d;\n private readonly _hasFeatures: boolean;\n public readonly weight: number;\n public readonly lut: VertexLUT;\n public readonly indices: BufferHandle;\n public readonly numIndices: number;\n\n public get lutBuffers() { return this.buffers; }\n\n private constructor(indices: BufferHandle, numIndices: number, lut: VertexLUT, qparams: QParams3d, weight: number, hasFeatures: boolean, viOrigin: Point3d | undefined) {\n super(viOrigin);\n this.isInstanceable = undefined === viOrigin;\n this.buffers = BuffersContainer.create();\n const attrPos = AttributeMap.findAttribute(\"a_pos\", TechniqueId.PointString, false);\n assert(undefined !== attrPos);\n this.buffers.addBuffer(indices, [BufferParameters.create(attrPos.location, 3, GL.DataType.UnsignedByte, false, 0, 0, false)]);\n this.numIndices = numIndices;\n this.indices = indices;\n this.lut = lut;\n this.vertexParams = qparams;\n this.weight = weight;\n this._hasFeatures = hasFeatures;\n }\n\n protected _wantWoWReversal(_target: Target): boolean { return true; }\n\n public get techniqueId(): TechniqueId { return TechniqueId.PointString; }\n public override getPass(): Pass { return \"opaque-linear\"; }\n public override get hasFeatures() { return this._hasFeatures; }\n public get renderOrder(): RenderOrder { return RenderOrder.PlanarLinear; }\n protected override _getLineWeight(_params: ShaderProgramParams): number { return this.weight; }\n\n protected _draw(numInstances: number, instanceBuffersContainer?: BuffersContainer): void {\n const gl = System.instance;\n const bufs = instanceBuffersContainer !== undefined ? instanceBuffersContainer : this.buffers;\n\n bufs.bind();\n gl.drawArrays(GL.PrimitiveType.Points, 0, this.numIndices, numInstances);\n bufs.unbind();\n }\n\n public static create(params: PointStringParams, viOrigin: Point3d | undefined): PointStringGeometry | undefined {\n const indices = BufferHandle.createArrayBuffer(params.indices.data);\n if (undefined === indices)\n return undefined;\n\n const lut = VertexLUT.createFromVertexTable(params.vertices);\n if (undefined === lut)\n return undefined;\n\n const hasFeatures = FeatureIndexType.Empty !== params.vertices.featureIndexType;\n return new PointStringGeometry(indices, params.indices.length, lut, params.vertices.qparams, params.weight, hasFeatures, viOrigin);\n }\n\n public get isDisposed(): boolean {\n return this.buffers.isDisposed\n && this.lut.isDisposed\n && this.indices.isDisposed;\n }\n\n public dispose() {\n if (!this.noDispose) {\n dispose(this.buffers);\n dispose(this.lut);\n dispose(this.indices);\n }\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n stats.addVertexTable(this.lut.bytesUsed);\n stats.addPointString(this.indices.bytesUsed);\n }\n}\n"]}
1
+ {"version":3,"file":"PointString.js","sourceRoot":"","sources":["../../../../src/render/webgl/PointString.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 { Point3d } from \"@itwin/core-geometry\";\nimport { FeatureIndexType, QParams3d } from \"@itwin/core-common\";\nimport { PointStringParams } from \"../../common/internal/render/PointStringParams\";\nimport { RenderMemory } from \"../RenderMemory\";\nimport { AttributeMap } from \"./AttributeMap\";\nimport { LUTGeometry } from \"./CachedGeometry\";\nimport { ShaderProgramParams } from \"./DrawCommand\";\nimport { GL } from \"./GL\";\nimport { BufferHandle, BufferParameters, BuffersContainer } from \"./AttributeBuffers\";\nimport { Pass, RenderOrder } from \"./RenderFlags\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { TechniqueId } from \"./TechniqueId\";\nimport { VertexLUT } from \"./VertexLUT\";\nimport { RenderGeometry } from \"../../internal/render/RenderGeometry\";\n\n/** @internal */\nexport class PointStringGeometry extends LUTGeometry implements RenderGeometry {\n public readonly renderGeometryType: \"point-string\" = \"point-string\" as const;\n public readonly isInstanceable: boolean;\n public noDispose = false;\n public readonly buffers: BuffersContainer;\n public readonly vertexParams: QParams3d;\n private readonly _hasFeatures: boolean;\n public readonly weight: number;\n public readonly lut: VertexLUT;\n public readonly indices: BufferHandle;\n public readonly numIndices: number;\n\n public get lutBuffers() { return this.buffers; }\n\n private constructor(indices: BufferHandle, numIndices: number, lut: VertexLUT, qparams: QParams3d, weight: number, hasFeatures: boolean, viOrigin: Point3d | undefined) {\n super(viOrigin);\n this.isInstanceable = undefined === viOrigin;\n this.buffers = BuffersContainer.create();\n const attrPos = AttributeMap.findAttribute(\"a_pos\", TechniqueId.PointString, false);\n assert(undefined !== attrPos);\n this.buffers.addBuffer(indices, [BufferParameters.create(attrPos.location, 3, GL.DataType.UnsignedByte, false, 0, 0, false)]);\n this.numIndices = numIndices;\n this.indices = indices;\n this.lut = lut;\n this.vertexParams = qparams;\n this.weight = weight;\n this._hasFeatures = hasFeatures;\n }\n\n protected _wantWoWReversal(_target: Target): boolean { return true; }\n\n public get techniqueId(): TechniqueId { return TechniqueId.PointString; }\n public override getPass(): Pass { return \"opaque-linear\"; }\n public override get hasFeatures() { return this._hasFeatures; }\n public get renderOrder(): RenderOrder { return RenderOrder.PlanarLinear; }\n protected override _getLineWeight(_params: ShaderProgramParams): number { return this.weight; }\n\n protected _draw(numInstances: number, instanceBuffersContainer?: BuffersContainer): void {\n const gl = System.instance;\n const bufs = instanceBuffersContainer !== undefined ? instanceBuffersContainer : this.buffers;\n\n bufs.bind();\n gl.drawArrays(GL.PrimitiveType.Points, 0, this.numIndices, numInstances);\n bufs.unbind();\n }\n\n public static create(params: PointStringParams, viOrigin: Point3d | undefined): PointStringGeometry | undefined {\n const indices = BufferHandle.createArrayBuffer(params.indices.data);\n if (undefined === indices)\n return undefined;\n\n const lut = VertexLUT.createFromVertexTable(params.vertices);\n if (undefined === lut)\n return undefined;\n\n const hasFeatures = FeatureIndexType.Empty !== params.vertices.featureIndexType;\n return new PointStringGeometry(indices, params.indices.length, lut, params.vertices.qparams, params.weight, hasFeatures, viOrigin);\n }\n\n public get isDisposed(): boolean {\n return this.buffers.isDisposed\n && this.lut.isDisposed\n && this.indices.isDisposed;\n }\n\n public [Symbol.dispose]() {\n if (!this.noDispose) {\n dispose(this.buffers);\n dispose(this.lut);\n dispose(this.indices);\n }\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n stats.addVertexTable(this.lut.bytesUsed);\n stats.addPointString(this.indices.bytesUsed);\n }\n}\n"]}
@@ -31,7 +31,7 @@ export declare class PolylineGeometry extends LUTGeometry implements RenderGeome
31
31
  get lutBuffers(): BuffersContainer;
32
32
  private constructor();
33
33
  get isDisposed(): boolean;
34
- dispose(): void;
34
+ [Symbol.dispose](): void;
35
35
  collectStatistics(stats: RenderMemory.Statistics): void;
36
36
  get isAnyEdge(): boolean;
37
37
  get isNormalEdge(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Polyline.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/Polyline.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAoB,iBAAiB,EAAE,SAAS,EAAc,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAEtE,gBAAgB;AAChB,qBAAa,gBAAiB,SAAQ,WAAY,YAAW,cAAc;IACzE,SAAgB,kBAAkB,EAAE,UAAU,CAAuB;IACrE,SAAgB,cAAc,EAAE,OAAO,CAAC;IACjC,SAAS,UAAS;IAClB,YAAY,EAAE,SAAS,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,iBAAiB,CAAC;IAC/B,OAAO,CAAC,SAAS,CAAU;IACpB,GAAG,EAAE,SAAS,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAkB;IAElC,IAAW,UAAU,qBAAoC;IAEzD,OAAO;IAcP,IAAW,UAAU,IAAI,OAAO,CAA4D;IAErF,OAAO;IAOP,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAK9D,IAAW,SAAS,IAAI,OAAO,CAAmD;IAClF,IAAW,YAAY,IAAI,OAAO,CAAiD;IACnF,IAAW,aAAa,IAAI,OAAO,CAAoD;IAEvF,IAAW,WAAW,IAAI,WAAW,CAKpC;IAED,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAEpD,IAAoB,eAAe,IAAI,eAAe,GAAG,SAAS,CAA0B;IAE5F,OAAO,CAAC,gBAAgB;IAUR,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAe7C,IAAW,WAAW,IAAI,WAAW,CAAiC;IACtE,IAAW,QAAQ,IAAI,OAAO,CAA2B;IACzD,IAAoB,MAAM,IAAI,OAAO,CAA2B;IAChE,IAAoB,OAAO,IAAI,YAAY,CAA6B;IACxE,IAAoB,MAAM,IAAI,YAAY,CAA4B;IACtE,IAAW,gBAAgB,IAAI,MAAM,CAAsC;IAC3E,IAAoB,WAAW,YAAgC;cAE5C,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;cAGnD,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IAGpD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAInD,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,gBAAgB,GAAG,IAAI;WAS1E,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,qBAAqB,EAAE,OAAO,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS;CAWvH"}
1
+ {"version":3,"file":"Polyline.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/Polyline.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAoB,iBAAiB,EAAE,SAAS,EAAc,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAEtE,gBAAgB;AAChB,qBAAa,gBAAiB,SAAQ,WAAY,YAAW,cAAc;IACzE,SAAgB,kBAAkB,EAAE,UAAU,CAAuB;IACrE,SAAgB,cAAc,EAAE,OAAO,CAAC;IACjC,SAAS,UAAS;IAClB,YAAY,EAAE,SAAS,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,iBAAiB,CAAC;IAC/B,OAAO,CAAC,SAAS,CAAU;IACpB,GAAG,EAAE,SAAS,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAkB;IAElC,IAAW,UAAU,qBAAoC;IAEzD,OAAO;IAcP,IAAW,UAAU,IAAI,OAAO,CAA4D;IAErF,CAAC,MAAM,CAAC,OAAO,CAAC;IAOhB,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAK9D,IAAW,SAAS,IAAI,OAAO,CAAmD;IAClF,IAAW,YAAY,IAAI,OAAO,CAAiD;IACnF,IAAW,aAAa,IAAI,OAAO,CAAoD;IAEvF,IAAW,WAAW,IAAI,WAAW,CAKpC;IAED,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAEpD,IAAoB,eAAe,IAAI,eAAe,GAAG,SAAS,CAA0B;IAE5F,OAAO,CAAC,gBAAgB;IAUR,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAe7C,IAAW,WAAW,IAAI,WAAW,CAAiC;IACtE,IAAW,QAAQ,IAAI,OAAO,CAA2B;IACzD,IAAoB,MAAM,IAAI,OAAO,CAA2B;IAChE,IAAoB,OAAO,IAAI,YAAY,CAA6B;IACxE,IAAoB,MAAM,IAAI,YAAY,CAA4B;IACtE,IAAW,gBAAgB,IAAI,MAAM,CAAsC;IAC3E,IAAoB,WAAW,YAAgC;cAE5C,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;cAGnD,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IAGpD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAInD,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,gBAAgB,GAAG,IAAI;WAS1E,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,qBAAqB,EAAE,OAAO,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS;CAWvH"}
@@ -35,7 +35,7 @@ class PolylineGeometry extends CachedGeometry_1.LUTGeometry {
35
35
  this._buffers = buffers;
36
36
  }
37
37
  get isDisposed() { return this._buffers.isDisposed && this.lut.isDisposed; }
38
- dispose() {
38
+ [Symbol.dispose]() {
39
39
  if (!this.noDispose) {
40
40
  (0, core_bentley_1.dispose)(this.lut);
41
41
  (0, core_bentley_1.dispose)(this._buffers);
@@ -1 +1 @@
1
- {"version":3,"file":"Polyline.js","sourceRoot":"","sources":["../../../../src/render/webgl/Polyline.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 { dispose } from \"@itwin/core-bentley\";\nimport { Point3d } from \"@itwin/core-geometry\";\nimport { FeatureIndexType, PolylineTypeFlags, QParams3d, RenderMode } from \"@itwin/core-common\";\nimport { PolylineParams } from \"../../common/internal/render/PolylineParams\";\nimport { RenderMemory } from \"../RenderMemory\";\nimport { LUTGeometry, PolylineBuffers } from \"./CachedGeometry\";\nimport { ColorInfo } from \"./ColorInfo\";\nimport { ShaderProgramParams } from \"./DrawCommand\";\nimport { LineCode } from \"./LineCode\";\nimport { GL } from \"./GL\";\nimport { BuffersContainer } from \"./AttributeBuffers\";\nimport { Pass, RenderOrder } from \"./RenderFlags\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { TechniqueId } from \"./TechniqueId\";\nimport { VertexLUT } from \"./VertexLUT\";\nimport { RenderGeometry } from \"../../internal/render/RenderGeometry\";\n\n/** @internal */\nexport class PolylineGeometry extends LUTGeometry implements RenderGeometry {\n public readonly renderGeometryType: \"polyline\" = \"polyline\" as const;\n public readonly isInstanceable: boolean;\n public noDispose = false;\n public vertexParams: QParams3d;\n private readonly _hasFeatures: boolean;\n public lineWeight: number;\n public lineCode: number;\n public type: PolylineTypeFlags;\n private _isPlanar: boolean;\n public lut: VertexLUT;\n public numIndices: number;\n private _buffers: PolylineBuffers;\n\n public get lutBuffers() { return this._buffers.buffers; }\n\n private constructor(lut: VertexLUT, buffers: PolylineBuffers, params: PolylineParams, viOrigin: Point3d | undefined) {\n super(viOrigin);\n this.isInstanceable = undefined === viOrigin;\n this.vertexParams = params.vertices.qparams;\n this._hasFeatures = FeatureIndexType.Empty !== params.vertices.featureIndexType;\n this.lineWeight = params.weight;\n this.lineCode = LineCode.valueFromLinePixels(params.linePixels);\n this.type = params.type;\n this._isPlanar = params.isPlanar;\n this.lut = lut;\n this.numIndices = params.polyline.indices.length;\n this._buffers = buffers;\n }\n\n public get isDisposed(): boolean { return this._buffers.isDisposed && this.lut.isDisposed; }\n\n public dispose() {\n if (!this.noDispose) {\n dispose(this.lut);\n dispose(this._buffers);\n }\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n this._buffers.collectStatistics(stats, RenderMemory.BufferType.Polylines);\n stats.addVertexTable(this.lut.bytesUsed);\n }\n\n public get isAnyEdge(): boolean { return PolylineTypeFlags.Normal !== this.type; }\n public get isNormalEdge(): boolean { return PolylineTypeFlags.Edge === this.type; }\n public get isOutlineEdge(): boolean { return PolylineTypeFlags.Outline === this.type; }\n\n public get renderOrder(): RenderOrder {\n if (this.isAnyEdge)\n return this.isPlanar ? RenderOrder.PlanarEdge : RenderOrder.Edge;\n else\n return this.isPlanar ? RenderOrder.PlanarLinear : RenderOrder.Linear;\n }\n\n protected _wantWoWReversal(_target: Target): boolean { return true; }\n\n public override get polylineBuffers(): PolylineBuffers | undefined { return this._buffers; }\n\n private _computeEdgePass(target: Target, colorInfo: ColorInfo): Pass {\n const vf = target.currentViewFlags;\n if (RenderMode.SmoothShade === vf.renderMode && !vf.visibleEdges)\n return \"none\";\n\n // Only want to return Translucent for edges if rendering in Wireframe mode ###TODO: what about overrides?\n const isTranslucent: boolean = RenderMode.Wireframe === vf.renderMode && vf.transparency && colorInfo.hasTranslucency;\n return isTranslucent ? \"translucent\" : \"opaque-linear\";\n }\n\n public override getPass(target: Target): Pass {\n const vf = target.currentViewFlags;\n if (this.isEdge) {\n let pass = this._computeEdgePass(target, this.lut.colorInfo);\n // Only display the outline in wireframe if Fill is off...\n if (\"none\" !== pass && this.isOutlineEdge && RenderMode.Wireframe === vf.renderMode && vf.fill)\n pass = \"none\";\n\n return pass;\n }\n\n const isTranslucent: boolean = vf.transparency && this.lut.colorInfo.hasTranslucency;\n return isTranslucent ? \"translucent\" : \"opaque-linear\";\n }\n\n public get techniqueId(): TechniqueId { return TechniqueId.Polyline; }\n public get isPlanar(): boolean { return this._isPlanar; }\n public override get isEdge(): boolean { return this.isAnyEdge; }\n public override get qOrigin(): Float32Array { return this.lut.qOrigin; }\n public override get qScale(): Float32Array { return this.lut.qScale; }\n public get numRgbaPerVertex(): number { return this.lut.numRgbaPerVertex; }\n public override get hasFeatures() { return this._hasFeatures; }\n\n protected override _getLineWeight(params: ShaderProgramParams): number {\n return this.isEdge ? params.target.computeEdgeWeight(params.renderPass, this.lineWeight) : this.lineWeight;\n }\n protected override _getLineCode(params: ShaderProgramParams): number {\n return this.isEdge ? params.target.computeEdgeLineCode(params.renderPass, this.lineCode) : this.lineCode;\n }\n public override getColor(target: Target): ColorInfo {\n return this.isEdge ? target.computeEdgeColor(this.lut.colorInfo) : this.lut.colorInfo;\n }\n\n protected _draw(numInstances: number, instanceBuffersContainer?: BuffersContainer): void {\n const gl = System.instance;\n const bufs = instanceBuffersContainer !== undefined ? instanceBuffersContainer : this._buffers.buffers;\n\n bufs.bind();\n gl.drawArrays(GL.PrimitiveType.Triangles, 0, this.numIndices, numInstances);\n bufs.unbind();\n }\n\n public static create(params: PolylineParams, viewIndependentOrigin: Point3d | undefined): PolylineGeometry | undefined {\n const lut = VertexLUT.createFromVertexTable(params.vertices);\n if (undefined === lut)\n return undefined;\n\n const buffers = PolylineBuffers.create(params.polyline);\n if (undefined === buffers)\n return undefined;\n\n return new PolylineGeometry(lut, buffers, params, viewIndependentOrigin);\n }\n}\n"]}
1
+ {"version":3,"file":"Polyline.js","sourceRoot":"","sources":["../../../../src/render/webgl/Polyline.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 { dispose } from \"@itwin/core-bentley\";\nimport { Point3d } from \"@itwin/core-geometry\";\nimport { FeatureIndexType, PolylineTypeFlags, QParams3d, RenderMode } from \"@itwin/core-common\";\nimport { PolylineParams } from \"../../common/internal/render/PolylineParams\";\nimport { RenderMemory } from \"../RenderMemory\";\nimport { LUTGeometry, PolylineBuffers } from \"./CachedGeometry\";\nimport { ColorInfo } from \"./ColorInfo\";\nimport { ShaderProgramParams } from \"./DrawCommand\";\nimport { LineCode } from \"./LineCode\";\nimport { GL } from \"./GL\";\nimport { BuffersContainer } from \"./AttributeBuffers\";\nimport { Pass, RenderOrder } from \"./RenderFlags\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { TechniqueId } from \"./TechniqueId\";\nimport { VertexLUT } from \"./VertexLUT\";\nimport { RenderGeometry } from \"../../internal/render/RenderGeometry\";\n\n/** @internal */\nexport class PolylineGeometry extends LUTGeometry implements RenderGeometry {\n public readonly renderGeometryType: \"polyline\" = \"polyline\" as const;\n public readonly isInstanceable: boolean;\n public noDispose = false;\n public vertexParams: QParams3d;\n private readonly _hasFeatures: boolean;\n public lineWeight: number;\n public lineCode: number;\n public type: PolylineTypeFlags;\n private _isPlanar: boolean;\n public lut: VertexLUT;\n public numIndices: number;\n private _buffers: PolylineBuffers;\n\n public get lutBuffers() { return this._buffers.buffers; }\n\n private constructor(lut: VertexLUT, buffers: PolylineBuffers, params: PolylineParams, viOrigin: Point3d | undefined) {\n super(viOrigin);\n this.isInstanceable = undefined === viOrigin;\n this.vertexParams = params.vertices.qparams;\n this._hasFeatures = FeatureIndexType.Empty !== params.vertices.featureIndexType;\n this.lineWeight = params.weight;\n this.lineCode = LineCode.valueFromLinePixels(params.linePixels);\n this.type = params.type;\n this._isPlanar = params.isPlanar;\n this.lut = lut;\n this.numIndices = params.polyline.indices.length;\n this._buffers = buffers;\n }\n\n public get isDisposed(): boolean { return this._buffers.isDisposed && this.lut.isDisposed; }\n\n public [Symbol.dispose]() {\n if (!this.noDispose) {\n dispose(this.lut);\n dispose(this._buffers);\n }\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n this._buffers.collectStatistics(stats, RenderMemory.BufferType.Polylines);\n stats.addVertexTable(this.lut.bytesUsed);\n }\n\n public get isAnyEdge(): boolean { return PolylineTypeFlags.Normal !== this.type; }\n public get isNormalEdge(): boolean { return PolylineTypeFlags.Edge === this.type; }\n public get isOutlineEdge(): boolean { return PolylineTypeFlags.Outline === this.type; }\n\n public get renderOrder(): RenderOrder {\n if (this.isAnyEdge)\n return this.isPlanar ? RenderOrder.PlanarEdge : RenderOrder.Edge;\n else\n return this.isPlanar ? RenderOrder.PlanarLinear : RenderOrder.Linear;\n }\n\n protected _wantWoWReversal(_target: Target): boolean { return true; }\n\n public override get polylineBuffers(): PolylineBuffers | undefined { return this._buffers; }\n\n private _computeEdgePass(target: Target, colorInfo: ColorInfo): Pass {\n const vf = target.currentViewFlags;\n if (RenderMode.SmoothShade === vf.renderMode && !vf.visibleEdges)\n return \"none\";\n\n // Only want to return Translucent for edges if rendering in Wireframe mode ###TODO: what about overrides?\n const isTranslucent: boolean = RenderMode.Wireframe === vf.renderMode && vf.transparency && colorInfo.hasTranslucency;\n return isTranslucent ? \"translucent\" : \"opaque-linear\";\n }\n\n public override getPass(target: Target): Pass {\n const vf = target.currentViewFlags;\n if (this.isEdge) {\n let pass = this._computeEdgePass(target, this.lut.colorInfo);\n // Only display the outline in wireframe if Fill is off...\n if (\"none\" !== pass && this.isOutlineEdge && RenderMode.Wireframe === vf.renderMode && vf.fill)\n pass = \"none\";\n\n return pass;\n }\n\n const isTranslucent: boolean = vf.transparency && this.lut.colorInfo.hasTranslucency;\n return isTranslucent ? \"translucent\" : \"opaque-linear\";\n }\n\n public get techniqueId(): TechniqueId { return TechniqueId.Polyline; }\n public get isPlanar(): boolean { return this._isPlanar; }\n public override get isEdge(): boolean { return this.isAnyEdge; }\n public override get qOrigin(): Float32Array { return this.lut.qOrigin; }\n public override get qScale(): Float32Array { return this.lut.qScale; }\n public get numRgbaPerVertex(): number { return this.lut.numRgbaPerVertex; }\n public override get hasFeatures() { return this._hasFeatures; }\n\n protected override _getLineWeight(params: ShaderProgramParams): number {\n return this.isEdge ? params.target.computeEdgeWeight(params.renderPass, this.lineWeight) : this.lineWeight;\n }\n protected override _getLineCode(params: ShaderProgramParams): number {\n return this.isEdge ? params.target.computeEdgeLineCode(params.renderPass, this.lineCode) : this.lineCode;\n }\n public override getColor(target: Target): ColorInfo {\n return this.isEdge ? target.computeEdgeColor(this.lut.colorInfo) : this.lut.colorInfo;\n }\n\n protected _draw(numInstances: number, instanceBuffersContainer?: BuffersContainer): void {\n const gl = System.instance;\n const bufs = instanceBuffersContainer !== undefined ? instanceBuffersContainer : this._buffers.buffers;\n\n bufs.bind();\n gl.drawArrays(GL.PrimitiveType.Triangles, 0, this.numIndices, numInstances);\n bufs.unbind();\n }\n\n public static create(params: PolylineParams, viewIndependentOrigin: Point3d | undefined): PolylineGeometry | undefined {\n const lut = VertexLUT.createFromVertexTable(params.vertices);\n if (undefined === lut)\n return undefined;\n\n const buffers = PolylineBuffers.create(params.polyline);\n if (undefined === buffers)\n return undefined;\n\n return new PolylineGeometry(lut, buffers, params, viewIndependentOrigin);\n }\n}\n"]}
@@ -1,7 +1,3 @@
1
- /** @packageDocumentation
2
- * @module WebGL
3
- */
4
- import { IDisposable } from "@itwin/core-bentley";
5
1
  import { ColorDef, RenderTexture } from "@itwin/core-common";
6
2
  import { Matrix4d, Range2d, Range3d, Transform } from "@itwin/core-geometry";
7
3
  import { RealityMeshGraphicParams } from "../RealityMeshGraphicParams";
@@ -26,22 +22,22 @@ declare class ProjectedTexture {
26
22
  clone(targetRectangle: Range2d): ProjectedTexture;
27
23
  }
28
24
  type TerrainOrProjectedTexture = TerrainTexture | ProjectedTexture;
29
- declare class RealityTextureParam implements IDisposable {
25
+ declare class RealityTextureParam implements Disposable {
30
26
  texture: RenderTexture | undefined;
31
27
  private _projectedTextureOrMatrix;
32
28
  constructor(texture: RenderTexture | undefined, _projectedTextureOrMatrix: ProjectedTexture | Matrix4);
33
29
  get isProjected(): boolean;
34
- dispose(): void;
30
+ [Symbol.dispose](): void;
35
31
  getProjectionMatrix(): Matrix4d | undefined;
36
32
  getTerrainMatrix(): Matrix4 | undefined;
37
33
  getParams(result: Matrix4): Matrix4;
38
34
  }
39
35
  /** @internal */
40
- export declare class RealityTextureParams implements IDisposable {
36
+ export declare class RealityTextureParams implements Disposable {
41
37
  params: RealityTextureParam[];
42
38
  constructor(params: RealityTextureParam[]);
43
39
  static create(textures: TerrainOrProjectedTexture[]): RealityTextureParams;
44
- dispose(): void;
40
+ [Symbol.dispose](): void;
45
41
  }
46
42
  /** @internal */
47
43
  export declare class RealityMeshGeometryParams extends IndexedGeometryParams {
@@ -54,7 +50,7 @@ export declare class RealityMeshGeometryParams extends IndexedGeometryParams {
54
50
  static fromRealityMesh(params: RealityMeshParams): RealityMeshGeometryParams | undefined;
55
51
  get isDisposed(): boolean;
56
52
  get bytesUsed(): number;
57
- dispose(): void;
53
+ [Symbol.dispose](): void;
58
54
  }
59
55
  /** @internal */
60
56
  export declare class RealityMeshGeometry extends IndexedGeometry implements RenderGeometry {
@@ -78,7 +74,7 @@ export declare class RealityMeshGeometry extends IndexedGeometry implements Rend
78
74
  private _isTerrain;
79
75
  private _disableTextureDisposal;
80
76
  private constructor();
81
- dispose(): void;
77
+ [Symbol.dispose](): void;
82
78
  static createForTerrain(mesh: RealityMeshParams, transform: Transform | undefined, disableTextureDisposal?: boolean): RealityMeshGeometry | undefined;
83
79
  static createFromRealityMesh(realityMesh: RealityMeshParams, disableTextureDisposal?: boolean): RealityMeshGeometry | undefined;
84
80
  getRange(): Range3d;
@@ -1 +1 @@
1
- {"version":3,"file":"RealityMesh.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/RealityMesh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RealityMesh.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/RealityMesh.ts"],"names":[],"mappings":"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"}
@@ -40,7 +40,7 @@ class RealityTextureParam {
40
40
  this._projectedTextureOrMatrix = _projectedTextureOrMatrix;
41
41
  }
42
42
  get isProjected() { return this._projectedTextureOrMatrix instanceof ProjectedTexture; }
43
- dispose() {
43
+ [Symbol.dispose]() {
44
44
  this.texture = (0, core_bentley_1.dispose)(this.texture);
45
45
  }
46
46
  /* There are two methods of applying a texture to a reality mesh. the first member of "params" denotes which
@@ -154,7 +154,7 @@ class RealityTextureParams {
154
154
  }
155
155
  return new RealityTextureParams(textureParams);
156
156
  }
157
- dispose() {
157
+ [Symbol.dispose]() {
158
158
  (0, core_bentley_1.disposeArray)(this.params);
159
159
  }
160
160
  }
@@ -195,8 +195,8 @@ class RealityMeshGeometryParams extends CachedGeometry_1.IndexedGeometryParams {
195
195
  return super.isDisposed && this.uvParams.isDisposed;
196
196
  }
197
197
  get bytesUsed() { return this.positions.bytesUsed + (undefined === this.normals ? 0 : this.normals.bytesUsed) + this.uvParams.bytesUsed + this.indices.bytesUsed; }
198
- dispose() {
199
- super.dispose();
198
+ [Symbol.dispose]() {
199
+ super[Symbol.dispose]();
200
200
  (0, core_bentley_1.dispose)(this.uvParams);
201
201
  }
202
202
  }
@@ -226,11 +226,11 @@ class RealityMeshGeometry extends CachedGeometry_1.IndexedGeometry {
226
226
  const bytesPerIndex = props.realityMeshParams.numBytesPerIndex;
227
227
  this._indexType = 1 === bytesPerIndex ? GL_1.GL.DataType.UnsignedByte : (2 === bytesPerIndex ? GL_1.GL.DataType.UnsignedShort : GL_1.GL.DataType.UnsignedInt);
228
228
  }
229
- dispose() {
229
+ [Symbol.dispose]() {
230
230
  if (this.noDispose) {
231
231
  return;
232
232
  }
233
- super.dispose();
233
+ super[Symbol.dispose]();
234
234
  (0, core_bentley_1.dispose)(this._realityMeshParams);
235
235
  if (true !== this._disableTextureDisposal)
236
236
  (0, core_bentley_1.dispose)(this.textureParams);