@itwin/core-frontend 5.0.0-dev.99 → 5.1.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  3. package/lib/cjs/AccuDraw.js +20 -41
  4. package/lib/cjs/AccuDraw.js.map +1 -1
  5. package/lib/cjs/AccuSnap.d.ts +1 -0
  6. package/lib/cjs/AccuSnap.d.ts.map +1 -1
  7. package/lib/cjs/AccuSnap.js +69 -1
  8. package/lib/cjs/AccuSnap.js.map +1 -1
  9. package/lib/cjs/BriefcaseConnection.d.ts +1 -1
  10. package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
  11. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  12. package/lib/cjs/CatalogConnection.d.ts +71 -0
  13. package/lib/cjs/CatalogConnection.d.ts.map +1 -0
  14. package/lib/cjs/CatalogConnection.js +95 -0
  15. package/lib/cjs/CatalogConnection.js.map +1 -0
  16. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  17. package/lib/cjs/ElementLocateManager.js +5 -2
  18. package/lib/cjs/ElementLocateManager.js.map +1 -1
  19. package/lib/cjs/HitDetail.d.ts +29 -2
  20. package/lib/cjs/HitDetail.d.ts.map +1 -1
  21. package/lib/cjs/HitDetail.js +14 -0
  22. package/lib/cjs/HitDetail.js.map +1 -1
  23. package/lib/cjs/IpcApp.d.ts +1 -1
  24. package/lib/cjs/IpcApp.d.ts.map +1 -1
  25. package/lib/cjs/IpcApp.js.map +1 -1
  26. package/lib/cjs/ModelState.d.ts.map +1 -1
  27. package/lib/cjs/ModelState.js +7 -5
  28. package/lib/cjs/ModelState.js.map +1 -1
  29. package/lib/cjs/NativeApp.d.ts +2 -1
  30. package/lib/cjs/NativeApp.d.ts.map +1 -1
  31. package/lib/cjs/NativeApp.js +1 -0
  32. package/lib/cjs/NativeApp.js.map +1 -1
  33. package/lib/cjs/Viewport.d.ts.map +1 -1
  34. package/lib/cjs/Viewport.js +1 -0
  35. package/lib/cjs/Viewport.js.map +1 -1
  36. package/lib/cjs/core-frontend.d.ts +1 -0
  37. package/lib/cjs/core-frontend.d.ts.map +1 -1
  38. package/lib/cjs/core-frontend.js +1 -0
  39. package/lib/cjs/core-frontend.js.map +1 -1
  40. package/lib/cjs/internal/cross-package.d.ts +1 -1
  41. package/lib/cjs/internal/cross-package.d.ts.map +1 -1
  42. package/lib/cjs/internal/cross-package.js +3 -1
  43. package/lib/cjs/internal/cross-package.js.map +1 -1
  44. package/lib/cjs/internal/render/webgl/FrustumUniforms.d.ts +2 -0
  45. package/lib/cjs/internal/render/webgl/FrustumUniforms.d.ts.map +1 -1
  46. package/lib/cjs/internal/render/webgl/FrustumUniforms.js +7 -0
  47. package/lib/cjs/internal/render/webgl/FrustumUniforms.js.map +1 -1
  48. package/lib/cjs/internal/render/webgl/MapLayerParams.d.ts +0 -1
  49. package/lib/cjs/internal/render/webgl/MapLayerParams.d.ts.map +1 -1
  50. package/lib/cjs/internal/render/webgl/MapLayerParams.js +11 -20
  51. package/lib/cjs/internal/render/webgl/MapLayerParams.js.map +1 -1
  52. package/lib/cjs/internal/render/webgl/SceneCompositor.d.ts +9 -0
  53. package/lib/cjs/internal/render/webgl/SceneCompositor.d.ts.map +1 -1
  54. package/lib/cjs/internal/render/webgl/SceneCompositor.js +86 -11
  55. package/lib/cjs/internal/render/webgl/SceneCompositor.js.map +1 -1
  56. package/lib/cjs/internal/render/webgl/ShaderBuilder.d.ts +4 -3
  57. package/lib/cjs/internal/render/webgl/ShaderBuilder.d.ts.map +1 -1
  58. package/lib/cjs/internal/render/webgl/ShaderBuilder.js +3 -3
  59. package/lib/cjs/internal/render/webgl/ShaderBuilder.js.map +1 -1
  60. package/lib/cjs/internal/render/webgl/SolarShadowMap.js +2 -2
  61. package/lib/cjs/internal/render/webgl/SolarShadowMap.js.map +1 -1
  62. package/lib/cjs/internal/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  63. package/lib/cjs/internal/render/webgl/SurfaceGeometry.js +20 -8
  64. package/lib/cjs/internal/render/webgl/SurfaceGeometry.js.map +1 -1
  65. package/lib/cjs/internal/render/webgl/glsl/Atmosphere.js +1 -1
  66. package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.d.ts.map +1 -1
  67. package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.js +2 -1
  68. package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  69. package/lib/cjs/internal/render/webgl/glsl/Contours.d.ts.map +1 -1
  70. package/lib/cjs/internal/render/webgl/glsl/Contours.js +31 -1
  71. package/lib/cjs/internal/render/webgl/glsl/Contours.js.map +1 -1
  72. package/lib/cjs/internal/render/webgl/glsl/Fragment.d.ts.map +1 -1
  73. package/lib/cjs/internal/render/webgl/glsl/Fragment.js +7 -2
  74. package/lib/cjs/internal/render/webgl/glsl/Fragment.js.map +1 -1
  75. package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js +1 -1
  76. package/lib/cjs/internal/render/webgl/glsl/Surface.js +1 -1
  77. package/lib/cjs/internal/tile/GraphicsCollector.d.ts +1 -0
  78. package/lib/cjs/internal/tile/GraphicsCollector.d.ts.map +1 -1
  79. package/lib/cjs/internal/tile/GraphicsCollector.js +1 -0
  80. package/lib/cjs/internal/tile/GraphicsCollector.js.map +1 -1
  81. package/lib/cjs/internal/tile/IModelTile.d.ts.map +1 -1
  82. package/lib/cjs/internal/tile/IModelTile.js +5 -0
  83. package/lib/cjs/internal/tile/IModelTile.js.map +1 -1
  84. package/lib/cjs/internal/tile/IModelTileTree.d.ts +4 -1
  85. package/lib/cjs/internal/tile/IModelTileTree.d.ts.map +1 -1
  86. package/lib/cjs/internal/tile/IModelTileTree.js +5 -0
  87. package/lib/cjs/internal/tile/IModelTileTree.js.map +1 -1
  88. package/lib/cjs/internal/tile/ImdlDecoder.d.ts +2 -0
  89. package/lib/cjs/internal/tile/ImdlDecoder.d.ts.map +1 -1
  90. package/lib/cjs/internal/tile/ImdlDecoder.js.map +1 -1
  91. package/lib/cjs/internal/tile/ImdlGraphicsCreator.d.ts +2 -2
  92. package/lib/cjs/internal/tile/ImdlGraphicsCreator.d.ts.map +1 -1
  93. package/lib/cjs/internal/tile/ImdlGraphicsCreator.js +2 -1
  94. package/lib/cjs/internal/tile/ImdlGraphicsCreator.js.map +1 -1
  95. package/lib/cjs/{tile → internal/tile}/LayerTileTreeHandler.d.ts +3 -3
  96. package/lib/cjs/internal/tile/LayerTileTreeHandler.d.ts.map +1 -0
  97. package/lib/cjs/{tile → internal/tile}/LayerTileTreeHandler.js +3 -2
  98. package/lib/cjs/internal/tile/LayerTileTreeHandler.js.map +1 -0
  99. package/lib/cjs/{tile → internal/tile}/LayerTileTreeReferenceHandler.d.ts +7 -5
  100. package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -0
  101. package/lib/cjs/{tile → internal/tile}/LayerTileTreeReferenceHandler.js +29 -4
  102. package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -0
  103. package/lib/cjs/internal/tile/PrimaryTileTree.d.ts +9 -4
  104. package/lib/cjs/internal/tile/PrimaryTileTree.d.ts.map +1 -1
  105. package/lib/cjs/internal/tile/PrimaryTileTree.js +30 -8
  106. package/lib/cjs/internal/tile/PrimaryTileTree.js.map +1 -1
  107. package/lib/cjs/internal/tile/RealityModelTileTree.d.ts +0 -2
  108. package/lib/cjs/internal/tile/RealityModelTileTree.d.ts.map +1 -1
  109. package/lib/cjs/internal/tile/RealityModelTileTree.js +2 -21
  110. package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
  111. package/lib/cjs/render/Pixel.d.ts +13 -2
  112. package/lib/cjs/render/Pixel.d.ts.map +1 -1
  113. package/lib/cjs/render/Pixel.js +20 -8
  114. package/lib/cjs/render/Pixel.js.map +1 -1
  115. package/lib/cjs/tile/ImdlReader.d.ts +3 -2
  116. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  117. package/lib/cjs/tile/ImdlReader.js +1 -0
  118. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  119. package/lib/cjs/tile/internal.d.ts +3 -2
  120. package/lib/cjs/tile/internal.d.ts.map +1 -1
  121. package/lib/cjs/tile/internal.js +3 -2
  122. package/lib/cjs/tile/internal.js.map +1 -1
  123. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts +1 -1
  124. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  125. package/lib/cjs/tile/map/CesiumTerrainProvider.js +2 -3
  126. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  127. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  128. package/lib/cjs/tile/map/MapTileTree.js +2 -4
  129. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  130. package/lib/cjs/tools/AccuDrawTool.d.ts +0 -12
  131. package/lib/cjs/tools/AccuDrawTool.d.ts.map +1 -1
  132. package/lib/cjs/tools/AccuDrawTool.js +2 -60
  133. package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
  134. package/lib/cjs/tools/AccuDrawViewportUI.d.ts +0 -1
  135. package/lib/cjs/tools/AccuDrawViewportUI.d.ts.map +1 -1
  136. package/lib/cjs/tools/AccuDrawViewportUI.js +15 -19
  137. package/lib/cjs/tools/AccuDrawViewportUI.js.map +1 -1
  138. package/lib/cjs/tools/ViewTool.d.ts +25 -16
  139. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  140. package/lib/cjs/tools/ViewTool.js +29 -40
  141. package/lib/cjs/tools/ViewTool.js.map +1 -1
  142. package/lib/esm/AccuDraw.d.ts.map +1 -1
  143. package/lib/esm/AccuDraw.js +21 -42
  144. package/lib/esm/AccuDraw.js.map +1 -1
  145. package/lib/esm/AccuSnap.d.ts +1 -0
  146. package/lib/esm/AccuSnap.d.ts.map +1 -1
  147. package/lib/esm/AccuSnap.js +69 -1
  148. package/lib/esm/AccuSnap.js.map +1 -1
  149. package/lib/esm/BriefcaseConnection.d.ts +1 -1
  150. package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
  151. package/lib/esm/BriefcaseConnection.js.map +1 -1
  152. package/lib/esm/CatalogConnection.d.ts +71 -0
  153. package/lib/esm/CatalogConnection.d.ts.map +1 -0
  154. package/lib/esm/CatalogConnection.js +92 -0
  155. package/lib/esm/CatalogConnection.js.map +1 -0
  156. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  157. package/lib/esm/ElementLocateManager.js +5 -2
  158. package/lib/esm/ElementLocateManager.js.map +1 -1
  159. package/lib/esm/HitDetail.d.ts +29 -2
  160. package/lib/esm/HitDetail.d.ts.map +1 -1
  161. package/lib/esm/HitDetail.js +14 -0
  162. package/lib/esm/HitDetail.js.map +1 -1
  163. package/lib/esm/IpcApp.d.ts +1 -1
  164. package/lib/esm/IpcApp.d.ts.map +1 -1
  165. package/lib/esm/IpcApp.js.map +1 -1
  166. package/lib/esm/ModelState.d.ts.map +1 -1
  167. package/lib/esm/ModelState.js +7 -5
  168. package/lib/esm/ModelState.js.map +1 -1
  169. package/lib/esm/NativeApp.d.ts +2 -1
  170. package/lib/esm/NativeApp.d.ts.map +1 -1
  171. package/lib/esm/NativeApp.js +1 -0
  172. package/lib/esm/NativeApp.js.map +1 -1
  173. package/lib/esm/Viewport.d.ts.map +1 -1
  174. package/lib/esm/Viewport.js +1 -0
  175. package/lib/esm/Viewport.js.map +1 -1
  176. package/lib/esm/core-frontend.d.ts +1 -0
  177. package/lib/esm/core-frontend.d.ts.map +1 -1
  178. package/lib/esm/core-frontend.js +1 -0
  179. package/lib/esm/core-frontend.js.map +1 -1
  180. package/lib/esm/internal/cross-package.d.ts +1 -1
  181. package/lib/esm/internal/cross-package.d.ts.map +1 -1
  182. package/lib/esm/internal/cross-package.js +1 -1
  183. package/lib/esm/internal/cross-package.js.map +1 -1
  184. package/lib/esm/internal/render/webgl/FrustumUniforms.d.ts +2 -0
  185. package/lib/esm/internal/render/webgl/FrustumUniforms.d.ts.map +1 -1
  186. package/lib/esm/internal/render/webgl/FrustumUniforms.js +8 -1
  187. package/lib/esm/internal/render/webgl/FrustumUniforms.js.map +1 -1
  188. package/lib/esm/internal/render/webgl/MapLayerParams.d.ts +0 -1
  189. package/lib/esm/internal/render/webgl/MapLayerParams.d.ts.map +1 -1
  190. package/lib/esm/internal/render/webgl/MapLayerParams.js +11 -20
  191. package/lib/esm/internal/render/webgl/MapLayerParams.js.map +1 -1
  192. package/lib/esm/internal/render/webgl/SceneCompositor.d.ts +9 -0
  193. package/lib/esm/internal/render/webgl/SceneCompositor.d.ts.map +1 -1
  194. package/lib/esm/internal/render/webgl/SceneCompositor.js +86 -11
  195. package/lib/esm/internal/render/webgl/SceneCompositor.js.map +1 -1
  196. package/lib/esm/internal/render/webgl/ShaderBuilder.d.ts +4 -3
  197. package/lib/esm/internal/render/webgl/ShaderBuilder.d.ts.map +1 -1
  198. package/lib/esm/internal/render/webgl/ShaderBuilder.js +3 -3
  199. package/lib/esm/internal/render/webgl/ShaderBuilder.js.map +1 -1
  200. package/lib/esm/internal/render/webgl/SolarShadowMap.js +2 -2
  201. package/lib/esm/internal/render/webgl/SolarShadowMap.js.map +1 -1
  202. package/lib/esm/internal/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  203. package/lib/esm/internal/render/webgl/SurfaceGeometry.js +20 -8
  204. package/lib/esm/internal/render/webgl/SurfaceGeometry.js.map +1 -1
  205. package/lib/esm/internal/render/webgl/glsl/Atmosphere.js +1 -1
  206. package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.d.ts.map +1 -1
  207. package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.js +2 -1
  208. package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  209. package/lib/esm/internal/render/webgl/glsl/Contours.d.ts.map +1 -1
  210. package/lib/esm/internal/render/webgl/glsl/Contours.js +31 -1
  211. package/lib/esm/internal/render/webgl/glsl/Contours.js.map +1 -1
  212. package/lib/esm/internal/render/webgl/glsl/Fragment.d.ts.map +1 -1
  213. package/lib/esm/internal/render/webgl/glsl/Fragment.js +7 -2
  214. package/lib/esm/internal/render/webgl/glsl/Fragment.js.map +1 -1
  215. package/lib/esm/internal/render/webgl/glsl/RealityMesh.js +1 -1
  216. package/lib/esm/internal/render/webgl/glsl/Surface.js +1 -1
  217. package/lib/esm/internal/tile/GraphicsCollector.d.ts +1 -0
  218. package/lib/esm/internal/tile/GraphicsCollector.d.ts.map +1 -1
  219. package/lib/esm/internal/tile/GraphicsCollector.js +1 -0
  220. package/lib/esm/internal/tile/GraphicsCollector.js.map +1 -1
  221. package/lib/esm/internal/tile/IModelTile.d.ts.map +1 -1
  222. package/lib/esm/internal/tile/IModelTile.js +6 -1
  223. package/lib/esm/internal/tile/IModelTile.js.map +1 -1
  224. package/lib/esm/internal/tile/IModelTileTree.d.ts +4 -1
  225. package/lib/esm/internal/tile/IModelTileTree.d.ts.map +1 -1
  226. package/lib/esm/internal/tile/IModelTileTree.js +6 -1
  227. package/lib/esm/internal/tile/IModelTileTree.js.map +1 -1
  228. package/lib/esm/internal/tile/ImdlDecoder.d.ts +2 -0
  229. package/lib/esm/internal/tile/ImdlDecoder.d.ts.map +1 -1
  230. package/lib/esm/internal/tile/ImdlDecoder.js.map +1 -1
  231. package/lib/esm/internal/tile/ImdlGraphicsCreator.d.ts +2 -2
  232. package/lib/esm/internal/tile/ImdlGraphicsCreator.d.ts.map +1 -1
  233. package/lib/esm/internal/tile/ImdlGraphicsCreator.js +2 -1
  234. package/lib/esm/internal/tile/ImdlGraphicsCreator.js.map +1 -1
  235. package/lib/esm/{tile → internal/tile}/LayerTileTreeHandler.d.ts +3 -3
  236. package/lib/esm/internal/tile/LayerTileTreeHandler.d.ts.map +1 -0
  237. package/lib/esm/{tile → internal/tile}/LayerTileTreeHandler.js +3 -2
  238. package/lib/esm/internal/tile/LayerTileTreeHandler.js.map +1 -0
  239. package/lib/esm/{tile → internal/tile}/LayerTileTreeReferenceHandler.d.ts +7 -5
  240. package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -0
  241. package/lib/esm/{tile → internal/tile}/LayerTileTreeReferenceHandler.js +29 -4
  242. package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -0
  243. package/lib/esm/internal/tile/PrimaryTileTree.d.ts +9 -4
  244. package/lib/esm/internal/tile/PrimaryTileTree.d.ts.map +1 -1
  245. package/lib/esm/internal/tile/PrimaryTileTree.js +32 -10
  246. package/lib/esm/internal/tile/PrimaryTileTree.js.map +1 -1
  247. package/lib/esm/internal/tile/RealityModelTileTree.d.ts +0 -2
  248. package/lib/esm/internal/tile/RealityModelTileTree.d.ts.map +1 -1
  249. package/lib/esm/internal/tile/RealityModelTileTree.js +2 -21
  250. package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
  251. package/lib/esm/render/Pixel.d.ts +13 -2
  252. package/lib/esm/render/Pixel.d.ts.map +1 -1
  253. package/lib/esm/render/Pixel.js +20 -8
  254. package/lib/esm/render/Pixel.js.map +1 -1
  255. package/lib/esm/tile/ImdlReader.d.ts +3 -2
  256. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  257. package/lib/esm/tile/ImdlReader.js +1 -0
  258. package/lib/esm/tile/ImdlReader.js.map +1 -1
  259. package/lib/esm/tile/internal.d.ts +3 -2
  260. package/lib/esm/tile/internal.d.ts.map +1 -1
  261. package/lib/esm/tile/internal.js +3 -2
  262. package/lib/esm/tile/internal.js.map +1 -1
  263. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts +1 -1
  264. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  265. package/lib/esm/tile/map/CesiumTerrainProvider.js +3 -4
  266. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  267. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  268. package/lib/esm/tile/map/MapTileTree.js +2 -4
  269. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  270. package/lib/esm/tools/AccuDrawTool.d.ts +0 -12
  271. package/lib/esm/tools/AccuDrawTool.d.ts.map +1 -1
  272. package/lib/esm/tools/AccuDrawTool.js +3 -60
  273. package/lib/esm/tools/AccuDrawTool.js.map +1 -1
  274. package/lib/esm/tools/AccuDrawViewportUI.d.ts +0 -1
  275. package/lib/esm/tools/AccuDrawViewportUI.d.ts.map +1 -1
  276. package/lib/esm/tools/AccuDrawViewportUI.js +16 -20
  277. package/lib/esm/tools/AccuDrawViewportUI.js.map +1 -1
  278. package/lib/esm/tools/ViewTool.d.ts +25 -16
  279. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  280. package/lib/esm/tools/ViewTool.js +29 -40
  281. package/lib/esm/tools/ViewTool.js.map +1 -1
  282. package/lib/public/locales/en/CoreTools.json +0 -5
  283. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  284. package/lib/public/sprites/SnapPerpendicularPoint.png +0 -0
  285. package/lib/public/sprites/SnapTangentPoint.png +0 -0
  286. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  287. package/package.json +16 -16
  288. package/lib/cjs/tile/LayerTileTreeHandler.d.ts.map +0 -1
  289. package/lib/cjs/tile/LayerTileTreeHandler.js.map +0 -1
  290. package/lib/cjs/tile/LayerTileTreeReferenceHandler.d.ts.map +0 -1
  291. package/lib/cjs/tile/LayerTileTreeReferenceHandler.js.map +0 -1
  292. package/lib/esm/tile/LayerTileTreeHandler.d.ts.map +0 -1
  293. package/lib/esm/tile/LayerTileTreeHandler.js.map +0 -1
  294. package/lib/esm/tile/LayerTileTreeReferenceHandler.d.ts.map +0 -1
  295. package/lib/esm/tile/LayerTileTreeReferenceHandler.js.map +0 -1
@@ -47,6 +47,8 @@ class Textures {
47
47
  featureId;
48
48
  depthAndOrder;
49
49
  depthAndOrderHidden; // only used if AO and multisampling
50
+ contours;
51
+ contoursMsBuff;
50
52
  hilite;
51
53
  occlusion;
52
54
  occlusionBlur;
@@ -64,6 +66,8 @@ class Textures {
64
66
  && undefined === this.color
65
67
  && undefined === this.featureId
66
68
  && undefined === this.depthAndOrder
69
+ && undefined === this.contours
70
+ && undefined === this.contoursMsBuff
67
71
  && undefined === this.depthAndOrderHidden
68
72
  && undefined === this.hilite
69
73
  && undefined === this.occlusion
@@ -83,6 +87,8 @@ class Textures {
83
87
  this.color = (0, core_bentley_1.dispose)(this.color);
84
88
  this.featureId = (0, core_bentley_1.dispose)(this.featureId);
85
89
  this.depthAndOrder = (0, core_bentley_1.dispose)(this.depthAndOrder);
90
+ this.contours = (0, core_bentley_1.dispose)(this.contours);
91
+ this.contoursMsBuff = (0, core_bentley_1.dispose)(this.contoursMsBuff);
86
92
  this.depthAndOrderHidden = (0, core_bentley_1.dispose)(this.depthAndOrderHidden);
87
93
  this.hilite = (0, core_bentley_1.dispose)(this.hilite);
88
94
  this.occlusion = (0, core_bentley_1.dispose)(this.occlusion);
@@ -102,6 +108,8 @@ class Textures {
102
108
  collectTextureStatistics(this.color, stats);
103
109
  collectTextureStatistics(this.featureId, stats);
104
110
  collectTextureStatistics(this.depthAndOrder, stats);
111
+ collectTextureStatistics(this.contours, stats);
112
+ collectMsBufferStatistics(this.contoursMsBuff, stats);
105
113
  collectTextureStatistics(this.depthAndOrderHidden, stats);
106
114
  collectTextureStatistics(this.hilite, stats);
107
115
  collectTextureStatistics(this.occlusion, stats);
@@ -140,11 +148,13 @@ class Textures {
140
148
  this.color = Texture_1.TextureHandle.createForAttachment(width, height, GL_1.GL.Texture.Format.Rgba, GL_1.GL.Texture.DataType.UnsignedByte);
141
149
  this.featureId = Texture_1.TextureHandle.createForAttachment(width, height, GL_1.GL.Texture.Format.Rgba, GL_1.GL.Texture.DataType.UnsignedByte);
142
150
  this.depthAndOrder = Texture_1.TextureHandle.createForAttachment(width, height, GL_1.GL.Texture.Format.Rgba, GL_1.GL.Texture.DataType.UnsignedByte);
151
+ this.contours = Texture_1.TextureHandle.createForAttachment(width, height, GL_1.GL.Texture.Format.Rgba, GL_1.GL.Texture.DataType.UnsignedByte);
143
152
  let rVal = undefined !== this.accumulation
144
153
  && undefined !== this.revealage
145
154
  && undefined !== this.color
146
155
  && undefined !== this.featureId
147
156
  && undefined !== this.depthAndOrder
157
+ && undefined !== this.contours
148
158
  && undefined !== this.hilite;
149
159
  if (rVal && numSamples > 1) {
150
160
  rVal = this.enableMultiSampling(width, height, numSamples);
@@ -189,12 +199,14 @@ class Textures {
189
199
  this.featureIdMsBuffHidden = RenderBuffer_1.RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);
190
200
  this.depthAndOrderMsBuff = RenderBuffer_1.RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);
191
201
  this.depthAndOrderMsBuffHidden = RenderBuffer_1.RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);
202
+ this.contoursMsBuff = RenderBuffer_1.RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);
192
203
  this.hiliteMsBuff = RenderBuffer_1.RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);
193
204
  return undefined !== this.colorMsBuff
194
205
  && undefined !== this.featureIdMsBuff
195
206
  && undefined !== this.featureIdMsBuffHidden
196
207
  && undefined !== this.depthAndOrderMsBuff
197
208
  && undefined !== this.depthAndOrderMsBuffHidden
209
+ && undefined !== this.contoursMsBuff
198
210
  && undefined !== this.hiliteMsBuff;
199
211
  }
200
212
  disableMultiSampling() {
@@ -203,6 +215,7 @@ class Textures {
203
215
  this.featureIdMsBuffHidden = (0, core_bentley_1.dispose)(this.featureIdMsBuffHidden);
204
216
  this.depthAndOrderMsBuff = (0, core_bentley_1.dispose)(this.depthAndOrderMsBuff);
205
217
  this.depthAndOrderMsBuffHidden = (0, core_bentley_1.dispose)(this.depthAndOrderMsBuffHidden);
218
+ this.contoursMsBuff = (0, core_bentley_1.dispose)(this.contoursMsBuff);
206
219
  this.hiliteMsBuff = (0, core_bentley_1.dispose)(this.hiliteMsBuff);
207
220
  return true;
208
221
  }
@@ -212,6 +225,7 @@ class FrameBuffers {
212
225
  opaqueColor;
213
226
  opaqueAndCompositeColor;
214
227
  depthAndOrder;
228
+ contours;
215
229
  hilite;
216
230
  hiliteUsingStencil;
217
231
  stencilSet;
@@ -236,9 +250,10 @@ class FrameBuffers {
236
250
  if (!this.initPotentialMSFbos(textures, depth, depthMS))
237
251
  return false;
238
252
  this.depthAndOrder = FrameBuffer_1.FrameBuffer.create([textures.depthAndOrder], depth);
253
+ this.contours = FrameBuffer_1.FrameBuffer.create([textures.contours], depth);
239
254
  this.hilite = FrameBuffer_1.FrameBuffer.create([textures.hilite], depth);
240
255
  this.hiliteUsingStencil = FrameBuffer_1.FrameBuffer.create([textures.hilite], depth);
241
- if (!this.depthAndOrder || !this.hilite || !this.hiliteUsingStencil)
256
+ if (!this.depthAndOrder || !this.contours || !this.hilite || !this.hiliteUsingStencil)
242
257
  return false;
243
258
  (0, core_bentley_1.assert)(undefined === this.opaqueAll);
244
259
  if (!this.initPotentialMSMRTFbos(textures, depth, depthMS))
@@ -275,17 +290,28 @@ class FrameBuffers {
275
290
  }
276
291
  initPotentialMSMRTFbos(textures, depth, depthMs) {
277
292
  const boundColor = System_1.System.instance.frameBufferStack.currentColorBuffer;
278
- (0, core_bentley_1.assert)(undefined !== boundColor && undefined !== textures.color && undefined !== textures.featureId && undefined !== textures.depthAndOrder && undefined !== textures.accumulation && undefined !== textures.revealage);
279
- const colorAndPick = [boundColor, textures.featureId, textures.depthAndOrder];
293
+ (0, core_bentley_1.assert)(undefined !== boundColor &&
294
+ undefined !== textures.color &&
295
+ undefined !== textures.featureId &&
296
+ undefined !== textures.depthAndOrder &&
297
+ undefined !== textures.contours &&
298
+ undefined !== textures.accumulation &&
299
+ undefined !== textures.revealage);
300
+ const colorAndPick = [boundColor, textures.featureId, textures.depthAndOrder, textures.contours];
280
301
  if (undefined === depthMs) {
281
302
  this.opaqueAll = FrameBuffer_1.FrameBuffer.create(colorAndPick, depth);
282
303
  colorAndPick[0] = textures.color;
283
304
  this.opaqueAndCompositeAll = FrameBuffer_1.FrameBuffer.create(colorAndPick, depth);
284
305
  }
285
306
  else {
286
- (0, core_bentley_1.assert)(undefined !== textures.colorMsBuff && undefined !== textures.featureIdMsBuff && undefined !== textures.featureIdMsBuffHidden && undefined !== textures.depthAndOrderMsBuff && undefined !== textures.depthAndOrderMsBuffHidden);
287
- const colorAndPickMsBuffs = [textures.colorMsBuff, textures.featureIdMsBuff, textures.depthAndOrderMsBuff];
288
- const colorAndPickFilters = [GL_1.GL.MultiSampling.Filter.Linear, GL_1.GL.MultiSampling.Filter.Nearest, GL_1.GL.MultiSampling.Filter.Nearest];
307
+ (0, core_bentley_1.assert)(undefined !== textures.colorMsBuff &&
308
+ undefined !== textures.featureIdMsBuff &&
309
+ undefined !== textures.featureIdMsBuffHidden &&
310
+ undefined !== textures.contoursMsBuff &&
311
+ undefined !== textures.depthAndOrderMsBuff &&
312
+ undefined !== textures.depthAndOrderMsBuffHidden);
313
+ const colorAndPickMsBuffs = [textures.colorMsBuff, textures.featureIdMsBuff, textures.depthAndOrderMsBuff, textures.contoursMsBuff];
314
+ const colorAndPickFilters = [GL_1.GL.MultiSampling.Filter.Linear, GL_1.GL.MultiSampling.Filter.Nearest, GL_1.GL.MultiSampling.Filter.Nearest, GL_1.GL.MultiSampling.Filter.Nearest];
289
315
  this.opaqueAll = FrameBuffer_1.FrameBuffer.create(colorAndPick, depth, colorAndPickMsBuffs, colorAndPickFilters, depthMs);
290
316
  colorAndPick[0] = textures.color;
291
317
  this.opaqueAndCompositeAll = FrameBuffer_1.FrameBuffer.create(colorAndPick, depth, colorAndPickMsBuffs, colorAndPickFilters, depthMs);
@@ -394,7 +420,7 @@ class FrameBuffers {
394
420
  return this.initPotentialMSFbos(textures, depth, undefined);
395
421
  }
396
422
  get isDisposed() {
397
- return undefined === this.opaqueColor && undefined === this.opaqueAndCompositeColor && undefined === this.depthAndOrder
423
+ return undefined === this.opaqueColor && undefined === this.opaqueAndCompositeColor && undefined === this.depthAndOrder && undefined === this.contours
398
424
  && undefined === this.hilite && undefined === this.hiliteUsingStencil && undefined === this.occlusion
399
425
  && undefined === this.occlusionBlur && undefined === this.stencilSet && undefined === this.altZOnly
400
426
  && undefined === this.volClassCreateBlend && undefined === this.volClassCreateBlendAltZ && undefined === this.opaqueAll
@@ -407,6 +433,7 @@ class FrameBuffers {
407
433
  this.opaqueColor = (0, core_bentley_1.dispose)(this.opaqueColor);
408
434
  this.opaqueAndCompositeColor = (0, core_bentley_1.dispose)(this.opaqueAndCompositeColor);
409
435
  this.depthAndOrder = (0, core_bentley_1.dispose)(this.depthAndOrder);
436
+ this.contours = (0, core_bentley_1.dispose)(this.contours);
410
437
  this.hilite = (0, core_bentley_1.dispose)(this.hilite);
411
438
  this.hiliteUsingStencil = (0, core_bentley_1.dispose)(this.hiliteUsingStencil);
412
439
  this.occlusion = (0, core_bentley_1.dispose)(this.occlusion);
@@ -523,6 +550,7 @@ class PixelBuffer {
523
550
  _selector;
524
551
  _featureId;
525
552
  _depthAndOrder;
553
+ _contours;
526
554
  _batchState;
527
555
  _scratchModelFeature = core_common_1.ModelFeature.create();
528
556
  get _numPixels() { return this._rect.width * this._rect.height; }
@@ -579,11 +607,12 @@ class PixelBuffer {
579
607
  depth = Math.max(0.0, depth);
580
608
  return depth;
581
609
  }
582
- decodeRenderOrderRgba(depthAndOrder) {
583
- this._scratchUint32Array[0] = depthAndOrder;
610
+ decodeRenderOrderRgba(depthAndOrder) { return this.decodeUint8(depthAndOrder, 16); }
611
+ decodeUint8(rgba32, basis) {
612
+ this._scratchUint32Array[0] = rgba32;
584
613
  const encByte = this._scratchUint8Array[0];
585
614
  const enc = encByte / 255.0;
586
- const dec = Math.floor(16.0 * enc + 0.5);
615
+ const dec = Math.floor(basis * enc + 0.5);
587
616
  return dec;
588
617
  }
589
618
  _invalidPixelData = new Pixel_1.Pixel.Data();
@@ -635,6 +664,28 @@ class PixelBuffer {
635
664
  }
636
665
  }
637
666
  }
667
+ let contour;
668
+ if (this._contours) {
669
+ const contour32 = this.getPixel32(this._contours.data, index);
670
+ if (contour32) { // undefined means out of bounds; zero means not a contour.
671
+ const groupIndexAndType = this.decodeUint8(contour32, 32);
672
+ const groupIndex = groupIndexAndType & ~(8 | 16);
673
+ const group = this._contours.display.groups[groupIndex];
674
+ if (group) {
675
+ const elevationFraction = this.decodeDepthRgba(contour32);
676
+ let elevation = elevationFraction * (this._contours.zHigh - this._contours.zLow) + this._contours.zLow;
677
+ // The shader rounds to the nearest contour elevation using single-precision arithmetic.
678
+ // Re-round here using double-precision to get closer.
679
+ const interval = group.contourDef.minorInterval;
680
+ elevation = (elevation >= 0 ? Math.floor((elevation + interval / 2) / interval) : Math.ceil((elevation - interval / 2) / interval)) * interval;
681
+ contour = {
682
+ group,
683
+ elevation,
684
+ isMajor: groupIndexAndType > 15,
685
+ };
686
+ }
687
+ }
688
+ }
638
689
  let featureTable, iModel, transformToIModel, tileId, viewAttachmentId, inSectionDrawingAttachment;
639
690
  if (undefined !== batchInfo) {
640
691
  featureTable = batchInfo.featureTable;
@@ -655,6 +706,7 @@ class PixelBuffer {
655
706
  tileId,
656
707
  viewAttachmentId,
657
708
  inSectionDrawingAttachment,
709
+ contour,
658
710
  });
659
711
  }
660
712
  constructor(rect, selector, compositor) {
@@ -675,6 +727,10 @@ class PixelBuffer {
675
727
  else
676
728
  this._selector &= ~Pixel_1.Pixel.Selector.Feature;
677
729
  }
730
+ // Note: readContours is a no-op unless contours are actually being drawn.
731
+ if (Pixel_1.Pixel.Selector.None !== (selector & Pixel_1.Pixel.Selector.Contours)) {
732
+ this._contours = compositor.readContours(rect);
733
+ }
678
734
  }
679
735
  get isEmpty() { return Pixel_1.Pixel.Selector.None === this._selector; }
680
736
  static create(rect, selector, compositor) {
@@ -1359,7 +1415,26 @@ class Compositor extends SceneCompositor {
1359
1415
  readPixels(rect, selector) {
1360
1416
  return PixelBuffer.create(rect, selector, this);
1361
1417
  }
1362
- readDepthAndOrder(rect) { return this.readFrameBuffer(rect, this._fbos.depthAndOrder); }
1418
+ readDepthAndOrder(rect) {
1419
+ return this.readFrameBuffer(rect, this._fbos.depthAndOrder);
1420
+ }
1421
+ readContours(rect) {
1422
+ // Are we actually drawing any contours? If not, don't bother reading an array of all zeroes off the GPU.
1423
+ const contours = this.target.plan.contours;
1424
+ if (!contours || !contours.displayContours || contours.groups.length === 0) {
1425
+ return undefined;
1426
+ }
1427
+ const info = this.readFrameBuffer(rect, this._fbos.contours);
1428
+ if (!info) {
1429
+ return undefined;
1430
+ }
1431
+ return {
1432
+ data: new Uint32Array(info.buffer),
1433
+ display: contours,
1434
+ zLow: this.target.uniforms.frustum.worldFrustumZRange[0],
1435
+ zHigh: this.target.uniforms.frustum.worldFrustumZRange[1],
1436
+ };
1437
+ }
1363
1438
  readFeatureIds(rect) {
1364
1439
  const tex = this._textures.featureId;
1365
1440
  if (undefined === tex)