@itwin/core-frontend 3.6.0-dev.8 → 4.0.0-dev.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -1
- package/LICENSE.md +1 -1
- package/lib/cjs/AccuDraw.js +1 -1
- package/lib/cjs/AccuDraw.js.map +1 -1
- package/lib/cjs/BriefcaseConnection.d.ts +23 -3
- package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
- package/lib/cjs/BriefcaseConnection.js +11 -3
- package/lib/cjs/BriefcaseConnection.js.map +1 -1
- package/lib/cjs/CheckpointConnection.js +1 -1
- package/lib/cjs/CheckpointConnection.js.map +1 -1
- package/lib/cjs/DisplayStyleState.d.ts +2 -2
- package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
- package/lib/cjs/DisplayStyleState.js +12 -4
- package/lib/cjs/DisplayStyleState.js.map +1 -1
- package/lib/cjs/IModelApp.d.ts +4 -3
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js +4 -6
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +4 -6
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +6 -7
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/IpcApp.d.ts +1 -1
- package/lib/cjs/IpcApp.d.ts.map +1 -1
- package/lib/cjs/IpcApp.js +1 -1
- package/lib/cjs/IpcApp.js.map +1 -1
- package/lib/cjs/NativeApp.d.ts +8 -1
- package/lib/cjs/NativeApp.d.ts.map +1 -1
- package/lib/cjs/NativeApp.js +10 -6
- package/lib/cjs/NativeApp.js.map +1 -1
- package/lib/cjs/NoRenderApp.d.ts.map +1 -1
- package/lib/cjs/NoRenderApp.js +3 -0
- package/lib/cjs/NoRenderApp.js.map +1 -1
- package/lib/cjs/SpatialViewState.d.ts +4 -1
- package/lib/cjs/SpatialViewState.d.ts.map +1 -1
- package/lib/cjs/SpatialViewState.js +19 -5
- package/lib/cjs/SpatialViewState.js.map +1 -1
- package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
- package/lib/cjs/SubCategoriesCache.js +0 -1
- package/lib/cjs/SubCategoriesCache.js.map +1 -1
- package/lib/cjs/Tiles.d.ts +4 -0
- package/lib/cjs/Tiles.d.ts.map +1 -1
- package/lib/cjs/Tiles.js +11 -0
- package/lib/cjs/Tiles.js.map +1 -1
- package/lib/cjs/ViewContext.js +1 -1
- package/lib/cjs/ViewContext.js.map +1 -1
- package/lib/cjs/ViewManager.d.ts.map +1 -1
- package/lib/cjs/ViewManager.js +2 -3
- package/lib/cjs/ViewManager.js.map +1 -1
- package/lib/cjs/ViewState.d.ts +4 -5
- package/lib/cjs/ViewState.d.ts.map +1 -1
- package/lib/cjs/ViewState.js +0 -1
- package/lib/cjs/ViewState.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +53 -4
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +82 -34
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/extension/ExtensionImpl.js +2 -2
- package/lib/cjs/extension/ExtensionImpl.js.map +1 -1
- package/lib/cjs/extension/ExtensionRuntime.js +3 -0
- package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
- package/lib/cjs/render/GraphicBranch.d.ts +3 -0
- package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- package/lib/cjs/render/GraphicBuilder.d.ts +1 -1
- package/lib/cjs/render/GraphicBuilder.js +1 -1
- package/lib/cjs/render/GraphicBuilder.js.map +1 -1
- package/lib/cjs/render/MockRender.d.ts.map +1 -1
- package/lib/cjs/render/MockRender.js +3 -0
- package/lib/cjs/render/MockRender.js.map +1 -1
- package/lib/cjs/render/RealityMeshParams.d.ts +7 -5
- package/lib/cjs/render/RealityMeshParams.d.ts.map +1 -1
- package/lib/cjs/render/RealityMeshParams.js +23 -9
- package/lib/cjs/render/RealityMeshParams.js.map +1 -1
- package/lib/cjs/render/RenderMaterial.d.ts +1 -1
- package/lib/cjs/render/RenderMaterial.d.ts.map +1 -1
- package/lib/cjs/render/RenderMaterial.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +9 -20
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js +4 -10
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/RenderTarget.d.ts +1 -1
- package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
- package/lib/cjs/render/RenderTarget.js +1 -1
- package/lib/cjs/render/RenderTarget.js.map +1 -1
- package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts +3 -4
- package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
- package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
- package/lib/cjs/render/VisibleFeature.d.ts +5 -5
- package/lib/cjs/render/VisibleFeature.js.map +1 -1
- package/lib/cjs/render/primitives/DisplayParams.d.ts.map +1 -1
- package/lib/cjs/render/primitives/DisplayParams.js +2 -1
- package/lib/cjs/render/primitives/DisplayParams.js.map +1 -1
- package/lib/cjs/render/webgl/AttributeBuffers.d.ts +9 -79
- package/lib/cjs/render/webgl/AttributeBuffers.d.ts.map +1 -1
- package/lib/cjs/render/webgl/AttributeBuffers.js +19 -152
- package/lib/cjs/render/webgl/AttributeBuffers.js.map +1 -1
- package/lib/cjs/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BackgroundMapDrape.js +3 -6
- package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/cjs/render/webgl/BranchState.d.ts +3 -0
- package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BranchState.js +5 -0
- package/lib/cjs/render/webgl/BranchState.js.map +1 -1
- package/lib/cjs/render/webgl/BranchUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BranchUniforms.js +0 -8
- package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.d.ts +32 -0
- package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.js +74 -1
- package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/ClipStack.d.ts +0 -1
- package/lib/cjs/render/webgl/ClipStack.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ClipStack.js +2 -6
- package/lib/cjs/render/webgl/ClipStack.js.map +1 -1
- package/lib/cjs/render/webgl/ClipVolume.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ClipVolume.js +1 -5
- package/lib/cjs/render/webgl/ClipVolume.js.map +1 -1
- package/lib/cjs/render/webgl/ClippingProgram.d.ts +3 -2
- package/lib/cjs/render/webgl/ClippingProgram.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ClippingProgram.js +10 -37
- package/lib/cjs/render/webgl/ClippingProgram.js.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.d.ts +2 -2
- package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.js +7 -5
- package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
- package/lib/cjs/render/webgl/EDL.d.ts +40 -0
- package/lib/cjs/render/webgl/EDL.d.ts.map +1 -0
- package/lib/cjs/render/webgl/EDL.js +264 -0
- package/lib/cjs/render/webgl/EDL.js.map +1 -0
- package/lib/cjs/render/webgl/EdgeSettings.js +2 -2
- package/lib/cjs/render/webgl/FeatureOverrides.js +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/cjs/render/webgl/FloatRGBA.d.ts.map +1 -1
- package/lib/cjs/render/webgl/FloatRGBA.js +0 -4
- package/lib/cjs/render/webgl/FloatRGBA.js.map +1 -1
- package/lib/cjs/render/webgl/FrameBuffer.d.ts +4 -0
- package/lib/cjs/render/webgl/FrameBuffer.d.ts.map +1 -1
- package/lib/cjs/render/webgl/FrameBuffer.js +9 -0
- package/lib/cjs/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/cjs/render/webgl/FrustumUniforms.d.ts +7 -0
- package/lib/cjs/render/webgl/FrustumUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/FrustumUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/GLTimer.d.ts.map +1 -1
- package/lib/cjs/render/webgl/GLTimer.js +2 -35
- package/lib/cjs/render/webgl/GLTimer.js.map +1 -1
- package/lib/cjs/render/webgl/Layer.js +2 -2
- package/lib/cjs/render/webgl/LayerCommands.js +2 -2
- package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PlanarClassifier.js +20 -77
- package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/cjs/render/webgl/PlanarTextureProjection.js +1 -1
- package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.d.ts +2 -2
- package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.js +1 -1
- package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.d.ts +3 -1
- package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.js +8 -3
- package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/render/webgl/RealityModelUniforms.d.ts +9 -0
- package/lib/cjs/render/webgl/RealityModelUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RealityModelUniforms.js +50 -0
- package/lib/cjs/render/webgl/RealityModelUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/RenderBuffer.d.ts +1 -1
- package/lib/cjs/render/webgl/RenderBuffer.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RenderBuffer.js +2 -3
- package/lib/cjs/render/webgl/RenderBuffer.js.map +1 -1
- package/lib/cjs/render/webgl/RenderCommands.d.ts +2 -1
- package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RenderCommands.js +46 -38
- package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
- package/lib/cjs/render/webgl/RenderFlags.d.ts +20 -19
- package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RenderFlags.js +12 -12
- package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.d.ts +6 -3
- package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.js +626 -888
- package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/cjs/render/webgl/ScreenSpaceEffect.js +1 -1
- package/lib/cjs/render/webgl/ScreenSpaceEffect.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.d.ts +1 -2
- package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.js +13 -48
- package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.d.ts +1 -2
- package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/cjs/render/webgl/SolarShadowMap.d.ts.map +1 -1
- package/lib/cjs/render/webgl/SolarShadowMap.js +8 -29
- package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/cjs/render/webgl/SurfaceGeometry.js +5 -5
- package/lib/cjs/render/webgl/System.d.ts +10 -10
- package/lib/cjs/render/webgl/System.d.ts.map +1 -1
- package/lib/cjs/render/webgl/System.js +39 -122
- package/lib/cjs/render/webgl/System.js.map +1 -1
- package/lib/cjs/render/webgl/Target.js +7 -7
- package/lib/cjs/render/webgl/Target.js.map +1 -1
- package/lib/cjs/render/webgl/Technique.d.ts +4 -5
- package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Technique.js +16 -25
- package/lib/cjs/render/webgl/Technique.js.map +1 -1
- package/lib/cjs/render/webgl/TechniqueFlags.js +4 -4
- package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/cjs/render/webgl/TechniqueId.d.ts +6 -2
- package/lib/cjs/render/webgl/TechniqueId.d.ts.map +1 -1
- package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
- package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Texture.js +14 -18
- package/lib/cjs/render/webgl/Texture.js.map +1 -1
- package/lib/cjs/render/webgl/ThematicSensors.d.ts +4 -3
- package/lib/cjs/render/webgl/ThematicSensors.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ThematicSensors.js +9 -50
- package/lib/cjs/render/webgl/ThematicSensors.js.map +1 -1
- package/lib/cjs/render/webgl/ThematicUniforms.js +1 -1
- package/lib/cjs/render/webgl/ThematicUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/UniformHandle.d.ts.map +1 -1
- package/lib/cjs/render/webgl/UniformHandle.js +2 -6
- package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
- package/lib/cjs/render/webgl/VisibleTileFeatures.js +5 -5
- package/lib/cjs/render/webgl/glsl/AmbientOcclusion.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +1 -1
- package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Animation.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/Animation.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Animation.js +23 -26
- package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Blur.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/Blur.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Blur.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/ClearPickAndColor.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/ClearPickAndColor.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js +2 -9
- package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/ClearTranslucent.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/ClearTranslucent.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/ClearTranslucent.js +2 -10
- package/lib/cjs/render/webgl/glsl/ClearTranslucent.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Clipping.d.ts +1 -1
- package/lib/cjs/render/webgl/glsl/Clipping.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Clipping.js +5 -36
- package/lib/cjs/render/webgl/glsl/Clipping.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Combine3Textures.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/Combine3Textures.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Combine3Textures.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/CombineTextures.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/CombineTextures.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/CombineTextures.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Common.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Common.js +9 -55
- package/lib/cjs/render/webgl/glsl/Common.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Composite.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/Composite.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Composite.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/CopyColor.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/CopyColor.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/CopyColor.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/CopyPickBuffers.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/CopyPickBuffers.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js +12 -19
- package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/CopyStencil.d.ts +4 -7
- package/lib/cjs/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/CopyStencil.js +2 -39
- package/lib/cjs/render/webgl/glsl/CopyStencil.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/EDL.d.ts +13 -0
- package/lib/cjs/render/webgl/glsl/EDL.d.ts.map +1 -0
- package/lib/cjs/render/webgl/glsl/EDL.js +260 -0
- package/lib/cjs/render/webgl/glsl/EDL.js.map +1 -0
- package/lib/cjs/render/webgl/glsl/EVSMFromDepth.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/EVSMFromDepth.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Edge.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Edge.js +2 -2
- package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +3 -24
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Fragment.d.ts +0 -7
- package/lib/cjs/render/webgl/glsl/Fragment.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Fragment.js +5 -40
- package/lib/cjs/render/webgl/glsl/Fragment.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Instancing.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Instancing.js +1 -5
- package/lib/cjs/render/webgl/glsl/Instancing.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js +0 -2
- package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/PlanarGrid.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/PlanarGrid.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/PlanarGrid.js +2 -12
- package/lib/cjs/render/webgl/glsl/PlanarGrid.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/RealityMesh.js +3 -8
- package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/RenderPass.js +12 -12
- package/lib/cjs/render/webgl/glsl/RenderPass.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/SkyBox.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/SkyBox.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/SkySphere.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/SkySphere.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/SkySphere.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js +1 -1
- package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.js +33 -57
- package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Thematic.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Thematic.js +3 -36
- package/lib/cjs/render/webgl/glsl/Thematic.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Translucency.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Translucency.js +2 -12
- package/lib/cjs/render/webgl/glsl/Translucency.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Vertex.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/Vertex.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Vertex.js +15 -78
- package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Wiremesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Wiremesh.js +2 -5
- package/lib/cjs/render/webgl/glsl/Wiremesh.js.map +1 -1
- package/lib/cjs/tile/BatchedTileIdMap.js +1 -1
- package/lib/cjs/tile/BatchedTileIdMap.js.map +1 -1
- package/lib/cjs/tile/DynamicIModelTile.js +1 -1
- package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +4 -2
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/IModelTile.js +1 -1
- package/lib/cjs/tile/IModelTile.js.map +1 -1
- package/lib/cjs/tile/ImdlReader.d.ts +6 -0
- package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
- package/lib/cjs/tile/ImdlReader.js +20 -7
- package/lib/cjs/tile/ImdlReader.js.map +1 -1
- package/lib/cjs/tile/OrbitGtTileTree.d.ts +14 -1
- package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/OrbitGtTileTree.js +30 -11
- package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.d.ts +0 -3
- package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.js +6 -28
- package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityModelTileTree.d.ts +4 -3
- package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/RealityModelTileTree.js +61 -53
- package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.js +2 -2
- package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/tile/RealityTileTree.d.ts +5 -0
- package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileTree.js +8 -4
- package/lib/cjs/tile/RealityTileTree.js.map +1 -1
- package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
- package/lib/cjs/tile/TileAdmin.js +17 -9
- package/lib/cjs/tile/TileAdmin.js.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.js +1 -1
- package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
- package/lib/cjs/tile/TileTreeReference.d.ts +3 -0
- package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeReference.js +3 -0
- package/lib/cjs/tile/TileTreeReference.js.map +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts +14 -1
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.js +57 -27
- package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.js +9 -9
- package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +14 -2
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js +77 -37
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +65 -52
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +1 -0
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +2 -0
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.d.ts +28 -3
- package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.js +63 -8
- package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.js +3 -2
- package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +12 -2
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js +16 -4
- package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.d.ts +3 -1
- package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.js +2 -0
- package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
- package/lib/cjs/tile/map/MapTile.d.ts +13 -0
- package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTile.js +57 -14
- package/lib/cjs/tile/map/MapTile.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts +44 -4
- package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +131 -11
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts +17 -0
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +26 -0
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/cjs/tile/map/WmtsCapabilities.d.ts +23 -68
- package/lib/cjs/tile/map/WmtsCapabilities.d.ts.map +1 -1
- package/lib/cjs/tile/map/WmtsCapabilities.js +269 -260
- package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/cjs/tools/ClipViewTool.js +2 -2
- package/lib/cjs/tools/ClipViewTool.js.map +1 -1
- package/lib/cjs/tools/MeasureTool.js +2 -2
- package/lib/cjs/tools/MeasureTool.js.map +1 -1
- package/lib/esm/AccuDraw.js +1 -1
- package/lib/esm/AccuDraw.js.map +1 -1
- package/lib/esm/BriefcaseConnection.d.ts +23 -3
- package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
- package/lib/esm/BriefcaseConnection.js +11 -3
- package/lib/esm/BriefcaseConnection.js.map +1 -1
- package/lib/esm/CheckpointConnection.js +1 -1
- package/lib/esm/CheckpointConnection.js.map +1 -1
- package/lib/esm/DisplayStyleState.d.ts +2 -2
- package/lib/esm/DisplayStyleState.d.ts.map +1 -1
- package/lib/esm/DisplayStyleState.js +12 -4
- package/lib/esm/DisplayStyleState.js.map +1 -1
- package/lib/esm/IModelApp.d.ts +4 -3
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js +4 -6
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +4 -6
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +6 -7
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/IpcApp.d.ts +1 -1
- package/lib/esm/IpcApp.d.ts.map +1 -1
- package/lib/esm/IpcApp.js +1 -1
- package/lib/esm/IpcApp.js.map +1 -1
- package/lib/esm/NativeApp.d.ts +8 -1
- package/lib/esm/NativeApp.d.ts.map +1 -1
- package/lib/esm/NativeApp.js +10 -6
- package/lib/esm/NativeApp.js.map +1 -1
- package/lib/esm/NoRenderApp.d.ts.map +1 -1
- package/lib/esm/NoRenderApp.js +3 -0
- package/lib/esm/NoRenderApp.js.map +1 -1
- package/lib/esm/SpatialViewState.d.ts +4 -1
- package/lib/esm/SpatialViewState.d.ts.map +1 -1
- package/lib/esm/SpatialViewState.js +19 -5
- package/lib/esm/SpatialViewState.js.map +1 -1
- package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
- package/lib/esm/SubCategoriesCache.js +0 -1
- package/lib/esm/SubCategoriesCache.js.map +1 -1
- package/lib/esm/Tiles.d.ts +4 -0
- package/lib/esm/Tiles.d.ts.map +1 -1
- package/lib/esm/Tiles.js +11 -0
- package/lib/esm/Tiles.js.map +1 -1
- package/lib/esm/ViewContext.js +1 -1
- package/lib/esm/ViewContext.js.map +1 -1
- package/lib/esm/ViewManager.d.ts.map +1 -1
- package/lib/esm/ViewManager.js +2 -3
- package/lib/esm/ViewManager.js.map +1 -1
- package/lib/esm/ViewState.d.ts +4 -5
- package/lib/esm/ViewState.d.ts.map +1 -1
- package/lib/esm/ViewState.js +0 -1
- package/lib/esm/ViewState.js.map +1 -1
- package/lib/esm/Viewport.d.ts +53 -4
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +83 -35
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/extension/ExtensionImpl.js +2 -2
- package/lib/esm/extension/ExtensionImpl.js.map +1 -1
- package/lib/esm/extension/ExtensionRuntime.js +5 -2
- package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
- package/lib/esm/render/GraphicBranch.d.ts +3 -0
- package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- package/lib/esm/render/GraphicBuilder.d.ts +1 -1
- package/lib/esm/render/GraphicBuilder.js +1 -1
- package/lib/esm/render/GraphicBuilder.js.map +1 -1
- package/lib/esm/render/MockRender.d.ts.map +1 -1
- package/lib/esm/render/MockRender.js +3 -0
- package/lib/esm/render/MockRender.js.map +1 -1
- package/lib/esm/render/RealityMeshParams.d.ts +7 -5
- package/lib/esm/render/RealityMeshParams.d.ts.map +1 -1
- package/lib/esm/render/RealityMeshParams.js +24 -10
- package/lib/esm/render/RealityMeshParams.js.map +1 -1
- package/lib/esm/render/RenderMaterial.d.ts +1 -1
- package/lib/esm/render/RenderMaterial.d.ts.map +1 -1
- package/lib/esm/render/RenderMaterial.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +9 -20
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js +4 -10
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/RenderTarget.d.ts +1 -1
- package/lib/esm/render/RenderTarget.d.ts.map +1 -1
- package/lib/esm/render/RenderTarget.js +1 -1
- package/lib/esm/render/RenderTarget.js.map +1 -1
- package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts +3 -4
- package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
- package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
- package/lib/esm/render/VisibleFeature.d.ts +5 -5
- package/lib/esm/render/VisibleFeature.js.map +1 -1
- package/lib/esm/render/primitives/DisplayParams.d.ts.map +1 -1
- package/lib/esm/render/primitives/DisplayParams.js +2 -1
- package/lib/esm/render/primitives/DisplayParams.js.map +1 -1
- package/lib/esm/render/webgl/AttributeBuffers.d.ts +9 -79
- package/lib/esm/render/webgl/AttributeBuffers.d.ts.map +1 -1
- package/lib/esm/render/webgl/AttributeBuffers.js +16 -144
- package/lib/esm/render/webgl/AttributeBuffers.js.map +1 -1
- package/lib/esm/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
- package/lib/esm/render/webgl/BackgroundMapDrape.js +3 -6
- package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/esm/render/webgl/BranchState.d.ts +3 -0
- package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/esm/render/webgl/BranchState.js +5 -0
- package/lib/esm/render/webgl/BranchState.js.map +1 -1
- package/lib/esm/render/webgl/BranchUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/BranchUniforms.js +0 -8
- package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/esm/render/webgl/CachedGeometry.d.ts +32 -0
- package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/CachedGeometry.js +69 -0
- package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/esm/render/webgl/ClipStack.d.ts +0 -1
- package/lib/esm/render/webgl/ClipStack.d.ts.map +1 -1
- package/lib/esm/render/webgl/ClipStack.js +2 -6
- package/lib/esm/render/webgl/ClipStack.js.map +1 -1
- package/lib/esm/render/webgl/ClipVolume.d.ts.map +1 -1
- package/lib/esm/render/webgl/ClipVolume.js +1 -5
- package/lib/esm/render/webgl/ClipVolume.js.map +1 -1
- package/lib/esm/render/webgl/ClippingProgram.d.ts +3 -2
- package/lib/esm/render/webgl/ClippingProgram.d.ts.map +1 -1
- package/lib/esm/render/webgl/ClippingProgram.js +10 -37
- package/lib/esm/render/webgl/ClippingProgram.js.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.d.ts +2 -2
- package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.js +7 -5
- package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
- package/lib/esm/render/webgl/EDL.d.ts +40 -0
- package/lib/esm/render/webgl/EDL.d.ts.map +1 -0
- package/lib/esm/render/webgl/EDL.js +260 -0
- package/lib/esm/render/webgl/EDL.js.map +1 -0
- package/lib/esm/render/webgl/EdgeSettings.js +2 -2
- package/lib/esm/render/webgl/FeatureOverrides.js +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/esm/render/webgl/FloatRGBA.d.ts.map +1 -1
- package/lib/esm/render/webgl/FloatRGBA.js +0 -4
- package/lib/esm/render/webgl/FloatRGBA.js.map +1 -1
- package/lib/esm/render/webgl/FrameBuffer.d.ts +4 -0
- package/lib/esm/render/webgl/FrameBuffer.d.ts.map +1 -1
- package/lib/esm/render/webgl/FrameBuffer.js +9 -0
- package/lib/esm/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/esm/render/webgl/FrustumUniforms.d.ts +7 -0
- package/lib/esm/render/webgl/FrustumUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/FrustumUniforms.js.map +1 -1
- package/lib/esm/render/webgl/GLTimer.d.ts.map +1 -1
- package/lib/esm/render/webgl/GLTimer.js +2 -35
- package/lib/esm/render/webgl/GLTimer.js.map +1 -1
- package/lib/esm/render/webgl/Layer.js +2 -2
- package/lib/esm/render/webgl/LayerCommands.js +2 -2
- package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/esm/render/webgl/PlanarClassifier.js +20 -77
- package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/esm/render/webgl/PlanarTextureProjection.js +1 -1
- package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/esm/render/webgl/PointCloud.d.ts +2 -2
- package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/esm/render/webgl/PointCloud.js +1 -1
- package/lib/esm/render/webgl/PointCloud.js.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.d.ts +3 -1
- package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.js +8 -3
- package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/render/webgl/RealityModelUniforms.d.ts +9 -0
- package/lib/esm/render/webgl/RealityModelUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/RealityModelUniforms.js +50 -0
- package/lib/esm/render/webgl/RealityModelUniforms.js.map +1 -1
- package/lib/esm/render/webgl/RenderBuffer.d.ts +1 -1
- package/lib/esm/render/webgl/RenderBuffer.d.ts.map +1 -1
- package/lib/esm/render/webgl/RenderBuffer.js +2 -3
- package/lib/esm/render/webgl/RenderBuffer.js.map +1 -1
- package/lib/esm/render/webgl/RenderCommands.d.ts +2 -1
- package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
- package/lib/esm/render/webgl/RenderCommands.js +46 -38
- package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
- package/lib/esm/render/webgl/RenderFlags.d.ts +20 -19
- package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/esm/render/webgl/RenderFlags.js +12 -12
- package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.d.ts +6 -3
- package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.js +627 -891
- package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/esm/render/webgl/ScreenSpaceEffect.js +1 -1
- package/lib/esm/render/webgl/ScreenSpaceEffect.js.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.d.ts +1 -2
- package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.js +13 -48
- package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/esm/render/webgl/ShaderProgram.d.ts +1 -2
- package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/esm/render/webgl/SolarShadowMap.d.ts.map +1 -1
- package/lib/esm/render/webgl/SolarShadowMap.js +8 -29
- package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/esm/render/webgl/SurfaceGeometry.js +5 -5
- package/lib/esm/render/webgl/System.d.ts +10 -10
- package/lib/esm/render/webgl/System.d.ts.map +1 -1
- package/lib/esm/render/webgl/System.js +41 -124
- package/lib/esm/render/webgl/System.js.map +1 -1
- package/lib/esm/render/webgl/Target.js +7 -7
- package/lib/esm/render/webgl/Target.js.map +1 -1
- package/lib/esm/render/webgl/Technique.d.ts +4 -5
- package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
- package/lib/esm/render/webgl/Technique.js +17 -26
- package/lib/esm/render/webgl/Technique.js.map +1 -1
- package/lib/esm/render/webgl/TechniqueFlags.js +4 -4
- package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/esm/render/webgl/TechniqueId.d.ts +6 -2
- package/lib/esm/render/webgl/TechniqueId.d.ts.map +1 -1
- package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
- package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
- package/lib/esm/render/webgl/Texture.js +14 -18
- package/lib/esm/render/webgl/Texture.js.map +1 -1
- package/lib/esm/render/webgl/ThematicSensors.d.ts +4 -3
- package/lib/esm/render/webgl/ThematicSensors.d.ts.map +1 -1
- package/lib/esm/render/webgl/ThematicSensors.js +9 -50
- package/lib/esm/render/webgl/ThematicSensors.js.map +1 -1
- package/lib/esm/render/webgl/ThematicUniforms.js +1 -1
- package/lib/esm/render/webgl/ThematicUniforms.js.map +1 -1
- package/lib/esm/render/webgl/UniformHandle.d.ts.map +1 -1
- package/lib/esm/render/webgl/UniformHandle.js +2 -6
- package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
- package/lib/esm/render/webgl/VisibleTileFeatures.js +5 -5
- package/lib/esm/render/webgl/glsl/AmbientOcclusion.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +1 -1
- package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Animation.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/Animation.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Animation.js +23 -26
- package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Blur.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/Blur.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Blur.js.map +1 -1
- package/lib/esm/render/webgl/glsl/ClearPickAndColor.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/ClearPickAndColor.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/ClearPickAndColor.js +2 -9
- package/lib/esm/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
- package/lib/esm/render/webgl/glsl/ClearTranslucent.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/ClearTranslucent.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/ClearTranslucent.js +2 -10
- package/lib/esm/render/webgl/glsl/ClearTranslucent.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Clipping.d.ts +1 -1
- package/lib/esm/render/webgl/glsl/Clipping.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Clipping.js +5 -36
- package/lib/esm/render/webgl/glsl/Clipping.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Combine3Textures.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/Combine3Textures.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Combine3Textures.js.map +1 -1
- package/lib/esm/render/webgl/glsl/CombineTextures.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/CombineTextures.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/CombineTextures.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Common.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Common.js +9 -55
- package/lib/esm/render/webgl/glsl/Common.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Composite.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/Composite.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Composite.js.map +1 -1
- package/lib/esm/render/webgl/glsl/CopyColor.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/CopyColor.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/CopyColor.js.map +1 -1
- package/lib/esm/render/webgl/glsl/CopyPickBuffers.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/CopyPickBuffers.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/CopyPickBuffers.js +12 -19
- package/lib/esm/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
- package/lib/esm/render/webgl/glsl/CopyStencil.d.ts +4 -7
- package/lib/esm/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/CopyStencil.js +1 -37
- package/lib/esm/render/webgl/glsl/CopyStencil.js.map +1 -1
- package/lib/esm/render/webgl/glsl/EDL.d.ts +13 -0
- package/lib/esm/render/webgl/glsl/EDL.d.ts.map +1 -0
- package/lib/esm/render/webgl/glsl/EDL.js +253 -0
- package/lib/esm/render/webgl/glsl/EDL.js.map +1 -0
- package/lib/esm/render/webgl/glsl/EVSMFromDepth.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/EVSMFromDepth.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Edge.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Edge.js +2 -2
- package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.js +3 -24
- package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Fragment.d.ts +0 -7
- package/lib/esm/render/webgl/glsl/Fragment.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Fragment.js +4 -38
- package/lib/esm/render/webgl/glsl/Fragment.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Instancing.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Instancing.js +1 -5
- package/lib/esm/render/webgl/glsl/Instancing.js.map +1 -1
- package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js +0 -2
- package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
- package/lib/esm/render/webgl/glsl/PlanarGrid.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/PlanarGrid.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/PlanarGrid.js +2 -12
- package/lib/esm/render/webgl/glsl/PlanarGrid.js.map +1 -1
- package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/RealityMesh.js +3 -8
- package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/esm/render/webgl/glsl/RenderPass.js +12 -12
- package/lib/esm/render/webgl/glsl/RenderPass.js.map +1 -1
- package/lib/esm/render/webgl/glsl/SkyBox.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/SkyBox.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/SkyBox.js.map +1 -1
- package/lib/esm/render/webgl/glsl/SkySphere.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/SkySphere.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/SkySphere.js.map +1 -1
- package/lib/esm/render/webgl/glsl/SolarShadowMapping.js +1 -1
- package/lib/esm/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Surface.js +33 -57
- package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Thematic.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Thematic.js +3 -36
- package/lib/esm/render/webgl/glsl/Thematic.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Translucency.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Translucency.js +3 -13
- package/lib/esm/render/webgl/glsl/Translucency.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Vertex.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/Vertex.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Vertex.js +16 -79
- package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Wiremesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Wiremesh.js +2 -5
- package/lib/esm/render/webgl/glsl/Wiremesh.js.map +1 -1
- package/lib/esm/tile/BatchedTileIdMap.js +1 -1
- package/lib/esm/tile/BatchedTileIdMap.js.map +1 -1
- package/lib/esm/tile/DynamicIModelTile.js +1 -1
- package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +4 -2
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/IModelTile.js +1 -1
- package/lib/esm/tile/IModelTile.js.map +1 -1
- package/lib/esm/tile/ImdlReader.d.ts +6 -0
- package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
- package/lib/esm/tile/ImdlReader.js +20 -7
- package/lib/esm/tile/ImdlReader.js.map +1 -1
- package/lib/esm/tile/OrbitGtTileTree.d.ts +14 -1
- package/lib/esm/tile/OrbitGtTileTree.d.ts.map +1 -1
- package/lib/esm/tile/OrbitGtTileTree.js +30 -12
- package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.d.ts +0 -3
- package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.js +8 -30
- package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
- package/lib/esm/tile/RealityModelTileTree.d.ts +4 -3
- package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/esm/tile/RealityModelTileTree.js +62 -54
- package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/tile/RealityTileLoader.js +2 -2
- package/lib/esm/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/tile/RealityTileTree.d.ts +5 -0
- package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileTree.js +8 -4
- package/lib/esm/tile/RealityTileTree.js.map +1 -1
- package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
- package/lib/esm/tile/TileAdmin.js +17 -9
- package/lib/esm/tile/TileAdmin.js.map +1 -1
- package/lib/esm/tile/TileDrawArgs.js +1 -1
- package/lib/esm/tile/TileDrawArgs.js.map +1 -1
- package/lib/esm/tile/TileTreeReference.d.ts +3 -0
- package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeReference.js +3 -0
- package/lib/esm/tile/TileTreeReference.js.map +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.d.ts +14 -1
- package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.js +57 -27
- package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.js +9 -9
- package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +14 -2
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js +77 -37
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +65 -52
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +1 -0
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +2 -0
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +2 -2
- package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.d.ts +28 -3
- package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.js +62 -8
- package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.js +3 -2
- package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +12 -2
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js +16 -4
- package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.d.ts +3 -1
- package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.js +2 -0
- package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
- package/lib/esm/tile/map/MapTile.d.ts +13 -0
- package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTile.js +57 -14
- package/lib/esm/tile/map/MapTile.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts +44 -4
- package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js +131 -11
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts +17 -0
- package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js +26 -0
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/esm/tile/map/WmtsCapabilities.d.ts +23 -68
- package/lib/esm/tile/map/WmtsCapabilities.d.ts.map +1 -1
- package/lib/esm/tile/map/WmtsCapabilities.js +268 -259
- package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/esm/tools/ClipViewTool.js +2 -2
- package/lib/esm/tools/ClipViewTool.js.map +1 -1
- package/lib/esm/tools/MeasureTool.js +2 -2
- package/lib/esm/tools/MeasureTool.js.map +1 -1
- package/lib/public/locales/en/iModelJs.json +2 -2
- package/package.json +20 -21
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClipVolume.js","sourceRoot":"","sources":["../../../../src/render/webgl/ClipVolume.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport {\r\n ClipVector, Point3d, Transform, UnionOfConvexClipPlaneSets, Vector3d,\r\n} from \"@itwin/core-geometry\";\r\nimport { RenderClipVolume } from \"../RenderClipVolume\";\r\nimport { System } from \"./System\";\r\n\r\nconst scratch = {\r\n normal: new Vector3d(),\r\n dir: new Vector3d(),\r\n pos: new Point3d(),\r\n v0: new Vector3d(),\r\n};\r\n\r\n/** Maintains an ArrayBuffer to serve as texture data for a ClipVector.\r\n * The clip planes are in view coordinates, so the data must be updated whenever the view\r\n * matrix changes.\r\n */\r\nclass ClipPlanesBuffer {\r\n /** Most recently-applied view matrix. */\r\n private readonly _viewMatrix = Transform.createZero();\r\n /** For writing to the ArrayBuffer. */\r\n private readonly _view: DataView;\r\n /** For inspecting the data in the ArrayBuffer. */\r\n private readonly _data: Uint8Array;\r\n /** The current write position. */\r\n private _curPos = 0;\r\n private readonly _clips: UnionOfConvexClipPlaneSets[];\r\n private readonly _append: (value: number) => void;\r\n /** The number of rows of data. Each row corresponds to a clipping plane, or to mark a boundary between two ClipPlaneSets or UnionOfConvexClipPlaneSets.\r\n * The final row is *always* a union boundary, to enable multiple clips to be concatenated - this is how nested clip volumes work.\r\n */\r\n public readonly numRows: number;\r\n\r\n public getData(viewMatrix: Transform): Uint8Array {\r\n if (!viewMatrix.isAlmostEqual(this._viewMatrix))\r\n this.updateData(viewMatrix);\r\n\r\n return this._data;\r\n }\r\n\r\n public get byteLength(): number {\r\n return this._view.buffer.byteLength;\r\n }\r\n\r\n public static create(clips: UnionOfConvexClipPlaneSets[], numRows: number): ClipPlanesBuffer {\r\n assert(numRows > 1); // at least one plane, plus a union boundary.\r\n return new ClipPlanesBuffer(clips, numRows);\r\n }\r\n\r\n private constructor(clips: UnionOfConvexClipPlaneSets[], numRows: number) {\r\n this._data = new Uint8Array(numRows * 4 * 4);\r\n this._view = new DataView(this._data.buffer);\r\n this._clips = clips;\r\n this.numRows = numRows;\r\n\r\n if (System.instance.capabilities.supportsTextureFloat)\r\n this._append = (value: number) => this.appendFloat(value);\r\n else\r\n this._append = (value: number) => this.appendEncodedFloat(value);\r\n }\r\n\r\n private appendFloat(value: number): void {\r\n this._view.setFloat32(this._curPos, value, true);\r\n this.advance(4);\r\n }\r\n\r\n private appendUint8(value: number): void {\r\n this._view.setUint8(this._curPos, value);\r\n this.advance(1);\r\n }\r\n\r\n private appendValues(a: number, b: number, c: number, d: number): void {\r\n this._append(a);\r\n this._append(b);\r\n this._append(c);\r\n this._append(d);\r\n }\r\n\r\n private appendPlane(normal: Vector3d, distance: number): void {\r\n this.appendValues(normal.x, normal.y, normal.z, distance);\r\n }\r\n\r\n private appendSetBoundary(): void {\r\n this.appendValues(0, 0, 0, 0);\r\n }\r\n\r\n private appendUnionBoundary(): void {\r\n this.appendValues(2, 2, 2, 0);\r\n }\r\n\r\n private appendEncodedFloat(value: number) {\r\n const sign = value < 0 ? 1 : 0;\r\n value = Math.abs(value);\r\n const exponent = Math.floor(Math.log10(value)) + 1;\r\n value = value / Math.pow(10, exponent);\r\n\r\n const bias = 38;\r\n let temp = value * 256;\r\n const b0 = Math.floor(temp);\r\n temp = (temp - b0) * 256;\r\n const b1 = Math.floor(temp);\r\n temp = (temp - b1) * 256;\r\n const b2 = Math.floor(temp);\r\n const b3 = (exponent + bias) * 2 + sign;\r\n\r\n this.appendUint8(b0);\r\n this.appendUint8(b1);\r\n this.appendUint8(b2);\r\n this.appendUint8(b3);\r\n }\r\n\r\n private advance(numBytes: number): void {\r\n this._curPos += numBytes;\r\n }\r\n\r\n private reset(): void {\r\n this._curPos = 0;\r\n }\r\n\r\n private updateData(transform: Transform): void {\r\n this.reset();\r\n transform.clone(this._viewMatrix);\r\n\r\n const { normal, dir, pos, v0 } = { ...scratch };\r\n for (const clip of this._clips) {\r\n for (let j = 0; j < clip.convexSets.length; j++) {\r\n const set = clip.convexSets[j];\r\n if (0 === set.planes.length)\r\n continue;\r\n\r\n if (j > 0)\r\n this.appendSetBoundary();\r\n\r\n for (const plane of set.planes) {\r\n plane.inwardNormalRef.clone(normal);\r\n let distance = plane.distance;\r\n\r\n const norm = normal;\r\n transform.matrix.multiplyVector(norm, dir);\r\n dir.normalizeInPlace();\r\n\r\n transform.multiplyPoint3d(norm.scale(distance, v0), pos);\r\n v0.setFromPoint3d(pos);\r\n\r\n normal.set(dir.x, dir.y, dir.z);\r\n distance = -v0.dotProduct(dir);\r\n this.appendPlane(normal, distance);\r\n }\r\n }\r\n\r\n this.appendUnionBoundary();\r\n }\r\n }\r\n}\r\n\r\n/** A ClipVector encoded for transmission to the GPU as a texture.\r\n * @internal\r\n */\r\nexport class ClipVolume extends RenderClipVolume {\r\n private readonly _buffer: ClipPlanesBuffer;\r\n\r\n public get numRows(): number {\r\n return this._buffer.numRows;\r\n }\r\n\r\n public get byteLength(): number {\r\n return this._buffer.byteLength;\r\n }\r\n\r\n public getData(viewMatrix: Transform): Uint8Array {\r\n return this._buffer.getData(viewMatrix);\r\n }\r\n\r\n public static create(clip: ClipVector): ClipVolume | undefined {\r\n if (!clip.isValid)\r\n return undefined;\r\n\r\n // Compute how many rows of data we need.\r\n const unions = [];\r\n let numRows = 0;\r\n for (const primitive of clip.clips) {\r\n const union = primitive.fetchClipPlanesRef();\r\n if (!union)\r\n continue;\r\n\r\n let numSets = 0;\r\n for (const set of union.convexSets) {\r\n const setLength = set.planes.length;\r\n if (setLength > 0) {\r\n ++numSets;\r\n numRows += setLength;\r\n }\r\n }\r\n\r\n if (numSets > 0) {\r\n unions.push(union);\r\n numRows += numSets - 1; // Additional boundary rows between sets.\r\n }\r\n }\r\n\r\n if (unions.length === 0)\r\n return undefined;\r\n\r\n numRows += unions.length; // Additional boundary row after each union - *including* the last union.\r\n const buffer = ClipPlanesBuffer.create(unions, numRows);\r\n return new ClipVolume(clip, buffer);\r\n }\r\n\r\n private constructor(clip: ClipVector, buffer: ClipPlanesBuffer) {\r\n super(clip);\r\n this._buffer = buffer;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ClipVolume.js","sourceRoot":"","sources":["../../../../src/render/webgl/ClipVolume.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport {\r\n ClipVector, Point3d, Transform, UnionOfConvexClipPlaneSets, Vector3d,\r\n} from \"@itwin/core-geometry\";\r\nimport { RenderClipVolume } from \"../RenderClipVolume\";\r\n\r\nconst scratch = {\r\n normal: new Vector3d(),\r\n dir: new Vector3d(),\r\n pos: new Point3d(),\r\n v0: new Vector3d(),\r\n};\r\n\r\n/** Maintains an ArrayBuffer to serve as texture data for a ClipVector.\r\n * The clip planes are in view coordinates, so the data must be updated whenever the view\r\n * matrix changes.\r\n */\r\nclass ClipPlanesBuffer {\r\n /** Most recently-applied view matrix. */\r\n private readonly _viewMatrix = Transform.createZero();\r\n /** For writing to the ArrayBuffer. */\r\n private readonly _view: DataView;\r\n /** For inspecting the data in the ArrayBuffer. */\r\n private readonly _data: Uint8Array;\r\n /** The current write position. */\r\n private _curPos = 0;\r\n private readonly _clips: UnionOfConvexClipPlaneSets[];\r\n private readonly _append: (value: number) => void;\r\n /** The number of rows of data. Each row corresponds to a clipping plane, or to mark a boundary between two ClipPlaneSets or UnionOfConvexClipPlaneSets.\r\n * The final row is *always* a union boundary, to enable multiple clips to be concatenated - this is how nested clip volumes work.\r\n */\r\n public readonly numRows: number;\r\n\r\n public getData(viewMatrix: Transform): Uint8Array {\r\n if (!viewMatrix.isAlmostEqual(this._viewMatrix))\r\n this.updateData(viewMatrix);\r\n\r\n return this._data;\r\n }\r\n\r\n public get byteLength(): number {\r\n return this._view.buffer.byteLength;\r\n }\r\n\r\n public static create(clips: UnionOfConvexClipPlaneSets[], numRows: number): ClipPlanesBuffer {\r\n assert(numRows > 1); // at least one plane, plus a union boundary.\r\n return new ClipPlanesBuffer(clips, numRows);\r\n }\r\n\r\n private constructor(clips: UnionOfConvexClipPlaneSets[], numRows: number) {\r\n this._data = new Uint8Array(numRows * 4 * 4);\r\n this._view = new DataView(this._data.buffer);\r\n this._clips = clips;\r\n this.numRows = numRows;\r\n\r\n this._append = (value: number) => this.appendFloat(value);\r\n }\r\n\r\n private appendFloat(value: number): void {\r\n this._view.setFloat32(this._curPos, value, true);\r\n this.advance(4);\r\n }\r\n\r\n private appendUint8(value: number): void {\r\n this._view.setUint8(this._curPos, value);\r\n this.advance(1);\r\n }\r\n\r\n private appendValues(a: number, b: number, c: number, d: number): void {\r\n this._append(a);\r\n this._append(b);\r\n this._append(c);\r\n this._append(d);\r\n }\r\n\r\n private appendPlane(normal: Vector3d, distance: number): void {\r\n this.appendValues(normal.x, normal.y, normal.z, distance);\r\n }\r\n\r\n private appendSetBoundary(): void {\r\n this.appendValues(0, 0, 0, 0);\r\n }\r\n\r\n private appendUnionBoundary(): void {\r\n this.appendValues(2, 2, 2, 0);\r\n }\r\n\r\n private appendEncodedFloat(value: number) {\r\n const sign = value < 0 ? 1 : 0;\r\n value = Math.abs(value);\r\n const exponent = Math.floor(Math.log10(value)) + 1;\r\n value = value / Math.pow(10, exponent);\r\n\r\n const bias = 38;\r\n let temp = value * 256;\r\n const b0 = Math.floor(temp);\r\n temp = (temp - b0) * 256;\r\n const b1 = Math.floor(temp);\r\n temp = (temp - b1) * 256;\r\n const b2 = Math.floor(temp);\r\n const b3 = (exponent + bias) * 2 + sign;\r\n\r\n this.appendUint8(b0);\r\n this.appendUint8(b1);\r\n this.appendUint8(b2);\r\n this.appendUint8(b3);\r\n }\r\n\r\n private advance(numBytes: number): void {\r\n this._curPos += numBytes;\r\n }\r\n\r\n private reset(): void {\r\n this._curPos = 0;\r\n }\r\n\r\n private updateData(transform: Transform): void {\r\n this.reset();\r\n transform.clone(this._viewMatrix);\r\n\r\n const { normal, dir, pos, v0 } = { ...scratch };\r\n for (const clip of this._clips) {\r\n for (let j = 0; j < clip.convexSets.length; j++) {\r\n const set = clip.convexSets[j];\r\n if (0 === set.planes.length)\r\n continue;\r\n\r\n if (j > 0)\r\n this.appendSetBoundary();\r\n\r\n for (const plane of set.planes) {\r\n plane.inwardNormalRef.clone(normal);\r\n let distance = plane.distance;\r\n\r\n const norm = normal;\r\n transform.matrix.multiplyVector(norm, dir);\r\n dir.normalizeInPlace();\r\n\r\n transform.multiplyPoint3d(norm.scale(distance, v0), pos);\r\n v0.setFromPoint3d(pos);\r\n\r\n normal.set(dir.x, dir.y, dir.z);\r\n distance = -v0.dotProduct(dir);\r\n this.appendPlane(normal, distance);\r\n }\r\n }\r\n\r\n this.appendUnionBoundary();\r\n }\r\n }\r\n}\r\n\r\n/** A ClipVector encoded for transmission to the GPU as a texture.\r\n * @internal\r\n */\r\nexport class ClipVolume extends RenderClipVolume {\r\n private readonly _buffer: ClipPlanesBuffer;\r\n\r\n public get numRows(): number {\r\n return this._buffer.numRows;\r\n }\r\n\r\n public get byteLength(): number {\r\n return this._buffer.byteLength;\r\n }\r\n\r\n public getData(viewMatrix: Transform): Uint8Array {\r\n return this._buffer.getData(viewMatrix);\r\n }\r\n\r\n public static create(clip: ClipVector): ClipVolume | undefined {\r\n if (!clip.isValid)\r\n return undefined;\r\n\r\n // Compute how many rows of data we need.\r\n const unions = [];\r\n let numRows = 0;\r\n for (const primitive of clip.clips) {\r\n const union = primitive.fetchClipPlanesRef();\r\n if (!union)\r\n continue;\r\n\r\n let numSets = 0;\r\n for (const set of union.convexSets) {\r\n const setLength = set.planes.length;\r\n if (setLength > 0) {\r\n ++numSets;\r\n numRows += setLength;\r\n }\r\n }\r\n\r\n if (numSets > 0) {\r\n unions.push(union);\r\n numRows += numSets - 1; // Additional boundary rows between sets.\r\n }\r\n }\r\n\r\n if (unions.length === 0)\r\n return undefined;\r\n\r\n numRows += unions.length; // Additional boundary row after each union - *including* the last union.\r\n const buffer = ClipPlanesBuffer.create(unions, numRows);\r\n return new ClipVolume(clip, buffer);\r\n }\r\n\r\n private constructor(clip: ClipVector, buffer: ClipPlanesBuffer) {\r\n super(clip);\r\n this._buffer = buffer;\r\n }\r\n}\r\n"]}
|
|
@@ -4,10 +4,11 @@
|
|
|
4
4
|
import { ProgramBuilder } from "./ShaderBuilder";
|
|
5
5
|
import { ShaderProgram } from "./ShaderProgram";
|
|
6
6
|
/** @internal */
|
|
7
|
-
export declare
|
|
7
|
+
export declare class ClippingProgram {
|
|
8
8
|
protected _program?: ShaderProgram;
|
|
9
|
-
abstract getProgram(numPlanes: number): ShaderProgram | undefined;
|
|
10
9
|
compile(): boolean;
|
|
10
|
+
constructor(src: ProgramBuilder);
|
|
11
|
+
getProgram(numPlanes: number): ShaderProgram | undefined;
|
|
11
12
|
dispose(): void;
|
|
12
13
|
}
|
|
13
14
|
/** @internal */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClippingProgram.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/ClippingProgram.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAiB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAY/D,gBAAgB;AAChB,
|
|
1
|
+
{"version":3,"file":"ClippingProgram.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/ClippingProgram.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAiB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAY/D,gBAAgB;AAChB,qBAAa,eAAe;IAC1B,SAAS,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAE5B,OAAO,IAAI,OAAO;gBAIN,GAAG,EAAE,cAAc;IAK/B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIxD,OAAO,IAAI,IAAI;CAGvB;AAED,gBAAgB;AAChB,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,eAAe,CAE9E"}
|
|
@@ -8,58 +8,31 @@
|
|
|
8
8
|
import { dispose } from "@itwin/core-bentley";
|
|
9
9
|
import { System } from "./System";
|
|
10
10
|
import { addClipping } from "./glsl/Clipping";
|
|
11
|
-
function createClippingBuilder(src
|
|
11
|
+
function createClippingBuilder(src) {
|
|
12
12
|
const builder = src.clone();
|
|
13
13
|
builder.vert.headerComment += "-Clip";
|
|
14
14
|
builder.frag.headerComment += "-Clip";
|
|
15
|
-
addClipping(builder
|
|
15
|
+
addClipping(builder);
|
|
16
16
|
return builder;
|
|
17
17
|
}
|
|
18
18
|
/** @internal */
|
|
19
19
|
export class ClippingProgram {
|
|
20
|
-
compile() {
|
|
21
|
-
return undefined === this._program || 0 /* Success */ === this._program.compile();
|
|
22
|
-
}
|
|
23
|
-
dispose() {
|
|
24
|
-
this._program = dispose(this._program);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
/** WebGL 1 requires that the loop variable be a compile-time constant. If caller requests a number of planes greater than the maximum our current program
|
|
28
|
-
* supports, recompile the program with sufficient maximum number of planes.
|
|
29
|
-
*/
|
|
30
|
-
class WebGL1ClippingProgram extends ClippingProgram {
|
|
31
20
|
constructor(src) {
|
|
32
|
-
|
|
33
|
-
this._maxClippingPlanes = 0;
|
|
34
|
-
this._builder = createClippingBuilder(src, false);
|
|
35
|
-
}
|
|
36
|
-
getProgram(numPlanes) {
|
|
37
|
-
var _a;
|
|
38
|
-
if (numPlanes <= 0)
|
|
39
|
-
return undefined;
|
|
40
|
-
if (!this._program || this._maxClippingPlanes < numPlanes) {
|
|
41
|
-
(_a = this._program) === null || _a === void 0 ? void 0 : _a.endUse();
|
|
42
|
-
this.dispose();
|
|
43
|
-
this._builder.frag.addDefine("MAX_CLIPPING_PLANES", numPlanes.toString());
|
|
44
|
-
this._program = this._builder.buildProgram(System.instance.context);
|
|
45
|
-
this._maxClippingPlanes = numPlanes;
|
|
46
|
-
}
|
|
47
|
-
return this._program;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
/** WebGL 2 permits looping on a uniform. */
|
|
51
|
-
class WebGL2ClippingProgram extends ClippingProgram {
|
|
52
|
-
constructor(src) {
|
|
53
|
-
super();
|
|
54
|
-
const builder = createClippingBuilder(src, true);
|
|
21
|
+
const builder = createClippingBuilder(src);
|
|
55
22
|
this._program = builder.buildProgram(System.instance.context);
|
|
56
23
|
}
|
|
24
|
+
compile() {
|
|
25
|
+
return undefined === this._program || 0 /* Success */ === this._program.compile();
|
|
26
|
+
}
|
|
57
27
|
getProgram(numPlanes) {
|
|
58
28
|
return numPlanes > 0 ? this._program : undefined;
|
|
59
29
|
}
|
|
30
|
+
dispose() {
|
|
31
|
+
this._program = dispose(this._program);
|
|
32
|
+
}
|
|
60
33
|
}
|
|
61
34
|
/** @internal */
|
|
62
35
|
export function createClippingProgram(builder) {
|
|
63
|
-
return
|
|
36
|
+
return new ClippingProgram(builder);
|
|
64
37
|
}
|
|
65
38
|
//# sourceMappingURL=ClippingProgram.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClippingProgram.js","sourceRoot":"","sources":["../../../../src/render/webgl/ClippingProgram.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,SAAS,qBAAqB,CAAC,GAAmB
|
|
1
|
+
{"version":3,"file":"ClippingProgram.js","sourceRoot":"","sources":["../../../../src/render/webgl/ClippingProgram.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,SAAS,qBAAqB,CAAC,GAAmB;IAChD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;IAC5B,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC;IACtC,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC;IACtC,WAAW,CAAC,OAAO,CAAC,CAAC;IACrB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,gBAAgB;AAChB,MAAM,OAAO,eAAe;IAO1B,YAAmB,GAAmB;QACpC,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;IAPM,OAAO;QACZ,OAAO,SAAS,KAAK,IAAI,CAAC,QAAQ,IAAI,oBAA0B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC1F,CAAC;IAOM,UAAU,CAAC,SAAiB;QACjC,OAAO,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;CACF;AAED,gBAAgB;AAChB,MAAM,UAAU,qBAAqB,CAAC,OAAuB;IAC3D,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { dispose } from \"@itwin/core-bentley\";\r\nimport { ProgramBuilder } from \"./ShaderBuilder\";\r\nimport { CompileStatus, ShaderProgram } from \"./ShaderProgram\";\r\nimport { System } from \"./System\";\r\nimport { addClipping } from \"./glsl/Clipping\";\r\n\r\nfunction createClippingBuilder(src: ProgramBuilder): ProgramBuilder {\r\n const builder = src.clone();\r\n builder.vert.headerComment += \"-Clip\";\r\n builder.frag.headerComment += \"-Clip\";\r\n addClipping(builder);\r\n return builder;\r\n}\r\n\r\n/** @internal */\r\nexport class ClippingProgram {\r\n protected _program?: ShaderProgram;\r\n\r\n public compile(): boolean {\r\n return undefined === this._program || CompileStatus.Success === this._program.compile();\r\n }\r\n\r\n public constructor(src: ProgramBuilder) {\r\n const builder = createClippingBuilder(src);\r\n this._program = builder.buildProgram(System.instance.context);\r\n }\r\n\r\n public getProgram(numPlanes: number): ShaderProgram | undefined {\r\n return numPlanes > 0 ? this._program : undefined;\r\n }\r\n\r\n public dispose(): void {\r\n this._program = dispose(this._program);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function createClippingProgram(builder: ProgramBuilder): ClippingProgram {\r\n return new ClippingProgram(builder);\r\n}\r\n"]}
|
|
@@ -21,7 +21,7 @@ export declare class ShaderProgramParams {
|
|
|
21
21
|
bindProjectionMatrix(uniform: UniformHandle): void;
|
|
22
22
|
get isViewCoords(): boolean;
|
|
23
23
|
get isOverlayPass(): boolean;
|
|
24
|
-
get context():
|
|
24
|
+
get context(): WebGL2RenderingContext;
|
|
25
25
|
init(target: Target, pass?: RenderPass): void;
|
|
26
26
|
}
|
|
27
27
|
/** @internal */
|
|
@@ -35,7 +35,7 @@ export declare class DrawParams {
|
|
|
35
35
|
get projectionMatrix(): import("./Matrix").Matrix4;
|
|
36
36
|
get isViewCoords(): boolean;
|
|
37
37
|
get isOverlayPass(): boolean;
|
|
38
|
-
get context():
|
|
38
|
+
get context(): WebGL2RenderingContext;
|
|
39
39
|
init(programParams: ShaderProgramParams, geometry: CachedGeometry): void;
|
|
40
40
|
}
|
|
41
41
|
/** Defines operation associated with pushing or popping a branch
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawCommand.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/DrawCommand.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAgB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAM3C,gBAAgB;AAChB,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,WAAW,CAA+B;IAElD,IAAW,MAAM,IAAI,MAAM,CAG1B;IAED,IAAW,UAAU,eAA+B;IAEpD,IAAW,gBAAgB,+BAA4E;IAChG,oBAAoB,CAAC,OAAO,EAAE,aAAa;IAElD,IAAW,YAAY,YAAsG;IAC7H,IAAW,aAAa,YAAwG;IAChI,IAAW,OAAO,
|
|
1
|
+
{"version":3,"file":"DrawCommand.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/DrawCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,10 +22,10 @@ export class ShaderProgramParams {
|
|
|
22
22
|
get renderPass() { return this._renderPass; }
|
|
23
23
|
get projectionMatrix() { return this.target.uniforms.getProjectionMatrix32(this.isViewCoords); }
|
|
24
24
|
bindProjectionMatrix(uniform) { this.target.uniforms.bindProjectionMatrix(uniform, this.isViewCoords); }
|
|
25
|
-
get isViewCoords() { return
|
|
26
|
-
get isOverlayPass() { return
|
|
25
|
+
get isViewCoords() { return 13 /* ViewOverlay */ === this.renderPass || 0 /* Background */ === this.renderPass; }
|
|
26
|
+
get isOverlayPass() { return 12 /* WorldOverlay */ === this.renderPass || 13 /* ViewOverlay */ === this.renderPass; }
|
|
27
27
|
get context() { return System.instance.context; }
|
|
28
|
-
init(target, pass =
|
|
28
|
+
init(target, pass = 5 /* OpaqueGeneral */) {
|
|
29
29
|
this._renderPass = pass;
|
|
30
30
|
this._target = target;
|
|
31
31
|
}
|
|
@@ -43,7 +43,9 @@ export class DrawParams {
|
|
|
43
43
|
get target() { return this.programParams.target; }
|
|
44
44
|
get renderPass() { return this.programParams.renderPass; }
|
|
45
45
|
get projectionMatrix() { return this.programParams.projectionMatrix; }
|
|
46
|
-
get isViewCoords() {
|
|
46
|
+
get isViewCoords() {
|
|
47
|
+
return this.programParams.isViewCoords || this.target.currentBranch.forceViewCoords;
|
|
48
|
+
}
|
|
47
49
|
get isOverlayPass() { return this.programParams.isOverlayPass; }
|
|
48
50
|
get context() { return this.programParams.context; }
|
|
49
51
|
init(programParams, geometry) {
|
|
@@ -160,7 +162,7 @@ export class PrimitiveCommand {
|
|
|
160
162
|
// Point clouds do not support hillshade or slope mode for thematic display.
|
|
161
163
|
if (isThematic && (undefined !== this.primitive.cachedGeometry.asPointCloud) && (target.uniforms.thematic.wantSlopeMode || target.uniforms.thematic.wantHillShadeMode))
|
|
162
164
|
isThematic = 0 /* No */;
|
|
163
|
-
const wiremesh = target.currentViewFlags.wiremesh &&
|
|
165
|
+
const wiremesh = target.currentViewFlags.wiremesh && (techniqueId === 0 /* Surface */ || techniqueId === 7 /* RealityMesh */);
|
|
164
166
|
const isWiremesh = wiremesh ? 1 /* Yes */ : 0 /* No */;
|
|
165
167
|
const flags = PrimitiveCommand._scratchTechniqueFlags;
|
|
166
168
|
const posType = this.primitive.cachedGeometry.usesQuantizedPositions ? "quantized" : "unquantized";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawCommand.js","sourceRoot":"","sources":["../../../../src/render/webgl/DrawCommand.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { BranchState } from \"./BranchState\";\r\nimport { CachedGeometry } from \"./CachedGeometry\";\r\nimport { ClipVolume } from \"./ClipVolume\";\r\nimport { isFeatureHilited } from \"./FeatureOverrides\";\r\nimport { Batch, Branch } from \"./Graphic\";\r\nimport { UniformHandle } from \"./UniformHandle\";\r\nimport { Primitive } from \"./Primitive\";\r\nimport { Pass, RenderOrder, RenderPass } from \"./RenderFlags\";\r\nimport { ShaderProgramExecutor } from \"./ShaderProgram\";\r\nimport { System } from \"./System\";\r\nimport { Hilites, Target } from \"./Target\";\r\nimport { IsAnimated, IsClassified, IsInstanced, IsShadowable, IsThematic, IsWiremesh, TechniqueFlags } from \"./TechniqueFlags\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\n\r\n/* eslint-disable no-restricted-syntax */\r\n\r\n/** @internal */\r\nexport class ShaderProgramParams {\r\n private _target?: Target;\r\n private _renderPass: RenderPass = RenderPass.None;\r\n\r\n public get target(): Target {\r\n assert(undefined !== this._target);\r\n return this._target;\r\n }\r\n\r\n public get renderPass() { return this._renderPass; }\r\n\r\n public get projectionMatrix() { return this.target.uniforms.getProjectionMatrix32(this.isViewCoords); }\r\n public bindProjectionMatrix(uniform: UniformHandle) { this.target.uniforms.bindProjectionMatrix(uniform, this.isViewCoords); }\r\n\r\n public get isViewCoords() { return RenderPass.ViewOverlay === this.renderPass || RenderPass.Background === this.renderPass; }\r\n public get isOverlayPass() { return RenderPass.WorldOverlay === this.renderPass || RenderPass.ViewOverlay === this.renderPass; }\r\n public get context() { return System.instance.context; }\r\n\r\n public init(target: Target, pass: RenderPass = RenderPass.OpaqueGeneral) {\r\n this._renderPass = pass;\r\n this._target = target;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class DrawParams {\r\n private _programParams?: ShaderProgramParams;\r\n private _geometry?: CachedGeometry;\r\n\r\n public get geometry(): CachedGeometry {\r\n assert(undefined !== this._geometry);\r\n return this._geometry;\r\n }\r\n\r\n public get programParams(): ShaderProgramParams {\r\n assert(undefined !== this._programParams);\r\n return this._programParams;\r\n }\r\n\r\n public get target() { return this.programParams.target; }\r\n public get renderPass() { return this.programParams.renderPass; }\r\n public get projectionMatrix() { return this.programParams.projectionMatrix; }\r\n public get isViewCoords() { return this.programParams.isViewCoords; }\r\n public get isOverlayPass() { return this.programParams.isOverlayPass; }\r\n public get context() { return this.programParams.context; }\r\n\r\n public init(programParams: ShaderProgramParams, geometry: CachedGeometry) {\r\n this._programParams = programParams;\r\n this._geometry = geometry;\r\n }\r\n}\r\n\r\n/** Defines operation associated with pushing or popping a branch\r\n * @internal\r\n */\r\nexport const enum PushOrPop {\r\n Push,\r\n Pop,\r\n}\r\n\r\n/** Represents a command to be executed within a RenderPass. The most common command is\r\n * to draw a primitive; others involve state changes such as pushing/popping transforms\r\n * and symbology overrides, which require that commands be executed in order.\r\n * @internal\r\n */\r\nexport enum DrawOpCode {\r\n Primitive = \"drawPrimitive\", // eslint-disable-line @typescript-eslint/no-shadow\r\n PushBranch = \"pushBranch\",\r\n PopBranch = \"popBranch\",\r\n PushBatch = \"pushBatch\",\r\n PopBatch = \"popBatch\",\r\n PushState = \"pushState\",\r\n PushClip = \"pushClip\",\r\n PopClip = \"popClip\",\r\n}\r\n\r\n/** @internal */\r\nexport class PopBatchCommand {\r\n public readonly opcode = \"popBatch\";\r\n\r\n private constructor() { }\r\n\r\n public static instance = new PopBatchCommand();\r\n\r\n public execute(exec: ShaderProgramExecutor): void {\r\n exec.target.popBatch();\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PushBatchCommand {\r\n public readonly opcode = \"pushBatch\";\r\n\r\n public constructor(public readonly batch: Batch) { }\r\n\r\n public execute(exec: ShaderProgramExecutor): void {\r\n exec.target.pushBatch(this.batch);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PushStateCommand {\r\n public readonly opcode = \"pushState\";\r\n\r\n public constructor(public readonly state: BranchState) { }\r\n\r\n public execute(exec: ShaderProgramExecutor): void {\r\n exec.target.pushState(this.state);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PushBranchCommand {\r\n public readonly opcode = \"pushBranch\";\r\n\r\n public constructor(public readonly branch: Branch) { }\r\n\r\n public execute(exec: ShaderProgramExecutor): void {\r\n exec.pushBranch(this.branch);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PopBranchCommand {\r\n public readonly opcode = \"popBranch\";\r\n\r\n private constructor() { }\r\n\r\n public static instance = new PopBranchCommand();\r\n\r\n public execute(exec: ShaderProgramExecutor): void {\r\n exec.popBranch();\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PushClipCommand {\r\n public readonly opcode = \"pushClip\";\r\n\r\n public constructor(public readonly clip: ClipVolume) { }\r\n\r\n public execute(exec: ShaderProgramExecutor): void {\r\n exec.target.uniforms.branch.clipStack.push(this.clip);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PopClipCommand {\r\n public readonly opcode = \"popClip\";\r\n\r\n private constructor() { }\r\n\r\n public static instance = new PopClipCommand();\r\n\r\n public execute(exec: ShaderProgramExecutor): void {\r\n exec.target.uniforms.branch.clipStack.pop();\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PrimitiveCommand {\r\n public readonly opcode = \"drawPrimitive\";\r\n\r\n public constructor(public readonly primitive: Primitive) { }\r\n\r\n private static readonly _scratchTechniqueFlags = new TechniqueFlags();\r\n\r\n public execute(exec: ShaderProgramExecutor): void {\r\n if (exec.target.isGeometryOutsideActiveVolume(this.primitive.cachedGeometry))\r\n return;\r\n\r\n const techniqueId = this.primitive.techniqueId;\r\n if (TechniqueId.Invalid === techniqueId)\r\n return;\r\n\r\n const target = exec.target;\r\n const thematic = this.primitive.cachedGeometry.supportsThematicDisplay && target.wantThematicDisplay;\r\n const shadowable = (techniqueId === TechniqueId.Surface || techniqueId === TechniqueId.RealityMesh) && target.solarShadowMap.isReady && target.currentViewFlags.shadows && !thematic;\r\n const isShadowable = shadowable ? IsShadowable.Yes : IsShadowable.No;\r\n let isThematic = thematic ? IsThematic.Yes : IsThematic.No;\r\n const isClassified = (undefined !== target.currentPlanarClassifierOrDrape || undefined !== target.activeVolumeClassifierTexture) ? IsClassified.Yes : IsClassified.No;\r\n const isInstanced = this.primitive.isInstanced ? IsInstanced.Yes : IsInstanced.No;\r\n const isAnimated = this.primitive.hasAnimation ? IsAnimated.Yes : IsAnimated.No;\r\n\r\n // Point clouds do not support hillshade or slope mode for thematic display.\r\n if (isThematic && (undefined !== this.primitive.cachedGeometry.asPointCloud) && (target.uniforms.thematic.wantSlopeMode || target.uniforms.thematic.wantHillShadeMode))\r\n isThematic = IsThematic.No;\r\n\r\n const wiremesh = target.currentViewFlags.wiremesh && System.instance.isWebGL2 && (techniqueId === TechniqueId.Surface || techniqueId === TechniqueId.RealityMesh);\r\n const isWiremesh = wiremesh ? IsWiremesh.Yes : IsWiremesh.No;\r\n const flags = PrimitiveCommand._scratchTechniqueFlags;\r\n const posType = this.primitive.cachedGeometry.usesQuantizedPositions ? \"quantized\" : \"unquantized\";\r\n flags.init(target, exec.renderPass, isInstanced, isAnimated, isClassified, isShadowable, isThematic, isWiremesh, posType);\r\n\r\n const technique = target.techniques.getTechnique(techniqueId);\r\n const program = technique.getShader(flags);\r\n\r\n if (exec.setProgram(program))\r\n exec.target.compositor.drawPrimitive(this.primitive, exec, program.outputsToPick);\r\n }\r\n\r\n public get hasFeatures(): boolean { return this.primitive.hasFeatures; }\r\n public get renderOrder(): RenderOrder { return this.primitive.renderOrder; }\r\n\r\n public getPass(target: Target): Pass {\r\n return this.primitive.getPass(target);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport type PushCommand = PushBranchCommand | PushBatchCommand | PushStateCommand | PushClipCommand;\r\n/** @internal */\r\nexport type PopCommand = PopBranchCommand | PopBatchCommand | PopClipCommand;\r\n/** @internal */\r\nexport type DrawCommand = PushCommand | PopCommand | PrimitiveCommand;\r\n\r\n/** For a single RenderPass, an ordered list of commands to be executed during that pass.\r\n * @internal\r\n */\r\nexport type DrawCommands = DrawCommand[];\r\n\r\n/** Extracts the commands for rendering the flashed classifier (if any) from the by-index set of volume classifier commands.\r\n * NB: Cmds will be sets of some pushes, a primitive, and then some pops (equal to number of pushes).\r\n * The primitive should be right in the middle of a set. We need to find the set which matches the flashID.\r\n * @internal\r\n */\r\nexport function extractFlashedVolumeClassifierCommands(flashedId: Id64String, cmds: DrawCommands, numCmdsPerClassifier: number): DrawCommands | undefined {\r\n if (!Id64.isValid(flashedId) || 0 === numCmdsPerClassifier)\r\n return undefined;\r\n\r\n const firstPrim = (numCmdsPerClassifier - 1) / 2;\r\n for (let i = firstPrim; i < cmds.length; i += numCmdsPerClassifier) {\r\n assert(\"drawPrimitive\" === cmds[i].opcode, \"Command list not configured as expected.\");\r\n const pc: PrimitiveCommand = cmds[i] as PrimitiveCommand;\r\n const surface = pc.primitive.cachedGeometry.asSurface;\r\n if (undefined !== surface && undefined !== surface.mesh.uniformFeatureId) {\r\n let j = i - 1;\r\n while (j >= 0 && \"pushBatch\" !== cmds[j].opcode) // Find batch for this primitive\r\n j--;\r\n if (j < 0)\r\n continue;\r\n\r\n const pushBatch = cmds[j] as PushBatchCommand;\r\n const elemId = pushBatch.batch.featureTable.findElementId(surface.mesh.uniformFeatureId);\r\n if (undefined !== elemId && elemId === flashedId) {\r\n return cmds.slice(i - firstPrim, i + firstPrim + 1);\r\n }\r\n }\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\n/** @internal */\r\nexport function extractHilitedVolumeClassifierCommands(hilites: Hilites, cmds: DrawCommands): DrawCommands {\r\n // TODO: This could really be done at the time the HiliteClassification render pass commands are being generated\r\n // by just not putting the ones which are not hilited into the ClassificationHilite command list.\r\n const result: DrawCommand[] = [];\r\n\r\n let batch;\r\n for (const cmd of cmds) {\r\n switch (cmd.opcode) {\r\n case \"popBranch\":\r\n if (result.length > 0 && \"pushBranch\" === result[result.length - 1].opcode) {\r\n result.pop(); // remove empty push/pop pairs\r\n continue;\r\n }\r\n break;\r\n case \"popBatch\":\r\n batch = undefined;\r\n if (result.length > 0 && \"pushBatch\" === result[result.length - 1].opcode) {\r\n result.pop(); // remove empty push/pop pairs\r\n continue;\r\n }\r\n break;\r\n case \"pushBatch\":\r\n batch = cmd.batch;\r\n break;\r\n case \"drawPrimitive\":\r\n if (undefined !== batch) {\r\n // Skip any primitives that are not hilited.\r\n const surface = cmd.primitive.cachedGeometry.asSurface;\r\n if (undefined === surface || undefined === surface.mesh.uniformFeatureId)\r\n continue;\r\n\r\n const feature = batch.featureTable.getPackedFeature(surface.mesh.uniformFeatureId);\r\n if (undefined === feature || !isFeatureHilited(feature, hilites, hilites.models.hasId(batch.featureTable.modelId)))\r\n continue;\r\n\r\n break;\r\n }\r\n }\r\n\r\n result.push(cmd);\r\n }\r\n\r\n return result;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"DrawCommand.js","sourceRoot":"","sources":["../../../../src/render/webgl/DrawCommand.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { BranchState } from \"./BranchState\";\r\nimport { CachedGeometry } from \"./CachedGeometry\";\r\nimport { ClipVolume } from \"./ClipVolume\";\r\nimport { isFeatureHilited } from \"./FeatureOverrides\";\r\nimport { Batch, Branch } from \"./Graphic\";\r\nimport { UniformHandle } from \"./UniformHandle\";\r\nimport { Primitive } from \"./Primitive\";\r\nimport { Pass, RenderOrder, RenderPass } from \"./RenderFlags\";\r\nimport { ShaderProgramExecutor } from \"./ShaderProgram\";\r\nimport { System } from \"./System\";\r\nimport { Hilites, Target } from \"./Target\";\r\nimport { IsAnimated, IsClassified, IsInstanced, IsShadowable, IsThematic, IsWiremesh, TechniqueFlags } from \"./TechniqueFlags\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\n\r\n/* eslint-disable no-restricted-syntax */\r\n\r\n/** @internal */\r\nexport class ShaderProgramParams {\r\n private _target?: Target;\r\n private _renderPass: RenderPass = RenderPass.None;\r\n\r\n public get target(): Target {\r\n assert(undefined !== this._target);\r\n return this._target;\r\n }\r\n\r\n public get renderPass() { return this._renderPass; }\r\n\r\n public get projectionMatrix() { return this.target.uniforms.getProjectionMatrix32(this.isViewCoords); }\r\n public bindProjectionMatrix(uniform: UniformHandle) { this.target.uniforms.bindProjectionMatrix(uniform, this.isViewCoords); }\r\n\r\n public get isViewCoords() { return RenderPass.ViewOverlay === this.renderPass || RenderPass.Background === this.renderPass; }\r\n public get isOverlayPass() { return RenderPass.WorldOverlay === this.renderPass || RenderPass.ViewOverlay === this.renderPass; }\r\n public get context() { return System.instance.context; }\r\n\r\n public init(target: Target, pass: RenderPass = RenderPass.OpaqueGeneral) {\r\n this._renderPass = pass;\r\n this._target = target;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class DrawParams {\r\n private _programParams?: ShaderProgramParams;\r\n private _geometry?: CachedGeometry;\r\n\r\n public get geometry(): CachedGeometry {\r\n assert(undefined !== this._geometry);\r\n return this._geometry;\r\n }\r\n\r\n public get programParams(): ShaderProgramParams {\r\n assert(undefined !== this._programParams);\r\n return this._programParams;\r\n }\r\n\r\n public get target() { return this.programParams.target; }\r\n public get renderPass() { return this.programParams.renderPass; }\r\n public get projectionMatrix() { return this.programParams.projectionMatrix; }\r\n public get isViewCoords() {\r\n return this.programParams.isViewCoords || this.target.currentBranch.forceViewCoords;\r\n }\r\n public get isOverlayPass() { return this.programParams.isOverlayPass; }\r\n public get context() { return this.programParams.context; }\r\n\r\n public init(programParams: ShaderProgramParams, geometry: CachedGeometry) {\r\n this._programParams = programParams;\r\n this._geometry = geometry;\r\n }\r\n}\r\n\r\n/** Defines operation associated with pushing or popping a branch\r\n * @internal\r\n */\r\nexport const enum PushOrPop {\r\n Push,\r\n Pop,\r\n}\r\n\r\n/** Represents a command to be executed within a RenderPass. The most common command is\r\n * to draw a primitive; others involve state changes such as pushing/popping transforms\r\n * and symbology overrides, which require that commands be executed in order.\r\n * @internal\r\n */\r\nexport enum DrawOpCode {\r\n Primitive = \"drawPrimitive\", // eslint-disable-line @typescript-eslint/no-shadow\r\n PushBranch = \"pushBranch\",\r\n PopBranch = \"popBranch\",\r\n PushBatch = \"pushBatch\",\r\n PopBatch = \"popBatch\",\r\n PushState = \"pushState\",\r\n PushClip = \"pushClip\",\r\n PopClip = \"popClip\",\r\n}\r\n\r\n/** @internal */\r\nexport class PopBatchCommand {\r\n public readonly opcode = \"popBatch\";\r\n\r\n private constructor() { }\r\n\r\n public static instance = new PopBatchCommand();\r\n\r\n public execute(exec: ShaderProgramExecutor): void {\r\n exec.target.popBatch();\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PushBatchCommand {\r\n public readonly opcode = \"pushBatch\";\r\n\r\n public constructor(public readonly batch: Batch) { }\r\n\r\n public execute(exec: ShaderProgramExecutor): void {\r\n exec.target.pushBatch(this.batch);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PushStateCommand {\r\n public readonly opcode = \"pushState\";\r\n\r\n public constructor(public readonly state: BranchState) { }\r\n\r\n public execute(exec: ShaderProgramExecutor): void {\r\n exec.target.pushState(this.state);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PushBranchCommand {\r\n public readonly opcode = \"pushBranch\";\r\n\r\n public constructor(public readonly branch: Branch) { }\r\n\r\n public execute(exec: ShaderProgramExecutor): void {\r\n exec.pushBranch(this.branch);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PopBranchCommand {\r\n public readonly opcode = \"popBranch\";\r\n\r\n private constructor() { }\r\n\r\n public static instance = new PopBranchCommand();\r\n\r\n public execute(exec: ShaderProgramExecutor): void {\r\n exec.popBranch();\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PushClipCommand {\r\n public readonly opcode = \"pushClip\";\r\n\r\n public constructor(public readonly clip: ClipVolume) { }\r\n\r\n public execute(exec: ShaderProgramExecutor): void {\r\n exec.target.uniforms.branch.clipStack.push(this.clip);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PopClipCommand {\r\n public readonly opcode = \"popClip\";\r\n\r\n private constructor() { }\r\n\r\n public static instance = new PopClipCommand();\r\n\r\n public execute(exec: ShaderProgramExecutor): void {\r\n exec.target.uniforms.branch.clipStack.pop();\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PrimitiveCommand {\r\n public readonly opcode = \"drawPrimitive\";\r\n\r\n public constructor(public readonly primitive: Primitive) { }\r\n\r\n private static readonly _scratchTechniqueFlags = new TechniqueFlags();\r\n\r\n public execute(exec: ShaderProgramExecutor): void {\r\n if (exec.target.isGeometryOutsideActiveVolume(this.primitive.cachedGeometry))\r\n return;\r\n\r\n const techniqueId = this.primitive.techniqueId;\r\n if (TechniqueId.Invalid === techniqueId)\r\n return;\r\n\r\n const target = exec.target;\r\n const thematic = this.primitive.cachedGeometry.supportsThematicDisplay && target.wantThematicDisplay;\r\n const shadowable = (techniqueId === TechniqueId.Surface || techniqueId === TechniqueId.RealityMesh) && target.solarShadowMap.isReady && target.currentViewFlags.shadows && !thematic;\r\n const isShadowable = shadowable ? IsShadowable.Yes : IsShadowable.No;\r\n let isThematic = thematic ? IsThematic.Yes : IsThematic.No;\r\n const isClassified = (undefined !== target.currentPlanarClassifierOrDrape || undefined !== target.activeVolumeClassifierTexture) ? IsClassified.Yes : IsClassified.No;\r\n const isInstanced = this.primitive.isInstanced ? IsInstanced.Yes : IsInstanced.No;\r\n const isAnimated = this.primitive.hasAnimation ? IsAnimated.Yes : IsAnimated.No;\r\n\r\n // Point clouds do not support hillshade or slope mode for thematic display.\r\n if (isThematic && (undefined !== this.primitive.cachedGeometry.asPointCloud) && (target.uniforms.thematic.wantSlopeMode || target.uniforms.thematic.wantHillShadeMode))\r\n isThematic = IsThematic.No;\r\n\r\n const wiremesh = target.currentViewFlags.wiremesh && (techniqueId === TechniqueId.Surface || techniqueId === TechniqueId.RealityMesh);\r\n const isWiremesh = wiremesh ? IsWiremesh.Yes : IsWiremesh.No;\r\n const flags = PrimitiveCommand._scratchTechniqueFlags;\r\n const posType = this.primitive.cachedGeometry.usesQuantizedPositions ? \"quantized\" : \"unquantized\";\r\n flags.init(target, exec.renderPass, isInstanced, isAnimated, isClassified, isShadowable, isThematic, isWiremesh, posType);\r\n\r\n const technique = target.techniques.getTechnique(techniqueId);\r\n const program = technique.getShader(flags);\r\n\r\n if (exec.setProgram(program))\r\n exec.target.compositor.drawPrimitive(this.primitive, exec, program.outputsToPick);\r\n }\r\n\r\n public get hasFeatures(): boolean { return this.primitive.hasFeatures; }\r\n public get renderOrder(): RenderOrder { return this.primitive.renderOrder; }\r\n\r\n public getPass(target: Target): Pass {\r\n return this.primitive.getPass(target);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport type PushCommand = PushBranchCommand | PushBatchCommand | PushStateCommand | PushClipCommand;\r\n/** @internal */\r\nexport type PopCommand = PopBranchCommand | PopBatchCommand | PopClipCommand;\r\n/** @internal */\r\nexport type DrawCommand = PushCommand | PopCommand | PrimitiveCommand;\r\n\r\n/** For a single RenderPass, an ordered list of commands to be executed during that pass.\r\n * @internal\r\n */\r\nexport type DrawCommands = DrawCommand[];\r\n\r\n/** Extracts the commands for rendering the flashed classifier (if any) from the by-index set of volume classifier commands.\r\n * NB: Cmds will be sets of some pushes, a primitive, and then some pops (equal to number of pushes).\r\n * The primitive should be right in the middle of a set. We need to find the set which matches the flashID.\r\n * @internal\r\n */\r\nexport function extractFlashedVolumeClassifierCommands(flashedId: Id64String, cmds: DrawCommands, numCmdsPerClassifier: number): DrawCommands | undefined {\r\n if (!Id64.isValid(flashedId) || 0 === numCmdsPerClassifier)\r\n return undefined;\r\n\r\n const firstPrim = (numCmdsPerClassifier - 1) / 2;\r\n for (let i = firstPrim; i < cmds.length; i += numCmdsPerClassifier) {\r\n assert(\"drawPrimitive\" === cmds[i].opcode, \"Command list not configured as expected.\");\r\n const pc: PrimitiveCommand = cmds[i] as PrimitiveCommand;\r\n const surface = pc.primitive.cachedGeometry.asSurface;\r\n if (undefined !== surface && undefined !== surface.mesh.uniformFeatureId) {\r\n let j = i - 1;\r\n while (j >= 0 && \"pushBatch\" !== cmds[j].opcode) // Find batch for this primitive\r\n j--;\r\n if (j < 0)\r\n continue;\r\n\r\n const pushBatch = cmds[j] as PushBatchCommand;\r\n const elemId = pushBatch.batch.featureTable.findElementId(surface.mesh.uniformFeatureId);\r\n if (undefined !== elemId && elemId === flashedId) {\r\n return cmds.slice(i - firstPrim, i + firstPrim + 1);\r\n }\r\n }\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\n/** @internal */\r\nexport function extractHilitedVolumeClassifierCommands(hilites: Hilites, cmds: DrawCommands): DrawCommands {\r\n // TODO: This could really be done at the time the HiliteClassification render pass commands are being generated\r\n // by just not putting the ones which are not hilited into the ClassificationHilite command list.\r\n const result: DrawCommand[] = [];\r\n\r\n let batch;\r\n for (const cmd of cmds) {\r\n switch (cmd.opcode) {\r\n case \"popBranch\":\r\n if (result.length > 0 && \"pushBranch\" === result[result.length - 1].opcode) {\r\n result.pop(); // remove empty push/pop pairs\r\n continue;\r\n }\r\n break;\r\n case \"popBatch\":\r\n batch = undefined;\r\n if (result.length > 0 && \"pushBatch\" === result[result.length - 1].opcode) {\r\n result.pop(); // remove empty push/pop pairs\r\n continue;\r\n }\r\n break;\r\n case \"pushBatch\":\r\n batch = cmd.batch;\r\n break;\r\n case \"drawPrimitive\":\r\n if (undefined !== batch) {\r\n // Skip any primitives that are not hilited.\r\n const surface = cmd.primitive.cachedGeometry.asSurface;\r\n if (undefined === surface || undefined === surface.mesh.uniformFeatureId)\r\n continue;\r\n\r\n const feature = batch.featureTable.getPackedFeature(surface.mesh.uniformFeatureId);\r\n if (undefined === feature || !isFeatureHilited(feature, hilites, hilites.models.hasId(batch.featureTable.modelId)))\r\n continue;\r\n\r\n break;\r\n }\r\n }\r\n\r\n result.push(cmd);\r\n }\r\n\r\n return result;\r\n}\r\n"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { RenderMemory } from "../RenderMemory";
|
|
2
|
+
import { WebGLDisposable } from "./Disposable";
|
|
3
|
+
import { DepthBuffer, FrameBuffer } from "./FrameBuffer";
|
|
4
|
+
import { Target } from "./Target";
|
|
5
|
+
import { TextureHandle } from "./Texture";
|
|
6
|
+
/** @internal */
|
|
7
|
+
export declare enum EDLMode {
|
|
8
|
+
Off = 0,
|
|
9
|
+
On = 1,
|
|
10
|
+
Full = 2
|
|
11
|
+
}
|
|
12
|
+
/** @internal */
|
|
13
|
+
export interface EDLDrawParams {
|
|
14
|
+
inputTex: TextureHandle;
|
|
15
|
+
curFbo: FrameBuffer;
|
|
16
|
+
edlMode: EDLMode;
|
|
17
|
+
edlFilter: boolean;
|
|
18
|
+
useMsBuffers: boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare class EyeDomeLighting implements RenderMemory.Consumer, WebGLDisposable {
|
|
21
|
+
private _bundle?;
|
|
22
|
+
private _width;
|
|
23
|
+
private _height;
|
|
24
|
+
private _depth?;
|
|
25
|
+
private _edlFinalFbo?;
|
|
26
|
+
private _edlFinalBufs?;
|
|
27
|
+
private readonly _target;
|
|
28
|
+
private getBundle;
|
|
29
|
+
constructor(target: Target);
|
|
30
|
+
init(width: number, height: number, depth: DepthBuffer): boolean;
|
|
31
|
+
collectStatistics(stats: RenderMemory.Statistics): void;
|
|
32
|
+
get isDisposed(): boolean;
|
|
33
|
+
dispose(): void;
|
|
34
|
+
reset(): void;
|
|
35
|
+
/** calculate EyeDomeLighting at specified quality using screen space shaders
|
|
36
|
+
* returns true if succeeds
|
|
37
|
+
*/
|
|
38
|
+
draw(edlParams: EDLDrawParams): boolean;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=EDL.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EDL.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/EDL.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAOzD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAqG1C,gBAAgB;AAChB,oBAAY,OAAO;IAAG,GAAG,IAAA;IAAE,EAAE,IAAA;IAAE,IAAI,IAAA;CAAE;AAErC,gBAAgB;AAChB,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,qBAAa,eAAgB,YAAW,YAAY,CAAC,QAAQ,EAAE,eAAe;IAC5E,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAC,CAAc;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAc;IACnC,OAAO,CAAC,aAAa,CAAC,CAAqE;IAC3F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,OAAO,CAAC,SAAS;gBAQE,MAAM,EAAE,MAAM;IAM1B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO;IAQhE,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAmB9D,IAAW,UAAU,IAAI,OAAO,CAA0E;IAEnG,OAAO;IAKP,KAAK;IAIZ;;OAEG;IACI,IAAI,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO;CAiG/C"}
|