@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
@@ -60,7 +60,7 @@ export class PointStringGeometry extends LUTGeometry {
60
60
  && this.lut.isDisposed
61
61
  && this.indices.isDisposed;
62
62
  }
63
- dispose() {
63
+ [Symbol.dispose]() {
64
64
  if (!this.noDispose) {
65
65
  dispose(this.buffers);
66
66
  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"}
@@ -32,7 +32,7 @@ export class PolylineGeometry extends LUTGeometry {
32
32
  this._buffers = buffers;
33
33
  }
34
34
  get isDisposed() { return this._buffers.isDisposed && this.lut.isDisposed; }
35
- dispose() {
35
+ [Symbol.dispose]() {
36
36
  if (!this.noDispose) {
37
37
  dispose(this.lut);
38
38
  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":"AAUA,OAAO,EAAE,QAAQ,EAAgB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAY,MAAM,sBAAsB,CAAC;AAEvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAoB,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEtG,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAMtE,cAAM,gBAAgB;IAEmC,UAAU,EAAE,wBAAwB;IAAS,eAAe,EAAE,OAAO;IADrH,UAAU,EAAE,gBAAgB,CAAC;gBACxB,UAAU,EAAE,sBAAsB,EAAS,UAAU,EAAE,wBAAwB,EAAS,eAAe,EAAE,OAAO;IAGrH,KAAK,CAAC,eAAe,EAAE,OAAO;CAGtC;AACD,KAAK,yBAAyB,GAAG,cAAc,GAAG,gBAAgB,CAAC;AAEnE,cAAM,mBAAoB,YAAW,UAAU;IAC1B,OAAO,EAAE,aAAa,GAAG,SAAS;IAAE,OAAO,CAAC,yBAAyB;gBAArE,OAAO,EAAE,aAAa,GAAG,SAAS,EAAU,yBAAyB,EAAE,gBAAgB,GAAG,OAAO;IACpH,IAAW,WAAW,YAAyE;IAExF,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAexB,mBAAmB,IAAI,QAAQ,GAAG,SAAS;IAG3C,gBAAgB,IAAI,OAAO,GAAG,SAAS;IAIvC,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;CA8C3C;AAED,gBAAgB;AAChB,qBAAa,oBAAqB,YAAW,UAAU;IAClC,MAAM,EAAE,mBAAmB,EAAE;gBAA7B,MAAM,EAAE,mBAAmB,EAAE;WAClC,MAAM,CAAC,QAAQ,EAAE,yBAAyB,EAAE;IA6CnD,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CAGhC;AACD,gBAAgB;AAEhB,qBAAa,yBAA0B,SAAQ,qBAAqB;IAClE,SAAgB,QAAQ,EAAE,eAAe,CAAC;IAC1C,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnC,SAAgB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvC,SAAgB,gBAAgB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE5C,SAAS,aAAa,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,GAAG,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM;IAkB1M,OAAO,CAAC,MAAM,CAAC,iBAAiB;WAYlB,eAAe,CAAC,MAAM,EAAE,iBAAiB;IAOvD,IAAoB,UAAU,IAAI,OAAO,CAExC;IACD,IAAW,SAAS,IAAI,MAAM,CAAoJ;IAEnK,CAAC,MAAM,CAAC,OAAO,CAAC;CAIhC;AAED,gBAAgB;AAChB,qBAAa,mBAAoB,SAAQ,eAAgB,YAAW,cAAc;IAChF,SAAgB,kBAAkB,EAAE,cAAc,CAA2B;IAC7E,SAAgB,cAAc,SAAS;IAChC,SAAS,UAAS;IACzB,SAAgB,WAAW,EAAE,OAAO,CAAC;IACrC,IAAoB,aAAa,IAAI,mBAAmB,GAAG,SAAS,CAAiB;IACrF,IAAoB,UAAU,IAAI,OAAO,CAA+C;IACxF,IAAW,SAAS,iBAAsD;IAC1E,IAAoB,WAAW,IAAI,OAAO,CAA4D;IACtG,IAAoB,uBAAuB,YAAmB;IAC9D,IAAW,gBAAgB,WAAiB;IAC5C,IAAW,SAAS,IAAI,SAAS,GAAG,SAAS,CAA4B;IAEzE,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IAClC,aAAa,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,SAAgB,SAAS,EAAE,QAAQ,GAAG,SAAS,CAAC;IAChD,OAAO,CAAC,kBAAkB,CAAU;IACpC,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,uBAAuB,CAAU;IAEzC,OAAO;IAuBQ,CAAC,MAAM,CAAC,OAAO,CAAC;WAWjB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,sBAAsB,UAAQ;WAc1G,qBAAqB,CAAC,WAAW,EAAE,iBAAiB,EAAE,sBAAsB,UAAQ,GAAG,mBAAmB,GAAG,SAAS;IAS7H,QAAQ,IAAI,OAAO;WAIZ,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,wBAAwB,EAAE,sBAAsB,UAAQ,GAAG,aAAa,GAAG,SAAS;IA4EvI,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAU9D,IAAW,WAAW,IAAI,WAAW,CAAoC;IAEzD,OAAO,CAAC,MAAM,EAAE,MAAM;IAMtC,IAAW,WAAW,IAAI,WAAW,CAAqC;IAE1D,IAAI,IAAI,IAAI;CAK7B"}
@@ -37,7 +37,7 @@ class RealityTextureParam {
37
37
  this._projectedTextureOrMatrix = _projectedTextureOrMatrix;
38
38
  }
39
39
  get isProjected() { return this._projectedTextureOrMatrix instanceof ProjectedTexture; }
40
- dispose() {
40
+ [Symbol.dispose]() {
41
41
  this.texture = dispose(this.texture);
42
42
  }
43
43
  /* There are two methods of applying a texture to a reality mesh. the first member of "params" denotes which
@@ -151,7 +151,7 @@ export class RealityTextureParams {
151
151
  }
152
152
  return new RealityTextureParams(textureParams);
153
153
  }
154
- dispose() {
154
+ [Symbol.dispose]() {
155
155
  disposeArray(this.params);
156
156
  }
157
157
  }
@@ -191,8 +191,8 @@ export class RealityMeshGeometryParams extends IndexedGeometryParams {
191
191
  return super.isDisposed && this.uvParams.isDisposed;
192
192
  }
193
193
  get bytesUsed() { return this.positions.bytesUsed + (undefined === this.normals ? 0 : this.normals.bytesUsed) + this.uvParams.bytesUsed + this.indices.bytesUsed; }
194
- dispose() {
195
- super.dispose();
194
+ [Symbol.dispose]() {
195
+ super[Symbol.dispose]();
196
196
  dispose(this.uvParams);
197
197
  }
198
198
  }
@@ -221,11 +221,11 @@ export class RealityMeshGeometry extends IndexedGeometry {
221
221
  const bytesPerIndex = props.realityMeshParams.numBytesPerIndex;
222
222
  this._indexType = 1 === bytesPerIndex ? GL.DataType.UnsignedByte : (2 === bytesPerIndex ? GL.DataType.UnsignedShort : GL.DataType.UnsignedInt);
223
223
  }
224
- dispose() {
224
+ [Symbol.dispose]() {
225
225
  if (this.noDispose) {
226
226
  return;
227
227
  }
228
- super.dispose();
228
+ super[Symbol.dispose]();
229
229
  dispose(this._realityMeshParams);
230
230
  if (true !== this._disableTextureDisposal)
231
231
  dispose(this.textureParams);
@@ -1 +1 @@
1
- {"version":3,"file":"RealityMesh.js","sourceRoot":"","sources":["../../../../src/render/webgl/RealityMesh.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert, dispose, disposeArray, IDisposable, UintArray } from \"@itwin/core-bentley\";\nimport { ColorDef, Quantization, RenderTexture } from \"@itwin/core-common\";\nimport { Matrix4d, Range2d, Range3d, Transform, Vector2d } from \"@itwin/core-geometry\";\nimport { GraphicBranch } from \"../GraphicBranch\";\nimport { RealityMeshGraphicParams } from \"../RealityMeshGraphicParams\";\nimport { RealityMeshParams } from \"../RealityMeshParams\";\nimport { RenderGraphic } from \"../RenderGraphic\";\nimport { RenderMemory } from \"../RenderMemory\";\nimport { RenderPlanarClassifier } from \"../RenderPlanarClassifier\";\nimport { RenderSystem, TerrainTexture } from \"../RenderSystem\";\nimport { BufferHandle, BufferParameters, QBufferHandle2d, QBufferHandle3d } from \"./AttributeBuffers\";\nimport { AttributeMap } from \"./AttributeMap\";\nimport { IndexedGeometry, IndexedGeometryParams } from \"./CachedGeometry\";\nimport { GL } from \"./GL\";\nimport { Matrix4 } from \"./Matrix\";\nimport { PlanarClassifier } from \"./PlanarClassifier\";\nimport { Primitive } from \"./Primitive\";\nimport { RenderOrder } from \"./RenderFlags\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { TechniqueId } from \"./TechniqueId\";\nimport { RenderGeometry } from \"../../internal/render/RenderGeometry\";\n\nconst scratchOverlapRange = Range2d.createNull();\nconst scratchBytes = new Uint8Array(4);\nconst scratchBatchBaseId = new Uint32Array(scratchBytes.buffer);\nconst scratchRange2d = Range2d.createNull();\nclass ProjectedTexture {\n public classifier: PlanarClassifier;\n constructor(classifier: RenderPlanarClassifier, public meshParams: RealityMeshGraphicParams, public targetRectangle: Range2d) {\n this.classifier = classifier as PlanarClassifier;\n }\n public clone(targetRectangle: Range2d) {\n return new ProjectedTexture(this.classifier, this.meshParams, targetRectangle.clone());\n }\n}\ntype TerrainOrProjectedTexture = TerrainTexture | ProjectedTexture;\n\nclass RealityTextureParam implements IDisposable {\n constructor(public texture: RenderTexture | undefined, private _projectedTextureOrMatrix: ProjectedTexture | Matrix4) { }\n public get isProjected() { return this._projectedTextureOrMatrix instanceof ProjectedTexture; }\n\n public dispose(): void {\n this.texture = dispose(this.texture);\n }\n\n /* There are two methods of applying a texture to a reality mesh. the first member of \"params\" denotes which\n method is to be used. A value of zero indicates a standard texture and one represents a classified texture.\n\n A standard (nonprojected) texture is generated by multiplying v_textCoord by the scaling and translation packed into the first row\n of \"matrix\". A clip rectangle is packed into second row of \"matrix\".\n\n A \"classified\" reality mesh texture is used for map layers. It does not uses v_texCoord, the texture coordinates\n are instead generated by a projection of the model position onto the X-Y plane. We only have eye position, not model position\n so the matrix in this case is a real transform matrix that contains a mapping from eye to model position\n followed by the model to texture projection.\n*/\n public getProjectionMatrix(): Matrix4d | undefined {\n return this._projectedTextureOrMatrix instanceof ProjectedTexture ? this._projectedTextureOrMatrix.classifier.projectionMatrix : undefined;\n }\n public getTerrainMatrix(): Matrix4 | undefined {\n return this._projectedTextureOrMatrix instanceof Matrix4 ? this._projectedTextureOrMatrix : undefined;\n }\n\n public getParams(result: Matrix4): Matrix4 {\n /** Entry 0 is 0 for */\n if (this._projectedTextureOrMatrix instanceof ProjectedTexture) {\n const projectedTexture = this._projectedTextureOrMatrix;\n\n result.data[0] = 1;\n result.data[1] = projectedTexture.classifier.textureImageCount;\n result.data[2] = projectedTexture.classifier.sourceTransparency === undefined ? 1.0 : (1.0 - projectedTexture.classifier.sourceTransparency);\n scratchBatchBaseId[0] = projectedTexture.classifier.baseBatchId;\n result.data[4] = scratchBytes[0];\n result.data[5] = scratchBytes[1];\n result.data[6] = scratchBytes[2];\n result.data[7] = scratchBytes[3];\n\n const points = [];\n const meshParams = projectedTexture.meshParams;\n // Calculate range in the tiles local coordinates.\n const low = meshParams.tileRectangle.worldToLocal(projectedTexture.targetRectangle.low, scratchRange2d.low)!;\n const high = meshParams.tileRectangle.worldToLocal(projectedTexture.targetRectangle.high, scratchRange2d.high)!;\n points.push(meshParams.projection.getGlobalPoint(low.x, low.y, 0));\n points.push(meshParams.projection.getGlobalPoint(high.x, low.y, 0));\n points.push(meshParams.projection.getGlobalPoint(high.x, high.y, 0));\n points.push(meshParams.projection.getGlobalPoint(low.x, high.y, 0));\n for (let i = 0, j = 8; i < 4; i++) {\n const projectedPoint = projectedTexture.classifier.projectionMatrix.multiplyPoint3dQuietNormalize(points[i]);\n result.data[j++] = projectedPoint.x;\n result.data[j++] = projectedPoint.y;\n }\n const x0 = result.data[10] - result.data[8], y0 = result.data[11] - result.data[9];\n const x1 = result.data[12] - result.data[8], y1 = result.data[13] - result.data[9];\n if (x0 * y1 - x1 * y0 < 0) {\n const swap = ((i: number, j: number) => {\n const temp = result.data[i];\n result.data[i] = result.data[j];\n result.data[j] = temp;\n });\n for (let i = 8, j = 14; i <= 10; i += 2, j -= 2) {\n swap(i, j);\n swap(i + 1, j + 1);\n }\n }\n } else {\n result.data[0] = 0;\n }\n return result;\n }\n}\n\n/** @internal */\nexport class RealityTextureParams implements IDisposable {\n constructor(public params: RealityTextureParam[]) { }\n public static create(textures: TerrainOrProjectedTexture[]) {\n const maxTexturesPerMesh = System.instance.maxRealityImageryLayers;\n assert(textures.length <= maxTexturesPerMesh);\n\n const textureParams = new Array<RealityTextureParam>();\n for (const texture of textures) {\n if (texture instanceof TerrainTexture) {\n const terrainTexture = texture;\n const matrix = new Matrix4(); // Published as Mat4.\n assert(terrainTexture.texture !== undefined, \"Texture not defined in TerrainTextureParams constructor\");\n matrix.data[0] = terrainTexture.translate.x;\n matrix.data[1] = terrainTexture.translate.y;\n matrix.data[2] = terrainTexture.scale.x;\n matrix.data[3] = terrainTexture.scale.y;\n\n if (terrainTexture.clipRectangle) {\n matrix.data[4] = terrainTexture.clipRectangle.low.x;\n matrix.data[5] = terrainTexture.clipRectangle.low.y;\n matrix.data[6] = terrainTexture.clipRectangle.high.x;\n matrix.data[7] = terrainTexture.clipRectangle.high.y;\n } else {\n matrix.data[4] = matrix.data[5] = 0;\n matrix.data[6] = matrix.data[7] = 1;\n }\n matrix.data[8] = (1.0 - terrainTexture.transparency);\n matrix.data[9] = terrainTexture.featureId;\n textureParams.push(new RealityTextureParam(terrainTexture.texture, matrix));\n } else {\n const classifier = texture.classifier;\n textureParams.push(new RealityTextureParam(classifier.getOrCreateClassifierTexture(), texture));\n }\n }\n\n for (let i = textures.length; i < maxTexturesPerMesh; i++) {\n const matrix = new Matrix4();\n matrix.data[0] = matrix.data[1] = 0.0;\n matrix.data[2] = matrix.data[3] = 1.0;\n matrix.data[4] = matrix.data[5] = 1;\n matrix.data[6] = matrix.data[7] = -1;\n matrix.data[15] = 0; // Denotes a terrain texture.\n textureParams.push(new RealityTextureParam(undefined, matrix));\n }\n return new RealityTextureParams(textureParams);\n }\n\n public dispose(): void {\n disposeArray(this.params);\n }\n}\n/** @internal */\n\nexport class RealityMeshGeometryParams extends IndexedGeometryParams {\n public readonly uvParams: QBufferHandle2d;\n public readonly featureID?: number;\n public readonly normals?: BufferHandle;\n public readonly numBytesPerIndex: 1 | 2 | 4;\n\n protected constructor(positions: QBufferHandle3d, normals: BufferHandle | undefined, uvParams: QBufferHandle2d, indices: BufferHandle, numIndices: number, numBytesPerIndex: 1 | 2 | 4, featureID?: number) {\n super(positions, indices, numIndices);\n this.numBytesPerIndex = numBytesPerIndex;\n let attrParams = AttributeMap.findAttribute(\"a_uvParam\", TechniqueId.RealityMesh, false);\n assert(attrParams !== undefined);\n this.buffers.addBuffer(uvParams, [BufferParameters.create(attrParams.location, 2, GL.DataType.UnsignedShort, false, 0, 0, false)]);\n this.uvParams = uvParams;\n\n if (undefined !== normals) {\n attrParams = AttributeMap.findAttribute(\"a_norm\", TechniqueId.RealityMesh, false);\n assert(attrParams !== undefined);\n if (normals.bytesUsed > 0)\n this.buffers.addBuffer(normals, [BufferParameters.create(attrParams.location, 2, GL.DataType.UnsignedByte, false, 0, 0, false)]);\n this.normals = normals;\n }\n this.featureID = featureID;\n }\n\n private static createFromBuffers(posBuf: QBufferHandle3d, uvParamBuf: QBufferHandle2d, indices: UintArray, normBuf: BufferHandle | undefined, featureID: number) {\n const indBuf = BufferHandle.createBuffer(GL.Buffer.Target.ElementArrayBuffer, indices);\n\n if (undefined === indBuf)\n return undefined;\n\n const bytesPerIndex = indices.BYTES_PER_ELEMENT;\n assert(1 === bytesPerIndex || 2 === bytesPerIndex || 4 === bytesPerIndex);\n return new RealityMeshGeometryParams(posBuf, normBuf, uvParamBuf, indBuf, indices.length, bytesPerIndex, featureID);\n\n }\n\n public static fromRealityMesh(params: RealityMeshParams) {\n const posBuf = QBufferHandle3d.create(params.positions.params, params.positions.points);\n const uvParamBuf = QBufferHandle2d.create(params.uvs.params, params.uvs.points);\n const normalBuf = params.normals ? BufferHandle.createArrayBuffer(params.normals) : undefined;\n return (undefined === posBuf || undefined === uvParamBuf) ? undefined : this.createFromBuffers(posBuf, uvParamBuf, params.indices, normalBuf, params.featureID ?? 0);\n }\n\n public override get isDisposed(): boolean {\n return super.isDisposed && this.uvParams.isDisposed;\n }\n public get bytesUsed(): number { return this.positions.bytesUsed + (undefined === this.normals ? 0 : this.normals.bytesUsed) + this.uvParams.bytesUsed + this.indices.bytesUsed; }\n\n public override dispose() {\n super.dispose();\n dispose(this.uvParams);\n }\n}\n\n/** @internal */\nexport class RealityMeshGeometry extends IndexedGeometry implements RenderGeometry {\n public readonly renderGeometryType: \"reality-mesh\" = \"reality-mesh\" as const;\n public readonly isInstanceable = false;\n public noDispose = false;\n public readonly hasTextures: boolean;\n public override get asRealityMesh(): RealityMeshGeometry | undefined { return this; }\n public override get isDisposed(): boolean { return this._realityMeshParams.isDisposed; }\n public get uvQParams() { return this._realityMeshParams.uvParams.params; }\n public override get hasFeatures(): boolean { return this._realityMeshParams.featureID !== undefined; }\n public override get supportsThematicDisplay() { return true; }\n public get overrideColorMix() { return .5; } // This could be a setting from either the mesh or the override if required.\n public get transform(): Transform | undefined { return this._transform; }\n\n private _realityMeshParams: RealityMeshGeometryParams;\n private readonly _indexType: GL.DataType;\n public textureParams: RealityTextureParams | undefined;\n private readonly _transform: Transform | undefined;\n public readonly baseColor: ColorDef | undefined;\n private _baseIsTransparent: boolean;\n private _isTerrain: boolean;\n private _disableTextureDisposal: boolean;\n\n private constructor(props: {\n realityMeshParams: RealityMeshGeometryParams;\n textureParams?: RealityTextureParams;\n transform?: Transform;\n baseColor?: ColorDef;\n baseIsTransparent: boolean;\n isTerrain: boolean;\n disableTextureDisposal: boolean;\n }) {\n super(props.realityMeshParams);\n this._realityMeshParams = props.realityMeshParams;\n this.textureParams = props.textureParams;\n this._transform = props.transform;\n this.baseColor = props.baseColor;\n this._baseIsTransparent = props.baseIsTransparent;\n this._isTerrain = props.isTerrain;\n this._disableTextureDisposal = props.disableTextureDisposal;\n this.hasTextures = undefined !== this.textureParams && this.textureParams.params.some((x) => undefined !== x.texture);\n\n const bytesPerIndex = props.realityMeshParams.numBytesPerIndex;\n this._indexType = 1 === bytesPerIndex ? GL.DataType.UnsignedByte : (2 === bytesPerIndex ? GL.DataType.UnsignedShort : GL.DataType.UnsignedInt);\n }\n\n public override dispose() {\n if (this.noDispose) {\n return;\n }\n\n super.dispose();\n dispose(this._realityMeshParams);\n if (true !== this._disableTextureDisposal)\n dispose(this.textureParams);\n }\n\n public static createForTerrain(mesh: RealityMeshParams, transform: Transform | undefined, disableTextureDisposal = false) {\n const params = RealityMeshGeometryParams.fromRealityMesh(mesh);\n if (!params)\n return undefined;\n\n return new RealityMeshGeometry({\n realityMeshParams: params,\n transform,\n baseIsTransparent: false,\n isTerrain: true,\n disableTextureDisposal,\n });\n }\n\n public static createFromRealityMesh(realityMesh: RealityMeshParams, disableTextureDisposal = false): RealityMeshGeometry | undefined {\n const params = RealityMeshGeometryParams.fromRealityMesh(realityMesh);\n if (!params)\n return undefined;\n const texture = realityMesh.texture ? new TerrainTexture(realityMesh.texture, realityMesh.featureID ?? 0, Vector2d.create(1.0, -1.0), Vector2d.create(0.0, 1.0), Range2d.createXYXY(0, 0, 1, 1), 0, 0) : undefined;\n\n return new RealityMeshGeometry({ realityMeshParams: params, textureParams: texture ? RealityTextureParams.create([texture]) : undefined, baseIsTransparent: false, isTerrain: false, disableTextureDisposal });\n }\n\n public getRange(): Range3d {\n return Range3d.createXYZXYZ(this.qOrigin[0], this.qOrigin[1], this.qOrigin[2], this.qOrigin[0] + Quantization.rangeScale16 * this.qScale[0], this.qOrigin[1] + Quantization.rangeScale16 * this.qScale[1], this.qOrigin[2] + Quantization.rangeScale16 * this.qScale[2]);\n }\n\n public static createGraphic(system: RenderSystem, params: RealityMeshGraphicParams, disableTextureDisposal = false): RenderGraphic | undefined {\n const meshes = [];\n const textures = params.textures ?? [];\n const realityMesh = params.realityMesh as RealityMeshGeometry;\n const { baseColor, baseTransparent, featureTable, tileId, layerClassifiers } = params;\n\n const texturesPerMesh = System.instance.maxRealityImageryLayers;\n const layers = new Array<(TerrainTexture | ProjectedTexture)[]>();\n // Collate the textures and classifiers layers into a single array.\n for (const texture of textures) {\n const layer = layers[texture.layerIndex];\n if (layer) {\n (layer as TerrainTexture[]).push(texture);\n } else {\n layers[texture.layerIndex] = [texture];\n }\n }\n params.layerClassifiers?.forEach((layerClassifier, layerIndex) => layers[layerIndex] = [new ProjectedTexture(layerClassifier, params, params.tileRectangle)]);\n\n if (layers.length < 2 && !layerClassifiers?.size && textures.length < texturesPerMesh) {\n // If only there is not more than one layer then we can group all of the textures into a single draw call.\n meshes.push(new RealityMeshGeometry({ realityMeshParams: realityMesh._realityMeshParams, textureParams: RealityTextureParams.create(textures), transform: realityMesh._transform, baseColor, baseIsTransparent: baseTransparent, isTerrain: realityMesh._isTerrain, disableTextureDisposal }));\n } else {\n let primaryLayer;\n while (primaryLayer === undefined)\n primaryLayer = layers.shift();\n if (!primaryLayer)\n return undefined;\n for (const primaryTexture of primaryLayer) {\n const targetRectangle = primaryTexture.targetRectangle;\n const overlapMinimum = 1.0E-5 * (targetRectangle.high.x - targetRectangle.low.x) * (targetRectangle.high.y - targetRectangle.low.y);\n let layerTextures = [primaryTexture];\n for (const secondaryLayer of layers) {\n if (!secondaryLayer)\n continue;\n for (const secondaryTexture of secondaryLayer) {\n if (secondaryTexture instanceof ProjectedTexture) {\n layerTextures.push(secondaryTexture.clone(targetRectangle));\n } else {\n const secondaryRectangle = secondaryTexture.targetRectangle;\n const overlap = targetRectangle.intersect(secondaryRectangle, scratchOverlapRange);\n if (!overlap.isNull && (overlap.high.x - overlap.low.x) * (overlap.high.y - overlap.low.y) > overlapMinimum) {\n const textureRange = Range2d.createXYXY(overlap.low.x, overlap.low.y, overlap.high.x, overlap.high.y);\n secondaryRectangle.worldToLocal(textureRange.low, textureRange.low);\n secondaryRectangle.worldToLocal(textureRange.high, textureRange.high);\n\n if (secondaryTexture.clipRectangle)\n textureRange.intersect(secondaryTexture.clipRectangle, textureRange);\n\n if (!textureRange.isNull && textureRange) {\n layerTextures.push(secondaryTexture.cloneWithClip(textureRange));\n }\n }\n }\n }\n }\n while (layerTextures.length > texturesPerMesh) {\n meshes.push(new RealityMeshGeometry({ realityMeshParams: realityMesh._realityMeshParams, textureParams: RealityTextureParams.create(layerTextures.slice(0, texturesPerMesh)), transform: realityMesh._transform, baseColor, baseIsTransparent: baseTransparent, isTerrain: realityMesh._isTerrain, disableTextureDisposal }));\n layerTextures = layerTextures.slice(texturesPerMesh);\n }\n meshes.push(new RealityMeshGeometry({ realityMeshParams: realityMesh._realityMeshParams, textureParams: RealityTextureParams.create(layerTextures), transform: realityMesh._transform, baseColor, baseIsTransparent: baseTransparent, isTerrain: realityMesh._isTerrain, disableTextureDisposal }));\n }\n }\n\n if (meshes.length === 0)\n return undefined;\n\n const branch = new GraphicBranch(true);\n for (const mesh of meshes) {\n const primitive = Primitive.create(mesh);\n branch.add(system.createBatch(primitive!, featureTable, mesh.getRange(), { tileId }));\n }\n\n return system.createBranch(branch, realityMesh._transform ? realityMesh._transform : Transform.createIdentity(), {disableClipStyle: params.disableClipStyle});\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n this._isTerrain ? stats.addTerrain(this._realityMeshParams.bytesUsed) : stats.addRealityMesh(this._realityMeshParams.bytesUsed);\n if (this.textureParams?.params) {\n for (const param of this.textureParams.params) {\n if (param.texture?.bytesUsed)\n stats.addTexture(param.texture.bytesUsed);\n }\n }\n }\n\n public get techniqueId(): TechniqueId { return TechniqueId.RealityMesh; }\n\n public override getPass(target: Target) {\n if (this._baseIsTransparent || (target.wantThematicDisplay && target.uniforms.thematic.wantIsoLines))\n return \"translucent\";\n\n return \"opaque\";\n }\n public get renderOrder(): RenderOrder { return RenderOrder.UnlitSurface; }\n\n public override draw(): void {\n this._params.buffers.bind();\n System.instance.context.drawElements(GL.PrimitiveType.Triangles, this._params.numIndices, this._indexType, 0);\n this._params.buffers.unbind();\n }\n}\n"]}
1
+ {"version":3,"file":"RealityMesh.js","sourceRoot":"","sources":["../../../../src/render/webgl/RealityMesh.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert, dispose, disposeArray, UintArray } from \"@itwin/core-bentley\";\nimport { ColorDef, Quantization, RenderTexture } from \"@itwin/core-common\";\nimport { Matrix4d, Range2d, Range3d, Transform, Vector2d } from \"@itwin/core-geometry\";\nimport { GraphicBranch } from \"../GraphicBranch\";\nimport { RealityMeshGraphicParams } from \"../RealityMeshGraphicParams\";\nimport { RealityMeshParams } from \"../RealityMeshParams\";\nimport { RenderGraphic } from \"../RenderGraphic\";\nimport { RenderMemory } from \"../RenderMemory\";\nimport { RenderPlanarClassifier } from \"../RenderPlanarClassifier\";\nimport { RenderSystem, TerrainTexture } from \"../RenderSystem\";\nimport { BufferHandle, BufferParameters, QBufferHandle2d, QBufferHandle3d } from \"./AttributeBuffers\";\nimport { AttributeMap } from \"./AttributeMap\";\nimport { IndexedGeometry, IndexedGeometryParams } from \"./CachedGeometry\";\nimport { GL } from \"./GL\";\nimport { Matrix4 } from \"./Matrix\";\nimport { PlanarClassifier } from \"./PlanarClassifier\";\nimport { Primitive } from \"./Primitive\";\nimport { RenderOrder } from \"./RenderFlags\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { TechniqueId } from \"./TechniqueId\";\nimport { RenderGeometry } from \"../../internal/render/RenderGeometry\";\n\nconst scratchOverlapRange = Range2d.createNull();\nconst scratchBytes = new Uint8Array(4);\nconst scratchBatchBaseId = new Uint32Array(scratchBytes.buffer);\nconst scratchRange2d = Range2d.createNull();\nclass ProjectedTexture {\n public classifier: PlanarClassifier;\n constructor(classifier: RenderPlanarClassifier, public meshParams: RealityMeshGraphicParams, public targetRectangle: Range2d) {\n this.classifier = classifier as PlanarClassifier;\n }\n public clone(targetRectangle: Range2d) {\n return new ProjectedTexture(this.classifier, this.meshParams, targetRectangle.clone());\n }\n}\ntype TerrainOrProjectedTexture = TerrainTexture | ProjectedTexture;\n\nclass RealityTextureParam implements Disposable {\n constructor(public texture: RenderTexture | undefined, private _projectedTextureOrMatrix: ProjectedTexture | Matrix4) { }\n public get isProjected() { return this._projectedTextureOrMatrix instanceof ProjectedTexture; }\n\n public [Symbol.dispose](): void {\n this.texture = dispose(this.texture);\n }\n\n /* There are two methods of applying a texture to a reality mesh. the first member of \"params\" denotes which\n method is to be used. A value of zero indicates a standard texture and one represents a classified texture.\n\n A standard (nonprojected) texture is generated by multiplying v_textCoord by the scaling and translation packed into the first row\n of \"matrix\". A clip rectangle is packed into second row of \"matrix\".\n\n A \"classified\" reality mesh texture is used for map layers. It does not uses v_texCoord, the texture coordinates\n are instead generated by a projection of the model position onto the X-Y plane. We only have eye position, not model position\n so the matrix in this case is a real transform matrix that contains a mapping from eye to model position\n followed by the model to texture projection.\n*/\n public getProjectionMatrix(): Matrix4d | undefined {\n return this._projectedTextureOrMatrix instanceof ProjectedTexture ? this._projectedTextureOrMatrix.classifier.projectionMatrix : undefined;\n }\n public getTerrainMatrix(): Matrix4 | undefined {\n return this._projectedTextureOrMatrix instanceof Matrix4 ? this._projectedTextureOrMatrix : undefined;\n }\n\n public getParams(result: Matrix4): Matrix4 {\n /** Entry 0 is 0 for */\n if (this._projectedTextureOrMatrix instanceof ProjectedTexture) {\n const projectedTexture = this._projectedTextureOrMatrix;\n\n result.data[0] = 1;\n result.data[1] = projectedTexture.classifier.textureImageCount;\n result.data[2] = projectedTexture.classifier.sourceTransparency === undefined ? 1.0 : (1.0 - projectedTexture.classifier.sourceTransparency);\n scratchBatchBaseId[0] = projectedTexture.classifier.baseBatchId;\n result.data[4] = scratchBytes[0];\n result.data[5] = scratchBytes[1];\n result.data[6] = scratchBytes[2];\n result.data[7] = scratchBytes[3];\n\n const points = [];\n const meshParams = projectedTexture.meshParams;\n // Calculate range in the tiles local coordinates.\n const low = meshParams.tileRectangle.worldToLocal(projectedTexture.targetRectangle.low, scratchRange2d.low)!;\n const high = meshParams.tileRectangle.worldToLocal(projectedTexture.targetRectangle.high, scratchRange2d.high)!;\n points.push(meshParams.projection.getGlobalPoint(low.x, low.y, 0));\n points.push(meshParams.projection.getGlobalPoint(high.x, low.y, 0));\n points.push(meshParams.projection.getGlobalPoint(high.x, high.y, 0));\n points.push(meshParams.projection.getGlobalPoint(low.x, high.y, 0));\n for (let i = 0, j = 8; i < 4; i++) {\n const projectedPoint = projectedTexture.classifier.projectionMatrix.multiplyPoint3dQuietNormalize(points[i]);\n result.data[j++] = projectedPoint.x;\n result.data[j++] = projectedPoint.y;\n }\n const x0 = result.data[10] - result.data[8], y0 = result.data[11] - result.data[9];\n const x1 = result.data[12] - result.data[8], y1 = result.data[13] - result.data[9];\n if (x0 * y1 - x1 * y0 < 0) {\n const swap = ((i: number, j: number) => {\n const temp = result.data[i];\n result.data[i] = result.data[j];\n result.data[j] = temp;\n });\n for (let i = 8, j = 14; i <= 10; i += 2, j -= 2) {\n swap(i, j);\n swap(i + 1, j + 1);\n }\n }\n } else {\n result.data[0] = 0;\n }\n return result;\n }\n}\n\n/** @internal */\nexport class RealityTextureParams implements Disposable {\n constructor(public params: RealityTextureParam[]) { }\n public static create(textures: TerrainOrProjectedTexture[]) {\n const maxTexturesPerMesh = System.instance.maxRealityImageryLayers;\n assert(textures.length <= maxTexturesPerMesh);\n\n const textureParams = new Array<RealityTextureParam>();\n for (const texture of textures) {\n if (texture instanceof TerrainTexture) {\n const terrainTexture = texture;\n const matrix = new Matrix4(); // Published as Mat4.\n assert(terrainTexture.texture !== undefined, \"Texture not defined in TerrainTextureParams constructor\");\n matrix.data[0] = terrainTexture.translate.x;\n matrix.data[1] = terrainTexture.translate.y;\n matrix.data[2] = terrainTexture.scale.x;\n matrix.data[3] = terrainTexture.scale.y;\n\n if (terrainTexture.clipRectangle) {\n matrix.data[4] = terrainTexture.clipRectangle.low.x;\n matrix.data[5] = terrainTexture.clipRectangle.low.y;\n matrix.data[6] = terrainTexture.clipRectangle.high.x;\n matrix.data[7] = terrainTexture.clipRectangle.high.y;\n } else {\n matrix.data[4] = matrix.data[5] = 0;\n matrix.data[6] = matrix.data[7] = 1;\n }\n matrix.data[8] = (1.0 - terrainTexture.transparency);\n matrix.data[9] = terrainTexture.featureId;\n textureParams.push(new RealityTextureParam(terrainTexture.texture, matrix));\n } else {\n const classifier = texture.classifier;\n textureParams.push(new RealityTextureParam(classifier.getOrCreateClassifierTexture(), texture));\n }\n }\n\n for (let i = textures.length; i < maxTexturesPerMesh; i++) {\n const matrix = new Matrix4();\n matrix.data[0] = matrix.data[1] = 0.0;\n matrix.data[2] = matrix.data[3] = 1.0;\n matrix.data[4] = matrix.data[5] = 1;\n matrix.data[6] = matrix.data[7] = -1;\n matrix.data[15] = 0; // Denotes a terrain texture.\n textureParams.push(new RealityTextureParam(undefined, matrix));\n }\n return new RealityTextureParams(textureParams);\n }\n\n public [Symbol.dispose](): void {\n disposeArray(this.params);\n }\n}\n/** @internal */\n\nexport class RealityMeshGeometryParams extends IndexedGeometryParams {\n public readonly uvParams: QBufferHandle2d;\n public readonly featureID?: number;\n public readonly normals?: BufferHandle;\n public readonly numBytesPerIndex: 1 | 2 | 4;\n\n protected constructor(positions: QBufferHandle3d, normals: BufferHandle | undefined, uvParams: QBufferHandle2d, indices: BufferHandle, numIndices: number, numBytesPerIndex: 1 | 2 | 4, featureID?: number) {\n super(positions, indices, numIndices);\n this.numBytesPerIndex = numBytesPerIndex;\n let attrParams = AttributeMap.findAttribute(\"a_uvParam\", TechniqueId.RealityMesh, false);\n assert(attrParams !== undefined);\n this.buffers.addBuffer(uvParams, [BufferParameters.create(attrParams.location, 2, GL.DataType.UnsignedShort, false, 0, 0, false)]);\n this.uvParams = uvParams;\n\n if (undefined !== normals) {\n attrParams = AttributeMap.findAttribute(\"a_norm\", TechniqueId.RealityMesh, false);\n assert(attrParams !== undefined);\n if (normals.bytesUsed > 0)\n this.buffers.addBuffer(normals, [BufferParameters.create(attrParams.location, 2, GL.DataType.UnsignedByte, false, 0, 0, false)]);\n this.normals = normals;\n }\n this.featureID = featureID;\n }\n\n private static createFromBuffers(posBuf: QBufferHandle3d, uvParamBuf: QBufferHandle2d, indices: UintArray, normBuf: BufferHandle | undefined, featureID: number) {\n const indBuf = BufferHandle.createBuffer(GL.Buffer.Target.ElementArrayBuffer, indices);\n\n if (undefined === indBuf)\n return undefined;\n\n const bytesPerIndex = indices.BYTES_PER_ELEMENT;\n assert(1 === bytesPerIndex || 2 === bytesPerIndex || 4 === bytesPerIndex);\n return new RealityMeshGeometryParams(posBuf, normBuf, uvParamBuf, indBuf, indices.length, bytesPerIndex, featureID);\n\n }\n\n public static fromRealityMesh(params: RealityMeshParams) {\n const posBuf = QBufferHandle3d.create(params.positions.params, params.positions.points);\n const uvParamBuf = QBufferHandle2d.create(params.uvs.params, params.uvs.points);\n const normalBuf = params.normals ? BufferHandle.createArrayBuffer(params.normals) : undefined;\n return (undefined === posBuf || undefined === uvParamBuf) ? undefined : this.createFromBuffers(posBuf, uvParamBuf, params.indices, normalBuf, params.featureID ?? 0);\n }\n\n public override get isDisposed(): boolean {\n return super.isDisposed && this.uvParams.isDisposed;\n }\n public get bytesUsed(): number { return this.positions.bytesUsed + (undefined === this.normals ? 0 : this.normals.bytesUsed) + this.uvParams.bytesUsed + this.indices.bytesUsed; }\n\n public override[Symbol.dispose]() {\n super[Symbol.dispose]();\n dispose(this.uvParams);\n }\n}\n\n/** @internal */\nexport class RealityMeshGeometry extends IndexedGeometry implements RenderGeometry {\n public readonly renderGeometryType: \"reality-mesh\" = \"reality-mesh\" as const;\n public readonly isInstanceable = false;\n public noDispose = false;\n public readonly hasTextures: boolean;\n public override get asRealityMesh(): RealityMeshGeometry | undefined { return this; }\n public override get isDisposed(): boolean { return this._realityMeshParams.isDisposed; }\n public get uvQParams() { return this._realityMeshParams.uvParams.params; }\n public override get hasFeatures(): boolean { return this._realityMeshParams.featureID !== undefined; }\n public override get supportsThematicDisplay() { return true; }\n public get overrideColorMix() { return .5; } // This could be a setting from either the mesh or the override if required.\n public get transform(): Transform | undefined { return this._transform; }\n\n private _realityMeshParams: RealityMeshGeometryParams;\n private readonly _indexType: GL.DataType;\n public textureParams: RealityTextureParams | undefined;\n private readonly _transform: Transform | undefined;\n public readonly baseColor: ColorDef | undefined;\n private _baseIsTransparent: boolean;\n private _isTerrain: boolean;\n private _disableTextureDisposal: boolean;\n\n private constructor(props: {\n realityMeshParams: RealityMeshGeometryParams;\n textureParams?: RealityTextureParams;\n transform?: Transform;\n baseColor?: ColorDef;\n baseIsTransparent: boolean;\n isTerrain: boolean;\n disableTextureDisposal: boolean;\n }) {\n super(props.realityMeshParams);\n this._realityMeshParams = props.realityMeshParams;\n this.textureParams = props.textureParams;\n this._transform = props.transform;\n this.baseColor = props.baseColor;\n this._baseIsTransparent = props.baseIsTransparent;\n this._isTerrain = props.isTerrain;\n this._disableTextureDisposal = props.disableTextureDisposal;\n this.hasTextures = undefined !== this.textureParams && this.textureParams.params.some((x) => undefined !== x.texture);\n\n const bytesPerIndex = props.realityMeshParams.numBytesPerIndex;\n this._indexType = 1 === bytesPerIndex ? GL.DataType.UnsignedByte : (2 === bytesPerIndex ? GL.DataType.UnsignedShort : GL.DataType.UnsignedInt);\n }\n\n public override[Symbol.dispose]() {\n if (this.noDispose) {\n return;\n }\n\n super[Symbol.dispose]();\n dispose(this._realityMeshParams);\n if (true !== this._disableTextureDisposal)\n dispose(this.textureParams);\n }\n\n public static createForTerrain(mesh: RealityMeshParams, transform: Transform | undefined, disableTextureDisposal = false) {\n const params = RealityMeshGeometryParams.fromRealityMesh(mesh);\n if (!params)\n return undefined;\n\n return new RealityMeshGeometry({\n realityMeshParams: params,\n transform,\n baseIsTransparent: false,\n isTerrain: true,\n disableTextureDisposal,\n });\n }\n\n public static createFromRealityMesh(realityMesh: RealityMeshParams, disableTextureDisposal = false): RealityMeshGeometry | undefined {\n const params = RealityMeshGeometryParams.fromRealityMesh(realityMesh);\n if (!params)\n return undefined;\n const texture = realityMesh.texture ? new TerrainTexture(realityMesh.texture, realityMesh.featureID ?? 0, Vector2d.create(1.0, -1.0), Vector2d.create(0.0, 1.0), Range2d.createXYXY(0, 0, 1, 1), 0, 0) : undefined;\n\n return new RealityMeshGeometry({ realityMeshParams: params, textureParams: texture ? RealityTextureParams.create([texture]) : undefined, baseIsTransparent: false, isTerrain: false, disableTextureDisposal });\n }\n\n public getRange(): Range3d {\n return Range3d.createXYZXYZ(this.qOrigin[0], this.qOrigin[1], this.qOrigin[2], this.qOrigin[0] + Quantization.rangeScale16 * this.qScale[0], this.qOrigin[1] + Quantization.rangeScale16 * this.qScale[1], this.qOrigin[2] + Quantization.rangeScale16 * this.qScale[2]);\n }\n\n public static createGraphic(system: RenderSystem, params: RealityMeshGraphicParams, disableTextureDisposal = false): RenderGraphic | undefined {\n const meshes = [];\n const textures = params.textures ?? [];\n const realityMesh = params.realityMesh as RealityMeshGeometry;\n const { baseColor, baseTransparent, featureTable, tileId, layerClassifiers } = params;\n\n const texturesPerMesh = System.instance.maxRealityImageryLayers;\n const layers = new Array<(TerrainTexture | ProjectedTexture)[]>();\n // Collate the textures and classifiers layers into a single array.\n for (const texture of textures) {\n const layer = layers[texture.layerIndex];\n if (layer) {\n (layer as TerrainTexture[]).push(texture);\n } else {\n layers[texture.layerIndex] = [texture];\n }\n }\n params.layerClassifiers?.forEach((layerClassifier, layerIndex) => layers[layerIndex] = [new ProjectedTexture(layerClassifier, params, params.tileRectangle)]);\n\n if (layers.length < 2 && !layerClassifiers?.size && textures.length < texturesPerMesh) {\n // If only there is not more than one layer then we can group all of the textures into a single draw call.\n meshes.push(new RealityMeshGeometry({ realityMeshParams: realityMesh._realityMeshParams, textureParams: RealityTextureParams.create(textures), transform: realityMesh._transform, baseColor, baseIsTransparent: baseTransparent, isTerrain: realityMesh._isTerrain, disableTextureDisposal }));\n } else {\n let primaryLayer;\n while (primaryLayer === undefined)\n primaryLayer = layers.shift();\n if (!primaryLayer)\n return undefined;\n for (const primaryTexture of primaryLayer) {\n const targetRectangle = primaryTexture.targetRectangle;\n const overlapMinimum = 1.0E-5 * (targetRectangle.high.x - targetRectangle.low.x) * (targetRectangle.high.y - targetRectangle.low.y);\n let layerTextures = [primaryTexture];\n for (const secondaryLayer of layers) {\n if (!secondaryLayer)\n continue;\n for (const secondaryTexture of secondaryLayer) {\n if (secondaryTexture instanceof ProjectedTexture) {\n layerTextures.push(secondaryTexture.clone(targetRectangle));\n } else {\n const secondaryRectangle = secondaryTexture.targetRectangle;\n const overlap = targetRectangle.intersect(secondaryRectangle, scratchOverlapRange);\n if (!overlap.isNull && (overlap.high.x - overlap.low.x) * (overlap.high.y - overlap.low.y) > overlapMinimum) {\n const textureRange = Range2d.createXYXY(overlap.low.x, overlap.low.y, overlap.high.x, overlap.high.y);\n secondaryRectangle.worldToLocal(textureRange.low, textureRange.low);\n secondaryRectangle.worldToLocal(textureRange.high, textureRange.high);\n\n if (secondaryTexture.clipRectangle)\n textureRange.intersect(secondaryTexture.clipRectangle, textureRange);\n\n if (!textureRange.isNull && textureRange) {\n layerTextures.push(secondaryTexture.cloneWithClip(textureRange));\n }\n }\n }\n }\n }\n while (layerTextures.length > texturesPerMesh) {\n meshes.push(new RealityMeshGeometry({ realityMeshParams: realityMesh._realityMeshParams, textureParams: RealityTextureParams.create(layerTextures.slice(0, texturesPerMesh)), transform: realityMesh._transform, baseColor, baseIsTransparent: baseTransparent, isTerrain: realityMesh._isTerrain, disableTextureDisposal }));\n layerTextures = layerTextures.slice(texturesPerMesh);\n }\n meshes.push(new RealityMeshGeometry({ realityMeshParams: realityMesh._realityMeshParams, textureParams: RealityTextureParams.create(layerTextures), transform: realityMesh._transform, baseColor, baseIsTransparent: baseTransparent, isTerrain: realityMesh._isTerrain, disableTextureDisposal }));\n }\n }\n\n if (meshes.length === 0)\n return undefined;\n\n const branch = new GraphicBranch(true);\n for (const mesh of meshes) {\n const primitive = Primitive.create(mesh);\n branch.add(system.createBatch(primitive!, featureTable, mesh.getRange(), { tileId }));\n }\n\n return system.createBranch(branch, realityMesh._transform ? realityMesh._transform : Transform.createIdentity(), { disableClipStyle: params.disableClipStyle });\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n this._isTerrain ? stats.addTerrain(this._realityMeshParams.bytesUsed) : stats.addRealityMesh(this._realityMeshParams.bytesUsed);\n if (this.textureParams?.params) {\n for (const param of this.textureParams.params) {\n if (param.texture?.bytesUsed)\n stats.addTexture(param.texture.bytesUsed);\n }\n }\n }\n\n public get techniqueId(): TechniqueId { return TechniqueId.RealityMesh; }\n\n public override getPass(target: Target) {\n if (this._baseIsTransparent || (target.wantThematicDisplay && target.uniforms.thematic.wantIsoLines))\n return \"translucent\";\n\n return \"opaque\";\n }\n public get renderOrder(): RenderOrder { return RenderOrder.UnlitSurface; }\n\n public override draw(): void {\n this._params.buffers.bind();\n System.instance.context.drawElements(GL.PrimitiveType.Triangles, this._params.numIndices, this._indexType, 0);\n this._params.buffers.unbind();\n }\n}\n"]}
@@ -15,7 +15,7 @@ export declare class RenderBuffer implements WebGLDisposable {
15
15
  getHandle(): WebGLRenderbuffer | undefined;
16
16
  static create(width: number, height: number, format?: GL.RenderBuffer.Format): RenderBuffer | undefined;
17
17
  get isDisposed(): boolean;
18
- dispose(): void;
18
+ [Symbol.dispose](): void;
19
19
  bind(): void;
20
20
  private constructor();
21
21
  private static bindBuffer;
@@ -39,7 +39,7 @@ export declare class RenderBufferMultiSample implements WebGLDisposable {
39
39
  getHandle(): WebGLRenderbuffer | undefined;
40
40
  static create(width: number, height: number, format: number, numSamples: number): RenderBufferMultiSample | undefined;
41
41
  get isDisposed(): boolean;
42
- dispose(): void;
42
+ [Symbol.dispose](): void;
43
43
  bind(): void;
44
44
  private constructor();
45
45
  private static bindBuffer;
@@ -1 +1 @@
1
- {"version":3,"file":"RenderBuffer.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/RenderBuffer.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAQ1B,gBAAgB;AAChB,qBAAa,YAAa,YAAW,eAAe;IAClD,OAAO,CAAC,SAAS,CAAC,CAAoB;IACtC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IAExB,IAAW,SAAS,IAAI,MAAM,CAA4B;IAC1D,IAAW,KAAK,IAAI,MAAM,CAAwB;IAClD,IAAW,MAAM,IAAI,MAAM,CAAyB;IAE7C,SAAS;WAEF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAA0C;IAgBpG,IAAW,UAAU,IAAI,OAAO,CAAoE;IAE7F,OAAO,IAAI,IAAI;IAQf,IAAI;IAOX,OAAO;IAOP,OAAO,CAAC,MAAM,CAAC,UAAU;IACzB,OAAO,CAAC,MAAM,CAAC,MAAM;CACtB;AAED;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,SAAS,CAAC,CAAoB;IACtC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAkB;IAElC,IAAW,SAAS,IAAI,MAAM,CAA4B;IAC1D,IAAW,KAAK,IAAI,MAAM,CAAwB;IAClD,IAAW,MAAM,IAAI,MAAM,CAAyB;IACpD,IAAW,OAAO,IAAI,OAAO,CAA0B;IAChD,eAAe,CAAC,KAAK,EAAE,OAAO;IAI9B,SAAS;WAEF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IActF,IAAW,UAAU,IAAI,OAAO,CAAoE;IAE7F,OAAO,IAAI,IAAI;IAOf,IAAI;IAOX,OAAO;IAOP,OAAO,CAAC,MAAM,CAAC,UAAU;IACzB,OAAO,CAAC,MAAM,CAAC,MAAM;CACtB"}
1
+ {"version":3,"file":"RenderBuffer.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/RenderBuffer.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAQ1B,gBAAgB;AAChB,qBAAa,YAAa,YAAW,eAAe;IAClD,OAAO,CAAC,SAAS,CAAC,CAAoB;IACtC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IAExB,IAAW,SAAS,IAAI,MAAM,CAA4B;IAC1D,IAAW,KAAK,IAAI,MAAM,CAAwB;IAClD,IAAW,MAAM,IAAI,MAAM,CAAyB;IAE7C,SAAS;WAEF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAA0C;IAgBpG,IAAW,UAAU,IAAI,OAAO,CAAoE;IAE7F,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAQxB,IAAI;IAOX,OAAO;IAOP,OAAO,CAAC,MAAM,CAAC,UAAU;IACzB,OAAO,CAAC,MAAM,CAAC,MAAM;CACtB;AAED;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,SAAS,CAAC,CAAoB;IACtC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAkB;IAElC,IAAW,SAAS,IAAI,MAAM,CAA4B;IAC1D,IAAW,KAAK,IAAI,MAAM,CAAwB;IAClD,IAAW,MAAM,IAAI,MAAM,CAAyB;IACpD,IAAW,OAAO,IAAI,OAAO,CAA0B;IAChD,eAAe,CAAC,KAAK,EAAE,OAAO;IAI9B,SAAS;WAEF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IActF,IAAW,UAAU,IAAI,OAAO,CAAoE;IAE7F,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAOxB,IAAI;IAOX,OAAO;IAOP,OAAO,CAAC,MAAM,CAAC,UAAU;IACzB,OAAO,CAAC,MAAM,CAAC,MAAM;CACtB"}
@@ -31,7 +31,7 @@ export class RenderBuffer {
31
31
  return new RenderBuffer(glBuffer, width, height, computeBytesUsed(width, height, format, 1));
32
32
  }
33
33
  get isDisposed() { return this._glBuffer === undefined || this._glBuffer === null; }
34
- dispose() {
34
+ [Symbol.dispose]() {
35
35
  if (!this.isDisposed) {
36
36
  System.instance.context.deleteRenderbuffer(this._glBuffer);
37
37
  this._glBuffer = undefined;
@@ -79,7 +79,7 @@ export class RenderBufferMultiSample {
79
79
  return new RenderBufferMultiSample(glBuffer, width, height, computeBytesUsed(width, height, format, numSamples));
80
80
  }
81
81
  get isDisposed() { return this._glBuffer === undefined || this._glBuffer === null; }
82
- dispose() {
82
+ [Symbol.dispose]() {
83
83
  if (!this.isDisposed) {
84
84
  System.instance.context.deleteRenderbuffer(this._glBuffer);
85
85
  this._glBuffer = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"RenderBuffer.js","sourceRoot":"","sources":["../../../../src/render/webgl/RenderBuffer.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 } from \"@itwin/core-bentley\";\nimport { WebGLDisposable } from \"./Disposable\";\nimport { GL } from \"./GL\";\nimport { System } from \"./System\";\n\nfunction computeBytesUsed(width: number, height: number, format: GL.RenderBuffer.Format, numSamples: number): number {\n const bytesPerPixel = (GL.RenderBuffer.Format.DepthComponent16 === format ? 2 : 4);\n return width * height * bytesPerPixel * numSamples;\n}\n\n/** @internal */\nexport class RenderBuffer implements WebGLDisposable {\n private _glBuffer?: WebGLRenderbuffer;\n private _bytesUsed = 0;\n private _width: number;\n private _height: number;\n\n public get bytesUsed(): number { return this._bytesUsed; }\n public get width(): number { return this._width; }\n public get height(): number { return this._height; }\n\n public getHandle() { return this._glBuffer; }\n\n public static create(width: number, height: number, format = GL.RenderBuffer.Format.DepthComponent16) {\n const gl = System.instance.context;\n\n const glBuffer = gl.createRenderbuffer();\n if (null === glBuffer) {\n return undefined;\n }\n\n assert(0 < width && 0 < height);\n RenderBuffer.bindBuffer(glBuffer);\n gl.renderbufferStorage(GL.RenderBuffer.TARGET, format, width, height);\n RenderBuffer.unbind();\n\n return new RenderBuffer(glBuffer, width, height, computeBytesUsed(width, height, format, 1));\n }\n\n public get isDisposed(): boolean { return this._glBuffer === undefined || this._glBuffer === null; }\n\n public dispose(): void {\n if (!this.isDisposed) {\n System.instance.context.deleteRenderbuffer(this._glBuffer!);\n this._glBuffer = undefined;\n this._bytesUsed = 0;\n }\n }\n\n public bind() {\n assert(undefined !== this._glBuffer);\n if (undefined !== this._glBuffer) {\n RenderBuffer.bindBuffer(this._glBuffer);\n }\n }\n\n private constructor(glBuffer: WebGLRenderbuffer, width: number, height: number, bytesUsed: number) {\n this._glBuffer = glBuffer;\n this._bytesUsed = bytesUsed;\n this._width = width;\n this._height = height;\n }\n\n private static bindBuffer(glBuffer: WebGLRenderbuffer | null) { System.instance.context.bindRenderbuffer(GL.RenderBuffer.TARGET, glBuffer); }\n private static unbind() { this.bindBuffer(null); }\n}\n\n/**\n * A RenderBuffer for doing antialiasing (multisampling).\n * @internal\n */\nexport class RenderBufferMultiSample implements WebGLDisposable {\n private _glBuffer?: WebGLRenderbuffer;\n private _bytesUsed = 0;\n private _width: number;\n private _height: number;\n private _isDirty: boolean = false;\n\n public get bytesUsed(): number { return this._bytesUsed; }\n public get width(): number { return this._width; }\n public get height(): number { return this._height; }\n public get isDirty(): boolean { return this._isDirty; }\n public markBufferDirty(dirty: boolean) {\n this._isDirty = dirty;\n }\n\n public getHandle() { return this._glBuffer; }\n\n public static create(width: number, height: number, format: number, numSamples: number) {\n const gl = System.instance.context;\n const glBuffer = gl.createRenderbuffer();\n if (null === glBuffer)\n return undefined;\n\n assert(0 < width && 0 < height);\n RenderBufferMultiSample.bindBuffer(glBuffer);\n gl.renderbufferStorageMultisample(GL.RenderBuffer.TARGET, numSamples, format, width, height);\n RenderBufferMultiSample.unbind();\n\n return new RenderBufferMultiSample(glBuffer, width, height, computeBytesUsed(width, height, format, numSamples));\n }\n\n public get isDisposed(): boolean { return this._glBuffer === undefined || this._glBuffer === null; }\n\n public dispose(): void {\n if (!this.isDisposed) {\n System.instance.context.deleteRenderbuffer(this._glBuffer!);\n this._glBuffer = undefined;\n }\n }\n\n public bind() {\n assert(undefined !== this._glBuffer);\n if (undefined !== this._glBuffer) {\n RenderBufferMultiSample.bindBuffer(this._glBuffer);\n }\n }\n\n private constructor(glBuffer: WebGLRenderbuffer, width: number, height: number, bytesUsed: number) {\n this._glBuffer = glBuffer;\n this._bytesUsed = bytesUsed;\n this._width = width;\n this._height = height;\n }\n\n private static bindBuffer(glBuffer: WebGLRenderbuffer | null) { System.instance.context.bindRenderbuffer(GL.RenderBuffer.TARGET, glBuffer); }\n private static unbind() { this.bindBuffer(null); }\n}\n"]}
1
+ {"version":3,"file":"RenderBuffer.js","sourceRoot":"","sources":["../../../../src/render/webgl/RenderBuffer.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 } from \"@itwin/core-bentley\";\nimport { WebGLDisposable } from \"./Disposable\";\nimport { GL } from \"./GL\";\nimport { System } from \"./System\";\n\nfunction computeBytesUsed(width: number, height: number, format: GL.RenderBuffer.Format, numSamples: number): number {\n const bytesPerPixel = (GL.RenderBuffer.Format.DepthComponent16 === format ? 2 : 4);\n return width * height * bytesPerPixel * numSamples;\n}\n\n/** @internal */\nexport class RenderBuffer implements WebGLDisposable {\n private _glBuffer?: WebGLRenderbuffer;\n private _bytesUsed = 0;\n private _width: number;\n private _height: number;\n\n public get bytesUsed(): number { return this._bytesUsed; }\n public get width(): number { return this._width; }\n public get height(): number { return this._height; }\n\n public getHandle() { return this._glBuffer; }\n\n public static create(width: number, height: number, format = GL.RenderBuffer.Format.DepthComponent16) {\n const gl = System.instance.context;\n\n const glBuffer = gl.createRenderbuffer();\n if (null === glBuffer) {\n return undefined;\n }\n\n assert(0 < width && 0 < height);\n RenderBuffer.bindBuffer(glBuffer);\n gl.renderbufferStorage(GL.RenderBuffer.TARGET, format, width, height);\n RenderBuffer.unbind();\n\n return new RenderBuffer(glBuffer, width, height, computeBytesUsed(width, height, format, 1));\n }\n\n public get isDisposed(): boolean { return this._glBuffer === undefined || this._glBuffer === null; }\n\n public [Symbol.dispose](): void {\n if (!this.isDisposed) {\n System.instance.context.deleteRenderbuffer(this._glBuffer!);\n this._glBuffer = undefined;\n this._bytesUsed = 0;\n }\n }\n\n public bind() {\n assert(undefined !== this._glBuffer);\n if (undefined !== this._glBuffer) {\n RenderBuffer.bindBuffer(this._glBuffer);\n }\n }\n\n private constructor(glBuffer: WebGLRenderbuffer, width: number, height: number, bytesUsed: number) {\n this._glBuffer = glBuffer;\n this._bytesUsed = bytesUsed;\n this._width = width;\n this._height = height;\n }\n\n private static bindBuffer(glBuffer: WebGLRenderbuffer | null) { System.instance.context.bindRenderbuffer(GL.RenderBuffer.TARGET, glBuffer); }\n private static unbind() { this.bindBuffer(null); }\n}\n\n/**\n * A RenderBuffer for doing antialiasing (multisampling).\n * @internal\n */\nexport class RenderBufferMultiSample implements WebGLDisposable {\n private _glBuffer?: WebGLRenderbuffer;\n private _bytesUsed = 0;\n private _width: number;\n private _height: number;\n private _isDirty: boolean = false;\n\n public get bytesUsed(): number { return this._bytesUsed; }\n public get width(): number { return this._width; }\n public get height(): number { return this._height; }\n public get isDirty(): boolean { return this._isDirty; }\n public markBufferDirty(dirty: boolean) {\n this._isDirty = dirty;\n }\n\n public getHandle() { return this._glBuffer; }\n\n public static create(width: number, height: number, format: number, numSamples: number) {\n const gl = System.instance.context;\n const glBuffer = gl.createRenderbuffer();\n if (null === glBuffer)\n return undefined;\n\n assert(0 < width && 0 < height);\n RenderBufferMultiSample.bindBuffer(glBuffer);\n gl.renderbufferStorageMultisample(GL.RenderBuffer.TARGET, numSamples, format, width, height);\n RenderBufferMultiSample.unbind();\n\n return new RenderBufferMultiSample(glBuffer, width, height, computeBytesUsed(width, height, format, numSamples));\n }\n\n public get isDisposed(): boolean { return this._glBuffer === undefined || this._glBuffer === null; }\n\n public [Symbol.dispose](): void {\n if (!this.isDisposed) {\n System.instance.context.deleteRenderbuffer(this._glBuffer!);\n this._glBuffer = undefined;\n }\n }\n\n public bind() {\n assert(undefined !== this._glBuffer);\n if (undefined !== this._glBuffer) {\n RenderBufferMultiSample.bindBuffer(this._glBuffer);\n }\n }\n\n private constructor(glBuffer: WebGLRenderbuffer, width: number, height: number, bytesUsed: number) {\n this._glBuffer = glBuffer;\n this._bytesUsed = bytesUsed;\n this._width = width;\n this._height = height;\n }\n\n private static bindBuffer(glBuffer: WebGLRenderbuffer | null) { System.instance.context.bindRenderbuffer(GL.RenderBuffer.TARGET, glBuffer); }\n private static unbind() { this.bindBuffer(null); }\n}\n"]}
@@ -28,7 +28,7 @@ export declare abstract class SceneCompositor implements WebGLDisposable, Render
28
28
  readonly eyeDomeLighting: EyeDomeLighting;
29
29
  protected _needHiddenEdges: boolean;
30
30
  abstract get isDisposed(): boolean;
31
- abstract dispose(): void;
31
+ abstract [Symbol.dispose](): void;
32
32
  abstract preDraw(): void;
33
33
  abstract draw(_commands: RenderCommands): void;
34
34
  abstract drawForReadPixels(_commands: RenderCommands, sceneOverlays: GraphicList, worldOverlayDecorations: GraphicList | undefined, viewOverlayDecorations: GraphicList | undefined): void;
@@ -1 +1 @@
1
- {"version":3,"file":"SceneCompositor.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/SceneCompositor.ts"],"names":[],"mappings":"AAIA;;GAEG;AASH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAC2D,cAAc,EAE/E,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAe,WAAW,EAAE,MAAM,eAAe,CAAC;AAIzD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAW,eAAe,EAAE,MAAM,OAAO,CAAC;AAGjD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI,CAGjH;AA0bD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI,CAGhH;AA8SD;;;GAGG;AACH,8BAAsB,eAAgB,YAAW,eAAe,EAAE,YAAY,CAAC,QAAQ;IACrF,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,cAAc,EAAE,cAAc,CAAC;IAC/C,SAAgB,eAAe,EAAE,eAAe,CAAC;IAEjD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC;IAEpC,aAAoB,UAAU,IAAI,OAAO,CAAC;aAC1B,OAAO,IAAI,IAAI;aACf,OAAO,IAAI,IAAI;aACf,IAAI,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;aACrC,iBAAiB,CAAC,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,uBAAuB,EAAE,WAAW,GAAG,SAAS,EAAE,sBAAsB,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI;aACjL,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS;aAC9E,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS;aACzD,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS;aACtD,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI;aAC3D,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,qBAAqB,EAAE,aAAa,EAAE,OAAO,GAAG,IAAI;aAC9F,iBAAiB,IAAI,IAAI;IAEzC,8GAA8G;IAC9G,aAAoB,oBAAoB,IAAI,WAAW,CAAC;IAExD,aAAoB,UAAU,IAAI,aAAa,CAAC;IAChD,aAAoB,aAAa,IAAI,aAAa,CAAC;IACnD,aAAoB,gBAAgB,IAAI,MAAM,CAAC;IAE/C,IAAW,eAAe,IAAI,OAAO,CAAkC;IAEvE,SAAS,aAAa,MAAM,EAAE,MAAM;WAOtB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe;aAIrC,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;CACxE"}
1
+ {"version":3,"file":"SceneCompositor.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/SceneCompositor.ts"],"names":[],"mappings":"AAIA;;GAEG;AASH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAC2D,cAAc,EAE/E,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAe,WAAW,EAAE,MAAM,eAAe,CAAC;AAIzD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAW,eAAe,EAAE,MAAM,OAAO,CAAC;AAGjD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI,CAGjH;AA0bD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI,CAGhH;AA8SD;;;GAGG;AACH,8BAAsB,eAAgB,YAAW,eAAe,EAAE,YAAY,CAAC,QAAQ;IACrF,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,cAAc,EAAE,cAAc,CAAC;IAC/C,SAAgB,eAAe,EAAE,eAAe,CAAC;IAEjD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC;IAEpC,aAAoB,UAAU,IAAI,OAAO,CAAC;aAC1B,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;aACxB,OAAO,IAAI,IAAI;aACf,IAAI,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;aACrC,iBAAiB,CAAC,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,uBAAuB,EAAE,WAAW,GAAG,SAAS,EAAE,sBAAsB,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI;aACjL,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS;aAC9E,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS;aACzD,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS;aACtD,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI;aAC3D,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,qBAAqB,EAAE,aAAa,EAAE,OAAO,GAAG,IAAI;aAC9F,iBAAiB,IAAI,IAAI;IAEzC,8GAA8G;IAC9G,aAAoB,oBAAoB,IAAI,WAAW,CAAC;IAExD,aAAoB,UAAU,IAAI,aAAa,CAAC;IAChD,aAAoB,aAAa,IAAI,aAAa,CAAC;IACnD,aAAoB,gBAAgB,IAAI,MAAM,CAAC;IAE/C,IAAW,eAAe,IAAI,OAAO,CAAkC;IAEvE,SAAS,aAAa,MAAM,EAAE,MAAM;WAOtB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe;aAIrC,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;CACxE"}