@itwin/core-frontend 5.0.0-dev.57 → 5.0.0-dev.59
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/lib/cjs/DrawingViewState.js +1 -1
- package/lib/cjs/DrawingViewState.js.map +1 -1
- package/lib/cjs/EnvironmentDecorations.d.ts +1 -1
- package/lib/cjs/EnvironmentDecorations.d.ts.map +1 -1
- package/lib/cjs/EnvironmentDecorations.js +1 -2
- package/lib/cjs/EnvironmentDecorations.js.map +1 -1
- package/lib/cjs/NoRenderApp.d.ts +1 -1
- package/lib/cjs/NoRenderApp.d.ts.map +1 -1
- package/lib/cjs/NoRenderApp.js.map +1 -1
- package/lib/cjs/SheetViewState.js +1 -1
- package/lib/cjs/SheetViewState.js.map +1 -1
- package/lib/cjs/ViewContext.d.ts +3 -2
- package/lib/cjs/ViewContext.d.ts.map +1 -1
- package/lib/cjs/ViewContext.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +17 -2
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +13 -11
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/common/imdl/ParseImdlDocument.d.ts.map +1 -1
- package/lib/cjs/common/imdl/ParseImdlDocument.js +2 -5
- package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
- package/lib/cjs/core-frontend.d.ts +1 -5
- package/lib/cjs/core-frontend.d.ts.map +1 -1
- package/lib/cjs/core-frontend.js +55 -5
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/internal/cross-package.d.ts +4 -0
- package/lib/cjs/internal/cross-package.d.ts.map +1 -1
- package/lib/cjs/internal/cross-package.js +27 -1
- package/lib/cjs/internal/cross-package.js.map +1 -1
- package/lib/cjs/internal/render/AnimationBranchState.d.ts +24 -0
- package/lib/cjs/internal/render/AnimationBranchState.d.ts.map +1 -0
- package/lib/cjs/internal/render/AnimationBranchState.js +47 -0
- package/lib/cjs/internal/render/AnimationBranchState.js.map +1 -0
- package/lib/cjs/internal/render/FrameStatsCollector.d.ts +24 -0
- package/lib/cjs/internal/render/FrameStatsCollector.d.ts.map +1 -0
- package/lib/cjs/internal/render/FrameStatsCollector.js +87 -0
- package/lib/cjs/internal/render/FrameStatsCollector.js.map +1 -0
- package/lib/cjs/internal/render/GraphicBranchFrustum.d.ts +12 -0
- package/lib/cjs/internal/render/GraphicBranchFrustum.d.ts.map +1 -0
- package/lib/cjs/internal/render/GraphicBranchFrustum.js +10 -0
- package/lib/cjs/internal/render/GraphicBranchFrustum.js.map +1 -0
- package/lib/cjs/internal/render/GraphicTemplateImpl.d.ts +47 -0
- package/lib/cjs/internal/render/GraphicTemplateImpl.d.ts.map +1 -0
- package/lib/cjs/internal/render/GraphicTemplateImpl.js +40 -0
- package/lib/cjs/internal/render/GraphicTemplateImpl.js.map +1 -0
- package/lib/cjs/internal/render/MockRender.d.ts +160 -0
- package/lib/cjs/internal/render/MockRender.d.ts.map +1 -0
- package/lib/cjs/internal/render/MockRender.js +211 -0
- package/lib/cjs/internal/render/MockRender.js.map +1 -0
- package/lib/cjs/internal/render/PrimitiveBuilder.d.ts +0 -1
- package/lib/cjs/internal/render/PrimitiveBuilder.d.ts.map +1 -1
- package/lib/cjs/internal/render/PrimitiveBuilder.js +3 -4
- package/lib/cjs/internal/render/PrimitiveBuilder.js.map +1 -1
- package/lib/cjs/internal/render/QueryVisibileFeatures.d.ts +8 -0
- package/lib/cjs/internal/render/QueryVisibileFeatures.d.ts.map +1 -0
- package/lib/cjs/internal/render/QueryVisibileFeatures.js +145 -0
- package/lib/cjs/internal/render/QueryVisibileFeatures.js.map +1 -0
- package/lib/cjs/internal/render/RealityMeshGraphicParams.d.ts +21 -0
- package/lib/cjs/internal/render/RealityMeshGraphicParams.d.ts.map +1 -0
- package/lib/cjs/internal/render/RealityMeshGraphicParams.js.map +1 -0
- package/lib/cjs/internal/render/RenderAreaPattern.d.ts +12 -0
- package/lib/cjs/internal/render/RenderAreaPattern.d.ts.map +1 -0
- package/lib/cjs/internal/render/RenderAreaPattern.js +11 -0
- package/lib/cjs/internal/render/RenderAreaPattern.js.map +1 -0
- package/lib/cjs/internal/render/RenderMaterialSource.d.ts +13 -0
- package/lib/cjs/internal/render/RenderMaterialSource.d.ts.map +1 -0
- package/lib/cjs/internal/render/RenderMaterialSource.js +10 -0
- package/lib/cjs/internal/render/RenderMaterialSource.js.map +1 -0
- package/lib/cjs/internal/render/RenderPlan.d.ts +47 -0
- package/lib/cjs/internal/render/RenderPlan.d.ts.map +1 -0
- package/lib/cjs/internal/render/RenderPlan.js +135 -0
- package/lib/cjs/internal/render/RenderPlan.js.map +1 -0
- package/lib/cjs/internal/render/RenderPlanarClassifier.d.ts +26 -0
- package/lib/cjs/internal/render/RenderPlanarClassifier.d.ts.map +1 -0
- package/lib/cjs/internal/render/RenderPlanarClassifier.js.map +1 -0
- package/lib/cjs/internal/render/RenderSkyBoxParams.d.ts +21 -0
- package/lib/cjs/internal/render/RenderSkyBoxParams.d.ts.map +1 -0
- package/lib/cjs/internal/render/RenderSkyBoxParams.js +10 -0
- package/lib/cjs/internal/render/RenderSkyBoxParams.js.map +1 -0
- package/lib/cjs/internal/render/RenderSystemDebugControl.d.ts +58 -0
- package/lib/cjs/internal/render/RenderSystemDebugControl.d.ts.map +1 -0
- package/lib/cjs/internal/render/RenderSystemDebugControl.js +38 -0
- package/lib/cjs/internal/render/RenderSystemDebugControl.js.map +1 -0
- package/lib/cjs/internal/render/RenderTargetDebugControl.d.ts +45 -0
- package/lib/cjs/internal/render/RenderTargetDebugControl.d.ts.map +1 -0
- package/lib/cjs/internal/render/RenderTargetDebugControl.js +24 -0
- package/lib/cjs/internal/render/RenderTargetDebugControl.js.map +1 -0
- package/lib/cjs/internal/render/RenderTerrain.d.ts +24 -0
- package/lib/cjs/internal/render/RenderTerrain.d.ts.map +1 -0
- package/lib/cjs/internal/render/RenderTerrain.js +38 -0
- package/lib/cjs/internal/render/RenderTerrain.js.map +1 -0
- package/lib/cjs/internal/render/RenderTextureDrape.d.ts +15 -0
- package/lib/cjs/internal/render/RenderTextureDrape.d.ts.map +1 -0
- package/lib/cjs/internal/render/RenderTextureDrape.js +15 -0
- package/lib/cjs/internal/render/RenderTextureDrape.js.map +1 -0
- package/lib/cjs/internal/render/SceneVolumeClassifier.d.ts +11 -0
- package/lib/cjs/internal/render/SceneVolumeClassifier.d.ts.map +1 -0
- package/lib/cjs/internal/render/SceneVolumeClassifier.js +10 -0
- package/lib/cjs/internal/render/SceneVolumeClassifier.js.map +1 -0
- package/lib/cjs/internal/render/UpsampleRealityMeshParams.d.ts +11 -0
- package/lib/cjs/internal/render/UpsampleRealityMeshParams.d.ts.map +1 -0
- package/lib/cjs/internal/render/UpsampleRealityMeshParams.js +204 -0
- package/lib/cjs/internal/render/UpsampleRealityMeshParams.js.map +1 -0
- package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/CachedGeometry.d.ts +1 -1
- package/lib/cjs/internal/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/GLTimer.d.ts +1 -1
- package/lib/cjs/internal/render/webgl/GLTimer.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/GLTimer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Graphic.d.ts +2 -1
- package/lib/cjs/internal/render/webgl/Graphic.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/Graphic.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Material.d.ts +3 -3
- package/lib/cjs/internal/render/webgl/Material.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/Material.js +1 -4
- package/lib/cjs/internal/render/webgl/Material.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PerformanceMetrics.d.ts +1 -1
- package/lib/cjs/internal/render/webgl/PerformanceMetrics.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/PerformanceMetrics.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarClassifier.d.ts +1 -1
- package/lib/cjs/internal/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarClassifier.js +1 -1
- package/lib/cjs/internal/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Primitive.js +3 -3
- package/lib/cjs/internal/render/webgl/Primitive.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RealityMesh.d.ts +4 -3
- package/lib/cjs/internal/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/RealityMesh.js +3 -3
- package/lib/cjs/internal/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderCommands.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ShaderProgram.js +3 -3
- package/lib/cjs/internal/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/cjs/internal/render/webgl/StyleUniforms.d.ts +1 -1
- package/lib/cjs/internal/render/webgl/StyleUniforms.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/StyleUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/System.d.ts +12 -9
- package/lib/cjs/internal/render/webgl/System.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/System.js +5 -9
- package/lib/cjs/internal/render/webgl/System.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Target.d.ts +9 -8
- package/lib/cjs/internal/render/webgl/Target.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/Target.js +12 -7
- package/lib/cjs/internal/render/webgl/Target.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TargetUniforms.d.ts +1 -1
- package/lib/cjs/internal/render/webgl/TargetUniforms.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/TargetUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TextureDrape.d.ts +1 -1
- package/lib/cjs/internal/render/webgl/TextureDrape.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/TextureDrape.js.map +1 -1
- package/lib/cjs/internal/tile/B3dmReader.d.ts +30 -0
- package/lib/cjs/internal/tile/B3dmReader.d.ts.map +1 -0
- package/lib/cjs/internal/tile/B3dmReader.js +173 -0
- package/lib/cjs/internal/tile/B3dmReader.js.map +1 -0
- package/lib/cjs/internal/tile/BatchedTileIdMap.d.ts +24 -0
- package/lib/cjs/internal/tile/BatchedTileIdMap.d.ts.map +1 -0
- package/lib/cjs/internal/tile/BatchedTileIdMap.js +55 -0
- package/lib/cjs/internal/tile/BatchedTileIdMap.js.map +1 -0
- package/lib/cjs/internal/tile/CesiumAssetProvider.d.ts +13 -0
- package/lib/cjs/internal/tile/CesiumAssetProvider.d.ts.map +1 -0
- package/lib/cjs/internal/tile/CesiumAssetProvider.js +34 -0
- package/lib/cjs/internal/tile/CesiumAssetProvider.js.map +1 -0
- package/lib/cjs/internal/tile/ClassifierTileTree.d.ts +14 -0
- package/lib/cjs/internal/tile/ClassifierTileTree.d.ts.map +1 -0
- package/lib/cjs/internal/tile/ClassifierTileTree.js +160 -0
- package/lib/cjs/internal/tile/ClassifierTileTree.js.map +1 -0
- package/lib/cjs/internal/tile/ContextShareProvider.d.ts +21 -0
- package/lib/cjs/internal/tile/ContextShareProvider.d.ts.map +1 -0
- package/lib/cjs/internal/tile/ContextShareProvider.js +136 -0
- package/lib/cjs/internal/tile/ContextShareProvider.js.map +1 -0
- package/lib/cjs/internal/tile/DynamicIModelTile.d.ts +25 -0
- package/lib/cjs/internal/tile/DynamicIModelTile.d.ts.map +1 -0
- package/lib/cjs/internal/tile/DynamicIModelTile.js +325 -0
- package/lib/cjs/internal/tile/DynamicIModelTile.js.map +1 -0
- package/lib/cjs/internal/tile/FetchCloudStorage.d.ts +14 -0
- package/lib/cjs/internal/tile/FetchCloudStorage.d.ts.map +1 -0
- package/lib/cjs/internal/tile/FetchCloudStorage.js +34 -0
- package/lib/cjs/internal/tile/FetchCloudStorage.js.map +1 -0
- package/lib/cjs/internal/tile/GraphicsCollector.d.ts +24 -0
- package/lib/cjs/internal/tile/GraphicsCollector.d.ts.map +1 -0
- package/lib/cjs/internal/tile/GraphicsCollector.js +42 -0
- package/lib/cjs/internal/tile/GraphicsCollector.js.map +1 -0
- package/lib/cjs/internal/tile/I3dmReader.d.ts +28 -0
- package/lib/cjs/internal/tile/I3dmReader.d.ts.map +1 -0
- package/lib/cjs/internal/tile/I3dmReader.js +159 -0
- package/lib/cjs/internal/tile/I3dmReader.js.map +1 -0
- package/lib/cjs/internal/tile/IModelTile.d.ts +54 -0
- package/lib/cjs/internal/tile/IModelTile.d.ts.map +1 -0
- package/lib/cjs/internal/tile/IModelTile.js +273 -0
- package/lib/cjs/internal/tile/IModelTile.js.map +1 -0
- package/lib/cjs/internal/tile/IModelTileRequestChannels.d.ts +24 -0
- package/lib/cjs/internal/tile/IModelTileRequestChannels.d.ts.map +1 -0
- package/lib/cjs/internal/tile/IModelTileRequestChannels.js +157 -0
- package/lib/cjs/internal/tile/IModelTileRequestChannels.js.map +1 -0
- package/lib/cjs/internal/tile/IModelTileTree.d.ts +80 -0
- package/lib/cjs/internal/tile/IModelTileTree.d.ts.map +1 -0
- package/lib/cjs/internal/tile/IModelTileTree.js +347 -0
- package/lib/cjs/internal/tile/IModelTileTree.js.map +1 -0
- package/lib/cjs/internal/tile/ImdlDecoder.d.ts +56 -0
- package/lib/cjs/internal/tile/ImdlDecoder.d.ts.map +1 -0
- package/lib/cjs/internal/tile/ImdlDecoder.js +34 -0
- package/lib/cjs/internal/tile/ImdlDecoder.js.map +1 -0
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.d.ts +22 -0
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.d.ts.map +1 -0
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.js +431 -0
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.js.map +1 -0
- package/lib/cjs/internal/tile/ImdlParser.d.ts +23 -0
- package/lib/cjs/internal/tile/ImdlParser.d.ts.map +1 -0
- package/lib/cjs/internal/tile/ImdlParser.js +72 -0
- package/lib/cjs/internal/tile/ImdlParser.js.map +1 -0
- package/lib/cjs/internal/tile/LRUTileList.d.ts +118 -0
- package/lib/cjs/internal/tile/LRUTileList.d.ts.map +1 -0
- package/lib/cjs/internal/tile/LRUTileList.js +360 -0
- package/lib/cjs/internal/tile/LRUTileList.js.map +1 -0
- package/lib/cjs/internal/tile/MeshoptCompression.d.ts +21 -0
- package/lib/cjs/internal/tile/MeshoptCompression.d.ts.map +1 -0
- package/lib/cjs/internal/tile/MeshoptCompression.js +122 -0
- package/lib/cjs/internal/tile/MeshoptCompression.js.map +1 -0
- package/lib/cjs/internal/tile/OPCFormatInterpreter.d.ts +19 -0
- package/lib/cjs/internal/tile/OPCFormatInterpreter.d.ts.map +1 -0
- package/lib/cjs/internal/tile/OPCFormatInterpreter.js +95 -0
- package/lib/cjs/internal/tile/OPCFormatInterpreter.js.map +1 -0
- package/lib/cjs/internal/tile/OrbitGtTileTree.d.ts +63 -0
- package/lib/cjs/internal/tile/OrbitGtTileTree.d.ts.map +1 -0
- package/lib/cjs/internal/tile/OrbitGtTileTree.js +455 -0
- package/lib/cjs/internal/tile/OrbitGtTileTree.js.map +1 -0
- package/lib/cjs/internal/tile/PntsReader.d.ts +16 -0
- package/lib/cjs/internal/tile/PntsReader.d.ts.map +1 -0
- package/lib/cjs/internal/tile/PntsReader.js +230 -0
- package/lib/cjs/internal/tile/PntsReader.js.map +1 -0
- package/lib/cjs/internal/tile/PrimaryTileTree.d.ts +106 -0
- package/lib/cjs/internal/tile/PrimaryTileTree.d.ts.map +1 -0
- package/lib/cjs/internal/tile/PrimaryTileTree.js +628 -0
- package/lib/cjs/internal/tile/PrimaryTileTree.js.map +1 -0
- package/lib/cjs/internal/tile/RealityModelTileTree.d.ts +123 -0
- package/lib/cjs/internal/tile/RealityModelTileTree.d.ts.map +1 -0
- package/lib/cjs/internal/tile/RealityModelTileTree.js +768 -0
- package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -0
- package/lib/cjs/internal/tile/RealityTileDrawArgs.d.ts +16 -0
- package/lib/cjs/internal/tile/RealityTileDrawArgs.d.ts.map +1 -0
- package/lib/cjs/internal/tile/RealityTileDrawArgs.js +27 -0
- package/lib/cjs/internal/tile/RealityTileDrawArgs.js.map +1 -0
- package/lib/cjs/internal/tile/RealityTileLoader.d.ts +43 -0
- package/lib/cjs/internal/tile/RealityTileLoader.d.ts.map +1 -0
- package/lib/cjs/internal/tile/RealityTileLoader.js +207 -0
- package/lib/cjs/internal/tile/RealityTileLoader.js.map +1 -0
- package/lib/cjs/internal/tile/ThreeDTileFormatInterpreter.d.ts +44 -0
- package/lib/cjs/internal/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -0
- package/lib/cjs/internal/tile/ThreeDTileFormatInterpreter.js +176 -0
- package/lib/cjs/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -0
- package/lib/cjs/internal/tile/TileUserSet.d.ts +26 -0
- package/lib/cjs/internal/tile/TileUserSet.d.ts.map +1 -0
- package/lib/cjs/internal/tile/TileUserSet.js +119 -0
- package/lib/cjs/internal/tile/TileUserSet.js.map +1 -0
- package/lib/cjs/internal/tile/ViewFlagOverrides.d.ts +14 -0
- package/lib/cjs/internal/tile/ViewFlagOverrides.d.ts.map +1 -0
- package/lib/cjs/internal/tile/ViewFlagOverrides.js +38 -0
- package/lib/cjs/internal/tile/ViewFlagOverrides.js.map +1 -0
- package/lib/cjs/internal/tile/map/ArcGISTileMap.d.ts +29 -0
- package/lib/cjs/internal/tile/map/ArcGISTileMap.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/ArcGISTileMap.js +236 -0
- package/lib/cjs/internal/tile/map/ArcGISTileMap.js.map +1 -0
- package/lib/cjs/internal/tile/map/ArcGisUtilities.d.ts +122 -0
- package/lib/cjs/internal/tile/map/ArcGisUtilities.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/ArcGisUtilities.js +355 -0
- package/lib/cjs/internal/tile/map/ArcGisUtilities.js.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +39 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js +169 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +89 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +341 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts +14 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js +58 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +11 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +29 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +26 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js +199 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/CoordinatesUtils.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/CoordinatesUtils.js.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.d.ts +47 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts +40 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js +120 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.d.ts +15 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +21 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +51 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +13 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js +30 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/WebMercator.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/WebMercator.js.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +25 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +177 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +21 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +159 -0
- package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -0
- package/lib/cjs/internal/tile/map/MapTileAvailability.d.ts +60 -0
- package/lib/cjs/internal/tile/map/MapTileAvailability.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/MapTileAvailability.js +225 -0
- package/lib/cjs/internal/tile/map/MapTileAvailability.js.map +1 -0
- package/lib/cjs/internal/tile/map/MapTileLoader.d.ts +37 -0
- package/lib/cjs/internal/tile/map/MapTileLoader.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/MapTileLoader.js +87 -0
- package/lib/cjs/internal/tile/map/MapTileLoader.js.map +1 -0
- package/lib/cjs/internal/tile/map/UrlUtils.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/UrlUtils.js.map +1 -0
- package/lib/cjs/internal/tile/map/WmsCapabilities.d.ts +61 -0
- package/lib/cjs/internal/tile/map/WmsCapabilities.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/WmsCapabilities.js +226 -0
- package/lib/cjs/internal/tile/map/WmsCapabilities.js.map +1 -0
- package/lib/cjs/internal/tile/map/WmsUtilities.d.ts +14 -0
- package/lib/cjs/internal/tile/map/WmsUtilities.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/WmsUtilities.js +40 -0
- package/lib/cjs/internal/tile/map/WmsUtilities.js.map +1 -0
- package/lib/cjs/internal/tile/map/WmtsCapabilities.d.ts +121 -0
- package/lib/cjs/internal/tile/map/WmtsCapabilities.d.ts.map +1 -0
- package/lib/cjs/internal/tile/map/WmtsCapabilities.js +486 -0
- package/lib/cjs/internal/tile/map/WmtsCapabilities.js.map +1 -0
- package/lib/cjs/render/CreateRenderMaterialArgs.d.ts +1 -10
- package/lib/cjs/render/CreateRenderMaterialArgs.d.ts.map +1 -1
- package/lib/cjs/render/CreateRenderMaterialArgs.js.map +1 -1
- package/lib/cjs/render/FrameStats.d.ts +0 -21
- package/lib/cjs/render/FrameStats.d.ts.map +1 -1
- package/lib/cjs/render/FrameStats.js +0 -78
- package/lib/cjs/render/FrameStats.js.map +1 -1
- package/lib/cjs/render/GraphicBranch.d.ts +4 -35
- package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBranch.js +1 -38
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- package/lib/cjs/render/GraphicTemplate.d.ts +1 -42
- package/lib/cjs/render/GraphicTemplate.d.ts.map +1 -1
- package/lib/cjs/render/GraphicTemplate.js +0 -29
- package/lib/cjs/render/GraphicTemplate.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +15 -142
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js +2 -69
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/RenderTarget.d.ts +9 -47
- package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
- package/lib/cjs/render/RenderTarget.js +2 -15
- package/lib/cjs/render/RenderTarget.js.map +1 -1
- package/lib/cjs/render/Scene.d.ts +3 -11
- package/lib/cjs/render/Scene.d.ts.map +1 -1
- package/lib/cjs/render/Scene.js.map +1 -1
- package/lib/cjs/render/VisibleFeature.d.ts +0 -5
- package/lib/cjs/render/VisibleFeature.d.ts.map +1 -1
- package/lib/cjs/render/VisibleFeature.js +0 -137
- package/lib/cjs/render/VisibleFeature.js.map +1 -1
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +2 -2
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.d.ts +2 -2
- package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
- package/lib/cjs/tile/internal.d.ts +50 -50
- package/lib/cjs/tile/internal.d.ts.map +1 -1
- package/lib/cjs/tile/internal.js +50 -50
- package/lib/cjs/tile/internal.js.map +1 -1
- package/lib/cjs/tile/map/MapTile.d.ts +2 -1
- package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTile.js +3 -3
- package/lib/cjs/tile/map/MapTile.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/DrawingViewState.js +1 -1
- package/lib/esm/DrawingViewState.js.map +1 -1
- package/lib/esm/EnvironmentDecorations.d.ts +1 -1
- package/lib/esm/EnvironmentDecorations.d.ts.map +1 -1
- package/lib/esm/EnvironmentDecorations.js +2 -3
- package/lib/esm/EnvironmentDecorations.js.map +1 -1
- package/lib/esm/NoRenderApp.d.ts +1 -1
- package/lib/esm/NoRenderApp.d.ts.map +1 -1
- package/lib/esm/NoRenderApp.js.map +1 -1
- package/lib/esm/SheetViewState.js +1 -1
- package/lib/esm/SheetViewState.js.map +1 -1
- package/lib/esm/ViewContext.d.ts +3 -2
- package/lib/esm/ViewContext.d.ts.map +1 -1
- package/lib/esm/ViewContext.js.map +1 -1
- package/lib/esm/Viewport.d.ts +17 -2
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +10 -8
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/common/imdl/ParseImdlDocument.d.ts.map +1 -1
- package/lib/esm/common/imdl/ParseImdlDocument.js +3 -6
- package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
- package/lib/esm/core-frontend.d.ts +1 -5
- package/lib/esm/core-frontend.d.ts.map +1 -1
- package/lib/esm/core-frontend.js +1 -5
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/internal/cross-package.d.ts +4 -0
- package/lib/esm/internal/cross-package.d.ts.map +1 -1
- package/lib/esm/internal/cross-package.js +5 -0
- package/lib/esm/internal/cross-package.js.map +1 -1
- package/lib/esm/internal/render/AnimationBranchState.d.ts +24 -0
- package/lib/esm/internal/render/AnimationBranchState.d.ts.map +1 -0
- package/lib/esm/internal/render/AnimationBranchState.js +43 -0
- package/lib/esm/internal/render/AnimationBranchState.js.map +1 -0
- package/lib/esm/internal/render/FrameStatsCollector.d.ts +24 -0
- package/lib/esm/internal/render/FrameStatsCollector.d.ts.map +1 -0
- package/lib/esm/internal/render/FrameStatsCollector.js +83 -0
- package/lib/esm/internal/render/FrameStatsCollector.js.map +1 -0
- package/lib/esm/internal/render/GraphicBranchFrustum.d.ts +12 -0
- package/lib/esm/internal/render/GraphicBranchFrustum.d.ts.map +1 -0
- package/lib/esm/internal/render/GraphicBranchFrustum.js +9 -0
- package/lib/esm/internal/render/GraphicBranchFrustum.js.map +1 -0
- package/lib/esm/internal/render/GraphicTemplateImpl.d.ts +47 -0
- package/lib/esm/internal/render/GraphicTemplateImpl.d.ts.map +1 -0
- package/lib/esm/internal/render/GraphicTemplateImpl.js +37 -0
- package/lib/esm/internal/render/GraphicTemplateImpl.js.map +1 -0
- package/lib/esm/internal/render/MockRender.d.ts +160 -0
- package/lib/esm/internal/render/MockRender.d.ts.map +1 -0
- package/lib/esm/internal/render/MockRender.js +208 -0
- package/lib/esm/internal/render/MockRender.js.map +1 -0
- package/lib/esm/internal/render/PrimitiveBuilder.d.ts +0 -1
- package/lib/esm/internal/render/PrimitiveBuilder.d.ts.map +1 -1
- package/lib/esm/internal/render/PrimitiveBuilder.js +1 -2
- package/lib/esm/internal/render/PrimitiveBuilder.js.map +1 -1
- package/lib/esm/internal/render/QueryVisibileFeatures.d.ts +8 -0
- package/lib/esm/internal/render/QueryVisibileFeatures.d.ts.map +1 -0
- package/lib/esm/internal/render/QueryVisibileFeatures.js +142 -0
- package/lib/esm/internal/render/QueryVisibileFeatures.js.map +1 -0
- package/lib/esm/internal/render/RealityMeshGraphicParams.d.ts +21 -0
- package/lib/esm/internal/render/RealityMeshGraphicParams.d.ts.map +1 -0
- package/lib/esm/internal/render/RealityMeshGraphicParams.js.map +1 -0
- package/lib/esm/internal/render/RenderAreaPattern.d.ts +12 -0
- package/lib/esm/internal/render/RenderAreaPattern.d.ts.map +1 -0
- package/lib/esm/internal/render/RenderAreaPattern.js +9 -0
- package/lib/esm/internal/render/RenderAreaPattern.js.map +1 -0
- package/lib/esm/internal/render/RenderMaterialSource.d.ts +13 -0
- package/lib/esm/internal/render/RenderMaterialSource.d.ts.map +1 -0
- package/lib/esm/internal/render/RenderMaterialSource.js +9 -0
- package/lib/esm/internal/render/RenderMaterialSource.js.map +1 -0
- package/lib/esm/internal/render/RenderPlan.d.ts +47 -0
- package/lib/esm/internal/render/RenderPlan.d.ts.map +1 -0
- package/lib/esm/internal/render/RenderPlan.js +129 -0
- package/lib/esm/internal/render/RenderPlan.js.map +1 -0
- package/lib/esm/internal/render/RenderPlanarClassifier.d.ts +26 -0
- package/lib/esm/internal/render/RenderPlanarClassifier.d.ts.map +1 -0
- package/lib/esm/internal/render/RenderPlanarClassifier.js.map +1 -0
- package/lib/esm/internal/render/RenderSkyBoxParams.d.ts +21 -0
- package/lib/esm/internal/render/RenderSkyBoxParams.d.ts.map +1 -0
- package/lib/esm/internal/render/RenderSkyBoxParams.js +9 -0
- package/lib/esm/internal/render/RenderSkyBoxParams.js.map +1 -0
- package/lib/esm/internal/render/RenderSystemDebugControl.d.ts +58 -0
- package/lib/esm/internal/render/RenderSystemDebugControl.d.ts.map +1 -0
- package/lib/esm/internal/render/RenderSystemDebugControl.js +34 -0
- package/lib/esm/internal/render/RenderSystemDebugControl.js.map +1 -0
- package/lib/esm/internal/render/RenderTargetDebugControl.d.ts +45 -0
- package/lib/esm/internal/render/RenderTargetDebugControl.d.ts.map +1 -0
- package/lib/esm/internal/render/RenderTargetDebugControl.js +21 -0
- package/lib/esm/internal/render/RenderTargetDebugControl.js.map +1 -0
- package/lib/esm/internal/render/RenderTerrain.d.ts +24 -0
- package/lib/esm/internal/render/RenderTerrain.d.ts.map +1 -0
- package/lib/esm/internal/render/RenderTerrain.js +33 -0
- package/lib/esm/internal/render/RenderTerrain.js.map +1 -0
- package/lib/esm/internal/render/RenderTextureDrape.d.ts +15 -0
- package/lib/esm/internal/render/RenderTextureDrape.d.ts.map +1 -0
- package/lib/esm/internal/render/RenderTextureDrape.js +11 -0
- package/lib/esm/internal/render/RenderTextureDrape.js.map +1 -0
- package/lib/esm/internal/render/SceneVolumeClassifier.d.ts +11 -0
- package/lib/esm/internal/render/SceneVolumeClassifier.d.ts.map +1 -0
- package/lib/esm/internal/render/SceneVolumeClassifier.js +9 -0
- package/lib/esm/internal/render/SceneVolumeClassifier.js.map +1 -0
- package/lib/esm/internal/render/UpsampleRealityMeshParams.d.ts +11 -0
- package/lib/esm/internal/render/UpsampleRealityMeshParams.d.ts.map +1 -0
- package/lib/esm/internal/render/UpsampleRealityMeshParams.js +201 -0
- package/lib/esm/internal/render/UpsampleRealityMeshParams.js.map +1 -0
- package/lib/esm/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/CachedGeometry.d.ts +1 -1
- package/lib/esm/internal/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/GLTimer.d.ts +1 -1
- package/lib/esm/internal/render/webgl/GLTimer.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/GLTimer.js.map +1 -1
- package/lib/esm/internal/render/webgl/Graphic.d.ts +2 -1
- package/lib/esm/internal/render/webgl/Graphic.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/Graphic.js.map +1 -1
- package/lib/esm/internal/render/webgl/Material.d.ts +3 -3
- package/lib/esm/internal/render/webgl/Material.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/Material.js +2 -5
- package/lib/esm/internal/render/webgl/Material.js.map +1 -1
- package/lib/esm/internal/render/webgl/PerformanceMetrics.d.ts +1 -1
- package/lib/esm/internal/render/webgl/PerformanceMetrics.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/PerformanceMetrics.js.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarClassifier.d.ts +1 -1
- package/lib/esm/internal/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarClassifier.js +1 -1
- package/lib/esm/internal/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/esm/internal/render/webgl/Primitive.js +1 -1
- package/lib/esm/internal/render/webgl/Primitive.js.map +1 -1
- package/lib/esm/internal/render/webgl/RealityMesh.d.ts +4 -3
- package/lib/esm/internal/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/RealityMesh.js +1 -1
- package/lib/esm/internal/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderCommands.js.map +1 -1
- package/lib/esm/internal/render/webgl/ShaderProgram.js +1 -1
- package/lib/esm/internal/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/esm/internal/render/webgl/StyleUniforms.d.ts +1 -1
- package/lib/esm/internal/render/webgl/StyleUniforms.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/StyleUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/System.d.ts +12 -9
- package/lib/esm/internal/render/webgl/System.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/System.js +5 -9
- package/lib/esm/internal/render/webgl/System.js.map +1 -1
- package/lib/esm/internal/render/webgl/Target.d.ts +9 -8
- package/lib/esm/internal/render/webgl/Target.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/Target.js +11 -6
- package/lib/esm/internal/render/webgl/Target.js.map +1 -1
- package/lib/esm/internal/render/webgl/TargetUniforms.d.ts +1 -1
- package/lib/esm/internal/render/webgl/TargetUniforms.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/TargetUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/TextureDrape.d.ts +1 -1
- package/lib/esm/internal/render/webgl/TextureDrape.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/TextureDrape.js.map +1 -1
- package/lib/esm/internal/tile/B3dmReader.d.ts +30 -0
- package/lib/esm/internal/tile/B3dmReader.d.ts.map +1 -0
- package/lib/esm/internal/tile/B3dmReader.js +169 -0
- package/lib/esm/internal/tile/B3dmReader.js.map +1 -0
- package/lib/esm/internal/tile/BatchedTileIdMap.d.ts +24 -0
- package/lib/esm/internal/tile/BatchedTileIdMap.d.ts.map +1 -0
- package/lib/esm/internal/tile/BatchedTileIdMap.js +51 -0
- package/lib/esm/internal/tile/BatchedTileIdMap.js.map +1 -0
- package/lib/esm/internal/tile/CesiumAssetProvider.d.ts +13 -0
- package/lib/esm/internal/tile/CesiumAssetProvider.d.ts.map +1 -0
- package/lib/esm/internal/tile/CesiumAssetProvider.js +30 -0
- package/lib/esm/internal/tile/CesiumAssetProvider.js.map +1 -0
- package/lib/esm/internal/tile/ClassifierTileTree.d.ts +14 -0
- package/lib/esm/internal/tile/ClassifierTileTree.d.ts.map +1 -0
- package/lib/esm/internal/tile/ClassifierTileTree.js +155 -0
- package/lib/esm/internal/tile/ClassifierTileTree.js.map +1 -0
- package/lib/esm/internal/tile/ContextShareProvider.d.ts +21 -0
- package/lib/esm/internal/tile/ContextShareProvider.d.ts.map +1 -0
- package/lib/esm/internal/tile/ContextShareProvider.js +132 -0
- package/lib/esm/internal/tile/ContextShareProvider.js.map +1 -0
- package/lib/esm/internal/tile/DynamicIModelTile.d.ts +25 -0
- package/lib/esm/internal/tile/DynamicIModelTile.d.ts.map +1 -0
- package/lib/esm/internal/tile/DynamicIModelTile.js +321 -0
- package/lib/esm/internal/tile/DynamicIModelTile.js.map +1 -0
- package/lib/esm/internal/tile/FetchCloudStorage.d.ts +14 -0
- package/lib/esm/internal/tile/FetchCloudStorage.d.ts.map +1 -0
- package/lib/esm/internal/tile/FetchCloudStorage.js +30 -0
- package/lib/esm/internal/tile/FetchCloudStorage.js.map +1 -0
- package/lib/esm/internal/tile/GraphicsCollector.d.ts +24 -0
- package/lib/esm/internal/tile/GraphicsCollector.d.ts.map +1 -0
- package/lib/esm/internal/tile/GraphicsCollector.js +38 -0
- package/lib/esm/internal/tile/GraphicsCollector.js.map +1 -0
- package/lib/esm/internal/tile/I3dmReader.d.ts +28 -0
- package/lib/esm/internal/tile/I3dmReader.d.ts.map +1 -0
- package/lib/esm/internal/tile/I3dmReader.js +155 -0
- package/lib/esm/internal/tile/I3dmReader.js.map +1 -0
- package/lib/esm/internal/tile/IModelTile.d.ts +54 -0
- package/lib/esm/internal/tile/IModelTile.d.ts.map +1 -0
- package/lib/esm/internal/tile/IModelTile.js +268 -0
- package/lib/esm/internal/tile/IModelTile.js.map +1 -0
- package/lib/esm/internal/tile/IModelTileRequestChannels.d.ts +24 -0
- package/lib/esm/internal/tile/IModelTileRequestChannels.d.ts.map +1 -0
- package/lib/esm/internal/tile/IModelTileRequestChannels.js +153 -0
- package/lib/esm/internal/tile/IModelTileRequestChannels.js.map +1 -0
- package/lib/esm/internal/tile/IModelTileTree.d.ts +80 -0
- package/lib/esm/internal/tile/IModelTileTree.d.ts.map +1 -0
- package/lib/esm/internal/tile/IModelTileTree.js +342 -0
- package/lib/esm/internal/tile/IModelTileTree.js.map +1 -0
- package/lib/esm/internal/tile/ImdlDecoder.d.ts +56 -0
- package/lib/esm/internal/tile/ImdlDecoder.d.ts.map +1 -0
- package/lib/esm/internal/tile/ImdlDecoder.js +31 -0
- package/lib/esm/internal/tile/ImdlDecoder.js.map +1 -0
- package/lib/esm/internal/tile/ImdlGraphicsCreator.d.ts +22 -0
- package/lib/esm/internal/tile/ImdlGraphicsCreator.d.ts.map +1 -0
- package/lib/esm/internal/tile/ImdlGraphicsCreator.js +426 -0
- package/lib/esm/internal/tile/ImdlGraphicsCreator.js.map +1 -0
- package/lib/esm/internal/tile/ImdlParser.d.ts +23 -0
- package/lib/esm/internal/tile/ImdlParser.d.ts.map +1 -0
- package/lib/esm/internal/tile/ImdlParser.js +69 -0
- package/lib/esm/internal/tile/ImdlParser.js.map +1 -0
- package/lib/esm/internal/tile/LRUTileList.d.ts +118 -0
- package/lib/esm/internal/tile/LRUTileList.d.ts.map +1 -0
- package/lib/esm/internal/tile/LRUTileList.js +354 -0
- package/lib/esm/internal/tile/LRUTileList.js.map +1 -0
- package/lib/esm/internal/tile/MeshoptCompression.d.ts +21 -0
- package/lib/esm/internal/tile/MeshoptCompression.d.ts.map +1 -0
- package/lib/esm/internal/tile/MeshoptCompression.js +118 -0
- package/lib/esm/internal/tile/MeshoptCompression.js.map +1 -0
- package/lib/esm/internal/tile/OPCFormatInterpreter.d.ts +19 -0
- package/lib/esm/internal/tile/OPCFormatInterpreter.d.ts.map +1 -0
- package/lib/esm/internal/tile/OPCFormatInterpreter.js +91 -0
- package/lib/esm/internal/tile/OPCFormatInterpreter.js.map +1 -0
- package/lib/esm/internal/tile/OrbitGtTileTree.d.ts +63 -0
- package/lib/esm/internal/tile/OrbitGtTileTree.d.ts.map +1 -0
- package/lib/esm/internal/tile/OrbitGtTileTree.js +449 -0
- package/lib/esm/internal/tile/OrbitGtTileTree.js.map +1 -0
- package/lib/esm/internal/tile/PntsReader.d.ts +16 -0
- package/lib/esm/internal/tile/PntsReader.d.ts.map +1 -0
- package/lib/esm/internal/tile/PntsReader.js +204 -0
- package/lib/esm/internal/tile/PntsReader.js.map +1 -0
- package/lib/esm/internal/tile/PrimaryTileTree.d.ts +106 -0
- package/lib/esm/internal/tile/PrimaryTileTree.d.ts.map +1 -0
- package/lib/esm/internal/tile/PrimaryTileTree.js +618 -0
- package/lib/esm/internal/tile/PrimaryTileTree.js.map +1 -0
- package/lib/esm/internal/tile/RealityModelTileTree.d.ts +123 -0
- package/lib/esm/internal/tile/RealityModelTileTree.d.ts.map +1 -0
- package/lib/esm/internal/tile/RealityModelTileTree.js +760 -0
- package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -0
- package/lib/esm/internal/tile/RealityTileDrawArgs.d.ts +16 -0
- package/lib/esm/internal/tile/RealityTileDrawArgs.d.ts.map +1 -0
- package/lib/esm/internal/tile/RealityTileDrawArgs.js +23 -0
- package/lib/esm/internal/tile/RealityTileDrawArgs.js.map +1 -0
- package/lib/esm/internal/tile/RealityTileLoader.d.ts +43 -0
- package/lib/esm/internal/tile/RealityTileLoader.d.ts.map +1 -0
- package/lib/esm/internal/tile/RealityTileLoader.js +203 -0
- package/lib/esm/internal/tile/RealityTileLoader.js.map +1 -0
- package/lib/esm/internal/tile/ThreeDTileFormatInterpreter.d.ts +44 -0
- package/lib/esm/internal/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -0
- package/lib/esm/internal/tile/ThreeDTileFormatInterpreter.js +172 -0
- package/lib/esm/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -0
- package/lib/esm/internal/tile/TileUserSet.d.ts +26 -0
- package/lib/esm/internal/tile/TileUserSet.d.ts.map +1 -0
- package/lib/esm/internal/tile/TileUserSet.js +114 -0
- package/lib/esm/internal/tile/TileUserSet.js.map +1 -0
- package/lib/esm/internal/tile/ViewFlagOverrides.d.ts +14 -0
- package/lib/esm/internal/tile/ViewFlagOverrides.d.ts.map +1 -0
- package/lib/esm/internal/tile/ViewFlagOverrides.js +35 -0
- package/lib/esm/internal/tile/ViewFlagOverrides.js.map +1 -0
- package/lib/esm/internal/tile/map/ArcGISTileMap.d.ts +29 -0
- package/lib/esm/internal/tile/map/ArcGISTileMap.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/ArcGISTileMap.js +232 -0
- package/lib/esm/internal/tile/map/ArcGISTileMap.js.map +1 -0
- package/lib/esm/internal/tile/map/ArcGisUtilities.d.ts +122 -0
- package/lib/esm/internal/tile/map/ArcGisUtilities.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/ArcGisUtilities.js +351 -0
- package/lib/esm/internal/tile/map/ArcGisUtilities.js.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +39 -0
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js +165 -0
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +89 -0
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +336 -0
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts +14 -0
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js +54 -0
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +11 -0
- package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +25 -0
- package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +26 -0
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js +195 -0
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/CoordinatesUtils.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/CoordinatesUtils.js.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.d.ts +47 -0
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts +40 -0
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js +116 -0
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.d.ts +15 -0
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +21 -0
- package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +47 -0
- package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +13 -0
- package/lib/esm/internal/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js +26 -0
- package/lib/esm/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/WebMercator.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/WebMercator.js.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +25 -0
- package/lib/esm/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +173 -0
- package/lib/esm/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +21 -0
- package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +155 -0
- package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -0
- package/lib/esm/internal/tile/map/MapTileAvailability.d.ts +60 -0
- package/lib/esm/internal/tile/map/MapTileAvailability.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/MapTileAvailability.js +221 -0
- package/lib/esm/internal/tile/map/MapTileAvailability.js.map +1 -0
- package/lib/esm/internal/tile/map/MapTileLoader.d.ts +37 -0
- package/lib/esm/internal/tile/map/MapTileLoader.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/MapTileLoader.js +83 -0
- package/lib/esm/internal/tile/map/MapTileLoader.js.map +1 -0
- package/lib/esm/internal/tile/map/UrlUtils.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/UrlUtils.js.map +1 -0
- package/lib/esm/internal/tile/map/WmsCapabilities.d.ts +61 -0
- package/lib/esm/internal/tile/map/WmsCapabilities.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/WmsCapabilities.js +219 -0
- package/lib/esm/internal/tile/map/WmsCapabilities.js.map +1 -0
- package/lib/esm/internal/tile/map/WmsUtilities.d.ts +14 -0
- package/lib/esm/internal/tile/map/WmsUtilities.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/WmsUtilities.js +36 -0
- package/lib/esm/internal/tile/map/WmsUtilities.js.map +1 -0
- package/lib/esm/internal/tile/map/WmtsCapabilities.d.ts +121 -0
- package/lib/esm/internal/tile/map/WmtsCapabilities.d.ts.map +1 -0
- package/lib/esm/internal/tile/map/WmtsCapabilities.js +482 -0
- package/lib/esm/internal/tile/map/WmtsCapabilities.js.map +1 -0
- package/lib/esm/render/CreateRenderMaterialArgs.d.ts +1 -10
- package/lib/esm/render/CreateRenderMaterialArgs.d.ts.map +1 -1
- package/lib/esm/render/CreateRenderMaterialArgs.js.map +1 -1
- package/lib/esm/render/FrameStats.d.ts +0 -21
- package/lib/esm/render/FrameStats.d.ts.map +1 -1
- package/lib/esm/render/FrameStats.js +1 -76
- package/lib/esm/render/FrameStats.js.map +1 -1
- package/lib/esm/render/GraphicBranch.d.ts +4 -35
- package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
- package/lib/esm/render/GraphicBranch.js +0 -36
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- package/lib/esm/render/GraphicTemplate.d.ts +1 -42
- package/lib/esm/render/GraphicTemplate.d.ts.map +1 -1
- package/lib/esm/render/GraphicTemplate.js +0 -28
- package/lib/esm/render/GraphicTemplate.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +15 -142
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js +1 -64
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/RenderTarget.d.ts +9 -47
- package/lib/esm/render/RenderTarget.d.ts.map +1 -1
- package/lib/esm/render/RenderTarget.js +1 -14
- package/lib/esm/render/RenderTarget.js.map +1 -1
- package/lib/esm/render/Scene.d.ts +3 -11
- package/lib/esm/render/Scene.d.ts.map +1 -1
- package/lib/esm/render/Scene.js.map +1 -1
- package/lib/esm/render/VisibleFeature.d.ts +0 -5
- package/lib/esm/render/VisibleFeature.d.ts.map +1 -1
- package/lib/esm/render/VisibleFeature.js +1 -136
- package/lib/esm/render/VisibleFeature.js.map +1 -1
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +1 -1
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/TileDrawArgs.d.ts +2 -2
- package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/esm/tile/TileDrawArgs.js.map +1 -1
- package/lib/esm/tile/internal.d.ts +50 -50
- package/lib/esm/tile/internal.d.ts.map +1 -1
- package/lib/esm/tile/internal.js +50 -50
- package/lib/esm/tile/internal.js.map +1 -1
- package/lib/esm/tile/map/MapTile.d.ts +2 -1
- package/lib/esm/tile/map/MapTile.d.ts.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/MapTileTree.d.ts +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/public/scripts/parse-imdl-worker.js +1 -1
- package/lib/workers/webpack/parse-imdl-worker.js +1 -1
- package/package.json +16 -16
- package/lib/cjs/render/MockRender.d.ts +0 -159
- package/lib/cjs/render/MockRender.d.ts.map +0 -1
- package/lib/cjs/render/MockRender.js +0 -211
- package/lib/cjs/render/MockRender.js.map +0 -1
- package/lib/cjs/render/RealityMeshGraphicParams.d.ts +0 -20
- package/lib/cjs/render/RealityMeshGraphicParams.d.ts.map +0 -1
- package/lib/cjs/render/RealityMeshGraphicParams.js.map +0 -1
- package/lib/cjs/render/RenderPlan.d.ts +0 -54
- package/lib/cjs/render/RenderPlan.d.ts.map +0 -1
- package/lib/cjs/render/RenderPlan.js +0 -140
- package/lib/cjs/render/RenderPlan.js.map +0 -1
- package/lib/cjs/render/RenderPlanarClassifier.d.ts +0 -26
- package/lib/cjs/render/RenderPlanarClassifier.d.ts.map +0 -1
- package/lib/cjs/render/RenderPlanarClassifier.js.map +0 -1
- package/lib/cjs/render/UpsampleRealityMeshParams.d.ts +0 -11
- package/lib/cjs/render/UpsampleRealityMeshParams.d.ts.map +0 -1
- package/lib/cjs/render/UpsampleRealityMeshParams.js +0 -204
- package/lib/cjs/render/UpsampleRealityMeshParams.js.map +0 -1
- package/lib/cjs/tile/B3dmReader.d.ts +0 -31
- package/lib/cjs/tile/B3dmReader.d.ts.map +0 -1
- package/lib/cjs/tile/B3dmReader.js +0 -174
- package/lib/cjs/tile/B3dmReader.js.map +0 -1
- package/lib/cjs/tile/BatchedTileIdMap.d.ts +0 -25
- package/lib/cjs/tile/BatchedTileIdMap.d.ts.map +0 -1
- package/lib/cjs/tile/BatchedTileIdMap.js +0 -56
- package/lib/cjs/tile/BatchedTileIdMap.js.map +0 -1
- package/lib/cjs/tile/CesiumAssetProvider.d.ts +0 -14
- package/lib/cjs/tile/CesiumAssetProvider.d.ts.map +0 -1
- package/lib/cjs/tile/CesiumAssetProvider.js +0 -35
- package/lib/cjs/tile/CesiumAssetProvider.js.map +0 -1
- package/lib/cjs/tile/ClassifierTileTree.d.ts +0 -16
- package/lib/cjs/tile/ClassifierTileTree.d.ts.map +0 -1
- package/lib/cjs/tile/ClassifierTileTree.js +0 -163
- package/lib/cjs/tile/ClassifierTileTree.js.map +0 -1
- package/lib/cjs/tile/ContextShareProvider.d.ts +0 -22
- package/lib/cjs/tile/ContextShareProvider.d.ts.map +0 -1
- package/lib/cjs/tile/ContextShareProvider.js +0 -137
- package/lib/cjs/tile/ContextShareProvider.js.map +0 -1
- package/lib/cjs/tile/DynamicIModelTile.d.ts +0 -26
- package/lib/cjs/tile/DynamicIModelTile.d.ts.map +0 -1
- package/lib/cjs/tile/DynamicIModelTile.js +0 -326
- package/lib/cjs/tile/DynamicIModelTile.js.map +0 -1
- package/lib/cjs/tile/FetchCloudStorage.d.ts +0 -15
- package/lib/cjs/tile/FetchCloudStorage.d.ts.map +0 -1
- package/lib/cjs/tile/FetchCloudStorage.js +0 -35
- package/lib/cjs/tile/FetchCloudStorage.js.map +0 -1
- package/lib/cjs/tile/GraphicsCollector.d.ts +0 -26
- package/lib/cjs/tile/GraphicsCollector.d.ts.map +0 -1
- package/lib/cjs/tile/GraphicsCollector.js +0 -43
- package/lib/cjs/tile/GraphicsCollector.js.map +0 -1
- package/lib/cjs/tile/I3dmReader.d.ts +0 -29
- package/lib/cjs/tile/I3dmReader.d.ts.map +0 -1
- package/lib/cjs/tile/I3dmReader.js +0 -160
- package/lib/cjs/tile/I3dmReader.js.map +0 -1
- package/lib/cjs/tile/IModelTile.d.ts +0 -59
- package/lib/cjs/tile/IModelTile.d.ts.map +0 -1
- package/lib/cjs/tile/IModelTile.js +0 -276
- package/lib/cjs/tile/IModelTile.js.map +0 -1
- package/lib/cjs/tile/IModelTileRequestChannels.d.ts +0 -25
- package/lib/cjs/tile/IModelTileRequestChannels.d.ts.map +0 -1
- package/lib/cjs/tile/IModelTileRequestChannels.js +0 -158
- package/lib/cjs/tile/IModelTileRequestChannels.js.map +0 -1
- package/lib/cjs/tile/IModelTileTree.d.ts +0 -85
- package/lib/cjs/tile/IModelTileTree.d.ts.map +0 -1
- package/lib/cjs/tile/IModelTileTree.js +0 -349
- package/lib/cjs/tile/IModelTileTree.js.map +0 -1
- package/lib/cjs/tile/ImdlDecoder.d.ts +0 -58
- package/lib/cjs/tile/ImdlDecoder.d.ts.map +0 -1
- package/lib/cjs/tile/ImdlDecoder.js +0 -34
- package/lib/cjs/tile/ImdlDecoder.js.map +0 -1
- package/lib/cjs/tile/ImdlGraphicsCreator.d.ts +0 -26
- package/lib/cjs/tile/ImdlGraphicsCreator.d.ts.map +0 -1
- package/lib/cjs/tile/ImdlGraphicsCreator.js +0 -436
- package/lib/cjs/tile/ImdlGraphicsCreator.js.map +0 -1
- package/lib/cjs/tile/ImdlParser.d.ts +0 -26
- package/lib/cjs/tile/ImdlParser.d.ts.map +0 -1
- package/lib/cjs/tile/ImdlParser.js +0 -73
- package/lib/cjs/tile/ImdlParser.js.map +0 -1
- package/lib/cjs/tile/LRUTileList.d.ts +0 -122
- package/lib/cjs/tile/LRUTileList.d.ts.map +0 -1
- package/lib/cjs/tile/LRUTileList.js +0 -363
- package/lib/cjs/tile/LRUTileList.js.map +0 -1
- package/lib/cjs/tile/MeshoptCompression.d.ts +0 -25
- package/lib/cjs/tile/MeshoptCompression.d.ts.map +0 -1
- package/lib/cjs/tile/MeshoptCompression.js +0 -124
- package/lib/cjs/tile/MeshoptCompression.js.map +0 -1
- package/lib/cjs/tile/OPCFormatInterpreter.d.ts +0 -22
- package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +0 -1
- package/lib/cjs/tile/OPCFormatInterpreter.js +0 -98
- package/lib/cjs/tile/OPCFormatInterpreter.js.map +0 -1
- package/lib/cjs/tile/OrbitGtTileTree.d.ts +0 -66
- package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +0 -1
- package/lib/cjs/tile/OrbitGtTileTree.js +0 -458
- package/lib/cjs/tile/OrbitGtTileTree.js.map +0 -1
- package/lib/cjs/tile/PntsReader.d.ts +0 -17
- package/lib/cjs/tile/PntsReader.d.ts.map +0 -1
- package/lib/cjs/tile/PntsReader.js +0 -231
- package/lib/cjs/tile/PntsReader.js.map +0 -1
- package/lib/cjs/tile/PrimaryTileTree.d.ts +0 -112
- package/lib/cjs/tile/PrimaryTileTree.d.ts.map +0 -1
- package/lib/cjs/tile/PrimaryTileTree.js +0 -636
- package/lib/cjs/tile/PrimaryTileTree.js.map +0 -1
- package/lib/cjs/tile/RealityModelTileTree.d.ts +0 -129
- package/lib/cjs/tile/RealityModelTileTree.d.ts.map +0 -1
- package/lib/cjs/tile/RealityModelTileTree.js +0 -781
- package/lib/cjs/tile/RealityModelTileTree.js.map +0 -1
- package/lib/cjs/tile/RealityTileDrawArgs.d.ts +0 -17
- package/lib/cjs/tile/RealityTileDrawArgs.d.ts.map +0 -1
- package/lib/cjs/tile/RealityTileDrawArgs.js +0 -28
- package/lib/cjs/tile/RealityTileDrawArgs.js.map +0 -1
- package/lib/cjs/tile/RealityTileLoader.d.ts +0 -43
- package/lib/cjs/tile/RealityTileLoader.d.ts.map +0 -1
- package/lib/cjs/tile/RealityTileLoader.js +0 -207
- package/lib/cjs/tile/RealityTileLoader.js.map +0 -1
- package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts +0 -52
- package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts.map +0 -1
- package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +0 -183
- package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +0 -1
- package/lib/cjs/tile/TileUserSet.d.ts +0 -28
- package/lib/cjs/tile/TileUserSet.d.ts.map +0 -1
- package/lib/cjs/tile/TileUserSet.js +0 -121
- package/lib/cjs/tile/TileUserSet.js.map +0 -1
- package/lib/cjs/tile/ViewFlagOverrides.d.ts +0 -15
- package/lib/cjs/tile/ViewFlagOverrides.d.ts.map +0 -1
- package/lib/cjs/tile/ViewFlagOverrides.js +0 -39
- package/lib/cjs/tile/ViewFlagOverrides.js.map +0 -1
- package/lib/cjs/tile/map/ArcGISTileMap.d.ts +0 -31
- package/lib/cjs/tile/map/ArcGISTileMap.d.ts.map +0 -1
- package/lib/cjs/tile/map/ArcGISTileMap.js +0 -237
- package/lib/cjs/tile/map/ArcGISTileMap.js.map +0 -1
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts +0 -124
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +0 -1
- package/lib/cjs/tile/map/ArcGisUtilities.js +0 -355
- package/lib/cjs/tile/map/ArcGisUtilities.js.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +0 -40
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js +0 -170
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +0 -89
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +0 -341
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts +0 -14
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js +0 -58
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +0 -12
- package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +0 -30
- package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts +0 -27
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +0 -202
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/CoordinatesUtils.d.ts.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/CoordinatesUtils.js.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.d.ts.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/FeatureGeometryRenderer.d.ts +0 -47
- package/lib/cjs/tile/map/ImageryProviders/FeatureGeometryRenderer.d.ts.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts +0 -43
- package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.js +0 -120
- package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/FeatureSymbologyRenderer.d.ts +0 -15
- package/lib/cjs/tile/map/ImageryProviders/FeatureSymbologyRenderer.d.ts.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +0 -22
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +0 -52
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +0 -14
- package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.js +0 -31
- package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/WebMercator.d.ts.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/WebMercator.js.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +0 -27
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +0 -178
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +0 -22
- package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +0 -1
- package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +0 -160
- package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +0 -1
- package/lib/cjs/tile/map/MapTileAvailability.d.ts +0 -63
- package/lib/cjs/tile/map/MapTileAvailability.d.ts.map +0 -1
- package/lib/cjs/tile/map/MapTileAvailability.js +0 -229
- package/lib/cjs/tile/map/MapTileAvailability.js.map +0 -1
- package/lib/cjs/tile/map/MapTileLoader.d.ts +0 -38
- package/lib/cjs/tile/map/MapTileLoader.d.ts.map +0 -1
- package/lib/cjs/tile/map/MapTileLoader.js +0 -88
- package/lib/cjs/tile/map/MapTileLoader.js.map +0 -1
- package/lib/cjs/tile/map/UrlUtils.d.ts.map +0 -1
- package/lib/cjs/tile/map/UrlUtils.js.map +0 -1
- package/lib/cjs/tile/map/WmsCapabilities.d.ts +0 -64
- package/lib/cjs/tile/map/WmsCapabilities.d.ts.map +0 -1
- package/lib/cjs/tile/map/WmsCapabilities.js +0 -229
- package/lib/cjs/tile/map/WmsCapabilities.js.map +0 -1
- package/lib/cjs/tile/map/WmsUtilities.d.ts +0 -15
- package/lib/cjs/tile/map/WmsUtilities.d.ts.map +0 -1
- package/lib/cjs/tile/map/WmsUtilities.js +0 -41
- package/lib/cjs/tile/map/WmsUtilities.js.map +0 -1
- package/lib/cjs/tile/map/WmtsCapabilities.d.ts +0 -125
- package/lib/cjs/tile/map/WmtsCapabilities.d.ts.map +0 -1
- package/lib/cjs/tile/map/WmtsCapabilities.js +0 -491
- package/lib/cjs/tile/map/WmtsCapabilities.js.map +0 -1
- package/lib/esm/render/MockRender.d.ts +0 -159
- package/lib/esm/render/MockRender.d.ts.map +0 -1
- package/lib/esm/render/MockRender.js +0 -208
- package/lib/esm/render/MockRender.js.map +0 -1
- package/lib/esm/render/RealityMeshGraphicParams.d.ts +0 -20
- package/lib/esm/render/RealityMeshGraphicParams.d.ts.map +0 -1
- package/lib/esm/render/RealityMeshGraphicParams.js.map +0 -1
- package/lib/esm/render/RenderPlan.d.ts +0 -54
- package/lib/esm/render/RenderPlan.d.ts.map +0 -1
- package/lib/esm/render/RenderPlan.js +0 -134
- package/lib/esm/render/RenderPlan.js.map +0 -1
- package/lib/esm/render/RenderPlanarClassifier.d.ts +0 -26
- package/lib/esm/render/RenderPlanarClassifier.d.ts.map +0 -1
- package/lib/esm/render/RenderPlanarClassifier.js.map +0 -1
- package/lib/esm/render/UpsampleRealityMeshParams.d.ts +0 -11
- package/lib/esm/render/UpsampleRealityMeshParams.d.ts.map +0 -1
- package/lib/esm/render/UpsampleRealityMeshParams.js +0 -201
- package/lib/esm/render/UpsampleRealityMeshParams.js.map +0 -1
- package/lib/esm/tile/B3dmReader.d.ts +0 -31
- package/lib/esm/tile/B3dmReader.d.ts.map +0 -1
- package/lib/esm/tile/B3dmReader.js +0 -170
- package/lib/esm/tile/B3dmReader.js.map +0 -1
- package/lib/esm/tile/BatchedTileIdMap.d.ts +0 -25
- package/lib/esm/tile/BatchedTileIdMap.d.ts.map +0 -1
- package/lib/esm/tile/BatchedTileIdMap.js +0 -52
- package/lib/esm/tile/BatchedTileIdMap.js.map +0 -1
- package/lib/esm/tile/CesiumAssetProvider.d.ts +0 -14
- package/lib/esm/tile/CesiumAssetProvider.d.ts.map +0 -1
- package/lib/esm/tile/CesiumAssetProvider.js +0 -31
- package/lib/esm/tile/CesiumAssetProvider.js.map +0 -1
- package/lib/esm/tile/ClassifierTileTree.d.ts +0 -16
- package/lib/esm/tile/ClassifierTileTree.d.ts.map +0 -1
- package/lib/esm/tile/ClassifierTileTree.js +0 -158
- package/lib/esm/tile/ClassifierTileTree.js.map +0 -1
- package/lib/esm/tile/ContextShareProvider.d.ts +0 -22
- package/lib/esm/tile/ContextShareProvider.d.ts.map +0 -1
- package/lib/esm/tile/ContextShareProvider.js +0 -133
- package/lib/esm/tile/ContextShareProvider.js.map +0 -1
- package/lib/esm/tile/DynamicIModelTile.d.ts +0 -26
- package/lib/esm/tile/DynamicIModelTile.d.ts.map +0 -1
- package/lib/esm/tile/DynamicIModelTile.js +0 -322
- package/lib/esm/tile/DynamicIModelTile.js.map +0 -1
- package/lib/esm/tile/FetchCloudStorage.d.ts +0 -15
- package/lib/esm/tile/FetchCloudStorage.d.ts.map +0 -1
- package/lib/esm/tile/FetchCloudStorage.js +0 -31
- package/lib/esm/tile/FetchCloudStorage.js.map +0 -1
- package/lib/esm/tile/GraphicsCollector.d.ts +0 -26
- package/lib/esm/tile/GraphicsCollector.d.ts.map +0 -1
- package/lib/esm/tile/GraphicsCollector.js +0 -39
- package/lib/esm/tile/GraphicsCollector.js.map +0 -1
- package/lib/esm/tile/I3dmReader.d.ts +0 -29
- package/lib/esm/tile/I3dmReader.d.ts.map +0 -1
- package/lib/esm/tile/I3dmReader.js +0 -156
- package/lib/esm/tile/I3dmReader.js.map +0 -1
- package/lib/esm/tile/IModelTile.d.ts +0 -59
- package/lib/esm/tile/IModelTile.d.ts.map +0 -1
- package/lib/esm/tile/IModelTile.js +0 -271
- package/lib/esm/tile/IModelTile.js.map +0 -1
- package/lib/esm/tile/IModelTileRequestChannels.d.ts +0 -25
- package/lib/esm/tile/IModelTileRequestChannels.d.ts.map +0 -1
- package/lib/esm/tile/IModelTileRequestChannels.js +0 -154
- package/lib/esm/tile/IModelTileRequestChannels.js.map +0 -1
- package/lib/esm/tile/IModelTileTree.d.ts +0 -85
- package/lib/esm/tile/IModelTileTree.d.ts.map +0 -1
- package/lib/esm/tile/IModelTileTree.js +0 -344
- package/lib/esm/tile/IModelTileTree.js.map +0 -1
- package/lib/esm/tile/ImdlDecoder.d.ts +0 -58
- package/lib/esm/tile/ImdlDecoder.d.ts.map +0 -1
- package/lib/esm/tile/ImdlDecoder.js +0 -31
- package/lib/esm/tile/ImdlDecoder.js.map +0 -1
- package/lib/esm/tile/ImdlGraphicsCreator.d.ts +0 -26
- package/lib/esm/tile/ImdlGraphicsCreator.d.ts.map +0 -1
- package/lib/esm/tile/ImdlGraphicsCreator.js +0 -431
- package/lib/esm/tile/ImdlGraphicsCreator.js.map +0 -1
- package/lib/esm/tile/ImdlParser.d.ts +0 -26
- package/lib/esm/tile/ImdlParser.d.ts.map +0 -1
- package/lib/esm/tile/ImdlParser.js +0 -70
- package/lib/esm/tile/ImdlParser.js.map +0 -1
- package/lib/esm/tile/LRUTileList.d.ts +0 -122
- package/lib/esm/tile/LRUTileList.d.ts.map +0 -1
- package/lib/esm/tile/LRUTileList.js +0 -357
- package/lib/esm/tile/LRUTileList.js.map +0 -1
- package/lib/esm/tile/MeshoptCompression.d.ts +0 -25
- package/lib/esm/tile/MeshoptCompression.d.ts.map +0 -1
- package/lib/esm/tile/MeshoptCompression.js +0 -120
- package/lib/esm/tile/MeshoptCompression.js.map +0 -1
- package/lib/esm/tile/OPCFormatInterpreter.d.ts +0 -22
- package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +0 -1
- package/lib/esm/tile/OPCFormatInterpreter.js +0 -94
- package/lib/esm/tile/OPCFormatInterpreter.js.map +0 -1
- package/lib/esm/tile/OrbitGtTileTree.d.ts +0 -66
- package/lib/esm/tile/OrbitGtTileTree.d.ts.map +0 -1
- package/lib/esm/tile/OrbitGtTileTree.js +0 -452
- package/lib/esm/tile/OrbitGtTileTree.js.map +0 -1
- package/lib/esm/tile/PntsReader.d.ts +0 -17
- package/lib/esm/tile/PntsReader.d.ts.map +0 -1
- package/lib/esm/tile/PntsReader.js +0 -205
- package/lib/esm/tile/PntsReader.js.map +0 -1
- package/lib/esm/tile/PrimaryTileTree.d.ts +0 -112
- package/lib/esm/tile/PrimaryTileTree.d.ts.map +0 -1
- package/lib/esm/tile/PrimaryTileTree.js +0 -626
- package/lib/esm/tile/PrimaryTileTree.js.map +0 -1
- package/lib/esm/tile/RealityModelTileTree.d.ts +0 -129
- package/lib/esm/tile/RealityModelTileTree.d.ts.map +0 -1
- package/lib/esm/tile/RealityModelTileTree.js +0 -773
- package/lib/esm/tile/RealityModelTileTree.js.map +0 -1
- package/lib/esm/tile/RealityTileDrawArgs.d.ts +0 -17
- package/lib/esm/tile/RealityTileDrawArgs.d.ts.map +0 -1
- package/lib/esm/tile/RealityTileDrawArgs.js +0 -24
- package/lib/esm/tile/RealityTileDrawArgs.js.map +0 -1
- package/lib/esm/tile/RealityTileLoader.d.ts +0 -43
- package/lib/esm/tile/RealityTileLoader.d.ts.map +0 -1
- package/lib/esm/tile/RealityTileLoader.js +0 -203
- package/lib/esm/tile/RealityTileLoader.js.map +0 -1
- package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts +0 -52
- package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts.map +0 -1
- package/lib/esm/tile/ThreeDTileFormatInterpreter.js +0 -179
- package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +0 -1
- package/lib/esm/tile/TileUserSet.d.ts +0 -28
- package/lib/esm/tile/TileUserSet.d.ts.map +0 -1
- package/lib/esm/tile/TileUserSet.js +0 -116
- package/lib/esm/tile/TileUserSet.js.map +0 -1
- package/lib/esm/tile/ViewFlagOverrides.d.ts +0 -15
- package/lib/esm/tile/ViewFlagOverrides.d.ts.map +0 -1
- package/lib/esm/tile/ViewFlagOverrides.js +0 -36
- package/lib/esm/tile/ViewFlagOverrides.js.map +0 -1
- package/lib/esm/tile/map/ArcGISTileMap.d.ts +0 -31
- package/lib/esm/tile/map/ArcGISTileMap.d.ts.map +0 -1
- package/lib/esm/tile/map/ArcGISTileMap.js +0 -233
- package/lib/esm/tile/map/ArcGISTileMap.js.map +0 -1
- package/lib/esm/tile/map/ArcGisUtilities.d.ts +0 -124
- package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +0 -1
- package/lib/esm/tile/map/ArcGisUtilities.js +0 -351
- package/lib/esm/tile/map/ArcGisUtilities.js.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +0 -40
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js +0 -166
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +0 -89
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +0 -336
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts +0 -14
- package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js +0 -54
- package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +0 -12
- package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +0 -26
- package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts +0 -27
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +0 -198
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/CoordinatesUtils.d.ts.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/CoordinatesUtils.js.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.d.ts.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/FeatureGeometryRenderer.d.ts +0 -47
- package/lib/esm/tile/map/ImageryProviders/FeatureGeometryRenderer.d.ts.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts +0 -43
- package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.js +0 -116
- package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/FeatureSymbologyRenderer.d.ts +0 -15
- package/lib/esm/tile/map/ImageryProviders/FeatureSymbologyRenderer.d.ts.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +0 -22
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +0 -48
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +0 -14
- package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.js +0 -27
- package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/WebMercator.d.ts.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/WebMercator.js.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +0 -27
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +0 -174
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +0 -22
- package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +0 -1
- package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +0 -156
- package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +0 -1
- package/lib/esm/tile/map/MapTileAvailability.d.ts +0 -63
- package/lib/esm/tile/map/MapTileAvailability.d.ts.map +0 -1
- package/lib/esm/tile/map/MapTileAvailability.js +0 -225
- package/lib/esm/tile/map/MapTileAvailability.js.map +0 -1
- package/lib/esm/tile/map/MapTileLoader.d.ts +0 -38
- package/lib/esm/tile/map/MapTileLoader.d.ts.map +0 -1
- package/lib/esm/tile/map/MapTileLoader.js +0 -84
- package/lib/esm/tile/map/MapTileLoader.js.map +0 -1
- package/lib/esm/tile/map/UrlUtils.d.ts.map +0 -1
- package/lib/esm/tile/map/UrlUtils.js.map +0 -1
- package/lib/esm/tile/map/WmsCapabilities.d.ts +0 -64
- package/lib/esm/tile/map/WmsCapabilities.d.ts.map +0 -1
- package/lib/esm/tile/map/WmsCapabilities.js +0 -222
- package/lib/esm/tile/map/WmsCapabilities.js.map +0 -1
- package/lib/esm/tile/map/WmsUtilities.d.ts +0 -15
- package/lib/esm/tile/map/WmsUtilities.d.ts.map +0 -1
- package/lib/esm/tile/map/WmsUtilities.js +0 -37
- package/lib/esm/tile/map/WmsUtilities.js.map +0 -1
- package/lib/esm/tile/map/WmtsCapabilities.d.ts +0 -125
- package/lib/esm/tile/map/WmtsCapabilities.d.ts.map +0 -1
- package/lib/esm/tile/map/WmtsCapabilities.js +0 -487
- package/lib/esm/tile/map/WmtsCapabilities.js.map +0 -1
- /package/lib/cjs/{render → internal/render}/RealityMeshGraphicParams.js +0 -0
- /package/lib/cjs/{render → internal/render}/RenderPlanarClassifier.js +0 -0
- /package/lib/cjs/{tile → internal/tile}/map/ImageryProviders/CoordinatesUtils.d.ts +0 -0
- /package/lib/cjs/{tile → internal/tile}/map/ImageryProviders/CoordinatesUtils.js +0 -0
- /package/lib/cjs/{tile → internal/tile}/map/ImageryProviders/FeatureAttributeDrivenSymbology.d.ts +0 -0
- /package/lib/cjs/{tile → internal/tile}/map/ImageryProviders/FeatureAttributeDrivenSymbology.js +0 -0
- /package/lib/cjs/{tile → internal/tile}/map/ImageryProviders/FeatureGeometryRenderer.js +0 -0
- /package/lib/cjs/{tile → internal/tile}/map/ImageryProviders/FeatureSymbologyRenderer.js +0 -0
- /package/lib/cjs/{tile → internal/tile}/map/ImageryProviders/WebMercator.d.ts +0 -0
- /package/lib/cjs/{tile → internal/tile}/map/ImageryProviders/WebMercator.js +0 -0
- /package/lib/cjs/{tile → internal/tile}/map/UrlUtils.d.ts +0 -0
- /package/lib/cjs/{tile → internal/tile}/map/UrlUtils.js +0 -0
- /package/lib/esm/{render → internal/render}/RealityMeshGraphicParams.js +0 -0
- /package/lib/esm/{render → internal/render}/RenderPlanarClassifier.js +0 -0
- /package/lib/esm/{tile → internal/tile}/map/ImageryProviders/CoordinatesUtils.d.ts +0 -0
- /package/lib/esm/{tile → internal/tile}/map/ImageryProviders/CoordinatesUtils.js +0 -0
- /package/lib/esm/{tile → internal/tile}/map/ImageryProviders/FeatureAttributeDrivenSymbology.d.ts +0 -0
- /package/lib/esm/{tile → internal/tile}/map/ImageryProviders/FeatureAttributeDrivenSymbology.js +0 -0
- /package/lib/esm/{tile → internal/tile}/map/ImageryProviders/FeatureGeometryRenderer.js +0 -0
- /package/lib/esm/{tile → internal/tile}/map/ImageryProviders/FeatureSymbologyRenderer.js +0 -0
- /package/lib/esm/{tile → internal/tile}/map/ImageryProviders/WebMercator.d.ts +0 -0
- /package/lib/esm/{tile → internal/tile}/map/ImageryProviders/WebMercator.js +0 -0
- /package/lib/esm/{tile → internal/tile}/map/UrlUtils.d.ts +0 -0
- /package/lib/esm/{tile → internal/tile}/map/UrlUtils.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderCommands.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/RenderCommands.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { Range3d } from \"@itwin/core-geometry\";\nimport { Frustum, FrustumPlanes, RenderMode, ViewFlags } from \"@itwin/core-common\";\nimport { Decorations } from \"../../../render/Decorations\";\nimport { SurfaceType } from \"../../../common/internal/render/SurfaceParams\";\nimport { GraphicList, RenderGraphic } from \"../../../render/RenderGraphic\";\nimport { AnimationBranchState } from \"../../../render/GraphicBranch\";\nimport { BranchStack } from \"./BranchStack\";\nimport { BatchState } from \"./BatchState\";\nimport { BranchState } from \"./BranchState\";\nimport {\n DrawCommands, PopBatchCommand, PopBranchCommand, PopClipCommand, PopCommand, PrimitiveCommand, PushBatchCommand,\n PushBranchCommand, PushClipCommand, PushCommand, PushStateCommand,\n} from \"./DrawCommand\";\nimport { Batch, Branch, Graphic, GraphicsArray } from \"./Graphic\";\nimport { Layer, LayerContainer } from \"./Layer\";\nimport { LayerCommandLists } from \"./LayerCommands\";\nimport { MeshGraphic } from \"./Mesh\";\nimport { Primitive } from \"./Primitive\";\nimport { CompositeFlags, Pass, RenderOrder, RenderPass } from \"./RenderFlags\";\nimport { TargetGraphics } from \"./TargetGraphics\";\nimport { Target } from \"./Target\";\nimport { ClipVolume } from \"./ClipVolume\";\n\n/** A list of DrawCommands to be rendered, ordered by render pass.\n * @internal\n */\nexport class RenderCommands implements Iterable<DrawCommands> {\n private _frustumPlanes?: FrustumPlanes;\n private readonly _scratchFrustum = new Frustum();\n private readonly _scratchRange = new Range3d();\n private readonly _commands = new Array<DrawCommands>(RenderPass.COUNT);\n private _target: Target;\n private _stack: BranchStack; // refers to the Target's BranchStack\n private _batchState: BatchState; // refers to the Target's BatchState\n private _forcedRenderPass: RenderPass = RenderPass.None;\n private _addLayersAsNormalGraphics = false;\n private _opaqueOverrides = false;\n private _translucentOverrides = false;\n private _addTranslucentAsOpaque = false; // true when rendering for _ReadPixels to force translucent items to be drawn in opaque pass.\n private readonly _layers: LayerCommandLists;\n\n public get target(): Target { return this._target; }\n\n public [Symbol.iterator](): Iterator<DrawCommands> {\n return this._commands[Symbol.iterator]();\n }\n\n public get isEmpty(): boolean {\n for (const commands of this._commands)\n if (0 < commands.length)\n return false;\n\n return true;\n }\n\n public get isDrawingLayers() {\n switch (this._forcedRenderPass) {\n case RenderPass.OpaqueLayers:\n case RenderPass.TranslucentLayers:\n case RenderPass.OverlayLayers:\n return true;\n default:\n return false;\n }\n }\n\n public get currentViewFlags(): ViewFlags { return this._stack.top.viewFlags; }\n public get compositeFlags(): CompositeFlags {\n let flags = CompositeFlags.None;\n if (this.hasCommands(RenderPass.Translucent))\n flags |= CompositeFlags.Translucent;\n\n if (this.hasCommands(RenderPass.Hilite) || this.hasCommands(RenderPass.HiliteClassification) || this.hasCommands(RenderPass.HilitePlanarClassification))\n flags |= CompositeFlags.Hilite;\n\n if (this.target.wantAmbientOcclusion)\n flags |= CompositeFlags.AmbientOcclusion;\n\n return flags;\n }\n\n private get _curBatch(): Batch | undefined { return this._batchState.currentBatch; }\n\n public hasCommands(pass: RenderPass): boolean { return 0 !== this.getCommands(pass).length; }\n public isOpaquePass(pass: RenderPass): boolean { return pass >= RenderPass.OpaqueLinear && pass <= RenderPass.OpaqueGeneral; }\n\n constructor(target: Target, stack: BranchStack, batchState: BatchState) {\n this._target = target;\n this._stack = stack;\n this._batchState = batchState;\n this._layers = new LayerCommandLists(this);\n\n for (let i = 0; i < RenderPass.COUNT; ++i)\n this._commands[i] = [];\n }\n\n public reset(target: Target, stack: BranchStack, batchState: BatchState): void {\n this._target = target;\n this._stack = stack;\n this._batchState = batchState;\n this.clear();\n }\n\n public collectGraphicsForPlanarProjection(scene: GraphicList): void {\n assert(this._forcedRenderPass === RenderPass.None);\n assert(!this._addLayersAsNormalGraphics);\n\n this._addLayersAsNormalGraphics = true;\n this.addGraphics(scene);\n this._addLayersAsNormalGraphics = false;\n }\n\n public addGraphics(scene: GraphicList, forcedPass: RenderPass = RenderPass.None): void {\n this._forcedRenderPass = forcedPass;\n scene.forEach((entry: RenderGraphic) => (entry as Graphic).addCommands(this));\n this._forcedRenderPass = RenderPass.None;\n }\n\n /** Add backgroundMap graphics to their own render pass. */\n public addBackgroundMapGraphics(backgroundMapGraphics: GraphicList): void {\n this._forcedRenderPass = RenderPass.BackgroundMap;\n backgroundMapGraphics.forEach((entry: RenderGraphic) => (entry as Graphic).addCommands(this));\n this._forcedRenderPass = RenderPass.None;\n }\n /** Add overlay graphics to the world overlay pass */\n public addOverlayGraphics(overlayGraphics: GraphicList): void {\n this._forcedRenderPass = RenderPass.WorldOverlay;\n overlayGraphics.forEach((entry: RenderGraphic) => (entry as Graphic).addCommands(this));\n this._forcedRenderPass = RenderPass.None;\n }\n\n public addDecorations(dec: GraphicList, forcedPass: RenderPass = RenderPass.None): void {\n this._forcedRenderPass = forcedPass;\n for (const entry of dec) {\n (entry as Graphic).addCommands(this);\n }\n\n this._forcedRenderPass = RenderPass.None;\n }\n\n public addWorldDecorations(decs: GraphicList): void {\n const world = this.target.getWorldDecorations(decs);\n this.pushAndPopBranch(world, () => {\n for (const entry of world.branch.entries) {\n (entry as Graphic).addCommands(this);\n }\n });\n }\n\n private addPickableDecorations(decs: Decorations): void {\n if (undefined !== decs.normal) {\n for (const normal of decs.normal) {\n const gf = normal as Graphic;\n if (gf.isPickable)\n gf.addCommands(this);\n }\n }\n\n if (undefined !== decs.world) {\n const world = this.target.getWorldDecorations(decs.world);\n this.pushAndPopBranch(world, () => {\n for (const gf of world.branch.entries) {\n if ((gf as Graphic).isPickable)\n (gf as Graphic).addCommands(this);\n }\n });\n }\n }\n\n public addBackground(gf?: Graphic): void {\n if (undefined === gf)\n return;\n\n assert(RenderPass.None === this._forcedRenderPass);\n\n this._forcedRenderPass = RenderPass.Background;\n this.pushAndPopState(this.target.decorationsState, () => gf.addCommands(this));\n this._forcedRenderPass = RenderPass.None;\n }\n\n public addSkyBox(gf?: Graphic): void {\n if (undefined === gf)\n return;\n\n assert(RenderPass.None === this._forcedRenderPass);\n\n this._forcedRenderPass = RenderPass.SkyBox;\n this.pushAndPopState(this.target.decorationsState, () => gf.addCommands(this));\n this._forcedRenderPass = RenderPass.None;\n }\n\n public addPrimitiveCommand(command: PrimitiveCommand, pass?: Pass): void {\n if (undefined === pass)\n pass = command.getPass(this.target);\n\n if (\"none\" === pass) // Edges will return none if they don't want to draw at all (edges not turned on).\n return;\n\n if (RenderPass.None !== this._forcedRenderPass) {\n // Add the command to the forced render pass (background).\n this.getCommands(this._forcedRenderPass).push(command);\n return;\n }\n\n if (!command.hasFeatures) {\n // Draw in general opaque pass so they are not in pick data.\n switch (pass) {\n case \"opaque-linear\":\n case \"opaque-planar\":\n pass = \"opaque\";\n break;\n case \"opaque-planar-translucent\":\n pass = \"opaque-translucent\";\n break;\n }\n }\n\n const haveFeatureOverrides = (this._opaqueOverrides || this._translucentOverrides) && command.opcode && command.hasFeatures;\n\n if (Pass.rendersTranslucent(pass) && this._addTranslucentAsOpaque) {\n switch (command.renderOrder) {\n case RenderOrder.PlanarLitSurface:\n case RenderOrder.PlanarUnlitSurface:\n case RenderOrder.BlankingRegion:\n pass = \"opaque-planar\";\n break;\n case RenderOrder.LitSurface:\n case RenderOrder.UnlitSurface:\n pass = \"opaque\";\n break;\n default:\n pass = \"opaque-linear\";\n break;\n }\n }\n\n const isDoublePass = Pass.rendersOpaqueAndTranslucent(pass);\n const renderTranslucentDuringOpaque = isDoublePass || (this._opaqueOverrides && haveFeatureOverrides);\n if (renderTranslucentDuringOpaque && Pass.rendersTranslucent(pass) && !command.primitive.cachedGeometry.alwaysRenderTranslucent) {\n let opaquePass: RenderPass;\n if (Pass.rendersOpaqueAndTranslucent(pass)) {\n opaquePass = Pass.toOpaquePass(pass);\n } else {\n switch (command.renderOrder) {\n case RenderOrder.PlanarLitSurface:\n case RenderOrder.PlanarUnlitSurface:\n case RenderOrder.BlankingRegion:\n opaquePass = RenderPass.OpaquePlanar;\n break;\n case RenderOrder.LitSurface:\n case RenderOrder.UnlitSurface:\n opaquePass = RenderPass.OpaqueGeneral;\n break;\n default:\n opaquePass = RenderPass.OpaqueLinear;\n break;\n }\n }\n\n this.getCommands(opaquePass).push(command);\n }\n\n const renderOpaqueDuringTranslucent = isDoublePass || (this._translucentOverrides && haveFeatureOverrides);\n if (renderOpaqueDuringTranslucent && Pass.rendersOpaque(pass) && !this._addTranslucentAsOpaque)\n this.getCommands(RenderPass.Translucent).push(command);\n\n if (!Pass.rendersOpaqueAndTranslucent(pass))\n this.getCommands(Pass.toRenderPass(pass)).push(command);\n }\n\n public getCommands(pass: RenderPass): DrawCommands {\n let idx = pass as number;\n assert(idx < this._commands.length);\n if (idx >= this._commands.length)\n idx -= 1;\n\n return this._commands[idx];\n }\n\n public replaceCommands(pass: RenderPass, cmds: DrawCommands): void {\n const idx = pass as number;\n this._commands[idx].splice(0);\n this._commands[idx] = cmds;\n }\n\n public addHiliteBranch(branch: Branch, pass: RenderPass): void {\n this.pushAndPopBranchForPass(pass, branch, () => {\n branch.branch.entries.forEach((entry: RenderGraphic) => (entry as Graphic).addHiliteCommands(this, pass));\n });\n }\n\n public processLayers(container: LayerContainer): void {\n assert(RenderPass.None === this._forcedRenderPass);\n if (RenderPass.None !== this._forcedRenderPass)\n return;\n\n this._forcedRenderPass = container.renderPass;\n this._layers.processLayers(container, () => container.graphic.addCommands(this));\n this._forcedRenderPass = RenderPass.None;\n }\n\n public addLayerCommands(layer: Layer): void {\n if (this._addLayersAsNormalGraphics) {\n // GraphicsCollectorDrawArgs wants to collect graphics to project to a plane for masking.\n // It bypasses PlanProjectionTreeReference.createDrawArgs which would otherwise wrap the graphics in a LayerContainer.\n assert(this._forcedRenderPass === RenderPass.None);\n this._forcedRenderPass = RenderPass.OpaqueGeneral;\n layer.graphic.addCommands(this);\n this._forcedRenderPass = RenderPass.None;\n return;\n }\n\n assert(this.isDrawingLayers);\n if (!this.isDrawingLayers)\n return;\n\n // Let the graphic add its commands. Afterward, pull them out and add them to the LayerCommands.\n this._layers.currentLayer = layer;\n layer.graphic.addCommands(this);\n\n const cmds = this.getCommands(this._forcedRenderPass);\n this._layers.addCommands(cmds);\n\n cmds.length = 0;\n this._layers.currentLayer = undefined;\n }\n\n public addHiliteLayerCommands(graphic: Graphic, pass: RenderPass): void {\n assert(this.isDrawingLayers || this._addLayersAsNormalGraphics);\n if (!this.isDrawingLayers && !this._addLayersAsNormalGraphics)\n return;\n\n const prevPass = this._forcedRenderPass;\n this._forcedRenderPass = RenderPass.None;\n\n graphic.addHiliteCommands(this, pass);\n\n this._forcedRenderPass = prevPass;\n }\n\n private getAnimationBranchState(branch: Branch): AnimationBranchState | undefined {\n const animId = branch.branch.animationId;\n return undefined !== animId ? this.target.animationBranches?.branchStates.get(animId) : undefined;\n }\n\n private pushAndPopBranchForPass(pass: RenderPass, branch: Branch, func: () => void): void {\n assert(!this.isDrawingLayers);\n\n const animState = this.getAnimationBranchState(branch);\n if (animState?.omit)\n return;\n\n assert(RenderPass.None !== pass);\n\n this._stack.pushBranch(branch);\n if (branch.planarClassifier)\n branch.planarClassifier.pushBatchState(this._batchState);\n\n if (branch.secondaryClassifiers)\n branch.secondaryClassifiers.forEach((classifier) => classifier.pushBatchState(this._batchState));\n\n const cmds = this.getCommands(pass);\n const clip = animState?.clip as ClipVolume | undefined;\n const pushClip = undefined !== clip ? new PushClipCommand(clip) : undefined;\n if (pushClip)\n cmds.push(pushClip);\n\n const push = new PushBranchCommand(branch);\n cmds.push(push);\n\n func();\n\n this._stack.pop();\n if (cmds[cmds.length - 1] === push) {\n cmds.pop();\n if (pushClip)\n cmds.pop();\n } else {\n cmds.push(PopBranchCommand.instance);\n if (pushClip)\n cmds.push(PopClipCommand.instance);\n }\n }\n\n private pushAndPop(push: PushCommand, pop: PopCommand, func: () => void): void {\n if (this.isDrawingLayers) {\n this._commands[RenderPass.Hilite].push(push);\n this._layers.pushAndPop(push, pop, func);\n\n const cmds = this._commands[RenderPass.Hilite];\n if (0 < cmds.length && cmds[cmds.length - 1] === push)\n cmds.pop();\n else\n cmds.push(pop);\n\n return;\n }\n\n if (RenderPass.None === this._forcedRenderPass) {\n // Need to make sure the push command precedes any subsequent commands added to any render pass.\n for (const cmds of this._commands)\n cmds.push(push);\n } else {\n // May want to add hilite commands as well - add the push command to that pass.\n this._commands[this._forcedRenderPass].push(push);\n this._commands[RenderPass.Hilite].push(push);\n }\n\n func();\n\n // Remove push command from any passes that didn't receive any commands; add the pop command to any passes that did.\n if (RenderPass.None === this._forcedRenderPass) {\n for (const cmds of this._commands) {\n assert(0 < cmds.length);\n if (0 < cmds.length && cmds[cmds.length - 1] === push)\n cmds.pop();\n else\n cmds.push(pop);\n }\n } else {\n assert(0 < this._commands[this._forcedRenderPass].length);\n assert(0 < this._commands[RenderPass.Hilite].length);\n\n let cmds = this._commands[this._forcedRenderPass];\n if (cmds[cmds.length - 1] === push)\n cmds.pop();\n else\n cmds.push(pop);\n\n cmds = this._commands[RenderPass.Hilite];\n if (cmds[cmds.length - 1] === push)\n cmds.pop();\n else\n cmds.push(pop);\n }\n }\n\n public pushAndPopBranch(branch: Branch, func: () => void): void {\n const animState = this.getAnimationBranchState(branch);\n if (animState?.omit)\n return;\n\n if (animState?.clip)\n this.pushAndPop(new PushClipCommand(animState.clip as ClipVolume), PopClipCommand.instance, () => this._pushAndPopBranch(branch, func));\n else\n this._pushAndPopBranch(branch, func);\n }\n\n private _pushAndPopBranch(branch: Branch, func: () => void): void {\n this._stack.pushBranch(branch);\n if (branch.planarClassifier)\n branch.planarClassifier.pushBatchState(this._batchState);\n\n if (branch.secondaryClassifiers)\n branch.secondaryClassifiers.forEach((classifier) => classifier.pushBatchState(this._batchState));\n\n this.pushAndPop(new PushBranchCommand(branch), PopBranchCommand.instance, func);\n\n this._stack.pop();\n }\n\n public pushAndPopState(state: BranchState, func: () => void): void {\n this._stack.pushState(state);\n this.pushAndPop(new PushStateCommand(state), PopBranchCommand.instance, func);\n this._stack.pop();\n }\n\n public clear(): void {\n assert(this._batchState.isEmpty);\n this._clearCommands();\n }\n\n private _clearCommands(): void {\n this._commands.forEach((cmds: DrawCommands) => cmds.splice(0));\n this._layers.clear();\n }\n\n private initForPickOverlayDecorations(overlays: GraphicList): void {\n for (const overlay of overlays) {\n const gf = overlay as Graphic;\n if (gf.isPickable)\n gf.addCommands(this);\n }\n }\n\n public initForPickOverlays(sceneOverlays: GraphicList, worldOverlayDecorations: GraphicList | undefined, viewOverlayDecorations: GraphicList | undefined): void {\n this._clearCommands();\n\n this._addTranslucentAsOpaque = true;\n\n for (const sceneGf of sceneOverlays)\n (sceneGf as Graphic).addCommands(this);\n\n if (worldOverlayDecorations?.length) {\n this.pushAndPopState(this.target.decorationsState, () => {\n this.initForPickOverlayDecorations(worldOverlayDecorations);\n });\n }\n\n if (viewOverlayDecorations?.length) {\n this.pushAndPopState(this.target.decorationsState.withViewCoords(), () => {\n this.initForPickOverlayDecorations(viewOverlayDecorations);\n });\n }\n\n this._addTranslucentAsOpaque = false;\n }\n\n public initForReadPixels(gfx: TargetGraphics): void {\n this.clear();\n\n // Set flag to force translucent geometry to be put into the opaque pass.\n this._addTranslucentAsOpaque = true;\n\n // Add the scene graphics.\n this.addGraphics(gfx.foreground);\n\n // Also add any pickable decorations.\n if (undefined !== gfx.decorations)\n this.addPickableDecorations(gfx.decorations);\n\n // Also background map is pickable\n this.addBackgroundMapGraphics(gfx.background);\n\n this._addTranslucentAsOpaque = false;\n\n this.setupClassificationByVolume();\n this._layers.outputCommands();\n }\n\n public initForRender(gfx: TargetGraphics): void {\n this.clear();\n\n this.addGraphics(gfx.foreground);\n this.addBackgroundMapGraphics(gfx.background);\n this.addOverlayGraphics(gfx.overlays);\n\n const dynamics = gfx.dynamics;\n if (dynamics && dynamics.length > 0)\n this.addDecorations(dynamics);\n\n const dec = gfx.decorations;\n if (undefined !== dec) {\n this.addBackground(dec.viewBackground as Graphic);\n\n this.addSkyBox(dec.skyBox as Graphic);\n\n if (undefined !== dec.normal && 0 < dec.normal.length)\n this.addGraphics(dec.normal);\n\n if (undefined !== dec.world && 0 < dec.world.length)\n this.addWorldDecorations(dec.world);\n\n this.pushAndPopState(this.target.decorationsState, () => {\n if (undefined !== dec.viewOverlay && 0 < dec.viewOverlay.length)\n this.addDecorations(dec.viewOverlay, RenderPass.ViewOverlay);\n\n if (undefined !== dec.worldOverlay && 0 < dec.worldOverlay.length)\n this.addDecorations(dec.worldOverlay, RenderPass.WorldOverlay);\n });\n }\n\n this.setupClassificationByVolume();\n this._layers.outputCommands();\n }\n\n public addPrimitive(prim: Primitive): void {\n // ###TODO Would be nice if we could detect outside active volume here, but active volume only applies to specific render passes\n // if (this.target.isGeometryOutsideActiveVolume(prim.cachedGeometry))\n // return;\n\n if (undefined !== this._frustumPlanes) { // See if we can cull this primitive.\n if (\"classification\" === prim.getPass(this.target)) {\n const geom = prim.cachedGeometry;\n geom.computeRange(this._scratchRange);\n let frustum = Frustum.fromRange(this._scratchRange, this._scratchFrustum);\n frustum = frustum.transformBy(this.target.currentTransform, frustum);\n if (FrustumPlanes.Containment.Outside === this._frustumPlanes.computeFrustumContainment(frustum)) {\n return;\n }\n }\n }\n\n const command = new PrimitiveCommand(prim);\n this.addPrimitiveCommand(command);\n\n if (RenderPass.None === this._forcedRenderPass && prim.isEdge) {\n const vf: ViewFlags = this.target.currentViewFlags;\n if (vf.renderMode !== RenderMode.Wireframe && vf.hiddenEdges)\n this.getCommands(RenderPass.HiddenEdge).push(command);\n }\n }\n\n public addBranch(branch: Branch): void {\n this.pushAndPopBranch(branch, () => {\n branch.branch.entries.forEach((entry: RenderGraphic) => (entry as Graphic).addCommands(this));\n });\n }\n\n public computeBatchHiliteRenderPass(batch: Batch): RenderPass {\n let pass = RenderPass.Hilite;\n if (batch.graphic instanceof MeshGraphic) {\n const mg = batch.graphic;\n if (SurfaceType.VolumeClassifier === mg.surfaceType)\n pass = RenderPass.HiliteClassification;\n } else if (batch.graphic instanceof GraphicsArray) {\n const ga = batch.graphic;\n if (ga.graphics[0] instanceof MeshGraphic) {\n const mg = ga.graphics[0];\n if (SurfaceType.VolumeClassifier === mg.surfaceType)\n pass = RenderPass.HiliteClassification;\n } else if (ga.graphics[0] instanceof Branch) {\n const b = ga.graphics[0];\n if (b.branch.entries.length > 0 && b.branch.entries[0] instanceof MeshGraphic) {\n const mg = b.branch.entries[0];\n if (SurfaceType.VolumeClassifier === mg.surfaceType)\n pass = RenderPass.HiliteClassification;\n }\n }\n }\n return pass;\n }\n\n public addBatch(batch: Batch): void {\n if (batch.locateOnly && !this.target.isReadPixelsInProgress)\n return;\n\n // Batches (aka element tiles) should only draw during ordinary (translucent or opaque) passes.\n // They may draw during both, or neither.\n // NB: This is no longer true - pickable overlay decorations are defined as Batches. Problem?\n // assert(RenderPass.None === this._forcedRenderPass);\n assert(!this._opaqueOverrides && !this._translucentOverrides);\n assert(undefined === this._curBatch);\n\n // If all features are overridden to be invisible, draw no graphics in this batch\n const overrides = batch.getOverrides(this.target);\n if (overrides.allHidden)\n return;\n\n if (!batch.range.isNull) {\n // ###TODO Would be nice if we could detect outside active volume here, but active volume only applies to specific render passes\n // if (this.target.isRangeOutsideActiveVolume(batch.range))\n // return;\n\n if (undefined !== this._frustumPlanes) {\n let frustum = Frustum.fromRange(batch.range, this._scratchFrustum);\n frustum = frustum.transformBy(this.target.currentTransform, frustum);\n if (FrustumPlanes.Containment.Outside === this._frustumPlanes.computeFrustumContainment(frustum)) {\n return;\n }\n }\n }\n\n const classifier = this._stack.top.planarClassifier;\n\n this._batchState.push(batch, true);\n\n this.pushAndPop(new PushBatchCommand(batch), PopBatchCommand.instance, () => {\n if (this.currentViewFlags.transparency || overrides.anyViewIndependentTranslucent) {\n this._opaqueOverrides = overrides.anyOpaque;\n this._translucentOverrides = overrides.anyTranslucent;\n\n if (undefined !== classifier) {\n this._opaqueOverrides = this._opaqueOverrides || classifier.anyOpaque;\n this._translucentOverrides = this._translucentOverrides || classifier.anyTranslucent;\n }\n }\n\n // If we have an active volume classifier then force all batches for the reality data being classified into a special render pass.\n let savedForcedRenderPass = RenderPass.None;\n if (undefined !== this.target.activeVolumeClassifierModelId && batch.featureTable.batchModelId === this.target.activeVolumeClassifierModelId) {\n savedForcedRenderPass = this._forcedRenderPass;\n this._forcedRenderPass = RenderPass.VolumeClassifiedRealityData;\n }\n\n (batch.graphic as Graphic).addCommands(this);\n\n if (RenderPass.VolumeClassifiedRealityData === this._forcedRenderPass)\n this._forcedRenderPass = savedForcedRenderPass;\n\n // If the batch contains hilited features, need to render them in the hilite pass\n const anyHilited = overrides.anyHilited;\n const planarClassifierHilited = undefined !== classifier && classifier.anyHilited;\n if (anyHilited || planarClassifierHilited)\n (batch.graphic as Graphic).addHiliteCommands(this, planarClassifierHilited ? RenderPass.HilitePlanarClassification : this.computeBatchHiliteRenderPass(batch));\n\n });\n\n this._opaqueOverrides = this._translucentOverrides = false;\n this._batchState.pop();\n }\n\n // Define a culling frustum. Commands associated with Graphics whose ranges do not intersect the frustum will be skipped.\n public setCheckRange(frustum: Frustum) { this._frustumPlanes = FrustumPlanes.fromFrustum(frustum); }\n // Clear the culling frustum.\n public clearCheckRange(): void { this._frustumPlanes = undefined; }\n\n private setupClassificationByVolume(): void {\n // To make it easier to process the classifiers individually, set up a secondary command list for them where they\n // are each separated by their own pushes & pops so that they can easily be drawn individually. This now supports\n // nested branches and batches.\n const groupedCmds = this._commands[RenderPass.Classification];\n const byIndexCmds = this._commands[RenderPass.ClassificationByIndex];\n const pushCommands: DrawCommands = []; // will contain current set of pushes ahead of a primitive\n for (const cmd of groupedCmds) {\n switch (cmd.opcode) {\n case \"pushBranch\":\n case \"pushBatch\":\n case \"pushState\":\n pushCommands.push(cmd);\n break;\n case \"drawPrimitive\":\n for (const pushCmd of pushCommands) {\n byIndexCmds.push(pushCmd);\n }\n byIndexCmds.push(cmd);\n for (let i = pushCommands.length - 1; i >= 0; --i) {\n if (\"pushBatch\" === pushCommands[i].opcode)\n byIndexCmds.push(PopBatchCommand.instance);\n else // should be eith pushBranch or pushState opcode\n byIndexCmds.push(PopBranchCommand.instance);\n }\n break;\n case \"popBatch\":\n case \"popBranch\":\n pushCommands.pop();\n break;\n }\n }\n }\n\n public dump(): Array<{ name: string, count: number }> {\n const dump = [\n { name: \"Primitives\", count: 0 },\n { name: \"Batches\", count: 0 },\n { name: \"Branches\", count: 0 },\n ];\n\n for (const cmds of this._commands) {\n for (const cmd of cmds) {\n let index;\n switch (cmd.opcode) {\n case \"drawPrimitive\":\n index = 0;\n break;\n case \"pushBatch\":\n index = 1;\n break;\n case \"pushBranch\":\n index = 2;\n break;\n default:\n continue;\n }\n\n dump[index].count++;\n }\n }\n\n return dump;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"RenderCommands.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/RenderCommands.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { Range3d } from \"@itwin/core-geometry\";\nimport { Frustum, FrustumPlanes, RenderMode, ViewFlags } from \"@itwin/core-common\";\nimport { Decorations } from \"../../../render/Decorations\";\nimport { SurfaceType } from \"../../../common/internal/render/SurfaceParams\";\nimport { GraphicList, RenderGraphic } from \"../../../render/RenderGraphic\";\nimport { AnimationBranchState } from \"../AnimationBranchState\";\nimport { BranchStack } from \"./BranchStack\";\nimport { BatchState } from \"./BatchState\";\nimport { BranchState } from \"./BranchState\";\nimport {\n DrawCommands, PopBatchCommand, PopBranchCommand, PopClipCommand, PopCommand, PrimitiveCommand, PushBatchCommand,\n PushBranchCommand, PushClipCommand, PushCommand, PushStateCommand,\n} from \"./DrawCommand\";\nimport { Batch, Branch, Graphic, GraphicsArray } from \"./Graphic\";\nimport { Layer, LayerContainer } from \"./Layer\";\nimport { LayerCommandLists } from \"./LayerCommands\";\nimport { MeshGraphic } from \"./Mesh\";\nimport { Primitive } from \"./Primitive\";\nimport { CompositeFlags, Pass, RenderOrder, RenderPass } from \"./RenderFlags\";\nimport { TargetGraphics } from \"./TargetGraphics\";\nimport { Target } from \"./Target\";\nimport { ClipVolume } from \"./ClipVolume\";\n\n/** A list of DrawCommands to be rendered, ordered by render pass.\n * @internal\n */\nexport class RenderCommands implements Iterable<DrawCommands> {\n private _frustumPlanes?: FrustumPlanes;\n private readonly _scratchFrustum = new Frustum();\n private readonly _scratchRange = new Range3d();\n private readonly _commands = new Array<DrawCommands>(RenderPass.COUNT);\n private _target: Target;\n private _stack: BranchStack; // refers to the Target's BranchStack\n private _batchState: BatchState; // refers to the Target's BatchState\n private _forcedRenderPass: RenderPass = RenderPass.None;\n private _addLayersAsNormalGraphics = false;\n private _opaqueOverrides = false;\n private _translucentOverrides = false;\n private _addTranslucentAsOpaque = false; // true when rendering for _ReadPixels to force translucent items to be drawn in opaque pass.\n private readonly _layers: LayerCommandLists;\n\n public get target(): Target { return this._target; }\n\n public [Symbol.iterator](): Iterator<DrawCommands> {\n return this._commands[Symbol.iterator]();\n }\n\n public get isEmpty(): boolean {\n for (const commands of this._commands)\n if (0 < commands.length)\n return false;\n\n return true;\n }\n\n public get isDrawingLayers() {\n switch (this._forcedRenderPass) {\n case RenderPass.OpaqueLayers:\n case RenderPass.TranslucentLayers:\n case RenderPass.OverlayLayers:\n return true;\n default:\n return false;\n }\n }\n\n public get currentViewFlags(): ViewFlags { return this._stack.top.viewFlags; }\n public get compositeFlags(): CompositeFlags {\n let flags = CompositeFlags.None;\n if (this.hasCommands(RenderPass.Translucent))\n flags |= CompositeFlags.Translucent;\n\n if (this.hasCommands(RenderPass.Hilite) || this.hasCommands(RenderPass.HiliteClassification) || this.hasCommands(RenderPass.HilitePlanarClassification))\n flags |= CompositeFlags.Hilite;\n\n if (this.target.wantAmbientOcclusion)\n flags |= CompositeFlags.AmbientOcclusion;\n\n return flags;\n }\n\n private get _curBatch(): Batch | undefined { return this._batchState.currentBatch; }\n\n public hasCommands(pass: RenderPass): boolean { return 0 !== this.getCommands(pass).length; }\n public isOpaquePass(pass: RenderPass): boolean { return pass >= RenderPass.OpaqueLinear && pass <= RenderPass.OpaqueGeneral; }\n\n constructor(target: Target, stack: BranchStack, batchState: BatchState) {\n this._target = target;\n this._stack = stack;\n this._batchState = batchState;\n this._layers = new LayerCommandLists(this);\n\n for (let i = 0; i < RenderPass.COUNT; ++i)\n this._commands[i] = [];\n }\n\n public reset(target: Target, stack: BranchStack, batchState: BatchState): void {\n this._target = target;\n this._stack = stack;\n this._batchState = batchState;\n this.clear();\n }\n\n public collectGraphicsForPlanarProjection(scene: GraphicList): void {\n assert(this._forcedRenderPass === RenderPass.None);\n assert(!this._addLayersAsNormalGraphics);\n\n this._addLayersAsNormalGraphics = true;\n this.addGraphics(scene);\n this._addLayersAsNormalGraphics = false;\n }\n\n public addGraphics(scene: GraphicList, forcedPass: RenderPass = RenderPass.None): void {\n this._forcedRenderPass = forcedPass;\n scene.forEach((entry: RenderGraphic) => (entry as Graphic).addCommands(this));\n this._forcedRenderPass = RenderPass.None;\n }\n\n /** Add backgroundMap graphics to their own render pass. */\n public addBackgroundMapGraphics(backgroundMapGraphics: GraphicList): void {\n this._forcedRenderPass = RenderPass.BackgroundMap;\n backgroundMapGraphics.forEach((entry: RenderGraphic) => (entry as Graphic).addCommands(this));\n this._forcedRenderPass = RenderPass.None;\n }\n /** Add overlay graphics to the world overlay pass */\n public addOverlayGraphics(overlayGraphics: GraphicList): void {\n this._forcedRenderPass = RenderPass.WorldOverlay;\n overlayGraphics.forEach((entry: RenderGraphic) => (entry as Graphic).addCommands(this));\n this._forcedRenderPass = RenderPass.None;\n }\n\n public addDecorations(dec: GraphicList, forcedPass: RenderPass = RenderPass.None): void {\n this._forcedRenderPass = forcedPass;\n for (const entry of dec) {\n (entry as Graphic).addCommands(this);\n }\n\n this._forcedRenderPass = RenderPass.None;\n }\n\n public addWorldDecorations(decs: GraphicList): void {\n const world = this.target.getWorldDecorations(decs);\n this.pushAndPopBranch(world, () => {\n for (const entry of world.branch.entries) {\n (entry as Graphic).addCommands(this);\n }\n });\n }\n\n private addPickableDecorations(decs: Decorations): void {\n if (undefined !== decs.normal) {\n for (const normal of decs.normal) {\n const gf = normal as Graphic;\n if (gf.isPickable)\n gf.addCommands(this);\n }\n }\n\n if (undefined !== decs.world) {\n const world = this.target.getWorldDecorations(decs.world);\n this.pushAndPopBranch(world, () => {\n for (const gf of world.branch.entries) {\n if ((gf as Graphic).isPickable)\n (gf as Graphic).addCommands(this);\n }\n });\n }\n }\n\n public addBackground(gf?: Graphic): void {\n if (undefined === gf)\n return;\n\n assert(RenderPass.None === this._forcedRenderPass);\n\n this._forcedRenderPass = RenderPass.Background;\n this.pushAndPopState(this.target.decorationsState, () => gf.addCommands(this));\n this._forcedRenderPass = RenderPass.None;\n }\n\n public addSkyBox(gf?: Graphic): void {\n if (undefined === gf)\n return;\n\n assert(RenderPass.None === this._forcedRenderPass);\n\n this._forcedRenderPass = RenderPass.SkyBox;\n this.pushAndPopState(this.target.decorationsState, () => gf.addCommands(this));\n this._forcedRenderPass = RenderPass.None;\n }\n\n public addPrimitiveCommand(command: PrimitiveCommand, pass?: Pass): void {\n if (undefined === pass)\n pass = command.getPass(this.target);\n\n if (\"none\" === pass) // Edges will return none if they don't want to draw at all (edges not turned on).\n return;\n\n if (RenderPass.None !== this._forcedRenderPass) {\n // Add the command to the forced render pass (background).\n this.getCommands(this._forcedRenderPass).push(command);\n return;\n }\n\n if (!command.hasFeatures) {\n // Draw in general opaque pass so they are not in pick data.\n switch (pass) {\n case \"opaque-linear\":\n case \"opaque-planar\":\n pass = \"opaque\";\n break;\n case \"opaque-planar-translucent\":\n pass = \"opaque-translucent\";\n break;\n }\n }\n\n const haveFeatureOverrides = (this._opaqueOverrides || this._translucentOverrides) && command.opcode && command.hasFeatures;\n\n if (Pass.rendersTranslucent(pass) && this._addTranslucentAsOpaque) {\n switch (command.renderOrder) {\n case RenderOrder.PlanarLitSurface:\n case RenderOrder.PlanarUnlitSurface:\n case RenderOrder.BlankingRegion:\n pass = \"opaque-planar\";\n break;\n case RenderOrder.LitSurface:\n case RenderOrder.UnlitSurface:\n pass = \"opaque\";\n break;\n default:\n pass = \"opaque-linear\";\n break;\n }\n }\n\n const isDoublePass = Pass.rendersOpaqueAndTranslucent(pass);\n const renderTranslucentDuringOpaque = isDoublePass || (this._opaqueOverrides && haveFeatureOverrides);\n if (renderTranslucentDuringOpaque && Pass.rendersTranslucent(pass) && !command.primitive.cachedGeometry.alwaysRenderTranslucent) {\n let opaquePass: RenderPass;\n if (Pass.rendersOpaqueAndTranslucent(pass)) {\n opaquePass = Pass.toOpaquePass(pass);\n } else {\n switch (command.renderOrder) {\n case RenderOrder.PlanarLitSurface:\n case RenderOrder.PlanarUnlitSurface:\n case RenderOrder.BlankingRegion:\n opaquePass = RenderPass.OpaquePlanar;\n break;\n case RenderOrder.LitSurface:\n case RenderOrder.UnlitSurface:\n opaquePass = RenderPass.OpaqueGeneral;\n break;\n default:\n opaquePass = RenderPass.OpaqueLinear;\n break;\n }\n }\n\n this.getCommands(opaquePass).push(command);\n }\n\n const renderOpaqueDuringTranslucent = isDoublePass || (this._translucentOverrides && haveFeatureOverrides);\n if (renderOpaqueDuringTranslucent && Pass.rendersOpaque(pass) && !this._addTranslucentAsOpaque)\n this.getCommands(RenderPass.Translucent).push(command);\n\n if (!Pass.rendersOpaqueAndTranslucent(pass))\n this.getCommands(Pass.toRenderPass(pass)).push(command);\n }\n\n public getCommands(pass: RenderPass): DrawCommands {\n let idx = pass as number;\n assert(idx < this._commands.length);\n if (idx >= this._commands.length)\n idx -= 1;\n\n return this._commands[idx];\n }\n\n public replaceCommands(pass: RenderPass, cmds: DrawCommands): void {\n const idx = pass as number;\n this._commands[idx].splice(0);\n this._commands[idx] = cmds;\n }\n\n public addHiliteBranch(branch: Branch, pass: RenderPass): void {\n this.pushAndPopBranchForPass(pass, branch, () => {\n branch.branch.entries.forEach((entry: RenderGraphic) => (entry as Graphic).addHiliteCommands(this, pass));\n });\n }\n\n public processLayers(container: LayerContainer): void {\n assert(RenderPass.None === this._forcedRenderPass);\n if (RenderPass.None !== this._forcedRenderPass)\n return;\n\n this._forcedRenderPass = container.renderPass;\n this._layers.processLayers(container, () => container.graphic.addCommands(this));\n this._forcedRenderPass = RenderPass.None;\n }\n\n public addLayerCommands(layer: Layer): void {\n if (this._addLayersAsNormalGraphics) {\n // GraphicsCollectorDrawArgs wants to collect graphics to project to a plane for masking.\n // It bypasses PlanProjectionTreeReference.createDrawArgs which would otherwise wrap the graphics in a LayerContainer.\n assert(this._forcedRenderPass === RenderPass.None);\n this._forcedRenderPass = RenderPass.OpaqueGeneral;\n layer.graphic.addCommands(this);\n this._forcedRenderPass = RenderPass.None;\n return;\n }\n\n assert(this.isDrawingLayers);\n if (!this.isDrawingLayers)\n return;\n\n // Let the graphic add its commands. Afterward, pull them out and add them to the LayerCommands.\n this._layers.currentLayer = layer;\n layer.graphic.addCommands(this);\n\n const cmds = this.getCommands(this._forcedRenderPass);\n this._layers.addCommands(cmds);\n\n cmds.length = 0;\n this._layers.currentLayer = undefined;\n }\n\n public addHiliteLayerCommands(graphic: Graphic, pass: RenderPass): void {\n assert(this.isDrawingLayers || this._addLayersAsNormalGraphics);\n if (!this.isDrawingLayers && !this._addLayersAsNormalGraphics)\n return;\n\n const prevPass = this._forcedRenderPass;\n this._forcedRenderPass = RenderPass.None;\n\n graphic.addHiliteCommands(this, pass);\n\n this._forcedRenderPass = prevPass;\n }\n\n private getAnimationBranchState(branch: Branch): AnimationBranchState | undefined {\n const animId = branch.branch.animationId;\n return undefined !== animId ? this.target.animationBranches?.branchStates.get(animId) : undefined;\n }\n\n private pushAndPopBranchForPass(pass: RenderPass, branch: Branch, func: () => void): void {\n assert(!this.isDrawingLayers);\n\n const animState = this.getAnimationBranchState(branch);\n if (animState?.omit)\n return;\n\n assert(RenderPass.None !== pass);\n\n this._stack.pushBranch(branch);\n if (branch.planarClassifier)\n branch.planarClassifier.pushBatchState(this._batchState);\n\n if (branch.secondaryClassifiers)\n branch.secondaryClassifiers.forEach((classifier) => classifier.pushBatchState(this._batchState));\n\n const cmds = this.getCommands(pass);\n const clip = animState?.clip as ClipVolume | undefined;\n const pushClip = undefined !== clip ? new PushClipCommand(clip) : undefined;\n if (pushClip)\n cmds.push(pushClip);\n\n const push = new PushBranchCommand(branch);\n cmds.push(push);\n\n func();\n\n this._stack.pop();\n if (cmds[cmds.length - 1] === push) {\n cmds.pop();\n if (pushClip)\n cmds.pop();\n } else {\n cmds.push(PopBranchCommand.instance);\n if (pushClip)\n cmds.push(PopClipCommand.instance);\n }\n }\n\n private pushAndPop(push: PushCommand, pop: PopCommand, func: () => void): void {\n if (this.isDrawingLayers) {\n this._commands[RenderPass.Hilite].push(push);\n this._layers.pushAndPop(push, pop, func);\n\n const cmds = this._commands[RenderPass.Hilite];\n if (0 < cmds.length && cmds[cmds.length - 1] === push)\n cmds.pop();\n else\n cmds.push(pop);\n\n return;\n }\n\n if (RenderPass.None === this._forcedRenderPass) {\n // Need to make sure the push command precedes any subsequent commands added to any render pass.\n for (const cmds of this._commands)\n cmds.push(push);\n } else {\n // May want to add hilite commands as well - add the push command to that pass.\n this._commands[this._forcedRenderPass].push(push);\n this._commands[RenderPass.Hilite].push(push);\n }\n\n func();\n\n // Remove push command from any passes that didn't receive any commands; add the pop command to any passes that did.\n if (RenderPass.None === this._forcedRenderPass) {\n for (const cmds of this._commands) {\n assert(0 < cmds.length);\n if (0 < cmds.length && cmds[cmds.length - 1] === push)\n cmds.pop();\n else\n cmds.push(pop);\n }\n } else {\n assert(0 < this._commands[this._forcedRenderPass].length);\n assert(0 < this._commands[RenderPass.Hilite].length);\n\n let cmds = this._commands[this._forcedRenderPass];\n if (cmds[cmds.length - 1] === push)\n cmds.pop();\n else\n cmds.push(pop);\n\n cmds = this._commands[RenderPass.Hilite];\n if (cmds[cmds.length - 1] === push)\n cmds.pop();\n else\n cmds.push(pop);\n }\n }\n\n public pushAndPopBranch(branch: Branch, func: () => void): void {\n const animState = this.getAnimationBranchState(branch);\n if (animState?.omit)\n return;\n\n if (animState?.clip)\n this.pushAndPop(new PushClipCommand(animState.clip as ClipVolume), PopClipCommand.instance, () => this._pushAndPopBranch(branch, func));\n else\n this._pushAndPopBranch(branch, func);\n }\n\n private _pushAndPopBranch(branch: Branch, func: () => void): void {\n this._stack.pushBranch(branch);\n if (branch.planarClassifier)\n branch.planarClassifier.pushBatchState(this._batchState);\n\n if (branch.secondaryClassifiers)\n branch.secondaryClassifiers.forEach((classifier) => classifier.pushBatchState(this._batchState));\n\n this.pushAndPop(new PushBranchCommand(branch), PopBranchCommand.instance, func);\n\n this._stack.pop();\n }\n\n public pushAndPopState(state: BranchState, func: () => void): void {\n this._stack.pushState(state);\n this.pushAndPop(new PushStateCommand(state), PopBranchCommand.instance, func);\n this._stack.pop();\n }\n\n public clear(): void {\n assert(this._batchState.isEmpty);\n this._clearCommands();\n }\n\n private _clearCommands(): void {\n this._commands.forEach((cmds: DrawCommands) => cmds.splice(0));\n this._layers.clear();\n }\n\n private initForPickOverlayDecorations(overlays: GraphicList): void {\n for (const overlay of overlays) {\n const gf = overlay as Graphic;\n if (gf.isPickable)\n gf.addCommands(this);\n }\n }\n\n public initForPickOverlays(sceneOverlays: GraphicList, worldOverlayDecorations: GraphicList | undefined, viewOverlayDecorations: GraphicList | undefined): void {\n this._clearCommands();\n\n this._addTranslucentAsOpaque = true;\n\n for (const sceneGf of sceneOverlays)\n (sceneGf as Graphic).addCommands(this);\n\n if (worldOverlayDecorations?.length) {\n this.pushAndPopState(this.target.decorationsState, () => {\n this.initForPickOverlayDecorations(worldOverlayDecorations);\n });\n }\n\n if (viewOverlayDecorations?.length) {\n this.pushAndPopState(this.target.decorationsState.withViewCoords(), () => {\n this.initForPickOverlayDecorations(viewOverlayDecorations);\n });\n }\n\n this._addTranslucentAsOpaque = false;\n }\n\n public initForReadPixels(gfx: TargetGraphics): void {\n this.clear();\n\n // Set flag to force translucent geometry to be put into the opaque pass.\n this._addTranslucentAsOpaque = true;\n\n // Add the scene graphics.\n this.addGraphics(gfx.foreground);\n\n // Also add any pickable decorations.\n if (undefined !== gfx.decorations)\n this.addPickableDecorations(gfx.decorations);\n\n // Also background map is pickable\n this.addBackgroundMapGraphics(gfx.background);\n\n this._addTranslucentAsOpaque = false;\n\n this.setupClassificationByVolume();\n this._layers.outputCommands();\n }\n\n public initForRender(gfx: TargetGraphics): void {\n this.clear();\n\n this.addGraphics(gfx.foreground);\n this.addBackgroundMapGraphics(gfx.background);\n this.addOverlayGraphics(gfx.overlays);\n\n const dynamics = gfx.dynamics;\n if (dynamics && dynamics.length > 0)\n this.addDecorations(dynamics);\n\n const dec = gfx.decorations;\n if (undefined !== dec) {\n this.addBackground(dec.viewBackground as Graphic);\n\n this.addSkyBox(dec.skyBox as Graphic);\n\n if (undefined !== dec.normal && 0 < dec.normal.length)\n this.addGraphics(dec.normal);\n\n if (undefined !== dec.world && 0 < dec.world.length)\n this.addWorldDecorations(dec.world);\n\n this.pushAndPopState(this.target.decorationsState, () => {\n if (undefined !== dec.viewOverlay && 0 < dec.viewOverlay.length)\n this.addDecorations(dec.viewOverlay, RenderPass.ViewOverlay);\n\n if (undefined !== dec.worldOverlay && 0 < dec.worldOverlay.length)\n this.addDecorations(dec.worldOverlay, RenderPass.WorldOverlay);\n });\n }\n\n this.setupClassificationByVolume();\n this._layers.outputCommands();\n }\n\n public addPrimitive(prim: Primitive): void {\n // ###TODO Would be nice if we could detect outside active volume here, but active volume only applies to specific render passes\n // if (this.target.isGeometryOutsideActiveVolume(prim.cachedGeometry))\n // return;\n\n if (undefined !== this._frustumPlanes) { // See if we can cull this primitive.\n if (\"classification\" === prim.getPass(this.target)) {\n const geom = prim.cachedGeometry;\n geom.computeRange(this._scratchRange);\n let frustum = Frustum.fromRange(this._scratchRange, this._scratchFrustum);\n frustum = frustum.transformBy(this.target.currentTransform, frustum);\n if (FrustumPlanes.Containment.Outside === this._frustumPlanes.computeFrustumContainment(frustum)) {\n return;\n }\n }\n }\n\n const command = new PrimitiveCommand(prim);\n this.addPrimitiveCommand(command);\n\n if (RenderPass.None === this._forcedRenderPass && prim.isEdge) {\n const vf: ViewFlags = this.target.currentViewFlags;\n if (vf.renderMode !== RenderMode.Wireframe && vf.hiddenEdges)\n this.getCommands(RenderPass.HiddenEdge).push(command);\n }\n }\n\n public addBranch(branch: Branch): void {\n this.pushAndPopBranch(branch, () => {\n branch.branch.entries.forEach((entry: RenderGraphic) => (entry as Graphic).addCommands(this));\n });\n }\n\n public computeBatchHiliteRenderPass(batch: Batch): RenderPass {\n let pass = RenderPass.Hilite;\n if (batch.graphic instanceof MeshGraphic) {\n const mg = batch.graphic;\n if (SurfaceType.VolumeClassifier === mg.surfaceType)\n pass = RenderPass.HiliteClassification;\n } else if (batch.graphic instanceof GraphicsArray) {\n const ga = batch.graphic;\n if (ga.graphics[0] instanceof MeshGraphic) {\n const mg = ga.graphics[0];\n if (SurfaceType.VolumeClassifier === mg.surfaceType)\n pass = RenderPass.HiliteClassification;\n } else if (ga.graphics[0] instanceof Branch) {\n const b = ga.graphics[0];\n if (b.branch.entries.length > 0 && b.branch.entries[0] instanceof MeshGraphic) {\n const mg = b.branch.entries[0];\n if (SurfaceType.VolumeClassifier === mg.surfaceType)\n pass = RenderPass.HiliteClassification;\n }\n }\n }\n return pass;\n }\n\n public addBatch(batch: Batch): void {\n if (batch.locateOnly && !this.target.isReadPixelsInProgress)\n return;\n\n // Batches (aka element tiles) should only draw during ordinary (translucent or opaque) passes.\n // They may draw during both, or neither.\n // NB: This is no longer true - pickable overlay decorations are defined as Batches. Problem?\n // assert(RenderPass.None === this._forcedRenderPass);\n assert(!this._opaqueOverrides && !this._translucentOverrides);\n assert(undefined === this._curBatch);\n\n // If all features are overridden to be invisible, draw no graphics in this batch\n const overrides = batch.getOverrides(this.target);\n if (overrides.allHidden)\n return;\n\n if (!batch.range.isNull) {\n // ###TODO Would be nice if we could detect outside active volume here, but active volume only applies to specific render passes\n // if (this.target.isRangeOutsideActiveVolume(batch.range))\n // return;\n\n if (undefined !== this._frustumPlanes) {\n let frustum = Frustum.fromRange(batch.range, this._scratchFrustum);\n frustum = frustum.transformBy(this.target.currentTransform, frustum);\n if (FrustumPlanes.Containment.Outside === this._frustumPlanes.computeFrustumContainment(frustum)) {\n return;\n }\n }\n }\n\n const classifier = this._stack.top.planarClassifier;\n\n this._batchState.push(batch, true);\n\n this.pushAndPop(new PushBatchCommand(batch), PopBatchCommand.instance, () => {\n if (this.currentViewFlags.transparency || overrides.anyViewIndependentTranslucent) {\n this._opaqueOverrides = overrides.anyOpaque;\n this._translucentOverrides = overrides.anyTranslucent;\n\n if (undefined !== classifier) {\n this._opaqueOverrides = this._opaqueOverrides || classifier.anyOpaque;\n this._translucentOverrides = this._translucentOverrides || classifier.anyTranslucent;\n }\n }\n\n // If we have an active volume classifier then force all batches for the reality data being classified into a special render pass.\n let savedForcedRenderPass = RenderPass.None;\n if (undefined !== this.target.activeVolumeClassifierModelId && batch.featureTable.batchModelId === this.target.activeVolumeClassifierModelId) {\n savedForcedRenderPass = this._forcedRenderPass;\n this._forcedRenderPass = RenderPass.VolumeClassifiedRealityData;\n }\n\n (batch.graphic as Graphic).addCommands(this);\n\n if (RenderPass.VolumeClassifiedRealityData === this._forcedRenderPass)\n this._forcedRenderPass = savedForcedRenderPass;\n\n // If the batch contains hilited features, need to render them in the hilite pass\n const anyHilited = overrides.anyHilited;\n const planarClassifierHilited = undefined !== classifier && classifier.anyHilited;\n if (anyHilited || planarClassifierHilited)\n (batch.graphic as Graphic).addHiliteCommands(this, planarClassifierHilited ? RenderPass.HilitePlanarClassification : this.computeBatchHiliteRenderPass(batch));\n\n });\n\n this._opaqueOverrides = this._translucentOverrides = false;\n this._batchState.pop();\n }\n\n // Define a culling frustum. Commands associated with Graphics whose ranges do not intersect the frustum will be skipped.\n public setCheckRange(frustum: Frustum) { this._frustumPlanes = FrustumPlanes.fromFrustum(frustum); }\n // Clear the culling frustum.\n public clearCheckRange(): void { this._frustumPlanes = undefined; }\n\n private setupClassificationByVolume(): void {\n // To make it easier to process the classifiers individually, set up a secondary command list for them where they\n // are each separated by their own pushes & pops so that they can easily be drawn individually. This now supports\n // nested branches and batches.\n const groupedCmds = this._commands[RenderPass.Classification];\n const byIndexCmds = this._commands[RenderPass.ClassificationByIndex];\n const pushCommands: DrawCommands = []; // will contain current set of pushes ahead of a primitive\n for (const cmd of groupedCmds) {\n switch (cmd.opcode) {\n case \"pushBranch\":\n case \"pushBatch\":\n case \"pushState\":\n pushCommands.push(cmd);\n break;\n case \"drawPrimitive\":\n for (const pushCmd of pushCommands) {\n byIndexCmds.push(pushCmd);\n }\n byIndexCmds.push(cmd);\n for (let i = pushCommands.length - 1; i >= 0; --i) {\n if (\"pushBatch\" === pushCommands[i].opcode)\n byIndexCmds.push(PopBatchCommand.instance);\n else // should be eith pushBranch or pushState opcode\n byIndexCmds.push(PopBranchCommand.instance);\n }\n break;\n case \"popBatch\":\n case \"popBranch\":\n pushCommands.pop();\n break;\n }\n }\n }\n\n public dump(): Array<{ name: string, count: number }> {\n const dump = [\n { name: \"Primitives\", count: 0 },\n { name: \"Batches\", count: 0 },\n { name: \"Branches\", count: 0 },\n ];\n\n for (const cmds of this._commands) {\n for (const cmd of cmds) {\n let index;\n switch (cmd.opcode) {\n case \"drawPrimitive\":\n index = 0;\n break;\n case \"pushBatch\":\n index = 1;\n break;\n case \"pushBranch\":\n index = 2;\n break;\n default:\n continue;\n }\n\n dump[index].count++;\n }\n }\n\n return dump;\n }\n}\n"]}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @module WebGL
|
|
7
7
|
*/
|
|
8
8
|
import { assert } from "@itwin/core-bentley";
|
|
9
|
-
import { DebugShaderFile } from "
|
|
9
|
+
import { DebugShaderFile } from "../RenderSystemDebugControl";
|
|
10
10
|
import { ShaderProgramParams } from "./DrawCommand";
|
|
11
11
|
import { GL } from "./GL";
|
|
12
12
|
import { UniformHandle } from "./UniformHandle";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShaderProgram.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ShaderProgram.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { DebugShaderFile } from \"../../../render/RenderSystem\";\nimport { AttributeDetails } from \"./AttributeMap\";\nimport { WebGLDisposable } from \"./Disposable\";\nimport { DrawParams, ShaderProgramParams } from \"./DrawCommand\";\nimport { GL } from \"./GL\";\nimport { Batch, Branch } from \"./Graphic\";\nimport { UniformHandle } from \"./UniformHandle\";\nimport { RenderPass } from \"./RenderFlags\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { TechniqueFlags } from \"./TechniqueFlags\";\n\n/* eslint-disable no-restricted-syntax */\n\n/** Flags which control some conditional branches in shader code\n * @internal\n */\nexport const enum ShaderFlags {\n None = 0,\n Monochrome = 1 << 0,\n NonUniformColor = 1 << 1,\n OITFlatAlphaWeight = 1 << 2,\n OITScaleOutput = 1 << 3,\n IgnoreNonLocatable = 1 << 4,\n}\n\n/** Describes the location of a uniform variable within a shader program.\n * @internal\n */\nexport class Uniform {\n private readonly _name: string;\n protected _handle?: UniformHandle;\n\n protected constructor(name: string) { this._name = name; }\n\n public compile(prog: ShaderProgram): boolean {\n assert(!this.isValid);\n if (undefined !== prog.glProgram) {\n this._handle = UniformHandle.create(prog, this._name);\n }\n\n return this.isValid;\n }\n\n public get isValid(): boolean { return undefined !== this._handle; }\n}\n\n/**\n * A function associated with a ProgramUniform which is invoked each time the shader program becomes active.\n * The function is responsible for setting the value of the uniform.\n * @internal\n */\nexport type BindProgramUniform = (uniform: UniformHandle, params: ShaderProgramParams) => void;\n\n/**\n * Describes the location of a uniform variable within a shader program, the value of which does not change while the program is active.\n * The supplied binding function will be invoked once each time the shader becomes active to set the value of the uniform.\n * @internal\n */\nexport class ProgramUniform extends Uniform {\n private readonly _bind: BindProgramUniform;\n\n public constructor(name: string, bind: BindProgramUniform) {\n super(name);\n this._bind = bind;\n }\n\n public bind(params: ShaderProgramParams): void {\n if (undefined !== this._handle) {\n this._bind(this._handle, params);\n }\n }\n}\n\n/**\n * A function associated with a GraphicUniform which is invoked each time a new graphic primitive is rendered using the associated shader.\n * The function is responsible for setting the value of the uniform.\n * @internal\n */\nexport type BindGraphicUniform = (uniform: UniformHandle, params: DrawParams) => void;\n\n/**\n * Describes the location of a uniform variable within a shader program, the value of which is dependent upon the graphic primitive\n * currently being rendered by the program. The supplied binding function will be invoked once for each graphic primitive submitted\n * to the program to set the value of the uniform.\n * @internal\n */\nexport class GraphicUniform extends Uniform {\n private readonly _bind: BindGraphicUniform;\n\n public constructor(name: string, bind: BindGraphicUniform) {\n super(name);\n this._bind = bind;\n }\n\n public bind(params: DrawParams): void {\n if (undefined !== this._handle) {\n this._bind(this._handle, params);\n }\n }\n}\n\n/** Describes the compilation status of a shader program. Programs may be compiled during idle time, or upon first use.\n * @internal\n */\nexport const enum CompileStatus {\n Success, // The program was successfully compiled.\n Failure, // The program failed to compile.\n Uncompiled, // No attempt has yet been made to compile the program.\n}\n\n/** @internal */\nexport class ShaderProgram implements WebGLDisposable {\n public vertSource: string;\n public fragSource: string;\n private _glProgram?: WebGLProgram;\n private _inUse: boolean = false;\n private _status: CompileStatus = CompileStatus.Uncompiled;\n private readonly _programUniforms = new Array<ProgramUniform>();\n private readonly _graphicUniforms = new Array<GraphicUniform>();\n private readonly _attrMap?: Map<string, AttributeDetails>;\n // for debugging purposes...\n public readonly description: string;\n private _fragDescription: string;\n private _vertGNdx: number = -1;\n private _fragGNdx: number = -1;\n private _vertHNdx: number = -1;\n private _fragHNdx: number = -1;\n public readonly outputsToPick;\n\n public constructor(gl: WebGL2RenderingContext, vertSource: string, fragSource: string, attrMap: Map<string, AttributeDetails> | undefined, description: string, fragDescription: string) {\n this.description = description;\n this.outputsToPick = description.includes(\"Overrides\") || description.includes(\"Pick\");\n this._fragDescription = fragDescription;\n this.vertSource = vertSource;\n this.fragSource = fragSource;\n this._attrMap = attrMap;\n\n const glProgram = gl.createProgram();\n this._glProgram = (null === glProgram) ? undefined : glProgram;\n }\n\n public get isDisposed(): boolean { return this._glProgram === undefined; }\n\n public [Symbol.dispose](): void {\n if (!this.isDisposed) {\n assert(!this._inUse);\n System.instance.context.deleteProgram(this._glProgram!);\n this._glProgram = undefined;\n this._status = CompileStatus.Uncompiled;\n }\n }\n\n /** @deprecated in 5.0 Use [Symbol.dispose] instead. */\n public dispose(): void {\n this[Symbol.dispose]();\n }\n\n public get glProgram(): WebGLProgram | undefined { return this._glProgram; }\n public get isUncompiled() { return CompileStatus.Uncompiled === this._status; }\n public get isCompiled() { return CompileStatus.Success === this._status; }\n\n private compileShader(type: GL.ShaderType): WebGLShader | undefined {\n const gl = System.instance.context;\n\n const shader = gl.createShader(type);\n if (null === shader)\n return undefined;\n\n const src = GL.ShaderType.Vertex === type ? this.vertSource : this.fragSource;\n gl.shaderSource(shader, src);\n gl.compileShader(shader);\n const succeeded = gl.getShaderParameter(shader, GL.ShaderParameter.CompileStatus) as boolean;\n if (!succeeded) {\n const compileLog = `${GL.ShaderType.Vertex === type ? \"Vertex\" : \"Fragment\"} shader failed to compile. Errors: ${gl.getShaderInfoLog(shader)} Program description: ${this.description}`;\n throw new Error(compileLog);\n }\n\n if (System.instance.options.debugShaders) {\n const isVS = GL.ShaderType.Vertex === type;\n const desc = isVS ? this.description : this._fragDescription;\n this.saveShaderCode(isVS, desc, src, shader);\n }\n\n return shader;\n }\n\n private linkProgram(vert: WebGLShader, frag: WebGLShader): boolean {\n assert(undefined !== this.glProgram);\n if (undefined === this._glProgram || null === this._glProgram) // because WebGL APIs used Thing|null, not Thing|undefined...\n return false;\n\n const gl = System.instance.context;\n gl.attachShader(this._glProgram, vert);\n gl.attachShader(this._glProgram, frag);\n\n // bind attribute locations before final linking\n if (this._attrMap !== undefined) {\n this._attrMap.forEach((attr: AttributeDetails, key: string) => {\n gl.bindAttribLocation(this._glProgram!, attr.location, key);\n });\n }\n\n gl.linkProgram(this._glProgram);\n\n const linkLog = gl.getProgramInfoLog(this._glProgram);\n gl.validateProgram(this._glProgram);\n\n const succeeded = gl.getProgramParameter(this._glProgram, GL.ProgramParameter.LinkStatus) as boolean;\n if (!succeeded) {\n const validateLog = gl.getProgramInfoLog(this._glProgram);\n const msg = `Shader program failed to link. Link errors: ${linkLog} Validation errors: ${validateLog} Program description: ${this.description}`;\n throw new Error(msg);\n }\n\n // Debug output\n const debugUniforms = false;\n if (debugUniforms) {\n const dbgLog = (x: string) => console.log(x); // eslint-disable-line no-console\n const outSrc = false; // true for source out, false for just varying info\n if (this._fragDescription) {\n let tStr = \"\";\n if (!outSrc) {\n tStr = `${this._fragDescription}`;\n }\n const numUniforms = gl.getProgramParameter(this._glProgram, GL.ProgramParameter.ActiveUniforms);\n const tStr2 = `Active Uniforms: ${numUniforms}`;\n if (tStr2) {\n if (outSrc) {\n dbgLog(\"//===============================================================================================================\");\n dbgLog(this.vertSource);\n dbgLog(\"//========= Num Active Uniforms =========\");\n dbgLog(`${tStr2}\\n`);\n dbgLog(this.fragSource);\n } else {\n dbgLog(`\\n${tStr2} ${tStr}\\n`);\n }\n }\n }\n }\n\n return true;\n }\n\n public compile(forUse: boolean = false): CompileStatus {\n if (System.instance.options.debugShaders && forUse && this._status === CompileStatus.Success)\n this.setDebugShaderUsage();\n\n switch (this._status) {\n case CompileStatus.Failure: return CompileStatus.Failure;\n case CompileStatus.Success: return CompileStatus.Success;\n default: {\n if (this.isDisposed) {\n this._status = CompileStatus.Failure;\n return CompileStatus.Failure;\n }\n break;\n }\n }\n\n this._status = CompileStatus.Failure;\n\n const vert = this.compileShader(GL.ShaderType.Vertex);\n const frag = this.compileShader(GL.ShaderType.Fragment);\n if (undefined !== vert && undefined !== frag)\n if (this.linkProgram(vert, frag) && this.compileUniforms(this._programUniforms) && this.compileUniforms(this._graphicUniforms))\n this._status = CompileStatus.Success;\n\n if (System.instance.options.debugShaders && forUse && this._status === CompileStatus.Success)\n this.setDebugShaderUsage();\n\n if (true !== System.instance.options.preserveShaderSourceCode)\n this.vertSource = this.fragSource = \"\";\n\n return this._status;\n }\n\n public use(params: ShaderProgramParams): boolean {\n if (this.compile(true) !== CompileStatus.Success)\n return false;\n\n assert(undefined !== this._glProgram);\n if (null === this._glProgram || undefined === this._glProgram)\n return false;\n\n assert(!this._inUse);\n this._inUse = true;\n params.context.useProgram(this._glProgram);\n\n for (const uniform of this._programUniforms)\n uniform.bind(params);\n\n return true;\n }\n\n public endUse() {\n this._inUse = false;\n System.instance.context.useProgram(null);\n }\n\n public draw(params: DrawParams): void {\n assert(this._inUse);\n for (const uniform of this._graphicUniforms)\n uniform.bind(params);\n\n params.geometry.draw();\n }\n\n public addProgramUniform(name: string, binding: BindProgramUniform) {\n assert(this.isUncompiled);\n this._programUniforms.push(new ProgramUniform(name, binding));\n }\n\n public addGraphicUniform(name: string, binding: BindGraphicUniform) {\n assert(this.isUncompiled);\n this._graphicUniforms.push(new GraphicUniform(name, binding));\n }\n\n private compileUniforms<T extends Uniform>(uniforms: T[]): boolean {\n for (const uniform of uniforms) {\n if (!uniform.compile(this))\n return false;\n }\n\n return true;\n }\n\n private setDebugShaderUsage() {\n if (!System.instance.options.debugShaders)\n return;\n\n const shaderFiles = System.instance.debugShaderFiles;\n if (this._vertGNdx >= 0)\n shaderFiles[this._vertGNdx].isUsed = true;\n\n if (this._fragGNdx >= 0)\n shaderFiles[this._fragGNdx].isUsed = true;\n\n if (this._vertHNdx >= 0)\n shaderFiles[this._vertHNdx].isUsed = true;\n\n if (this._fragHNdx >= 0)\n shaderFiles[this._fragHNdx].isUsed = true;\n }\n\n private saveShaderCode(isVS: boolean, desc: string, src: string, shader: WebGLShader) {\n // save glsl and hlsl (from Angle and fixed up) in DebugShaderFile\n if (!System.instance.options.debugShaders)\n return;\n\n const shaderFiles = System.instance.debugShaderFiles;\n let sname: string;\n if (desc) {\n sname = desc.split(isVS ? \"//!V! \" : \"//!F! \").join(\"\");\n sname = sname.split(\": \").join(\"-\");\n sname = sname.split(\"; \").join(\"-\");\n } else {\n // need to investigate shaders with no comments to derive names, for now come up with unique name\n sname = `noname-${shaderFiles.length}`;\n }\n\n sname += isVS ? \"_VS\" : \"_FS\";\n const fname = `${sname}.glsl`;\n let dsfNdx = shaderFiles.push(new DebugShaderFile(fname, src, isVS, true, false));\n if (isVS)\n this._vertGNdx = dsfNdx - 1;\n else\n this._fragGNdx = dsfNdx - 1;\n\n const ext2 = System.instance.context.getExtension(\"WEBGL_debug_shaders\");\n if (!ext2)\n return;\n\n const srcH = ext2.getTranslatedShaderSource(shader);\n if (!srcH)\n return;\n\n // TODO: implement WebGL2 specific inputs for gl_VertexID and gl_InstanceID if ever used\n\n // parse and edit srcH to make it compilable\n const fnameH = `${sname}.hlsl`;\n let numTargets = 0; // for gl_Color cases\n let haveGLpos = false;\n let haveGLpntsz = false;\n let haveGLDepth = false;\n let haveGLFrontFacing = false;\n let haveGLPointCoord = false;\n let haveGLFragCoord = false;\n let haveGLFragColorOnly = false; // for only 1 output\n const haveGLFragColor = [false, false, false, false, false, false, false, false];\n const attrs: string[] = new Array<string>();\n const varyings: string[] = new Array<string>();\n const lines = srcH.split(\"\\n\");\n let toss = true;\n for (let ndx = 0; ndx < lines.length;) {\n let line = lines[ndx];\n if (line.indexOf(\"// INITIAL HLSL END\") >= 0)\n toss = true;\n\n if (toss)\n lines.splice(ndx, 1);\n\n if (line.indexOf(\"// INITIAL HLSL BEGIN\") >= 0) {\n toss = false;\n } else if (!toss) { // look for lines that need editing\n if (line.indexOf(\"Varyings\") >= 0) { // save off varyings in either case\n while (ndx + 1 < lines.length && lines[ndx + 1].indexOf(\"static\") >= 0) {\n ++ndx;\n line = lines[ndx].substring(6).trimStart();\n varyings.push(line.substring(0, line.indexOf(\"=\")));\n }\n }\n\n if (isVS) {\n if (line.indexOf(\"Attributes\") >= 0) { // save off attributes\n while (ndx + 1 < lines.length && lines[ndx + 1].indexOf(\"static\") >= 0) {\n ++ndx;\n line = lines[ndx].substring(6).trimStart();\n attrs.push(line.substring(0, line.indexOf(\"=\")));\n }\n } else if (line.indexOf(\"static float4 gl_Position\") >= 0) {\n haveGLpos = true;\n } else if (line.indexOf(\"static float gl_PointSize\") >= 0) {\n haveGLpntsz = true;\n } else if (line.indexOf(\"@@ VERTEX ATTRIBUTES @@\") >= 0) {\n lines[ndx] = \"// @@ VERTEX ATTRIBUTES @@\";\n } else if (line.indexOf(\"@@ MAIN PROLOGUE @@\") >= 0) {\n lines[ndx] = \"// @@ MAIN PROLOGUE @@\\ngetInput(input);\";\n } else if (line.indexOf(\"@@ VERTEX OUTPUT @@\") >= 0) {\n // have to create a VS_OUTPUT struct and a generateOutput function from varyings\n lines[ndx] = \"// @@ VERTEX OUTPUT @@\\nstruct VS_INPUT\\n {\";\n let aNdx = 0;\n for (const tstr of attrs) {\n ++ndx;\n lines.splice(ndx, 0, ` ${tstr}: TEXCOORD${aNdx};`);\n ++aNdx;\n }\n\n ++ndx;\n lines.splice(ndx, 0, \" };\\nvoid getInput(VS_INPUT input) {\");\n for (const tstr of attrs) {\n let t = tstr.indexOf(\"_a\");\n let vName = tstr.substring(t);\n t = vName.indexOf(\" \");\n vName = vName.substring(0, t);\n ++ndx;\n lines.splice(ndx, 0, ` ${vName} = input.${vName};`);\n }\n\n ++ndx;\n lines.splice(ndx, 0, \"}\\nstruct VS_OUTPUT\\n {\");\n if (haveGLpos) {\n ++ndx;\n lines.splice(ndx, 0, \" float4 _v_position : SV_Position;\");\n }\n\n if (haveGLpntsz) {\n ++ndx;\n lines.splice(ndx, 0, \" float gl_PointSize : PointSize;\");\n }\n\n let vNdx = 0;\n for (const tstr of varyings) {\n ++ndx;\n lines.splice(ndx, 0, ` ${tstr}: TEXCOORD${vNdx};`);\n ++vNdx;\n }\n\n ++ndx;\n lines.splice(ndx, 0, \" };\\nVS_OUTPUT generateOutput(VS_INPUT input) {\\n VS_OUTPUT output;\");\n if (haveGLpos) {\n ++ndx;\n lines.splice(ndx, 0, \" output._v_position = gl_Position;\");\n }\n\n if (haveGLpntsz) {\n ++ndx;\n lines.splice(ndx, 0, \" output.gl_PointSize = gl_PointSize;\");\n }\n\n for (const tstr of varyings) {\n let t = tstr.indexOf(\"_v\");\n let vName = tstr.substring(t);\n t = vName.indexOf(\" \");\n vName = vName.substring(0, t);\n ++ndx;\n lines.splice(ndx, 0, ` output.${vName} = ${vName};`);\n }\n\n ++ndx;\n lines.splice(ndx, 0, \" return output;\\n}\");\n }\n } else { // fragment shader\n let tNdx = 0;\n if (line.indexOf(\"static float4 gl_Color[\") >= 0) {\n //\n } else if (line.indexOf(\"gl_Color[0] =\") >= 0) {\n if (numTargets < 1)\n numTargets = 1;\n } else if (line.indexOf(\"gl_Color[1] =\") >= 0) {\n if (numTargets < 2)\n numTargets = 2;\n } else if (line.indexOf(\"gl_Color[2] =\") >= 0) {\n if (numTargets < 3)\n numTargets = 3;\n } else if (line.indexOf(\"gl_Color[3] =\") >= 0) {\n numTargets = 4;\n } else if (line.indexOf(\"gl_Depth\") >= 0) {\n haveGLDepth = true;\n } else if (line.indexOf(\"gl_FrontFacing\") >= 0) {\n haveGLFrontFacing = true;\n } else if (line.indexOf(\"gl_PointCoord\") >= 0) {\n haveGLPointCoord = true;\n } else if (line.indexOf(\"gl_FragCoord\") >= 0) {\n haveGLFragCoord = true;\n } else if ((tNdx = line.indexOf(\"out_FragColor\")) >= 0) {\n const c = line.substring(tNdx + 13, tNdx + 13 + 1);\n if (c === \" \" || c === \"=\")\n haveGLFragColorOnly = true;\n else {\n tNdx = +c;\n haveGLFragColor[tNdx] = true;\n }\n } else if (line.indexOf(\"@@ PIXEL OUTPUT @@\") >= 0) {\n // have to create a VS_OUTPUT struct, a getInputs function (both from varyings),\n // a PS_OUTPUT struct, and a generateOutput function (both based on numTargets or haveGLFragColor)\n lines[ndx] = \"// @@ PIXEL OUTPUT @@\\nstruct VS_OUTPUT\\n {\";\n if (haveGLFragCoord) {\n ++ndx;\n lines.splice(ndx, 0, \" float4 gl_FragCoord : SV_POSITION;\");\n }\n\n let vNdx = 0;\n for (const tstr of varyings) {\n ++ndx;\n lines.splice(ndx, 0, ` ${tstr}: TEXCOORD${vNdx};`);\n ++vNdx;\n }\n\n if (haveGLFrontFacing) {\n ++ndx;\n lines.splice(ndx, 0, \" bool gl_FrontFacing : SV_IsFrontFace;\");\n }\n\n if (haveGLPointCoord) {\n ++ndx;\n lines.splice(ndx, 0, \" float2 gl_PointCoord : PointCoord;\");\n }\n\n ++ndx;\n lines.splice(ndx, 0, \" };\\nvoid getInputs(VS_OUTPUT input) {\");\n if (haveGLFragCoord) {\n ++ndx;\n lines.splice(ndx, 0, \" gl_FragCoord = input.gl_FragCoord;\");\n }\n\n for (const tstr of varyings) {\n let t = tstr.indexOf(\"_v\");\n let vName = tstr.substring(t);\n t = vName.indexOf(\" \");\n vName = vName.substring(0, t);\n ++ndx;\n lines.splice(ndx, 0, ` ${vName} = input.${vName};`);\n }\n\n if (haveGLFrontFacing) {\n ++ndx;\n lines.splice(ndx, 0, \" gl_FrontFacing = input.gl_FrontFacing;\");\n }\n\n if (haveGLPointCoord) {\n ++ndx;\n lines.splice(ndx, 0, \" gl_PointCoord = input.gl_PointCoord;\");\n }\n\n ++ndx;\n lines.splice(ndx, 0, \"}\\nstruct PS_OUTPUT\\n {\");\n let cNdx = 0;\n while (cNdx < numTargets) {\n ++ndx;\n lines.splice(ndx, 0, ` float4 col${cNdx} : SV_TARGET${cNdx};`);\n ++cNdx;\n }\n\n if (haveGLFragColorOnly) {\n ++ndx;\n lines.splice(ndx, 0, \" float4 out_FragColor : SV_TARGET;\");\n } else {\n for (cNdx = 0; cNdx < haveGLFragColor.length; ++cNdx) {\n if (haveGLFragColor[cNdx]) {\n ++ndx;\n lines.splice(ndx, 0, ` float4 out_FragColor${cNdx} : SV_TARGET${cNdx};`);\n }\n }\n }\n\n if (haveGLDepth) {\n ++ndx;\n lines.splice(ndx, 0, \" float gl_Depth : SV_Depth;\");\n }\n\n ++ndx;\n lines.splice(ndx, 0, \" };\\nPS_OUTPUT generateOutput () {\\n PS_OUTPUT output;\");\n cNdx = 0;\n while (cNdx < numTargets) {\n ++ndx;\n lines.splice(ndx, 0, ` output.col${cNdx} = gl_Color[${cNdx}];`);\n ++cNdx;\n }\n\n if (haveGLFragColorOnly) {\n ++ndx;\n lines.splice(ndx, 0, \" output.out_FragColor = out_FragColor;\");\n } else {\n for (cNdx = 0; cNdx < haveGLFragColor.length; ++cNdx) {\n if (haveGLFragColor[cNdx]) {\n ++ndx;\n lines.splice(ndx, 0, ` output.out_FragColor${cNdx} = out_FragColor${cNdx};`);\n }\n }\n }\n\n if (haveGLDepth) {\n ++ndx;\n lines.splice(ndx, 0, \" output.gl_Depth = gl_Depth;\");\n }\n\n ++ndx;\n lines.splice(ndx, 0, \" return output;\\n}\");\n } else if (line.indexOf(\"PS_OUTPUT main\") >= 0) {\n lines[ndx] = `// ${line}\\nPS_OUTPUT main(VS_OUTPUT input){`;\n } else if (line.indexOf(\"@@ MAIN PROLOGUE @@\") >= 0) {\n lines[ndx] = `// ${line}\\ngetInputs(input);`;\n }\n }\n\n ++ndx;\n }\n }\n\n const srcH2 = lines.join(\"\\n\");\n dsfNdx = shaderFiles.push(new DebugShaderFile(fnameH, srcH2, isVS, false, false));\n if (isVS)\n this._vertHNdx = dsfNdx - 1;\n else\n this._fragHNdx = dsfNdx - 1;\n }\n}\n\n/** Context in which ShaderPrograms are executed. Avoids switching shaders unnecessarily.\n * Ensures shader programs are compiled before use and un-bound when scope is disposed.\n * Instances of this class must *only* be declared with the `using` keyword!\n * @internal\n */\nexport class ShaderProgramExecutor {\n private _program?: ShaderProgram;\n private static _params?: ShaderProgramParams;\n\n public constructor(target: Target, pass: RenderPass, program?: ShaderProgram) {\n this.params.init(target, pass);\n this.changeProgram(program);\n }\n\n public static freeParams(): void {\n this._params = undefined;\n }\n\n private _isDisposed = false;\n public get isDisposed(): boolean { return this._isDisposed; }\n\n /** Clears the current program to be executed. This does not free WebGL resources, since those are owned by Techniques. */\n public [Symbol.dispose]() {\n this.changeProgram(undefined);\n ShaderProgramExecutor.freeParams();\n this._isDisposed = true;\n }\n\n /** @deprecated in 5.0 Use [Symbol.dispose] instead. */\n public dispose() {\n this[Symbol.dispose]();\n }\n\n public setProgram(program: ShaderProgram): boolean { return this.changeProgram(program); }\n public get isValid() { return undefined !== this._program; }\n public get target() { return this.params.target; }\n public get renderPass() { return this.params.renderPass; }\n public get params() {\n if (undefined === ShaderProgramExecutor._params)\n ShaderProgramExecutor._params = new ShaderProgramParams();\n\n return ShaderProgramExecutor._params;\n }\n\n public draw(params: DrawParams) {\n assert(this.isValid);\n if (undefined !== this._program) {\n this._program.draw(params);\n }\n }\n public drawInterrupt(params: DrawParams) {\n assert(params.target === this.params.target);\n\n const tech = params.target.techniques.getTechnique(params.geometry.techniqueId);\n const program = tech.getShader(TechniqueFlags.defaults);\n if (this.setProgram(program)) {\n this.draw(params);\n }\n }\n\n public pushBranch(branch: Branch): void { this.target.pushBranch(branch); }\n public popBranch(): void { this.target.popBranch(); }\n public pushBatch(batch: Batch): void { this.target.pushBatch(batch); }\n public popBatch(): void { this.target.popBatch(); }\n\n private changeProgram(program?: ShaderProgram): boolean {\n if (this._program === program) {\n return true;\n } else if (undefined !== this._program) {\n this._program.endUse();\n }\n\n this._program = program;\n if (undefined !== program && !program.use(this.params)) {\n this._program = undefined;\n return false;\n }\n\n return true;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ShaderProgram.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ShaderProgram.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { DebugShaderFile } from \"../RenderSystemDebugControl\";\nimport { AttributeDetails } from \"./AttributeMap\";\nimport { WebGLDisposable } from \"./Disposable\";\nimport { DrawParams, ShaderProgramParams } from \"./DrawCommand\";\nimport { GL } from \"./GL\";\nimport { Batch, Branch } from \"./Graphic\";\nimport { UniformHandle } from \"./UniformHandle\";\nimport { RenderPass } from \"./RenderFlags\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { TechniqueFlags } from \"./TechniqueFlags\";\n\n/* eslint-disable no-restricted-syntax */\n\n/** Flags which control some conditional branches in shader code\n * @internal\n */\nexport const enum ShaderFlags {\n None = 0,\n Monochrome = 1 << 0,\n NonUniformColor = 1 << 1,\n OITFlatAlphaWeight = 1 << 2,\n OITScaleOutput = 1 << 3,\n IgnoreNonLocatable = 1 << 4,\n}\n\n/** Describes the location of a uniform variable within a shader program.\n * @internal\n */\nexport class Uniform {\n private readonly _name: string;\n protected _handle?: UniformHandle;\n\n protected constructor(name: string) { this._name = name; }\n\n public compile(prog: ShaderProgram): boolean {\n assert(!this.isValid);\n if (undefined !== prog.glProgram) {\n this._handle = UniformHandle.create(prog, this._name);\n }\n\n return this.isValid;\n }\n\n public get isValid(): boolean { return undefined !== this._handle; }\n}\n\n/**\n * A function associated with a ProgramUniform which is invoked each time the shader program becomes active.\n * The function is responsible for setting the value of the uniform.\n * @internal\n */\nexport type BindProgramUniform = (uniform: UniformHandle, params: ShaderProgramParams) => void;\n\n/**\n * Describes the location of a uniform variable within a shader program, the value of which does not change while the program is active.\n * The supplied binding function will be invoked once each time the shader becomes active to set the value of the uniform.\n * @internal\n */\nexport class ProgramUniform extends Uniform {\n private readonly _bind: BindProgramUniform;\n\n public constructor(name: string, bind: BindProgramUniform) {\n super(name);\n this._bind = bind;\n }\n\n public bind(params: ShaderProgramParams): void {\n if (undefined !== this._handle) {\n this._bind(this._handle, params);\n }\n }\n}\n\n/**\n * A function associated with a GraphicUniform which is invoked each time a new graphic primitive is rendered using the associated shader.\n * The function is responsible for setting the value of the uniform.\n * @internal\n */\nexport type BindGraphicUniform = (uniform: UniformHandle, params: DrawParams) => void;\n\n/**\n * Describes the location of a uniform variable within a shader program, the value of which is dependent upon the graphic primitive\n * currently being rendered by the program. The supplied binding function will be invoked once for each graphic primitive submitted\n * to the program to set the value of the uniform.\n * @internal\n */\nexport class GraphicUniform extends Uniform {\n private readonly _bind: BindGraphicUniform;\n\n public constructor(name: string, bind: BindGraphicUniform) {\n super(name);\n this._bind = bind;\n }\n\n public bind(params: DrawParams): void {\n if (undefined !== this._handle) {\n this._bind(this._handle, params);\n }\n }\n}\n\n/** Describes the compilation status of a shader program. Programs may be compiled during idle time, or upon first use.\n * @internal\n */\nexport const enum CompileStatus {\n Success, // The program was successfully compiled.\n Failure, // The program failed to compile.\n Uncompiled, // No attempt has yet been made to compile the program.\n}\n\n/** @internal */\nexport class ShaderProgram implements WebGLDisposable {\n public vertSource: string;\n public fragSource: string;\n private _glProgram?: WebGLProgram;\n private _inUse: boolean = false;\n private _status: CompileStatus = CompileStatus.Uncompiled;\n private readonly _programUniforms = new Array<ProgramUniform>();\n private readonly _graphicUniforms = new Array<GraphicUniform>();\n private readonly _attrMap?: Map<string, AttributeDetails>;\n // for debugging purposes...\n public readonly description: string;\n private _fragDescription: string;\n private _vertGNdx: number = -1;\n private _fragGNdx: number = -1;\n private _vertHNdx: number = -1;\n private _fragHNdx: number = -1;\n public readonly outputsToPick;\n\n public constructor(gl: WebGL2RenderingContext, vertSource: string, fragSource: string, attrMap: Map<string, AttributeDetails> | undefined, description: string, fragDescription: string) {\n this.description = description;\n this.outputsToPick = description.includes(\"Overrides\") || description.includes(\"Pick\");\n this._fragDescription = fragDescription;\n this.vertSource = vertSource;\n this.fragSource = fragSource;\n this._attrMap = attrMap;\n\n const glProgram = gl.createProgram();\n this._glProgram = (null === glProgram) ? undefined : glProgram;\n }\n\n public get isDisposed(): boolean { return this._glProgram === undefined; }\n\n public [Symbol.dispose](): void {\n if (!this.isDisposed) {\n assert(!this._inUse);\n System.instance.context.deleteProgram(this._glProgram!);\n this._glProgram = undefined;\n this._status = CompileStatus.Uncompiled;\n }\n }\n\n /** @deprecated in 5.0 Use [Symbol.dispose] instead. */\n public dispose(): void {\n this[Symbol.dispose]();\n }\n\n public get glProgram(): WebGLProgram | undefined { return this._glProgram; }\n public get isUncompiled() { return CompileStatus.Uncompiled === this._status; }\n public get isCompiled() { return CompileStatus.Success === this._status; }\n\n private compileShader(type: GL.ShaderType): WebGLShader | undefined {\n const gl = System.instance.context;\n\n const shader = gl.createShader(type);\n if (null === shader)\n return undefined;\n\n const src = GL.ShaderType.Vertex === type ? this.vertSource : this.fragSource;\n gl.shaderSource(shader, src);\n gl.compileShader(shader);\n const succeeded = gl.getShaderParameter(shader, GL.ShaderParameter.CompileStatus) as boolean;\n if (!succeeded) {\n const compileLog = `${GL.ShaderType.Vertex === type ? \"Vertex\" : \"Fragment\"} shader failed to compile. Errors: ${gl.getShaderInfoLog(shader)} Program description: ${this.description}`;\n throw new Error(compileLog);\n }\n\n if (System.instance.options.debugShaders) {\n const isVS = GL.ShaderType.Vertex === type;\n const desc = isVS ? this.description : this._fragDescription;\n this.saveShaderCode(isVS, desc, src, shader);\n }\n\n return shader;\n }\n\n private linkProgram(vert: WebGLShader, frag: WebGLShader): boolean {\n assert(undefined !== this.glProgram);\n if (undefined === this._glProgram || null === this._glProgram) // because WebGL APIs used Thing|null, not Thing|undefined...\n return false;\n\n const gl = System.instance.context;\n gl.attachShader(this._glProgram, vert);\n gl.attachShader(this._glProgram, frag);\n\n // bind attribute locations before final linking\n if (this._attrMap !== undefined) {\n this._attrMap.forEach((attr: AttributeDetails, key: string) => {\n gl.bindAttribLocation(this._glProgram!, attr.location, key);\n });\n }\n\n gl.linkProgram(this._glProgram);\n\n const linkLog = gl.getProgramInfoLog(this._glProgram);\n gl.validateProgram(this._glProgram);\n\n const succeeded = gl.getProgramParameter(this._glProgram, GL.ProgramParameter.LinkStatus) as boolean;\n if (!succeeded) {\n const validateLog = gl.getProgramInfoLog(this._glProgram);\n const msg = `Shader program failed to link. Link errors: ${linkLog} Validation errors: ${validateLog} Program description: ${this.description}`;\n throw new Error(msg);\n }\n\n // Debug output\n const debugUniforms = false;\n if (debugUniforms) {\n const dbgLog = (x: string) => console.log(x); // eslint-disable-line no-console\n const outSrc = false; // true for source out, false for just varying info\n if (this._fragDescription) {\n let tStr = \"\";\n if (!outSrc) {\n tStr = `${this._fragDescription}`;\n }\n const numUniforms = gl.getProgramParameter(this._glProgram, GL.ProgramParameter.ActiveUniforms);\n const tStr2 = `Active Uniforms: ${numUniforms}`;\n if (tStr2) {\n if (outSrc) {\n dbgLog(\"//===============================================================================================================\");\n dbgLog(this.vertSource);\n dbgLog(\"//========= Num Active Uniforms =========\");\n dbgLog(`${tStr2}\\n`);\n dbgLog(this.fragSource);\n } else {\n dbgLog(`\\n${tStr2} ${tStr}\\n`);\n }\n }\n }\n }\n\n return true;\n }\n\n public compile(forUse: boolean = false): CompileStatus {\n if (System.instance.options.debugShaders && forUse && this._status === CompileStatus.Success)\n this.setDebugShaderUsage();\n\n switch (this._status) {\n case CompileStatus.Failure: return CompileStatus.Failure;\n case CompileStatus.Success: return CompileStatus.Success;\n default: {\n if (this.isDisposed) {\n this._status = CompileStatus.Failure;\n return CompileStatus.Failure;\n }\n break;\n }\n }\n\n this._status = CompileStatus.Failure;\n\n const vert = this.compileShader(GL.ShaderType.Vertex);\n const frag = this.compileShader(GL.ShaderType.Fragment);\n if (undefined !== vert && undefined !== frag)\n if (this.linkProgram(vert, frag) && this.compileUniforms(this._programUniforms) && this.compileUniforms(this._graphicUniforms))\n this._status = CompileStatus.Success;\n\n if (System.instance.options.debugShaders && forUse && this._status === CompileStatus.Success)\n this.setDebugShaderUsage();\n\n if (true !== System.instance.options.preserveShaderSourceCode)\n this.vertSource = this.fragSource = \"\";\n\n return this._status;\n }\n\n public use(params: ShaderProgramParams): boolean {\n if (this.compile(true) !== CompileStatus.Success)\n return false;\n\n assert(undefined !== this._glProgram);\n if (null === this._glProgram || undefined === this._glProgram)\n return false;\n\n assert(!this._inUse);\n this._inUse = true;\n params.context.useProgram(this._glProgram);\n\n for (const uniform of this._programUniforms)\n uniform.bind(params);\n\n return true;\n }\n\n public endUse() {\n this._inUse = false;\n System.instance.context.useProgram(null);\n }\n\n public draw(params: DrawParams): void {\n assert(this._inUse);\n for (const uniform of this._graphicUniforms)\n uniform.bind(params);\n\n params.geometry.draw();\n }\n\n public addProgramUniform(name: string, binding: BindProgramUniform) {\n assert(this.isUncompiled);\n this._programUniforms.push(new ProgramUniform(name, binding));\n }\n\n public addGraphicUniform(name: string, binding: BindGraphicUniform) {\n assert(this.isUncompiled);\n this._graphicUniforms.push(new GraphicUniform(name, binding));\n }\n\n private compileUniforms<T extends Uniform>(uniforms: T[]): boolean {\n for (const uniform of uniforms) {\n if (!uniform.compile(this))\n return false;\n }\n\n return true;\n }\n\n private setDebugShaderUsage() {\n if (!System.instance.options.debugShaders)\n return;\n\n const shaderFiles = System.instance.debugShaderFiles;\n if (this._vertGNdx >= 0)\n shaderFiles[this._vertGNdx].isUsed = true;\n\n if (this._fragGNdx >= 0)\n shaderFiles[this._fragGNdx].isUsed = true;\n\n if (this._vertHNdx >= 0)\n shaderFiles[this._vertHNdx].isUsed = true;\n\n if (this._fragHNdx >= 0)\n shaderFiles[this._fragHNdx].isUsed = true;\n }\n\n private saveShaderCode(isVS: boolean, desc: string, src: string, shader: WebGLShader) {\n // save glsl and hlsl (from Angle and fixed up) in DebugShaderFile\n if (!System.instance.options.debugShaders)\n return;\n\n const shaderFiles = System.instance.debugShaderFiles;\n let sname: string;\n if (desc) {\n sname = desc.split(isVS ? \"//!V! \" : \"//!F! \").join(\"\");\n sname = sname.split(\": \").join(\"-\");\n sname = sname.split(\"; \").join(\"-\");\n } else {\n // need to investigate shaders with no comments to derive names, for now come up with unique name\n sname = `noname-${shaderFiles.length}`;\n }\n\n sname += isVS ? \"_VS\" : \"_FS\";\n const fname = `${sname}.glsl`;\n let dsfNdx = shaderFiles.push(new DebugShaderFile(fname, src, isVS, true, false));\n if (isVS)\n this._vertGNdx = dsfNdx - 1;\n else\n this._fragGNdx = dsfNdx - 1;\n\n const ext2 = System.instance.context.getExtension(\"WEBGL_debug_shaders\");\n if (!ext2)\n return;\n\n const srcH = ext2.getTranslatedShaderSource(shader);\n if (!srcH)\n return;\n\n // TODO: implement WebGL2 specific inputs for gl_VertexID and gl_InstanceID if ever used\n\n // parse and edit srcH to make it compilable\n const fnameH = `${sname}.hlsl`;\n let numTargets = 0; // for gl_Color cases\n let haveGLpos = false;\n let haveGLpntsz = false;\n let haveGLDepth = false;\n let haveGLFrontFacing = false;\n let haveGLPointCoord = false;\n let haveGLFragCoord = false;\n let haveGLFragColorOnly = false; // for only 1 output\n const haveGLFragColor = [false, false, false, false, false, false, false, false];\n const attrs: string[] = new Array<string>();\n const varyings: string[] = new Array<string>();\n const lines = srcH.split(\"\\n\");\n let toss = true;\n for (let ndx = 0; ndx < lines.length;) {\n let line = lines[ndx];\n if (line.indexOf(\"// INITIAL HLSL END\") >= 0)\n toss = true;\n\n if (toss)\n lines.splice(ndx, 1);\n\n if (line.indexOf(\"// INITIAL HLSL BEGIN\") >= 0) {\n toss = false;\n } else if (!toss) { // look for lines that need editing\n if (line.indexOf(\"Varyings\") >= 0) { // save off varyings in either case\n while (ndx + 1 < lines.length && lines[ndx + 1].indexOf(\"static\") >= 0) {\n ++ndx;\n line = lines[ndx].substring(6).trimStart();\n varyings.push(line.substring(0, line.indexOf(\"=\")));\n }\n }\n\n if (isVS) {\n if (line.indexOf(\"Attributes\") >= 0) { // save off attributes\n while (ndx + 1 < lines.length && lines[ndx + 1].indexOf(\"static\") >= 0) {\n ++ndx;\n line = lines[ndx].substring(6).trimStart();\n attrs.push(line.substring(0, line.indexOf(\"=\")));\n }\n } else if (line.indexOf(\"static float4 gl_Position\") >= 0) {\n haveGLpos = true;\n } else if (line.indexOf(\"static float gl_PointSize\") >= 0) {\n haveGLpntsz = true;\n } else if (line.indexOf(\"@@ VERTEX ATTRIBUTES @@\") >= 0) {\n lines[ndx] = \"// @@ VERTEX ATTRIBUTES @@\";\n } else if (line.indexOf(\"@@ MAIN PROLOGUE @@\") >= 0) {\n lines[ndx] = \"// @@ MAIN PROLOGUE @@\\ngetInput(input);\";\n } else if (line.indexOf(\"@@ VERTEX OUTPUT @@\") >= 0) {\n // have to create a VS_OUTPUT struct and a generateOutput function from varyings\n lines[ndx] = \"// @@ VERTEX OUTPUT @@\\nstruct VS_INPUT\\n {\";\n let aNdx = 0;\n for (const tstr of attrs) {\n ++ndx;\n lines.splice(ndx, 0, ` ${tstr}: TEXCOORD${aNdx};`);\n ++aNdx;\n }\n\n ++ndx;\n lines.splice(ndx, 0, \" };\\nvoid getInput(VS_INPUT input) {\");\n for (const tstr of attrs) {\n let t = tstr.indexOf(\"_a\");\n let vName = tstr.substring(t);\n t = vName.indexOf(\" \");\n vName = vName.substring(0, t);\n ++ndx;\n lines.splice(ndx, 0, ` ${vName} = input.${vName};`);\n }\n\n ++ndx;\n lines.splice(ndx, 0, \"}\\nstruct VS_OUTPUT\\n {\");\n if (haveGLpos) {\n ++ndx;\n lines.splice(ndx, 0, \" float4 _v_position : SV_Position;\");\n }\n\n if (haveGLpntsz) {\n ++ndx;\n lines.splice(ndx, 0, \" float gl_PointSize : PointSize;\");\n }\n\n let vNdx = 0;\n for (const tstr of varyings) {\n ++ndx;\n lines.splice(ndx, 0, ` ${tstr}: TEXCOORD${vNdx};`);\n ++vNdx;\n }\n\n ++ndx;\n lines.splice(ndx, 0, \" };\\nVS_OUTPUT generateOutput(VS_INPUT input) {\\n VS_OUTPUT output;\");\n if (haveGLpos) {\n ++ndx;\n lines.splice(ndx, 0, \" output._v_position = gl_Position;\");\n }\n\n if (haveGLpntsz) {\n ++ndx;\n lines.splice(ndx, 0, \" output.gl_PointSize = gl_PointSize;\");\n }\n\n for (const tstr of varyings) {\n let t = tstr.indexOf(\"_v\");\n let vName = tstr.substring(t);\n t = vName.indexOf(\" \");\n vName = vName.substring(0, t);\n ++ndx;\n lines.splice(ndx, 0, ` output.${vName} = ${vName};`);\n }\n\n ++ndx;\n lines.splice(ndx, 0, \" return output;\\n}\");\n }\n } else { // fragment shader\n let tNdx = 0;\n if (line.indexOf(\"static float4 gl_Color[\") >= 0) {\n //\n } else if (line.indexOf(\"gl_Color[0] =\") >= 0) {\n if (numTargets < 1)\n numTargets = 1;\n } else if (line.indexOf(\"gl_Color[1] =\") >= 0) {\n if (numTargets < 2)\n numTargets = 2;\n } else if (line.indexOf(\"gl_Color[2] =\") >= 0) {\n if (numTargets < 3)\n numTargets = 3;\n } else if (line.indexOf(\"gl_Color[3] =\") >= 0) {\n numTargets = 4;\n } else if (line.indexOf(\"gl_Depth\") >= 0) {\n haveGLDepth = true;\n } else if (line.indexOf(\"gl_FrontFacing\") >= 0) {\n haveGLFrontFacing = true;\n } else if (line.indexOf(\"gl_PointCoord\") >= 0) {\n haveGLPointCoord = true;\n } else if (line.indexOf(\"gl_FragCoord\") >= 0) {\n haveGLFragCoord = true;\n } else if ((tNdx = line.indexOf(\"out_FragColor\")) >= 0) {\n const c = line.substring(tNdx + 13, tNdx + 13 + 1);\n if (c === \" \" || c === \"=\")\n haveGLFragColorOnly = true;\n else {\n tNdx = +c;\n haveGLFragColor[tNdx] = true;\n }\n } else if (line.indexOf(\"@@ PIXEL OUTPUT @@\") >= 0) {\n // have to create a VS_OUTPUT struct, a getInputs function (both from varyings),\n // a PS_OUTPUT struct, and a generateOutput function (both based on numTargets or haveGLFragColor)\n lines[ndx] = \"// @@ PIXEL OUTPUT @@\\nstruct VS_OUTPUT\\n {\";\n if (haveGLFragCoord) {\n ++ndx;\n lines.splice(ndx, 0, \" float4 gl_FragCoord : SV_POSITION;\");\n }\n\n let vNdx = 0;\n for (const tstr of varyings) {\n ++ndx;\n lines.splice(ndx, 0, ` ${tstr}: TEXCOORD${vNdx};`);\n ++vNdx;\n }\n\n if (haveGLFrontFacing) {\n ++ndx;\n lines.splice(ndx, 0, \" bool gl_FrontFacing : SV_IsFrontFace;\");\n }\n\n if (haveGLPointCoord) {\n ++ndx;\n lines.splice(ndx, 0, \" float2 gl_PointCoord : PointCoord;\");\n }\n\n ++ndx;\n lines.splice(ndx, 0, \" };\\nvoid getInputs(VS_OUTPUT input) {\");\n if (haveGLFragCoord) {\n ++ndx;\n lines.splice(ndx, 0, \" gl_FragCoord = input.gl_FragCoord;\");\n }\n\n for (const tstr of varyings) {\n let t = tstr.indexOf(\"_v\");\n let vName = tstr.substring(t);\n t = vName.indexOf(\" \");\n vName = vName.substring(0, t);\n ++ndx;\n lines.splice(ndx, 0, ` ${vName} = input.${vName};`);\n }\n\n if (haveGLFrontFacing) {\n ++ndx;\n lines.splice(ndx, 0, \" gl_FrontFacing = input.gl_FrontFacing;\");\n }\n\n if (haveGLPointCoord) {\n ++ndx;\n lines.splice(ndx, 0, \" gl_PointCoord = input.gl_PointCoord;\");\n }\n\n ++ndx;\n lines.splice(ndx, 0, \"}\\nstruct PS_OUTPUT\\n {\");\n let cNdx = 0;\n while (cNdx < numTargets) {\n ++ndx;\n lines.splice(ndx, 0, ` float4 col${cNdx} : SV_TARGET${cNdx};`);\n ++cNdx;\n }\n\n if (haveGLFragColorOnly) {\n ++ndx;\n lines.splice(ndx, 0, \" float4 out_FragColor : SV_TARGET;\");\n } else {\n for (cNdx = 0; cNdx < haveGLFragColor.length; ++cNdx) {\n if (haveGLFragColor[cNdx]) {\n ++ndx;\n lines.splice(ndx, 0, ` float4 out_FragColor${cNdx} : SV_TARGET${cNdx};`);\n }\n }\n }\n\n if (haveGLDepth) {\n ++ndx;\n lines.splice(ndx, 0, \" float gl_Depth : SV_Depth;\");\n }\n\n ++ndx;\n lines.splice(ndx, 0, \" };\\nPS_OUTPUT generateOutput () {\\n PS_OUTPUT output;\");\n cNdx = 0;\n while (cNdx < numTargets) {\n ++ndx;\n lines.splice(ndx, 0, ` output.col${cNdx} = gl_Color[${cNdx}];`);\n ++cNdx;\n }\n\n if (haveGLFragColorOnly) {\n ++ndx;\n lines.splice(ndx, 0, \" output.out_FragColor = out_FragColor;\");\n } else {\n for (cNdx = 0; cNdx < haveGLFragColor.length; ++cNdx) {\n if (haveGLFragColor[cNdx]) {\n ++ndx;\n lines.splice(ndx, 0, ` output.out_FragColor${cNdx} = out_FragColor${cNdx};`);\n }\n }\n }\n\n if (haveGLDepth) {\n ++ndx;\n lines.splice(ndx, 0, \" output.gl_Depth = gl_Depth;\");\n }\n\n ++ndx;\n lines.splice(ndx, 0, \" return output;\\n}\");\n } else if (line.indexOf(\"PS_OUTPUT main\") >= 0) {\n lines[ndx] = `// ${line}\\nPS_OUTPUT main(VS_OUTPUT input){`;\n } else if (line.indexOf(\"@@ MAIN PROLOGUE @@\") >= 0) {\n lines[ndx] = `// ${line}\\ngetInputs(input);`;\n }\n }\n\n ++ndx;\n }\n }\n\n const srcH2 = lines.join(\"\\n\");\n dsfNdx = shaderFiles.push(new DebugShaderFile(fnameH, srcH2, isVS, false, false));\n if (isVS)\n this._vertHNdx = dsfNdx - 1;\n else\n this._fragHNdx = dsfNdx - 1;\n }\n}\n\n/** Context in which ShaderPrograms are executed. Avoids switching shaders unnecessarily.\n * Ensures shader programs are compiled before use and un-bound when scope is disposed.\n * Instances of this class must *only* be declared with the `using` keyword!\n * @internal\n */\nexport class ShaderProgramExecutor {\n private _program?: ShaderProgram;\n private static _params?: ShaderProgramParams;\n\n public constructor(target: Target, pass: RenderPass, program?: ShaderProgram) {\n this.params.init(target, pass);\n this.changeProgram(program);\n }\n\n public static freeParams(): void {\n this._params = undefined;\n }\n\n private _isDisposed = false;\n public get isDisposed(): boolean { return this._isDisposed; }\n\n /** Clears the current program to be executed. This does not free WebGL resources, since those are owned by Techniques. */\n public [Symbol.dispose]() {\n this.changeProgram(undefined);\n ShaderProgramExecutor.freeParams();\n this._isDisposed = true;\n }\n\n /** @deprecated in 5.0 Use [Symbol.dispose] instead. */\n public dispose() {\n this[Symbol.dispose]();\n }\n\n public setProgram(program: ShaderProgram): boolean { return this.changeProgram(program); }\n public get isValid() { return undefined !== this._program; }\n public get target() { return this.params.target; }\n public get renderPass() { return this.params.renderPass; }\n public get params() {\n if (undefined === ShaderProgramExecutor._params)\n ShaderProgramExecutor._params = new ShaderProgramParams();\n\n return ShaderProgramExecutor._params;\n }\n\n public draw(params: DrawParams) {\n assert(this.isValid);\n if (undefined !== this._program) {\n this._program.draw(params);\n }\n }\n public drawInterrupt(params: DrawParams) {\n assert(params.target === this.params.target);\n\n const tech = params.target.techniques.getTechnique(params.geometry.techniqueId);\n const program = tech.getShader(TechniqueFlags.defaults);\n if (this.setProgram(program)) {\n this.draw(params);\n }\n }\n\n public pushBranch(branch: Branch): void { this.target.pushBranch(branch); }\n public popBranch(): void { this.target.popBranch(); }\n public pushBatch(batch: Batch): void { this.target.pushBatch(batch); }\n public popBatch(): void { this.target.popBatch(); }\n\n private changeProgram(program?: ShaderProgram): boolean {\n if (this._program === program) {\n return true;\n } else if (undefined !== this._program) {\n this._program.endUse();\n }\n\n this._program = program;\n if (undefined !== program && !program.use(this.params)) {\n this._program = undefined;\n return false;\n }\n\n return true;\n }\n}\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @module WebGL
|
|
3
3
|
*/
|
|
4
4
|
import { ColorDef } from "@itwin/core-common";
|
|
5
|
-
import { RenderPlan } from "
|
|
5
|
+
import { RenderPlan } from "../RenderPlan";
|
|
6
6
|
import { ColorInfo } from "./ColorInfo";
|
|
7
7
|
import { FloatRgba } from "./FloatRGBA";
|
|
8
8
|
import { UniformHandle } from "./UniformHandle";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StyleUniforms.d.ts","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/StyleUniforms.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAgC,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"StyleUniforms.d.ts","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/StyleUniforms.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAgC,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAY,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IACjE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAC/D,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IACnE,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,oBAAoB,CAA2C;IACvE,OAAO,CAAC,YAAY,CAAK;IAElB,OAAO,SAAK;IAEZ,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAarC,OAAO,CAAC,qBAAqB;IAQtB,qBAAqB,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAS9C,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAMhD,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAM/C,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKtD,IAAW,mBAAmB,IAAI,MAAM,CAEvC;IAED,IAAW,cAAc,IAAI,MAAM,CAElC;IAED,IAAW,mBAAmB,IAAI,MAAM,CAEvC;IAED,IAAW,eAAe,IAAI,MAAM,CAEnC;IAED,IAAW,eAAe,aAEzB;IAEM,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAInD,IAAW,eAAe,IAAI,OAAO,CAEpC;IAED,IAAW,mBAAmB,IAAI,SAAS,CAE1C;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StyleUniforms.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/StyleUniforms.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { ColorDef, WhiteOnWhiteReversalSettings } from \"@itwin/core-common\";\nimport { RenderPlan } from \"
|
|
1
|
+
{"version":3,"file":"StyleUniforms.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/StyleUniforms.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { ColorDef, WhiteOnWhiteReversalSettings } from \"@itwin/core-common\";\nimport { RenderPlan } from \"../RenderPlan\";\nimport { ColorInfo } from \"./ColorInfo\";\nimport { FloatRgb, FloatRgba } from \"./FloatRGBA\";\nimport { UniformHandle } from \"./UniformHandle\";\nimport { desync, sync } from \"./Sync\";\n\n/** Maintains state of uniforms associated with the DisplayStyleState.\n * @internal\n */\nexport class StyleUniforms {\n private _bgColor = ColorDef.white;\n private readonly _bgRgba = FloatRgba.fromColorDef(this._bgColor);\n private readonly _bgRgb = FloatRgb.fromColorDef(this._bgColor);\n private _monoColor = ColorDef.white;\n private readonly _monoRgb = FloatRgb.fromColorDef(this._monoColor);\n private _wantWoWReversal = true;\n private _wowReversalSettings = WhiteOnWhiteReversalSettings.fromJSON();\n private _bgIntensity = 0;\n\n public syncKey = 0;\n\n public update(plan: RenderPlan): void {\n if (this._bgColor.equals(plan.bgColor) && this._monoColor.equals(plan.monoColor) && this._wowReversalSettings.equals(plan.whiteOnWhiteReversal))\n return;\n\n desync(this);\n\n this._monoColor = plan.monoColor;\n this._monoRgb.setColorDef(plan.monoColor);\n this._wowReversalSettings = plan.whiteOnWhiteReversal;\n\n this.updateBackgroundColor(plan.bgColor);\n }\n\n private updateBackgroundColor(bgColor: ColorDef): void {\n this._bgColor = bgColor;\n this._bgRgba.setColorDef(bgColor);\n this._bgRgb.setColorDef(bgColor);\n this._wantWoWReversal = this._wowReversalSettings.ignoreBackgroundColor || this._bgRgb.isWhite;\n this._bgIntensity = this._bgRgb.red * 0.3 + this._bgRgb.green * 0.59 + this._bgRgb.blue * 0.11;\n }\n\n public changeBackgroundColor(bgColor: ColorDef): void {\n if (bgColor.equals(this._bgColor))\n return;\n\n desync(this);\n this.updateBackgroundColor(bgColor);\n }\n\n // vec4\n public bindBackgroundRgba(uniform: UniformHandle): void {\n if (!sync(this, uniform))\n this._bgRgba.bind(uniform);\n }\n\n // vec3\n public bindBackgroundRgb(uniform: UniformHandle): void {\n if (!sync(this, uniform))\n this._bgRgb.bind(uniform);\n }\n\n // vec3\n public bindMonochromeRgb(uniform: UniformHandle): void {\n if (!sync(this, uniform))\n this._monoRgb.bind(uniform);\n }\n\n public get backgroundIntensity(): number {\n return this._bgIntensity;\n }\n\n public get backgroundTbgr(): number {\n return this._bgColor.tbgr;\n }\n\n public get backgroundHexString(): string {\n return this._bgColor.toHexString();\n }\n\n public get backgroundAlpha(): number {\n return this._bgRgba.alpha;\n }\n\n public get backgroundColor() {\n return this._bgColor;\n }\n\n public cloneBackgroundRgba(result: FloatRgba): void {\n this._bgRgba.clone(result);\n }\n\n public get wantWoWReversal(): boolean {\n return this._wantWoWReversal;\n }\n\n public get backgroundColorInfo(): ColorInfo {\n return ColorInfo.createUniform(this._bgRgba);\n }\n}\n"]}
|