@itwin/core-frontend 4.10.0-dev.30 → 4.10.0-dev.32

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 (385) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/lib/cjs/AccuDraw.js +2 -2
  3. package/lib/cjs/AccuDraw.js.map +1 -1
  4. package/lib/cjs/AccuSnap.d.ts.map +1 -1
  5. package/lib/cjs/AccuSnap.js +7 -2
  6. package/lib/cjs/AccuSnap.js.map +1 -1
  7. package/lib/cjs/BackgroundMapGeometry.js +3 -3
  8. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  9. package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
  10. package/lib/cjs/BriefcaseTxns.d.ts.map +1 -1
  11. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  12. package/lib/cjs/DrawingViewState.d.ts +3 -3
  13. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  14. package/lib/cjs/DrawingViewState.js +9 -8
  15. package/lib/cjs/DrawingViewState.js.map +1 -1
  16. package/lib/cjs/GraphicalEditingScope.d.ts.map +1 -1
  17. package/lib/cjs/HitDetail.d.ts +36 -7
  18. package/lib/cjs/HitDetail.d.ts.map +1 -1
  19. package/lib/cjs/HitDetail.js +11 -3
  20. package/lib/cjs/HitDetail.js.map +1 -1
  21. package/lib/cjs/IModelApp.d.ts.map +1 -1
  22. package/lib/cjs/LinePlaneIntersect.js +1 -2
  23. package/lib/cjs/LinePlaneIntersect.js.map +1 -1
  24. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  25. package/lib/cjs/NotificationManager.d.ts +2 -2
  26. package/lib/cjs/NotificationManager.d.ts.map +1 -1
  27. package/lib/cjs/SheetViewState.d.ts +3 -3
  28. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  29. package/lib/cjs/SheetViewState.js +18 -5
  30. package/lib/cjs/SheetViewState.js.map +1 -1
  31. package/lib/cjs/ViewGlobalLocation.js +9 -9
  32. package/lib/cjs/ViewGlobalLocation.js.map +1 -1
  33. package/lib/cjs/ViewState.d.ts +16 -7
  34. package/lib/cjs/ViewState.d.ts.map +1 -1
  35. package/lib/cjs/ViewState.js +4 -4
  36. package/lib/cjs/ViewState.js.map +1 -1
  37. package/lib/cjs/Viewport.d.ts.map +1 -1
  38. package/lib/cjs/Viewport.js +1 -0
  39. package/lib/cjs/Viewport.js.map +1 -1
  40. package/lib/cjs/ViewportSync.js +6 -6
  41. package/lib/cjs/ViewportSync.js.map +1 -1
  42. package/lib/cjs/common/ImageUtil.js +15 -16
  43. package/lib/cjs/common/ImageUtil.js.map +1 -1
  44. package/lib/cjs/common/WorkerProxy.js +1 -2
  45. package/lib/cjs/common/WorkerProxy.js.map +1 -1
  46. package/lib/cjs/common/gltf/GltfParser.js +1 -2
  47. package/lib/cjs/common/gltf/GltfParser.js.map +1 -1
  48. package/lib/cjs/common/gltf/GltfSchema.js +5 -5
  49. package/lib/cjs/common/gltf/GltfSchema.js.map +1 -1
  50. package/lib/cjs/common/imdl/CompactEdges.js +1 -2
  51. package/lib/cjs/common/imdl/CompactEdges.js.map +1 -1
  52. package/lib/cjs/common/imdl/ImdlModel.js +2 -3
  53. package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
  54. package/lib/cjs/common/imdl/ParseImdlDocument.js +6 -7
  55. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
  56. package/lib/cjs/common/internal/render/EdgeParams.js +2 -3
  57. package/lib/cjs/common/internal/render/EdgeParams.js.map +1 -1
  58. package/lib/cjs/common/internal/render/GeometryList.d.ts +1 -1
  59. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js +3 -3
  60. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -1
  61. package/lib/cjs/common/internal/render/LineCode.js +1 -2
  62. package/lib/cjs/common/internal/render/LineCode.js.map +1 -1
  63. package/lib/cjs/common/internal/render/MeshPrimitives.js +3 -3
  64. package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -1
  65. package/lib/cjs/common/internal/render/PointStringParams.js +1 -2
  66. package/lib/cjs/common/internal/render/PointStringParams.js.map +1 -1
  67. package/lib/cjs/common/internal/render/PolylineParams.js +4 -5
  68. package/lib/cjs/common/internal/render/PolylineParams.js.map +1 -1
  69. package/lib/cjs/common/internal/render/SurfaceParams.js +3 -3
  70. package/lib/cjs/common/internal/render/SurfaceParams.js.map +1 -1
  71. package/lib/cjs/common/internal/render/VertexTable.js +1 -2
  72. package/lib/cjs/common/internal/render/VertexTable.js.map +1 -1
  73. package/lib/cjs/common/internal/render/VertexTableBuilder.js +2 -2
  74. package/lib/cjs/common/internal/render/VertexTableBuilder.js.map +1 -1
  75. package/lib/cjs/common/internal/render/VertexTableSplitter.js +4 -4
  76. package/lib/cjs/common/internal/render/VertexTableSplitter.js.map +1 -1
  77. package/lib/cjs/extension/providers/ExtensionLoadScript.js +1 -2
  78. package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
  79. package/lib/cjs/internal/render/RenderInstancesParamsImpl.js +2 -3
  80. package/lib/cjs/internal/render/RenderInstancesParamsImpl.js.map +1 -1
  81. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  82. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js +2 -2
  83. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  84. package/lib/cjs/quantity-formatting/QuantityFormatter.js +3 -3
  85. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  86. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.d.ts.map +1 -1
  87. package/lib/cjs/render/GraphicBranch.d.ts +3 -1
  88. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  89. package/lib/cjs/render/GraphicBranch.js +2 -2
  90. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  91. package/lib/cjs/render/GraphicTemplate.js +1 -2
  92. package/lib/cjs/render/GraphicTemplate.js.map +1 -1
  93. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  94. package/lib/cjs/render/Pixel.d.ts +9 -7
  95. package/lib/cjs/render/Pixel.d.ts.map +1 -1
  96. package/lib/cjs/render/Pixel.js +20 -5
  97. package/lib/cjs/render/Pixel.js.map +1 -1
  98. package/lib/cjs/render/RenderPlan.js +3 -3
  99. package/lib/cjs/render/RenderPlan.js.map +1 -1
  100. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  101. package/lib/cjs/render/UpsampleRealityMeshParams.js +1 -2
  102. package/lib/cjs/render/UpsampleRealityMeshParams.js.map +1 -1
  103. package/lib/cjs/render/VisibleFeature.js +1 -2
  104. package/lib/cjs/render/VisibleFeature.js.map +1 -1
  105. package/lib/cjs/render/webgl/AttributeBuffers.js +5 -5
  106. package/lib/cjs/render/webgl/AttributeBuffers.js.map +1 -1
  107. package/lib/cjs/render/webgl/BranchState.d.ts +2 -0
  108. package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
  109. package/lib/cjs/render/webgl/BranchState.js +2 -0
  110. package/lib/cjs/render/webgl/BranchState.js.map +1 -1
  111. package/lib/cjs/render/webgl/ClippingProgram.js +2 -2
  112. package/lib/cjs/render/webgl/ClippingProgram.js.map +1 -1
  113. package/lib/cjs/render/webgl/DrawCommand.js +3 -3
  114. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  115. package/lib/cjs/render/webgl/FeatureOverrides.js +2 -2
  116. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  117. package/lib/cjs/render/webgl/FrustumUniforms.js +2 -2
  118. package/lib/cjs/render/webgl/FrustumUniforms.js.map +1 -1
  119. package/lib/cjs/render/webgl/Graphic.d.ts +3 -0
  120. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  121. package/lib/cjs/render/webgl/Graphic.js +4 -0
  122. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  123. package/lib/cjs/render/webgl/InstancedGeometry.js +2 -2
  124. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  125. package/lib/cjs/render/webgl/Material.js +2 -2
  126. package/lib/cjs/render/webgl/Material.js.map +1 -1
  127. package/lib/cjs/render/webgl/Matrix.js +3 -3
  128. package/lib/cjs/render/webgl/Matrix.js.map +1 -1
  129. package/lib/cjs/render/webgl/RenderFlags.js +2 -2
  130. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  131. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  132. package/lib/cjs/render/webgl/SceneCompositor.js +7 -4
  133. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  134. package/lib/cjs/render/webgl/ScratchDrawParams.js +2 -3
  135. package/lib/cjs/render/webgl/ScratchDrawParams.js.map +1 -1
  136. package/lib/cjs/render/webgl/ScreenSpaceEffect.js +2 -2
  137. package/lib/cjs/render/webgl/ScreenSpaceEffect.js.map +1 -1
  138. package/lib/cjs/render/webgl/SurfaceGeometry.js +2 -2
  139. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
  140. package/lib/cjs/render/webgl/Sync.js +3 -4
  141. package/lib/cjs/render/webgl/Sync.js.map +1 -1
  142. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  143. package/lib/cjs/render/webgl/TechniqueFlags.d.ts.map +1 -1
  144. package/lib/cjs/render/webgl/TechniqueId.js +1 -2
  145. package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
  146. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  147. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +1 -2
  148. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  149. package/lib/cjs/render/webgl/glsl/Animation.js +1 -2
  150. package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
  151. package/lib/cjs/render/webgl/glsl/Atmosphere.js +1 -2
  152. package/lib/cjs/render/webgl/glsl/Atmosphere.js.map +1 -1
  153. package/lib/cjs/render/webgl/glsl/Blur.js +1 -2
  154. package/lib/cjs/render/webgl/glsl/Blur.js.map +1 -1
  155. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js +1 -2
  156. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  157. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js +1 -2
  158. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js.map +1 -1
  159. package/lib/cjs/render/webgl/glsl/Clipping.js +2 -2
  160. package/lib/cjs/render/webgl/glsl/Clipping.js.map +1 -1
  161. package/lib/cjs/render/webgl/glsl/Color.js +2 -3
  162. package/lib/cjs/render/webgl/glsl/Color.js.map +1 -1
  163. package/lib/cjs/render/webgl/glsl/Combine3Textures.js +1 -2
  164. package/lib/cjs/render/webgl/glsl/Combine3Textures.js.map +1 -1
  165. package/lib/cjs/render/webgl/glsl/CombineTextures.js +1 -2
  166. package/lib/cjs/render/webgl/glsl/CombineTextures.js.map +1 -1
  167. package/lib/cjs/render/webgl/glsl/Common.js +7 -7
  168. package/lib/cjs/render/webgl/glsl/Common.js.map +1 -1
  169. package/lib/cjs/render/webgl/glsl/Composite.js +1 -2
  170. package/lib/cjs/render/webgl/glsl/Composite.js.map +1 -1
  171. package/lib/cjs/render/webgl/glsl/Contours.js +1 -2
  172. package/lib/cjs/render/webgl/glsl/Contours.js.map +1 -1
  173. package/lib/cjs/render/webgl/glsl/CopyColor.js +1 -2
  174. package/lib/cjs/render/webgl/glsl/CopyColor.js.map +1 -1
  175. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js +1 -2
  176. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
  177. package/lib/cjs/render/webgl/glsl/CopyStencil.js +4 -5
  178. package/lib/cjs/render/webgl/glsl/CopyStencil.js.map +1 -1
  179. package/lib/cjs/render/webgl/glsl/Decode.js +2 -2
  180. package/lib/cjs/render/webgl/glsl/Decode.js.map +1 -1
  181. package/lib/cjs/render/webgl/glsl/EDL.js +4 -5
  182. package/lib/cjs/render/webgl/glsl/EDL.js.map +1 -1
  183. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js +1 -2
  184. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  185. package/lib/cjs/render/webgl/glsl/Edge.js +2 -3
  186. package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
  187. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +15 -15
  188. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  189. package/lib/cjs/render/webgl/glsl/Fragment.js +6 -6
  190. package/lib/cjs/render/webgl/glsl/Fragment.js.map +1 -1
  191. package/lib/cjs/render/webgl/glsl/Instancing.js +3 -4
  192. package/lib/cjs/render/webgl/glsl/Instancing.js.map +1 -1
  193. package/lib/cjs/render/webgl/glsl/Lighting.js +1 -2
  194. package/lib/cjs/render/webgl/glsl/Lighting.js.map +1 -1
  195. package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -2
  196. package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
  197. package/lib/cjs/render/webgl/glsl/LookupTable.js +1 -2
  198. package/lib/cjs/render/webgl/glsl/LookupTable.js.map +1 -1
  199. package/lib/cjs/render/webgl/glsl/Monochrome.js +2 -3
  200. package/lib/cjs/render/webgl/glsl/Monochrome.js.map +1 -1
  201. package/lib/cjs/render/webgl/glsl/PlanarClassification.js +5 -5
  202. package/lib/cjs/render/webgl/glsl/PlanarClassification.js.map +1 -1
  203. package/lib/cjs/render/webgl/glsl/PlanarGrid.js +1 -1
  204. package/lib/cjs/render/webgl/glsl/PlanarGrid.js.map +1 -1
  205. package/lib/cjs/render/webgl/glsl/PointCloud.js +2 -3
  206. package/lib/cjs/render/webgl/glsl/PointCloud.js.map +1 -1
  207. package/lib/cjs/render/webgl/glsl/PointString.js +2 -3
  208. package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
  209. package/lib/cjs/render/webgl/glsl/Polyline.js +6 -6
  210. package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
  211. package/lib/cjs/render/webgl/glsl/RealityMesh.js +5 -5
  212. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  213. package/lib/cjs/render/webgl/glsl/RenderPass.js +1 -2
  214. package/lib/cjs/render/webgl/glsl/RenderPass.js.map +1 -1
  215. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js +1 -2
  216. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  217. package/lib/cjs/render/webgl/glsl/SkyBox.js +1 -2
  218. package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
  219. package/lib/cjs/render/webgl/glsl/SkySphere.js +1 -2
  220. package/lib/cjs/render/webgl/glsl/SkySphere.js.map +1 -1
  221. package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js +3 -3
  222. package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
  223. package/lib/cjs/render/webgl/glsl/Surface.js +6 -6
  224. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  225. package/lib/cjs/render/webgl/glsl/Thematic.js +2 -3
  226. package/lib/cjs/render/webgl/glsl/Thematic.js.map +1 -1
  227. package/lib/cjs/render/webgl/glsl/Translucency.js +2 -2
  228. package/lib/cjs/render/webgl/glsl/Translucency.js.map +1 -1
  229. package/lib/cjs/render/webgl/glsl/Vertex.js +13 -13
  230. package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
  231. package/lib/cjs/render/webgl/glsl/Viewport.js +3 -4
  232. package/lib/cjs/render/webgl/glsl/Viewport.js.map +1 -1
  233. package/lib/cjs/render/webgl/glsl/ViewportQuad.js +1 -2
  234. package/lib/cjs/render/webgl/glsl/ViewportQuad.js.map +1 -1
  235. package/lib/cjs/render/webgl/glsl/Wiremesh.js +1 -2
  236. package/lib/cjs/render/webgl/glsl/Wiremesh.js.map +1 -1
  237. package/lib/cjs/request/Request.d.ts.map +1 -1
  238. package/lib/cjs/request/Request.js +2 -2
  239. package/lib/cjs/request/Request.js.map +1 -1
  240. package/lib/cjs/request/utils.js +3 -4
  241. package/lib/cjs/request/utils.js.map +1 -1
  242. package/lib/cjs/tile/ClassifierTileTree.js +2 -2
  243. package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
  244. package/lib/cjs/tile/GltfReader.js +4 -4
  245. package/lib/cjs/tile/GltfReader.js.map +1 -1
  246. package/lib/cjs/tile/IModelTile.js +2 -2
  247. package/lib/cjs/tile/IModelTile.js.map +1 -1
  248. package/lib/cjs/tile/IModelTileTree.js +2 -2
  249. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  250. package/lib/cjs/tile/ImdlDecoder.js +1 -2
  251. package/lib/cjs/tile/ImdlDecoder.js.map +1 -1
  252. package/lib/cjs/tile/ImdlGraphicsCreator.js +3 -4
  253. package/lib/cjs/tile/ImdlGraphicsCreator.js.map +1 -1
  254. package/lib/cjs/tile/ImdlParser.js +1 -2
  255. package/lib/cjs/tile/ImdlParser.js.map +1 -1
  256. package/lib/cjs/tile/ImdlReader.js +3 -3
  257. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  258. package/lib/cjs/tile/MeshoptCompression.js +1 -2
  259. package/lib/cjs/tile/MeshoptCompression.js.map +1 -1
  260. package/lib/cjs/tile/OrbitGtTileTree.js +2 -2
  261. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  262. package/lib/cjs/tile/PntsReader.js +1 -2
  263. package/lib/cjs/tile/PntsReader.js.map +1 -1
  264. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  265. package/lib/cjs/tile/PrimaryTileTree.js +6 -6
  266. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  267. package/lib/cjs/tile/RealityModelTileTree.js +2 -2
  268. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  269. package/lib/cjs/tile/RealityTileDrawArgs.d.ts.map +1 -1
  270. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  271. package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
  272. package/lib/cjs/tile/RenderGraphicTileTree.js +1 -2
  273. package/lib/cjs/tile/RenderGraphicTileTree.js.map +1 -1
  274. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  275. package/lib/cjs/tile/Tile.js +2 -2
  276. package/lib/cjs/tile/Tile.js.map +1 -1
  277. package/lib/cjs/tile/TileAdmin.js +2 -2
  278. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  279. package/lib/cjs/tile/TileRequestChannel.js +1 -1
  280. package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
  281. package/lib/cjs/tile/ViewFlagOverrides.js +1 -2
  282. package/lib/cjs/tile/ViewFlagOverrides.js.map +1 -1
  283. package/lib/cjs/tile/map/CesiumTerrainProvider.js +4 -5
  284. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  285. package/lib/cjs/tile/map/ImageryProviders/CoordinatesUtils.js +1 -2
  286. package/lib/cjs/tile/map/ImageryProviders/CoordinatesUtils.js.map +1 -1
  287. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  288. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  289. package/lib/cjs/tile/map/MapLayerTileTreeReference.js +2 -2
  290. package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
  291. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  292. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  293. package/lib/cjs/tile/map/MapTileTree.js +2 -2
  294. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  295. package/lib/cjs/tile/map/UrlUtils.js +1 -2
  296. package/lib/cjs/tile/map/UrlUtils.js.map +1 -1
  297. package/lib/cjs/tile/map/WmsCapabilities.d.ts.map +1 -1
  298. package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
  299. package/lib/cjs/tools/Tool.d.ts +1 -1
  300. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  301. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  302. package/lib/cjs/tools/ViewTool.js +2 -2
  303. package/lib/cjs/tools/ViewTool.js.map +1 -1
  304. package/lib/cjs/workers/RegisterWorker.js +1 -2
  305. package/lib/cjs/workers/RegisterWorker.js.map +1 -1
  306. package/lib/esm/AccuDraw.js +2 -2
  307. package/lib/esm/AccuDraw.js.map +1 -1
  308. package/lib/esm/AccuSnap.d.ts.map +1 -1
  309. package/lib/esm/AccuSnap.js +7 -2
  310. package/lib/esm/AccuSnap.js.map +1 -1
  311. package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
  312. package/lib/esm/BriefcaseTxns.d.ts.map +1 -1
  313. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  314. package/lib/esm/DrawingViewState.d.ts +3 -3
  315. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  316. package/lib/esm/DrawingViewState.js +9 -8
  317. package/lib/esm/DrawingViewState.js.map +1 -1
  318. package/lib/esm/GraphicalEditingScope.d.ts.map +1 -1
  319. package/lib/esm/HitDetail.d.ts +36 -7
  320. package/lib/esm/HitDetail.d.ts.map +1 -1
  321. package/lib/esm/HitDetail.js +11 -3
  322. package/lib/esm/HitDetail.js.map +1 -1
  323. package/lib/esm/IModelApp.d.ts.map +1 -1
  324. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  325. package/lib/esm/NotificationManager.d.ts +2 -2
  326. package/lib/esm/NotificationManager.d.ts.map +1 -1
  327. package/lib/esm/SheetViewState.d.ts +3 -3
  328. package/lib/esm/SheetViewState.d.ts.map +1 -1
  329. package/lib/esm/SheetViewState.js +18 -5
  330. package/lib/esm/SheetViewState.js.map +1 -1
  331. package/lib/esm/ViewState.d.ts +16 -7
  332. package/lib/esm/ViewState.d.ts.map +1 -1
  333. package/lib/esm/ViewState.js +4 -4
  334. package/lib/esm/ViewState.js.map +1 -1
  335. package/lib/esm/Viewport.d.ts.map +1 -1
  336. package/lib/esm/Viewport.js +1 -0
  337. package/lib/esm/Viewport.js.map +1 -1
  338. package/lib/esm/common/internal/render/GeometryList.d.ts +1 -1
  339. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  340. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.d.ts.map +1 -1
  341. package/lib/esm/render/GraphicBranch.d.ts +3 -1
  342. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  343. package/lib/esm/render/GraphicBranch.js.map +1 -1
  344. package/lib/esm/render/MockRender.d.ts.map +1 -1
  345. package/lib/esm/render/Pixel.d.ts +9 -7
  346. package/lib/esm/render/Pixel.d.ts.map +1 -1
  347. package/lib/esm/render/Pixel.js +20 -5
  348. package/lib/esm/render/Pixel.js.map +1 -1
  349. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  350. package/lib/esm/render/webgl/BranchState.d.ts +2 -0
  351. package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
  352. package/lib/esm/render/webgl/BranchState.js +2 -0
  353. package/lib/esm/render/webgl/BranchState.js.map +1 -1
  354. package/lib/esm/render/webgl/Graphic.d.ts +3 -0
  355. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  356. package/lib/esm/render/webgl/Graphic.js +4 -0
  357. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  358. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  359. package/lib/esm/render/webgl/SceneCompositor.js +4 -1
  360. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  361. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  362. package/lib/esm/render/webgl/TechniqueFlags.d.ts.map +1 -1
  363. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  364. package/lib/esm/request/Request.d.ts.map +1 -1
  365. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  366. package/lib/esm/tile/RealityTileDrawArgs.d.ts.map +1 -1
  367. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  368. package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
  369. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  370. package/lib/esm/tile/TileRequestChannel.js +1 -1
  371. package/lib/esm/tile/TileRequestChannel.js.map +1 -1
  372. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  373. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  374. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  375. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  376. package/lib/esm/tile/map/WmsCapabilities.d.ts.map +1 -1
  377. package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
  378. package/lib/esm/tools/Tool.d.ts +1 -1
  379. package/lib/esm/tools/Tool.d.ts.map +1 -1
  380. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  381. package/lib/esm/tools/ViewTool.js +2 -2
  382. package/lib/esm/tools/ViewTool.js.map +1 -1
  383. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  384. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  385. package/package.json +18 -18
@@ -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 { PositionType } from \"../TechniqueFlags\";\r\nimport { VariableType, VertexShaderBuilder } from \"../ShaderBuilder\";\r\nimport { 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 computeUnquantizedPosition = `\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\nconst getSamplePositionPrelude = `\r\nvec4 samplePosition(float index) {\r\n vec2 tc = compute_vert_coords(index);`;\r\n\r\nconst getSamplePositionQuantizedPostlude = `\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\nconst getSamplePositionUnquantizedPostlude = `\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\nfunction getSamplePosition(type: PositionType): string {\r\n return `${getSamplePositionPrelude}${\"quantized\" === type ? getSamplePositionQuantizedPostlude : getSamplePositionUnquantizedPostlude}`;\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 = 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\n/** @internal */\r\nexport function addNormalMatrix(vert: VertexShaderBuilder) {\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 vert.addInitializer(computeNormalMatrix);\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 vert.addFunction(unquantized ? computeUnquantizedPosition : computeVertexPositionFromLUT);\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"]}
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 { PositionType } from \"../TechniqueFlags\";\r\nimport { VariableType, VertexShaderBuilder } from \"../ShaderBuilder\";\r\nimport { 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 computeUnquantizedPosition = `\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\nconst getSamplePositionPrelude = `\r\nvec4 samplePosition(float index) {\r\n vec2 tc = compute_vert_coords(index);`;\r\n\r\nconst getSamplePositionQuantizedPostlude = `\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\nconst getSamplePositionUnquantizedPostlude = `\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\nfunction getSamplePosition(type: PositionType): string {\r\n return `${getSamplePositionPrelude}${\"quantized\" === type ? getSamplePositionQuantizedPostlude : getSamplePositionUnquantizedPostlude}`;\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 = 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\n/** @internal */\r\nexport function addNormalMatrix(vert: VertexShaderBuilder) {\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 vert.addInitializer(computeNormalMatrix);\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 vert.addFunction(unquantized ? computeUnquantizedPosition : computeVertexPositionFromLUT);\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"]}
@@ -7,7 +7,9 @@
7
7
  * @module WebGL
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.addModelToWindowCoordinates = exports.addViewportTransformation = exports.addViewport = void 0;
10
+ exports.addViewport = addViewport;
11
+ exports.addViewportTransformation = addViewportTransformation;
12
+ exports.addModelToWindowCoordinates = addModelToWindowCoordinates;
11
13
  const RenderPass_1 = require("./RenderPass");
12
14
  const Vertex_1 = require("./Vertex");
13
15
  /** @internal */
@@ -18,7 +20,6 @@ function addViewport(shader) {
18
20
  });
19
21
  });
20
22
  }
21
- exports.addViewport = addViewport;
22
23
  /** @internal */
23
24
  function addViewportTransformation(shader) {
24
25
  shader.addUniform("u_viewportTransformation", 7 /* VariableType.Mat4 */, (prog) => {
@@ -27,7 +28,6 @@ function addViewportTransformation(shader) {
27
28
  });
28
29
  });
29
30
  }
30
- exports.addViewportTransformation = addViewportTransformation;
31
31
  const modelToWindowCoordinates = `
32
32
  vec4 modelToWindowCoordinates(vec4 position, vec4 next, out vec4 clippedMvpPos, out vec3 clippedMvPos) {
33
33
  if (kRenderPass_ViewOverlay == u_renderPass || kRenderPass_Background == u_renderPass) {
@@ -75,5 +75,4 @@ function addModelToWindowCoordinates(vert) {
75
75
  (0, RenderPass_1.addRenderPass)(vert);
76
76
  vert.addFunction(modelToWindowCoordinates);
77
77
  }
78
- exports.addModelToWindowCoordinates = addModelToWindowCoordinates;
79
78
  //# sourceMappingURL=Viewport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Viewport.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/Viewport.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,6CAA6C;AAC7C,qCAAmE;AAEnE,gBAAgB;AAChB,SAAgB,WAAW,CAAC,MAAqB;IAC/C,MAAM,CAAC,UAAU,CAAC,YAAY,6BAAqB,CAAC,IAAI,EAAE,EAAE;QAC1D,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAND,kCAMC;AAED,gBAAgB;AAChB,SAAgB,yBAAyB,CAAC,MAAqB;IAC7D,MAAM,CAAC,UAAU,CAAC,0BAA0B,6BAAqB,CAAC,IAAI,EAAE,EAAE;QACxE,IAAI,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAND,8DAMC;AAED,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsChC,CAAC;AAEF,gBAAgB;AAChB,SAAgB,2BAA2B,CAAC,IAAyB;IACnE,IAAA,2BAAkB,EAAC,IAAI,CAAC,CAAC;IACzB,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;IAC1B,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAChC,IAAA,0BAAa,EAAC,IAAI,CAAC,CAAC;IACpB,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;AAC7C,CAAC;AAND,kEAMC","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 { ShaderBuilder, VariableType, VertexShaderBuilder } from \"../ShaderBuilder\";\r\nimport { addRenderPass } from \"./RenderPass\";\r\nimport { addModelViewMatrix, addProjectionMatrix } from \"./Vertex\";\r\n\r\n/** @internal */\r\nexport function addViewport(shader: ShaderBuilder) {\r\n shader.addUniform(\"u_viewport\", VariableType.Vec2, (prog) => {\r\n prog.addProgramUniform(\"u_viewport\", (uniform, params) => {\r\n params.target.uniforms.viewRect.bindDimensions(uniform);\r\n });\r\n });\r\n}\r\n\r\n/** @internal */\r\nexport function addViewportTransformation(shader: ShaderBuilder) {\r\n shader.addUniform(\"u_viewportTransformation\", VariableType.Mat4, (prog) => {\r\n prog.addProgramUniform(\"u_viewportTransformation\", (uniform, params) => {\r\n params.target.uniforms.viewRect.bindViewportMatrix(uniform);\r\n });\r\n });\r\n}\r\n\r\nconst modelToWindowCoordinates = `\r\nvec4 modelToWindowCoordinates(vec4 position, vec4 next, out vec4 clippedMvpPos, out vec3 clippedMvPos) {\r\n if (kRenderPass_ViewOverlay == u_renderPass || kRenderPass_Background == u_renderPass) {\r\n vec4 q = MAT_MV * position;\r\n clippedMvPos = q.xyz;\r\n q = u_proj * q;\r\n clippedMvpPos = q;\r\n q.xyz /= q.w;\r\n q.xyz = (u_viewportTransformation * vec4(q.xyz, 1.0)).xyz;\r\n return q;\r\n }\r\n\r\n // Negative values are in front of the camera (visible).\r\n float s_maxZ = -u_frustum.x; // use -near (front) plane for segment drop test since u_frustum's near & far are pos.\r\n vec4 q = MAT_MV * position; // eye coordinates.\r\n vec4 n = MAT_MV * next;\r\n\r\n if (q.z > s_maxZ) {\r\n if (n.z > s_maxZ) {\r\n clippedMvPos = vec3(0.0, 0.0, 1.0);\r\n clippedMvpPos = vec4(0.0, 0.0, 1.0, 0.0);\r\n return vec4(0.0, 0.0, 1.0, 0.0); // Entire segment behind front clip plane.\r\n }\r\n\r\n float t = (s_maxZ - q.z) / (n.z - q.z);\r\n\r\n q.x += t * (n.x - q.x);\r\n q.y += t * (n.y - q.y);\r\n q.z = s_maxZ; // q.z + (s_maxZ - q.z) / (n.z - q.z) * (n.z - q.z) = s_maxZ\r\n }\r\n\r\n clippedMvPos = q.xyz;\r\n q = u_proj * q;\r\n clippedMvpPos = q;\r\n q.xyz /= q.w; // normalized device coords\r\n q.xyz = (u_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coords\r\n return q;\r\n}\r\n`;\r\n\r\n/** @internal */\r\nexport function addModelToWindowCoordinates(vert: VertexShaderBuilder) {\r\n addModelViewMatrix(vert);\r\n addProjectionMatrix(vert);\r\n addViewportTransformation(vert);\r\n addRenderPass(vert);\r\n vert.addFunction(modelToWindowCoordinates);\r\n}\r\n"]}
1
+ {"version":3,"file":"Viewport.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/Viewport.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;AAOH,kCAMC;AAGD,8DAMC;AA2CD,kEAMC;AApED,6CAA6C;AAC7C,qCAAmE;AAEnE,gBAAgB;AAChB,SAAgB,WAAW,CAAC,MAAqB;IAC/C,MAAM,CAAC,UAAU,CAAC,YAAY,6BAAqB,CAAC,IAAI,EAAE,EAAE;QAC1D,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gBAAgB;AAChB,SAAgB,yBAAyB,CAAC,MAAqB;IAC7D,MAAM,CAAC,UAAU,CAAC,0BAA0B,6BAAqB,CAAC,IAAI,EAAE,EAAE;QACxE,IAAI,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsChC,CAAC;AAEF,gBAAgB;AAChB,SAAgB,2BAA2B,CAAC,IAAyB;IACnE,IAAA,2BAAkB,EAAC,IAAI,CAAC,CAAC;IACzB,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;IAC1B,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAChC,IAAA,0BAAa,EAAC,IAAI,CAAC,CAAC;IACpB,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;AAC7C,CAAC","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 { ShaderBuilder, VariableType, VertexShaderBuilder } from \"../ShaderBuilder\";\r\nimport { addRenderPass } from \"./RenderPass\";\r\nimport { addModelViewMatrix, addProjectionMatrix } from \"./Vertex\";\r\n\r\n/** @internal */\r\nexport function addViewport(shader: ShaderBuilder) {\r\n shader.addUniform(\"u_viewport\", VariableType.Vec2, (prog) => {\r\n prog.addProgramUniform(\"u_viewport\", (uniform, params) => {\r\n params.target.uniforms.viewRect.bindDimensions(uniform);\r\n });\r\n });\r\n}\r\n\r\n/** @internal */\r\nexport function addViewportTransformation(shader: ShaderBuilder) {\r\n shader.addUniform(\"u_viewportTransformation\", VariableType.Mat4, (prog) => {\r\n prog.addProgramUniform(\"u_viewportTransformation\", (uniform, params) => {\r\n params.target.uniforms.viewRect.bindViewportMatrix(uniform);\r\n });\r\n });\r\n}\r\n\r\nconst modelToWindowCoordinates = `\r\nvec4 modelToWindowCoordinates(vec4 position, vec4 next, out vec4 clippedMvpPos, out vec3 clippedMvPos) {\r\n if (kRenderPass_ViewOverlay == u_renderPass || kRenderPass_Background == u_renderPass) {\r\n vec4 q = MAT_MV * position;\r\n clippedMvPos = q.xyz;\r\n q = u_proj * q;\r\n clippedMvpPos = q;\r\n q.xyz /= q.w;\r\n q.xyz = (u_viewportTransformation * vec4(q.xyz, 1.0)).xyz;\r\n return q;\r\n }\r\n\r\n // Negative values are in front of the camera (visible).\r\n float s_maxZ = -u_frustum.x; // use -near (front) plane for segment drop test since u_frustum's near & far are pos.\r\n vec4 q = MAT_MV * position; // eye coordinates.\r\n vec4 n = MAT_MV * next;\r\n\r\n if (q.z > s_maxZ) {\r\n if (n.z > s_maxZ) {\r\n clippedMvPos = vec3(0.0, 0.0, 1.0);\r\n clippedMvpPos = vec4(0.0, 0.0, 1.0, 0.0);\r\n return vec4(0.0, 0.0, 1.0, 0.0); // Entire segment behind front clip plane.\r\n }\r\n\r\n float t = (s_maxZ - q.z) / (n.z - q.z);\r\n\r\n q.x += t * (n.x - q.x);\r\n q.y += t * (n.y - q.y);\r\n q.z = s_maxZ; // q.z + (s_maxZ - q.z) / (n.z - q.z) * (n.z - q.z) = s_maxZ\r\n }\r\n\r\n clippedMvPos = q.xyz;\r\n q = u_proj * q;\r\n clippedMvpPos = q;\r\n q.xyz /= q.w; // normalized device coords\r\n q.xyz = (u_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coords\r\n return q;\r\n}\r\n`;\r\n\r\n/** @internal */\r\nexport function addModelToWindowCoordinates(vert: VertexShaderBuilder) {\r\n addModelViewMatrix(vert);\r\n addProjectionMatrix(vert);\r\n addViewportTransformation(vert);\r\n addRenderPass(vert);\r\n vert.addFunction(modelToWindowCoordinates);\r\n}\r\n"]}
@@ -7,7 +7,7 @@
7
7
  * @module WebGL
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.createViewportQuadBuilder = void 0;
10
+ exports.createViewportQuadBuilder = createViewportQuadBuilder;
11
11
  const AttributeMap_1 = require("../AttributeMap");
12
12
  const ShaderBuilder_1 = require("../ShaderBuilder");
13
13
  // Positions are in NDC [-1..1]. Compute UV params in [0..1]
@@ -26,5 +26,4 @@ function createViewportQuadBuilder(textured, attrMapOverride) {
26
26
  }
27
27
  return prog;
28
28
  }
29
- exports.createViewportQuadBuilder = createViewportQuadBuilder;
30
29
  //# sourceMappingURL=ViewportQuad.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ViewportQuad.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/ViewportQuad.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,kDAAiE;AACjE,oDAAuF;AAEvF,4DAA4D;AAC5D,MAAM,eAAe,GAAG,4CAA4C,CAAC;AACrE,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAEzC,SAAS,UAAU,CAAC,IAAoB;IACtC,IAAI,CAAC,wBAAwB,CAAC,YAAY,6BAAqB,eAAe,CAAC,CAAC;AAClF,CAAC;AAED,gBAAgB;AAChB,SAAgB,yBAAyB,CAAC,QAAiB,EAAE,eAA+C;IAC1G,MAAM,OAAO,GAAG,SAAS,KAAK,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,2BAAY,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAClH,MAAM,IAAI,GAAG,IAAI,8BAAc,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,CAAC,GAAG,iDAAwC,eAAe,CAAC,CAAC;IACtE,IAAI,QAAQ,EAAE,CAAC;QACb,UAAU,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AATD,8DASC","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 { AttributeDetails, AttributeMap } from \"../AttributeMap\";\r\nimport { ProgramBuilder, VariableType, VertexShaderComponent } from \"../ShaderBuilder\";\r\n\r\n// Positions are in NDC [-1..1]. Compute UV params in [0..1]\r\nconst computeTexCoord = \"v_texCoord = (rawPosition.xy + 1.0) * 0.5;\";\r\nconst computePosition = \"return rawPos;\";\r\n\r\nfunction addTexture(prog: ProgramBuilder) {\r\n prog.addInlineComputedVarying(\"v_texCoord\", VariableType.Vec2, computeTexCoord);\r\n}\r\n\r\n/** @internal */\r\nexport function createViewportQuadBuilder(textured: boolean, attrMapOverride?: Map<string, AttributeDetails>): ProgramBuilder {\r\n const attrMap = undefined !== attrMapOverride ? attrMapOverride : AttributeMap.findAttributeMap(undefined, false);\r\n const prog = new ProgramBuilder(attrMap);\r\n prog.vert.set(VertexShaderComponent.ComputePosition, computePosition);\r\n if (textured) {\r\n addTexture(prog);\r\n }\r\n\r\n return prog;\r\n}\r\n"]}
1
+ {"version":3,"file":"ViewportQuad.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/ViewportQuad.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;AAcH,8DASC;AArBD,kDAAiE;AACjE,oDAAuF;AAEvF,4DAA4D;AAC5D,MAAM,eAAe,GAAG,4CAA4C,CAAC;AACrE,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAEzC,SAAS,UAAU,CAAC,IAAoB;IACtC,IAAI,CAAC,wBAAwB,CAAC,YAAY,6BAAqB,eAAe,CAAC,CAAC;AAClF,CAAC;AAED,gBAAgB;AAChB,SAAgB,yBAAyB,CAAC,QAAiB,EAAE,eAA+C;IAC1G,MAAM,OAAO,GAAG,SAAS,KAAK,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,2BAAY,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAClH,MAAM,IAAI,GAAG,IAAI,8BAAc,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,CAAC,GAAG,iDAAwC,eAAe,CAAC,CAAC;IACtE,IAAI,QAAQ,EAAE,CAAC;QACb,UAAU,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC","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 { AttributeDetails, AttributeMap } from \"../AttributeMap\";\r\nimport { ProgramBuilder, VariableType, VertexShaderComponent } from \"../ShaderBuilder\";\r\n\r\n// Positions are in NDC [-1..1]. Compute UV params in [0..1]\r\nconst computeTexCoord = \"v_texCoord = (rawPosition.xy + 1.0) * 0.5;\";\r\nconst computePosition = \"return rawPos;\";\r\n\r\nfunction addTexture(prog: ProgramBuilder) {\r\n prog.addInlineComputedVarying(\"v_texCoord\", VariableType.Vec2, computeTexCoord);\r\n}\r\n\r\n/** @internal */\r\nexport function createViewportQuadBuilder(textured: boolean, attrMapOverride?: Map<string, AttributeDetails>): ProgramBuilder {\r\n const attrMap = undefined !== attrMapOverride ? attrMapOverride : AttributeMap.findAttributeMap(undefined, false);\r\n const prog = new ProgramBuilder(attrMap);\r\n prog.vert.set(VertexShaderComponent.ComputePosition, computePosition);\r\n if (textured) {\r\n addTexture(prog);\r\n }\r\n\r\n return prog;\r\n}\r\n"]}
@@ -7,7 +7,7 @@
7
7
  * @module WebGL
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.addWiremesh = void 0;
10
+ exports.addWiremesh = addWiremesh;
11
11
  // Vertex shader produces barycentric coordinate for corner of triangle to be smoothly interpolated over face of triangle.
12
12
  // This requires WebGL 2 because gl_VertexID.
13
13
  // It also requires that we are drawing non-indexed vertices, or using an index buffer in which each set of 3 consecutive indices correspond to one triangle -
@@ -33,5 +33,4 @@ function addWiremesh(builder) {
33
33
  builder.addInlineComputedVarying("v_barycentric", 4 /* VariableType.Vec3 */, computeBarycentric);
34
34
  builder.frag.set(15 /* FragmentShaderComponent.ApplyWiremesh */, applyWiremesh);
35
35
  }
36
- exports.addWiremesh = addWiremesh;
37
36
  //# sourceMappingURL=Wiremesh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Wiremesh.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/Wiremesh.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAIH,0HAA0H;AAC1H,6CAA6C;AAC7C,8JAA8J;AAC9J,gEAAgE;AAChE,MAAM,kBAAkB,GAAG;;;CAG1B,CAAC;AAEF,2FAA2F;AAC3F,gHAAgH;AAChH,MAAM,aAAa,GAAG;;;;;;;CAOrB,CAAC;AAEF;;GAEG;AACH,SAAgB,WAAW,CAAC,OAAuB;IACjD,OAAO,CAAC,wBAAwB,CAAC,eAAe,6BAAqB,kBAAkB,CAAC,CAAC;IACzF,OAAO,CAAC,IAAI,CAAC,GAAG,iDAAwC,aAAa,CAAC,CAAC;AACzE,CAAC;AAHD,kCAGC","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 { FragmentShaderComponent, ProgramBuilder, VariableType } from \"../ShaderBuilder\";\r\n\r\n// Vertex shader produces barycentric coordinate for corner of triangle to be smoothly interpolated over face of triangle.\r\n// This requires WebGL 2 because gl_VertexID.\r\n// It also requires that we are drawing non-indexed vertices, or using an index buffer in which each set of 3 consecutive indices correspond to one triangle -\r\n// otherwise gl_VertexID will not correlate to triangle corners.\r\nconst computeBarycentric = `\r\n int vertIndex = gl_VertexID % 3;\r\n v_barycentric = vec3(float(0 == vertIndex), float(1 == vertIndex), float(2 == vertIndex));\r\n`;\r\n\r\n// Fragment shader draws in the line color for fragments close to the edge of the triangle.\r\n// Vertex shader requires WebGL 2 which includes the functionality of the GL_OES_standard_derivatives extension.\r\nconst applyWiremesh = `\r\n const float lineWidth = 1.0;\r\n const vec3 lineColor = vec3(0.0);\r\n vec3 delta = fwidth(v_barycentric);\r\n vec3 factor = smoothstep(vec3(0.0), delta * lineWidth, v_barycentric);\r\n vec3 color = mix(lineColor, baseColor.rgb, min(min(factor.x, factor.y), factor.z));\r\n return vec4(color, baseColor.a);\r\n`;\r\n\r\n/** Adds to a mesh shader logic to produce an overlaid wiremesh.\r\n * @internal\r\n */\r\nexport function addWiremesh(builder: ProgramBuilder): void {\r\n builder.addInlineComputedVarying(\"v_barycentric\", VariableType.Vec3, computeBarycentric);\r\n builder.frag.set(FragmentShaderComponent.ApplyWiremesh, applyWiremesh);\r\n}\r\n"]}
1
+ {"version":3,"file":"Wiremesh.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/Wiremesh.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;AA2BH,kCAGC;AA1BD,0HAA0H;AAC1H,6CAA6C;AAC7C,8JAA8J;AAC9J,gEAAgE;AAChE,MAAM,kBAAkB,GAAG;;;CAG1B,CAAC;AAEF,2FAA2F;AAC3F,gHAAgH;AAChH,MAAM,aAAa,GAAG;;;;;;;CAOrB,CAAC;AAEF;;GAEG;AACH,SAAgB,WAAW,CAAC,OAAuB;IACjD,OAAO,CAAC,wBAAwB,CAAC,eAAe,6BAAqB,kBAAkB,CAAC,CAAC;IACzF,OAAO,CAAC,IAAI,CAAC,GAAG,iDAAwC,aAAa,CAAC,CAAC;AACzE,CAAC","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 { FragmentShaderComponent, ProgramBuilder, VariableType } from \"../ShaderBuilder\";\r\n\r\n// Vertex shader produces barycentric coordinate for corner of triangle to be smoothly interpolated over face of triangle.\r\n// This requires WebGL 2 because gl_VertexID.\r\n// It also requires that we are drawing non-indexed vertices, or using an index buffer in which each set of 3 consecutive indices correspond to one triangle -\r\n// otherwise gl_VertexID will not correlate to triangle corners.\r\nconst computeBarycentric = `\r\n int vertIndex = gl_VertexID % 3;\r\n v_barycentric = vec3(float(0 == vertIndex), float(1 == vertIndex), float(2 == vertIndex));\r\n`;\r\n\r\n// Fragment shader draws in the line color for fragments close to the edge of the triangle.\r\n// Vertex shader requires WebGL 2 which includes the functionality of the GL_OES_standard_derivatives extension.\r\nconst applyWiremesh = `\r\n const float lineWidth = 1.0;\r\n const vec3 lineColor = vec3(0.0);\r\n vec3 delta = fwidth(v_barycentric);\r\n vec3 factor = smoothstep(vec3(0.0), delta * lineWidth, v_barycentric);\r\n vec3 color = mix(lineColor, baseColor.rgb, min(min(factor.x, factor.y), factor.z));\r\n return vec4(color, baseColor.a);\r\n`;\r\n\r\n/** Adds to a mesh shader logic to produce an overlaid wiremesh.\r\n * @internal\r\n */\r\nexport function addWiremesh(builder: ProgramBuilder): void {\r\n builder.addInlineComputedVarying(\"v_barycentric\", VariableType.Vec3, computeBarycentric);\r\n builder.frag.set(FragmentShaderComponent.ApplyWiremesh, applyWiremesh);\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../../../src/request/Request.ts"],"names":[],"mappings":"AAKA,gBAAgB;AAChB,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAGjC,MAAM,EAAE,MAAM;IACd,YAAY,CAAC;gBADb,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,oBAAQ;CAQ/B;AAED,gBAAgB;AAChB,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,uBAAuB,CAAC;CAChC;AAED,gBAAgB;AAChB,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAExH,gBAAgB;AAChB,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAEzG,gBAAgB;AAChB,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAkD5G;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC"}
1
+ {"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../../../src/request/Request.ts"],"names":[],"mappings":"AAKA,gBAAgB;AAChB,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAGjC,MAAM,EAAE,MAAM;IACd,YAAY,CAAC,EAAE,MAAM;gBADrB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,YAAA;CAQ/B;AAED,gBAAgB;AAChB,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,uBAAuB,CAAC;CAChC;AAED,gBAAgB;AAChB,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAExH,gBAAgB;AAChB,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAEzG,gBAAgB;AAChB,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAkD5G;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC"}
@@ -4,7 +4,8 @@
4
4
  * See LICENSE.md in the project root for license terms and full copyright notice.
5
5
  *--------------------------------------------------------------------------------------------*/
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.request = exports.HttpResponseError = void 0;
7
+ exports.HttpResponseError = void 0;
8
+ exports.request = request;
8
9
  /** Error object that's thrown if the status is *not* in the range of 200-299 (inclusive).
9
10
  * @internal
10
11
  */
@@ -46,7 +47,6 @@ async function request(url, responseType, options) {
46
47
  return response.text();
47
48
  }
48
49
  }
49
- exports.request = request;
50
50
  async function fetchWithRetry(fetchFunc, remainingRetries) {
51
51
  try {
52
52
  return await fetchFunc();
@@ -1 +1 @@
1
- {"version":3,"file":"Request.js","sourceRoot":"","sources":["../../../src/request/Request.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAQ/F;;GAEG;AACH,MAAa,iBAAkB,SAAQ,KAAK;IAE1C,YACS,MAAc,EACd,YAAqB;QAE5B,IAAI,OAAO,GAAG,8BAA8B,MAAM,GAAG,CAAC;QACtD,IAAI,YAAY;YACd,OAAO,IAAI,mBAAmB,YAAY,EAAE,CAAC;QAE/C,KAAK,CAAC,OAAO,CAAC,CAAC;QAPR,WAAM,GAAN,MAAM,CAAQ;QACd,iBAAY,GAAZ,YAAY,CAAS;IAO9B,CAAC;CACF;AAZD,8CAYC;AAmBD,gBAAgB;AACT,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,YAA6C,EAAE,OAAwB;IAChH,MAAM,OAAO,GAAQ;QACnB,GAAG,OAAO,EAAE,OAAO;KACpB,CAAC;IAEF,IAAI,OAAO,EAAE,IAAI;QACf,OAAO,CAAC,aAAa,GAAG,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;IAElG,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,IAAI,OAAO,EAAE,OAAO;QAClB,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAExD,MAAM,YAAY,GAAgB;QAChC,OAAO;QACP,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;IAEF,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC;IAE3E,IAAI,CAAC,QAAQ,CAAC,EAAE;QACd,MAAM,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAEtE,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,aAAa;YAChB,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;QAChC,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC;AA/BD,0BA+BC;AAED,KAAK,UAAU,cAAc,CAAC,SAAkC,EAAE,gBAAwB;IACxF,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;YACvD,MAAM,KAAK,CAAC;QAEd,IAAI,gBAAgB,KAAK,CAAC;YACxB,MAAM,KAAK,CAAC;QAEd,OAAO,cAAc,CAAC,SAAS,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACvD,CAAC;AACH,CAAC","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\r\n/** @internal */\r\nexport interface RequestBasicCredentials { // axios: AxiosBasicCredentials\r\n user: string; // axios: username\r\n password: string; // axios: password\r\n}\r\n\r\n/** Error object that's thrown if the status is *not* in the range of 200-299 (inclusive).\r\n * @internal\r\n */\r\nexport class HttpResponseError extends Error {\r\n\r\n public constructor(\r\n public status: number,\r\n public responseText?: string,\r\n ) {\r\n let message = `HTTP response status code: ${status}.`;\r\n if (responseText)\r\n message += ` Response body: ${responseText}`;\r\n\r\n super(message);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport interface RequestOptions {\r\n retryCount?: number;\r\n headers?: any;\r\n timeout?: number;\r\n auth?: RequestBasicCredentials;\r\n}\r\n\r\n/** @internal */\r\nexport async function request(url: string, responseType: \"arraybuffer\", options?: RequestOptions): Promise<ArrayBuffer>;\r\n\r\n/** @internal */\r\nexport async function request(url: string, responseType: \"json\", options?: RequestOptions): Promise<any>;\r\n\r\n/** @internal */\r\nexport async function request(url: string, responseType: \"text\", options?: RequestOptions): Promise<string>;\r\n\r\n/** @internal */\r\nexport async function request(url: string, responseType: \"arraybuffer\" | \"json\" | \"text\", options?: RequestOptions): Promise<any> {\r\n const headers: any = {\r\n ...options?.headers,\r\n };\r\n\r\n if (options?.auth)\r\n headers.authorization = `Basic ${window.btoa(`${options.auth.user}:${options.auth.password}`)}`;\r\n\r\n const controller = new AbortController();\r\n if (options?.timeout)\r\n setTimeout(() => controller.abort(), options.timeout);\r\n\r\n const fetchOptions: RequestInit = {\r\n headers,\r\n signal: controller.signal,\r\n };\r\n\r\n const fetchFunc = async () => fetch(url, fetchOptions);\r\n const response = await fetchWithRetry(fetchFunc, options?.retryCount ?? 4);\r\n\r\n if (!response.ok)\r\n throw new HttpResponseError(response.status, await response.text());\r\n\r\n switch (responseType) {\r\n case \"arraybuffer\":\r\n return response.arrayBuffer();\r\n case \"json\":\r\n return response.json();\r\n case \"text\":\r\n return response.text();\r\n }\r\n}\r\n\r\nasync function fetchWithRetry(fetchFunc: () => Promise<Response>, remainingRetries: number): Promise<Response> {\r\n try {\r\n return await fetchFunc();\r\n } catch (error: unknown) {\r\n if (error instanceof Error && error.name === \"AbortError\")\r\n throw error;\r\n\r\n if (remainingRetries === 0)\r\n throw error;\r\n\r\n return fetchWithRetry(fetchFunc, --remainingRetries);\r\n }\r\n}\r\n\r\n/**\r\n * @internal\r\n * @deprecated in 4.0. Use [[DownloadProgressInfo]].\r\n */\r\nexport interface ProgressInfo {\r\n percent?: number;\r\n total?: number;\r\n loaded: number;\r\n}\r\n\r\n/**\r\n * @internal\r\n * @deprecated in 4.0. Use [[OnDownloadProgress]].\r\n */\r\n// eslint-disable-next-line deprecation/deprecation\r\nexport type ProgressCallback = (progress: ProgressInfo) => void;\r\n"]}
1
+ {"version":3,"file":"Request.js","sourceRoot":"","sources":["../../../src/request/Request.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AA2C/F,0BA+BC;AAlED;;GAEG;AACH,MAAa,iBAAkB,SAAQ,KAAK;IAE1C,YACS,MAAc,EACd,YAAqB;QAE5B,IAAI,OAAO,GAAG,8BAA8B,MAAM,GAAG,CAAC;QACtD,IAAI,YAAY;YACd,OAAO,IAAI,mBAAmB,YAAY,EAAE,CAAC;QAE/C,KAAK,CAAC,OAAO,CAAC,CAAC;QAPR,WAAM,GAAN,MAAM,CAAQ;QACd,iBAAY,GAAZ,YAAY,CAAS;IAO9B,CAAC;CACF;AAZD,8CAYC;AAmBD,gBAAgB;AACT,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,YAA6C,EAAE,OAAwB;IAChH,MAAM,OAAO,GAAQ;QACnB,GAAG,OAAO,EAAE,OAAO;KACpB,CAAC;IAEF,IAAI,OAAO,EAAE,IAAI;QACf,OAAO,CAAC,aAAa,GAAG,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;IAElG,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,IAAI,OAAO,EAAE,OAAO;QAClB,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAExD,MAAM,YAAY,GAAgB;QAChC,OAAO;QACP,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;IAEF,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC;IAE3E,IAAI,CAAC,QAAQ,CAAC,EAAE;QACd,MAAM,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAEtE,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,aAAa;YAChB,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;QAChC,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,SAAkC,EAAE,gBAAwB;IACxF,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;YACvD,MAAM,KAAK,CAAC;QAEd,IAAI,gBAAgB,KAAK,CAAC;YACxB,MAAM,KAAK,CAAC;QAEd,OAAO,cAAc,CAAC,SAAS,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACvD,CAAC;AACH,CAAC","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\r\n/** @internal */\r\nexport interface RequestBasicCredentials { // axios: AxiosBasicCredentials\r\n user: string; // axios: username\r\n password: string; // axios: password\r\n}\r\n\r\n/** Error object that's thrown if the status is *not* in the range of 200-299 (inclusive).\r\n * @internal\r\n */\r\nexport class HttpResponseError extends Error {\r\n\r\n public constructor(\r\n public status: number,\r\n public responseText?: string,\r\n ) {\r\n let message = `HTTP response status code: ${status}.`;\r\n if (responseText)\r\n message += ` Response body: ${responseText}`;\r\n\r\n super(message);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport interface RequestOptions {\r\n retryCount?: number;\r\n headers?: any;\r\n timeout?: number;\r\n auth?: RequestBasicCredentials;\r\n}\r\n\r\n/** @internal */\r\nexport async function request(url: string, responseType: \"arraybuffer\", options?: RequestOptions): Promise<ArrayBuffer>;\r\n\r\n/** @internal */\r\nexport async function request(url: string, responseType: \"json\", options?: RequestOptions): Promise<any>;\r\n\r\n/** @internal */\r\nexport async function request(url: string, responseType: \"text\", options?: RequestOptions): Promise<string>;\r\n\r\n/** @internal */\r\nexport async function request(url: string, responseType: \"arraybuffer\" | \"json\" | \"text\", options?: RequestOptions): Promise<any> {\r\n const headers: any = {\r\n ...options?.headers,\r\n };\r\n\r\n if (options?.auth)\r\n headers.authorization = `Basic ${window.btoa(`${options.auth.user}:${options.auth.password}`)}`;\r\n\r\n const controller = new AbortController();\r\n if (options?.timeout)\r\n setTimeout(() => controller.abort(), options.timeout);\r\n\r\n const fetchOptions: RequestInit = {\r\n headers,\r\n signal: controller.signal,\r\n };\r\n\r\n const fetchFunc = async () => fetch(url, fetchOptions);\r\n const response = await fetchWithRetry(fetchFunc, options?.retryCount ?? 4);\r\n\r\n if (!response.ok)\r\n throw new HttpResponseError(response.status, await response.text());\r\n\r\n switch (responseType) {\r\n case \"arraybuffer\":\r\n return response.arrayBuffer();\r\n case \"json\":\r\n return response.json();\r\n case \"text\":\r\n return response.text();\r\n }\r\n}\r\n\r\nasync function fetchWithRetry(fetchFunc: () => Promise<Response>, remainingRetries: number): Promise<Response> {\r\n try {\r\n return await fetchFunc();\r\n } catch (error: unknown) {\r\n if (error instanceof Error && error.name === \"AbortError\")\r\n throw error;\r\n\r\n if (remainingRetries === 0)\r\n throw error;\r\n\r\n return fetchWithRetry(fetchFunc, --remainingRetries);\r\n }\r\n}\r\n\r\n/**\r\n * @internal\r\n * @deprecated in 4.0. Use [[DownloadProgressInfo]].\r\n */\r\nexport interface ProgressInfo {\r\n percent?: number;\r\n total?: number;\r\n loaded: number;\r\n}\r\n\r\n/**\r\n * @internal\r\n * @deprecated in 4.0. Use [[OnDownloadProgress]].\r\n */\r\n// eslint-disable-next-line deprecation/deprecation\r\nexport type ProgressCallback = (progress: ProgressInfo) => void;\r\n"]}
@@ -4,7 +4,9 @@
4
4
  * See LICENSE.md in the project root for license terms and full copyright notice.
5
5
  *--------------------------------------------------------------------------------------------*/
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.setRequestTimeout = exports.setBasicAuthorization = exports.headersIncludeAuthMethod = void 0;
7
+ exports.headersIncludeAuthMethod = headersIncludeAuthMethod;
8
+ exports.setBasicAuthorization = setBasicAuthorization;
9
+ exports.setRequestTimeout = setRequestTimeout;
8
10
  const core_common_1 = require("@itwin/core-common");
9
11
  /**
10
12
  * Check whether or not one of the requested authentication method is listed in the HTTP 'WWW-Authenticate' response header
@@ -25,7 +27,6 @@ function headersIncludeAuthMethod(headers, query) {
25
27
  }
26
28
  return false;
27
29
  }
28
- exports.headersIncludeAuthMethod = headersIncludeAuthMethod;
29
30
  /** @internal */
30
31
  function setBasicAuthorization(headers, userOrCreds, password) {
31
32
  let username;
@@ -41,7 +42,6 @@ function setBasicAuthorization(headers, userOrCreds, password) {
41
42
  if (username !== undefined && pwd !== undefined)
42
43
  headers.set("Authorization", `Basic ${core_common_1.Base64EncodedString.encode(`${username}:${pwd}`)}`);
43
44
  }
44
- exports.setBasicAuthorization = setBasicAuthorization;
45
45
  /**
46
46
  * Set number of milliseconds a request can take before automatically being terminated
47
47
  * @internal
@@ -51,5 +51,4 @@ function setRequestTimeout(opts, ms, abortController) {
51
51
  setTimeout(() => controller.abort(), ms);
52
52
  opts.signal = controller.signal;
53
53
  }
54
- exports.setRequestTimeout = setRequestTimeout;
55
54
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/request/utils.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F,oDAAyD;AAGzD;;;;;;GAMG;AACH,SAAgB,wBAAwB,CAAC,OAAgB,EAAE,KAAe;IACxE,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAC,EAAE,CAAA,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAK,qBAAqB;IAC3F,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAC,EAAE,CAAA,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1F,KAAK,MAAM,UAAU,IAAI,cAAc,EAAE,CAAC;YACxC,IAAI,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAClC,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAXD,4DAWC;AAUD,gBAAgB;AAChB,SAAgB,qBAAqB,CAAC,OAAgB,EAAE,WAA2C,EAAE,QAAiB;IACpH,IAAI,QAA0B,CAAC;IAC/B,IAAI,GAAqB,CAAC;IAC1B,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,QAAQ,GAAG,WAAW,CAAC;QACvB,GAAG,GAAI,QAAQ,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC;QAC5B,GAAG,GAAI,WAAW,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,IAAI,QAAQ,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS;QAC7C,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,iCAAmB,CAAC,MAAM,CAAC,GAAG,QAAQ,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9F,CAAC;AAbD,sDAaC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,IAAiB,EAAE,EAAU,EAAE,eAAiC;IAChG,MAAM,UAAU,GAAG,eAAe,IAAI,IAAI,eAAe,EAAE,CAAC;IAC5D,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;AAClC,CAAC;AAJD,8CAIC","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\r\nimport { Base64EncodedString } from \"@itwin/core-common\";\r\nimport { RequestBasicCredentials } from \"./Request\";\r\n\r\n/**\r\n * Check whether or not one of the requested authentication method is listed in the HTTP 'WWW-Authenticate' response header\r\n * @param headers Headers object\r\n * @param query List of authentication method to lookup (case-insensitive)\r\n * @note For CORS requests, the 'Access-Control-Expose-Headers' header from the server must make the 'WWW-Authenticate' available to the browser, otherwise this won't work.\r\n * @internal\r\n */\r\nexport function headersIncludeAuthMethod(headers: Headers, query: string[]): boolean {\r\n const wwwAuthenticate = headers.get(\"WWW-authenticate\");\r\n const lowerCaseQuery = query.map(((value)=>value.toLowerCase())); // not case-sensitive\r\n if (wwwAuthenticate !== null) {\r\n const authMethods = wwwAuthenticate.split(\",\").map(((value)=>value.toLowerCase().trim()));\r\n for (const queryValue of lowerCaseQuery) {\r\n if (authMethods.includes(queryValue))\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Set the value of the 'Authorization' header with Basic authentication value\r\n * scheme: 'Authorization: Basic <credentials>'\r\n * @internal\r\n */\r\nexport function setBasicAuthorization(headers: Headers, credentials: RequestBasicCredentials): void;\r\n/** @internal */\r\nexport function setBasicAuthorization(headers: Headers, user: string, password: string): void;\r\n/** @internal */\r\nexport function setBasicAuthorization(headers: Headers, userOrCreds: string|RequestBasicCredentials, password?: string): void {\r\n let username: string|undefined;\r\n let pwd: string|undefined;\r\n if (typeof userOrCreds === \"string\") {\r\n username = userOrCreds;\r\n pwd = password;\r\n } else {\r\n username = userOrCreds.user;\r\n pwd = userOrCreds.password;\r\n }\r\n\r\n if (username !== undefined && pwd !== undefined)\r\n headers.set(\"Authorization\", `Basic ${Base64EncodedString.encode(`${username}:${pwd}`)}`);\r\n}\r\n\r\n/**\r\n * Set number of milliseconds a request can take before automatically being terminated\r\n * @internal\r\n */\r\nexport function setRequestTimeout(opts: RequestInit, ms: number, abortController?: AbortController ): void {\r\n const controller = abortController ?? new AbortController();\r\n setTimeout(() => controller.abort(), ms);\r\n opts.signal = controller.signal;\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/request/utils.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;AAY/F,4DAWC;AAWD,sDAaC;AAMD,8CAIC;AAvDD,oDAAyD;AAGzD;;;;;;GAMG;AACH,SAAgB,wBAAwB,CAAC,OAAgB,EAAE,KAAe;IACxE,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAC,EAAE,CAAA,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAK,qBAAqB;IAC3F,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAC,EAAE,CAAA,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1F,KAAK,MAAM,UAAU,IAAI,cAAc,EAAE,CAAC;YACxC,IAAI,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAClC,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAUD,gBAAgB;AAChB,SAAgB,qBAAqB,CAAC,OAAgB,EAAE,WAA2C,EAAE,QAAiB;IACpH,IAAI,QAA0B,CAAC;IAC/B,IAAI,GAAqB,CAAC;IAC1B,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,QAAQ,GAAG,WAAW,CAAC;QACvB,GAAG,GAAI,QAAQ,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC;QAC5B,GAAG,GAAI,WAAW,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,IAAI,QAAQ,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS;QAC7C,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,iCAAmB,CAAC,MAAM,CAAC,GAAG,QAAQ,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9F,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,IAAiB,EAAE,EAAU,EAAE,eAAiC;IAChG,MAAM,UAAU,GAAG,eAAe,IAAI,IAAI,eAAe,EAAE,CAAC;IAC5D,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;AAClC,CAAC","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\r\nimport { Base64EncodedString } from \"@itwin/core-common\";\r\nimport { RequestBasicCredentials } from \"./Request\";\r\n\r\n/**\r\n * Check whether or not one of the requested authentication method is listed in the HTTP 'WWW-Authenticate' response header\r\n * @param headers Headers object\r\n * @param query List of authentication method to lookup (case-insensitive)\r\n * @note For CORS requests, the 'Access-Control-Expose-Headers' header from the server must make the 'WWW-Authenticate' available to the browser, otherwise this won't work.\r\n * @internal\r\n */\r\nexport function headersIncludeAuthMethod(headers: Headers, query: string[]): boolean {\r\n const wwwAuthenticate = headers.get(\"WWW-authenticate\");\r\n const lowerCaseQuery = query.map(((value)=>value.toLowerCase())); // not case-sensitive\r\n if (wwwAuthenticate !== null) {\r\n const authMethods = wwwAuthenticate.split(\",\").map(((value)=>value.toLowerCase().trim()));\r\n for (const queryValue of lowerCaseQuery) {\r\n if (authMethods.includes(queryValue))\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Set the value of the 'Authorization' header with Basic authentication value\r\n * scheme: 'Authorization: Basic <credentials>'\r\n * @internal\r\n */\r\nexport function setBasicAuthorization(headers: Headers, credentials: RequestBasicCredentials): void;\r\n/** @internal */\r\nexport function setBasicAuthorization(headers: Headers, user: string, password: string): void;\r\n/** @internal */\r\nexport function setBasicAuthorization(headers: Headers, userOrCreds: string|RequestBasicCredentials, password?: string): void {\r\n let username: string|undefined;\r\n let pwd: string|undefined;\r\n if (typeof userOrCreds === \"string\") {\r\n username = userOrCreds;\r\n pwd = password;\r\n } else {\r\n username = userOrCreds.user;\r\n pwd = userOrCreds.password;\r\n }\r\n\r\n if (username !== undefined && pwd !== undefined)\r\n headers.set(\"Authorization\", `Basic ${Base64EncodedString.encode(`${username}:${pwd}`)}`);\r\n}\r\n\r\n/**\r\n * Set number of milliseconds a request can take before automatically being terminated\r\n * @internal\r\n */\r\nexport function setRequestTimeout(opts: RequestInit, ms: number, abortController?: AbortController ): void {\r\n const controller = abortController ?? new AbortController();\r\n setTimeout(() => controller.abort(), ms);\r\n opts.signal = controller.signal;\r\n}\r\n\r\n"]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createClassifierTileTreeReference = exports.SpatialClassifierTileTreeReference = void 0;
3
+ exports.SpatialClassifierTileTreeReference = void 0;
4
+ exports.createClassifierTileTreeReference = createClassifierTileTreeReference;
4
5
  /*---------------------------------------------------------------------------------------------
5
6
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
6
7
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -141,7 +142,6 @@ class ClassifierTreeReference extends SpatialClassifierTileTreeReference {
141
142
  function createClassifierTileTreeReference(classifiers, classifiedTree, iModel, source) {
142
143
  return new ClassifierTreeReference(classifiers, classifiedTree, iModel, source);
143
144
  }
144
- exports.createClassifierTileTreeReference = createClassifierTileTreeReference;
145
145
  function createClassifierId(classifier, source) {
146
146
  if (undefined === classifier)
147
147
  return { modelId: core_bentley_1.Id64.invalid, type: core_common_1.BatchType.PlanarClassifier, expansion: 0, animationId: undefined };
@@ -1 +1 @@
1
- {"version":3,"file":"ClassifierTileTree.js","sourceRoot":"","sources":["../../../src/tile/ClassifierTileTree.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\nimport { compareNumbers, comparePossiblyUndefined, compareStrings, compareStringsOrUndefined, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n BatchType, ClassifierTileTreeId, iModelTileTreeIdToString, RenderMode, RenderSchedule, SpatialClassifier, ViewFlagsProperties,\r\n} from \"@itwin/core-common\";\r\nimport { DisplayStyleState } from \"../DisplayStyleState\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { GeometricModelState } from \"../ModelState\";\r\nimport { SceneContext } from \"../ViewContext\";\r\nimport { ViewState } from \"../ViewState\";\r\nimport { ActiveSpatialClassifier, SpatialClassifiersState } from \"../SpatialClassifiersState\";\r\nimport {\r\n DisclosedTileTreeSet, IModelTileTree, iModelTileTreeParamsFromJSON, TileTree, TileTreeLoadStatus, TileTreeOwner, TileTreeReference, TileTreeSupplier,\r\n} from \"./internal\";\r\n\r\ninterface ClassifierTreeId extends ClassifierTileTreeId {\r\n modelId: Id64String;\r\n timeline?: RenderSchedule.ModelTimeline;\r\n}\r\n\r\nfunction compareIds(lhs: ClassifierTreeId, rhs: ClassifierTreeId): number {\r\n return compareNumbers(lhs.type, rhs.type) || compareNumbers(lhs.expansion, rhs.expansion)\r\n || compareStrings(lhs.modelId, rhs.modelId) || compareStringsOrUndefined(lhs.animationId, rhs.animationId)\r\n || comparePossiblyUndefined((x, y) => x.compareTo(y), lhs.timeline, rhs.timeline);\r\n}\r\n\r\nclass ClassifierTreeSupplier implements TileTreeSupplier {\r\n private readonly _nonexistentTreeOwner = {\r\n tileTree: undefined,\r\n loadStatus: TileTreeLoadStatus.NotFound,\r\n load: () => undefined,\r\n dispose: () => undefined,\r\n loadTree: async () => undefined,\r\n iModel: undefined as unknown as IModelConnection,\r\n };\r\n\r\n public compareTileTreeIds(lhs: ClassifierTreeId, rhs: ClassifierTreeId): number {\r\n return compareIds(lhs, rhs);\r\n }\r\n\r\n public async createTileTree(id: ClassifierTreeId, iModel: IModelConnection): Promise<TileTree | undefined> {\r\n await iModel.models.load(id.modelId);\r\n const model = iModel.models.getLoaded(id.modelId);\r\n if (undefined === model || !(model instanceof GeometricModelState))\r\n return undefined;\r\n\r\n const idStr = iModelTileTreeIdToString(id.modelId, id, IModelApp.tileAdmin);\r\n const props = await IModelApp.tileAdmin.requestTileTreeProps(iModel, idStr);\r\n\r\n const params = iModelTileTreeParamsFromJSON(props, iModel, id.modelId, {\r\n edges: false,\r\n allowInstancing: false,\r\n is3d: true,\r\n batchType: id.type,\r\n timeline: id.timeline,\r\n });\r\n\r\n return new IModelTileTree(params, id);\r\n }\r\n\r\n public getOwner(id: ClassifierTreeId, iModel: IModelConnection): TileTreeOwner {\r\n return Id64.isValid(id.modelId) ? iModel.tiles.getTileTreeOwner(id, this) : this._nonexistentTreeOwner;\r\n }\r\n\r\n public addModelsAnimatedByScript(modelIds: Set<Id64String>, scriptSourceId: Id64String, trees: Iterable<{ id: ClassifierTreeId, owner: TileTreeOwner }>): void {\r\n // Note: This is invoked when an element hosting a schedule script is updated - it doesn't care about frontend schedule scripts.\r\n for (const tree of trees)\r\n if (scriptSourceId === tree.id.animationId)\r\n modelIds.add(tree.id.modelId);\r\n }\r\n\r\n public addSpatialModels(modelIds: Set<Id64String>, trees: Iterable<{ id: ClassifierTreeId, owner: TileTreeOwner }>): void {\r\n for (const tree of trees)\r\n modelIds.add(tree.id.modelId);\r\n }\r\n}\r\n\r\nconst classifierTreeSupplier = new ClassifierTreeSupplier();\r\n\r\n/** @internal */\r\nexport abstract class SpatialClassifierTileTreeReference extends TileTreeReference {\r\n public abstract get isPlanar(): boolean;\r\n public abstract get activeClassifier(): ActiveSpatialClassifier | undefined;\r\n public abstract get viewFlags(): Partial<ViewFlagsProperties>;\r\n public get transparency(): number | undefined { return undefined; }\r\n}\r\n\r\n/** @internal */\r\nclass ClassifierTreeReference extends SpatialClassifierTileTreeReference {\r\n private _id: ClassifierTreeId;\r\n private readonly _classifiers: SpatialClassifiersState;\r\n private readonly _source: ViewState | DisplayStyleState;\r\n private readonly _iModel: IModelConnection;\r\n private readonly _classifiedTree: TileTreeReference;\r\n private _owner: TileTreeOwner;\r\n\r\n public constructor(classifiers: SpatialClassifiersState, classifiedTree: TileTreeReference, iModel: IModelConnection, source: ViewState | DisplayStyleState) {\r\n super();\r\n this._id = createClassifierId(classifiers.active, source);\r\n this._source = source;\r\n this._iModel = iModel;\r\n this._classifiers = classifiers;\r\n this._classifiedTree = classifiedTree;\r\n this._owner = classifierTreeSupplier.getOwner(this._id, iModel);\r\n }\r\n\r\n public get classifiers(): SpatialClassifiersState { return this._classifiers; }\r\n public get activeClassifier(): ActiveSpatialClassifier | undefined { return this.classifiers.activeClassifier; }\r\n\r\n public override get castsShadows() {\r\n return false;\r\n }\r\n\r\n public get treeOwner(): TileTreeOwner {\r\n const newId = createClassifierId(this._classifiers.active, this._source);\r\n if (0 !== compareIds(this._id, newId)) {\r\n this._id = newId;\r\n this._owner = classifierTreeSupplier.getOwner(this._id, this._iModel);\r\n }\r\n\r\n return this.activeClassifier?.tileTreeReference?.treeOwner ?? this._owner;\r\n }\r\n\r\n public override discloseTileTrees(trees: DisclosedTileTreeSet): void {\r\n // NB: We do NOT call super because we don't use our tree if no classifier is active.\r\n trees.disclose(this._classifiedTree);\r\n\r\n const classifier = this.activeClassifier;\r\n const classifierTree = undefined !== classifier ? this.treeOwner.tileTree : undefined;\r\n if (undefined !== classifierTree)\r\n trees.add(classifierTree);\r\n }\r\n\r\n public get isPlanar() {\r\n if (this.activeClassifier?.flags.isVolumeClassifier) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public get viewFlags(): Partial<ViewFlagsProperties> {\r\n return {\r\n renderMode: RenderMode.SmoothShade,\r\n transparency: true, // Igored for point clouds as they don't support transparency.\r\n textures: false,\r\n lighting: false,\r\n shadows: false,\r\n monochrome: false,\r\n materials: false,\r\n ambientOcclusion: false,\r\n visibleEdges: false,\r\n hiddenEdges: false,\r\n };\r\n }\r\n\r\n // Add volume classifiers to scene (planar classifiers are added seperately.)\r\n public override addToScene(context: SceneContext): void {\r\n if (this.isPlanar)\r\n return;\r\n\r\n const classifiedTree = this._classifiedTree.treeOwner.load();\r\n if (undefined === classifiedTree)\r\n return;\r\n\r\n const classifier = this._classifiers.activeClassifier;\r\n if (undefined === classifier)\r\n return;\r\n\r\n const classifierTree = this.treeOwner.load();\r\n if (undefined === classifierTree)\r\n return;\r\n\r\n context.setVolumeClassifier(classifier, classifiedTree.modelId);\r\n super.addToScene(context);\r\n }\r\n\r\n}\r\n\r\n/** @internal */\r\nexport function createClassifierTileTreeReference(classifiers: SpatialClassifiersState, classifiedTree: TileTreeReference, iModel: IModelConnection, source: ViewState | DisplayStyleState): SpatialClassifierTileTreeReference {\r\n return new ClassifierTreeReference(classifiers, classifiedTree, iModel, source);\r\n}\r\n\r\nfunction createClassifierId(classifier: SpatialClassifier | undefined, source: ViewState | DisplayStyleState | undefined): ClassifierTreeId {\r\n if (undefined === classifier)\r\n return { modelId: Id64.invalid, type: BatchType.PlanarClassifier, expansion: 0, animationId: undefined };\r\n\r\n const type = classifier.flags.isVolumeClassifier ? BatchType.VolumeClassifier : BatchType.PlanarClassifier;\r\n const scriptInfo = IModelApp.tileAdmin.getScriptInfoForTreeId(classifier.modelId, source?.scheduleScriptReference); // eslint-disable-line deprecation/deprecation\r\n return {\r\n modelId: classifier.modelId,\r\n type,\r\n expansion: classifier.expand,\r\n animationId: scriptInfo?.animationId,\r\n timeline: scriptInfo?.timeline,\r\n };\r\n}\r\n"]}
1
+ {"version":3,"file":"ClassifierTileTree.js","sourceRoot":"","sources":["../../../src/tile/ClassifierTileTree.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\nimport { compareNumbers, comparePossiblyUndefined, compareStrings, compareStringsOrUndefined, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n BatchType, ClassifierTileTreeId, iModelTileTreeIdToString, RenderMode, RenderSchedule, SpatialClassifier, ViewFlagsProperties,\r\n} from \"@itwin/core-common\";\r\nimport { DisplayStyleState } from \"../DisplayStyleState\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { GeometricModelState } from \"../ModelState\";\r\nimport { SceneContext } from \"../ViewContext\";\r\nimport { ViewState } from \"../ViewState\";\r\nimport { ActiveSpatialClassifier, SpatialClassifiersState } from \"../SpatialClassifiersState\";\r\nimport {\r\n DisclosedTileTreeSet, IModelTileTree, iModelTileTreeParamsFromJSON, TileTree, TileTreeLoadStatus, TileTreeOwner, TileTreeReference, TileTreeSupplier,\r\n} from \"./internal\";\r\n\r\ninterface ClassifierTreeId extends ClassifierTileTreeId {\r\n modelId: Id64String;\r\n timeline?: RenderSchedule.ModelTimeline;\r\n}\r\n\r\nfunction compareIds(lhs: ClassifierTreeId, rhs: ClassifierTreeId): number {\r\n return compareNumbers(lhs.type, rhs.type) || compareNumbers(lhs.expansion, rhs.expansion)\r\n || compareStrings(lhs.modelId, rhs.modelId) || compareStringsOrUndefined(lhs.animationId, rhs.animationId)\r\n || comparePossiblyUndefined((x, y) => x.compareTo(y), lhs.timeline, rhs.timeline);\r\n}\r\n\r\nclass ClassifierTreeSupplier implements TileTreeSupplier {\r\n private readonly _nonexistentTreeOwner = {\r\n tileTree: undefined,\r\n loadStatus: TileTreeLoadStatus.NotFound,\r\n load: () => undefined,\r\n dispose: () => undefined,\r\n loadTree: async () => undefined,\r\n iModel: undefined as unknown as IModelConnection,\r\n };\r\n\r\n public compareTileTreeIds(lhs: ClassifierTreeId, rhs: ClassifierTreeId): number {\r\n return compareIds(lhs, rhs);\r\n }\r\n\r\n public async createTileTree(id: ClassifierTreeId, iModel: IModelConnection): Promise<TileTree | undefined> {\r\n await iModel.models.load(id.modelId);\r\n const model = iModel.models.getLoaded(id.modelId);\r\n if (undefined === model || !(model instanceof GeometricModelState))\r\n return undefined;\r\n\r\n const idStr = iModelTileTreeIdToString(id.modelId, id, IModelApp.tileAdmin);\r\n const props = await IModelApp.tileAdmin.requestTileTreeProps(iModel, idStr);\r\n\r\n const params = iModelTileTreeParamsFromJSON(props, iModel, id.modelId, {\r\n edges: false,\r\n allowInstancing: false,\r\n is3d: true,\r\n batchType: id.type,\r\n timeline: id.timeline,\r\n });\r\n\r\n return new IModelTileTree(params, id);\r\n }\r\n\r\n public getOwner(id: ClassifierTreeId, iModel: IModelConnection): TileTreeOwner {\r\n return Id64.isValid(id.modelId) ? iModel.tiles.getTileTreeOwner(id, this) : this._nonexistentTreeOwner;\r\n }\r\n\r\n public addModelsAnimatedByScript(modelIds: Set<Id64String>, scriptSourceId: Id64String, trees: Iterable<{ id: ClassifierTreeId, owner: TileTreeOwner }>): void {\r\n // Note: This is invoked when an element hosting a schedule script is updated - it doesn't care about frontend schedule scripts.\r\n for (const tree of trees)\r\n if (scriptSourceId === tree.id.animationId)\r\n modelIds.add(tree.id.modelId);\r\n }\r\n\r\n public addSpatialModels(modelIds: Set<Id64String>, trees: Iterable<{ id: ClassifierTreeId, owner: TileTreeOwner }>): void {\r\n for (const tree of trees)\r\n modelIds.add(tree.id.modelId);\r\n }\r\n}\r\n\r\nconst classifierTreeSupplier = new ClassifierTreeSupplier();\r\n\r\n/** @internal */\r\nexport abstract class SpatialClassifierTileTreeReference extends TileTreeReference {\r\n public abstract get isPlanar(): boolean;\r\n public abstract get activeClassifier(): ActiveSpatialClassifier | undefined;\r\n public abstract get viewFlags(): Partial<ViewFlagsProperties>;\r\n public get transparency(): number | undefined { return undefined; }\r\n}\r\n\r\n/** @internal */\r\nclass ClassifierTreeReference extends SpatialClassifierTileTreeReference {\r\n private _id: ClassifierTreeId;\r\n private readonly _classifiers: SpatialClassifiersState;\r\n private readonly _source: ViewState | DisplayStyleState;\r\n private readonly _iModel: IModelConnection;\r\n private readonly _classifiedTree: TileTreeReference;\r\n private _owner: TileTreeOwner;\r\n\r\n public constructor(classifiers: SpatialClassifiersState, classifiedTree: TileTreeReference, iModel: IModelConnection, source: ViewState | DisplayStyleState) {\r\n super();\r\n this._id = createClassifierId(classifiers.active, source);\r\n this._source = source;\r\n this._iModel = iModel;\r\n this._classifiers = classifiers;\r\n this._classifiedTree = classifiedTree;\r\n this._owner = classifierTreeSupplier.getOwner(this._id, iModel);\r\n }\r\n\r\n public get classifiers(): SpatialClassifiersState { return this._classifiers; }\r\n public get activeClassifier(): ActiveSpatialClassifier | undefined { return this.classifiers.activeClassifier; }\r\n\r\n public override get castsShadows() {\r\n return false;\r\n }\r\n\r\n public get treeOwner(): TileTreeOwner {\r\n const newId = createClassifierId(this._classifiers.active, this._source);\r\n if (0 !== compareIds(this._id, newId)) {\r\n this._id = newId;\r\n this._owner = classifierTreeSupplier.getOwner(this._id, this._iModel);\r\n }\r\n\r\n return this.activeClassifier?.tileTreeReference?.treeOwner ?? this._owner;\r\n }\r\n\r\n public override discloseTileTrees(trees: DisclosedTileTreeSet): void {\r\n // NB: We do NOT call super because we don't use our tree if no classifier is active.\r\n trees.disclose(this._classifiedTree);\r\n\r\n const classifier = this.activeClassifier;\r\n const classifierTree = undefined !== classifier ? this.treeOwner.tileTree : undefined;\r\n if (undefined !== classifierTree)\r\n trees.add(classifierTree);\r\n }\r\n\r\n public get isPlanar() {\r\n if (this.activeClassifier?.flags.isVolumeClassifier) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public get viewFlags(): Partial<ViewFlagsProperties> {\r\n return {\r\n renderMode: RenderMode.SmoothShade,\r\n transparency: true, // Igored for point clouds as they don't support transparency.\r\n textures: false,\r\n lighting: false,\r\n shadows: false,\r\n monochrome: false,\r\n materials: false,\r\n ambientOcclusion: false,\r\n visibleEdges: false,\r\n hiddenEdges: false,\r\n };\r\n }\r\n\r\n // Add volume classifiers to scene (planar classifiers are added seperately.)\r\n public override addToScene(context: SceneContext): void {\r\n if (this.isPlanar)\r\n return;\r\n\r\n const classifiedTree = this._classifiedTree.treeOwner.load();\r\n if (undefined === classifiedTree)\r\n return;\r\n\r\n const classifier = this._classifiers.activeClassifier;\r\n if (undefined === classifier)\r\n return;\r\n\r\n const classifierTree = this.treeOwner.load();\r\n if (undefined === classifierTree)\r\n return;\r\n\r\n context.setVolumeClassifier(classifier, classifiedTree.modelId);\r\n super.addToScene(context);\r\n }\r\n\r\n}\r\n\r\n/** @internal */\r\nexport function createClassifierTileTreeReference(classifiers: SpatialClassifiersState, classifiedTree: TileTreeReference, iModel: IModelConnection, source: ViewState | DisplayStyleState): SpatialClassifierTileTreeReference {\r\n return new ClassifierTreeReference(classifiers, classifiedTree, iModel, source);\r\n}\r\n\r\nfunction createClassifierId(classifier: SpatialClassifier | undefined, source: ViewState | DisplayStyleState | undefined): ClassifierTreeId {\r\n if (undefined === classifier)\r\n return { modelId: Id64.invalid, type: BatchType.PlanarClassifier, expansion: 0, animationId: undefined };\r\n\r\n const type = classifier.flags.isVolumeClassifier ? BatchType.VolumeClassifier : BatchType.PlanarClassifier;\r\n const scriptInfo = IModelApp.tileAdmin.getScriptInfoForTreeId(classifier.modelId, source?.scheduleScriptReference); // eslint-disable-line deprecation/deprecation\r\n return {\r\n modelId: classifier.modelId,\r\n type,\r\n expansion: classifier.expand,\r\n animationId: scriptInfo?.animationId,\r\n timeline: scriptInfo?.timeline,\r\n };\r\n}\r\n"]}
@@ -30,7 +30,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
30
30
  return result;
31
31
  };
32
32
  Object.defineProperty(exports, "__esModule", { value: true });
33
- exports.GltfGraphicsReader = exports.readGltf = exports.readGltfTemplate = exports.readGltfGraphics = exports.GltfReader = exports.GltfMeshData = exports.GltfReaderProps = exports.GltfBufferData = void 0;
33
+ exports.GltfGraphicsReader = exports.GltfReader = exports.GltfMeshData = exports.GltfReaderProps = exports.GltfBufferData = void 0;
34
+ exports.readGltfGraphics = readGltfGraphics;
35
+ exports.readGltfTemplate = readGltfTemplate;
36
+ exports.readGltf = readGltf;
34
37
  const core_bentley_1 = require("@itwin/core-bentley");
35
38
  const core_geometry_1 = require("@itwin/core-geometry");
36
39
  const core_common_1 = require("@itwin/core-common");
@@ -1643,7 +1646,6 @@ async function readGltfGraphics(args) {
1643
1646
  const result = await readGltf(args);
1644
1647
  return result?.graphic;
1645
1648
  }
1646
- exports.readGltfGraphics = readGltfGraphics;
1647
1649
  /** Produce a [[GraphicTemplate]] from a [glTF](https://www.khronos.org/gltf/) asset suitable for use in [view decorations]($docs/learning/frontend/ViewDecorations).
1648
1650
  * @returns a template produced from the glTF asset's default scene, or `undefined` if a template could not be produced from the asset.
1649
1651
  * @see [[readGltf]] for more details.
@@ -1664,7 +1666,6 @@ async function readGltfTemplate(args) {
1664
1666
  boundingBox: result.range ?? core_geometry_1.Range3d.createNull(),
1665
1667
  };
1666
1668
  }
1667
- exports.readGltfTemplate = readGltfTemplate;
1668
1669
  /** Produce a [[RenderGraphic]] from a [glTF](https://www.khronos.org/gltf/) asset suitable for use in [view decorations]($docs/learning/frontend/ViewDecorations).
1669
1670
  * @returns a graphic produced from the glTF asset's default scene, or `undefined` if a graphic could not be produced from the asset.
1670
1671
  * The returned graphic also includes the bounding boxes of the glTF model in world and local coordiantes.
@@ -1687,7 +1688,6 @@ async function readGltf(args) {
1687
1688
  graphic: IModelApp_1.IModelApp.renderSystem.createGraphicFromTemplate({ template }),
1688
1689
  };
1689
1690
  }
1690
- exports.readGltf = readGltf;
1691
1691
  /** Implements [[readGltfGraphics]]. Exported strictly for tests.
1692
1692
  * @internal
1693
1693
  */