@itwin/core-frontend 4.8.0-dev.4 → 4.8.0-dev.41
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 +62 -1
- package/README.md +9 -1
- package/ThirdPartyNotices.md +3 -3
- package/lib/cjs/AccuDraw.d.ts +6 -1
- package/lib/cjs/AccuDraw.d.ts.map +1 -1
- package/lib/cjs/AccuDraw.js +18 -6
- package/lib/cjs/AccuDraw.js.map +1 -1
- package/lib/cjs/AccuSnap.d.ts +9 -0
- package/lib/cjs/AccuSnap.d.ts.map +1 -1
- package/lib/cjs/AccuSnap.js +15 -3
- package/lib/cjs/AccuSnap.js.map +1 -1
- package/lib/cjs/AuxCoordSys.d.ts.map +1 -1
- package/lib/cjs/AuxCoordSys.js +2 -2
- package/lib/cjs/AuxCoordSys.js.map +1 -1
- package/lib/cjs/DecorationsCache.d.ts +1 -1
- package/lib/cjs/DecorationsCache.d.ts.map +1 -1
- package/lib/cjs/DecorationsCache.js.map +1 -1
- package/lib/cjs/EnvironmentDecorations.d.ts.map +1 -1
- package/lib/cjs/EnvironmentDecorations.js +2 -2
- package/lib/cjs/EnvironmentDecorations.js.map +1 -1
- package/lib/cjs/HitDetail.d.ts.map +1 -1
- package/lib/cjs/HitDetail.js +3 -3
- package/lib/cjs/HitDetail.js.map +1 -1
- package/lib/cjs/IModelApp.d.ts +2 -3
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js +2 -2
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +16 -6
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +21 -7
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/IpcApp.d.ts +5 -1
- package/lib/cjs/IpcApp.d.ts.map +1 -1
- package/lib/cjs/IpcApp.js +11 -5
- package/lib/cjs/IpcApp.js.map +1 -1
- package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
- package/lib/cjs/LocalhostIpcApp.js +2 -1
- package/lib/cjs/LocalhostIpcApp.js.map +1 -1
- package/lib/cjs/NativeApp.d.ts.map +1 -1
- package/lib/cjs/NativeApp.js +2 -1
- package/lib/cjs/NativeApp.js.map +1 -1
- package/lib/cjs/NoRenderApp.d.ts +2 -0
- package/lib/cjs/NoRenderApp.d.ts.map +1 -1
- package/lib/cjs/NoRenderApp.js +7 -0
- package/lib/cjs/NoRenderApp.js.map +1 -1
- package/lib/cjs/PlanarClipMaskState.d.ts +8 -3
- package/lib/cjs/PlanarClipMaskState.d.ts.map +1 -1
- package/lib/cjs/PlanarClipMaskState.js +47 -17
- package/lib/cjs/PlanarClipMaskState.js.map +1 -1
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts +3 -0
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -1
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.js +15 -4
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
- package/lib/cjs/SheetViewState.d.ts.map +1 -1
- package/lib/cjs/SheetViewState.js +3 -3
- package/lib/cjs/SheetViewState.js.map +1 -1
- package/lib/cjs/SpatialViewState.d.ts +14 -1
- package/lib/cjs/SpatialViewState.d.ts.map +1 -1
- package/lib/cjs/SpatialViewState.js +17 -0
- package/lib/cjs/SpatialViewState.js.map +1 -1
- package/lib/cjs/SubCategoriesCache.d.ts +3 -1
- package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
- package/lib/cjs/SubCategoriesCache.js +19 -5
- package/lib/cjs/SubCategoriesCache.js.map +1 -1
- package/lib/cjs/ViewContext.d.ts +2 -1
- package/lib/cjs/ViewContext.d.ts.map +1 -1
- package/lib/cjs/ViewContext.js +8 -8
- package/lib/cjs/ViewContext.js.map +1 -1
- package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
- package/lib/cjs/ViewCreator3d.js +1 -0
- package/lib/cjs/ViewCreator3d.js.map +1 -1
- package/lib/cjs/ViewManager.d.ts +4 -7
- package/lib/cjs/ViewManager.d.ts.map +1 -1
- package/lib/cjs/ViewManager.js +4 -7
- package/lib/cjs/ViewManager.js.map +1 -1
- package/lib/cjs/ViewingSpace.d.ts +3 -1
- package/lib/cjs/ViewingSpace.d.ts.map +1 -1
- package/lib/cjs/ViewingSpace.js +11 -2
- package/lib/cjs/ViewingSpace.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +1 -3
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +3 -5
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/common/WorkerProxy.d.ts +7 -25
- package/lib/cjs/common/WorkerProxy.d.ts.map +1 -1
- package/lib/cjs/common/WorkerProxy.js +2 -1
- package/lib/cjs/common/WorkerProxy.js.map +1 -1
- package/lib/cjs/common/gltf/GltfSchema.d.ts +15 -1
- package/lib/cjs/common/gltf/GltfSchema.d.ts.map +1 -1
- package/lib/cjs/common/gltf/GltfSchema.js.map +1 -1
- package/lib/cjs/common/imdl/CompactEdges.d.ts +1 -1
- package/lib/cjs/common/imdl/CompactEdges.d.ts.map +1 -1
- package/lib/cjs/common/imdl/CompactEdges.js +2 -2
- package/lib/cjs/common/imdl/CompactEdges.js.map +1 -1
- package/lib/cjs/common/imdl/ImdlModel.d.ts +5 -3
- package/lib/cjs/common/imdl/ImdlModel.d.ts.map +1 -1
- package/lib/cjs/common/imdl/ImdlModel.js +49 -42
- package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
- package/lib/cjs/common/imdl/ImdlSchema.d.ts +4 -4
- package/lib/cjs/common/imdl/ImdlSchema.d.ts.map +1 -1
- package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -1
- package/lib/cjs/common/imdl/ParseImdlDocument.d.ts +4 -2
- package/lib/cjs/common/imdl/ParseImdlDocument.d.ts.map +1 -1
- package/lib/cjs/common/imdl/ParseImdlDocument.js +10 -8
- package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
- package/lib/cjs/common/internal/Symbols.d.ts +10 -0
- package/lib/cjs/common/internal/Symbols.d.ts.map +1 -0
- package/lib/cjs/common/internal/Symbols.js +20 -0
- package/lib/cjs/common/internal/Symbols.js.map +1 -0
- package/lib/cjs/common/internal/render/AnimationNodeId.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/AnimationNodeId.js.map +1 -0
- package/lib/cjs/common/internal/render/AuxChannelTable.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/AuxChannelTable.js.map +1 -0
- package/lib/cjs/common/internal/render/ColorMap.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/ColorMap.js.map +1 -0
- package/lib/cjs/common/internal/render/DisplayParams.d.ts.map +1 -0
- package/lib/cjs/common/{render/primitives → internal/render}/DisplayParams.js +3 -6
- package/lib/cjs/common/internal/render/DisplayParams.js.map +1 -0
- package/lib/cjs/common/{render/primitives → internal/render}/EdgeParams.d.ts +7 -0
- package/lib/cjs/common/internal/render/EdgeParams.d.ts.map +1 -0
- package/lib/cjs/{render/primitives → common/internal/render}/EdgeParams.js +50 -16
- package/lib/cjs/common/internal/render/EdgeParams.js.map +1 -0
- package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.d.ts +4 -18
- package/lib/cjs/common/internal/render/GeometryAccumulator.d.ts.map +1 -0
- package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.js +2 -70
- package/lib/cjs/common/internal/render/GeometryAccumulator.js.map +1 -0
- package/lib/cjs/common/internal/render/GeometryList.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/GeometryList.js.map +1 -0
- package/lib/{esm/render/primitives/geometry → cjs/common/internal/render}/GeometryPrimitives.d.ts +3 -3
- package/lib/cjs/common/internal/render/GeometryPrimitives.d.ts.map +1 -0
- package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryPrimitives.js +3 -3
- package/lib/cjs/common/internal/render/GeometryPrimitives.js.map +1 -0
- package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.d.ts +46 -0
- package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js +252 -0
- package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -0
- package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.d.ts +104 -0
- package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.js +146 -0
- package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -0
- package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshBuilder.d.ts +4 -4
- package/lib/{esm/render/primitives/mesh → cjs/common/internal/render}/MeshBuilder.d.ts.map +1 -1
- package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshBuilder.js +2 -2
- package/lib/cjs/common/internal/render/MeshBuilder.js.map +1 -0
- package/lib/{esm/render/primitives/mesh → cjs/common/internal/render}/MeshBuilderMap.d.ts +7 -8
- package/lib/cjs/common/internal/render/MeshBuilderMap.d.ts.map +1 -0
- package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshBuilderMap.js +4 -6
- package/lib/cjs/common/internal/render/MeshBuilderMap.js.map +1 -0
- package/lib/cjs/common/internal/render/MeshParams.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/MeshParams.js.map +1 -0
- package/lib/cjs/common/internal/render/MeshPrimitive.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/MeshPrimitive.js.map +1 -0
- package/lib/cjs/common/internal/render/MeshPrimitives.d.ts +82 -0
- package/lib/cjs/common/internal/render/MeshPrimitives.d.ts.map +1 -0
- package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshPrimitives.js +82 -104
- package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -0
- package/lib/cjs/common/internal/render/PointCloudPrimitive.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/PointCloudPrimitive.js.map +1 -0
- package/lib/{esm/common/render/primitives → cjs/common/internal/render}/PointStringParams.d.ts +3 -0
- package/lib/cjs/common/internal/render/PointStringParams.d.ts.map +1 -0
- package/lib/cjs/{render/primitives → common/internal/render}/PointStringParams.js +3 -4
- package/lib/cjs/common/internal/render/PointStringParams.js.map +1 -0
- package/lib/{esm/render/primitives → cjs/common/internal/render}/Polyface.d.ts +1 -1
- package/lib/cjs/common/internal/render/Polyface.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/Polyface.js.map +1 -0
- package/lib/cjs/common/{render/primitives → internal/render}/PolylineParams.d.ts +11 -1
- package/lib/cjs/common/internal/render/PolylineParams.d.ts.map +1 -0
- package/lib/cjs/{render/primitives → common/internal/render}/PolylineParams.js +5 -6
- package/lib/cjs/common/internal/render/PolylineParams.js.map +1 -0
- package/lib/{esm/render/primitives → cjs/common/internal/render}/Primitives.d.ts +3 -34
- package/lib/cjs/common/internal/render/Primitives.d.ts.map +1 -0
- package/lib/cjs/{render/primitives → common/internal/render}/Primitives.js +1 -44
- package/lib/cjs/common/internal/render/Primitives.js.map +1 -0
- package/lib/{esm/render/primitives → cjs/common/internal/render}/Strokes.d.ts +1 -1
- package/lib/cjs/common/internal/render/Strokes.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/Strokes.js.map +1 -0
- package/lib/cjs/common/internal/render/SurfaceParams.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/SurfaceParams.js.map +1 -0
- package/lib/cjs/common/internal/render/VertexIndices.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/VertexIndices.js.map +1 -0
- package/lib/cjs/common/internal/render/VertexKey.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/VertexKey.js.map +1 -0
- package/lib/cjs/common/internal/render/VertexTable.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/VertexTable.js.map +1 -0
- package/lib/{esm/render/primitives → cjs/common/internal/render}/VertexTableBuilder.d.ts +5 -4
- package/lib/cjs/common/internal/render/VertexTableBuilder.d.ts.map +1 -0
- package/lib/cjs/{render/primitives → common/internal/render}/VertexTableBuilder.js +6 -6
- package/lib/cjs/common/internal/render/VertexTableBuilder.js.map +1 -0
- package/lib/cjs/common/{render/primitives → internal/render}/VertexTableSplitter.d.ts +1 -1
- package/lib/cjs/common/internal/render/VertexTableSplitter.d.ts.map +1 -0
- package/lib/cjs/common/{render/primitives → internal/render}/VertexTableSplitter.js +17 -4
- package/lib/cjs/common/internal/render/VertexTableSplitter.js.map +1 -0
- package/lib/cjs/common/render/BatchOptions.d.ts +46 -0
- package/lib/cjs/common/render/BatchOptions.d.ts.map +1 -0
- package/lib/cjs/common/render/{primitives/PolylineParams.js → BatchOptions.js} +1 -1
- package/lib/cjs/common/render/BatchOptions.js.map +1 -0
- package/lib/cjs/common/render/GraphicAssembler.d.ts +197 -0
- package/lib/cjs/common/render/GraphicAssembler.d.ts.map +1 -0
- package/lib/cjs/common/render/GraphicAssembler.js +386 -0
- package/lib/cjs/common/render/GraphicAssembler.js.map +1 -0
- package/lib/cjs/common/render/GraphicDescriptionBuilder.d.ts +89 -0
- package/lib/cjs/common/render/GraphicDescriptionBuilder.d.ts.map +1 -0
- package/lib/cjs/common/render/GraphicDescriptionBuilder.js +34 -0
- package/lib/cjs/common/render/GraphicDescriptionBuilder.js.map +1 -0
- package/lib/cjs/common/render/GraphicDescriptionContext.d.ts +85 -0
- package/lib/cjs/common/render/GraphicDescriptionContext.d.ts.map +1 -0
- package/lib/cjs/common/render/GraphicDescriptionContext.js +22 -0
- package/lib/cjs/common/render/GraphicDescriptionContext.js.map +1 -0
- package/lib/cjs/common/render/GraphicPrimitive.d.ts.map +1 -0
- package/lib/cjs/common/render/GraphicPrimitive.js.map +1 -0
- package/lib/cjs/common/render/GraphicType.d.ts +62 -0
- package/lib/cjs/common/render/GraphicType.d.ts.map +1 -0
- package/lib/cjs/common/render/GraphicType.js +70 -0
- package/lib/cjs/common/render/GraphicType.js.map +1 -0
- package/lib/cjs/common/render/InstancedGraphicParams.d.ts.map +1 -0
- package/lib/cjs/common/render/InstancedGraphicParams.js.map +1 -0
- package/lib/cjs/common.d.ts +14 -0
- package/lib/cjs/common.d.ts.map +1 -0
- package/lib/cjs/common.js +35 -0
- package/lib/cjs/common.js.map +1 -0
- package/lib/cjs/core-frontend.d.ts +5 -43
- package/lib/cjs/core-frontend.d.ts.map +1 -1
- package/lib/cjs/core-frontend.js +5 -43
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/extension/ExtensionRuntime.js +1 -0
- package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
- package/lib/cjs/internal/cross-package.d.ts +7 -0
- package/lib/cjs/internal/cross-package.d.ts.map +1 -0
- package/lib/cjs/internal/cross-package.js +17 -0
- package/lib/cjs/internal/cross-package.js.map +1 -0
- package/lib/cjs/internal/render/PrimitiveBuilder.d.ts +33 -0
- package/lib/cjs/internal/render/PrimitiveBuilder.d.ts.map +1 -0
- package/lib/cjs/internal/render/PrimitiveBuilder.js +140 -0
- package/lib/cjs/internal/render/PrimitiveBuilder.js.map +1 -0
- package/lib/cjs/render/FeatureSymbology.js +3 -3
- package/lib/cjs/render/FeatureSymbology.js.map +1 -1
- package/lib/cjs/render/GraphicBranch.d.ts +1 -1
- package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- package/lib/cjs/render/GraphicBuilder.d.ts +7 -254
- package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBuilder.js +18 -235
- package/lib/cjs/render/GraphicBuilder.js.map +1 -1
- package/lib/cjs/render/MeshArgs.d.ts +56 -0
- package/lib/cjs/render/MeshArgs.d.ts.map +1 -0
- package/lib/cjs/{common/render/primitives/PointStringParams.js → render/MeshArgs.js} +1 -1
- package/lib/cjs/render/MeshArgs.js.map +1 -0
- package/lib/cjs/render/MockRender.d.ts +7 -5
- package/lib/cjs/render/MockRender.d.ts.map +1 -1
- package/lib/cjs/render/MockRender.js +6 -2
- package/lib/cjs/render/MockRender.js.map +1 -1
- package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
- package/lib/cjs/render/ParticleCollectionBuilder.js +4 -3
- package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/cjs/render/PolylineArgs.d.ts +31 -0
- package/lib/cjs/render/PolylineArgs.d.ts.map +1 -0
- package/lib/cjs/render/PolylineArgs.js +10 -0
- package/lib/cjs/render/PolylineArgs.js.map +1 -0
- package/lib/cjs/render/RealityMeshParams.js +1 -1
- package/lib/cjs/render/RealityMeshParams.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +36 -7
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js +94 -6
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/RenderTarget.d.ts +49 -5
- package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
- package/lib/cjs/render/RenderTarget.js +33 -5
- package/lib/cjs/render/RenderTarget.js.map +1 -1
- package/lib/cjs/render/webgl/BackgroundMapDrape.js +1 -1
- package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.d.ts +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/ColorInfo.d.ts +1 -1
- package/lib/cjs/render/webgl/ColorInfo.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ColorInfo.js.map +1 -1
- package/lib/cjs/render/webgl/EdgeGeometry.d.ts +2 -2
- package/lib/cjs/render/webgl/EdgeGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.d.ts +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.js +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/cjs/render/webgl/Graphic.d.ts +1 -1
- package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Graphic.js.map +1 -1
- package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
- package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.d.ts +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/Material.d.ts +5 -1
- package/lib/cjs/render/webgl/Material.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Material.js +5 -0
- package/lib/cjs/render/webgl/Material.js.map +1 -1
- package/lib/cjs/render/webgl/Mesh.d.ts +6 -3
- package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Mesh.js +3 -1
- package/lib/cjs/render/webgl/Mesh.js.map +1 -1
- package/lib/cjs/render/webgl/MeshData.d.ts +2 -2
- package/lib/cjs/render/webgl/MeshData.d.ts.map +1 -1
- package/lib/cjs/render/webgl/MeshData.js.map +1 -1
- package/lib/cjs/render/webgl/MeshGeometry.d.ts +1 -1
- package/lib/cjs/render/webgl/MeshGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PlanarClassifier.d.ts +2 -0
- package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PlanarClassifier.js +38 -11
- package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts +3 -3
- package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PlanarTextureProjection.js +53 -19
- package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.d.ts +1 -1
- package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
- package/lib/cjs/render/webgl/PointString.d.ts +1 -1
- package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PointString.js.map +1 -1
- package/lib/cjs/render/webgl/Polyline.d.ts +1 -1
- package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Polyline.js.map +1 -1
- package/lib/cjs/render/webgl/Primitive.d.ts +1 -1
- package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Primitive.js.map +1 -1
- package/lib/cjs/render/webgl/RenderCommands.js +1 -1
- package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
- package/lib/cjs/render/webgl/SolarShadowMap.js +2 -2
- package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/cjs/render/webgl/SurfaceGeometry.d.ts +1 -1
- package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/SurfaceGeometry.js +1 -1
- package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/System.d.ts +7 -6
- package/lib/cjs/render/webgl/System.d.ts.map +1 -1
- package/lib/cjs/render/webgl/System.js +2 -2
- package/lib/cjs/render/webgl/System.js.map +1 -1
- package/lib/cjs/render/webgl/Target.d.ts +3 -0
- package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Target.js +6 -1
- package/lib/cjs/render/webgl/Target.js.map +1 -1
- package/lib/cjs/render/webgl/VertexLUT.d.ts +2 -2
- package/lib/cjs/render/webgl/VertexLUT.d.ts.map +1 -1
- package/lib/cjs/render/webgl/VertexLUT.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Animation.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/cjs/tile/B3dmReader.d.ts +1 -2
- package/lib/cjs/tile/B3dmReader.d.ts.map +1 -1
- package/lib/cjs/tile/B3dmReader.js +1 -2
- package/lib/cjs/tile/B3dmReader.js.map +1 -1
- package/lib/cjs/tile/DynamicIModelTile.js +1 -0
- package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
- package/lib/cjs/tile/GltfReader.d.ts +30 -6
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +245 -9
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/GraphicsCollector.d.ts.map +1 -1
- package/lib/cjs/tile/GraphicsCollector.js +5 -2
- package/lib/cjs/tile/GraphicsCollector.js.map +1 -1
- package/lib/cjs/tile/I3dmReader.d.ts +1 -2
- package/lib/cjs/tile/I3dmReader.d.ts.map +1 -1
- package/lib/cjs/tile/I3dmReader.js +1 -2
- package/lib/cjs/tile/I3dmReader.js.map +1 -1
- package/lib/cjs/tile/ImdlDecoder.d.ts +1 -1
- package/lib/cjs/tile/ImdlDecoder.d.ts.map +1 -1
- package/lib/cjs/tile/ImdlDecoder.js.map +1 -1
- package/lib/cjs/tile/ImdlGraphicsCreator.d.ts +4 -0
- package/lib/cjs/tile/ImdlGraphicsCreator.d.ts.map +1 -1
- package/lib/cjs/tile/ImdlGraphicsCreator.js +88 -5
- package/lib/cjs/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/cjs/tile/ImdlReader.d.ts +1 -1
- package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
- package/lib/cjs/tile/ImdlReader.js.map +1 -1
- package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +1 -1
- package/lib/cjs/tile/OPCFormatInterpreter.js +7 -2
- package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/cjs/tile/OrbitGtTileTree.js +1 -1
- package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/cjs/tile/PntsReader.js +1 -1
- package/lib/cjs/tile/PntsReader.js.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.d.ts +6 -2
- package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.js +26 -1
- package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityModelTileTree.js +1 -1
- package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityTile.d.ts +2 -3
- package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTile.js +0 -1
- package/lib/cjs/tile/RealityTile.js.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.js +1 -0
- package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/tile/TileGeometryCollector.d.ts +4 -4
- package/lib/cjs/tile/TileGeometryCollector.js +1 -1
- package/lib/cjs/tile/TileGeometryCollector.js.map +1 -1
- package/lib/cjs/tile/TileTreeReference.d.ts +0 -4
- package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeReference.js +0 -3
- package/lib/cjs/tile/TileTreeReference.js.map +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts +1 -0
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.js +7 -5
- package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js +9 -4
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +3 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts +1 -1
- package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
- package/lib/cjs/tile/map/MapFeatureInfo.d.ts +1 -1
- package/lib/cjs/tile/map/MapFeatureInfo.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +5 -5
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tools/AccuDrawTool.d.ts +21 -0
- package/lib/cjs/tools/AccuDrawTool.d.ts.map +1 -1
- package/lib/cjs/tools/AccuDrawTool.js +93 -1
- package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
- package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
- package/lib/cjs/tools/ClipViewTool.js +16 -16
- package/lib/cjs/tools/ClipViewTool.js.map +1 -1
- package/lib/cjs/tools/ElementSetTool.d.ts +9 -5
- package/lib/cjs/tools/ElementSetTool.d.ts.map +1 -1
- package/lib/cjs/tools/ElementSetTool.js +9 -5
- package/lib/cjs/tools/ElementSetTool.js.map +1 -1
- package/lib/cjs/tools/MeasureTool.d.ts.map +1 -1
- package/lib/cjs/tools/MeasureTool.js +9 -9
- package/lib/cjs/tools/MeasureTool.js.map +1 -1
- package/lib/cjs/tools/ToolAdmin.d.ts +2 -0
- package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/cjs/tools/ToolAdmin.js +6 -1
- package/lib/cjs/tools/ToolAdmin.js.map +1 -1
- package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
- package/lib/cjs/tools/ViewTool.js +8 -8
- package/lib/cjs/tools/ViewTool.js.map +1 -1
- package/lib/cjs/workers/RegisterWorker.d.ts +2 -1
- package/lib/cjs/workers/RegisterWorker.d.ts.map +1 -1
- package/lib/cjs/workers/RegisterWorker.js +2 -1
- package/lib/cjs/workers/RegisterWorker.js.map +1 -1
- package/lib/esm/AccuDraw.d.ts +6 -1
- package/lib/esm/AccuDraw.d.ts.map +1 -1
- package/lib/esm/AccuDraw.js +15 -3
- package/lib/esm/AccuDraw.js.map +1 -1
- package/lib/esm/AccuSnap.d.ts +9 -0
- package/lib/esm/AccuSnap.d.ts.map +1 -1
- package/lib/esm/AccuSnap.js +15 -3
- package/lib/esm/AccuSnap.js.map +1 -1
- package/lib/esm/AuxCoordSys.d.ts.map +1 -1
- package/lib/esm/AuxCoordSys.js +1 -1
- package/lib/esm/AuxCoordSys.js.map +1 -1
- package/lib/esm/DecorationsCache.d.ts +1 -1
- package/lib/esm/DecorationsCache.d.ts.map +1 -1
- package/lib/esm/DecorationsCache.js.map +1 -1
- package/lib/esm/EnvironmentDecorations.d.ts.map +1 -1
- package/lib/esm/EnvironmentDecorations.js +1 -1
- package/lib/esm/EnvironmentDecorations.js.map +1 -1
- package/lib/esm/HitDetail.d.ts.map +1 -1
- package/lib/esm/HitDetail.js +1 -1
- package/lib/esm/HitDetail.js.map +1 -1
- package/lib/esm/IModelApp.d.ts +2 -3
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js +2 -2
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +16 -6
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +21 -7
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/IpcApp.d.ts +5 -1
- package/lib/esm/IpcApp.d.ts.map +1 -1
- package/lib/esm/IpcApp.js +11 -5
- package/lib/esm/IpcApp.js.map +1 -1
- package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
- package/lib/esm/LocalhostIpcApp.js +2 -1
- package/lib/esm/LocalhostIpcApp.js.map +1 -1
- package/lib/esm/NativeApp.d.ts.map +1 -1
- package/lib/esm/NativeApp.js +2 -1
- package/lib/esm/NativeApp.js.map +1 -1
- package/lib/esm/NoRenderApp.d.ts +2 -0
- package/lib/esm/NoRenderApp.d.ts.map +1 -1
- package/lib/esm/NoRenderApp.js +7 -0
- package/lib/esm/NoRenderApp.js.map +1 -1
- package/lib/esm/PlanarClipMaskState.d.ts +8 -3
- package/lib/esm/PlanarClipMaskState.d.ts.map +1 -1
- package/lib/esm/PlanarClipMaskState.js +48 -18
- package/lib/esm/PlanarClipMaskState.js.map +1 -1
- package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts +3 -0
- package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -1
- package/lib/esm/RealityDataSourceTilesetUrlImpl.js +15 -4
- package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
- package/lib/esm/SheetViewState.d.ts.map +1 -1
- package/lib/esm/SheetViewState.js +1 -1
- package/lib/esm/SheetViewState.js.map +1 -1
- package/lib/esm/SpatialViewState.d.ts +14 -1
- package/lib/esm/SpatialViewState.d.ts.map +1 -1
- package/lib/esm/SpatialViewState.js +17 -0
- package/lib/esm/SpatialViewState.js.map +1 -1
- package/lib/esm/SubCategoriesCache.d.ts +3 -1
- package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
- package/lib/esm/SubCategoriesCache.js +19 -5
- package/lib/esm/SubCategoriesCache.js.map +1 -1
- package/lib/esm/ViewContext.d.ts +2 -1
- package/lib/esm/ViewContext.d.ts.map +1 -1
- package/lib/esm/ViewContext.js +1 -1
- package/lib/esm/ViewContext.js.map +1 -1
- package/lib/esm/ViewCreator3d.d.ts.map +1 -1
- package/lib/esm/ViewCreator3d.js +1 -0
- package/lib/esm/ViewCreator3d.js.map +1 -1
- package/lib/esm/ViewManager.d.ts +4 -7
- package/lib/esm/ViewManager.d.ts.map +1 -1
- package/lib/esm/ViewManager.js +4 -7
- package/lib/esm/ViewManager.js.map +1 -1
- package/lib/esm/ViewingSpace.d.ts +3 -1
- package/lib/esm/ViewingSpace.d.ts.map +1 -1
- package/lib/esm/ViewingSpace.js +11 -2
- package/lib/esm/ViewingSpace.js.map +1 -1
- package/lib/esm/Viewport.d.ts +1 -3
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +2 -4
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/common/WorkerProxy.d.ts +7 -25
- package/lib/esm/common/WorkerProxy.d.ts.map +1 -1
- package/lib/esm/common/WorkerProxy.js +2 -1
- package/lib/esm/common/WorkerProxy.js.map +1 -1
- package/lib/esm/common/gltf/GltfSchema.d.ts +15 -1
- package/lib/esm/common/gltf/GltfSchema.d.ts.map +1 -1
- package/lib/esm/common/gltf/GltfSchema.js.map +1 -1
- package/lib/esm/common/imdl/CompactEdges.d.ts +1 -1
- package/lib/esm/common/imdl/CompactEdges.d.ts.map +1 -1
- package/lib/esm/common/imdl/CompactEdges.js +2 -2
- package/lib/esm/common/imdl/CompactEdges.js.map +1 -1
- package/lib/esm/common/imdl/ImdlModel.d.ts +5 -3
- package/lib/esm/common/imdl/ImdlModel.d.ts.map +1 -1
- package/lib/esm/common/imdl/ImdlModel.js +47 -41
- package/lib/esm/common/imdl/ImdlModel.js.map +1 -1
- package/lib/esm/common/imdl/ImdlSchema.d.ts +4 -4
- package/lib/esm/common/imdl/ImdlSchema.d.ts.map +1 -1
- package/lib/esm/common/imdl/ImdlSchema.js.map +1 -1
- package/lib/esm/common/imdl/ParseImdlDocument.d.ts +4 -2
- package/lib/esm/common/imdl/ParseImdlDocument.d.ts.map +1 -1
- package/lib/esm/common/imdl/ParseImdlDocument.js +9 -8
- package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
- package/lib/esm/common/internal/Symbols.d.ts +10 -0
- package/lib/esm/common/internal/Symbols.d.ts.map +1 -0
- package/lib/esm/common/internal/Symbols.js +17 -0
- package/lib/esm/common/internal/Symbols.js.map +1 -0
- package/lib/esm/common/internal/render/AnimationNodeId.d.ts.map +1 -0
- package/lib/esm/common/internal/render/AnimationNodeId.js.map +1 -0
- package/lib/esm/common/internal/render/AuxChannelTable.d.ts.map +1 -0
- package/lib/esm/common/internal/render/AuxChannelTable.js.map +1 -0
- package/lib/esm/common/internal/render/ColorMap.d.ts.map +1 -0
- package/lib/esm/common/internal/render/ColorMap.js.map +1 -0
- package/lib/esm/common/internal/render/DisplayParams.d.ts.map +1 -0
- package/lib/esm/common/{render/primitives → internal/render}/DisplayParams.js +4 -7
- package/lib/esm/common/internal/render/DisplayParams.js.map +1 -0
- package/lib/esm/common/{render/primitives → internal/render}/EdgeParams.d.ts +7 -0
- package/lib/esm/common/internal/render/EdgeParams.d.ts.map +1 -0
- package/lib/esm/{render/primitives → common/internal/render}/EdgeParams.js +47 -14
- package/lib/esm/common/internal/render/EdgeParams.js.map +1 -0
- package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.d.ts +4 -18
- package/lib/esm/common/internal/render/GeometryAccumulator.d.ts.map +1 -0
- package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.js +2 -70
- package/lib/esm/common/internal/render/GeometryAccumulator.js.map +1 -0
- package/lib/esm/common/internal/render/GeometryList.d.ts.map +1 -0
- package/lib/esm/common/internal/render/GeometryList.js.map +1 -0
- package/lib/{cjs/render/primitives/geometry → esm/common/internal/render}/GeometryPrimitives.d.ts +3 -3
- package/lib/esm/common/internal/render/GeometryPrimitives.d.ts.map +1 -0
- package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryPrimitives.js +3 -3
- package/lib/esm/common/internal/render/GeometryPrimitives.js.map +1 -0
- package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.d.ts +46 -0
- package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.d.ts.map +1 -0
- package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js +246 -0
- package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -0
- package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.d.ts +104 -0
- package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.d.ts.map +1 -0
- package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.js +140 -0
- package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -0
- package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshBuilder.d.ts +4 -4
- package/lib/{cjs/render/primitives/mesh → esm/common/internal/render}/MeshBuilder.d.ts.map +1 -1
- package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshBuilder.js +2 -2
- package/lib/esm/common/internal/render/MeshBuilder.js.map +1 -0
- package/lib/{cjs/render/primitives/mesh → esm/common/internal/render}/MeshBuilderMap.d.ts +7 -8
- package/lib/esm/common/internal/render/MeshBuilderMap.d.ts.map +1 -0
- package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshBuilderMap.js +4 -6
- package/lib/esm/common/internal/render/MeshBuilderMap.js.map +1 -0
- package/lib/esm/common/internal/render/MeshParams.d.ts.map +1 -0
- package/lib/esm/common/internal/render/MeshParams.js.map +1 -0
- package/lib/esm/common/internal/render/MeshPrimitive.d.ts.map +1 -0
- package/lib/esm/common/internal/render/MeshPrimitive.js.map +1 -0
- package/lib/esm/common/internal/render/MeshPrimitives.d.ts +82 -0
- package/lib/esm/common/internal/render/MeshPrimitives.d.ts.map +1 -0
- package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshPrimitives.js +79 -103
- package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -0
- package/lib/esm/common/internal/render/PointCloudPrimitive.d.ts.map +1 -0
- package/lib/esm/common/internal/render/PointCloudPrimitive.js.map +1 -0
- package/lib/{cjs/common/render/primitives → esm/common/internal/render}/PointStringParams.d.ts +3 -0
- package/lib/esm/common/internal/render/PointStringParams.d.ts.map +1 -0
- package/lib/esm/{render/primitives → common/internal/render}/PointStringParams.js +3 -4
- package/lib/esm/common/internal/render/PointStringParams.js.map +1 -0
- package/lib/{cjs/render/primitives → esm/common/internal/render}/Polyface.d.ts +1 -1
- package/lib/esm/common/internal/render/Polyface.d.ts.map +1 -0
- package/lib/esm/common/internal/render/Polyface.js.map +1 -0
- package/lib/esm/common/{render/primitives → internal/render}/PolylineParams.d.ts +11 -1
- package/lib/esm/common/internal/render/PolylineParams.d.ts.map +1 -0
- package/lib/esm/{render/primitives → common/internal/render}/PolylineParams.js +5 -6
- package/lib/esm/common/internal/render/PolylineParams.js.map +1 -0
- package/lib/{cjs/render/primitives → esm/common/internal/render}/Primitives.d.ts +3 -34
- package/lib/esm/common/internal/render/Primitives.d.ts.map +1 -0
- package/lib/esm/{render/primitives → common/internal/render}/Primitives.js +0 -42
- package/lib/esm/common/internal/render/Primitives.js.map +1 -0
- package/lib/{cjs/render/primitives → esm/common/internal/render}/Strokes.d.ts +1 -1
- package/lib/esm/common/internal/render/Strokes.d.ts.map +1 -0
- package/lib/esm/common/internal/render/Strokes.js.map +1 -0
- package/lib/esm/common/internal/render/SurfaceParams.d.ts.map +1 -0
- package/lib/esm/common/internal/render/SurfaceParams.js.map +1 -0
- package/lib/esm/common/internal/render/VertexIndices.d.ts.map +1 -0
- package/lib/esm/common/internal/render/VertexIndices.js.map +1 -0
- package/lib/esm/common/internal/render/VertexKey.d.ts.map +1 -0
- package/lib/esm/common/internal/render/VertexKey.js.map +1 -0
- package/lib/esm/common/internal/render/VertexTable.d.ts.map +1 -0
- package/lib/esm/common/internal/render/VertexTable.js.map +1 -0
- package/lib/{cjs/render/primitives → esm/common/internal/render}/VertexTableBuilder.d.ts +5 -4
- package/lib/esm/common/internal/render/VertexTableBuilder.d.ts.map +1 -0
- package/lib/esm/{render/primitives → common/internal/render}/VertexTableBuilder.js +6 -6
- package/lib/esm/common/internal/render/VertexTableBuilder.js.map +1 -0
- package/lib/esm/common/{render/primitives → internal/render}/VertexTableSplitter.d.ts +1 -1
- package/lib/esm/common/internal/render/VertexTableSplitter.d.ts.map +1 -0
- package/lib/esm/common/{render/primitives → internal/render}/VertexTableSplitter.js +17 -4
- package/lib/esm/common/internal/render/VertexTableSplitter.js.map +1 -0
- package/lib/esm/common/render/BatchOptions.d.ts +46 -0
- package/lib/esm/common/render/BatchOptions.d.ts.map +1 -0
- package/lib/esm/common/render/{primitives/PolylineParams.js → BatchOptions.js} +1 -1
- package/lib/esm/common/render/BatchOptions.js.map +1 -0
- package/lib/esm/common/render/GraphicAssembler.d.ts +197 -0
- package/lib/esm/common/render/GraphicAssembler.d.ts.map +1 -0
- package/lib/esm/common/render/GraphicAssembler.js +382 -0
- package/lib/esm/common/render/GraphicAssembler.js.map +1 -0
- package/lib/esm/common/render/GraphicDescriptionBuilder.d.ts +89 -0
- package/lib/esm/common/render/GraphicDescriptionBuilder.d.ts.map +1 -0
- package/lib/esm/common/render/GraphicDescriptionBuilder.js +31 -0
- package/lib/esm/common/render/GraphicDescriptionBuilder.js.map +1 -0
- package/lib/esm/common/render/GraphicDescriptionContext.d.ts +85 -0
- package/lib/esm/common/render/GraphicDescriptionContext.d.ts.map +1 -0
- package/lib/esm/common/render/GraphicDescriptionContext.js +19 -0
- package/lib/esm/common/render/GraphicDescriptionContext.js.map +1 -0
- package/lib/esm/common/render/GraphicPrimitive.d.ts.map +1 -0
- package/lib/esm/common/render/GraphicPrimitive.js.map +1 -0
- package/lib/esm/common/render/GraphicType.d.ts +62 -0
- package/lib/esm/common/render/GraphicType.d.ts.map +1 -0
- package/lib/esm/common/render/GraphicType.js +67 -0
- package/lib/esm/common/render/GraphicType.js.map +1 -0
- package/lib/esm/common/render/InstancedGraphicParams.d.ts.map +1 -0
- package/lib/esm/common/render/InstancedGraphicParams.js.map +1 -0
- package/lib/esm/common.d.ts +14 -0
- package/lib/esm/common.d.ts.map +1 -0
- package/lib/esm/common.js +19 -0
- package/lib/esm/common.js.map +1 -0
- package/lib/esm/core-frontend.d.ts +5 -43
- package/lib/esm/core-frontend.d.ts.map +1 -1
- package/lib/esm/core-frontend.js +5 -43
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/extension/ExtensionRuntime.js +2 -1
- package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
- package/lib/esm/internal/cross-package.d.ts +7 -0
- package/lib/esm/internal/cross-package.d.ts.map +1 -0
- package/lib/esm/internal/cross-package.js +11 -0
- package/lib/esm/internal/cross-package.js.map +1 -0
- package/lib/esm/internal/render/PrimitiveBuilder.d.ts +33 -0
- package/lib/esm/internal/render/PrimitiveBuilder.d.ts.map +1 -0
- package/lib/esm/internal/render/PrimitiveBuilder.js +136 -0
- package/lib/esm/internal/render/PrimitiveBuilder.js.map +1 -0
- package/lib/esm/render/FeatureSymbology.js +3 -3
- package/lib/esm/render/FeatureSymbology.js.map +1 -1
- package/lib/esm/render/GraphicBranch.d.ts +1 -1
- package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- package/lib/esm/render/GraphicBuilder.d.ts +7 -254
- package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
- package/lib/esm/render/GraphicBuilder.js +18 -235
- package/lib/esm/render/GraphicBuilder.js.map +1 -1
- package/lib/esm/render/MeshArgs.d.ts +56 -0
- package/lib/esm/render/MeshArgs.d.ts.map +1 -0
- package/lib/esm/{common/render/primitives/PointStringParams.js → render/MeshArgs.js} +1 -1
- package/lib/esm/render/MeshArgs.js.map +1 -0
- package/lib/esm/render/MockRender.d.ts +7 -5
- package/lib/esm/render/MockRender.d.ts.map +1 -1
- package/lib/esm/render/MockRender.js +5 -1
- package/lib/esm/render/MockRender.js.map +1 -1
- package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
- package/lib/esm/render/ParticleCollectionBuilder.js +4 -3
- package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/esm/render/PolylineArgs.d.ts +31 -0
- package/lib/esm/render/PolylineArgs.d.ts.map +1 -0
- package/lib/esm/render/PolylineArgs.js +9 -0
- package/lib/esm/render/PolylineArgs.js.map +1 -0
- package/lib/esm/render/RealityMeshParams.js +1 -1
- package/lib/esm/render/RealityMeshParams.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +36 -7
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js +96 -8
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/RenderTarget.d.ts +49 -5
- package/lib/esm/render/RenderTarget.d.ts.map +1 -1
- package/lib/esm/render/RenderTarget.js +33 -5
- package/lib/esm/render/RenderTarget.js.map +1 -1
- package/lib/esm/render/webgl/BackgroundMapDrape.js +2 -2
- package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/esm/render/webgl/CachedGeometry.d.ts +1 -1
- package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/esm/render/webgl/ColorInfo.d.ts +1 -1
- package/lib/esm/render/webgl/ColorInfo.d.ts.map +1 -1
- package/lib/esm/render/webgl/ColorInfo.js.map +1 -1
- package/lib/esm/render/webgl/EdgeGeometry.d.ts +2 -2
- package/lib/esm/render/webgl/EdgeGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.d.ts +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.js +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/esm/render/webgl/Graphic.d.ts +1 -1
- package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
- package/lib/esm/render/webgl/Graphic.js.map +1 -1
- package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
- package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.d.ts +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/esm/render/webgl/Material.d.ts +5 -1
- package/lib/esm/render/webgl/Material.d.ts.map +1 -1
- package/lib/esm/render/webgl/Material.js +5 -0
- package/lib/esm/render/webgl/Material.js.map +1 -1
- package/lib/esm/render/webgl/Mesh.d.ts +6 -3
- package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/Mesh.js +3 -1
- package/lib/esm/render/webgl/Mesh.js.map +1 -1
- package/lib/esm/render/webgl/MeshData.d.ts +2 -2
- package/lib/esm/render/webgl/MeshData.d.ts.map +1 -1
- package/lib/esm/render/webgl/MeshData.js.map +1 -1
- package/lib/esm/render/webgl/MeshGeometry.d.ts +1 -1
- package/lib/esm/render/webgl/MeshGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/PlanarClassifier.d.ts +2 -0
- package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/esm/render/webgl/PlanarClassifier.js +40 -13
- package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/esm/render/webgl/PlanarTextureProjection.d.ts +3 -3
- package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
- package/lib/esm/render/webgl/PlanarTextureProjection.js +54 -20
- package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/esm/render/webgl/PointCloud.d.ts +1 -1
- package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/esm/render/webgl/PointCloud.js.map +1 -1
- package/lib/esm/render/webgl/PointString.d.ts +1 -1
- package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
- package/lib/esm/render/webgl/PointString.js.map +1 -1
- package/lib/esm/render/webgl/Polyline.d.ts +1 -1
- package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
- package/lib/esm/render/webgl/Polyline.js.map +1 -1
- package/lib/esm/render/webgl/Primitive.d.ts +1 -1
- package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
- package/lib/esm/render/webgl/Primitive.js.map +1 -1
- package/lib/esm/render/webgl/RenderCommands.js +1 -1
- package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
- package/lib/esm/render/webgl/SolarShadowMap.js +2 -2
- package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/esm/render/webgl/SurfaceGeometry.d.ts +1 -1
- package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/SurfaceGeometry.js +1 -1
- package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/esm/render/webgl/System.d.ts +7 -6
- package/lib/esm/render/webgl/System.d.ts.map +1 -1
- package/lib/esm/render/webgl/System.js +1 -1
- package/lib/esm/render/webgl/System.js.map +1 -1
- package/lib/esm/render/webgl/Target.d.ts +3 -0
- package/lib/esm/render/webgl/Target.d.ts.map +1 -1
- package/lib/esm/render/webgl/Target.js +6 -1
- package/lib/esm/render/webgl/Target.js.map +1 -1
- package/lib/esm/render/webgl/VertexLUT.d.ts +2 -2
- package/lib/esm/render/webgl/VertexLUT.d.ts.map +1 -1
- package/lib/esm/render/webgl/VertexLUT.js.map +1 -1
- package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Animation.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/esm/tile/B3dmReader.d.ts +1 -2
- package/lib/esm/tile/B3dmReader.d.ts.map +1 -1
- package/lib/esm/tile/B3dmReader.js +1 -2
- package/lib/esm/tile/B3dmReader.js.map +1 -1
- package/lib/esm/tile/DynamicIModelTile.js +1 -0
- package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
- package/lib/esm/tile/GltfReader.d.ts +30 -6
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +245 -9
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/GraphicsCollector.d.ts.map +1 -1
- package/lib/esm/tile/GraphicsCollector.js +5 -2
- package/lib/esm/tile/GraphicsCollector.js.map +1 -1
- package/lib/esm/tile/I3dmReader.d.ts +1 -2
- package/lib/esm/tile/I3dmReader.d.ts.map +1 -1
- package/lib/esm/tile/I3dmReader.js +1 -2
- package/lib/esm/tile/I3dmReader.js.map +1 -1
- package/lib/esm/tile/ImdlDecoder.d.ts +1 -1
- package/lib/esm/tile/ImdlDecoder.d.ts.map +1 -1
- package/lib/esm/tile/ImdlDecoder.js.map +1 -1
- package/lib/esm/tile/ImdlGraphicsCreator.d.ts +4 -0
- package/lib/esm/tile/ImdlGraphicsCreator.d.ts.map +1 -1
- package/lib/esm/tile/ImdlGraphicsCreator.js +88 -6
- package/lib/esm/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/esm/tile/ImdlReader.d.ts +1 -1
- package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
- package/lib/esm/tile/ImdlReader.js.map +1 -1
- package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +1 -1
- package/lib/esm/tile/OPCFormatInterpreter.js +7 -2
- package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/esm/tile/OrbitGtTileTree.js +1 -1
- package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/esm/tile/PntsReader.js +1 -1
- package/lib/esm/tile/PntsReader.js.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.d.ts +6 -2
- package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.js +26 -1
- package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
- package/lib/esm/tile/RealityModelTileTree.js +1 -1
- package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/tile/RealityTile.d.ts +2 -3
- package/lib/esm/tile/RealityTile.d.ts.map +1 -1
- package/lib/esm/tile/RealityTile.js +0 -1
- package/lib/esm/tile/RealityTile.js.map +1 -1
- package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileLoader.js +1 -0
- package/lib/esm/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/tile/TileGeometryCollector.d.ts +4 -4
- package/lib/esm/tile/TileGeometryCollector.js +1 -1
- package/lib/esm/tile/TileGeometryCollector.js.map +1 -1
- package/lib/esm/tile/TileTreeReference.d.ts +0 -4
- package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeReference.js +0 -3
- package/lib/esm/tile/TileTreeReference.js.map +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.d.ts +1 -0
- package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.js +7 -5
- package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js +9 -4
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +3 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts +1 -1
- package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
- package/lib/esm/tile/map/MapFeatureInfo.d.ts +1 -1
- package/lib/esm/tile/map/MapFeatureInfo.d.ts.map +1 -1
- package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js +5 -5
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tools/AccuDrawTool.d.ts +21 -0
- package/lib/esm/tools/AccuDrawTool.d.ts.map +1 -1
- package/lib/esm/tools/AccuDrawTool.js +89 -0
- package/lib/esm/tools/AccuDrawTool.js.map +1 -1
- package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
- package/lib/esm/tools/ClipViewTool.js +1 -1
- package/lib/esm/tools/ClipViewTool.js.map +1 -1
- package/lib/esm/tools/ElementSetTool.d.ts +9 -5
- package/lib/esm/tools/ElementSetTool.d.ts.map +1 -1
- package/lib/esm/tools/ElementSetTool.js +9 -5
- package/lib/esm/tools/ElementSetTool.js.map +1 -1
- package/lib/esm/tools/MeasureTool.d.ts.map +1 -1
- package/lib/esm/tools/MeasureTool.js +1 -1
- package/lib/esm/tools/MeasureTool.js.map +1 -1
- package/lib/esm/tools/ToolAdmin.d.ts +2 -0
- package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/esm/tools/ToolAdmin.js +6 -1
- package/lib/esm/tools/ToolAdmin.js.map +1 -1
- package/lib/esm/tools/ViewTool.d.ts.map +1 -1
- package/lib/esm/tools/ViewTool.js +1 -1
- package/lib/esm/tools/ViewTool.js.map +1 -1
- package/lib/esm/workers/RegisterWorker.d.ts +2 -1
- package/lib/esm/workers/RegisterWorker.d.ts.map +1 -1
- package/lib/esm/workers/RegisterWorker.js +2 -1
- package/lib/esm/workers/RegisterWorker.js.map +1 -1
- package/lib/public/locales/en/CoreTools.json +15 -0
- package/lib/public/locales/en/iModelJs.json +5 -0
- package/lib/public/scripts/parse-imdl-worker.js +1 -1
- package/lib/workers/webpack/parse-imdl-worker.js +1 -1
- package/package.json +18 -18
- package/lib/cjs/common/render/AnimationNodeId.d.ts.map +0 -1
- package/lib/cjs/common/render/AnimationNodeId.js.map +0 -1
- package/lib/cjs/common/render/primitives/AuxChannelTable.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/AuxChannelTable.js.map +0 -1
- package/lib/cjs/common/render/primitives/DisplayParams.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/DisplayParams.js.map +0 -1
- package/lib/cjs/common/render/primitives/EdgeParams.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/EdgeParams.js +0 -46
- package/lib/cjs/common/render/primitives/EdgeParams.js.map +0 -1
- package/lib/cjs/common/render/primitives/MeshParams.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/MeshParams.js.map +0 -1
- package/lib/cjs/common/render/primitives/MeshPrimitive.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/MeshPrimitive.js.map +0 -1
- package/lib/cjs/common/render/primitives/PointStringParams.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/PointStringParams.js.map +0 -1
- package/lib/cjs/common/render/primitives/PolylineParams.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/PolylineParams.js.map +0 -1
- package/lib/cjs/common/render/primitives/SurfaceParams.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/SurfaceParams.js.map +0 -1
- package/lib/cjs/common/render/primitives/VertexIndices.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/VertexIndices.js.map +0 -1
- package/lib/cjs/common/render/primitives/VertexTable.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/VertexTable.js.map +0 -1
- package/lib/cjs/common/render/primitives/VertexTableSplitter.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/VertexTableSplitter.js.map +0 -1
- package/lib/cjs/render/GraphicPrimitive.d.ts.map +0 -1
- package/lib/cjs/render/GraphicPrimitive.js.map +0 -1
- package/lib/cjs/render/InstancedGraphicParams.d.ts.map +0 -1
- package/lib/cjs/render/InstancedGraphicParams.js.map +0 -1
- package/lib/cjs/render/primitives/ColorMap.d.ts.map +0 -1
- package/lib/cjs/render/primitives/ColorMap.js.map +0 -1
- package/lib/cjs/render/primitives/EdgeParams.d.ts +0 -8
- package/lib/cjs/render/primitives/EdgeParams.d.ts.map +0 -1
- package/lib/cjs/render/primitives/EdgeParams.js.map +0 -1
- package/lib/cjs/render/primitives/PointCloudPrimitive.d.ts.map +0 -1
- package/lib/cjs/render/primitives/PointCloudPrimitive.js.map +0 -1
- package/lib/cjs/render/primitives/PointStringParams.d.ts +0 -8
- package/lib/cjs/render/primitives/PointStringParams.d.ts.map +0 -1
- package/lib/cjs/render/primitives/PointStringParams.js.map +0 -1
- package/lib/cjs/render/primitives/Polyface.d.ts.map +0 -1
- package/lib/cjs/render/primitives/Polyface.js.map +0 -1
- package/lib/cjs/render/primitives/PolylineParams.d.ts +0 -15
- package/lib/cjs/render/primitives/PolylineParams.d.ts.map +0 -1
- package/lib/cjs/render/primitives/PolylineParams.js.map +0 -1
- package/lib/cjs/render/primitives/Primitives.d.ts.map +0 -1
- package/lib/cjs/render/primitives/Primitives.js.map +0 -1
- package/lib/cjs/render/primitives/Strokes.d.ts.map +0 -1
- package/lib/cjs/render/primitives/Strokes.js.map +0 -1
- package/lib/cjs/render/primitives/VertexKey.d.ts.map +0 -1
- package/lib/cjs/render/primitives/VertexKey.js.map +0 -1
- package/lib/cjs/render/primitives/VertexTableBuilder.d.ts.map +0 -1
- package/lib/cjs/render/primitives/VertexTableBuilder.js.map +0 -1
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +0 -1
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +0 -1
- package/lib/cjs/render/primitives/geometry/GeometryList.d.ts.map +0 -1
- package/lib/cjs/render/primitives/geometry/GeometryList.js.map +0 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts +0 -50
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +0 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +0 -176
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +0 -1
- package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts.map +0 -1
- package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js.map +0 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +0 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts.map +0 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +0 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +0 -171
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +0 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +0 -1
- package/lib/esm/common/render/AnimationNodeId.d.ts.map +0 -1
- package/lib/esm/common/render/AnimationNodeId.js.map +0 -1
- package/lib/esm/common/render/primitives/AuxChannelTable.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/AuxChannelTable.js.map +0 -1
- package/lib/esm/common/render/primitives/DisplayParams.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/DisplayParams.js.map +0 -1
- package/lib/esm/common/render/primitives/EdgeParams.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/EdgeParams.js +0 -42
- package/lib/esm/common/render/primitives/EdgeParams.js.map +0 -1
- package/lib/esm/common/render/primitives/MeshParams.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/MeshParams.js.map +0 -1
- package/lib/esm/common/render/primitives/MeshPrimitive.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/MeshPrimitive.js.map +0 -1
- package/lib/esm/common/render/primitives/PointStringParams.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/PointStringParams.js.map +0 -1
- package/lib/esm/common/render/primitives/PolylineParams.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/PolylineParams.js.map +0 -1
- package/lib/esm/common/render/primitives/SurfaceParams.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/SurfaceParams.js.map +0 -1
- package/lib/esm/common/render/primitives/VertexIndices.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/VertexIndices.js.map +0 -1
- package/lib/esm/common/render/primitives/VertexTable.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/VertexTable.js.map +0 -1
- package/lib/esm/common/render/primitives/VertexTableSplitter.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/VertexTableSplitter.js.map +0 -1
- package/lib/esm/render/GraphicPrimitive.d.ts.map +0 -1
- package/lib/esm/render/GraphicPrimitive.js.map +0 -1
- package/lib/esm/render/InstancedGraphicParams.d.ts.map +0 -1
- package/lib/esm/render/InstancedGraphicParams.js.map +0 -1
- package/lib/esm/render/primitives/ColorMap.d.ts.map +0 -1
- package/lib/esm/render/primitives/ColorMap.js.map +0 -1
- package/lib/esm/render/primitives/EdgeParams.d.ts +0 -8
- package/lib/esm/render/primitives/EdgeParams.d.ts.map +0 -1
- package/lib/esm/render/primitives/EdgeParams.js.map +0 -1
- package/lib/esm/render/primitives/PointCloudPrimitive.d.ts.map +0 -1
- package/lib/esm/render/primitives/PointCloudPrimitive.js.map +0 -1
- package/lib/esm/render/primitives/PointStringParams.d.ts +0 -8
- package/lib/esm/render/primitives/PointStringParams.d.ts.map +0 -1
- package/lib/esm/render/primitives/PointStringParams.js.map +0 -1
- package/lib/esm/render/primitives/Polyface.d.ts.map +0 -1
- package/lib/esm/render/primitives/Polyface.js.map +0 -1
- package/lib/esm/render/primitives/PolylineParams.d.ts +0 -15
- package/lib/esm/render/primitives/PolylineParams.d.ts.map +0 -1
- package/lib/esm/render/primitives/PolylineParams.js.map +0 -1
- package/lib/esm/render/primitives/Primitives.d.ts.map +0 -1
- package/lib/esm/render/primitives/Primitives.js.map +0 -1
- package/lib/esm/render/primitives/Strokes.d.ts.map +0 -1
- package/lib/esm/render/primitives/Strokes.js.map +0 -1
- package/lib/esm/render/primitives/VertexKey.d.ts.map +0 -1
- package/lib/esm/render/primitives/VertexKey.js.map +0 -1
- package/lib/esm/render/primitives/VertexTableBuilder.d.ts.map +0 -1
- package/lib/esm/render/primitives/VertexTableBuilder.js.map +0 -1
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +0 -1
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +0 -1
- package/lib/esm/render/primitives/geometry/GeometryList.d.ts.map +0 -1
- package/lib/esm/render/primitives/geometry/GeometryList.js.map +0 -1
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts +0 -50
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +0 -1
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +0 -171
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +0 -1
- package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts.map +0 -1
- package/lib/esm/render/primitives/geometry/GeometryPrimitives.js.map +0 -1
- package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +0 -1
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts.map +0 -1
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +0 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +0 -171
- package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +0 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +0 -1
- /package/lib/cjs/common/{render → internal/render}/AnimationNodeId.d.ts +0 -0
- /package/lib/cjs/common/{render → internal/render}/AnimationNodeId.js +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/AuxChannelTable.d.ts +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/AuxChannelTable.js +0 -0
- /package/lib/cjs/{render/primitives → common/internal/render}/ColorMap.d.ts +0 -0
- /package/lib/cjs/{render/primitives → common/internal/render}/ColorMap.js +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/DisplayParams.d.ts +0 -0
- /package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryList.d.ts +0 -0
- /package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryList.js +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/MeshParams.d.ts +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/MeshParams.js +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/MeshPrimitive.d.ts +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/MeshPrimitive.js +0 -0
- /package/lib/cjs/{render/primitives → common/internal/render}/PointCloudPrimitive.d.ts +0 -0
- /package/lib/cjs/{render/primitives → common/internal/render}/PointCloudPrimitive.js +0 -0
- /package/lib/cjs/{render/primitives → common/internal/render}/Polyface.js +0 -0
- /package/lib/cjs/{render/primitives → common/internal/render}/Strokes.js +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/SurfaceParams.d.ts +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/SurfaceParams.js +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/VertexIndices.d.ts +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/VertexIndices.js +0 -0
- /package/lib/cjs/{render/primitives → common/internal/render}/VertexKey.d.ts +0 -0
- /package/lib/cjs/{render/primitives → common/internal/render}/VertexKey.js +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/VertexTable.d.ts +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/VertexTable.js +0 -0
- /package/lib/cjs/{render → common/render}/GraphicPrimitive.d.ts +0 -0
- /package/lib/cjs/{render → common/render}/GraphicPrimitive.js +0 -0
- /package/lib/cjs/{render → common/render}/InstancedGraphicParams.d.ts +0 -0
- /package/lib/cjs/{render → common/render}/InstancedGraphicParams.js +0 -0
- /package/lib/esm/common/{render → internal/render}/AnimationNodeId.d.ts +0 -0
- /package/lib/esm/common/{render → internal/render}/AnimationNodeId.js +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/AuxChannelTable.d.ts +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/AuxChannelTable.js +0 -0
- /package/lib/esm/{render/primitives → common/internal/render}/ColorMap.d.ts +0 -0
- /package/lib/esm/{render/primitives → common/internal/render}/ColorMap.js +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/DisplayParams.d.ts +0 -0
- /package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryList.d.ts +0 -0
- /package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryList.js +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/MeshParams.d.ts +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/MeshParams.js +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/MeshPrimitive.d.ts +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/MeshPrimitive.js +0 -0
- /package/lib/esm/{render/primitives → common/internal/render}/PointCloudPrimitive.d.ts +0 -0
- /package/lib/esm/{render/primitives → common/internal/render}/PointCloudPrimitive.js +0 -0
- /package/lib/esm/{render/primitives → common/internal/render}/Polyface.js +0 -0
- /package/lib/esm/{render/primitives → common/internal/render}/Strokes.js +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/SurfaceParams.d.ts +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/SurfaceParams.js +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/VertexIndices.d.ts +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/VertexIndices.js +0 -0
- /package/lib/esm/{render/primitives → common/internal/render}/VertexKey.d.ts +0 -0
- /package/lib/esm/{render/primitives → common/internal/render}/VertexKey.js +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/VertexTable.d.ts +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/VertexTable.js +0 -0
- /package/lib/esm/{render → common/render}/GraphicPrimitive.d.ts +0 -0
- /package/lib/esm/{render → common/render}/GraphicPrimitive.js +0 -0
- /package/lib/esm/{render → common/render}/InstancedGraphicParams.d.ts +0 -0
- /package/lib/esm/{render → common/render}/InstancedGraphicParams.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpatialViewState.js","sourceRoot":"","sources":["../../src/SpatialViewState.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Views\r\n */\r\n\r\nimport { BeEvent, CompressedId64Set, Id64String } from \"@itwin/core-bentley\";\r\nimport { Constant, Matrix3d, Range3d, XYAndZ } from \"@itwin/core-geometry\";\r\nimport { AxisAlignedBox3d, HydrateViewStateRequestProps, HydrateViewStateResponseProps, SpatialViewDefinitionProps, ViewStateProps } from \"@itwin/core-common\";\r\nimport { AuxCoordSystemSpatialState, AuxCoordSystemState } from \"./AuxCoordSys\";\r\nimport { ModelSelectorState } from \"./ModelSelectorState\";\r\nimport { CategorySelectorState } from \"./CategorySelectorState\";\r\nimport { DisplayStyle3dState } from \"./DisplayStyleState\";\r\nimport { GeometricModel3dState, GeometricModelState } from \"./ModelState\";\r\nimport { SceneContext } from \"./ViewContext\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\nimport { AttachToViewportArgs, ViewState3d } from \"./ViewState\";\r\nimport { SpatialTileTreeReferences, TileTreeReference } from \"./tile/internal\";\r\n\r\n/** Options supplied to [[SpatialViewState.computeFitRange]].\r\n * @public\r\n */\r\nexport interface ComputeSpatialViewFitRangeOptions {\r\n /** The minimal extents. The computed range will be unioned with this range if supplied. */\r\n baseExtents?: Range3d;\r\n}\r\n\r\n/** Defines a view of one or more SpatialModels.\r\n * The list of viewed models is stored in the ModelSelector.\r\n * @public\r\n * @extensions\r\n */\r\nexport class SpatialViewState extends ViewState3d {\r\n public static override get className() { return \"SpatialViewDefinition\"; }\r\n\r\n private readonly _treeRefs: SpatialTileTreeReferences;\r\n private _modelSelector: ModelSelectorState;\r\n private readonly _unregisterModelSelectorListeners: VoidFunction[] = [];\r\n\r\n /** An event raised when the set of models viewed by this view changes, *only* if the view is attached to a [[Viewport]].\r\n * @public\r\n */\r\n public readonly onViewedModelsChanged = new BeEvent<() => void>();\r\n\r\n public get modelSelector(): ModelSelectorState {\r\n return this._modelSelector;\r\n }\r\n\r\n public set modelSelector(selector: ModelSelectorState) {\r\n if (selector === this.modelSelector)\r\n return;\r\n\r\n const isAttached = this.isAttachedToViewport;\r\n this.unregisterModelSelectorListeners();\r\n\r\n this._modelSelector = selector;\r\n\r\n if (isAttached) {\r\n this.registerModelSelectorListeners();\r\n this.onViewedModelsChanged.raiseEvent();\r\n }\r\n\r\n this.markModelSelectorChanged();\r\n }\r\n\r\n /** Create a new *blank* SpatialViewState. The returned SpatialViewState will nave non-persistent empty [[CategorySelectorState]] and [[ModelSelectorState]],\r\n * and a non-persistent [[DisplayStyle3dState]] with default values for all of its components. Generally after creating a blank SpatialViewState,\r\n * callers will modify the state to suit specific needs.\r\n * @param iModel The IModelConnection for the new SpatialViewState\r\n * @param origin The origin for the new SpatialViewState\r\n * @param extents The extents for the new SpatialViewState\r\n * @param rotation The rotation of the new SpatialViewState. If undefined, use top view.\r\n * @public\r\n */\r\n public static createBlank(iModel: IModelConnection, origin: XYAndZ, extents: XYAndZ, rotation?: Matrix3d): SpatialViewState {\r\n const blank = {} as any;\r\n const cat = new CategorySelectorState(blank, iModel);\r\n const modelSelectorState = new ModelSelectorState(blank, iModel);\r\n const displayStyleState = new DisplayStyle3dState(blank, iModel);\r\n const view = new this(blank, iModel, cat, displayStyleState, modelSelectorState);\r\n view.setOrigin(origin);\r\n view.setExtents(extents);\r\n if (undefined !== rotation)\r\n view.setRotation(rotation);\r\n return view;\r\n }\r\n\r\n public static override createFromProps(props: ViewStateProps, iModel: IModelConnection): SpatialViewState {\r\n const cat = new CategorySelectorState(props.categorySelectorProps, iModel);\r\n const displayStyleState = new DisplayStyle3dState(props.displayStyleProps, iModel);\r\n const modelSelectorState = new ModelSelectorState(props.modelSelectorProps!, iModel);\r\n return new this(props.viewDefinitionProps as SpatialViewDefinitionProps, iModel, cat, displayStyleState, modelSelectorState);\r\n }\r\n\r\n public override toProps(): ViewStateProps {\r\n const props = super.toProps();\r\n props.modelSelectorProps = this.modelSelector.toJSON();\r\n return props;\r\n }\r\n\r\n constructor(props: SpatialViewDefinitionProps, iModel: IModelConnection, arg3: CategorySelectorState, displayStyle: DisplayStyle3dState, modelSelector: ModelSelectorState) {\r\n super(props, iModel, arg3, displayStyle);\r\n this._modelSelector = modelSelector;\r\n if (arg3 instanceof SpatialViewState) // from clone\r\n this._modelSelector = arg3.modelSelector.clone();\r\n\r\n this._treeRefs = SpatialTileTreeReferences.create(this);\r\n }\r\n\r\n /** @internal */\r\n public override isSpatialView(): this is SpatialViewState { return true; }\r\n\r\n public override equals(other: this): boolean { return super.equals(other) && this.modelSelector.equals(other.modelSelector); }\r\n\r\n public override createAuxCoordSystem(acsName: string): AuxCoordSystemState { return AuxCoordSystemSpatialState.createNew(acsName, this.iModel); }\r\n public get defaultExtentLimits() { return { min: Constant.oneMillimeter, max: 3 * Constant.diameterOfEarth }; } // Increased max by 3X to support globe mode.\r\n\r\n /** @internal */\r\n public markModelSelectorChanged(): void {\r\n this._treeRefs.update();\r\n }\r\n\r\n /** Get world-space viewed extents based on the iModel's project extents.\r\n * @deprecated in 3.6. These extents are based on [[IModelConnection.displayedExtents]], which is deprecated. Consider using [[computeFitRange]] or [[getViewedExtents]] instead.\r\n */\r\n protected getDisplayedExtents(): AxisAlignedBox3d {\r\n /* eslint-disable-next-line deprecation/deprecation */\r\n const extents = Range3d.fromJSON<AxisAlignedBox3d>(this.iModel.displayedExtents);\r\n extents.scaleAboutCenterInPlace(1.0001); // projectExtents. lying smack up against the extents is not excluded by frustum...\r\n extents.extendRange(this.getGroundExtents());\r\n return extents;\r\n }\r\n\r\n private computeBaseExtents(): AxisAlignedBox3d {\r\n const extents = Range3d.fromJSON<AxisAlignedBox3d>(this.iModel.projectExtents);\r\n\r\n // Ensure geometry coincident with planes of the project extents is not clipped.\r\n extents.scaleAboutCenterInPlace(1.0001);\r\n\r\n // Ensure ground plane is not clipped, if it's being drawn.\r\n extents.extendRange(this.getGroundExtents());\r\n\r\n return extents;\r\n }\r\n\r\n /** Compute a volume in world coordinates tightly encompassing the contents of the view. The volume is computed from the union of the volumes of the\r\n * view's viewed models, including [GeometricModel]($backend)s and reality models.\r\n * Those volumes are obtained from the [[TileTree]]s used to render those models, so any tile tree that has not yet been loaded will not contribute to the computation.\r\n * If `options.baseExtents` is defined, it will be unioned with the computed volume.\r\n * If the computed volume is null (empty), a default volume will be computed from [IModel.projectExtents]($common), which may be a looser approximation of the\r\n * models' volumes.\r\n * @param options Options used to customize how the volume is computed.\r\n * @returns A non-null volume in world coordinates encompassing the contents of the view.\r\n */\r\n public computeFitRange(options?: ComputeSpatialViewFitRangeOptions): AxisAlignedBox3d {\r\n // Fit to the union of the ranges of all loaded tile trees.\r\n const range = options?.baseExtents?.clone() ?? new Range3d();\r\n this.forEachTileTreeRef((ref) => {\r\n ref.unionFitRange(range);\r\n });\r\n\r\n // Fall back to the project extents if necessary.\r\n if (range.isNull)\r\n range.setFrom(this.computeBaseExtents());\r\n\r\n // Avoid ridiculously small extents.\r\n range.ensureMinLengths(1.0);\r\n\r\n return range;\r\n }\r\n\r\n public getViewedExtents(): AxisAlignedBox3d {\r\n // Encompass the project extents and ground plane.\r\n const extents = this.computeBaseExtents();\r\n\r\n // Include any tile trees that extend outside the project extents.\r\n extents.extendRange(this.computeFitRange());\r\n\r\n return extents;\r\n }\r\n\r\n public override toJSON(): SpatialViewDefinitionProps {\r\n const val = super.toJSON() as SpatialViewDefinitionProps;\r\n val.modelSelectorId = this.modelSelector.id;\r\n return val;\r\n }\r\n\r\n /** @internal */\r\n protected override preload(hydrateRequest: HydrateViewStateRequestProps): void {\r\n super.preload(hydrateRequest);\r\n const notLoaded = this.iModel.models.filterLoaded(this.modelSelector.models);\r\n if (undefined === notLoaded)\r\n return; // all requested models are already loaded\r\n hydrateRequest.notLoadedModelSelectorStateModels = CompressedId64Set.sortAndCompress(notLoaded);\r\n }\r\n\r\n /** @internal */\r\n protected override async postload(hydrateResponse: HydrateViewStateResponseProps): Promise<void> {\r\n const promises = [];\r\n promises.push(super.postload(hydrateResponse));\r\n if (hydrateResponse.modelSelectorStateModels !== undefined)\r\n promises.push(this.iModel.models.updateLoadedWithModelProps(hydrateResponse.modelSelectorStateModels));\r\n await Promise.all(promises);\r\n }\r\n\r\n public viewsModel(modelId: Id64String): boolean { return this.modelSelector.containsModel(modelId); }\r\n public clearViewedModels() { this.modelSelector.models.clear(); }\r\n public addViewedModel(id: Id64String) { this.modelSelector.addModels(id); }\r\n public removeViewedModel(id: Id64String) { this.modelSelector.dropModels(id); }\r\n\r\n public forEachModel(func: (model: GeometricModelState) => void) {\r\n for (const modelId of this.modelSelector.models) {\r\n const model = this.iModel.models.getLoaded(modelId);\r\n if (undefined !== model && undefined !== model.asGeometricModel3d)\r\n func(model as GeometricModel3dState);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public override forEachModelTreeRef(func: (treeRef: TileTreeReference) => void): void {\r\n for (const ref of this._treeRefs)\r\n func(ref);\r\n }\r\n\r\n /** @internal */\r\n public override createScene(context: SceneContext): void {\r\n super.createScene(context);\r\n context.textureDrapes.forEach((drape) => drape.collectGraphics(context));\r\n context.viewport.target.updateSolarShadows(this.getDisplayStyle3d().wantShadows ? context : undefined);\r\n }\r\n\r\n /** See [[ViewState.attachToViewport]]. */\r\n public override attachToViewport(args: AttachToViewportArgs): void {\r\n super.attachToViewport(args);\r\n this.registerModelSelectorListeners();\r\n this._treeRefs.attachToViewport(args);\r\n }\r\n\r\n /** See [[ViewState.detachFromViewport]]. */\r\n public override detachFromViewport(): void {\r\n super.detachFromViewport();\r\n this._treeRefs.detachFromViewport();\r\n this.unregisterModelSelectorListeners();\r\n }\r\n\r\n /** Chiefly for debugging: change the \"deactivated\" state of one or more tile tree references. Deactivated references are\r\n * omitted when iterating the references, so e.g. their graphics are omitted from the scene.\r\n * @param modelIds The Ids of one or more models whose tile tree references are to be affected. If omitted, all models are affected.\r\n * @param deactivated True to deactivate the specified references, false to reactivate them, undefined to invert each one's current state.\r\n * @param which The references to be affected as either a broad category or one or more indices of animated references.\r\n * @internal\r\n */\r\n public setTileTreeReferencesDeactivated(modelIds: Id64String | Id64String[] | undefined, deactivated: boolean | undefined, which: \"all\" | \"animated\" | \"primary\" | \"section\" | number[]): void {\r\n this._treeRefs.setDeactivated(modelIds, deactivated, which);\r\n }\r\n\r\n private registerModelSelectorListeners(): void {\r\n const models = this.modelSelector.observableModels;\r\n const func = () => {\r\n this.markModelSelectorChanged();\r\n this.onViewedModelsChanged.raiseEvent();\r\n };\r\n\r\n this._unregisterModelSelectorListeners.push(models.onAdded.addListener(func));\r\n this._unregisterModelSelectorListeners.push(models.onDeleted.addListener(func));\r\n this._unregisterModelSelectorListeners.push(models.onCleared.addListener(func));\r\n }\r\n\r\n private unregisterModelSelectorListeners(): void {\r\n this._unregisterModelSelectorListeners.forEach((f) => f());\r\n this._unregisterModelSelectorListeners.length = 0;\r\n }\r\n}\r\n/** Defines a spatial view that displays geometry on the image plane using a parallel orthographic projection.\r\n * @public\r\n * @extensions\r\n */\r\nexport class OrthographicViewState extends SpatialViewState {\r\n public static override get className() { return \"OrthographicViewDefinition\"; }\r\n\r\n constructor(props: SpatialViewDefinitionProps, iModel: IModelConnection, categories: CategorySelectorState, displayStyle: DisplayStyle3dState, modelSelector: ModelSelectorState) { super(props, iModel, categories, displayStyle, modelSelector); }\r\n\r\n public override supportsCamera(): boolean { return false; }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"SpatialViewState.js","sourceRoot":"","sources":["../../src/SpatialViewState.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Views\r\n */\r\n\r\nimport { BeEvent, CompressedId64Set, Id64String, OrderedId64Iterable } from \"@itwin/core-bentley\";\r\nimport { Constant, Matrix3d, Range3d, XYAndZ } from \"@itwin/core-geometry\";\r\nimport { AxisAlignedBox3d, HydrateViewStateRequestProps, HydrateViewStateResponseProps, SpatialViewDefinitionProps, ViewStateProps } from \"@itwin/core-common\";\r\nimport { AuxCoordSystemSpatialState, AuxCoordSystemState } from \"./AuxCoordSys\";\r\nimport { ModelSelectorState } from \"./ModelSelectorState\";\r\nimport { CategorySelectorState } from \"./CategorySelectorState\";\r\nimport { DisplayStyle3dState } from \"./DisplayStyleState\";\r\nimport { GeometricModel3dState, GeometricModelState } from \"./ModelState\";\r\nimport { SceneContext } from \"./ViewContext\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\nimport { AttachToViewportArgs, ViewState3d } from \"./ViewState\";\r\nimport { SpatialTileTreeReferences, TileTreeReference } from \"./tile/internal\";\r\n\r\n/** Options supplied to [[SpatialViewState.computeFitRange]].\r\n * @public\r\n */\r\nexport interface ComputeSpatialViewFitRangeOptions {\r\n /** The minimal extents. The computed range will be unioned with this range if supplied. */\r\n baseExtents?: Range3d;\r\n}\r\n\r\n/** Defines a view of one or more SpatialModels.\r\n * The list of viewed models is stored in the ModelSelector.\r\n * @public\r\n * @extensions\r\n */\r\nexport class SpatialViewState extends ViewState3d {\r\n public static override get className() { return \"SpatialViewDefinition\"; }\r\n\r\n private readonly _treeRefs: SpatialTileTreeReferences;\r\n private _modelSelector: ModelSelectorState;\r\n private readonly _unregisterModelSelectorListeners: VoidFunction[] = [];\r\n\r\n /** An event raised when the set of models viewed by this view changes, *only* if the view is attached to a [[Viewport]].\r\n * @public\r\n */\r\n public readonly onViewedModelsChanged = new BeEvent<() => void>();\r\n\r\n public get modelSelector(): ModelSelectorState {\r\n return this._modelSelector;\r\n }\r\n\r\n public set modelSelector(selector: ModelSelectorState) {\r\n if (selector === this.modelSelector)\r\n return;\r\n\r\n const isAttached = this.isAttachedToViewport;\r\n this.unregisterModelSelectorListeners();\r\n\r\n this._modelSelector = selector;\r\n\r\n if (isAttached) {\r\n this.registerModelSelectorListeners();\r\n this.onViewedModelsChanged.raiseEvent();\r\n }\r\n\r\n this.markModelSelectorChanged();\r\n }\r\n\r\n /** Create a new *blank* SpatialViewState. The returned SpatialViewState will nave non-persistent empty [[CategorySelectorState]] and [[ModelSelectorState]],\r\n * and a non-persistent [[DisplayStyle3dState]] with default values for all of its components. Generally after creating a blank SpatialViewState,\r\n * callers will modify the state to suit specific needs.\r\n * @param iModel The IModelConnection for the new SpatialViewState\r\n * @param origin The origin for the new SpatialViewState\r\n * @param extents The extents for the new SpatialViewState\r\n * @param rotation The rotation of the new SpatialViewState. If undefined, use top view.\r\n * @public\r\n */\r\n public static createBlank(iModel: IModelConnection, origin: XYAndZ, extents: XYAndZ, rotation?: Matrix3d): SpatialViewState {\r\n const blank = {} as any;\r\n const cat = new CategorySelectorState(blank, iModel);\r\n const modelSelectorState = new ModelSelectorState(blank, iModel);\r\n const displayStyleState = new DisplayStyle3dState(blank, iModel);\r\n const view = new this(blank, iModel, cat, displayStyleState, modelSelectorState);\r\n view.setOrigin(origin);\r\n view.setExtents(extents);\r\n if (undefined !== rotation)\r\n view.setRotation(rotation);\r\n return view;\r\n }\r\n\r\n public static override createFromProps(props: ViewStateProps, iModel: IModelConnection): SpatialViewState {\r\n const cat = new CategorySelectorState(props.categorySelectorProps, iModel);\r\n const displayStyleState = new DisplayStyle3dState(props.displayStyleProps, iModel);\r\n const modelSelectorState = new ModelSelectorState(props.modelSelectorProps!, iModel);\r\n return new this(props.viewDefinitionProps as SpatialViewDefinitionProps, iModel, cat, displayStyleState, modelSelectorState);\r\n }\r\n\r\n public override toProps(): ViewStateProps {\r\n const props = super.toProps();\r\n props.modelSelectorProps = this.modelSelector.toJSON();\r\n return props;\r\n }\r\n\r\n constructor(props: SpatialViewDefinitionProps, iModel: IModelConnection, arg3: CategorySelectorState, displayStyle: DisplayStyle3dState, modelSelector: ModelSelectorState) {\r\n super(props, iModel, arg3, displayStyle);\r\n this._modelSelector = modelSelector;\r\n if (arg3 instanceof SpatialViewState) // from clone\r\n this._modelSelector = arg3.modelSelector.clone();\r\n\r\n this._treeRefs = SpatialTileTreeReferences.create(this);\r\n }\r\n\r\n /** @internal */\r\n public override isSpatialView(): this is SpatialViewState { return true; }\r\n\r\n public override equals(other: this): boolean { return super.equals(other) && this.modelSelector.equals(other.modelSelector); }\r\n\r\n public override createAuxCoordSystem(acsName: string): AuxCoordSystemState { return AuxCoordSystemSpatialState.createNew(acsName, this.iModel); }\r\n public get defaultExtentLimits() { return { min: Constant.oneMillimeter, max: 3 * Constant.diameterOfEarth }; } // Increased max by 3X to support globe mode.\r\n\r\n /** @internal */\r\n public markModelSelectorChanged(): void {\r\n this._treeRefs.update();\r\n }\r\n\r\n /** Get world-space viewed extents based on the iModel's project extents.\r\n * @deprecated in 3.6. These extents are based on [[IModelConnection.displayedExtents]], which is deprecated. Consider using [[computeFitRange]] or [[getViewedExtents]] instead.\r\n */\r\n protected getDisplayedExtents(): AxisAlignedBox3d {\r\n /* eslint-disable-next-line deprecation/deprecation */\r\n const extents = Range3d.fromJSON<AxisAlignedBox3d>(this.iModel.displayedExtents);\r\n extents.scaleAboutCenterInPlace(1.0001); // projectExtents. lying smack up against the extents is not excluded by frustum...\r\n extents.extendRange(this.getGroundExtents());\r\n return extents;\r\n }\r\n\r\n private computeBaseExtents(): AxisAlignedBox3d {\r\n const extents = Range3d.fromJSON<AxisAlignedBox3d>(this.iModel.projectExtents);\r\n\r\n // Ensure geometry coincident with planes of the project extents is not clipped.\r\n extents.scaleAboutCenterInPlace(1.0001);\r\n\r\n // Ensure ground plane is not clipped, if it's being drawn.\r\n extents.extendRange(this.getGroundExtents());\r\n\r\n return extents;\r\n }\r\n\r\n /** Compute a volume in world coordinates tightly encompassing the contents of the view. The volume is computed from the union of the volumes of the\r\n * view's viewed models, including [GeometricModel]($backend)s and reality models.\r\n * Those volumes are obtained from the [[TileTree]]s used to render those models, so any tile tree that has not yet been loaded will not contribute to the computation.\r\n * If `options.baseExtents` is defined, it will be unioned with the computed volume.\r\n * If the computed volume is null (empty), a default volume will be computed from [IModel.projectExtents]($common), which may be a looser approximation of the\r\n * models' volumes.\r\n * @param options Options used to customize how the volume is computed.\r\n * @returns A non-null volume in world coordinates encompassing the contents of the view.\r\n */\r\n public computeFitRange(options?: ComputeSpatialViewFitRangeOptions): AxisAlignedBox3d {\r\n // Fit to the union of the ranges of all loaded tile trees.\r\n const range = options?.baseExtents?.clone() ?? new Range3d();\r\n this.forEachTileTreeRef((ref) => {\r\n ref.unionFitRange(range);\r\n });\r\n\r\n // Fall back to the project extents if necessary.\r\n if (range.isNull)\r\n range.setFrom(this.computeBaseExtents());\r\n\r\n // Avoid ridiculously small extents.\r\n range.ensureMinLengths(1.0);\r\n\r\n return range;\r\n }\r\n\r\n public getViewedExtents(): AxisAlignedBox3d {\r\n // Encompass the project extents and ground plane.\r\n const extents = this.computeBaseExtents();\r\n\r\n // Include any tile trees that extend outside the project extents.\r\n extents.extendRange(this.computeFitRange());\r\n\r\n return extents;\r\n }\r\n\r\n public override toJSON(): SpatialViewDefinitionProps {\r\n const val = super.toJSON() as SpatialViewDefinitionProps;\r\n val.modelSelectorId = this.modelSelector.id;\r\n return val;\r\n }\r\n\r\n /** @internal */\r\n protected override preload(hydrateRequest: HydrateViewStateRequestProps): void {\r\n super.preload(hydrateRequest);\r\n const notLoaded = this.iModel.models.filterLoaded(this.modelSelector.models);\r\n if (undefined === notLoaded)\r\n return; // all requested models are already loaded\r\n hydrateRequest.notLoadedModelSelectorStateModels = CompressedId64Set.sortAndCompress(notLoaded);\r\n }\r\n\r\n /** @internal */\r\n protected override async postload(hydrateResponse: HydrateViewStateResponseProps): Promise<void> {\r\n const promises = [];\r\n promises.push(super.postload(hydrateResponse));\r\n if (hydrateResponse.modelSelectorStateModels !== undefined)\r\n promises.push(this.iModel.models.updateLoadedWithModelProps(hydrateResponse.modelSelectorStateModels));\r\n await Promise.all(promises);\r\n }\r\n\r\n public viewsModel(modelId: Id64String): boolean { return this.modelSelector.containsModel(modelId); }\r\n public clearViewedModels() { this.modelSelector.models.clear(); }\r\n public addViewedModel(id: Id64String) { this.modelSelector.addModels(id); }\r\n public removeViewedModel(id: Id64String) { this.modelSelector.dropModels(id); }\r\n\r\n public forEachModel(func: (model: GeometricModelState) => void) {\r\n for (const modelId of this.modelSelector.models) {\r\n const model = this.iModel.models.getLoaded(modelId);\r\n if (undefined !== model && undefined !== model.asGeometricModel3d)\r\n func(model as GeometricModel3dState);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public override forEachModelTreeRef(func: (treeRef: TileTreeReference) => void): void {\r\n for (const ref of this._treeRefs)\r\n func(ref);\r\n }\r\n\r\n /** @internal */\r\n public override createScene(context: SceneContext): void {\r\n super.createScene(context);\r\n context.textureDrapes.forEach((drape) => drape.collectGraphics(context));\r\n context.viewport.target.updateSolarShadows(this.getDisplayStyle3d().wantShadows ? context : undefined);\r\n }\r\n\r\n /** See [[ViewState.attachToViewport]]. */\r\n public override attachToViewport(args: AttachToViewportArgs): void {\r\n super.attachToViewport(args);\r\n this.registerModelSelectorListeners();\r\n this._treeRefs.attachToViewport(args);\r\n }\r\n\r\n /** See [[ViewState.detachFromViewport]]. */\r\n public override detachFromViewport(): void {\r\n super.detachFromViewport();\r\n this._treeRefs.detachFromViewport();\r\n this.unregisterModelSelectorListeners();\r\n }\r\n\r\n /** Chiefly for debugging: change the \"deactivated\" state of one or more tile tree references. Deactivated references are\r\n * omitted when iterating the references, so e.g. their graphics are omitted from the scene.\r\n * @param modelIds The Ids of one or more models whose tile tree references are to be affected. If omitted, all models are affected.\r\n * @param deactivated True to deactivate the specified references, false to reactivate them, undefined to invert each one's current state.\r\n * @param which The references to be affected as either a broad category or one or more indices of animated references.\r\n * @internal\r\n */\r\n public setTileTreeReferencesDeactivated(modelIds: Id64String | Id64String[] | undefined, deactivated: boolean | undefined, which: \"all\" | \"animated\" | \"primary\" | \"section\" | number[]): void {\r\n this._treeRefs.setDeactivated(modelIds, deactivated, which);\r\n }\r\n\r\n /** For getting the [TileTreeReference]s that are in the modelIds, for planar classification.\r\n * @param modelIds modelIds for which to get the TileTreeReferences\r\n * @param maskTreeRefs where to store the TileTreeReferences\r\n * @param maskRange range to extend for the maskRefs\r\n * @internal\r\n */\r\n public collectMaskRefs(modelIds: OrderedId64Iterable, maskTreeRefs: TileTreeReference[], maskRange: Range3d): void {\r\n this._treeRefs.collectMaskRefs(modelIds, maskTreeRefs, maskRange);\r\n }\r\n\r\n /** For getting a list of modelIds which do not participate in masking for planar classification.\r\n * @param maskModels models which DO participate in planar clip masking\r\n * @param useVisible when true, use visible models to set flag\r\n * @internal\r\n */\r\n public getModelsNotInMask(maskModels: OrderedId64Iterable | undefined, useVisible: boolean): Id64String[] | undefined {\r\n return this._treeRefs.getModelsNotInMask(maskModels, useVisible);\r\n }\r\n\r\n private registerModelSelectorListeners(): void {\r\n const models = this.modelSelector.observableModels;\r\n const func = () => {\r\n this.markModelSelectorChanged();\r\n this.onViewedModelsChanged.raiseEvent();\r\n };\r\n\r\n this._unregisterModelSelectorListeners.push(models.onAdded.addListener(func));\r\n this._unregisterModelSelectorListeners.push(models.onDeleted.addListener(func));\r\n this._unregisterModelSelectorListeners.push(models.onCleared.addListener(func));\r\n }\r\n\r\n private unregisterModelSelectorListeners(): void {\r\n this._unregisterModelSelectorListeners.forEach((f) => f());\r\n this._unregisterModelSelectorListeners.length = 0;\r\n }\r\n}\r\n/** Defines a spatial view that displays geometry on the image plane using a parallel orthographic projection.\r\n * @public\r\n * @extensions\r\n */\r\nexport class OrthographicViewState extends SpatialViewState {\r\n public static override get className() { return \"OrthographicViewDefinition\"; }\r\n\r\n constructor(props: SpatialViewDefinitionProps, iModel: IModelConnection, categories: CategorySelectorState, displayStyle: DisplayStyle3dState, modelSelector: ModelSelectorState) { super(props, iModel, categories, displayStyle, modelSelector); }\r\n\r\n public override supportsCamera(): boolean { return false; }\r\n}\r\n"]}
|
|
@@ -34,6 +34,8 @@ export declare class SubCategoriesCache {
|
|
|
34
34
|
* containing the corresponding promise and the set of categories still to be loaded.
|
|
35
35
|
*/
|
|
36
36
|
load(categoryIds: Id64Arg): SubCategoriesRequest | undefined;
|
|
37
|
+
/** Load all subcategories that come from used spatial categories of the iModel into the cache. */
|
|
38
|
+
loadAllUsedSpatialSubCategories(): Promise<void>;
|
|
37
39
|
/** Given categoryIds, return which of these are not cached. */
|
|
38
40
|
private getMissing;
|
|
39
41
|
clear(): void;
|
|
@@ -43,7 +45,7 @@ export declare class SubCategoriesCache {
|
|
|
43
45
|
/** Exposed strictly for tests.
|
|
44
46
|
* @internal
|
|
45
47
|
*/
|
|
46
|
-
add(categoryId: string, subCategoryId: string, appearance: SubCategoryAppearance): void;
|
|
48
|
+
add(categoryId: string, subCategoryId: string, appearance: SubCategoryAppearance, override: boolean): void;
|
|
47
49
|
getCategoryInfo(inputCategoryIds: Id64String | Iterable<Id64String>): Promise<Map<Id64String, IModelConnection.Categories.CategoryInfo>>;
|
|
48
50
|
getSubCategoryInfo(categoryId: Id64String, inputSubCategoryIds: Id64String | Iterable<Id64String>): Promise<Map<Id64String, IModelConnection.Categories.SubCategoryInfo>>;
|
|
49
51
|
private mapSubCategoryInfos;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubCategoriesCache.d.ts","sourceRoot":"","sources":["../../src/SubCategoriesCache.ts"],"names":[],"mappings":"AAKA,OAAO,EAAmC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAuB,MAAM,qBAAqB,CAAC;AACzH,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,8EAA8E;IAC9E,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,2BAA2B;IAC3B,MAAM,IAAI,IAAI,CAAC;CAChB;AAID;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4C;IACzE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,uBAAuB,CAAsB;gBAElC,MAAM,EAAE,gBAAgB;IAE3C,wIAAwI;IACjI,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAEhE,wHAAwH;IACjH,wBAAwB,CAAC,aAAa,EAAE,UAAU,GAAG,qBAAqB,GAAG,SAAS;IAE7F;;;;OAIG;IACI,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,oBAAoB,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"SubCategoriesCache.d.ts","sourceRoot":"","sources":["../../src/SubCategoriesCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,18 @@ export class SubCategoriesCache {
|
|
|
39
39
|
cancel: () => request.cancel(),
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
|
+
/** Load all subcategories that come from used spatial categories of the iModel into the cache. */
|
|
43
|
+
async loadAllUsedSpatialSubCategories() {
|
|
44
|
+
try {
|
|
45
|
+
const results = await this._imodel.queryAllUsedSpatialSubCategories();
|
|
46
|
+
if (undefined !== results) {
|
|
47
|
+
this.processResults(results, new Set(), false);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (e) {
|
|
51
|
+
// In case of a truncated response, gracefully handle the error and exit.
|
|
52
|
+
}
|
|
53
|
+
}
|
|
42
54
|
/** Given categoryIds, return which of these are not cached. */
|
|
43
55
|
getMissing(categoryIds) {
|
|
44
56
|
let missing;
|
|
@@ -64,9 +76,10 @@ export class SubCategoriesCache {
|
|
|
64
76
|
props = JSON.parse(json);
|
|
65
77
|
return new SubCategoryAppearance(props);
|
|
66
78
|
}
|
|
67
|
-
processResults(result, missing) {
|
|
68
|
-
for (const row of result)
|
|
69
|
-
this.add(row.parentId, row.id, SubCategoriesCache.createSubCategoryAppearance(row.appearance));
|
|
79
|
+
processResults(result, missing, override = true) {
|
|
80
|
+
for (const row of result) {
|
|
81
|
+
this.add(row.parentId, row.id, SubCategoriesCache.createSubCategoryAppearance(row.appearance), override);
|
|
82
|
+
}
|
|
70
83
|
// Ensure that any category Ids which returned no results (e.g., non-existent category, invalid Id, etc) are still recorded so they are not repeatedly re-requested
|
|
71
84
|
for (const id of missing)
|
|
72
85
|
if (undefined === this._byCategoryId.get(id))
|
|
@@ -75,12 +88,13 @@ export class SubCategoriesCache {
|
|
|
75
88
|
/** Exposed strictly for tests.
|
|
76
89
|
* @internal
|
|
77
90
|
*/
|
|
78
|
-
add(categoryId, subCategoryId, appearance) {
|
|
91
|
+
add(categoryId, subCategoryId, appearance, override) {
|
|
79
92
|
let set = this._byCategoryId.get(categoryId);
|
|
80
93
|
if (undefined === set)
|
|
81
94
|
this._byCategoryId.set(categoryId, set = new Set());
|
|
82
95
|
set.add(subCategoryId);
|
|
83
|
-
this._appearances.
|
|
96
|
+
if (override || !this._appearances.has(subCategoryId))
|
|
97
|
+
this._appearances.set(subCategoryId, appearance);
|
|
84
98
|
}
|
|
85
99
|
async getCategoryInfo(inputCategoryIds) {
|
|
86
100
|
// Eliminate duplicates...
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubCategoriesCache.js","sourceRoot":"","sources":["../../src/SubCategoriesCache.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { assert, CompressedId64Set, Id64, Id64Arg, Id64Set, Id64String, OrderedId64Iterable } from \"@itwin/core-bentley\";\r\nimport { SubCategoryAppearance, SubCategoryResultRow } from \"@itwin/core-common\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\n\r\n/** A cancelable paginated request for subcategory information.\r\n * @see SubCategoriesCache\r\n * @internal\r\n */\r\nexport interface SubCategoriesRequest {\r\n /** The Ids of any categories which were requested but were not yet loaded. */\r\n readonly missingCategoryIds: Id64Set;\r\n /** A promise which resolves to true when all of the requested categories have been loaded, or to false if not all categories were loaded.\r\n * Categories may fail to load if the request is explicitly canceled or if the IModelConnection is closed before all categories are loaded.\r\n */\r\n readonly promise: Promise<boolean>;\r\n /** Cancels the request. */\r\n cancel(): void;\r\n}\r\n\r\nconst invalidCategoryIdEntry = new Set<string>();\r\n\r\n/** A cache of information about the subcategories contained within an [[IModelConnection]]. It is populated on demand.\r\n * @internal\r\n */\r\nexport class SubCategoriesCache {\r\n private readonly _byCategoryId = new Map<string, Id64Set>();\r\n private readonly _appearances = new Map<string, SubCategoryAppearance>();\r\n private readonly _imodel: IModelConnection;\r\n private _missingAtTimeOfPreload: Id64Set | undefined;\r\n\r\n public constructor(imodel: IModelConnection) { this._imodel = imodel; }\r\n\r\n /** Get the Ids of all subcategories belonging to the category with the specified Id, or undefined if no such information is present. */\r\n public getSubCategories(categoryId: string): Id64Set | undefined { return this._byCategoryId.get(categoryId); }\r\n\r\n /** Get the base appearance of the subcategory with the specified Id, or undefined if no such information is present. */\r\n public getSubCategoryAppearance(subCategoryId: Id64String): SubCategoryAppearance | undefined { return this._appearances.get(subCategoryId.toString()); }\r\n\r\n /** Request that the subcategory information for all of the specified categories is loaded.\r\n * If all such information has already been loaded, returns undefined.\r\n * Otherwise, dispatches an asynchronous request to load those categories which are not already loaded and returns a cancellable request object\r\n * containing the corresponding promise and the set of categories still to be loaded.\r\n */\r\n public load(categoryIds: Id64Arg): SubCategoriesRequest | undefined {\r\n const missing = this.getMissing(categoryIds);\r\n if (undefined === missing)\r\n return undefined;\r\n\r\n const request = new SubCategoriesCache.Request(missing, this._imodel);\r\n const promise = request.dispatch().then((result?: SubCategoriesCache.Result) => {\r\n if (undefined !== result)\r\n this.processResults(result, missing);\r\n\r\n return !request.wasCanceled;\r\n });\r\n\r\n return {\r\n missingCategoryIds: missing,\r\n promise,\r\n cancel: () => request.cancel(),\r\n };\r\n }\r\n\r\n /** Given categoryIds, return which of these are not cached. */\r\n private getMissing(categoryIds: Id64Arg): Id64Set | undefined {\r\n let missing: Id64Set | undefined;\r\n for (const catId of Id64.iterable(categoryIds)) {\r\n if (undefined === this._byCategoryId.get(catId)) {\r\n if (undefined === missing)\r\n missing = new Set<string>();\r\n\r\n missing.add(catId);\r\n }\r\n }\r\n\r\n return missing;\r\n }\r\n\r\n public clear(): void {\r\n this._byCategoryId.clear();\r\n this._appearances.clear();\r\n }\r\n\r\n public onIModelConnectionClose(): void {\r\n this.clear();\r\n }\r\n\r\n private static createSubCategoryAppearance(json?: any) {\r\n let props: SubCategoryAppearance.Props | undefined;\r\n if (\"string\" === typeof json && 0 < json.length)\r\n props = JSON.parse(json);\r\n\r\n return new SubCategoryAppearance(props);\r\n }\r\n\r\n private processResults(result: SubCategoriesCache.Result, missing: Id64Set): void {\r\n for (const row of result)\r\n this.add(row.parentId, row.id, SubCategoriesCache.createSubCategoryAppearance(row.appearance));\r\n\r\n // Ensure that any category Ids which returned no results (e.g., non-existent category, invalid Id, etc) are still recorded so they are not repeatedly re-requested\r\n for (const id of missing)\r\n if (undefined === this._byCategoryId.get(id))\r\n this._byCategoryId.set(id, invalidCategoryIdEntry);\r\n }\r\n\r\n /** Exposed strictly for tests.\r\n * @internal\r\n */\r\n public add(categoryId: string, subCategoryId: string, appearance: SubCategoryAppearance) {\r\n let set = this._byCategoryId.get(categoryId);\r\n if (undefined === set)\r\n this._byCategoryId.set(categoryId, set = new Set<string>());\r\n\r\n set.add(subCategoryId);\r\n this._appearances.set(subCategoryId, appearance);\r\n }\r\n\r\n public async getCategoryInfo(inputCategoryIds: Id64String | Iterable<Id64String>): Promise<Map<Id64String, IModelConnection.Categories.CategoryInfo>> {\r\n // Eliminate duplicates...\r\n const categoryIds = new Set<string>(typeof inputCategoryIds === \"string\" ? [inputCategoryIds] : inputCategoryIds);\r\n const req = this.load(categoryIds);\r\n if (req)\r\n await req.promise;\r\n\r\n const map = new Map<Id64String, IModelConnection.Categories.CategoryInfo>();\r\n for (const categoryId of categoryIds) {\r\n const subCategoryIds = this._byCategoryId.get(categoryId);\r\n if (!subCategoryIds)\r\n continue;\r\n\r\n const subCategories = this.mapSubCategoryInfos(categoryId, subCategoryIds);\r\n map.set(categoryId, { id: categoryId, subCategories });\r\n }\r\n\r\n return map;\r\n }\r\n\r\n public async getSubCategoryInfo(categoryId: Id64String, inputSubCategoryIds: Id64String | Iterable<Id64String>): Promise<Map<Id64String, IModelConnection.Categories.SubCategoryInfo>> {\r\n // Eliminate duplicates...\r\n const subCategoryIds = new Set<string>(typeof inputSubCategoryIds === \"string\" ? [inputSubCategoryIds] : inputSubCategoryIds);\r\n const req = this.load(categoryId);\r\n if (req)\r\n await req.promise;\r\n\r\n return this.mapSubCategoryInfos(categoryId, subCategoryIds);\r\n }\r\n\r\n private mapSubCategoryInfos(categoryId: Id64String, subCategoryIds: Set<Id64String>): Map<Id64String, IModelConnection.Categories.SubCategoryInfo> {\r\n const map = new Map<Id64String, IModelConnection.Categories.SubCategoryInfo>();\r\n for (const id of subCategoryIds) {\r\n const appearance = this._appearances.get(id);\r\n if (appearance)\r\n map.set(id, { id, categoryId, appearance });\r\n }\r\n\r\n return map;\r\n }\r\n}\r\n\r\n/** This namespace and the types within it are exported strictly for use in tests.\r\n * @internal\r\n */\r\nexport namespace SubCategoriesCache { // eslint-disable-line no-redeclare\r\n export type Result = SubCategoryResultRow[];\r\n\r\n export class Request {\r\n private readonly _imodel: IModelConnection;\r\n private readonly _categoryIds: CompressedId64Set[] = [];\r\n private readonly _result: Result = [];\r\n private _canceled = false;\r\n private _curCategoryIdsIndex = 0;\r\n\r\n public get wasCanceled() { return this._canceled || this._imodel.isClosed; }\r\n\r\n public constructor(categoryIds: Set<string>, imodel: IModelConnection, maxCategoriesPerQuery = 2500) {\r\n this._imodel = imodel;\r\n\r\n const catIds = [...categoryIds];\r\n OrderedId64Iterable.sortArray(catIds); // sort categories, so that given the same set of categoryIds we will always create the same batches.\r\n while (catIds.length !== 0) {\r\n const end = (catIds.length > maxCategoriesPerQuery) ? maxCategoriesPerQuery : catIds.length;\r\n const compressedIds = CompressedId64Set.compressArray(catIds.splice(0, end));\r\n this._categoryIds.push(compressedIds);\r\n }\r\n }\r\n\r\n public cancel() { this._canceled = true; }\r\n\r\n public async dispatch(): Promise<Result | undefined> {\r\n if (this.wasCanceled || this._curCategoryIdsIndex >= this._categoryIds.length) // handle case of empty category Id set...\r\n return undefined;\r\n\r\n try {\r\n const catIds = this._categoryIds[this._curCategoryIdsIndex];\r\n const result = await this._imodel.querySubCategories(catIds);\r\n this._result.push(...result);\r\n if (this.wasCanceled)\r\n return undefined;\r\n } catch {\r\n // ###TODO: detect cases in which retry is warranted\r\n // Note that currently, if we succeed in obtaining some pages of results and fail to retrieve another page, we will end up processing the\r\n // incomplete results. Since we're not retrying, that's the best we can do.\r\n }\r\n\r\n // Finished with current batch of categoryIds. Dispatch the next batch if one exists.\r\n if (++this._curCategoryIdsIndex < this._categoryIds.length) {\r\n if (this.wasCanceled)\r\n return undefined;\r\n else\r\n return this.dispatch();\r\n }\r\n\r\n // Even if we were canceled, we've retrieved all the rows. Might as well process them to prevent another request for some of the same rows from being enqueued.\r\n return this._result;\r\n }\r\n }\r\n\r\n export type QueueFunc = () => void;\r\n\r\n export class QueueEntry {\r\n public readonly categoryIds: Id64Set;\r\n public readonly funcs: QueueFunc[];\r\n\r\n public constructor(categoryIds: Id64Set, func: QueueFunc) {\r\n this.categoryIds = categoryIds;\r\n this.funcs = [func];\r\n }\r\n }\r\n\r\n /** A \"queue\" of SubCategoriesRequests, which consists of between 0 and 2 entries. Each entry specifies the set of category IDs to be loaded and a list of functions to be executed\r\n * when loading is completed. This is used to enforce ordering of operations upon subcategories despite the need to asynchronously load them. It incidentally also provides an\r\n * opportunity to reduce the number of backend requests by batching consecutive requests.\r\n * Chiefly used by [[Viewport]].\r\n * @internal\r\n */\r\n export class Queue {\r\n /* NB: Members marked protected for use in tests only. */\r\n protected _current?: QueueEntry;\r\n protected _next?: QueueEntry;\r\n protected _request?: SubCategoriesRequest;\r\n protected _disposed = false;\r\n\r\n /** Push a request onto the queue. The requested categories will be loaded if necessary, and then\r\n * the supplied function will be invoked. Any previously-pushed requests are guaranteed to be processed before this one.\r\n */\r\n public push(cache: SubCategoriesCache, categoryIds: Id64Arg, func: QueueFunc): void {\r\n if (this._disposed)\r\n return;\r\n else if (undefined === this._current)\r\n this.pushCurrent(cache, categoryIds, func);\r\n else\r\n this.pushNext(categoryIds, func);\r\n }\r\n\r\n /** Cancel all requests and empty the queue. */\r\n public dispose(): void {\r\n if (undefined !== this._request) {\r\n assert(undefined !== this._current);\r\n this._request.cancel();\r\n this._request = undefined;\r\n }\r\n\r\n this._current = this._next = undefined;\r\n this._disposed = true;\r\n }\r\n\r\n public get isEmpty(): boolean {\r\n return undefined === this._current && undefined === this._next;\r\n }\r\n\r\n private pushCurrent(cache: SubCategoriesCache, categoryIds: Id64Arg, func: QueueFunc): void {\r\n assert(undefined === this._next);\r\n assert(undefined === this._current);\r\n assert(undefined === this._request);\r\n\r\n this._request = cache.load(categoryIds);\r\n if (undefined === this._request) {\r\n // All requested categories are already loaded.\r\n func();\r\n return;\r\n } else {\r\n // We need to load the requested categories before invoking the function.\r\n this.processCurrent(cache, new QueueEntry(Id64.toIdSet(categoryIds, true), func));\r\n }\r\n }\r\n\r\n private processCurrent(cache: SubCategoriesCache, entry: QueueEntry): void {\r\n assert(undefined !== this._request);\r\n assert(undefined === this._current);\r\n assert(undefined === this._next);\r\n\r\n this._current = entry;\r\n this._request.promise.then((completed: boolean) => { // eslint-disable-line @typescript-eslint/no-floating-promises\r\n if (this._disposed)\r\n return;\r\n\r\n // Invoke all the functions which were awaiting this set of IModelConnection.Categories.\r\n assert(undefined !== this._current);\r\n if (completed)\r\n for (const func of this._current.funcs)\r\n func();\r\n\r\n this._request = undefined;\r\n this._current = undefined;\r\n\r\n // If we have more requests, process them.\r\n const next = this._next;\r\n this._next = undefined;\r\n if (undefined !== next) {\r\n this._request = cache.load(next.categoryIds);\r\n if (undefined === this._request) {\r\n // All categories loaded.\r\n for (const func of next.funcs)\r\n func();\r\n } else {\r\n // We need to load the requested categories before invoking the pending functions.\r\n this.processCurrent(cache, next);\r\n }\r\n }\r\n });\r\n }\r\n\r\n private pushNext(categoryIds: Id64Arg, func: QueueFunc): void {\r\n assert(undefined !== this._current);\r\n assert(undefined !== this._request);\r\n\r\n if (undefined === this._next) {\r\n // We have a request currently in process and none pending.\r\n // We could potentially determine that this request doesn't require any categories that are not already loaded or being loaded by the current request.\r\n // But we will find that out (synchronously) when current request completes, unless more requests come in. Probably not worth it.\r\n this._next = new QueueEntry(Id64.toIdSet(categoryIds, true), func);\r\n } else {\r\n // We have a request currently in process, and one or more pending. Append this one to the pending.\r\n this._next.funcs.push(func);\r\n for (const categoryId of Id64.iterable(categoryIds))\r\n this._next.categoryIds.add(categoryId);\r\n }\r\n }\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"SubCategoriesCache.js","sourceRoot":"","sources":["../../src/SubCategoriesCache.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { assert, CompressedId64Set, Id64, Id64Arg, Id64Set, Id64String, OrderedId64Iterable } from \"@itwin/core-bentley\";\r\nimport { SubCategoryAppearance, SubCategoryResultRow } from \"@itwin/core-common\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\n\r\n/** A cancelable paginated request for subcategory information.\r\n * @see SubCategoriesCache\r\n * @internal\r\n */\r\nexport interface SubCategoriesRequest {\r\n /** The Ids of any categories which were requested but were not yet loaded. */\r\n readonly missingCategoryIds: Id64Set;\r\n /** A promise which resolves to true when all of the requested categories have been loaded, or to false if not all categories were loaded.\r\n * Categories may fail to load if the request is explicitly canceled or if the IModelConnection is closed before all categories are loaded.\r\n */\r\n readonly promise: Promise<boolean>;\r\n /** Cancels the request. */\r\n cancel(): void;\r\n}\r\n\r\nconst invalidCategoryIdEntry = new Set<string>();\r\n\r\n/** A cache of information about the subcategories contained within an [[IModelConnection]]. It is populated on demand.\r\n * @internal\r\n */\r\nexport class SubCategoriesCache {\r\n private readonly _byCategoryId = new Map<string, Id64Set>();\r\n private readonly _appearances = new Map<string, SubCategoryAppearance>();\r\n private readonly _imodel: IModelConnection;\r\n private _missingAtTimeOfPreload: Id64Set | undefined;\r\n\r\n public constructor(imodel: IModelConnection) { this._imodel = imodel; }\r\n\r\n /** Get the Ids of all subcategories belonging to the category with the specified Id, or undefined if no such information is present. */\r\n public getSubCategories(categoryId: string): Id64Set | undefined { return this._byCategoryId.get(categoryId); }\r\n\r\n /** Get the base appearance of the subcategory with the specified Id, or undefined if no such information is present. */\r\n public getSubCategoryAppearance(subCategoryId: Id64String): SubCategoryAppearance | undefined { return this._appearances.get(subCategoryId.toString()); }\r\n\r\n /** Request that the subcategory information for all of the specified categories is loaded.\r\n * If all such information has already been loaded, returns undefined.\r\n * Otherwise, dispatches an asynchronous request to load those categories which are not already loaded and returns a cancellable request object\r\n * containing the corresponding promise and the set of categories still to be loaded.\r\n */\r\n public load(categoryIds: Id64Arg): SubCategoriesRequest | undefined {\r\n const missing = this.getMissing(categoryIds);\r\n if (undefined === missing)\r\n return undefined;\r\n\r\n const request = new SubCategoriesCache.Request(missing, this._imodel);\r\n const promise = request.dispatch().then((result?: SubCategoriesCache.Result) => {\r\n if (undefined !== result)\r\n this.processResults(result, missing);\r\n\r\n return !request.wasCanceled;\r\n });\r\n return {\r\n missingCategoryIds: missing,\r\n promise,\r\n cancel: () => request.cancel(),\r\n };\r\n }\r\n\r\n /** Load all subcategories that come from used spatial categories of the iModel into the cache. */\r\n public async loadAllUsedSpatialSubCategories(): Promise<void> {\r\n try {\r\n const results = await this._imodel.queryAllUsedSpatialSubCategories();\r\n if (undefined !== results){\r\n this.processResults(results, new Set<string>(), false);\r\n }\r\n } catch (e) {\r\n // In case of a truncated response, gracefully handle the error and exit.\r\n }\r\n\r\n }\r\n /** Given categoryIds, return which of these are not cached. */\r\n private getMissing(categoryIds: Id64Arg): Id64Set | undefined {\r\n let missing: Id64Set | undefined;\r\n for (const catId of Id64.iterable(categoryIds)) {\r\n if (undefined === this._byCategoryId.get(catId)) {\r\n if (undefined === missing)\r\n missing = new Set<string>();\r\n\r\n missing.add(catId);\r\n }\r\n }\r\n\r\n return missing;\r\n }\r\n\r\n public clear(): void {\r\n this._byCategoryId.clear();\r\n this._appearances.clear();\r\n }\r\n\r\n public onIModelConnectionClose(): void {\r\n this.clear();\r\n }\r\n\r\n private static createSubCategoryAppearance(json?: any) {\r\n let props: SubCategoryAppearance.Props | undefined;\r\n if (\"string\" === typeof json && 0 < json.length)\r\n props = JSON.parse(json);\r\n\r\n return new SubCategoryAppearance(props);\r\n }\r\n\r\n private processResults(result: SubCategoriesCache.Result, missing: Id64Set, override: boolean = true): void {\r\n for (const row of result){\r\n this.add(row.parentId, row.id, SubCategoriesCache.createSubCategoryAppearance(row.appearance), override);\r\n }\r\n\r\n // Ensure that any category Ids which returned no results (e.g., non-existent category, invalid Id, etc) are still recorded so they are not repeatedly re-requested\r\n for (const id of missing)\r\n if (undefined === this._byCategoryId.get(id))\r\n this._byCategoryId.set(id, invalidCategoryIdEntry);\r\n }\r\n\r\n /** Exposed strictly for tests.\r\n * @internal\r\n */\r\n public add(categoryId: string, subCategoryId: string, appearance: SubCategoryAppearance, override: boolean) {\r\n let set = this._byCategoryId.get(categoryId);\r\n if (undefined === set)\r\n this._byCategoryId.set(categoryId, set = new Set<string>());\r\n\r\n set.add(subCategoryId);\r\n if (override || !this._appearances.has(subCategoryId))\r\n this._appearances.set(subCategoryId, appearance);\r\n }\r\n\r\n public async getCategoryInfo(inputCategoryIds: Id64String | Iterable<Id64String>): Promise<Map<Id64String, IModelConnection.Categories.CategoryInfo>> {\r\n // Eliminate duplicates...\r\n const categoryIds = new Set<string>(typeof inputCategoryIds === \"string\" ? [inputCategoryIds] : inputCategoryIds);\r\n const req = this.load(categoryIds);\r\n if (req)\r\n await req.promise;\r\n\r\n const map = new Map<Id64String, IModelConnection.Categories.CategoryInfo>();\r\n for (const categoryId of categoryIds) {\r\n const subCategoryIds = this._byCategoryId.get(categoryId);\r\n if (!subCategoryIds)\r\n continue;\r\n\r\n const subCategories = this.mapSubCategoryInfos(categoryId, subCategoryIds);\r\n map.set(categoryId, { id: categoryId, subCategories });\r\n }\r\n\r\n return map;\r\n }\r\n\r\n public async getSubCategoryInfo(categoryId: Id64String, inputSubCategoryIds: Id64String | Iterable<Id64String>): Promise<Map<Id64String, IModelConnection.Categories.SubCategoryInfo>> {\r\n // Eliminate duplicates...\r\n const subCategoryIds = new Set<string>(typeof inputSubCategoryIds === \"string\" ? [inputSubCategoryIds] : inputSubCategoryIds);\r\n const req = this.load(categoryId);\r\n if (req)\r\n await req.promise;\r\n\r\n return this.mapSubCategoryInfos(categoryId, subCategoryIds);\r\n }\r\n\r\n private mapSubCategoryInfos(categoryId: Id64String, subCategoryIds: Set<Id64String>): Map<Id64String, IModelConnection.Categories.SubCategoryInfo> {\r\n const map = new Map<Id64String, IModelConnection.Categories.SubCategoryInfo>();\r\n for (const id of subCategoryIds) {\r\n const appearance = this._appearances.get(id);\r\n if (appearance)\r\n map.set(id, { id, categoryId, appearance });\r\n }\r\n\r\n return map;\r\n }\r\n}\r\n\r\n/** This namespace and the types within it are exported strictly for use in tests.\r\n * @internal\r\n */\r\nexport namespace SubCategoriesCache { // eslint-disable-line no-redeclare\r\n export type Result = SubCategoryResultRow[];\r\n\r\n export class Request {\r\n private readonly _imodel: IModelConnection;\r\n private readonly _categoryIds: CompressedId64Set[] = [];\r\n private readonly _result: Result = [];\r\n private _canceled = false;\r\n private _curCategoryIdsIndex = 0;\r\n\r\n public get wasCanceled() { return this._canceled || this._imodel.isClosed; }\r\n\r\n public constructor(categoryIds: Set<string>, imodel: IModelConnection, maxCategoriesPerQuery = 2500) {\r\n this._imodel = imodel;\r\n\r\n const catIds = [...categoryIds];\r\n OrderedId64Iterable.sortArray(catIds); // sort categories, so that given the same set of categoryIds we will always create the same batches.\r\n while (catIds.length !== 0) {\r\n const end = (catIds.length > maxCategoriesPerQuery) ? maxCategoriesPerQuery : catIds.length;\r\n const compressedIds = CompressedId64Set.compressArray(catIds.splice(0, end));\r\n this._categoryIds.push(compressedIds);\r\n }\r\n }\r\n\r\n public cancel() { this._canceled = true; }\r\n\r\n public async dispatch(): Promise<Result | undefined> {\r\n if (this.wasCanceled || this._curCategoryIdsIndex >= this._categoryIds.length) // handle case of empty category Id set...\r\n return undefined;\r\n\r\n try {\r\n const catIds = this._categoryIds[this._curCategoryIdsIndex];\r\n const result = await this._imodel.querySubCategories(catIds);\r\n this._result.push(...result);\r\n if (this.wasCanceled)\r\n return undefined;\r\n } catch {\r\n // ###TODO: detect cases in which retry is warranted\r\n // Note that currently, if we succeed in obtaining some pages of results and fail to retrieve another page, we will end up processing the\r\n // incomplete results. Since we're not retrying, that's the best we can do.\r\n }\r\n\r\n // Finished with current batch of categoryIds. Dispatch the next batch if one exists.\r\n if (++this._curCategoryIdsIndex < this._categoryIds.length) {\r\n if (this.wasCanceled)\r\n return undefined;\r\n else\r\n return this.dispatch();\r\n }\r\n\r\n // Even if we were canceled, we've retrieved all the rows. Might as well process them to prevent another request for some of the same rows from being enqueued.\r\n return this._result;\r\n }\r\n }\r\n\r\n export type QueueFunc = () => void;\r\n\r\n export class QueueEntry {\r\n public readonly categoryIds: Id64Set;\r\n public readonly funcs: QueueFunc[];\r\n\r\n public constructor(categoryIds: Id64Set, func: QueueFunc) {\r\n this.categoryIds = categoryIds;\r\n this.funcs = [func];\r\n }\r\n }\r\n\r\n /** A \"queue\" of SubCategoriesRequests, which consists of between 0 and 2 entries. Each entry specifies the set of category IDs to be loaded and a list of functions to be executed\r\n * when loading is completed. This is used to enforce ordering of operations upon subcategories despite the need to asynchronously load them. It incidentally also provides an\r\n * opportunity to reduce the number of backend requests by batching consecutive requests.\r\n * Chiefly used by [[Viewport]].\r\n * @internal\r\n */\r\n export class Queue {\r\n /* NB: Members marked protected for use in tests only. */\r\n protected _current?: QueueEntry;\r\n protected _next?: QueueEntry;\r\n protected _request?: SubCategoriesRequest;\r\n protected _disposed = false;\r\n\r\n /** Push a request onto the queue. The requested categories will be loaded if necessary, and then\r\n * the supplied function will be invoked. Any previously-pushed requests are guaranteed to be processed before this one.\r\n */\r\n public push(cache: SubCategoriesCache, categoryIds: Id64Arg, func: QueueFunc): void {\r\n if (this._disposed)\r\n return;\r\n else if (undefined === this._current)\r\n this.pushCurrent(cache, categoryIds, func);\r\n else\r\n this.pushNext(categoryIds, func);\r\n }\r\n\r\n /** Cancel all requests and empty the queue. */\r\n public dispose(): void {\r\n if (undefined !== this._request) {\r\n assert(undefined !== this._current);\r\n this._request.cancel();\r\n this._request = undefined;\r\n }\r\n\r\n this._current = this._next = undefined;\r\n this._disposed = true;\r\n }\r\n\r\n public get isEmpty(): boolean {\r\n return undefined === this._current && undefined === this._next;\r\n }\r\n\r\n private pushCurrent(cache: SubCategoriesCache, categoryIds: Id64Arg, func: QueueFunc): void {\r\n assert(undefined === this._next);\r\n assert(undefined === this._current);\r\n assert(undefined === this._request);\r\n\r\n this._request = cache.load(categoryIds);\r\n if (undefined === this._request) {\r\n // All requested categories are already loaded.\r\n func();\r\n return;\r\n } else {\r\n // We need to load the requested categories before invoking the function.\r\n this.processCurrent(cache, new QueueEntry(Id64.toIdSet(categoryIds, true), func));\r\n }\r\n }\r\n\r\n private processCurrent(cache: SubCategoriesCache, entry: QueueEntry): void {\r\n assert(undefined !== this._request);\r\n assert(undefined === this._current);\r\n assert(undefined === this._next);\r\n\r\n this._current = entry;\r\n this._request.promise.then((completed: boolean) => { // eslint-disable-line @typescript-eslint/no-floating-promises\r\n if (this._disposed)\r\n return;\r\n\r\n // Invoke all the functions which were awaiting this set of IModelConnection.Categories.\r\n assert(undefined !== this._current);\r\n if (completed)\r\n for (const func of this._current.funcs)\r\n func();\r\n\r\n this._request = undefined;\r\n this._current = undefined;\r\n\r\n // If we have more requests, process them.\r\n const next = this._next;\r\n this._next = undefined;\r\n if (undefined !== next) {\r\n this._request = cache.load(next.categoryIds);\r\n if (undefined === this._request) {\r\n // All categories loaded.\r\n for (const func of next.funcs)\r\n func();\r\n } else {\r\n // We need to load the requested categories before invoking the pending functions.\r\n this.processCurrent(cache, next);\r\n }\r\n }\r\n });\r\n }\r\n\r\n private pushNext(categoryIds: Id64Arg, func: QueueFunc): void {\r\n assert(undefined !== this._current);\r\n assert(undefined !== this._request);\r\n\r\n if (undefined === this._next) {\r\n // We have a request currently in process and none pending.\r\n // We could potentially determine that this request doesn't require any categories that are not already loaded or being loaded by the current request.\r\n // But we will find that out (synchronously) when current request completes, unless more requests come in. Probably not worth it.\r\n this._next = new QueueEntry(Id64.toIdSet(categoryIds, true), func);\r\n } else {\r\n // We have a request currently in process, and one or more pending. Append this one to the pending.\r\n this._next.funcs.push(func);\r\n for (const categoryId of Id64.iterable(categoryIds))\r\n this._next.categoryIds.add(categoryId);\r\n }\r\n }\r\n }\r\n}\r\n"]}
|
package/lib/esm/ViewContext.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { PlanarClipMaskState } from "./PlanarClipMaskState";
|
|
|
9
9
|
import { CanvasDecoration } from "./render/CanvasDecoration";
|
|
10
10
|
import { Decorations } from "./render/Decorations";
|
|
11
11
|
import { GraphicBranch, GraphicBranchOptions } from "./render/GraphicBranch";
|
|
12
|
-
import { GraphicBuilder,
|
|
12
|
+
import { GraphicBuilder, ViewportGraphicBuilderOptions } from "./render/GraphicBuilder";
|
|
13
13
|
import { RenderGraphic } from "./render/RenderGraphic";
|
|
14
14
|
import { RenderPlanarClassifier } from "./render/RenderPlanarClassifier";
|
|
15
15
|
import { RenderSystem, RenderTextureDrape } from "./render/RenderSystem";
|
|
@@ -19,6 +19,7 @@ import { SpatialClassifierTileTreeReference, Tile, TileGraphicType, TileTreeRefe
|
|
|
19
19
|
import { ViewingSpace } from "./ViewingSpace";
|
|
20
20
|
import { ScreenViewport, Viewport, ViewportDecorator } from "./Viewport";
|
|
21
21
|
import { ActiveSpatialClassifier } from "./SpatialClassifiersState";
|
|
22
|
+
import { GraphicType } from "./common/render/GraphicType";
|
|
22
23
|
/** Provides context for producing [[RenderGraphic]]s for drawing within a [[Viewport]].
|
|
23
24
|
* @public
|
|
24
25
|
* @extensions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewContext.d.ts","sourceRoot":"","sources":["../../src/ViewContext.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAU,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EACnC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAoB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"ViewContext.d.ts","sourceRoot":"","sources":["../../src/ViewContext.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/ViewContext.js
CHANGED
|
@@ -9,10 +9,10 @@ import { assert } from "@itwin/core-bentley";
|
|
|
9
9
|
import { FrustumPlanes } from "@itwin/core-common";
|
|
10
10
|
import { DecorationsCache } from "./DecorationsCache";
|
|
11
11
|
import { IModelApp } from "./IModelApp";
|
|
12
|
-
import { GraphicType } from "./render/GraphicBuilder";
|
|
13
12
|
import { Scene } from "./render/Scene";
|
|
14
13
|
import { TileGraphicType, TileLoadStatus } from "./tile/internal";
|
|
15
14
|
import { ELEMENT_MARKED_FOR_REMOVAL } from "./Viewport";
|
|
15
|
+
import { GraphicType } from "./common/render/GraphicType";
|
|
16
16
|
/** Provides context for producing [[RenderGraphic]]s for drawing within a [[Viewport]].
|
|
17
17
|
* @public
|
|
18
18
|
* @extensions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewContext.js","sourceRoot":"","sources":["../../src/ViewContext.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport { assert, Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n Matrix3d, Point2d,\r\n Point3d, Range1d, Transform, XAndY,\r\n} from \"@itwin/core-geometry\";\r\nimport { Frustum, FrustumPlanes, ViewFlags } from \"@itwin/core-common\";\r\nimport { CachedDecoration, DecorationsCache } from \"./DecorationsCache\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { PlanarClipMaskState } from \"./PlanarClipMaskState\";\r\nimport { CanvasDecoration } from \"./render/CanvasDecoration\";\r\nimport { Decorations } from \"./render/Decorations\";\r\nimport { GraphicBranch, GraphicBranchOptions } from \"./render/GraphicBranch\";\r\nimport { GraphicBuilder, GraphicType, ViewportGraphicBuilderOptions } from \"./render/GraphicBuilder\";\r\nimport { GraphicList, RenderGraphic } from \"./render/RenderGraphic\";\r\nimport { RenderPlanarClassifier } from \"./render/RenderPlanarClassifier\";\r\nimport { RenderSystem, RenderTextureDrape } from \"./render/RenderSystem\";\r\nimport { RenderTarget } from \"./render/RenderTarget\";\r\nimport { Scene } from \"./render/Scene\";\r\nimport { SpatialClassifierTileTreeReference, Tile, TileGraphicType, TileLoadStatus, TileTreeReference } from \"./tile/internal\";\r\nimport { ViewingSpace } from \"./ViewingSpace\";\r\nimport { ELEMENT_MARKED_FOR_REMOVAL, ScreenViewport, Viewport, ViewportDecorator } from \"./Viewport\";\r\nimport { ActiveSpatialClassifier } from \"./SpatialClassifiersState\";\r\n\r\n/** Provides context for producing [[RenderGraphic]]s for drawing within a [[Viewport]].\r\n * @public\r\n * @extensions\r\n */\r\nexport class RenderContext {\r\n /** ViewFlags extracted from the context's [[Viewport]]. */\r\n public readonly viewFlags: ViewFlags;\r\n private readonly _viewport: Viewport;\r\n /** Frustum extracted from the context's [[Viewport]]. */\r\n public readonly frustum: Frustum;\r\n /** Frustum planes extracted from the context's [[Viewport]]. */\r\n public readonly frustumPlanes: FrustumPlanes;\r\n\r\n constructor(vp: Viewport, frustum?: Frustum) {\r\n this._viewport = vp;\r\n this.viewFlags = vp.viewFlags;\r\n this.frustum = frustum ? frustum : vp.getFrustum();\r\n this.frustumPlanes = FrustumPlanes.fromFrustum(this.frustum);\r\n }\r\n\r\n /** Given a point in world coordinates, determine approximately how many pixels it occupies on screen based on this context's frustum. */\r\n public getPixelSizeAtPoint(inPoint?: Point3d): number {\r\n return this.viewport.viewingSpace.getPixelSizeAtPoint(inPoint);\r\n }\r\n\r\n /** The [[Viewport]] associated with this context. */\r\n public get viewport(): Viewport {\r\n return this._viewport;\r\n }\r\n\r\n /** The [[RenderSystem]] being used to produce graphics for this context. */\r\n public get renderSystem(): RenderSystem {\r\n return this.target.renderSystem;\r\n }\r\n\r\n /** @internal */\r\n public get target(): RenderTarget { return this.viewport.target; }\r\n\r\n /** @internal */\r\n protected _createGraphicBuilder(options: Omit<ViewportGraphicBuilderOptions, \"viewport\">): GraphicBuilder {\r\n return this.target.createGraphicBuilder({ ...options, viewport: this.viewport });\r\n }\r\n\r\n /** Create a builder for creating a [[GraphicType.Scene]] [[RenderGraphic]] for rendering within this context's [[Viewport]].\r\n * @param transform the local-to-world transform in which the builder's geometry is to be defined.\r\n * @returns A builder for creating a [[GraphicType.Scene]] [[RenderGraphic]] for rendering within this context's [[Viewport]].\r\n */\r\n public createSceneGraphicBuilder(transform?: Transform): GraphicBuilder {\r\n return this._createGraphicBuilder({ type: GraphicType.Scene, placement: transform });\r\n }\r\n\r\n /** Create a graphic from a [[GraphicBranch]]. */\r\n public createGraphicBranch(branch: GraphicBranch, location: Transform, opts?: GraphicBranchOptions): RenderGraphic {\r\n return this.target.renderSystem.createGraphicBranch(branch, location, opts);\r\n }\r\n\r\n /** Create a [[RenderGraphic]] which groups a set of graphics into a node in a scene graph, applying to each a transform and optional clip volume and symbology overrides.\r\n * @param branch Contains the group of graphics and the symbology overrides.\r\n * @param location the local-to-world transform applied to the grouped graphics.\r\n * @returns A RenderGraphic suitable for drawing the scene graph node within this context's [[Viewport]].\r\n * @see [[RenderSystem.createBranch]]\r\n */\r\n public createBranch(branch: GraphicBranch, location: Transform): RenderGraphic { return this.createGraphicBranch(branch, location); }\r\n\r\n /** Given the size of a logical pixel in meters, convert it to the size of a physical pixel in meters, if [[RenderSystem.dpiAwareLOD]] is `true`.\r\n * Used when computing LOD for graphics.\r\n * @internal\r\n */\r\n public adjustPixelSizeForLOD(cssPixelSize: number): number {\r\n return this.viewport.target.adjustPixelSizeForLOD(cssPixelSize);\r\n }\r\n}\r\n\r\n/** Provides context for an [[InteractiveTool]] to display decorations representing its current state.\r\n * @see [[InteractiveTool.onDynamicFrame]]\r\n * @public\r\n */\r\nexport class DynamicsContext extends RenderContext {\r\n private _dynamics?: GraphicList;\r\n\r\n /** Add a graphic to the list of dynamic graphics to be drawn in this context's [[Viewport]]. */\r\n public addGraphic(graphic: RenderGraphic) {\r\n if (undefined === this._dynamics)\r\n this._dynamics = [];\r\n this._dynamics.push(graphic);\r\n }\r\n\r\n /** @internal */\r\n public changeDynamics(): void {\r\n this.viewport.changeDynamics(this._dynamics);\r\n }\r\n\r\n /** Create a builder for producing a [[RenderGraphic]] appropriate for rendering within this context's [[Viewport]].\r\n * @param options Options describing how to create the builder.\r\n * @returns A builder that produces a [[RenderGraphic]].\r\n */\r\n public createGraphic(options: Omit<ViewportGraphicBuilderOptions, \"viewport\">): GraphicBuilder {\r\n return this._createGraphicBuilder(options);\r\n }\r\n}\r\n\r\n/** Arguments supplied to [[DecorateContext.create]].\r\n * @public\r\n */\r\nexport interface DecorateContextCreateArgs {\r\n /** The viewport to be decorated. */\r\n viewport: ScreenViewport;\r\n /** The set of decoration graphics to be populated by the context. */\r\n output: Decorations;\r\n /** Optional cache. If omitted, one will be created.\r\n * @internal\r\n */\r\n cache?: DecorationsCache;\r\n}\r\n\r\n/** Provides context for a [[ViewportDecorator]] to add [[Decorations]] to be rendered within a [[Viewport]].\r\n * @public\r\n * @extensions\r\n */\r\nexport class DecorateContext extends RenderContext {\r\n private readonly _decorations: Decorations;\r\n private readonly _cache: DecorationsCache;\r\n private _curCacheableDecorator?: ViewportDecorator;\r\n\r\n /** The [[ScreenViewport]] in which this context's [[Decorations]] will be drawn. */\r\n public override get viewport(): ScreenViewport {\r\n return super.viewport as ScreenViewport;\r\n }\r\n\r\n /** @internal */\r\n constructor(vp: ScreenViewport, decorations: Decorations, cache: DecorationsCache) {\r\n super(vp);\r\n this._decorations = decorations;\r\n this._cache = cache;\r\n }\r\n\r\n /** Create a new DecorateContext.\r\n * @param args Describes the inputs to the context.\r\n * @note Typically the [[ScreenViewport]] takes care of creating the context for you.\r\n * @public\r\n */\r\n public static create(args: DecorateContextCreateArgs): DecorateContext {\r\n return new DecorateContext(args.viewport, args.output, args.cache ?? new DecorationsCache());\r\n }\r\n\r\n /** Create a builder for creating a [[RenderGraphic]] of the specified type appropriate for rendering within this context's [[Viewport]].\r\n * @param type The type of builder to create.\r\n * @param transform the local-to-world transform in which the builder's geometry is to be defined.\r\n * @param id If the decoration is to be pickable, a unique identifier to associate with the resultant [[RenderGraphic]].\r\n * @returns A builder for creating a [[RenderGraphic]] of the specified type appropriate for rendering within this context's [[Viewport]].\r\n * @see [[IModelConnection.transientIds]] for obtaining an ID for a pickable decoration.\r\n * @see [[createGraphic]] for more options.\r\n */\r\n public createGraphicBuilder(type: GraphicType, transform?: Transform, id?: Id64String): GraphicBuilder {\r\n return this.createGraphic({ type, placement: transform, pickable: undefined !== id ? { id } : undefined });\r\n }\r\n\r\n /** Create a builder for producing a [[RenderGraphic]] appropriate for rendering within this context's [[Viewport]].\r\n * @param options Options describing how to create the builder.\r\n * @returns A builder that produces a [[RenderGraphic]].\r\n */\r\n public createGraphic(options: Omit<ViewportGraphicBuilderOptions, \"viewport\">): GraphicBuilder {\r\n return this._createGraphicBuilder(options);\r\n }\r\n\r\n /** @internal */\r\n public addFromDecorator(decorator: ViewportDecorator): void {\r\n assert(undefined === this._curCacheableDecorator);\r\n try {\r\n if (decorator.useCachedDecorations) {\r\n const cached = this._cache.get(decorator);\r\n if (cached) {\r\n this.restoreCache(cached);\r\n return;\r\n }\r\n\r\n this._curCacheableDecorator = decorator;\r\n }\r\n\r\n decorator.decorate(this);\r\n } finally {\r\n this._curCacheableDecorator = undefined;\r\n }\r\n }\r\n\r\n /** Restores decorations onto this context from the specified array of cached decorations. */\r\n private restoreCache(cachedDecorations: CachedDecoration[]) {\r\n cachedDecorations.forEach((cachedDecoration) => {\r\n switch (cachedDecoration.type) {\r\n case \"graphic\":\r\n this.addDecoration(cachedDecoration.graphicType, cachedDecoration.graphicOwner);\r\n break;\r\n case \"canvas\":\r\n this.addCanvasDecoration(cachedDecoration.canvasDecoration, cachedDecoration.atFront);\r\n break;\r\n case \"html\":\r\n this.addHtmlDecoration(cachedDecoration.htmlElement);\r\n break;\r\n }\r\n });\r\n }\r\n\r\n private _appendToCache(decoration: CachedDecoration) {\r\n assert(undefined !== this._curCacheableDecorator);\r\n this._cache.add(this._curCacheableDecorator, decoration);\r\n }\r\n\r\n /** Calls [[GraphicBuilder.finish]] on the supplied builder to obtain a [[RenderGraphic]], then adds the graphic to the appropriate list of\r\n * [[Decorations]].\r\n * @param builder The builder from which to extract the graphic.\r\n * @note The builder should not be used after calling this method.\r\n */\r\n public addDecorationFromBuilder(builder: GraphicBuilder) {\r\n this.addDecoration(builder.type, builder.finish());\r\n }\r\n\r\n /** Adds a graphic to the set of [[Decorations]] to be drawn in this context's [[ScreenViewport]].\r\n * @param The type of the graphic, which determines to which list of decorations it is added.\r\n * @param decoration The decoration graphic to add.\r\n * @note The type must match the type with which the [[RenderGraphic]]'s [[GraphicBuilder]] was constructed.\r\n * @see [[DecorateContext.addDecorationFromBuilder]] for a more convenient API.\r\n */\r\n public addDecoration(type: GraphicType, decoration: RenderGraphic) {\r\n if (this._curCacheableDecorator) {\r\n const graphicOwner = this.target.renderSystem.createGraphicOwner(decoration);\r\n this._appendToCache({ type: \"graphic\", graphicOwner, graphicType: type });\r\n decoration = graphicOwner;\r\n }\r\n\r\n switch (type) {\r\n case GraphicType.Scene:\r\n if (undefined === this._decorations.normal)\r\n this._decorations.normal = [];\r\n this._decorations.normal.push(decoration);\r\n break;\r\n\r\n case GraphicType.WorldDecoration:\r\n if (!this._decorations.world)\r\n this._decorations.world = [];\r\n this._decorations.world.push(decoration);\r\n break;\r\n\r\n case GraphicType.WorldOverlay:\r\n if (!this._decorations.worldOverlay)\r\n this._decorations.worldOverlay = [];\r\n this._decorations.worldOverlay.push(decoration);\r\n break;\r\n\r\n case GraphicType.ViewOverlay:\r\n if (!this._decorations.viewOverlay)\r\n this._decorations.viewOverlay = [];\r\n this._decorations.viewOverlay.push(decoration);\r\n break;\r\n\r\n case GraphicType.ViewBackground:\r\n this.setViewBackground(decoration);\r\n break;\r\n }\r\n }\r\n\r\n /** Add a [[CanvasDecoration]] to be drawn in this context's [[ScreenViewport]]. */\r\n public addCanvasDecoration(decoration: CanvasDecoration, atFront = false) {\r\n if (this._curCacheableDecorator)\r\n this._appendToCache({ type: \"canvas\", canvasDecoration: decoration, atFront });\r\n\r\n if (undefined === this._decorations.canvasDecorations)\r\n this._decorations.canvasDecorations = [];\r\n\r\n const list = this._decorations.canvasDecorations;\r\n if (0 === list.length || true === atFront)\r\n list.push(decoration);\r\n else\r\n list.unshift(decoration);\r\n }\r\n\r\n /** Add an HTMLElement to be drawn as a decoration in this context's [[ScreenViewport]]. */\r\n public addHtmlDecoration(decoration: HTMLElement) {\r\n if (this._curCacheableDecorator)\r\n this._appendToCache({ type: \"html\", htmlElement: decoration });\r\n\r\n // an element decoration being added might already be on the decorationDiv, just marked for removal\r\n if (decoration[ELEMENT_MARKED_FOR_REMOVAL]) {\r\n decoration[ELEMENT_MARKED_FOR_REMOVAL] = false;\r\n } else if (decoration.parentElement !== this.viewport.decorationDiv) {\r\n this.viewport.decorationDiv.appendChild(decoration);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public drawStandardGrid(gridOrigin: Point3d, rMatrix: Matrix3d, spacing: XAndY, gridsPerRef: number, _isoGrid: boolean = false, _fixedRepetitions?: Point2d): void {\r\n const vp = this.viewport;\r\n\r\n if (vp.viewingGlobe)\r\n return;\r\n\r\n const color = vp.getContrastToBackgroundColor();\r\n const planarGrid = this.viewport.target.renderSystem.createPlanarGrid(vp.getFrustum(), { origin: gridOrigin, rMatrix, spacing, gridsPerRef, color });\r\n if (planarGrid) {\r\n this.addDecoration(GraphicType.WorldDecoration, planarGrid);\r\n }\r\n }\r\n\r\n /** Display skyBox graphic that encompasses entire scene and rotates with camera.\r\n * @see [[RenderSystem.createSkyBox]].\r\n */\r\n public setSkyBox(graphic: RenderGraphic) {\r\n this._decorations.skyBox = graphic;\r\n }\r\n\r\n /** Set the graphic to be displayed behind all other geometry as the background of this context's [[ScreenViewport]]. */\r\n public setViewBackground(graphic: RenderGraphic) {\r\n this._decorations.viewBackground = graphic;\r\n }\r\n}\r\n\r\n/** Context used to create the scene to be drawn in a [[Viewport]]. The scene consists of a set of [[RenderGraphic]]s produced by the\r\n * [[TileTree]]s visible within the viewport. Creating the scene may result in the enqueueing of requests for [[Tile]] content which\r\n * should be displayed in the viewport but are not yet loaded.\r\n * @public\r\n */\r\nexport class SceneContext extends RenderContext {\r\n private _missingChildTiles = false;\r\n /** The graphics comprising the scene. */\r\n public readonly scene = new Scene();\r\n\r\n /** @internal */\r\n public readonly missingTiles = new Set<Tile>();\r\n\r\n /** @internal */\r\n public markChildrenLoading(): void {\r\n this._missingChildTiles = true;\r\n }\r\n\r\n /** @internal */\r\n public get hasMissingTiles(): boolean {\r\n return this._missingChildTiles || this.missingTiles.size > 0;\r\n }\r\n\r\n private _viewingSpace?: ViewingSpace;\r\n private _graphicType: TileGraphicType = TileGraphicType.Scene;\r\n\r\n public constructor(vp: Viewport, frustum?: Frustum) {\r\n super(vp, frustum);\r\n }\r\n\r\n /** The viewed volume containing the scene. */\r\n public get viewingSpace(): ViewingSpace {\r\n return undefined !== this._viewingSpace ? this._viewingSpace : this.viewport.viewingSpace;\r\n }\r\n\r\n /** @internal */\r\n public get graphicType() { return this._graphicType; }\r\n\r\n /** Add the specified graphic to the scene. */\r\n public outputGraphic(graphic: RenderGraphic): void {\r\n switch (this._graphicType) {\r\n case TileGraphicType.BackgroundMap:\r\n this.backgroundGraphics.push(graphic);\r\n break;\r\n case TileGraphicType.Overlay:\r\n this.overlayGraphics.push(graphic);\r\n break;\r\n default:\r\n this.graphics.push(graphic);\r\n break;\r\n }\r\n }\r\n\r\n /** Indicate that the specified tile is desired for the scene but is not yet ready. A request to load its contents will later be enqueued. */\r\n public insertMissingTile(tile: Tile): void {\r\n switch (tile.loadStatus) {\r\n case TileLoadStatus.NotLoaded:\r\n case TileLoadStatus.Queued:\r\n case TileLoadStatus.Loading:\r\n this.missingTiles.add(tile);\r\n break;\r\n }\r\n }\r\n\r\n /** @internal */\r\n public requestMissingTiles(): void {\r\n IModelApp.tileAdmin.requestTiles(this.viewport, this.missingTiles);\r\n }\r\n\r\n /** @internal */\r\n public addPlanarClassifier(classifiedModelId: Id64String, classifierTree?: SpatialClassifierTileTreeReference, planarClipMask?: PlanarClipMaskState): RenderPlanarClassifier | undefined {\r\n // Target may have the classifier from a previous frame; if not we must create one.\r\n let classifier = this.viewport.target.getPlanarClassifier(classifiedModelId);\r\n if (undefined === classifier)\r\n classifier = this.viewport.target.createPlanarClassifier(classifierTree?.activeClassifier);\r\n\r\n // Either way, we need to collect the graphics to draw for this frame, and record that we did so.\r\n if (undefined !== classifier) {\r\n this.planarClassifiers.set(classifiedModelId, classifier);\r\n classifier.setSource(classifierTree, planarClipMask);\r\n }\r\n\r\n return classifier;\r\n }\r\n\r\n /** @internal */\r\n public getPlanarClassifierForModel(modelId: Id64String) {\r\n return this.planarClassifiers.get(modelId);\r\n }\r\n\r\n /** @internal */\r\n public addBackgroundDrapedModel(drapedTreeRef: TileTreeReference, _heightRange: Range1d | undefined): RenderTextureDrape | undefined {\r\n const drapedTree = drapedTreeRef.treeOwner.tileTree;\r\n if (undefined === drapedTree)\r\n return undefined;\r\n\r\n const id = drapedTree.modelId;\r\n let drape = this.getTextureDrapeForModel(id);\r\n if (undefined !== drape)\r\n return drape;\r\n\r\n drape = this.viewport.target.getTextureDrape(id);\r\n if (undefined === drape && this.viewport.backgroundDrapeMap)\r\n drape = this.viewport.target.renderSystem.createBackgroundMapDrape(drapedTreeRef, this.viewport.backgroundDrapeMap);\r\n\r\n if (undefined !== drape)\r\n this.textureDrapes.set(id, drape);\r\n\r\n return drape;\r\n }\r\n\r\n /** @internal */\r\n public getTextureDrapeForModel(modelId: Id64String) {\r\n return this.textureDrapes.get(modelId);\r\n }\r\n\r\n /** @internal */\r\n public withGraphicType(type: TileGraphicType, func: () => void): void {\r\n const prevType = this._graphicType;\r\n this._graphicType = type;\r\n\r\n func();\r\n\r\n this._graphicType = prevType;\r\n }\r\n\r\n /** The graphics in the scene that will be drawn with depth. */\r\n public get graphics() { return this.scene.foreground; }\r\n /** The graphics that will be drawn behind everything else in the scene. */\r\n public get backgroundGraphics() { return this.scene.background; }\r\n /** The graphics that will be drawn in front of everything else in the scene. */\r\n public get overlayGraphics() { return this.scene.overlay; }\r\n /** @internal */\r\n public get planarClassifiers() { return this.scene.planarClassifiers; }\r\n /** @internal */\r\n public get textureDrapes() { return this.scene.textureDrapes; }\r\n\r\n /** @internal */\r\n public setVolumeClassifier(classifier: ActiveSpatialClassifier, modelId: Id64String): void {\r\n this.scene.volumeClassifier = { classifier, modelId };\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ViewContext.js","sourceRoot":"","sources":["../../src/ViewContext.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport { assert, Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n Matrix3d, Point2d,\r\n Point3d, Range1d, Transform, XAndY,\r\n} from \"@itwin/core-geometry\";\r\nimport { Frustum, FrustumPlanes, ViewFlags } from \"@itwin/core-common\";\r\nimport { CachedDecoration, DecorationsCache } from \"./DecorationsCache\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { PlanarClipMaskState } from \"./PlanarClipMaskState\";\r\nimport { CanvasDecoration } from \"./render/CanvasDecoration\";\r\nimport { Decorations } from \"./render/Decorations\";\r\nimport { GraphicBranch, GraphicBranchOptions } from \"./render/GraphicBranch\";\r\nimport { GraphicBuilder, ViewportGraphicBuilderOptions } from \"./render/GraphicBuilder\";\r\nimport { GraphicList, RenderGraphic } from \"./render/RenderGraphic\";\r\nimport { RenderPlanarClassifier } from \"./render/RenderPlanarClassifier\";\r\nimport { RenderSystem, RenderTextureDrape } from \"./render/RenderSystem\";\r\nimport { RenderTarget } from \"./render/RenderTarget\";\r\nimport { Scene } from \"./render/Scene\";\r\nimport { SpatialClassifierTileTreeReference, Tile, TileGraphicType, TileLoadStatus, TileTreeReference } from \"./tile/internal\";\r\nimport { ViewingSpace } from \"./ViewingSpace\";\r\nimport { ELEMENT_MARKED_FOR_REMOVAL, ScreenViewport, Viewport, ViewportDecorator } from \"./Viewport\";\r\nimport { ActiveSpatialClassifier } from \"./SpatialClassifiersState\";\r\nimport { GraphicType } from \"./common/render/GraphicType\";\r\n\r\n/** Provides context for producing [[RenderGraphic]]s for drawing within a [[Viewport]].\r\n * @public\r\n * @extensions\r\n */\r\nexport class RenderContext {\r\n /** ViewFlags extracted from the context's [[Viewport]]. */\r\n public readonly viewFlags: ViewFlags;\r\n private readonly _viewport: Viewport;\r\n /** Frustum extracted from the context's [[Viewport]]. */\r\n public readonly frustum: Frustum;\r\n /** Frustum planes extracted from the context's [[Viewport]]. */\r\n public readonly frustumPlanes: FrustumPlanes;\r\n\r\n constructor(vp: Viewport, frustum?: Frustum) {\r\n this._viewport = vp;\r\n this.viewFlags = vp.viewFlags;\r\n this.frustum = frustum ? frustum : vp.getFrustum();\r\n this.frustumPlanes = FrustumPlanes.fromFrustum(this.frustum);\r\n }\r\n\r\n /** Given a point in world coordinates, determine approximately how many pixels it occupies on screen based on this context's frustum. */\r\n public getPixelSizeAtPoint(inPoint?: Point3d): number {\r\n return this.viewport.viewingSpace.getPixelSizeAtPoint(inPoint);\r\n }\r\n\r\n /** The [[Viewport]] associated with this context. */\r\n public get viewport(): Viewport {\r\n return this._viewport;\r\n }\r\n\r\n /** The [[RenderSystem]] being used to produce graphics for this context. */\r\n public get renderSystem(): RenderSystem {\r\n return this.target.renderSystem;\r\n }\r\n\r\n /** @internal */\r\n public get target(): RenderTarget { return this.viewport.target; }\r\n\r\n /** @internal */\r\n protected _createGraphicBuilder(options: Omit<ViewportGraphicBuilderOptions, \"viewport\">): GraphicBuilder {\r\n return this.target.createGraphicBuilder({ ...options, viewport: this.viewport });\r\n }\r\n\r\n /** Create a builder for creating a [[GraphicType.Scene]] [[RenderGraphic]] for rendering within this context's [[Viewport]].\r\n * @param transform the local-to-world transform in which the builder's geometry is to be defined.\r\n * @returns A builder for creating a [[GraphicType.Scene]] [[RenderGraphic]] for rendering within this context's [[Viewport]].\r\n */\r\n public createSceneGraphicBuilder(transform?: Transform): GraphicBuilder {\r\n return this._createGraphicBuilder({ type: GraphicType.Scene, placement: transform });\r\n }\r\n\r\n /** Create a graphic from a [[GraphicBranch]]. */\r\n public createGraphicBranch(branch: GraphicBranch, location: Transform, opts?: GraphicBranchOptions): RenderGraphic {\r\n return this.target.renderSystem.createGraphicBranch(branch, location, opts);\r\n }\r\n\r\n /** Create a [[RenderGraphic]] which groups a set of graphics into a node in a scene graph, applying to each a transform and optional clip volume and symbology overrides.\r\n * @param branch Contains the group of graphics and the symbology overrides.\r\n * @param location the local-to-world transform applied to the grouped graphics.\r\n * @returns A RenderGraphic suitable for drawing the scene graph node within this context's [[Viewport]].\r\n * @see [[RenderSystem.createBranch]]\r\n */\r\n public createBranch(branch: GraphicBranch, location: Transform): RenderGraphic { return this.createGraphicBranch(branch, location); }\r\n\r\n /** Given the size of a logical pixel in meters, convert it to the size of a physical pixel in meters, if [[RenderSystem.dpiAwareLOD]] is `true`.\r\n * Used when computing LOD for graphics.\r\n * @internal\r\n */\r\n public adjustPixelSizeForLOD(cssPixelSize: number): number {\r\n return this.viewport.target.adjustPixelSizeForLOD(cssPixelSize);\r\n }\r\n}\r\n\r\n/** Provides context for an [[InteractiveTool]] to display decorations representing its current state.\r\n * @see [[InteractiveTool.onDynamicFrame]]\r\n * @public\r\n */\r\nexport class DynamicsContext extends RenderContext {\r\n private _dynamics?: GraphicList;\r\n\r\n /** Add a graphic to the list of dynamic graphics to be drawn in this context's [[Viewport]]. */\r\n public addGraphic(graphic: RenderGraphic) {\r\n if (undefined === this._dynamics)\r\n this._dynamics = [];\r\n this._dynamics.push(graphic);\r\n }\r\n\r\n /** @internal */\r\n public changeDynamics(): void {\r\n this.viewport.changeDynamics(this._dynamics);\r\n }\r\n\r\n /** Create a builder for producing a [[RenderGraphic]] appropriate for rendering within this context's [[Viewport]].\r\n * @param options Options describing how to create the builder.\r\n * @returns A builder that produces a [[RenderGraphic]].\r\n */\r\n public createGraphic(options: Omit<ViewportGraphicBuilderOptions, \"viewport\">): GraphicBuilder {\r\n return this._createGraphicBuilder(options);\r\n }\r\n}\r\n\r\n/** Arguments supplied to [[DecorateContext.create]].\r\n * @public\r\n */\r\nexport interface DecorateContextCreateArgs {\r\n /** The viewport to be decorated. */\r\n viewport: ScreenViewport;\r\n /** The set of decoration graphics to be populated by the context. */\r\n output: Decorations;\r\n /** Optional cache. If omitted, one will be created.\r\n * @internal\r\n */\r\n cache?: DecorationsCache;\r\n}\r\n\r\n/** Provides context for a [[ViewportDecorator]] to add [[Decorations]] to be rendered within a [[Viewport]].\r\n * @public\r\n * @extensions\r\n */\r\nexport class DecorateContext extends RenderContext {\r\n private readonly _decorations: Decorations;\r\n private readonly _cache: DecorationsCache;\r\n private _curCacheableDecorator?: ViewportDecorator;\r\n\r\n /** The [[ScreenViewport]] in which this context's [[Decorations]] will be drawn. */\r\n public override get viewport(): ScreenViewport {\r\n return super.viewport as ScreenViewport;\r\n }\r\n\r\n /** @internal */\r\n constructor(vp: ScreenViewport, decorations: Decorations, cache: DecorationsCache) {\r\n super(vp);\r\n this._decorations = decorations;\r\n this._cache = cache;\r\n }\r\n\r\n /** Create a new DecorateContext.\r\n * @param args Describes the inputs to the context.\r\n * @note Typically the [[ScreenViewport]] takes care of creating the context for you.\r\n * @public\r\n */\r\n public static create(args: DecorateContextCreateArgs): DecorateContext {\r\n return new DecorateContext(args.viewport, args.output, args.cache ?? new DecorationsCache());\r\n }\r\n\r\n /** Create a builder for creating a [[RenderGraphic]] of the specified type appropriate for rendering within this context's [[Viewport]].\r\n * @param type The type of builder to create.\r\n * @param transform the local-to-world transform in which the builder's geometry is to be defined.\r\n * @param id If the decoration is to be pickable, a unique identifier to associate with the resultant [[RenderGraphic]].\r\n * @returns A builder for creating a [[RenderGraphic]] of the specified type appropriate for rendering within this context's [[Viewport]].\r\n * @see [[IModelConnection.transientIds]] for obtaining an ID for a pickable decoration.\r\n * @see [[createGraphic]] for more options.\r\n */\r\n public createGraphicBuilder(type: GraphicType, transform?: Transform, id?: Id64String): GraphicBuilder {\r\n return this.createGraphic({ type, placement: transform, pickable: undefined !== id ? { id } : undefined });\r\n }\r\n\r\n /** Create a builder for producing a [[RenderGraphic]] appropriate for rendering within this context's [[Viewport]].\r\n * @param options Options describing how to create the builder.\r\n * @returns A builder that produces a [[RenderGraphic]].\r\n */\r\n public createGraphic(options: Omit<ViewportGraphicBuilderOptions, \"viewport\">): GraphicBuilder {\r\n return this._createGraphicBuilder(options);\r\n }\r\n\r\n /** @internal */\r\n public addFromDecorator(decorator: ViewportDecorator): void {\r\n assert(undefined === this._curCacheableDecorator);\r\n try {\r\n if (decorator.useCachedDecorations) {\r\n const cached = this._cache.get(decorator);\r\n if (cached) {\r\n this.restoreCache(cached);\r\n return;\r\n }\r\n\r\n this._curCacheableDecorator = decorator;\r\n }\r\n\r\n decorator.decorate(this);\r\n } finally {\r\n this._curCacheableDecorator = undefined;\r\n }\r\n }\r\n\r\n /** Restores decorations onto this context from the specified array of cached decorations. */\r\n private restoreCache(cachedDecorations: CachedDecoration[]) {\r\n cachedDecorations.forEach((cachedDecoration) => {\r\n switch (cachedDecoration.type) {\r\n case \"graphic\":\r\n this.addDecoration(cachedDecoration.graphicType, cachedDecoration.graphicOwner);\r\n break;\r\n case \"canvas\":\r\n this.addCanvasDecoration(cachedDecoration.canvasDecoration, cachedDecoration.atFront);\r\n break;\r\n case \"html\":\r\n this.addHtmlDecoration(cachedDecoration.htmlElement);\r\n break;\r\n }\r\n });\r\n }\r\n\r\n private _appendToCache(decoration: CachedDecoration) {\r\n assert(undefined !== this._curCacheableDecorator);\r\n this._cache.add(this._curCacheableDecorator, decoration);\r\n }\r\n\r\n /** Calls [[GraphicBuilder.finish]] on the supplied builder to obtain a [[RenderGraphic]], then adds the graphic to the appropriate list of\r\n * [[Decorations]].\r\n * @param builder The builder from which to extract the graphic.\r\n * @note The builder should not be used after calling this method.\r\n */\r\n public addDecorationFromBuilder(builder: GraphicBuilder) {\r\n this.addDecoration(builder.type, builder.finish());\r\n }\r\n\r\n /** Adds a graphic to the set of [[Decorations]] to be drawn in this context's [[ScreenViewport]].\r\n * @param The type of the graphic, which determines to which list of decorations it is added.\r\n * @param decoration The decoration graphic to add.\r\n * @note The type must match the type with which the [[RenderGraphic]]'s [[GraphicBuilder]] was constructed.\r\n * @see [[DecorateContext.addDecorationFromBuilder]] for a more convenient API.\r\n */\r\n public addDecoration(type: GraphicType, decoration: RenderGraphic) {\r\n if (this._curCacheableDecorator) {\r\n const graphicOwner = this.target.renderSystem.createGraphicOwner(decoration);\r\n this._appendToCache({ type: \"graphic\", graphicOwner, graphicType: type });\r\n decoration = graphicOwner;\r\n }\r\n\r\n switch (type) {\r\n case GraphicType.Scene:\r\n if (undefined === this._decorations.normal)\r\n this._decorations.normal = [];\r\n this._decorations.normal.push(decoration);\r\n break;\r\n\r\n case GraphicType.WorldDecoration:\r\n if (!this._decorations.world)\r\n this._decorations.world = [];\r\n this._decorations.world.push(decoration);\r\n break;\r\n\r\n case GraphicType.WorldOverlay:\r\n if (!this._decorations.worldOverlay)\r\n this._decorations.worldOverlay = [];\r\n this._decorations.worldOverlay.push(decoration);\r\n break;\r\n\r\n case GraphicType.ViewOverlay:\r\n if (!this._decorations.viewOverlay)\r\n this._decorations.viewOverlay = [];\r\n this._decorations.viewOverlay.push(decoration);\r\n break;\r\n\r\n case GraphicType.ViewBackground:\r\n this.setViewBackground(decoration);\r\n break;\r\n }\r\n }\r\n\r\n /** Add a [[CanvasDecoration]] to be drawn in this context's [[ScreenViewport]]. */\r\n public addCanvasDecoration(decoration: CanvasDecoration, atFront = false) {\r\n if (this._curCacheableDecorator)\r\n this._appendToCache({ type: \"canvas\", canvasDecoration: decoration, atFront });\r\n\r\n if (undefined === this._decorations.canvasDecorations)\r\n this._decorations.canvasDecorations = [];\r\n\r\n const list = this._decorations.canvasDecorations;\r\n if (0 === list.length || true === atFront)\r\n list.push(decoration);\r\n else\r\n list.unshift(decoration);\r\n }\r\n\r\n /** Add an HTMLElement to be drawn as a decoration in this context's [[ScreenViewport]]. */\r\n public addHtmlDecoration(decoration: HTMLElement) {\r\n if (this._curCacheableDecorator)\r\n this._appendToCache({ type: \"html\", htmlElement: decoration });\r\n\r\n // an element decoration being added might already be on the decorationDiv, just marked for removal\r\n if (decoration[ELEMENT_MARKED_FOR_REMOVAL]) {\r\n decoration[ELEMENT_MARKED_FOR_REMOVAL] = false;\r\n } else if (decoration.parentElement !== this.viewport.decorationDiv) {\r\n this.viewport.decorationDiv.appendChild(decoration);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public drawStandardGrid(gridOrigin: Point3d, rMatrix: Matrix3d, spacing: XAndY, gridsPerRef: number, _isoGrid: boolean = false, _fixedRepetitions?: Point2d): void {\r\n const vp = this.viewport;\r\n\r\n if (vp.viewingGlobe)\r\n return;\r\n\r\n const color = vp.getContrastToBackgroundColor();\r\n const planarGrid = this.viewport.target.renderSystem.createPlanarGrid(vp.getFrustum(), { origin: gridOrigin, rMatrix, spacing, gridsPerRef, color });\r\n if (planarGrid) {\r\n this.addDecoration(GraphicType.WorldDecoration, planarGrid);\r\n }\r\n }\r\n\r\n /** Display skyBox graphic that encompasses entire scene and rotates with camera.\r\n * @see [[RenderSystem.createSkyBox]].\r\n */\r\n public setSkyBox(graphic: RenderGraphic) {\r\n this._decorations.skyBox = graphic;\r\n }\r\n\r\n /** Set the graphic to be displayed behind all other geometry as the background of this context's [[ScreenViewport]]. */\r\n public setViewBackground(graphic: RenderGraphic) {\r\n this._decorations.viewBackground = graphic;\r\n }\r\n}\r\n\r\n/** Context used to create the scene to be drawn in a [[Viewport]]. The scene consists of a set of [[RenderGraphic]]s produced by the\r\n * [[TileTree]]s visible within the viewport. Creating the scene may result in the enqueueing of requests for [[Tile]] content which\r\n * should be displayed in the viewport but are not yet loaded.\r\n * @public\r\n */\r\nexport class SceneContext extends RenderContext {\r\n private _missingChildTiles = false;\r\n /** The graphics comprising the scene. */\r\n public readonly scene = new Scene();\r\n\r\n /** @internal */\r\n public readonly missingTiles = new Set<Tile>();\r\n\r\n /** @internal */\r\n public markChildrenLoading(): void {\r\n this._missingChildTiles = true;\r\n }\r\n\r\n /** @internal */\r\n public get hasMissingTiles(): boolean {\r\n return this._missingChildTiles || this.missingTiles.size > 0;\r\n }\r\n\r\n private _viewingSpace?: ViewingSpace;\r\n private _graphicType: TileGraphicType = TileGraphicType.Scene;\r\n\r\n public constructor(vp: Viewport, frustum?: Frustum) {\r\n super(vp, frustum);\r\n }\r\n\r\n /** The viewed volume containing the scene. */\r\n public get viewingSpace(): ViewingSpace {\r\n return undefined !== this._viewingSpace ? this._viewingSpace : this.viewport.viewingSpace;\r\n }\r\n\r\n /** @internal */\r\n public get graphicType() { return this._graphicType; }\r\n\r\n /** Add the specified graphic to the scene. */\r\n public outputGraphic(graphic: RenderGraphic): void {\r\n switch (this._graphicType) {\r\n case TileGraphicType.BackgroundMap:\r\n this.backgroundGraphics.push(graphic);\r\n break;\r\n case TileGraphicType.Overlay:\r\n this.overlayGraphics.push(graphic);\r\n break;\r\n default:\r\n this.graphics.push(graphic);\r\n break;\r\n }\r\n }\r\n\r\n /** Indicate that the specified tile is desired for the scene but is not yet ready. A request to load its contents will later be enqueued. */\r\n public insertMissingTile(tile: Tile): void {\r\n switch (tile.loadStatus) {\r\n case TileLoadStatus.NotLoaded:\r\n case TileLoadStatus.Queued:\r\n case TileLoadStatus.Loading:\r\n this.missingTiles.add(tile);\r\n break;\r\n }\r\n }\r\n\r\n /** @internal */\r\n public requestMissingTiles(): void {\r\n IModelApp.tileAdmin.requestTiles(this.viewport, this.missingTiles);\r\n }\r\n\r\n /** @internal */\r\n public addPlanarClassifier(classifiedModelId: Id64String, classifierTree?: SpatialClassifierTileTreeReference, planarClipMask?: PlanarClipMaskState): RenderPlanarClassifier | undefined {\r\n // Target may have the classifier from a previous frame; if not we must create one.\r\n let classifier = this.viewport.target.getPlanarClassifier(classifiedModelId);\r\n if (undefined === classifier)\r\n classifier = this.viewport.target.createPlanarClassifier(classifierTree?.activeClassifier);\r\n\r\n // Either way, we need to collect the graphics to draw for this frame, and record that we did so.\r\n if (undefined !== classifier) {\r\n this.planarClassifiers.set(classifiedModelId, classifier);\r\n classifier.setSource(classifierTree, planarClipMask);\r\n }\r\n\r\n return classifier;\r\n }\r\n\r\n /** @internal */\r\n public getPlanarClassifierForModel(modelId: Id64String) {\r\n return this.planarClassifiers.get(modelId);\r\n }\r\n\r\n /** @internal */\r\n public addBackgroundDrapedModel(drapedTreeRef: TileTreeReference, _heightRange: Range1d | undefined): RenderTextureDrape | undefined {\r\n const drapedTree = drapedTreeRef.treeOwner.tileTree;\r\n if (undefined === drapedTree)\r\n return undefined;\r\n\r\n const id = drapedTree.modelId;\r\n let drape = this.getTextureDrapeForModel(id);\r\n if (undefined !== drape)\r\n return drape;\r\n\r\n drape = this.viewport.target.getTextureDrape(id);\r\n if (undefined === drape && this.viewport.backgroundDrapeMap)\r\n drape = this.viewport.target.renderSystem.createBackgroundMapDrape(drapedTreeRef, this.viewport.backgroundDrapeMap);\r\n\r\n if (undefined !== drape)\r\n this.textureDrapes.set(id, drape);\r\n\r\n return drape;\r\n }\r\n\r\n /** @internal */\r\n public getTextureDrapeForModel(modelId: Id64String) {\r\n return this.textureDrapes.get(modelId);\r\n }\r\n\r\n /** @internal */\r\n public withGraphicType(type: TileGraphicType, func: () => void): void {\r\n const prevType = this._graphicType;\r\n this._graphicType = type;\r\n\r\n func();\r\n\r\n this._graphicType = prevType;\r\n }\r\n\r\n /** The graphics in the scene that will be drawn with depth. */\r\n public get graphics() { return this.scene.foreground; }\r\n /** The graphics that will be drawn behind everything else in the scene. */\r\n public get backgroundGraphics() { return this.scene.background; }\r\n /** The graphics that will be drawn in front of everything else in the scene. */\r\n public get overlayGraphics() { return this.scene.overlay; }\r\n /** @internal */\r\n public get planarClassifiers() { return this.scene.planarClassifiers; }\r\n /** @internal */\r\n public get textureDrapes() { return this.scene.textureDrapes; }\r\n\r\n /** @internal */\r\n public setVolumeClassifier(classifier: ActiveSpatialClassifier, modelId: Id64String): void {\r\n this.scene.volumeClassifier = { classifier, modelId };\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewCreator3d.d.ts","sourceRoot":"","sources":["../../src/ViewCreator3d.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,EAAsC,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,kIAAkI;AAElI;;;EAGE;AACF,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;OAOG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED;;;;;;;;;GASG;AACH,qBAAa,aAAa;IAKZ,OAAO,CAAC,OAAO;IAJ3B;;;OAGG;gBACiB,OAAO,EAAE,gBAAgB;IAE7C;;;;;OAKG;IACU,iBAAiB,CAAC,OAAO,CAAC,EAAE,oBAAoB,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ViewCreator3d.d.ts","sourceRoot":"","sources":["../../src/ViewCreator3d.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,EAAsC,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,kIAAkI;AAElI;;;EAGE;AACF,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;OAOG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED;;;;;;;;;GASG;AACH,qBAAa,aAAa;IAKZ,OAAO,CAAC,OAAO;IAJ3B;;;OAGG;gBACiB,OAAO,EAAE,gBAAgB;IAE7C;;;;;OAKG;IACU,iBAAiB,CAAC,OAAO,CAAC,EAAE,oBAAoB,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAgC3G;;;;OAIG;YACW,qBAAqB;IAkGnC;;;OAGG;YACW,cAAc;IAwB5B;;OAEG;YACW,iBAAiB;CAUhC"}
|
package/lib/esm/ViewCreator3d.js
CHANGED
|
@@ -41,6 +41,7 @@ export class ViewCreator3d {
|
|
|
41
41
|
const props = await this._createViewStateProps(CompressedId64Set.decompressArray(serializedProps.modelIds), CompressedId64Set.decompressArray(serializedProps.categoryIds), baseExtents, options);
|
|
42
42
|
const viewState = SpatialViewState.createFromProps(props, this._imodel);
|
|
43
43
|
try {
|
|
44
|
+
await viewState.iModel.subcategories.loadAllUsedSpatialSubCategories();
|
|
44
45
|
await viewState.load();
|
|
45
46
|
}
|
|
46
47
|
catch {
|