@itwin/core-frontend 4.10.0-dev.2 → 4.10.0-dev.22
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 +33 -1
- package/lib/cjs/AccuSnap.d.ts.map +1 -1
- package/lib/cjs/AccuSnap.js +9 -5
- package/lib/cjs/AccuSnap.js.map +1 -1
- package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
- package/lib/cjs/DisplayStyleState.js +5 -1
- package/lib/cjs/DisplayStyleState.js.map +1 -1
- package/lib/cjs/ElementLocateManager.d.ts +7 -1
- package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
- package/lib/cjs/ElementLocateManager.js +34 -10
- package/lib/cjs/ElementLocateManager.js.map +1 -1
- package/lib/cjs/HitDetail.d.ts +4 -0
- package/lib/cjs/HitDetail.d.ts.map +1 -1
- package/lib/cjs/HitDetail.js +3 -0
- package/lib/cjs/HitDetail.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +1 -0
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +2 -1
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/NoRenderApp.d.ts +1 -0
- package/lib/cjs/NoRenderApp.d.ts.map +1 -1
- package/lib/cjs/NoRenderApp.js +1 -0
- package/lib/cjs/NoRenderApp.js.map +1 -1
- package/lib/cjs/SheetViewState.d.ts +0 -1
- package/lib/cjs/SheetViewState.d.ts.map +1 -1
- package/lib/cjs/SheetViewState.js +0 -1
- package/lib/cjs/SheetViewState.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +25 -1
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +20 -12
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/common/WorkerProxy.d.ts +8 -4
- package/lib/cjs/common/WorkerProxy.d.ts.map +1 -1
- package/lib/cjs/common/WorkerProxy.js.map +1 -1
- package/lib/cjs/common/imdl/ImdlModel.d.ts +3 -8
- package/lib/cjs/common/imdl/ImdlModel.d.ts.map +1 -1
- package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
- package/lib/cjs/common/internal/Symbols.d.ts +7 -0
- package/lib/cjs/common/internal/Symbols.d.ts.map +1 -1
- package/lib/cjs/common/internal/Symbols.js +8 -1
- package/lib/cjs/common/internal/Symbols.js.map +1 -1
- package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.d.ts +15 -0
- package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.js +95 -0
- package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -0
- package/lib/cjs/common/internal/render/LineCode.d.ts +9 -0
- package/lib/cjs/common/internal/render/LineCode.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/LineCode.js +31 -0
- package/lib/cjs/common/internal/render/LineCode.js.map +1 -0
- package/lib/cjs/common/internal/render/OvrFlags.d.ts +27 -0
- package/lib/cjs/common/internal/render/OvrFlags.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/OvrFlags.js +10 -0
- package/lib/cjs/common/internal/render/OvrFlags.js.map +1 -0
- package/lib/cjs/common/internal/render/VertexTable.d.ts.map +1 -1
- package/lib/cjs/common/internal/render/VertexTable.js +3 -5
- package/lib/cjs/common/internal/render/VertexTable.js.map +1 -1
- package/lib/cjs/common/render/InstancedGraphicParams.d.ts +25 -1
- package/lib/cjs/common/render/InstancedGraphicParams.d.ts.map +1 -1
- package/lib/cjs/common/render/InstancedGraphicParams.js +59 -0
- package/lib/cjs/common/render/InstancedGraphicParams.js.map +1 -1
- package/lib/cjs/common/render/RenderInstancesParams.d.ts +76 -0
- package/lib/cjs/common/render/RenderInstancesParams.d.ts.map +1 -0
- package/lib/cjs/common/render/RenderInstancesParams.js +33 -0
- package/lib/cjs/common/render/RenderInstancesParams.js.map +1 -0
- package/lib/cjs/common.d.ts +1 -0
- package/lib/cjs/common.d.ts.map +1 -1
- package/lib/cjs/common.js +1 -0
- package/lib/cjs/common.js.map +1 -1
- package/lib/cjs/core-frontend.d.ts +1 -0
- package/lib/cjs/core-frontend.d.ts.map +1 -1
- package/lib/cjs/core-frontend.js +1 -0
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/internal/render/PrimitiveBuilder.d.ts +4 -1
- package/lib/cjs/internal/render/PrimitiveBuilder.d.ts.map +1 -1
- package/lib/cjs/internal/render/PrimitiveBuilder.js +82 -35
- package/lib/cjs/internal/render/PrimitiveBuilder.js.map +1 -1
- package/lib/cjs/internal/render/RenderGeometry.d.ts +20 -0
- package/lib/cjs/internal/render/RenderGeometry.d.ts.map +1 -0
- package/lib/cjs/internal/render/RenderGeometry.js +10 -0
- package/lib/cjs/internal/render/RenderGeometry.js.map +1 -0
- package/lib/cjs/internal/render/RenderInstancesParamsImpl.d.ts +24 -0
- package/lib/cjs/internal/render/RenderInstancesParamsImpl.d.ts.map +1 -0
- package/lib/cjs/internal/render/RenderInstancesParamsImpl.js +69 -0
- package/lib/cjs/internal/render/RenderInstancesParamsImpl.js.map +1 -0
- package/lib/cjs/render/GraphicBranch.d.ts +10 -1
- package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- package/lib/cjs/render/GraphicBuilder.d.ts +17 -3
- package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBuilder.js +7 -1
- package/lib/cjs/render/GraphicBuilder.js.map +1 -1
- package/lib/cjs/render/GraphicTemplate.d.ts +76 -0
- package/lib/cjs/render/GraphicTemplate.d.ts.map +1 -0
- package/lib/cjs/render/GraphicTemplate.js +41 -0
- package/lib/cjs/render/GraphicTemplate.js.map +1 -0
- package/lib/cjs/render/MockRender.d.ts +12 -2
- package/lib/cjs/render/MockRender.d.ts.map +1 -1
- package/lib/cjs/render/MockRender.js +19 -5
- package/lib/cjs/render/MockRender.js.map +1 -1
- package/lib/cjs/render/Pixel.d.ts +6 -0
- package/lib/cjs/render/Pixel.d.ts.map +1 -1
- package/lib/cjs/render/Pixel.js +2 -0
- package/lib/cjs/render/Pixel.js.map +1 -1
- package/lib/cjs/render/RealityMeshGraphicParams.d.ts +1 -0
- package/lib/cjs/render/RealityMeshGraphicParams.d.ts.map +1 -1
- package/lib/cjs/render/RealityMeshGraphicParams.js.map +1 -1
- package/lib/cjs/render/RenderMemory.d.ts +2 -0
- package/lib/cjs/render/RenderMemory.d.ts.map +1 -1
- package/lib/cjs/render/RenderMemory.js +2 -0
- package/lib/cjs/render/RenderMemory.js.map +1 -1
- package/lib/cjs/render/RenderPlan.d.ts +2 -1
- package/lib/cjs/render/RenderPlan.d.ts.map +1 -1
- package/lib/cjs/render/RenderPlan.js +2 -0
- package/lib/cjs/render/RenderPlan.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +59 -11
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js +44 -6
- 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.map +1 -1
- package/lib/cjs/render/webgl/BatchUniforms.d.ts +4 -0
- package/lib/cjs/render/webgl/BatchUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BatchUniforms.js +18 -0
- package/lib/cjs/render/webgl/BatchUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/BranchState.d.ts +7 -0
- package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BranchState.js +4 -0
- package/lib/cjs/render/webgl/BranchState.js.map +1 -1
- package/lib/cjs/render/webgl/BranchUniforms.d.ts +1 -0
- package/lib/cjs/render/webgl/BranchUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BranchUniforms.js +14 -1
- package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/ContourUniforms.d.ts +22 -0
- package/lib/cjs/render/webgl/ContourUniforms.d.ts.map +1 -0
- package/lib/cjs/render/webgl/ContourUniforms.js +98 -0
- package/lib/cjs/render/webgl/ContourUniforms.js.map +1 -0
- package/lib/cjs/render/webgl/Contours.d.ts +34 -0
- package/lib/cjs/render/webgl/Contours.d.ts.map +1 -0
- package/lib/cjs/render/webgl/Contours.js +127 -0
- package/lib/cjs/render/webgl/Contours.js.map +1 -0
- package/lib/cjs/render/webgl/EdgeSettings.d.ts +2 -1
- package/lib/cjs/render/webgl/EdgeSettings.d.ts.map +1 -1
- package/lib/cjs/render/webgl/EdgeSettings.js +1 -1
- package/lib/cjs/render/webgl/EdgeSettings.js.map +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.d.ts +2 -0
- package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.js +83 -69
- package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/cjs/render/webgl/GL.d.ts +2 -1
- package/lib/cjs/render/webgl/GL.d.ts.map +1 -1
- package/lib/cjs/render/webgl/GL.js +1 -0
- package/lib/cjs/render/webgl/GL.js.map +1 -1
- package/lib/cjs/render/webgl/Graphic.d.ts +9 -0
- package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Graphic.js +27 -0
- package/lib/cjs/render/webgl/Graphic.js.map +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.d.ts +40 -10
- package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.js +99 -31
- package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/LineCode.d.ts.map +1 -1
- package/lib/cjs/render/webgl/LineCode.js +2 -14
- package/lib/cjs/render/webgl/LineCode.js.map +1 -1
- package/lib/cjs/render/webgl/Mesh.d.ts +9 -4
- package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Mesh.js +18 -16
- package/lib/cjs/render/webgl/Mesh.js.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.d.ts +5 -1
- package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.js +7 -2
- package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
- package/lib/cjs/render/webgl/PointString.d.ts +5 -1
- package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PointString.js +8 -3
- package/lib/cjs/render/webgl/PointString.js.map +1 -1
- package/lib/cjs/render/webgl/Polyline.d.ts +5 -1
- package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Polyline.js +7 -2
- package/lib/cjs/render/webgl/Polyline.js.map +1 -1
- package/lib/cjs/render/webgl/Primitive.d.ts +1 -3
- package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Primitive.js +1 -6
- package/lib/cjs/render/webgl/Primitive.js.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.d.ts +5 -1
- package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.js +7 -1
- package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/render/webgl/RenderFlags.d.ts +2 -19
- package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RenderFlags.js +2 -0
- package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.js +12 -3
- package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.d.ts +15 -13
- package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.js +18 -10
- package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.js +26 -0
- package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/cjs/render/webgl/System.d.ts +11 -5
- package/lib/cjs/render/webgl/System.d.ts.map +1 -1
- package/lib/cjs/render/webgl/System.js +81 -13
- package/lib/cjs/render/webgl/System.js.map +1 -1
- package/lib/cjs/render/webgl/Target.d.ts +6 -2
- package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Target.js +24 -1
- package/lib/cjs/render/webgl/Target.js.map +1 -1
- package/lib/cjs/render/webgl/TargetUniforms.d.ts +2 -0
- package/lib/cjs/render/webgl/TargetUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/TargetUniforms.js +2 -0
- package/lib/cjs/render/webgl/TargetUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/Texture.d.ts +2 -1
- package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Texture.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +1 -1
- package/lib/cjs/render/webgl/glsl/Atmosphere.js +1 -1
- package/lib/cjs/render/webgl/glsl/Blur.js +1 -1
- package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js +1 -1
- package/lib/cjs/render/webgl/glsl/ClearTranslucent.js +1 -1
- package/lib/cjs/render/webgl/glsl/Clipping.js +1 -1
- package/lib/cjs/render/webgl/glsl/Combine3Textures.js +1 -1
- package/lib/cjs/render/webgl/glsl/CombineTextures.js +1 -1
- package/lib/cjs/render/webgl/glsl/Composite.js +1 -1
- package/lib/cjs/render/webgl/glsl/Contours.d.ts +4 -0
- package/lib/cjs/render/webgl/glsl/Contours.d.ts.map +1 -0
- package/lib/cjs/render/webgl/glsl/Contours.js +138 -0
- package/lib/cjs/render/webgl/glsl/Contours.js.map +1 -0
- package/lib/cjs/render/webgl/glsl/CopyColor.js +1 -1
- package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js +1 -1
- package/lib/cjs/render/webgl/glsl/CopyStencil.js +5 -5
- package/lib/cjs/render/webgl/glsl/EDL.js +4 -4
- package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js +1 -1
- package/lib/cjs/render/webgl/glsl/Edge.js +1 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts +2 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +28 -15
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Fragment.js +9 -9
- package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
- package/lib/cjs/render/webgl/glsl/PlanarClassification.js +4 -4
- package/lib/cjs/render/webgl/glsl/PointCloud.js +1 -1
- package/lib/cjs/render/webgl/glsl/RealityMesh.js +3 -3
- package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js +1 -1
- package/lib/cjs/render/webgl/glsl/SkyBox.js +1 -1
- package/lib/cjs/render/webgl/glsl/SkySphere.js +1 -1
- package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.js +5 -3
- package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Translucency.js +1 -1
- package/lib/cjs/render/webgl/glsl/Wiremesh.js +1 -1
- package/lib/cjs/tile/GltfReader.d.ts +27 -7
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +84 -68
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/ImdlGraphicsCreator.d.ts +4 -1
- package/lib/cjs/tile/ImdlGraphicsCreator.d.ts.map +1 -1
- package/lib/cjs/tile/ImdlGraphicsCreator.js +32 -22
- package/lib/cjs/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.d.ts +4 -0
- package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.js +2 -0
- package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
- package/lib/cjs/tile/TileTreeReference.d.ts +2 -0
- package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeReference.js +3 -0
- package/lib/cjs/tile/TileTreeReference.js.map +1 -1
- package/lib/cjs/tile/map/MapTile.js +1 -1
- package/lib/cjs/tile/map/MapTile.js.map +1 -1
- package/lib/esm/AccuSnap.d.ts.map +1 -1
- package/lib/esm/AccuSnap.js +9 -5
- package/lib/esm/AccuSnap.js.map +1 -1
- package/lib/esm/DisplayStyleState.d.ts.map +1 -1
- package/lib/esm/DisplayStyleState.js +5 -1
- package/lib/esm/DisplayStyleState.js.map +1 -1
- package/lib/esm/ElementLocateManager.d.ts +7 -1
- package/lib/esm/ElementLocateManager.d.ts.map +1 -1
- package/lib/esm/ElementLocateManager.js +34 -10
- package/lib/esm/ElementLocateManager.js.map +1 -1
- package/lib/esm/HitDetail.d.ts +4 -0
- package/lib/esm/HitDetail.d.ts.map +1 -1
- package/lib/esm/HitDetail.js +3 -0
- package/lib/esm/HitDetail.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +1 -0
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +2 -1
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/NoRenderApp.d.ts +1 -0
- package/lib/esm/NoRenderApp.d.ts.map +1 -1
- package/lib/esm/NoRenderApp.js +1 -0
- package/lib/esm/NoRenderApp.js.map +1 -1
- package/lib/esm/SheetViewState.d.ts +0 -1
- package/lib/esm/SheetViewState.d.ts.map +1 -1
- package/lib/esm/SheetViewState.js +0 -1
- package/lib/esm/SheetViewState.js.map +1 -1
- package/lib/esm/Viewport.d.ts +25 -1
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +20 -12
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/common/WorkerProxy.d.ts +8 -4
- package/lib/esm/common/WorkerProxy.d.ts.map +1 -1
- package/lib/esm/common/WorkerProxy.js.map +1 -1
- package/lib/esm/common/imdl/ImdlModel.d.ts +3 -8
- package/lib/esm/common/imdl/ImdlModel.d.ts.map +1 -1
- package/lib/esm/common/imdl/ImdlModel.js.map +1 -1
- package/lib/esm/common/internal/Symbols.d.ts +7 -0
- package/lib/esm/common/internal/Symbols.d.ts.map +1 -1
- package/lib/esm/common/internal/Symbols.js +7 -0
- package/lib/esm/common/internal/Symbols.js.map +1 -1
- package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.d.ts +15 -0
- package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.d.ts.map +1 -0
- package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.js +91 -0
- package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -0
- package/lib/esm/common/internal/render/LineCode.d.ts +9 -0
- package/lib/esm/common/internal/render/LineCode.d.ts.map +1 -0
- package/lib/esm/common/internal/render/LineCode.js +27 -0
- package/lib/esm/common/internal/render/LineCode.js.map +1 -0
- package/lib/esm/common/internal/render/OvrFlags.d.ts +27 -0
- package/lib/esm/common/internal/render/OvrFlags.d.ts.map +1 -0
- package/lib/esm/common/internal/render/OvrFlags.js +9 -0
- package/lib/esm/common/internal/render/OvrFlags.js.map +1 -0
- package/lib/esm/common/internal/render/VertexTable.d.ts.map +1 -1
- package/lib/esm/common/internal/render/VertexTable.js +3 -5
- package/lib/esm/common/internal/render/VertexTable.js.map +1 -1
- package/lib/esm/common/render/InstancedGraphicParams.d.ts +25 -1
- package/lib/esm/common/render/InstancedGraphicParams.d.ts.map +1 -1
- package/lib/esm/common/render/InstancedGraphicParams.js +58 -1
- package/lib/esm/common/render/InstancedGraphicParams.js.map +1 -1
- package/lib/esm/common/render/RenderInstancesParams.d.ts +76 -0
- package/lib/esm/common/render/RenderInstancesParams.d.ts.map +1 -0
- package/lib/esm/common/render/RenderInstancesParams.js +30 -0
- package/lib/esm/common/render/RenderInstancesParams.js.map +1 -0
- package/lib/esm/common.d.ts +1 -0
- package/lib/esm/common.d.ts.map +1 -1
- package/lib/esm/common.js +1 -0
- package/lib/esm/common.js.map +1 -1
- package/lib/esm/core-frontend.d.ts +1 -0
- package/lib/esm/core-frontend.d.ts.map +1 -1
- package/lib/esm/core-frontend.js +1 -0
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/internal/render/PrimitiveBuilder.d.ts +4 -1
- package/lib/esm/internal/render/PrimitiveBuilder.d.ts.map +1 -1
- package/lib/esm/internal/render/PrimitiveBuilder.js +82 -35
- package/lib/esm/internal/render/PrimitiveBuilder.js.map +1 -1
- package/lib/esm/internal/render/RenderGeometry.d.ts +20 -0
- package/lib/esm/internal/render/RenderGeometry.d.ts.map +1 -0
- package/lib/esm/internal/render/RenderGeometry.js +9 -0
- package/lib/esm/internal/render/RenderGeometry.js.map +1 -0
- package/lib/esm/internal/render/RenderInstancesParamsImpl.d.ts +24 -0
- package/lib/esm/internal/render/RenderInstancesParamsImpl.d.ts.map +1 -0
- package/lib/esm/internal/render/RenderInstancesParamsImpl.js +64 -0
- package/lib/esm/internal/render/RenderInstancesParamsImpl.js.map +1 -0
- package/lib/esm/render/GraphicBranch.d.ts +10 -1
- package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- package/lib/esm/render/GraphicBuilder.d.ts +17 -3
- package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
- package/lib/esm/render/GraphicBuilder.js +7 -1
- package/lib/esm/render/GraphicBuilder.js.map +1 -1
- package/lib/esm/render/GraphicTemplate.d.ts +76 -0
- package/lib/esm/render/GraphicTemplate.d.ts.map +1 -0
- package/lib/esm/render/GraphicTemplate.js +37 -0
- package/lib/esm/render/GraphicTemplate.js.map +1 -0
- package/lib/esm/render/MockRender.d.ts +12 -2
- package/lib/esm/render/MockRender.d.ts.map +1 -1
- package/lib/esm/render/MockRender.js +19 -5
- package/lib/esm/render/MockRender.js.map +1 -1
- package/lib/esm/render/Pixel.d.ts +6 -0
- package/lib/esm/render/Pixel.d.ts.map +1 -1
- package/lib/esm/render/Pixel.js +2 -0
- package/lib/esm/render/Pixel.js.map +1 -1
- package/lib/esm/render/RealityMeshGraphicParams.d.ts +1 -0
- package/lib/esm/render/RealityMeshGraphicParams.d.ts.map +1 -1
- package/lib/esm/render/RealityMeshGraphicParams.js.map +1 -1
- package/lib/esm/render/RenderMemory.d.ts +2 -0
- package/lib/esm/render/RenderMemory.d.ts.map +1 -1
- package/lib/esm/render/RenderMemory.js +2 -0
- package/lib/esm/render/RenderMemory.js.map +1 -1
- package/lib/esm/render/RenderPlan.d.ts +2 -1
- package/lib/esm/render/RenderPlan.d.ts.map +1 -1
- package/lib/esm/render/RenderPlan.js +2 -0
- package/lib/esm/render/RenderPlan.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +59 -11
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js +46 -8
- 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.map +1 -1
- package/lib/esm/render/webgl/BatchUniforms.d.ts +4 -0
- package/lib/esm/render/webgl/BatchUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/BatchUniforms.js +18 -0
- package/lib/esm/render/webgl/BatchUniforms.js.map +1 -1
- package/lib/esm/render/webgl/BranchState.d.ts +7 -0
- package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/esm/render/webgl/BranchState.js +4 -0
- package/lib/esm/render/webgl/BranchState.js.map +1 -1
- package/lib/esm/render/webgl/BranchUniforms.d.ts +1 -0
- package/lib/esm/render/webgl/BranchUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/BranchUniforms.js +14 -1
- package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/esm/render/webgl/ContourUniforms.d.ts +22 -0
- package/lib/esm/render/webgl/ContourUniforms.d.ts.map +1 -0
- package/lib/esm/render/webgl/ContourUniforms.js +94 -0
- package/lib/esm/render/webgl/ContourUniforms.js.map +1 -0
- package/lib/esm/render/webgl/Contours.d.ts +34 -0
- package/lib/esm/render/webgl/Contours.d.ts.map +1 -0
- package/lib/esm/render/webgl/Contours.js +123 -0
- package/lib/esm/render/webgl/Contours.js.map +1 -0
- package/lib/esm/render/webgl/EdgeSettings.d.ts +2 -1
- package/lib/esm/render/webgl/EdgeSettings.d.ts.map +1 -1
- package/lib/esm/render/webgl/EdgeSettings.js +1 -1
- package/lib/esm/render/webgl/EdgeSettings.js.map +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.d.ts +2 -0
- package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.js +83 -69
- package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/esm/render/webgl/GL.d.ts +2 -1
- package/lib/esm/render/webgl/GL.d.ts.map +1 -1
- package/lib/esm/render/webgl/GL.js +1 -0
- package/lib/esm/render/webgl/GL.js.map +1 -1
- package/lib/esm/render/webgl/Graphic.d.ts +9 -0
- package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
- package/lib/esm/render/webgl/Graphic.js +27 -0
- package/lib/esm/render/webgl/Graphic.js.map +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.d.ts +40 -10
- package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.js +97 -30
- package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/esm/render/webgl/LineCode.d.ts.map +1 -1
- package/lib/esm/render/webgl/LineCode.js +2 -14
- package/lib/esm/render/webgl/LineCode.js.map +1 -1
- package/lib/esm/render/webgl/Mesh.d.ts +9 -4
- package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/Mesh.js +19 -17
- package/lib/esm/render/webgl/Mesh.js.map +1 -1
- package/lib/esm/render/webgl/PointCloud.d.ts +5 -1
- package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/esm/render/webgl/PointCloud.js +7 -2
- package/lib/esm/render/webgl/PointCloud.js.map +1 -1
- package/lib/esm/render/webgl/PointString.d.ts +5 -1
- package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
- package/lib/esm/render/webgl/PointString.js +8 -3
- package/lib/esm/render/webgl/PointString.js.map +1 -1
- package/lib/esm/render/webgl/Polyline.d.ts +5 -1
- package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
- package/lib/esm/render/webgl/Polyline.js +7 -2
- package/lib/esm/render/webgl/Polyline.js.map +1 -1
- package/lib/esm/render/webgl/Primitive.d.ts +1 -3
- package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
- package/lib/esm/render/webgl/Primitive.js +2 -7
- package/lib/esm/render/webgl/Primitive.js.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.d.ts +5 -1
- package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.js +7 -1
- package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/render/webgl/RenderFlags.d.ts +2 -19
- package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/esm/render/webgl/RenderFlags.js +2 -0
- package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.js +12 -3
- package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.d.ts +15 -13
- package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.js +18 -10
- package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/esm/render/webgl/ShaderProgram.js +26 -0
- package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/esm/render/webgl/System.d.ts +11 -5
- package/lib/esm/render/webgl/System.d.ts.map +1 -1
- package/lib/esm/render/webgl/System.js +82 -14
- package/lib/esm/render/webgl/System.js.map +1 -1
- package/lib/esm/render/webgl/Target.d.ts +6 -2
- package/lib/esm/render/webgl/Target.d.ts.map +1 -1
- package/lib/esm/render/webgl/Target.js +24 -1
- package/lib/esm/render/webgl/Target.js.map +1 -1
- package/lib/esm/render/webgl/TargetUniforms.d.ts +2 -0
- package/lib/esm/render/webgl/TargetUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/TargetUniforms.js +2 -0
- package/lib/esm/render/webgl/TargetUniforms.js.map +1 -1
- package/lib/esm/render/webgl/Texture.d.ts +2 -1
- package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
- package/lib/esm/render/webgl/Texture.js.map +1 -1
- package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +1 -1
- package/lib/esm/render/webgl/glsl/Atmosphere.js +1 -1
- package/lib/esm/render/webgl/glsl/Blur.js +1 -1
- package/lib/esm/render/webgl/glsl/ClearPickAndColor.js +1 -1
- package/lib/esm/render/webgl/glsl/ClearTranslucent.js +1 -1
- package/lib/esm/render/webgl/glsl/Clipping.js +1 -1
- package/lib/esm/render/webgl/glsl/Combine3Textures.js +1 -1
- package/lib/esm/render/webgl/glsl/CombineTextures.js +1 -1
- package/lib/esm/render/webgl/glsl/Composite.js +1 -1
- package/lib/esm/render/webgl/glsl/Contours.d.ts +4 -0
- package/lib/esm/render/webgl/glsl/Contours.d.ts.map +1 -0
- package/lib/esm/render/webgl/glsl/Contours.js +134 -0
- package/lib/esm/render/webgl/glsl/Contours.js.map +1 -0
- package/lib/esm/render/webgl/glsl/CopyColor.js +1 -1
- package/lib/esm/render/webgl/glsl/CopyPickBuffers.js +1 -1
- package/lib/esm/render/webgl/glsl/CopyStencil.js +5 -5
- package/lib/esm/render/webgl/glsl/EDL.js +4 -4
- package/lib/esm/render/webgl/glsl/EVSMFromDepth.js +1 -1
- package/lib/esm/render/webgl/glsl/Edge.js +1 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts +2 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.js +27 -15
- package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Fragment.js +9 -9
- package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
- package/lib/esm/render/webgl/glsl/PlanarClassification.js +4 -4
- package/lib/esm/render/webgl/glsl/PointCloud.js +1 -1
- package/lib/esm/render/webgl/glsl/RealityMesh.js +3 -3
- package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js +1 -1
- package/lib/esm/render/webgl/glsl/SkyBox.js +1 -1
- package/lib/esm/render/webgl/glsl/SkySphere.js +1 -1
- package/lib/esm/render/webgl/glsl/SolarShadowMapping.js +1 -1
- package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Surface.js +5 -3
- package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Translucency.js +1 -1
- package/lib/esm/render/webgl/glsl/Wiremesh.js +1 -1
- package/lib/esm/tile/GltfReader.d.ts +27 -7
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +82 -67
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/ImdlGraphicsCreator.d.ts +4 -1
- package/lib/esm/tile/ImdlGraphicsCreator.d.ts.map +1 -1
- package/lib/esm/tile/ImdlGraphicsCreator.js +31 -22
- package/lib/esm/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/esm/tile/TileDrawArgs.d.ts +4 -0
- package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/esm/tile/TileDrawArgs.js +2 -0
- package/lib/esm/tile/TileDrawArgs.js.map +1 -1
- package/lib/esm/tile/TileTreeReference.d.ts +2 -0
- package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeReference.js +3 -0
- package/lib/esm/tile/TileTreeReference.js.map +1 -1
- package/lib/esm/tile/map/MapTile.js +1 -1
- package/lib/esm/tile/map/MapTile.js.map +1 -1
- package/lib/public/scripts/parse-imdl-worker.js +1 -1
- package/lib/workers/webpack/parse-imdl-worker.js +1 -1
- package/package.json +18 -18
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module Utils
|
|
3
|
+
*/
|
|
4
|
+
import { MaybePromise } from "@itwin/core-bentley";
|
|
1
5
|
/** Given an interface T that defines the operations provided by a worker, produce an interface that can be used to asynchronously invoke those operations
|
|
2
6
|
* from the main thread, optionally passing an array of values to be transferred from the main thread to the worker.
|
|
3
7
|
* - Every return type is converted to a `Promise` (i.e., every function becomes `async`)>.
|
|
@@ -12,14 +16,14 @@ export type WorkerInterface<T> = {
|
|
|
12
16
|
[P in keyof T]: T[P] extends () => any ? () => Promise<ReturnType<T[P]>> : (T[P] extends (arg: any) => any ? (arg: Parameters<T[P]>[0], transfer?: Transferable[]) => Promise<ReturnType<T[P]>> : (T[P] extends (...args: any) => any ? (args: Parameters<T[P]>, transfer?: Transferable[]) => Promise<ReturnType<T[P]>> : never));
|
|
13
17
|
};
|
|
14
18
|
/** Augments each method of `T` with the ability to specify values to be transferred from the worker thread to the main thread.
|
|
15
|
-
* Each return type `R` is replaced with `R | { result: R; transfer: Transferable[]; }
|
|
19
|
+
* Each return type `R` is replaced with `R | { result: R; transfer: Transferable[]; }`, or a promise that resolves to such a type.
|
|
16
20
|
* @see [[WorkerImplementation]].
|
|
17
21
|
* @beta
|
|
18
22
|
*/
|
|
19
|
-
export type WorkerReturnType<T extends (...args: any) => any> = ReturnType<T> | {
|
|
20
|
-
result: ReturnType<T
|
|
23
|
+
export type WorkerReturnType<T extends (...args: any) => any> = MaybePromise<ReturnType<T> | {
|
|
24
|
+
result: Awaited<ReturnType<T>>;
|
|
21
25
|
transfer: Transferable[];
|
|
22
|
-
}
|
|
26
|
+
}>;
|
|
23
27
|
/** Given an interface T that defines the operations provided by a worker, produce an interface to which the implementation of those operations must conform.
|
|
24
28
|
* The return type of each function is enhanced to permit supplying a list of values to be transferred from the worker to the main thread.
|
|
25
29
|
* Multi-argument functions are converted to functions accepting a single tuple of arguments.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerProxy.d.ts","sourceRoot":"","sources":["../../../src/common/WorkerProxy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WorkerProxy.d.ts","sourceRoot":"","sources":["../../../src/common/WorkerProxy.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,EAAU,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAyB3D;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;KAC9B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACtE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,YAAY,EAAE,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAClH,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,YAAY,EAAE,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAChI;CACJ,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,QAAQ,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAAC;AAE3J;;;;;;;;;;GAUG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI;KACnC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACnE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACpF,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAClG;CACJ,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG;IAChD,4BAA4B;IAC5B,SAAS,IAAI,IAAI,CAAC;IAClB,qDAAqD;IACrD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CA+CzE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerProxy.js","sourceRoot":"","sources":["../../../src/common/WorkerProxy.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"WorkerProxy.js","sourceRoot":"","sources":["../../../src/common/WorkerProxy.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,sDAA2D;AAiF3D;;;GAGG;AACH,SAAgB,iBAAiB,CAAI,YAAoB;IACvD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAgB,CAAC;IACtC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,IAAI,MAAc,CAAC;IACnB,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,MAAM,CAAC;IAC7F,IAAI,UAAU,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,CAAC,kBAAkB,YAAY,KAAK,CAAC,CAAC,CAAC;QACnE,MAAM,aAAa,GAAG,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,SAAS,GAAG,CAAC,CAAe,EAAE,EAAE;QACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAsB,CAAC;QAC1C,IAAA,qBAAM,EAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC;QACrC,IAAA,qBAAM,EAAC,QAAQ,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,CAAC,CAAC;QAEpD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,QAAQ,CAAC,KAAK;gBAChB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;;gBAE5B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,IAAI,KAAK,CAAC,EAAoB,EAAE;QACrC,GAAG,CAAC,OAAO,EAAE,SAAiB;YAC5B,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;gBAC9B,IAAA,qBAAM,EAAC,CAAC,UAAU,CAAC,CAAC;gBACpB,UAAU,GAAG,IAAI,CAAC;gBAClB,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAClC,CAAC;iBAAM,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;gBACxC,OAAO,UAAU,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,OAAO,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC/D,MAAM,KAAK,GAAG,EAAE,QAAQ,CAAC;oBACzB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;oBACtC,MAAM,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5E,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AA/CD,8CA+CC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Utils\r\n */\r\nimport { assert, MaybePromise } from \"@itwin/core-bentley\";\r\n\r\n/** Holds callbacks for a Promise produced for a particular call to postMessage. */\r\ninterface Task {\r\n reject: (result: any) => void;\r\n resolve: (error: Error) => void;\r\n}\r\n\r\n/** The successful result of a worker operation, correlated with the id of the caller to resolve with the result. */\r\ninterface WorkerResult {\r\n msgId: number;\r\n result: any;\r\n error?: never;\r\n}\r\n\r\n/** An error resulting from a worker operation, correlated with the id of the caller to reject with the error. */\r\ninterface WorkerError {\r\n msgId: number;\r\n error: Error;\r\n result?: never;\r\n}\r\n\r\n/** Response to `postMessage` produced by a worker operation. */\r\ntype WorkerResponse = WorkerResult | WorkerError;\r\n\r\n/** Given an interface T that defines the operations provided by a worker, produce an interface that can be used to asynchronously invoke those operations\r\n * from the main thread, optionally passing an array of values to be transferred from the main thread to the worker.\r\n * - Every return type is converted to a `Promise` (i.e., every function becomes `async`)>.\r\n * - `zeroArgFunc(): R` becomes `async zeroArgFunc(): Promise<R>`.\r\n * - `oneArgFunc(arg: U): R` becomes `async oneArgFunc(arg: U, transfer?: Transferable[]): Promise<R>`.\r\n * - `multiArgFunc(arg1: U, arg2: V): R` becomes `async multiArgFunc(args: [U, V], transfer?: Transferable[]): Promise<R>`.\r\n * @note All parameters of all methods of `T` must support [structured cloning](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm) -\r\n * attempts to pass functions, instances of classes, DOM nodes, WebGL resources, and other non-cloneable types will compile but fail at run-time.\r\n * @beta\r\n */\r\nexport type WorkerInterface<T> = {\r\n [P in keyof T]: T[P] extends () => any ? () => Promise<ReturnType<T[P]>> :\r\n (T[P] extends (arg: any) => any ? (arg: Parameters<T[P]>[0], transfer?: Transferable[]) => Promise<ReturnType<T[P]>> :\r\n (T[P] extends (...args: any) => any ? (args: Parameters<T[P]>, transfer?: Transferable[]) => Promise<ReturnType<T[P]>> : never)\r\n )\r\n};\r\n\r\n/** Augments each method of `T` with the ability to specify values to be transferred from the worker thread to the main thread.\r\n * Each return type `R` is replaced with `R | { result: R; transfer: Transferable[]; }`, or a promise that resolves to such a type.\r\n * @see [[WorkerImplementation]].\r\n * @beta\r\n */\r\nexport type WorkerReturnType<T extends (...args: any) => any> = MaybePromise<ReturnType<T> | { result: Awaited<ReturnType<T>>, transfer: Transferable[] }>;\r\n\r\n/** Given an interface T that defines the operations provided by a worker, produce an interface to which the implementation of those operations must conform.\r\n * The return type of each function is enhanced to permit supplying a list of values to be transferred from the worker to the main thread.\r\n * Multi-argument functions are converted to functions accepting a single tuple of arguments.\r\n * - Every return type `R` is converted to `WorkerReturnType<R>`.\r\n * - `zeroArgFunc(): R` becomes `zeroArgFunc(): R | { result: R; transfer: Transferable[]; }`.\r\n * - `oneArgFunc(arg: U): R` becomes `oneArgFunc(arg: U): R | { result: R; transfer: Transferable[]; }`.\r\n * - `multiArgFunc(arg1: U, arg2: V): R` becomes `multiArgFunc([U, V]): R | { result: R; transfer: Transferable[]; }`.\r\n * @note All parameters of all methods of `T` must support [structured cloning](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm) -\r\n * attempts to pass functions, instances of classes, DOM nodes, WebGL resources, and other non-cloneable types will compile but fail at run-time.\r\n * @beta\r\n */\r\nexport type WorkerImplementation<T> = {\r\n [P in keyof T]: T[P] extends () => any ? () => WorkerReturnType<T[P]> :\r\n (T[P] extends (arg: any) => any ? (arg: Parameters<T[P]>[0]) => WorkerReturnType<T[P]> :\r\n (T[P] extends (...args: any) => any ? (args: Parameters<T[P]>) => WorkerReturnType<T[P]> : never)\r\n )\r\n};\r\n\r\n/** A proxy for a [web worker](https://developer.mozilla.org/en-US/docs/Web/API/Worker) that provides the operations specified by\r\n * the methods of `T`.\r\n * To use a worker proxy, define a worker script that provides [[registerWorker]] with an implementation of `T`, and obtain a proxy\r\n * via [[createWorkerProxy]] on the main thread. The proxy can then be used to asynchronously invoke methods of `T` on the worker.\r\n * See [this article]($docs/learning/frontend/WorkerProxy.md) for more details and examples.\r\n * @beta\r\n */\r\nexport type WorkerProxy<T> = WorkerInterface<T> & {\r\n /** Terminate the worker. */\r\n terminate(): void;\r\n /** Returns true if [[terminate]] has been called. */\r\n readonly isTerminated: boolean;\r\n};\r\n\r\n/** Create a [[WorkerProxy]] implementing the methods of `T` using the specified worker script.\r\n * See [this article]($docs/learning/frontend/WorkerProxy.md) for more details and examples.\r\n * @beta\r\n */\r\nexport function createWorkerProxy<T>(workerJsPath: string): WorkerProxy<T> {\r\n const tasks = new Map<number, Task>();\r\n let curMsgId = 0;\r\n let terminated = false;\r\n\r\n let worker: Worker;\r\n const sameOrigin = workerJsPath.substring(0, globalThis.origin.length) === globalThis.origin;\r\n if (sameOrigin || !workerJsPath.startsWith(\"http\")) {\r\n worker = new Worker(workerJsPath);\r\n } else {\r\n const workerBlob = new Blob([`importScripts(\"${workerJsPath}\");`]);\r\n const workerBlobUrl = URL.createObjectURL(workerBlob);\r\n worker = new Worker(workerBlobUrl);\r\n }\r\n\r\n worker.onmessage = (e: MessageEvent) => {\r\n const response = e.data as WorkerResponse;\r\n assert(typeof response === \"object\");\r\n assert(\"result\" in response || \"error\" in response);\r\n\r\n const task = tasks.get(response.msgId);\r\n if (task) {\r\n tasks.delete(response.msgId);\r\n if (response.error)\r\n task.reject(response.error);\r\n else\r\n task.resolve(response.result);\r\n }\r\n };\r\n\r\n return new Proxy({} as WorkerProxy<T>, {\r\n get(_target, operation: string) {\r\n if (operation === \"terminate\") {\r\n assert(!terminated);\r\n terminated = true;\r\n return () => worker.terminate();\r\n } else if (operation === \"isTerminated\") {\r\n return terminated;\r\n } else {\r\n return async (...args: any[]) => new Promise((resolve, reject) => {\r\n const msgId = ++curMsgId;\r\n tasks.set(msgId, { resolve, reject });\r\n worker.postMessage({ operation, payload: args[0], msgId }, args[1] ?? []);\r\n });\r\n }\r\n },\r\n });\r\n}\r\n"]}
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
* @module Tiles
|
|
3
3
|
*/
|
|
4
4
|
import { UintArray } from "@itwin/core-bentley";
|
|
5
|
-
import {
|
|
5
|
+
import { XYAndZ } from "@itwin/core-geometry";
|
|
6
6
|
import { ColorDefProps, FeatureIndexType, FillFlags, Gradient, LinePixels, PolylineTypeFlags, QParams2dProps, QParams3dProps } from "@itwin/core-common";
|
|
7
7
|
import { EdgeTable } from "../internal/render/EdgeParams";
|
|
8
8
|
import { SurfaceMaterialAtlas, SurfaceType } from "../internal/render/SurfaceParams";
|
|
9
9
|
import { AuxChannelTableProps } from "../internal/render/AuxChannelTable";
|
|
10
10
|
import { ImdlAreaPattern, ImdlDocument } from "./ImdlSchema";
|
|
11
|
+
import { InstancedGraphicProps } from "../render/InstancedGraphicParams";
|
|
11
12
|
/** Types comprising the parsed representation of an ImdlDocument, produced by [[parseImdlDocument]] and consumed by [[decodeImdlGraphics]].
|
|
12
13
|
* All of the types are required to support [structured cloning](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm) so that they
|
|
13
14
|
* can be passed between workers and the main JavaScript thread.
|
|
@@ -100,14 +101,8 @@ export declare namespace ImdlModel {
|
|
|
100
101
|
isPlanar: boolean;
|
|
101
102
|
auxChannels?: AuxChannelTableProps;
|
|
102
103
|
}
|
|
103
|
-
interface Instances {
|
|
104
|
+
interface Instances extends InstancedGraphicProps {
|
|
104
105
|
type: "instances";
|
|
105
|
-
count: number;
|
|
106
|
-
transforms: Float32Array;
|
|
107
|
-
transformCenter: XYAndZ;
|
|
108
|
-
featureIds?: Uint8Array;
|
|
109
|
-
symbologyOverrides?: Uint8Array;
|
|
110
|
-
range?: LowAndHighXYZ;
|
|
111
106
|
}
|
|
112
107
|
interface ViewIndependentOrigin {
|
|
113
108
|
type: "viewIndependentOrigin";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImdlModel.d.ts","sourceRoot":"","sources":["../../../../src/common/imdl/ImdlModel.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ImdlModel.d.ts","sourceRoot":"","sources":["../../../../src/common/imdl/ImdlModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImdlModel.js","sourceRoot":"","sources":["../../../../src/common/imdl/ImdlModel.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { UintArray } from \"@itwin/core-bentley\";\r\nimport { LowAndHighXYZ, XYAndZ } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorDefProps, FeatureIndexType, FillFlags, Gradient, LinePixels, PolylineTypeFlags, QParams2dProps, QParams3dProps,\r\n} from \"@itwin/core-common\";\r\nimport { EdgeTable } from \"../internal/render/EdgeParams\";\r\nimport { SurfaceMaterialAtlas, SurfaceType } from \"../internal/render/SurfaceParams\";\r\nimport { AuxChannelTableProps } from \"../internal/render/AuxChannelTable\";\r\nimport { ImdlAreaPattern, ImdlDocument } from \"./ImdlSchema\";\r\n\r\n/** Types comprising the parsed representation of an ImdlDocument, produced by [[parseImdlDocument]] and consumed by [[decodeImdlGraphics]].\r\n * All of the types are required to support [structured cloning](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm) so that they\r\n * can be passed between workers and the main JavaScript thread.\r\n * @internal\r\n */\r\nexport namespace ImdlModel {\r\n export interface VertexTable {\r\n data: Uint8Array;\r\n usesUnquantizedPositions?: boolean;\r\n qparams: QParams3dProps;\r\n width: number;\r\n height: number;\r\n hasTranslucency: boolean;\r\n uniformColor?: ColorDefProps;\r\n featureIndexType: FeatureIndexType;\r\n uniformFeatureID?: number;\r\n numVertices: number;\r\n numRgbaPerVertex: number;\r\n uvParams?: QParams2dProps;\r\n }\r\n\r\n export interface PointStringParams {\r\n vertices: VertexTable;\r\n indices: Uint8Array;\r\n weight: number;\r\n }\r\n\r\n export interface TesselatedPolyline {\r\n indices: Uint8Array;\r\n prevIndices: Uint8Array;\r\n nextIndicesAndParams: Uint8Array;\r\n }\r\n\r\n export interface PolylineParams {\r\n vertices: VertexTable;\r\n polyline: TesselatedPolyline;\r\n isPlanar: boolean;\r\n type: PolylineTypeFlags;\r\n weight: number;\r\n linePixels: LinePixels;\r\n }\r\n\r\n export interface SegmentEdgeParams {\r\n indices: Uint8Array;\r\n endPointAndQuadIndices: Uint8Array;\r\n }\r\n\r\n export interface SilhouetteParams extends SegmentEdgeParams {\r\n normalPairs: Uint8Array;\r\n }\r\n\r\n export interface IndexedEdgeParams {\r\n indices: Uint8Array;\r\n edges: EdgeTable;\r\n }\r\n\r\n export interface EdgeParams {\r\n weight: number;\r\n linePixels: LinePixels;\r\n segments?: SegmentEdgeParams;\r\n silhouettes?: SilhouetteParams;\r\n polylines?: TesselatedPolyline;\r\n indexed?: IndexedEdgeParams;\r\n }\r\n\r\n export interface SurfaceMaterialParams {\r\n alpha?: number;\r\n diffuse?: {\r\n color?: ColorDefProps;\r\n weight?: number;\r\n };\r\n specular?: {\r\n color?: ColorDefProps;\r\n weight?: number;\r\n exponent?: number;\r\n };\r\n }\r\n\r\n export interface SurfaceRenderMaterial {\r\n isAtlas: false;\r\n material: string | SurfaceMaterialParams;\r\n }\r\n\r\n export type SurfaceMaterial = SurfaceRenderMaterial | SurfaceMaterialAtlas;\r\n\r\n export interface SurfaceParams {\r\n type: SurfaceType;\r\n indices: Uint8Array;\r\n fillFlags: FillFlags;\r\n hasBakedLighting: boolean;\r\n material?: SurfaceMaterial;\r\n textureMapping?: {\r\n texture: string | Gradient.SymbProps;\r\n alwaysDisplayed: boolean;\r\n };\r\n }\r\n\r\n export interface MeshParams {\r\n vertices: VertexTable;\r\n surface: SurfaceParams;\r\n edges?: EdgeParams;\r\n isPlanar: boolean;\r\n auxChannels?: AuxChannelTableProps;\r\n }\r\n\r\n export interface Instances {\r\n type: \"instances\";\r\n count: number;\r\n transforms: Float32Array;\r\n transformCenter: XYAndZ;\r\n featureIds?: Uint8Array;\r\n symbologyOverrides?: Uint8Array;\r\n range?: LowAndHighXYZ;\r\n }\r\n\r\n export interface ViewIndependentOrigin {\r\n type: \"viewIndependentOrigin\";\r\n origin: XYAndZ;\r\n }\r\n\r\n export type PrimitiveModifier = Instances | ViewIndependentOrigin;\r\n\r\n export type Primitive = {\r\n params: MeshParams;\r\n modifier?: PrimitiveModifier;\r\n type: \"mesh\";\r\n } | {\r\n params: PointStringParams;\r\n modifier?: PrimitiveModifier;\r\n type: \"point\";\r\n } | {\r\n params: PolylineParams;\r\n modifier?: PrimitiveModifier;\r\n type: \"polyline\";\r\n };\r\n\r\n export type AreaPatternParams = Omit<ImdlAreaPattern, \"xyOffsets\"> & {\r\n xyOffsets: Float32Array;\r\n };\r\n\r\n export type NodePrimitive = Primitive | {\r\n params: AreaPatternParams;\r\n modifier?: never;\r\n type: \"pattern\";\r\n };\r\n\r\n export interface BasicNode {\r\n primitives: NodePrimitive[];\r\n animationNodeId?: never;\r\n animationId?: never;\r\n layerId?: never;\r\n groupId?: never;\r\n }\r\n\r\n export interface AnimationNode {\r\n primitives: NodePrimitive[];\r\n animationNodeId: number;\r\n animationId?: string;\r\n layerId?: never;\r\n groupId?: never;\r\n }\r\n\r\n export interface Layer {\r\n primitives: NodePrimitive[];\r\n layerId: string;\r\n groupId?: never;\r\n animationNodeId?: never;\r\n animationId?: never;\r\n }\r\n\r\n /** Nodes that contain primitives. */\r\n export type PrimitivesNode = BasicNode | AnimationNode | Layer;\r\n\r\n /** A grouping node that contains other nodes. These don't nest. */\r\n export interface GroupNode {\r\n groupId: number;\r\n nodes: PrimitivesNode[];\r\n primitives?: never;\r\n animationNodeId?: never;\r\n animationId?: never;\r\n layerId?: never;\r\n }\r\n\r\n export type Node = PrimitivesNode | GroupNode;\r\n\r\n export interface SingleModelFeatureTable {\r\n multiModel: false;\r\n data: Uint32Array;\r\n numFeatures: number;\r\n animationNodeIds?: UintArray;\r\n numSubCategories?: never;\r\n }\r\n\r\n export interface MultiModelFeatureTable {\r\n multiModel: true;\r\n data: Uint32Array;\r\n numFeatures: number;\r\n numSubCategories: number;\r\n animationNodeIds?: UintArray;\r\n }\r\n\r\n export type FeatureTable = SingleModelFeatureTable | MultiModelFeatureTable;\r\n\r\n export interface Document {\r\n featureTable: FeatureTable;\r\n nodes: Node[];\r\n patterns: Map<string, Primitive[]>;\r\n rtcCenter?: XYAndZ;\r\n binaryData: Uint8Array;\r\n json: ImdlDocument;\r\n }\r\n}\r\n\r\nfunction addTransferable(xfers: Set<Transferable>, array: UintArray | Float32Array | undefined): void {\r\n if (array) {\r\n xfers.add(array.buffer);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function addPrimitiveTransferables(xfers: Set<Transferable>, primitive: ImdlModel.NodePrimitive): void {\r\n if (primitive.type === \"pattern\") {\r\n addTransferable(xfers, primitive.params.xyOffsets);\r\n return;\r\n }\r\n\r\n addTransferable(xfers, primitive.params.vertices.data);\r\n\r\n if (primitive.modifier?.type === \"instances\") {\r\n addTransferable(xfers, primitive.modifier.transforms);\r\n addTransferable(xfers, primitive.modifier.featureIds);\r\n addTransferable(xfers, primitive.modifier.symbologyOverrides);\r\n }\r\n\r\n switch (primitive.type) {\r\n case \"point\":\r\n addTransferable(xfers, primitive.params.indices);\r\n break;\r\n case \"polyline\":\r\n addTransferable(xfers, primitive.params.polyline.indices);\r\n addTransferable(xfers, primitive.params.polyline.prevIndices);\r\n addTransferable(xfers, primitive.params.polyline.nextIndicesAndParams);\r\n break;\r\n case \"mesh\":\r\n addTransferable(xfers, primitive.params.surface.indices);\r\n const edges = primitive.params.edges;\r\n if (edges) {\r\n addTransferable(xfers, edges.segments?.indices);\r\n addTransferable(xfers, edges.segments?.endPointAndQuadIndices);\r\n addTransferable(xfers, edges.silhouettes?.indices);\r\n addTransferable(xfers, edges.silhouettes?.endPointAndQuadIndices);\r\n addTransferable(xfers, edges.silhouettes?.normalPairs);\r\n addTransferable(xfers, edges.polylines?.indices);\r\n addTransferable(xfers, edges.polylines?.prevIndices);\r\n addTransferable(xfers, edges.polylines?.nextIndicesAndParams);\r\n addTransferable(xfers, edges.indexed?.indices);\r\n addTransferable(xfers, edges.indexed?.edges.data);\r\n }\r\n\r\n break;\r\n }\r\n}\r\n\r\n/** Collect an array of all the [transferable objects](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Transferable_objects)\r\n * within the specified document.\r\n * @internal\r\n */\r\nexport function collectTransferables(document: ImdlModel.Document): Transferable[] {\r\n const xfers = new Set<Transferable>();\r\n const add = (array: UintArray | Float32Array | undefined) => {\r\n if (array)\r\n xfers.add(array.buffer);\r\n };\r\n\r\n add(document.binaryData);\r\n add(document.featureTable.data);\r\n add(document.featureTable.animationNodeIds);\r\n\r\n for (const node of document.nodes) {\r\n if (undefined !== node.groupId) {\r\n for (const primNode of node.nodes)\r\n for (const primitive of primNode.primitives)\r\n addPrimitiveTransferables(xfers, primitive);\r\n } else {\r\n for (const primitive of node.primitives)\r\n addPrimitiveTransferables(xfers, primitive);\r\n }\r\n }\r\n\r\n for (const primitives of document.patterns.values())\r\n for (const primitive of primitives)\r\n addPrimitiveTransferables(xfers, primitive);\r\n\r\n return Array.from(xfers);\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ImdlModel.js","sourceRoot":"","sources":["../../../../src/common/imdl/ImdlModel.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { UintArray } from \"@itwin/core-bentley\";\r\nimport { XYAndZ } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorDefProps, FeatureIndexType, FillFlags, Gradient, LinePixels, PolylineTypeFlags, QParams2dProps, QParams3dProps,\r\n} from \"@itwin/core-common\";\r\nimport { EdgeTable } from \"../internal/render/EdgeParams\";\r\nimport { SurfaceMaterialAtlas, SurfaceType } from \"../internal/render/SurfaceParams\";\r\nimport { AuxChannelTableProps } from \"../internal/render/AuxChannelTable\";\r\nimport { ImdlAreaPattern, ImdlDocument } from \"./ImdlSchema\";\r\nimport { InstancedGraphicProps } from \"../render/InstancedGraphicParams\";\r\n\r\n/** Types comprising the parsed representation of an ImdlDocument, produced by [[parseImdlDocument]] and consumed by [[decodeImdlGraphics]].\r\n * All of the types are required to support [structured cloning](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm) so that they\r\n * can be passed between workers and the main JavaScript thread.\r\n * @internal\r\n */\r\nexport namespace ImdlModel {\r\n export interface VertexTable {\r\n data: Uint8Array;\r\n usesUnquantizedPositions?: boolean;\r\n qparams: QParams3dProps;\r\n width: number;\r\n height: number;\r\n hasTranslucency: boolean;\r\n uniformColor?: ColorDefProps;\r\n featureIndexType: FeatureIndexType;\r\n uniformFeatureID?: number;\r\n numVertices: number;\r\n numRgbaPerVertex: number;\r\n uvParams?: QParams2dProps;\r\n }\r\n\r\n export interface PointStringParams {\r\n vertices: VertexTable;\r\n indices: Uint8Array;\r\n weight: number;\r\n }\r\n\r\n export interface TesselatedPolyline {\r\n indices: Uint8Array;\r\n prevIndices: Uint8Array;\r\n nextIndicesAndParams: Uint8Array;\r\n }\r\n\r\n export interface PolylineParams {\r\n vertices: VertexTable;\r\n polyline: TesselatedPolyline;\r\n isPlanar: boolean;\r\n type: PolylineTypeFlags;\r\n weight: number;\r\n linePixels: LinePixels;\r\n }\r\n\r\n export interface SegmentEdgeParams {\r\n indices: Uint8Array;\r\n endPointAndQuadIndices: Uint8Array;\r\n }\r\n\r\n export interface SilhouetteParams extends SegmentEdgeParams {\r\n normalPairs: Uint8Array;\r\n }\r\n\r\n export interface IndexedEdgeParams {\r\n indices: Uint8Array;\r\n edges: EdgeTable;\r\n }\r\n\r\n export interface EdgeParams {\r\n weight: number;\r\n linePixels: LinePixels;\r\n segments?: SegmentEdgeParams;\r\n silhouettes?: SilhouetteParams;\r\n polylines?: TesselatedPolyline;\r\n indexed?: IndexedEdgeParams;\r\n }\r\n\r\n export interface SurfaceMaterialParams {\r\n alpha?: number;\r\n diffuse?: {\r\n color?: ColorDefProps;\r\n weight?: number;\r\n };\r\n specular?: {\r\n color?: ColorDefProps;\r\n weight?: number;\r\n exponent?: number;\r\n };\r\n }\r\n\r\n export interface SurfaceRenderMaterial {\r\n isAtlas: false;\r\n material: string | SurfaceMaterialParams;\r\n }\r\n\r\n export type SurfaceMaterial = SurfaceRenderMaterial | SurfaceMaterialAtlas;\r\n\r\n export interface SurfaceParams {\r\n type: SurfaceType;\r\n indices: Uint8Array;\r\n fillFlags: FillFlags;\r\n hasBakedLighting: boolean;\r\n material?: SurfaceMaterial;\r\n textureMapping?: {\r\n texture: string | Gradient.SymbProps;\r\n alwaysDisplayed: boolean;\r\n };\r\n }\r\n\r\n export interface MeshParams {\r\n vertices: VertexTable;\r\n surface: SurfaceParams;\r\n edges?: EdgeParams;\r\n isPlanar: boolean;\r\n auxChannels?: AuxChannelTableProps;\r\n }\r\n\r\n export interface Instances extends InstancedGraphicProps {\r\n type: \"instances\";\r\n }\r\n\r\n export interface ViewIndependentOrigin {\r\n type: \"viewIndependentOrigin\";\r\n origin: XYAndZ;\r\n }\r\n\r\n export type PrimitiveModifier = Instances | ViewIndependentOrigin;\r\n\r\n export type Primitive = {\r\n params: MeshParams;\r\n modifier?: PrimitiveModifier;\r\n type: \"mesh\";\r\n } | {\r\n params: PointStringParams;\r\n modifier?: PrimitiveModifier;\r\n type: \"point\";\r\n } | {\r\n params: PolylineParams;\r\n modifier?: PrimitiveModifier;\r\n type: \"polyline\";\r\n };\r\n\r\n export type AreaPatternParams = Omit<ImdlAreaPattern, \"xyOffsets\"> & {\r\n xyOffsets: Float32Array;\r\n };\r\n\r\n export type NodePrimitive = Primitive | {\r\n params: AreaPatternParams;\r\n modifier?: never;\r\n type: \"pattern\";\r\n };\r\n\r\n export interface BasicNode {\r\n primitives: NodePrimitive[];\r\n animationNodeId?: never;\r\n animationId?: never;\r\n layerId?: never;\r\n groupId?: never;\r\n }\r\n\r\n export interface AnimationNode {\r\n primitives: NodePrimitive[];\r\n animationNodeId: number;\r\n animationId?: string;\r\n layerId?: never;\r\n groupId?: never;\r\n }\r\n\r\n export interface Layer {\r\n primitives: NodePrimitive[];\r\n layerId: string;\r\n groupId?: never;\r\n animationNodeId?: never;\r\n animationId?: never;\r\n }\r\n\r\n /** Nodes that contain primitives. */\r\n export type PrimitivesNode = BasicNode | AnimationNode | Layer;\r\n\r\n /** A grouping node that contains other nodes. These don't nest. */\r\n export interface GroupNode {\r\n groupId: number;\r\n nodes: PrimitivesNode[];\r\n primitives?: never;\r\n animationNodeId?: never;\r\n animationId?: never;\r\n layerId?: never;\r\n }\r\n\r\n export type Node = PrimitivesNode | GroupNode;\r\n\r\n export interface SingleModelFeatureTable {\r\n multiModel: false;\r\n data: Uint32Array;\r\n numFeatures: number;\r\n animationNodeIds?: UintArray;\r\n numSubCategories?: never;\r\n }\r\n\r\n export interface MultiModelFeatureTable {\r\n multiModel: true;\r\n data: Uint32Array;\r\n numFeatures: number;\r\n numSubCategories: number;\r\n animationNodeIds?: UintArray;\r\n }\r\n\r\n export type FeatureTable = SingleModelFeatureTable | MultiModelFeatureTable;\r\n\r\n export interface Document {\r\n featureTable: FeatureTable;\r\n nodes: Node[];\r\n patterns: Map<string, Primitive[]>;\r\n rtcCenter?: XYAndZ;\r\n binaryData: Uint8Array;\r\n json: ImdlDocument;\r\n }\r\n}\r\n\r\nfunction addTransferable(xfers: Set<Transferable>, array: UintArray | Float32Array | undefined): void {\r\n if (array) {\r\n xfers.add(array.buffer);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function addPrimitiveTransferables(xfers: Set<Transferable>, primitive: ImdlModel.NodePrimitive): void {\r\n if (primitive.type === \"pattern\") {\r\n addTransferable(xfers, primitive.params.xyOffsets);\r\n return;\r\n }\r\n\r\n addTransferable(xfers, primitive.params.vertices.data);\r\n\r\n if (primitive.modifier?.type === \"instances\") {\r\n addTransferable(xfers, primitive.modifier.transforms);\r\n addTransferable(xfers, primitive.modifier.featureIds);\r\n addTransferable(xfers, primitive.modifier.symbologyOverrides);\r\n }\r\n\r\n switch (primitive.type) {\r\n case \"point\":\r\n addTransferable(xfers, primitive.params.indices);\r\n break;\r\n case \"polyline\":\r\n addTransferable(xfers, primitive.params.polyline.indices);\r\n addTransferable(xfers, primitive.params.polyline.prevIndices);\r\n addTransferable(xfers, primitive.params.polyline.nextIndicesAndParams);\r\n break;\r\n case \"mesh\":\r\n addTransferable(xfers, primitive.params.surface.indices);\r\n const edges = primitive.params.edges;\r\n if (edges) {\r\n addTransferable(xfers, edges.segments?.indices);\r\n addTransferable(xfers, edges.segments?.endPointAndQuadIndices);\r\n addTransferable(xfers, edges.silhouettes?.indices);\r\n addTransferable(xfers, edges.silhouettes?.endPointAndQuadIndices);\r\n addTransferable(xfers, edges.silhouettes?.normalPairs);\r\n addTransferable(xfers, edges.polylines?.indices);\r\n addTransferable(xfers, edges.polylines?.prevIndices);\r\n addTransferable(xfers, edges.polylines?.nextIndicesAndParams);\r\n addTransferable(xfers, edges.indexed?.indices);\r\n addTransferable(xfers, edges.indexed?.edges.data);\r\n }\r\n\r\n break;\r\n }\r\n}\r\n\r\n/** Collect an array of all the [transferable objects](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Transferable_objects)\r\n * within the specified document.\r\n * @internal\r\n */\r\nexport function collectTransferables(document: ImdlModel.Document): Transferable[] {\r\n const xfers = new Set<Transferable>();\r\n const add = (array: UintArray | Float32Array | undefined) => {\r\n if (array)\r\n xfers.add(array.buffer);\r\n };\r\n\r\n add(document.binaryData);\r\n add(document.featureTable.data);\r\n add(document.featureTable.animationNodeIds);\r\n\r\n for (const node of document.nodes) {\r\n if (undefined !== node.groupId) {\r\n for (const primNode of node.nodes)\r\n for (const primitive of primNode.primitives)\r\n addPrimitiveTransferables(xfers, primitive);\r\n } else {\r\n for (const primitive of node.primitives)\r\n addPrimitiveTransferables(xfers, primitive);\r\n }\r\n }\r\n\r\n for (const primitives of document.patterns.values())\r\n for (const primitive of primitives)\r\n addPrimitiveTransferables(xfers, primitive);\r\n\r\n return Array.from(xfers);\r\n}\r\n"]}
|
|
@@ -3,8 +3,15 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export declare const _implementationProhibited: unique symbol;
|
|
5
5
|
export declare const _accumulator: unique symbol;
|
|
6
|
+
export declare const _batch: unique symbol;
|
|
7
|
+
export declare const _branch: unique symbol;
|
|
6
8
|
/** @internal */
|
|
7
9
|
export declare const _callIpcChannel: unique symbol;
|
|
10
|
+
export declare const _featureTable: unique symbol;
|
|
11
|
+
export declare const _nodes: unique symbol;
|
|
8
12
|
export declare const _requestSnap: unique symbol;
|
|
13
|
+
export declare const _renderSystem: unique symbol;
|
|
9
14
|
export declare const _textures: unique symbol;
|
|
15
|
+
export declare const _transformCenter: unique symbol;
|
|
16
|
+
export declare const _transforms: unique symbol;
|
|
10
17
|
//# sourceMappingURL=Symbols.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Symbols.d.ts","sourceRoot":"","sources":["../../../../src/common/internal/Symbols.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,eAAO,MAAM,yBAAyB,eAAmG,CAAC;AAM1I,eAAO,MAAM,YAAY,eAAiC,CAAC;AAC3D,gBAAgB;AAChB,eAAO,MAAM,eAAe,eAAoC,CAAC;AACjE,eAAO,MAAM,YAAY,eAAiC,CAAC;AAC3D,eAAO,MAAM,SAAS,eAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"Symbols.d.ts","sourceRoot":"","sources":["../../../../src/common/internal/Symbols.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,eAAO,MAAM,yBAAyB,eAAmG,CAAC;AAM1I,eAAO,MAAM,YAAY,eAAiC,CAAC;AAC3D,eAAO,MAAM,MAAM,eAA2B,CAAC;AAC/C,eAAO,MAAM,OAAO,eAA4B,CAAC;AACjD,gBAAgB;AAChB,eAAO,MAAM,eAAe,eAAoC,CAAC;AACjE,eAAO,MAAM,aAAa,eAAkC,CAAC;AAC7D,eAAO,MAAM,MAAM,eAA2B,CAAC;AAC/C,eAAO,MAAM,YAAY,eAAiC,CAAC;AAC3D,eAAO,MAAM,aAAa,eAAkC,CAAC;AAC7D,eAAO,MAAM,SAAS,eAA8B,CAAC;AACrD,eAAO,MAAM,gBAAgB,eAAqC,CAAC;AACnE,eAAO,MAAM,WAAW,eAAgC,CAAC"}
|
|
@@ -7,14 +7,21 @@
|
|
|
7
7
|
* @module Utils
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports._textures = exports._requestSnap = exports._callIpcChannel = exports._accumulator = exports._implementationProhibited = void 0;
|
|
10
|
+
exports._transforms = exports._transformCenter = exports._textures = exports._renderSystem = exports._requestSnap = exports._nodes = exports._featureTable = exports._callIpcChannel = exports._branch = exports._batch = exports._accumulator = exports._implementationProhibited = void 0;
|
|
11
11
|
exports._implementationProhibited = Symbol.for("Implementations of this interface can only be obtained from the containing package");
|
|
12
12
|
function sym(name) {
|
|
13
13
|
return `${name}_core-frontend_INTERNAL_ONLY_DO_NOT_USE`;
|
|
14
14
|
}
|
|
15
15
|
exports._accumulator = Symbol.for(sym("accumulator"));
|
|
16
|
+
exports._batch = Symbol.for(sym("batch"));
|
|
17
|
+
exports._branch = Symbol.for(sym("branch"));
|
|
16
18
|
/** @internal */
|
|
17
19
|
exports._callIpcChannel = Symbol.for(sym("callIpcChannel"));
|
|
20
|
+
exports._featureTable = Symbol.for(sym("featureTable"));
|
|
21
|
+
exports._nodes = Symbol.for(sym("nodes"));
|
|
18
22
|
exports._requestSnap = Symbol.for(sym("requestSnap"));
|
|
23
|
+
exports._renderSystem = Symbol.for(sym("renderSystem"));
|
|
19
24
|
exports._textures = Symbol.for(sym("textures"));
|
|
25
|
+
exports._transformCenter = Symbol.for(sym("transformCenter"));
|
|
26
|
+
exports._transforms = Symbol.for(sym("transforms"));
|
|
20
27
|
//# sourceMappingURL=Symbols.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Symbols.js","sourceRoot":"","sources":["../../../../src/common/internal/Symbols.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEU,QAAA,yBAAyB,GAAG,MAAM,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;AAE1I,SAAS,GAAG,CAAC,IAAY;IACvB,OAAO,GAAG,IAAI,yCAAyC,CAAC;AAC1D,CAAC;AAEY,QAAA,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Symbols.js","sourceRoot":"","sources":["../../../../src/common/internal/Symbols.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEU,QAAA,yBAAyB,GAAG,MAAM,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;AAE1I,SAAS,GAAG,CAAC,IAAY;IACvB,OAAO,GAAG,IAAI,yCAAyC,CAAC;AAC1D,CAAC;AAEY,QAAA,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;AAC9C,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAClC,QAAA,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjD,gBAAgB;AACH,QAAA,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACpD,QAAA,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;AAChD,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAClC,QAAA,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;AAC9C,QAAA,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;AAChD,QAAA,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;AACxC,QAAA,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACtD,QAAA,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,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 Utils\r\n */\r\n\r\nexport const _implementationProhibited = Symbol.for(\"Implementations of this interface can only be obtained from the containing package\");\r\n\r\nfunction sym(name: string): string {\r\n return `${name}_core-frontend_INTERNAL_ONLY_DO_NOT_USE`;\r\n}\r\n\r\nexport const _accumulator = Symbol.for(sym(\"accumulator\"));\r\nexport const _batch = Symbol.for(sym(\"batch\"));\r\nexport const _branch = Symbol.for(sym(\"branch\"));\r\n/** @internal */\r\nexport const _callIpcChannel = Symbol.for(sym(\"callIpcChannel\"));\r\nexport const _featureTable = Symbol.for(sym(\"featureTable\"));\r\nexport const _nodes = Symbol.for(sym(\"nodes\"));\r\nexport const _requestSnap = Symbol.for(sym(\"requestSnap\"));\r\nexport const _renderSystem = Symbol.for(sym(\"renderSystem\"));\r\nexport const _textures = Symbol.for(sym(\"textures\"));\r\nexport const _transformCenter = Symbol.for(sym(\"transformCenter\"));\r\nexport const _transforms = Symbol.for(sym(\"transforms\"));\r\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Instance } from "../../render/RenderInstancesParams";
|
|
2
|
+
import { FeatureTable } from "@itwin/core-common";
|
|
3
|
+
import { InstancedGraphicProps } from "../../render/InstancedGraphicParams";
|
|
4
|
+
/** Used internally by [[RenderInstancesParamsBuilder]] to produce an InstancedGraphicProps.
|
|
5
|
+
* Use [[add]] to append [[Instance]]s, then [[finish]] to obtain an InstancedGraphicProps.
|
|
6
|
+
*/
|
|
7
|
+
export declare class InstancedGraphicPropsBuilder {
|
|
8
|
+
private readonly _instances;
|
|
9
|
+
private readonly _transformRange;
|
|
10
|
+
private _haveSymbology;
|
|
11
|
+
add(instance: Instance): void;
|
|
12
|
+
get length(): number;
|
|
13
|
+
finish(featureTable: FeatureTable | undefined): InstancedGraphicProps;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=InstancedGraphicPropsBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstancedGraphicPropsBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/common/internal/render/InstancedGraphicPropsBuilder.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAW,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAM5E;;GAEG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,cAAc,CAAS;IAExB,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAQpC,IAAW,MAAM,WAAqC;IAE/C,MAAM,CAAC,YAAY,EAAE,YAAY,GAAG,SAAS,GAAG,qBAAqB;CA6E7E"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.InstancedGraphicPropsBuilder = void 0;
|
|
8
|
+
const core_geometry_1 = require("@itwin/core-geometry");
|
|
9
|
+
const core_common_1 = require("@itwin/core-common");
|
|
10
|
+
const LineCode_1 = require("./LineCode");
|
|
11
|
+
const invalidFeature = new core_common_1.Feature();
|
|
12
|
+
/** Used internally by [[RenderInstancesParamsBuilder]] to produce an InstancedGraphicProps.
|
|
13
|
+
* Use [[add]] to append [[Instance]]s, then [[finish]] to obtain an InstancedGraphicProps.
|
|
14
|
+
*/
|
|
15
|
+
class InstancedGraphicPropsBuilder {
|
|
16
|
+
constructor() {
|
|
17
|
+
this._instances = [];
|
|
18
|
+
this._transformRange = new core_geometry_1.Range3d();
|
|
19
|
+
this._haveSymbology = false;
|
|
20
|
+
}
|
|
21
|
+
add(instance) {
|
|
22
|
+
this._instances.push(instance);
|
|
23
|
+
this._transformRange.extendXYZ(instance.transform.origin.x, instance.transform.origin.y, instance.transform.origin.z);
|
|
24
|
+
if (instance.symbology) {
|
|
25
|
+
this._haveSymbology = true;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
get length() { return this._instances.length; }
|
|
29
|
+
finish(featureTable) {
|
|
30
|
+
const count = this.length;
|
|
31
|
+
if (0 === count) {
|
|
32
|
+
throw new Error("No instances defined");
|
|
33
|
+
}
|
|
34
|
+
const tfc = this._transformRange.center;
|
|
35
|
+
const transformCenter = { x: tfc.x, y: tfc.y, z: tfc.z };
|
|
36
|
+
const transforms = new Float32Array(count * 12);
|
|
37
|
+
const featureIds = featureTable ? new Uint8Array(count * 3) : undefined;
|
|
38
|
+
const symbologyOverrides = this._haveSymbology ? new Uint8Array(count * 8) : undefined;
|
|
39
|
+
for (let i = 0; i < count; i++) {
|
|
40
|
+
const instance = this._instances[i];
|
|
41
|
+
if (featureIds) {
|
|
42
|
+
const feature = typeof instance.feature === "string" ? new core_common_1.Feature(instance.feature) : instance.feature;
|
|
43
|
+
const featureIndex = featureTable.insert(feature ?? invalidFeature);
|
|
44
|
+
featureIds[i * 3 + 0] = featureIndex & 0xff;
|
|
45
|
+
featureIds[i * 3 + 1] = (featureIndex & 0xff00) >> 8;
|
|
46
|
+
featureIds[i * 3 + 2] = (featureIndex & 0xff0000) >> 16;
|
|
47
|
+
}
|
|
48
|
+
const symb = instance.symbology;
|
|
49
|
+
if (symbologyOverrides && symb) {
|
|
50
|
+
const ovrIdx = i * 8;
|
|
51
|
+
let flags = 0 /* OvrFlags.None */;
|
|
52
|
+
const weight = symb.weight;
|
|
53
|
+
if (undefined !== weight) {
|
|
54
|
+
symbologyOverrides[ovrIdx + 1] = Math.max(1, Math.min(31, weight));
|
|
55
|
+
flags |= 128 /* OvrFlags.Weight */;
|
|
56
|
+
}
|
|
57
|
+
if (undefined !== symb.linePixels) {
|
|
58
|
+
symbologyOverrides[ovrIdx + 2] = (0, LineCode_1.lineCodeFromLinePixels)(symb.linePixels);
|
|
59
|
+
flags |= 64 /* OvrFlags.LineCode */;
|
|
60
|
+
}
|
|
61
|
+
if (undefined !== symb.color) {
|
|
62
|
+
symbologyOverrides[ovrIdx + 4] = Math.max(0, Math.min(symb.color.r, 255));
|
|
63
|
+
symbologyOverrides[ovrIdx + 5] = Math.max(0, Math.min(symb.color.g, 255));
|
|
64
|
+
symbologyOverrides[ovrIdx + 6] = Math.max(0, Math.min(symb.color.b, 255));
|
|
65
|
+
flags |= 2 /* OvrFlags.Rgb */;
|
|
66
|
+
}
|
|
67
|
+
symbologyOverrides[ovrIdx] = flags;
|
|
68
|
+
}
|
|
69
|
+
const tf = instance.transform;
|
|
70
|
+
const org = [tf.origin.x - tfc.x, tf.origin.y - tfc.y, tf.origin.z - tfc.z];
|
|
71
|
+
const tfIdx = i * 12;
|
|
72
|
+
transforms[tfIdx + 0] = tf.matrix.coffs[0];
|
|
73
|
+
transforms[tfIdx + 1] = tf.matrix.coffs[1];
|
|
74
|
+
transforms[tfIdx + 2] = tf.matrix.coffs[2];
|
|
75
|
+
transforms[tfIdx + 3] = org[0];
|
|
76
|
+
transforms[tfIdx + 4] = tf.matrix.coffs[3];
|
|
77
|
+
transforms[tfIdx + 5] = tf.matrix.coffs[4];
|
|
78
|
+
transforms[tfIdx + 6] = tf.matrix.coffs[5];
|
|
79
|
+
transforms[tfIdx + 7] = org[1];
|
|
80
|
+
transforms[tfIdx + 8] = tf.matrix.coffs[6];
|
|
81
|
+
transforms[tfIdx + 9] = tf.matrix.coffs[7];
|
|
82
|
+
transforms[tfIdx + 10] = tf.matrix.coffs[8];
|
|
83
|
+
transforms[tfIdx + 11] = org[2];
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
count,
|
|
87
|
+
transforms,
|
|
88
|
+
transformCenter,
|
|
89
|
+
featureIds,
|
|
90
|
+
symbologyOverrides,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.InstancedGraphicPropsBuilder = InstancedGraphicPropsBuilder;
|
|
95
|
+
//# sourceMappingURL=InstancedGraphicPropsBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstancedGraphicPropsBuilder.js","sourceRoot":"","sources":["../../../../../src/common/internal/render/InstancedGraphicPropsBuilder.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F,wDAA+C;AAE/C,oDAA2D;AAG3D,yCAAoD;AAEpD,MAAM,cAAc,GAAG,IAAI,qBAAO,EAAE,CAAC;AAErC;;GAEG;AACH,MAAa,4BAA4B;IAAzC;QACmB,eAAU,GAAe,EAAE,CAAC;QAC5B,oBAAe,GAAG,IAAI,uBAAO,EAAE,CAAC;QACzC,mBAAc,GAAG,KAAK,CAAC;IAyFjC,CAAC;IAvFQ,GAAG,CAAC,QAAkB;QAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtH,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,IAAW,MAAM,KAAK,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/C,MAAM,CAAC,YAAsC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;QACxC,MAAM,eAAe,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QAEzD,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEvF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,qBAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACxG,MAAM,YAAY,GAAG,YAAa,CAAC,MAAM,CAAC,OAAO,IAAI,cAAc,CAAC,CAAC;gBACrE,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,GAAG,IAAI,CAAC;gBAC5C,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBACrD,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC1D,CAAC;YAED,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC;YAChC,IAAI,kBAAkB,IAAI,IAAI,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;gBACrB,IAAI,KAAK,wBAAgB,CAAC;gBAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;oBACzB,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;oBACnE,KAAK,6BAAmB,CAAC;gBAC3B,CAAC;gBAED,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAA,iCAAsB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACzE,KAAK,8BAAqB,CAAC;gBAC7B,CAAC;gBAED,IAAI,SAAS,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC7B,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC1E,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC1E,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC1E,KAAK,wBAAgB,CAAC;gBACxB,CAAC;gBAED,kBAAkB,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;YACrC,CAAC;YAED,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC;YAC9B,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAC5E,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;YAErB,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3C,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3C,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3C,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAE/B,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3C,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3C,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3C,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAE/B,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3C,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3C,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5C,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;QAED,OAAO;YACL,KAAK;YACL,UAAU;YACV,eAAe;YACf,UAAU;YACV,kBAAkB;SACnB,CAAC;IACJ,CAAC;CACF;AA5FD,oEA4FC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Range3d } from \"@itwin/core-geometry\";\r\nimport { Instance } from \"../../render/RenderInstancesParams\";\r\nimport { Feature, FeatureTable } from \"@itwin/core-common\";\r\nimport { InstancedGraphicProps } from \"../../render/InstancedGraphicParams\";\r\nimport { OvrFlags } from \"./OvrFlags\";\r\nimport { lineCodeFromLinePixels } from \"./LineCode\";\r\n\r\nconst invalidFeature = new Feature();\r\n\r\n/** Used internally by [[RenderInstancesParamsBuilder]] to produce an InstancedGraphicProps.\r\n * Use [[add]] to append [[Instance]]s, then [[finish]] to obtain an InstancedGraphicProps.\r\n */\r\nexport class InstancedGraphicPropsBuilder {\r\n private readonly _instances: Instance[] = [];\r\n private readonly _transformRange = new Range3d();\r\n private _haveSymbology = false;\r\n\r\n public add(instance: Instance): void {\r\n this._instances.push(instance);\r\n this._transformRange.extendXYZ(instance.transform.origin.x, instance.transform.origin.y, instance.transform.origin.z);\r\n if (instance.symbology) {\r\n this._haveSymbology = true;\r\n }\r\n }\r\n\r\n public get length() { return this._instances.length; }\r\n\r\n public finish(featureTable: FeatureTable | undefined): InstancedGraphicProps {\r\n const count = this.length;\r\n if (0 === count) {\r\n throw new Error(\"No instances defined\");\r\n }\r\n\r\n const tfc = this._transformRange.center;\r\n const transformCenter = { x: tfc.x, y: tfc.y, z: tfc.z };\r\n\r\n const transforms = new Float32Array(count * 12);\r\n const featureIds = featureTable ? new Uint8Array(count * 3) : undefined;\r\n const symbologyOverrides = this._haveSymbology ? new Uint8Array(count * 8) : undefined;\r\n\r\n for (let i = 0; i < count; i++) {\r\n const instance = this._instances[i];\r\n if (featureIds) {\r\n const feature = typeof instance.feature === \"string\" ? new Feature(instance.feature) : instance.feature;\r\n const featureIndex = featureTable!.insert(feature ?? invalidFeature);\r\n featureIds[i * 3 + 0] = featureIndex & 0xff;\r\n featureIds[i * 3 + 1] = (featureIndex & 0xff00) >> 8;\r\n featureIds[i * 3 + 2] = (featureIndex & 0xff0000) >> 16;\r\n }\r\n\r\n const symb = instance.symbology;\r\n if (symbologyOverrides && symb) {\r\n const ovrIdx = i * 8;\r\n let flags = OvrFlags.None;\r\n\r\n const weight = symb.weight;\r\n if (undefined !== weight) {\r\n symbologyOverrides[ovrIdx + 1] = Math.max(1, Math.min(31, weight));\r\n flags |= OvrFlags.Weight;\r\n }\r\n\r\n if (undefined !== symb.linePixels) {\r\n symbologyOverrides[ovrIdx + 2] = lineCodeFromLinePixels(symb.linePixels);\r\n flags |= OvrFlags.LineCode;\r\n }\r\n\r\n if (undefined !== symb.color) {\r\n symbologyOverrides[ovrIdx + 4] = Math.max(0, Math.min(symb.color.r, 255));\r\n symbologyOverrides[ovrIdx + 5] = Math.max(0, Math.min(symb.color.g, 255));\r\n symbologyOverrides[ovrIdx + 6] = Math.max(0, Math.min(symb.color.b, 255));\r\n flags |= OvrFlags.Rgb;\r\n }\r\n\r\n symbologyOverrides[ovrIdx] = flags;\r\n }\r\n\r\n const tf = instance.transform;\r\n const org = [tf.origin.x - tfc.x, tf.origin.y - tfc.y, tf.origin.z - tfc.z];\r\n const tfIdx = i * 12;\r\n\r\n transforms[tfIdx + 0] = tf.matrix.coffs[0];\r\n transforms[tfIdx + 1] = tf.matrix.coffs[1];\r\n transforms[tfIdx + 2] = tf.matrix.coffs[2];\r\n transforms[tfIdx + 3] = org[0];\r\n\r\n transforms[tfIdx + 4] = tf.matrix.coffs[3];\r\n transforms[tfIdx + 5] = tf.matrix.coffs[4];\r\n transforms[tfIdx + 6] = tf.matrix.coffs[5];\r\n transforms[tfIdx + 7] = org[1];\r\n\r\n transforms[tfIdx + 8] = tf.matrix.coffs[6];\r\n transforms[tfIdx + 9] = tf.matrix.coffs[7];\r\n transforms[tfIdx + 10] = tf.matrix.coffs[8];\r\n transforms[tfIdx + 11] = org[2];\r\n }\r\n\r\n return {\r\n count,\r\n transforms,\r\n transformCenter,\r\n featureIds,\r\n symbologyOverrides,\r\n };\r\n }\r\n}\r\n\r\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module WebGL
|
|
3
|
+
*/
|
|
4
|
+
import { LinePixels } from "@itwin/core-common";
|
|
5
|
+
/** Map a LinePixels value to an integer in [0..9] that can be used by shaders to index into the corresponding pixel pattern.
|
|
6
|
+
* This is used for feature overrides, including those defined by InstancedGraphicParams.
|
|
7
|
+
*/
|
|
8
|
+
export declare function lineCodeFromLinePixels(pixels: LinePixels): number;
|
|
9
|
+
//# sourceMappingURL=LineCode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineCode.d.ts","sourceRoot":"","sources":["../../../../../src/common/internal/render/LineCode.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAcjE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
/** @packageDocumentation
|
|
7
|
+
* @module WebGL
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.lineCodeFromLinePixels = void 0;
|
|
11
|
+
const core_common_1 = require("@itwin/core-common");
|
|
12
|
+
/** Map a LinePixels value to an integer in [0..9] that can be used by shaders to index into the corresponding pixel pattern.
|
|
13
|
+
* This is used for feature overrides, including those defined by InstancedGraphicParams.
|
|
14
|
+
*/
|
|
15
|
+
function lineCodeFromLinePixels(pixels) {
|
|
16
|
+
switch (pixels) {
|
|
17
|
+
case core_common_1.LinePixels.Code0: return 0;
|
|
18
|
+
case core_common_1.LinePixels.Code1: return 1;
|
|
19
|
+
case core_common_1.LinePixels.Code2: return 2;
|
|
20
|
+
case core_common_1.LinePixels.Code3: return 3;
|
|
21
|
+
case core_common_1.LinePixels.Code4: return 4;
|
|
22
|
+
case core_common_1.LinePixels.Code5: return 5;
|
|
23
|
+
case core_common_1.LinePixels.Code6: return 6;
|
|
24
|
+
case core_common_1.LinePixels.Code7: return 7;
|
|
25
|
+
case core_common_1.LinePixels.HiddenLine: return 8;
|
|
26
|
+
case core_common_1.LinePixels.Invisible: return 9;
|
|
27
|
+
default: return 0;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.lineCodeFromLinePixels = lineCodeFromLinePixels;
|
|
31
|
+
//# sourceMappingURL=LineCode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineCode.js","sourceRoot":"","sources":["../../../../../src/common/internal/render/LineCode.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,oDAAgD;AAEhD;;GAEG;AACH,SAAgB,sBAAsB,CAAC,MAAkB;IACvD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,wBAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,wBAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,wBAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,wBAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,wBAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,wBAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,wBAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,wBAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,wBAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC;QACrC,KAAK,wBAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAdD,wDAcC","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 { LinePixels } from \"@itwin/core-common\";\r\n\r\n/** Map a LinePixels value to an integer in [0..9] that can be used by shaders to index into the corresponding pixel pattern.\r\n * This is used for feature overrides, including those defined by InstancedGraphicParams.\r\n */\r\nexport function lineCodeFromLinePixels(pixels: LinePixels): number {\r\n switch (pixels) {\r\n case LinePixels.Code0: return 0;\r\n case LinePixels.Code1: return 1;\r\n case LinePixels.Code2: return 2;\r\n case LinePixels.Code3: return 3;\r\n case LinePixels.Code4: return 4;\r\n case LinePixels.Code5: return 5;\r\n case LinePixels.Code6: return 6;\r\n case LinePixels.Code7: return 7;\r\n case LinePixels.HiddenLine: return 8;\r\n case LinePixels.Invisible: return 9;\r\n default: return 0;\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module WebGL
|
|
3
|
+
*/
|
|
4
|
+
/** 16-bit flags indicating what aspects of a feature's symbology are overridden.
|
|
5
|
+
* These are used for FeatureOverrides and InstancedGraphicParams.
|
|
6
|
+
* The flags are interpreted in the vertex shader.
|
|
7
|
+
*/
|
|
8
|
+
export declare const enum OvrFlags {
|
|
9
|
+
None = 0,
|
|
10
|
+
LineRgb = 1,
|
|
11
|
+
Rgb = 2,
|
|
12
|
+
Alpha = 4,
|
|
13
|
+
/** ignore material color, specular properties, and texture. */
|
|
14
|
+
LineAlpha = 8,
|
|
15
|
+
Flashed = 16,
|
|
16
|
+
NonLocatable = 32,
|
|
17
|
+
LineCode = 64,
|
|
18
|
+
Weight = 128,
|
|
19
|
+
Hilited = 256,
|
|
20
|
+
Emphasized = 512,
|
|
21
|
+
ViewIndependentTransparency = 1024,
|
|
22
|
+
InvisibleDuringPick = 2048,
|
|
23
|
+
Visibility = 4096,
|
|
24
|
+
IgnoreMaterial = 8192,
|
|
25
|
+
Rgba = 6
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=OvrFlags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OvrFlags.d.ts","sourceRoot":"","sources":["../../../../../src/common/internal/render/OvrFlags.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;GAGG;AACH,0BAAkB,QAAQ;IACxB,IAAI,IAAI;IACR,OAAO,IAAS;IAChB,GAAG,IAAS;IACZ,KAAK,IAAS;IACd,+DAA+D;IAC/D,SAAS,IAAS;IAClB,OAAO,KAAS;IAEhB,YAAY,KAAS;IACrB,QAAQ,KAAS;IACjB,MAAM,MAAS;IACf,OAAO,MAAS;IAEhB,UAAU,MAAS;IACnB,2BAA2B,OAAU;IAOrC,mBAAmB,OAAU;IAC7B,UAAU,OAAU;IACpB,cAAc,OAAU;IAExB,IAAI,IAAc;CACnB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
/** @packageDocumentation
|
|
7
|
+
* @module WebGL
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
//# sourceMappingURL=OvrFlags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OvrFlags.js","sourceRoot":"","sources":["../../../../../src/common/internal/render/OvrFlags.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","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\n/** 16-bit flags indicating what aspects of a feature's symbology are overridden.\r\n * These are used for FeatureOverrides and InstancedGraphicParams.\r\n * The flags are interpreted in the vertex shader.\r\n */\r\nexport const enum OvrFlags { // eslint-disable-line no-restricted-syntax\r\n None = 0,\r\n LineRgb = 1 << 0,\r\n Rgb = 1 << 1,\r\n Alpha = 1 << 2,\r\n /** ignore material color, specular properties, and texture. */\r\n LineAlpha = 1 << 3,\r\n Flashed = 1 << 4,\r\n /* do not draw during pick - allows geometry beneath to be picked. */\r\n NonLocatable = 1 << 5,\r\n LineCode = 1 << 6,\r\n Weight = 1 << 7,\r\n Hilited = 1 << 8,\r\n /* rendered with \"emphasis\" hilite settings (silhouette etc). */\r\n Emphasized = 1 << 9,\r\n ViewIndependentTransparency = 1 << 10,\r\n /* Different from both NonLocatable and Visibility, but with the same effect as NonLocatable - don't draw during pick.\r\n * It's a separate flag because it is temporarily set during readPixels if a list of elements to hide is supplied, and then reset\r\n * immediately afterward.\r\n * We want to be able to efficiently change just that flag in the FeatureOverrides texture, and then flip it back off without worrying about\r\n * interfering with the other 2 flags.\r\n */\r\n InvisibleDuringPick = 1 << 11,\r\n Visibility = 1 << 12,\r\n IgnoreMaterial = 1 << 13,\r\n\r\n Rgba = Rgb | Alpha,\r\n}\r\n\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VertexTable.d.ts","sourceRoot":"","sources":["../../../../../src/common/internal/render/VertexTable.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEtF;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,yFAAyF;IACzF,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAC5C;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,0GAA0G;IAC1G,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,mEAAmE;IACnE,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC;IACjC,2EAA2E;IAC3E,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,qFAAqF;IACrF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,8FAA8F;IAC9F,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,sEAAsE;IACtE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,oGAAoG;IACpG,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;CAC/B;AAED,gBAAgB;AAChB,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"VertexTable.d.ts","sourceRoot":"","sources":["../../../../../src/common/internal/render/VertexTable.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEtF;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,yFAAyF;IACzF,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAC5C;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,0GAA0G;IAC1G,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,mEAAmE;IACnE,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC;IACjC,2EAA2E;IAC3E,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,qFAAqF;IACrF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,8FAA8F;IAC9F,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,sEAAsE;IACtE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,oGAAoG;IACpG,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;CAC/B;AAED,gBAAgB;AAChB,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CA4B1H"}
|
|
@@ -11,8 +11,8 @@ exports.computeDimensions = void 0;
|
|
|
11
11
|
const core_bentley_1 = require("@itwin/core-bentley");
|
|
12
12
|
/** @internal */
|
|
13
13
|
function computeDimensions(nEntries, nRgbaPerEntry, nExtraRgba, maxSize) {
|
|
14
|
-
const nRgba = nEntries * nRgbaPerEntry + nExtraRgba;
|
|
15
|
-
if (nRgba
|
|
14
|
+
const nRgba = Math.ceil(nEntries * nRgbaPerEntry) + nExtraRgba;
|
|
15
|
+
if (nRgba <= maxSize)
|
|
16
16
|
return { width: nRgba, height: 1 };
|
|
17
17
|
// Make roughly square to reduce unused space in last row
|
|
18
18
|
let width = Math.ceil(Math.sqrt(nRgba));
|
|
@@ -22,9 +22,7 @@ function computeDimensions(nEntries, nRgbaPerEntry, nExtraRgba, maxSize) {
|
|
|
22
22
|
width += nRgbaPerEntry - remainder;
|
|
23
23
|
}
|
|
24
24
|
// Compute height
|
|
25
|
-
|
|
26
|
-
if (width * height < nRgba)
|
|
27
|
-
++height;
|
|
25
|
+
const height = Math.ceil(nRgba / width);
|
|
28
26
|
(0, core_bentley_1.assert)(height <= maxSize);
|
|
29
27
|
(0, core_bentley_1.assert)(width <= maxSize);
|
|
30
28
|
(0, core_bentley_1.assert)(width * height >= nRgba);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VertexTable.js","sourceRoot":"","sources":["../../../../../src/common/internal/render/VertexTable.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAA6C;AA2C7C,gBAAgB;AAChB,SAAgB,iBAAiB,CAAC,QAAgB,EAAE,aAAqB,EAAE,UAAkB,EAAE,OAAe;IAC5G,MAAM,KAAK,GAAG,QAAQ,GAAG,aAAa,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"VertexTable.js","sourceRoot":"","sources":["../../../../../src/common/internal/render/VertexTable.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAA6C;AA2C7C,gBAAgB;AAChB,SAAgB,iBAAiB,CAAC,QAAgB,EAAE,aAAqB,EAAE,UAAkB,EAAE,OAAe;IAC5G,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,GAAG,UAAU,CAAC;IAE/D,IAAI,KAAK,IAAI,OAAO;QAClB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAErC,yDAAyD;IACzD,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAExC,8DAA8D;IAC9D,MAAM,SAAS,GAAG,KAAK,GAAG,aAAa,CAAC;IACxC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACpB,KAAK,IAAI,aAAa,GAAG,SAAS,CAAC;IACrC,CAAC;IAED,iBAAiB;IACjB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;IAExC,IAAA,qBAAM,EAAC,MAAM,IAAI,OAAO,CAAC,CAAC;IAC1B,IAAA,qBAAM,EAAC,KAAK,IAAI,OAAO,CAAC,CAAC;IACzB,IAAA,qBAAM,EAAC,KAAK,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC;IAChC,IAAA,qBAAM,EAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,CAAC;IACtC,IAAA,qBAAM,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;IAEpC,2CAA2C;IAC3C,IAAA,qBAAM,EAAC,CAAC,KAAK,KAAK,GAAG,aAAa,CAAC,CAAC;IAEpC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AA5BD,8CA4BC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { ColorDef, FeatureIndexType, QParams2d, QParams3d } from \"@itwin/core-common\";\r\n\r\n/** Describes a VertexTable.\r\n * @internal\r\n */\r\nexport interface VertexTable {\r\n /** The rectangular array of vertex data, of size width*height*numRgbaPerVertex bytes. */\r\n readonly data: Uint8Array;\r\n /** If true, positions are not quantized but instead stored as 32-bit floats.\r\n * [[qparams]] will still be defined; it can be used to derive the range of positions in the table.\r\n */\r\n readonly usesUnquantizedPositions?: boolean;\r\n /** Quantization parameters for the vertex positions encoded into the array, if the positions are quantized;\r\n * and for deriving the range of positions in the table, whether quantized or not.\r\n */\r\n readonly qparams: QParams3d;\r\n /** The number of 4-byte 'RGBA' values in each row of the array. Must be divisible by numRgbaPerVertex. */\r\n readonly width: number;\r\n /** The number of rows in the array. */\r\n readonly height: number;\r\n /** Whether or not the vertex colors contain translucent colors. */\r\n readonly hasTranslucency: boolean;\r\n /** If no color table exists, the color to use for all vertices. */\r\n readonly uniformColor?: ColorDef;\r\n /** Describes the number of features (none, one, or multiple) contained. */\r\n readonly featureIndexType: FeatureIndexType;\r\n /** If featureIndexType is 'Uniform', the feature ID associated with all vertices. */\r\n readonly uniformFeatureID?: number;\r\n /** The number of vertices in the table. Must be less than (width*height)/numRgbaPerVertex. */\r\n readonly numVertices: number;\r\n /** The number of 4-byte 'RGBA' values associated with each vertex. */\r\n readonly numRgbaPerVertex: number;\r\n /** If vertex data include texture UV coordinates, the quantization params for those coordinates. */\r\n readonly uvParams?: QParams2d;\r\n}\r\n\r\n/** @internal */\r\nexport interface Dimensions {\r\n width: number;\r\n height: number;\r\n}\r\n\r\n/** @internal */\r\nexport function computeDimensions(nEntries: number, nRgbaPerEntry: number, nExtraRgba: number, maxSize: number): Dimensions {\r\n const nRgba = Math.ceil(nEntries * nRgbaPerEntry) + nExtraRgba;\r\n\r\n if (nRgba <= maxSize)\r\n return { width: nRgba, height: 1 };\r\n\r\n // Make roughly square to reduce unused space in last row\r\n let width = Math.ceil(Math.sqrt(nRgba));\r\n\r\n // Ensure a given entry's RGBA values all fit on the same row.\r\n const remainder = width % nRgbaPerEntry;\r\n if (0 !== remainder) {\r\n width += nRgbaPerEntry - remainder;\r\n }\r\n\r\n // Compute height\r\n const height = Math.ceil(nRgba / width);\r\n\r\n assert(height <= maxSize);\r\n assert(width <= maxSize);\r\n assert(width * height >= nRgba);\r\n assert(Math.floor(height) === height);\r\n assert(Math.floor(width) === width);\r\n\r\n // Row padding should never be necessary...\r\n assert(0 === width % nRgbaPerEntry);\r\n\r\n return { width, height };\r\n}\r\n"]}
|