@itwin/core-frontend 5.1.2 → 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.
- package/CHANGELOG.md +6 -1
- package/lib/cjs/AccuDraw.js.map +1 -1
- package/lib/cjs/AccuSnap.js.map +1 -1
- package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
- package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -1
- package/lib/cjs/AuxCoordSys.js.map +1 -1
- package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
- package/lib/cjs/BingLocation.js.map +1 -1
- package/lib/cjs/BriefcaseConnection.js.map +1 -1
- package/lib/cjs/BriefcaseTxns.js.map +1 -1
- package/lib/cjs/CatalogConnection.js.map +1 -1
- package/lib/cjs/CategorySelectorState.js.map +1 -1
- package/lib/cjs/ChangeFlags.js.map +1 -1
- package/lib/cjs/CheckpointConnection.js.map +1 -1
- package/lib/cjs/ContextRealityModelState.js.map +1 -1
- package/lib/cjs/CoordSystem.js.map +1 -1
- package/lib/cjs/DecorationsCache.js.map +1 -1
- package/lib/cjs/DevTools.js.map +1 -1
- package/lib/cjs/DisplayStyleState.js.map +1 -1
- package/lib/cjs/DrawingViewState.js +5 -5
- package/lib/cjs/DrawingViewState.js.map +1 -1
- package/lib/cjs/ElementLocateManager.js.map +1 -1
- package/lib/cjs/EmphasizeElements.js.map +1 -1
- package/lib/cjs/EntityState.js.map +1 -1
- package/lib/cjs/EnvironmentDecorations.js.map +1 -1
- package/lib/cjs/FeatureOverrideProvider.js.map +1 -1
- package/lib/cjs/FlashSettings.js.map +1 -1
- package/lib/cjs/FrontendHubAccess.js.map +1 -1
- package/lib/cjs/Frustum2d.js.map +1 -1
- package/lib/cjs/FrustumAnimator.js.map +1 -1
- package/lib/cjs/FuzzySearch.js.map +1 -1
- package/lib/cjs/GeoServices.js.map +1 -1
- package/lib/cjs/GlobeAnimator.js.map +1 -1
- package/lib/cjs/GraphicalEditingScope.js.map +1 -1
- package/lib/cjs/HitDetail.js.map +1 -1
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.js +26 -26
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/IModelRoutingContext.js.map +1 -1
- package/lib/cjs/IModeljs-css.js +133 -133
- package/lib/cjs/IModeljs-css.js.map +1 -1
- package/lib/cjs/IpcApp.js.map +1 -1
- package/lib/cjs/LinePlaneIntersect.js.map +1 -1
- package/lib/cjs/LocalhostIpcApp.js.map +1 -1
- package/lib/cjs/MarginPercent.js.map +1 -1
- package/lib/cjs/Marker.js.map +1 -1
- package/lib/cjs/ModelSelectorState.js.map +1 -1
- package/lib/cjs/ModelState.js.map +1 -1
- package/lib/cjs/NativeApp.js.map +1 -1
- package/lib/cjs/NativeAppLogger.js.map +1 -1
- package/lib/cjs/NoRenderApp.js.map +1 -1
- package/lib/cjs/NotificationManager.js.map +1 -1
- package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
- package/lib/cjs/PlanarClipMaskState.js.map +1 -1
- package/lib/cjs/RealityDataSource.js.map +1 -1
- package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
- package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -1
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
- package/lib/cjs/SelectionSet.js.map +1 -1
- package/lib/cjs/SheetViewState.js.map +1 -1
- package/lib/cjs/SpatialClassifiersState.js.map +1 -1
- package/lib/cjs/SpatialViewState.js.map +1 -1
- package/lib/cjs/Sprites.js.map +1 -1
- package/lib/cjs/StandardView.js.map +1 -1
- package/lib/cjs/SubCategoriesCache.js.map +1 -1
- package/lib/cjs/TentativePoint.js.map +1 -1
- package/lib/cjs/Tiles.js.map +1 -1
- package/lib/cjs/TxnEntityChanges.js.map +1 -1
- package/lib/cjs/UserPreferences.js.map +1 -1
- package/lib/cjs/ViewAnimation.js.map +1 -1
- package/lib/cjs/ViewContext.js.map +1 -1
- package/lib/cjs/ViewCreator2d.js.map +1 -1
- package/lib/cjs/ViewCreator3d.js.map +1 -1
- package/lib/cjs/ViewGlobalLocation.js.map +1 -1
- package/lib/cjs/ViewManager.js.map +1 -1
- package/lib/cjs/ViewPose.js.map +1 -1
- package/lib/cjs/ViewState.js.map +1 -1
- package/lib/cjs/ViewStatus.js.map +1 -1
- package/lib/cjs/ViewingSpace.js.map +1 -1
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/ViewportSync.js.map +1 -1
- package/lib/cjs/common/FrontendLoggerCategory.js.map +1 -1
- package/lib/cjs/common/ImageUtil.js.map +1 -1
- package/lib/cjs/common/ViewRect.js.map +1 -1
- package/lib/cjs/common/WorkerProxy.js.map +1 -1
- package/lib/cjs/common/gltf/GltfModel.js.map +1 -1
- package/lib/cjs/common/gltf/GltfParser.js.map +1 -1
- package/lib/cjs/common/gltf/GltfSchema.js.map +1 -1
- package/lib/cjs/common/imdl/CompactEdges.js.map +1 -1
- package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
- package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -1
- package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
- package/lib/cjs/common/internal/Symbols.js.map +1 -1
- package/lib/cjs/common/internal/render/AnimationNodeId.js.map +1 -1
- package/lib/cjs/common/internal/render/AuxChannelTable.js.map +1 -1
- package/lib/cjs/common/internal/render/ColorMap.js.map +1 -1
- package/lib/cjs/common/internal/render/DisplayParams.js.map +1 -1
- package/lib/cjs/common/internal/render/EdgeParams.js.map +1 -1
- package/lib/cjs/common/internal/render/GeometryAccumulator.js.map +1 -1
- package/lib/cjs/common/internal/render/GeometryList.js.map +1 -1
- package/lib/cjs/common/internal/render/GeometryPrimitives.js.map +1 -1
- package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -1
- package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -1
- package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -1
- package/lib/cjs/common/internal/render/LineCode.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshBuilder.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshBuilderMap.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshParams.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshPrimitive.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -1
- package/lib/cjs/common/internal/render/OvrFlags.js.map +1 -1
- package/lib/cjs/common/internal/render/PointCloudPrimitive.js.map +1 -1
- package/lib/cjs/common/internal/render/PointStringParams.js.map +1 -1
- package/lib/cjs/common/internal/render/Polyface.js.map +1 -1
- package/lib/cjs/common/internal/render/PolylineParams.js.map +1 -1
- package/lib/cjs/common/internal/render/Primitives.js.map +1 -1
- package/lib/cjs/common/internal/render/Strokes.js.map +1 -1
- package/lib/cjs/common/internal/render/SurfaceParams.js.map +1 -1
- package/lib/cjs/common/internal/render/VertexIndices.js.map +1 -1
- package/lib/cjs/common/internal/render/VertexKey.js.map +1 -1
- package/lib/cjs/common/internal/render/VertexTable.js.map +1 -1
- package/lib/cjs/common/internal/render/VertexTableBuilder.js.map +1 -1
- package/lib/cjs/common/internal/render/VertexTableSplitter.js.map +1 -1
- package/lib/cjs/common/render/BatchOptions.js.map +1 -1
- package/lib/cjs/common/render/GraphicAssembler.js.map +1 -1
- package/lib/cjs/common/render/GraphicDescriptionBuilder.js.map +1 -1
- package/lib/cjs/common/render/GraphicDescriptionContext.js.map +1 -1
- package/lib/cjs/common/render/GraphicPrimitive.js.map +1 -1
- package/lib/cjs/common/render/GraphicType.js.map +1 -1
- package/lib/cjs/common/render/InstancedGraphicParams.js.map +1 -1
- package/lib/cjs/common/render/MaterialParams.js.map +1 -1
- package/lib/cjs/common/render/RenderInstancesParams.js.map +1 -1
- package/lib/cjs/common/render/TextureParams.js.map +1 -1
- package/lib/cjs/common.js.map +1 -1
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/extension/Extension.js.map +1 -1
- package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
- package/lib/cjs/extension/ExtensionHost.js.map +1 -1
- package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
- package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
- package/lib/cjs/extension/providers/LocalExtensionProvider.js.map +1 -1
- package/lib/cjs/extension/providers/RemoteExtensionProvider.js.map +1 -1
- package/lib/cjs/internal/GoogleMapsDecorator.js.map +1 -1
- package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -1
- package/lib/cjs/internal/ScriptUtils.js.map +1 -1
- package/lib/cjs/internal/cross-package.js.map +1 -1
- package/lib/cjs/internal/render/AnimationBranchState.js.map +1 -1
- package/lib/cjs/internal/render/FrameStatsCollector.js.map +1 -1
- package/lib/cjs/internal/render/GraphicBranchFrustum.js.map +1 -1
- package/lib/cjs/internal/render/GraphicTemplateImpl.js.map +1 -1
- package/lib/cjs/internal/render/MeshMapLayerGraphicParams.js.map +1 -1
- package/lib/cjs/internal/render/MockRender.js.map +1 -1
- package/lib/cjs/internal/render/PrimitiveBuilder.js.map +1 -1
- package/lib/cjs/internal/render/QueryVisibileFeatures.js.map +1 -1
- package/lib/cjs/internal/render/RenderAreaPattern.js.map +1 -1
- package/lib/cjs/internal/render/RenderGeometry.js.map +1 -1
- package/lib/cjs/internal/render/RenderInstancesParamsImpl.js.map +1 -1
- package/lib/cjs/internal/render/RenderMaterialSource.js.map +1 -1
- package/lib/cjs/internal/render/RenderPlan.js.map +1 -1
- package/lib/cjs/internal/render/RenderPlanarClassifier.js.map +1 -1
- package/lib/cjs/internal/render/RenderSkyBoxParams.js.map +1 -1
- package/lib/cjs/internal/render/RenderSystemDebugControl.js.map +1 -1
- package/lib/cjs/internal/render/RenderTargetDebugControl.js.map +1 -1
- package/lib/cjs/internal/render/RenderTerrain.js.map +1 -1
- package/lib/cjs/internal/render/RenderTextureDrape.js.map +1 -1
- package/lib/cjs/internal/render/SceneVolumeClassifier.js.map +1 -1
- package/lib/cjs/internal/render/UpsampleRealityMeshParams.js.map +1 -1
- package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/AttributeBuffers.js.map +1 -1
- package/lib/cjs/internal/render/webgl/AttributeMap.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js +1 -1
- package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BatchState.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BatchUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BranchStack.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BranchState.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ClipStack.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ClipVolume.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ClippingProgram.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ColorInfo.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ContourUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Contours.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Diagnostics.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Disposable.js.map +1 -1
- package/lib/cjs/internal/render/webgl/DrawCommand.js.map +1 -1
- package/lib/cjs/internal/render/webgl/EDL.js.map +1 -1
- package/lib/cjs/internal/render/webgl/EdgeGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/EdgeSettings.js.map +1 -1
- package/lib/cjs/internal/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/cjs/internal/render/webgl/FloatRGBA.js.map +1 -1
- package/lib/cjs/internal/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/FrustumUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/GL.js.map +1 -1
- package/lib/cjs/internal/render/webgl/GLTimer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Graphic.js.map +1 -1
- package/lib/cjs/internal/render/webgl/HiliteUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/IModelFrameLifecycle.js.map +1 -1
- package/lib/cjs/internal/render/webgl/IndexedEdgeGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Layer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/LayerCommands.js.map +1 -1
- package/lib/cjs/internal/render/webgl/LightingUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/LineCode.js.map +1 -1
- package/lib/cjs/internal/render/webgl/MapLayerParams.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Material.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Matrix.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Mesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/MeshData.js.map +1 -1
- package/lib/cjs/internal/render/webgl/MeshGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PerformanceMetrics.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarClassifier.js +1 -1
- package/lib/cjs/internal/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarGrid.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PointCloud.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PointString.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Polyline.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Primitive.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RealityModelUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderBuffer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderCommands.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderFlags.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderState.js.map +1 -1
- package/lib/cjs/internal/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ScratchDrawParams.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ScreenSpaceEffect.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ShadowUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/cjs/internal/render/webgl/StyleUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Sync.js.map +1 -1
- package/lib/cjs/internal/render/webgl/System.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Target.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TargetGraphics.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TargetUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Technique.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TechniqueId.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Texture.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TextureDrape.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ThematicSensors.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ThematicUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/UniformHandle.js.map +1 -1
- package/lib/cjs/internal/render/webgl/VertexLUT.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ViewRectUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/VisibleTileFeatures.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/AmbientOcclusion.js +154 -154
- package/lib/cjs/internal/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Animation.js +83 -83
- package/lib/cjs/internal/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Atmosphere.js +266 -266
- package/lib/cjs/internal/render/webgl/glsl/Atmosphere.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Blur.js +37 -37
- package/lib/cjs/internal/render/webgl/glsl/Blur.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.js +5 -5
- package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ClearTranslucent.js +3 -3
- package/lib/cjs/internal/render/webgl/glsl/ClearTranslucent.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Clipping.js +96 -96
- package/lib/cjs/internal/render/webgl/glsl/Clipping.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Color.js +12 -12
- package/lib/cjs/internal/render/webgl/glsl/Color.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Combine3Textures.js +7 -7
- package/lib/cjs/internal/render/webgl/glsl/Combine3Textures.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CombineTextures.js +5 -5
- package/lib/cjs/internal/render/webgl/glsl/CombineTextures.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Common.js +16 -16
- package/lib/cjs/internal/render/webgl/glsl/Common.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Composite.js +71 -71
- package/lib/cjs/internal/render/webgl/glsl/Composite.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Contours.js +101 -101
- package/lib/cjs/internal/render/webgl/glsl/Contours.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CopyColor.js +6 -6
- package/lib/cjs/internal/render/webgl/glsl/CopyColor.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CopyPickBuffers.js +3 -3
- package/lib/cjs/internal/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CopyStencil.js +4 -4
- package/lib/cjs/internal/render/webgl/glsl/CopyStencil.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Decode.js +65 -65
- package/lib/cjs/internal/render/webgl/glsl/Decode.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/EDL.js +103 -103
- package/lib/cjs/internal/render/webgl/glsl/EDL.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/EVSMFromDepth.js +25 -25
- package/lib/cjs/internal/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Edge.js +146 -146
- package/lib/cjs/internal/render/webgl/glsl/Edge.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/FeatureSymbology.js +238 -238
- package/lib/cjs/internal/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Fragment.js +43 -43
- package/lib/cjs/internal/render/webgl/glsl/Fragment.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Instancing.js +21 -21
- package/lib/cjs/internal/render/webgl/glsl/Instancing.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Lighting.js +92 -92
- package/lib/cjs/internal/render/webgl/glsl/Lighting.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/LookupTable.js +19 -19
- package/lib/cjs/internal/render/webgl/glsl/LookupTable.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/MaplayerDraping.js +87 -87
- package/lib/cjs/internal/render/webgl/glsl/MaplayerDraping.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Monochrome.js +13 -13
- package/lib/cjs/internal/render/webgl/glsl/Monochrome.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/PlanarClassification.js +188 -188
- package/lib/cjs/internal/render/webgl/glsl/PlanarClassification.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/PlanarGrid.js +22 -22
- package/lib/cjs/internal/render/webgl/glsl/PlanarGrid.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/PointCloud.js +28 -28
- package/lib/cjs/internal/render/webgl/glsl/PointCloud.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/PointString.js +9 -9
- package/lib/cjs/internal/render/webgl/glsl/PointString.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Polyline.js +213 -213
- package/lib/cjs/internal/render/webgl/glsl/Polyline.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js +25 -25
- package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/RenderPass.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ScreenSpaceEffect.js +9 -9
- package/lib/cjs/internal/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/SkyBox.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/SkySphere.js +49 -49
- package/lib/cjs/internal/render/webgl/glsl/SkySphere.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/SolarShadowMapping.js +51 -51
- package/lib/cjs/internal/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Surface.js +235 -235
- package/lib/cjs/internal/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Thematic.js +136 -136
- package/lib/cjs/internal/render/webgl/glsl/Thematic.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Translucency.js +19 -19
- package/lib/cjs/internal/render/webgl/glsl/Translucency.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Vertex.js +73 -73
- package/lib/cjs/internal/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Viewport.js +38 -38
- package/lib/cjs/internal/render/webgl/glsl/Viewport.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ViewportQuad.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Wiremesh.js +10 -10
- package/lib/cjs/internal/render/webgl/glsl/Wiremesh.js.map +1 -1
- package/lib/cjs/internal/tile/B3dmReader.js.map +1 -1
- package/lib/cjs/internal/tile/BatchedTileIdMap.js.map +1 -1
- package/lib/cjs/internal/tile/CesiumAssetProvider.js.map +1 -1
- package/lib/cjs/internal/tile/ClassifierTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/ContextShareProvider.js.map +1 -1
- package/lib/cjs/internal/tile/DynamicIModelTile.js.map +1 -1
- package/lib/cjs/internal/tile/FetchCloudStorage.js.map +1 -1
- package/lib/cjs/internal/tile/GraphicsCollector.js.map +1 -1
- package/lib/cjs/internal/tile/I3dmReader.js.map +1 -1
- package/lib/cjs/internal/tile/IModelTile.js.map +1 -1
- package/lib/cjs/internal/tile/IModelTileRequestChannels.js.map +1 -1
- package/lib/cjs/internal/tile/IModelTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/ImdlDecoder.js.map +1 -1
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/cjs/internal/tile/ImdlParser.js.map +1 -1
- package/lib/cjs/internal/tile/LRUTileList.js.map +1 -1
- package/lib/cjs/internal/tile/LayerTileTreeHandler.js.map +1 -1
- package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
- package/lib/cjs/internal/tile/MeshoptCompression.js.map +1 -1
- package/lib/cjs/internal/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/cjs/internal/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/PntsReader.js.map +1 -1
- package/lib/cjs/internal/tile/PrimaryTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/RealityTileDrawArgs.js.map +1 -1
- package/lib/cjs/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -1
- package/lib/cjs/internal/tile/TileUserSet.js.map +1 -1
- package/lib/cjs/internal/tile/ViewFlagOverrides.js.map +1 -1
- package/lib/cjs/internal/tile/map/ArcGISTileMap.js.map +1 -1
- package/lib/cjs/internal/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/CoordinatesUtils.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/WebMercator.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/MapTileAvailability.js.map +1 -1
- package/lib/cjs/internal/tile/map/MapTileLoader.js.map +1 -1
- package/lib/cjs/internal/tile/map/UrlUtils.js.map +1 -1
- package/lib/cjs/internal/tile/map/WmsCapabilities.js.map +1 -1
- package/lib/cjs/internal/tile/map/WmsUtilities.js.map +1 -1
- package/lib/cjs/internal/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/cjs/internal/webgl.js.map +1 -1
- package/lib/cjs/properties/AngleDescription.js.map +1 -1
- package/lib/cjs/properties/FormattedQuantityDescription.js.map +1 -1
- package/lib/cjs/properties/LengthDescription.js.map +1 -1
- package/lib/cjs/public/scripts/checkbrowser.js +24 -24
- package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
- package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
- package/lib/cjs/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
- package/lib/cjs/quantity-formatting/UnitsData.js.map +1 -1
- package/lib/cjs/render/CanvasDecoration.js.map +1 -1
- package/lib/cjs/render/CreateRenderMaterialArgs.js.map +1 -1
- package/lib/cjs/render/CreateTextureArgs.js.map +1 -1
- package/lib/cjs/render/Decorations.js.map +1 -1
- package/lib/cjs/render/FeatureSymbology.js.map +1 -1
- package/lib/cjs/render/FrameStats.js.map +1 -1
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- package/lib/cjs/render/GraphicBuilder.js.map +1 -1
- package/lib/cjs/render/GraphicTemplate.js.map +1 -1
- package/lib/cjs/render/MeshArgs.js.map +1 -1
- package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/cjs/render/Pixel.js.map +1 -1
- package/lib/cjs/render/PolylineArgs.js.map +1 -1
- package/lib/cjs/render/RealityMeshParams.js.map +1 -1
- package/lib/cjs/render/RenderClipVolume.js.map +1 -1
- package/lib/cjs/render/RenderGraphic.js.map +1 -1
- package/lib/cjs/render/RenderMemory.js.map +1 -1
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/RenderTarget.js.map +1 -1
- package/lib/cjs/render/Scene.js.map +1 -1
- package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
- package/lib/cjs/render/VisibleFeature.js.map +1 -1
- package/lib/cjs/request/Request.js.map +1 -1
- package/lib/cjs/request/utils.js.map +1 -1
- package/lib/cjs/tile/DisclosedTileTreeSet.js.map +1 -1
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/ImdlReader.js.map +1 -1
- package/lib/cjs/tile/RealityTile.js.map +1 -1
- package/lib/cjs/tile/RealityTileTree.js.map +1 -1
- package/lib/cjs/tile/RenderGraphicTileTree.js.map +1 -1
- package/lib/cjs/tile/Tile.js.map +1 -1
- package/lib/cjs/tile/TileAdmin.js.map +1 -1
- package/lib/cjs/tile/TileContent.js.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
- package/lib/cjs/tile/TileGeometryCollector.js.map +1 -1
- package/lib/cjs/tile/TileParams.js.map +1 -1
- package/lib/cjs/tile/TileRequest.js.map +1 -1
- package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
- package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
- package/lib/cjs/tile/TileStorage.js.map +1 -1
- package/lib/cjs/tile/TileTree.js.map +1 -1
- package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
- package/lib/cjs/tile/TileTreeParams.js.map +1 -1
- package/lib/cjs/tile/TileTreeReference.js.map +1 -1
- package/lib/cjs/tile/TileTreeSupplier.js.map +1 -1
- package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
- package/lib/cjs/tile/TileUser.js.map +1 -1
- package/lib/cjs/tile/TiledGraphicsProvider.js.map +1 -1
- package/lib/cjs/tile/internal.js.map +1 -1
- package/lib/cjs/tile/map/BingElevation.js.map +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/EllipsoidTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
- package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
- package/lib/cjs/tile/map/MapTile.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
- package/lib/cjs/tile/map/QuadId.js.map +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
- package/lib/cjs/tile/map/TerrainProvider.js.map +1 -1
- package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
- package/lib/cjs/tools/AccuDrawViewportUI.js.map +1 -1
- package/lib/cjs/tools/ClipViewTool.js.map +1 -1
- package/lib/cjs/tools/EditManipulator.js.map +1 -1
- package/lib/cjs/tools/ElementSetTool.js.map +1 -1
- package/lib/cjs/tools/EventController.js.map +1 -1
- package/lib/cjs/tools/IdleTool.js.map +1 -1
- package/lib/cjs/tools/MeasureTool.js.map +1 -1
- package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
- package/lib/cjs/tools/SelectTool.js.map +1 -1
- package/lib/cjs/tools/Tool.js.map +1 -1
- package/lib/cjs/tools/ToolAdmin.js.map +1 -1
- package/lib/cjs/tools/ToolAssistance.js.map +1 -1
- package/lib/cjs/tools/ToolSettings.js.map +1 -1
- package/lib/cjs/tools/ViewTool.js.map +1 -1
- package/lib/cjs/workers/ImdlParser/Worker.js.map +1 -1
- package/lib/cjs/workers/ImdlParser/webpack.config.js +42 -42
- package/lib/cjs/workers/RegisterWorker.js.map +1 -1
- package/lib/esm/AccuDraw.js.map +1 -1
- package/lib/esm/AccuSnap.js.map +1 -1
- package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
- package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -1
- package/lib/esm/AuxCoordSys.js.map +1 -1
- package/lib/esm/BackgroundMapGeometry.js.map +1 -1
- package/lib/esm/BingLocation.js.map +1 -1
- package/lib/esm/BriefcaseConnection.js.map +1 -1
- package/lib/esm/BriefcaseTxns.js.map +1 -1
- package/lib/esm/CatalogConnection.js.map +1 -1
- package/lib/esm/CategorySelectorState.js.map +1 -1
- package/lib/esm/ChangeFlags.js.map +1 -1
- package/lib/esm/CheckpointConnection.js.map +1 -1
- package/lib/esm/ContextRealityModelState.js.map +1 -1
- package/lib/esm/CoordSystem.js.map +1 -1
- package/lib/esm/DecorationsCache.js.map +1 -1
- package/lib/esm/DevTools.js.map +1 -1
- package/lib/esm/DisplayStyleState.js.map +1 -1
- package/lib/esm/DrawingViewState.js +5 -5
- package/lib/esm/DrawingViewState.js.map +1 -1
- package/lib/esm/ElementLocateManager.js.map +1 -1
- package/lib/esm/EmphasizeElements.js.map +1 -1
- package/lib/esm/EntityState.js.map +1 -1
- package/lib/esm/EnvironmentDecorations.js.map +1 -1
- package/lib/esm/FeatureOverrideProvider.js.map +1 -1
- package/lib/esm/FlashSettings.js.map +1 -1
- package/lib/esm/FrontendHubAccess.js.map +1 -1
- package/lib/esm/Frustum2d.js.map +1 -1
- package/lib/esm/FrustumAnimator.js.map +1 -1
- package/lib/esm/FuzzySearch.js.map +1 -1
- package/lib/esm/GeoServices.js.map +1 -1
- package/lib/esm/GlobeAnimator.js.map +1 -1
- package/lib/esm/GraphicalEditingScope.js.map +1 -1
- package/lib/esm/HitDetail.js.map +1 -1
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.js +26 -26
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/IModelRoutingContext.js.map +1 -1
- package/lib/esm/IModeljs-css.js +133 -133
- package/lib/esm/IModeljs-css.js.map +1 -1
- package/lib/esm/IpcApp.js.map +1 -1
- package/lib/esm/LinePlaneIntersect.js.map +1 -1
- package/lib/esm/LocalhostIpcApp.js.map +1 -1
- package/lib/esm/MarginPercent.js.map +1 -1
- package/lib/esm/Marker.js.map +1 -1
- package/lib/esm/ModelSelectorState.js.map +1 -1
- package/lib/esm/ModelState.js.map +1 -1
- package/lib/esm/NativeApp.js.map +1 -1
- package/lib/esm/NativeAppLogger.js.map +1 -1
- package/lib/esm/NoRenderApp.js.map +1 -1
- package/lib/esm/NotificationManager.js.map +1 -1
- package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
- package/lib/esm/PlanarClipMaskState.js.map +1 -1
- package/lib/esm/RealityDataSource.js.map +1 -1
- package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
- package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -1
- package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
- package/lib/esm/SelectionSet.js.map +1 -1
- package/lib/esm/SheetViewState.js.map +1 -1
- package/lib/esm/SpatialClassifiersState.js.map +1 -1
- package/lib/esm/SpatialViewState.js.map +1 -1
- package/lib/esm/Sprites.js.map +1 -1
- package/lib/esm/StandardView.js.map +1 -1
- package/lib/esm/SubCategoriesCache.js.map +1 -1
- package/lib/esm/TentativePoint.js.map +1 -1
- package/lib/esm/Tiles.js.map +1 -1
- package/lib/esm/TxnEntityChanges.js.map +1 -1
- package/lib/esm/UserPreferences.js.map +1 -1
- package/lib/esm/ViewAnimation.js.map +1 -1
- package/lib/esm/ViewContext.js.map +1 -1
- package/lib/esm/ViewCreator2d.js.map +1 -1
- package/lib/esm/ViewCreator3d.js.map +1 -1
- package/lib/esm/ViewGlobalLocation.js.map +1 -1
- package/lib/esm/ViewManager.js.map +1 -1
- package/lib/esm/ViewPose.js.map +1 -1
- package/lib/esm/ViewState.js.map +1 -1
- package/lib/esm/ViewStatus.js.map +1 -1
- package/lib/esm/ViewingSpace.js.map +1 -1
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/ViewportSync.js.map +1 -1
- package/lib/esm/common/FrontendLoggerCategory.js.map +1 -1
- package/lib/esm/common/ImageUtil.js.map +1 -1
- package/lib/esm/common/ViewRect.js.map +1 -1
- package/lib/esm/common/WorkerProxy.js.map +1 -1
- package/lib/esm/common/gltf/GltfModel.js.map +1 -1
- package/lib/esm/common/gltf/GltfParser.js.map +1 -1
- package/lib/esm/common/gltf/GltfSchema.js.map +1 -1
- package/lib/esm/common/imdl/CompactEdges.js.map +1 -1
- package/lib/esm/common/imdl/ImdlModel.js.map +1 -1
- package/lib/esm/common/imdl/ImdlSchema.js.map +1 -1
- package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
- package/lib/esm/common/internal/Symbols.js.map +1 -1
- package/lib/esm/common/internal/render/AnimationNodeId.js.map +1 -1
- package/lib/esm/common/internal/render/AuxChannelTable.js.map +1 -1
- package/lib/esm/common/internal/render/ColorMap.js.map +1 -1
- package/lib/esm/common/internal/render/DisplayParams.js.map +1 -1
- package/lib/esm/common/internal/render/EdgeParams.js.map +1 -1
- package/lib/esm/common/internal/render/GeometryAccumulator.js.map +1 -1
- package/lib/esm/common/internal/render/GeometryList.js.map +1 -1
- package/lib/esm/common/internal/render/GeometryPrimitives.js.map +1 -1
- package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -1
- package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -1
- package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -1
- package/lib/esm/common/internal/render/LineCode.js.map +1 -1
- package/lib/esm/common/internal/render/MeshBuilder.js.map +1 -1
- package/lib/esm/common/internal/render/MeshBuilderMap.js.map +1 -1
- package/lib/esm/common/internal/render/MeshParams.js.map +1 -1
- package/lib/esm/common/internal/render/MeshPrimitive.js.map +1 -1
- package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -1
- package/lib/esm/common/internal/render/OvrFlags.js.map +1 -1
- package/lib/esm/common/internal/render/PointCloudPrimitive.js.map +1 -1
- package/lib/esm/common/internal/render/PointStringParams.js.map +1 -1
- package/lib/esm/common/internal/render/Polyface.js.map +1 -1
- package/lib/esm/common/internal/render/PolylineParams.js.map +1 -1
- package/lib/esm/common/internal/render/Primitives.js.map +1 -1
- package/lib/esm/common/internal/render/Strokes.js.map +1 -1
- package/lib/esm/common/internal/render/SurfaceParams.js.map +1 -1
- package/lib/esm/common/internal/render/VertexIndices.js.map +1 -1
- package/lib/esm/common/internal/render/VertexKey.js.map +1 -1
- package/lib/esm/common/internal/render/VertexTable.js.map +1 -1
- package/lib/esm/common/internal/render/VertexTableBuilder.js.map +1 -1
- package/lib/esm/common/internal/render/VertexTableSplitter.js.map +1 -1
- package/lib/esm/common/render/BatchOptions.js.map +1 -1
- package/lib/esm/common/render/GraphicAssembler.js.map +1 -1
- package/lib/esm/common/render/GraphicDescriptionBuilder.js.map +1 -1
- package/lib/esm/common/render/GraphicDescriptionContext.js.map +1 -1
- package/lib/esm/common/render/GraphicPrimitive.js.map +1 -1
- package/lib/esm/common/render/GraphicType.js.map +1 -1
- package/lib/esm/common/render/InstancedGraphicParams.js.map +1 -1
- package/lib/esm/common/render/MaterialParams.js.map +1 -1
- package/lib/esm/common/render/RenderInstancesParams.js.map +1 -1
- package/lib/esm/common/render/TextureParams.js.map +1 -1
- package/lib/esm/common.js.map +1 -1
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/extension/Extension.js.map +1 -1
- package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
- package/lib/esm/extension/ExtensionHost.js.map +1 -1
- package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
- package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -1
- package/lib/esm/extension/providers/LocalExtensionProvider.js.map +1 -1
- package/lib/esm/extension/providers/RemoteExtensionProvider.js.map +1 -1
- package/lib/esm/internal/GoogleMapsDecorator.js.map +1 -1
- package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -1
- package/lib/esm/internal/ScriptUtils.js.map +1 -1
- package/lib/esm/internal/cross-package.js.map +1 -1
- package/lib/esm/internal/render/AnimationBranchState.js.map +1 -1
- package/lib/esm/internal/render/FrameStatsCollector.js.map +1 -1
- package/lib/esm/internal/render/GraphicBranchFrustum.js.map +1 -1
- package/lib/esm/internal/render/GraphicTemplateImpl.js.map +1 -1
- package/lib/esm/internal/render/MeshMapLayerGraphicParams.js.map +1 -1
- package/lib/esm/internal/render/MockRender.js.map +1 -1
- package/lib/esm/internal/render/PrimitiveBuilder.js.map +1 -1
- package/lib/esm/internal/render/QueryVisibileFeatures.js.map +1 -1
- package/lib/esm/internal/render/RenderAreaPattern.js.map +1 -1
- package/lib/esm/internal/render/RenderGeometry.js.map +1 -1
- package/lib/esm/internal/render/RenderInstancesParamsImpl.js.map +1 -1
- package/lib/esm/internal/render/RenderMaterialSource.js.map +1 -1
- package/lib/esm/internal/render/RenderPlan.js.map +1 -1
- package/lib/esm/internal/render/RenderPlanarClassifier.js.map +1 -1
- package/lib/esm/internal/render/RenderSkyBoxParams.js.map +1 -1
- package/lib/esm/internal/render/RenderSystemDebugControl.js.map +1 -1
- package/lib/esm/internal/render/RenderTargetDebugControl.js.map +1 -1
- package/lib/esm/internal/render/RenderTerrain.js.map +1 -1
- package/lib/esm/internal/render/RenderTextureDrape.js.map +1 -1
- package/lib/esm/internal/render/SceneVolumeClassifier.js.map +1 -1
- package/lib/esm/internal/render/UpsampleRealityMeshParams.js.map +1 -1
- package/lib/esm/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/AttributeBuffers.js.map +1 -1
- package/lib/esm/internal/render/webgl/AttributeMap.js.map +1 -1
- package/lib/esm/internal/render/webgl/BackgroundMapDrape.js +1 -1
- package/lib/esm/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/esm/internal/render/webgl/BatchState.js.map +1 -1
- package/lib/esm/internal/render/webgl/BatchUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/BranchStack.js.map +1 -1
- package/lib/esm/internal/render/webgl/BranchState.js.map +1 -1
- package/lib/esm/internal/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/ClipStack.js.map +1 -1
- package/lib/esm/internal/render/webgl/ClipVolume.js.map +1 -1
- package/lib/esm/internal/render/webgl/ClippingProgram.js.map +1 -1
- package/lib/esm/internal/render/webgl/ColorInfo.js.map +1 -1
- package/lib/esm/internal/render/webgl/ContourUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/Contours.js.map +1 -1
- package/lib/esm/internal/render/webgl/Diagnostics.js.map +1 -1
- package/lib/esm/internal/render/webgl/Disposable.js.map +1 -1
- package/lib/esm/internal/render/webgl/DrawCommand.js.map +1 -1
- package/lib/esm/internal/render/webgl/EDL.js.map +1 -1
- package/lib/esm/internal/render/webgl/EdgeGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/EdgeSettings.js.map +1 -1
- package/lib/esm/internal/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/esm/internal/render/webgl/FloatRGBA.js.map +1 -1
- package/lib/esm/internal/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/esm/internal/render/webgl/FrustumUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/GL.js.map +1 -1
- package/lib/esm/internal/render/webgl/GLTimer.js.map +1 -1
- package/lib/esm/internal/render/webgl/Graphic.js.map +1 -1
- package/lib/esm/internal/render/webgl/HiliteUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/IModelFrameLifecycle.js.map +1 -1
- package/lib/esm/internal/render/webgl/IndexedEdgeGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/Layer.js.map +1 -1
- package/lib/esm/internal/render/webgl/LayerCommands.js.map +1 -1
- package/lib/esm/internal/render/webgl/LightingUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/LineCode.js.map +1 -1
- package/lib/esm/internal/render/webgl/MapLayerParams.js.map +1 -1
- package/lib/esm/internal/render/webgl/Material.js.map +1 -1
- package/lib/esm/internal/render/webgl/Matrix.js.map +1 -1
- package/lib/esm/internal/render/webgl/Mesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/MeshData.js.map +1 -1
- package/lib/esm/internal/render/webgl/MeshGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/PerformanceMetrics.js.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarClassifier.js +1 -1
- package/lib/esm/internal/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarGrid.js.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/esm/internal/render/webgl/PointCloud.js.map +1 -1
- package/lib/esm/internal/render/webgl/PointString.js.map +1 -1
- package/lib/esm/internal/render/webgl/Polyline.js.map +1 -1
- package/lib/esm/internal/render/webgl/Primitive.js.map +1 -1
- package/lib/esm/internal/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/RealityModelUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderBuffer.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderCommands.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderFlags.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderState.js.map +1 -1
- package/lib/esm/internal/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/esm/internal/render/webgl/ScratchDrawParams.js.map +1 -1
- package/lib/esm/internal/render/webgl/ScreenSpaceEffect.js.map +1 -1
- package/lib/esm/internal/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/esm/internal/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/esm/internal/render/webgl/ShadowUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/esm/internal/render/webgl/StyleUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/Sync.js.map +1 -1
- package/lib/esm/internal/render/webgl/System.js.map +1 -1
- package/lib/esm/internal/render/webgl/Target.js.map +1 -1
- package/lib/esm/internal/render/webgl/TargetGraphics.js.map +1 -1
- package/lib/esm/internal/render/webgl/TargetUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/Technique.js.map +1 -1
- package/lib/esm/internal/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/esm/internal/render/webgl/TechniqueId.js.map +1 -1
- package/lib/esm/internal/render/webgl/Texture.js.map +1 -1
- package/lib/esm/internal/render/webgl/TextureDrape.js.map +1 -1
- package/lib/esm/internal/render/webgl/ThematicSensors.js.map +1 -1
- package/lib/esm/internal/render/webgl/ThematicUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/UniformHandle.js.map +1 -1
- package/lib/esm/internal/render/webgl/VertexLUT.js.map +1 -1
- package/lib/esm/internal/render/webgl/ViewRectUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/VisibleTileFeatures.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/AmbientOcclusion.js +154 -154
- package/lib/esm/internal/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Animation.js +83 -83
- package/lib/esm/internal/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Atmosphere.js +266 -266
- package/lib/esm/internal/render/webgl/glsl/Atmosphere.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Blur.js +37 -37
- package/lib/esm/internal/render/webgl/glsl/Blur.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.js +5 -5
- package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/ClearTranslucent.js +3 -3
- package/lib/esm/internal/render/webgl/glsl/ClearTranslucent.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Clipping.js +96 -96
- package/lib/esm/internal/render/webgl/glsl/Clipping.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Color.js +12 -12
- package/lib/esm/internal/render/webgl/glsl/Color.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Combine3Textures.js +7 -7
- package/lib/esm/internal/render/webgl/glsl/Combine3Textures.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/CombineTextures.js +5 -5
- package/lib/esm/internal/render/webgl/glsl/CombineTextures.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Common.js +16 -16
- package/lib/esm/internal/render/webgl/glsl/Common.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Composite.js +71 -71
- package/lib/esm/internal/render/webgl/glsl/Composite.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Contours.js +101 -101
- package/lib/esm/internal/render/webgl/glsl/Contours.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/CopyColor.js +6 -6
- package/lib/esm/internal/render/webgl/glsl/CopyColor.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/CopyPickBuffers.js +3 -3
- package/lib/esm/internal/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/CopyStencil.js +4 -4
- package/lib/esm/internal/render/webgl/glsl/CopyStencil.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Decode.js +65 -65
- package/lib/esm/internal/render/webgl/glsl/Decode.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/EDL.js +103 -103
- package/lib/esm/internal/render/webgl/glsl/EDL.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/EVSMFromDepth.js +25 -25
- package/lib/esm/internal/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Edge.js +146 -146
- package/lib/esm/internal/render/webgl/glsl/Edge.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/FeatureSymbology.js +238 -238
- package/lib/esm/internal/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Fragment.js +43 -43
- package/lib/esm/internal/render/webgl/glsl/Fragment.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Instancing.js +21 -21
- package/lib/esm/internal/render/webgl/glsl/Instancing.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Lighting.js +92 -92
- package/lib/esm/internal/render/webgl/glsl/Lighting.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/LookupTable.js +19 -19
- package/lib/esm/internal/render/webgl/glsl/LookupTable.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/MaplayerDraping.js +87 -87
- package/lib/esm/internal/render/webgl/glsl/MaplayerDraping.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Monochrome.js +13 -13
- package/lib/esm/internal/render/webgl/glsl/Monochrome.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/PlanarClassification.js +188 -188
- package/lib/esm/internal/render/webgl/glsl/PlanarClassification.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/PlanarGrid.js +22 -22
- package/lib/esm/internal/render/webgl/glsl/PlanarGrid.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/PointCloud.js +28 -28
- package/lib/esm/internal/render/webgl/glsl/PointCloud.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/PointString.js +9 -9
- package/lib/esm/internal/render/webgl/glsl/PointString.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Polyline.js +213 -213
- package/lib/esm/internal/render/webgl/glsl/Polyline.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/RealityMesh.js +25 -25
- package/lib/esm/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/RenderPass.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/ScreenSpaceEffect.js +9 -9
- package/lib/esm/internal/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/SkyBox.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/SkySphere.js +49 -49
- package/lib/esm/internal/render/webgl/glsl/SkySphere.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/SolarShadowMapping.js +51 -51
- package/lib/esm/internal/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Surface.js +235 -235
- package/lib/esm/internal/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Thematic.js +136 -136
- package/lib/esm/internal/render/webgl/glsl/Thematic.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Translucency.js +19 -19
- package/lib/esm/internal/render/webgl/glsl/Translucency.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Vertex.js +73 -73
- package/lib/esm/internal/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Viewport.js +38 -38
- package/lib/esm/internal/render/webgl/glsl/Viewport.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/ViewportQuad.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Wiremesh.js +10 -10
- package/lib/esm/internal/render/webgl/glsl/Wiremesh.js.map +1 -1
- package/lib/esm/internal/tile/B3dmReader.js.map +1 -1
- package/lib/esm/internal/tile/BatchedTileIdMap.js.map +1 -1
- package/lib/esm/internal/tile/CesiumAssetProvider.js.map +1 -1
- package/lib/esm/internal/tile/ClassifierTileTree.js.map +1 -1
- package/lib/esm/internal/tile/ContextShareProvider.js.map +1 -1
- package/lib/esm/internal/tile/DynamicIModelTile.js.map +1 -1
- package/lib/esm/internal/tile/FetchCloudStorage.js.map +1 -1
- package/lib/esm/internal/tile/GraphicsCollector.js.map +1 -1
- package/lib/esm/internal/tile/I3dmReader.js.map +1 -1
- package/lib/esm/internal/tile/IModelTile.js.map +1 -1
- package/lib/esm/internal/tile/IModelTileRequestChannels.js.map +1 -1
- package/lib/esm/internal/tile/IModelTileTree.js.map +1 -1
- package/lib/esm/internal/tile/ImdlDecoder.js.map +1 -1
- package/lib/esm/internal/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/esm/internal/tile/ImdlParser.js.map +1 -1
- package/lib/esm/internal/tile/LRUTileList.js.map +1 -1
- package/lib/esm/internal/tile/LayerTileTreeHandler.js.map +1 -1
- package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
- package/lib/esm/internal/tile/MeshoptCompression.js.map +1 -1
- package/lib/esm/internal/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/esm/internal/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/esm/internal/tile/PntsReader.js.map +1 -1
- package/lib/esm/internal/tile/PrimaryTileTree.js.map +1 -1
- package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/internal/tile/RealityTileDrawArgs.js.map +1 -1
- package/lib/esm/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -1
- package/lib/esm/internal/tile/TileUserSet.js.map +1 -1
- package/lib/esm/internal/tile/ViewFlagOverrides.js.map +1 -1
- package/lib/esm/internal/tile/map/ArcGISTileMap.js.map +1 -1
- package/lib/esm/internal/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/CoordinatesUtils.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/WebMercator.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/MapTileAvailability.js.map +1 -1
- package/lib/esm/internal/tile/map/MapTileLoader.js.map +1 -1
- package/lib/esm/internal/tile/map/UrlUtils.js.map +1 -1
- package/lib/esm/internal/tile/map/WmsCapabilities.js.map +1 -1
- package/lib/esm/internal/tile/map/WmsUtilities.js.map +1 -1
- package/lib/esm/internal/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/esm/internal/webgl.js.map +1 -1
- package/lib/esm/properties/AngleDescription.js.map +1 -1
- package/lib/esm/properties/FormattedQuantityDescription.js.map +1 -1
- package/lib/esm/properties/LengthDescription.js.map +1 -1
- package/lib/esm/public/scripts/checkbrowser.js +24 -24
- package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
- package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
- package/lib/esm/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
- package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
- package/lib/esm/quantity-formatting/UnitsData.js.map +1 -1
- package/lib/esm/render/CanvasDecoration.js.map +1 -1
- package/lib/esm/render/CreateRenderMaterialArgs.js.map +1 -1
- package/lib/esm/render/CreateTextureArgs.js.map +1 -1
- package/lib/esm/render/Decorations.js.map +1 -1
- package/lib/esm/render/FeatureSymbology.js.map +1 -1
- package/lib/esm/render/FrameStats.js.map +1 -1
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- package/lib/esm/render/GraphicBuilder.js.map +1 -1
- package/lib/esm/render/GraphicTemplate.js.map +1 -1
- package/lib/esm/render/MeshArgs.js.map +1 -1
- package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/esm/render/Pixel.js.map +1 -1
- package/lib/esm/render/PolylineArgs.js.map +1 -1
- package/lib/esm/render/RealityMeshParams.js.map +1 -1
- package/lib/esm/render/RenderClipVolume.js.map +1 -1
- package/lib/esm/render/RenderGraphic.js.map +1 -1
- package/lib/esm/render/RenderMemory.js.map +1 -1
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/RenderTarget.js.map +1 -1
- package/lib/esm/render/Scene.js.map +1 -1
- package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
- package/lib/esm/render/VisibleFeature.js.map +1 -1
- package/lib/esm/request/Request.js.map +1 -1
- package/lib/esm/request/utils.js.map +1 -1
- package/lib/esm/tile/DisclosedTileTreeSet.js.map +1 -1
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/ImdlReader.js.map +1 -1
- package/lib/esm/tile/RealityTile.js.map +1 -1
- package/lib/esm/tile/RealityTileTree.js.map +1 -1
- package/lib/esm/tile/RenderGraphicTileTree.js.map +1 -1
- package/lib/esm/tile/Tile.js.map +1 -1
- package/lib/esm/tile/TileAdmin.js.map +1 -1
- package/lib/esm/tile/TileContent.js.map +1 -1
- package/lib/esm/tile/TileDrawArgs.js.map +1 -1
- package/lib/esm/tile/TileGeometryCollector.js.map +1 -1
- package/lib/esm/tile/TileParams.js.map +1 -1
- package/lib/esm/tile/TileRequest.js.map +1 -1
- package/lib/esm/tile/TileRequestChannel.js.map +1 -1
- package/lib/esm/tile/TileRequestChannels.js.map +1 -1
- package/lib/esm/tile/TileStorage.js.map +1 -1
- package/lib/esm/tile/TileTree.js.map +1 -1
- package/lib/esm/tile/TileTreeOwner.js.map +1 -1
- package/lib/esm/tile/TileTreeParams.js.map +1 -1
- package/lib/esm/tile/TileTreeReference.js.map +1 -1
- package/lib/esm/tile/TileTreeSupplier.js.map +1 -1
- package/lib/esm/tile/TileUsageMarker.js.map +1 -1
- package/lib/esm/tile/TileUser.js.map +1 -1
- package/lib/esm/tile/TiledGraphicsProvider.js.map +1 -1
- package/lib/esm/tile/internal.js.map +1 -1
- package/lib/esm/tile/map/BingElevation.js.map +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/EllipsoidTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
- package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -1
- package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
- package/lib/esm/tile/map/MapLayerTileTreeReference.js.map +1 -1
- package/lib/esm/tile/map/MapTile.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
- package/lib/esm/tile/map/QuadId.js.map +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
- package/lib/esm/tile/map/TerrainProvider.js.map +1 -1
- package/lib/esm/tools/AccuDrawTool.js.map +1 -1
- package/lib/esm/tools/AccuDrawViewportUI.js.map +1 -1
- package/lib/esm/tools/ClipViewTool.js.map +1 -1
- package/lib/esm/tools/EditManipulator.js.map +1 -1
- package/lib/esm/tools/ElementSetTool.js.map +1 -1
- package/lib/esm/tools/EventController.js.map +1 -1
- package/lib/esm/tools/IdleTool.js.map +1 -1
- package/lib/esm/tools/MeasureTool.js.map +1 -1
- package/lib/esm/tools/PrimitiveTool.js.map +1 -1
- package/lib/esm/tools/SelectTool.js.map +1 -1
- package/lib/esm/tools/Tool.js.map +1 -1
- package/lib/esm/tools/ToolAdmin.js.map +1 -1
- package/lib/esm/tools/ToolAssistance.js.map +1 -1
- package/lib/esm/tools/ToolSettings.js.map +1 -1
- package/lib/esm/tools/ViewTool.js.map +1 -1
- package/lib/esm/workers/ImdlParser/Worker.js.map +1 -1
- package/lib/esm/workers/ImdlParser/webpack.config.js +42 -42
- package/lib/esm/workers/RegisterWorker.js.map +1 -1
- package/lib/public/assets/MapLayerSources.json +25 -25
- package/lib/public/images/cesium-ion.svg +92 -92
- package/lib/public/images/imodeljs-icon.svg +2 -2
- package/lib/public/locales/en/CoreTools.json +508 -508
- package/lib/public/locales/en/iModelJs.json +176 -176
- package/lib/public/scripts/checkbrowser.js +24 -24
- 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":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tiles\n */\n\nimport {\n assert, ByteStream, compareBooleans, compareNumbers, compareStrings, Dictionary, JsonUtils, Logger, utf8ToString,\n} from \"@itwin/core-bentley\";\nimport {\n Angle, IndexedPolyface, Matrix3d, Point2d, Point3d, Point4d, Range2d, Range3d, Transform, Vector3d,\n} from \"@itwin/core-geometry\";\nimport {\n AxisAlignedBox3d, BatchType, ColorDef, EdgeAppearanceOverrides, ElementAlignedBox3d, Feature, FeatureIndex, FeatureIndexType, FeatureTable, FillFlags, GlbHeader, ImageSource, LinePixels, MeshEdge,\n MeshEdges, MeshPolyline, MeshPolylineList, OctEncodedNormal, OctEncodedNormalPair, PackedFeatureTable, QParams2d, QParams3d, QPoint2dList,\n QPoint3dList, Quantization, RenderMaterial, RenderMode, RenderTexture, TextureMapping, TextureTransparency, TileFormat, TileReadStatus, ViewFlagOverrides,\n} from \"@itwin/core-common\";\nimport { IModelConnection } from \"../IModelConnection\";\nimport { IModelApp } from \"../IModelApp\";\nimport { InstancedGraphicParams } from \"../common/render/InstancedGraphicParams\";\nimport { RealityMeshParams } from \"../render/RealityMeshParams\";\nimport { Mesh } from \"../common/internal/render/MeshPrimitives\";\nimport { Triangle } from \"../common/internal/render/Primitives\";\nimport { RenderGraphic } from \"../render/RenderGraphic\";\nimport { RenderSystem } from \"../render/RenderSystem\";\nimport { BatchedTileIdMap, decodeMeshoptBuffer, RealityTileGeometry,TileContent } from \"./internal\";\nimport type { DracoLoader, DracoMesh } from \"@loaders.gl/draco\";\nimport { CreateRenderMaterialArgs } from \"../render/CreateRenderMaterialArgs\";\nimport { DisplayParams } from \"../common/internal/render/DisplayParams\";\nimport { FrontendLoggerCategory } from \"../common/FrontendLoggerCategory\";\nimport { getImageSourceFormatForMimeType, imageBitmapFromImageSource, imageElementFromImageSource, tryImageElementFromUrl } from \"../common/ImageUtil\";\nimport { MeshPrimitiveType } from \"../common/internal/render/MeshPrimitive\";\nimport { PointCloudArgs } from \"../common/internal/render/PointCloudPrimitive\";\nimport { TextureImageSource } from \"../common/render/TextureParams\";\nimport {\n DracoMeshCompression, getGltfNodeMeshIds, Gltf2Node, GltfAccessor, GltfBuffer, GltfBufferViewProps, GltfDataType, GltfDictionary, gltfDictionaryIterator, GltfDocument, GltfId,\n GltfImage, GltfMaterial, GltfMesh, GltfMeshMode, GltfMeshPrimitive, GltfNode, GltfSampler, GltfScene, GltfStructuralMetadata, GltfTechniqueState, GltfTexture, GltfWrapMode, isGltf1Material, traverseGltfNodes,\n} from \"../common/gltf/GltfSchema\";\nimport { PickableGraphicOptions } from \"../common/render/BatchOptions\";\nimport { createGraphicTemplate, GraphicTemplateBatch, GraphicTemplateBranch, GraphicTemplateNode } from \"../internal/render/GraphicTemplateImpl\";\nimport { RenderGeometry } from \"../internal/render/RenderGeometry\";\nimport { GraphicTemplate } from \"../render/GraphicTemplate\";\nimport { LayerTileData } from \"../internal/render/webgl/MapLayerParams\";\nimport { compactEdgeIterator } from \"../common/imdl/CompactEdges\";\nimport { MeshPolylineGroup } from \"@itwin/core-common/lib/cjs/internal/RenderMesh\";\n\n/** @internal */\nexport type GltfDataBuffer = Uint8Array | Uint16Array | Uint32Array | Float32Array;\n\n/**\n * A chunk of binary data exposed as a typed array.\n * The count member indicates how many elements exist. This may be less than this.buffer.length due to padding added to the\n * binary stream to ensure correct alignment.\n * @internal\n */\nexport class GltfBufferData {\n public readonly buffer: GltfDataBuffer;\n public readonly count: number;\n\n public constructor(buffer: GltfDataBuffer, count: number) {\n this.buffer = buffer;\n this.count = count;\n }\n\n /**\n * Create a GltfBufferData of the desired type. The actual type may differ from the desired type - for example, small 32-bit integers\n * may be represented as 8-bit or 16-bit integers instead.\n * If the actual data type is not convertible to the desired type, this function returns undefined.\n */\n public static create(bytes: Uint8Array, actualType: GltfDataType, expectedType: GltfDataType, count: number): GltfBufferData | undefined {\n if (expectedType !== actualType) {\n // Some data is stored in smaller data types to save space if no values exceed the maximum of the smaller type.\n switch (expectedType) {\n case GltfDataType.Float:\n case GltfDataType.UnsignedByte:\n return undefined;\n case GltfDataType.UnsignedShort:\n if (GltfDataType.UnsignedByte !== actualType)\n return undefined;\n break;\n case GltfDataType.UInt32:\n if (GltfDataType.UnsignedByte !== actualType && GltfDataType.UnsignedShort !== actualType)\n return undefined;\n break;\n }\n }\n\n const data = this.createDataBuffer(bytes, actualType);\n return undefined !== data ? new GltfBufferData(data, count) : undefined;\n }\n\n private static createDataBuffer(bytes: Uint8Array, actualType: GltfDataType): GltfDataBuffer | undefined {\n // NB: Endianness of typed array data is determined by the 'platform byte order'. Actual data is always little-endian.\n // We are assuming little-endian platform. If we find a big-endian platform, we'll need to use a DataView instead.\n switch (actualType) {\n case GltfDataType.UnsignedByte:\n return bytes;\n case GltfDataType.UnsignedShort:\n return new Uint16Array(bytes.buffer, bytes.byteOffset, bytes.byteLength / 2);\n case GltfDataType.UInt32:\n return new Uint32Array(bytes.buffer, bytes.byteOffset, bytes.byteLength / 4);\n case GltfDataType.Float:\n return new Float32Array(bytes.buffer, bytes.byteOffset, bytes.byteLength / 4);\n default:\n return undefined;\n }\n }\n}\n\n/**\n * A view of a chunk of glTF binary data containing an array of elements of a specific data type.\n * The count member indicates how many elements exist; this may be smaller than this.data.length.\n * The count member may also indicate the number of elements of a type containing more than one value of the\n * underlying type. For example, a buffer of 4 32-bit floating point 'vec2' elements will have a count of 4,\n * but its data member will contain 8 32-bit floating point values (2 per vec2).\n * The accessor member may contain additional JSON data specific to a particular buffer.\n * @internal\n */\nclass GltfBufferView {\n public readonly data: Uint8Array;\n public readonly count: number;\n public readonly type: GltfDataType;\n public readonly accessor: GltfAccessor;\n public readonly stride: number;\n\n public get byteLength(): number { return this.data.length; }\n\n public constructor(data: Uint8Array, count: number, type: GltfDataType, accessor: GltfAccessor, stride: number) {\n this.data = data;\n this.count = count;\n this.type = type;\n this.accessor = accessor;\n this.stride = stride;\n }\n\n public toBufferData(desiredType: GltfDataType): GltfBufferData | undefined {\n return GltfBufferData.create(this.data, this.type, desiredType, this.count);\n }\n}\n\n/** The result of [[GltfReader.read]].\n * @internal\n */\nexport interface GltfReaderResult extends TileContent {\n readStatus: TileReadStatus;\n range?: AxisAlignedBox3d;\n copyright?: string;\n}\n\ntype GltfTemplateResult = Omit<GltfReaderResult, \"graphic\"> & { template?: GraphicTemplate };\n\nfunction templateToGraphicResult(result: GltfTemplateResult, system: RenderSystem): GltfReaderResult {\n const template = result.template;\n delete result.template;\n return {\n ...result,\n graphic: template ? system.createGraphicFromTemplate({ template }) : undefined,\n };\n}\n\n/** Data required for creating a [[GltfReader]] capable of deserializing [glTF](https://www.khronos.org/gltf/).\n * @internal\n */\nexport class GltfReaderProps {\n public readonly version: number;\n public readonly glTF: GltfDocument;\n public readonly yAxisUp: boolean;\n public readonly binaryData?: Uint8Array;\n public readonly baseUrl?: URL;\n\n private constructor(glTF: GltfDocument, version: number, yAxisUp: boolean, binaryData: Uint8Array | undefined, baseUrl?: URL | undefined) {\n this.version = version;\n this.glTF = glTF;\n this.binaryData = binaryData;\n this.yAxisUp = yAxisUp;\n this.baseUrl = baseUrl;\n }\n\n /** Attempt to construct a new GltfReaderProps from the binary data beginning at the supplied stream's current read position. */\n public static create(source: Uint8Array | GltfDocument, yAxisUp: boolean = false, baseUrl?: URL): GltfReaderProps | undefined {\n let version: number;\n let json: GltfDocument;\n let binaryData: Uint8Array | undefined;\n\n if (source instanceof Uint8Array) {\n // It may be JSON - check for magic indicating glb.\n const buffer = ByteStream.fromUint8Array(source);\n if (TileFormat.Gltf !== buffer.readUint32()) {\n try {\n const utf8Json = utf8ToString(source);\n if (!utf8Json)\n return undefined;\n\n json = JSON.parse(utf8Json);\n version = 2;\n } catch {\n return undefined;\n }\n } else {\n buffer.reset();\n const header = new GlbHeader(buffer);\n if (!header.isValid)\n return undefined;\n\n version = header.version;\n if (header.binaryChunk)\n binaryData = new Uint8Array(source.buffer, source.byteOffset + header.binaryChunk.offset, header.binaryChunk.length);\n\n try {\n const jsonBytes = new Uint8Array(source.buffer, source.byteOffset + header.jsonChunk.offset, header.jsonChunk.length);\n const jsonStr = utf8ToString(jsonBytes);\n if (undefined === jsonStr)\n return undefined;\n\n json = JSON.parse(jsonStr);\n } catch {\n return undefined;\n }\n }\n } else {\n version = 2; // ###TODO verify against source.asset?.version\n json = source;\n }\n\n // asset is required in glTF 2, optional in glTF 1\n const asset = JsonUtils.asObject(json.asset);\n if (version === 2 && !asset)\n return undefined;\n\n const glTF: GltfDocument = {\n asset,\n scene: JsonUtils.asString(json.scene),\n extensions: JsonUtils.asObject(json.extensions),\n extensionsUsed: JsonUtils.asArray(json.extensionsUsed),\n extensionsRequired: JsonUtils.asArray(json.extensionsRequired),\n accessors: JsonUtils.asObject(json.accessors),\n buffers: JsonUtils.asObject(json.buffers),\n bufferViews: JsonUtils.asObject(json.bufferViews),\n images: JsonUtils.asObject(json.images),\n materials: JsonUtils.asObject(json.materials),\n meshes: JsonUtils.asObject(json.meshes),\n nodes: JsonUtils.asObject(json.nodes),\n samplers: JsonUtils.asObject(json.samplers),\n scenes: JsonUtils.asObject(json.scenes),\n textures: JsonUtils.asObject(json.textures),\n techniques: JsonUtils.asObject(json.techniques),\n };\n\n return glTF.meshes ? new GltfReaderProps(glTF, version, yAxisUp, binaryData, baseUrl) : undefined;\n }\n}\n\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\n * ContextCapture, then a RealityMesh is created directly from this data. Otherwise, the mesh primitive is populated from the raw data and a MeshPrimitive\n * is generated. The MeshPrimitve path is much less efficient but should be rarely used.\n *\n * @internal\n */\nexport class GltfMeshData {\n public primitive: Mesh; // Populated with vertex and indices only if the mesh cannot be represented as [[RealityMesh]]\n public pointQParams?: QParams3d;\n public points?: Uint16Array;\n public pointRange?: Range3d;\n public normals?: Uint16Array;\n public uvQParams?: QParams2d;\n public uvs?: Uint16Array;\n public uvRange?: Range2d;\n public indices?: Uint8Array | Uint16Array | Uint32Array;\n public readonly type = \"mesh\" as const;\n\n public constructor(props: Mesh) {\n this.primitive = props;\n }\n}\n\ninterface GltfPointCloud extends PointCloudArgs {\n readonly type: \"pointcloud\";\n pointRange: Range3d;\n}\n\ntype GltfPrimitiveData = GltfMeshData | GltfPointCloud;\n\n/** A function that returns true if deserialization of the data supplied by the reader should abort.\n * @internal\n */\nexport type ShouldAbortReadGltf = (reader: GltfReader) => boolean;\n\nconst emptyDict = { };\n\nfunction colorFromJson(values: number[]): ColorDef {\n return ColorDef.from(values[0] * 255, values[1] * 255, values[2] * 255, (1.0 - values[3]) * 255);\n}\n\nfunction colorFromMaterial(material: GltfMaterial, isTransparent: boolean): ColorDef {\n let color = ColorDef.white;\n if (isGltf1Material(material)) {\n if (material.values?.color && Array.isArray(material.values.color))\n color = colorFromJson(material.values.color);\n } else if (material.extensions?.KHR_techniques_webgl?.values?.u_color) {\n color = colorFromJson(material.extensions.KHR_techniques_webgl.values.u_color);\n } else if (material.pbrMetallicRoughness?.baseColorFactor) {\n color = colorFromJson(material.pbrMetallicRoughness.baseColorFactor);\n }\n\n // SPEC: Opaque materials ignore any alpha channel.\n if (!isTransparent)\n color = color.withTransparency(0);\n\n return color;\n}\n\nfunction trsMatrix(translation: [number, number, number] | undefined, rotation: [number, number, number, number] | undefined, scale: [number, number, number] | undefined, result?: Transform): Transform {\n // SPEC: To compose the local transformation matrix, TRS properties MUST be converted to matrices and postmultiplied in the T * R * S order;\n // first the scale is applied to the vertices, then the rotation, and then the translation.\n const scaleTf = Transform.createRefs(undefined, scale ? Matrix3d.createScale(scale[0], scale[1], scale[2]) : Matrix3d.identity);\n const rotTf = Transform.createRefs(undefined, rotation ? Matrix3d.createFromQuaternion(Point4d.create(rotation[0], rotation[1], rotation[2], rotation[3])) : Matrix3d.identity);\n rotTf.matrix.transposeInPlace(); // See comment on Matrix3d.createFromQuaternion\n const transTf = Transform.createTranslation(translation ? new Point3d(translation[0], translation[1], translation[2]) : Point3d.createZero());\n const tf = rotTf.multiplyTransformTransform(scaleTf, result);\n transTf.multiplyTransformTransform(tf, tf);\n return tf;\n}\n\nclass TransformStack {\n private readonly _stack: Array<Transform | undefined> = [];\n\n public constructor(transform?: Transform) {\n if (transform)\n this._stack.push(transform);\n }\n\n public get transform(): Transform | undefined {\n return this._stack.length > 0 ? this._stack[this._stack.length - 1] : undefined;\n }\n\n public get isEmpty(): boolean {\n return 0 === this._stack.length;\n }\n\n public push(node: GltfNode): void {\n let nodeTransform;\n if (node.matrix) {\n const origin = Point3d.create(node.matrix[12], node.matrix[13], node.matrix[14]);\n const matrix = Matrix3d.createRowValues(\n node.matrix[0], node.matrix[4], node.matrix[8],\n node.matrix[1], node.matrix[5], node.matrix[9],\n node.matrix[2], node.matrix[6], node.matrix[10],\n );\n\n nodeTransform = Transform.createOriginAndMatrix(origin, matrix);\n } else if (node.rotation || node.scale || node.translation) {\n nodeTransform = trsMatrix(node.translation, node.rotation, node.scale);\n }\n\n const top = this.transform;\n if (!top)\n this._stack.push(nodeTransform);\n else\n this._stack.push(nodeTransform ? top.multiplyTransformTransform(nodeTransform) : top);\n }\n\n public pop(): void {\n assert(this._stack.length > 0);\n this._stack.pop();\n }\n}\n\n/** Arguments to [[GltfReader]] constructor.\n * @internal\n */\nexport interface GltfReaderArgs {\n /** Properties of the glTF source. */\n props: GltfReaderProps;\n /** The iModel with which the graphics are to be associated. */\n iModel: IModelConnection;\n /** If true, create 2d graphics. */\n is2d?: boolean;\n /** The render system that will produce the graphics. Defaults to [[IModelApp.renderSystem]]. */\n system?: RenderSystem;\n /** The type of batch to create. Defaults to [BatchType.Primary]($common).\n * @see [[RenderSystem.createBatch]].\n */\n type?: BatchType;\n /** An optional function that, if supplied, is invoked periodically to determine if the process of producing graphics from the glTF should terminate early. */\n shouldAbort?: ShouldAbortReadGltf;\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\n * sometimes required - for example, for [ViewFlags.wiremesh]($common).\n */\n deduplicateVertices?: boolean;\n /** If true, the graphics produced will always use a [[VertexTable]]; otherwise, where possible a [[RealityMeshParams]] will be used instead.\n * Reality meshes are simpler but do not support some features like lighting.\n */\n vertexTableRequired?: boolean;\n /** A table structure to store the Gltf structural metadata if present.\n */\n idMap?: BatchedTileIdMap;\n}\n\ninterface TextureKey {\n readonly id: GltfId;\n readonly isTransparent: boolean;\n}\n\nfunction compareTextureKeys(lhs: TextureKey, rhs: TextureKey): number {\n const cmp = compareBooleans(lhs.isTransparent, rhs.isTransparent);\n if (0 !== cmp)\n return cmp;\n\n assert(typeof lhs.id === typeof rhs.id);\n if (\"string\" === typeof lhs.id) {\n assert(\"string\" === typeof rhs.id);\n return compareStrings(lhs.id, rhs.id);\n }\n\n assert(\"number\" === typeof lhs.id && \"number\" === typeof rhs.id);\n return compareNumbers(lhs.id, rhs.id);\n}\n\ninterface StructuralMetadataTableEntries{\n name: string;\n values: any[];\n};\n\ninterface StructuralMetadataTable{\n name: string;\n entries: StructuralMetadataTableEntries[];\n};\n\ninterface StructuralMetadata{\n tables: StructuralMetadataTable[];\n}\n\n/** @internal exported strictly for testing */\nexport function getMeshPrimitives(mesh: GltfMesh | undefined): GltfMeshPrimitive[] | undefined {\n const ext = mesh?.extensions?.EXT_mesh_primitive_restart;\n const meshPrimitives = mesh?.primitives;\n if (!meshPrimitives || meshPrimitives.length === 0 || !ext?.primitiveGroups || ext.primitiveGroups.length === 0) {\n return meshPrimitives;\n }\n\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.\n\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,\n // and set the rest of the primitives in the group to `undefined`.\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.\n const primitives: Array<GltfMeshPrimitive | undefined> = [...meshPrimitives];\n for (const group of ext.primitiveGroups) {\n // Spec: the group must not be empty and all indices must be valid array indices into mesh.primitives.\n const firstPrimitiveIndex = group.primitives[0];\n if (undefined === firstPrimitiveIndex || !meshPrimitives[firstPrimitiveIndex]) {\n return meshPrimitives;\n }\n\n const primitive = { ...meshPrimitives[firstPrimitiveIndex], indices: group.indices };\n\n // Spec: primitive restart only supported for these topologies.\n switch (primitive.mode) {\n case GltfMeshMode.TriangleFan:\n case GltfMeshMode.TriangleStrip:\n case GltfMeshMode.LineStrip:\n case GltfMeshMode.LineLoop:\n break;\n default:\n return meshPrimitives;\n }\n\n\n for (const primitiveIndex of group.primitives) {\n const thisPrimitive = primitives[primitiveIndex];\n \n // Spec: all primitives must use indexed geometry and a given primitive may appear in at most one group.\n // Spec: all primitives must have same topology.\n if (undefined === thisPrimitive?.indices || thisPrimitive.mode !== primitive.mode) {\n return meshPrimitives;\n }\n \n primitives[primitiveIndex] = undefined;\n }\n\n primitives[firstPrimitiveIndex] = primitive;\n }\n\n return primitives.filter((x) => x !== undefined);\n}\n\n/** Deserializes [glTF](https://www.khronos.org/gltf/).\n * @internal\n */\nexport abstract class GltfReader {\n protected readonly _glTF: GltfDocument;\n protected readonly _version: number;\n protected readonly _iModel: IModelConnection;\n protected readonly _is3d: boolean;\n protected readonly _system: RenderSystem;\n protected readonly _returnToCenter?: Point3d;\n protected readonly _yAxisUp: boolean;\n protected readonly _baseUrl?: URL;\n protected readonly _type: BatchType;\n protected readonly _deduplicateVertices: boolean;\n protected readonly _vertexTableRequired: boolean;\n private readonly _canceled?: ShouldAbortReadGltf;\n protected readonly _sceneNodes: GltfId[];\n protected _computedContentRange?: ElementAlignedBox3d;\n private readonly _resolvedTextures = new Dictionary<TextureKey, RenderTexture | false>((lhs, rhs) => compareTextureKeys(lhs, rhs));\n private readonly _dracoMeshes = new Map<DracoMeshCompression, DracoMesh>();\n private _containsPointCloud = false;\n protected _instanceFeatures: Feature[] = [];\n protected _meshFeatures: Feature[] = [];\n protected _instanceElementIdToFeatureId: Map<string, number> = new Map<string, number>();\n protected _meshElementIdToFeatureIndex: Map<string, number> = new Map<string, number>();\n protected _structuralMetadata?: StructuralMetadata;\n protected readonly _idMap?: BatchedTileIdMap;\n private _tileData?: LayerTileData | undefined;\n\n protected get _nodes(): GltfDictionary<GltfNode> { return this._glTF.nodes ?? emptyDict; }\n protected get _meshes(): GltfDictionary<GltfMesh> { return this._glTF.meshes ?? emptyDict; }\n protected get _accessors(): GltfDictionary<GltfAccessor> { return this._glTF.accessors ?? emptyDict; }\n protected get _bufferViews(): GltfDictionary<GltfBufferViewProps & { resolvedBuffer?: Uint8Array }> { return this._glTF.bufferViews ?? emptyDict; }\n protected get _materials(): GltfDictionary<GltfMaterial> { return this._glTF.materials ?? emptyDict; }\n protected get _samplers(): GltfDictionary<GltfSampler> { return this._glTF.samplers ?? emptyDict; }\n protected get _textures(): GltfDictionary<GltfTexture> { return this._glTF.textures ?? emptyDict; }\n\n protected get _images(): GltfDictionary<GltfImage & { resolvedImage?: TextureImageSource }> { return this._glTF.images ?? emptyDict; }\n protected get _buffers(): GltfDictionary<GltfBuffer & { resolvedBuffer?: Uint8Array }> { return this._glTF.buffers ?? emptyDict; }\n\n /** Asynchronously deserialize the tile data and return the result. */\n public abstract read(): Promise<GltfReaderResult>;\n\n protected get _isCanceled(): boolean { return undefined !== this._canceled && this._canceled(this); }\n protected get _isVolumeClassifier(): boolean { return BatchType.VolumeClassifier === this._type; }\n\n /** Traverse the nodes specified by their Ids, recursing into their child nodes.\n * @param nodeIds The Ids of the nodes to traverse.\n * @throws Error if a node appears more than once during traversal\n */\n public traverseNodes(nodeIds: Iterable<GltfId>): Iterable<GltfNode> {\n return traverseGltfNodes(nodeIds, this._nodes, new Set<GltfId>());\n }\n\n /** Traverse the nodes specified by their scene, recursing into their child nodes.\n * @throws Error if a node appears more than once during traversal\n */\n public traverseScene(): Iterable<GltfNode> {\n return this.traverseNodes(this._sceneNodes);\n }\n\n protected get viewFlagOverrides(): ViewFlagOverrides | undefined {\n return undefined;\n }\n\n private getTileTransform(transformToRoot?: Transform, pseudoRtcBias?: Vector3d): Transform | undefined {\n let transform;\n\n if (this._returnToCenter || pseudoRtcBias || this._yAxisUp || transformToRoot) {\n if (this._returnToCenter)\n transform = Transform.createTranslation(this._returnToCenter.clone());\n else if (pseudoRtcBias)\n transform = Transform.createTranslationXYZ(pseudoRtcBias.x, pseudoRtcBias.y, pseudoRtcBias.z);\n else\n transform = Transform.createIdentity();\n\n if (this._yAxisUp)\n transform = transform.multiplyTransformMatrix3d(Matrix3d.createRotationAroundVector(Vector3d.create(1.0, 0.0, 0.0), Angle.createRadians(Angle.piOver2Radians)) as Matrix3d);\n\n if (transformToRoot)\n transform = transformToRoot.multiplyTransformTransform(transform);\n }\n\n return transform;\n }\n\n protected readGltfAndCreateGraphics(isLeaf: boolean, featureTable: FeatureTable | undefined, contentRange: ElementAlignedBox3d | undefined, transformToRoot?: Transform, pseudoRtcBias?: Vector3d, instances?: InstancedGraphicParams): GltfReaderResult {\n const result = this.readGltfAndCreateTemplate(isLeaf, featureTable, contentRange, true, transformToRoot, pseudoRtcBias, instances);\n return templateToGraphicResult(result, this._system);\n }\n\n protected readGltfAndCreateTemplate(isLeaf: boolean, featureTable: FeatureTable | undefined, contentRange: ElementAlignedBox3d | undefined, noDispose: boolean, transformToRoot?: Transform, pseudoRtcBias?: Vector3d, instances?: InstancedGraphicParams): GltfTemplateResult {\n if (this._isCanceled)\n return { readStatus: TileReadStatus.Canceled, isLeaf };\n\n // If contentRange was not supplied, we will compute it as we read the meshes.\n if (!contentRange)\n this._computedContentRange = contentRange = Range3d.createNull();\n else\n this._computedContentRange = undefined;\n\n // Save feature table model id in case we need to recreate it after reading instances\n const featureTableModelId = featureTable?.modelId;\n // Flush feature table if instance features are used\n if(this._structuralMetadata && this._glTF.extensionsUsed?.includes(\"EXT_instance_features\") && this._idMap){\n featureTable = undefined;\n }\n\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?\n if (this._returnToCenter || this._nodes[0]?.matrix || (pseudoRtcBias && pseudoRtcBias.magnitude() < 1.0E5))\n pseudoRtcBias = undefined;\n\n const transformStack = new TransformStack();\n const templateNodes: GraphicTemplateNode[] = [];\n let readStatus: TileReadStatus = TileReadStatus.InvalidTileData;\n for (const nodeKey of this._sceneNodes) {\n assert(transformStack.isEmpty);\n const node = this._nodes[nodeKey];\n if (node && TileReadStatus.Success !== (readStatus = this.readTemplateNodes(templateNodes, node, featureTable, transformStack, instances, pseudoRtcBias)))\n return { readStatus, isLeaf };\n }\n\n // Creates a feature table based on instance features\n // The table must be created after reading instances, since the maximum number of features is not known until all instances have been read.\n if(this._instanceFeatures.length > 0 && this._idMap){\n featureTable = new FeatureTable(this._instanceFeatures.length, featureTableModelId);\n for(let instanceFeatureId = 0; instanceFeatureId < this._instanceFeatures.length; instanceFeatureId++){\n featureTable.insertWithIndex(this._instanceFeatures[instanceFeatureId], instanceFeatureId);\n }\n }\n\n if(this._meshFeatures.length > 0 && this._idMap){\n featureTable = new FeatureTable(this._meshFeatures.length, featureTableModelId);\n for(let meshFeatureId = 0; meshFeatureId < this._meshFeatures.length; meshFeatureId++){\n featureTable.insertWithIndex(this._meshFeatures[meshFeatureId], meshFeatureId);\n }\n }\n\n if (0 === templateNodes.length)\n return { readStatus: TileReadStatus.InvalidTileData, isLeaf };\n\n // Compute range in tileset/world space.\n let range = contentRange;\n const transform = this.getTileTransform(transformToRoot, pseudoRtcBias);\n const invTransform = transform?.inverse();\n if (invTransform)\n range = invTransform.multiplyRange(contentRange);\n\n // The batch range needs to be in tile coordinate space.\n // If we computed the content range ourselves, it's already in tile space.\n // If the content range was supplied by the caller, it's in tileset space and needs to be transformed to tile space.\n const batch: GraphicTemplateBatch | undefined = !featureTable ? undefined : {\n featureTable: PackedFeatureTable.pack(featureTable),\n range: this._computedContentRange ? contentRange : range,\n };\n\n const viewFlagOverrides = this.viewFlagOverrides;\n const branch: GraphicTemplateBranch | undefined = transform || viewFlagOverrides ? { transform, viewFlagOverrides } : undefined;\n\n return {\n readStatus,\n isLeaf,\n contentRange,\n range,\n copyright: this._glTF.asset?.copyright,\n containsPointCloud: this._containsPointCloud,\n template: createGraphicTemplate({\n nodes: templateNodes,\n batch,\n branch,\n noDispose,\n }),\n };\n }\n\n public readGltfAndCreateGeometry(transformToRoot?: Transform, needNormals = false, needParams = false): RealityTileGeometry {\n const transformStack = new TransformStack(this.getTileTransform(transformToRoot));\n const polyfaces: IndexedPolyface[] = [];\n for (const nodeKey of this._sceneNodes) {\n const node = this._nodes[nodeKey];\n if (node)\n this.readNodeAndCreatePolyfaces(polyfaces, node, transformStack, needNormals, needParams);\n }\n\n return { polyfaces };\n }\n\n private geometryFromMeshData(gltfMesh: GltfPrimitiveData, isInstanced: boolean): RenderGeometry | undefined {\n if (\"pointcloud\" === gltfMesh.type)\n return this._system.createPointCloudGeometry(gltfMesh);\n\n if (!gltfMesh.points || !gltfMesh.pointRange)\n return this._system.createGeometryFromMesh(gltfMesh.primitive, undefined);\n\n let realityMeshPrimitive = (this._vertexTableRequired || isInstanced) ? undefined : RealityMeshParams.fromGltfMesh(gltfMesh);\n if (realityMeshPrimitive && this._tileData) {\n\n realityMeshPrimitive = {\n ...realityMeshPrimitive,\n tileData: this._tileData,\n };\n }\n\n if (realityMeshPrimitive) {\n const realityMesh = this._system.createRealityMeshGeometry(realityMeshPrimitive);\n if (realityMesh)\n return realityMesh;\n }\n\n const mesh = gltfMesh.primitive;\n const pointCount = gltfMesh.points.length / 3;\n assert(mesh.points instanceof QPoint3dList);\n mesh.points.fromTypedArray(gltfMesh.pointRange, gltfMesh.points);\n if (mesh.triangles && gltfMesh.indices)\n mesh.triangles.addFromTypedArray(gltfMesh.indices);\n\n if (gltfMesh.uvs && gltfMesh.uvRange && gltfMesh.uvQParams) {\n /** This is ugly and inefficient... unnecessary if Mesh stored uvs as QPoint2dList */\n for (let i = 0, j = 0; i < pointCount; i++)\n mesh.uvParams.push(gltfMesh.uvQParams.unquantize(gltfMesh.uvs[j++], gltfMesh.uvs[j++]));\n }\n\n if (gltfMesh.normals)\n for (const normal of gltfMesh.normals)\n mesh.normals.push(new OctEncodedNormal(normal));\n\n return this._system.createGeometryFromMesh(mesh, undefined, this._tileData,);\n }\n\n private readInstanceAttributes(node: Gltf2Node, featureTable: FeatureTable | undefined): InstancedGraphicParams | undefined {\n const ext = node.extensions?.EXT_mesh_gpu_instancing;\n if (!ext || !ext.attributes) {\n return undefined;\n }\n\n const translationsView = this.getBufferView(ext.attributes, \"TRANSLATION\");\n const translations = translationsView?.toBufferData(GltfDataType.Float);\n const rotations = this.getBufferView(ext.attributes, \"ROTATION\")?.toBufferData(GltfDataType.Float);\n const scales = this.getBufferView(ext.attributes, \"SCALE\")?.toBufferData(GltfDataType.Float);\n\n // All attributes must specify the same count, count must be greater than zero, and at least one attribute must be specified.\n const count = translations?.count ?? rotations?.count ?? scales?.count;\n if (!count || (rotations && rotations.count !== count) || (scales && scales.count !== count)) {\n return undefined;\n }\n\n const transformCenter = new Point3d();\n const trMin = translationsView?.accessor.min;\n const trMax = translationsView?.accessor.max;\n if (trMin && trMax) {\n const half = (idx: number): number => trMin[idx] + (trMax[idx] - trMin[idx]) / 2;\n transformCenter.set(half(0), half(1), half(2));\n }\n\n const getTranslation = (index: number): [number, number, number] | undefined => {\n if (!translations) {\n return undefined;\n }\n\n index *= 3;\n return [\n translations.buffer[index + 0] - transformCenter.x,\n translations.buffer[index + 1] - transformCenter.y,\n translations.buffer[index + 2] - transformCenter.z,\n ];\n };\n\n const getRotation = (index: number): [number, number, number, number] | undefined => {\n index *= 4;\n return rotations ? [rotations.buffer[index], rotations.buffer[index + 1], rotations.buffer[index + 2], rotations.buffer[index + 3]] : undefined;\n };\n\n const getScale = (index: number): [number, number, number] | undefined => {\n index *= 3;\n return scales ? [scales.buffer[index], scales.buffer[index + 1], scales.buffer[index + 2]] : undefined;\n };\n\n const transforms = new Float32Array(3 * 4 * count);\n const transform = Transform.createIdentity();\n for (let i = 0; i < count; i++) {\n const tf = trsMatrix(getTranslation(i), getRotation(i), getScale(i), transform);\n const idx = i * 3 * 4;\n transforms[idx + 0] = tf.matrix.coffs[0];\n transforms[idx + 1] = tf.matrix.coffs[1];\n transforms[idx + 2] = tf.matrix.coffs[2];\n transforms[idx + 3] = tf.origin.x;\n transforms[idx + 4] = tf.matrix.coffs[3];\n transforms[idx + 5] = tf.matrix.coffs[4];\n transforms[idx + 6] = tf.matrix.coffs[5];\n transforms[idx + 7] = tf.origin.y;\n transforms[idx + 8] = tf.matrix.coffs[6];\n transforms[idx + 9] = tf.matrix.coffs[7];\n transforms[idx + 10] = tf.matrix.coffs[8];\n transforms[idx + 11] = tf.origin.z;\n }\n\n let featureIds = ((featureTable && featureTable.isUniform)) ? new Uint8Array(3 * count) : undefined;\n\n // Resolve instance features if the EXT_instance_features if present\n const instanceFeaturesExt = node.extensions?.EXT_instance_features;\n if(this._structuralMetadata && instanceFeaturesExt && this._idMap){\n if(!featureIds)\n featureIds = new Uint8Array(3 * count);\n // Resolve feature buffers before creating instance table\n const featureBuffers = new Map<number, GltfDataBuffer>();\n for(const featureIdDesc of instanceFeaturesExt.featureIds){\n\n if(featureIdDesc.attribute !== undefined){\n const bufferView = this.getBufferView(ext.attributes, `_FEATURE_ID_${ featureIdDesc.attribute}`);\n if(bufferView){\n const bufferData = bufferView.toBufferData(bufferView.type)?.buffer;\n if(bufferData){\n featureBuffers.set(featureIdDesc.attribute, bufferData);\n }\n }\n }\n }\n\n for(let localInstanceId = 0; localInstanceId < count; localInstanceId++){\n\n const instanceProps: any = {};\n for(const featureIdDesc of instanceFeaturesExt.featureIds){\n\n const table = this._structuralMetadata.tables[featureIdDesc.propertyTable];\n instanceProps[table.name] = {};\n // If the attribute is not defined, then the feature id corresponds to the instance id\n if(featureIdDesc.attribute === undefined){\n for(const entries of table.entries){\n if(entries.values[localInstanceId] !== undefined){\n instanceProps[table.name][entries.name] = entries.values[localInstanceId];\n }\n }\n } else if(featureBuffers.has(featureIdDesc.attribute)) {\n const featureBuffer = featureBuffers.get(featureIdDesc.attribute);\n if(!featureBuffer){\n continue;\n }\n const featureId = featureBuffer[localInstanceId];\n\n if(featureIdDesc.nullFeatureId !== undefined && featureId === featureIdDesc.nullFeatureId){\n continue;\n }\n\n for(const entries of table.entries){\n if(entries.values[featureId] !== undefined){\n instanceProps[table.name][entries.name] = entries.values[featureId];\n }\n }\n }\n }\n\n const instanceElementId = this._idMap.getBatchId(instanceProps);\n\n // If the element id is already assigned to a previous instance,\n // reuse the previous feature id to avoid collision in the feature table\n if(!this._instanceElementIdToFeatureId.has(instanceElementId)){\n this._instanceElementIdToFeatureId.set(instanceElementId, this._instanceFeatures.length);\n this._instanceFeatures.push(new Feature(instanceElementId));\n }\n\n const instanceFeatureId = this._instanceElementIdToFeatureId.get(instanceElementId)!;\n featureIds[localInstanceId * 3 + 0] = instanceFeatureId & 0xFF;\n featureIds[localInstanceId * 3 + 1] = (instanceFeatureId >> 8) & 0xFF;\n featureIds[localInstanceId * 3 + 2] = (instanceFeatureId >> 16) & 0xFF;\n }\n }\n\n return { count, transforms, transformCenter, featureIds };\n }\n\n private readTemplateNodes(\n templateNodes: GraphicTemplateNode[],\n node: GltfNode,\n featureTable: FeatureTable | undefined,\n transformStack: TransformStack,\n batchInstances?: InstancedGraphicParams,\n pseudoRtcBias?: Vector3d\n ): TileReadStatus {\n if (undefined === node)\n return TileReadStatus.InvalidTileData;\n\n // IMPORTANT: Do not return without popping this node from the stack.\n transformStack.push(node);\n const thisTransform = transformStack.transform;\n\n const nodeInstances = !batchInstances && undefined !== node.mesh ? this.readInstanceAttributes(node, featureTable) : undefined;\n\n /**\n * This is a workaround for tiles generated by\n * context capture which have a large offset from the tileset origin that exceeds the\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\n * origin and there is no RTC supplied either with the B3DM of the GLTF.\n * as the vertices are supplied in a quantized format, applying the RTC bias to\n * quantization origin will make these tiles work correctly.\n */\n let thisBias;\n if (undefined !== pseudoRtcBias)\n thisBias = (undefined === thisTransform) ? pseudoRtcBias : thisTransform.matrix.multiplyInverse(pseudoRtcBias);\n\n for (const meshKey of getGltfNodeMeshIds(node)) {\n const nodeMesh = this._meshes[meshKey];\n if (nodeMesh?.primitives) {\n const meshes = this.readMeshPrimitives(node, featureTable, thisTransform, thisBias, nodeInstances);\n\n if (0 !== meshes.length) {\n const thisList: RenderGeometry[] = [];\n for (const mesh of meshes) {\n const geometry = this.geometryFromMeshData(mesh, !!batchInstances || !!nodeInstances);\n if (undefined !== geometry)\n thisList.push(geometry);\n }\n\n if (0 !== thisList.length) {\n templateNodes.push({\n geometry: thisList,\n transform: thisTransform && !thisTransform.isIdentity ? thisTransform : undefined,\n instances: batchInstances ?? nodeInstances,\n });\n }\n }\n }\n }\n\n if (node.children) {\n for (const childId of node.children) {\n const child = this._nodes[childId];\n if (child)\n this.readTemplateNodes(templateNodes, child, featureTable, transformStack, batchInstances ?? nodeInstances);\n }\n }\n\n transformStack.pop();\n return TileReadStatus.Success;\n }\n\n private readNodeAndCreatePolyfaces(polyfaces: IndexedPolyface[], node: GltfNode, transformStack: TransformStack, needNormals: boolean, needParams: boolean): void {\n // IMPORTANT: Do not return without popping this node from the stack.\n transformStack.push(node);\n const meshes = this.readMeshPrimitives(node);\n\n for (const mesh of meshes) {\n if (mesh.type === \"mesh\") {\n const polyface = this.polyfaceFromGltfMesh(mesh, transformStack.transform, needNormals, needParams);\n if (polyface)\n polyfaces.push(polyface);\n }\n }\n\n if (node.children) {\n for (const childId of node.children) {\n const child = this._nodes[childId];\n if (child)\n this.readNodeAndCreatePolyfaces(polyfaces, child, transformStack, needNormals, needParams);\n }\n }\n }\n\n private polyfaceFromGltfMesh(mesh: GltfMeshData, transform: Transform | undefined , needNormals: boolean, needParams: boolean): IndexedPolyface | undefined {\n if (!mesh.pointQParams || !mesh.points || !mesh.indices)\n return undefined;\n\n const { points, pointQParams, normals, uvs, uvQParams, indices } = mesh;\n\n const includeNormals = needNormals && undefined !== normals;\n const includeParams = needParams && undefined !== uvQParams && undefined !== uvs;\n\n const polyface = IndexedPolyface.create(includeNormals, includeParams);\n for (let i = 0; i < points.length; ) {\n const point = pointQParams.unquantize(points[i++], points[i++], points[i++]);\n if (transform)\n transform.multiplyPoint3d(point, point);\n\n polyface.addPoint(point);\n }\n\n if (includeNormals && normals)\n for (let i = 0; i < normals.length; )\n polyface.addNormal(OctEncodedNormal.decodeValue(normals[i++]));\n\n if (includeParams && uvs && uvQParams)\n for (let i = 0; i < uvs.length; )\n polyface.addParam(uvQParams.unquantize(uvs[i++], uvs[i++]));\n\n let j = 0;\n for (const index of indices) {\n polyface.addPointIndex(index);\n if (includeNormals)\n polyface.addNormalIndex(index);\n\n if (includeParams)\n polyface.addParamIndex(index);\n\n if (0 === (++j % 3))\n polyface.terminateFacet();\n }\n\n return polyface;\n }\n\n // ###TODO what is the actual type of `json`?\n public getBufferView(json: { [k: string]: any }, accessorName: string): GltfBufferView | undefined {\n try {\n const accessorValue = JsonUtils.asString(json[accessorName]);\n const accessor = accessorValue ? this._accessors[accessorValue] : undefined;\n if (!accessor)\n return undefined;\n\n const bufferViewAccessorValue = accessor.bufferView;\n const bufferView = undefined !== bufferViewAccessorValue ? this._bufferViews[bufferViewAccessorValue] : undefined;\n if (!bufferView)\n return undefined;\n\n let bufferData = bufferView.resolvedBuffer;\n if (!bufferData) {\n if (undefined === bufferView.buffer)\n return undefined;\n\n const buffer = this._buffers[bufferView.buffer];\n bufferData = buffer?.resolvedBuffer;\n }\n\n if (!bufferData)\n return undefined;\n\n const type = accessor.componentType;\n let dataSize = 0;\n switch (type) {\n case GltfDataType.UnsignedByte:\n dataSize = 1;\n break;\n case GltfDataType.UnsignedShort:\n dataSize = 2;\n break;\n case GltfDataType.UInt32:\n case GltfDataType.Float:\n dataSize = 4;\n break;\n default:\n return undefined;\n }\n let componentCount = 1;\n switch (accessor.type) {\n case \"VEC4\":\n componentCount = 4;\n break;\n case \"VEC3\":\n componentCount = 3;\n break;\n case \"VEC2\":\n componentCount = 2;\n break;\n }\n\n const byteStride = bufferView.byteStride ? bufferView.byteStride : componentCount * dataSize;\n const offset = ((bufferView && bufferView.byteOffset) ? bufferView.byteOffset : 0) + (accessor.byteOffset ? accessor.byteOffset : 0);\n const length = byteStride * accessor.count;\n\n // If the data is misaligned (Scalable mesh tile publisher) use slice to copy -- else use subarray.\n const aligned = 0 === (bufferData.byteOffset + offset) % dataSize;\n const bytes = aligned ? bufferData.subarray(offset, offset + length) : bufferData.slice(offset, offset + length);\n return new GltfBufferView(bytes, accessor.count, type, accessor, byteStride / dataSize);\n } catch {\n return undefined;\n }\n }\n\n public readBufferData32(json: { [k: string]: any }, accessorName: string): GltfBufferData | undefined { return this.readBufferData(json, accessorName, GltfDataType.UInt32); }\n public readBufferData16(json: { [k: string]: any }, accessorName: string): GltfBufferData | undefined { return this.readBufferData(json, accessorName, GltfDataType.UnsignedShort); }\n public readBufferData8(json: { [k: string]: any }, accessorName: string): GltfBufferData | undefined { return this.readBufferData(json, accessorName, GltfDataType.UnsignedByte); }\n public readBufferDataFloat(json: { [k: string]: any }, accessorName: string): GltfBufferData | undefined { return this.readBufferData(json, accessorName, GltfDataType.Float); }\n\n protected constructor(args: GltfReaderArgs & { tileData?: LayerTileData }) {\n this._tileData = args.tileData;\n this._glTF = args.props.glTF;\n this._version = args.props.version;\n this._yAxisUp = args.props.yAxisUp;\n this._baseUrl = args.props.baseUrl;\n\n const rtcCenter = args.props.glTF.extensions?.CESIUM_RTC?.center;\n if (rtcCenter && 3 === rtcCenter.length)\n if (0 !== rtcCenter[0] || 0 !== rtcCenter[1] || 0 !== rtcCenter[2])\n this._returnToCenter = Point3d.fromJSON(rtcCenter);\n\n this._iModel = args.iModel;\n this._is3d = true !== args.is2d;\n this._system = args.system ?? IModelApp.renderSystem;\n this._type = args.type ?? BatchType.Primary;\n this._canceled = args.shouldAbort;\n this._deduplicateVertices = args.deduplicateVertices ?? false;\n this._vertexTableRequired = args.vertexTableRequired ?? false;\n\n const binaryData = args.props.binaryData;\n if (binaryData) {\n const buffer = this._buffers[this._version === 2 ? 0 : \"binary_glTF\"];\n if (buffer && undefined === buffer.uri)\n buffer.resolvedBuffer = binaryData;\n }\n\n // The original implementation of GltfReader would process and produce graphics for every node in glTF.nodes.\n // What it's *supposed* to do is process the nodes in glTF.scenes[glTF.scene].nodes\n // Some nodes may not be referenced by the configured scene, or only indirectly via GltfNode.children.\n // Perhaps some faulty tiles existed that didn't define their scenes properly?\n let sceneNodes;\n if (this._glTF.scenes && undefined !== this._glTF.scene)\n sceneNodes = this._glTF.scenes[this._glTF.scene]?.nodes;\n\n if (!sceneNodes)\n sceneNodes = Object.keys(this._nodes);\n\n this._sceneNodes = sceneNodes;\n this._idMap = args.idMap;\n }\n\n protected readBufferData(json: { [k: string]: any }, accessorName: string, type: GltfDataType): GltfBufferData | undefined {\n const view = this.getBufferView(json, accessorName);\n return undefined !== view ? view.toBufferData(type) : undefined;\n }\n\n protected readFeatureIndices(_json: any): number[] | undefined { return undefined; }\n\n private extractId(value: any): string | undefined {\n switch (typeof value) {\n case \"string\":\n return value;\n case \"number\":\n return value.toString();\n default:\n return undefined;\n }\n }\n\n private extractTextureId(material: GltfMaterial): string | undefined {\n if (typeof material !== \"object\")\n return undefined;\n\n // Bimium's shader value...almost certainly obsolete at this point.\n if (isGltf1Material(material))\n return material.diffuse ?? this.extractId(material.values?.tex);\n\n // KHR_techniques_webgl extension\n const techniques = this._glTF.extensions?.KHR_techniques_webgl?.techniques;\n const ext = Array.isArray(techniques) ? material.extensions?.KHR_techniques_webgl : undefined;\n if (techniques && undefined !== ext && typeof(ext.values) === \"object\") {\n const uniforms = typeof ext.technique === \"number\" ? techniques[ext.technique].uniforms : undefined;\n if (typeof uniforms === \"object\") {\n for (const uniformName of Object.keys(uniforms)) {\n const uniform = uniforms[uniformName];\n if (typeof uniform === \"object\" && uniform.type === GltfDataType.Sampler2d)\n return this.extractId((ext.values[uniformName] as any)?.index);\n }\n }\n }\n\n const id = this.extractId(material.pbrMetallicRoughness?.baseColorTexture?.index);\n return id ?? this.extractId(material.emissiveTexture?.index);\n }\n\n private extractNormalMapId(material: GltfMaterial): string | undefined {\n if (typeof material !== \"object\")\n return undefined;\n\n if (isGltf1Material(material))\n return undefined;\n\n return this.extractId(material.normalTexture?.index);\n }\n\n private isMaterialTransparent(material: GltfMaterial): boolean {\n if (isGltf1Material(material)) {\n if (this._glTF.techniques && undefined !== material.technique) {\n const technique = this._glTF.techniques[material.technique];\n if (technique?.states?.enable?.some((state: GltfTechniqueState) => state === GltfTechniqueState.Blend))\n return true;\n }\n\n return false;\n } else {\n // Default: OPAQUE.\n // ###TODO support MASK. For now treat as opaque.\n return \"BLEND\" === material.alphaMode;\n }\n }\n\n protected createDisplayParams(material: GltfMaterial, hasBakedLighting: boolean): DisplayParams | undefined {\n const isTransparent = this.isMaterialTransparent(material);\n const textureId = this.extractTextureId(material);\n const normalMapId = this.extractNormalMapId(material);\n let textureMapping = (undefined !== textureId || undefined !== normalMapId) ? this.findTextureMapping(textureId, isTransparent, normalMapId) : undefined;\n const color = colorFromMaterial(material, isTransparent);\n let renderMaterial: RenderMaterial | undefined;\n if (undefined !== textureMapping && undefined !== textureMapping.normalMapParams) {\n const args: CreateRenderMaterialArgs = { diffuse: { color }, specular: { color: ColorDef.white }, textureMapping };\n renderMaterial = IModelApp.renderSystem.createRenderMaterial(args);\n\n // DisplayParams doesn't want a separate texture mapping if the material already has one.\n textureMapping = undefined;\n\n }\n\n return new DisplayParams(DisplayParams.Type.Mesh, color, color, 1, LinePixels.Solid, FillFlags.None, renderMaterial, undefined, hasBakedLighting, textureMapping);\n }\n\n private readMeshPrimitives(node: GltfNode, featureTable?: FeatureTable, thisTransform?: Transform, thisBias?: Vector3d, instances?: InstancedGraphicParams): GltfPrimitiveData[] {\n const meshes: GltfPrimitiveData[] = [];\n for (const meshKey of getGltfNodeMeshIds(node)) {\n const nodeMesh = this._meshes[meshKey];\n const primitives = getMeshPrimitives(nodeMesh);\n if (primitives) {\n for (const primitive of primitives) {\n const mesh = this.readMeshPrimitive(primitive, featureTable, thisBias);\n if (mesh) {\n meshes.push(mesh);\n if (this._computedContentRange && mesh.pointRange) {\n const meshRange = thisTransform ? thisTransform .multiplyRange(mesh.pointRange) : mesh.pointRange;\n if (!instances) {\n this._computedContentRange.extendRange(meshRange);\n } else {\n const tfs = instances.transforms;\n const nodeRange = new Range3d();\n const extendTransformedRange = (i: number, x: number, y: number, z: number) => {\n nodeRange.extendXYZ(tfs[i + 3] + tfs[i + 0] * x + tfs[i + 1] * y + tfs[i + 2] * z,\n tfs[i + 7] + tfs[i + 4] * x + tfs[i + 5] * y + tfs[i + 6] * z,\n tfs[i + 11] + tfs[i + 8] * x + tfs[i + 9] * y + tfs[i + 10] * z);\n };\n\n for (let i = 0; i < tfs.length; i += 3 * 4) {\n extendTransformedRange(i, meshRange.low.x, meshRange.low.y, meshRange.low.z);\n extendTransformedRange(i, meshRange.low.x, meshRange.low.y, meshRange.high.z);\n extendTransformedRange(i, meshRange.low.x, meshRange.high.y, meshRange.low.z);\n extendTransformedRange(i, meshRange.low.x, meshRange.high.y, meshRange.high.z);\n extendTransformedRange(i, meshRange.high.x, meshRange.low.y, meshRange.low.z);\n extendTransformedRange(i, meshRange.high.x, meshRange.low.y, meshRange.high.z);\n extendTransformedRange(i, meshRange.high.x, meshRange.high.y, meshRange.low.z);\n extendTransformedRange(i, meshRange.high.x, meshRange.high.y, meshRange.high.z);\n }\n\n nodeRange.low.addInPlace(instances.transformCenter);\n nodeRange.high.addInPlace(instances.transformCenter);\n\n this._computedContentRange.extendRange(nodeRange);\n }\n }\n }\n }\n }\n }\n\n return meshes;\n }\n\n protected readMeshPrimitive(primitive: GltfMeshPrimitive, featureTable?: FeatureTable, pseudoRtcBias?: Vector3d): GltfPrimitiveData | undefined {\n const meshMode = JsonUtils.asInt(primitive.mode, GltfMeshMode.Triangles);\n if (meshMode === GltfMeshMode.Points /* && !this._vertexTableRequired */) {\n const pointCloud = this.readPointCloud2(primitive, undefined !== featureTable);\n if (pointCloud)\n return pointCloud;\n }\n\n const materialName = JsonUtils.asString(primitive.material);\n const material = 0 < materialName.length ? this._materials[materialName] : { };\n if (!material)\n return undefined;\n\n const hasBakedLighting = undefined === primitive.attributes.NORMAL || undefined !== material.extensions?.KHR_materials_unlit;\n const displayParams = material ? this.createDisplayParams(material, hasBakedLighting) : undefined;\n if (!displayParams)\n return undefined;\n\n let primitiveType: number = -1;\n switch (meshMode) {\n case GltfMeshMode.Lines:\n case GltfMeshMode.LineStrip:\n primitiveType = MeshPrimitiveType.Polyline;\n break;\n\n case GltfMeshMode.Points:\n primitiveType = MeshPrimitiveType.Point;\n break;\n\n case GltfMeshMode.Triangles:\n primitiveType = MeshPrimitiveType.Mesh;\n break;\n\n default:\n return undefined;\n }\n\n const isVolumeClassifier = this._isVolumeClassifier;\n const meshPrimitive = Mesh.create({\n displayParams,\n features: featureTable,\n type: primitiveType,\n range: Range3d.createNull(),\n is2d: !this._is3d,\n isPlanar: false,\n hasBakedLighting,\n isVolumeClassifier,\n quantizePositions: true,\n });\n\n const mesh = new GltfMeshData(meshPrimitive);\n\n // ###TODO_GLTF: There can be more than one color attribute; COLOR_0 might not be the one we want.\n if (!this.readColors(mesh, primitive.attributes, \"COLOR_0\")) {\n // We don't have real colormap - just load material color. This will be used if non-Bentley\n // tile or fit the color table is uniform. For a non-Bentley, non-Uniform, we'll set the\n // uv parameters to pick the colors out of the color map texture.\n meshPrimitive.colorMap.insert(displayParams.fillColor.tbgr); // White...\n // _COLORINDEX is an ancient holdover from glTF 1.0 and Bimium...unlikely to actually encounter it in the wild.\n const colorIndices = this.readBufferData16(primitive.attributes, \"_COLORINDEX\");\n if (undefined !== colorIndices && material) {\n let texStep;\n if (isGltf1Material(material))\n texStep = material.values?.texStep;\n else\n texStep = material.extensions?.KHR_techniques_webgl?.values?.u_texStep;\n\n if (texStep) {\n const uvParams = [];\n for (let i = 0; i < colorIndices.count; i++)\n uvParams.push(new Point2d(texStep[1] + texStep[0] * colorIndices.buffer[i], .5));\n\n const paramList = QPoint2dList.fromPoints(uvParams);\n mesh.uvs = paramList.toTypedArray();\n mesh.uvQParams = paramList.params;\n }\n }\n }\n\n const draco = primitive.extensions?.KHR_draco_mesh_compression;\n if (draco)\n return this.readDracoMeshPrimitive(mesh.primitive, draco) ? mesh : undefined;\n\n this.readBatchTable(mesh.primitive, primitive);\n if (mesh.primitive.features) {\n const features = this.readPrimitiveFeatures(primitive);\n if (features) {\n if (features instanceof Feature)\n mesh.primitive.features.add(features, 1);\n else\n mesh.primitive.features.setIndices(features);\n }\n }\n\n if (!this.readVertices(mesh, primitive, pseudoRtcBias))\n return undefined;\n\n switch (primitiveType) {\n case MeshPrimitiveType.Mesh: {\n if (!this.readMeshIndices(mesh, primitive))\n return undefined;\n\n if (!displayParams.ignoreLighting && !this.readNormals(mesh, primitive.attributes, \"NORMAL\"))\n return undefined;\n\n if (!mesh.uvs) {\n let texCoordIndex = 0;\n if (!isGltf1Material(material) && undefined !== material.pbrMetallicRoughness?.baseColorTexture?.texCoord)\n texCoordIndex = JsonUtils.asInt(material.pbrMetallicRoughness.baseColorTexture.texCoord);\n\n this.readUVParams(mesh, primitive.attributes, `TEXCOORD_${texCoordIndex}`);\n }\n\n if (this._deduplicateVertices && !this.deduplicateVertices(mesh))\n return undefined;\n\n break;\n }\n\n case MeshPrimitiveType.Polyline:\n case MeshPrimitiveType.Point: {\n assert(meshMode === GltfMeshMode.Points || meshMode === GltfMeshMode.Lines || meshMode === GltfMeshMode.LineStrip);\n if (undefined !== mesh.primitive.polylines && !this.readPolylines(mesh.primitive.polylines, primitive, \"indices\", meshMode))\n return undefined;\n break;\n }\n default: {\n assert(false, \"unhandled primitive type\");\n return undefined;\n }\n }\n\n if (displayParams.textureMapping && !mesh.uvs)\n return undefined;\n\n if (primitive.extensions?.CESIUM_primitive_outline) {\n const data = this.readBufferData32(primitive.extensions.CESIUM_primitive_outline, \"indices\");\n if (data !== undefined) {\n assert(0 === data.count % 2);\n mesh.primitive.edges = new MeshEdges();\n for (let i = 0; i < data.count;)\n mesh.primitive.edges.visible.push(new MeshEdge(data.buffer[i++], data.buffer[i++]));\n }\n } else if (primitive.extensions?.EXT_mesh_primitive_edge_visibility) {\n const ext = primitive.extensions.EXT_mesh_primitive_edge_visibility;\n const visibility = this.readBufferData8(ext, \"visibility\");\n if (visibility) {\n const indices = mesh.indices;\n assert(indices !== undefined);\n assert(visibility.buffer instanceof Uint8Array);\n\n const silhouetteNormals = this.readBufferData16(ext, \"silhouetteNormals\");\n const normalPairs = silhouetteNormals ? new Uint32Array(silhouetteNormals.buffer.buffer, silhouetteNormals.buffer.byteOffset, silhouetteNormals.buffer.byteLength / 4) : undefined;\n mesh.primitive.edges = new MeshEdges();\n\n for (const edge of compactEdgeIterator(visibility.buffer, normalPairs, indices.length, (idx) => indices[idx])) {\n if (undefined === edge.normals) {\n mesh.primitive.edges.visible.push(new MeshEdge(edge.index0, edge.index1));\n } else {\n mesh.primitive.edges.silhouette.push(new MeshEdge(edge.index0, edge.index1));\n const normal0 = new OctEncodedNormal(edge.normals & 0x0000ffff);\n const normal1 = new OctEncodedNormal(edge.normals >>> 16);\n mesh.primitive.edges.silhouetteNormals.push(new OctEncodedNormalPair(normal0, normal1));\n }\n }\n }\n\n const lineStrings = ext.lineStrings;\n if (lineStrings) {\n for (const extLineString of lineStrings) {\n const polylineIndices = this.readBufferData32(extLineString, \"indices\");\n if (polylineIndices) {\n if (!mesh.primitive.edges) {\n mesh.primitive.edges = new MeshEdges();\n }\n\n const curGroup: MeshPolylineGroup = {\n appearance: this.getEdgeAppearance(extLineString.material),\n polylines: [],\n };\n \n const curLineString: number[] = [];\n for (const index of polylineIndices.buffer) {\n if (index === 0xffffffff) {\n if (curLineString.length > 1) {\n curGroup.polylines.push(new MeshPolyline(curLineString));\n }\n\n curLineString.length = 0;\n } else {\n curLineString.push(index);\n }\n }\n\n if (curLineString.length > 1) {\n curGroup.polylines.push(new MeshPolyline(curLineString));\n }\n\n if (curGroup.polylines.length > 0) {\n mesh.primitive.edges.polylineGroups.push(curGroup);\n }\n }\n }\n }\n\n if (mesh.primitive.edges) {\n mesh.primitive.edges.appearance = this.getEdgeAppearance(ext.material);\n }\n }\n\n return mesh;\n }\n\n private getEdgeAppearance(materialId: GltfId | undefined): EdgeAppearanceOverrides | undefined {\n const material = undefined !== materialId ? this._materials[materialId] : undefined;\n const displayParams = material ? this.createDisplayParams(material, false) : undefined;\n if (displayParams) {\n return { color: displayParams.lineColor };\n }\n\n return undefined;\n }\n\n private readPointCloud2(primitive: GltfMeshPrimitive, hasFeatures: boolean): GltfPointCloud | undefined {\n let pointRange: Range3d | undefined;\n let positions: Uint8Array | Uint16Array | Float32Array;\n let qparams: QParams3d | undefined;\n\n const posView = this.getBufferView(primitive.attributes, \"POSITION\");\n switch (posView?.type) {\n case GltfDataType.Float: {\n const posData = posView.toBufferData(GltfDataType.Float);\n if (!(posData?.buffer instanceof Float32Array)) {\n return undefined;\n }\n\n positions = posData.buffer;\n const strideSkip = posView.stride - 3;\n pointRange = new Range3d();\n for (let i = 0; i < positions.length; i += strideSkip) {\n pointRange.extendXYZ(positions[i++], positions[i++], positions[i++]);\n }\n\n qparams = QParams3d.fromOriginAndScale(new Point3d(0, 0, 0), new Point3d(1, 1, 1));\n break;\n }\n case GltfDataType.UnsignedByte:\n case GltfDataType.UnsignedShort: {\n const posData = posView.toBufferData(posView.type);\n if (!(posData?.buffer instanceof Uint8Array || posData?.buffer instanceof Uint16Array)) {\n return undefined;\n }\n\n positions = posData.buffer;\n let min, max;\n const ext = posView.accessor.extensions?.WEB3D_quantized_attributes;\n if (ext) {\n min = ext.decodedMin;\n max = ext.decodedMax;\n } else {\n // Assume KHR_mesh_quantization...\n min = [0, 0, 0];\n if (GltfDataType.UnsignedShort === posView.type)\n max = [0xFFFF, 0xFFFF, 0xFFFF];\n else\n max = [0xFF, 0xFF, 0xFF];\n }\n\n if (undefined === min || undefined === max) {\n return undefined;\n }\n\n pointRange = Range3d.createXYZXYZ(min[0], min[1], min[2], max[0], max[1], max[2]);\n qparams = QParams3d.fromRange(pointRange);\n break;\n }\n default:\n return undefined;\n }\n\n const colorView = this.getBufferView(primitive.attributes, \"COLOR_0\");\n if (!colorView || GltfDataType.UnsignedByte !== colorView.type)\n return undefined;\n\n const colorData = colorView.toBufferData(GltfDataType.UnsignedByte);\n if (!(colorData?.buffer instanceof Uint8Array))\n return undefined;\n\n let colors = colorData.buffer;\n if (\"VEC4\" === colorView.accessor.type) {\n // ###TODO support transparent point clouds\n colors = new Uint8Array(colorData.count * 3);\n for (let i = 0; i < colorData.count; i++) {\n const srcIdx = colorView.stride * i;\n const dstIdx = 3 * i;\n for (let j = 0; j < 3; j++)\n colors[dstIdx + j] = colorData.buffer[srcIdx + j];\n }\n }\n\n const features = new FeatureIndex();\n if (hasFeatures) {\n features.type = FeatureIndexType.Uniform;\n }\n\n this._containsPointCloud = true;\n return {\n type: \"pointcloud\",\n positions,\n qparams,\n pointRange,\n colors,\n colorFormat: \"rgb\",\n features,\n // ###TODO: If tile does not use additive refinement, compute voxelSize based on point range.\n // Additive refinement is typical of the glTF point clouds we receive from Orbit.\n voxelSize: 0,\n };\n }\n\n private readDracoMeshPrimitive(mesh: Mesh, ext: DracoMeshCompression): boolean {\n const draco = this._dracoMeshes.get(ext);\n if (!draco || \"triangle-list\" !== draco.topology)\n return false;\n\n const indices = draco.indices?.value;\n if (!indices || (indices.length % 3) !== 0)\n return false;\n\n const pos = draco.attributes.POSITION?.value;\n if (!pos || (pos.length % 3) !== 0)\n return false;\n\n // ###TODO: I have yet to see a draco-encoded mesh with interleaved attributes. Currently not checking.\n const triangle = new Triangle();\n for (let i = 0; i < indices.length; i += 3) {\n triangle.setIndices(indices[i], indices[i + 1], indices[i + 2]);\n mesh.addTriangle(triangle);\n }\n\n let posRange: Range3d;\n const bbox = draco.header?.boundingBox;\n if (bbox) {\n posRange = Range3d.createXYZXYZ(bbox[0][0], bbox[0][1], bbox[0][2], bbox[1][0], bbox[1][1], bbox[1][2]);\n } else {\n posRange = Range3d.createNull();\n for (let i = 0; i < pos.length; i += 3)\n posRange.extendXYZ(pos[i], pos[i + 1], pos[i + 2]);\n }\n\n assert(mesh.points instanceof QPoint3dList);\n mesh.points.params.setFromRange(posRange);\n const pt = Point3d.createZero();\n for (let i = 0; i < pos.length; i += 3) {\n pt.set(pos[i], pos[i + 1], pos[i + 2]);\n mesh.points.add(pt);\n }\n\n const normals = draco.attributes.NORMAL?.value;\n if (normals && (normals.length % 3) === 0) {\n const vec = Vector3d.createZero();\n for (let i = 0; i < normals.length; i += 3) {\n vec.set(normals[i], normals[i + 1], normals[i + 2]);\n mesh.normals.push(OctEncodedNormal.fromVector(vec));\n }\n }\n\n const uvs = draco.attributes.TEXCOORD_0?.value;\n if (uvs && (uvs.length % 2) === 0)\n for (let i = 0; i < uvs.length; i += 2)\n mesh.uvParams.push(new Point2d(uvs[i], uvs[i + 1]));\n\n const batchIds = draco.attributes._BATCHID?.value;\n if (batchIds && mesh.features) {\n const featureIndices = [];\n for (const batchId of batchIds)\n featureIndices.push(batchId);\n\n mesh.features.setIndices(featureIndices);\n }\n\n return true;\n }\n\n private deduplicateVertices(mesh: GltfMeshData): boolean {\n if (!mesh.points || !mesh.indices)\n return false;\n\n const numPoints = mesh.indices.length;\n assert(0 === numPoints % 3);\n\n const indices = mesh.indices;\n if (indices instanceof Uint16Array && numPoints > 0xffff)\n mesh.indices = new Uint32Array(numPoints);\n else if (indices instanceof Uint8Array && numPoints > 0xff)\n mesh.indices = new Uint32Array(numPoints);\n\n const points = new Uint16Array(3 * numPoints);\n const normals = mesh.normals ? new Uint16Array(numPoints) : undefined;\n const uvs = mesh.uvs ? new Uint16Array(2 * numPoints) : undefined;\n\n for (let i = 0; i < numPoints; i++) {\n const index = indices[i];\n mesh.indices[i] = i;\n\n points[i * 3 + 0] = mesh.points[index * 3 + 0];\n points[i * 3 + 1] = mesh.points[index * 3 + 1];\n points[i * 3 + 2] = mesh.points[index * 3 + 2];\n\n if (normals)\n normals[i] = mesh.normals![index];\n\n if (uvs) {\n uvs[i * 2 + 0] = mesh.uvs![index * 2 + 0];\n uvs[i * 2 + 1] = mesh.uvs![index * 2 + 1];\n }\n }\n\n mesh.points = points;\n mesh.normals = normals;\n mesh.uvs = uvs;\n\n return true;\n }\n\n /**\n *\n * @param positions quantized points\n * @param primitive input json\n * @param pseudoRtcBias a bias applied to each point - this is a workaround for tiles generated by\n * context capture which have a large offset from the tileset origin that exceeds the\n * capacity of 32 bit integers. This is essentially an ad hoc RTC applied at read time.\n */\n private readVertices(mesh: GltfMeshData, primitive: GltfMeshPrimitive, pseudoRtcBias?: Vector3d): boolean {\n const view = this.getBufferView(primitive.attributes, \"POSITION\");\n if (undefined === view)\n return false;\n\n if (GltfDataType.Float === view.type) {\n const buffer = view.toBufferData(GltfDataType.Float);\n if (undefined === buffer)\n return false;\n\n const strideSkip = view.stride - 3;\n mesh.pointRange = Range3d.createNull();\n for (let i = 0; i < buffer.buffer.length; i += strideSkip)\n mesh.pointRange.extendXYZ(buffer.buffer[i++], buffer.buffer[i++], buffer.buffer[i++]);\n\n const positions = new QPoint3dList(QParams3d.fromRange(mesh.pointRange));\n const scratchPoint = new Point3d();\n for (let i = 0, j = 0; i < buffer.count; i++, j += strideSkip) {\n scratchPoint.set(buffer.buffer[j++], buffer.buffer[j++], buffer.buffer[j++]);\n if (undefined !== pseudoRtcBias)\n scratchPoint.subtractInPlace(pseudoRtcBias);\n\n positions.add(scratchPoint);\n }\n mesh.pointQParams = positions.params;\n mesh.points = positions.toTypedArray();\n } else {\n if (GltfDataType.UnsignedShort !== view.type)\n return false;\n\n let rangeMin, rangeMax;\n const quantized = view.accessor.extensions?.WEB3D_quantized_attributes;\n if (quantized) {\n rangeMin = quantized.decodedMin;\n rangeMax = quantized.decodedMax;\n } else {\n // Assume KHR_mesh_quantization...\n rangeMin = [0, 0, 0];\n rangeMax = [0xFFFF, 0xFFFF, 0xFFFF];\n }\n\n if (undefined === rangeMin || undefined === rangeMax) // required by spec...\n return false;\n\n // ###TODO apply WEB3D_quantized_attributes.decodeMatrix? Have not encountered in the wild; glTF 1.0 only.\n const buffer = view.toBufferData(GltfDataType.UnsignedShort);\n if (undefined === buffer || !(buffer.buffer instanceof Uint16Array))\n return false;\n\n assert(buffer.buffer instanceof Uint16Array);\n mesh.pointRange = Range3d.createXYZXYZ(rangeMin[0], rangeMin[1], rangeMin[2], rangeMax[0], rangeMax[1], rangeMax[2]);\n if (undefined !== pseudoRtcBias) {\n mesh.pointRange.low.subtractInPlace(pseudoRtcBias);\n mesh.pointRange.high.subtractInPlace(pseudoRtcBias);\n }\n mesh.pointQParams = QParams3d.fromRange(mesh.pointRange);\n if (3 === view.stride) {\n mesh.points = buffer.buffer;\n } else {\n mesh.points = new Uint16Array(3 * view.count);\n for (let i = 0, j = 0; i < view.count; i++) {\n const index = i * view.stride;\n mesh.points[j++] = buffer.buffer[index];\n mesh.points[j++] = buffer.buffer[index + 1];\n mesh.points[j++] = buffer.buffer[index + 2];\n }\n }\n }\n\n return true;\n }\n\n protected readIndices(json: { [k: string]: any }, accessorName: string): number[] | undefined {\n const data = this.readBufferData32(json, accessorName);\n if (undefined === data)\n return undefined;\n\n const indices = [];\n for (let i = 0; i < data.count; i++)\n indices.push(data.buffer[i]);\n\n return indices;\n }\n\n protected readBatchTable(_mesh: Mesh, _json: GltfMeshPrimitive) {\n }\n\n protected readPrimitiveFeatures(primitive: GltfMeshPrimitive): Feature | number[] | undefined {\n const ext = primitive.extensions?.EXT_mesh_features;\n if (!ext || !primitive.attributes || !this._structuralMetadata || !this._idMap) {\n return undefined;\n }\n\n let vertexCount = 0;\n const featureIdBuffers = new Map<number, {buffer: GltfDataBuffer, stride: number}>();\n for(const featureIdDesc of ext.featureIds){\n if(featureIdDesc.attribute === undefined){\n continue;\n }\n const bufferView = this.getBufferView(primitive.attributes, `_FEATURE_ID_${featureIdDesc.attribute}`);\n const bufferData = bufferView?.toBufferData(bufferView.type);\n const buffer = bufferData?.buffer;\n if (!bufferView || !buffer) {\n return undefined;\n }\n vertexCount = bufferData.count ?? 0;\n featureIdBuffers.set(featureIdDesc.attribute, {buffer, stride: bufferView.stride});\n }\n\n const itwinFeatureIndices: number[] = [];\n const vertexPropsMap = new Map<string, string>();\n for (let vertexId = 0; vertexId < vertexCount; vertexId++) {\n let vertexUniqueId = \"\";\n for(const featureIdDesc of ext.featureIds){\n if (featureIdDesc.attribute === undefined) {\n continue;\n }\n const {buffer, stride} = featureIdBuffers.get(featureIdDesc.attribute)!;\n const featureId = buffer[vertexId * stride];\n const propertyTableId = featureIdDesc.propertyTable ?? 0;\n vertexUniqueId = `${vertexUniqueId}-${featureId}-${propertyTableId}`;\n }\n\n let vertexElementId;\n if(!vertexPropsMap.has(vertexUniqueId)){\n const vertexProps: any = {};\n\n for(const featureIdDesc of ext.featureIds){\n if (featureIdDesc.attribute === undefined) {\n continue;\n }\n const {buffer, stride} = featureIdBuffers.get(featureIdDesc.attribute)!;\n const featureId = buffer[vertexId * stride];\n\n const table = this._structuralMetadata.tables[featureIdDesc.propertyTable ?? 0];\n vertexProps[table.name] = {};\n for(const entries of table.entries){\n if(entries.values[featureId] !== undefined){\n vertexProps[table.name][entries.name] = entries.values[featureId];\n }\n }\n }\n\n vertexElementId = this._idMap.getBatchId(vertexProps);\n vertexPropsMap.set(vertexUniqueId, vertexElementId);\n\n // If the element id is already assigned to a previous vertex,\n // reuse the previous feature id to avoid collision in the feature table\n if(!this._meshElementIdToFeatureIndex.has(vertexElementId)){\n this._meshElementIdToFeatureIndex.set(vertexElementId, this._meshFeatures.length);\n this._meshFeatures.push(new Feature(vertexElementId));\n }\n }\n\n vertexElementId = vertexPropsMap.get(vertexUniqueId) ?? \"\";\n itwinFeatureIndices.push(this._meshElementIdToFeatureIndex.get(vertexElementId) ?? 0);\n }\n\n return itwinFeatureIndices;\n }\n\n protected readMeshIndices(mesh: GltfMeshData, json: { [k: string]: any }): boolean {\n if (undefined !== json.indices) {\n const data = this.readBufferData16(json, \"indices\") || this.readBufferData32(json, \"indices\");\n if (data && (data.buffer instanceof Uint8Array || data.buffer instanceof Uint16Array || data.buffer instanceof Uint32Array)) {\n mesh.indices = data.buffer;\n return true;\n }\n\n return false;\n }\n\n // Non-indexed geometry. Manufacture triangle indices from points.\n const numPoints = mesh.points?.length;\n if (undefined === numPoints || 0 !== numPoints % 3)\n return false;\n\n mesh.indices = numPoints < 255 ? new Uint8Array(numPoints) : (numPoints < 0xffff ? new Uint16Array(numPoints) : new Uint32Array(numPoints));\n for (let i = 0; i < numPoints; i++)\n mesh.indices[i] = i;\n\n return true;\n }\n\n protected readNormals(mesh: GltfMeshData, json: { [k: string]: any }, accessorName: string): boolean {\n const view = this.getBufferView(json, accessorName);\n if (undefined === view)\n return false;\n\n switch (view.type) {\n case GltfDataType.Float: {\n const data = view.toBufferData(GltfDataType.Float);\n if (undefined === data)\n return false;\n\n mesh.normals = new Uint16Array(data.count);\n const scratchNormal = new Vector3d();\n const strideSkip = view.stride - 3;\n for (let i = 0, j = 0; i < data.count; i++, j += strideSkip) {\n scratchNormal.set(data.buffer[j++], data.buffer[j++], data.buffer[j++]);\n mesh.normals[i] = OctEncodedNormal.encode(scratchNormal);\n }\n return true;\n }\n\n case GltfDataType.UnsignedByte: {\n const data = view.toBufferData(GltfDataType.UnsignedByte);\n if (undefined === data)\n return false;\n\n // ###TODO: we shouldn't have to allocate OctEncodedNormal objects...just use uint16s / numbers...\n mesh.normals = new Uint16Array(data.count);\n for (let i = 0; i < data.count; i++) {\n // ###TODO? not clear why ray writes these as pairs of uint8...\n const index = i * view.stride;\n const normal = data.buffer[index] | (data.buffer[index + 1] << 8);\n mesh.normals[i] = normal;\n }\n return true;\n }\n default:\n return false;\n }\n }\n\n protected readColors(mesh: GltfMeshData, attribute: { [k: string]: any }, accessorName: string): boolean {\n const view = this.getBufferView(attribute, accessorName);\n if (!view || (GltfDataType.Float !== view.type && GltfDataType.UnsignedByte !== view.type && GltfDataType.SignedByte !== view.type))\n return false;\n\n const data = view.toBufferData(view.type);\n if (!data)\n return false;\n\n const hasAlpha = \"VEC4\" === view.accessor.type;\n const factor = view.type === GltfDataType.Float ? 255 : 1;\n const rgbt = new Uint8Array(4);\n const color = new Uint32Array(rgbt.buffer);\n for (let i = 0; i < data.count; i++) {\n const index = view.stride * i;\n rgbt[0] = data.buffer[index] * factor;\n rgbt[1] = data.buffer[index + 1] * factor;\n rgbt[2] = data.buffer[index + 2] * factor;\n rgbt[3] = hasAlpha ? (255 - data.buffer[index + 3] * factor) : 0;\n mesh.primitive.colors.push(mesh.primitive.colorMap.insert(color[0]));\n }\n\n return true;\n }\n\n private readUVParams(mesh: GltfMeshData, json: { [k: string]: any }, accessorName: string): boolean {\n const view = this.getBufferView(json, accessorName);\n\n if (view === undefined)\n return false;\n\n switch (view.type) {\n case GltfDataType.Float: {\n const data = this.readBufferDataFloat(json, accessorName);\n if (!data)\n return false;\n\n mesh.uvRange = Range2d.createNull();\n\n for (let i = 0; i < data.count; i++) {\n const index = view.stride * i; // 2 float per param...\n mesh.uvRange.extendXY(data.buffer[index], data.buffer[index + 1]);\n }\n mesh.uvQParams = QParams2d.fromRange(mesh.uvRange);\n mesh.uvs = new Uint16Array(data.count * 2);\n for (let i = 0, j = 0; i < data.count; i++) {\n const index = view.stride * i; // 2 float per param...\n mesh.uvs[j++] = Quantization.quantize(data.buffer[index], mesh.uvQParams.origin.x, mesh.uvQParams.scale.x);\n mesh.uvs[j++] = Quantization.quantize(data.buffer[index + 1], mesh.uvQParams.origin.y, mesh.uvQParams.scale.y);\n }\n return true;\n }\n\n case GltfDataType.UnsignedShort: {\n const quantized = view.accessor.extensions?.WEB3D_quantized_attributes;\n const rangeMin = quantized?.decodedMin;\n const rangeMax = quantized?.decodedMax;\n if (undefined === rangeMin || undefined === rangeMax)\n return false;\n\n const qData = view.toBufferData(GltfDataType.UnsignedShort);\n if (undefined === qData || !(qData.buffer instanceof Uint16Array))\n return false;\n\n mesh.uvRange = Range2d.createXYXY(rangeMin[0], rangeMin[1], rangeMax[0], rangeMax[1]);\n mesh.uvQParams = QParams2d.fromRange(mesh.uvRange);\n if (2 === view.stride) {\n mesh.uvs = qData.buffer;\n } else {\n mesh.uvs = new Uint16Array(2 * view.count);\n for (let i = 0, j = 0; i < view.count; i++) {\n const index = i * view.stride;\n mesh.uvs[j++] = qData.buffer[index];\n mesh.uvs[j++] = qData.buffer[index + 1];\n }\n }\n return true;\n }\n default:\n assert(false);\n return false;\n\n }\n\n return true;\n }\n\n protected readPolylines(polylines: MeshPolylineList, json: { [k: string]: any }, accessorName: string, mode: GltfMeshMode.Points | GltfMeshMode.Lines | GltfMeshMode.LineStrip): boolean {\n const bufferView = this.getBufferView(json, accessorName);\n const data = bufferView?.toBufferData(GltfDataType.UInt32);\n if (undefined === data)\n return false;\n\n const indices = new Array<number>();\n switch (mode) {\n case GltfMeshMode.Points: {\n for (let i = 0; i < data.count;)\n indices.push(data.buffer[i++]);\n\n break;\n }\n case GltfMeshMode.Lines: {\n for (let i = 0; i < data.count;) {\n const index0 = data.buffer[i++];\n const index1 = data.buffer[i++];\n if (0 === indices.length || index0 !== indices[indices.length - 1]) {\n if (indices.length !== 0) {\n polylines.push(new MeshPolyline(indices));\n indices.length = 0;\n }\n indices.push(index0);\n }\n indices.push(index1);\n }\n\n break;\n }\n case GltfMeshMode.LineStrip: {\n assert(undefined !== bufferView); // compiler can't seem to infer this...\n const restart = GltfDataType.UnsignedByte === bufferView.type ? 0xff : (GltfDataType.UnsignedShort === bufferView.type ? 0xffff : 0xffffffff);\n for (const index of data.buffer) {\n if (index === restart) {\n if (indices.length > 1) {\n polylines.push(new MeshPolyline(indices));\n }\n\n indices.length = 0;\n } else {\n indices.push(index);\n }\n }\n break;\n }\n }\n\n if (indices.length !== 0)\n polylines.push(new MeshPolyline(indices));\n\n return true;\n }\n\n protected async resolveResources(): Promise<void> {\n // Load any external images and buffers.\n await this._resolveResources();\n\n // Decompress any meshopt-compressed buffer views\n const decodeMeshoptBuffers: Array<Promise<void>> = [];\n for (const bv of gltfDictionaryIterator(this._bufferViews)) {\n const ext = bv.extensions?.EXT_meshopt_compression;\n if (ext) {\n const bufferData = this._buffers[ext.buffer]?.resolvedBuffer;\n if (bufferData) {\n const source = new Uint8Array(bufferData.buffer, bufferData.byteOffset + (ext.byteOffset ?? 0), ext.byteLength ?? 0);\n const decode = async () => {\n bv.resolvedBuffer = await decodeMeshoptBuffer(source, ext);\n if (bv.resolvedBuffer) {\n bv.byteLength = bv.resolvedBuffer.byteLength;\n bv.byteOffset = 0;\n }\n };\n\n decodeMeshoptBuffers.push(decode());\n }\n }\n }\n\n await Promise.all(decodeMeshoptBuffers);\n\n // If any meshes are draco-compressed, dynamically load the decoder module and then decode the meshes.\n const dracoMeshes: DracoMeshCompression[] = [];\n\n for (const node of this.traverseScene()) {\n for (const meshId of getGltfNodeMeshIds(node)) {\n const mesh = this._meshes[meshId];\n if (mesh?.primitives)\n for (const primitive of mesh.primitives)\n if (primitive.extensions?.KHR_draco_mesh_compression)\n dracoMeshes.push(primitive.extensions.KHR_draco_mesh_compression);\n }\n }\n\n if (dracoMeshes.length === 0)\n return;\n\n try {\n const dracoLoader = (await import(\"@loaders.gl/draco\")).DracoLoader;\n await Promise.all(dracoMeshes.map(async (x) => this.decodeDracoMesh(x, dracoLoader)));\n } catch (err) {\n Logger.logWarning(FrontendLoggerCategory.Render, \"Failed to decode draco-encoded glTF mesh\");\n Logger.logException(FrontendLoggerCategory.Render, err);\n }\n }\n\n private async _resolveResources(): Promise<void> {\n // ###TODO traverse the scene nodes to find resources referenced by them, instead of resolving everything - some resources may not\n // be required for the scene.\n const promises: Array<Promise<void>> = [];\n try {\n for (const buffer of gltfDictionaryIterator(this._buffers))\n if (!buffer.resolvedBuffer)\n promises.push(this.resolveBuffer(buffer));\n\n await Promise.all(promises);\n if (this._isCanceled)\n return;\n\n promises.length = 0;\n for (const image of gltfDictionaryIterator(this._images))\n if (!image.resolvedImage)\n promises.push(this.resolveImage(image));\n\n await Promise.all(promises);\n } catch { }\n }\n\n private async decodeDracoMesh(ext: DracoMeshCompression, loader: typeof DracoLoader): Promise<void> {\n const bv = this._bufferViews[ext.bufferView];\n if (!bv || !bv.byteLength)\n return;\n\n let buf = this._buffers[bv.buffer]?.resolvedBuffer;\n if (!buf)\n return;\n\n const offset = bv.byteOffset ?? 0;\n buf = buf.subarray(offset, offset + bv.byteLength);\n const mesh = await loader.parse(buf, { }); // NB: `options` argument declared optional but will produce exception if not supplied.\n if (mesh)\n this._dracoMeshes.set(ext, mesh);\n }\n\n protected resolveUrl(uri: string): string | undefined {\n try {\n const resolved = new URL(uri, this._baseUrl);\n resolved.search = this._baseUrl?.search ?? \"\";\n return resolved.toString();\n } catch {\n return undefined;\n }\n }\n\n private async resolveBuffer(buffer: GltfBuffer & { resolvedBuffer?: Uint8Array }): Promise<void> {\n if (buffer.resolvedBuffer || undefined === buffer.uri)\n return;\n\n try {\n const url = this.resolveUrl(buffer.uri);\n const response = url ? await fetch(url) : undefined;\n if (this._isCanceled)\n return;\n\n const data = await response?.arrayBuffer();\n if (this._isCanceled)\n return;\n\n if (data)\n buffer.resolvedBuffer = new Uint8Array(data);\n } catch {\n //\n }\n }\n\n private async resolveImage(image: GltfImage & { resolvedImage?: TextureImageSource }): Promise<void> {\n if (image.resolvedImage)\n return;\n\n interface BufferViewSource { bufferView?: GltfId, mimeType?: string }\n const bvSrc: BufferViewSource | undefined = undefined !== image.bufferView ? image : image.extensions?.KHR_binary_glTF;\n if (undefined !== bvSrc?.bufferView) {\n const format = undefined !== bvSrc.mimeType ? getImageSourceFormatForMimeType(bvSrc.mimeType) : undefined;\n const bufferView = this._bufferViews[bvSrc.bufferView];\n if (undefined === format || !bufferView || !bufferView.byteLength || bufferView.byteLength < 0)\n return;\n\n const bufferData = this._buffers[bufferView.buffer]?.resolvedBuffer;\n if (!bufferData)\n return;\n\n const offset = bufferView.byteOffset ?? 0;\n const bytes = bufferData.subarray(offset, offset + bufferView.byteLength);\n try {\n const imageSource = new ImageSource(bytes, format);\n if (this._system.supportsCreateImageBitmap)\n image.resolvedImage = await imageBitmapFromImageSource(imageSource);\n else\n image.resolvedImage = await imageElementFromImageSource(imageSource);\n } catch {\n //\n }\n\n return;\n }\n\n const url = undefined !== image.uri ? this.resolveUrl(image.uri) : undefined;\n if (undefined !== url)\n image.resolvedImage = await tryImageElementFromUrl(url);\n }\n\n /** The glTF spec says that if GltfSampler.wrapS/T are omitted, they default to Repeat.\n * However, the reality data service serves tiles that lack any wrapS/T property, and we want those clamped to edge, not repeated.\n * (We also don't want to produce mip-maps for them, which is determined indirectly from the wrap mode).\n * Allow the default to be optionally overridden.\n */\n public defaultWrapMode = GltfWrapMode.Repeat;\n\n /** Exposed strictly for testing. */\n public getTextureType(sampler?: GltfSampler): RenderTexture.Type {\n // ###TODO: RenderTexture currently does not support different wrapping behavior for U vs V, nor does it support mirrored repeat.\n let wrapS = sampler?.wrapS;\n let wrapT = sampler?.wrapT;\n if (undefined === wrapS && undefined === wrapT)\n wrapS = wrapT = this.defaultWrapMode;\n\n if (GltfWrapMode.ClampToEdge === wrapS || GltfWrapMode.ClampToEdge === wrapT)\n return RenderTexture.Type.TileSection;\n\n return RenderTexture.Type.Normal;\n }\n\n private resolveTexture(textureId: string, isTransparent: boolean): RenderTexture | false {\n const texture = this._textures[textureId];\n if (!texture || undefined === texture.source)\n return false;\n\n const image = this._images[texture.source]?.resolvedImage;\n if (!image)\n return false;\n\n\n const samplerId = texture.sampler;\n const sampler = undefined !== samplerId ? this._samplers[samplerId] : undefined;\n const textureType = this.getTextureType(sampler);\n const renderTexture = this._system.createTexture({\n type: textureType,\n image: {\n source: image,\n transparency: isTransparent ? TextureTransparency.Mixed : TextureTransparency.Opaque,\n },\n });\n return renderTexture ?? false;\n }\n\n protected findTextureMapping(id: string | undefined, isTransparent: boolean, normalMapId: string | undefined): TextureMapping | undefined {\n if (undefined === id && undefined === normalMapId)\n return undefined;\n\n let texture;\n if (undefined !== id) {\n texture = this._resolvedTextures.get({ id, isTransparent });\n if (undefined === texture)\n this._resolvedTextures.set({ id, isTransparent }, texture = this.resolveTexture(id, isTransparent));\n }\n\n let normalMap;\n if (undefined !== normalMapId) {\n normalMap = this._resolvedTextures.get({ id: normalMapId, isTransparent: false });\n if (undefined === normalMap)\n this._resolvedTextures.set({ id: normalMapId, isTransparent: false }, normalMap = this.resolveTexture(normalMapId, false));\n }\n\n let nMap;\n if (normalMap) {\n const greenUp = true;\n if (texture) {\n nMap = {\n normalMap,\n greenUp,\n };\n } else {\n texture = normalMap;\n nMap = { greenUp };\n }\n }\n\n if (!texture)\n return undefined;\n\n const textureMapping = new TextureMapping(texture, new TextureMapping.Params());\n textureMapping.normalMapParams = nMap;\n return textureMapping;\n }\n}\n\n/** Arguments supplied to [[readGltfGraphics]] to produce a [[RenderGraphic]] from a [glTF](https://www.khronos.org/gltf/) asset.\n * @public\n * @extensions\n */\nexport interface ReadGltfGraphicsArgs {\n /** A representation of the glTF data as one of:\n * - The binary data in glb format as a Uint8Array; or\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\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).\n */\n gltf: Uint8Array | object;\n /** The iModel with which the graphics will be associated - typically obtained from the [[Viewport]] into which they will be drawn. */\n iModel: IModelConnection;\n /** Options for making the graphic [pickable]($docs/learning/frontend/ViewDecorations#pickable-view-graphic-decorations).\n * Only the [[PickableGraphicOptions.id]] property is required to make the graphics pickable. If a `modelId` is also supplied and differs from the `id`,\n * the graphics will also be selectable.\n */\n pickableOptions?: PickableGraphicOptions;\n /** The base URL for any relative URIs in the glTF. Typically, this is the same as the URL for the glTF asset itself.\n * If not supplied, relative URIs cannot be resolved. For glTF assets containing no relative URIs, this is not required.\n */\n baseUrl?: URL | string;\n /** @alpha */\n contentRange?: ElementAlignedBox3d;\n /** @alpha */\n transform?: Transform;\n /** @alpha */\n hasChildren?: boolean;\n /** @internal */\n idMap?: BatchedTileIdMap;\n}\n\n/** The output of [[readGltf]].\n * @public\n */\nexport interface GltfGraphic {\n /** The graphic created from the glTF model. */\n graphic: RenderGraphic;\n /** The bounding box of the model, in local coordinates (y-axis up). */\n localBoundingBox: ElementAlignedBox3d;\n /** The bounding box of the model, in world coordinates (z-axis up). */\n boundingBox: AxisAlignedBox3d;\n}\n\n/** The output of [[readGltfTemplate]].\n * @beta\n */\nexport interface GltfTemplate {\n /** The graphic template created from the glTF model. */\n template: GraphicTemplate;\n /** The bounding box of the model, in local coordinates (y-axis up). */\n localBoundingBox: ElementAlignedBox3d;\n /** The bounding box of the model, in world coordinates (z-axis up). */\n boundingBox: AxisAlignedBox3d;\n}\n\n/** Produce a [[RenderGraphic]] from a [glTF](https://www.khronos.org/gltf/) asset suitable for use in [view decorations]($docs/learning/frontend/ViewDecorations).\n * @returns a graphic produced from the glTF asset's default scene, or `undefined` if a graphic could not be produced from the asset.\n * @see [[readGltf]] for more details.\n * @public\n * @extensions\n */\nexport async function readGltfGraphics(args: ReadGltfGraphicsArgs): Promise<RenderGraphic | undefined> {\n const result = await readGltf(args);\n return result?.graphic;\n}\n\n/** Produce a [[GraphicTemplate]] from a [glTF](https://www.khronos.org/gltf/) asset suitable for use in [view decorations]($docs/learning/frontend/ViewDecorations).\n * @returns a template produced from the glTF asset's default scene, or `undefined` if a template could not be produced from the asset.\n * @see [[readGltf]] for more details.\n * @beta\n */\nexport async function readGltfTemplate(args: ReadGltfGraphicsArgs): Promise<GltfTemplate | undefined> {\n const baseUrl = typeof args.baseUrl === \"string\" ? new URL(args.baseUrl) : args.baseUrl;\n const props = GltfReaderProps.create(args.gltf, true, baseUrl); // glTF supports exactly one coordinate system with y axis up.\n const reader = props ? new GltfGraphicsReader(props, args) : undefined;\n if (!reader)\n return undefined;\n\n const result = await reader.readTemplate();\n if (!result.template)\n return undefined;\n\n return {\n template: result.template,\n localBoundingBox: result.contentRange ?? Range3d.createNull(),\n boundingBox: result.range ?? Range3d.createNull(),\n };\n}\n\n/** Produce a [[RenderGraphic]] from a [glTF](https://www.khronos.org/gltf/) asset suitable for use in [view decorations]($docs/learning/frontend/ViewDecorations).\n * @returns a graphic produced from the glTF asset's default scene, or `undefined` if a graphic could not be produced from the asset.\n * The returned graphic also includes the bounding boxes of the glTF model in world and local coordiantes.\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.\n * If a particular glTF asset fails to load and/or display properly, please\n * [submit an issue](https://github.com/iTwin/itwinjs-core/issues).\n * @see [Example decorator]($docs/learning/frontend/ViewDecorations#gltf-decorations) for an example of a decorator that reads and displays a glTF asset.\n * @see [[readGltfTemplate]] to produce a [[GraphicTemplate]] instead of a [[RenderGraphic]].\n * @public\n */\nexport async function readGltf(args: ReadGltfGraphicsArgs): Promise<GltfGraphic | undefined> {\n const result = await readGltfTemplate(args);\n if (!result) {\n return undefined;\n }\n\n const template = result.template;\n delete (result as Partial<GltfTemplate>).template;\n return {\n ...result,\n graphic: IModelApp.renderSystem.createGraphicFromTemplate({ template }),\n };\n}\n\n/** Implements [[readGltfGraphics]]. Exported strictly for tests.\n * @internal\n */\nexport class GltfGraphicsReader extends GltfReader {\n private readonly _featureTable?: FeatureTable;\n private readonly _contentRange?: ElementAlignedBox3d;\n private readonly _transform?: Transform;\n private readonly _isLeaf: boolean;\n public readonly binaryData?: Uint8Array; // strictly for tests\n public meshes?: GltfMeshData; // strictly for tests\n\n public constructor(props: GltfReaderProps, args: ReadGltfGraphicsArgs & { tileData?: LayerTileData }) {\n super({\n props,\n iModel: args.iModel,\n vertexTableRequired: true,\n idMap: args.idMap,\n tileData: args.tileData,\n });\n\n this._contentRange = args.contentRange;\n this._transform = args.transform;\n this._isLeaf = true !== args.hasChildren;\n\n this.binaryData = props.binaryData;\n const pickableId = args.pickableOptions?.id;\n if (pickableId) {\n this._featureTable = new FeatureTable(1, args.pickableOptions?.modelId ?? pickableId, BatchType.Primary);\n this._featureTable.insert(new Feature(pickableId));\n }\n }\n\n protected override get viewFlagOverrides(): ViewFlagOverrides {\n return {\n whiteOnWhiteReversal: false,\n renderMode: RenderMode.SmoothShade,\n };\n }\n\n public get meshElementIdToFeatureIndex(): Map<string, number> { // strictly for tests\n return this._meshElementIdToFeatureIndex;\n }\n\n protected override readMeshPrimitive(primitive: GltfMeshPrimitive, featureTable?: FeatureTable, pseudoRtcBias?: Vector3d): GltfPrimitiveData | undefined {\n const meshes = super.readMeshPrimitive(primitive, featureTable, pseudoRtcBias);\n this.meshes = meshes instanceof GltfMeshData ? meshes : undefined;\n return meshes;\n }\n\n private getGltfStructuralMetadataBuffer(id: GltfId, type: GltfStructuralMetadata.ClassPropertyComponentType){\n const bufferView = this._bufferViews[id];\n if (!bufferView || undefined === bufferView.buffer)\n return undefined;\n\n if(!bufferView.byteLength || bufferView.byteLength === 0){\n return undefined;\n }\n\n const bufferData = this._buffers[bufferView.buffer]?.resolvedBuffer;\n if (!bufferData)\n return undefined;\n\n assert(undefined !== bufferView.byteLength); // required by spec; TypeScript interface is wrong.\n const byteOffset = bufferView.byteOffset ?? 0;\n\n const subarray = bufferData.slice(byteOffset, byteOffset + bufferView.byteLength);\n switch(type){\n case \"INT8\":\n return new Int8Array(subarray.buffer, 0, bufferView.byteLength);\n case \"UINT8\":\n return new Uint8Array(subarray.buffer, 0, bufferView.byteLength);\n case \"INT16\":\n return new Int16Array(subarray.buffer, 0, bufferView.byteLength / 2);\n case \"UINT16\":\n return new Uint16Array(subarray.buffer, 0, bufferView.byteLength / 2);\n case \"INT32\":\n return new Int32Array(subarray.buffer, 0, bufferView.byteLength / 4);\n case \"UINT32\":\n return new Uint32Array(subarray.buffer, 0, bufferView.byteLength / 4);\n case \"INT64\":\n return new BigInt64Array(subarray.buffer, 0, bufferView.byteLength / 8);\n case \"UINT64\":\n return new BigUint64Array(subarray.buffer, 0, bufferView.byteLength / 8);\n case \"FLOAT32\":\n return new Float32Array(subarray.buffer, 0, bufferView.byteLength / 4);\n case \"FLOAT64\":\n return new Float64Array(subarray.buffer, 0, bufferView.byteLength / 8);\n }\n return undefined;\n }\n\n private getGltfStructuralMetadataPropertyValues(property: GltfStructuralMetadata.PropertyTableProperty, classProperty: GltfStructuralMetadata.ClassProperty, count: number){\n // Not supported for now\n if(classProperty.type === \"ENUM\" || classProperty.type === \"BOOLEAN\"){\n return undefined;\n }\n\n let getPropertyValue: any;\n\n if(classProperty.type === \"STRING\" && property.stringOffsets){\n\n const stringValues = this.getGltfStructuralMetadataBuffer(property.values, \"UINT8\") as Uint8Array;\n if(!stringValues){\n return undefined;\n }\n\n const stringOffsets = this.getGltfStructuralMetadataBuffer(property.stringOffsets, \"UINT32\") as Uint32Array;\n if(!stringOffsets){\n return undefined;\n }\n\n getPropertyValue = (index: number) => {\n const begin = stringOffsets[index];\n const end = stringOffsets[index+1];\n return utf8ToString(stringValues.subarray(begin, end));\n };\n } else {\n\n if(!classProperty.componentType){\n return undefined;\n }\n\n let numComponents = -1;\n switch(classProperty.type){\n case \"SCALAR\":\n numComponents = 1;\n break;\n case \"VEC2\":\n numComponents = 2;\n break;\n case \"VEC3\":\n numComponents = 3;\n break;\n case \"VEC4\":\n numComponents = 4;\n break;\n case \"MAT2\":\n numComponents = 4;\n break;\n case \"MAT3\":\n numComponents = 9;\n break;\n case \"MAT4\":\n numComponents = 16;\n break;\n }\n\n if(numComponents === -1){\n return undefined;\n }\n\n const values = this.getGltfStructuralMetadataBuffer(property.values, classProperty.componentType);\n if(!values){\n return undefined;\n }\n\n if(numComponents === 1){\n getPropertyValue = (index: number) => {\n return values[index];\n };\n } else {\n getPropertyValue = (index: number) => {\n const result = [];\n for(let i = 0; i < numComponents; i++){\n result.push(values[index * numComponents + i]);\n }\n return result;\n };\n }\n }\n\n const propertyValues: any[] = [];\n for(let i = 0; i < count; i++){\n const value = getPropertyValue(i);\n const propertyValue = (typeof value === \"bigint\" ) ? value.toString() : value;\n if(!classProperty.noData || propertyValue !== classProperty.noData){\n propertyValues.push(propertyValue);\n } else{\n propertyValues.push(undefined);\n }\n }\n\n return propertyValues;\n }\n\n private readGltfStructuralMetadata(){\n const propertyTables = this._glTF.extensions?.EXT_structural_metadata?.propertyTables;\n const schema = this._glTF.extensions?.EXT_structural_metadata?.schema;\n\n if(propertyTables && schema && schema.classes){\n\n this._structuralMetadata = { tables: [] };\n\n for(const propertyTable of propertyTables){\n if(!propertyTable.properties || !schema.classes){\n continue;\n }\n\n const propertyTableSchema = schema.classes[propertyTable.class];\n if(!propertyTableSchema || !propertyTableSchema.properties){\n continue;\n }\n\n const structuralMetadataTable: StructuralMetadataTable = {\n name: propertyTableSchema.name ?? propertyTable.class,\n entries: [],\n };\n\n for (const [propertyName, property] of Object.entries(propertyTable.properties)){\n\n const propertySchema = propertyTableSchema.properties[propertyName];\n\n if(!property || !propertySchema){\n continue;\n }\n\n const propertyValues = this.getGltfStructuralMetadataPropertyValues(property, propertySchema, propertyTable.count);\n\n if(!propertyValues){\n continue;\n }\n\n structuralMetadataTable.entries.push({\n name: propertySchema.name ?? propertyName,\n values: propertyValues,\n });\n }\n this._structuralMetadata.tables.push(structuralMetadataTable);\n }\n }\n }\n\n public async readTemplate(): Promise<GltfTemplateResult> {\n await this.resolveResources();\n this.readGltfStructuralMetadata();\n return this.readGltfAndCreateTemplate(this._isLeaf, this._featureTable, this._contentRange, true, this._transform);\n }\n\n public async read(): Promise<GltfReaderResult> {\n const result = await this.readTemplate();\n return templateToGraphicResult(result, this._system);\n }\n\n public get structuralMetadata(): StructuralMetadata | undefined { return this._structuralMetadata; }\n public get nodes(): GltfDictionary<GltfNode> { return this._nodes; }\n public get scenes(): GltfDictionary<GltfScene> { return this._glTF.scenes ?? emptyDict; }\n public get sceneNodes(): GltfId[] { return this._sceneNodes; }\n public get textures(): GltfDictionary<GltfTexture> { return this._textures; }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"GltfReader.js","sourceRoot":"","sources":["../../../src/tile/GltfReader.ts"],"names":[],"mappings":"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"}
|