@itwin/core-frontend 3.2.0-dev.5 → 3.2.0-dev.50

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 (966) hide show
  1. package/CHANGELOG.md +60 -1
  2. package/lib/cjs/AccuDraw.d.ts +2 -0
  3. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  4. package/lib/cjs/AccuDraw.js +2 -0
  5. package/lib/cjs/AccuDraw.js.map +1 -1
  6. package/lib/cjs/AccuSnap.d.ts +1 -0
  7. package/lib/cjs/AccuSnap.d.ts.map +1 -1
  8. package/lib/cjs/AccuSnap.js +1 -0
  9. package/lib/cjs/AccuSnap.js.map +1 -1
  10. package/lib/cjs/ApproximateTerrainHeights.d.ts.map +1 -1
  11. package/lib/cjs/ApproximateTerrainHeights.js +4 -2
  12. package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
  13. package/lib/cjs/ApproximateTerrainHeightsProps.d.ts +1 -1
  14. package/lib/cjs/ApproximateTerrainHeightsProps.d.ts.map +1 -1
  15. package/lib/cjs/ApproximateTerrainHeightsProps.js +2 -2
  16. package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -1
  17. package/lib/cjs/AuxCoordSys.d.ts +12 -2
  18. package/lib/cjs/AuxCoordSys.d.ts.map +1 -1
  19. package/lib/cjs/AuxCoordSys.js +12 -2
  20. package/lib/cjs/AuxCoordSys.js.map +1 -1
  21. package/lib/cjs/BingLocation.d.ts +1 -0
  22. package/lib/cjs/BingLocation.d.ts.map +1 -1
  23. package/lib/cjs/BingLocation.js +1 -0
  24. package/lib/cjs/BingLocation.js.map +1 -1
  25. package/lib/cjs/BriefcaseConnection.d.ts +35 -1
  26. package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
  27. package/lib/cjs/BriefcaseConnection.js +52 -1
  28. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  29. package/lib/cjs/CategorySelectorState.d.ts +1 -0
  30. package/lib/cjs/CategorySelectorState.d.ts.map +1 -1
  31. package/lib/cjs/CategorySelectorState.js +1 -0
  32. package/lib/cjs/CategorySelectorState.js.map +1 -1
  33. package/lib/cjs/ChangeFlags.d.ts +1 -0
  34. package/lib/cjs/ChangeFlags.d.ts.map +1 -1
  35. package/lib/cjs/ChangeFlags.js +1 -0
  36. package/lib/cjs/ChangeFlags.js.map +1 -1
  37. package/lib/cjs/ContextRealityModelState.d.ts +1 -0
  38. package/lib/cjs/ContextRealityModelState.d.ts.map +1 -1
  39. package/lib/cjs/ContextRealityModelState.js +1 -0
  40. package/lib/cjs/ContextRealityModelState.js.map +1 -1
  41. package/lib/cjs/CoordSystem.d.ts +1 -0
  42. package/lib/cjs/CoordSystem.d.ts.map +1 -1
  43. package/lib/cjs/CoordSystem.js +1 -0
  44. package/lib/cjs/CoordSystem.js.map +1 -1
  45. package/lib/cjs/DisplayStyleState.d.ts +4 -0
  46. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  47. package/lib/cjs/DisplayStyleState.js +9 -4
  48. package/lib/cjs/DisplayStyleState.js.map +1 -1
  49. package/lib/cjs/DrawingViewState.d.ts +5 -2
  50. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  51. package/lib/cjs/DrawingViewState.js +34 -3
  52. package/lib/cjs/DrawingViewState.js.map +1 -1
  53. package/lib/cjs/ElementLocateManager.d.ts +23 -5
  54. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  55. package/lib/cjs/ElementLocateManager.js +19 -4
  56. package/lib/cjs/ElementLocateManager.js.map +1 -1
  57. package/lib/cjs/EmphasizeElements.d.ts +1 -0
  58. package/lib/cjs/EmphasizeElements.d.ts.map +1 -1
  59. package/lib/cjs/EmphasizeElements.js +1 -0
  60. package/lib/cjs/EmphasizeElements.js.map +1 -1
  61. package/lib/cjs/EntityState.d.ts +2 -0
  62. package/lib/cjs/EntityState.d.ts.map +1 -1
  63. package/lib/cjs/EntityState.js +2 -0
  64. package/lib/cjs/EntityState.js.map +1 -1
  65. package/lib/cjs/FeatureOverrideProvider.d.ts +1 -0
  66. package/lib/cjs/FeatureOverrideProvider.d.ts.map +1 -1
  67. package/lib/cjs/FeatureOverrideProvider.js.map +1 -1
  68. package/lib/cjs/FlashSettings.d.ts +3 -0
  69. package/lib/cjs/FlashSettings.d.ts.map +1 -1
  70. package/lib/cjs/FlashSettings.js +2 -0
  71. package/lib/cjs/FlashSettings.js.map +1 -1
  72. package/lib/cjs/FrontendHubAccess.d.ts +4 -1
  73. package/lib/cjs/FrontendHubAccess.d.ts.map +1 -1
  74. package/lib/cjs/FrontendHubAccess.js.map +1 -1
  75. package/lib/cjs/FrontendLoggerCategory.d.ts +1 -0
  76. package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
  77. package/lib/cjs/FrontendLoggerCategory.js +1 -0
  78. package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
  79. package/lib/cjs/FrustumAnimator.d.ts +1 -0
  80. package/lib/cjs/FrustumAnimator.d.ts.map +1 -1
  81. package/lib/cjs/FrustumAnimator.js +1 -0
  82. package/lib/cjs/FrustumAnimator.js.map +1 -1
  83. package/lib/cjs/FuzzySearch.d.ts +1 -0
  84. package/lib/cjs/FuzzySearch.d.ts.map +1 -1
  85. package/lib/cjs/FuzzySearch.js.map +1 -1
  86. package/lib/cjs/GlobeAnimator.d.ts +1 -0
  87. package/lib/cjs/GlobeAnimator.d.ts.map +1 -1
  88. package/lib/cjs/GlobeAnimator.js +1 -0
  89. package/lib/cjs/GlobeAnimator.js.map +1 -1
  90. package/lib/cjs/HitDetail.d.ts +26 -5
  91. package/lib/cjs/HitDetail.d.ts.map +1 -1
  92. package/lib/cjs/HitDetail.js +26 -5
  93. package/lib/cjs/HitDetail.js.map +1 -1
  94. package/lib/cjs/IModelApp.d.ts +9 -0
  95. package/lib/cjs/IModelApp.d.ts.map +1 -1
  96. package/lib/cjs/IModelApp.js +38 -23
  97. package/lib/cjs/IModelApp.js.map +1 -1
  98. package/lib/cjs/IModelConnection.d.ts +16 -4
  99. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  100. package/lib/cjs/IModelConnection.js +34 -5
  101. package/lib/cjs/IModelConnection.js.map +1 -1
  102. package/lib/cjs/ImageUtil.d.ts +15 -2
  103. package/lib/cjs/ImageUtil.d.ts.map +1 -1
  104. package/lib/cjs/ImageUtil.js +19 -4
  105. package/lib/cjs/ImageUtil.js.map +1 -1
  106. package/lib/cjs/IpcApp.d.ts +1 -0
  107. package/lib/cjs/IpcApp.d.ts.map +1 -1
  108. package/lib/cjs/IpcApp.js +1 -0
  109. package/lib/cjs/IpcApp.js.map +1 -1
  110. package/lib/cjs/MarginPercent.d.ts +1 -0
  111. package/lib/cjs/MarginPercent.d.ts.map +1 -1
  112. package/lib/cjs/MarginPercent.js +1 -0
  113. package/lib/cjs/MarginPercent.js.map +1 -1
  114. package/lib/cjs/Marker.d.ts +16 -3
  115. package/lib/cjs/Marker.d.ts.map +1 -1
  116. package/lib/cjs/Marker.js +3 -0
  117. package/lib/cjs/Marker.js.map +1 -1
  118. package/lib/cjs/ModelSelectorState.d.ts +1 -0
  119. package/lib/cjs/ModelSelectorState.d.ts.map +1 -1
  120. package/lib/cjs/ModelSelectorState.js +1 -0
  121. package/lib/cjs/ModelSelectorState.js.map +1 -1
  122. package/lib/cjs/ModelState.d.ts +10 -0
  123. package/lib/cjs/ModelState.d.ts.map +1 -1
  124. package/lib/cjs/ModelState.js +10 -0
  125. package/lib/cjs/ModelState.js.map +1 -1
  126. package/lib/cjs/NotificationManager.d.ts +11 -0
  127. package/lib/cjs/NotificationManager.d.ts.map +1 -1
  128. package/lib/cjs/NotificationManager.js +10 -0
  129. package/lib/cjs/NotificationManager.js.map +1 -1
  130. package/lib/cjs/PerModelCategoryVisibility.d.ts +1 -0
  131. package/lib/cjs/PerModelCategoryVisibility.d.ts.map +1 -1
  132. package/lib/cjs/PerModelCategoryVisibility.js +1 -0
  133. package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
  134. package/lib/cjs/SelectionSet.d.ts +7 -0
  135. package/lib/cjs/SelectionSet.d.ts.map +1 -1
  136. package/lib/cjs/SelectionSet.js +3 -0
  137. package/lib/cjs/SelectionSet.js.map +1 -1
  138. package/lib/cjs/SheetViewState.d.ts +6 -5
  139. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  140. package/lib/cjs/SheetViewState.js +58 -6
  141. package/lib/cjs/SheetViewState.js.map +1 -1
  142. package/lib/cjs/SpatialViewState.d.ts +7 -2
  143. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  144. package/lib/cjs/SpatialViewState.js +17 -3
  145. package/lib/cjs/SpatialViewState.js.map +1 -1
  146. package/lib/cjs/Sprites.d.ts +3 -0
  147. package/lib/cjs/Sprites.d.ts.map +1 -1
  148. package/lib/cjs/Sprites.js +3 -0
  149. package/lib/cjs/Sprites.js.map +1 -1
  150. package/lib/cjs/StandardView.d.ts +1 -0
  151. package/lib/cjs/StandardView.d.ts.map +1 -1
  152. package/lib/cjs/StandardView.js +1 -0
  153. package/lib/cjs/StandardView.js.map +1 -1
  154. package/lib/cjs/SubCategoriesCache.d.ts +14 -7
  155. package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
  156. package/lib/cjs/SubCategoriesCache.js +36 -8
  157. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  158. package/lib/cjs/TentativePoint.d.ts +4 -1
  159. package/lib/cjs/TentativePoint.d.ts.map +1 -1
  160. package/lib/cjs/TentativePoint.js +4 -1
  161. package/lib/cjs/TentativePoint.js.map +1 -1
  162. package/lib/cjs/Tiles.d.ts +1 -0
  163. package/lib/cjs/Tiles.d.ts.map +1 -1
  164. package/lib/cjs/Tiles.js +1 -0
  165. package/lib/cjs/Tiles.js.map +1 -1
  166. package/lib/cjs/ViewAnimation.d.ts +6 -0
  167. package/lib/cjs/ViewAnimation.d.ts.map +1 -1
  168. package/lib/cjs/ViewAnimation.js.map +1 -1
  169. package/lib/cjs/ViewCreator2d.d.ts +2 -0
  170. package/lib/cjs/ViewCreator2d.d.ts.map +1 -1
  171. package/lib/cjs/ViewCreator2d.js +1 -0
  172. package/lib/cjs/ViewCreator2d.js.map +1 -1
  173. package/lib/cjs/ViewCreator3d.d.ts +2 -8
  174. package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
  175. package/lib/cjs/ViewCreator3d.js +12 -38
  176. package/lib/cjs/ViewCreator3d.js.map +1 -1
  177. package/lib/cjs/ViewGlobalLocation.d.ts +3 -0
  178. package/lib/cjs/ViewGlobalLocation.d.ts.map +1 -1
  179. package/lib/cjs/ViewGlobalLocation.js +1 -0
  180. package/lib/cjs/ViewGlobalLocation.js.map +1 -1
  181. package/lib/cjs/ViewManager.d.ts +3 -0
  182. package/lib/cjs/ViewManager.d.ts.map +1 -1
  183. package/lib/cjs/ViewManager.js +2 -0
  184. package/lib/cjs/ViewManager.js.map +1 -1
  185. package/lib/cjs/ViewPose.d.ts +1 -0
  186. package/lib/cjs/ViewPose.d.ts.map +1 -1
  187. package/lib/cjs/ViewPose.js +1 -0
  188. package/lib/cjs/ViewPose.js.map +1 -1
  189. package/lib/cjs/ViewRect.d.ts +1 -0
  190. package/lib/cjs/ViewRect.d.ts.map +1 -1
  191. package/lib/cjs/ViewRect.js +1 -0
  192. package/lib/cjs/ViewRect.js.map +1 -1
  193. package/lib/cjs/ViewState.d.ts +17 -2
  194. package/lib/cjs/ViewState.d.ts.map +1 -1
  195. package/lib/cjs/ViewState.js +40 -9
  196. package/lib/cjs/ViewState.js.map +1 -1
  197. package/lib/cjs/ViewStatus.d.ts +1 -0
  198. package/lib/cjs/ViewStatus.d.ts.map +1 -1
  199. package/lib/cjs/ViewStatus.js +1 -0
  200. package/lib/cjs/ViewStatus.js.map +1 -1
  201. package/lib/cjs/ViewingSpace.d.ts +1 -0
  202. package/lib/cjs/ViewingSpace.d.ts.map +1 -1
  203. package/lib/cjs/ViewingSpace.js +1 -0
  204. package/lib/cjs/ViewingSpace.js.map +1 -1
  205. package/lib/cjs/Viewport.d.ts.map +1 -1
  206. package/lib/cjs/Viewport.js +5 -1
  207. package/lib/cjs/Viewport.js.map +1 -1
  208. package/lib/cjs/core-frontend.d.ts +6 -5
  209. package/lib/cjs/core-frontend.d.ts.map +1 -1
  210. package/lib/cjs/core-frontend.js +7 -5
  211. package/lib/cjs/core-frontend.js.map +1 -1
  212. package/lib/cjs/extension/Extension.d.ts +22 -3
  213. package/lib/cjs/extension/Extension.d.ts.map +1 -1
  214. package/lib/cjs/extension/Extension.js +0 -8
  215. package/lib/cjs/extension/Extension.js.map +1 -1
  216. package/lib/cjs/extension/ExtensionAdmin.d.ts +1 -3
  217. package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -1
  218. package/lib/cjs/extension/ExtensionAdmin.js +1 -4
  219. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  220. package/lib/cjs/extension/ExtensionRuntime.js +231 -59
  221. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  222. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  223. package/lib/cjs/quantity-formatting/QuantityFormatter.js +2 -1
  224. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  225. package/lib/cjs/render/CanvasDecoration.d.ts +2 -0
  226. package/lib/cjs/render/CanvasDecoration.d.ts.map +1 -1
  227. package/lib/cjs/render/CanvasDecoration.js.map +1 -1
  228. package/lib/cjs/render/Decorations.d.ts +1 -0
  229. package/lib/cjs/render/Decorations.d.ts.map +1 -1
  230. package/lib/cjs/render/Decorations.js +1 -0
  231. package/lib/cjs/render/Decorations.js.map +1 -1
  232. package/lib/cjs/render/FeatureSymbology.d.ts +1 -0
  233. package/lib/cjs/render/FeatureSymbology.d.ts.map +1 -1
  234. package/lib/cjs/render/FeatureSymbology.js +1 -0
  235. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  236. package/lib/cjs/render/GraphicBranch.d.ts +2 -0
  237. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  238. package/lib/cjs/render/GraphicBranch.js +1 -0
  239. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  240. package/lib/cjs/render/GraphicBuilder.d.ts +8 -0
  241. package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
  242. package/lib/cjs/render/GraphicBuilder.js +2 -0
  243. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  244. package/lib/cjs/render/GraphicPrimitive.d.ts +14 -0
  245. package/lib/cjs/render/GraphicPrimitive.d.ts.map +1 -1
  246. package/lib/cjs/render/GraphicPrimitive.js.map +1 -1
  247. package/lib/cjs/render/ParticleCollectionBuilder.d.ts +3 -0
  248. package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
  249. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  250. package/lib/cjs/render/Pixel.d.ts +1 -0
  251. package/lib/cjs/render/Pixel.d.ts.map +1 -1
  252. package/lib/cjs/render/Pixel.js +1 -0
  253. package/lib/cjs/render/Pixel.js.map +1 -1
  254. package/lib/cjs/render/RenderClipVolume.d.ts +1 -0
  255. package/lib/cjs/render/RenderClipVolume.d.ts.map +1 -1
  256. package/lib/cjs/render/RenderClipVolume.js +1 -0
  257. package/lib/cjs/render/RenderClipVolume.js.map +1 -1
  258. package/lib/cjs/render/RenderGraphic.d.ts +3 -0
  259. package/lib/cjs/render/RenderGraphic.d.ts.map +1 -1
  260. package/lib/cjs/render/RenderGraphic.js +2 -0
  261. package/lib/cjs/render/RenderGraphic.js.map +1 -1
  262. package/lib/cjs/render/RenderSystem.d.ts +1 -0
  263. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  264. package/lib/cjs/render/RenderSystem.js +1 -0
  265. package/lib/cjs/render/RenderSystem.js.map +1 -1
  266. package/lib/cjs/render/RenderTexture.d.ts +7 -0
  267. package/lib/cjs/render/RenderTexture.d.ts.map +1 -1
  268. package/lib/cjs/render/RenderTexture.js.map +1 -1
  269. package/lib/cjs/render/Scene.d.ts +1 -0
  270. package/lib/cjs/render/Scene.d.ts.map +1 -1
  271. package/lib/cjs/render/Scene.js +1 -0
  272. package/lib/cjs/render/Scene.js.map +1 -1
  273. package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts +10 -0
  274. package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
  275. package/lib/cjs/render/ScreenSpaceEffectBuilder.js +2 -0
  276. package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
  277. package/lib/cjs/render/primitives/VertexTable.d.ts +1 -1
  278. package/lib/cjs/render/primitives/VertexTable.js +30 -2
  279. package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
  280. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  281. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js +7 -3
  282. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  283. package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
  284. package/lib/cjs/render/webgl/DrawCommand.js +2 -1
  285. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  286. package/lib/cjs/render/webgl/RealityMesh.d.ts +1 -0
  287. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  288. package/lib/cjs/render/webgl/RealityMesh.js +1 -0
  289. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  290. package/lib/cjs/render/webgl/ShaderBuilder.d.ts +5 -4
  291. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  292. package/lib/cjs/render/webgl/ShaderBuilder.js +7 -6
  293. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  294. package/lib/cjs/render/webgl/System.d.ts +1 -1
  295. package/lib/cjs/render/webgl/Target.d.ts +6 -1
  296. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  297. package/lib/cjs/render/webgl/Target.js +64 -13
  298. package/lib/cjs/render/webgl/Target.js.map +1 -1
  299. package/lib/cjs/render/webgl/Technique.d.ts +4 -2
  300. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  301. package/lib/cjs/render/webgl/Technique.js +148 -120
  302. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  303. package/lib/cjs/render/webgl/TechniqueFlags.d.ts +7 -3
  304. package/lib/cjs/render/webgl/TechniqueFlags.d.ts.map +1 -1
  305. package/lib/cjs/render/webgl/TechniqueFlags.js +17 -4
  306. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  307. package/lib/cjs/render/webgl/glsl/Animation.d.ts.map +1 -1
  308. package/lib/cjs/render/webgl/glsl/Animation.js +2 -0
  309. package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
  310. package/lib/cjs/render/webgl/glsl/Color.d.ts.map +1 -1
  311. package/lib/cjs/render/webgl/glsl/Color.js +8 -7
  312. package/lib/cjs/render/webgl/glsl/Color.js.map +1 -1
  313. package/lib/cjs/render/webgl/glsl/Decode.d.ts +2 -1
  314. package/lib/cjs/render/webgl/glsl/Decode.d.ts.map +1 -1
  315. package/lib/cjs/render/webgl/glsl/Decode.js +16 -2
  316. package/lib/cjs/render/webgl/glsl/Decode.js.map +1 -1
  317. package/lib/cjs/render/webgl/glsl/Edge.d.ts +2 -2
  318. package/lib/cjs/render/webgl/glsl/Edge.d.ts.map +1 -1
  319. package/lib/cjs/render/webgl/glsl/Edge.js +6 -19
  320. package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
  321. package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  322. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +0 -2
  323. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  324. package/lib/cjs/render/webgl/glsl/PointString.d.ts +3 -3
  325. package/lib/cjs/render/webgl/glsl/PointString.d.ts.map +1 -1
  326. package/lib/cjs/render/webgl/glsl/PointString.js +6 -6
  327. package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
  328. package/lib/cjs/render/webgl/glsl/Polyline.d.ts +3 -3
  329. package/lib/cjs/render/webgl/glsl/Polyline.d.ts.map +1 -1
  330. package/lib/cjs/render/webgl/glsl/Polyline.js +6 -21
  331. package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
  332. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  333. package/lib/cjs/render/webgl/glsl/RealityMesh.js +1 -3
  334. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  335. package/lib/cjs/render/webgl/glsl/Surface.d.ts +2 -2
  336. package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
  337. package/lib/cjs/render/webgl/glsl/Surface.js +50 -34
  338. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  339. package/lib/cjs/render/webgl/glsl/Vertex.d.ts +3 -3
  340. package/lib/cjs/render/webgl/glsl/Vertex.d.ts.map +1 -1
  341. package/lib/cjs/render/webgl/glsl/Vertex.js +143 -57
  342. package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
  343. package/lib/cjs/tile/DisclosedTileTreeSet.d.ts +2 -0
  344. package/lib/cjs/tile/DisclosedTileTreeSet.d.ts.map +1 -1
  345. package/lib/cjs/tile/DisclosedTileTreeSet.js +1 -0
  346. package/lib/cjs/tile/DisclosedTileTreeSet.js.map +1 -1
  347. package/lib/cjs/tile/IModelTileRequestChannels.d.ts +3 -3
  348. package/lib/cjs/tile/IModelTileRequestChannels.d.ts.map +1 -1
  349. package/lib/cjs/tile/IModelTileRequestChannels.js +7 -11
  350. package/lib/cjs/tile/IModelTileRequestChannels.js.map +1 -1
  351. package/lib/cjs/tile/ImdlReader.d.ts +1 -0
  352. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  353. package/lib/cjs/tile/ImdlReader.js +1 -0
  354. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  355. package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +1 -1
  356. package/lib/cjs/tile/OPCFormatInterpreter.js +1 -2
  357. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
  358. package/lib/cjs/tile/RealityTileLoader.d.ts +1 -1
  359. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  360. package/lib/cjs/tile/RealityTileLoader.js +29 -6
  361. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  362. package/lib/cjs/tile/Tile.d.ts +5 -0
  363. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  364. package/lib/cjs/tile/Tile.js +5 -0
  365. package/lib/cjs/tile/Tile.js.map +1 -1
  366. package/lib/cjs/tile/TileAdmin.d.ts +3 -0
  367. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  368. package/lib/cjs/tile/TileAdmin.js +1 -5
  369. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  370. package/lib/cjs/tile/TileContent.d.ts +1 -0
  371. package/lib/cjs/tile/TileContent.d.ts.map +1 -1
  372. package/lib/cjs/tile/TileContent.js.map +1 -1
  373. package/lib/cjs/tile/TileDrawArgs.d.ts +2 -0
  374. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  375. package/lib/cjs/tile/TileDrawArgs.js +1 -0
  376. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  377. package/lib/cjs/tile/TileParams.d.ts +1 -0
  378. package/lib/cjs/tile/TileParams.d.ts.map +1 -1
  379. package/lib/cjs/tile/TileParams.js.map +1 -1
  380. package/lib/cjs/tile/TileRequest.d.ts +1 -0
  381. package/lib/cjs/tile/TileRequest.d.ts.map +1 -1
  382. package/lib/cjs/tile/TileRequest.js +1 -0
  383. package/lib/cjs/tile/TileRequest.js.map +1 -1
  384. package/lib/cjs/tile/TileRequestChannel.d.ts +2 -0
  385. package/lib/cjs/tile/TileRequestChannel.d.ts.map +1 -1
  386. package/lib/cjs/tile/TileRequestChannel.js +2 -0
  387. package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
  388. package/lib/cjs/tile/TileRequestChannels.d.ts +1 -4
  389. package/lib/cjs/tile/TileRequestChannels.d.ts.map +1 -1
  390. package/lib/cjs/tile/TileRequestChannels.js +2 -6
  391. package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
  392. package/lib/cjs/tile/TileTree.d.ts +2 -0
  393. package/lib/cjs/tile/TileTree.d.ts.map +1 -1
  394. package/lib/cjs/tile/TileTree.js +2 -0
  395. package/lib/cjs/tile/TileTree.js.map +1 -1
  396. package/lib/cjs/tile/TileTreeOwner.d.ts +1 -0
  397. package/lib/cjs/tile/TileTreeOwner.d.ts.map +1 -1
  398. package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
  399. package/lib/cjs/tile/TileTreeParams.d.ts +1 -0
  400. package/lib/cjs/tile/TileTreeParams.d.ts.map +1 -1
  401. package/lib/cjs/tile/TileTreeParams.js.map +1 -1
  402. package/lib/cjs/tile/TileTreeReference.d.ts +2 -0
  403. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  404. package/lib/cjs/tile/TileTreeReference.js +2 -0
  405. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  406. package/lib/cjs/tile/TileTreeSupplier.d.ts +1 -0
  407. package/lib/cjs/tile/TileTreeSupplier.d.ts.map +1 -1
  408. package/lib/cjs/tile/TileTreeSupplier.js.map +1 -1
  409. package/lib/cjs/tile/TileUsageMarker.d.ts +1 -0
  410. package/lib/cjs/tile/TileUsageMarker.d.ts.map +1 -1
  411. package/lib/cjs/tile/TileUsageMarker.js +1 -0
  412. package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
  413. package/lib/cjs/tile/TiledGraphicsProvider.d.ts +1 -0
  414. package/lib/cjs/tile/TiledGraphicsProvider.d.ts.map +1 -1
  415. package/lib/cjs/tile/TiledGraphicsProvider.js.map +1 -1
  416. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  417. package/lib/cjs/tile/map/ArcGisUtilities.js +13 -0
  418. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  419. package/lib/cjs/tile/map/BingElevation.d.ts +1 -0
  420. package/lib/cjs/tile/map/BingElevation.d.ts.map +1 -1
  421. package/lib/cjs/tile/map/BingElevation.js +1 -0
  422. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  423. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +0 -1
  424. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  425. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +12 -10
  426. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  427. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +5 -1
  428. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  429. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  430. package/lib/cjs/tile/map/MapTileTree.js +2 -2
  431. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  432. package/lib/cjs/tile/map/WmsCapabilities.d.ts +3 -2
  433. package/lib/cjs/tile/map/WmsCapabilities.d.ts.map +1 -1
  434. package/lib/cjs/tile/map/WmsCapabilities.js +11 -10
  435. package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
  436. package/lib/cjs/tools/ClipViewTool.d.ts +5 -3
  437. package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
  438. package/lib/cjs/tools/ClipViewTool.js +4 -3
  439. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  440. package/lib/cjs/tools/EditManipulator.d.ts +1 -0
  441. package/lib/cjs/tools/EditManipulator.d.ts.map +1 -1
  442. package/lib/cjs/tools/EditManipulator.js +1 -0
  443. package/lib/cjs/tools/EditManipulator.js.map +1 -1
  444. package/lib/cjs/tools/EventController.d.ts +1 -0
  445. package/lib/cjs/tools/EventController.d.ts.map +1 -1
  446. package/lib/cjs/tools/EventController.js +1 -0
  447. package/lib/cjs/tools/EventController.js.map +1 -1
  448. package/lib/cjs/tools/PrimitiveTool.d.ts +4 -0
  449. package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
  450. package/lib/cjs/tools/PrimitiveTool.js +7 -0
  451. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  452. package/lib/cjs/tools/SelectTool.d.ts +3 -0
  453. package/lib/cjs/tools/SelectTool.d.ts.map +1 -1
  454. package/lib/cjs/tools/SelectTool.js +3 -0
  455. package/lib/cjs/tools/SelectTool.js.map +1 -1
  456. package/lib/cjs/tools/Tool.d.ts +41 -6
  457. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  458. package/lib/cjs/tools/Tool.js +27 -4
  459. package/lib/cjs/tools/Tool.js.map +1 -1
  460. package/lib/cjs/tools/ToolAdmin.d.ts +16 -23
  461. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  462. package/lib/cjs/tools/ToolAdmin.js +43 -20
  463. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  464. package/lib/cjs/tools/ToolAssistance.d.ts +7 -0
  465. package/lib/cjs/tools/ToolAssistance.d.ts.map +1 -1
  466. package/lib/cjs/tools/ToolAssistance.js +3 -0
  467. package/lib/cjs/tools/ToolAssistance.js.map +1 -1
  468. package/lib/cjs/tools/ToolSettings.d.ts +3 -0
  469. package/lib/cjs/tools/ToolSettings.d.ts.map +1 -1
  470. package/lib/cjs/tools/ToolSettings.js +3 -0
  471. package/lib/cjs/tools/ToolSettings.js.map +1 -1
  472. package/lib/cjs/tools/ViewTool.d.ts +3 -1
  473. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  474. package/lib/cjs/tools/ViewTool.js +9 -5
  475. package/lib/cjs/tools/ViewTool.js.map +1 -1
  476. package/lib/esm/AccuDraw.d.ts +2 -0
  477. package/lib/esm/AccuDraw.d.ts.map +1 -1
  478. package/lib/esm/AccuDraw.js +2 -0
  479. package/lib/esm/AccuDraw.js.map +1 -1
  480. package/lib/esm/AccuSnap.d.ts +1 -0
  481. package/lib/esm/AccuSnap.d.ts.map +1 -1
  482. package/lib/esm/AccuSnap.js +1 -0
  483. package/lib/esm/AccuSnap.js.map +1 -1
  484. package/lib/esm/ApproximateTerrainHeights.d.ts.map +1 -1
  485. package/lib/esm/ApproximateTerrainHeights.js +4 -2
  486. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  487. package/lib/esm/ApproximateTerrainHeightsProps.d.ts +1 -1
  488. package/lib/esm/ApproximateTerrainHeightsProps.d.ts.map +1 -1
  489. package/lib/esm/ApproximateTerrainHeightsProps.js +1 -1
  490. package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -1
  491. package/lib/esm/AuxCoordSys.d.ts +12 -2
  492. package/lib/esm/AuxCoordSys.d.ts.map +1 -1
  493. package/lib/esm/AuxCoordSys.js +12 -2
  494. package/lib/esm/AuxCoordSys.js.map +1 -1
  495. package/lib/esm/BingLocation.d.ts +1 -0
  496. package/lib/esm/BingLocation.d.ts.map +1 -1
  497. package/lib/esm/BingLocation.js +1 -0
  498. package/lib/esm/BingLocation.js.map +1 -1
  499. package/lib/esm/BriefcaseConnection.d.ts +35 -1
  500. package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
  501. package/lib/esm/BriefcaseConnection.js +50 -0
  502. package/lib/esm/BriefcaseConnection.js.map +1 -1
  503. package/lib/esm/CategorySelectorState.d.ts +1 -0
  504. package/lib/esm/CategorySelectorState.d.ts.map +1 -1
  505. package/lib/esm/CategorySelectorState.js +1 -0
  506. package/lib/esm/CategorySelectorState.js.map +1 -1
  507. package/lib/esm/ChangeFlags.d.ts +1 -0
  508. package/lib/esm/ChangeFlags.d.ts.map +1 -1
  509. package/lib/esm/ChangeFlags.js +1 -0
  510. package/lib/esm/ChangeFlags.js.map +1 -1
  511. package/lib/esm/ContextRealityModelState.d.ts +1 -0
  512. package/lib/esm/ContextRealityModelState.d.ts.map +1 -1
  513. package/lib/esm/ContextRealityModelState.js +1 -0
  514. package/lib/esm/ContextRealityModelState.js.map +1 -1
  515. package/lib/esm/CoordSystem.d.ts +1 -0
  516. package/lib/esm/CoordSystem.d.ts.map +1 -1
  517. package/lib/esm/CoordSystem.js +1 -0
  518. package/lib/esm/CoordSystem.js.map +1 -1
  519. package/lib/esm/DisplayStyleState.d.ts +4 -0
  520. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  521. package/lib/esm/DisplayStyleState.js +9 -4
  522. package/lib/esm/DisplayStyleState.js.map +1 -1
  523. package/lib/esm/DrawingViewState.d.ts +5 -2
  524. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  525. package/lib/esm/DrawingViewState.js +34 -3
  526. package/lib/esm/DrawingViewState.js.map +1 -1
  527. package/lib/esm/ElementLocateManager.d.ts +23 -5
  528. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  529. package/lib/esm/ElementLocateManager.js +19 -4
  530. package/lib/esm/ElementLocateManager.js.map +1 -1
  531. package/lib/esm/EmphasizeElements.d.ts +1 -0
  532. package/lib/esm/EmphasizeElements.d.ts.map +1 -1
  533. package/lib/esm/EmphasizeElements.js +1 -0
  534. package/lib/esm/EmphasizeElements.js.map +1 -1
  535. package/lib/esm/EntityState.d.ts +2 -0
  536. package/lib/esm/EntityState.d.ts.map +1 -1
  537. package/lib/esm/EntityState.js +2 -0
  538. package/lib/esm/EntityState.js.map +1 -1
  539. package/lib/esm/FeatureOverrideProvider.d.ts +1 -0
  540. package/lib/esm/FeatureOverrideProvider.d.ts.map +1 -1
  541. package/lib/esm/FeatureOverrideProvider.js.map +1 -1
  542. package/lib/esm/FlashSettings.d.ts +3 -0
  543. package/lib/esm/FlashSettings.d.ts.map +1 -1
  544. package/lib/esm/FlashSettings.js +2 -0
  545. package/lib/esm/FlashSettings.js.map +1 -1
  546. package/lib/esm/FrontendHubAccess.d.ts +4 -1
  547. package/lib/esm/FrontendHubAccess.d.ts.map +1 -1
  548. package/lib/esm/FrontendHubAccess.js.map +1 -1
  549. package/lib/esm/FrontendLoggerCategory.d.ts +1 -0
  550. package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
  551. package/lib/esm/FrontendLoggerCategory.js +1 -0
  552. package/lib/esm/FrontendLoggerCategory.js.map +1 -1
  553. package/lib/esm/FrustumAnimator.d.ts +1 -0
  554. package/lib/esm/FrustumAnimator.d.ts.map +1 -1
  555. package/lib/esm/FrustumAnimator.js +1 -0
  556. package/lib/esm/FrustumAnimator.js.map +1 -1
  557. package/lib/esm/FuzzySearch.d.ts +1 -0
  558. package/lib/esm/FuzzySearch.d.ts.map +1 -1
  559. package/lib/esm/FuzzySearch.js.map +1 -1
  560. package/lib/esm/GlobeAnimator.d.ts +1 -0
  561. package/lib/esm/GlobeAnimator.d.ts.map +1 -1
  562. package/lib/esm/GlobeAnimator.js +1 -0
  563. package/lib/esm/GlobeAnimator.js.map +1 -1
  564. package/lib/esm/HitDetail.d.ts +26 -5
  565. package/lib/esm/HitDetail.d.ts.map +1 -1
  566. package/lib/esm/HitDetail.js +26 -5
  567. package/lib/esm/HitDetail.js.map +1 -1
  568. package/lib/esm/IModelApp.d.ts +9 -0
  569. package/lib/esm/IModelApp.d.ts.map +1 -1
  570. package/lib/esm/IModelApp.js +37 -22
  571. package/lib/esm/IModelApp.js.map +1 -1
  572. package/lib/esm/IModelConnection.d.ts +16 -4
  573. package/lib/esm/IModelConnection.d.ts.map +1 -1
  574. package/lib/esm/IModelConnection.js +35 -6
  575. package/lib/esm/IModelConnection.js.map +1 -1
  576. package/lib/esm/ImageUtil.d.ts +15 -2
  577. package/lib/esm/ImageUtil.d.ts.map +1 -1
  578. package/lib/esm/ImageUtil.js +19 -4
  579. package/lib/esm/ImageUtil.js.map +1 -1
  580. package/lib/esm/IpcApp.d.ts +1 -0
  581. package/lib/esm/IpcApp.d.ts.map +1 -1
  582. package/lib/esm/IpcApp.js +1 -0
  583. package/lib/esm/IpcApp.js.map +1 -1
  584. package/lib/esm/MarginPercent.d.ts +1 -0
  585. package/lib/esm/MarginPercent.d.ts.map +1 -1
  586. package/lib/esm/MarginPercent.js +1 -0
  587. package/lib/esm/MarginPercent.js.map +1 -1
  588. package/lib/esm/Marker.d.ts +16 -3
  589. package/lib/esm/Marker.d.ts.map +1 -1
  590. package/lib/esm/Marker.js +3 -0
  591. package/lib/esm/Marker.js.map +1 -1
  592. package/lib/esm/ModelSelectorState.d.ts +1 -0
  593. package/lib/esm/ModelSelectorState.d.ts.map +1 -1
  594. package/lib/esm/ModelSelectorState.js +1 -0
  595. package/lib/esm/ModelSelectorState.js.map +1 -1
  596. package/lib/esm/ModelState.d.ts +10 -0
  597. package/lib/esm/ModelState.d.ts.map +1 -1
  598. package/lib/esm/ModelState.js +10 -0
  599. package/lib/esm/ModelState.js.map +1 -1
  600. package/lib/esm/NotificationManager.d.ts +11 -0
  601. package/lib/esm/NotificationManager.d.ts.map +1 -1
  602. package/lib/esm/NotificationManager.js +10 -0
  603. package/lib/esm/NotificationManager.js.map +1 -1
  604. package/lib/esm/PerModelCategoryVisibility.d.ts +1 -0
  605. package/lib/esm/PerModelCategoryVisibility.d.ts.map +1 -1
  606. package/lib/esm/PerModelCategoryVisibility.js +1 -0
  607. package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
  608. package/lib/esm/SelectionSet.d.ts +7 -0
  609. package/lib/esm/SelectionSet.d.ts.map +1 -1
  610. package/lib/esm/SelectionSet.js +3 -0
  611. package/lib/esm/SelectionSet.js.map +1 -1
  612. package/lib/esm/SheetViewState.d.ts +6 -5
  613. package/lib/esm/SheetViewState.d.ts.map +1 -1
  614. package/lib/esm/SheetViewState.js +59 -7
  615. package/lib/esm/SheetViewState.js.map +1 -1
  616. package/lib/esm/SpatialViewState.d.ts +7 -2
  617. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  618. package/lib/esm/SpatialViewState.js +18 -4
  619. package/lib/esm/SpatialViewState.js.map +1 -1
  620. package/lib/esm/Sprites.d.ts +3 -0
  621. package/lib/esm/Sprites.d.ts.map +1 -1
  622. package/lib/esm/Sprites.js +3 -0
  623. package/lib/esm/Sprites.js.map +1 -1
  624. package/lib/esm/StandardView.d.ts +1 -0
  625. package/lib/esm/StandardView.d.ts.map +1 -1
  626. package/lib/esm/StandardView.js +1 -0
  627. package/lib/esm/StandardView.js.map +1 -1
  628. package/lib/esm/SubCategoriesCache.d.ts +14 -7
  629. package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
  630. package/lib/esm/SubCategoriesCache.js +37 -9
  631. package/lib/esm/SubCategoriesCache.js.map +1 -1
  632. package/lib/esm/TentativePoint.d.ts +4 -1
  633. package/lib/esm/TentativePoint.d.ts.map +1 -1
  634. package/lib/esm/TentativePoint.js +4 -1
  635. package/lib/esm/TentativePoint.js.map +1 -1
  636. package/lib/esm/Tiles.d.ts +1 -0
  637. package/lib/esm/Tiles.d.ts.map +1 -1
  638. package/lib/esm/Tiles.js +1 -0
  639. package/lib/esm/Tiles.js.map +1 -1
  640. package/lib/esm/ViewAnimation.d.ts +6 -0
  641. package/lib/esm/ViewAnimation.d.ts.map +1 -1
  642. package/lib/esm/ViewAnimation.js.map +1 -1
  643. package/lib/esm/ViewCreator2d.d.ts +2 -0
  644. package/lib/esm/ViewCreator2d.d.ts.map +1 -1
  645. package/lib/esm/ViewCreator2d.js +1 -0
  646. package/lib/esm/ViewCreator2d.js.map +1 -1
  647. package/lib/esm/ViewCreator3d.d.ts +2 -8
  648. package/lib/esm/ViewCreator3d.d.ts.map +1 -1
  649. package/lib/esm/ViewCreator3d.js +12 -38
  650. package/lib/esm/ViewCreator3d.js.map +1 -1
  651. package/lib/esm/ViewGlobalLocation.d.ts +3 -0
  652. package/lib/esm/ViewGlobalLocation.d.ts.map +1 -1
  653. package/lib/esm/ViewGlobalLocation.js +1 -0
  654. package/lib/esm/ViewGlobalLocation.js.map +1 -1
  655. package/lib/esm/ViewManager.d.ts +3 -0
  656. package/lib/esm/ViewManager.d.ts.map +1 -1
  657. package/lib/esm/ViewManager.js +2 -0
  658. package/lib/esm/ViewManager.js.map +1 -1
  659. package/lib/esm/ViewPose.d.ts +1 -0
  660. package/lib/esm/ViewPose.d.ts.map +1 -1
  661. package/lib/esm/ViewPose.js +1 -0
  662. package/lib/esm/ViewPose.js.map +1 -1
  663. package/lib/esm/ViewRect.d.ts +1 -0
  664. package/lib/esm/ViewRect.d.ts.map +1 -1
  665. package/lib/esm/ViewRect.js +1 -0
  666. package/lib/esm/ViewRect.js.map +1 -1
  667. package/lib/esm/ViewState.d.ts +17 -2
  668. package/lib/esm/ViewState.d.ts.map +1 -1
  669. package/lib/esm/ViewState.js +41 -10
  670. package/lib/esm/ViewState.js.map +1 -1
  671. package/lib/esm/ViewStatus.d.ts +1 -0
  672. package/lib/esm/ViewStatus.d.ts.map +1 -1
  673. package/lib/esm/ViewStatus.js +1 -0
  674. package/lib/esm/ViewStatus.js.map +1 -1
  675. package/lib/esm/ViewingSpace.d.ts +1 -0
  676. package/lib/esm/ViewingSpace.d.ts.map +1 -1
  677. package/lib/esm/ViewingSpace.js +1 -0
  678. package/lib/esm/ViewingSpace.js.map +1 -1
  679. package/lib/esm/Viewport.d.ts.map +1 -1
  680. package/lib/esm/Viewport.js +5 -1
  681. package/lib/esm/Viewport.js.map +1 -1
  682. package/lib/esm/core-frontend.d.ts +6 -5
  683. package/lib/esm/core-frontend.d.ts.map +1 -1
  684. package/lib/esm/core-frontend.js +7 -5
  685. package/lib/esm/core-frontend.js.map +1 -1
  686. package/lib/esm/extension/Extension.d.ts +22 -3
  687. package/lib/esm/extension/Extension.d.ts.map +1 -1
  688. package/lib/esm/extension/Extension.js +1 -7
  689. package/lib/esm/extension/Extension.js.map +1 -1
  690. package/lib/esm/extension/ExtensionAdmin.d.ts +1 -3
  691. package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -1
  692. package/lib/esm/extension/ExtensionAdmin.js +1 -4
  693. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  694. package/lib/esm/extension/ExtensionRuntime.js +239 -59
  695. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  696. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  697. package/lib/esm/quantity-formatting/QuantityFormatter.js +3 -2
  698. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  699. package/lib/esm/render/CanvasDecoration.d.ts +2 -0
  700. package/lib/esm/render/CanvasDecoration.d.ts.map +1 -1
  701. package/lib/esm/render/CanvasDecoration.js.map +1 -1
  702. package/lib/esm/render/Decorations.d.ts +1 -0
  703. package/lib/esm/render/Decorations.d.ts.map +1 -1
  704. package/lib/esm/render/Decorations.js +1 -0
  705. package/lib/esm/render/Decorations.js.map +1 -1
  706. package/lib/esm/render/FeatureSymbology.d.ts +1 -0
  707. package/lib/esm/render/FeatureSymbology.d.ts.map +1 -1
  708. package/lib/esm/render/FeatureSymbology.js +1 -0
  709. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  710. package/lib/esm/render/GraphicBranch.d.ts +2 -0
  711. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  712. package/lib/esm/render/GraphicBranch.js +1 -0
  713. package/lib/esm/render/GraphicBranch.js.map +1 -1
  714. package/lib/esm/render/GraphicBuilder.d.ts +8 -0
  715. package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
  716. package/lib/esm/render/GraphicBuilder.js +2 -0
  717. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  718. package/lib/esm/render/GraphicPrimitive.d.ts +14 -0
  719. package/lib/esm/render/GraphicPrimitive.d.ts.map +1 -1
  720. package/lib/esm/render/GraphicPrimitive.js.map +1 -1
  721. package/lib/esm/render/ParticleCollectionBuilder.d.ts +3 -0
  722. package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
  723. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  724. package/lib/esm/render/Pixel.d.ts +1 -0
  725. package/lib/esm/render/Pixel.d.ts.map +1 -1
  726. package/lib/esm/render/Pixel.js +1 -0
  727. package/lib/esm/render/Pixel.js.map +1 -1
  728. package/lib/esm/render/RenderClipVolume.d.ts +1 -0
  729. package/lib/esm/render/RenderClipVolume.d.ts.map +1 -1
  730. package/lib/esm/render/RenderClipVolume.js +1 -0
  731. package/lib/esm/render/RenderClipVolume.js.map +1 -1
  732. package/lib/esm/render/RenderGraphic.d.ts +3 -0
  733. package/lib/esm/render/RenderGraphic.d.ts.map +1 -1
  734. package/lib/esm/render/RenderGraphic.js +2 -0
  735. package/lib/esm/render/RenderGraphic.js.map +1 -1
  736. package/lib/esm/render/RenderSystem.d.ts +1 -0
  737. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  738. package/lib/esm/render/RenderSystem.js +1 -0
  739. package/lib/esm/render/RenderSystem.js.map +1 -1
  740. package/lib/esm/render/RenderTexture.d.ts +7 -0
  741. package/lib/esm/render/RenderTexture.d.ts.map +1 -1
  742. package/lib/esm/render/RenderTexture.js.map +1 -1
  743. package/lib/esm/render/Scene.d.ts +1 -0
  744. package/lib/esm/render/Scene.d.ts.map +1 -1
  745. package/lib/esm/render/Scene.js +1 -0
  746. package/lib/esm/render/Scene.js.map +1 -1
  747. package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts +10 -0
  748. package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
  749. package/lib/esm/render/ScreenSpaceEffectBuilder.js +2 -0
  750. package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
  751. package/lib/esm/render/primitives/VertexTable.d.ts +1 -1
  752. package/lib/esm/render/primitives/VertexTable.js +30 -2
  753. package/lib/esm/render/primitives/VertexTable.js.map +1 -1
  754. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  755. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js +7 -3
  756. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  757. package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
  758. package/lib/esm/render/webgl/DrawCommand.js +2 -1
  759. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  760. package/lib/esm/render/webgl/RealityMesh.d.ts +1 -0
  761. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  762. package/lib/esm/render/webgl/RealityMesh.js +1 -0
  763. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  764. package/lib/esm/render/webgl/ShaderBuilder.d.ts +5 -4
  765. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  766. package/lib/esm/render/webgl/ShaderBuilder.js +7 -6
  767. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  768. package/lib/esm/render/webgl/System.d.ts +1 -1
  769. package/lib/esm/render/webgl/Target.d.ts +6 -1
  770. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  771. package/lib/esm/render/webgl/Target.js +64 -13
  772. package/lib/esm/render/webgl/Target.js.map +1 -1
  773. package/lib/esm/render/webgl/Technique.d.ts +4 -2
  774. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  775. package/lib/esm/render/webgl/Technique.js +148 -120
  776. package/lib/esm/render/webgl/Technique.js.map +1 -1
  777. package/lib/esm/render/webgl/TechniqueFlags.d.ts +7 -3
  778. package/lib/esm/render/webgl/TechniqueFlags.d.ts.map +1 -1
  779. package/lib/esm/render/webgl/TechniqueFlags.js +17 -4
  780. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  781. package/lib/esm/render/webgl/glsl/Animation.d.ts.map +1 -1
  782. package/lib/esm/render/webgl/glsl/Animation.js +2 -0
  783. package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
  784. package/lib/esm/render/webgl/glsl/Color.d.ts.map +1 -1
  785. package/lib/esm/render/webgl/glsl/Color.js +8 -7
  786. package/lib/esm/render/webgl/glsl/Color.js.map +1 -1
  787. package/lib/esm/render/webgl/glsl/Decode.d.ts +2 -1
  788. package/lib/esm/render/webgl/glsl/Decode.d.ts.map +1 -1
  789. package/lib/esm/render/webgl/glsl/Decode.js +15 -1
  790. package/lib/esm/render/webgl/glsl/Decode.js.map +1 -1
  791. package/lib/esm/render/webgl/glsl/Edge.d.ts +2 -2
  792. package/lib/esm/render/webgl/glsl/Edge.d.ts.map +1 -1
  793. package/lib/esm/render/webgl/glsl/Edge.js +7 -20
  794. package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
  795. package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  796. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +1 -3
  797. package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  798. package/lib/esm/render/webgl/glsl/PointString.d.ts +3 -3
  799. package/lib/esm/render/webgl/glsl/PointString.d.ts.map +1 -1
  800. package/lib/esm/render/webgl/glsl/PointString.js +6 -6
  801. package/lib/esm/render/webgl/glsl/PointString.js.map +1 -1
  802. package/lib/esm/render/webgl/glsl/Polyline.d.ts +3 -3
  803. package/lib/esm/render/webgl/glsl/Polyline.d.ts.map +1 -1
  804. package/lib/esm/render/webgl/glsl/Polyline.js +7 -22
  805. package/lib/esm/render/webgl/glsl/Polyline.js.map +1 -1
  806. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  807. package/lib/esm/render/webgl/glsl/RealityMesh.js +1 -3
  808. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  809. package/lib/esm/render/webgl/glsl/Surface.d.ts +2 -2
  810. package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
  811. package/lib/esm/render/webgl/glsl/Surface.js +51 -35
  812. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  813. package/lib/esm/render/webgl/glsl/Vertex.d.ts +3 -3
  814. package/lib/esm/render/webgl/glsl/Vertex.d.ts.map +1 -1
  815. package/lib/esm/render/webgl/glsl/Vertex.js +142 -56
  816. package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
  817. package/lib/esm/tile/DisclosedTileTreeSet.d.ts +2 -0
  818. package/lib/esm/tile/DisclosedTileTreeSet.d.ts.map +1 -1
  819. package/lib/esm/tile/DisclosedTileTreeSet.js +1 -0
  820. package/lib/esm/tile/DisclosedTileTreeSet.js.map +1 -1
  821. package/lib/esm/tile/IModelTileRequestChannels.d.ts +3 -3
  822. package/lib/esm/tile/IModelTileRequestChannels.d.ts.map +1 -1
  823. package/lib/esm/tile/IModelTileRequestChannels.js +7 -11
  824. package/lib/esm/tile/IModelTileRequestChannels.js.map +1 -1
  825. package/lib/esm/tile/ImdlReader.d.ts +1 -0
  826. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  827. package/lib/esm/tile/ImdlReader.js +1 -0
  828. package/lib/esm/tile/ImdlReader.js.map +1 -1
  829. package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +1 -1
  830. package/lib/esm/tile/OPCFormatInterpreter.js +2 -3
  831. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
  832. package/lib/esm/tile/RealityTileLoader.d.ts +1 -1
  833. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  834. package/lib/esm/tile/RealityTileLoader.js +30 -7
  835. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  836. package/lib/esm/tile/Tile.d.ts +5 -0
  837. package/lib/esm/tile/Tile.d.ts.map +1 -1
  838. package/lib/esm/tile/Tile.js +5 -0
  839. package/lib/esm/tile/Tile.js.map +1 -1
  840. package/lib/esm/tile/TileAdmin.d.ts +3 -0
  841. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  842. package/lib/esm/tile/TileAdmin.js +1 -5
  843. package/lib/esm/tile/TileAdmin.js.map +1 -1
  844. package/lib/esm/tile/TileContent.d.ts +1 -0
  845. package/lib/esm/tile/TileContent.d.ts.map +1 -1
  846. package/lib/esm/tile/TileContent.js.map +1 -1
  847. package/lib/esm/tile/TileDrawArgs.d.ts +2 -0
  848. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  849. package/lib/esm/tile/TileDrawArgs.js +1 -0
  850. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  851. package/lib/esm/tile/TileParams.d.ts +1 -0
  852. package/lib/esm/tile/TileParams.d.ts.map +1 -1
  853. package/lib/esm/tile/TileParams.js.map +1 -1
  854. package/lib/esm/tile/TileRequest.d.ts +1 -0
  855. package/lib/esm/tile/TileRequest.d.ts.map +1 -1
  856. package/lib/esm/tile/TileRequest.js +1 -0
  857. package/lib/esm/tile/TileRequest.js.map +1 -1
  858. package/lib/esm/tile/TileRequestChannel.d.ts +2 -0
  859. package/lib/esm/tile/TileRequestChannel.d.ts.map +1 -1
  860. package/lib/esm/tile/TileRequestChannel.js +2 -0
  861. package/lib/esm/tile/TileRequestChannel.js.map +1 -1
  862. package/lib/esm/tile/TileRequestChannels.d.ts +1 -4
  863. package/lib/esm/tile/TileRequestChannels.d.ts.map +1 -1
  864. package/lib/esm/tile/TileRequestChannels.js +2 -6
  865. package/lib/esm/tile/TileRequestChannels.js.map +1 -1
  866. package/lib/esm/tile/TileTree.d.ts +2 -0
  867. package/lib/esm/tile/TileTree.d.ts.map +1 -1
  868. package/lib/esm/tile/TileTree.js +2 -0
  869. package/lib/esm/tile/TileTree.js.map +1 -1
  870. package/lib/esm/tile/TileTreeOwner.d.ts +1 -0
  871. package/lib/esm/tile/TileTreeOwner.d.ts.map +1 -1
  872. package/lib/esm/tile/TileTreeOwner.js.map +1 -1
  873. package/lib/esm/tile/TileTreeParams.d.ts +1 -0
  874. package/lib/esm/tile/TileTreeParams.d.ts.map +1 -1
  875. package/lib/esm/tile/TileTreeParams.js.map +1 -1
  876. package/lib/esm/tile/TileTreeReference.d.ts +2 -0
  877. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  878. package/lib/esm/tile/TileTreeReference.js +2 -0
  879. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  880. package/lib/esm/tile/TileTreeSupplier.d.ts +1 -0
  881. package/lib/esm/tile/TileTreeSupplier.d.ts.map +1 -1
  882. package/lib/esm/tile/TileTreeSupplier.js.map +1 -1
  883. package/lib/esm/tile/TileUsageMarker.d.ts +1 -0
  884. package/lib/esm/tile/TileUsageMarker.d.ts.map +1 -1
  885. package/lib/esm/tile/TileUsageMarker.js +1 -0
  886. package/lib/esm/tile/TileUsageMarker.js.map +1 -1
  887. package/lib/esm/tile/TiledGraphicsProvider.d.ts +1 -0
  888. package/lib/esm/tile/TiledGraphicsProvider.d.ts.map +1 -1
  889. package/lib/esm/tile/TiledGraphicsProvider.js.map +1 -1
  890. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  891. package/lib/esm/tile/map/ArcGisUtilities.js +13 -0
  892. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  893. package/lib/esm/tile/map/BingElevation.d.ts +1 -0
  894. package/lib/esm/tile/map/BingElevation.d.ts.map +1 -1
  895. package/lib/esm/tile/map/BingElevation.js +1 -0
  896. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  897. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +0 -1
  898. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  899. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +12 -10
  900. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  901. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +5 -1
  902. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  903. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  904. package/lib/esm/tile/map/MapTileTree.js +2 -2
  905. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  906. package/lib/esm/tile/map/WmsCapabilities.d.ts +3 -2
  907. package/lib/esm/tile/map/WmsCapabilities.d.ts.map +1 -1
  908. package/lib/esm/tile/map/WmsCapabilities.js +11 -10
  909. package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
  910. package/lib/esm/tools/ClipViewTool.d.ts +5 -3
  911. package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
  912. package/lib/esm/tools/ClipViewTool.js +4 -3
  913. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  914. package/lib/esm/tools/EditManipulator.d.ts +1 -0
  915. package/lib/esm/tools/EditManipulator.d.ts.map +1 -1
  916. package/lib/esm/tools/EditManipulator.js +1 -0
  917. package/lib/esm/tools/EditManipulator.js.map +1 -1
  918. package/lib/esm/tools/EventController.d.ts +1 -0
  919. package/lib/esm/tools/EventController.d.ts.map +1 -1
  920. package/lib/esm/tools/EventController.js +1 -0
  921. package/lib/esm/tools/EventController.js.map +1 -1
  922. package/lib/esm/tools/PrimitiveTool.d.ts +4 -0
  923. package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
  924. package/lib/esm/tools/PrimitiveTool.js +7 -0
  925. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  926. package/lib/esm/tools/SelectTool.d.ts +3 -0
  927. package/lib/esm/tools/SelectTool.d.ts.map +1 -1
  928. package/lib/esm/tools/SelectTool.js +3 -0
  929. package/lib/esm/tools/SelectTool.js.map +1 -1
  930. package/lib/esm/tools/Tool.d.ts +41 -6
  931. package/lib/esm/tools/Tool.d.ts.map +1 -1
  932. package/lib/esm/tools/Tool.js +27 -4
  933. package/lib/esm/tools/Tool.js.map +1 -1
  934. package/lib/esm/tools/ToolAdmin.d.ts +16 -23
  935. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  936. package/lib/esm/tools/ToolAdmin.js +44 -21
  937. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  938. package/lib/esm/tools/ToolAssistance.d.ts +7 -0
  939. package/lib/esm/tools/ToolAssistance.d.ts.map +1 -1
  940. package/lib/esm/tools/ToolAssistance.js +3 -0
  941. package/lib/esm/tools/ToolAssistance.js.map +1 -1
  942. package/lib/esm/tools/ToolSettings.d.ts +3 -0
  943. package/lib/esm/tools/ToolSettings.d.ts.map +1 -1
  944. package/lib/esm/tools/ToolSettings.js +3 -0
  945. package/lib/esm/tools/ToolSettings.js.map +1 -1
  946. package/lib/esm/tools/ViewTool.d.ts +3 -1
  947. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  948. package/lib/esm/tools/ViewTool.js +9 -5
  949. package/lib/esm/tools/ViewTool.js.map +1 -1
  950. package/package.json +32 -22
  951. package/lib/cjs/extension/ExtensionLoader.d.ts +0 -26
  952. package/lib/cjs/extension/ExtensionLoader.d.ts.map +0 -1
  953. package/lib/cjs/extension/ExtensionLoader.js +0 -10
  954. package/lib/cjs/extension/ExtensionLoader.js.map +0 -1
  955. package/lib/cjs/extension/extensions.d.ts +0 -19
  956. package/lib/cjs/extension/extensions.d.ts.map +0 -1
  957. package/lib/cjs/extension/extensions.js +0 -36
  958. package/lib/cjs/extension/extensions.js.map +0 -1
  959. package/lib/esm/extension/ExtensionLoader.d.ts +0 -26
  960. package/lib/esm/extension/ExtensionLoader.d.ts.map +0 -1
  961. package/lib/esm/extension/ExtensionLoader.js +0 -9
  962. package/lib/esm/extension/ExtensionLoader.js.map +0 -1
  963. package/lib/esm/extension/extensions.d.ts +0 -19
  964. package/lib/esm/extension/extensions.d.ts.map +0 -1
  965. package/lib/esm/extension/extensions.js +0 -24
  966. package/lib/esm/extension/extensions.js.map +0 -1
@@ -9,34 +9,103 @@ import { assert } from "@itwin/core-bentley";
9
9
  import { Matrix4 } from "../Matrix";
10
10
  import { Pass, TextureUnit } from "../RenderFlags";
11
11
  import { System } from "../System";
12
- import { decodeFloat32, decodeUint16, decodeUint24 } from "./Decode";
12
+ import { decode3Float32, decodeUint16, decodeUint24 } from "./Decode";
13
13
  import { addInstanceOverrides } from "./Instancing";
14
14
  import { addLookupTable } from "./LookupTable";
15
15
  const initializeVertLUTCoords = `
16
16
  g_vertexLUTIndex = decodeUInt24(qpos);
17
17
  g_vertexBaseCoords = compute_vert_coords(g_vertexLUTIndex);
18
18
  `;
19
- const unquantizePosition = `
19
+ /** @internal */
20
+ export const unquantizePosition = `
20
21
  vec4 unquantizePosition(vec3 pos, vec3 origin, vec3 scale) { return vec4(origin + scale * pos, 1.0); }
21
22
  `;
22
- export const unquantizeVertexPosition = `
23
- vec4 unquantizeVertexPosition(vec3 pos, vec3 origin, vec3 scale) { return unquantizePosition(pos, origin, scale); }
23
+ const computeQuantizedPosition = `
24
+ vec4 computeVertexPosition(vec3 pos) { return unquantizePosition(pos, u_qOrigin, u_qScale); }
24
25
  `;
25
26
  // Need to read 2 rgba values to obtain 6 16-bit integers for position
26
- const unquantizeVertexPositionFromLUT = `
27
- vec4 unquantizeVertexPosition(vec3 encodedIndex, vec3 origin, vec3 scale) {
28
- if (g_usesQuantizedPosition) {
29
- vec4 enc1 = g_vertLutData[0];
30
- vec4 enc2 = g_vertLutData[1];
31
- vec3 qpos = vec3(decodeUInt16(enc1.xy), decodeUInt16(enc1.zw), decodeUInt16(enc2.xy));
32
- return unquantizePosition(qpos, origin, scale);
33
- }
34
-
35
- return vec4(decodeFloat32(g_vertLutData[0]), decodeFloat32(g_vertLutData[1]), decodeFloat32(g_vertLutData[2]), 1.0);
27
+ const computeVertexPositionFromLUT = `
28
+ vec4 computeVertexPosition(vec3 encodedIndex) {
29
+ vec3 qpos = vec3(decodeUInt16(g_vertLutData0.xy), decodeUInt16(g_vertLutData0.zw), decodeUInt16(g_vertLutData1.xy));
30
+ g_featureAndMaterialIndex = g_vertLutData2;
31
+ return unquantizePosition(qpos, u_qOrigin, u_qScale);
32
+ }
33
+ `;
34
+ const computeUnquantizedPosition1 = `
35
+ vec4 computeVertexPosition(vec3 encodedIndex) {
36
+ vec3 pf[4];
37
+ pf[0] = g_vertLutData0.xyz;
38
+ g_featureAndMaterialIndex.x = g_vertLutData0.w;
39
+ pf[1] = g_vertLutData1.xyz;
40
+ g_featureAndMaterialIndex.y = g_vertLutData1.w;
41
+ pf[2] = g_vertLutData2.xyz;
42
+ g_featureAndMaterialIndex.z = g_vertLutData2.w;
43
+ pf[3] = g_vertLutData3.xyz;
44
+ g_featureAndMaterialIndex.w = g_vertLutData3.w;
45
+ return vec4(decode3Float32(pf), 1.0);
46
+ }
47
+ `;
48
+ const computeUnquantizedPosition2 = `
49
+ vec4 computeVertexPosition(vec3 encodedIndex) {
50
+ uvec3 vux = uvec3(g_vertLutData0.xyz);
51
+ g_featureAndMaterialIndex.x = g_vertLutData0.w;
52
+ uvec3 vuy = uvec3(g_vertLutData1.xyz);
53
+ g_featureAndMaterialIndex.y = g_vertLutData1.w;
54
+ uvec3 vuz = uvec3(g_vertLutData2.xyz);
55
+ g_featureAndMaterialIndex.z = g_vertLutData2.w;
56
+ uvec3 vuw = uvec3(g_vertLutData3.xyz);
57
+ g_featureAndMaterialIndex.w = g_vertLutData3.w;
58
+ uvec3 u = (vuw << 24) | (vuz << 16) | (vuy << 8) | vux;
59
+ return vec4(uintBitsToFloat(u), 1.0);
36
60
  }
37
61
  `;
38
62
  const computeLineWeight = "\nfloat computeLineWeight() { return g_lineWeight; }\n";
39
63
  const computeLineCode = "\nfloat computeLineCode() { return g_lineCode; }\n";
64
+ export function addSamplePosition(vert) {
65
+ vert.addFunction(getSamplePosition(vert.positionType));
66
+ }
67
+ function getSamplePosition(type) {
68
+ const prelude = `
69
+ vec4 samplePosition(float index) {
70
+ vec2 tc = compute_vert_coords(index);`;
71
+ if ("quantized" === type) {
72
+ return `
73
+ ${prelude}
74
+ vec4 e0 = floor(TEXTURE(u_vertLUT, tc) * 255.0 + 0.5);
75
+ tc.x += g_vert_stepX;
76
+ vec4 e1 = floor(TEXTURE(u_vertLUT, tc) * 255.0 + 0.5);
77
+ vec3 qpos = vec3(decodeUInt16(e0.xy), decodeUInt16(e0.zw), decodeUInt16(e1.xy));
78
+ return unquantizePosition(qpos, u_qOrigin, u_qScale);
79
+ }
80
+ `;
81
+ }
82
+ if (System.instance.capabilities.isWebGL2) {
83
+ return `
84
+ ${prelude}
85
+ uvec3 vux = uvec3(floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5));
86
+ tc.x += g_vert_stepX;
87
+ uvec3 vuy = uvec3(floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5));
88
+ tc.x += g_vert_stepX;
89
+ uvec3 vuz = uvec3(floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5));
90
+ tc.x += g_vert_stepX;
91
+ uvec3 vuw = uvec3(floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5));
92
+ uvec3 u = (vuw << 24) | (vuz << 16) | (vuy << 8) | vux;
93
+ return vec4(uintBitsToFloat(u), 1.0);
94
+ }`;
95
+ }
96
+ return `
97
+ ${prelude}
98
+ vec3 pf[4];
99
+ pf[0] = floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5);
100
+ tc.x += g_vert_stepX;
101
+ pf[1] = floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5);
102
+ tc.x += g_vert_stepX;
103
+ pf[2] = floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5);
104
+ tc.x += g_vert_stepX;
105
+ pf[3] = floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5);
106
+ return vec4(decode3Float32(pf), 1.0);
107
+ }`;
108
+ }
40
109
  /** @internal */
41
110
  export function addModelViewProjectionMatrix(vert) {
42
111
  if (vert.usesInstancedGeometry) {
@@ -136,14 +205,55 @@ export function addNormalMatrix(vert, instanced) {
136
205
  vert.addInitializer(computeNormalMatrix);
137
206
  }
138
207
  }
208
+ function readVertexData(index) {
209
+ return `g_vertLutData${index} = floor(TEXTURE(u_vertLUT, tc) * 255.0 + 0.5);`;
210
+ }
211
+ const nextVertexData = "tc.x += g_vert_stepX;";
212
+ function readNextVertexData(index) {
213
+ return `
214
+ ${nextVertexData}
215
+ ${readVertexData(index)}`;
216
+ }
217
+ const prereadVertexDataPrelude = `
218
+ vec2 tc = g_vertexBaseCoords;
219
+ ${readVertexData(0)}
220
+ ${readNextVertexData(1)}
221
+ ${readNextVertexData(2)}
222
+ `;
223
+ const prereadQuantizedVertexData = `${prereadVertexDataPrelude}
224
+ if (3.0 < u_vertParams.z) {
225
+ ${readNextVertexData(3)}
226
+ }
227
+ `;
228
+ const prereadUnquantizedVertexData = `${prereadVertexDataPrelude}
229
+ ${readNextVertexData(3)}
230
+ ${readNextVertexData(4)}
231
+ if (5.0 < u_vertParams.z) {
232
+ ${readNextVertexData(5)}
233
+ }
234
+ `;
139
235
  const scratchLutParams = new Float32Array(4);
140
236
  function addPositionFromLUT(vert) {
141
237
  vert.addGlobal("g_vertexLUTIndex", 2 /* Float */);
142
238
  vert.addGlobal("g_vertexBaseCoords", 3 /* Vec2 */);
239
+ const unquantized = "unquantized" === vert.positionType;
240
+ const maxRgbaPerVert = unquantized ? 6 : 4;
241
+ for (let i = 0; i < maxRgbaPerVert; i++)
242
+ vert.addGlobal(`g_vertLutData${i}`, 5 /* Vec4 */);
143
243
  vert.addFunction(decodeUint24);
144
244
  vert.addFunction(decodeUint16);
145
- vert.addFunction(decodeFloat32);
146
- vert.addFunction(unquantizeVertexPositionFromLUT);
245
+ if (unquantized) {
246
+ if (System.instance.capabilities.isWebGL2) {
247
+ vert.addFunction(computeUnquantizedPosition2);
248
+ }
249
+ else {
250
+ vert.addFunction(decode3Float32);
251
+ vert.addFunction(computeUnquantizedPosition1);
252
+ }
253
+ }
254
+ else {
255
+ vert.addFunction(computeVertexPositionFromLUT);
256
+ }
147
257
  vert.addUniform("u_vertLUT", 8 /* Sampler2D */, (prog) => {
148
258
  prog.addGraphicUniform("u_vertLUT", (uniform, params) => {
149
259
  (params.geometry.asLUT).lut.texture.bindSampler(uniform, TextureUnit.VertexLUT);
@@ -163,40 +273,29 @@ function addPositionFromLUT(vert) {
163
273
  });
164
274
  addLookupTable(vert, "vert", "u_vertParams.z");
165
275
  vert.addInitializer(initializeVertLUTCoords);
166
- assert(undefined !== vert.maxRgbaPerVertex);
167
- const maxRgbaPerVertex = vert.maxRgbaPerVertex.toString();
168
- vert.addGlobal(`g_vertLutData[${maxRgbaPerVertex}]`, 5 /* Vec4 */);
169
- vert.addGlobal("g_usesQuantizedPosition", 0 /* Boolean */);
170
- // Read the vertex data from the vertex table up front. If using WebGL 2, only read the number of RGBA values we actually need for this vertex table.
171
- const loopStart = `for (int i = 0; i < ${System.instance.capabilities.isWebGL2 ? "int(u_vertParams.z)" : maxRgbaPerVertex}; i++)`;
172
- vert.addInitializer(`
173
- g_usesQuantizedPosition = u_qScale.x >= 0.0;
174
- vec2 tc = g_vertexBaseCoords;
175
- ${loopStart} {
176
- g_vertLutData[i] = floor(TEXTURE(u_vertLUT, tc) * 255.0 + 0.5);
177
- tc.x += g_vert_stepX;
178
- }
179
- `);
276
+ vert.addGlobal("g_featureAndMaterialIndex", 5 /* Vec4 */);
277
+ // Read the vertex data from the vertex table up front. Yields a consistent (if unexplainable) small performance boost.
278
+ vert.addInitializer(unquantized ? prereadUnquantizedVertexData : prereadQuantizedVertexData);
180
279
  }
181
- // Shader tests u_qScale.x < 0 to determine that positions are not quantized.
182
- const unquantizedScale = new Float32Array([-1, -1, -1]);
183
280
  /** @internal */
184
281
  export function addPosition(vert, fromLUT) {
185
- vert.addFunction(unquantizePosition);
186
- vert.addUniform("u_qScale", 4 /* Vec3 */, (prog) => {
187
- prog.addGraphicUniform("u_qScale", (uniform, params) => {
188
- uniform.setUniform3fv(params.geometry.usesQuantizedPositions ? params.geometry.qScale : unquantizedScale);
282
+ if (!fromLUT || "quantized" === vert.positionType) {
283
+ vert.addFunction(unquantizePosition);
284
+ vert.addUniform("u_qScale", 4 /* Vec3 */, (prog) => {
285
+ prog.addGraphicUniform("u_qScale", (uniform, params) => {
286
+ assert(params.geometry.usesQuantizedPositions);
287
+ uniform.setUniform3fv(params.geometry.qScale);
288
+ });
189
289
  });
190
- });
191
- vert.addUniform("u_qOrigin", 4 /* Vec3 */, (prog) => {
192
- prog.addGraphicUniform("u_qOrigin", (uniform, params) => {
193
- // If positions aren't quantized, the shader doesn't use the origin - don't bother updating it.
194
- if (params.geometry.usesQuantizedPositions)
290
+ vert.addUniform("u_qOrigin", 4 /* Vec3 */, (prog) => {
291
+ prog.addGraphicUniform("u_qOrigin", (uniform, params) => {
292
+ assert(params.geometry.usesQuantizedPositions);
195
293
  uniform.setUniform3fv(params.geometry.qOrigin);
294
+ });
196
295
  });
197
- });
296
+ }
198
297
  if (!fromLUT) {
199
- vert.addFunction(unquantizeVertexPosition);
298
+ vert.addFunction(computeQuantizedPosition);
200
299
  }
201
300
  else {
202
301
  addPositionFromLUT(vert);
@@ -252,19 +351,6 @@ export function addLineCode(vert) {
252
351
  export function replaceLineCode(vert, func) {
253
352
  vert.replaceFunction(computeLineCode, func);
254
353
  }
255
- /** @internal */
256
- export function addFeatureAndMaterialLookup(vert) {
257
- if (undefined !== vert.find("g_featureAndMaterialIndex"))
258
- return;
259
- const computeFeatureAndMaterialIndex = `
260
- g_featureAndMaterialIndex = g_usesQuantizedPosition ? g_vertLutData[2] : g_vertLutData[3];
261
- `;
262
- vert.addGlobal("g_featureAndMaterialIndex", 5 /* Vec4 */);
263
- if (!vert.usesInstancedGeometry) {
264
- // Only needed for material atlas, and instanced geometry never uses material atlas.
265
- vert.addInitializer(computeFeatureAndMaterialIndex);
266
- }
267
- }
268
354
  // This vertex belongs to a triangle which should not be rendered. Produce a degenerate triangle.
269
355
  // Also place it outside NDC range (for GL_POINTS)
270
356
  const discardVertex = ` {
@@ -1 +1 @@
1
- {"version":3,"file":"Vertex.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/Vertex.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { DrawParams } from \"../DrawCommand\";\r\nimport { UniformHandle } from \"../UniformHandle\";\r\nimport { Matrix4 } from \"../Matrix\";\r\nimport { Pass, TextureUnit } from \"../RenderFlags\";\r\nimport { IsInstanced } from \"../TechniqueFlags\";\r\nimport { VariableType, VertexShaderBuilder } from \"../ShaderBuilder\";\r\nimport { System } from \"../System\";\r\nimport { decodeFloat32, decodeUint16, decodeUint24 } from \"./Decode\";\r\nimport { addInstanceOverrides } from \"./Instancing\";\r\nimport { addLookupTable } from \"./LookupTable\";\r\n\r\nconst initializeVertLUTCoords = `\r\n g_vertexLUTIndex = decodeUInt24(qpos);\r\n g_vertexBaseCoords = compute_vert_coords(g_vertexLUTIndex);\r\n`;\r\n\r\nconst unquantizePosition = `\r\nvec4 unquantizePosition(vec3 pos, vec3 origin, vec3 scale) { return vec4(origin + scale * pos, 1.0); }\r\n`;\r\n\r\nexport const unquantizeVertexPosition = `\r\nvec4 unquantizeVertexPosition(vec3 pos, vec3 origin, vec3 scale) { return unquantizePosition(pos, origin, scale); }\r\n`;\r\n\r\n// Need to read 2 rgba values to obtain 6 16-bit integers for position\r\nconst unquantizeVertexPositionFromLUT = `\r\nvec4 unquantizeVertexPosition(vec3 encodedIndex, vec3 origin, vec3 scale) {\r\n if (g_usesQuantizedPosition) {\r\n vec4 enc1 = g_vertLutData[0];\r\n vec4 enc2 = g_vertLutData[1];\r\n vec3 qpos = vec3(decodeUInt16(enc1.xy), decodeUInt16(enc1.zw), decodeUInt16(enc2.xy));\r\n return unquantizePosition(qpos, origin, scale);\r\n }\r\n\r\n return vec4(decodeFloat32(g_vertLutData[0]), decodeFloat32(g_vertLutData[1]), decodeFloat32(g_vertLutData[2]), 1.0);\r\n}\r\n`;\r\n\r\nconst computeLineWeight = \"\\nfloat computeLineWeight() { return g_lineWeight; }\\n\";\r\nconst computeLineCode = \"\\nfloat computeLineCode() { return g_lineCode; }\\n\";\r\n\r\n/** @internal */\r\nexport function addModelViewProjectionMatrix(vert: VertexShaderBuilder): void {\r\n if (vert.usesInstancedGeometry) {\r\n addModelViewMatrix(vert);\r\n addProjectionMatrix(vert);\r\n vert.addGlobal(\"g_mvp\", VariableType.Mat4);\r\n vert.addInitializer(\"g_mvp = u_proj * g_mv;\");\r\n } else {\r\n vert.addUniform(\"u_mvp\", VariableType.Mat4, (prog) => {\r\n prog.addGraphicUniform(\"u_mvp\", (uniform, params) => {\r\n params.target.uniforms.branch.bindModelViewProjectionMatrix(uniform, params.geometry, params.isViewCoords);\r\n });\r\n });\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function addProjectionMatrix(vert: VertexShaderBuilder): void {\r\n vert.addUniform(\"u_proj\", VariableType.Mat4, (prog) => {\r\n prog.addProgramUniform(\"u_proj\", (uniform, params) => {\r\n params.bindProjectionMatrix(uniform);\r\n });\r\n });\r\n}\r\n\r\nconst computeInstancedRtcMatrix = `\r\n g_instancedRtcMatrix = u_instanced_rtc * g_modelMatrixRTC;\r\n`;\r\n\r\n/** @internal */\r\nexport function addInstancedRtcMatrix(vert: VertexShaderBuilder): void {\r\n if (!vert.usesInstancedGeometry)\r\n return;\r\n\r\n assert(undefined !== vert.find(\"g_modelMatrixRTC\")); // set up in VertexShaderBuilder constructor...\r\n vert.addUniform(\"u_instanced_rtc\", VariableType.Mat4, (prog) => {\r\n prog.addGraphicUniform(\"u_instanced_rtc\", (uniform, params) => {\r\n const modelt = params.geometry.asInstanced!.getRtcOnlyTransform();\r\n uniform.setMatrix4(Matrix4.fromTransform(modelt));\r\n });\r\n });\r\n\r\n vert.addGlobal(\"g_instancedRtcMatrix\", VariableType.Mat4);\r\n vert.addInitializer(computeInstancedRtcMatrix);\r\n}\r\n\r\n/** @internal */\r\nexport function addModelViewMatrix(vert: VertexShaderBuilder): void {\r\n const bind = (uniform: UniformHandle, params: DrawParams) => {\r\n params.target.uniforms.branch.bindModelViewMatrix(uniform, params.geometry, params.isViewCoords);\r\n };\r\n\r\n if (vert.usesInstancedGeometry) {\r\n vert.addUniform(\"u_instanced_modelView\", VariableType.Mat4, (prog) => {\r\n prog.addGraphicUniform(\"u_instanced_modelView\", bind);\r\n });\r\n\r\n vert.addGlobal(\"g_mv\", VariableType.Mat4);\r\n vert.addInitializer(\"g_mv = u_instanced_modelView * g_modelMatrixRTC;\");\r\n } else {\r\n vert.addUniform(\"u_mv\", VariableType.Mat4, (prog) => {\r\n // ###TODO: We only need 3 rows, not 4...\r\n prog.addGraphicUniform(\"u_mv\", bind);\r\n });\r\n }\r\n}\r\n\r\nconst computeNormalMatrix = `\r\n g_nmx = mat3(u_modelViewN);\r\n g_nmx[0][0] *= u_frustumScale.x;\r\n g_nmx[1][1] *= u_frustumScale.y;\r\n`;\r\n\r\nconst computeNormalMatrix2 = `\r\n g_nmx = transpose(inverse(mat3(MAT_MV)));\r\n g_nmx[0][0] *= u_frustumScale.x;\r\n g_nmx[1][1] *= u_frustumScale.y;\r\n`;\r\n\r\nconst computeNormalMatrix1Inst = `\r\n g_nmx = mat3(MAT_MV);\r\n g_nmx[0][0] *= u_frustumScale.x;\r\n g_nmx[1][1] *= u_frustumScale.y;\r\n`;\r\n\r\n/** @internal */\r\nexport function addNormalMatrix(vert: VertexShaderBuilder, instanced: IsInstanced) {\r\n vert.addGlobal(\"g_nmx\", VariableType.Mat3);\r\n vert.addUniform(\"u_frustumScale\", VariableType.Vec2, (prog) => {\r\n prog.addGraphicUniform(\"u_frustumScale\", (uniform, params) => {\r\n const scale = params.target.uniforms.branch.top.frustumScale;\r\n uniform.setUniform2fv([scale.x, scale.y]);\r\n });\r\n });\r\n\r\n if (System.instance.capabilities.isWebGL2) {\r\n vert.addInitializer(computeNormalMatrix2);\r\n } else if (IsInstanced.Yes === instanced) {\r\n vert.addInitializer(computeNormalMatrix1Inst);\r\n } else {\r\n vert.addUniform(\"u_modelViewN\", VariableType.Mat3, (prog) => {\r\n prog.addGraphicUniform(\"u_modelViewN\", (uniform, params) => {\r\n params.target.uniforms.branch.bindModelViewNTransform(uniform, params.geometry, false);\r\n });\r\n });\r\n vert.addInitializer(computeNormalMatrix);\r\n }\r\n}\r\n\r\nconst scratchLutParams = new Float32Array(4);\r\nfunction addPositionFromLUT(vert: VertexShaderBuilder) {\r\n vert.addGlobal(\"g_vertexLUTIndex\", VariableType.Float);\r\n vert.addGlobal(\"g_vertexBaseCoords\", VariableType.Vec2);\r\n\r\n vert.addFunction(decodeUint24);\r\n vert.addFunction(decodeUint16);\r\n vert.addFunction(decodeFloat32);\r\n vert.addFunction(unquantizeVertexPositionFromLUT);\r\n\r\n vert.addUniform(\"u_vertLUT\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_vertLUT\", (uniform, params) => {\r\n (params.geometry.asLUT!).lut.texture.bindSampler(uniform, TextureUnit.VertexLUT);\r\n });\r\n });\r\n\r\n vert.addUniform(\"u_vertParams\", VariableType.Vec4, (prog) => {\r\n prog.addGraphicUniform(\"u_vertParams\", (uniform, params) => {\r\n assert(undefined !== params.geometry.asLUT);\r\n const lut = params.geometry.asLUT.lut;\r\n const lutParams = scratchLutParams;\r\n lutParams[0] = lut.texture.width;\r\n lutParams[1] = lut.texture.height;\r\n lutParams[2] = lut.numRgbaPerVertex;\r\n lutParams[3] = lut.numVertices;\r\n uniform.setUniform4fv(lutParams);\r\n });\r\n });\r\n\r\n addLookupTable(vert, \"vert\", \"u_vertParams.z\");\r\n vert.addInitializer(initializeVertLUTCoords);\r\n\r\n assert(undefined !== vert.maxRgbaPerVertex);\r\n const maxRgbaPerVertex = vert.maxRgbaPerVertex.toString();\r\n vert.addGlobal(`g_vertLutData[${maxRgbaPerVertex}]`, VariableType.Vec4);\r\n vert.addGlobal(\"g_usesQuantizedPosition\", VariableType.Boolean);\r\n\r\n // Read the vertex data from the vertex table up front. If using WebGL 2, only read the number of RGBA values we actually need for this vertex table.\r\n const loopStart = `for (int i = 0; i < ${System.instance.capabilities.isWebGL2 ? \"int(u_vertParams.z)\" : maxRgbaPerVertex}; i++)`;\r\n vert.addInitializer(`\r\n g_usesQuantizedPosition = u_qScale.x >= 0.0;\r\n vec2 tc = g_vertexBaseCoords;\r\n ${loopStart} {\r\n g_vertLutData[i] = floor(TEXTURE(u_vertLUT, tc) * 255.0 + 0.5);\r\n tc.x += g_vert_stepX;\r\n }\r\n `);\r\n}\r\n\r\n// Shader tests u_qScale.x < 0 to determine that positions are not quantized.\r\nconst unquantizedScale = new Float32Array([-1, -1, -1]);\r\n\r\n/** @internal */\r\nexport function addPosition(vert: VertexShaderBuilder, fromLUT: boolean) {\r\n vert.addFunction(unquantizePosition);\r\n\r\n vert.addUniform(\"u_qScale\", VariableType.Vec3, (prog) => {\r\n prog.addGraphicUniform(\"u_qScale\", (uniform, params) => {\r\n uniform.setUniform3fv(params.geometry.usesQuantizedPositions ? params.geometry.qScale : unquantizedScale);\r\n });\r\n });\r\n vert.addUniform(\"u_qOrigin\", VariableType.Vec3, (prog) => {\r\n prog.addGraphicUniform(\"u_qOrigin\", (uniform, params) => {\r\n // If positions aren't quantized, the shader doesn't use the origin - don't bother updating it.\r\n if (params.geometry.usesQuantizedPositions)\r\n uniform.setUniform3fv(params.geometry.qOrigin);\r\n });\r\n });\r\n\r\n if (!fromLUT) {\r\n vert.addFunction(unquantizeVertexPosition);\r\n } else {\r\n addPositionFromLUT(vert);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function addAlpha(vert: VertexShaderBuilder): void {\r\n vert.addUniform(\"u_hasAlpha\", VariableType.Float, (prog) => {\r\n prog.addGraphicUniform(\"u_hasAlpha\", (uniform, params) => {\r\n uniform.setUniform1f(Pass.rendersTranslucent(params.geometry.getPass(params.target)) ? 1 : 0);\r\n });\r\n });\r\n}\r\n\r\n/** @internal */\r\nexport function addLineWeight(vert: VertexShaderBuilder): void {\r\n vert.addUniform(\"u_lineWeight\", VariableType.Float, (prog) => {\r\n prog.addGraphicUniform(\"u_lineWeight\", (attr, params) => {\r\n attr.setUniform1f(params.geometry.getLineWeight(params.programParams));\r\n });\r\n });\r\n\r\n vert.addGlobal(\"g_lineWeight\", VariableType.Float);\r\n if (vert.usesInstancedGeometry) {\r\n addInstanceOverrides(vert);\r\n vert.addInitializer(\"g_lineWeight = mix(u_lineWeight, a_instanceOverrides.g, extractInstanceBit(kOvrBit_Weight));\");\r\n } else {\r\n vert.addInitializer(\"g_lineWeight = u_lineWeight;\");\r\n }\r\n\r\n vert.addFunction(computeLineWeight);\r\n}\r\n\r\n/** @internal */\r\nexport function replaceLineWeight(vert: VertexShaderBuilder, func: string): void {\r\n vert.replaceFunction(computeLineWeight, func);\r\n}\r\n\r\n/** @internal */\r\nexport function addLineCode(vert: VertexShaderBuilder): void {\r\n vert.addUniform(\"u_lineCode\", VariableType.Float, (prog) => {\r\n prog.addGraphicUniform(\"u_lineCode\", (attr, params) => {\r\n attr.setUniform1f(params.geometry.getLineCode(params.programParams));\r\n });\r\n });\r\n\r\n vert.addGlobal(\"g_lineCode\", VariableType.Float);\r\n if (vert.usesInstancedGeometry) {\r\n addInstanceOverrides(vert);\r\n vert.addInitializer(\"g_lineCode = mix(u_lineCode, a_instanceOverrides.b, extractInstanceBit(kOvrBit_LineCode));\");\r\n } else {\r\n vert.addInitializer(\"g_lineCode = u_lineCode;\");\r\n }\r\n\r\n vert.addFunction(computeLineCode);\r\n}\r\n\r\n/** @internal */\r\nexport function replaceLineCode(vert: VertexShaderBuilder, func: string): void {\r\n vert.replaceFunction(computeLineCode, func);\r\n}\r\n\r\n/** @internal */\r\nexport function addFeatureAndMaterialLookup(vert: VertexShaderBuilder): void {\r\n if (undefined !== vert.find(\"g_featureAndMaterialIndex\"))\r\n return;\r\n\r\n const computeFeatureAndMaterialIndex = `\r\n g_featureAndMaterialIndex = g_usesQuantizedPosition ? g_vertLutData[2] : g_vertLutData[3];\r\n `;\r\n\r\n vert.addGlobal(\"g_featureAndMaterialIndex\", VariableType.Vec4);\r\n if (!vert.usesInstancedGeometry) {\r\n // Only needed for material atlas, and instanced geometry never uses material atlas.\r\n vert.addInitializer(computeFeatureAndMaterialIndex);\r\n }\r\n}\r\n\r\n// This vertex belongs to a triangle which should not be rendered. Produce a degenerate triangle.\r\n// Also place it outside NDC range (for GL_POINTS)\r\nconst discardVertex = ` {\r\n gl_Position = vec4(2.0, 2.0, 2.0, 1.0);\r\n return;\r\n }\r\n`;\r\n\r\n/** @internal */\r\nexport const earlyVertexDiscard = ` if (checkForEarlyDiscard(rawPosition))${discardVertex}`;\r\n/** @internal */\r\nexport const vertexDiscard = ` if (checkForDiscard())${discardVertex}`;\r\n/** @internal */\r\nexport const lateVertexDiscard = ` if (checkForLateDiscard())${discardVertex}`;\r\n"]}
1
+ {"version":3,"file":"Vertex.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/Vertex.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { DrawParams } from \"../DrawCommand\";\r\nimport { UniformHandle } from \"../UniformHandle\";\r\nimport { Matrix4 } from \"../Matrix\";\r\nimport { Pass, TextureUnit } from \"../RenderFlags\";\r\nimport { IsInstanced, PositionType } from \"../TechniqueFlags\";\r\nimport { VariableType, VertexShaderBuilder } from \"../ShaderBuilder\";\r\nimport { System } from \"../System\";\r\nimport { decode3Float32, decodeUint16, decodeUint24 } from \"./Decode\";\r\nimport { addInstanceOverrides } from \"./Instancing\";\r\nimport { addLookupTable } from \"./LookupTable\";\r\n\r\nconst initializeVertLUTCoords = `\r\n g_vertexLUTIndex = decodeUInt24(qpos);\r\n g_vertexBaseCoords = compute_vert_coords(g_vertexLUTIndex);\r\n`;\r\n\r\n/** @internal */\r\nexport const unquantizePosition = `\r\nvec4 unquantizePosition(vec3 pos, vec3 origin, vec3 scale) { return vec4(origin + scale * pos, 1.0); }\r\n`;\r\n\r\nconst computeQuantizedPosition = `\r\nvec4 computeVertexPosition(vec3 pos) { return unquantizePosition(pos, u_qOrigin, u_qScale); }\r\n`;\r\n\r\n// Need to read 2 rgba values to obtain 6 16-bit integers for position\r\nconst computeVertexPositionFromLUT = `\r\nvec4 computeVertexPosition(vec3 encodedIndex) {\r\n vec3 qpos = vec3(decodeUInt16(g_vertLutData0.xy), decodeUInt16(g_vertLutData0.zw), decodeUInt16(g_vertLutData1.xy));\r\n g_featureAndMaterialIndex = g_vertLutData2;\r\n return unquantizePosition(qpos, u_qOrigin, u_qScale);\r\n}\r\n`;\r\n\r\nconst computeUnquantizedPosition1 = `\r\nvec4 computeVertexPosition(vec3 encodedIndex) {\r\n vec3 pf[4];\r\n pf[0] = g_vertLutData0.xyz;\r\n g_featureAndMaterialIndex.x = g_vertLutData0.w;\r\n pf[1] = g_vertLutData1.xyz;\r\n g_featureAndMaterialIndex.y = g_vertLutData1.w;\r\n pf[2] = g_vertLutData2.xyz;\r\n g_featureAndMaterialIndex.z = g_vertLutData2.w;\r\n pf[3] = g_vertLutData3.xyz;\r\n g_featureAndMaterialIndex.w = g_vertLutData3.w;\r\n return vec4(decode3Float32(pf), 1.0);\r\n}\r\n`;\r\n\r\nconst computeUnquantizedPosition2 = `\r\nvec4 computeVertexPosition(vec3 encodedIndex) {\r\n uvec3 vux = uvec3(g_vertLutData0.xyz);\r\n g_featureAndMaterialIndex.x = g_vertLutData0.w;\r\n uvec3 vuy = uvec3(g_vertLutData1.xyz);\r\n g_featureAndMaterialIndex.y = g_vertLutData1.w;\r\n uvec3 vuz = uvec3(g_vertLutData2.xyz);\r\n g_featureAndMaterialIndex.z = g_vertLutData2.w;\r\n uvec3 vuw = uvec3(g_vertLutData3.xyz);\r\n g_featureAndMaterialIndex.w = g_vertLutData3.w;\r\n uvec3 u = (vuw << 24) | (vuz << 16) | (vuy << 8) | vux;\r\n return vec4(uintBitsToFloat(u), 1.0);\r\n}\r\n`;\r\n\r\nconst computeLineWeight = \"\\nfloat computeLineWeight() { return g_lineWeight; }\\n\";\r\nconst computeLineCode = \"\\nfloat computeLineCode() { return g_lineCode; }\\n\";\r\n\r\nexport function addSamplePosition(vert: VertexShaderBuilder): void {\r\n vert.addFunction(getSamplePosition(vert.positionType));\r\n}\r\n\r\nfunction getSamplePosition(type: PositionType): string {\r\n const prelude = `\r\n vec4 samplePosition(float index) {\r\n vec2 tc = compute_vert_coords(index);`;\r\n\r\n if (\"quantized\" === type) {\r\n return `\r\n ${prelude}\r\n vec4 e0 = floor(TEXTURE(u_vertLUT, tc) * 255.0 + 0.5);\r\n tc.x += g_vert_stepX;\r\n vec4 e1 = floor(TEXTURE(u_vertLUT, tc) * 255.0 + 0.5);\r\n vec3 qpos = vec3(decodeUInt16(e0.xy), decodeUInt16(e0.zw), decodeUInt16(e1.xy));\r\n return unquantizePosition(qpos, u_qOrigin, u_qScale);\r\n }\r\n `;\r\n }\r\n\r\n if (System.instance.capabilities.isWebGL2) {\r\n return `\r\n ${prelude}\r\n uvec3 vux = uvec3(floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5));\r\n tc.x += g_vert_stepX;\r\n uvec3 vuy = uvec3(floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5));\r\n tc.x += g_vert_stepX;\r\n uvec3 vuz = uvec3(floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5));\r\n tc.x += g_vert_stepX;\r\n uvec3 vuw = uvec3(floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5));\r\n uvec3 u = (vuw << 24) | (vuz << 16) | (vuy << 8) | vux;\r\n return vec4(uintBitsToFloat(u), 1.0);\r\n }`;\r\n }\r\n\r\n return `\r\n ${prelude}\r\n vec3 pf[4];\r\n pf[0] = floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5);\r\n tc.x += g_vert_stepX;\r\n pf[1] = floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5);\r\n tc.x += g_vert_stepX;\r\n pf[2] = floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5);\r\n tc.x += g_vert_stepX;\r\n pf[3] = floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5);\r\n return vec4(decode3Float32(pf), 1.0);\r\n }`;\r\n}\r\n\r\n/** @internal */\r\nexport function addModelViewProjectionMatrix(vert: VertexShaderBuilder): void {\r\n if (vert.usesInstancedGeometry) {\r\n addModelViewMatrix(vert);\r\n addProjectionMatrix(vert);\r\n vert.addGlobal(\"g_mvp\", VariableType.Mat4);\r\n vert.addInitializer(\"g_mvp = u_proj * g_mv;\");\r\n } else {\r\n vert.addUniform(\"u_mvp\", VariableType.Mat4, (prog) => {\r\n prog.addGraphicUniform(\"u_mvp\", (uniform, params) => {\r\n params.target.uniforms.branch.bindModelViewProjectionMatrix(uniform, params.geometry, params.isViewCoords);\r\n });\r\n });\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function addProjectionMatrix(vert: VertexShaderBuilder): void {\r\n vert.addUniform(\"u_proj\", VariableType.Mat4, (prog) => {\r\n prog.addProgramUniform(\"u_proj\", (uniform, params) => {\r\n params.bindProjectionMatrix(uniform);\r\n });\r\n });\r\n}\r\n\r\nconst computeInstancedRtcMatrix = `\r\n g_instancedRtcMatrix = u_instanced_rtc * g_modelMatrixRTC;\r\n`;\r\n\r\n/** @internal */\r\nexport function addInstancedRtcMatrix(vert: VertexShaderBuilder): void {\r\n if (!vert.usesInstancedGeometry)\r\n return;\r\n\r\n assert(undefined !== vert.find(\"g_modelMatrixRTC\")); // set up in VertexShaderBuilder constructor...\r\n vert.addUniform(\"u_instanced_rtc\", VariableType.Mat4, (prog) => {\r\n prog.addGraphicUniform(\"u_instanced_rtc\", (uniform, params) => {\r\n const modelt = params.geometry.asInstanced!.getRtcOnlyTransform();\r\n uniform.setMatrix4(Matrix4.fromTransform(modelt));\r\n });\r\n });\r\n\r\n vert.addGlobal(\"g_instancedRtcMatrix\", VariableType.Mat4);\r\n vert.addInitializer(computeInstancedRtcMatrix);\r\n}\r\n\r\n/** @internal */\r\nexport function addModelViewMatrix(vert: VertexShaderBuilder): void {\r\n const bind = (uniform: UniformHandle, params: DrawParams) => {\r\n params.target.uniforms.branch.bindModelViewMatrix(uniform, params.geometry, params.isViewCoords);\r\n };\r\n\r\n if (vert.usesInstancedGeometry) {\r\n vert.addUniform(\"u_instanced_modelView\", VariableType.Mat4, (prog) => {\r\n prog.addGraphicUniform(\"u_instanced_modelView\", bind);\r\n });\r\n\r\n vert.addGlobal(\"g_mv\", VariableType.Mat4);\r\n vert.addInitializer(\"g_mv = u_instanced_modelView * g_modelMatrixRTC;\");\r\n } else {\r\n vert.addUniform(\"u_mv\", VariableType.Mat4, (prog) => {\r\n // ###TODO: We only need 3 rows, not 4...\r\n prog.addGraphicUniform(\"u_mv\", bind);\r\n });\r\n }\r\n}\r\n\r\nconst computeNormalMatrix = `\r\n g_nmx = mat3(u_modelViewN);\r\n g_nmx[0][0] *= u_frustumScale.x;\r\n g_nmx[1][1] *= u_frustumScale.y;\r\n`;\r\n\r\nconst computeNormalMatrix2 = `\r\n g_nmx = transpose(inverse(mat3(MAT_MV)));\r\n g_nmx[0][0] *= u_frustumScale.x;\r\n g_nmx[1][1] *= u_frustumScale.y;\r\n`;\r\n\r\nconst computeNormalMatrix1Inst = `\r\n g_nmx = mat3(MAT_MV);\r\n g_nmx[0][0] *= u_frustumScale.x;\r\n g_nmx[1][1] *= u_frustumScale.y;\r\n`;\r\n\r\n/** @internal */\r\nexport function addNormalMatrix(vert: VertexShaderBuilder, instanced: IsInstanced) {\r\n vert.addGlobal(\"g_nmx\", VariableType.Mat3);\r\n vert.addUniform(\"u_frustumScale\", VariableType.Vec2, (prog) => {\r\n prog.addGraphicUniform(\"u_frustumScale\", (uniform, params) => {\r\n const scale = params.target.uniforms.branch.top.frustumScale;\r\n uniform.setUniform2fv([scale.x, scale.y]);\r\n });\r\n });\r\n\r\n if (System.instance.capabilities.isWebGL2) {\r\n vert.addInitializer(computeNormalMatrix2);\r\n } else if (IsInstanced.Yes === instanced) {\r\n vert.addInitializer(computeNormalMatrix1Inst);\r\n } else {\r\n vert.addUniform(\"u_modelViewN\", VariableType.Mat3, (prog) => {\r\n prog.addGraphicUniform(\"u_modelViewN\", (uniform, params) => {\r\n params.target.uniforms.branch.bindModelViewNTransform(uniform, params.geometry, false);\r\n });\r\n });\r\n vert.addInitializer(computeNormalMatrix);\r\n }\r\n}\r\n\r\nfunction readVertexData(index: number): string {\r\n return `g_vertLutData${index} = floor(TEXTURE(u_vertLUT, tc) * 255.0 + 0.5);`;\r\n}\r\n\r\nconst nextVertexData = \"tc.x += g_vert_stepX;\";\r\n\r\nfunction readNextVertexData(index: number): string {\r\n return `\r\n ${nextVertexData}\r\n ${readVertexData(index)}`;\r\n}\r\n\r\nconst prereadVertexDataPrelude = `\r\n vec2 tc = g_vertexBaseCoords;\r\n ${readVertexData(0)}\r\n ${readNextVertexData(1)}\r\n ${readNextVertexData(2)}\r\n`;\r\n\r\nconst prereadQuantizedVertexData = `${prereadVertexDataPrelude}\r\n if (3.0 < u_vertParams.z) {\r\n ${readNextVertexData(3)}\r\n }\r\n`;\r\n\r\nconst prereadUnquantizedVertexData = `${prereadVertexDataPrelude}\r\n ${readNextVertexData(3)}\r\n ${readNextVertexData(4)}\r\n if (5.0 < u_vertParams.z) {\r\n ${readNextVertexData(5)}\r\n }\r\n`;\r\n\r\nconst scratchLutParams = new Float32Array(4);\r\nfunction addPositionFromLUT(vert: VertexShaderBuilder) {\r\n vert.addGlobal(\"g_vertexLUTIndex\", VariableType.Float);\r\n vert.addGlobal(\"g_vertexBaseCoords\", VariableType.Vec2);\r\n\r\n const unquantized = \"unquantized\" === vert.positionType;\r\n const maxRgbaPerVert = unquantized ? 6 : 4;\r\n for (let i = 0; i < maxRgbaPerVert; i++)\r\n vert.addGlobal(`g_vertLutData${i}`, VariableType.Vec4);\r\n\r\n vert.addFunction(decodeUint24);\r\n vert.addFunction(decodeUint16);\r\n\r\n if (unquantized) {\r\n if (System.instance.capabilities.isWebGL2) {\r\n vert.addFunction(computeUnquantizedPosition2);\r\n } else {\r\n vert.addFunction(decode3Float32);\r\n vert.addFunction(computeUnquantizedPosition1);\r\n }\r\n } else {\r\n vert.addFunction(computeVertexPositionFromLUT);\r\n }\r\n\r\n vert.addUniform(\"u_vertLUT\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_vertLUT\", (uniform, params) => {\r\n (params.geometry.asLUT!).lut.texture.bindSampler(uniform, TextureUnit.VertexLUT);\r\n });\r\n });\r\n\r\n vert.addUniform(\"u_vertParams\", VariableType.Vec4, (prog) => {\r\n prog.addGraphicUniform(\"u_vertParams\", (uniform, params) => {\r\n assert(undefined !== params.geometry.asLUT);\r\n const lut = params.geometry.asLUT.lut;\r\n const lutParams = scratchLutParams;\r\n lutParams[0] = lut.texture.width;\r\n lutParams[1] = lut.texture.height;\r\n lutParams[2] = lut.numRgbaPerVertex;\r\n lutParams[3] = lut.numVertices;\r\n uniform.setUniform4fv(lutParams);\r\n });\r\n });\r\n\r\n addLookupTable(vert, \"vert\", \"u_vertParams.z\");\r\n vert.addInitializer(initializeVertLUTCoords);\r\n\r\n vert.addGlobal(\"g_featureAndMaterialIndex\", VariableType.Vec4);\r\n\r\n // Read the vertex data from the vertex table up front. Yields a consistent (if unexplainable) small performance boost.\r\n vert.addInitializer(unquantized ? prereadUnquantizedVertexData : prereadQuantizedVertexData);\r\n}\r\n\r\n/** @internal */\r\nexport function addPosition(vert: VertexShaderBuilder, fromLUT: boolean) {\r\n if (!fromLUT || \"quantized\" === vert.positionType) {\r\n vert.addFunction(unquantizePosition);\r\n vert.addUniform(\"u_qScale\", VariableType.Vec3, (prog) => {\r\n prog.addGraphicUniform(\"u_qScale\", (uniform, params) => {\r\n assert(params.geometry.usesQuantizedPositions);\r\n uniform.setUniform3fv(params.geometry.qScale);\r\n });\r\n });\r\n vert.addUniform(\"u_qOrigin\", VariableType.Vec3, (prog) => {\r\n prog.addGraphicUniform(\"u_qOrigin\", (uniform, params) => {\r\n assert(params.geometry.usesQuantizedPositions);\r\n uniform.setUniform3fv(params.geometry.qOrigin);\r\n });\r\n });\r\n }\r\n\r\n if (!fromLUT) {\r\n vert.addFunction(computeQuantizedPosition);\r\n } else {\r\n addPositionFromLUT(vert);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function addAlpha(vert: VertexShaderBuilder): void {\r\n vert.addUniform(\"u_hasAlpha\", VariableType.Float, (prog) => {\r\n prog.addGraphicUniform(\"u_hasAlpha\", (uniform, params) => {\r\n uniform.setUniform1f(Pass.rendersTranslucent(params.geometry.getPass(params.target)) ? 1 : 0);\r\n });\r\n });\r\n}\r\n\r\n/** @internal */\r\nexport function addLineWeight(vert: VertexShaderBuilder): void {\r\n vert.addUniform(\"u_lineWeight\", VariableType.Float, (prog) => {\r\n prog.addGraphicUniform(\"u_lineWeight\", (attr, params) => {\r\n attr.setUniform1f(params.geometry.getLineWeight(params.programParams));\r\n });\r\n });\r\n\r\n vert.addGlobal(\"g_lineWeight\", VariableType.Float);\r\n if (vert.usesInstancedGeometry) {\r\n addInstanceOverrides(vert);\r\n vert.addInitializer(\"g_lineWeight = mix(u_lineWeight, a_instanceOverrides.g, extractInstanceBit(kOvrBit_Weight));\");\r\n } else {\r\n vert.addInitializer(\"g_lineWeight = u_lineWeight;\");\r\n }\r\n\r\n vert.addFunction(computeLineWeight);\r\n}\r\n\r\n/** @internal */\r\nexport function replaceLineWeight(vert: VertexShaderBuilder, func: string): void {\r\n vert.replaceFunction(computeLineWeight, func);\r\n}\r\n\r\n/** @internal */\r\nexport function addLineCode(vert: VertexShaderBuilder): void {\r\n vert.addUniform(\"u_lineCode\", VariableType.Float, (prog) => {\r\n prog.addGraphicUniform(\"u_lineCode\", (attr, params) => {\r\n attr.setUniform1f(params.geometry.getLineCode(params.programParams));\r\n });\r\n });\r\n\r\n vert.addGlobal(\"g_lineCode\", VariableType.Float);\r\n if (vert.usesInstancedGeometry) {\r\n addInstanceOverrides(vert);\r\n vert.addInitializer(\"g_lineCode = mix(u_lineCode, a_instanceOverrides.b, extractInstanceBit(kOvrBit_LineCode));\");\r\n } else {\r\n vert.addInitializer(\"g_lineCode = u_lineCode;\");\r\n }\r\n\r\n vert.addFunction(computeLineCode);\r\n}\r\n\r\n/** @internal */\r\nexport function replaceLineCode(vert: VertexShaderBuilder, func: string): void {\r\n vert.replaceFunction(computeLineCode, func);\r\n}\r\n\r\n// This vertex belongs to a triangle which should not be rendered. Produce a degenerate triangle.\r\n// Also place it outside NDC range (for GL_POINTS)\r\nconst discardVertex = ` {\r\n gl_Position = vec4(2.0, 2.0, 2.0, 1.0);\r\n return;\r\n }\r\n`;\r\n\r\n/** @internal */\r\nexport const earlyVertexDiscard = ` if (checkForEarlyDiscard(rawPosition))${discardVertex}`;\r\n/** @internal */\r\nexport const vertexDiscard = ` if (checkForDiscard())${discardVertex}`;\r\n/** @internal */\r\nexport const lateVertexDiscard = ` if (checkForLateDiscard())${discardVertex}`;\r\n"]}
@@ -6,6 +6,7 @@ import { TileTree } from "./internal";
6
6
  /** Interface adopted by an object that contains references to [[TileTree]]s, to expose those trees.
7
7
  * @see [[DisclosedTileTreeSet]].
8
8
  * @public
9
+ * @extensions
9
10
  */
10
11
  export interface TileTreeDiscloser {
11
12
  /** Add all [[TileTree]]s referenced by this object to the set. */
@@ -13,6 +14,7 @@ export interface TileTreeDiscloser {
13
14
  }
14
15
  /** A set of [[TileTree]]s disclosed by a set of objects implementing [[TileTreeDiscloser]], used to collect references to tile trees in use by those objects.
15
16
  * @public
17
+ * @extensions
16
18
  */
17
19
  export declare class DisclosedTileTreeSet implements Iterable<TileTree> {
18
20
  private readonly _processed;
@@ -1 +1 @@
1
- {"version":3,"file":"DisclosedTileTreeSet.d.ts","sourceRoot":"","sources":["../../../src/tile/DisclosedTileTreeSet.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAc,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,iBAAiB,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC1D;AAED;;GAEG;AACH,qBAAa,oBAAqB,YAAW,QAAQ,CAAC,QAAQ,CAAC;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAE9D;;OAEG;gBACgB,UAAU,CAAC,EAAE,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAIrE,wEAAwE;IACjE,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAInC,0CAA0C;IACnC,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAIhC;;OAEG;IACI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC;IAI9C,sCAAsC;IACtC,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,+DAA+D;IACxD,QAAQ,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAQnD,sCAAsC;IAC/B,KAAK,IAAI,IAAI;CAIrB"}
1
+ {"version":3,"file":"DisclosedTileTreeSet.d.ts","sourceRoot":"","sources":["../../../src/tile/DisclosedTileTreeSet.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAc,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,iBAAiB,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC1D;AAED;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,QAAQ,CAAC,QAAQ,CAAC;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAE9D;;OAEG;gBACgB,UAAU,CAAC,EAAE,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAIrE,wEAAwE;IACjE,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAInC,0CAA0C;IACnC,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAIhC;;OAEG;IACI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC;IAI9C,sCAAsC;IACtC,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,+DAA+D;IACxD,QAAQ,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAQnD,sCAAsC;IAC/B,KAAK,IAAI,IAAI;CAIrB"}
@@ -8,6 +8,7 @@
8
8
  import { OrderedSet } from "@itwin/core-bentley";
9
9
  /** A set of [[TileTree]]s disclosed by a set of objects implementing [[TileTreeDiscloser]], used to collect references to tile trees in use by those objects.
10
10
  * @public
11
+ * @extensions
11
12
  */
12
13
  export class DisclosedTileTreeSet {
13
14
  /** Construct a new set.
@@ -1 +1 @@
1
- {"version":3,"file":"DisclosedTileTreeSet.js","sourceRoot":"","sources":["../../../src/tile/DisclosedTileTreeSet.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAqB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAYpE;;GAEG;AACH,MAAM,OAAO,oBAAoB;IAI/B;;OAEG;IACH,YAAmB,UAAkD;QANpD,eAAU,GAAG,IAAI,GAAG,EAAqB,CAAC;QAOzD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,CAAW,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAY,CAAC;IACxF,CAAC;IAED,wEAAwE;IACjE,GAAG,CAAC,IAAc;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,0CAA0C;IACnC,GAAG,CAAC,IAAc;QACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxC,CAAC;IAED,sCAAsC;IACtC,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,+DAA+D;IACxD,QAAQ,CAAC,SAA4B;QAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;YAChC,OAAO;QAET,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/B,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,sCAAsC;IAC/B,KAAK;QACV,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { OrderedComparator, OrderedSet } from \"@itwin/core-bentley\";\r\nimport { TileTree } from \"./internal\";\r\n\r\n/** Interface adopted by an object that contains references to [[TileTree]]s, to expose those trees.\r\n * @see [[DisclosedTileTreeSet]].\r\n * @public\r\n */\r\nexport interface TileTreeDiscloser {\r\n /** Add all [[TileTree]]s referenced by this object to the set. */\r\n discloseTileTrees: (trees: DisclosedTileTreeSet) => void;\r\n}\r\n\r\n/** A set of [[TileTree]]s disclosed by a set of objects implementing [[TileTreeDiscloser]], used to collect references to tile trees in use by those objects.\r\n * @public\r\n */\r\nexport class DisclosedTileTreeSet implements Iterable<TileTree> {\r\n private readonly _processed = new Set<TileTreeDiscloser>();\r\n private readonly _trees: Set<TileTree> | OrderedSet<TileTree>;\r\n\r\n /** Construct a new set.\r\n * @param comparator If supplied, a comparison function used to determine the order of iteration of the set; otherwise, iteration will proceed in insertion order.\r\n */\r\n public constructor(comparator?: OrderedComparator<TileTree, TileTree>) {\r\n this._trees = comparator ? new OrderedSet<TileTree>(comparator) : new Set<TileTree>();\r\n }\r\n\r\n /** Returns true if the specified tree has been [[add]]ed to the set. */\r\n public has(tree: TileTree): boolean {\r\n return this._trees.has(tree);\r\n }\r\n\r\n /** Adds the specified tree to the set. */\r\n public add(tree: TileTree): void {\r\n this._trees.add(tree);\r\n }\r\n\r\n /** Iterates all trees in the set.\r\n * @note Do not [[add]] to the set during iteration.\r\n */\r\n public [Symbol.iterator](): Iterator<TileTree> {\r\n return this._trees[Symbol.iterator]();\r\n }\r\n\r\n /** The number of trees in the set. */\r\n public get size(): number {\r\n return this._trees.size;\r\n }\r\n\r\n /** Add all tile trees referenced by `discloser` to the set. */\r\n public disclose(discloser: TileTreeDiscloser): void {\r\n if (this._processed.has(discloser))\r\n return;\r\n\r\n this._processed.add(discloser);\r\n discloser.discloseTileTrees(this);\r\n }\r\n\r\n /** Clear the contents of this set. */\r\n public clear(): void {\r\n this._processed.clear();\r\n this._trees.clear();\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"DisclosedTileTreeSet.js","sourceRoot":"","sources":["../../../src/tile/DisclosedTileTreeSet.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAqB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAapE;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IAI/B;;OAEG;IACH,YAAmB,UAAkD;QANpD,eAAU,GAAG,IAAI,GAAG,EAAqB,CAAC;QAOzD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,CAAW,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAY,CAAC;IACxF,CAAC;IAED,wEAAwE;IACjE,GAAG,CAAC,IAAc;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,0CAA0C;IACnC,GAAG,CAAC,IAAc;QACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxC,CAAC;IAED,sCAAsC;IACtC,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,+DAA+D;IACxD,QAAQ,CAAC,SAA4B;QAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;YAChC,OAAO;QAET,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/B,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,sCAAsC;IAC/B,KAAK;QACV,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { OrderedComparator, OrderedSet } from \"@itwin/core-bentley\";\r\nimport { TileTree } from \"./internal\";\r\n\r\n/** Interface adopted by an object that contains references to [[TileTree]]s, to expose those trees.\r\n * @see [[DisclosedTileTreeSet]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface TileTreeDiscloser {\r\n /** Add all [[TileTree]]s referenced by this object to the set. */\r\n discloseTileTrees: (trees: DisclosedTileTreeSet) => void;\r\n}\r\n\r\n/** A set of [[TileTree]]s disclosed by a set of objects implementing [[TileTreeDiscloser]], used to collect references to tile trees in use by those objects.\r\n * @public\r\n * @extensions\r\n */\r\nexport class DisclosedTileTreeSet implements Iterable<TileTree> {\r\n private readonly _processed = new Set<TileTreeDiscloser>();\r\n private readonly _trees: Set<TileTree> | OrderedSet<TileTree>;\r\n\r\n /** Construct a new set.\r\n * @param comparator If supplied, a comparison function used to determine the order of iteration of the set; otherwise, iteration will proceed in insertion order.\r\n */\r\n public constructor(comparator?: OrderedComparator<TileTree, TileTree>) {\r\n this._trees = comparator ? new OrderedSet<TileTree>(comparator) : new Set<TileTree>();\r\n }\r\n\r\n /** Returns true if the specified tree has been [[add]]ed to the set. */\r\n public has(tree: TileTree): boolean {\r\n return this._trees.has(tree);\r\n }\r\n\r\n /** Adds the specified tree to the set. */\r\n public add(tree: TileTree): void {\r\n this._trees.add(tree);\r\n }\r\n\r\n /** Iterates all trees in the set.\r\n * @note Do not [[add]] to the set during iteration.\r\n */\r\n public [Symbol.iterator](): Iterator<TileTree> {\r\n return this._trees[Symbol.iterator]();\r\n }\r\n\r\n /** The number of trees in the set. */\r\n public get size(): number {\r\n return this._trees.size;\r\n }\r\n\r\n /** Add all tile trees referenced by `discloser` to the set. */\r\n public disclose(discloser: TileTreeDiscloser): void {\r\n if (this._processed.has(discloser))\r\n return;\r\n\r\n this._processed.add(discloser);\r\n discloser.discloseTileTrees(this);\r\n }\r\n\r\n /** Clear the contents of this set. */\r\n public clear(): void {\r\n this._processed.clear();\r\n this._trees.clear();\r\n }\r\n}\r\n"]}
@@ -6,16 +6,16 @@ import { IModelTile, IModelTileContent, TileRequestChannel } from "./internal";
6
6
  * @internal
7
7
  */
8
8
  export declare class IModelTileRequestChannels {
9
- private _cloudStorage?;
9
+ private _cloudStorage;
10
10
  private readonly _contentCache?;
11
11
  readonly rpc: TileRequestChannel;
12
12
  constructor(args: {
13
13
  concurrency: number;
14
14
  usesHttp: boolean;
15
15
  cacheMetadata: boolean;
16
+ cacheConcurrency: number;
16
17
  });
17
- get cloudStorage(): TileRequestChannel | undefined;
18
- enableCloudStorageCache(concurrency: number): TileRequestChannel;
18
+ get cloudStorage(): TileRequestChannel;
19
19
  [Symbol.iterator](): Iterator<TileRequestChannel>;
20
20
  setRpcConcurrency(concurrency: number): void;
21
21
  getChannelForTile(tile: IModelTile): TileRequestChannel;
@@ -1 +1 @@
1
- {"version":3,"file":"IModelTileRequestChannels.d.ts","sourceRoot":"","sources":["../../../src/tile/IModelTileRequestChannels.ts"],"names":[],"mappings":"AAIA;;GAEG;AAOH,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAqB,kBAAkB,EAAY,MAAM,YAAY,CAAC;AAoI5G;;GAEG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,aAAa,CAAC,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAiC;IAChE,SAAgB,GAAG,EAAE,kBAAkB,CAAC;gBAErB,IAAI,EAAE;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;KACxB;IAUD,IAAW,YAAY,IAAI,kBAAkB,GAAG,SAAS,CAExD;IAEM,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB;IAOhE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,kBAAkB,CAAC;IAWjD,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAI5C,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,kBAAkB;IAI9D,0BAA0B;IACnB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,iBAAiB,GAAG,SAAS;CAGzE"}
1
+ {"version":3,"file":"IModelTileRequestChannels.d.ts","sourceRoot":"","sources":["../../../src/tile/IModelTileRequestChannels.ts"],"names":[],"mappings":"AAIA;;GAEG;AAOH,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAqB,kBAAkB,EAAY,MAAM,YAAY,CAAC;AAoI5G;;GAEG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAiC;IAChE,SAAgB,GAAG,EAAE,kBAAkB,CAAC;gBAErB,IAAI,EAAE;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;KAC1B;IAaD,IAAW,YAAY,IAAI,kBAAkB,CAE5C;IAEM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,kBAAkB,CAAC;IAWjD,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAI5C,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,kBAAkB;IAI9D,0BAA0B;IACnB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,iBAAiB,GAAG,SAAS;CAGzE"}
@@ -123,23 +123,19 @@ class IModelTileMetadataCacheChannel extends TileRequestChannel {
123
123
  */
124
124
  export class IModelTileRequestChannels {
125
125
  constructor(args) {
126
+ var _a;
126
127
  const channelName = "itwinjs-tile-rpc";
127
128
  this.rpc = args.usesHttp ? new TileRequestChannel(channelName, args.concurrency) : new IModelTileChannel(channelName, args.concurrency);
128
- if (!args.cacheMetadata)
129
- return;
130
- this._contentCache = new IModelTileMetadataCacheChannel();
131
- this._contentCache.registerChannel(this.rpc);
129
+ if (args.cacheMetadata) {
130
+ this._contentCache = new IModelTileMetadataCacheChannel();
131
+ this._contentCache.registerChannel(this.rpc);
132
+ }
133
+ this._cloudStorage = new CloudStorageCacheChannel("itwinjs-cloud-cache", args.cacheConcurrency);
134
+ (_a = this._contentCache) === null || _a === void 0 ? void 0 : _a.registerChannel(this._cloudStorage);
132
135
  }
133
136
  get cloudStorage() {
134
137
  return this._cloudStorage;
135
138
  }
136
- enableCloudStorageCache(concurrency) {
137
- var _a;
138
- assert(undefined === this._cloudStorage);
139
- this._cloudStorage = new CloudStorageCacheChannel("itwinjs-cloud-cache", concurrency);
140
- (_a = this._contentCache) === null || _a === void 0 ? void 0 : _a.registerChannel(this._cloudStorage);
141
- return this._cloudStorage;
142
- }
143
139
  [Symbol.iterator]() {
144
140
  const channels = [this.rpc];
145
141
  if (this._cloudStorage)
@@ -1 +1 @@
1
- {"version":3,"file":"IModelTileRequestChannels.js","sourceRoot":"","sources":["../../../src/tile/IModelTileRequestChannels.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { assert, compareStrings, SortedArray } from \"@itwin/core-bentley\";\r\nimport { TileTreeContentIds } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IpcApp } from \"../IpcApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { IModelTile, IModelTileContent, Tile, TileRequest, TileRequestChannel, TileTree } from \"./internal\";\r\n\r\n/** Handles requests to the cloud storage tile cache, if one is configured. If a tile's content is not found in the cache, subsequent requests for the same tile will\r\n * use the IModelTileChannel instead.\r\n */\r\nclass CloudStorageCacheChannel extends TileRequestChannel {\r\n public override async requestContent(tile: Tile): Promise<TileRequest.Response> {\r\n assert(tile instanceof IModelTile);\r\n return IModelApp.tileAdmin.requestCachedTileContent(tile);\r\n }\r\n\r\n public override onNoContent(request: TileRequest): boolean {\r\n assert(request.tile instanceof IModelTile);\r\n request.tile.requestChannel = IModelApp.tileAdmin.channels.iModelChannels.rpc;\r\n ++this._statistics.totalCacheMisses;\r\n return true;\r\n }\r\n}\r\n\r\n/** For an [[IpcApp]], allows backend tile generation requests in progress to be canceled. */\r\nclass IModelTileChannel extends TileRequestChannel {\r\n private readonly _canceled = new Map<IModelConnection, Map<string, Set<string>>>();\r\n\r\n public override onActiveRequestCanceled(request: TileRequest): void {\r\n const tree = request.tile.tree;\r\n let entry = this._canceled.get(tree.iModel);\r\n if (!entry)\r\n this._canceled.set(tree.iModel, entry = new Map<string, Set<string>>());\r\n\r\n let ids = entry.get(tree.id);\r\n if (!ids)\r\n entry.set(tree.id, ids = new Set<string>());\r\n\r\n ids.add(request.tile.contentId);\r\n }\r\n\r\n public override processCancellations(): void {\r\n for (const [imodel, entries] of this._canceled) {\r\n const treeContentIds: TileTreeContentIds[] = [];\r\n for (const [treeId, tileIds] of entries) {\r\n const contentIds = Array.from(tileIds);\r\n treeContentIds.push({ treeId, contentIds });\r\n this._statistics.totalAbortedRequests += contentIds.length;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n IpcApp.callIpcHost(\"cancelTileContentRequests\", imodel.getRpcProps(), treeContentIds);\r\n }\r\n\r\n this._canceled.clear();\r\n }\r\n\r\n public override onIModelClosed(imodel: IModelConnection): void {\r\n this._canceled.delete(imodel);\r\n }\r\n}\r\n\r\ninterface CachedContent extends Omit<IModelTileContent, \"graphic\"> {\r\n contentId: string;\r\n hasGraphic: boolean;\r\n}\r\n\r\n/** If TileAdmin.Props.cacheTileMetadata is true, then this is the first channel through which we request content for an IModelTile.\r\n * It serves a niche purpose: a tile pre-generation agent that wants to ensure that every tile selected during interaction with the application\r\n * has its tile generated and cached in cloud storage. This agent might request thousands of tiles in sequence, causing a given tile to be discarded\r\n * and reloaded many times. To avoid pointlessly reloading tiles whose contents have already been generated, this channel caches the metadata for each tile;\r\n * on subsequent requests for the same tile, it produces the metadata and an empty RenderGraphic.\r\n */\r\nclass IModelTileMetadataCacheChannel extends TileRequestChannel {\r\n private readonly _cacheByIModel = new Map<IModelConnection, Map<TileTree, SortedArray<CachedContent>>>();\r\n\r\n public constructor() {\r\n super(\"itwinjs-imodel-metadata-cache\", 100);\r\n }\r\n\r\n public override onNoContent(request: TileRequest): boolean {\r\n assert(request.tile instanceof IModelTile);\r\n const channels = IModelApp.tileAdmin.channels.iModelChannels;\r\n request.tile.requestChannel = channels.cloudStorage ?? channels.rpc;\r\n return true;\r\n }\r\n\r\n public override async requestContent(tile: Tile): Promise<TileRequest.Response> {\r\n assert(tile instanceof IModelTile);\r\n const content = this.getCachedContent(tile);\r\n return content ? { content } : undefined;\r\n }\r\n\r\n public getCachedContent(tile: IModelTile): IModelTileContent | undefined {\r\n const cached = this._cacheByIModel.get(tile.iModel)?.get(tile.tree)?.findEquivalent((x) => compareStrings(x.contentId, tile.contentId));\r\n if (!cached)\r\n return undefined;\r\n\r\n const content: IModelTileContent = {\r\n ...cached,\r\n graphic: cached.hasGraphic ? IModelApp.renderSystem.createGraphicList([]) : undefined,\r\n contentRange: cached.contentRange?.clone(),\r\n };\r\n\r\n return content;\r\n }\r\n\r\n public override onIModelClosed(imodel: IModelConnection): void {\r\n this._cacheByIModel.delete(imodel);\r\n }\r\n\r\n public registerChannel(channel: TileRequestChannel): void {\r\n channel.contentCallback = (tile, content) => this.cache(tile, content);\r\n }\r\n\r\n private cache(tile: Tile, content: IModelTileContent): void {\r\n assert(tile instanceof IModelTile);\r\n let trees = this._cacheByIModel.get(tile.iModel);\r\n if (!trees)\r\n this._cacheByIModel.set(tile.iModel, trees = new Map<TileTree, SortedArray<CachedContent>>());\r\n\r\n let list = trees.get(tile.tree);\r\n if (!list)\r\n trees.set(tile.tree, list = new SortedArray<CachedContent>((lhs, rhs) => compareStrings(lhs.contentId, rhs.contentId)));\r\n\r\n assert(undefined === list.findEquivalent((x) => compareStrings(x.contentId, tile.contentId)));\r\n list.insert({\r\n contentId: tile.contentId,\r\n hasGraphic: undefined !== content.graphic,\r\n contentRange: content.contentRange?.clone(),\r\n isLeaf: content.isLeaf,\r\n sizeMultiplier: content.sizeMultiplier,\r\n emptySubRangeMask: content.emptySubRangeMask,\r\n });\r\n }\r\n}\r\n\r\n/** TileRequestChannels used for requesting content for IModelTiles.\r\n * @internal\r\n */\r\nexport class IModelTileRequestChannels {\r\n private _cloudStorage?: TileRequestChannel;\r\n private readonly _contentCache?: IModelTileMetadataCacheChannel;\r\n public readonly rpc: TileRequestChannel;\r\n\r\n public constructor(args: {\r\n concurrency: number;\r\n usesHttp: boolean;\r\n cacheMetadata: boolean;\r\n }) {\r\n const channelName = \"itwinjs-tile-rpc\";\r\n this.rpc = args.usesHttp ? new TileRequestChannel(channelName, args.concurrency) : new IModelTileChannel(channelName, args.concurrency);\r\n if (!args.cacheMetadata)\r\n return;\r\n\r\n this._contentCache = new IModelTileMetadataCacheChannel();\r\n this._contentCache.registerChannel(this.rpc);\r\n }\r\n\r\n public get cloudStorage(): TileRequestChannel | undefined {\r\n return this._cloudStorage;\r\n }\r\n\r\n public enableCloudStorageCache(concurrency: number): TileRequestChannel {\r\n assert(undefined === this._cloudStorage);\r\n this._cloudStorage = new CloudStorageCacheChannel(\"itwinjs-cloud-cache\", concurrency);\r\n this._contentCache?.registerChannel(this._cloudStorage);\r\n return this._cloudStorage;\r\n }\r\n\r\n public [Symbol.iterator](): Iterator<TileRequestChannel> {\r\n const channels = [this.rpc];\r\n if (this._cloudStorage)\r\n channels.push(this._cloudStorage);\r\n\r\n if (this._contentCache)\r\n channels.push(this._contentCache);\r\n\r\n return channels[Symbol.iterator]();\r\n }\r\n\r\n public setRpcConcurrency(concurrency: number): void {\r\n this.rpc.concurrency = concurrency;\r\n }\r\n\r\n public getChannelForTile(tile: IModelTile): TileRequestChannel {\r\n return tile.requestChannel || this._contentCache || this._cloudStorage || this.rpc;\r\n }\r\n\r\n /** Strictly for tests. */\r\n public getCachedContent(tile: IModelTile): IModelTileContent | undefined {\r\n return this._contentCache?.getCachedContent(tile);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"IModelTileRequestChannels.js","sourceRoot":"","sources":["../../../src/tile/IModelTileRequestChannels.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { assert, compareStrings, SortedArray } from \"@itwin/core-bentley\";\r\nimport { TileTreeContentIds } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IpcApp } from \"../IpcApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { IModelTile, IModelTileContent, Tile, TileRequest, TileRequestChannel, TileTree } from \"./internal\";\r\n\r\n/** Handles requests to the cloud storage tile cache, if one is configured. If a tile's content is not found in the cache, subsequent requests for the same tile will\r\n * use the IModelTileChannel instead.\r\n */\r\nclass CloudStorageCacheChannel extends TileRequestChannel {\r\n public override async requestContent(tile: Tile): Promise<TileRequest.Response> {\r\n assert(tile instanceof IModelTile);\r\n return IModelApp.tileAdmin.requestCachedTileContent(tile);\r\n }\r\n\r\n public override onNoContent(request: TileRequest): boolean {\r\n assert(request.tile instanceof IModelTile);\r\n request.tile.requestChannel = IModelApp.tileAdmin.channels.iModelChannels.rpc;\r\n ++this._statistics.totalCacheMisses;\r\n return true;\r\n }\r\n}\r\n\r\n/** For an [[IpcApp]], allows backend tile generation requests in progress to be canceled. */\r\nclass IModelTileChannel extends TileRequestChannel {\r\n private readonly _canceled = new Map<IModelConnection, Map<string, Set<string>>>();\r\n\r\n public override onActiveRequestCanceled(request: TileRequest): void {\r\n const tree = request.tile.tree;\r\n let entry = this._canceled.get(tree.iModel);\r\n if (!entry)\r\n this._canceled.set(tree.iModel, entry = new Map<string, Set<string>>());\r\n\r\n let ids = entry.get(tree.id);\r\n if (!ids)\r\n entry.set(tree.id, ids = new Set<string>());\r\n\r\n ids.add(request.tile.contentId);\r\n }\r\n\r\n public override processCancellations(): void {\r\n for (const [imodel, entries] of this._canceled) {\r\n const treeContentIds: TileTreeContentIds[] = [];\r\n for (const [treeId, tileIds] of entries) {\r\n const contentIds = Array.from(tileIds);\r\n treeContentIds.push({ treeId, contentIds });\r\n this._statistics.totalAbortedRequests += contentIds.length;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n IpcApp.callIpcHost(\"cancelTileContentRequests\", imodel.getRpcProps(), treeContentIds);\r\n }\r\n\r\n this._canceled.clear();\r\n }\r\n\r\n public override onIModelClosed(imodel: IModelConnection): void {\r\n this._canceled.delete(imodel);\r\n }\r\n}\r\n\r\ninterface CachedContent extends Omit<IModelTileContent, \"graphic\"> {\r\n contentId: string;\r\n hasGraphic: boolean;\r\n}\r\n\r\n/** If TileAdmin.Props.cacheTileMetadata is true, then this is the first channel through which we request content for an IModelTile.\r\n * It serves a niche purpose: a tile pre-generation agent that wants to ensure that every tile selected during interaction with the application\r\n * has its tile generated and cached in cloud storage. This agent might request thousands of tiles in sequence, causing a given tile to be discarded\r\n * and reloaded many times. To avoid pointlessly reloading tiles whose contents have already been generated, this channel caches the metadata for each tile;\r\n * on subsequent requests for the same tile, it produces the metadata and an empty RenderGraphic.\r\n */\r\nclass IModelTileMetadataCacheChannel extends TileRequestChannel {\r\n private readonly _cacheByIModel = new Map<IModelConnection, Map<TileTree, SortedArray<CachedContent>>>();\r\n\r\n public constructor() {\r\n super(\"itwinjs-imodel-metadata-cache\", 100);\r\n }\r\n\r\n public override onNoContent(request: TileRequest): boolean {\r\n assert(request.tile instanceof IModelTile);\r\n const channels = IModelApp.tileAdmin.channels.iModelChannels;\r\n request.tile.requestChannel = channels.cloudStorage ?? channels.rpc;\r\n return true;\r\n }\r\n\r\n public override async requestContent(tile: Tile): Promise<TileRequest.Response> {\r\n assert(tile instanceof IModelTile);\r\n const content = this.getCachedContent(tile);\r\n return content ? { content } : undefined;\r\n }\r\n\r\n public getCachedContent(tile: IModelTile): IModelTileContent | undefined {\r\n const cached = this._cacheByIModel.get(tile.iModel)?.get(tile.tree)?.findEquivalent((x) => compareStrings(x.contentId, tile.contentId));\r\n if (!cached)\r\n return undefined;\r\n\r\n const content: IModelTileContent = {\r\n ...cached,\r\n graphic: cached.hasGraphic ? IModelApp.renderSystem.createGraphicList([]) : undefined,\r\n contentRange: cached.contentRange?.clone(),\r\n };\r\n\r\n return content;\r\n }\r\n\r\n public override onIModelClosed(imodel: IModelConnection): void {\r\n this._cacheByIModel.delete(imodel);\r\n }\r\n\r\n public registerChannel(channel: TileRequestChannel): void {\r\n channel.contentCallback = (tile, content) => this.cache(tile, content);\r\n }\r\n\r\n private cache(tile: Tile, content: IModelTileContent): void {\r\n assert(tile instanceof IModelTile);\r\n let trees = this._cacheByIModel.get(tile.iModel);\r\n if (!trees)\r\n this._cacheByIModel.set(tile.iModel, trees = new Map<TileTree, SortedArray<CachedContent>>());\r\n\r\n let list = trees.get(tile.tree);\r\n if (!list)\r\n trees.set(tile.tree, list = new SortedArray<CachedContent>((lhs, rhs) => compareStrings(lhs.contentId, rhs.contentId)));\r\n\r\n assert(undefined === list.findEquivalent((x) => compareStrings(x.contentId, tile.contentId)));\r\n list.insert({\r\n contentId: tile.contentId,\r\n hasGraphic: undefined !== content.graphic,\r\n contentRange: content.contentRange?.clone(),\r\n isLeaf: content.isLeaf,\r\n sizeMultiplier: content.sizeMultiplier,\r\n emptySubRangeMask: content.emptySubRangeMask,\r\n });\r\n }\r\n}\r\n\r\n/** TileRequestChannels used for requesting content for IModelTiles.\r\n * @internal\r\n */\r\nexport class IModelTileRequestChannels {\r\n private _cloudStorage: TileRequestChannel;\r\n private readonly _contentCache?: IModelTileMetadataCacheChannel;\r\n public readonly rpc: TileRequestChannel;\r\n\r\n public constructor(args: {\r\n concurrency: number;\r\n usesHttp: boolean;\r\n cacheMetadata: boolean;\r\n cacheConcurrency: number;\r\n }) {\r\n const channelName = \"itwinjs-tile-rpc\";\r\n this.rpc = args.usesHttp ? new TileRequestChannel(channelName, args.concurrency) : new IModelTileChannel(channelName, args.concurrency);\r\n\r\n if (args.cacheMetadata) {\r\n this._contentCache = new IModelTileMetadataCacheChannel();\r\n this._contentCache.registerChannel(this.rpc);\r\n }\r\n\r\n this._cloudStorage = new CloudStorageCacheChannel(\"itwinjs-cloud-cache\", args.cacheConcurrency);\r\n this._contentCache?.registerChannel(this._cloudStorage);\r\n }\r\n\r\n public get cloudStorage(): TileRequestChannel {\r\n return this._cloudStorage;\r\n }\r\n\r\n public [Symbol.iterator](): Iterator<TileRequestChannel> {\r\n const channels = [this.rpc];\r\n if (this._cloudStorage)\r\n channels.push(this._cloudStorage);\r\n\r\n if (this._contentCache)\r\n channels.push(this._contentCache);\r\n\r\n return channels[Symbol.iterator]();\r\n }\r\n\r\n public setRpcConcurrency(concurrency: number): void {\r\n this.rpc.concurrency = concurrency;\r\n }\r\n\r\n public getChannelForTile(tile: IModelTile): TileRequestChannel {\r\n return tile.requestChannel || this._contentCache || this._cloudStorage || this.rpc;\r\n }\r\n\r\n /** Strictly for tests. */\r\n public getCachedContent(tile: IModelTile): IModelTileContent | undefined {\r\n return this._contentCache?.getCachedContent(tile);\r\n }\r\n}\r\n"]}
@@ -37,6 +37,7 @@ export declare class GltfHeader extends TileHeader {
37
37
  * @param is3d True if the graphics are 3d.
38
38
  * @param options Options customizing how [Feature]($common)s within the graphic can be resymbolized; or false if you don't want to produce a batch.
39
39
  * @public
40
+ * @extensions
40
41
  */
41
42
  export declare function readElementGraphics(bytes: Uint8Array, iModel: IModelConnection, modelId: Id64String, is3d: boolean, options?: BatchOptions | false): Promise<RenderGraphic | undefined>;
42
43
  /** Describes a [ColorDef]($common) as [r, g, b] with each component in [0..1]. */
@@ -1 +1 @@
1
- {"version":3,"file":"ImdlReader.d.ts","sourceRoot":"","sources":["../../../src/tile/ImdlReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImdlReader.d.ts","sourceRoot":"","sources":["../../../src/tile/ImdlReader.ts"],"names":[],"mappings":"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"}
@@ -67,6 +67,7 @@ export class GltfHeader extends TileHeader {
67
67
  * @param is3d True if the graphics are 3d.
68
68
  * @param options Options customizing how [Feature]($common)s within the graphic can be resymbolized; or false if you don't want to produce a batch.
69
69
  * @public
70
+ * @extensions
70
71
  */
71
72
  export async function readElementGraphics(bytes, iModel, modelId, is3d, options) {
72
73
  const stream = ByteStream.fromUint8Array(bytes);