@itwin/core-frontend 5.1.1 → 5.1.3-experimental.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (884) hide show
  1. package/CHANGELOG.md +13 -1
  2. package/lib/cjs/AccuDraw.js.map +1 -1
  3. package/lib/cjs/AccuSnap.js.map +1 -1
  4. package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
  5. package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -1
  6. package/lib/cjs/AuxCoordSys.js.map +1 -1
  7. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  8. package/lib/cjs/BingLocation.js.map +1 -1
  9. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  10. package/lib/cjs/BriefcaseTxns.js.map +1 -1
  11. package/lib/cjs/CatalogConnection.js.map +1 -1
  12. package/lib/cjs/CategorySelectorState.js.map +1 -1
  13. package/lib/cjs/ChangeFlags.js.map +1 -1
  14. package/lib/cjs/CheckpointConnection.js.map +1 -1
  15. package/lib/cjs/ContextRealityModelState.js.map +1 -1
  16. package/lib/cjs/CoordSystem.js.map +1 -1
  17. package/lib/cjs/DecorationsCache.js.map +1 -1
  18. package/lib/cjs/DevTools.js.map +1 -1
  19. package/lib/cjs/DisplayStyleState.js.map +1 -1
  20. package/lib/cjs/DrawingViewState.js.map +1 -1
  21. package/lib/cjs/ElementLocateManager.js.map +1 -1
  22. package/lib/cjs/EmphasizeElements.js.map +1 -1
  23. package/lib/cjs/EntityState.js.map +1 -1
  24. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  25. package/lib/cjs/FeatureOverrideProvider.js.map +1 -1
  26. package/lib/cjs/FlashSettings.js.map +1 -1
  27. package/lib/cjs/FrontendHubAccess.js.map +1 -1
  28. package/lib/cjs/Frustum2d.js.map +1 -1
  29. package/lib/cjs/FrustumAnimator.js.map +1 -1
  30. package/lib/cjs/FuzzySearch.js.map +1 -1
  31. package/lib/cjs/GeoServices.js.map +1 -1
  32. package/lib/cjs/GlobeAnimator.js.map +1 -1
  33. package/lib/cjs/GraphicalEditingScope.js.map +1 -1
  34. package/lib/cjs/HitDetail.js.map +1 -1
  35. package/lib/cjs/IModelApp.js.map +1 -1
  36. package/lib/cjs/IModelConnection.js.map +1 -1
  37. package/lib/cjs/IModelRoutingContext.js.map +1 -1
  38. package/lib/cjs/IModeljs-css.js.map +1 -1
  39. package/lib/cjs/IpcApp.js.map +1 -1
  40. package/lib/cjs/LinePlaneIntersect.js.map +1 -1
  41. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  42. package/lib/cjs/MarginPercent.js.map +1 -1
  43. package/lib/cjs/Marker.js.map +1 -1
  44. package/lib/cjs/ModelSelectorState.js.map +1 -1
  45. package/lib/cjs/ModelState.js.map +1 -1
  46. package/lib/cjs/NativeApp.js.map +1 -1
  47. package/lib/cjs/NativeAppLogger.js.map +1 -1
  48. package/lib/cjs/NoRenderApp.js.map +1 -1
  49. package/lib/cjs/NotificationManager.js.map +1 -1
  50. package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
  51. package/lib/cjs/PlanarClipMaskState.js.map +1 -1
  52. package/lib/cjs/RealityDataSource.js.map +1 -1
  53. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  54. package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -1
  55. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  56. package/lib/cjs/SelectionSet.js.map +1 -1
  57. package/lib/cjs/SheetViewState.js.map +1 -1
  58. package/lib/cjs/SpatialClassifiersState.js.map +1 -1
  59. package/lib/cjs/SpatialViewState.js.map +1 -1
  60. package/lib/cjs/Sprites.js.map +1 -1
  61. package/lib/cjs/StandardView.js.map +1 -1
  62. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  63. package/lib/cjs/TentativePoint.js.map +1 -1
  64. package/lib/cjs/Tiles.js.map +1 -1
  65. package/lib/cjs/TxnEntityChanges.js.map +1 -1
  66. package/lib/cjs/UserPreferences.js.map +1 -1
  67. package/lib/cjs/ViewAnimation.js.map +1 -1
  68. package/lib/cjs/ViewContext.js.map +1 -1
  69. package/lib/cjs/ViewCreator2d.js.map +1 -1
  70. package/lib/cjs/ViewCreator3d.js.map +1 -1
  71. package/lib/cjs/ViewGlobalLocation.js.map +1 -1
  72. package/lib/cjs/ViewManager.js.map +1 -1
  73. package/lib/cjs/ViewPose.js.map +1 -1
  74. package/lib/cjs/ViewState.js.map +1 -1
  75. package/lib/cjs/ViewStatus.js.map +1 -1
  76. package/lib/cjs/ViewingSpace.js.map +1 -1
  77. package/lib/cjs/Viewport.js.map +1 -1
  78. package/lib/cjs/ViewportSync.js.map +1 -1
  79. package/lib/cjs/common/FrontendLoggerCategory.js.map +1 -1
  80. package/lib/cjs/common/ImageUtil.js.map +1 -1
  81. package/lib/cjs/common/ViewRect.js.map +1 -1
  82. package/lib/cjs/common/WorkerProxy.js.map +1 -1
  83. package/lib/cjs/common/gltf/GltfModel.js.map +1 -1
  84. package/lib/cjs/common/gltf/GltfParser.js.map +1 -1
  85. package/lib/cjs/common/gltf/GltfSchema.js.map +1 -1
  86. package/lib/cjs/common/imdl/CompactEdges.js.map +1 -1
  87. package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
  88. package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -1
  89. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
  90. package/lib/cjs/common/internal/Symbols.js.map +1 -1
  91. package/lib/cjs/common/internal/render/AnimationNodeId.js.map +1 -1
  92. package/lib/cjs/common/internal/render/AuxChannelTable.js.map +1 -1
  93. package/lib/cjs/common/internal/render/ColorMap.js.map +1 -1
  94. package/lib/cjs/common/internal/render/DisplayParams.js.map +1 -1
  95. package/lib/cjs/common/internal/render/EdgeParams.js.map +1 -1
  96. package/lib/cjs/common/internal/render/GeometryAccumulator.js.map +1 -1
  97. package/lib/cjs/common/internal/render/GeometryList.js.map +1 -1
  98. package/lib/cjs/common/internal/render/GeometryPrimitives.js.map +1 -1
  99. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -1
  100. package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -1
  101. package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -1
  102. package/lib/cjs/common/internal/render/LineCode.js.map +1 -1
  103. package/lib/cjs/common/internal/render/MeshBuilder.js.map +1 -1
  104. package/lib/cjs/common/internal/render/MeshBuilderMap.js.map +1 -1
  105. package/lib/cjs/common/internal/render/MeshParams.js.map +1 -1
  106. package/lib/cjs/common/internal/render/MeshPrimitive.js.map +1 -1
  107. package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -1
  108. package/lib/cjs/common/internal/render/OvrFlags.js.map +1 -1
  109. package/lib/cjs/common/internal/render/PointCloudPrimitive.js.map +1 -1
  110. package/lib/cjs/common/internal/render/PointStringParams.js.map +1 -1
  111. package/lib/cjs/common/internal/render/Polyface.js.map +1 -1
  112. package/lib/cjs/common/internal/render/PolylineParams.js.map +1 -1
  113. package/lib/cjs/common/internal/render/Primitives.js.map +1 -1
  114. package/lib/cjs/common/internal/render/Strokes.js.map +1 -1
  115. package/lib/cjs/common/internal/render/SurfaceParams.js.map +1 -1
  116. package/lib/cjs/common/internal/render/VertexIndices.js.map +1 -1
  117. package/lib/cjs/common/internal/render/VertexKey.js.map +1 -1
  118. package/lib/cjs/common/internal/render/VertexTable.js.map +1 -1
  119. package/lib/cjs/common/internal/render/VertexTableBuilder.js.map +1 -1
  120. package/lib/cjs/common/internal/render/VertexTableSplitter.js.map +1 -1
  121. package/lib/cjs/common/render/BatchOptions.js.map +1 -1
  122. package/lib/cjs/common/render/GraphicAssembler.js.map +1 -1
  123. package/lib/cjs/common/render/GraphicDescriptionBuilder.js.map +1 -1
  124. package/lib/cjs/common/render/GraphicDescriptionContext.js.map +1 -1
  125. package/lib/cjs/common/render/GraphicPrimitive.js.map +1 -1
  126. package/lib/cjs/common/render/GraphicType.js.map +1 -1
  127. package/lib/cjs/common/render/InstancedGraphicParams.js.map +1 -1
  128. package/lib/cjs/common/render/MaterialParams.js.map +1 -1
  129. package/lib/cjs/common/render/RenderInstancesParams.js.map +1 -1
  130. package/lib/cjs/common/render/TextureParams.js.map +1 -1
  131. package/lib/cjs/common.js.map +1 -1
  132. package/lib/cjs/core-frontend.js.map +1 -1
  133. package/lib/cjs/extension/Extension.js.map +1 -1
  134. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  135. package/lib/cjs/extension/ExtensionHost.js.map +1 -1
  136. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  137. package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
  138. package/lib/cjs/extension/providers/LocalExtensionProvider.js.map +1 -1
  139. package/lib/cjs/extension/providers/RemoteExtensionProvider.js.map +1 -1
  140. package/lib/cjs/internal/GoogleMapsDecorator.js.map +1 -1
  141. package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -1
  142. package/lib/cjs/internal/ScriptUtils.js.map +1 -1
  143. package/lib/cjs/internal/cross-package.js.map +1 -1
  144. package/lib/cjs/internal/render/AnimationBranchState.js.map +1 -1
  145. package/lib/cjs/internal/render/FrameStatsCollector.js.map +1 -1
  146. package/lib/cjs/internal/render/GraphicBranchFrustum.js.map +1 -1
  147. package/lib/cjs/internal/render/GraphicTemplateImpl.js.map +1 -1
  148. package/lib/cjs/internal/render/MeshMapLayerGraphicParams.js.map +1 -1
  149. package/lib/cjs/internal/render/MockRender.js.map +1 -1
  150. package/lib/cjs/internal/render/PrimitiveBuilder.js.map +1 -1
  151. package/lib/cjs/internal/render/QueryVisibileFeatures.js.map +1 -1
  152. package/lib/cjs/internal/render/RenderAreaPattern.js.map +1 -1
  153. package/lib/cjs/internal/render/RenderGeometry.js.map +1 -1
  154. package/lib/cjs/internal/render/RenderInstancesParamsImpl.js.map +1 -1
  155. package/lib/cjs/internal/render/RenderMaterialSource.js.map +1 -1
  156. package/lib/cjs/internal/render/RenderPlan.js.map +1 -1
  157. package/lib/cjs/internal/render/RenderPlanarClassifier.js.map +1 -1
  158. package/lib/cjs/internal/render/RenderSkyBoxParams.js.map +1 -1
  159. package/lib/cjs/internal/render/RenderSystemDebugControl.js.map +1 -1
  160. package/lib/cjs/internal/render/RenderTargetDebugControl.js.map +1 -1
  161. package/lib/cjs/internal/render/RenderTerrain.js.map +1 -1
  162. package/lib/cjs/internal/render/RenderTextureDrape.js.map +1 -1
  163. package/lib/cjs/internal/render/SceneVolumeClassifier.js.map +1 -1
  164. package/lib/cjs/internal/render/UpsampleRealityMeshParams.js.map +1 -1
  165. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
  166. package/lib/cjs/internal/render/webgl/AttributeBuffers.js.map +1 -1
  167. package/lib/cjs/internal/render/webgl/AttributeMap.js.map +1 -1
  168. package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js +1 -1
  169. package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
  170. package/lib/cjs/internal/render/webgl/BatchState.js.map +1 -1
  171. package/lib/cjs/internal/render/webgl/BatchUniforms.js.map +1 -1
  172. package/lib/cjs/internal/render/webgl/BranchStack.js.map +1 -1
  173. package/lib/cjs/internal/render/webgl/BranchState.js.map +1 -1
  174. package/lib/cjs/internal/render/webgl/BranchUniforms.js.map +1 -1
  175. package/lib/cjs/internal/render/webgl/CachedGeometry.js.map +1 -1
  176. package/lib/cjs/internal/render/webgl/ClipStack.js.map +1 -1
  177. package/lib/cjs/internal/render/webgl/ClipVolume.js.map +1 -1
  178. package/lib/cjs/internal/render/webgl/ClippingProgram.js.map +1 -1
  179. package/lib/cjs/internal/render/webgl/ColorInfo.js.map +1 -1
  180. package/lib/cjs/internal/render/webgl/ContourUniforms.js.map +1 -1
  181. package/lib/cjs/internal/render/webgl/Contours.js.map +1 -1
  182. package/lib/cjs/internal/render/webgl/Diagnostics.js.map +1 -1
  183. package/lib/cjs/internal/render/webgl/Disposable.js.map +1 -1
  184. package/lib/cjs/internal/render/webgl/DrawCommand.js.map +1 -1
  185. package/lib/cjs/internal/render/webgl/EDL.js.map +1 -1
  186. package/lib/cjs/internal/render/webgl/EdgeGeometry.js.map +1 -1
  187. package/lib/cjs/internal/render/webgl/EdgeSettings.js.map +1 -1
  188. package/lib/cjs/internal/render/webgl/FeatureOverrides.js.map +1 -1
  189. package/lib/cjs/internal/render/webgl/FloatRGBA.js.map +1 -1
  190. package/lib/cjs/internal/render/webgl/FrameBuffer.js.map +1 -1
  191. package/lib/cjs/internal/render/webgl/FrustumUniforms.js.map +1 -1
  192. package/lib/cjs/internal/render/webgl/GL.js.map +1 -1
  193. package/lib/cjs/internal/render/webgl/GLTimer.js.map +1 -1
  194. package/lib/cjs/internal/render/webgl/Graphic.js.map +1 -1
  195. package/lib/cjs/internal/render/webgl/HiliteUniforms.js.map +1 -1
  196. package/lib/cjs/internal/render/webgl/IModelFrameLifecycle.js.map +1 -1
  197. package/lib/cjs/internal/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  198. package/lib/cjs/internal/render/webgl/InstancedGeometry.js.map +1 -1
  199. package/lib/cjs/internal/render/webgl/Layer.js.map +1 -1
  200. package/lib/cjs/internal/render/webgl/LayerCommands.js.map +1 -1
  201. package/lib/cjs/internal/render/webgl/LightingUniforms.js.map +1 -1
  202. package/lib/cjs/internal/render/webgl/LineCode.js.map +1 -1
  203. package/lib/cjs/internal/render/webgl/MapLayerParams.js.map +1 -1
  204. package/lib/cjs/internal/render/webgl/Material.js.map +1 -1
  205. package/lib/cjs/internal/render/webgl/Matrix.js.map +1 -1
  206. package/lib/cjs/internal/render/webgl/Mesh.js.map +1 -1
  207. package/lib/cjs/internal/render/webgl/MeshData.js.map +1 -1
  208. package/lib/cjs/internal/render/webgl/MeshGeometry.js.map +1 -1
  209. package/lib/cjs/internal/render/webgl/PerformanceMetrics.js.map +1 -1
  210. package/lib/cjs/internal/render/webgl/PlanarClassifier.js +1 -1
  211. package/lib/cjs/internal/render/webgl/PlanarClassifier.js.map +1 -1
  212. package/lib/cjs/internal/render/webgl/PlanarGrid.js.map +1 -1
  213. package/lib/cjs/internal/render/webgl/PlanarTextureProjection.js.map +1 -1
  214. package/lib/cjs/internal/render/webgl/PointCloud.js.map +1 -1
  215. package/lib/cjs/internal/render/webgl/PointString.js.map +1 -1
  216. package/lib/cjs/internal/render/webgl/Polyline.js.map +1 -1
  217. package/lib/cjs/internal/render/webgl/Primitive.js.map +1 -1
  218. package/lib/cjs/internal/render/webgl/RealityMesh.js.map +1 -1
  219. package/lib/cjs/internal/render/webgl/RealityModelUniforms.js.map +1 -1
  220. package/lib/cjs/internal/render/webgl/RenderBuffer.js.map +1 -1
  221. package/lib/cjs/internal/render/webgl/RenderCommands.js.map +1 -1
  222. package/lib/cjs/internal/render/webgl/RenderFlags.js.map +1 -1
  223. package/lib/cjs/internal/render/webgl/RenderState.js.map +1 -1
  224. package/lib/cjs/internal/render/webgl/SceneCompositor.js.map +1 -1
  225. package/lib/cjs/internal/render/webgl/ScratchDrawParams.js.map +1 -1
  226. package/lib/cjs/internal/render/webgl/ScreenSpaceEffect.js.map +1 -1
  227. package/lib/cjs/internal/render/webgl/ShaderBuilder.js.map +1 -1
  228. package/lib/cjs/internal/render/webgl/ShaderProgram.js.map +1 -1
  229. package/lib/cjs/internal/render/webgl/ShadowUniforms.js.map +1 -1
  230. package/lib/cjs/internal/render/webgl/SolarShadowMap.js.map +1 -1
  231. package/lib/cjs/internal/render/webgl/StyleUniforms.js.map +1 -1
  232. package/lib/cjs/internal/render/webgl/SurfaceGeometry.js.map +1 -1
  233. package/lib/cjs/internal/render/webgl/Sync.js.map +1 -1
  234. package/lib/cjs/internal/render/webgl/System.js.map +1 -1
  235. package/lib/cjs/internal/render/webgl/Target.js.map +1 -1
  236. package/lib/cjs/internal/render/webgl/TargetGraphics.js.map +1 -1
  237. package/lib/cjs/internal/render/webgl/TargetUniforms.js.map +1 -1
  238. package/lib/cjs/internal/render/webgl/Technique.js.map +1 -1
  239. package/lib/cjs/internal/render/webgl/TechniqueFlags.js.map +1 -1
  240. package/lib/cjs/internal/render/webgl/TechniqueId.js.map +1 -1
  241. package/lib/cjs/internal/render/webgl/Texture.js.map +1 -1
  242. package/lib/cjs/internal/render/webgl/TextureDrape.js.map +1 -1
  243. package/lib/cjs/internal/render/webgl/ThematicSensors.js.map +1 -1
  244. package/lib/cjs/internal/render/webgl/ThematicUniforms.js.map +1 -1
  245. package/lib/cjs/internal/render/webgl/UniformHandle.js.map +1 -1
  246. package/lib/cjs/internal/render/webgl/VertexLUT.js.map +1 -1
  247. package/lib/cjs/internal/render/webgl/ViewRectUniforms.js.map +1 -1
  248. package/lib/cjs/internal/render/webgl/VisibleTileFeatures.js.map +1 -1
  249. package/lib/cjs/internal/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  250. package/lib/cjs/internal/render/webgl/glsl/Animation.js.map +1 -1
  251. package/lib/cjs/internal/render/webgl/glsl/Atmosphere.js.map +1 -1
  252. package/lib/cjs/internal/render/webgl/glsl/Blur.js.map +1 -1
  253. package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  254. package/lib/cjs/internal/render/webgl/glsl/ClearTranslucent.js.map +1 -1
  255. package/lib/cjs/internal/render/webgl/glsl/Clipping.js.map +1 -1
  256. package/lib/cjs/internal/render/webgl/glsl/Color.js.map +1 -1
  257. package/lib/cjs/internal/render/webgl/glsl/Combine3Textures.js.map +1 -1
  258. package/lib/cjs/internal/render/webgl/glsl/CombineTextures.js.map +1 -1
  259. package/lib/cjs/internal/render/webgl/glsl/Common.js.map +1 -1
  260. package/lib/cjs/internal/render/webgl/glsl/Composite.js.map +1 -1
  261. package/lib/cjs/internal/render/webgl/glsl/Contours.js.map +1 -1
  262. package/lib/cjs/internal/render/webgl/glsl/CopyColor.js.map +1 -1
  263. package/lib/cjs/internal/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
  264. package/lib/cjs/internal/render/webgl/glsl/CopyStencil.js.map +1 -1
  265. package/lib/cjs/internal/render/webgl/glsl/Decode.js.map +1 -1
  266. package/lib/cjs/internal/render/webgl/glsl/EDL.js.map +1 -1
  267. package/lib/cjs/internal/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  268. package/lib/cjs/internal/render/webgl/glsl/Edge.js.map +1 -1
  269. package/lib/cjs/internal/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  270. package/lib/cjs/internal/render/webgl/glsl/Fragment.js.map +1 -1
  271. package/lib/cjs/internal/render/webgl/glsl/Instancing.js.map +1 -1
  272. package/lib/cjs/internal/render/webgl/glsl/Lighting.js.map +1 -1
  273. package/lib/cjs/internal/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
  274. package/lib/cjs/internal/render/webgl/glsl/LookupTable.js.map +1 -1
  275. package/lib/cjs/internal/render/webgl/glsl/MaplayerDraping.js.map +1 -1
  276. package/lib/cjs/internal/render/webgl/glsl/Monochrome.js.map +1 -1
  277. package/lib/cjs/internal/render/webgl/glsl/PlanarClassification.js.map +1 -1
  278. package/lib/cjs/internal/render/webgl/glsl/PlanarGrid.js.map +1 -1
  279. package/lib/cjs/internal/render/webgl/glsl/PointCloud.js.map +1 -1
  280. package/lib/cjs/internal/render/webgl/glsl/PointString.js.map +1 -1
  281. package/lib/cjs/internal/render/webgl/glsl/Polyline.js.map +1 -1
  282. package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
  283. package/lib/cjs/internal/render/webgl/glsl/RenderPass.js.map +1 -1
  284. package/lib/cjs/internal/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  285. package/lib/cjs/internal/render/webgl/glsl/SkyBox.js.map +1 -1
  286. package/lib/cjs/internal/render/webgl/glsl/SkySphere.js.map +1 -1
  287. package/lib/cjs/internal/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
  288. package/lib/cjs/internal/render/webgl/glsl/Surface.js.map +1 -1
  289. package/lib/cjs/internal/render/webgl/glsl/Thematic.js.map +1 -1
  290. package/lib/cjs/internal/render/webgl/glsl/Translucency.js.map +1 -1
  291. package/lib/cjs/internal/render/webgl/glsl/Vertex.js.map +1 -1
  292. package/lib/cjs/internal/render/webgl/glsl/Viewport.js.map +1 -1
  293. package/lib/cjs/internal/render/webgl/glsl/ViewportQuad.js.map +1 -1
  294. package/lib/cjs/internal/render/webgl/glsl/Wiremesh.js.map +1 -1
  295. package/lib/cjs/internal/tile/B3dmReader.js.map +1 -1
  296. package/lib/cjs/internal/tile/BatchedTileIdMap.js.map +1 -1
  297. package/lib/cjs/internal/tile/CesiumAssetProvider.js.map +1 -1
  298. package/lib/cjs/internal/tile/ClassifierTileTree.js.map +1 -1
  299. package/lib/cjs/internal/tile/ContextShareProvider.js.map +1 -1
  300. package/lib/cjs/internal/tile/DynamicIModelTile.js +1 -0
  301. package/lib/cjs/internal/tile/DynamicIModelTile.js.map +1 -1
  302. package/lib/cjs/internal/tile/FetchCloudStorage.js.map +1 -1
  303. package/lib/cjs/internal/tile/GraphicsCollector.js.map +1 -1
  304. package/lib/cjs/internal/tile/I3dmReader.js.map +1 -1
  305. package/lib/cjs/internal/tile/IModelTile.js.map +1 -1
  306. package/lib/cjs/internal/tile/IModelTileRequestChannels.js.map +1 -1
  307. package/lib/cjs/internal/tile/IModelTileTree.js.map +1 -1
  308. package/lib/cjs/internal/tile/ImdlDecoder.js.map +1 -1
  309. package/lib/cjs/internal/tile/ImdlGraphicsCreator.js.map +1 -1
  310. package/lib/cjs/internal/tile/ImdlParser.js.map +1 -1
  311. package/lib/cjs/internal/tile/LRUTileList.js.map +1 -1
  312. package/lib/cjs/internal/tile/LayerTileTreeHandler.js.map +1 -1
  313. package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
  314. package/lib/cjs/internal/tile/MeshoptCompression.js.map +1 -1
  315. package/lib/cjs/internal/tile/OPCFormatInterpreter.js.map +1 -1
  316. package/lib/cjs/internal/tile/OrbitGtTileTree.js.map +1 -1
  317. package/lib/cjs/internal/tile/PntsReader.js.map +1 -1
  318. package/lib/cjs/internal/tile/PrimaryTileTree.js.map +1 -1
  319. package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
  320. package/lib/cjs/internal/tile/RealityTileDrawArgs.js.map +1 -1
  321. package/lib/cjs/internal/tile/RealityTileLoader.js.map +1 -1
  322. package/lib/cjs/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  323. package/lib/cjs/internal/tile/TileUserSet.js.map +1 -1
  324. package/lib/cjs/internal/tile/ViewFlagOverrides.js.map +1 -1
  325. package/lib/cjs/internal/tile/map/ArcGISTileMap.js.map +1 -1
  326. package/lib/cjs/internal/tile/map/ArcGisUtilities.js.map +1 -1
  327. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  328. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  329. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -1
  330. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  331. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  332. package/lib/cjs/internal/tile/map/ImageryProviders/CoordinatesUtils.js.map +1 -1
  333. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +1 -1
  334. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +1 -1
  335. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
  336. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +1 -1
  337. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  338. package/lib/cjs/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  339. package/lib/cjs/internal/tile/map/ImageryProviders/WebMercator.js.map +1 -1
  340. package/lib/cjs/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  341. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  342. package/lib/cjs/internal/tile/map/MapTileAvailability.js.map +1 -1
  343. package/lib/cjs/internal/tile/map/MapTileLoader.js.map +1 -1
  344. package/lib/cjs/internal/tile/map/UrlUtils.js.map +1 -1
  345. package/lib/cjs/internal/tile/map/WmsCapabilities.js.map +1 -1
  346. package/lib/cjs/internal/tile/map/WmsUtilities.js.map +1 -1
  347. package/lib/cjs/internal/tile/map/WmtsCapabilities.js.map +1 -1
  348. package/lib/cjs/internal/webgl.js.map +1 -1
  349. package/lib/cjs/properties/AngleDescription.js.map +1 -1
  350. package/lib/cjs/properties/FormattedQuantityDescription.js.map +1 -1
  351. package/lib/cjs/properties/LengthDescription.js.map +1 -1
  352. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  353. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  354. package/lib/cjs/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
  355. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  356. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
  357. package/lib/cjs/quantity-formatting/UnitsData.js.map +1 -1
  358. package/lib/cjs/render/CanvasDecoration.js.map +1 -1
  359. package/lib/cjs/render/CreateRenderMaterialArgs.js.map +1 -1
  360. package/lib/cjs/render/CreateTextureArgs.js.map +1 -1
  361. package/lib/cjs/render/Decorations.js.map +1 -1
  362. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  363. package/lib/cjs/render/FrameStats.js.map +1 -1
  364. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  365. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  366. package/lib/cjs/render/GraphicTemplate.js.map +1 -1
  367. package/lib/cjs/render/MeshArgs.js.map +1 -1
  368. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  369. package/lib/cjs/render/Pixel.js.map +1 -1
  370. package/lib/cjs/render/PolylineArgs.js.map +1 -1
  371. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  372. package/lib/cjs/render/RenderClipVolume.js.map +1 -1
  373. package/lib/cjs/render/RenderGraphic.js.map +1 -1
  374. package/lib/cjs/render/RenderMemory.js.map +1 -1
  375. package/lib/cjs/render/RenderSystem.js.map +1 -1
  376. package/lib/cjs/render/RenderTarget.js.map +1 -1
  377. package/lib/cjs/render/Scene.js.map +1 -1
  378. package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
  379. package/lib/cjs/render/VisibleFeature.js.map +1 -1
  380. package/lib/cjs/request/Request.js.map +1 -1
  381. package/lib/cjs/request/utils.js.map +1 -1
  382. package/lib/cjs/tile/DisclosedTileTreeSet.js.map +1 -1
  383. package/lib/cjs/tile/GltfReader.js.map +1 -1
  384. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  385. package/lib/cjs/tile/RealityTile.js.map +1 -1
  386. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  387. package/lib/cjs/tile/RenderGraphicTileTree.js.map +1 -1
  388. package/lib/cjs/tile/Tile.js.map +1 -1
  389. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  390. package/lib/cjs/tile/TileContent.js.map +1 -1
  391. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  392. package/lib/cjs/tile/TileGeometryCollector.js.map +1 -1
  393. package/lib/cjs/tile/TileParams.js.map +1 -1
  394. package/lib/cjs/tile/TileRequest.js.map +1 -1
  395. package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
  396. package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
  397. package/lib/cjs/tile/TileStorage.js.map +1 -1
  398. package/lib/cjs/tile/TileTree.js.map +1 -1
  399. package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
  400. package/lib/cjs/tile/TileTreeParams.js.map +1 -1
  401. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  402. package/lib/cjs/tile/TileTreeSupplier.js.map +1 -1
  403. package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
  404. package/lib/cjs/tile/TileUser.js.map +1 -1
  405. package/lib/cjs/tile/TiledGraphicsProvider.js.map +1 -1
  406. package/lib/cjs/tile/internal.js.map +1 -1
  407. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  408. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  409. package/lib/cjs/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  410. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  411. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  412. package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -1
  413. package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -1
  414. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  415. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  416. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  417. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  418. package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
  419. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  420. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  421. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  422. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  423. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  424. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  425. package/lib/cjs/tile/map/TerrainProvider.js.map +1 -1
  426. package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
  427. package/lib/cjs/tools/AccuDrawViewportUI.js.map +1 -1
  428. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  429. package/lib/cjs/tools/EditManipulator.js.map +1 -1
  430. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  431. package/lib/cjs/tools/EventController.js.map +1 -1
  432. package/lib/cjs/tools/IdleTool.js.map +1 -1
  433. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  434. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  435. package/lib/cjs/tools/SelectTool.js.map +1 -1
  436. package/lib/cjs/tools/Tool.js.map +1 -1
  437. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  438. package/lib/cjs/tools/ToolAssistance.js.map +1 -1
  439. package/lib/cjs/tools/ToolSettings.js.map +1 -1
  440. package/lib/cjs/tools/ViewTool.js.map +1 -1
  441. package/lib/cjs/workers/ImdlParser/Worker.js.map +1 -1
  442. package/lib/cjs/workers/RegisterWorker.js.map +1 -1
  443. package/lib/esm/AccuDraw.js.map +1 -1
  444. package/lib/esm/AccuSnap.js.map +1 -1
  445. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  446. package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -1
  447. package/lib/esm/AuxCoordSys.js.map +1 -1
  448. package/lib/esm/BackgroundMapGeometry.js.map +1 -1
  449. package/lib/esm/BingLocation.js.map +1 -1
  450. package/lib/esm/BriefcaseConnection.js.map +1 -1
  451. package/lib/esm/BriefcaseTxns.js.map +1 -1
  452. package/lib/esm/CatalogConnection.js.map +1 -1
  453. package/lib/esm/CategorySelectorState.js.map +1 -1
  454. package/lib/esm/ChangeFlags.js.map +1 -1
  455. package/lib/esm/CheckpointConnection.js.map +1 -1
  456. package/lib/esm/ContextRealityModelState.js.map +1 -1
  457. package/lib/esm/CoordSystem.js.map +1 -1
  458. package/lib/esm/DecorationsCache.js.map +1 -1
  459. package/lib/esm/DevTools.js.map +1 -1
  460. package/lib/esm/DisplayStyleState.js.map +1 -1
  461. package/lib/esm/DrawingViewState.js.map +1 -1
  462. package/lib/esm/ElementLocateManager.js.map +1 -1
  463. package/lib/esm/EmphasizeElements.js.map +1 -1
  464. package/lib/esm/EntityState.js.map +1 -1
  465. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  466. package/lib/esm/FeatureOverrideProvider.js.map +1 -1
  467. package/lib/esm/FlashSettings.js.map +1 -1
  468. package/lib/esm/FrontendHubAccess.js.map +1 -1
  469. package/lib/esm/Frustum2d.js.map +1 -1
  470. package/lib/esm/FrustumAnimator.js.map +1 -1
  471. package/lib/esm/FuzzySearch.js.map +1 -1
  472. package/lib/esm/GeoServices.js.map +1 -1
  473. package/lib/esm/GlobeAnimator.js.map +1 -1
  474. package/lib/esm/GraphicalEditingScope.js.map +1 -1
  475. package/lib/esm/HitDetail.js.map +1 -1
  476. package/lib/esm/IModelApp.js.map +1 -1
  477. package/lib/esm/IModelConnection.js.map +1 -1
  478. package/lib/esm/IModelRoutingContext.js.map +1 -1
  479. package/lib/esm/IModeljs-css.js.map +1 -1
  480. package/lib/esm/IpcApp.js.map +1 -1
  481. package/lib/esm/LinePlaneIntersect.js.map +1 -1
  482. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  483. package/lib/esm/MarginPercent.js.map +1 -1
  484. package/lib/esm/Marker.js.map +1 -1
  485. package/lib/esm/ModelSelectorState.js.map +1 -1
  486. package/lib/esm/ModelState.js.map +1 -1
  487. package/lib/esm/NativeApp.js.map +1 -1
  488. package/lib/esm/NativeAppLogger.js.map +1 -1
  489. package/lib/esm/NoRenderApp.js.map +1 -1
  490. package/lib/esm/NotificationManager.js.map +1 -1
  491. package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
  492. package/lib/esm/PlanarClipMaskState.js.map +1 -1
  493. package/lib/esm/RealityDataSource.js.map +1 -1
  494. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  495. package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -1
  496. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  497. package/lib/esm/SelectionSet.js.map +1 -1
  498. package/lib/esm/SheetViewState.js.map +1 -1
  499. package/lib/esm/SpatialClassifiersState.js.map +1 -1
  500. package/lib/esm/SpatialViewState.js.map +1 -1
  501. package/lib/esm/Sprites.js.map +1 -1
  502. package/lib/esm/StandardView.js.map +1 -1
  503. package/lib/esm/SubCategoriesCache.js.map +1 -1
  504. package/lib/esm/TentativePoint.js.map +1 -1
  505. package/lib/esm/Tiles.js.map +1 -1
  506. package/lib/esm/TxnEntityChanges.js.map +1 -1
  507. package/lib/esm/UserPreferences.js.map +1 -1
  508. package/lib/esm/ViewAnimation.js.map +1 -1
  509. package/lib/esm/ViewContext.js.map +1 -1
  510. package/lib/esm/ViewCreator2d.js.map +1 -1
  511. package/lib/esm/ViewCreator3d.js.map +1 -1
  512. package/lib/esm/ViewGlobalLocation.js.map +1 -1
  513. package/lib/esm/ViewManager.js.map +1 -1
  514. package/lib/esm/ViewPose.js.map +1 -1
  515. package/lib/esm/ViewState.js.map +1 -1
  516. package/lib/esm/ViewStatus.js.map +1 -1
  517. package/lib/esm/ViewingSpace.js.map +1 -1
  518. package/lib/esm/Viewport.js.map +1 -1
  519. package/lib/esm/ViewportSync.js.map +1 -1
  520. package/lib/esm/common/FrontendLoggerCategory.js.map +1 -1
  521. package/lib/esm/common/ImageUtil.js.map +1 -1
  522. package/lib/esm/common/ViewRect.js.map +1 -1
  523. package/lib/esm/common/WorkerProxy.js.map +1 -1
  524. package/lib/esm/common/gltf/GltfModel.js.map +1 -1
  525. package/lib/esm/common/gltf/GltfParser.js.map +1 -1
  526. package/lib/esm/common/gltf/GltfSchema.js.map +1 -1
  527. package/lib/esm/common/imdl/CompactEdges.js.map +1 -1
  528. package/lib/esm/common/imdl/ImdlModel.js.map +1 -1
  529. package/lib/esm/common/imdl/ImdlSchema.js.map +1 -1
  530. package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
  531. package/lib/esm/common/internal/Symbols.js.map +1 -1
  532. package/lib/esm/common/internal/render/AnimationNodeId.js.map +1 -1
  533. package/lib/esm/common/internal/render/AuxChannelTable.js.map +1 -1
  534. package/lib/esm/common/internal/render/ColorMap.js.map +1 -1
  535. package/lib/esm/common/internal/render/DisplayParams.js.map +1 -1
  536. package/lib/esm/common/internal/render/EdgeParams.js.map +1 -1
  537. package/lib/esm/common/internal/render/GeometryAccumulator.js.map +1 -1
  538. package/lib/esm/common/internal/render/GeometryList.js.map +1 -1
  539. package/lib/esm/common/internal/render/GeometryPrimitives.js.map +1 -1
  540. package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -1
  541. package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -1
  542. package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -1
  543. package/lib/esm/common/internal/render/LineCode.js.map +1 -1
  544. package/lib/esm/common/internal/render/MeshBuilder.js.map +1 -1
  545. package/lib/esm/common/internal/render/MeshBuilderMap.js.map +1 -1
  546. package/lib/esm/common/internal/render/MeshParams.js.map +1 -1
  547. package/lib/esm/common/internal/render/MeshPrimitive.js.map +1 -1
  548. package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -1
  549. package/lib/esm/common/internal/render/OvrFlags.js.map +1 -1
  550. package/lib/esm/common/internal/render/PointCloudPrimitive.js.map +1 -1
  551. package/lib/esm/common/internal/render/PointStringParams.js.map +1 -1
  552. package/lib/esm/common/internal/render/Polyface.js.map +1 -1
  553. package/lib/esm/common/internal/render/PolylineParams.js.map +1 -1
  554. package/lib/esm/common/internal/render/Primitives.js.map +1 -1
  555. package/lib/esm/common/internal/render/Strokes.js.map +1 -1
  556. package/lib/esm/common/internal/render/SurfaceParams.js.map +1 -1
  557. package/lib/esm/common/internal/render/VertexIndices.js.map +1 -1
  558. package/lib/esm/common/internal/render/VertexKey.js.map +1 -1
  559. package/lib/esm/common/internal/render/VertexTable.js.map +1 -1
  560. package/lib/esm/common/internal/render/VertexTableBuilder.js.map +1 -1
  561. package/lib/esm/common/internal/render/VertexTableSplitter.js.map +1 -1
  562. package/lib/esm/common/render/BatchOptions.js.map +1 -1
  563. package/lib/esm/common/render/GraphicAssembler.js.map +1 -1
  564. package/lib/esm/common/render/GraphicDescriptionBuilder.js.map +1 -1
  565. package/lib/esm/common/render/GraphicDescriptionContext.js.map +1 -1
  566. package/lib/esm/common/render/GraphicPrimitive.js.map +1 -1
  567. package/lib/esm/common/render/GraphicType.js.map +1 -1
  568. package/lib/esm/common/render/InstancedGraphicParams.js.map +1 -1
  569. package/lib/esm/common/render/MaterialParams.js.map +1 -1
  570. package/lib/esm/common/render/RenderInstancesParams.js.map +1 -1
  571. package/lib/esm/common/render/TextureParams.js.map +1 -1
  572. package/lib/esm/common.js.map +1 -1
  573. package/lib/esm/core-frontend.js.map +1 -1
  574. package/lib/esm/extension/Extension.js.map +1 -1
  575. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  576. package/lib/esm/extension/ExtensionHost.js.map +1 -1
  577. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  578. package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -1
  579. package/lib/esm/extension/providers/LocalExtensionProvider.js.map +1 -1
  580. package/lib/esm/extension/providers/RemoteExtensionProvider.js.map +1 -1
  581. package/lib/esm/internal/GoogleMapsDecorator.js.map +1 -1
  582. package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -1
  583. package/lib/esm/internal/ScriptUtils.js.map +1 -1
  584. package/lib/esm/internal/cross-package.js.map +1 -1
  585. package/lib/esm/internal/render/AnimationBranchState.js.map +1 -1
  586. package/lib/esm/internal/render/FrameStatsCollector.js.map +1 -1
  587. package/lib/esm/internal/render/GraphicBranchFrustum.js.map +1 -1
  588. package/lib/esm/internal/render/GraphicTemplateImpl.js.map +1 -1
  589. package/lib/esm/internal/render/MeshMapLayerGraphicParams.js.map +1 -1
  590. package/lib/esm/internal/render/MockRender.js.map +1 -1
  591. package/lib/esm/internal/render/PrimitiveBuilder.js.map +1 -1
  592. package/lib/esm/internal/render/QueryVisibileFeatures.js.map +1 -1
  593. package/lib/esm/internal/render/RenderAreaPattern.js.map +1 -1
  594. package/lib/esm/internal/render/RenderGeometry.js.map +1 -1
  595. package/lib/esm/internal/render/RenderInstancesParamsImpl.js.map +1 -1
  596. package/lib/esm/internal/render/RenderMaterialSource.js.map +1 -1
  597. package/lib/esm/internal/render/RenderPlan.js.map +1 -1
  598. package/lib/esm/internal/render/RenderPlanarClassifier.js.map +1 -1
  599. package/lib/esm/internal/render/RenderSkyBoxParams.js.map +1 -1
  600. package/lib/esm/internal/render/RenderSystemDebugControl.js.map +1 -1
  601. package/lib/esm/internal/render/RenderTargetDebugControl.js.map +1 -1
  602. package/lib/esm/internal/render/RenderTerrain.js.map +1 -1
  603. package/lib/esm/internal/render/RenderTextureDrape.js.map +1 -1
  604. package/lib/esm/internal/render/SceneVolumeClassifier.js.map +1 -1
  605. package/lib/esm/internal/render/UpsampleRealityMeshParams.js.map +1 -1
  606. package/lib/esm/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
  607. package/lib/esm/internal/render/webgl/AttributeBuffers.js.map +1 -1
  608. package/lib/esm/internal/render/webgl/AttributeMap.js.map +1 -1
  609. package/lib/esm/internal/render/webgl/BackgroundMapDrape.js +1 -1
  610. package/lib/esm/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
  611. package/lib/esm/internal/render/webgl/BatchState.js.map +1 -1
  612. package/lib/esm/internal/render/webgl/BatchUniforms.js.map +1 -1
  613. package/lib/esm/internal/render/webgl/BranchStack.js.map +1 -1
  614. package/lib/esm/internal/render/webgl/BranchState.js.map +1 -1
  615. package/lib/esm/internal/render/webgl/BranchUniforms.js.map +1 -1
  616. package/lib/esm/internal/render/webgl/CachedGeometry.js.map +1 -1
  617. package/lib/esm/internal/render/webgl/ClipStack.js.map +1 -1
  618. package/lib/esm/internal/render/webgl/ClipVolume.js.map +1 -1
  619. package/lib/esm/internal/render/webgl/ClippingProgram.js.map +1 -1
  620. package/lib/esm/internal/render/webgl/ColorInfo.js.map +1 -1
  621. package/lib/esm/internal/render/webgl/ContourUniforms.js.map +1 -1
  622. package/lib/esm/internal/render/webgl/Contours.js.map +1 -1
  623. package/lib/esm/internal/render/webgl/Diagnostics.js.map +1 -1
  624. package/lib/esm/internal/render/webgl/Disposable.js.map +1 -1
  625. package/lib/esm/internal/render/webgl/DrawCommand.js.map +1 -1
  626. package/lib/esm/internal/render/webgl/EDL.js.map +1 -1
  627. package/lib/esm/internal/render/webgl/EdgeGeometry.js.map +1 -1
  628. package/lib/esm/internal/render/webgl/EdgeSettings.js.map +1 -1
  629. package/lib/esm/internal/render/webgl/FeatureOverrides.js.map +1 -1
  630. package/lib/esm/internal/render/webgl/FloatRGBA.js.map +1 -1
  631. package/lib/esm/internal/render/webgl/FrameBuffer.js.map +1 -1
  632. package/lib/esm/internal/render/webgl/FrustumUniforms.js.map +1 -1
  633. package/lib/esm/internal/render/webgl/GL.js.map +1 -1
  634. package/lib/esm/internal/render/webgl/GLTimer.js.map +1 -1
  635. package/lib/esm/internal/render/webgl/Graphic.js.map +1 -1
  636. package/lib/esm/internal/render/webgl/HiliteUniforms.js.map +1 -1
  637. package/lib/esm/internal/render/webgl/IModelFrameLifecycle.js.map +1 -1
  638. package/lib/esm/internal/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  639. package/lib/esm/internal/render/webgl/InstancedGeometry.js.map +1 -1
  640. package/lib/esm/internal/render/webgl/Layer.js.map +1 -1
  641. package/lib/esm/internal/render/webgl/LayerCommands.js.map +1 -1
  642. package/lib/esm/internal/render/webgl/LightingUniforms.js.map +1 -1
  643. package/lib/esm/internal/render/webgl/LineCode.js.map +1 -1
  644. package/lib/esm/internal/render/webgl/MapLayerParams.js.map +1 -1
  645. package/lib/esm/internal/render/webgl/Material.js.map +1 -1
  646. package/lib/esm/internal/render/webgl/Matrix.js.map +1 -1
  647. package/lib/esm/internal/render/webgl/Mesh.js.map +1 -1
  648. package/lib/esm/internal/render/webgl/MeshData.js.map +1 -1
  649. package/lib/esm/internal/render/webgl/MeshGeometry.js.map +1 -1
  650. package/lib/esm/internal/render/webgl/PerformanceMetrics.js.map +1 -1
  651. package/lib/esm/internal/render/webgl/PlanarClassifier.js +1 -1
  652. package/lib/esm/internal/render/webgl/PlanarClassifier.js.map +1 -1
  653. package/lib/esm/internal/render/webgl/PlanarGrid.js.map +1 -1
  654. package/lib/esm/internal/render/webgl/PlanarTextureProjection.js.map +1 -1
  655. package/lib/esm/internal/render/webgl/PointCloud.js.map +1 -1
  656. package/lib/esm/internal/render/webgl/PointString.js.map +1 -1
  657. package/lib/esm/internal/render/webgl/Polyline.js.map +1 -1
  658. package/lib/esm/internal/render/webgl/Primitive.js.map +1 -1
  659. package/lib/esm/internal/render/webgl/RealityMesh.js.map +1 -1
  660. package/lib/esm/internal/render/webgl/RealityModelUniforms.js.map +1 -1
  661. package/lib/esm/internal/render/webgl/RenderBuffer.js.map +1 -1
  662. package/lib/esm/internal/render/webgl/RenderCommands.js.map +1 -1
  663. package/lib/esm/internal/render/webgl/RenderFlags.js.map +1 -1
  664. package/lib/esm/internal/render/webgl/RenderState.js.map +1 -1
  665. package/lib/esm/internal/render/webgl/SceneCompositor.js.map +1 -1
  666. package/lib/esm/internal/render/webgl/ScratchDrawParams.js.map +1 -1
  667. package/lib/esm/internal/render/webgl/ScreenSpaceEffect.js.map +1 -1
  668. package/lib/esm/internal/render/webgl/ShaderBuilder.js.map +1 -1
  669. package/lib/esm/internal/render/webgl/ShaderProgram.js.map +1 -1
  670. package/lib/esm/internal/render/webgl/ShadowUniforms.js.map +1 -1
  671. package/lib/esm/internal/render/webgl/SolarShadowMap.js.map +1 -1
  672. package/lib/esm/internal/render/webgl/StyleUniforms.js.map +1 -1
  673. package/lib/esm/internal/render/webgl/SurfaceGeometry.js.map +1 -1
  674. package/lib/esm/internal/render/webgl/Sync.js.map +1 -1
  675. package/lib/esm/internal/render/webgl/System.js.map +1 -1
  676. package/lib/esm/internal/render/webgl/Target.js.map +1 -1
  677. package/lib/esm/internal/render/webgl/TargetGraphics.js.map +1 -1
  678. package/lib/esm/internal/render/webgl/TargetUniforms.js.map +1 -1
  679. package/lib/esm/internal/render/webgl/Technique.js.map +1 -1
  680. package/lib/esm/internal/render/webgl/TechniqueFlags.js.map +1 -1
  681. package/lib/esm/internal/render/webgl/TechniqueId.js.map +1 -1
  682. package/lib/esm/internal/render/webgl/Texture.js.map +1 -1
  683. package/lib/esm/internal/render/webgl/TextureDrape.js.map +1 -1
  684. package/lib/esm/internal/render/webgl/ThematicSensors.js.map +1 -1
  685. package/lib/esm/internal/render/webgl/ThematicUniforms.js.map +1 -1
  686. package/lib/esm/internal/render/webgl/UniformHandle.js.map +1 -1
  687. package/lib/esm/internal/render/webgl/VertexLUT.js.map +1 -1
  688. package/lib/esm/internal/render/webgl/ViewRectUniforms.js.map +1 -1
  689. package/lib/esm/internal/render/webgl/VisibleTileFeatures.js.map +1 -1
  690. package/lib/esm/internal/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  691. package/lib/esm/internal/render/webgl/glsl/Animation.js.map +1 -1
  692. package/lib/esm/internal/render/webgl/glsl/Atmosphere.js.map +1 -1
  693. package/lib/esm/internal/render/webgl/glsl/Blur.js.map +1 -1
  694. package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  695. package/lib/esm/internal/render/webgl/glsl/ClearTranslucent.js.map +1 -1
  696. package/lib/esm/internal/render/webgl/glsl/Clipping.js.map +1 -1
  697. package/lib/esm/internal/render/webgl/glsl/Color.js.map +1 -1
  698. package/lib/esm/internal/render/webgl/glsl/Combine3Textures.js.map +1 -1
  699. package/lib/esm/internal/render/webgl/glsl/CombineTextures.js.map +1 -1
  700. package/lib/esm/internal/render/webgl/glsl/Common.js.map +1 -1
  701. package/lib/esm/internal/render/webgl/glsl/Composite.js.map +1 -1
  702. package/lib/esm/internal/render/webgl/glsl/Contours.js.map +1 -1
  703. package/lib/esm/internal/render/webgl/glsl/CopyColor.js.map +1 -1
  704. package/lib/esm/internal/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
  705. package/lib/esm/internal/render/webgl/glsl/CopyStencil.js.map +1 -1
  706. package/lib/esm/internal/render/webgl/glsl/Decode.js.map +1 -1
  707. package/lib/esm/internal/render/webgl/glsl/EDL.js.map +1 -1
  708. package/lib/esm/internal/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  709. package/lib/esm/internal/render/webgl/glsl/Edge.js.map +1 -1
  710. package/lib/esm/internal/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  711. package/lib/esm/internal/render/webgl/glsl/Fragment.js.map +1 -1
  712. package/lib/esm/internal/render/webgl/glsl/Instancing.js.map +1 -1
  713. package/lib/esm/internal/render/webgl/glsl/Lighting.js.map +1 -1
  714. package/lib/esm/internal/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
  715. package/lib/esm/internal/render/webgl/glsl/LookupTable.js.map +1 -1
  716. package/lib/esm/internal/render/webgl/glsl/MaplayerDraping.js.map +1 -1
  717. package/lib/esm/internal/render/webgl/glsl/Monochrome.js.map +1 -1
  718. package/lib/esm/internal/render/webgl/glsl/PlanarClassification.js.map +1 -1
  719. package/lib/esm/internal/render/webgl/glsl/PlanarGrid.js.map +1 -1
  720. package/lib/esm/internal/render/webgl/glsl/PointCloud.js.map +1 -1
  721. package/lib/esm/internal/render/webgl/glsl/PointString.js.map +1 -1
  722. package/lib/esm/internal/render/webgl/glsl/Polyline.js.map +1 -1
  723. package/lib/esm/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
  724. package/lib/esm/internal/render/webgl/glsl/RenderPass.js.map +1 -1
  725. package/lib/esm/internal/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  726. package/lib/esm/internal/render/webgl/glsl/SkyBox.js.map +1 -1
  727. package/lib/esm/internal/render/webgl/glsl/SkySphere.js.map +1 -1
  728. package/lib/esm/internal/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
  729. package/lib/esm/internal/render/webgl/glsl/Surface.js.map +1 -1
  730. package/lib/esm/internal/render/webgl/glsl/Thematic.js.map +1 -1
  731. package/lib/esm/internal/render/webgl/glsl/Translucency.js.map +1 -1
  732. package/lib/esm/internal/render/webgl/glsl/Vertex.js.map +1 -1
  733. package/lib/esm/internal/render/webgl/glsl/Viewport.js.map +1 -1
  734. package/lib/esm/internal/render/webgl/glsl/ViewportQuad.js.map +1 -1
  735. package/lib/esm/internal/render/webgl/glsl/Wiremesh.js.map +1 -1
  736. package/lib/esm/internal/tile/B3dmReader.js.map +1 -1
  737. package/lib/esm/internal/tile/BatchedTileIdMap.js.map +1 -1
  738. package/lib/esm/internal/tile/CesiumAssetProvider.js.map +1 -1
  739. package/lib/esm/internal/tile/ClassifierTileTree.js.map +1 -1
  740. package/lib/esm/internal/tile/ContextShareProvider.js.map +1 -1
  741. package/lib/esm/internal/tile/DynamicIModelTile.js +1 -0
  742. package/lib/esm/internal/tile/DynamicIModelTile.js.map +1 -1
  743. package/lib/esm/internal/tile/FetchCloudStorage.js.map +1 -1
  744. package/lib/esm/internal/tile/GraphicsCollector.js.map +1 -1
  745. package/lib/esm/internal/tile/I3dmReader.js.map +1 -1
  746. package/lib/esm/internal/tile/IModelTile.js.map +1 -1
  747. package/lib/esm/internal/tile/IModelTileRequestChannels.js.map +1 -1
  748. package/lib/esm/internal/tile/IModelTileTree.js.map +1 -1
  749. package/lib/esm/internal/tile/ImdlDecoder.js.map +1 -1
  750. package/lib/esm/internal/tile/ImdlGraphicsCreator.js.map +1 -1
  751. package/lib/esm/internal/tile/ImdlParser.js.map +1 -1
  752. package/lib/esm/internal/tile/LRUTileList.js.map +1 -1
  753. package/lib/esm/internal/tile/LayerTileTreeHandler.js.map +1 -1
  754. package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
  755. package/lib/esm/internal/tile/MeshoptCompression.js.map +1 -1
  756. package/lib/esm/internal/tile/OPCFormatInterpreter.js.map +1 -1
  757. package/lib/esm/internal/tile/OrbitGtTileTree.js.map +1 -1
  758. package/lib/esm/internal/tile/PntsReader.js.map +1 -1
  759. package/lib/esm/internal/tile/PrimaryTileTree.js.map +1 -1
  760. package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
  761. package/lib/esm/internal/tile/RealityTileDrawArgs.js.map +1 -1
  762. package/lib/esm/internal/tile/RealityTileLoader.js.map +1 -1
  763. package/lib/esm/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  764. package/lib/esm/internal/tile/TileUserSet.js.map +1 -1
  765. package/lib/esm/internal/tile/ViewFlagOverrides.js.map +1 -1
  766. package/lib/esm/internal/tile/map/ArcGISTileMap.js.map +1 -1
  767. package/lib/esm/internal/tile/map/ArcGisUtilities.js.map +1 -1
  768. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  769. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  770. package/lib/esm/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -1
  771. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  772. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  773. package/lib/esm/internal/tile/map/ImageryProviders/CoordinatesUtils.js.map +1 -1
  774. package/lib/esm/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +1 -1
  775. package/lib/esm/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +1 -1
  776. package/lib/esm/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
  777. package/lib/esm/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +1 -1
  778. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  779. package/lib/esm/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  780. package/lib/esm/internal/tile/map/ImageryProviders/WebMercator.js.map +1 -1
  781. package/lib/esm/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  782. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  783. package/lib/esm/internal/tile/map/MapTileAvailability.js.map +1 -1
  784. package/lib/esm/internal/tile/map/MapTileLoader.js.map +1 -1
  785. package/lib/esm/internal/tile/map/UrlUtils.js.map +1 -1
  786. package/lib/esm/internal/tile/map/WmsCapabilities.js.map +1 -1
  787. package/lib/esm/internal/tile/map/WmsUtilities.js.map +1 -1
  788. package/lib/esm/internal/tile/map/WmtsCapabilities.js.map +1 -1
  789. package/lib/esm/internal/webgl.js.map +1 -1
  790. package/lib/esm/properties/AngleDescription.js.map +1 -1
  791. package/lib/esm/properties/FormattedQuantityDescription.js.map +1 -1
  792. package/lib/esm/properties/LengthDescription.js.map +1 -1
  793. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  794. package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  795. package/lib/esm/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
  796. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  797. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
  798. package/lib/esm/quantity-formatting/UnitsData.js.map +1 -1
  799. package/lib/esm/render/CanvasDecoration.js.map +1 -1
  800. package/lib/esm/render/CreateRenderMaterialArgs.js.map +1 -1
  801. package/lib/esm/render/CreateTextureArgs.js.map +1 -1
  802. package/lib/esm/render/Decorations.js.map +1 -1
  803. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  804. package/lib/esm/render/FrameStats.js.map +1 -1
  805. package/lib/esm/render/GraphicBranch.js.map +1 -1
  806. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  807. package/lib/esm/render/GraphicTemplate.js.map +1 -1
  808. package/lib/esm/render/MeshArgs.js.map +1 -1
  809. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  810. package/lib/esm/render/Pixel.js.map +1 -1
  811. package/lib/esm/render/PolylineArgs.js.map +1 -1
  812. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  813. package/lib/esm/render/RenderClipVolume.js.map +1 -1
  814. package/lib/esm/render/RenderGraphic.js.map +1 -1
  815. package/lib/esm/render/RenderMemory.js.map +1 -1
  816. package/lib/esm/render/RenderSystem.js.map +1 -1
  817. package/lib/esm/render/RenderTarget.js.map +1 -1
  818. package/lib/esm/render/Scene.js.map +1 -1
  819. package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
  820. package/lib/esm/render/VisibleFeature.js.map +1 -1
  821. package/lib/esm/request/Request.js.map +1 -1
  822. package/lib/esm/request/utils.js.map +1 -1
  823. package/lib/esm/tile/DisclosedTileTreeSet.js.map +1 -1
  824. package/lib/esm/tile/GltfReader.js.map +1 -1
  825. package/lib/esm/tile/ImdlReader.js.map +1 -1
  826. package/lib/esm/tile/RealityTile.js.map +1 -1
  827. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  828. package/lib/esm/tile/RenderGraphicTileTree.js.map +1 -1
  829. package/lib/esm/tile/Tile.js.map +1 -1
  830. package/lib/esm/tile/TileAdmin.js.map +1 -1
  831. package/lib/esm/tile/TileContent.js.map +1 -1
  832. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  833. package/lib/esm/tile/TileGeometryCollector.js.map +1 -1
  834. package/lib/esm/tile/TileParams.js.map +1 -1
  835. package/lib/esm/tile/TileRequest.js.map +1 -1
  836. package/lib/esm/tile/TileRequestChannel.js.map +1 -1
  837. package/lib/esm/tile/TileRequestChannels.js.map +1 -1
  838. package/lib/esm/tile/TileStorage.js.map +1 -1
  839. package/lib/esm/tile/TileTree.js.map +1 -1
  840. package/lib/esm/tile/TileTreeOwner.js.map +1 -1
  841. package/lib/esm/tile/TileTreeParams.js.map +1 -1
  842. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  843. package/lib/esm/tile/TileTreeSupplier.js.map +1 -1
  844. package/lib/esm/tile/TileUsageMarker.js.map +1 -1
  845. package/lib/esm/tile/TileUser.js.map +1 -1
  846. package/lib/esm/tile/TiledGraphicsProvider.js.map +1 -1
  847. package/lib/esm/tile/internal.js.map +1 -1
  848. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  849. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  850. package/lib/esm/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  851. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  852. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  853. package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -1
  854. package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -1
  855. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  856. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  857. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  858. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  859. package/lib/esm/tile/map/MapLayerTileTreeReference.js.map +1 -1
  860. package/lib/esm/tile/map/MapTile.js.map +1 -1
  861. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  862. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  863. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  864. package/lib/esm/tile/map/QuadId.js.map +1 -1
  865. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  866. package/lib/esm/tile/map/TerrainProvider.js.map +1 -1
  867. package/lib/esm/tools/AccuDrawTool.js.map +1 -1
  868. package/lib/esm/tools/AccuDrawViewportUI.js.map +1 -1
  869. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  870. package/lib/esm/tools/EditManipulator.js.map +1 -1
  871. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  872. package/lib/esm/tools/EventController.js.map +1 -1
  873. package/lib/esm/tools/IdleTool.js.map +1 -1
  874. package/lib/esm/tools/MeasureTool.js.map +1 -1
  875. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  876. package/lib/esm/tools/SelectTool.js.map +1 -1
  877. package/lib/esm/tools/Tool.js.map +1 -1
  878. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  879. package/lib/esm/tools/ToolAssistance.js.map +1 -1
  880. package/lib/esm/tools/ToolSettings.js.map +1 -1
  881. package/lib/esm/tools/ViewTool.js.map +1 -1
  882. package/lib/esm/workers/ImdlParser/Worker.js.map +1 -1
  883. package/lib/esm/workers/RegisterWorker.js.map +1 -1
  884. package/package.json +20 -20
@@ -1 +1 @@
1
- {"version":3,"file":"GltfReader.js","sourceRoot":"","sources":["../../../src/tile/GltfReader.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport {\r\n assert, ByteStream, compareBooleans, compareNumbers, compareStrings, Dictionary, JsonUtils, Logger, utf8ToString,\r\n} from \"@itwin/core-bentley\";\r\nimport {\r\n Angle, IndexedPolyface, Matrix3d, Point2d, Point3d, Point4d, Range2d, Range3d, Transform, Vector3d,\r\n} from \"@itwin/core-geometry\";\r\nimport {\r\n AxisAlignedBox3d, BatchType, ColorDef, EdgeAppearanceOverrides, ElementAlignedBox3d, Feature, FeatureIndex, FeatureIndexType, FeatureTable, FillFlags, GlbHeader, ImageSource, LinePixels, MeshEdge,\r\n MeshEdges, MeshPolyline, MeshPolylineList, OctEncodedNormal, OctEncodedNormalPair, PackedFeatureTable, QParams2d, QParams3d, QPoint2dList,\r\n QPoint3dList, Quantization, RenderMaterial, RenderMode, RenderTexture, TextureMapping, TextureTransparency, TileFormat, TileReadStatus, ViewFlagOverrides,\r\n} from \"@itwin/core-common\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { InstancedGraphicParams } from \"../common/render/InstancedGraphicParams\";\r\nimport { RealityMeshParams } from \"../render/RealityMeshParams\";\r\nimport { Mesh } from \"../common/internal/render/MeshPrimitives\";\r\nimport { Triangle } from \"../common/internal/render/Primitives\";\r\nimport { RenderGraphic } from \"../render/RenderGraphic\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\nimport { BatchedTileIdMap, decodeMeshoptBuffer, RealityTileGeometry,TileContent } from \"./internal\";\r\nimport type { DracoLoader, DracoMesh } from \"@loaders.gl/draco\";\r\nimport { CreateRenderMaterialArgs } from \"../render/CreateRenderMaterialArgs\";\r\nimport { DisplayParams } from \"../common/internal/render/DisplayParams\";\r\nimport { FrontendLoggerCategory } from \"../common/FrontendLoggerCategory\";\r\nimport { getImageSourceFormatForMimeType, imageBitmapFromImageSource, imageElementFromImageSource, tryImageElementFromUrl } from \"../common/ImageUtil\";\r\nimport { MeshPrimitiveType } from \"../common/internal/render/MeshPrimitive\";\r\nimport { PointCloudArgs } from \"../common/internal/render/PointCloudPrimitive\";\r\nimport { TextureImageSource } from \"../common/render/TextureParams\";\r\nimport {\r\n DracoMeshCompression, getGltfNodeMeshIds, Gltf2Node, GltfAccessor, GltfBuffer, GltfBufferViewProps, GltfDataType, GltfDictionary, gltfDictionaryIterator, GltfDocument, GltfId,\r\n GltfImage, GltfMaterial, GltfMesh, GltfMeshMode, GltfMeshPrimitive, GltfNode, GltfSampler, GltfScene, GltfStructuralMetadata, GltfTechniqueState, GltfTexture, GltfWrapMode, isGltf1Material, traverseGltfNodes,\r\n} from \"../common/gltf/GltfSchema\";\r\nimport { PickableGraphicOptions } from \"../common/render/BatchOptions\";\r\nimport { createGraphicTemplate, GraphicTemplateBatch, GraphicTemplateBranch, GraphicTemplateNode } from \"../internal/render/GraphicTemplateImpl\";\r\nimport { RenderGeometry } from \"../internal/render/RenderGeometry\";\r\nimport { GraphicTemplate } from \"../render/GraphicTemplate\";\r\nimport { LayerTileData } from \"../internal/render/webgl/MapLayerParams\";\r\nimport { compactEdgeIterator } from \"../common/imdl/CompactEdges\";\r\nimport { MeshPolylineGroup } from \"@itwin/core-common/lib/cjs/internal/RenderMesh\";\r\n\r\n/** @internal */\r\nexport type GltfDataBuffer = Uint8Array | Uint16Array | Uint32Array | Float32Array;\r\n\r\n/**\r\n * A chunk of binary data exposed as a typed array.\r\n * The count member indicates how many elements exist. This may be less than this.buffer.length due to padding added to the\r\n * binary stream to ensure correct alignment.\r\n * @internal\r\n */\r\nexport class GltfBufferData {\r\n public readonly buffer: GltfDataBuffer;\r\n public readonly count: number;\r\n\r\n public constructor(buffer: GltfDataBuffer, count: number) {\r\n this.buffer = buffer;\r\n this.count = count;\r\n }\r\n\r\n /**\r\n * Create a GltfBufferData of the desired type. The actual type may differ from the desired type - for example, small 32-bit integers\r\n * may be represented as 8-bit or 16-bit integers instead.\r\n * If the actual data type is not convertible to the desired type, this function returns undefined.\r\n */\r\n public static create(bytes: Uint8Array, actualType: GltfDataType, expectedType: GltfDataType, count: number): GltfBufferData | undefined {\r\n if (expectedType !== actualType) {\r\n // Some data is stored in smaller data types to save space if no values exceed the maximum of the smaller type.\r\n switch (expectedType) {\r\n case GltfDataType.Float:\r\n case GltfDataType.UnsignedByte:\r\n return undefined;\r\n case GltfDataType.UnsignedShort:\r\n if (GltfDataType.UnsignedByte !== actualType)\r\n return undefined;\r\n break;\r\n case GltfDataType.UInt32:\r\n if (GltfDataType.UnsignedByte !== actualType && GltfDataType.UnsignedShort !== actualType)\r\n return undefined;\r\n break;\r\n }\r\n }\r\n\r\n const data = this.createDataBuffer(bytes, actualType);\r\n return undefined !== data ? new GltfBufferData(data, count) : undefined;\r\n }\r\n\r\n private static createDataBuffer(bytes: Uint8Array, actualType: GltfDataType): GltfDataBuffer | undefined {\r\n // NB: Endianness of typed array data is determined by the 'platform byte order'. Actual data is always little-endian.\r\n // We are assuming little-endian platform. If we find a big-endian platform, we'll need to use a DataView instead.\r\n switch (actualType) {\r\n case GltfDataType.UnsignedByte:\r\n return bytes;\r\n case GltfDataType.UnsignedShort:\r\n return new Uint16Array(bytes.buffer, bytes.byteOffset, bytes.byteLength / 2);\r\n case GltfDataType.UInt32:\r\n return new Uint32Array(bytes.buffer, bytes.byteOffset, bytes.byteLength / 4);\r\n case GltfDataType.Float:\r\n return new Float32Array(bytes.buffer, bytes.byteOffset, bytes.byteLength / 4);\r\n default:\r\n return undefined;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * A view of a chunk of glTF binary data containing an array of elements of a specific data type.\r\n * The count member indicates how many elements exist; this may be smaller than this.data.length.\r\n * The count member may also indicate the number of elements of a type containing more than one value of the\r\n * underlying type. For example, a buffer of 4 32-bit floating point 'vec2' elements will have a count of 4,\r\n * but its data member will contain 8 32-bit floating point values (2 per vec2).\r\n * The accessor member may contain additional JSON data specific to a particular buffer.\r\n * @internal\r\n */\r\nclass GltfBufferView {\r\n public readonly data: Uint8Array;\r\n public readonly count: number;\r\n public readonly type: GltfDataType;\r\n public readonly accessor: GltfAccessor;\r\n public readonly stride: number;\r\n\r\n public get byteLength(): number { return this.data.length; }\r\n\r\n public constructor(data: Uint8Array, count: number, type: GltfDataType, accessor: GltfAccessor, stride: number) {\r\n this.data = data;\r\n this.count = count;\r\n this.type = type;\r\n this.accessor = accessor;\r\n this.stride = stride;\r\n }\r\n\r\n public toBufferData(desiredType: GltfDataType): GltfBufferData | undefined {\r\n return GltfBufferData.create(this.data, this.type, desiredType, this.count);\r\n }\r\n}\r\n\r\n/** The result of [[GltfReader.read]].\r\n * @internal\r\n */\r\nexport interface GltfReaderResult extends TileContent {\r\n readStatus: TileReadStatus;\r\n range?: AxisAlignedBox3d;\r\n copyright?: string;\r\n}\r\n\r\ntype GltfTemplateResult = Omit<GltfReaderResult, \"graphic\"> & { template?: GraphicTemplate };\r\n\r\nfunction templateToGraphicResult(result: GltfTemplateResult, system: RenderSystem): GltfReaderResult {\r\n const template = result.template;\r\n delete result.template;\r\n return {\r\n ...result,\r\n graphic: template ? system.createGraphicFromTemplate({ template }) : undefined,\r\n };\r\n}\r\n\r\n/** Data required for creating a [[GltfReader]] capable of deserializing [glTF](https://www.khronos.org/gltf/).\r\n * @internal\r\n */\r\nexport class GltfReaderProps {\r\n public readonly version: number;\r\n public readonly glTF: GltfDocument;\r\n public readonly yAxisUp: boolean;\r\n public readonly binaryData?: Uint8Array;\r\n public readonly baseUrl?: URL;\r\n\r\n private constructor(glTF: GltfDocument, version: number, yAxisUp: boolean, binaryData: Uint8Array | undefined, baseUrl?: URL | undefined) {\r\n this.version = version;\r\n this.glTF = glTF;\r\n this.binaryData = binaryData;\r\n this.yAxisUp = yAxisUp;\r\n this.baseUrl = baseUrl;\r\n }\r\n\r\n /** Attempt to construct a new GltfReaderProps from the binary data beginning at the supplied stream's current read position. */\r\n public static create(source: Uint8Array | GltfDocument, yAxisUp: boolean = false, baseUrl?: URL): GltfReaderProps | undefined {\r\n let version: number;\r\n let json: GltfDocument;\r\n let binaryData: Uint8Array | undefined;\r\n\r\n if (source instanceof Uint8Array) {\r\n // It may be JSON - check for magic indicating glb.\r\n const buffer = ByteStream.fromUint8Array(source);\r\n if (TileFormat.Gltf !== buffer.readUint32()) {\r\n try {\r\n const utf8Json = utf8ToString(source);\r\n if (!utf8Json)\r\n return undefined;\r\n\r\n json = JSON.parse(utf8Json);\r\n version = 2;\r\n } catch {\r\n return undefined;\r\n }\r\n } else {\r\n buffer.reset();\r\n const header = new GlbHeader(buffer);\r\n if (!header.isValid)\r\n return undefined;\r\n\r\n version = header.version;\r\n if (header.binaryChunk)\r\n binaryData = new Uint8Array(source.buffer, source.byteOffset + header.binaryChunk.offset, header.binaryChunk.length);\r\n\r\n try {\r\n const jsonBytes = new Uint8Array(source.buffer, source.byteOffset + header.jsonChunk.offset, header.jsonChunk.length);\r\n const jsonStr = utf8ToString(jsonBytes);\r\n if (undefined === jsonStr)\r\n return undefined;\r\n\r\n json = JSON.parse(jsonStr);\r\n } catch {\r\n return undefined;\r\n }\r\n }\r\n } else {\r\n version = 2; // ###TODO verify against source.asset?.version\r\n json = source;\r\n }\r\n\r\n // asset is required in glTF 2, optional in glTF 1\r\n const asset = JsonUtils.asObject(json.asset);\r\n if (version === 2 && !asset)\r\n return undefined;\r\n\r\n const glTF: GltfDocument = {\r\n asset,\r\n scene: JsonUtils.asString(json.scene),\r\n extensions: JsonUtils.asObject(json.extensions),\r\n extensionsUsed: JsonUtils.asArray(json.extensionsUsed),\r\n extensionsRequired: JsonUtils.asArray(json.extensionsRequired),\r\n accessors: JsonUtils.asObject(json.accessors),\r\n buffers: JsonUtils.asObject(json.buffers),\r\n bufferViews: JsonUtils.asObject(json.bufferViews),\r\n images: JsonUtils.asObject(json.images),\r\n materials: JsonUtils.asObject(json.materials),\r\n meshes: JsonUtils.asObject(json.meshes),\r\n nodes: JsonUtils.asObject(json.nodes),\r\n samplers: JsonUtils.asObject(json.samplers),\r\n scenes: JsonUtils.asObject(json.scenes),\r\n textures: JsonUtils.asObject(json.textures),\r\n techniques: JsonUtils.asObject(json.techniques),\r\n };\r\n\r\n return glTF.meshes ? new GltfReaderProps(glTF, version, yAxisUp, binaryData, baseUrl) : undefined;\r\n }\r\n}\r\n\r\n/** The GltfMeshData contains the raw GLTF mesh data. If the data is suitable to create a [[RealityMesh]] directly, basically in the quantized format produced by\r\n * ContextCapture, then a RealityMesh is created directly from this data. Otherwise, the mesh primitive is populated from the raw data and a MeshPrimitive\r\n * is generated. The MeshPrimitve path is much less efficient but should be rarely used.\r\n *\r\n * @internal\r\n */\r\nexport class GltfMeshData {\r\n public primitive: Mesh; // Populated with vertex and indices only if the mesh cannot be represented as [[RealityMesh]]\r\n public pointQParams?: QParams3d;\r\n public points?: Uint16Array;\r\n public pointRange?: Range3d;\r\n public normals?: Uint16Array;\r\n public uvQParams?: QParams2d;\r\n public uvs?: Uint16Array;\r\n public uvRange?: Range2d;\r\n public indices?: Uint8Array | Uint16Array | Uint32Array;\r\n public readonly type = \"mesh\" as const;\r\n\r\n public constructor(props: Mesh) {\r\n this.primitive = props;\r\n }\r\n}\r\n\r\ninterface GltfPointCloud extends PointCloudArgs {\r\n readonly type: \"pointcloud\";\r\n pointRange: Range3d;\r\n}\r\n\r\ntype GltfPrimitiveData = GltfMeshData | GltfPointCloud;\r\n\r\n/** A function that returns true if deserialization of the data supplied by the reader should abort.\r\n * @internal\r\n */\r\nexport type ShouldAbortReadGltf = (reader: GltfReader) => boolean;\r\n\r\nconst emptyDict = { };\r\n\r\nfunction colorFromJson(values: number[]): ColorDef {\r\n return ColorDef.from(values[0] * 255, values[1] * 255, values[2] * 255, (1.0 - values[3]) * 255);\r\n}\r\n\r\nfunction colorFromMaterial(material: GltfMaterial, isTransparent: boolean): ColorDef {\r\n let color = ColorDef.white;\r\n if (isGltf1Material(material)) {\r\n if (material.values?.color && Array.isArray(material.values.color))\r\n color = colorFromJson(material.values.color);\r\n } else if (material.extensions?.KHR_techniques_webgl?.values?.u_color) {\r\n color = colorFromJson(material.extensions.KHR_techniques_webgl.values.u_color);\r\n } else if (material.pbrMetallicRoughness?.baseColorFactor) {\r\n color = colorFromJson(material.pbrMetallicRoughness.baseColorFactor);\r\n }\r\n\r\n // SPEC: Opaque materials ignore any alpha channel.\r\n if (!isTransparent)\r\n color = color.withTransparency(0);\r\n\r\n return color;\r\n}\r\n\r\nfunction trsMatrix(translation: [number, number, number] | undefined, rotation: [number, number, number, number] | undefined, scale: [number, number, number] | undefined, result?: Transform): Transform {\r\n // SPEC: To compose the local transformation matrix, TRS properties MUST be converted to matrices and postmultiplied in the T * R * S order;\r\n // first the scale is applied to the vertices, then the rotation, and then the translation.\r\n const scaleTf = Transform.createRefs(undefined, scale ? Matrix3d.createScale(scale[0], scale[1], scale[2]) : Matrix3d.identity);\r\n const rotTf = Transform.createRefs(undefined, rotation ? Matrix3d.createFromQuaternion(Point4d.create(rotation[0], rotation[1], rotation[2], rotation[3])) : Matrix3d.identity);\r\n rotTf.matrix.transposeInPlace(); // See comment on Matrix3d.createFromQuaternion\r\n const transTf = Transform.createTranslation(translation ? new Point3d(translation[0], translation[1], translation[2]) : Point3d.createZero());\r\n const tf = rotTf.multiplyTransformTransform(scaleTf, result);\r\n transTf.multiplyTransformTransform(tf, tf);\r\n return tf;\r\n}\r\n\r\nclass TransformStack {\r\n private readonly _stack: Array<Transform | undefined> = [];\r\n\r\n public constructor(transform?: Transform) {\r\n if (transform)\r\n this._stack.push(transform);\r\n }\r\n\r\n public get transform(): Transform | undefined {\r\n return this._stack.length > 0 ? this._stack[this._stack.length - 1] : undefined;\r\n }\r\n\r\n public get isEmpty(): boolean {\r\n return 0 === this._stack.length;\r\n }\r\n\r\n public push(node: GltfNode): void {\r\n let nodeTransform;\r\n if (node.matrix) {\r\n const origin = Point3d.create(node.matrix[12], node.matrix[13], node.matrix[14]);\r\n const matrix = Matrix3d.createRowValues(\r\n node.matrix[0], node.matrix[4], node.matrix[8],\r\n node.matrix[1], node.matrix[5], node.matrix[9],\r\n node.matrix[2], node.matrix[6], node.matrix[10],\r\n );\r\n\r\n nodeTransform = Transform.createOriginAndMatrix(origin, matrix);\r\n } else if (node.rotation || node.scale || node.translation) {\r\n nodeTransform = trsMatrix(node.translation, node.rotation, node.scale);\r\n }\r\n\r\n const top = this.transform;\r\n if (!top)\r\n this._stack.push(nodeTransform);\r\n else\r\n this._stack.push(nodeTransform ? top.multiplyTransformTransform(nodeTransform) : top);\r\n }\r\n\r\n public pop(): void {\r\n assert(this._stack.length > 0);\r\n this._stack.pop();\r\n }\r\n}\r\n\r\n/** Arguments to [[GltfReader]] constructor.\r\n * @internal\r\n */\r\nexport interface GltfReaderArgs {\r\n /** Properties of the glTF source. */\r\n props: GltfReaderProps;\r\n /** The iModel with which the graphics are to be associated. */\r\n iModel: IModelConnection;\r\n /** If true, create 2d graphics. */\r\n is2d?: boolean;\r\n /** The render system that will produce the graphics. Defaults to [[IModelApp.renderSystem]]. */\r\n system?: RenderSystem;\r\n /** The type of batch to create. Defaults to [BatchType.Primary]($common).\r\n * @see [[RenderSystem.createBatch]].\r\n */\r\n type?: BatchType;\r\n /** An optional function that, if supplied, is invoked periodically to determine if the process of producing graphics from the glTF should terminate early. */\r\n shouldAbort?: ShouldAbortReadGltf;\r\n /** If true, each vertex in the graphics should belong to exactly one triangle. This is less efficient than sharing vertices between adjoining triangles, but\r\n * sometimes required - for example, for [ViewFlags.wiremesh]($common).\r\n */\r\n deduplicateVertices?: boolean;\r\n /** If true, the graphics produced will always use a [[VertexTable]]; otherwise, where possible a [[RealityMeshParams]] will be used instead.\r\n * Reality meshes are simpler but do not support some features like lighting.\r\n */\r\n vertexTableRequired?: boolean;\r\n /** A table structure to store the Gltf structural metadata if present.\r\n */\r\n idMap?: BatchedTileIdMap;\r\n}\r\n\r\ninterface TextureKey {\r\n readonly id: GltfId;\r\n readonly isTransparent: boolean;\r\n}\r\n\r\nfunction compareTextureKeys(lhs: TextureKey, rhs: TextureKey): number {\r\n const cmp = compareBooleans(lhs.isTransparent, rhs.isTransparent);\r\n if (0 !== cmp)\r\n return cmp;\r\n\r\n assert(typeof lhs.id === typeof rhs.id);\r\n if (\"string\" === typeof lhs.id) {\r\n assert(\"string\" === typeof rhs.id);\r\n return compareStrings(lhs.id, rhs.id);\r\n }\r\n\r\n assert(\"number\" === typeof lhs.id && \"number\" === typeof rhs.id);\r\n return compareNumbers(lhs.id, rhs.id);\r\n}\r\n\r\ninterface StructuralMetadataTableEntries{\r\n name: string;\r\n values: any[];\r\n};\r\n\r\ninterface StructuralMetadataTable{\r\n name: string;\r\n entries: StructuralMetadataTableEntries[];\r\n};\r\n\r\ninterface StructuralMetadata{\r\n tables: StructuralMetadataTable[];\r\n}\r\n\r\n/** @internal exported strictly for testing */\r\nexport function getMeshPrimitives(mesh: GltfMesh | undefined): GltfMeshPrimitive[] | undefined {\r\n const ext = mesh?.extensions?.EXT_mesh_primitive_restart;\r\n const meshPrimitives = mesh?.primitives;\r\n if (!meshPrimitives || meshPrimitives.length === 0 || !ext?.primitiveGroups || ext.primitiveGroups.length === 0) {\r\n return meshPrimitives;\r\n }\r\n\r\n // Note: per the spec, any violation of the extension's specification should cause us to fall back to mesh.primitives, if detecting the violation is feasible.\r\n\r\n // Start with a copy of mesh.primitives. For each group, replace the first primitive in the group with a primitive representing the entire group,\r\n // and set the rest of the primitives in the group to `undefined`.\r\n // This allows us to identify which remaining primitives do not use primitive restart, and any errors involving a primitive appearing in more than one group.\r\n const primitives: Array<GltfMeshPrimitive | undefined> = [...meshPrimitives];\r\n for (const group of ext.primitiveGroups) {\r\n // Spec: the group must not be empty and all indices must be valid array indices into mesh.primitives.\r\n const firstPrimitiveIndex = group.primitives[0];\r\n if (undefined === firstPrimitiveIndex || !meshPrimitives[firstPrimitiveIndex]) {\r\n return meshPrimitives;\r\n }\r\n\r\n const primitive = { ...meshPrimitives[firstPrimitiveIndex], indices: group.indices };\r\n\r\n // Spec: primitive restart only supported for these topologies.\r\n switch (primitive.mode) {\r\n case GltfMeshMode.TriangleFan:\r\n case GltfMeshMode.TriangleStrip:\r\n case GltfMeshMode.LineStrip:\r\n case GltfMeshMode.LineLoop:\r\n break;\r\n default:\r\n return meshPrimitives;\r\n }\r\n\r\n\r\n for (const primitiveIndex of group.primitives) {\r\n const thisPrimitive = primitives[primitiveIndex];\r\n \r\n // Spec: all primitives must use indexed geometry and a given primitive may appear in at most one group.\r\n // Spec: all primitives must have same topology.\r\n if (undefined === thisPrimitive?.indices || thisPrimitive.mode !== primitive.mode) {\r\n return meshPrimitives;\r\n }\r\n \r\n primitives[primitiveIndex] = undefined;\r\n }\r\n\r\n primitives[firstPrimitiveIndex] = primitive;\r\n }\r\n\r\n return primitives.filter((x) => x !== undefined);\r\n}\r\n\r\n/** Deserializes [glTF](https://www.khronos.org/gltf/).\r\n * @internal\r\n */\r\nexport abstract class GltfReader {\r\n protected readonly _glTF: GltfDocument;\r\n protected readonly _version: number;\r\n protected readonly _iModel: IModelConnection;\r\n protected readonly _is3d: boolean;\r\n protected readonly _system: RenderSystem;\r\n protected readonly _returnToCenter?: Point3d;\r\n protected readonly _yAxisUp: boolean;\r\n protected readonly _baseUrl?: URL;\r\n protected readonly _type: BatchType;\r\n protected readonly _deduplicateVertices: boolean;\r\n protected readonly _vertexTableRequired: boolean;\r\n private readonly _canceled?: ShouldAbortReadGltf;\r\n protected readonly _sceneNodes: GltfId[];\r\n protected _computedContentRange?: ElementAlignedBox3d;\r\n private readonly _resolvedTextures = new Dictionary<TextureKey, RenderTexture | false>((lhs, rhs) => compareTextureKeys(lhs, rhs));\r\n private readonly _dracoMeshes = new Map<DracoMeshCompression, DracoMesh>();\r\n private _containsPointCloud = false;\r\n protected _instanceFeatures: Feature[] = [];\r\n protected _meshFeatures: Feature[] = [];\r\n protected _instanceElementIdToFeatureId: Map<string, number> = new Map<string, number>();\r\n protected _meshElementIdToFeatureIndex: Map<string, number> = new Map<string, number>();\r\n protected _structuralMetadata?: StructuralMetadata;\r\n protected readonly _idMap?: BatchedTileIdMap;\r\n private _tileData?: LayerTileData | undefined;\r\n\r\n protected get _nodes(): GltfDictionary<GltfNode> { return this._glTF.nodes ?? emptyDict; }\r\n protected get _meshes(): GltfDictionary<GltfMesh> { return this._glTF.meshes ?? emptyDict; }\r\n protected get _accessors(): GltfDictionary<GltfAccessor> { return this._glTF.accessors ?? emptyDict; }\r\n protected get _bufferViews(): GltfDictionary<GltfBufferViewProps & { resolvedBuffer?: Uint8Array }> { return this._glTF.bufferViews ?? emptyDict; }\r\n protected get _materials(): GltfDictionary<GltfMaterial> { return this._glTF.materials ?? emptyDict; }\r\n protected get _samplers(): GltfDictionary<GltfSampler> { return this._glTF.samplers ?? emptyDict; }\r\n protected get _textures(): GltfDictionary<GltfTexture> { return this._glTF.textures ?? emptyDict; }\r\n\r\n protected get _images(): GltfDictionary<GltfImage & { resolvedImage?: TextureImageSource }> { return this._glTF.images ?? emptyDict; }\r\n protected get _buffers(): GltfDictionary<GltfBuffer & { resolvedBuffer?: Uint8Array }> { return this._glTF.buffers ?? emptyDict; }\r\n\r\n /** Asynchronously deserialize the tile data and return the result. */\r\n public abstract read(): Promise<GltfReaderResult>;\r\n\r\n protected get _isCanceled(): boolean { return undefined !== this._canceled && this._canceled(this); }\r\n protected get _isVolumeClassifier(): boolean { return BatchType.VolumeClassifier === this._type; }\r\n\r\n /** Traverse the nodes specified by their Ids, recursing into their child nodes.\r\n * @param nodeIds The Ids of the nodes to traverse.\r\n * @throws Error if a node appears more than once during traversal\r\n */\r\n public traverseNodes(nodeIds: Iterable<GltfId>): Iterable<GltfNode> {\r\n return traverseGltfNodes(nodeIds, this._nodes, new Set<GltfId>());\r\n }\r\n\r\n /** Traverse the nodes specified by their scene, recursing into their child nodes.\r\n * @throws Error if a node appears more than once during traversal\r\n */\r\n public traverseScene(): Iterable<GltfNode> {\r\n return this.traverseNodes(this._sceneNodes);\r\n }\r\n\r\n protected get viewFlagOverrides(): ViewFlagOverrides | undefined {\r\n return undefined;\r\n }\r\n\r\n private getTileTransform(transformToRoot?: Transform, pseudoRtcBias?: Vector3d): Transform | undefined {\r\n let transform;\r\n\r\n if (this._returnToCenter || pseudoRtcBias || this._yAxisUp || transformToRoot) {\r\n if (this._returnToCenter)\r\n transform = Transform.createTranslation(this._returnToCenter.clone());\r\n else if (pseudoRtcBias)\r\n transform = Transform.createTranslationXYZ(pseudoRtcBias.x, pseudoRtcBias.y, pseudoRtcBias.z);\r\n else\r\n transform = Transform.createIdentity();\r\n\r\n if (this._yAxisUp)\r\n transform = transform.multiplyTransformMatrix3d(Matrix3d.createRotationAroundVector(Vector3d.create(1.0, 0.0, 0.0), Angle.createRadians(Angle.piOver2Radians)) as Matrix3d);\r\n\r\n if (transformToRoot)\r\n transform = transformToRoot.multiplyTransformTransform(transform);\r\n }\r\n\r\n return transform;\r\n }\r\n\r\n protected readGltfAndCreateGraphics(isLeaf: boolean, featureTable: FeatureTable | undefined, contentRange: ElementAlignedBox3d | undefined, transformToRoot?: Transform, pseudoRtcBias?: Vector3d, instances?: InstancedGraphicParams): GltfReaderResult {\r\n const result = this.readGltfAndCreateTemplate(isLeaf, featureTable, contentRange, true, transformToRoot, pseudoRtcBias, instances);\r\n return templateToGraphicResult(result, this._system);\r\n }\r\n\r\n protected readGltfAndCreateTemplate(isLeaf: boolean, featureTable: FeatureTable | undefined, contentRange: ElementAlignedBox3d | undefined, noDispose: boolean, transformToRoot?: Transform, pseudoRtcBias?: Vector3d, instances?: InstancedGraphicParams): GltfTemplateResult {\r\n if (this._isCanceled)\r\n return { readStatus: TileReadStatus.Canceled, isLeaf };\r\n\r\n // If contentRange was not supplied, we will compute it as we read the meshes.\r\n if (!contentRange)\r\n this._computedContentRange = contentRange = Range3d.createNull();\r\n else\r\n this._computedContentRange = undefined;\r\n\r\n // Save feature table model id in case we need to recreate it after reading instances\r\n const featureTableModelId = featureTable?.modelId;\r\n // Flush feature table if instance features are used\r\n if(this._structuralMetadata && this._glTF.extensionsUsed?.includes(\"EXT_instance_features\") && this._idMap){\r\n featureTable = undefined;\r\n }\r\n\r\n // ###TODO this looks like a hack? Why does it assume the first node's transform is special, or that the transform will be specified as a matrix instead of translation+rot+scale?\r\n if (this._returnToCenter || this._nodes[0]?.matrix || (pseudoRtcBias && pseudoRtcBias.magnitude() < 1.0E5))\r\n pseudoRtcBias = undefined;\r\n\r\n const transformStack = new TransformStack();\r\n const templateNodes: GraphicTemplateNode[] = [];\r\n let readStatus: TileReadStatus = TileReadStatus.InvalidTileData;\r\n for (const nodeKey of this._sceneNodes) {\r\n assert(transformStack.isEmpty);\r\n const node = this._nodes[nodeKey];\r\n if (node && TileReadStatus.Success !== (readStatus = this.readTemplateNodes(templateNodes, node, featureTable, transformStack, instances, pseudoRtcBias)))\r\n return { readStatus, isLeaf };\r\n }\r\n\r\n // Creates a feature table based on instance features\r\n // The table must be created after reading instances, since the maximum number of features is not known until all instances have been read.\r\n if(this._instanceFeatures.length > 0 && this._idMap){\r\n featureTable = new FeatureTable(this._instanceFeatures.length, featureTableModelId);\r\n for(let instanceFeatureId = 0; instanceFeatureId < this._instanceFeatures.length; instanceFeatureId++){\r\n featureTable.insertWithIndex(this._instanceFeatures[instanceFeatureId], instanceFeatureId);\r\n }\r\n }\r\n\r\n if(this._meshFeatures.length > 0 && this._idMap){\r\n featureTable = new FeatureTable(this._meshFeatures.length, featureTableModelId);\r\n for(let meshFeatureId = 0; meshFeatureId < this._meshFeatures.length; meshFeatureId++){\r\n featureTable.insertWithIndex(this._meshFeatures[meshFeatureId], meshFeatureId);\r\n }\r\n }\r\n\r\n if (0 === templateNodes.length)\r\n return { readStatus: TileReadStatus.InvalidTileData, isLeaf };\r\n\r\n // Compute range in tileset/world space.\r\n let range = contentRange;\r\n const transform = this.getTileTransform(transformToRoot, pseudoRtcBias);\r\n const invTransform = transform?.inverse();\r\n if (invTransform)\r\n range = invTransform.multiplyRange(contentRange);\r\n\r\n // The batch range needs to be in tile coordinate space.\r\n // If we computed the content range ourselves, it's already in tile space.\r\n // If the content range was supplied by the caller, it's in tileset space and needs to be transformed to tile space.\r\n const batch: GraphicTemplateBatch | undefined = !featureTable ? undefined : {\r\n featureTable: PackedFeatureTable.pack(featureTable),\r\n range: this._computedContentRange ? contentRange : range,\r\n };\r\n\r\n const viewFlagOverrides = this.viewFlagOverrides;\r\n const branch: GraphicTemplateBranch | undefined = transform || viewFlagOverrides ? { transform, viewFlagOverrides } : undefined;\r\n\r\n return {\r\n readStatus,\r\n isLeaf,\r\n contentRange,\r\n range,\r\n copyright: this._glTF.asset?.copyright,\r\n containsPointCloud: this._containsPointCloud,\r\n template: createGraphicTemplate({\r\n nodes: templateNodes,\r\n batch,\r\n branch,\r\n noDispose,\r\n }),\r\n };\r\n }\r\n\r\n public readGltfAndCreateGeometry(transformToRoot?: Transform, needNormals = false, needParams = false): RealityTileGeometry {\r\n const transformStack = new TransformStack(this.getTileTransform(transformToRoot));\r\n const polyfaces: IndexedPolyface[] = [];\r\n for (const nodeKey of this._sceneNodes) {\r\n const node = this._nodes[nodeKey];\r\n if (node)\r\n this.readNodeAndCreatePolyfaces(polyfaces, node, transformStack, needNormals, needParams);\r\n }\r\n\r\n return { polyfaces };\r\n }\r\n\r\n private geometryFromMeshData(gltfMesh: GltfPrimitiveData, isInstanced: boolean): RenderGeometry | undefined {\r\n if (\"pointcloud\" === gltfMesh.type)\r\n return this._system.createPointCloudGeometry(gltfMesh);\r\n\r\n if (!gltfMesh.points || !gltfMesh.pointRange)\r\n return this._system.createGeometryFromMesh(gltfMesh.primitive, undefined);\r\n\r\n let realityMeshPrimitive = (this._vertexTableRequired || isInstanced) ? undefined : RealityMeshParams.fromGltfMesh(gltfMesh);\r\n if (realityMeshPrimitive && this._tileData) {\r\n\r\n realityMeshPrimitive = {\r\n ...realityMeshPrimitive,\r\n tileData: this._tileData,\r\n };\r\n }\r\n\r\n if (realityMeshPrimitive) {\r\n const realityMesh = this._system.createRealityMeshGeometry(realityMeshPrimitive);\r\n if (realityMesh)\r\n return realityMesh;\r\n }\r\n\r\n const mesh = gltfMesh.primitive;\r\n const pointCount = gltfMesh.points.length / 3;\r\n assert(mesh.points instanceof QPoint3dList);\r\n mesh.points.fromTypedArray(gltfMesh.pointRange, gltfMesh.points);\r\n if (mesh.triangles && gltfMesh.indices)\r\n mesh.triangles.addFromTypedArray(gltfMesh.indices);\r\n\r\n if (gltfMesh.uvs && gltfMesh.uvRange && gltfMesh.uvQParams) {\r\n /** This is ugly and inefficient... unnecessary if Mesh stored uvs as QPoint2dList */\r\n for (let i = 0, j = 0; i < pointCount; i++)\r\n mesh.uvParams.push(gltfMesh.uvQParams.unquantize(gltfMesh.uvs[j++], gltfMesh.uvs[j++]));\r\n }\r\n\r\n if (gltfMesh.normals)\r\n for (const normal of gltfMesh.normals)\r\n mesh.normals.push(new OctEncodedNormal(normal));\r\n\r\n return this._system.createGeometryFromMesh(mesh, undefined, this._tileData,);\r\n }\r\n\r\n private readInstanceAttributes(node: Gltf2Node, featureTable: FeatureTable | undefined): InstancedGraphicParams | undefined {\r\n const ext = node.extensions?.EXT_mesh_gpu_instancing;\r\n if (!ext || !ext.attributes) {\r\n return undefined;\r\n }\r\n\r\n const translationsView = this.getBufferView(ext.attributes, \"TRANSLATION\");\r\n const translations = translationsView?.toBufferData(GltfDataType.Float);\r\n const rotations = this.getBufferView(ext.attributes, \"ROTATION\")?.toBufferData(GltfDataType.Float);\r\n const scales = this.getBufferView(ext.attributes, \"SCALE\")?.toBufferData(GltfDataType.Float);\r\n\r\n // All attributes must specify the same count, count must be greater than zero, and at least one attribute must be specified.\r\n const count = translations?.count ?? rotations?.count ?? scales?.count;\r\n if (!count || (rotations && rotations.count !== count) || (scales && scales.count !== count)) {\r\n return undefined;\r\n }\r\n\r\n const transformCenter = new Point3d();\r\n const trMin = translationsView?.accessor.min;\r\n const trMax = translationsView?.accessor.max;\r\n if (trMin && trMax) {\r\n const half = (idx: number): number => trMin[idx] + (trMax[idx] - trMin[idx]) / 2;\r\n transformCenter.set(half(0), half(1), half(2));\r\n }\r\n\r\n const getTranslation = (index: number): [number, number, number] | undefined => {\r\n if (!translations) {\r\n return undefined;\r\n }\r\n\r\n index *= 3;\r\n return [\r\n translations.buffer[index + 0] - transformCenter.x,\r\n translations.buffer[index + 1] - transformCenter.y,\r\n translations.buffer[index + 2] - transformCenter.z,\r\n ];\r\n };\r\n\r\n const getRotation = (index: number): [number, number, number, number] | undefined => {\r\n index *= 4;\r\n return rotations ? [rotations.buffer[index], rotations.buffer[index + 1], rotations.buffer[index + 2], rotations.buffer[index + 3]] : undefined;\r\n };\r\n\r\n const getScale = (index: number): [number, number, number] | undefined => {\r\n index *= 3;\r\n return scales ? [scales.buffer[index], scales.buffer[index + 1], scales.buffer[index + 2]] : undefined;\r\n };\r\n\r\n const transforms = new Float32Array(3 * 4 * count);\r\n const transform = Transform.createIdentity();\r\n for (let i = 0; i < count; i++) {\r\n const tf = trsMatrix(getTranslation(i), getRotation(i), getScale(i), transform);\r\n const idx = i * 3 * 4;\r\n transforms[idx + 0] = tf.matrix.coffs[0];\r\n transforms[idx + 1] = tf.matrix.coffs[1];\r\n transforms[idx + 2] = tf.matrix.coffs[2];\r\n transforms[idx + 3] = tf.origin.x;\r\n transforms[idx + 4] = tf.matrix.coffs[3];\r\n transforms[idx + 5] = tf.matrix.coffs[4];\r\n transforms[idx + 6] = tf.matrix.coffs[5];\r\n transforms[idx + 7] = tf.origin.y;\r\n transforms[idx + 8] = tf.matrix.coffs[6];\r\n transforms[idx + 9] = tf.matrix.coffs[7];\r\n transforms[idx + 10] = tf.matrix.coffs[8];\r\n transforms[idx + 11] = tf.origin.z;\r\n }\r\n\r\n let featureIds = ((featureTable && featureTable.isUniform)) ? new Uint8Array(3 * count) : undefined;\r\n\r\n // Resolve instance features if the EXT_instance_features if present\r\n const instanceFeaturesExt = node.extensions?.EXT_instance_features;\r\n if(this._structuralMetadata && instanceFeaturesExt && this._idMap){\r\n if(!featureIds)\r\n featureIds = new Uint8Array(3 * count);\r\n // Resolve feature buffers before creating instance table\r\n const featureBuffers = new Map<number, GltfDataBuffer>();\r\n for(const featureIdDesc of instanceFeaturesExt.featureIds){\r\n\r\n if(featureIdDesc.attribute !== undefined){\r\n const bufferView = this.getBufferView(ext.attributes, `_FEATURE_ID_${ featureIdDesc.attribute}`);\r\n if(bufferView){\r\n const bufferData = bufferView.toBufferData(bufferView.type)?.buffer;\r\n if(bufferData){\r\n featureBuffers.set(featureIdDesc.attribute, bufferData);\r\n }\r\n }\r\n }\r\n }\r\n\r\n for(let localInstanceId = 0; localInstanceId < count; localInstanceId++){\r\n\r\n const instanceProps: any = {};\r\n for(const featureIdDesc of instanceFeaturesExt.featureIds){\r\n\r\n const table = this._structuralMetadata.tables[featureIdDesc.propertyTable];\r\n instanceProps[table.name] = {};\r\n // If the attribute is not defined, then the feature id corresponds to the instance id\r\n if(featureIdDesc.attribute === undefined){\r\n for(const entries of table.entries){\r\n if(entries.values[localInstanceId] !== undefined){\r\n instanceProps[table.name][entries.name] = entries.values[localInstanceId];\r\n }\r\n }\r\n } else if(featureBuffers.has(featureIdDesc.attribute)) {\r\n const featureBuffer = featureBuffers.get(featureIdDesc.attribute);\r\n if(!featureBuffer){\r\n continue;\r\n }\r\n const featureId = featureBuffer[localInstanceId];\r\n\r\n if(featureIdDesc.nullFeatureId !== undefined && featureId === featureIdDesc.nullFeatureId){\r\n continue;\r\n }\r\n\r\n for(const entries of table.entries){\r\n if(entries.values[featureId] !== undefined){\r\n instanceProps[table.name][entries.name] = entries.values[featureId];\r\n }\r\n }\r\n }\r\n }\r\n\r\n const instanceElementId = this._idMap.getBatchId(instanceProps);\r\n\r\n // If the element id is already assigned to a previous instance,\r\n // reuse the previous feature id to avoid collision in the feature table\r\n if(!this._instanceElementIdToFeatureId.has(instanceElementId)){\r\n this._instanceElementIdToFeatureId.set(instanceElementId, this._instanceFeatures.length);\r\n this._instanceFeatures.push(new Feature(instanceElementId));\r\n }\r\n\r\n const instanceFeatureId = this._instanceElementIdToFeatureId.get(instanceElementId)!;\r\n featureIds[localInstanceId * 3 + 0] = instanceFeatureId & 0xFF;\r\n featureIds[localInstanceId * 3 + 1] = (instanceFeatureId >> 8) & 0xFF;\r\n featureIds[localInstanceId * 3 + 2] = (instanceFeatureId >> 16) & 0xFF;\r\n }\r\n }\r\n\r\n return { count, transforms, transformCenter, featureIds };\r\n }\r\n\r\n private readTemplateNodes(\r\n templateNodes: GraphicTemplateNode[],\r\n node: GltfNode,\r\n featureTable: FeatureTable | undefined,\r\n transformStack: TransformStack,\r\n batchInstances?: InstancedGraphicParams,\r\n pseudoRtcBias?: Vector3d\r\n ): TileReadStatus {\r\n if (undefined === node)\r\n return TileReadStatus.InvalidTileData;\r\n\r\n // IMPORTANT: Do not return without popping this node from the stack.\r\n transformStack.push(node);\r\n const thisTransform = transformStack.transform;\r\n\r\n const nodeInstances = !batchInstances && undefined !== node.mesh ? this.readInstanceAttributes(node, featureTable) : undefined;\r\n\r\n /**\r\n * This is a workaround for tiles generated by\r\n * context capture which have a large offset from the tileset origin that exceeds the\r\n * capacity of 32 bit integers. It is essentially an ad hoc RTC applied at read time only if the tile is far from the\r\n * origin and there is no RTC supplied either with the B3DM of the GLTF.\r\n * as the vertices are supplied in a quantized format, applying the RTC bias to\r\n * quantization origin will make these tiles work correctly.\r\n */\r\n let thisBias;\r\n if (undefined !== pseudoRtcBias)\r\n thisBias = (undefined === thisTransform) ? pseudoRtcBias : thisTransform.matrix.multiplyInverse(pseudoRtcBias);\r\n\r\n for (const meshKey of getGltfNodeMeshIds(node)) {\r\n const nodeMesh = this._meshes[meshKey];\r\n if (nodeMesh?.primitives) {\r\n const meshes = this.readMeshPrimitives(node, featureTable, thisTransform, thisBias, nodeInstances);\r\n\r\n if (0 !== meshes.length) {\r\n const thisList: RenderGeometry[] = [];\r\n for (const mesh of meshes) {\r\n const geometry = this.geometryFromMeshData(mesh, !!batchInstances || !!nodeInstances);\r\n if (undefined !== geometry)\r\n thisList.push(geometry);\r\n }\r\n\r\n if (0 !== thisList.length) {\r\n templateNodes.push({\r\n geometry: thisList,\r\n transform: thisTransform && !thisTransform.isIdentity ? thisTransform : undefined,\r\n instances: batchInstances ?? nodeInstances,\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (node.children) {\r\n for (const childId of node.children) {\r\n const child = this._nodes[childId];\r\n if (child)\r\n this.readTemplateNodes(templateNodes, child, featureTable, transformStack, batchInstances ?? nodeInstances);\r\n }\r\n }\r\n\r\n transformStack.pop();\r\n return TileReadStatus.Success;\r\n }\r\n\r\n private readNodeAndCreatePolyfaces(polyfaces: IndexedPolyface[], node: GltfNode, transformStack: TransformStack, needNormals: boolean, needParams: boolean): void {\r\n // IMPORTANT: Do not return without popping this node from the stack.\r\n transformStack.push(node);\r\n const meshes = this.readMeshPrimitives(node);\r\n\r\n for (const mesh of meshes) {\r\n if (mesh.type === \"mesh\") {\r\n const polyface = this.polyfaceFromGltfMesh(mesh, transformStack.transform, needNormals, needParams);\r\n if (polyface)\r\n polyfaces.push(polyface);\r\n }\r\n }\r\n\r\n if (node.children) {\r\n for (const childId of node.children) {\r\n const child = this._nodes[childId];\r\n if (child)\r\n this.readNodeAndCreatePolyfaces(polyfaces, child, transformStack, needNormals, needParams);\r\n }\r\n }\r\n }\r\n\r\n private polyfaceFromGltfMesh(mesh: GltfMeshData, transform: Transform | undefined , needNormals: boolean, needParams: boolean): IndexedPolyface | undefined {\r\n if (!mesh.pointQParams || !mesh.points || !mesh.indices)\r\n return undefined;\r\n\r\n const { points, pointQParams, normals, uvs, uvQParams, indices } = mesh;\r\n\r\n const includeNormals = needNormals && undefined !== normals;\r\n const includeParams = needParams && undefined !== uvQParams && undefined !== uvs;\r\n\r\n const polyface = IndexedPolyface.create(includeNormals, includeParams);\r\n for (let i = 0; i < points.length; ) {\r\n const point = pointQParams.unquantize(points[i++], points[i++], points[i++]);\r\n if (transform)\r\n transform.multiplyPoint3d(point, point);\r\n\r\n polyface.addPoint(point);\r\n }\r\n\r\n if (includeNormals && normals)\r\n for (let i = 0; i < normals.length; )\r\n polyface.addNormal(OctEncodedNormal.decodeValue(normals[i++]));\r\n\r\n if (includeParams && uvs && uvQParams)\r\n for (let i = 0; i < uvs.length; )\r\n polyface.addParam(uvQParams.unquantize(uvs[i++], uvs[i++]));\r\n\r\n let j = 0;\r\n for (const index of indices) {\r\n polyface.addPointIndex(index);\r\n if (includeNormals)\r\n polyface.addNormalIndex(index);\r\n\r\n if (includeParams)\r\n polyface.addParamIndex(index);\r\n\r\n if (0 === (++j % 3))\r\n polyface.terminateFacet();\r\n }\r\n\r\n return polyface;\r\n }\r\n\r\n // ###TODO what is the actual type of `json`?\r\n public getBufferView(json: { [k: string]: any }, accessorName: string): GltfBufferView | undefined {\r\n try {\r\n const accessorValue = JsonUtils.asString(json[accessorName]);\r\n const accessor = accessorValue ? this._accessors[accessorValue] : undefined;\r\n if (!accessor)\r\n return undefined;\r\n\r\n const bufferViewAccessorValue = accessor.bufferView;\r\n const bufferView = undefined !== bufferViewAccessorValue ? this._bufferViews[bufferViewAccessorValue] : undefined;\r\n if (!bufferView)\r\n return undefined;\r\n\r\n let bufferData = bufferView.resolvedBuffer;\r\n if (!bufferData) {\r\n if (undefined === bufferView.buffer)\r\n return undefined;\r\n\r\n const buffer = this._buffers[bufferView.buffer];\r\n bufferData = buffer?.resolvedBuffer;\r\n }\r\n\r\n if (!bufferData)\r\n return undefined;\r\n\r\n const type = accessor.componentType;\r\n let dataSize = 0;\r\n switch (type) {\r\n case GltfDataType.UnsignedByte:\r\n dataSize = 1;\r\n break;\r\n case GltfDataType.UnsignedShort:\r\n dataSize = 2;\r\n break;\r\n case GltfDataType.UInt32:\r\n case GltfDataType.Float:\r\n dataSize = 4;\r\n break;\r\n default:\r\n return undefined;\r\n }\r\n let componentCount = 1;\r\n switch (accessor.type) {\r\n case \"VEC4\":\r\n componentCount = 4;\r\n break;\r\n case \"VEC3\":\r\n componentCount = 3;\r\n break;\r\n case \"VEC2\":\r\n componentCount = 2;\r\n break;\r\n }\r\n\r\n const byteStride = bufferView.byteStride ? bufferView.byteStride : componentCount * dataSize;\r\n const offset = ((bufferView && bufferView.byteOffset) ? bufferView.byteOffset : 0) + (accessor.byteOffset ? accessor.byteOffset : 0);\r\n const length = byteStride * accessor.count;\r\n\r\n // If the data is misaligned (Scalable mesh tile publisher) use slice to copy -- else use subarray.\r\n const aligned = 0 === (bufferData.byteOffset + offset) % dataSize;\r\n const bytes = aligned ? bufferData.subarray(offset, offset + length) : bufferData.slice(offset, offset + length);\r\n return new GltfBufferView(bytes, accessor.count, type, accessor, byteStride / dataSize);\r\n } catch {\r\n return undefined;\r\n }\r\n }\r\n\r\n public readBufferData32(json: { [k: string]: any }, accessorName: string): GltfBufferData | undefined { return this.readBufferData(json, accessorName, GltfDataType.UInt32); }\r\n public readBufferData16(json: { [k: string]: any }, accessorName: string): GltfBufferData | undefined { return this.readBufferData(json, accessorName, GltfDataType.UnsignedShort); }\r\n public readBufferData8(json: { [k: string]: any }, accessorName: string): GltfBufferData | undefined { return this.readBufferData(json, accessorName, GltfDataType.UnsignedByte); }\r\n public readBufferDataFloat(json: { [k: string]: any }, accessorName: string): GltfBufferData | undefined { return this.readBufferData(json, accessorName, GltfDataType.Float); }\r\n\r\n protected constructor(args: GltfReaderArgs & { tileData?: LayerTileData }) {\r\n this._tileData = args.tileData;\r\n this._glTF = args.props.glTF;\r\n this._version = args.props.version;\r\n this._yAxisUp = args.props.yAxisUp;\r\n this._baseUrl = args.props.baseUrl;\r\n\r\n const rtcCenter = args.props.glTF.extensions?.CESIUM_RTC?.center;\r\n if (rtcCenter && 3 === rtcCenter.length)\r\n if (0 !== rtcCenter[0] || 0 !== rtcCenter[1] || 0 !== rtcCenter[2])\r\n this._returnToCenter = Point3d.fromJSON(rtcCenter);\r\n\r\n this._iModel = args.iModel;\r\n this._is3d = true !== args.is2d;\r\n this._system = args.system ?? IModelApp.renderSystem;\r\n this._type = args.type ?? BatchType.Primary;\r\n this._canceled = args.shouldAbort;\r\n this._deduplicateVertices = args.deduplicateVertices ?? false;\r\n this._vertexTableRequired = args.vertexTableRequired ?? false;\r\n\r\n const binaryData = args.props.binaryData;\r\n if (binaryData) {\r\n const buffer = this._buffers[this._version === 2 ? 0 : \"binary_glTF\"];\r\n if (buffer && undefined === buffer.uri)\r\n buffer.resolvedBuffer = binaryData;\r\n }\r\n\r\n // The original implementation of GltfReader would process and produce graphics for every node in glTF.nodes.\r\n // What it's *supposed* to do is process the nodes in glTF.scenes[glTF.scene].nodes\r\n // Some nodes may not be referenced by the configured scene, or only indirectly via GltfNode.children.\r\n // Perhaps some faulty tiles existed that didn't define their scenes properly?\r\n let sceneNodes;\r\n if (this._glTF.scenes && undefined !== this._glTF.scene)\r\n sceneNodes = this._glTF.scenes[this._glTF.scene]?.nodes;\r\n\r\n if (!sceneNodes)\r\n sceneNodes = Object.keys(this._nodes);\r\n\r\n this._sceneNodes = sceneNodes;\r\n this._idMap = args.idMap;\r\n }\r\n\r\n protected readBufferData(json: { [k: string]: any }, accessorName: string, type: GltfDataType): GltfBufferData | undefined {\r\n const view = this.getBufferView(json, accessorName);\r\n return undefined !== view ? view.toBufferData(type) : undefined;\r\n }\r\n\r\n protected readFeatureIndices(_json: any): number[] | undefined { return undefined; }\r\n\r\n private extractId(value: any): string | undefined {\r\n switch (typeof value) {\r\n case \"string\":\r\n return value;\r\n case \"number\":\r\n return value.toString();\r\n default:\r\n return undefined;\r\n }\r\n }\r\n\r\n private extractTextureId(material: GltfMaterial): string | undefined {\r\n if (typeof material !== \"object\")\r\n return undefined;\r\n\r\n // Bimium's shader value...almost certainly obsolete at this point.\r\n if (isGltf1Material(material))\r\n return material.diffuse ?? this.extractId(material.values?.tex);\r\n\r\n // KHR_techniques_webgl extension\r\n const techniques = this._glTF.extensions?.KHR_techniques_webgl?.techniques;\r\n const ext = Array.isArray(techniques) ? material.extensions?.KHR_techniques_webgl : undefined;\r\n if (techniques && undefined !== ext && typeof(ext.values) === \"object\") {\r\n const uniforms = typeof ext.technique === \"number\" ? techniques[ext.technique].uniforms : undefined;\r\n if (typeof uniforms === \"object\") {\r\n for (const uniformName of Object.keys(uniforms)) {\r\n const uniform = uniforms[uniformName];\r\n if (typeof uniform === \"object\" && uniform.type === GltfDataType.Sampler2d)\r\n return this.extractId((ext.values[uniformName] as any)?.index);\r\n }\r\n }\r\n }\r\n\r\n const id = this.extractId(material.pbrMetallicRoughness?.baseColorTexture?.index);\r\n return id ?? this.extractId(material.emissiveTexture?.index);\r\n }\r\n\r\n private extractNormalMapId(material: GltfMaterial): string | undefined {\r\n if (typeof material !== \"object\")\r\n return undefined;\r\n\r\n if (isGltf1Material(material))\r\n return undefined;\r\n\r\n return this.extractId(material.normalTexture?.index);\r\n }\r\n\r\n private isMaterialTransparent(material: GltfMaterial): boolean {\r\n if (isGltf1Material(material)) {\r\n if (this._glTF.techniques && undefined !== material.technique) {\r\n const technique = this._glTF.techniques[material.technique];\r\n if (technique?.states?.enable?.some((state: GltfTechniqueState) => state === GltfTechniqueState.Blend))\r\n return true;\r\n }\r\n\r\n return false;\r\n } else {\r\n // Default: OPAQUE.\r\n // ###TODO support MASK. For now treat as opaque.\r\n return \"BLEND\" === material.alphaMode;\r\n }\r\n }\r\n\r\n protected createDisplayParams(material: GltfMaterial, hasBakedLighting: boolean): DisplayParams | undefined {\r\n const isTransparent = this.isMaterialTransparent(material);\r\n const textureId = this.extractTextureId(material);\r\n const normalMapId = this.extractNormalMapId(material);\r\n let textureMapping = (undefined !== textureId || undefined !== normalMapId) ? this.findTextureMapping(textureId, isTransparent, normalMapId) : undefined;\r\n const color = colorFromMaterial(material, isTransparent);\r\n let renderMaterial: RenderMaterial | undefined;\r\n if (undefined !== textureMapping && undefined !== textureMapping.normalMapParams) {\r\n const args: CreateRenderMaterialArgs = { diffuse: { color }, specular: { color: ColorDef.white }, textureMapping };\r\n renderMaterial = IModelApp.renderSystem.createRenderMaterial(args);\r\n\r\n // DisplayParams doesn't want a separate texture mapping if the material already has one.\r\n textureMapping = undefined;\r\n\r\n }\r\n\r\n return new DisplayParams(DisplayParams.Type.Mesh, color, color, 1, LinePixels.Solid, FillFlags.None, renderMaterial, undefined, hasBakedLighting, textureMapping);\r\n }\r\n\r\n private readMeshPrimitives(node: GltfNode, featureTable?: FeatureTable, thisTransform?: Transform, thisBias?: Vector3d, instances?: InstancedGraphicParams): GltfPrimitiveData[] {\r\n const meshes: GltfPrimitiveData[] = [];\r\n for (const meshKey of getGltfNodeMeshIds(node)) {\r\n const nodeMesh = this._meshes[meshKey];\r\n const primitives = getMeshPrimitives(nodeMesh);\r\n if (primitives) {\r\n for (const primitive of primitives) {\r\n const mesh = this.readMeshPrimitive(primitive, featureTable, thisBias);\r\n if (mesh) {\r\n meshes.push(mesh);\r\n if (this._computedContentRange && mesh.pointRange) {\r\n const meshRange = thisTransform ? thisTransform .multiplyRange(mesh.pointRange) : mesh.pointRange;\r\n if (!instances) {\r\n this._computedContentRange.extendRange(meshRange);\r\n } else {\r\n const tfs = instances.transforms;\r\n const nodeRange = new Range3d();\r\n const extendTransformedRange = (i: number, x: number, y: number, z: number) => {\r\n nodeRange.extendXYZ(tfs[i + 3] + tfs[i + 0] * x + tfs[i + 1] * y + tfs[i + 2] * z,\r\n tfs[i + 7] + tfs[i + 4] * x + tfs[i + 5] * y + tfs[i + 6] * z,\r\n tfs[i + 11] + tfs[i + 8] * x + tfs[i + 9] * y + tfs[i + 10] * z);\r\n };\r\n\r\n for (let i = 0; i < tfs.length; i += 3 * 4) {\r\n extendTransformedRange(i, meshRange.low.x, meshRange.low.y, meshRange.low.z);\r\n extendTransformedRange(i, meshRange.low.x, meshRange.low.y, meshRange.high.z);\r\n extendTransformedRange(i, meshRange.low.x, meshRange.high.y, meshRange.low.z);\r\n extendTransformedRange(i, meshRange.low.x, meshRange.high.y, meshRange.high.z);\r\n extendTransformedRange(i, meshRange.high.x, meshRange.low.y, meshRange.low.z);\r\n extendTransformedRange(i, meshRange.high.x, meshRange.low.y, meshRange.high.z);\r\n extendTransformedRange(i, meshRange.high.x, meshRange.high.y, meshRange.low.z);\r\n extendTransformedRange(i, meshRange.high.x, meshRange.high.y, meshRange.high.z);\r\n }\r\n\r\n nodeRange.low.addInPlace(instances.transformCenter);\r\n nodeRange.high.addInPlace(instances.transformCenter);\r\n\r\n this._computedContentRange.extendRange(nodeRange);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return meshes;\r\n }\r\n\r\n protected readMeshPrimitive(primitive: GltfMeshPrimitive, featureTable?: FeatureTable, pseudoRtcBias?: Vector3d): GltfPrimitiveData | undefined {\r\n const meshMode = JsonUtils.asInt(primitive.mode, GltfMeshMode.Triangles);\r\n if (meshMode === GltfMeshMode.Points /* && !this._vertexTableRequired */) {\r\n const pointCloud = this.readPointCloud2(primitive, undefined !== featureTable);\r\n if (pointCloud)\r\n return pointCloud;\r\n }\r\n\r\n const materialName = JsonUtils.asString(primitive.material);\r\n const material = 0 < materialName.length ? this._materials[materialName] : { };\r\n if (!material)\r\n return undefined;\r\n\r\n const hasBakedLighting = undefined === primitive.attributes.NORMAL || undefined !== material.extensions?.KHR_materials_unlit;\r\n const displayParams = material ? this.createDisplayParams(material, hasBakedLighting) : undefined;\r\n if (!displayParams)\r\n return undefined;\r\n\r\n let primitiveType: number = -1;\r\n switch (meshMode) {\r\n case GltfMeshMode.Lines:\r\n case GltfMeshMode.LineStrip:\r\n primitiveType = MeshPrimitiveType.Polyline;\r\n break;\r\n\r\n case GltfMeshMode.Points:\r\n primitiveType = MeshPrimitiveType.Point;\r\n break;\r\n\r\n case GltfMeshMode.Triangles:\r\n primitiveType = MeshPrimitiveType.Mesh;\r\n break;\r\n\r\n default:\r\n return undefined;\r\n }\r\n\r\n const isVolumeClassifier = this._isVolumeClassifier;\r\n const meshPrimitive = Mesh.create({\r\n displayParams,\r\n features: featureTable,\r\n type: primitiveType,\r\n range: Range3d.createNull(),\r\n is2d: !this._is3d,\r\n isPlanar: false,\r\n hasBakedLighting,\r\n isVolumeClassifier,\r\n quantizePositions: true,\r\n });\r\n\r\n const mesh = new GltfMeshData(meshPrimitive);\r\n\r\n // ###TODO_GLTF: There can be more than one color attribute; COLOR_0 might not be the one we want.\r\n if (!this.readColors(mesh, primitive.attributes, \"COLOR_0\")) {\r\n // We don't have real colormap - just load material color. This will be used if non-Bentley\r\n // tile or fit the color table is uniform. For a non-Bentley, non-Uniform, we'll set the\r\n // uv parameters to pick the colors out of the color map texture.\r\n meshPrimitive.colorMap.insert(displayParams.fillColor.tbgr); // White...\r\n // _COLORINDEX is an ancient holdover from glTF 1.0 and Bimium...unlikely to actually encounter it in the wild.\r\n const colorIndices = this.readBufferData16(primitive.attributes, \"_COLORINDEX\");\r\n if (undefined !== colorIndices && material) {\r\n let texStep;\r\n if (isGltf1Material(material))\r\n texStep = material.values?.texStep;\r\n else\r\n texStep = material.extensions?.KHR_techniques_webgl?.values?.u_texStep;\r\n\r\n if (texStep) {\r\n const uvParams = [];\r\n for (let i = 0; i < colorIndices.count; i++)\r\n uvParams.push(new Point2d(texStep[1] + texStep[0] * colorIndices.buffer[i], .5));\r\n\r\n const paramList = QPoint2dList.fromPoints(uvParams);\r\n mesh.uvs = paramList.toTypedArray();\r\n mesh.uvQParams = paramList.params;\r\n }\r\n }\r\n }\r\n\r\n const draco = primitive.extensions?.KHR_draco_mesh_compression;\r\n if (draco)\r\n return this.readDracoMeshPrimitive(mesh.primitive, draco) ? mesh : undefined;\r\n\r\n this.readBatchTable(mesh.primitive, primitive);\r\n if (mesh.primitive.features) {\r\n const features = this.readPrimitiveFeatures(primitive);\r\n if (features) {\r\n if (features instanceof Feature)\r\n mesh.primitive.features.add(features, 1);\r\n else\r\n mesh.primitive.features.setIndices(features);\r\n }\r\n }\r\n\r\n if (!this.readVertices(mesh, primitive, pseudoRtcBias))\r\n return undefined;\r\n\r\n switch (primitiveType) {\r\n case MeshPrimitiveType.Mesh: {\r\n if (!this.readMeshIndices(mesh, primitive))\r\n return undefined;\r\n\r\n if (!displayParams.ignoreLighting && !this.readNormals(mesh, primitive.attributes, \"NORMAL\"))\r\n return undefined;\r\n\r\n if (!mesh.uvs) {\r\n let texCoordIndex = 0;\r\n if (!isGltf1Material(material) && undefined !== material.pbrMetallicRoughness?.baseColorTexture?.texCoord)\r\n texCoordIndex = JsonUtils.asInt(material.pbrMetallicRoughness.baseColorTexture.texCoord);\r\n\r\n this.readUVParams(mesh, primitive.attributes, `TEXCOORD_${texCoordIndex}`);\r\n }\r\n\r\n if (this._deduplicateVertices && !this.deduplicateVertices(mesh))\r\n return undefined;\r\n\r\n break;\r\n }\r\n\r\n case MeshPrimitiveType.Polyline:\r\n case MeshPrimitiveType.Point: {\r\n assert(meshMode === GltfMeshMode.Points || meshMode === GltfMeshMode.Lines || meshMode === GltfMeshMode.LineStrip);\r\n if (undefined !== mesh.primitive.polylines && !this.readPolylines(mesh.primitive.polylines, primitive, \"indices\", meshMode))\r\n return undefined;\r\n break;\r\n }\r\n default: {\r\n assert(false, \"unhandled primitive type\");\r\n return undefined;\r\n }\r\n }\r\n\r\n if (displayParams.textureMapping && !mesh.uvs)\r\n return undefined;\r\n\r\n if (primitive.extensions?.CESIUM_primitive_outline) {\r\n const data = this.readBufferData32(primitive.extensions.CESIUM_primitive_outline, \"indices\");\r\n if (data !== undefined) {\r\n assert(0 === data.count % 2);\r\n mesh.primitive.edges = new MeshEdges();\r\n for (let i = 0; i < data.count;)\r\n mesh.primitive.edges.visible.push(new MeshEdge(data.buffer[i++], data.buffer[i++]));\r\n }\r\n } else if (primitive.extensions?.EXT_mesh_primitive_edge_visibility) {\r\n const ext = primitive.extensions.EXT_mesh_primitive_edge_visibility;\r\n const visibility = this.readBufferData8(ext, \"visibility\");\r\n if (visibility) {\r\n const indices = mesh.indices;\r\n assert(indices !== undefined);\r\n assert(visibility.buffer instanceof Uint8Array);\r\n\r\n const silhouetteNormals = this.readBufferData16(ext, \"silhouetteNormals\");\r\n const normalPairs = silhouetteNormals ? new Uint32Array(silhouetteNormals.buffer.buffer, silhouetteNormals.buffer.byteOffset, silhouetteNormals.buffer.byteLength / 4) : undefined;\r\n mesh.primitive.edges = new MeshEdges();\r\n\r\n for (const edge of compactEdgeIterator(visibility.buffer, normalPairs, indices.length, (idx) => indices[idx])) {\r\n if (undefined === edge.normals) {\r\n mesh.primitive.edges.visible.push(new MeshEdge(edge.index0, edge.index1));\r\n } else {\r\n mesh.primitive.edges.silhouette.push(new MeshEdge(edge.index0, edge.index1));\r\n const normal0 = new OctEncodedNormal(edge.normals & 0x0000ffff);\r\n const normal1 = new OctEncodedNormal(edge.normals >>> 16);\r\n mesh.primitive.edges.silhouetteNormals.push(new OctEncodedNormalPair(normal0, normal1));\r\n }\r\n }\r\n }\r\n\r\n const lineStrings = ext.lineStrings;\r\n if (lineStrings) {\r\n for (const extLineString of lineStrings) {\r\n const polylineIndices = this.readBufferData32(extLineString, \"indices\");\r\n if (polylineIndices) {\r\n if (!mesh.primitive.edges) {\r\n mesh.primitive.edges = new MeshEdges();\r\n }\r\n\r\n const curGroup: MeshPolylineGroup = {\r\n appearance: this.getEdgeAppearance(extLineString.material),\r\n polylines: [],\r\n };\r\n \r\n const curLineString: number[] = [];\r\n for (const index of polylineIndices.buffer) {\r\n if (index === 0xffffffff) {\r\n if (curLineString.length > 1) {\r\n curGroup.polylines.push(new MeshPolyline(curLineString));\r\n }\r\n\r\n curLineString.length = 0;\r\n } else {\r\n curLineString.push(index);\r\n }\r\n }\r\n\r\n if (curLineString.length > 1) {\r\n curGroup.polylines.push(new MeshPolyline(curLineString));\r\n }\r\n\r\n if (curGroup.polylines.length > 0) {\r\n mesh.primitive.edges.polylineGroups.push(curGroup);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (mesh.primitive.edges) {\r\n mesh.primitive.edges.appearance = this.getEdgeAppearance(ext.material);\r\n }\r\n }\r\n\r\n return mesh;\r\n }\r\n\r\n private getEdgeAppearance(materialId: GltfId | undefined): EdgeAppearanceOverrides | undefined {\r\n const material = undefined !== materialId ? this._materials[materialId] : undefined;\r\n const displayParams = material ? this.createDisplayParams(material, false) : undefined;\r\n if (displayParams) {\r\n return { color: displayParams.lineColor };\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private readPointCloud2(primitive: GltfMeshPrimitive, hasFeatures: boolean): GltfPointCloud | undefined {\r\n let pointRange: Range3d | undefined;\r\n let positions: Uint8Array | Uint16Array | Float32Array;\r\n let qparams: QParams3d | undefined;\r\n\r\n const posView = this.getBufferView(primitive.attributes, \"POSITION\");\r\n switch (posView?.type) {\r\n case GltfDataType.Float: {\r\n const posData = posView.toBufferData(GltfDataType.Float);\r\n if (!(posData?.buffer instanceof Float32Array)) {\r\n return undefined;\r\n }\r\n\r\n positions = posData.buffer;\r\n const strideSkip = posView.stride - 3;\r\n pointRange = new Range3d();\r\n for (let i = 0; i < positions.length; i += strideSkip) {\r\n pointRange.extendXYZ(positions[i++], positions[i++], positions[i++]);\r\n }\r\n\r\n qparams = QParams3d.fromOriginAndScale(new Point3d(0, 0, 0), new Point3d(1, 1, 1));\r\n break;\r\n }\r\n case GltfDataType.UnsignedByte:\r\n case GltfDataType.UnsignedShort: {\r\n const posData = posView.toBufferData(posView.type);\r\n if (!(posData?.buffer instanceof Uint8Array || posData?.buffer instanceof Uint16Array)) {\r\n return undefined;\r\n }\r\n\r\n positions = posData.buffer;\r\n let min, max;\r\n const ext = posView.accessor.extensions?.WEB3D_quantized_attributes;\r\n if (ext) {\r\n min = ext.decodedMin;\r\n max = ext.decodedMax;\r\n } else {\r\n // Assume KHR_mesh_quantization...\r\n min = [0, 0, 0];\r\n if (GltfDataType.UnsignedShort === posView.type)\r\n max = [0xFFFF, 0xFFFF, 0xFFFF];\r\n else\r\n max = [0xFF, 0xFF, 0xFF];\r\n }\r\n\r\n if (undefined === min || undefined === max) {\r\n return undefined;\r\n }\r\n\r\n pointRange = Range3d.createXYZXYZ(min[0], min[1], min[2], max[0], max[1], max[2]);\r\n qparams = QParams3d.fromRange(pointRange);\r\n break;\r\n }\r\n default:\r\n return undefined;\r\n }\r\n\r\n const colorView = this.getBufferView(primitive.attributes, \"COLOR_0\");\r\n if (!colorView || GltfDataType.UnsignedByte !== colorView.type)\r\n return undefined;\r\n\r\n const colorData = colorView.toBufferData(GltfDataType.UnsignedByte);\r\n if (!(colorData?.buffer instanceof Uint8Array))\r\n return undefined;\r\n\r\n let colors = colorData.buffer;\r\n if (\"VEC4\" === colorView.accessor.type) {\r\n // ###TODO support transparent point clouds\r\n colors = new Uint8Array(colorData.count * 3);\r\n for (let i = 0; i < colorData.count; i++) {\r\n const srcIdx = colorView.stride * i;\r\n const dstIdx = 3 * i;\r\n for (let j = 0; j < 3; j++)\r\n colors[dstIdx + j] = colorData.buffer[srcIdx + j];\r\n }\r\n }\r\n\r\n const features = new FeatureIndex();\r\n if (hasFeatures) {\r\n features.type = FeatureIndexType.Uniform;\r\n }\r\n\r\n this._containsPointCloud = true;\r\n return {\r\n type: \"pointcloud\",\r\n positions,\r\n qparams,\r\n pointRange,\r\n colors,\r\n colorFormat: \"rgb\",\r\n features,\r\n // ###TODO: If tile does not use additive refinement, compute voxelSize based on point range.\r\n // Additive refinement is typical of the glTF point clouds we receive from Orbit.\r\n voxelSize: 0,\r\n };\r\n }\r\n\r\n private readDracoMeshPrimitive(mesh: Mesh, ext: DracoMeshCompression): boolean {\r\n const draco = this._dracoMeshes.get(ext);\r\n if (!draco || \"triangle-list\" !== draco.topology)\r\n return false;\r\n\r\n const indices = draco.indices?.value;\r\n if (!indices || (indices.length % 3) !== 0)\r\n return false;\r\n\r\n const pos = draco.attributes.POSITION?.value;\r\n if (!pos || (pos.length % 3) !== 0)\r\n return false;\r\n\r\n // ###TODO: I have yet to see a draco-encoded mesh with interleaved attributes. Currently not checking.\r\n const triangle = new Triangle();\r\n for (let i = 0; i < indices.length; i += 3) {\r\n triangle.setIndices(indices[i], indices[i + 1], indices[i + 2]);\r\n mesh.addTriangle(triangle);\r\n }\r\n\r\n let posRange: Range3d;\r\n const bbox = draco.header?.boundingBox;\r\n if (bbox) {\r\n posRange = Range3d.createXYZXYZ(bbox[0][0], bbox[0][1], bbox[0][2], bbox[1][0], bbox[1][1], bbox[1][2]);\r\n } else {\r\n posRange = Range3d.createNull();\r\n for (let i = 0; i < pos.length; i += 3)\r\n posRange.extendXYZ(pos[i], pos[i + 1], pos[i + 2]);\r\n }\r\n\r\n assert(mesh.points instanceof QPoint3dList);\r\n mesh.points.params.setFromRange(posRange);\r\n const pt = Point3d.createZero();\r\n for (let i = 0; i < pos.length; i += 3) {\r\n pt.set(pos[i], pos[i + 1], pos[i + 2]);\r\n mesh.points.add(pt);\r\n }\r\n\r\n const normals = draco.attributes.NORMAL?.value;\r\n if (normals && (normals.length % 3) === 0) {\r\n const vec = Vector3d.createZero();\r\n for (let i = 0; i < normals.length; i += 3) {\r\n vec.set(normals[i], normals[i + 1], normals[i + 2]);\r\n mesh.normals.push(OctEncodedNormal.fromVector(vec));\r\n }\r\n }\r\n\r\n const uvs = draco.attributes.TEXCOORD_0?.value;\r\n if (uvs && (uvs.length % 2) === 0)\r\n for (let i = 0; i < uvs.length; i += 2)\r\n mesh.uvParams.push(new Point2d(uvs[i], uvs[i + 1]));\r\n\r\n const batchIds = draco.attributes._BATCHID?.value;\r\n if (batchIds && mesh.features) {\r\n const featureIndices = [];\r\n for (const batchId of batchIds)\r\n featureIndices.push(batchId);\r\n\r\n mesh.features.setIndices(featureIndices);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private deduplicateVertices(mesh: GltfMeshData): boolean {\r\n if (!mesh.points || !mesh.indices)\r\n return false;\r\n\r\n const numPoints = mesh.indices.length;\r\n assert(0 === numPoints % 3);\r\n\r\n const indices = mesh.indices;\r\n if (indices instanceof Uint16Array && numPoints > 0xffff)\r\n mesh.indices = new Uint32Array(numPoints);\r\n else if (indices instanceof Uint8Array && numPoints > 0xff)\r\n mesh.indices = new Uint32Array(numPoints);\r\n\r\n const points = new Uint16Array(3 * numPoints);\r\n const normals = mesh.normals ? new Uint16Array(numPoints) : undefined;\r\n const uvs = mesh.uvs ? new Uint16Array(2 * numPoints) : undefined;\r\n\r\n for (let i = 0; i < numPoints; i++) {\r\n const index = indices[i];\r\n mesh.indices[i] = i;\r\n\r\n points[i * 3 + 0] = mesh.points[index * 3 + 0];\r\n points[i * 3 + 1] = mesh.points[index * 3 + 1];\r\n points[i * 3 + 2] = mesh.points[index * 3 + 2];\r\n\r\n if (normals)\r\n normals[i] = mesh.normals![index];\r\n\r\n if (uvs) {\r\n uvs[i * 2 + 0] = mesh.uvs![index * 2 + 0];\r\n uvs[i * 2 + 1] = mesh.uvs![index * 2 + 1];\r\n }\r\n }\r\n\r\n mesh.points = points;\r\n mesh.normals = normals;\r\n mesh.uvs = uvs;\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n *\r\n * @param positions quantized points\r\n * @param primitive input json\r\n * @param pseudoRtcBias a bias applied to each point - this is a workaround for tiles generated by\r\n * context capture which have a large offset from the tileset origin that exceeds the\r\n * capacity of 32 bit integers. This is essentially an ad hoc RTC applied at read time.\r\n */\r\n private readVertices(mesh: GltfMeshData, primitive: GltfMeshPrimitive, pseudoRtcBias?: Vector3d): boolean {\r\n const view = this.getBufferView(primitive.attributes, \"POSITION\");\r\n if (undefined === view)\r\n return false;\r\n\r\n if (GltfDataType.Float === view.type) {\r\n const buffer = view.toBufferData(GltfDataType.Float);\r\n if (undefined === buffer)\r\n return false;\r\n\r\n const strideSkip = view.stride - 3;\r\n mesh.pointRange = Range3d.createNull();\r\n for (let i = 0; i < buffer.buffer.length; i += strideSkip)\r\n mesh.pointRange.extendXYZ(buffer.buffer[i++], buffer.buffer[i++], buffer.buffer[i++]);\r\n\r\n const positions = new QPoint3dList(QParams3d.fromRange(mesh.pointRange));\r\n const scratchPoint = new Point3d();\r\n for (let i = 0, j = 0; i < buffer.count; i++, j += strideSkip) {\r\n scratchPoint.set(buffer.buffer[j++], buffer.buffer[j++], buffer.buffer[j++]);\r\n if (undefined !== pseudoRtcBias)\r\n scratchPoint.subtractInPlace(pseudoRtcBias);\r\n\r\n positions.add(scratchPoint);\r\n }\r\n mesh.pointQParams = positions.params;\r\n mesh.points = positions.toTypedArray();\r\n } else {\r\n if (GltfDataType.UnsignedShort !== view.type)\r\n return false;\r\n\r\n let rangeMin, rangeMax;\r\n const quantized = view.accessor.extensions?.WEB3D_quantized_attributes;\r\n if (quantized) {\r\n rangeMin = quantized.decodedMin;\r\n rangeMax = quantized.decodedMax;\r\n } else {\r\n // Assume KHR_mesh_quantization...\r\n rangeMin = [0, 0, 0];\r\n rangeMax = [0xFFFF, 0xFFFF, 0xFFFF];\r\n }\r\n\r\n if (undefined === rangeMin || undefined === rangeMax) // required by spec...\r\n return false;\r\n\r\n // ###TODO apply WEB3D_quantized_attributes.decodeMatrix? Have not encountered in the wild; glTF 1.0 only.\r\n const buffer = view.toBufferData(GltfDataType.UnsignedShort);\r\n if (undefined === buffer || !(buffer.buffer instanceof Uint16Array))\r\n return false;\r\n\r\n assert(buffer.buffer instanceof Uint16Array);\r\n mesh.pointRange = Range3d.createXYZXYZ(rangeMin[0], rangeMin[1], rangeMin[2], rangeMax[0], rangeMax[1], rangeMax[2]);\r\n if (undefined !== pseudoRtcBias) {\r\n mesh.pointRange.low.subtractInPlace(pseudoRtcBias);\r\n mesh.pointRange.high.subtractInPlace(pseudoRtcBias);\r\n }\r\n mesh.pointQParams = QParams3d.fromRange(mesh.pointRange);\r\n if (3 === view.stride) {\r\n mesh.points = buffer.buffer;\r\n } else {\r\n mesh.points = new Uint16Array(3 * view.count);\r\n for (let i = 0, j = 0; i < view.count; i++) {\r\n const index = i * view.stride;\r\n mesh.points[j++] = buffer.buffer[index];\r\n mesh.points[j++] = buffer.buffer[index + 1];\r\n mesh.points[j++] = buffer.buffer[index + 2];\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n protected readIndices(json: { [k: string]: any }, accessorName: string): number[] | undefined {\r\n const data = this.readBufferData32(json, accessorName);\r\n if (undefined === data)\r\n return undefined;\r\n\r\n const indices = [];\r\n for (let i = 0; i < data.count; i++)\r\n indices.push(data.buffer[i]);\r\n\r\n return indices;\r\n }\r\n\r\n protected readBatchTable(_mesh: Mesh, _json: GltfMeshPrimitive) {\r\n }\r\n\r\n protected readPrimitiveFeatures(primitive: GltfMeshPrimitive): Feature | number[] | undefined {\r\n const ext = primitive.extensions?.EXT_mesh_features;\r\n if (!ext || !primitive.attributes || !this._structuralMetadata || !this._idMap) {\r\n return undefined;\r\n }\r\n\r\n let vertexCount = 0;\r\n const featureIdBuffers = new Map<number, {buffer: GltfDataBuffer, stride: number}>();\r\n for(const featureIdDesc of ext.featureIds){\r\n if(featureIdDesc.attribute === undefined){\r\n continue;\r\n }\r\n const bufferView = this.getBufferView(primitive.attributes, `_FEATURE_ID_${featureIdDesc.attribute}`);\r\n const bufferData = bufferView?.toBufferData(bufferView.type);\r\n const buffer = bufferData?.buffer;\r\n if (!bufferView || !buffer) {\r\n return undefined;\r\n }\r\n vertexCount = bufferData.count ?? 0;\r\n featureIdBuffers.set(featureIdDesc.attribute, {buffer, stride: bufferView.stride});\r\n }\r\n\r\n const itwinFeatureIndices: number[] = [];\r\n const vertexPropsMap = new Map<string, string>();\r\n for (let vertexId = 0; vertexId < vertexCount; vertexId++) {\r\n let vertexUniqueId = \"\";\r\n for(const featureIdDesc of ext.featureIds){\r\n if (featureIdDesc.attribute === undefined) {\r\n continue;\r\n }\r\n const {buffer, stride} = featureIdBuffers.get(featureIdDesc.attribute)!;\r\n const featureId = buffer[vertexId * stride];\r\n const propertyTableId = featureIdDesc.propertyTable ?? 0;\r\n vertexUniqueId = `${vertexUniqueId}-${featureId}-${propertyTableId}`;\r\n }\r\n\r\n let vertexElementId;\r\n if(!vertexPropsMap.has(vertexUniqueId)){\r\n const vertexProps: any = {};\r\n\r\n for(const featureIdDesc of ext.featureIds){\r\n if (featureIdDesc.attribute === undefined) {\r\n continue;\r\n }\r\n const {buffer, stride} = featureIdBuffers.get(featureIdDesc.attribute)!;\r\n const featureId = buffer[vertexId * stride];\r\n\r\n const table = this._structuralMetadata.tables[featureIdDesc.propertyTable ?? 0];\r\n vertexProps[table.name] = {};\r\n for(const entries of table.entries){\r\n if(entries.values[featureId] !== undefined){\r\n vertexProps[table.name][entries.name] = entries.values[featureId];\r\n }\r\n }\r\n }\r\n\r\n vertexElementId = this._idMap.getBatchId(vertexProps);\r\n vertexPropsMap.set(vertexUniqueId, vertexElementId);\r\n\r\n // If the element id is already assigned to a previous vertex,\r\n // reuse the previous feature id to avoid collision in the feature table\r\n if(!this._meshElementIdToFeatureIndex.has(vertexElementId)){\r\n this._meshElementIdToFeatureIndex.set(vertexElementId, this._meshFeatures.length);\r\n this._meshFeatures.push(new Feature(vertexElementId));\r\n }\r\n }\r\n\r\n vertexElementId = vertexPropsMap.get(vertexUniqueId) ?? \"\";\r\n itwinFeatureIndices.push(this._meshElementIdToFeatureIndex.get(vertexElementId) ?? 0);\r\n }\r\n\r\n return itwinFeatureIndices;\r\n }\r\n\r\n protected readMeshIndices(mesh: GltfMeshData, json: { [k: string]: any }): boolean {\r\n if (undefined !== json.indices) {\r\n const data = this.readBufferData16(json, \"indices\") || this.readBufferData32(json, \"indices\");\r\n if (data && (data.buffer instanceof Uint8Array || data.buffer instanceof Uint16Array || data.buffer instanceof Uint32Array)) {\r\n mesh.indices = data.buffer;\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n // Non-indexed geometry. Manufacture triangle indices from points.\r\n const numPoints = mesh.points?.length;\r\n if (undefined === numPoints || 0 !== numPoints % 3)\r\n return false;\r\n\r\n mesh.indices = numPoints < 255 ? new Uint8Array(numPoints) : (numPoints < 0xffff ? new Uint16Array(numPoints) : new Uint32Array(numPoints));\r\n for (let i = 0; i < numPoints; i++)\r\n mesh.indices[i] = i;\r\n\r\n return true;\r\n }\r\n\r\n protected readNormals(mesh: GltfMeshData, json: { [k: string]: any }, accessorName: string): boolean {\r\n const view = this.getBufferView(json, accessorName);\r\n if (undefined === view)\r\n return false;\r\n\r\n switch (view.type) {\r\n case GltfDataType.Float: {\r\n const data = view.toBufferData(GltfDataType.Float);\r\n if (undefined === data)\r\n return false;\r\n\r\n mesh.normals = new Uint16Array(data.count);\r\n const scratchNormal = new Vector3d();\r\n const strideSkip = view.stride - 3;\r\n for (let i = 0, j = 0; i < data.count; i++, j += strideSkip) {\r\n scratchNormal.set(data.buffer[j++], data.buffer[j++], data.buffer[j++]);\r\n mesh.normals[i] = OctEncodedNormal.encode(scratchNormal);\r\n }\r\n return true;\r\n }\r\n\r\n case GltfDataType.UnsignedByte: {\r\n const data = view.toBufferData(GltfDataType.UnsignedByte);\r\n if (undefined === data)\r\n return false;\r\n\r\n // ###TODO: we shouldn't have to allocate OctEncodedNormal objects...just use uint16s / numbers...\r\n mesh.normals = new Uint16Array(data.count);\r\n for (let i = 0; i < data.count; i++) {\r\n // ###TODO? not clear why ray writes these as pairs of uint8...\r\n const index = i * view.stride;\r\n const normal = data.buffer[index] | (data.buffer[index + 1] << 8);\r\n mesh.normals[i] = normal;\r\n }\r\n return true;\r\n }\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n protected readColors(mesh: GltfMeshData, attribute: { [k: string]: any }, accessorName: string): boolean {\r\n const view = this.getBufferView(attribute, accessorName);\r\n if (!view || (GltfDataType.Float !== view.type && GltfDataType.UnsignedByte !== view.type && GltfDataType.SignedByte !== view.type))\r\n return false;\r\n\r\n const data = view.toBufferData(view.type);\r\n if (!data)\r\n return false;\r\n\r\n const hasAlpha = \"VEC4\" === view.accessor.type;\r\n const factor = view.type === GltfDataType.Float ? 255 : 1;\r\n const rgbt = new Uint8Array(4);\r\n const color = new Uint32Array(rgbt.buffer);\r\n for (let i = 0; i < data.count; i++) {\r\n const index = view.stride * i;\r\n rgbt[0] = data.buffer[index] * factor;\r\n rgbt[1] = data.buffer[index + 1] * factor;\r\n rgbt[2] = data.buffer[index + 2] * factor;\r\n rgbt[3] = hasAlpha ? (255 - data.buffer[index + 3] * factor) : 0;\r\n mesh.primitive.colors.push(mesh.primitive.colorMap.insert(color[0]));\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private readUVParams(mesh: GltfMeshData, json: { [k: string]: any }, accessorName: string): boolean {\r\n const view = this.getBufferView(json, accessorName);\r\n\r\n if (view === undefined)\r\n return false;\r\n\r\n switch (view.type) {\r\n case GltfDataType.Float: {\r\n const data = this.readBufferDataFloat(json, accessorName);\r\n if (!data)\r\n return false;\r\n\r\n mesh.uvRange = Range2d.createNull();\r\n\r\n for (let i = 0; i < data.count; i++) {\r\n const index = view.stride * i; // 2 float per param...\r\n mesh.uvRange.extendXY(data.buffer[index], data.buffer[index + 1]);\r\n }\r\n mesh.uvQParams = QParams2d.fromRange(mesh.uvRange);\r\n mesh.uvs = new Uint16Array(data.count * 2);\r\n for (let i = 0, j = 0; i < data.count; i++) {\r\n const index = view.stride * i; // 2 float per param...\r\n mesh.uvs[j++] = Quantization.quantize(data.buffer[index], mesh.uvQParams.origin.x, mesh.uvQParams.scale.x);\r\n mesh.uvs[j++] = Quantization.quantize(data.buffer[index + 1], mesh.uvQParams.origin.y, mesh.uvQParams.scale.y);\r\n }\r\n return true;\r\n }\r\n\r\n case GltfDataType.UnsignedShort: {\r\n const quantized = view.accessor.extensions?.WEB3D_quantized_attributes;\r\n const rangeMin = quantized?.decodedMin;\r\n const rangeMax = quantized?.decodedMax;\r\n if (undefined === rangeMin || undefined === rangeMax)\r\n return false;\r\n\r\n const qData = view.toBufferData(GltfDataType.UnsignedShort);\r\n if (undefined === qData || !(qData.buffer instanceof Uint16Array))\r\n return false;\r\n\r\n mesh.uvRange = Range2d.createXYXY(rangeMin[0], rangeMin[1], rangeMax[0], rangeMax[1]);\r\n mesh.uvQParams = QParams2d.fromRange(mesh.uvRange);\r\n if (2 === view.stride) {\r\n mesh.uvs = qData.buffer;\r\n } else {\r\n mesh.uvs = new Uint16Array(2 * view.count);\r\n for (let i = 0, j = 0; i < view.count; i++) {\r\n const index = i * view.stride;\r\n mesh.uvs[j++] = qData.buffer[index];\r\n mesh.uvs[j++] = qData.buffer[index + 1];\r\n }\r\n }\r\n return true;\r\n }\r\n default:\r\n assert(false);\r\n return false;\r\n\r\n }\r\n\r\n return true;\r\n }\r\n\r\n protected readPolylines(polylines: MeshPolylineList, json: { [k: string]: any }, accessorName: string, mode: GltfMeshMode.Points | GltfMeshMode.Lines | GltfMeshMode.LineStrip): boolean {\r\n const bufferView = this.getBufferView(json, accessorName);\r\n const data = bufferView?.toBufferData(GltfDataType.UInt32);\r\n if (undefined === data)\r\n return false;\r\n\r\n const indices = new Array<number>();\r\n switch (mode) {\r\n case GltfMeshMode.Points: {\r\n for (let i = 0; i < data.count;)\r\n indices.push(data.buffer[i++]);\r\n\r\n break;\r\n }\r\n case GltfMeshMode.Lines: {\r\n for (let i = 0; i < data.count;) {\r\n const index0 = data.buffer[i++];\r\n const index1 = data.buffer[i++];\r\n if (0 === indices.length || index0 !== indices[indices.length - 1]) {\r\n if (indices.length !== 0) {\r\n polylines.push(new MeshPolyline(indices));\r\n indices.length = 0;\r\n }\r\n indices.push(index0);\r\n }\r\n indices.push(index1);\r\n }\r\n\r\n break;\r\n }\r\n case GltfMeshMode.LineStrip: {\r\n assert(undefined !== bufferView); // compiler can't seem to infer this...\r\n const restart = GltfDataType.UnsignedByte === bufferView.type ? 0xff : (GltfDataType.UnsignedShort === bufferView.type ? 0xffff : 0xffffffff);\r\n for (const index of data.buffer) {\r\n if (index === restart) {\r\n if (indices.length > 1) {\r\n polylines.push(new MeshPolyline(indices));\r\n }\r\n\r\n indices.length = 0;\r\n } else {\r\n indices.push(index);\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n\r\n if (indices.length !== 0)\r\n polylines.push(new MeshPolyline(indices));\r\n\r\n return true;\r\n }\r\n\r\n protected async resolveResources(): Promise<void> {\r\n // Load any external images and buffers.\r\n await this._resolveResources();\r\n\r\n // Decompress any meshopt-compressed buffer views\r\n const decodeMeshoptBuffers: Array<Promise<void>> = [];\r\n for (const bv of gltfDictionaryIterator(this._bufferViews)) {\r\n const ext = bv.extensions?.EXT_meshopt_compression;\r\n if (ext) {\r\n const bufferData = this._buffers[ext.buffer]?.resolvedBuffer;\r\n if (bufferData) {\r\n const source = new Uint8Array(bufferData.buffer, bufferData.byteOffset + (ext.byteOffset ?? 0), ext.byteLength ?? 0);\r\n const decode = async () => {\r\n bv.resolvedBuffer = await decodeMeshoptBuffer(source, ext);\r\n if (bv.resolvedBuffer) {\r\n bv.byteLength = bv.resolvedBuffer.byteLength;\r\n bv.byteOffset = 0;\r\n }\r\n };\r\n\r\n decodeMeshoptBuffers.push(decode());\r\n }\r\n }\r\n }\r\n\r\n await Promise.all(decodeMeshoptBuffers);\r\n\r\n // If any meshes are draco-compressed, dynamically load the decoder module and then decode the meshes.\r\n const dracoMeshes: DracoMeshCompression[] = [];\r\n\r\n for (const node of this.traverseScene()) {\r\n for (const meshId of getGltfNodeMeshIds(node)) {\r\n const mesh = this._meshes[meshId];\r\n if (mesh?.primitives)\r\n for (const primitive of mesh.primitives)\r\n if (primitive.extensions?.KHR_draco_mesh_compression)\r\n dracoMeshes.push(primitive.extensions.KHR_draco_mesh_compression);\r\n }\r\n }\r\n\r\n if (dracoMeshes.length === 0)\r\n return;\r\n\r\n try {\r\n const dracoLoader = (await import(\"@loaders.gl/draco\")).DracoLoader;\r\n await Promise.all(dracoMeshes.map(async (x) => this.decodeDracoMesh(x, dracoLoader)));\r\n } catch (err) {\r\n Logger.logWarning(FrontendLoggerCategory.Render, \"Failed to decode draco-encoded glTF mesh\");\r\n Logger.logException(FrontendLoggerCategory.Render, err);\r\n }\r\n }\r\n\r\n private async _resolveResources(): Promise<void> {\r\n // ###TODO traverse the scene nodes to find resources referenced by them, instead of resolving everything - some resources may not\r\n // be required for the scene.\r\n const promises: Array<Promise<void>> = [];\r\n try {\r\n for (const buffer of gltfDictionaryIterator(this._buffers))\r\n if (!buffer.resolvedBuffer)\r\n promises.push(this.resolveBuffer(buffer));\r\n\r\n await Promise.all(promises);\r\n if (this._isCanceled)\r\n return;\r\n\r\n promises.length = 0;\r\n for (const image of gltfDictionaryIterator(this._images))\r\n if (!image.resolvedImage)\r\n promises.push(this.resolveImage(image));\r\n\r\n await Promise.all(promises);\r\n } catch { }\r\n }\r\n\r\n private async decodeDracoMesh(ext: DracoMeshCompression, loader: typeof DracoLoader): Promise<void> {\r\n const bv = this._bufferViews[ext.bufferView];\r\n if (!bv || !bv.byteLength)\r\n return;\r\n\r\n let buf = this._buffers[bv.buffer]?.resolvedBuffer;\r\n if (!buf)\r\n return;\r\n\r\n const offset = bv.byteOffset ?? 0;\r\n buf = buf.subarray(offset, offset + bv.byteLength);\r\n const mesh = await loader.parse(buf, { }); // NB: `options` argument declared optional but will produce exception if not supplied.\r\n if (mesh)\r\n this._dracoMeshes.set(ext, mesh);\r\n }\r\n\r\n protected resolveUrl(uri: string): string | undefined {\r\n try {\r\n const resolved = new URL(uri, this._baseUrl);\r\n resolved.search = this._baseUrl?.search ?? \"\";\r\n return resolved.toString();\r\n } catch {\r\n return undefined;\r\n }\r\n }\r\n\r\n private async resolveBuffer(buffer: GltfBuffer & { resolvedBuffer?: Uint8Array }): Promise<void> {\r\n if (buffer.resolvedBuffer || undefined === buffer.uri)\r\n return;\r\n\r\n try {\r\n const url = this.resolveUrl(buffer.uri);\r\n const response = url ? await fetch(url) : undefined;\r\n if (this._isCanceled)\r\n return;\r\n\r\n const data = await response?.arrayBuffer();\r\n if (this._isCanceled)\r\n return;\r\n\r\n if (data)\r\n buffer.resolvedBuffer = new Uint8Array(data);\r\n } catch {\r\n //\r\n }\r\n }\r\n\r\n private async resolveImage(image: GltfImage & { resolvedImage?: TextureImageSource }): Promise<void> {\r\n if (image.resolvedImage)\r\n return;\r\n\r\n interface BufferViewSource { bufferView?: GltfId, mimeType?: string }\r\n const bvSrc: BufferViewSource | undefined = undefined !== image.bufferView ? image : image.extensions?.KHR_binary_glTF;\r\n if (undefined !== bvSrc?.bufferView) {\r\n const format = undefined !== bvSrc.mimeType ? getImageSourceFormatForMimeType(bvSrc.mimeType) : undefined;\r\n const bufferView = this._bufferViews[bvSrc.bufferView];\r\n if (undefined === format || !bufferView || !bufferView.byteLength || bufferView.byteLength < 0)\r\n return;\r\n\r\n const bufferData = this._buffers[bufferView.buffer]?.resolvedBuffer;\r\n if (!bufferData)\r\n return;\r\n\r\n const offset = bufferView.byteOffset ?? 0;\r\n const bytes = bufferData.subarray(offset, offset + bufferView.byteLength);\r\n try {\r\n const imageSource = new ImageSource(bytes, format);\r\n if (this._system.supportsCreateImageBitmap)\r\n image.resolvedImage = await imageBitmapFromImageSource(imageSource);\r\n else\r\n image.resolvedImage = await imageElementFromImageSource(imageSource);\r\n } catch {\r\n //\r\n }\r\n\r\n return;\r\n }\r\n\r\n const url = undefined !== image.uri ? this.resolveUrl(image.uri) : undefined;\r\n if (undefined !== url)\r\n image.resolvedImage = await tryImageElementFromUrl(url);\r\n }\r\n\r\n /** The glTF spec says that if GltfSampler.wrapS/T are omitted, they default to Repeat.\r\n * However, the reality data service serves tiles that lack any wrapS/T property, and we want those clamped to edge, not repeated.\r\n * (We also don't want to produce mip-maps for them, which is determined indirectly from the wrap mode).\r\n * Allow the default to be optionally overridden.\r\n */\r\n public defaultWrapMode = GltfWrapMode.Repeat;\r\n\r\n /** Exposed strictly for testing. */\r\n public getTextureType(sampler?: GltfSampler): RenderTexture.Type {\r\n // ###TODO: RenderTexture currently does not support different wrapping behavior for U vs V, nor does it support mirrored repeat.\r\n let wrapS = sampler?.wrapS;\r\n let wrapT = sampler?.wrapT;\r\n if (undefined === wrapS && undefined === wrapT)\r\n wrapS = wrapT = this.defaultWrapMode;\r\n\r\n if (GltfWrapMode.ClampToEdge === wrapS || GltfWrapMode.ClampToEdge === wrapT)\r\n return RenderTexture.Type.TileSection;\r\n\r\n return RenderTexture.Type.Normal;\r\n }\r\n\r\n private resolveTexture(textureId: string, isTransparent: boolean): RenderTexture | false {\r\n const texture = this._textures[textureId];\r\n if (!texture || undefined === texture.source)\r\n return false;\r\n\r\n const image = this._images[texture.source]?.resolvedImage;\r\n if (!image)\r\n return false;\r\n\r\n\r\n const samplerId = texture.sampler;\r\n const sampler = undefined !== samplerId ? this._samplers[samplerId] : undefined;\r\n const textureType = this.getTextureType(sampler);\r\n const renderTexture = this._system.createTexture({\r\n type: textureType,\r\n image: {\r\n source: image,\r\n transparency: isTransparent ? TextureTransparency.Mixed : TextureTransparency.Opaque,\r\n },\r\n });\r\n return renderTexture ?? false;\r\n }\r\n\r\n protected findTextureMapping(id: string | undefined, isTransparent: boolean, normalMapId: string | undefined): TextureMapping | undefined {\r\n if (undefined === id && undefined === normalMapId)\r\n return undefined;\r\n\r\n let texture;\r\n if (undefined !== id) {\r\n texture = this._resolvedTextures.get({ id, isTransparent });\r\n if (undefined === texture)\r\n this._resolvedTextures.set({ id, isTransparent }, texture = this.resolveTexture(id, isTransparent));\r\n }\r\n\r\n let normalMap;\r\n if (undefined !== normalMapId) {\r\n normalMap = this._resolvedTextures.get({ id: normalMapId, isTransparent: false });\r\n if (undefined === normalMap)\r\n this._resolvedTextures.set({ id: normalMapId, isTransparent: false }, normalMap = this.resolveTexture(normalMapId, false));\r\n }\r\n\r\n let nMap;\r\n if (normalMap) {\r\n const greenUp = true;\r\n if (texture) {\r\n nMap = {\r\n normalMap,\r\n greenUp,\r\n };\r\n } else {\r\n texture = normalMap;\r\n nMap = { greenUp };\r\n }\r\n }\r\n\r\n if (!texture)\r\n return undefined;\r\n\r\n const textureMapping = new TextureMapping(texture, new TextureMapping.Params());\r\n textureMapping.normalMapParams = nMap;\r\n return textureMapping;\r\n }\r\n}\r\n\r\n/** Arguments supplied to [[readGltfGraphics]] to produce a [[RenderGraphic]] from a [glTF](https://www.khronos.org/gltf/) asset.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ReadGltfGraphicsArgs {\r\n /** A representation of the glTF data as one of:\r\n * - The binary data in glb format as a Uint8Array; or\r\n * - A JSON object conforming to the [glTF 2.0 specification](https://www.khronos.org/registry/glTF/specs/2.0/glTF-2.0.html); or\r\n * - A Uint8Array containing the utf8-encoded stringified JSON of an object conforming to the [glTF 2.0 specification](https://www.khronos.org/registry/glTF/specs/2.0/glTF-2.0.html).\r\n */\r\n gltf: Uint8Array | object;\r\n /** The iModel with which the graphics will be associated - typically obtained from the [[Viewport]] into which they will be drawn. */\r\n iModel: IModelConnection;\r\n /** Options for making the graphic [pickable]($docs/learning/frontend/ViewDecorations#pickable-view-graphic-decorations).\r\n * Only the [[PickableGraphicOptions.id]] property is required to make the graphics pickable. If a `modelId` is also supplied and differs from the `id`,\r\n * the graphics will also be selectable.\r\n */\r\n pickableOptions?: PickableGraphicOptions;\r\n /** The base URL for any relative URIs in the glTF. Typically, this is the same as the URL for the glTF asset itself.\r\n * If not supplied, relative URIs cannot be resolved. For glTF assets containing no relative URIs, this is not required.\r\n */\r\n baseUrl?: URL | string;\r\n /** @alpha */\r\n contentRange?: ElementAlignedBox3d;\r\n /** @alpha */\r\n transform?: Transform;\r\n /** @alpha */\r\n hasChildren?: boolean;\r\n /** @internal */\r\n idMap?: BatchedTileIdMap;\r\n}\r\n\r\n/** The output of [[readGltf]].\r\n * @public\r\n */\r\nexport interface GltfGraphic {\r\n /** The graphic created from the glTF model. */\r\n graphic: RenderGraphic;\r\n /** The bounding box of the model, in local coordinates (y-axis up). */\r\n localBoundingBox: ElementAlignedBox3d;\r\n /** The bounding box of the model, in world coordinates (z-axis up). */\r\n boundingBox: AxisAlignedBox3d;\r\n}\r\n\r\n/** The output of [[readGltfTemplate]].\r\n * @beta\r\n */\r\nexport interface GltfTemplate {\r\n /** The graphic template created from the glTF model. */\r\n template: GraphicTemplate;\r\n /** The bounding box of the model, in local coordinates (y-axis up). */\r\n localBoundingBox: ElementAlignedBox3d;\r\n /** The bounding box of the model, in world coordinates (z-axis up). */\r\n boundingBox: AxisAlignedBox3d;\r\n}\r\n\r\n/** Produce a [[RenderGraphic]] from a [glTF](https://www.khronos.org/gltf/) asset suitable for use in [view decorations]($docs/learning/frontend/ViewDecorations).\r\n * @returns a graphic produced from the glTF asset's default scene, or `undefined` if a graphic could not be produced from the asset.\r\n * @see [[readGltf]] for more details.\r\n * @public\r\n * @extensions\r\n */\r\nexport async function readGltfGraphics(args: ReadGltfGraphicsArgs): Promise<RenderGraphic | undefined> {\r\n const result = await readGltf(args);\r\n return result?.graphic;\r\n}\r\n\r\n/** Produce a [[GraphicTemplate]] from a [glTF](https://www.khronos.org/gltf/) asset suitable for use in [view decorations]($docs/learning/frontend/ViewDecorations).\r\n * @returns a template produced from the glTF asset's default scene, or `undefined` if a template could not be produced from the asset.\r\n * @see [[readGltf]] for more details.\r\n * @beta\r\n */\r\nexport async function readGltfTemplate(args: ReadGltfGraphicsArgs): Promise<GltfTemplate | undefined> {\r\n const baseUrl = typeof args.baseUrl === \"string\" ? new URL(args.baseUrl) : args.baseUrl;\r\n const props = GltfReaderProps.create(args.gltf, true, baseUrl); // glTF supports exactly one coordinate system with y axis up.\r\n const reader = props ? new GltfGraphicsReader(props, args) : undefined;\r\n if (!reader)\r\n return undefined;\r\n\r\n const result = await reader.readTemplate();\r\n if (!result.template)\r\n return undefined;\r\n\r\n return {\r\n template: result.template,\r\n localBoundingBox: result.contentRange ?? Range3d.createNull(),\r\n boundingBox: result.range ?? Range3d.createNull(),\r\n };\r\n}\r\n\r\n/** Produce a [[RenderGraphic]] from a [glTF](https://www.khronos.org/gltf/) asset suitable for use in [view decorations]($docs/learning/frontend/ViewDecorations).\r\n * @returns a graphic produced from the glTF asset's default scene, or `undefined` if a graphic could not be produced from the asset.\r\n * The returned graphic also includes the bounding boxes of the glTF model in world and local coordiantes.\r\n * @note Support for the full [glTF 2.0 specification](https://www.khronos.org/registry/glTF/specs/2.0/glTF-2.0.html) is currently a work in progress.\r\n * If a particular glTF asset fails to load and/or display properly, please\r\n * [submit an issue](https://github.com/iTwin/itwinjs-core/issues).\r\n * @see [Example decorator]($docs/learning/frontend/ViewDecorations#gltf-decorations) for an example of a decorator that reads and displays a glTF asset.\r\n * @see [[readGltfTemplate]] to produce a [[GraphicTemplate]] instead of a [[RenderGraphic]].\r\n * @public\r\n */\r\nexport async function readGltf(args: ReadGltfGraphicsArgs): Promise<GltfGraphic | undefined> {\r\n const result = await readGltfTemplate(args);\r\n if (!result) {\r\n return undefined;\r\n }\r\n\r\n const template = result.template;\r\n delete (result as Partial<GltfTemplate>).template;\r\n return {\r\n ...result,\r\n graphic: IModelApp.renderSystem.createGraphicFromTemplate({ template }),\r\n };\r\n}\r\n\r\n/** Implements [[readGltfGraphics]]. Exported strictly for tests.\r\n * @internal\r\n */\r\nexport class GltfGraphicsReader extends GltfReader {\r\n private readonly _featureTable?: FeatureTable;\r\n private readonly _contentRange?: ElementAlignedBox3d;\r\n private readonly _transform?: Transform;\r\n private readonly _isLeaf: boolean;\r\n public readonly binaryData?: Uint8Array; // strictly for tests\r\n public meshes?: GltfMeshData; // strictly for tests\r\n\r\n public constructor(props: GltfReaderProps, args: ReadGltfGraphicsArgs & { tileData?: LayerTileData }) {\r\n super({\r\n props,\r\n iModel: args.iModel,\r\n vertexTableRequired: true,\r\n idMap: args.idMap,\r\n tileData: args.tileData,\r\n });\r\n\r\n this._contentRange = args.contentRange;\r\n this._transform = args.transform;\r\n this._isLeaf = true !== args.hasChildren;\r\n\r\n this.binaryData = props.binaryData;\r\n const pickableId = args.pickableOptions?.id;\r\n if (pickableId) {\r\n this._featureTable = new FeatureTable(1, args.pickableOptions?.modelId ?? pickableId, BatchType.Primary);\r\n this._featureTable.insert(new Feature(pickableId));\r\n }\r\n }\r\n\r\n protected override get viewFlagOverrides(): ViewFlagOverrides {\r\n return {\r\n whiteOnWhiteReversal: false,\r\n renderMode: RenderMode.SmoothShade,\r\n };\r\n }\r\n\r\n public get meshElementIdToFeatureIndex(): Map<string, number> { // strictly for tests\r\n return this._meshElementIdToFeatureIndex;\r\n }\r\n\r\n protected override readMeshPrimitive(primitive: GltfMeshPrimitive, featureTable?: FeatureTable, pseudoRtcBias?: Vector3d): GltfPrimitiveData | undefined {\r\n const meshes = super.readMeshPrimitive(primitive, featureTable, pseudoRtcBias);\r\n this.meshes = meshes instanceof GltfMeshData ? meshes : undefined;\r\n return meshes;\r\n }\r\n\r\n private getGltfStructuralMetadataBuffer(id: GltfId, type: GltfStructuralMetadata.ClassPropertyComponentType){\r\n const bufferView = this._bufferViews[id];\r\n if (!bufferView || undefined === bufferView.buffer)\r\n return undefined;\r\n\r\n if(!bufferView.byteLength || bufferView.byteLength === 0){\r\n return undefined;\r\n }\r\n\r\n const bufferData = this._buffers[bufferView.buffer]?.resolvedBuffer;\r\n if (!bufferData)\r\n return undefined;\r\n\r\n assert(undefined !== bufferView.byteLength); // required by spec; TypeScript interface is wrong.\r\n const byteOffset = bufferView.byteOffset ?? 0;\r\n\r\n const subarray = bufferData.slice(byteOffset, byteOffset + bufferView.byteLength);\r\n switch(type){\r\n case \"INT8\":\r\n return new Int8Array(subarray.buffer, 0, bufferView.byteLength);\r\n case \"UINT8\":\r\n return new Uint8Array(subarray.buffer, 0, bufferView.byteLength);\r\n case \"INT16\":\r\n return new Int16Array(subarray.buffer, 0, bufferView.byteLength / 2);\r\n case \"UINT16\":\r\n return new Uint16Array(subarray.buffer, 0, bufferView.byteLength / 2);\r\n case \"INT32\":\r\n return new Int32Array(subarray.buffer, 0, bufferView.byteLength / 4);\r\n case \"UINT32\":\r\n return new Uint32Array(subarray.buffer, 0, bufferView.byteLength / 4);\r\n case \"INT64\":\r\n return new BigInt64Array(subarray.buffer, 0, bufferView.byteLength / 8);\r\n case \"UINT64\":\r\n return new BigUint64Array(subarray.buffer, 0, bufferView.byteLength / 8);\r\n case \"FLOAT32\":\r\n return new Float32Array(subarray.buffer, 0, bufferView.byteLength / 4);\r\n case \"FLOAT64\":\r\n return new Float64Array(subarray.buffer, 0, bufferView.byteLength / 8);\r\n }\r\n return undefined;\r\n }\r\n\r\n private getGltfStructuralMetadataPropertyValues(property: GltfStructuralMetadata.PropertyTableProperty, classProperty: GltfStructuralMetadata.ClassProperty, count: number){\r\n // Not supported for now\r\n if(classProperty.type === \"ENUM\" || classProperty.type === \"BOOLEAN\"){\r\n return undefined;\r\n }\r\n\r\n let getPropertyValue: any;\r\n\r\n if(classProperty.type === \"STRING\" && property.stringOffsets){\r\n\r\n const stringValues = this.getGltfStructuralMetadataBuffer(property.values, \"UINT8\") as Uint8Array;\r\n if(!stringValues){\r\n return undefined;\r\n }\r\n\r\n const stringOffsets = this.getGltfStructuralMetadataBuffer(property.stringOffsets, \"UINT32\") as Uint32Array;\r\n if(!stringOffsets){\r\n return undefined;\r\n }\r\n\r\n getPropertyValue = (index: number) => {\r\n const begin = stringOffsets[index];\r\n const end = stringOffsets[index+1];\r\n return utf8ToString(stringValues.subarray(begin, end));\r\n };\r\n } else {\r\n\r\n if(!classProperty.componentType){\r\n return undefined;\r\n }\r\n\r\n let numComponents = -1;\r\n switch(classProperty.type){\r\n case \"SCALAR\":\r\n numComponents = 1;\r\n break;\r\n case \"VEC2\":\r\n numComponents = 2;\r\n break;\r\n case \"VEC3\":\r\n numComponents = 3;\r\n break;\r\n case \"VEC4\":\r\n numComponents = 4;\r\n break;\r\n case \"MAT2\":\r\n numComponents = 4;\r\n break;\r\n case \"MAT3\":\r\n numComponents = 9;\r\n break;\r\n case \"MAT4\":\r\n numComponents = 16;\r\n break;\r\n }\r\n\r\n if(numComponents === -1){\r\n return undefined;\r\n }\r\n\r\n const values = this.getGltfStructuralMetadataBuffer(property.values, classProperty.componentType);\r\n if(!values){\r\n return undefined;\r\n }\r\n\r\n if(numComponents === 1){\r\n getPropertyValue = (index: number) => {\r\n return values[index];\r\n };\r\n } else {\r\n getPropertyValue = (index: number) => {\r\n const result = [];\r\n for(let i = 0; i < numComponents; i++){\r\n result.push(values[index * numComponents + i]);\r\n }\r\n return result;\r\n };\r\n }\r\n }\r\n\r\n const propertyValues: any[] = [];\r\n for(let i = 0; i < count; i++){\r\n const value = getPropertyValue(i);\r\n const propertyValue = (typeof value === \"bigint\" ) ? value.toString() : value;\r\n if(!classProperty.noData || propertyValue !== classProperty.noData){\r\n propertyValues.push(propertyValue);\r\n } else{\r\n propertyValues.push(undefined);\r\n }\r\n }\r\n\r\n return propertyValues;\r\n }\r\n\r\n private readGltfStructuralMetadata(){\r\n const propertyTables = this._glTF.extensions?.EXT_structural_metadata?.propertyTables;\r\n const schema = this._glTF.extensions?.EXT_structural_metadata?.schema;\r\n\r\n if(propertyTables && schema && schema.classes){\r\n\r\n this._structuralMetadata = { tables: [] };\r\n\r\n for(const propertyTable of propertyTables){\r\n if(!propertyTable.properties || !schema.classes){\r\n continue;\r\n }\r\n\r\n const propertyTableSchema = schema.classes[propertyTable.class];\r\n if(!propertyTableSchema || !propertyTableSchema.properties){\r\n continue;\r\n }\r\n\r\n const structuralMetadataTable: StructuralMetadataTable = {\r\n name: propertyTableSchema.name ?? propertyTable.class,\r\n entries: [],\r\n };\r\n\r\n for (const [propertyName, property] of Object.entries(propertyTable.properties)){\r\n\r\n const propertySchema = propertyTableSchema.properties[propertyName];\r\n\r\n if(!property || !propertySchema){\r\n continue;\r\n }\r\n\r\n const propertyValues = this.getGltfStructuralMetadataPropertyValues(property, propertySchema, propertyTable.count);\r\n\r\n if(!propertyValues){\r\n continue;\r\n }\r\n\r\n structuralMetadataTable.entries.push({\r\n name: propertySchema.name ?? propertyName,\r\n values: propertyValues,\r\n });\r\n }\r\n this._structuralMetadata.tables.push(structuralMetadataTable);\r\n }\r\n }\r\n }\r\n\r\n public async readTemplate(): Promise<GltfTemplateResult> {\r\n await this.resolveResources();\r\n this.readGltfStructuralMetadata();\r\n return this.readGltfAndCreateTemplate(this._isLeaf, this._featureTable, this._contentRange, true, this._transform);\r\n }\r\n\r\n public async read(): Promise<GltfReaderResult> {\r\n const result = await this.readTemplate();\r\n return templateToGraphicResult(result, this._system);\r\n }\r\n\r\n public get structuralMetadata(): StructuralMetadata | undefined { return this._structuralMetadata; }\r\n public get nodes(): GltfDictionary<GltfNode> { return this._nodes; }\r\n public get scenes(): GltfDictionary<GltfScene> { return this._glTF.scenes ?? emptyDict; }\r\n public get sceneNodes(): GltfId[] { return this._sceneNodes; }\r\n public get textures(): GltfDictionary<GltfTexture> { return this._textures; }\r\n}\r\n"]}
1
+ {"version":3,"file":"GltfReader.js","sourceRoot":"","sources":["../../../src/tile/GltfReader.ts"],"names":[],"mappings":"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"}