@itwin/core-frontend 3.2.0-dev.9 → 3.3.0-dev.0
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 +55 -1
- package/lib/cjs/AccuDraw.d.ts +2 -0
- package/lib/cjs/AccuDraw.d.ts.map +1 -1
- package/lib/cjs/AccuDraw.js +2 -0
- package/lib/cjs/AccuDraw.js.map +1 -1
- package/lib/cjs/AccuSnap.d.ts +1 -0
- package/lib/cjs/AccuSnap.d.ts.map +1 -1
- package/lib/cjs/AccuSnap.js +1 -0
- package/lib/cjs/AccuSnap.js.map +1 -1
- package/lib/cjs/ApproximateTerrainHeights.d.ts.map +1 -1
- package/lib/cjs/ApproximateTerrainHeights.js +4 -2
- package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
- package/lib/cjs/ApproximateTerrainHeightsProps.d.ts +1 -1
- package/lib/cjs/ApproximateTerrainHeightsProps.d.ts.map +1 -1
- package/lib/cjs/ApproximateTerrainHeightsProps.js +2 -2
- package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -1
- package/lib/cjs/AuxCoordSys.d.ts +12 -2
- package/lib/cjs/AuxCoordSys.d.ts.map +1 -1
- package/lib/cjs/AuxCoordSys.js +12 -2
- package/lib/cjs/AuxCoordSys.js.map +1 -1
- package/lib/cjs/BingLocation.d.ts +1 -0
- package/lib/cjs/BingLocation.d.ts.map +1 -1
- package/lib/cjs/BingLocation.js +1 -0
- package/lib/cjs/BingLocation.js.map +1 -1
- package/lib/cjs/BriefcaseConnection.d.ts +35 -1
- package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
- package/lib/cjs/BriefcaseConnection.js +52 -1
- package/lib/cjs/BriefcaseConnection.js.map +1 -1
- package/lib/cjs/CategorySelectorState.d.ts +1 -0
- package/lib/cjs/CategorySelectorState.d.ts.map +1 -1
- package/lib/cjs/CategorySelectorState.js +1 -0
- package/lib/cjs/CategorySelectorState.js.map +1 -1
- package/lib/cjs/ChangeFlags.d.ts +1 -0
- package/lib/cjs/ChangeFlags.d.ts.map +1 -1
- package/lib/cjs/ChangeFlags.js +1 -0
- package/lib/cjs/ChangeFlags.js.map +1 -1
- package/lib/cjs/ContextRealityModelState.d.ts +1 -0
- package/lib/cjs/ContextRealityModelState.d.ts.map +1 -1
- package/lib/cjs/ContextRealityModelState.js +1 -0
- package/lib/cjs/ContextRealityModelState.js.map +1 -1
- package/lib/cjs/CoordSystem.d.ts +1 -0
- package/lib/cjs/CoordSystem.d.ts.map +1 -1
- package/lib/cjs/CoordSystem.js +1 -0
- package/lib/cjs/CoordSystem.js.map +1 -1
- package/lib/cjs/DisplayStyleState.d.ts +4 -0
- package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
- package/lib/cjs/DisplayStyleState.js +9 -4
- package/lib/cjs/DisplayStyleState.js.map +1 -1
- package/lib/cjs/DrawingViewState.d.ts +5 -2
- package/lib/cjs/DrawingViewState.d.ts.map +1 -1
- package/lib/cjs/DrawingViewState.js +34 -3
- package/lib/cjs/DrawingViewState.js.map +1 -1
- package/lib/cjs/ElementLocateManager.d.ts +23 -5
- package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
- package/lib/cjs/ElementLocateManager.js +19 -4
- package/lib/cjs/ElementLocateManager.js.map +1 -1
- package/lib/cjs/EmphasizeElements.d.ts +1 -0
- package/lib/cjs/EmphasizeElements.d.ts.map +1 -1
- package/lib/cjs/EmphasizeElements.js +1 -0
- package/lib/cjs/EmphasizeElements.js.map +1 -1
- package/lib/cjs/EntityState.d.ts +2 -0
- package/lib/cjs/EntityState.d.ts.map +1 -1
- package/lib/cjs/EntityState.js +2 -0
- package/lib/cjs/EntityState.js.map +1 -1
- package/lib/cjs/FeatureOverrideProvider.d.ts +1 -0
- package/lib/cjs/FeatureOverrideProvider.d.ts.map +1 -1
- package/lib/cjs/FeatureOverrideProvider.js.map +1 -1
- package/lib/cjs/FlashSettings.d.ts +3 -0
- package/lib/cjs/FlashSettings.d.ts.map +1 -1
- package/lib/cjs/FlashSettings.js +2 -0
- package/lib/cjs/FlashSettings.js.map +1 -1
- package/lib/cjs/FrontendHubAccess.d.ts +4 -1
- package/lib/cjs/FrontendHubAccess.d.ts.map +1 -1
- package/lib/cjs/FrontendHubAccess.js.map +1 -1
- package/lib/cjs/FrontendLoggerCategory.d.ts +6 -1
- package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
- package/lib/cjs/FrontendLoggerCategory.js +5 -0
- package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
- package/lib/cjs/FrustumAnimator.d.ts +2 -0
- package/lib/cjs/FrustumAnimator.d.ts.map +1 -1
- package/lib/cjs/FrustumAnimator.js +2 -0
- package/lib/cjs/FrustumAnimator.js.map +1 -1
- package/lib/cjs/FuzzySearch.d.ts +1 -0
- package/lib/cjs/FuzzySearch.d.ts.map +1 -1
- package/lib/cjs/FuzzySearch.js.map +1 -1
- package/lib/cjs/GlobeAnimator.d.ts +1 -0
- package/lib/cjs/GlobeAnimator.d.ts.map +1 -1
- package/lib/cjs/GlobeAnimator.js +1 -0
- package/lib/cjs/GlobeAnimator.js.map +1 -1
- package/lib/cjs/HitDetail.d.ts +26 -5
- package/lib/cjs/HitDetail.d.ts.map +1 -1
- package/lib/cjs/HitDetail.js +26 -5
- package/lib/cjs/HitDetail.js.map +1 -1
- package/lib/cjs/IModelApp.d.ts +9 -0
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js +38 -23
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +11 -2
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +23 -2
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/ImageUtil.d.ts +15 -2
- package/lib/cjs/ImageUtil.d.ts.map +1 -1
- package/lib/cjs/ImageUtil.js +19 -4
- package/lib/cjs/ImageUtil.js.map +1 -1
- package/lib/cjs/IpcApp.d.ts +1 -0
- package/lib/cjs/IpcApp.d.ts.map +1 -1
- package/lib/cjs/IpcApp.js +1 -0
- package/lib/cjs/IpcApp.js.map +1 -1
- package/lib/cjs/MarginPercent.d.ts +1 -0
- package/lib/cjs/MarginPercent.d.ts.map +1 -1
- package/lib/cjs/MarginPercent.js +1 -0
- package/lib/cjs/MarginPercent.js.map +1 -1
- package/lib/cjs/Marker.d.ts +16 -3
- package/lib/cjs/Marker.d.ts.map +1 -1
- package/lib/cjs/Marker.js +3 -0
- package/lib/cjs/Marker.js.map +1 -1
- package/lib/cjs/ModelSelectorState.d.ts +1 -0
- package/lib/cjs/ModelSelectorState.d.ts.map +1 -1
- package/lib/cjs/ModelSelectorState.js +1 -0
- package/lib/cjs/ModelSelectorState.js.map +1 -1
- package/lib/cjs/ModelState.d.ts +10 -0
- package/lib/cjs/ModelState.d.ts.map +1 -1
- package/lib/cjs/ModelState.js +10 -0
- package/lib/cjs/ModelState.js.map +1 -1
- package/lib/cjs/NotificationManager.d.ts +11 -0
- package/lib/cjs/NotificationManager.d.ts.map +1 -1
- package/lib/cjs/NotificationManager.js +10 -0
- package/lib/cjs/NotificationManager.js.map +1 -1
- package/lib/cjs/PerModelCategoryVisibility.d.ts +1 -0
- package/lib/cjs/PerModelCategoryVisibility.d.ts.map +1 -1
- package/lib/cjs/PerModelCategoryVisibility.js +1 -0
- package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
- package/lib/cjs/SelectionSet.d.ts +7 -0
- package/lib/cjs/SelectionSet.d.ts.map +1 -1
- package/lib/cjs/SelectionSet.js +3 -0
- package/lib/cjs/SelectionSet.js.map +1 -1
- package/lib/cjs/SheetViewState.d.ts +6 -5
- package/lib/cjs/SheetViewState.d.ts.map +1 -1
- package/lib/cjs/SheetViewState.js +58 -6
- package/lib/cjs/SheetViewState.js.map +1 -1
- package/lib/cjs/SpatialViewState.d.ts +7 -2
- package/lib/cjs/SpatialViewState.d.ts.map +1 -1
- package/lib/cjs/SpatialViewState.js +17 -3
- package/lib/cjs/SpatialViewState.js.map +1 -1
- package/lib/cjs/Sprites.d.ts +3 -0
- package/lib/cjs/Sprites.d.ts.map +1 -1
- package/lib/cjs/Sprites.js +3 -0
- package/lib/cjs/Sprites.js.map +1 -1
- package/lib/cjs/StandardView.d.ts +1 -0
- package/lib/cjs/StandardView.d.ts.map +1 -1
- package/lib/cjs/StandardView.js +1 -0
- package/lib/cjs/StandardView.js.map +1 -1
- package/lib/cjs/SubCategoriesCache.d.ts +14 -7
- package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
- package/lib/cjs/SubCategoriesCache.js +36 -8
- package/lib/cjs/SubCategoriesCache.js.map +1 -1
- package/lib/cjs/TentativePoint.d.ts +4 -1
- package/lib/cjs/TentativePoint.d.ts.map +1 -1
- package/lib/cjs/TentativePoint.js +4 -1
- package/lib/cjs/TentativePoint.js.map +1 -1
- package/lib/cjs/Tiles.d.ts +1 -0
- package/lib/cjs/Tiles.d.ts.map +1 -1
- package/lib/cjs/Tiles.js +1 -0
- package/lib/cjs/Tiles.js.map +1 -1
- package/lib/cjs/ViewAnimation.d.ts +6 -0
- package/lib/cjs/ViewAnimation.d.ts.map +1 -1
- package/lib/cjs/ViewAnimation.js.map +1 -1
- package/lib/cjs/ViewCreator2d.d.ts +2 -0
- package/lib/cjs/ViewCreator2d.d.ts.map +1 -1
- package/lib/cjs/ViewCreator2d.js +1 -0
- package/lib/cjs/ViewCreator2d.js.map +1 -1
- package/lib/cjs/ViewCreator3d.d.ts +2 -8
- package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
- package/lib/cjs/ViewCreator3d.js +12 -38
- package/lib/cjs/ViewCreator3d.js.map +1 -1
- package/lib/cjs/ViewGlobalLocation.d.ts +3 -0
- package/lib/cjs/ViewGlobalLocation.d.ts.map +1 -1
- package/lib/cjs/ViewGlobalLocation.js +1 -0
- package/lib/cjs/ViewGlobalLocation.js.map +1 -1
- package/lib/cjs/ViewManager.d.ts +3 -0
- package/lib/cjs/ViewManager.d.ts.map +1 -1
- package/lib/cjs/ViewManager.js +2 -0
- package/lib/cjs/ViewManager.js.map +1 -1
- package/lib/cjs/ViewPose.d.ts +1 -0
- package/lib/cjs/ViewPose.d.ts.map +1 -1
- package/lib/cjs/ViewPose.js +1 -0
- package/lib/cjs/ViewPose.js.map +1 -1
- package/lib/cjs/ViewRect.d.ts +1 -0
- package/lib/cjs/ViewRect.d.ts.map +1 -1
- package/lib/cjs/ViewRect.js +1 -0
- package/lib/cjs/ViewRect.js.map +1 -1
- package/lib/cjs/ViewState.d.ts +17 -2
- package/lib/cjs/ViewState.d.ts.map +1 -1
- package/lib/cjs/ViewState.js +40 -9
- package/lib/cjs/ViewState.js.map +1 -1
- package/lib/cjs/ViewStatus.d.ts +1 -0
- package/lib/cjs/ViewStatus.d.ts.map +1 -1
- package/lib/cjs/ViewStatus.js +1 -0
- package/lib/cjs/ViewStatus.js.map +1 -1
- package/lib/cjs/ViewingSpace.d.ts +1 -0
- package/lib/cjs/ViewingSpace.d.ts.map +1 -1
- package/lib/cjs/ViewingSpace.js +1 -0
- package/lib/cjs/ViewingSpace.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +6 -2
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +12 -4
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/ViewportSync.d.ts +119 -0
- package/lib/cjs/ViewportSync.d.ts.map +1 -0
- package/lib/cjs/ViewportSync.js +187 -0
- package/lib/cjs/ViewportSync.js.map +1 -0
- package/lib/cjs/core-frontend.d.ts +10 -6
- package/lib/cjs/core-frontend.d.ts.map +1 -1
- package/lib/cjs/core-frontend.js +11 -6
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/extension/Extension.d.ts +24 -15
- package/lib/cjs/extension/Extension.d.ts.map +1 -1
- package/lib/cjs/extension/Extension.js +0 -8
- package/lib/cjs/extension/Extension.js.map +1 -1
- package/lib/cjs/extension/ExtensionAdmin.d.ts +21 -44
- package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -1
- package/lib/cjs/extension/ExtensionAdmin.js +55 -64
- package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
- package/lib/cjs/extension/ExtensionRuntime.js +231 -59
- package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
- package/lib/cjs/extension/providers/ExtensionLoadScript.d.ts +10 -0
- package/lib/cjs/extension/providers/ExtensionLoadScript.d.ts.map +1 -0
- package/lib/cjs/extension/providers/ExtensionLoadScript.js +55 -0
- package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -0
- package/lib/cjs/extension/providers/ExtensionServiceClient.d.ts +52 -0
- package/lib/cjs/extension/providers/ExtensionServiceClient.d.ts.map +1 -0
- package/lib/cjs/extension/providers/ExtensionServiceClient.js +131 -0
- package/lib/cjs/extension/providers/ExtensionServiceClient.js.map +1 -0
- package/lib/cjs/extension/providers/LocalExtensionProvider.d.ts +26 -0
- package/lib/cjs/extension/providers/LocalExtensionProvider.d.ts.map +1 -0
- package/lib/cjs/extension/providers/LocalExtensionProvider.js +24 -0
- package/lib/cjs/extension/providers/LocalExtensionProvider.js.map +1 -0
- package/lib/cjs/extension/providers/RemoteExtensionProvider.d.ts +36 -0
- package/lib/cjs/extension/providers/RemoteExtensionProvider.d.ts.map +1 -0
- package/lib/cjs/extension/providers/RemoteExtensionProvider.js +53 -0
- package/lib/cjs/extension/providers/RemoteExtensionProvider.js.map +1 -0
- package/lib/cjs/extension/providers/ServiceExtensionProvider.d.ts +37 -0
- package/lib/cjs/extension/providers/ServiceExtensionProvider.d.ts.map +1 -0
- package/lib/cjs/extension/providers/ServiceExtensionProvider.js +84 -0
- package/lib/cjs/extension/providers/ServiceExtensionProvider.js.map +1 -0
- package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.js +2 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/cjs/render/CanvasDecoration.d.ts +2 -0
- package/lib/cjs/render/CanvasDecoration.d.ts.map +1 -1
- package/lib/cjs/render/CanvasDecoration.js.map +1 -1
- package/lib/cjs/render/Decorations.d.ts +1 -0
- package/lib/cjs/render/Decorations.d.ts.map +1 -1
- package/lib/cjs/render/Decorations.js +1 -0
- package/lib/cjs/render/Decorations.js.map +1 -1
- package/lib/cjs/render/FeatureSymbology.d.ts +1 -0
- package/lib/cjs/render/FeatureSymbology.d.ts.map +1 -1
- package/lib/cjs/render/FeatureSymbology.js +1 -0
- package/lib/cjs/render/FeatureSymbology.js.map +1 -1
- package/lib/cjs/render/GraphicBranch.d.ts +2 -0
- package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBranch.js +1 -0
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- package/lib/cjs/render/GraphicBuilder.d.ts +33 -2
- package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBuilder.js +26 -0
- package/lib/cjs/render/GraphicBuilder.js.map +1 -1
- package/lib/cjs/render/GraphicPrimitive.d.ts +14 -0
- package/lib/cjs/render/GraphicPrimitive.d.ts.map +1 -1
- package/lib/cjs/render/GraphicPrimitive.js.map +1 -1
- package/lib/cjs/render/ParticleCollectionBuilder.d.ts +3 -0
- package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
- package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/cjs/render/Pixel.d.ts +1 -0
- package/lib/cjs/render/Pixel.d.ts.map +1 -1
- package/lib/cjs/render/Pixel.js +1 -0
- package/lib/cjs/render/Pixel.js.map +1 -1
- package/lib/cjs/render/RenderClipVolume.d.ts +1 -0
- package/lib/cjs/render/RenderClipVolume.d.ts.map +1 -1
- package/lib/cjs/render/RenderClipVolume.js +1 -0
- package/lib/cjs/render/RenderClipVolume.js.map +1 -1
- package/lib/cjs/render/RenderGraphic.d.ts +3 -0
- package/lib/cjs/render/RenderGraphic.d.ts.map +1 -1
- package/lib/cjs/render/RenderGraphic.js +2 -0
- package/lib/cjs/render/RenderGraphic.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +4 -3
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js +4 -3
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/RenderTexture.d.ts +7 -0
- package/lib/cjs/render/RenderTexture.d.ts.map +1 -1
- package/lib/cjs/render/RenderTexture.js.map +1 -1
- package/lib/cjs/render/Scene.d.ts +1 -0
- package/lib/cjs/render/Scene.d.ts.map +1 -1
- package/lib/cjs/render/Scene.js +1 -0
- package/lib/cjs/render/Scene.js.map +1 -1
- package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts +10 -0
- package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
- package/lib/cjs/render/ScreenSpaceEffectBuilder.js +2 -0
- package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
- package/lib/cjs/render/primitives/VertexKey.d.ts +4 -2
- package/lib/cjs/render/primitives/VertexKey.d.ts.map +1 -1
- package/lib/cjs/render/primitives/VertexKey.js +23 -12
- package/lib/cjs/render/primitives/VertexKey.js.map +1 -1
- package/lib/cjs/render/primitives/VertexTable.d.ts +1 -1
- package/lib/cjs/render/primitives/VertexTable.js +30 -2
- package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts +12 -4
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js +20 -15
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts +2 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +6 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts +14 -12
- package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js +26 -25
- package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts +8 -8
- package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilder.js +15 -15
- package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts +11 -6
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js +12 -15
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +1 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +6 -2
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
- package/lib/cjs/render/webgl/AttributeMap.js +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.d.ts +7 -1
- package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.js +20 -10
- package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.js +2 -1
- package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.d.ts +1 -0
- package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.js +1 -0
- package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.d.ts +14 -11
- package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.js +26 -17
- package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.d.ts +2 -0
- package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.js +219 -52
- package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.d.ts +5 -4
- package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.js +7 -6
- package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/cjs/render/webgl/System.d.ts +4 -4
- package/lib/cjs/render/webgl/System.d.ts.map +1 -1
- package/lib/cjs/render/webgl/System.js +6 -6
- package/lib/cjs/render/webgl/System.js.map +1 -1
- package/lib/cjs/render/webgl/Target.d.ts +6 -1
- package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Target.js +64 -13
- package/lib/cjs/render/webgl/Target.js.map +1 -1
- package/lib/cjs/render/webgl/Technique.d.ts +4 -2
- package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Technique.js +166 -135
- package/lib/cjs/render/webgl/Technique.js.map +1 -1
- package/lib/cjs/render/webgl/TechniqueFlags.d.ts +7 -3
- package/lib/cjs/render/webgl/TechniqueFlags.d.ts.map +1 -1
- package/lib/cjs/render/webgl/TechniqueFlags.js +17 -4
- package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/cjs/render/webgl/TechniqueId.d.ts +8 -7
- package/lib/cjs/render/webgl/TechniqueId.d.ts.map +1 -1
- package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Animation.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Animation.js +2 -0
- package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Blur.d.ts +2 -1
- package/lib/cjs/render/webgl/glsl/Blur.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Blur.js +38 -6
- package/lib/cjs/render/webgl/glsl/Blur.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Color.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Color.js +8 -7
- package/lib/cjs/render/webgl/glsl/Color.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/CopyStencil.js +1 -1
- package/lib/cjs/render/webgl/glsl/Decode.d.ts +2 -1
- package/lib/cjs/render/webgl/glsl/Decode.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Decode.js +16 -2
- package/lib/cjs/render/webgl/glsl/Decode.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Edge.d.ts +2 -2
- package/lib/cjs/render/webgl/glsl/Edge.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Edge.js +6 -19
- package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +0 -2
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/PointString.d.ts +3 -3
- package/lib/cjs/render/webgl/glsl/PointString.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/PointString.js +6 -6
- package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Polyline.d.ts +3 -3
- package/lib/cjs/render/webgl/glsl/Polyline.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Polyline.js +6 -21
- package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.d.ts +2 -2
- package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.js +50 -34
- package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Vertex.d.ts +3 -3
- package/lib/cjs/render/webgl/glsl/Vertex.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Vertex.js +143 -57
- package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/cjs/tile/ClassifierTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/ClassifierTileTree.js +3 -4
- package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
- package/lib/cjs/tile/DisclosedTileTreeSet.d.ts +2 -0
- package/lib/cjs/tile/DisclosedTileTreeSet.d.ts.map +1 -1
- package/lib/cjs/tile/DisclosedTileTreeSet.js +1 -0
- package/lib/cjs/tile/DisclosedTileTreeSet.js.map +1 -1
- package/lib/cjs/tile/DynamicIModelTile.js +4 -2
- package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
- package/lib/cjs/tile/GltfReader.d.ts +19 -9
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +24 -7
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/IModelTile.js +1 -1
- package/lib/cjs/tile/IModelTile.js.map +1 -1
- package/lib/cjs/tile/IModelTileRequestChannels.d.ts +3 -3
- package/lib/cjs/tile/IModelTileRequestChannels.d.ts.map +1 -1
- package/lib/cjs/tile/IModelTileRequestChannels.js +7 -11
- package/lib/cjs/tile/IModelTileRequestChannels.js.map +1 -1
- package/lib/cjs/tile/IModelTileTree.d.ts +3 -3
- package/lib/cjs/tile/IModelTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/IModelTileTree.js +1 -1
- package/lib/cjs/tile/IModelTileTree.js.map +1 -1
- package/lib/cjs/tile/ImdlReader.d.ts +2 -0
- package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
- package/lib/cjs/tile/ImdlReader.js +2 -0
- 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 +1 -2
- package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.js +4 -4
- package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.d.ts +1 -1
- package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.js +34 -6
- package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/tile/Tile.d.ts +5 -0
- package/lib/cjs/tile/Tile.d.ts.map +1 -1
- package/lib/cjs/tile/Tile.js +5 -0
- package/lib/cjs/tile/Tile.js.map +1 -1
- package/lib/cjs/tile/TileAdmin.d.ts +18 -1
- package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
- package/lib/cjs/tile/TileAdmin.js +26 -19
- package/lib/cjs/tile/TileAdmin.js.map +1 -1
- package/lib/cjs/tile/TileContent.d.ts +1 -0
- package/lib/cjs/tile/TileContent.d.ts.map +1 -1
- package/lib/cjs/tile/TileContent.js.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.d.ts +2 -0
- package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.js +1 -0
- package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
- package/lib/cjs/tile/TileParams.d.ts +1 -0
- package/lib/cjs/tile/TileParams.d.ts.map +1 -1
- package/lib/cjs/tile/TileParams.js.map +1 -1
- package/lib/cjs/tile/TileRequest.d.ts +1 -0
- package/lib/cjs/tile/TileRequest.d.ts.map +1 -1
- package/lib/cjs/tile/TileRequest.js +1 -0
- package/lib/cjs/tile/TileRequest.js.map +1 -1
- package/lib/cjs/tile/TileRequestChannel.d.ts +2 -0
- package/lib/cjs/tile/TileRequestChannel.d.ts.map +1 -1
- package/lib/cjs/tile/TileRequestChannel.js +2 -0
- package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
- package/lib/cjs/tile/TileRequestChannels.d.ts +1 -4
- package/lib/cjs/tile/TileRequestChannels.d.ts.map +1 -1
- package/lib/cjs/tile/TileRequestChannels.js +2 -6
- package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
- package/lib/cjs/tile/TileTree.d.ts +2 -0
- package/lib/cjs/tile/TileTree.d.ts.map +1 -1
- package/lib/cjs/tile/TileTree.js +2 -0
- package/lib/cjs/tile/TileTree.js.map +1 -1
- package/lib/cjs/tile/TileTreeOwner.d.ts +1 -0
- package/lib/cjs/tile/TileTreeOwner.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
- package/lib/cjs/tile/TileTreeParams.d.ts +1 -0
- package/lib/cjs/tile/TileTreeParams.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeParams.js.map +1 -1
- package/lib/cjs/tile/TileTreeReference.d.ts +2 -0
- package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeReference.js +2 -0
- package/lib/cjs/tile/TileTreeReference.js.map +1 -1
- package/lib/cjs/tile/TileTreeSupplier.d.ts +1 -0
- package/lib/cjs/tile/TileTreeSupplier.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeSupplier.js.map +1 -1
- package/lib/cjs/tile/TileUsageMarker.d.ts +1 -0
- package/lib/cjs/tile/TileUsageMarker.d.ts.map +1 -1
- package/lib/cjs/tile/TileUsageMarker.js +1 -0
- package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
- package/lib/cjs/tile/TiledGraphicsProvider.d.ts +1 -0
- package/lib/cjs/tile/TiledGraphicsProvider.d.ts.map +1 -1
- package/lib/cjs/tile/TiledGraphicsProvider.js.map +1 -1
- package/lib/cjs/tile/internal.d.ts +0 -2
- package/lib/cjs/tile/internal.d.ts.map +1 -1
- package/lib/cjs/tile/internal.js +0 -2
- package/lib/cjs/tile/internal.js.map +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts +2 -1
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.js +31 -20
- package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/cjs/tile/map/BingElevation.d.ts +1 -0
- package/lib/cjs/tile/map/BingElevation.d.ts.map +1 -1
- package/lib/cjs/tile/map/BingElevation.js +1 -0
- package/lib/cjs/tile/map/BingElevation.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +50 -27
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +0 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +12 -10
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerAuthentication.d.ts +20 -9
- package/lib/cjs/tile/map/MapLayerAuthentication.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerAuthentication.js +0 -8
- package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +24 -6
- package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.js +28 -7
- package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.js +1 -3
- package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.d.ts +1 -1
- package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.js +1 -1
- package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
- package/lib/cjs/tile/map/MapTile.js +2 -2
- package/lib/cjs/tile/map/MapTile.js.map +1 -1
- package/lib/cjs/tile/map/MapTileLoader.js +1 -1
- package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +2 -2
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/WmsCapabilities.d.ts +3 -2
- package/lib/cjs/tile/map/WmsCapabilities.d.ts.map +1 -1
- package/lib/cjs/tile/map/WmsCapabilities.js +11 -10
- package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
- package/lib/cjs/tools/ClipViewTool.d.ts +5 -3
- package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
- package/lib/cjs/tools/ClipViewTool.js +4 -3
- package/lib/cjs/tools/ClipViewTool.js.map +1 -1
- package/lib/cjs/tools/EditManipulator.d.ts +1 -0
- package/lib/cjs/tools/EditManipulator.d.ts.map +1 -1
- package/lib/cjs/tools/EditManipulator.js +1 -0
- package/lib/cjs/tools/EditManipulator.js.map +1 -1
- package/lib/cjs/tools/EventController.d.ts +1 -0
- package/lib/cjs/tools/EventController.d.ts.map +1 -1
- package/lib/cjs/tools/EventController.js +1 -0
- package/lib/cjs/tools/EventController.js.map +1 -1
- package/lib/cjs/tools/PrimitiveTool.d.ts +4 -0
- package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
- package/lib/cjs/tools/PrimitiveTool.js +7 -0
- package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
- package/lib/cjs/tools/SelectTool.d.ts +3 -0
- package/lib/cjs/tools/SelectTool.d.ts.map +1 -1
- package/lib/cjs/tools/SelectTool.js +3 -0
- package/lib/cjs/tools/SelectTool.js.map +1 -1
- package/lib/cjs/tools/Tool.d.ts +41 -6
- package/lib/cjs/tools/Tool.d.ts.map +1 -1
- package/lib/cjs/tools/Tool.js +27 -4
- package/lib/cjs/tools/Tool.js.map +1 -1
- package/lib/cjs/tools/ToolAdmin.d.ts +16 -22
- package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/cjs/tools/ToolAdmin.js +47 -8
- package/lib/cjs/tools/ToolAdmin.js.map +1 -1
- package/lib/cjs/tools/ToolAssistance.d.ts +7 -0
- package/lib/cjs/tools/ToolAssistance.d.ts.map +1 -1
- package/lib/cjs/tools/ToolAssistance.js +3 -0
- package/lib/cjs/tools/ToolAssistance.js.map +1 -1
- package/lib/cjs/tools/ToolSettings.d.ts +3 -0
- package/lib/cjs/tools/ToolSettings.d.ts.map +1 -1
- package/lib/cjs/tools/ToolSettings.js +3 -0
- package/lib/cjs/tools/ToolSettings.js.map +1 -1
- package/lib/cjs/tools/ViewTool.d.ts +3 -1
- package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
- package/lib/cjs/tools/ViewTool.js +9 -5
- package/lib/cjs/tools/ViewTool.js.map +1 -1
- package/lib/esm/AccuDraw.d.ts +2 -0
- package/lib/esm/AccuDraw.d.ts.map +1 -1
- package/lib/esm/AccuDraw.js +2 -0
- package/lib/esm/AccuDraw.js.map +1 -1
- package/lib/esm/AccuSnap.d.ts +1 -0
- package/lib/esm/AccuSnap.d.ts.map +1 -1
- package/lib/esm/AccuSnap.js +1 -0
- package/lib/esm/AccuSnap.js.map +1 -1
- package/lib/esm/ApproximateTerrainHeights.d.ts.map +1 -1
- package/lib/esm/ApproximateTerrainHeights.js +4 -2
- package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
- package/lib/esm/ApproximateTerrainHeightsProps.d.ts +1 -1
- package/lib/esm/ApproximateTerrainHeightsProps.d.ts.map +1 -1
- package/lib/esm/ApproximateTerrainHeightsProps.js +1 -1
- package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -1
- package/lib/esm/AuxCoordSys.d.ts +12 -2
- package/lib/esm/AuxCoordSys.d.ts.map +1 -1
- package/lib/esm/AuxCoordSys.js +12 -2
- package/lib/esm/AuxCoordSys.js.map +1 -1
- package/lib/esm/BingLocation.d.ts +1 -0
- package/lib/esm/BingLocation.d.ts.map +1 -1
- package/lib/esm/BingLocation.js +1 -0
- package/lib/esm/BingLocation.js.map +1 -1
- package/lib/esm/BriefcaseConnection.d.ts +35 -1
- package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
- package/lib/esm/BriefcaseConnection.js +50 -0
- package/lib/esm/BriefcaseConnection.js.map +1 -1
- package/lib/esm/CategorySelectorState.d.ts +1 -0
- package/lib/esm/CategorySelectorState.d.ts.map +1 -1
- package/lib/esm/CategorySelectorState.js +1 -0
- package/lib/esm/CategorySelectorState.js.map +1 -1
- package/lib/esm/ChangeFlags.d.ts +1 -0
- package/lib/esm/ChangeFlags.d.ts.map +1 -1
- package/lib/esm/ChangeFlags.js +1 -0
- package/lib/esm/ChangeFlags.js.map +1 -1
- package/lib/esm/ContextRealityModelState.d.ts +1 -0
- package/lib/esm/ContextRealityModelState.d.ts.map +1 -1
- package/lib/esm/ContextRealityModelState.js +1 -0
- package/lib/esm/ContextRealityModelState.js.map +1 -1
- package/lib/esm/CoordSystem.d.ts +1 -0
- package/lib/esm/CoordSystem.d.ts.map +1 -1
- package/lib/esm/CoordSystem.js +1 -0
- package/lib/esm/CoordSystem.js.map +1 -1
- package/lib/esm/DisplayStyleState.d.ts +4 -0
- package/lib/esm/DisplayStyleState.d.ts.map +1 -1
- package/lib/esm/DisplayStyleState.js +9 -4
- package/lib/esm/DisplayStyleState.js.map +1 -1
- package/lib/esm/DrawingViewState.d.ts +5 -2
- package/lib/esm/DrawingViewState.d.ts.map +1 -1
- package/lib/esm/DrawingViewState.js +34 -3
- package/lib/esm/DrawingViewState.js.map +1 -1
- package/lib/esm/ElementLocateManager.d.ts +23 -5
- package/lib/esm/ElementLocateManager.d.ts.map +1 -1
- package/lib/esm/ElementLocateManager.js +19 -4
- package/lib/esm/ElementLocateManager.js.map +1 -1
- package/lib/esm/EmphasizeElements.d.ts +1 -0
- package/lib/esm/EmphasizeElements.d.ts.map +1 -1
- package/lib/esm/EmphasizeElements.js +1 -0
- package/lib/esm/EmphasizeElements.js.map +1 -1
- package/lib/esm/EntityState.d.ts +2 -0
- package/lib/esm/EntityState.d.ts.map +1 -1
- package/lib/esm/EntityState.js +2 -0
- package/lib/esm/EntityState.js.map +1 -1
- package/lib/esm/FeatureOverrideProvider.d.ts +1 -0
- package/lib/esm/FeatureOverrideProvider.d.ts.map +1 -1
- package/lib/esm/FeatureOverrideProvider.js.map +1 -1
- package/lib/esm/FlashSettings.d.ts +3 -0
- package/lib/esm/FlashSettings.d.ts.map +1 -1
- package/lib/esm/FlashSettings.js +2 -0
- package/lib/esm/FlashSettings.js.map +1 -1
- package/lib/esm/FrontendHubAccess.d.ts +4 -1
- package/lib/esm/FrontendHubAccess.d.ts.map +1 -1
- package/lib/esm/FrontendHubAccess.js.map +1 -1
- package/lib/esm/FrontendLoggerCategory.d.ts +6 -1
- package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
- package/lib/esm/FrontendLoggerCategory.js +5 -0
- package/lib/esm/FrontendLoggerCategory.js.map +1 -1
- package/lib/esm/FrustumAnimator.d.ts +2 -0
- package/lib/esm/FrustumAnimator.d.ts.map +1 -1
- package/lib/esm/FrustumAnimator.js +2 -0
- package/lib/esm/FrustumAnimator.js.map +1 -1
- package/lib/esm/FuzzySearch.d.ts +1 -0
- package/lib/esm/FuzzySearch.d.ts.map +1 -1
- package/lib/esm/FuzzySearch.js.map +1 -1
- package/lib/esm/GlobeAnimator.d.ts +1 -0
- package/lib/esm/GlobeAnimator.d.ts.map +1 -1
- package/lib/esm/GlobeAnimator.js +1 -0
- package/lib/esm/GlobeAnimator.js.map +1 -1
- package/lib/esm/HitDetail.d.ts +26 -5
- package/lib/esm/HitDetail.d.ts.map +1 -1
- package/lib/esm/HitDetail.js +26 -5
- package/lib/esm/HitDetail.js.map +1 -1
- package/lib/esm/IModelApp.d.ts +9 -0
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js +37 -22
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +11 -2
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +23 -2
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/ImageUtil.d.ts +15 -2
- package/lib/esm/ImageUtil.d.ts.map +1 -1
- package/lib/esm/ImageUtil.js +19 -4
- package/lib/esm/ImageUtil.js.map +1 -1
- package/lib/esm/IpcApp.d.ts +1 -0
- package/lib/esm/IpcApp.d.ts.map +1 -1
- package/lib/esm/IpcApp.js +1 -0
- package/lib/esm/IpcApp.js.map +1 -1
- package/lib/esm/MarginPercent.d.ts +1 -0
- package/lib/esm/MarginPercent.d.ts.map +1 -1
- package/lib/esm/MarginPercent.js +1 -0
- package/lib/esm/MarginPercent.js.map +1 -1
- package/lib/esm/Marker.d.ts +16 -3
- package/lib/esm/Marker.d.ts.map +1 -1
- package/lib/esm/Marker.js +3 -0
- package/lib/esm/Marker.js.map +1 -1
- package/lib/esm/ModelSelectorState.d.ts +1 -0
- package/lib/esm/ModelSelectorState.d.ts.map +1 -1
- package/lib/esm/ModelSelectorState.js +1 -0
- package/lib/esm/ModelSelectorState.js.map +1 -1
- package/lib/esm/ModelState.d.ts +10 -0
- package/lib/esm/ModelState.d.ts.map +1 -1
- package/lib/esm/ModelState.js +10 -0
- package/lib/esm/ModelState.js.map +1 -1
- package/lib/esm/NotificationManager.d.ts +11 -0
- package/lib/esm/NotificationManager.d.ts.map +1 -1
- package/lib/esm/NotificationManager.js +10 -0
- package/lib/esm/NotificationManager.js.map +1 -1
- package/lib/esm/PerModelCategoryVisibility.d.ts +1 -0
- package/lib/esm/PerModelCategoryVisibility.d.ts.map +1 -1
- package/lib/esm/PerModelCategoryVisibility.js +1 -0
- package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
- package/lib/esm/SelectionSet.d.ts +7 -0
- package/lib/esm/SelectionSet.d.ts.map +1 -1
- package/lib/esm/SelectionSet.js +3 -0
- package/lib/esm/SelectionSet.js.map +1 -1
- package/lib/esm/SheetViewState.d.ts +6 -5
- package/lib/esm/SheetViewState.d.ts.map +1 -1
- package/lib/esm/SheetViewState.js +59 -7
- package/lib/esm/SheetViewState.js.map +1 -1
- package/lib/esm/SpatialViewState.d.ts +7 -2
- package/lib/esm/SpatialViewState.d.ts.map +1 -1
- package/lib/esm/SpatialViewState.js +18 -4
- package/lib/esm/SpatialViewState.js.map +1 -1
- package/lib/esm/Sprites.d.ts +3 -0
- package/lib/esm/Sprites.d.ts.map +1 -1
- package/lib/esm/Sprites.js +3 -0
- package/lib/esm/Sprites.js.map +1 -1
- package/lib/esm/StandardView.d.ts +1 -0
- package/lib/esm/StandardView.d.ts.map +1 -1
- package/lib/esm/StandardView.js +1 -0
- package/lib/esm/StandardView.js.map +1 -1
- package/lib/esm/SubCategoriesCache.d.ts +14 -7
- package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
- package/lib/esm/SubCategoriesCache.js +37 -9
- package/lib/esm/SubCategoriesCache.js.map +1 -1
- package/lib/esm/TentativePoint.d.ts +4 -1
- package/lib/esm/TentativePoint.d.ts.map +1 -1
- package/lib/esm/TentativePoint.js +4 -1
- package/lib/esm/TentativePoint.js.map +1 -1
- package/lib/esm/Tiles.d.ts +1 -0
- package/lib/esm/Tiles.d.ts.map +1 -1
- package/lib/esm/Tiles.js +1 -0
- package/lib/esm/Tiles.js.map +1 -1
- package/lib/esm/ViewAnimation.d.ts +6 -0
- package/lib/esm/ViewAnimation.d.ts.map +1 -1
- package/lib/esm/ViewAnimation.js.map +1 -1
- package/lib/esm/ViewCreator2d.d.ts +2 -0
- package/lib/esm/ViewCreator2d.d.ts.map +1 -1
- package/lib/esm/ViewCreator2d.js +1 -0
- package/lib/esm/ViewCreator2d.js.map +1 -1
- package/lib/esm/ViewCreator3d.d.ts +2 -8
- package/lib/esm/ViewCreator3d.d.ts.map +1 -1
- package/lib/esm/ViewCreator3d.js +12 -38
- package/lib/esm/ViewCreator3d.js.map +1 -1
- package/lib/esm/ViewGlobalLocation.d.ts +3 -0
- package/lib/esm/ViewGlobalLocation.d.ts.map +1 -1
- package/lib/esm/ViewGlobalLocation.js +1 -0
- package/lib/esm/ViewGlobalLocation.js.map +1 -1
- package/lib/esm/ViewManager.d.ts +3 -0
- package/lib/esm/ViewManager.d.ts.map +1 -1
- package/lib/esm/ViewManager.js +2 -0
- package/lib/esm/ViewManager.js.map +1 -1
- package/lib/esm/ViewPose.d.ts +1 -0
- package/lib/esm/ViewPose.d.ts.map +1 -1
- package/lib/esm/ViewPose.js +1 -0
- package/lib/esm/ViewPose.js.map +1 -1
- package/lib/esm/ViewRect.d.ts +1 -0
- package/lib/esm/ViewRect.d.ts.map +1 -1
- package/lib/esm/ViewRect.js +1 -0
- package/lib/esm/ViewRect.js.map +1 -1
- package/lib/esm/ViewState.d.ts +17 -2
- package/lib/esm/ViewState.d.ts.map +1 -1
- package/lib/esm/ViewState.js +41 -10
- package/lib/esm/ViewState.js.map +1 -1
- package/lib/esm/ViewStatus.d.ts +1 -0
- package/lib/esm/ViewStatus.d.ts.map +1 -1
- package/lib/esm/ViewStatus.js +1 -0
- package/lib/esm/ViewStatus.js.map +1 -1
- package/lib/esm/ViewingSpace.d.ts +1 -0
- package/lib/esm/ViewingSpace.d.ts.map +1 -1
- package/lib/esm/ViewingSpace.js +1 -0
- package/lib/esm/ViewingSpace.js.map +1 -1
- package/lib/esm/Viewport.d.ts +6 -2
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +12 -4
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/ViewportSync.d.ts +119 -0
- package/lib/esm/ViewportSync.d.ts.map +1 -0
- package/lib/esm/ViewportSync.js +177 -0
- package/lib/esm/ViewportSync.js.map +1 -0
- package/lib/esm/core-frontend.d.ts +10 -6
- package/lib/esm/core-frontend.d.ts.map +1 -1
- package/lib/esm/core-frontend.js +11 -6
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/extension/Extension.d.ts +24 -15
- package/lib/esm/extension/Extension.d.ts.map +1 -1
- package/lib/esm/extension/Extension.js +1 -7
- package/lib/esm/extension/Extension.js.map +1 -1
- package/lib/esm/extension/ExtensionAdmin.d.ts +21 -44
- package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -1
- package/lib/esm/extension/ExtensionAdmin.js +55 -64
- package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
- package/lib/esm/extension/ExtensionRuntime.js +239 -59
- package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
- package/lib/esm/extension/providers/ExtensionLoadScript.d.ts +10 -0
- package/lib/esm/extension/providers/ExtensionLoadScript.d.ts.map +1 -0
- package/lib/esm/extension/providers/ExtensionLoadScript.js +51 -0
- package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -0
- package/lib/esm/extension/providers/ExtensionServiceClient.d.ts +52 -0
- package/lib/esm/extension/providers/ExtensionServiceClient.d.ts.map +1 -0
- package/lib/esm/extension/providers/ExtensionServiceClient.js +127 -0
- package/lib/esm/extension/providers/ExtensionServiceClient.js.map +1 -0
- package/lib/esm/extension/providers/LocalExtensionProvider.d.ts +26 -0
- package/lib/esm/extension/providers/LocalExtensionProvider.d.ts.map +1 -0
- package/lib/esm/extension/providers/LocalExtensionProvider.js +20 -0
- package/lib/esm/extension/providers/LocalExtensionProvider.js.map +1 -0
- package/lib/esm/extension/providers/RemoteExtensionProvider.d.ts +36 -0
- package/lib/esm/extension/providers/RemoteExtensionProvider.d.ts.map +1 -0
- package/lib/esm/extension/providers/RemoteExtensionProvider.js +49 -0
- package/lib/esm/extension/providers/RemoteExtensionProvider.js.map +1 -0
- package/lib/esm/extension/providers/ServiceExtensionProvider.d.ts +37 -0
- package/lib/esm/extension/providers/ServiceExtensionProvider.d.ts.map +1 -0
- package/lib/esm/extension/providers/ServiceExtensionProvider.js +80 -0
- package/lib/esm/extension/providers/ServiceExtensionProvider.js.map +1 -0
- package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
- package/lib/esm/quantity-formatting/QuantityFormatter.js +3 -2
- package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/esm/render/CanvasDecoration.d.ts +2 -0
- package/lib/esm/render/CanvasDecoration.d.ts.map +1 -1
- package/lib/esm/render/CanvasDecoration.js.map +1 -1
- package/lib/esm/render/Decorations.d.ts +1 -0
- package/lib/esm/render/Decorations.d.ts.map +1 -1
- package/lib/esm/render/Decorations.js +1 -0
- package/lib/esm/render/Decorations.js.map +1 -1
- package/lib/esm/render/FeatureSymbology.d.ts +1 -0
- package/lib/esm/render/FeatureSymbology.d.ts.map +1 -1
- package/lib/esm/render/FeatureSymbology.js +1 -0
- package/lib/esm/render/FeatureSymbology.js.map +1 -1
- package/lib/esm/render/GraphicBranch.d.ts +2 -0
- package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
- package/lib/esm/render/GraphicBranch.js +1 -0
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- package/lib/esm/render/GraphicBuilder.d.ts +33 -2
- package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
- package/lib/esm/render/GraphicBuilder.js +27 -1
- package/lib/esm/render/GraphicBuilder.js.map +1 -1
- package/lib/esm/render/GraphicPrimitive.d.ts +14 -0
- package/lib/esm/render/GraphicPrimitive.d.ts.map +1 -1
- package/lib/esm/render/GraphicPrimitive.js.map +1 -1
- package/lib/esm/render/ParticleCollectionBuilder.d.ts +3 -0
- package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
- package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/esm/render/Pixel.d.ts +1 -0
- package/lib/esm/render/Pixel.d.ts.map +1 -1
- package/lib/esm/render/Pixel.js +1 -0
- package/lib/esm/render/Pixel.js.map +1 -1
- package/lib/esm/render/RenderClipVolume.d.ts +1 -0
- package/lib/esm/render/RenderClipVolume.d.ts.map +1 -1
- package/lib/esm/render/RenderClipVolume.js +1 -0
- package/lib/esm/render/RenderClipVolume.js.map +1 -1
- package/lib/esm/render/RenderGraphic.d.ts +3 -0
- package/lib/esm/render/RenderGraphic.d.ts.map +1 -1
- package/lib/esm/render/RenderGraphic.js +2 -0
- package/lib/esm/render/RenderGraphic.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +4 -3
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js +4 -3
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/RenderTexture.d.ts +7 -0
- package/lib/esm/render/RenderTexture.d.ts.map +1 -1
- package/lib/esm/render/RenderTexture.js.map +1 -1
- package/lib/esm/render/Scene.d.ts +1 -0
- package/lib/esm/render/Scene.d.ts.map +1 -1
- package/lib/esm/render/Scene.js +1 -0
- package/lib/esm/render/Scene.js.map +1 -1
- package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts +10 -0
- package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
- package/lib/esm/render/ScreenSpaceEffectBuilder.js +2 -0
- package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
- package/lib/esm/render/primitives/VertexKey.d.ts +4 -2
- package/lib/esm/render/primitives/VertexKey.d.ts.map +1 -1
- package/lib/esm/render/primitives/VertexKey.js +24 -13
- package/lib/esm/render/primitives/VertexKey.js.map +1 -1
- package/lib/esm/render/primitives/VertexTable.d.ts +1 -1
- package/lib/esm/render/primitives/VertexTable.js +30 -2
- package/lib/esm/render/primitives/VertexTable.js.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts +12 -4
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.js +20 -15
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts +2 -1
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +7 -2
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts +14 -12
- package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryPrimitives.js +26 -25
- package/lib/esm/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts +8 -8
- package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilder.js +15 -15
- package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts +11 -6
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.js +13 -16
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +1 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.js +6 -2
- package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
- package/lib/esm/render/webgl/AttributeMap.js +1 -1
- package/lib/esm/render/webgl/CachedGeometry.d.ts +7 -1
- package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/CachedGeometry.js +19 -9
- package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.js +2 -1
- package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.d.ts +1 -0
- package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.js +1 -0
- package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.d.ts +14 -11
- package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.js +27 -18
- package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.d.ts +2 -0
- package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.js +220 -53
- package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.d.ts +5 -4
- package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.js +7 -6
- package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/esm/render/webgl/System.d.ts +4 -4
- package/lib/esm/render/webgl/System.d.ts.map +1 -1
- package/lib/esm/render/webgl/System.js +6 -6
- package/lib/esm/render/webgl/System.js.map +1 -1
- package/lib/esm/render/webgl/Target.d.ts +6 -1
- package/lib/esm/render/webgl/Target.d.ts.map +1 -1
- package/lib/esm/render/webgl/Target.js +64 -13
- package/lib/esm/render/webgl/Target.js.map +1 -1
- package/lib/esm/render/webgl/Technique.d.ts +4 -2
- package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
- package/lib/esm/render/webgl/Technique.js +166 -135
- package/lib/esm/render/webgl/Technique.js.map +1 -1
- package/lib/esm/render/webgl/TechniqueFlags.d.ts +7 -3
- package/lib/esm/render/webgl/TechniqueFlags.d.ts.map +1 -1
- package/lib/esm/render/webgl/TechniqueFlags.js +17 -4
- package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/esm/render/webgl/TechniqueId.d.ts +8 -7
- package/lib/esm/render/webgl/TechniqueId.d.ts.map +1 -1
- package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Animation.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Animation.js +2 -0
- package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Blur.d.ts +2 -1
- package/lib/esm/render/webgl/glsl/Blur.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Blur.js +38 -6
- package/lib/esm/render/webgl/glsl/Blur.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Color.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Color.js +8 -7
- package/lib/esm/render/webgl/glsl/Color.js.map +1 -1
- package/lib/esm/render/webgl/glsl/CopyStencil.js +1 -1
- package/lib/esm/render/webgl/glsl/Decode.d.ts +2 -1
- package/lib/esm/render/webgl/glsl/Decode.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Decode.js +15 -1
- package/lib/esm/render/webgl/glsl/Decode.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Edge.d.ts +2 -2
- package/lib/esm/render/webgl/glsl/Edge.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Edge.js +7 -20
- package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.js +1 -3
- package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/esm/render/webgl/glsl/PointString.d.ts +3 -3
- package/lib/esm/render/webgl/glsl/PointString.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/PointString.js +6 -6
- package/lib/esm/render/webgl/glsl/PointString.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Polyline.d.ts +3 -3
- package/lib/esm/render/webgl/glsl/Polyline.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Polyline.js +7 -22
- package/lib/esm/render/webgl/glsl/Polyline.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Surface.d.ts +2 -2
- package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Surface.js +51 -35
- package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Vertex.d.ts +3 -3
- package/lib/esm/render/webgl/glsl/Vertex.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Vertex.js +142 -56
- package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/esm/tile/ClassifierTileTree.d.ts.map +1 -1
- package/lib/esm/tile/ClassifierTileTree.js +3 -4
- package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
- package/lib/esm/tile/DisclosedTileTreeSet.d.ts +2 -0
- package/lib/esm/tile/DisclosedTileTreeSet.d.ts.map +1 -1
- package/lib/esm/tile/DisclosedTileTreeSet.js +1 -0
- package/lib/esm/tile/DisclosedTileTreeSet.js.map +1 -1
- package/lib/esm/tile/DynamicIModelTile.js +4 -2
- package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
- package/lib/esm/tile/GltfReader.d.ts +19 -9
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +23 -6
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/IModelTile.js +1 -1
- package/lib/esm/tile/IModelTile.js.map +1 -1
- package/lib/esm/tile/IModelTileRequestChannels.d.ts +3 -3
- package/lib/esm/tile/IModelTileRequestChannels.d.ts.map +1 -1
- package/lib/esm/tile/IModelTileRequestChannels.js +7 -11
- package/lib/esm/tile/IModelTileRequestChannels.js.map +1 -1
- package/lib/esm/tile/IModelTileTree.d.ts +3 -3
- package/lib/esm/tile/IModelTileTree.d.ts.map +1 -1
- package/lib/esm/tile/IModelTileTree.js +1 -1
- package/lib/esm/tile/IModelTileTree.js.map +1 -1
- package/lib/esm/tile/ImdlReader.d.ts +2 -0
- package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
- package/lib/esm/tile/ImdlReader.js +2 -0
- 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 +2 -3
- package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.js +5 -5
- package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
- package/lib/esm/tile/RealityTileLoader.d.ts +1 -1
- package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileLoader.js +36 -8
- package/lib/esm/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/tile/Tile.d.ts +5 -0
- package/lib/esm/tile/Tile.d.ts.map +1 -1
- package/lib/esm/tile/Tile.js +5 -0
- package/lib/esm/tile/Tile.js.map +1 -1
- package/lib/esm/tile/TileAdmin.d.ts +18 -1
- package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
- package/lib/esm/tile/TileAdmin.js +27 -20
- package/lib/esm/tile/TileAdmin.js.map +1 -1
- package/lib/esm/tile/TileContent.d.ts +1 -0
- package/lib/esm/tile/TileContent.d.ts.map +1 -1
- package/lib/esm/tile/TileContent.js.map +1 -1
- package/lib/esm/tile/TileDrawArgs.d.ts +2 -0
- package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/esm/tile/TileDrawArgs.js +1 -0
- package/lib/esm/tile/TileDrawArgs.js.map +1 -1
- package/lib/esm/tile/TileParams.d.ts +1 -0
- package/lib/esm/tile/TileParams.d.ts.map +1 -1
- package/lib/esm/tile/TileParams.js.map +1 -1
- package/lib/esm/tile/TileRequest.d.ts +1 -0
- package/lib/esm/tile/TileRequest.d.ts.map +1 -1
- package/lib/esm/tile/TileRequest.js +1 -0
- package/lib/esm/tile/TileRequest.js.map +1 -1
- package/lib/esm/tile/TileRequestChannel.d.ts +2 -0
- package/lib/esm/tile/TileRequestChannel.d.ts.map +1 -1
- package/lib/esm/tile/TileRequestChannel.js +2 -0
- package/lib/esm/tile/TileRequestChannel.js.map +1 -1
- package/lib/esm/tile/TileRequestChannels.d.ts +1 -4
- package/lib/esm/tile/TileRequestChannels.d.ts.map +1 -1
- package/lib/esm/tile/TileRequestChannels.js +2 -6
- package/lib/esm/tile/TileRequestChannels.js.map +1 -1
- package/lib/esm/tile/TileTree.d.ts +2 -0
- package/lib/esm/tile/TileTree.d.ts.map +1 -1
- package/lib/esm/tile/TileTree.js +2 -0
- package/lib/esm/tile/TileTree.js.map +1 -1
- package/lib/esm/tile/TileTreeOwner.d.ts +1 -0
- package/lib/esm/tile/TileTreeOwner.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeOwner.js.map +1 -1
- package/lib/esm/tile/TileTreeParams.d.ts +1 -0
- package/lib/esm/tile/TileTreeParams.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeParams.js.map +1 -1
- package/lib/esm/tile/TileTreeReference.d.ts +2 -0
- package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeReference.js +2 -0
- package/lib/esm/tile/TileTreeReference.js.map +1 -1
- package/lib/esm/tile/TileTreeSupplier.d.ts +1 -0
- package/lib/esm/tile/TileTreeSupplier.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeSupplier.js.map +1 -1
- package/lib/esm/tile/TileUsageMarker.d.ts +1 -0
- package/lib/esm/tile/TileUsageMarker.d.ts.map +1 -1
- package/lib/esm/tile/TileUsageMarker.js +1 -0
- package/lib/esm/tile/TileUsageMarker.js.map +1 -1
- package/lib/esm/tile/TiledGraphicsProvider.d.ts +1 -0
- package/lib/esm/tile/TiledGraphicsProvider.d.ts.map +1 -1
- package/lib/esm/tile/TiledGraphicsProvider.js.map +1 -1
- package/lib/esm/tile/internal.d.ts +0 -2
- package/lib/esm/tile/internal.d.ts.map +1 -1
- package/lib/esm/tile/internal.js +0 -2
- package/lib/esm/tile/internal.js.map +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.d.ts +2 -1
- package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.js +32 -21
- package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/esm/tile/map/BingElevation.d.ts +1 -0
- package/lib/esm/tile/map/BingElevation.d.ts.map +1 -1
- package/lib/esm/tile/map/BingElevation.js +1 -0
- package/lib/esm/tile/map/BingElevation.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +51 -28
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +0 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +12 -10
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapLayerAuthentication.d.ts +20 -9
- package/lib/esm/tile/map/MapLayerAuthentication.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerAuthentication.js +1 -7
- package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +24 -6
- package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.js +28 -7
- package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.js +2 -4
- package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.d.ts +1 -1
- package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.js +1 -1
- package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
- package/lib/esm/tile/map/MapTile.js +2 -2
- package/lib/esm/tile/map/MapTile.js.map +1 -1
- package/lib/esm/tile/map/MapTileLoader.js +1 -1
- package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js +2 -2
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/WmsCapabilities.d.ts +3 -2
- package/lib/esm/tile/map/WmsCapabilities.d.ts.map +1 -1
- package/lib/esm/tile/map/WmsCapabilities.js +11 -10
- package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
- package/lib/esm/tools/ClipViewTool.d.ts +5 -3
- package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
- package/lib/esm/tools/ClipViewTool.js +4 -3
- package/lib/esm/tools/ClipViewTool.js.map +1 -1
- package/lib/esm/tools/EditManipulator.d.ts +1 -0
- package/lib/esm/tools/EditManipulator.d.ts.map +1 -1
- package/lib/esm/tools/EditManipulator.js +1 -0
- package/lib/esm/tools/EditManipulator.js.map +1 -1
- package/lib/esm/tools/EventController.d.ts +1 -0
- package/lib/esm/tools/EventController.d.ts.map +1 -1
- package/lib/esm/tools/EventController.js +1 -0
- package/lib/esm/tools/EventController.js.map +1 -1
- package/lib/esm/tools/PrimitiveTool.d.ts +4 -0
- package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
- package/lib/esm/tools/PrimitiveTool.js +7 -0
- package/lib/esm/tools/PrimitiveTool.js.map +1 -1
- package/lib/esm/tools/SelectTool.d.ts +3 -0
- package/lib/esm/tools/SelectTool.d.ts.map +1 -1
- package/lib/esm/tools/SelectTool.js +3 -0
- package/lib/esm/tools/SelectTool.js.map +1 -1
- package/lib/esm/tools/Tool.d.ts +41 -6
- package/lib/esm/tools/Tool.d.ts.map +1 -1
- package/lib/esm/tools/Tool.js +27 -4
- package/lib/esm/tools/Tool.js.map +1 -1
- package/lib/esm/tools/ToolAdmin.d.ts +16 -22
- package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/esm/tools/ToolAdmin.js +48 -9
- package/lib/esm/tools/ToolAdmin.js.map +1 -1
- package/lib/esm/tools/ToolAssistance.d.ts +7 -0
- package/lib/esm/tools/ToolAssistance.d.ts.map +1 -1
- package/lib/esm/tools/ToolAssistance.js +3 -0
- package/lib/esm/tools/ToolAssistance.js.map +1 -1
- package/lib/esm/tools/ToolSettings.d.ts +3 -0
- package/lib/esm/tools/ToolSettings.d.ts.map +1 -1
- package/lib/esm/tools/ToolSettings.js +3 -0
- package/lib/esm/tools/ToolSettings.js.map +1 -1
- package/lib/esm/tools/ViewTool.d.ts +3 -1
- package/lib/esm/tools/ViewTool.d.ts.map +1 -1
- package/lib/esm/tools/ViewTool.js +9 -5
- package/lib/esm/tools/ViewTool.js.map +1 -1
- package/package.json +34 -25
- package/lib/cjs/TwoWayViewportSync.d.ts +0 -51
- package/lib/cjs/TwoWayViewportSync.d.ts.map +0 -1
- package/lib/cjs/TwoWayViewportSync.js +0 -87
- package/lib/cjs/TwoWayViewportSync.js.map +0 -1
- package/lib/cjs/extension/ExtensionLoader.d.ts +0 -26
- package/lib/cjs/extension/ExtensionLoader.d.ts.map +0 -1
- package/lib/cjs/extension/ExtensionLoader.js +0 -10
- package/lib/cjs/extension/ExtensionLoader.js.map +0 -1
- package/lib/cjs/extension/extensions.d.ts +0 -19
- package/lib/cjs/extension/extensions.d.ts.map +0 -1
- package/lib/cjs/extension/extensions.js +0 -36
- package/lib/cjs/extension/extensions.js.map +0 -1
- package/lib/cjs/tile/map/ArcGisTokenGenerator.d.ts +0 -35
- package/lib/cjs/tile/map/ArcGisTokenGenerator.d.ts.map +0 -1
- package/lib/cjs/tile/map/ArcGisTokenGenerator.js +0 -116
- package/lib/cjs/tile/map/ArcGisTokenGenerator.js.map +0 -1
- package/lib/cjs/tile/map/ArcGisTokenManager.d.ts +0 -13
- package/lib/cjs/tile/map/ArcGisTokenManager.d.ts.map +0 -1
- package/lib/cjs/tile/map/ArcGisTokenManager.js +0 -39
- package/lib/cjs/tile/map/ArcGisTokenManager.js.map +0 -1
- package/lib/esm/TwoWayViewportSync.d.ts +0 -51
- package/lib/esm/TwoWayViewportSync.d.ts.map +0 -1
- package/lib/esm/TwoWayViewportSync.js +0 -82
- package/lib/esm/TwoWayViewportSync.js.map +0 -1
- package/lib/esm/extension/ExtensionLoader.d.ts +0 -26
- package/lib/esm/extension/ExtensionLoader.d.ts.map +0 -1
- package/lib/esm/extension/ExtensionLoader.js +0 -9
- package/lib/esm/extension/ExtensionLoader.js.map +0 -1
- package/lib/esm/extension/extensions.d.ts +0 -19
- package/lib/esm/extension/extensions.d.ts.map +0 -1
- package/lib/esm/extension/extensions.js +0 -24
- package/lib/esm/extension/extensions.js.map +0 -1
- package/lib/esm/tile/map/ArcGisTokenGenerator.d.ts +0 -35
- package/lib/esm/tile/map/ArcGisTokenGenerator.d.ts.map +0 -1
- package/lib/esm/tile/map/ArcGisTokenGenerator.js +0 -112
- package/lib/esm/tile/map/ArcGisTokenGenerator.js.map +0 -1
- package/lib/esm/tile/map/ArcGisTokenManager.d.ts +0 -13
- package/lib/esm/tile/map/ArcGisTokenManager.d.ts.map +0 -1
- package/lib/esm/tile/map/ArcGisTokenManager.js +0 -35
- package/lib/esm/tile/map/ArcGisTokenManager.js.map +0 -1
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @module WebGL
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.lateVertexDiscard = exports.vertexDiscard = exports.earlyVertexDiscard = exports.
|
|
10
|
+
exports.lateVertexDiscard = exports.vertexDiscard = exports.earlyVertexDiscard = exports.replaceLineCode = exports.addLineCode = exports.replaceLineWeight = exports.addLineWeight = exports.addAlpha = exports.addPosition = exports.addNormalMatrix = exports.addModelViewMatrix = exports.addInstancedRtcMatrix = exports.addProjectionMatrix = exports.addModelViewProjectionMatrix = exports.addSamplePosition = exports.unquantizePosition = void 0;
|
|
11
11
|
const core_bentley_1 = require("@itwin/core-bentley");
|
|
12
12
|
const Matrix_1 = require("../Matrix");
|
|
13
13
|
const RenderFlags_1 = require("../RenderFlags");
|
|
@@ -19,27 +19,97 @@ const initializeVertLUTCoords = `
|
|
|
19
19
|
g_vertexLUTIndex = decodeUInt24(qpos);
|
|
20
20
|
g_vertexBaseCoords = compute_vert_coords(g_vertexLUTIndex);
|
|
21
21
|
`;
|
|
22
|
-
|
|
22
|
+
/** @internal */
|
|
23
|
+
exports.unquantizePosition = `
|
|
23
24
|
vec4 unquantizePosition(vec3 pos, vec3 origin, vec3 scale) { return vec4(origin + scale * pos, 1.0); }
|
|
24
25
|
`;
|
|
25
|
-
|
|
26
|
-
vec4
|
|
26
|
+
const computeQuantizedPosition = `
|
|
27
|
+
vec4 computeVertexPosition(vec3 pos) { return unquantizePosition(pos, u_qOrigin, u_qScale); }
|
|
27
28
|
`;
|
|
28
29
|
// Need to read 2 rgba values to obtain 6 16-bit integers for position
|
|
29
|
-
const
|
|
30
|
-
vec4
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
30
|
+
const computeVertexPositionFromLUT = `
|
|
31
|
+
vec4 computeVertexPosition(vec3 encodedIndex) {
|
|
32
|
+
vec3 qpos = vec3(decodeUInt16(g_vertLutData0.xy), decodeUInt16(g_vertLutData0.zw), decodeUInt16(g_vertLutData1.xy));
|
|
33
|
+
g_featureAndMaterialIndex = g_vertLutData2;
|
|
34
|
+
return unquantizePosition(qpos, u_qOrigin, u_qScale);
|
|
35
|
+
}
|
|
36
|
+
`;
|
|
37
|
+
const computeUnquantizedPosition1 = `
|
|
38
|
+
vec4 computeVertexPosition(vec3 encodedIndex) {
|
|
39
|
+
vec3 pf[4];
|
|
40
|
+
pf[0] = g_vertLutData0.xyz;
|
|
41
|
+
g_featureAndMaterialIndex.x = g_vertLutData0.w;
|
|
42
|
+
pf[1] = g_vertLutData1.xyz;
|
|
43
|
+
g_featureAndMaterialIndex.y = g_vertLutData1.w;
|
|
44
|
+
pf[2] = g_vertLutData2.xyz;
|
|
45
|
+
g_featureAndMaterialIndex.z = g_vertLutData2.w;
|
|
46
|
+
pf[3] = g_vertLutData3.xyz;
|
|
47
|
+
g_featureAndMaterialIndex.w = g_vertLutData3.w;
|
|
48
|
+
return vec4(decode3Float32(pf), 1.0);
|
|
49
|
+
}
|
|
50
|
+
`;
|
|
51
|
+
const computeUnquantizedPosition2 = `
|
|
52
|
+
vec4 computeVertexPosition(vec3 encodedIndex) {
|
|
53
|
+
uvec3 vux = uvec3(g_vertLutData0.xyz);
|
|
54
|
+
g_featureAndMaterialIndex.x = g_vertLutData0.w;
|
|
55
|
+
uvec3 vuy = uvec3(g_vertLutData1.xyz);
|
|
56
|
+
g_featureAndMaterialIndex.y = g_vertLutData1.w;
|
|
57
|
+
uvec3 vuz = uvec3(g_vertLutData2.xyz);
|
|
58
|
+
g_featureAndMaterialIndex.z = g_vertLutData2.w;
|
|
59
|
+
uvec3 vuw = uvec3(g_vertLutData3.xyz);
|
|
60
|
+
g_featureAndMaterialIndex.w = g_vertLutData3.w;
|
|
61
|
+
uvec3 u = (vuw << 24) | (vuz << 16) | (vuy << 8) | vux;
|
|
62
|
+
return vec4(uintBitsToFloat(u), 1.0);
|
|
39
63
|
}
|
|
40
64
|
`;
|
|
41
65
|
const computeLineWeight = "\nfloat computeLineWeight() { return g_lineWeight; }\n";
|
|
42
66
|
const computeLineCode = "\nfloat computeLineCode() { return g_lineCode; }\n";
|
|
67
|
+
function addSamplePosition(vert) {
|
|
68
|
+
vert.addFunction(getSamplePosition(vert.positionType));
|
|
69
|
+
}
|
|
70
|
+
exports.addSamplePosition = addSamplePosition;
|
|
71
|
+
function getSamplePosition(type) {
|
|
72
|
+
const prelude = `
|
|
73
|
+
vec4 samplePosition(float index) {
|
|
74
|
+
vec2 tc = compute_vert_coords(index);`;
|
|
75
|
+
if ("quantized" === type) {
|
|
76
|
+
return `
|
|
77
|
+
${prelude}
|
|
78
|
+
vec4 e0 = floor(TEXTURE(u_vertLUT, tc) * 255.0 + 0.5);
|
|
79
|
+
tc.x += g_vert_stepX;
|
|
80
|
+
vec4 e1 = floor(TEXTURE(u_vertLUT, tc) * 255.0 + 0.5);
|
|
81
|
+
vec3 qpos = vec3(decodeUInt16(e0.xy), decodeUInt16(e0.zw), decodeUInt16(e1.xy));
|
|
82
|
+
return unquantizePosition(qpos, u_qOrigin, u_qScale);
|
|
83
|
+
}
|
|
84
|
+
`;
|
|
85
|
+
}
|
|
86
|
+
if (System_1.System.instance.capabilities.isWebGL2) {
|
|
87
|
+
return `
|
|
88
|
+
${prelude}
|
|
89
|
+
uvec3 vux = uvec3(floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5));
|
|
90
|
+
tc.x += g_vert_stepX;
|
|
91
|
+
uvec3 vuy = uvec3(floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5));
|
|
92
|
+
tc.x += g_vert_stepX;
|
|
93
|
+
uvec3 vuz = uvec3(floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5));
|
|
94
|
+
tc.x += g_vert_stepX;
|
|
95
|
+
uvec3 vuw = uvec3(floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5));
|
|
96
|
+
uvec3 u = (vuw << 24) | (vuz << 16) | (vuy << 8) | vux;
|
|
97
|
+
return vec4(uintBitsToFloat(u), 1.0);
|
|
98
|
+
}`;
|
|
99
|
+
}
|
|
100
|
+
return `
|
|
101
|
+
${prelude}
|
|
102
|
+
vec3 pf[4];
|
|
103
|
+
pf[0] = floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5);
|
|
104
|
+
tc.x += g_vert_stepX;
|
|
105
|
+
pf[1] = floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5);
|
|
106
|
+
tc.x += g_vert_stepX;
|
|
107
|
+
pf[2] = floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5);
|
|
108
|
+
tc.x += g_vert_stepX;
|
|
109
|
+
pf[3] = floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5);
|
|
110
|
+
return vec4(decode3Float32(pf), 1.0);
|
|
111
|
+
}`;
|
|
112
|
+
}
|
|
43
113
|
/** @internal */
|
|
44
114
|
function addModelViewProjectionMatrix(vert) {
|
|
45
115
|
if (vert.usesInstancedGeometry) {
|
|
@@ -144,14 +214,55 @@ function addNormalMatrix(vert, instanced) {
|
|
|
144
214
|
}
|
|
145
215
|
}
|
|
146
216
|
exports.addNormalMatrix = addNormalMatrix;
|
|
217
|
+
function readVertexData(index) {
|
|
218
|
+
return `g_vertLutData${index} = floor(TEXTURE(u_vertLUT, tc) * 255.0 + 0.5);`;
|
|
219
|
+
}
|
|
220
|
+
const nextVertexData = "tc.x += g_vert_stepX;";
|
|
221
|
+
function readNextVertexData(index) {
|
|
222
|
+
return `
|
|
223
|
+
${nextVertexData}
|
|
224
|
+
${readVertexData(index)}`;
|
|
225
|
+
}
|
|
226
|
+
const prereadVertexDataPrelude = `
|
|
227
|
+
vec2 tc = g_vertexBaseCoords;
|
|
228
|
+
${readVertexData(0)}
|
|
229
|
+
${readNextVertexData(1)}
|
|
230
|
+
${readNextVertexData(2)}
|
|
231
|
+
`;
|
|
232
|
+
const prereadQuantizedVertexData = `${prereadVertexDataPrelude}
|
|
233
|
+
if (3.0 < u_vertParams.z) {
|
|
234
|
+
${readNextVertexData(3)}
|
|
235
|
+
}
|
|
236
|
+
`;
|
|
237
|
+
const prereadUnquantizedVertexData = `${prereadVertexDataPrelude}
|
|
238
|
+
${readNextVertexData(3)}
|
|
239
|
+
${readNextVertexData(4)}
|
|
240
|
+
if (5.0 < u_vertParams.z) {
|
|
241
|
+
${readNextVertexData(5)}
|
|
242
|
+
}
|
|
243
|
+
`;
|
|
147
244
|
const scratchLutParams = new Float32Array(4);
|
|
148
245
|
function addPositionFromLUT(vert) {
|
|
149
246
|
vert.addGlobal("g_vertexLUTIndex", 2 /* Float */);
|
|
150
247
|
vert.addGlobal("g_vertexBaseCoords", 3 /* Vec2 */);
|
|
248
|
+
const unquantized = "unquantized" === vert.positionType;
|
|
249
|
+
const maxRgbaPerVert = unquantized ? 6 : 4;
|
|
250
|
+
for (let i = 0; i < maxRgbaPerVert; i++)
|
|
251
|
+
vert.addGlobal(`g_vertLutData${i}`, 5 /* Vec4 */);
|
|
151
252
|
vert.addFunction(Decode_1.decodeUint24);
|
|
152
253
|
vert.addFunction(Decode_1.decodeUint16);
|
|
153
|
-
|
|
154
|
-
|
|
254
|
+
if (unquantized) {
|
|
255
|
+
if (System_1.System.instance.capabilities.isWebGL2) {
|
|
256
|
+
vert.addFunction(computeUnquantizedPosition2);
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
vert.addFunction(Decode_1.decode3Float32);
|
|
260
|
+
vert.addFunction(computeUnquantizedPosition1);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
vert.addFunction(computeVertexPositionFromLUT);
|
|
265
|
+
}
|
|
155
266
|
vert.addUniform("u_vertLUT", 8 /* Sampler2D */, (prog) => {
|
|
156
267
|
prog.addGraphicUniform("u_vertLUT", (uniform, params) => {
|
|
157
268
|
(params.geometry.asLUT).lut.texture.bindSampler(uniform, RenderFlags_1.TextureUnit.VertexLUT);
|
|
@@ -171,40 +282,29 @@ function addPositionFromLUT(vert) {
|
|
|
171
282
|
});
|
|
172
283
|
(0, LookupTable_1.addLookupTable)(vert, "vert", "u_vertParams.z");
|
|
173
284
|
vert.addInitializer(initializeVertLUTCoords);
|
|
174
|
-
(
|
|
175
|
-
|
|
176
|
-
vert.
|
|
177
|
-
vert.addGlobal("g_usesQuantizedPosition", 0 /* Boolean */);
|
|
178
|
-
// Read the vertex data from the vertex table up front. If using WebGL 2, only read the number of RGBA values we actually need for this vertex table.
|
|
179
|
-
const loopStart = `for (int i = 0; i < ${System_1.System.instance.capabilities.isWebGL2 ? "int(u_vertParams.z)" : maxRgbaPerVertex}; i++)`;
|
|
180
|
-
vert.addInitializer(`
|
|
181
|
-
g_usesQuantizedPosition = u_qScale.x >= 0.0;
|
|
182
|
-
vec2 tc = g_vertexBaseCoords;
|
|
183
|
-
${loopStart} {
|
|
184
|
-
g_vertLutData[i] = floor(TEXTURE(u_vertLUT, tc) * 255.0 + 0.5);
|
|
185
|
-
tc.x += g_vert_stepX;
|
|
186
|
-
}
|
|
187
|
-
`);
|
|
285
|
+
vert.addGlobal("g_featureAndMaterialIndex", 5 /* Vec4 */);
|
|
286
|
+
// Read the vertex data from the vertex table up front. Yields a consistent (if unexplainable) small performance boost.
|
|
287
|
+
vert.addInitializer(unquantized ? prereadUnquantizedVertexData : prereadQuantizedVertexData);
|
|
188
288
|
}
|
|
189
|
-
// Shader tests u_qScale.x < 0 to determine that positions are not quantized.
|
|
190
|
-
const unquantizedScale = new Float32Array([-1, -1, -1]);
|
|
191
289
|
/** @internal */
|
|
192
290
|
function addPosition(vert, fromLUT) {
|
|
193
|
-
vert.
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
291
|
+
if (!fromLUT || "quantized" === vert.positionType) {
|
|
292
|
+
vert.addFunction(exports.unquantizePosition);
|
|
293
|
+
vert.addUniform("u_qScale", 4 /* Vec3 */, (prog) => {
|
|
294
|
+
prog.addGraphicUniform("u_qScale", (uniform, params) => {
|
|
295
|
+
(0, core_bentley_1.assert)(params.geometry.usesQuantizedPositions);
|
|
296
|
+
uniform.setUniform3fv(params.geometry.qScale);
|
|
297
|
+
});
|
|
197
298
|
});
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
// If positions aren't quantized, the shader doesn't use the origin - don't bother updating it.
|
|
202
|
-
if (params.geometry.usesQuantizedPositions)
|
|
299
|
+
vert.addUniform("u_qOrigin", 4 /* Vec3 */, (prog) => {
|
|
300
|
+
prog.addGraphicUniform("u_qOrigin", (uniform, params) => {
|
|
301
|
+
(0, core_bentley_1.assert)(params.geometry.usesQuantizedPositions);
|
|
203
302
|
uniform.setUniform3fv(params.geometry.qOrigin);
|
|
303
|
+
});
|
|
204
304
|
});
|
|
205
|
-
}
|
|
305
|
+
}
|
|
206
306
|
if (!fromLUT) {
|
|
207
|
-
vert.addFunction(
|
|
307
|
+
vert.addFunction(computeQuantizedPosition);
|
|
208
308
|
}
|
|
209
309
|
else {
|
|
210
310
|
addPositionFromLUT(vert);
|
|
@@ -266,20 +366,6 @@ function replaceLineCode(vert, func) {
|
|
|
266
366
|
vert.replaceFunction(computeLineCode, func);
|
|
267
367
|
}
|
|
268
368
|
exports.replaceLineCode = replaceLineCode;
|
|
269
|
-
/** @internal */
|
|
270
|
-
function addFeatureAndMaterialLookup(vert) {
|
|
271
|
-
if (undefined !== vert.find("g_featureAndMaterialIndex"))
|
|
272
|
-
return;
|
|
273
|
-
const computeFeatureAndMaterialIndex = `
|
|
274
|
-
g_featureAndMaterialIndex = g_usesQuantizedPosition ? g_vertLutData[2] : g_vertLutData[3];
|
|
275
|
-
`;
|
|
276
|
-
vert.addGlobal("g_featureAndMaterialIndex", 5 /* Vec4 */);
|
|
277
|
-
if (!vert.usesInstancedGeometry) {
|
|
278
|
-
// Only needed for material atlas, and instanced geometry never uses material atlas.
|
|
279
|
-
vert.addInitializer(computeFeatureAndMaterialIndex);
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
exports.addFeatureAndMaterialLookup = addFeatureAndMaterialLookup;
|
|
283
369
|
// This vertex belongs to a triangle which should not be rendered. Produce a degenerate triangle.
|
|
284
370
|
// Also place it outside NDC range (for GL_POINTS)
|
|
285
371
|
const discardVertex = ` {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vertex.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/Vertex.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { DrawParams } from \"../DrawCommand\";\r\nimport { UniformHandle } from \"../UniformHandle\";\r\nimport { Matrix4 } from \"../Matrix\";\r\nimport { Pass, TextureUnit } from \"../RenderFlags\";\r\nimport { IsInstanced } from \"../TechniqueFlags\";\r\nimport { VariableType, VertexShaderBuilder } from \"../ShaderBuilder\";\r\nimport { System } from \"../System\";\r\nimport { decodeFloat32, decodeUint16, decodeUint24 } from \"./Decode\";\r\nimport { addInstanceOverrides } from \"./Instancing\";\r\nimport { addLookupTable } from \"./LookupTable\";\r\n\r\nconst initializeVertLUTCoords = `\r\n g_vertexLUTIndex = decodeUInt24(qpos);\r\n g_vertexBaseCoords = compute_vert_coords(g_vertexLUTIndex);\r\n`;\r\n\r\nconst unquantizePosition = `\r\nvec4 unquantizePosition(vec3 pos, vec3 origin, vec3 scale) { return vec4(origin + scale * pos, 1.0); }\r\n`;\r\n\r\nexport const unquantizeVertexPosition = `\r\nvec4 unquantizeVertexPosition(vec3 pos, vec3 origin, vec3 scale) { return unquantizePosition(pos, origin, scale); }\r\n`;\r\n\r\n// Need to read 2 rgba values to obtain 6 16-bit integers for position\r\nconst unquantizeVertexPositionFromLUT = `\r\nvec4 unquantizeVertexPosition(vec3 encodedIndex, vec3 origin, vec3 scale) {\r\n if (g_usesQuantizedPosition) {\r\n vec4 enc1 = g_vertLutData[0];\r\n vec4 enc2 = g_vertLutData[1];\r\n vec3 qpos = vec3(decodeUInt16(enc1.xy), decodeUInt16(enc1.zw), decodeUInt16(enc2.xy));\r\n return unquantizePosition(qpos, origin, scale);\r\n }\r\n\r\n return vec4(decodeFloat32(g_vertLutData[0]), decodeFloat32(g_vertLutData[1]), decodeFloat32(g_vertLutData[2]), 1.0);\r\n}\r\n`;\r\n\r\nconst computeLineWeight = \"\\nfloat computeLineWeight() { return g_lineWeight; }\\n\";\r\nconst computeLineCode = \"\\nfloat computeLineCode() { return g_lineCode; }\\n\";\r\n\r\n/** @internal */\r\nexport function addModelViewProjectionMatrix(vert: VertexShaderBuilder): void {\r\n if (vert.usesInstancedGeometry) {\r\n addModelViewMatrix(vert);\r\n addProjectionMatrix(vert);\r\n vert.addGlobal(\"g_mvp\", VariableType.Mat4);\r\n vert.addInitializer(\"g_mvp = u_proj * g_mv;\");\r\n } else {\r\n vert.addUniform(\"u_mvp\", VariableType.Mat4, (prog) => {\r\n prog.addGraphicUniform(\"u_mvp\", (uniform, params) => {\r\n params.target.uniforms.branch.bindModelViewProjectionMatrix(uniform, params.geometry, params.isViewCoords);\r\n });\r\n });\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function addProjectionMatrix(vert: VertexShaderBuilder): void {\r\n vert.addUniform(\"u_proj\", VariableType.Mat4, (prog) => {\r\n prog.addProgramUniform(\"u_proj\", (uniform, params) => {\r\n params.bindProjectionMatrix(uniform);\r\n });\r\n });\r\n}\r\n\r\nconst computeInstancedRtcMatrix = `\r\n g_instancedRtcMatrix = u_instanced_rtc * g_modelMatrixRTC;\r\n`;\r\n\r\n/** @internal */\r\nexport function addInstancedRtcMatrix(vert: VertexShaderBuilder): void {\r\n if (!vert.usesInstancedGeometry)\r\n return;\r\n\r\n assert(undefined !== vert.find(\"g_modelMatrixRTC\")); // set up in VertexShaderBuilder constructor...\r\n vert.addUniform(\"u_instanced_rtc\", VariableType.Mat4, (prog) => {\r\n prog.addGraphicUniform(\"u_instanced_rtc\", (uniform, params) => {\r\n const modelt = params.geometry.asInstanced!.getRtcOnlyTransform();\r\n uniform.setMatrix4(Matrix4.fromTransform(modelt));\r\n });\r\n });\r\n\r\n vert.addGlobal(\"g_instancedRtcMatrix\", VariableType.Mat4);\r\n vert.addInitializer(computeInstancedRtcMatrix);\r\n}\r\n\r\n/** @internal */\r\nexport function addModelViewMatrix(vert: VertexShaderBuilder): void {\r\n const bind = (uniform: UniformHandle, params: DrawParams) => {\r\n params.target.uniforms.branch.bindModelViewMatrix(uniform, params.geometry, params.isViewCoords);\r\n };\r\n\r\n if (vert.usesInstancedGeometry) {\r\n vert.addUniform(\"u_instanced_modelView\", VariableType.Mat4, (prog) => {\r\n prog.addGraphicUniform(\"u_instanced_modelView\", bind);\r\n });\r\n\r\n vert.addGlobal(\"g_mv\", VariableType.Mat4);\r\n vert.addInitializer(\"g_mv = u_instanced_modelView * g_modelMatrixRTC;\");\r\n } else {\r\n vert.addUniform(\"u_mv\", VariableType.Mat4, (prog) => {\r\n // ###TODO: We only need 3 rows, not 4...\r\n prog.addGraphicUniform(\"u_mv\", bind);\r\n });\r\n }\r\n}\r\n\r\nconst computeNormalMatrix = `\r\n g_nmx = mat3(u_modelViewN);\r\n g_nmx[0][0] *= u_frustumScale.x;\r\n g_nmx[1][1] *= u_frustumScale.y;\r\n`;\r\n\r\nconst computeNormalMatrix2 = `\r\n g_nmx = transpose(inverse(mat3(MAT_MV)));\r\n g_nmx[0][0] *= u_frustumScale.x;\r\n g_nmx[1][1] *= u_frustumScale.y;\r\n`;\r\n\r\nconst computeNormalMatrix1Inst = `\r\n g_nmx = mat3(MAT_MV);\r\n g_nmx[0][0] *= u_frustumScale.x;\r\n g_nmx[1][1] *= u_frustumScale.y;\r\n`;\r\n\r\n/** @internal */\r\nexport function addNormalMatrix(vert: VertexShaderBuilder, instanced: IsInstanced) {\r\n vert.addGlobal(\"g_nmx\", VariableType.Mat3);\r\n vert.addUniform(\"u_frustumScale\", VariableType.Vec2, (prog) => {\r\n prog.addGraphicUniform(\"u_frustumScale\", (uniform, params) => {\r\n const scale = params.target.uniforms.branch.top.frustumScale;\r\n uniform.setUniform2fv([scale.x, scale.y]);\r\n });\r\n });\r\n\r\n if (System.instance.capabilities.isWebGL2) {\r\n vert.addInitializer(computeNormalMatrix2);\r\n } else if (IsInstanced.Yes === instanced) {\r\n vert.addInitializer(computeNormalMatrix1Inst);\r\n } else {\r\n vert.addUniform(\"u_modelViewN\", VariableType.Mat3, (prog) => {\r\n prog.addGraphicUniform(\"u_modelViewN\", (uniform, params) => {\r\n params.target.uniforms.branch.bindModelViewNTransform(uniform, params.geometry, false);\r\n });\r\n });\r\n vert.addInitializer(computeNormalMatrix);\r\n }\r\n}\r\n\r\nconst scratchLutParams = new Float32Array(4);\r\nfunction addPositionFromLUT(vert: VertexShaderBuilder) {\r\n vert.addGlobal(\"g_vertexLUTIndex\", VariableType.Float);\r\n vert.addGlobal(\"g_vertexBaseCoords\", VariableType.Vec2);\r\n\r\n vert.addFunction(decodeUint24);\r\n vert.addFunction(decodeUint16);\r\n vert.addFunction(decodeFloat32);\r\n vert.addFunction(unquantizeVertexPositionFromLUT);\r\n\r\n vert.addUniform(\"u_vertLUT\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_vertLUT\", (uniform, params) => {\r\n (params.geometry.asLUT!).lut.texture.bindSampler(uniform, TextureUnit.VertexLUT);\r\n });\r\n });\r\n\r\n vert.addUniform(\"u_vertParams\", VariableType.Vec4, (prog) => {\r\n prog.addGraphicUniform(\"u_vertParams\", (uniform, params) => {\r\n assert(undefined !== params.geometry.asLUT);\r\n const lut = params.geometry.asLUT.lut;\r\n const lutParams = scratchLutParams;\r\n lutParams[0] = lut.texture.width;\r\n lutParams[1] = lut.texture.height;\r\n lutParams[2] = lut.numRgbaPerVertex;\r\n lutParams[3] = lut.numVertices;\r\n uniform.setUniform4fv(lutParams);\r\n });\r\n });\r\n\r\n addLookupTable(vert, \"vert\", \"u_vertParams.z\");\r\n vert.addInitializer(initializeVertLUTCoords);\r\n\r\n assert(undefined !== vert.maxRgbaPerVertex);\r\n const maxRgbaPerVertex = vert.maxRgbaPerVertex.toString();\r\n vert.addGlobal(`g_vertLutData[${maxRgbaPerVertex}]`, VariableType.Vec4);\r\n vert.addGlobal(\"g_usesQuantizedPosition\", VariableType.Boolean);\r\n\r\n // Read the vertex data from the vertex table up front. If using WebGL 2, only read the number of RGBA values we actually need for this vertex table.\r\n const loopStart = `for (int i = 0; i < ${System.instance.capabilities.isWebGL2 ? \"int(u_vertParams.z)\" : maxRgbaPerVertex}; i++)`;\r\n vert.addInitializer(`\r\n g_usesQuantizedPosition = u_qScale.x >= 0.0;\r\n vec2 tc = g_vertexBaseCoords;\r\n ${loopStart} {\r\n g_vertLutData[i] = floor(TEXTURE(u_vertLUT, tc) * 255.0 + 0.5);\r\n tc.x += g_vert_stepX;\r\n }\r\n `);\r\n}\r\n\r\n// Shader tests u_qScale.x < 0 to determine that positions are not quantized.\r\nconst unquantizedScale = new Float32Array([-1, -1, -1]);\r\n\r\n/** @internal */\r\nexport function addPosition(vert: VertexShaderBuilder, fromLUT: boolean) {\r\n vert.addFunction(unquantizePosition);\r\n\r\n vert.addUniform(\"u_qScale\", VariableType.Vec3, (prog) => {\r\n prog.addGraphicUniform(\"u_qScale\", (uniform, params) => {\r\n uniform.setUniform3fv(params.geometry.usesQuantizedPositions ? params.geometry.qScale : unquantizedScale);\r\n });\r\n });\r\n vert.addUniform(\"u_qOrigin\", VariableType.Vec3, (prog) => {\r\n prog.addGraphicUniform(\"u_qOrigin\", (uniform, params) => {\r\n // If positions aren't quantized, the shader doesn't use the origin - don't bother updating it.\r\n if (params.geometry.usesQuantizedPositions)\r\n uniform.setUniform3fv(params.geometry.qOrigin);\r\n });\r\n });\r\n\r\n if (!fromLUT) {\r\n vert.addFunction(unquantizeVertexPosition);\r\n } else {\r\n addPositionFromLUT(vert);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function addAlpha(vert: VertexShaderBuilder): void {\r\n vert.addUniform(\"u_hasAlpha\", VariableType.Float, (prog) => {\r\n prog.addGraphicUniform(\"u_hasAlpha\", (uniform, params) => {\r\n uniform.setUniform1f(Pass.rendersTranslucent(params.geometry.getPass(params.target)) ? 1 : 0);\r\n });\r\n });\r\n}\r\n\r\n/** @internal */\r\nexport function addLineWeight(vert: VertexShaderBuilder): void {\r\n vert.addUniform(\"u_lineWeight\", VariableType.Float, (prog) => {\r\n prog.addGraphicUniform(\"u_lineWeight\", (attr, params) => {\r\n attr.setUniform1f(params.geometry.getLineWeight(params.programParams));\r\n });\r\n });\r\n\r\n vert.addGlobal(\"g_lineWeight\", VariableType.Float);\r\n if (vert.usesInstancedGeometry) {\r\n addInstanceOverrides(vert);\r\n vert.addInitializer(\"g_lineWeight = mix(u_lineWeight, a_instanceOverrides.g, extractInstanceBit(kOvrBit_Weight));\");\r\n } else {\r\n vert.addInitializer(\"g_lineWeight = u_lineWeight;\");\r\n }\r\n\r\n vert.addFunction(computeLineWeight);\r\n}\r\n\r\n/** @internal */\r\nexport function replaceLineWeight(vert: VertexShaderBuilder, func: string): void {\r\n vert.replaceFunction(computeLineWeight, func);\r\n}\r\n\r\n/** @internal */\r\nexport function addLineCode(vert: VertexShaderBuilder): void {\r\n vert.addUniform(\"u_lineCode\", VariableType.Float, (prog) => {\r\n prog.addGraphicUniform(\"u_lineCode\", (attr, params) => {\r\n attr.setUniform1f(params.geometry.getLineCode(params.programParams));\r\n });\r\n });\r\n\r\n vert.addGlobal(\"g_lineCode\", VariableType.Float);\r\n if (vert.usesInstancedGeometry) {\r\n addInstanceOverrides(vert);\r\n vert.addInitializer(\"g_lineCode = mix(u_lineCode, a_instanceOverrides.b, extractInstanceBit(kOvrBit_LineCode));\");\r\n } else {\r\n vert.addInitializer(\"g_lineCode = u_lineCode;\");\r\n }\r\n\r\n vert.addFunction(computeLineCode);\r\n}\r\n\r\n/** @internal */\r\nexport function replaceLineCode(vert: VertexShaderBuilder, func: string): void {\r\n vert.replaceFunction(computeLineCode, func);\r\n}\r\n\r\n/** @internal */\r\nexport function addFeatureAndMaterialLookup(vert: VertexShaderBuilder): void {\r\n if (undefined !== vert.find(\"g_featureAndMaterialIndex\"))\r\n return;\r\n\r\n const computeFeatureAndMaterialIndex = `\r\n g_featureAndMaterialIndex = g_usesQuantizedPosition ? g_vertLutData[2] : g_vertLutData[3];\r\n `;\r\n\r\n vert.addGlobal(\"g_featureAndMaterialIndex\", VariableType.Vec4);\r\n if (!vert.usesInstancedGeometry) {\r\n // Only needed for material atlas, and instanced geometry never uses material atlas.\r\n vert.addInitializer(computeFeatureAndMaterialIndex);\r\n }\r\n}\r\n\r\n// This vertex belongs to a triangle which should not be rendered. Produce a degenerate triangle.\r\n// Also place it outside NDC range (for GL_POINTS)\r\nconst discardVertex = ` {\r\n gl_Position = vec4(2.0, 2.0, 2.0, 1.0);\r\n return;\r\n }\r\n`;\r\n\r\n/** @internal */\r\nexport const earlyVertexDiscard = ` if (checkForEarlyDiscard(rawPosition))${discardVertex}`;\r\n/** @internal */\r\nexport const vertexDiscard = ` if (checkForDiscard())${discardVertex}`;\r\n/** @internal */\r\nexport const lateVertexDiscard = ` if (checkForLateDiscard())${discardVertex}`;\r\n"]}
|
|
1
|
+
{"version":3,"file":"Vertex.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/Vertex.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { DrawParams } from \"../DrawCommand\";\r\nimport { UniformHandle } from \"../UniformHandle\";\r\nimport { Matrix4 } from \"../Matrix\";\r\nimport { Pass, TextureUnit } from \"../RenderFlags\";\r\nimport { IsInstanced, PositionType } from \"../TechniqueFlags\";\r\nimport { VariableType, VertexShaderBuilder } from \"../ShaderBuilder\";\r\nimport { System } from \"../System\";\r\nimport { decode3Float32, decodeUint16, decodeUint24 } from \"./Decode\";\r\nimport { addInstanceOverrides } from \"./Instancing\";\r\nimport { addLookupTable } from \"./LookupTable\";\r\n\r\nconst initializeVertLUTCoords = `\r\n g_vertexLUTIndex = decodeUInt24(qpos);\r\n g_vertexBaseCoords = compute_vert_coords(g_vertexLUTIndex);\r\n`;\r\n\r\n/** @internal */\r\nexport const unquantizePosition = `\r\nvec4 unquantizePosition(vec3 pos, vec3 origin, vec3 scale) { return vec4(origin + scale * pos, 1.0); }\r\n`;\r\n\r\nconst computeQuantizedPosition = `\r\nvec4 computeVertexPosition(vec3 pos) { return unquantizePosition(pos, u_qOrigin, u_qScale); }\r\n`;\r\n\r\n// Need to read 2 rgba values to obtain 6 16-bit integers for position\r\nconst computeVertexPositionFromLUT = `\r\nvec4 computeVertexPosition(vec3 encodedIndex) {\r\n vec3 qpos = vec3(decodeUInt16(g_vertLutData0.xy), decodeUInt16(g_vertLutData0.zw), decodeUInt16(g_vertLutData1.xy));\r\n g_featureAndMaterialIndex = g_vertLutData2;\r\n return unquantizePosition(qpos, u_qOrigin, u_qScale);\r\n}\r\n`;\r\n\r\nconst computeUnquantizedPosition1 = `\r\nvec4 computeVertexPosition(vec3 encodedIndex) {\r\n vec3 pf[4];\r\n pf[0] = g_vertLutData0.xyz;\r\n g_featureAndMaterialIndex.x = g_vertLutData0.w;\r\n pf[1] = g_vertLutData1.xyz;\r\n g_featureAndMaterialIndex.y = g_vertLutData1.w;\r\n pf[2] = g_vertLutData2.xyz;\r\n g_featureAndMaterialIndex.z = g_vertLutData2.w;\r\n pf[3] = g_vertLutData3.xyz;\r\n g_featureAndMaterialIndex.w = g_vertLutData3.w;\r\n return vec4(decode3Float32(pf), 1.0);\r\n}\r\n`;\r\n\r\nconst computeUnquantizedPosition2 = `\r\nvec4 computeVertexPosition(vec3 encodedIndex) {\r\n uvec3 vux = uvec3(g_vertLutData0.xyz);\r\n g_featureAndMaterialIndex.x = g_vertLutData0.w;\r\n uvec3 vuy = uvec3(g_vertLutData1.xyz);\r\n g_featureAndMaterialIndex.y = g_vertLutData1.w;\r\n uvec3 vuz = uvec3(g_vertLutData2.xyz);\r\n g_featureAndMaterialIndex.z = g_vertLutData2.w;\r\n uvec3 vuw = uvec3(g_vertLutData3.xyz);\r\n g_featureAndMaterialIndex.w = g_vertLutData3.w;\r\n uvec3 u = (vuw << 24) | (vuz << 16) | (vuy << 8) | vux;\r\n return vec4(uintBitsToFloat(u), 1.0);\r\n}\r\n`;\r\n\r\nconst computeLineWeight = \"\\nfloat computeLineWeight() { return g_lineWeight; }\\n\";\r\nconst computeLineCode = \"\\nfloat computeLineCode() { return g_lineCode; }\\n\";\r\n\r\nexport function addSamplePosition(vert: VertexShaderBuilder): void {\r\n vert.addFunction(getSamplePosition(vert.positionType));\r\n}\r\n\r\nfunction getSamplePosition(type: PositionType): string {\r\n const prelude = `\r\n vec4 samplePosition(float index) {\r\n vec2 tc = compute_vert_coords(index);`;\r\n\r\n if (\"quantized\" === type) {\r\n return `\r\n ${prelude}\r\n vec4 e0 = floor(TEXTURE(u_vertLUT, tc) * 255.0 + 0.5);\r\n tc.x += g_vert_stepX;\r\n vec4 e1 = floor(TEXTURE(u_vertLUT, tc) * 255.0 + 0.5);\r\n vec3 qpos = vec3(decodeUInt16(e0.xy), decodeUInt16(e0.zw), decodeUInt16(e1.xy));\r\n return unquantizePosition(qpos, u_qOrigin, u_qScale);\r\n }\r\n `;\r\n }\r\n\r\n if (System.instance.capabilities.isWebGL2) {\r\n return `\r\n ${prelude}\r\n uvec3 vux = uvec3(floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5));\r\n tc.x += g_vert_stepX;\r\n uvec3 vuy = uvec3(floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5));\r\n tc.x += g_vert_stepX;\r\n uvec3 vuz = uvec3(floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5));\r\n tc.x += g_vert_stepX;\r\n uvec3 vuw = uvec3(floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5));\r\n uvec3 u = (vuw << 24) | (vuz << 16) | (vuy << 8) | vux;\r\n return vec4(uintBitsToFloat(u), 1.0);\r\n }`;\r\n }\r\n\r\n return `\r\n ${prelude}\r\n vec3 pf[4];\r\n pf[0] = floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5);\r\n tc.x += g_vert_stepX;\r\n pf[1] = floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5);\r\n tc.x += g_vert_stepX;\r\n pf[2] = floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5);\r\n tc.x += g_vert_stepX;\r\n pf[3] = floor(TEXTURE(u_vertLUT, tc).xyz * 255.0 + 0.5);\r\n return vec4(decode3Float32(pf), 1.0);\r\n }`;\r\n}\r\n\r\n/** @internal */\r\nexport function addModelViewProjectionMatrix(vert: VertexShaderBuilder): void {\r\n if (vert.usesInstancedGeometry) {\r\n addModelViewMatrix(vert);\r\n addProjectionMatrix(vert);\r\n vert.addGlobal(\"g_mvp\", VariableType.Mat4);\r\n vert.addInitializer(\"g_mvp = u_proj * g_mv;\");\r\n } else {\r\n vert.addUniform(\"u_mvp\", VariableType.Mat4, (prog) => {\r\n prog.addGraphicUniform(\"u_mvp\", (uniform, params) => {\r\n params.target.uniforms.branch.bindModelViewProjectionMatrix(uniform, params.geometry, params.isViewCoords);\r\n });\r\n });\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function addProjectionMatrix(vert: VertexShaderBuilder): void {\r\n vert.addUniform(\"u_proj\", VariableType.Mat4, (prog) => {\r\n prog.addProgramUniform(\"u_proj\", (uniform, params) => {\r\n params.bindProjectionMatrix(uniform);\r\n });\r\n });\r\n}\r\n\r\nconst computeInstancedRtcMatrix = `\r\n g_instancedRtcMatrix = u_instanced_rtc * g_modelMatrixRTC;\r\n`;\r\n\r\n/** @internal */\r\nexport function addInstancedRtcMatrix(vert: VertexShaderBuilder): void {\r\n if (!vert.usesInstancedGeometry)\r\n return;\r\n\r\n assert(undefined !== vert.find(\"g_modelMatrixRTC\")); // set up in VertexShaderBuilder constructor...\r\n vert.addUniform(\"u_instanced_rtc\", VariableType.Mat4, (prog) => {\r\n prog.addGraphicUniform(\"u_instanced_rtc\", (uniform, params) => {\r\n const modelt = params.geometry.asInstanced!.getRtcOnlyTransform();\r\n uniform.setMatrix4(Matrix4.fromTransform(modelt));\r\n });\r\n });\r\n\r\n vert.addGlobal(\"g_instancedRtcMatrix\", VariableType.Mat4);\r\n vert.addInitializer(computeInstancedRtcMatrix);\r\n}\r\n\r\n/** @internal */\r\nexport function addModelViewMatrix(vert: VertexShaderBuilder): void {\r\n const bind = (uniform: UniformHandle, params: DrawParams) => {\r\n params.target.uniforms.branch.bindModelViewMatrix(uniform, params.geometry, params.isViewCoords);\r\n };\r\n\r\n if (vert.usesInstancedGeometry) {\r\n vert.addUniform(\"u_instanced_modelView\", VariableType.Mat4, (prog) => {\r\n prog.addGraphicUniform(\"u_instanced_modelView\", bind);\r\n });\r\n\r\n vert.addGlobal(\"g_mv\", VariableType.Mat4);\r\n vert.addInitializer(\"g_mv = u_instanced_modelView * g_modelMatrixRTC;\");\r\n } else {\r\n vert.addUniform(\"u_mv\", VariableType.Mat4, (prog) => {\r\n // ###TODO: We only need 3 rows, not 4...\r\n prog.addGraphicUniform(\"u_mv\", bind);\r\n });\r\n }\r\n}\r\n\r\nconst computeNormalMatrix = `\r\n g_nmx = mat3(u_modelViewN);\r\n g_nmx[0][0] *= u_frustumScale.x;\r\n g_nmx[1][1] *= u_frustumScale.y;\r\n`;\r\n\r\nconst computeNormalMatrix2 = `\r\n g_nmx = transpose(inverse(mat3(MAT_MV)));\r\n g_nmx[0][0] *= u_frustumScale.x;\r\n g_nmx[1][1] *= u_frustumScale.y;\r\n`;\r\n\r\nconst computeNormalMatrix1Inst = `\r\n g_nmx = mat3(MAT_MV);\r\n g_nmx[0][0] *= u_frustumScale.x;\r\n g_nmx[1][1] *= u_frustumScale.y;\r\n`;\r\n\r\n/** @internal */\r\nexport function addNormalMatrix(vert: VertexShaderBuilder, instanced: IsInstanced) {\r\n vert.addGlobal(\"g_nmx\", VariableType.Mat3);\r\n vert.addUniform(\"u_frustumScale\", VariableType.Vec2, (prog) => {\r\n prog.addGraphicUniform(\"u_frustumScale\", (uniform, params) => {\r\n const scale = params.target.uniforms.branch.top.frustumScale;\r\n uniform.setUniform2fv([scale.x, scale.y]);\r\n });\r\n });\r\n\r\n if (System.instance.capabilities.isWebGL2) {\r\n vert.addInitializer(computeNormalMatrix2);\r\n } else if (IsInstanced.Yes === instanced) {\r\n vert.addInitializer(computeNormalMatrix1Inst);\r\n } else {\r\n vert.addUniform(\"u_modelViewN\", VariableType.Mat3, (prog) => {\r\n prog.addGraphicUniform(\"u_modelViewN\", (uniform, params) => {\r\n params.target.uniforms.branch.bindModelViewNTransform(uniform, params.geometry, false);\r\n });\r\n });\r\n vert.addInitializer(computeNormalMatrix);\r\n }\r\n}\r\n\r\nfunction readVertexData(index: number): string {\r\n return `g_vertLutData${index} = floor(TEXTURE(u_vertLUT, tc) * 255.0 + 0.5);`;\r\n}\r\n\r\nconst nextVertexData = \"tc.x += g_vert_stepX;\";\r\n\r\nfunction readNextVertexData(index: number): string {\r\n return `\r\n ${nextVertexData}\r\n ${readVertexData(index)}`;\r\n}\r\n\r\nconst prereadVertexDataPrelude = `\r\n vec2 tc = g_vertexBaseCoords;\r\n ${readVertexData(0)}\r\n ${readNextVertexData(1)}\r\n ${readNextVertexData(2)}\r\n`;\r\n\r\nconst prereadQuantizedVertexData = `${prereadVertexDataPrelude}\r\n if (3.0 < u_vertParams.z) {\r\n ${readNextVertexData(3)}\r\n }\r\n`;\r\n\r\nconst prereadUnquantizedVertexData = `${prereadVertexDataPrelude}\r\n ${readNextVertexData(3)}\r\n ${readNextVertexData(4)}\r\n if (5.0 < u_vertParams.z) {\r\n ${readNextVertexData(5)}\r\n }\r\n`;\r\n\r\nconst scratchLutParams = new Float32Array(4);\r\nfunction addPositionFromLUT(vert: VertexShaderBuilder) {\r\n vert.addGlobal(\"g_vertexLUTIndex\", VariableType.Float);\r\n vert.addGlobal(\"g_vertexBaseCoords\", VariableType.Vec2);\r\n\r\n const unquantized = \"unquantized\" === vert.positionType;\r\n const maxRgbaPerVert = unquantized ? 6 : 4;\r\n for (let i = 0; i < maxRgbaPerVert; i++)\r\n vert.addGlobal(`g_vertLutData${i}`, VariableType.Vec4);\r\n\r\n vert.addFunction(decodeUint24);\r\n vert.addFunction(decodeUint16);\r\n\r\n if (unquantized) {\r\n if (System.instance.capabilities.isWebGL2) {\r\n vert.addFunction(computeUnquantizedPosition2);\r\n } else {\r\n vert.addFunction(decode3Float32);\r\n vert.addFunction(computeUnquantizedPosition1);\r\n }\r\n } else {\r\n vert.addFunction(computeVertexPositionFromLUT);\r\n }\r\n\r\n vert.addUniform(\"u_vertLUT\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_vertLUT\", (uniform, params) => {\r\n (params.geometry.asLUT!).lut.texture.bindSampler(uniform, TextureUnit.VertexLUT);\r\n });\r\n });\r\n\r\n vert.addUniform(\"u_vertParams\", VariableType.Vec4, (prog) => {\r\n prog.addGraphicUniform(\"u_vertParams\", (uniform, params) => {\r\n assert(undefined !== params.geometry.asLUT);\r\n const lut = params.geometry.asLUT.lut;\r\n const lutParams = scratchLutParams;\r\n lutParams[0] = lut.texture.width;\r\n lutParams[1] = lut.texture.height;\r\n lutParams[2] = lut.numRgbaPerVertex;\r\n lutParams[3] = lut.numVertices;\r\n uniform.setUniform4fv(lutParams);\r\n });\r\n });\r\n\r\n addLookupTable(vert, \"vert\", \"u_vertParams.z\");\r\n vert.addInitializer(initializeVertLUTCoords);\r\n\r\n vert.addGlobal(\"g_featureAndMaterialIndex\", VariableType.Vec4);\r\n\r\n // Read the vertex data from the vertex table up front. Yields a consistent (if unexplainable) small performance boost.\r\n vert.addInitializer(unquantized ? prereadUnquantizedVertexData : prereadQuantizedVertexData);\r\n}\r\n\r\n/** @internal */\r\nexport function addPosition(vert: VertexShaderBuilder, fromLUT: boolean) {\r\n if (!fromLUT || \"quantized\" === vert.positionType) {\r\n vert.addFunction(unquantizePosition);\r\n vert.addUniform(\"u_qScale\", VariableType.Vec3, (prog) => {\r\n prog.addGraphicUniform(\"u_qScale\", (uniform, params) => {\r\n assert(params.geometry.usesQuantizedPositions);\r\n uniform.setUniform3fv(params.geometry.qScale);\r\n });\r\n });\r\n vert.addUniform(\"u_qOrigin\", VariableType.Vec3, (prog) => {\r\n prog.addGraphicUniform(\"u_qOrigin\", (uniform, params) => {\r\n assert(params.geometry.usesQuantizedPositions);\r\n uniform.setUniform3fv(params.geometry.qOrigin);\r\n });\r\n });\r\n }\r\n\r\n if (!fromLUT) {\r\n vert.addFunction(computeQuantizedPosition);\r\n } else {\r\n addPositionFromLUT(vert);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function addAlpha(vert: VertexShaderBuilder): void {\r\n vert.addUniform(\"u_hasAlpha\", VariableType.Float, (prog) => {\r\n prog.addGraphicUniform(\"u_hasAlpha\", (uniform, params) => {\r\n uniform.setUniform1f(Pass.rendersTranslucent(params.geometry.getPass(params.target)) ? 1 : 0);\r\n });\r\n });\r\n}\r\n\r\n/** @internal */\r\nexport function addLineWeight(vert: VertexShaderBuilder): void {\r\n vert.addUniform(\"u_lineWeight\", VariableType.Float, (prog) => {\r\n prog.addGraphicUniform(\"u_lineWeight\", (attr, params) => {\r\n attr.setUniform1f(params.geometry.getLineWeight(params.programParams));\r\n });\r\n });\r\n\r\n vert.addGlobal(\"g_lineWeight\", VariableType.Float);\r\n if (vert.usesInstancedGeometry) {\r\n addInstanceOverrides(vert);\r\n vert.addInitializer(\"g_lineWeight = mix(u_lineWeight, a_instanceOverrides.g, extractInstanceBit(kOvrBit_Weight));\");\r\n } else {\r\n vert.addInitializer(\"g_lineWeight = u_lineWeight;\");\r\n }\r\n\r\n vert.addFunction(computeLineWeight);\r\n}\r\n\r\n/** @internal */\r\nexport function replaceLineWeight(vert: VertexShaderBuilder, func: string): void {\r\n vert.replaceFunction(computeLineWeight, func);\r\n}\r\n\r\n/** @internal */\r\nexport function addLineCode(vert: VertexShaderBuilder): void {\r\n vert.addUniform(\"u_lineCode\", VariableType.Float, (prog) => {\r\n prog.addGraphicUniform(\"u_lineCode\", (attr, params) => {\r\n attr.setUniform1f(params.geometry.getLineCode(params.programParams));\r\n });\r\n });\r\n\r\n vert.addGlobal(\"g_lineCode\", VariableType.Float);\r\n if (vert.usesInstancedGeometry) {\r\n addInstanceOverrides(vert);\r\n vert.addInitializer(\"g_lineCode = mix(u_lineCode, a_instanceOverrides.b, extractInstanceBit(kOvrBit_LineCode));\");\r\n } else {\r\n vert.addInitializer(\"g_lineCode = u_lineCode;\");\r\n }\r\n\r\n vert.addFunction(computeLineCode);\r\n}\r\n\r\n/** @internal */\r\nexport function replaceLineCode(vert: VertexShaderBuilder, func: string): void {\r\n vert.replaceFunction(computeLineCode, func);\r\n}\r\n\r\n// This vertex belongs to a triangle which should not be rendered. Produce a degenerate triangle.\r\n// Also place it outside NDC range (for GL_POINTS)\r\nconst discardVertex = ` {\r\n gl_Position = vec4(2.0, 2.0, 2.0, 1.0);\r\n return;\r\n }\r\n`;\r\n\r\n/** @internal */\r\nexport const earlyVertexDiscard = ` if (checkForEarlyDiscard(rawPosition))${discardVertex}`;\r\n/** @internal */\r\nexport const vertexDiscard = ` if (checkForDiscard())${discardVertex}`;\r\n/** @internal */\r\nexport const lateVertexDiscard = ` if (checkForLateDiscard())${discardVertex}`;\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClassifierTileTree.d.ts","sourceRoot":"","sources":["../../../src/tile/ClassifierTileTree.ts"],"names":[],"mappings":"AAQA,OAAO,EAAmG,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACjM,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAC4G,iBAAiB,EACnI,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ClassifierTileTree.d.ts","sourceRoot":"","sources":["../../../src/tile/ClassifierTileTree.ts"],"names":[],"mappings":"AAQA,OAAO,EAAmG,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACjM,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAC4G,iBAAiB,EACnI,MAAM,YAAY,CAAC;AAiEpB,gBAAgB;AAChB,8BAAsB,kCAAmC,SAAQ,iBAAiB;IAChF,aAAoB,QAAQ,IAAI,OAAO,CAAC;IACxC,aAAoB,gBAAgB,IAAI,iBAAiB,GAAG,SAAS,CAAC;IACtE,IAAW,QAAQ,YAAoB,CAAG,6EAA6E;IACvH,aAAoB,SAAS,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9D,IAAW,YAAY,IAAI,MAAM,GAAG,SAAS,CAAsB;CACpE;AAuFD,gBAAgB;AAChB,wBAAgB,iCAAiC,CAAC,WAAW,EAAE,kBAAkB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,GAAG,iBAAiB,GAAG,kCAAkC,CAEzN"}
|
|
@@ -40,13 +40,12 @@ class ClassifierTreeSupplier {
|
|
|
40
40
|
return undefined;
|
|
41
41
|
const idStr = (0, core_common_1.iModelTileTreeIdToString)(id.modelId, id, IModelApp_1.IModelApp.tileAdmin);
|
|
42
42
|
const props = await IModelApp_1.IModelApp.tileAdmin.requestTileTreeProps(iModel, idStr);
|
|
43
|
-
const
|
|
44
|
-
|
|
43
|
+
const params = (0, internal_1.iModelTileTreeParamsFromJSON)(props, iModel, id.modelId, {
|
|
44
|
+
edges: false,
|
|
45
45
|
allowInstancing: false,
|
|
46
46
|
is3d: true,
|
|
47
47
|
batchType: id.type,
|
|
48
|
-
};
|
|
49
|
-
const params = (0, internal_1.iModelTileTreeParamsFromJSON)(props, iModel, id.modelId, options);
|
|
48
|
+
});
|
|
50
49
|
return new internal_1.IModelTileTree(params, id);
|
|
51
50
|
}
|
|
52
51
|
getOwner(id, iModel) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClassifierTileTree.js","sourceRoot":"","sources":["../../../src/tile/ClassifierTileTree.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\nimport { compareStrings, compareStringsOrUndefined, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { BatchType, ClassifierTileTreeId, compareIModelTileTreeIds, iModelTileTreeIdToString, RenderMode, SpatialClassifier, SpatialClassifiers, ViewFlagsProperties } from \"@itwin/core-common\";\r\nimport { DisplayStyleState } from \"../DisplayStyleState\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { GeometricModelState } from \"../ModelState\";\r\nimport { SceneContext } from \"../ViewContext\";\r\nimport { ViewState } from \"../ViewState\";\r\nimport {\r\n DisclosedTileTreeSet, IModelTileTree, iModelTileTreeParamsFromJSON, TileTree, TileTreeLoadStatus, TileTreeOwner, TileTreeReference, TileTreeSupplier,\r\n} from \"./internal\";\r\n\r\ninterface ClassifierTreeId extends ClassifierTileTreeId {\r\n modelId: Id64String;\r\n}\r\n\r\nfunction compareIds(lhs: ClassifierTreeId, rhs: ClassifierTreeId): number {\r\n let cmp = compareStrings(lhs.modelId, rhs.modelId);\r\n if (0 === cmp)\r\n cmp = compareStringsOrUndefined(lhs.animationId, rhs.animationId);\r\n\r\n return 0 === cmp ? compareIModelTileTreeIds(lhs, rhs) : cmp;\r\n}\r\n\r\nclass ClassifierTreeSupplier implements TileTreeSupplier {\r\n private readonly _nonexistentTreeOwner = {\r\n tileTree: undefined,\r\n loadStatus: TileTreeLoadStatus.NotFound,\r\n load: () => undefined,\r\n dispose: () => undefined,\r\n loadTree: async () => undefined,\r\n iModel: undefined as unknown as IModelConnection,\r\n };\r\n\r\n public compareTileTreeIds(lhs: ClassifierTreeId, rhs: ClassifierTreeId): number {\r\n return compareIds(lhs, rhs);\r\n }\r\n\r\n public async createTileTree(id: ClassifierTreeId, iModel: IModelConnection): Promise<TileTree | undefined> {\r\n await iModel.models.load(id.modelId);\r\n const model = iModel.models.getLoaded(id.modelId);\r\n if (undefined === model || !(model instanceof GeometricModelState))\r\n return undefined;\r\n\r\n const idStr = iModelTileTreeIdToString(id.modelId, id, IModelApp.tileAdmin);\r\n const props = await IModelApp.tileAdmin.requestTileTreeProps(iModel, idStr);\r\n\r\n const options = {\r\n edgesRequired: false,\r\n allowInstancing: false,\r\n is3d: true,\r\n batchType: id.type,\r\n };\r\n\r\n const params = iModelTileTreeParamsFromJSON(props, iModel, id.modelId, options);\r\n return new IModelTileTree(params, id);\r\n }\r\n\r\n public getOwner(id: ClassifierTreeId, iModel: IModelConnection): TileTreeOwner {\r\n return Id64.isValid(id.modelId) ? iModel.tiles.getTileTreeOwner(id, this) : this._nonexistentTreeOwner;\r\n }\r\n\r\n public addModelsAnimatedByScript(modelIds: Set<Id64String>, scriptSourceId: Id64String, trees: Iterable<{ id: ClassifierTreeId, owner: TileTreeOwner }>): void {\r\n for (const tree of trees)\r\n if (tree.id.animationId === scriptSourceId)\r\n modelIds.add(tree.id.modelId);\r\n }\r\n\r\n public addSpatialModels(modelIds: Set<Id64String>, trees: Iterable<{ id: ClassifierTreeId, owner: TileTreeOwner }>): void {\r\n for (const tree of trees)\r\n modelIds.add(tree.id.modelId);\r\n }\r\n}\r\n\r\nconst classifierTreeSupplier = new ClassifierTreeSupplier();\r\n\r\n/** @internal */\r\nexport abstract class SpatialClassifierTileTreeReference extends TileTreeReference {\r\n public abstract get isPlanar(): boolean;\r\n public abstract get activeClassifier(): SpatialClassifier | undefined;\r\n public get isOpaque() { return false; } /** When referenced as a map layer reference, BIM models are never opaque. */\r\n public abstract get viewFlags(): Partial<ViewFlagsProperties>;\r\n public get transparency(): number | undefined { return undefined; }\r\n}\r\n\r\n/** @internal */\r\nclass ClassifierTreeReference extends SpatialClassifierTileTreeReference {\r\n private _id: ClassifierTreeId;\r\n private readonly _classifiers: SpatialClassifiers;\r\n private readonly _source: ViewState | DisplayStyleState;\r\n private readonly _iModel: IModelConnection;\r\n private readonly _classifiedTree: TileTreeReference;\r\n private _owner: TileTreeOwner;\r\n\r\n public constructor(classifiers: SpatialClassifiers, classifiedTree: TileTreeReference, iModel: IModelConnection, source: ViewState | DisplayStyleState) {\r\n super();\r\n this._id = createClassifierId(classifiers.active, source);\r\n this._source = source;\r\n this._iModel = iModel;\r\n this._classifiers = classifiers;\r\n this._classifiedTree = classifiedTree;\r\n this._owner = classifierTreeSupplier.getOwner(this._id, iModel);\r\n }\r\n\r\n public get classifiers(): SpatialClassifiers { return this._classifiers; }\r\n public get activeClassifier(): SpatialClassifier | undefined { return this.classifiers.active; }\r\n\r\n public override get castsShadows() {\r\n return false;\r\n }\r\n\r\n public get treeOwner(): TileTreeOwner {\r\n const newId = createClassifierId(this._classifiers.active, this._source);\r\n if (0 !== compareIds(this._id, newId)) {\r\n this._id = newId;\r\n this._owner = classifierTreeSupplier.getOwner(this._id, this._iModel);\r\n }\r\n\r\n return this._owner;\r\n }\r\n\r\n public override discloseTileTrees(trees: DisclosedTileTreeSet): void {\r\n // NB: We do NOT call super because we don't use our tree if no classifier is active.\r\n trees.disclose(this._classifiedTree);\r\n\r\n const classifier = this.activeClassifier;\r\n const classifierTree = undefined !== classifier ? this.treeOwner.tileTree : undefined;\r\n if (undefined !== classifierTree)\r\n trees.add(classifierTree);\r\n }\r\n public get isPlanar() { return BatchType.PlanarClassifier === this._id.type; }\r\n\r\n public get viewFlags(): Partial<ViewFlagsProperties> {\r\n return {\r\n renderMode: RenderMode.SmoothShade,\r\n transparency: true, // Igored for point clouds as they don't support transparency.\r\n textures: false,\r\n lighting: false,\r\n shadows: false,\r\n monochrome: false,\r\n materials: false,\r\n ambientOcclusion: false,\r\n visibleEdges: false,\r\n hiddenEdges: false,\r\n };\r\n }\r\n\r\n // Add volume classifiers to scene (planar classifiers are added seperately.)\r\n public override addToScene(context: SceneContext): void {\r\n if (this.isPlanar)\r\n return;\r\n\r\n const classifiedTree = this._classifiedTree.treeOwner.load();\r\n if (undefined === classifiedTree)\r\n return;\r\n\r\n const classifier = this._classifiers.active;\r\n if (undefined === classifier)\r\n return;\r\n\r\n const classifierTree = this.treeOwner.load();\r\n if (undefined === classifierTree)\r\n return;\r\n\r\n context.setVolumeClassifier(classifier, classifiedTree.modelId);\r\n super.addToScene(context);\r\n }\r\n\r\n}\r\n\r\n/** @internal */\r\nexport function createClassifierTileTreeReference(classifiers: SpatialClassifiers, classifiedTree: TileTreeReference, iModel: IModelConnection, source: ViewState | DisplayStyleState): SpatialClassifierTileTreeReference {\r\n return new ClassifierTreeReference(classifiers, classifiedTree, iModel, source);\r\n}\r\n\r\nfunction createClassifierId(classifier: SpatialClassifier | undefined, source: ViewState | DisplayStyleState | undefined): ClassifierTreeId {\r\n if (undefined === classifier)\r\n return { modelId: Id64.invalid, type: BatchType.PlanarClassifier, expansion: 0, animationId: undefined };\r\n\r\n const type = classifier.flags.isVolumeClassifier ? BatchType.VolumeClassifier : BatchType.PlanarClassifier;\r\n const script = source?.scheduleState;\r\n const animationId = (undefined !== script) ? script.getModelAnimationId(classifier.modelId) : undefined;\r\n return {\r\n modelId: classifier.modelId,\r\n type,\r\n expansion: classifier.expand,\r\n animationId,\r\n };\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ClassifierTileTree.js","sourceRoot":"","sources":["../../../src/tile/ClassifierTileTree.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\nimport { compareStrings, compareStringsOrUndefined, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { BatchType, ClassifierTileTreeId, compareIModelTileTreeIds, iModelTileTreeIdToString, RenderMode, SpatialClassifier, SpatialClassifiers, ViewFlagsProperties } from \"@itwin/core-common\";\r\nimport { DisplayStyleState } from \"../DisplayStyleState\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { GeometricModelState } from \"../ModelState\";\r\nimport { SceneContext } from \"../ViewContext\";\r\nimport { ViewState } from \"../ViewState\";\r\nimport {\r\n DisclosedTileTreeSet, IModelTileTree, iModelTileTreeParamsFromJSON, TileTree, TileTreeLoadStatus, TileTreeOwner, TileTreeReference, TileTreeSupplier,\r\n} from \"./internal\";\r\n\r\ninterface ClassifierTreeId extends ClassifierTileTreeId {\r\n modelId: Id64String;\r\n}\r\n\r\nfunction compareIds(lhs: ClassifierTreeId, rhs: ClassifierTreeId): number {\r\n let cmp = compareStrings(lhs.modelId, rhs.modelId);\r\n if (0 === cmp)\r\n cmp = compareStringsOrUndefined(lhs.animationId, rhs.animationId);\r\n\r\n return 0 === cmp ? compareIModelTileTreeIds(lhs, rhs) : cmp;\r\n}\r\n\r\nclass ClassifierTreeSupplier implements TileTreeSupplier {\r\n private readonly _nonexistentTreeOwner = {\r\n tileTree: undefined,\r\n loadStatus: TileTreeLoadStatus.NotFound,\r\n load: () => undefined,\r\n dispose: () => undefined,\r\n loadTree: async () => undefined,\r\n iModel: undefined as unknown as IModelConnection,\r\n };\r\n\r\n public compareTileTreeIds(lhs: ClassifierTreeId, rhs: ClassifierTreeId): number {\r\n return compareIds(lhs, rhs);\r\n }\r\n\r\n public async createTileTree(id: ClassifierTreeId, iModel: IModelConnection): Promise<TileTree | undefined> {\r\n await iModel.models.load(id.modelId);\r\n const model = iModel.models.getLoaded(id.modelId);\r\n if (undefined === model || !(model instanceof GeometricModelState))\r\n return undefined;\r\n\r\n const idStr = iModelTileTreeIdToString(id.modelId, id, IModelApp.tileAdmin);\r\n const props = await IModelApp.tileAdmin.requestTileTreeProps(iModel, idStr);\r\n\r\n const params = iModelTileTreeParamsFromJSON(props, iModel, id.modelId, {\r\n edges: false,\r\n allowInstancing: false,\r\n is3d: true,\r\n batchType: id.type,\r\n });\r\n\r\n return new IModelTileTree(params, id);\r\n }\r\n\r\n public getOwner(id: ClassifierTreeId, iModel: IModelConnection): TileTreeOwner {\r\n return Id64.isValid(id.modelId) ? iModel.tiles.getTileTreeOwner(id, this) : this._nonexistentTreeOwner;\r\n }\r\n\r\n public addModelsAnimatedByScript(modelIds: Set<Id64String>, scriptSourceId: Id64String, trees: Iterable<{ id: ClassifierTreeId, owner: TileTreeOwner }>): void {\r\n for (const tree of trees)\r\n if (tree.id.animationId === scriptSourceId)\r\n modelIds.add(tree.id.modelId);\r\n }\r\n\r\n public addSpatialModels(modelIds: Set<Id64String>, trees: Iterable<{ id: ClassifierTreeId, owner: TileTreeOwner }>): void {\r\n for (const tree of trees)\r\n modelIds.add(tree.id.modelId);\r\n }\r\n}\r\n\r\nconst classifierTreeSupplier = new ClassifierTreeSupplier();\r\n\r\n/** @internal */\r\nexport abstract class SpatialClassifierTileTreeReference extends TileTreeReference {\r\n public abstract get isPlanar(): boolean;\r\n public abstract get activeClassifier(): SpatialClassifier | undefined;\r\n public get isOpaque() { return false; } /** When referenced as a map layer reference, BIM models are never opaque. */\r\n public abstract get viewFlags(): Partial<ViewFlagsProperties>;\r\n public get transparency(): number | undefined { return undefined; }\r\n}\r\n\r\n/** @internal */\r\nclass ClassifierTreeReference extends SpatialClassifierTileTreeReference {\r\n private _id: ClassifierTreeId;\r\n private readonly _classifiers: SpatialClassifiers;\r\n private readonly _source: ViewState | DisplayStyleState;\r\n private readonly _iModel: IModelConnection;\r\n private readonly _classifiedTree: TileTreeReference;\r\n private _owner: TileTreeOwner;\r\n\r\n public constructor(classifiers: SpatialClassifiers, classifiedTree: TileTreeReference, iModel: IModelConnection, source: ViewState | DisplayStyleState) {\r\n super();\r\n this._id = createClassifierId(classifiers.active, source);\r\n this._source = source;\r\n this._iModel = iModel;\r\n this._classifiers = classifiers;\r\n this._classifiedTree = classifiedTree;\r\n this._owner = classifierTreeSupplier.getOwner(this._id, iModel);\r\n }\r\n\r\n public get classifiers(): SpatialClassifiers { return this._classifiers; }\r\n public get activeClassifier(): SpatialClassifier | undefined { return this.classifiers.active; }\r\n\r\n public override get castsShadows() {\r\n return false;\r\n }\r\n\r\n public get treeOwner(): TileTreeOwner {\r\n const newId = createClassifierId(this._classifiers.active, this._source);\r\n if (0 !== compareIds(this._id, newId)) {\r\n this._id = newId;\r\n this._owner = classifierTreeSupplier.getOwner(this._id, this._iModel);\r\n }\r\n\r\n return this._owner;\r\n }\r\n\r\n public override discloseTileTrees(trees: DisclosedTileTreeSet): void {\r\n // NB: We do NOT call super because we don't use our tree if no classifier is active.\r\n trees.disclose(this._classifiedTree);\r\n\r\n const classifier = this.activeClassifier;\r\n const classifierTree = undefined !== classifier ? this.treeOwner.tileTree : undefined;\r\n if (undefined !== classifierTree)\r\n trees.add(classifierTree);\r\n }\r\n public get isPlanar() { return BatchType.PlanarClassifier === this._id.type; }\r\n\r\n public get viewFlags(): Partial<ViewFlagsProperties> {\r\n return {\r\n renderMode: RenderMode.SmoothShade,\r\n transparency: true, // Igored for point clouds as they don't support transparency.\r\n textures: false,\r\n lighting: false,\r\n shadows: false,\r\n monochrome: false,\r\n materials: false,\r\n ambientOcclusion: false,\r\n visibleEdges: false,\r\n hiddenEdges: false,\r\n };\r\n }\r\n\r\n // Add volume classifiers to scene (planar classifiers are added seperately.)\r\n public override addToScene(context: SceneContext): void {\r\n if (this.isPlanar)\r\n return;\r\n\r\n const classifiedTree = this._classifiedTree.treeOwner.load();\r\n if (undefined === classifiedTree)\r\n return;\r\n\r\n const classifier = this._classifiers.active;\r\n if (undefined === classifier)\r\n return;\r\n\r\n const classifierTree = this.treeOwner.load();\r\n if (undefined === classifierTree)\r\n return;\r\n\r\n context.setVolumeClassifier(classifier, classifiedTree.modelId);\r\n super.addToScene(context);\r\n }\r\n\r\n}\r\n\r\n/** @internal */\r\nexport function createClassifierTileTreeReference(classifiers: SpatialClassifiers, classifiedTree: TileTreeReference, iModel: IModelConnection, source: ViewState | DisplayStyleState): SpatialClassifierTileTreeReference {\r\n return new ClassifierTreeReference(classifiers, classifiedTree, iModel, source);\r\n}\r\n\r\nfunction createClassifierId(classifier: SpatialClassifier | undefined, source: ViewState | DisplayStyleState | undefined): ClassifierTreeId {\r\n if (undefined === classifier)\r\n return { modelId: Id64.invalid, type: BatchType.PlanarClassifier, expansion: 0, animationId: undefined };\r\n\r\n const type = classifier.flags.isVolumeClassifier ? BatchType.VolumeClassifier : BatchType.PlanarClassifier;\r\n const script = source?.scheduleState;\r\n const animationId = (undefined !== script) ? script.getModelAnimationId(classifier.modelId) : undefined;\r\n return {\r\n modelId: classifier.modelId,\r\n type,\r\n expansion: classifier.expand,\r\n animationId,\r\n };\r\n}\r\n"]}
|
|
@@ -6,6 +6,7 @@ import { TileTree } from "./internal";
|
|
|
6
6
|
/** Interface adopted by an object that contains references to [[TileTree]]s, to expose those trees.
|
|
7
7
|
* @see [[DisclosedTileTreeSet]].
|
|
8
8
|
* @public
|
|
9
|
+
* @extensions
|
|
9
10
|
*/
|
|
10
11
|
export interface TileTreeDiscloser {
|
|
11
12
|
/** Add all [[TileTree]]s referenced by this object to the set. */
|
|
@@ -13,6 +14,7 @@ export interface TileTreeDiscloser {
|
|
|
13
14
|
}
|
|
14
15
|
/** A set of [[TileTree]]s disclosed by a set of objects implementing [[TileTreeDiscloser]], used to collect references to tile trees in use by those objects.
|
|
15
16
|
* @public
|
|
17
|
+
* @extensions
|
|
16
18
|
*/
|
|
17
19
|
export declare class DisclosedTileTreeSet implements Iterable<TileTree> {
|
|
18
20
|
private readonly _processed;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisclosedTileTreeSet.d.ts","sourceRoot":"","sources":["../../../src/tile/DisclosedTileTreeSet.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAc,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC
|
|
1
|
+
{"version":3,"file":"DisclosedTileTreeSet.d.ts","sourceRoot":"","sources":["../../../src/tile/DisclosedTileTreeSet.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAc,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,iBAAiB,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC1D;AAED;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,QAAQ,CAAC,QAAQ,CAAC;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAE9D;;OAEG;gBACgB,UAAU,CAAC,EAAE,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAIrE,wEAAwE;IACjE,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAInC,0CAA0C;IACnC,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAIhC;;OAEG;IACI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC;IAI9C,sCAAsC;IACtC,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,+DAA+D;IACxD,QAAQ,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAQnD,sCAAsC;IAC/B,KAAK,IAAI,IAAI;CAIrB"}
|
|
@@ -11,6 +11,7 @@ exports.DisclosedTileTreeSet = void 0;
|
|
|
11
11
|
const core_bentley_1 = require("@itwin/core-bentley");
|
|
12
12
|
/** A set of [[TileTree]]s disclosed by a set of objects implementing [[TileTreeDiscloser]], used to collect references to tile trees in use by those objects.
|
|
13
13
|
* @public
|
|
14
|
+
* @extensions
|
|
14
15
|
*/
|
|
15
16
|
class DisclosedTileTreeSet {
|
|
16
17
|
/** Construct a new set.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisclosedTileTreeSet.js","sourceRoot":"","sources":["../../../src/tile/DisclosedTileTreeSet.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAAoE;
|
|
1
|
+
{"version":3,"file":"DisclosedTileTreeSet.js","sourceRoot":"","sources":["../../../src/tile/DisclosedTileTreeSet.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAAoE;AAapE;;;GAGG;AACH,MAAa,oBAAoB;IAI/B;;OAEG;IACH,YAAmB,UAAkD;QANpD,eAAU,GAAG,IAAI,GAAG,EAAqB,CAAC;QAOzD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,yBAAU,CAAW,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAY,CAAC;IACxF,CAAC;IAED,wEAAwE;IACjE,GAAG,CAAC,IAAc;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,0CAA0C;IACnC,GAAG,CAAC,IAAc;QACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxC,CAAC;IAED,sCAAsC;IACtC,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,+DAA+D;IACxD,QAAQ,CAAC,SAA4B;QAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;YAChC,OAAO;QAET,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/B,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,sCAAsC;IAC/B,KAAK;QACV,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF;AA/CD,oDA+CC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { OrderedComparator, OrderedSet } from \"@itwin/core-bentley\";\r\nimport { TileTree } from \"./internal\";\r\n\r\n/** Interface adopted by an object that contains references to [[TileTree]]s, to expose those trees.\r\n * @see [[DisclosedTileTreeSet]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface TileTreeDiscloser {\r\n /** Add all [[TileTree]]s referenced by this object to the set. */\r\n discloseTileTrees: (trees: DisclosedTileTreeSet) => void;\r\n}\r\n\r\n/** A set of [[TileTree]]s disclosed by a set of objects implementing [[TileTreeDiscloser]], used to collect references to tile trees in use by those objects.\r\n * @public\r\n * @extensions\r\n */\r\nexport class DisclosedTileTreeSet implements Iterable<TileTree> {\r\n private readonly _processed = new Set<TileTreeDiscloser>();\r\n private readonly _trees: Set<TileTree> | OrderedSet<TileTree>;\r\n\r\n /** Construct a new set.\r\n * @param comparator If supplied, a comparison function used to determine the order of iteration of the set; otherwise, iteration will proceed in insertion order.\r\n */\r\n public constructor(comparator?: OrderedComparator<TileTree, TileTree>) {\r\n this._trees = comparator ? new OrderedSet<TileTree>(comparator) : new Set<TileTree>();\r\n }\r\n\r\n /** Returns true if the specified tree has been [[add]]ed to the set. */\r\n public has(tree: TileTree): boolean {\r\n return this._trees.has(tree);\r\n }\r\n\r\n /** Adds the specified tree to the set. */\r\n public add(tree: TileTree): void {\r\n this._trees.add(tree);\r\n }\r\n\r\n /** Iterates all trees in the set.\r\n * @note Do not [[add]] to the set during iteration.\r\n */\r\n public [Symbol.iterator](): Iterator<TileTree> {\r\n return this._trees[Symbol.iterator]();\r\n }\r\n\r\n /** The number of trees in the set. */\r\n public get size(): number {\r\n return this._trees.size;\r\n }\r\n\r\n /** Add all tile trees referenced by `discloser` to the set. */\r\n public disclose(discloser: TileTreeDiscloser): void {\r\n if (this._processed.has(discloser))\r\n return;\r\n\r\n this._processed.add(discloser);\r\n discloser.discloseTileTrees(this);\r\n }\r\n\r\n /** Clear the contents of this set. */\r\n public clear(): void {\r\n this._processed.clear();\r\n this._trees.clear();\r\n }\r\n}\r\n"]}
|
|
@@ -275,7 +275,9 @@ class GraphicsTile extends internal_1.Tile {
|
|
|
275
275
|
formatVersion: idProvider.majorFormatVersion,
|
|
276
276
|
location: this.tree.iModelTransform.toJSON(),
|
|
277
277
|
contentFlags: idProvider.contentFlags,
|
|
278
|
-
omitEdges: !this.tree.
|
|
278
|
+
omitEdges: !this.tree.edgeOptions,
|
|
279
|
+
edgeType: this.tree.edgeOptions && this.tree.edgeOptions.indexed ? 2 : 1,
|
|
280
|
+
smoothPolyfaceEdges: this.tree.edgeOptions && this.tree.edgeOptions.smooth,
|
|
279
281
|
clipToProjectExtents: true,
|
|
280
282
|
sectionCut: this.tree.stringifiedSectionClip,
|
|
281
283
|
};
|
|
@@ -297,7 +299,7 @@ class GraphicsTile extends internal_1.Tile {
|
|
|
297
299
|
const reader = internal_1.ImdlReader.create({
|
|
298
300
|
stream, iModel, modelId, is3d, system, isCanceled, containsTransformNodes,
|
|
299
301
|
type: tree.batchType,
|
|
300
|
-
loadEdges: tree.
|
|
302
|
+
loadEdges: false !== tree.edgeOptions,
|
|
301
303
|
options: { tileId: this.contentId },
|
|
302
304
|
});
|
|
303
305
|
let content = { isLeaf: true };
|