@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
@@ -42,6 +42,8 @@ class Textures {
42
42
  featureId;
43
43
  depthAndOrder;
44
44
  depthAndOrderHidden; // only used if AO and multisampling
45
+ contours;
46
+ contoursMsBuff;
45
47
  hilite;
46
48
  occlusion;
47
49
  occlusionBlur;
@@ -59,6 +61,8 @@ class Textures {
59
61
  && undefined === this.color
60
62
  && undefined === this.featureId
61
63
  && undefined === this.depthAndOrder
64
+ && undefined === this.contours
65
+ && undefined === this.contoursMsBuff
62
66
  && undefined === this.depthAndOrderHidden
63
67
  && undefined === this.hilite
64
68
  && undefined === this.occlusion
@@ -78,6 +82,8 @@ class Textures {
78
82
  this.color = dispose(this.color);
79
83
  this.featureId = dispose(this.featureId);
80
84
  this.depthAndOrder = dispose(this.depthAndOrder);
85
+ this.contours = dispose(this.contours);
86
+ this.contoursMsBuff = dispose(this.contoursMsBuff);
81
87
  this.depthAndOrderHidden = dispose(this.depthAndOrderHidden);
82
88
  this.hilite = dispose(this.hilite);
83
89
  this.occlusion = dispose(this.occlusion);
@@ -97,6 +103,8 @@ class Textures {
97
103
  collectTextureStatistics(this.color, stats);
98
104
  collectTextureStatistics(this.featureId, stats);
99
105
  collectTextureStatistics(this.depthAndOrder, stats);
106
+ collectTextureStatistics(this.contours, stats);
107
+ collectMsBufferStatistics(this.contoursMsBuff, stats);
100
108
  collectTextureStatistics(this.depthAndOrderHidden, stats);
101
109
  collectTextureStatistics(this.hilite, stats);
102
110
  collectTextureStatistics(this.occlusion, stats);
@@ -135,11 +143,13 @@ class Textures {
135
143
  this.color = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);
136
144
  this.featureId = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);
137
145
  this.depthAndOrder = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);
146
+ this.contours = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);
138
147
  let rVal = undefined !== this.accumulation
139
148
  && undefined !== this.revealage
140
149
  && undefined !== this.color
141
150
  && undefined !== this.featureId
142
151
  && undefined !== this.depthAndOrder
152
+ && undefined !== this.contours
143
153
  && undefined !== this.hilite;
144
154
  if (rVal && numSamples > 1) {
145
155
  rVal = this.enableMultiSampling(width, height, numSamples);
@@ -184,12 +194,14 @@ class Textures {
184
194
  this.featureIdMsBuffHidden = RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);
185
195
  this.depthAndOrderMsBuff = RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);
186
196
  this.depthAndOrderMsBuffHidden = RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);
197
+ this.contoursMsBuff = RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);
187
198
  this.hiliteMsBuff = RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);
188
199
  return undefined !== this.colorMsBuff
189
200
  && undefined !== this.featureIdMsBuff
190
201
  && undefined !== this.featureIdMsBuffHidden
191
202
  && undefined !== this.depthAndOrderMsBuff
192
203
  && undefined !== this.depthAndOrderMsBuffHidden
204
+ && undefined !== this.contoursMsBuff
193
205
  && undefined !== this.hiliteMsBuff;
194
206
  }
195
207
  disableMultiSampling() {
@@ -198,6 +210,7 @@ class Textures {
198
210
  this.featureIdMsBuffHidden = dispose(this.featureIdMsBuffHidden);
199
211
  this.depthAndOrderMsBuff = dispose(this.depthAndOrderMsBuff);
200
212
  this.depthAndOrderMsBuffHidden = dispose(this.depthAndOrderMsBuffHidden);
213
+ this.contoursMsBuff = dispose(this.contoursMsBuff);
201
214
  this.hiliteMsBuff = dispose(this.hiliteMsBuff);
202
215
  return true;
203
216
  }
@@ -207,6 +220,7 @@ class FrameBuffers {
207
220
  opaqueColor;
208
221
  opaqueAndCompositeColor;
209
222
  depthAndOrder;
223
+ contours;
210
224
  hilite;
211
225
  hiliteUsingStencil;
212
226
  stencilSet;
@@ -231,9 +245,10 @@ class FrameBuffers {
231
245
  if (!this.initPotentialMSFbos(textures, depth, depthMS))
232
246
  return false;
233
247
  this.depthAndOrder = FrameBuffer.create([textures.depthAndOrder], depth);
248
+ this.contours = FrameBuffer.create([textures.contours], depth);
234
249
  this.hilite = FrameBuffer.create([textures.hilite], depth);
235
250
  this.hiliteUsingStencil = FrameBuffer.create([textures.hilite], depth);
236
- if (!this.depthAndOrder || !this.hilite || !this.hiliteUsingStencil)
251
+ if (!this.depthAndOrder || !this.contours || !this.hilite || !this.hiliteUsingStencil)
237
252
  return false;
238
253
  assert(undefined === this.opaqueAll);
239
254
  if (!this.initPotentialMSMRTFbos(textures, depth, depthMS))
@@ -270,17 +285,28 @@ class FrameBuffers {
270
285
  }
271
286
  initPotentialMSMRTFbos(textures, depth, depthMs) {
272
287
  const boundColor = System.instance.frameBufferStack.currentColorBuffer;
273
- assert(undefined !== boundColor && undefined !== textures.color && undefined !== textures.featureId && undefined !== textures.depthAndOrder && undefined !== textures.accumulation && undefined !== textures.revealage);
274
- const colorAndPick = [boundColor, textures.featureId, textures.depthAndOrder];
288
+ assert(undefined !== boundColor &&
289
+ undefined !== textures.color &&
290
+ undefined !== textures.featureId &&
291
+ undefined !== textures.depthAndOrder &&
292
+ undefined !== textures.contours &&
293
+ undefined !== textures.accumulation &&
294
+ undefined !== textures.revealage);
295
+ const colorAndPick = [boundColor, textures.featureId, textures.depthAndOrder, textures.contours];
275
296
  if (undefined === depthMs) {
276
297
  this.opaqueAll = FrameBuffer.create(colorAndPick, depth);
277
298
  colorAndPick[0] = textures.color;
278
299
  this.opaqueAndCompositeAll = FrameBuffer.create(colorAndPick, depth);
279
300
  }
280
301
  else {
281
- assert(undefined !== textures.colorMsBuff && undefined !== textures.featureIdMsBuff && undefined !== textures.featureIdMsBuffHidden && undefined !== textures.depthAndOrderMsBuff && undefined !== textures.depthAndOrderMsBuffHidden);
282
- const colorAndPickMsBuffs = [textures.colorMsBuff, textures.featureIdMsBuff, textures.depthAndOrderMsBuff];
283
- const colorAndPickFilters = [GL.MultiSampling.Filter.Linear, GL.MultiSampling.Filter.Nearest, GL.MultiSampling.Filter.Nearest];
302
+ assert(undefined !== textures.colorMsBuff &&
303
+ undefined !== textures.featureIdMsBuff &&
304
+ undefined !== textures.featureIdMsBuffHidden &&
305
+ undefined !== textures.contoursMsBuff &&
306
+ undefined !== textures.depthAndOrderMsBuff &&
307
+ undefined !== textures.depthAndOrderMsBuffHidden);
308
+ const colorAndPickMsBuffs = [textures.colorMsBuff, textures.featureIdMsBuff, textures.depthAndOrderMsBuff, textures.contoursMsBuff];
309
+ const colorAndPickFilters = [GL.MultiSampling.Filter.Linear, GL.MultiSampling.Filter.Nearest, GL.MultiSampling.Filter.Nearest, GL.MultiSampling.Filter.Nearest];
284
310
  this.opaqueAll = FrameBuffer.create(colorAndPick, depth, colorAndPickMsBuffs, colorAndPickFilters, depthMs);
285
311
  colorAndPick[0] = textures.color;
286
312
  this.opaqueAndCompositeAll = FrameBuffer.create(colorAndPick, depth, colorAndPickMsBuffs, colorAndPickFilters, depthMs);
@@ -389,7 +415,7 @@ class FrameBuffers {
389
415
  return this.initPotentialMSFbos(textures, depth, undefined);
390
416
  }
391
417
  get isDisposed() {
392
- return undefined === this.opaqueColor && undefined === this.opaqueAndCompositeColor && undefined === this.depthAndOrder
418
+ return undefined === this.opaqueColor && undefined === this.opaqueAndCompositeColor && undefined === this.depthAndOrder && undefined === this.contours
393
419
  && undefined === this.hilite && undefined === this.hiliteUsingStencil && undefined === this.occlusion
394
420
  && undefined === this.occlusionBlur && undefined === this.stencilSet && undefined === this.altZOnly
395
421
  && undefined === this.volClassCreateBlend && undefined === this.volClassCreateBlendAltZ && undefined === this.opaqueAll
@@ -402,6 +428,7 @@ class FrameBuffers {
402
428
  this.opaqueColor = dispose(this.opaqueColor);
403
429
  this.opaqueAndCompositeColor = dispose(this.opaqueAndCompositeColor);
404
430
  this.depthAndOrder = dispose(this.depthAndOrder);
431
+ this.contours = dispose(this.contours);
405
432
  this.hilite = dispose(this.hilite);
406
433
  this.hiliteUsingStencil = dispose(this.hiliteUsingStencil);
407
434
  this.occlusion = dispose(this.occlusion);
@@ -518,6 +545,7 @@ class PixelBuffer {
518
545
  _selector;
519
546
  _featureId;
520
547
  _depthAndOrder;
548
+ _contours;
521
549
  _batchState;
522
550
  _scratchModelFeature = ModelFeature.create();
523
551
  get _numPixels() { return this._rect.width * this._rect.height; }
@@ -574,11 +602,12 @@ class PixelBuffer {
574
602
  depth = Math.max(0.0, depth);
575
603
  return depth;
576
604
  }
577
- decodeRenderOrderRgba(depthAndOrder) {
578
- this._scratchUint32Array[0] = depthAndOrder;
605
+ decodeRenderOrderRgba(depthAndOrder) { return this.decodeUint8(depthAndOrder, 16); }
606
+ decodeUint8(rgba32, basis) {
607
+ this._scratchUint32Array[0] = rgba32;
579
608
  const encByte = this._scratchUint8Array[0];
580
609
  const enc = encByte / 255.0;
581
- const dec = Math.floor(16.0 * enc + 0.5);
610
+ const dec = Math.floor(basis * enc + 0.5);
582
611
  return dec;
583
612
  }
584
613
  _invalidPixelData = new Pixel.Data();
@@ -630,6 +659,28 @@ class PixelBuffer {
630
659
  }
631
660
  }
632
661
  }
662
+ let contour;
663
+ if (this._contours) {
664
+ const contour32 = this.getPixel32(this._contours.data, index);
665
+ if (contour32) { // undefined means out of bounds; zero means not a contour.
666
+ const groupIndexAndType = this.decodeUint8(contour32, 32);
667
+ const groupIndex = groupIndexAndType & ~(8 | 16);
668
+ const group = this._contours.display.groups[groupIndex];
669
+ if (group) {
670
+ const elevationFraction = this.decodeDepthRgba(contour32);
671
+ let elevation = elevationFraction * (this._contours.zHigh - this._contours.zLow) + this._contours.zLow;
672
+ // The shader rounds to the nearest contour elevation using single-precision arithmetic.
673
+ // Re-round here using double-precision to get closer.
674
+ const interval = group.contourDef.minorInterval;
675
+ elevation = (elevation >= 0 ? Math.floor((elevation + interval / 2) / interval) : Math.ceil((elevation - interval / 2) / interval)) * interval;
676
+ contour = {
677
+ group,
678
+ elevation,
679
+ isMajor: groupIndexAndType > 15,
680
+ };
681
+ }
682
+ }
683
+ }
633
684
  let featureTable, iModel, transformToIModel, tileId, viewAttachmentId, inSectionDrawingAttachment;
634
685
  if (undefined !== batchInfo) {
635
686
  featureTable = batchInfo.featureTable;
@@ -650,6 +701,7 @@ class PixelBuffer {
650
701
  tileId,
651
702
  viewAttachmentId,
652
703
  inSectionDrawingAttachment,
704
+ contour,
653
705
  });
654
706
  }
655
707
  constructor(rect, selector, compositor) {
@@ -670,6 +722,10 @@ class PixelBuffer {
670
722
  else
671
723
  this._selector &= ~Pixel.Selector.Feature;
672
724
  }
725
+ // Note: readContours is a no-op unless contours are actually being drawn.
726
+ if (Pixel.Selector.None !== (selector & Pixel.Selector.Contours)) {
727
+ this._contours = compositor.readContours(rect);
728
+ }
673
729
  }
674
730
  get isEmpty() { return Pixel.Selector.None === this._selector; }
675
731
  static create(rect, selector, compositor) {
@@ -1353,7 +1409,26 @@ class Compositor extends SceneCompositor {
1353
1409
  readPixels(rect, selector) {
1354
1410
  return PixelBuffer.create(rect, selector, this);
1355
1411
  }
1356
- readDepthAndOrder(rect) { return this.readFrameBuffer(rect, this._fbos.depthAndOrder); }
1412
+ readDepthAndOrder(rect) {
1413
+ return this.readFrameBuffer(rect, this._fbos.depthAndOrder);
1414
+ }
1415
+ readContours(rect) {
1416
+ // Are we actually drawing any contours? If not, don't bother reading an array of all zeroes off the GPU.
1417
+ const contours = this.target.plan.contours;
1418
+ if (!contours || !contours.displayContours || contours.groups.length === 0) {
1419
+ return undefined;
1420
+ }
1421
+ const info = this.readFrameBuffer(rect, this._fbos.contours);
1422
+ if (!info) {
1423
+ return undefined;
1424
+ }
1425
+ return {
1426
+ data: new Uint32Array(info.buffer),
1427
+ display: contours,
1428
+ zLow: this.target.uniforms.frustum.worldFrustumZRange[0],
1429
+ zHigh: this.target.uniforms.frustum.worldFrustumZRange[1],
1430
+ };
1431
+ }
1357
1432
  readFeatureIds(rect) {
1358
1433
  const tex = this._textures.featureId;
1359
1434
  if (undefined === tex)