@itwin/core-frontend 4.8.0-dev.4 → 4.8.0-dev.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +62 -1
- package/README.md +9 -1
- package/ThirdPartyNotices.md +3 -3
- package/lib/cjs/AccuDraw.d.ts +6 -1
- package/lib/cjs/AccuDraw.d.ts.map +1 -1
- package/lib/cjs/AccuDraw.js +18 -6
- package/lib/cjs/AccuDraw.js.map +1 -1
- package/lib/cjs/AccuSnap.d.ts +9 -0
- package/lib/cjs/AccuSnap.d.ts.map +1 -1
- package/lib/cjs/AccuSnap.js +15 -3
- package/lib/cjs/AccuSnap.js.map +1 -1
- package/lib/cjs/AuxCoordSys.d.ts.map +1 -1
- package/lib/cjs/AuxCoordSys.js +2 -2
- package/lib/cjs/AuxCoordSys.js.map +1 -1
- package/lib/cjs/DecorationsCache.d.ts +1 -1
- package/lib/cjs/DecorationsCache.d.ts.map +1 -1
- package/lib/cjs/DecorationsCache.js.map +1 -1
- package/lib/cjs/EnvironmentDecorations.d.ts.map +1 -1
- package/lib/cjs/EnvironmentDecorations.js +2 -2
- package/lib/cjs/EnvironmentDecorations.js.map +1 -1
- package/lib/cjs/HitDetail.d.ts.map +1 -1
- package/lib/cjs/HitDetail.js +3 -3
- package/lib/cjs/HitDetail.js.map +1 -1
- package/lib/cjs/IModelApp.d.ts +2 -3
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js +2 -2
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +16 -6
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +21 -7
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/IpcApp.d.ts +5 -1
- package/lib/cjs/IpcApp.d.ts.map +1 -1
- package/lib/cjs/IpcApp.js +11 -5
- package/lib/cjs/IpcApp.js.map +1 -1
- package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
- package/lib/cjs/LocalhostIpcApp.js +2 -1
- package/lib/cjs/LocalhostIpcApp.js.map +1 -1
- package/lib/cjs/NativeApp.d.ts.map +1 -1
- package/lib/cjs/NativeApp.js +2 -1
- package/lib/cjs/NativeApp.js.map +1 -1
- package/lib/cjs/NoRenderApp.d.ts +2 -0
- package/lib/cjs/NoRenderApp.d.ts.map +1 -1
- package/lib/cjs/NoRenderApp.js +7 -0
- package/lib/cjs/NoRenderApp.js.map +1 -1
- package/lib/cjs/PlanarClipMaskState.d.ts +8 -3
- package/lib/cjs/PlanarClipMaskState.d.ts.map +1 -1
- package/lib/cjs/PlanarClipMaskState.js +47 -17
- package/lib/cjs/PlanarClipMaskState.js.map +1 -1
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts +3 -0
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -1
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.js +15 -4
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
- package/lib/cjs/SheetViewState.d.ts.map +1 -1
- package/lib/cjs/SheetViewState.js +3 -3
- package/lib/cjs/SheetViewState.js.map +1 -1
- package/lib/cjs/SpatialViewState.d.ts +14 -1
- package/lib/cjs/SpatialViewState.d.ts.map +1 -1
- package/lib/cjs/SpatialViewState.js +17 -0
- package/lib/cjs/SpatialViewState.js.map +1 -1
- package/lib/cjs/SubCategoriesCache.d.ts +3 -1
- package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
- package/lib/cjs/SubCategoriesCache.js +19 -5
- package/lib/cjs/SubCategoriesCache.js.map +1 -1
- package/lib/cjs/ViewContext.d.ts +2 -1
- package/lib/cjs/ViewContext.d.ts.map +1 -1
- package/lib/cjs/ViewContext.js +8 -8
- package/lib/cjs/ViewContext.js.map +1 -1
- package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
- package/lib/cjs/ViewCreator3d.js +1 -0
- package/lib/cjs/ViewCreator3d.js.map +1 -1
- package/lib/cjs/ViewManager.d.ts +4 -7
- package/lib/cjs/ViewManager.d.ts.map +1 -1
- package/lib/cjs/ViewManager.js +4 -7
- package/lib/cjs/ViewManager.js.map +1 -1
- package/lib/cjs/ViewingSpace.d.ts +3 -1
- package/lib/cjs/ViewingSpace.d.ts.map +1 -1
- package/lib/cjs/ViewingSpace.js +11 -2
- package/lib/cjs/ViewingSpace.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +1 -3
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +3 -5
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/common/WorkerProxy.d.ts +7 -25
- package/lib/cjs/common/WorkerProxy.d.ts.map +1 -1
- package/lib/cjs/common/WorkerProxy.js +2 -1
- package/lib/cjs/common/WorkerProxy.js.map +1 -1
- package/lib/cjs/common/gltf/GltfSchema.d.ts +15 -1
- package/lib/cjs/common/gltf/GltfSchema.d.ts.map +1 -1
- package/lib/cjs/common/gltf/GltfSchema.js.map +1 -1
- package/lib/cjs/common/imdl/CompactEdges.d.ts +1 -1
- package/lib/cjs/common/imdl/CompactEdges.d.ts.map +1 -1
- package/lib/cjs/common/imdl/CompactEdges.js +2 -2
- package/lib/cjs/common/imdl/CompactEdges.js.map +1 -1
- package/lib/cjs/common/imdl/ImdlModel.d.ts +5 -3
- package/lib/cjs/common/imdl/ImdlModel.d.ts.map +1 -1
- package/lib/cjs/common/imdl/ImdlModel.js +49 -42
- package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
- package/lib/cjs/common/imdl/ImdlSchema.d.ts +4 -4
- package/lib/cjs/common/imdl/ImdlSchema.d.ts.map +1 -1
- package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -1
- package/lib/cjs/common/imdl/ParseImdlDocument.d.ts +4 -2
- package/lib/cjs/common/imdl/ParseImdlDocument.d.ts.map +1 -1
- package/lib/cjs/common/imdl/ParseImdlDocument.js +10 -8
- package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
- package/lib/cjs/common/internal/Symbols.d.ts +10 -0
- package/lib/cjs/common/internal/Symbols.d.ts.map +1 -0
- package/lib/cjs/common/internal/Symbols.js +20 -0
- package/lib/cjs/common/internal/Symbols.js.map +1 -0
- package/lib/cjs/common/internal/render/AnimationNodeId.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/AnimationNodeId.js.map +1 -0
- package/lib/cjs/common/internal/render/AuxChannelTable.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/AuxChannelTable.js.map +1 -0
- package/lib/cjs/common/internal/render/ColorMap.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/ColorMap.js.map +1 -0
- package/lib/cjs/common/internal/render/DisplayParams.d.ts.map +1 -0
- package/lib/cjs/common/{render/primitives → internal/render}/DisplayParams.js +3 -6
- package/lib/cjs/common/internal/render/DisplayParams.js.map +1 -0
- package/lib/cjs/common/{render/primitives → internal/render}/EdgeParams.d.ts +7 -0
- package/lib/cjs/common/internal/render/EdgeParams.d.ts.map +1 -0
- package/lib/cjs/{render/primitives → common/internal/render}/EdgeParams.js +50 -16
- package/lib/cjs/common/internal/render/EdgeParams.js.map +1 -0
- package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.d.ts +4 -18
- package/lib/cjs/common/internal/render/GeometryAccumulator.d.ts.map +1 -0
- package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.js +2 -70
- package/lib/cjs/common/internal/render/GeometryAccumulator.js.map +1 -0
- package/lib/cjs/common/internal/render/GeometryList.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/GeometryList.js.map +1 -0
- package/lib/{esm/render/primitives/geometry → cjs/common/internal/render}/GeometryPrimitives.d.ts +3 -3
- package/lib/cjs/common/internal/render/GeometryPrimitives.d.ts.map +1 -0
- package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryPrimitives.js +3 -3
- package/lib/cjs/common/internal/render/GeometryPrimitives.js.map +1 -0
- package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.d.ts +46 -0
- package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js +252 -0
- package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -0
- package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.d.ts +104 -0
- package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.js +146 -0
- package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -0
- package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshBuilder.d.ts +4 -4
- package/lib/{esm/render/primitives/mesh → cjs/common/internal/render}/MeshBuilder.d.ts.map +1 -1
- package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshBuilder.js +2 -2
- package/lib/cjs/common/internal/render/MeshBuilder.js.map +1 -0
- package/lib/{esm/render/primitives/mesh → cjs/common/internal/render}/MeshBuilderMap.d.ts +7 -8
- package/lib/cjs/common/internal/render/MeshBuilderMap.d.ts.map +1 -0
- package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshBuilderMap.js +4 -6
- package/lib/cjs/common/internal/render/MeshBuilderMap.js.map +1 -0
- package/lib/cjs/common/internal/render/MeshParams.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/MeshParams.js.map +1 -0
- package/lib/cjs/common/internal/render/MeshPrimitive.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/MeshPrimitive.js.map +1 -0
- package/lib/cjs/common/internal/render/MeshPrimitives.d.ts +82 -0
- package/lib/cjs/common/internal/render/MeshPrimitives.d.ts.map +1 -0
- package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshPrimitives.js +82 -104
- package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -0
- package/lib/cjs/common/internal/render/PointCloudPrimitive.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/PointCloudPrimitive.js.map +1 -0
- package/lib/{esm/common/render/primitives → cjs/common/internal/render}/PointStringParams.d.ts +3 -0
- package/lib/cjs/common/internal/render/PointStringParams.d.ts.map +1 -0
- package/lib/cjs/{render/primitives → common/internal/render}/PointStringParams.js +3 -4
- package/lib/cjs/common/internal/render/PointStringParams.js.map +1 -0
- package/lib/{esm/render/primitives → cjs/common/internal/render}/Polyface.d.ts +1 -1
- package/lib/cjs/common/internal/render/Polyface.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/Polyface.js.map +1 -0
- package/lib/cjs/common/{render/primitives → internal/render}/PolylineParams.d.ts +11 -1
- package/lib/cjs/common/internal/render/PolylineParams.d.ts.map +1 -0
- package/lib/cjs/{render/primitives → common/internal/render}/PolylineParams.js +5 -6
- package/lib/cjs/common/internal/render/PolylineParams.js.map +1 -0
- package/lib/{esm/render/primitives → cjs/common/internal/render}/Primitives.d.ts +3 -34
- package/lib/cjs/common/internal/render/Primitives.d.ts.map +1 -0
- package/lib/cjs/{render/primitives → common/internal/render}/Primitives.js +1 -44
- package/lib/cjs/common/internal/render/Primitives.js.map +1 -0
- package/lib/{esm/render/primitives → cjs/common/internal/render}/Strokes.d.ts +1 -1
- package/lib/cjs/common/internal/render/Strokes.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/Strokes.js.map +1 -0
- package/lib/cjs/common/internal/render/SurfaceParams.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/SurfaceParams.js.map +1 -0
- package/lib/cjs/common/internal/render/VertexIndices.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/VertexIndices.js.map +1 -0
- package/lib/cjs/common/internal/render/VertexKey.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/VertexKey.js.map +1 -0
- package/lib/cjs/common/internal/render/VertexTable.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/VertexTable.js.map +1 -0
- package/lib/{esm/render/primitives → cjs/common/internal/render}/VertexTableBuilder.d.ts +5 -4
- package/lib/cjs/common/internal/render/VertexTableBuilder.d.ts.map +1 -0
- package/lib/cjs/{render/primitives → common/internal/render}/VertexTableBuilder.js +6 -6
- package/lib/cjs/common/internal/render/VertexTableBuilder.js.map +1 -0
- package/lib/cjs/common/{render/primitives → internal/render}/VertexTableSplitter.d.ts +1 -1
- package/lib/cjs/common/internal/render/VertexTableSplitter.d.ts.map +1 -0
- package/lib/cjs/common/{render/primitives → internal/render}/VertexTableSplitter.js +17 -4
- package/lib/cjs/common/internal/render/VertexTableSplitter.js.map +1 -0
- package/lib/cjs/common/render/BatchOptions.d.ts +46 -0
- package/lib/cjs/common/render/BatchOptions.d.ts.map +1 -0
- package/lib/cjs/common/render/{primitives/PolylineParams.js → BatchOptions.js} +1 -1
- package/lib/cjs/common/render/BatchOptions.js.map +1 -0
- package/lib/cjs/common/render/GraphicAssembler.d.ts +197 -0
- package/lib/cjs/common/render/GraphicAssembler.d.ts.map +1 -0
- package/lib/cjs/common/render/GraphicAssembler.js +386 -0
- package/lib/cjs/common/render/GraphicAssembler.js.map +1 -0
- package/lib/cjs/common/render/GraphicDescriptionBuilder.d.ts +89 -0
- package/lib/cjs/common/render/GraphicDescriptionBuilder.d.ts.map +1 -0
- package/lib/cjs/common/render/GraphicDescriptionBuilder.js +34 -0
- package/lib/cjs/common/render/GraphicDescriptionBuilder.js.map +1 -0
- package/lib/cjs/common/render/GraphicDescriptionContext.d.ts +85 -0
- package/lib/cjs/common/render/GraphicDescriptionContext.d.ts.map +1 -0
- package/lib/cjs/common/render/GraphicDescriptionContext.js +22 -0
- package/lib/cjs/common/render/GraphicDescriptionContext.js.map +1 -0
- package/lib/cjs/common/render/GraphicPrimitive.d.ts.map +1 -0
- package/lib/cjs/common/render/GraphicPrimitive.js.map +1 -0
- package/lib/cjs/common/render/GraphicType.d.ts +62 -0
- package/lib/cjs/common/render/GraphicType.d.ts.map +1 -0
- package/lib/cjs/common/render/GraphicType.js +70 -0
- package/lib/cjs/common/render/GraphicType.js.map +1 -0
- package/lib/cjs/common/render/InstancedGraphicParams.d.ts.map +1 -0
- package/lib/cjs/common/render/InstancedGraphicParams.js.map +1 -0
- package/lib/cjs/common.d.ts +14 -0
- package/lib/cjs/common.d.ts.map +1 -0
- package/lib/cjs/common.js +35 -0
- package/lib/cjs/common.js.map +1 -0
- package/lib/cjs/core-frontend.d.ts +5 -43
- package/lib/cjs/core-frontend.d.ts.map +1 -1
- package/lib/cjs/core-frontend.js +5 -43
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/extension/ExtensionRuntime.js +1 -0
- package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
- package/lib/cjs/internal/cross-package.d.ts +7 -0
- package/lib/cjs/internal/cross-package.d.ts.map +1 -0
- package/lib/cjs/internal/cross-package.js +17 -0
- package/lib/cjs/internal/cross-package.js.map +1 -0
- package/lib/cjs/internal/render/PrimitiveBuilder.d.ts +33 -0
- package/lib/cjs/internal/render/PrimitiveBuilder.d.ts.map +1 -0
- package/lib/cjs/internal/render/PrimitiveBuilder.js +140 -0
- package/lib/cjs/internal/render/PrimitiveBuilder.js.map +1 -0
- package/lib/cjs/render/FeatureSymbology.js +3 -3
- package/lib/cjs/render/FeatureSymbology.js.map +1 -1
- package/lib/cjs/render/GraphicBranch.d.ts +1 -1
- package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- package/lib/cjs/render/GraphicBuilder.d.ts +7 -254
- package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBuilder.js +18 -235
- package/lib/cjs/render/GraphicBuilder.js.map +1 -1
- package/lib/cjs/render/MeshArgs.d.ts +56 -0
- package/lib/cjs/render/MeshArgs.d.ts.map +1 -0
- package/lib/cjs/{common/render/primitives/PointStringParams.js → render/MeshArgs.js} +1 -1
- package/lib/cjs/render/MeshArgs.js.map +1 -0
- package/lib/cjs/render/MockRender.d.ts +7 -5
- package/lib/cjs/render/MockRender.d.ts.map +1 -1
- package/lib/cjs/render/MockRender.js +6 -2
- package/lib/cjs/render/MockRender.js.map +1 -1
- package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
- package/lib/cjs/render/ParticleCollectionBuilder.js +4 -3
- package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/cjs/render/PolylineArgs.d.ts +31 -0
- package/lib/cjs/render/PolylineArgs.d.ts.map +1 -0
- package/lib/cjs/render/PolylineArgs.js +10 -0
- package/lib/cjs/render/PolylineArgs.js.map +1 -0
- package/lib/cjs/render/RealityMeshParams.js +1 -1
- package/lib/cjs/render/RealityMeshParams.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +36 -7
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js +94 -6
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/RenderTarget.d.ts +49 -5
- package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
- package/lib/cjs/render/RenderTarget.js +33 -5
- package/lib/cjs/render/RenderTarget.js.map +1 -1
- package/lib/cjs/render/webgl/BackgroundMapDrape.js +1 -1
- package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.d.ts +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/ColorInfo.d.ts +1 -1
- package/lib/cjs/render/webgl/ColorInfo.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ColorInfo.js.map +1 -1
- package/lib/cjs/render/webgl/EdgeGeometry.d.ts +2 -2
- package/lib/cjs/render/webgl/EdgeGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.d.ts +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.js +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/cjs/render/webgl/Graphic.d.ts +1 -1
- package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Graphic.js.map +1 -1
- package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
- package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.d.ts +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/Material.d.ts +5 -1
- package/lib/cjs/render/webgl/Material.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Material.js +5 -0
- package/lib/cjs/render/webgl/Material.js.map +1 -1
- package/lib/cjs/render/webgl/Mesh.d.ts +6 -3
- package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Mesh.js +3 -1
- package/lib/cjs/render/webgl/Mesh.js.map +1 -1
- package/lib/cjs/render/webgl/MeshData.d.ts +2 -2
- package/lib/cjs/render/webgl/MeshData.d.ts.map +1 -1
- package/lib/cjs/render/webgl/MeshData.js.map +1 -1
- package/lib/cjs/render/webgl/MeshGeometry.d.ts +1 -1
- package/lib/cjs/render/webgl/MeshGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PlanarClassifier.d.ts +2 -0
- package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PlanarClassifier.js +38 -11
- package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts +3 -3
- package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PlanarTextureProjection.js +53 -19
- package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.d.ts +1 -1
- package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
- package/lib/cjs/render/webgl/PointString.d.ts +1 -1
- package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PointString.js.map +1 -1
- package/lib/cjs/render/webgl/Polyline.d.ts +1 -1
- package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Polyline.js.map +1 -1
- package/lib/cjs/render/webgl/Primitive.d.ts +1 -1
- package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Primitive.js.map +1 -1
- package/lib/cjs/render/webgl/RenderCommands.js +1 -1
- package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
- package/lib/cjs/render/webgl/SolarShadowMap.js +2 -2
- package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/cjs/render/webgl/SurfaceGeometry.d.ts +1 -1
- package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/SurfaceGeometry.js +1 -1
- package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/System.d.ts +7 -6
- package/lib/cjs/render/webgl/System.d.ts.map +1 -1
- package/lib/cjs/render/webgl/System.js +2 -2
- package/lib/cjs/render/webgl/System.js.map +1 -1
- package/lib/cjs/render/webgl/Target.d.ts +3 -0
- package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Target.js +6 -1
- package/lib/cjs/render/webgl/Target.js.map +1 -1
- package/lib/cjs/render/webgl/VertexLUT.d.ts +2 -2
- package/lib/cjs/render/webgl/VertexLUT.d.ts.map +1 -1
- package/lib/cjs/render/webgl/VertexLUT.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Animation.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/cjs/tile/B3dmReader.d.ts +1 -2
- package/lib/cjs/tile/B3dmReader.d.ts.map +1 -1
- package/lib/cjs/tile/B3dmReader.js +1 -2
- package/lib/cjs/tile/B3dmReader.js.map +1 -1
- package/lib/cjs/tile/DynamicIModelTile.js +1 -0
- package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
- package/lib/cjs/tile/GltfReader.d.ts +30 -6
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +245 -9
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/GraphicsCollector.d.ts.map +1 -1
- package/lib/cjs/tile/GraphicsCollector.js +5 -2
- package/lib/cjs/tile/GraphicsCollector.js.map +1 -1
- package/lib/cjs/tile/I3dmReader.d.ts +1 -2
- package/lib/cjs/tile/I3dmReader.d.ts.map +1 -1
- package/lib/cjs/tile/I3dmReader.js +1 -2
- package/lib/cjs/tile/I3dmReader.js.map +1 -1
- package/lib/cjs/tile/ImdlDecoder.d.ts +1 -1
- package/lib/cjs/tile/ImdlDecoder.d.ts.map +1 -1
- package/lib/cjs/tile/ImdlDecoder.js.map +1 -1
- package/lib/cjs/tile/ImdlGraphicsCreator.d.ts +4 -0
- package/lib/cjs/tile/ImdlGraphicsCreator.d.ts.map +1 -1
- package/lib/cjs/tile/ImdlGraphicsCreator.js +88 -5
- package/lib/cjs/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/cjs/tile/ImdlReader.d.ts +1 -1
- package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
- package/lib/cjs/tile/ImdlReader.js.map +1 -1
- package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +1 -1
- package/lib/cjs/tile/OPCFormatInterpreter.js +7 -2
- package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/cjs/tile/OrbitGtTileTree.js +1 -1
- package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/cjs/tile/PntsReader.js +1 -1
- package/lib/cjs/tile/PntsReader.js.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.d.ts +6 -2
- package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.js +26 -1
- package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityModelTileTree.js +1 -1
- package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityTile.d.ts +2 -3
- package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTile.js +0 -1
- package/lib/cjs/tile/RealityTile.js.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.js +1 -0
- package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/tile/TileGeometryCollector.d.ts +4 -4
- package/lib/cjs/tile/TileGeometryCollector.js +1 -1
- package/lib/cjs/tile/TileGeometryCollector.js.map +1 -1
- package/lib/cjs/tile/TileTreeReference.d.ts +0 -4
- package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeReference.js +0 -3
- package/lib/cjs/tile/TileTreeReference.js.map +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts +1 -0
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.js +7 -5
- package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js +9 -4
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +3 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts +1 -1
- package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
- package/lib/cjs/tile/map/MapFeatureInfo.d.ts +1 -1
- package/lib/cjs/tile/map/MapFeatureInfo.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +5 -5
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tools/AccuDrawTool.d.ts +21 -0
- package/lib/cjs/tools/AccuDrawTool.d.ts.map +1 -1
- package/lib/cjs/tools/AccuDrawTool.js +93 -1
- package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
- package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
- package/lib/cjs/tools/ClipViewTool.js +16 -16
- package/lib/cjs/tools/ClipViewTool.js.map +1 -1
- package/lib/cjs/tools/ElementSetTool.d.ts +9 -5
- package/lib/cjs/tools/ElementSetTool.d.ts.map +1 -1
- package/lib/cjs/tools/ElementSetTool.js +9 -5
- package/lib/cjs/tools/ElementSetTool.js.map +1 -1
- package/lib/cjs/tools/MeasureTool.d.ts.map +1 -1
- package/lib/cjs/tools/MeasureTool.js +9 -9
- package/lib/cjs/tools/MeasureTool.js.map +1 -1
- package/lib/cjs/tools/ToolAdmin.d.ts +2 -0
- package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/cjs/tools/ToolAdmin.js +6 -1
- package/lib/cjs/tools/ToolAdmin.js.map +1 -1
- package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
- package/lib/cjs/tools/ViewTool.js +8 -8
- package/lib/cjs/tools/ViewTool.js.map +1 -1
- package/lib/cjs/workers/RegisterWorker.d.ts +2 -1
- package/lib/cjs/workers/RegisterWorker.d.ts.map +1 -1
- package/lib/cjs/workers/RegisterWorker.js +2 -1
- package/lib/cjs/workers/RegisterWorker.js.map +1 -1
- package/lib/esm/AccuDraw.d.ts +6 -1
- package/lib/esm/AccuDraw.d.ts.map +1 -1
- package/lib/esm/AccuDraw.js +15 -3
- package/lib/esm/AccuDraw.js.map +1 -1
- package/lib/esm/AccuSnap.d.ts +9 -0
- package/lib/esm/AccuSnap.d.ts.map +1 -1
- package/lib/esm/AccuSnap.js +15 -3
- package/lib/esm/AccuSnap.js.map +1 -1
- package/lib/esm/AuxCoordSys.d.ts.map +1 -1
- package/lib/esm/AuxCoordSys.js +1 -1
- package/lib/esm/AuxCoordSys.js.map +1 -1
- package/lib/esm/DecorationsCache.d.ts +1 -1
- package/lib/esm/DecorationsCache.d.ts.map +1 -1
- package/lib/esm/DecorationsCache.js.map +1 -1
- package/lib/esm/EnvironmentDecorations.d.ts.map +1 -1
- package/lib/esm/EnvironmentDecorations.js +1 -1
- package/lib/esm/EnvironmentDecorations.js.map +1 -1
- package/lib/esm/HitDetail.d.ts.map +1 -1
- package/lib/esm/HitDetail.js +1 -1
- package/lib/esm/HitDetail.js.map +1 -1
- package/lib/esm/IModelApp.d.ts +2 -3
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js +2 -2
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +16 -6
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +21 -7
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/IpcApp.d.ts +5 -1
- package/lib/esm/IpcApp.d.ts.map +1 -1
- package/lib/esm/IpcApp.js +11 -5
- package/lib/esm/IpcApp.js.map +1 -1
- package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
- package/lib/esm/LocalhostIpcApp.js +2 -1
- package/lib/esm/LocalhostIpcApp.js.map +1 -1
- package/lib/esm/NativeApp.d.ts.map +1 -1
- package/lib/esm/NativeApp.js +2 -1
- package/lib/esm/NativeApp.js.map +1 -1
- package/lib/esm/NoRenderApp.d.ts +2 -0
- package/lib/esm/NoRenderApp.d.ts.map +1 -1
- package/lib/esm/NoRenderApp.js +7 -0
- package/lib/esm/NoRenderApp.js.map +1 -1
- package/lib/esm/PlanarClipMaskState.d.ts +8 -3
- package/lib/esm/PlanarClipMaskState.d.ts.map +1 -1
- package/lib/esm/PlanarClipMaskState.js +48 -18
- package/lib/esm/PlanarClipMaskState.js.map +1 -1
- package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts +3 -0
- package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -1
- package/lib/esm/RealityDataSourceTilesetUrlImpl.js +15 -4
- package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
- package/lib/esm/SheetViewState.d.ts.map +1 -1
- package/lib/esm/SheetViewState.js +1 -1
- package/lib/esm/SheetViewState.js.map +1 -1
- package/lib/esm/SpatialViewState.d.ts +14 -1
- package/lib/esm/SpatialViewState.d.ts.map +1 -1
- package/lib/esm/SpatialViewState.js +17 -0
- package/lib/esm/SpatialViewState.js.map +1 -1
- package/lib/esm/SubCategoriesCache.d.ts +3 -1
- package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
- package/lib/esm/SubCategoriesCache.js +19 -5
- package/lib/esm/SubCategoriesCache.js.map +1 -1
- package/lib/esm/ViewContext.d.ts +2 -1
- package/lib/esm/ViewContext.d.ts.map +1 -1
- package/lib/esm/ViewContext.js +1 -1
- package/lib/esm/ViewContext.js.map +1 -1
- package/lib/esm/ViewCreator3d.d.ts.map +1 -1
- package/lib/esm/ViewCreator3d.js +1 -0
- package/lib/esm/ViewCreator3d.js.map +1 -1
- package/lib/esm/ViewManager.d.ts +4 -7
- package/lib/esm/ViewManager.d.ts.map +1 -1
- package/lib/esm/ViewManager.js +4 -7
- package/lib/esm/ViewManager.js.map +1 -1
- package/lib/esm/ViewingSpace.d.ts +3 -1
- package/lib/esm/ViewingSpace.d.ts.map +1 -1
- package/lib/esm/ViewingSpace.js +11 -2
- package/lib/esm/ViewingSpace.js.map +1 -1
- package/lib/esm/Viewport.d.ts +1 -3
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +2 -4
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/common/WorkerProxy.d.ts +7 -25
- package/lib/esm/common/WorkerProxy.d.ts.map +1 -1
- package/lib/esm/common/WorkerProxy.js +2 -1
- package/lib/esm/common/WorkerProxy.js.map +1 -1
- package/lib/esm/common/gltf/GltfSchema.d.ts +15 -1
- package/lib/esm/common/gltf/GltfSchema.d.ts.map +1 -1
- package/lib/esm/common/gltf/GltfSchema.js.map +1 -1
- package/lib/esm/common/imdl/CompactEdges.d.ts +1 -1
- package/lib/esm/common/imdl/CompactEdges.d.ts.map +1 -1
- package/lib/esm/common/imdl/CompactEdges.js +2 -2
- package/lib/esm/common/imdl/CompactEdges.js.map +1 -1
- package/lib/esm/common/imdl/ImdlModel.d.ts +5 -3
- package/lib/esm/common/imdl/ImdlModel.d.ts.map +1 -1
- package/lib/esm/common/imdl/ImdlModel.js +47 -41
- package/lib/esm/common/imdl/ImdlModel.js.map +1 -1
- package/lib/esm/common/imdl/ImdlSchema.d.ts +4 -4
- package/lib/esm/common/imdl/ImdlSchema.d.ts.map +1 -1
- package/lib/esm/common/imdl/ImdlSchema.js.map +1 -1
- package/lib/esm/common/imdl/ParseImdlDocument.d.ts +4 -2
- package/lib/esm/common/imdl/ParseImdlDocument.d.ts.map +1 -1
- package/lib/esm/common/imdl/ParseImdlDocument.js +9 -8
- package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
- package/lib/esm/common/internal/Symbols.d.ts +10 -0
- package/lib/esm/common/internal/Symbols.d.ts.map +1 -0
- package/lib/esm/common/internal/Symbols.js +17 -0
- package/lib/esm/common/internal/Symbols.js.map +1 -0
- package/lib/esm/common/internal/render/AnimationNodeId.d.ts.map +1 -0
- package/lib/esm/common/internal/render/AnimationNodeId.js.map +1 -0
- package/lib/esm/common/internal/render/AuxChannelTable.d.ts.map +1 -0
- package/lib/esm/common/internal/render/AuxChannelTable.js.map +1 -0
- package/lib/esm/common/internal/render/ColorMap.d.ts.map +1 -0
- package/lib/esm/common/internal/render/ColorMap.js.map +1 -0
- package/lib/esm/common/internal/render/DisplayParams.d.ts.map +1 -0
- package/lib/esm/common/{render/primitives → internal/render}/DisplayParams.js +4 -7
- package/lib/esm/common/internal/render/DisplayParams.js.map +1 -0
- package/lib/esm/common/{render/primitives → internal/render}/EdgeParams.d.ts +7 -0
- package/lib/esm/common/internal/render/EdgeParams.d.ts.map +1 -0
- package/lib/esm/{render/primitives → common/internal/render}/EdgeParams.js +47 -14
- package/lib/esm/common/internal/render/EdgeParams.js.map +1 -0
- package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.d.ts +4 -18
- package/lib/esm/common/internal/render/GeometryAccumulator.d.ts.map +1 -0
- package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.js +2 -70
- package/lib/esm/common/internal/render/GeometryAccumulator.js.map +1 -0
- package/lib/esm/common/internal/render/GeometryList.d.ts.map +1 -0
- package/lib/esm/common/internal/render/GeometryList.js.map +1 -0
- package/lib/{cjs/render/primitives/geometry → esm/common/internal/render}/GeometryPrimitives.d.ts +3 -3
- package/lib/esm/common/internal/render/GeometryPrimitives.d.ts.map +1 -0
- package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryPrimitives.js +3 -3
- package/lib/esm/common/internal/render/GeometryPrimitives.js.map +1 -0
- package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.d.ts +46 -0
- package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.d.ts.map +1 -0
- package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js +246 -0
- package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -0
- package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.d.ts +104 -0
- package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.d.ts.map +1 -0
- package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.js +140 -0
- package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -0
- package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshBuilder.d.ts +4 -4
- package/lib/{cjs/render/primitives/mesh → esm/common/internal/render}/MeshBuilder.d.ts.map +1 -1
- package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshBuilder.js +2 -2
- package/lib/esm/common/internal/render/MeshBuilder.js.map +1 -0
- package/lib/{cjs/render/primitives/mesh → esm/common/internal/render}/MeshBuilderMap.d.ts +7 -8
- package/lib/esm/common/internal/render/MeshBuilderMap.d.ts.map +1 -0
- package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshBuilderMap.js +4 -6
- package/lib/esm/common/internal/render/MeshBuilderMap.js.map +1 -0
- package/lib/esm/common/internal/render/MeshParams.d.ts.map +1 -0
- package/lib/esm/common/internal/render/MeshParams.js.map +1 -0
- package/lib/esm/common/internal/render/MeshPrimitive.d.ts.map +1 -0
- package/lib/esm/common/internal/render/MeshPrimitive.js.map +1 -0
- package/lib/esm/common/internal/render/MeshPrimitives.d.ts +82 -0
- package/lib/esm/common/internal/render/MeshPrimitives.d.ts.map +1 -0
- package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshPrimitives.js +79 -103
- package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -0
- package/lib/esm/common/internal/render/PointCloudPrimitive.d.ts.map +1 -0
- package/lib/esm/common/internal/render/PointCloudPrimitive.js.map +1 -0
- package/lib/{cjs/common/render/primitives → esm/common/internal/render}/PointStringParams.d.ts +3 -0
- package/lib/esm/common/internal/render/PointStringParams.d.ts.map +1 -0
- package/lib/esm/{render/primitives → common/internal/render}/PointStringParams.js +3 -4
- package/lib/esm/common/internal/render/PointStringParams.js.map +1 -0
- package/lib/{cjs/render/primitives → esm/common/internal/render}/Polyface.d.ts +1 -1
- package/lib/esm/common/internal/render/Polyface.d.ts.map +1 -0
- package/lib/esm/common/internal/render/Polyface.js.map +1 -0
- package/lib/esm/common/{render/primitives → internal/render}/PolylineParams.d.ts +11 -1
- package/lib/esm/common/internal/render/PolylineParams.d.ts.map +1 -0
- package/lib/esm/{render/primitives → common/internal/render}/PolylineParams.js +5 -6
- package/lib/esm/common/internal/render/PolylineParams.js.map +1 -0
- package/lib/{cjs/render/primitives → esm/common/internal/render}/Primitives.d.ts +3 -34
- package/lib/esm/common/internal/render/Primitives.d.ts.map +1 -0
- package/lib/esm/{render/primitives → common/internal/render}/Primitives.js +0 -42
- package/lib/esm/common/internal/render/Primitives.js.map +1 -0
- package/lib/{cjs/render/primitives → esm/common/internal/render}/Strokes.d.ts +1 -1
- package/lib/esm/common/internal/render/Strokes.d.ts.map +1 -0
- package/lib/esm/common/internal/render/Strokes.js.map +1 -0
- package/lib/esm/common/internal/render/SurfaceParams.d.ts.map +1 -0
- package/lib/esm/common/internal/render/SurfaceParams.js.map +1 -0
- package/lib/esm/common/internal/render/VertexIndices.d.ts.map +1 -0
- package/lib/esm/common/internal/render/VertexIndices.js.map +1 -0
- package/lib/esm/common/internal/render/VertexKey.d.ts.map +1 -0
- package/lib/esm/common/internal/render/VertexKey.js.map +1 -0
- package/lib/esm/common/internal/render/VertexTable.d.ts.map +1 -0
- package/lib/esm/common/internal/render/VertexTable.js.map +1 -0
- package/lib/{cjs/render/primitives → esm/common/internal/render}/VertexTableBuilder.d.ts +5 -4
- package/lib/esm/common/internal/render/VertexTableBuilder.d.ts.map +1 -0
- package/lib/esm/{render/primitives → common/internal/render}/VertexTableBuilder.js +6 -6
- package/lib/esm/common/internal/render/VertexTableBuilder.js.map +1 -0
- package/lib/esm/common/{render/primitives → internal/render}/VertexTableSplitter.d.ts +1 -1
- package/lib/esm/common/internal/render/VertexTableSplitter.d.ts.map +1 -0
- package/lib/esm/common/{render/primitives → internal/render}/VertexTableSplitter.js +17 -4
- package/lib/esm/common/internal/render/VertexTableSplitter.js.map +1 -0
- package/lib/esm/common/render/BatchOptions.d.ts +46 -0
- package/lib/esm/common/render/BatchOptions.d.ts.map +1 -0
- package/lib/esm/common/render/{primitives/PolylineParams.js → BatchOptions.js} +1 -1
- package/lib/esm/common/render/BatchOptions.js.map +1 -0
- package/lib/esm/common/render/GraphicAssembler.d.ts +197 -0
- package/lib/esm/common/render/GraphicAssembler.d.ts.map +1 -0
- package/lib/esm/common/render/GraphicAssembler.js +382 -0
- package/lib/esm/common/render/GraphicAssembler.js.map +1 -0
- package/lib/esm/common/render/GraphicDescriptionBuilder.d.ts +89 -0
- package/lib/esm/common/render/GraphicDescriptionBuilder.d.ts.map +1 -0
- package/lib/esm/common/render/GraphicDescriptionBuilder.js +31 -0
- package/lib/esm/common/render/GraphicDescriptionBuilder.js.map +1 -0
- package/lib/esm/common/render/GraphicDescriptionContext.d.ts +85 -0
- package/lib/esm/common/render/GraphicDescriptionContext.d.ts.map +1 -0
- package/lib/esm/common/render/GraphicDescriptionContext.js +19 -0
- package/lib/esm/common/render/GraphicDescriptionContext.js.map +1 -0
- package/lib/esm/common/render/GraphicPrimitive.d.ts.map +1 -0
- package/lib/esm/common/render/GraphicPrimitive.js.map +1 -0
- package/lib/esm/common/render/GraphicType.d.ts +62 -0
- package/lib/esm/common/render/GraphicType.d.ts.map +1 -0
- package/lib/esm/common/render/GraphicType.js +67 -0
- package/lib/esm/common/render/GraphicType.js.map +1 -0
- package/lib/esm/common/render/InstancedGraphicParams.d.ts.map +1 -0
- package/lib/esm/common/render/InstancedGraphicParams.js.map +1 -0
- package/lib/esm/common.d.ts +14 -0
- package/lib/esm/common.d.ts.map +1 -0
- package/lib/esm/common.js +19 -0
- package/lib/esm/common.js.map +1 -0
- package/lib/esm/core-frontend.d.ts +5 -43
- package/lib/esm/core-frontend.d.ts.map +1 -1
- package/lib/esm/core-frontend.js +5 -43
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/extension/ExtensionRuntime.js +2 -1
- package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
- package/lib/esm/internal/cross-package.d.ts +7 -0
- package/lib/esm/internal/cross-package.d.ts.map +1 -0
- package/lib/esm/internal/cross-package.js +11 -0
- package/lib/esm/internal/cross-package.js.map +1 -0
- package/lib/esm/internal/render/PrimitiveBuilder.d.ts +33 -0
- package/lib/esm/internal/render/PrimitiveBuilder.d.ts.map +1 -0
- package/lib/esm/internal/render/PrimitiveBuilder.js +136 -0
- package/lib/esm/internal/render/PrimitiveBuilder.js.map +1 -0
- package/lib/esm/render/FeatureSymbology.js +3 -3
- package/lib/esm/render/FeatureSymbology.js.map +1 -1
- package/lib/esm/render/GraphicBranch.d.ts +1 -1
- package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- package/lib/esm/render/GraphicBuilder.d.ts +7 -254
- package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
- package/lib/esm/render/GraphicBuilder.js +18 -235
- package/lib/esm/render/GraphicBuilder.js.map +1 -1
- package/lib/esm/render/MeshArgs.d.ts +56 -0
- package/lib/esm/render/MeshArgs.d.ts.map +1 -0
- package/lib/esm/{common/render/primitives/PointStringParams.js → render/MeshArgs.js} +1 -1
- package/lib/esm/render/MeshArgs.js.map +1 -0
- package/lib/esm/render/MockRender.d.ts +7 -5
- package/lib/esm/render/MockRender.d.ts.map +1 -1
- package/lib/esm/render/MockRender.js +5 -1
- package/lib/esm/render/MockRender.js.map +1 -1
- package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
- package/lib/esm/render/ParticleCollectionBuilder.js +4 -3
- package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/esm/render/PolylineArgs.d.ts +31 -0
- package/lib/esm/render/PolylineArgs.d.ts.map +1 -0
- package/lib/esm/render/PolylineArgs.js +9 -0
- package/lib/esm/render/PolylineArgs.js.map +1 -0
- package/lib/esm/render/RealityMeshParams.js +1 -1
- package/lib/esm/render/RealityMeshParams.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +36 -7
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js +96 -8
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/RenderTarget.d.ts +49 -5
- package/lib/esm/render/RenderTarget.d.ts.map +1 -1
- package/lib/esm/render/RenderTarget.js +33 -5
- package/lib/esm/render/RenderTarget.js.map +1 -1
- package/lib/esm/render/webgl/BackgroundMapDrape.js +2 -2
- package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/esm/render/webgl/CachedGeometry.d.ts +1 -1
- package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/esm/render/webgl/ColorInfo.d.ts +1 -1
- package/lib/esm/render/webgl/ColorInfo.d.ts.map +1 -1
- package/lib/esm/render/webgl/ColorInfo.js.map +1 -1
- package/lib/esm/render/webgl/EdgeGeometry.d.ts +2 -2
- package/lib/esm/render/webgl/EdgeGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.d.ts +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.js +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/esm/render/webgl/Graphic.d.ts +1 -1
- package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
- package/lib/esm/render/webgl/Graphic.js.map +1 -1
- package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
- package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.d.ts +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/esm/render/webgl/Material.d.ts +5 -1
- package/lib/esm/render/webgl/Material.d.ts.map +1 -1
- package/lib/esm/render/webgl/Material.js +5 -0
- package/lib/esm/render/webgl/Material.js.map +1 -1
- package/lib/esm/render/webgl/Mesh.d.ts +6 -3
- package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/Mesh.js +3 -1
- package/lib/esm/render/webgl/Mesh.js.map +1 -1
- package/lib/esm/render/webgl/MeshData.d.ts +2 -2
- package/lib/esm/render/webgl/MeshData.d.ts.map +1 -1
- package/lib/esm/render/webgl/MeshData.js.map +1 -1
- package/lib/esm/render/webgl/MeshGeometry.d.ts +1 -1
- package/lib/esm/render/webgl/MeshGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/PlanarClassifier.d.ts +2 -0
- package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/esm/render/webgl/PlanarClassifier.js +40 -13
- package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/esm/render/webgl/PlanarTextureProjection.d.ts +3 -3
- package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
- package/lib/esm/render/webgl/PlanarTextureProjection.js +54 -20
- package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/esm/render/webgl/PointCloud.d.ts +1 -1
- package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/esm/render/webgl/PointCloud.js.map +1 -1
- package/lib/esm/render/webgl/PointString.d.ts +1 -1
- package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
- package/lib/esm/render/webgl/PointString.js.map +1 -1
- package/lib/esm/render/webgl/Polyline.d.ts +1 -1
- package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
- package/lib/esm/render/webgl/Polyline.js.map +1 -1
- package/lib/esm/render/webgl/Primitive.d.ts +1 -1
- package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
- package/lib/esm/render/webgl/Primitive.js.map +1 -1
- package/lib/esm/render/webgl/RenderCommands.js +1 -1
- package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
- package/lib/esm/render/webgl/SolarShadowMap.js +2 -2
- package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/esm/render/webgl/SurfaceGeometry.d.ts +1 -1
- package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/SurfaceGeometry.js +1 -1
- package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/esm/render/webgl/System.d.ts +7 -6
- package/lib/esm/render/webgl/System.d.ts.map +1 -1
- package/lib/esm/render/webgl/System.js +1 -1
- package/lib/esm/render/webgl/System.js.map +1 -1
- package/lib/esm/render/webgl/Target.d.ts +3 -0
- package/lib/esm/render/webgl/Target.d.ts.map +1 -1
- package/lib/esm/render/webgl/Target.js +6 -1
- package/lib/esm/render/webgl/Target.js.map +1 -1
- package/lib/esm/render/webgl/VertexLUT.d.ts +2 -2
- package/lib/esm/render/webgl/VertexLUT.d.ts.map +1 -1
- package/lib/esm/render/webgl/VertexLUT.js.map +1 -1
- package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Animation.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/esm/tile/B3dmReader.d.ts +1 -2
- package/lib/esm/tile/B3dmReader.d.ts.map +1 -1
- package/lib/esm/tile/B3dmReader.js +1 -2
- package/lib/esm/tile/B3dmReader.js.map +1 -1
- package/lib/esm/tile/DynamicIModelTile.js +1 -0
- package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
- package/lib/esm/tile/GltfReader.d.ts +30 -6
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +245 -9
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/GraphicsCollector.d.ts.map +1 -1
- package/lib/esm/tile/GraphicsCollector.js +5 -2
- package/lib/esm/tile/GraphicsCollector.js.map +1 -1
- package/lib/esm/tile/I3dmReader.d.ts +1 -2
- package/lib/esm/tile/I3dmReader.d.ts.map +1 -1
- package/lib/esm/tile/I3dmReader.js +1 -2
- package/lib/esm/tile/I3dmReader.js.map +1 -1
- package/lib/esm/tile/ImdlDecoder.d.ts +1 -1
- package/lib/esm/tile/ImdlDecoder.d.ts.map +1 -1
- package/lib/esm/tile/ImdlDecoder.js.map +1 -1
- package/lib/esm/tile/ImdlGraphicsCreator.d.ts +4 -0
- package/lib/esm/tile/ImdlGraphicsCreator.d.ts.map +1 -1
- package/lib/esm/tile/ImdlGraphicsCreator.js +88 -6
- package/lib/esm/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/esm/tile/ImdlReader.d.ts +1 -1
- package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
- package/lib/esm/tile/ImdlReader.js.map +1 -1
- package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +1 -1
- package/lib/esm/tile/OPCFormatInterpreter.js +7 -2
- package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/esm/tile/OrbitGtTileTree.js +1 -1
- package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/esm/tile/PntsReader.js +1 -1
- package/lib/esm/tile/PntsReader.js.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.d.ts +6 -2
- package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.js +26 -1
- package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
- package/lib/esm/tile/RealityModelTileTree.js +1 -1
- package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/tile/RealityTile.d.ts +2 -3
- package/lib/esm/tile/RealityTile.d.ts.map +1 -1
- package/lib/esm/tile/RealityTile.js +0 -1
- package/lib/esm/tile/RealityTile.js.map +1 -1
- package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileLoader.js +1 -0
- package/lib/esm/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/tile/TileGeometryCollector.d.ts +4 -4
- package/lib/esm/tile/TileGeometryCollector.js +1 -1
- package/lib/esm/tile/TileGeometryCollector.js.map +1 -1
- package/lib/esm/tile/TileTreeReference.d.ts +0 -4
- package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeReference.js +0 -3
- package/lib/esm/tile/TileTreeReference.js.map +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.d.ts +1 -0
- package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.js +7 -5
- package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js +9 -4
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +3 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts +1 -1
- package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
- package/lib/esm/tile/map/MapFeatureInfo.d.ts +1 -1
- package/lib/esm/tile/map/MapFeatureInfo.d.ts.map +1 -1
- package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js +5 -5
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tools/AccuDrawTool.d.ts +21 -0
- package/lib/esm/tools/AccuDrawTool.d.ts.map +1 -1
- package/lib/esm/tools/AccuDrawTool.js +89 -0
- package/lib/esm/tools/AccuDrawTool.js.map +1 -1
- package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
- package/lib/esm/tools/ClipViewTool.js +1 -1
- package/lib/esm/tools/ClipViewTool.js.map +1 -1
- package/lib/esm/tools/ElementSetTool.d.ts +9 -5
- package/lib/esm/tools/ElementSetTool.d.ts.map +1 -1
- package/lib/esm/tools/ElementSetTool.js +9 -5
- package/lib/esm/tools/ElementSetTool.js.map +1 -1
- package/lib/esm/tools/MeasureTool.d.ts.map +1 -1
- package/lib/esm/tools/MeasureTool.js +1 -1
- package/lib/esm/tools/MeasureTool.js.map +1 -1
- package/lib/esm/tools/ToolAdmin.d.ts +2 -0
- package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/esm/tools/ToolAdmin.js +6 -1
- package/lib/esm/tools/ToolAdmin.js.map +1 -1
- package/lib/esm/tools/ViewTool.d.ts.map +1 -1
- package/lib/esm/tools/ViewTool.js +1 -1
- package/lib/esm/tools/ViewTool.js.map +1 -1
- package/lib/esm/workers/RegisterWorker.d.ts +2 -1
- package/lib/esm/workers/RegisterWorker.d.ts.map +1 -1
- package/lib/esm/workers/RegisterWorker.js +2 -1
- package/lib/esm/workers/RegisterWorker.js.map +1 -1
- package/lib/public/locales/en/CoreTools.json +15 -0
- package/lib/public/locales/en/iModelJs.json +5 -0
- package/lib/public/scripts/parse-imdl-worker.js +1 -1
- package/lib/workers/webpack/parse-imdl-worker.js +1 -1
- package/package.json +18 -18
- package/lib/cjs/common/render/AnimationNodeId.d.ts.map +0 -1
- package/lib/cjs/common/render/AnimationNodeId.js.map +0 -1
- package/lib/cjs/common/render/primitives/AuxChannelTable.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/AuxChannelTable.js.map +0 -1
- package/lib/cjs/common/render/primitives/DisplayParams.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/DisplayParams.js.map +0 -1
- package/lib/cjs/common/render/primitives/EdgeParams.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/EdgeParams.js +0 -46
- package/lib/cjs/common/render/primitives/EdgeParams.js.map +0 -1
- package/lib/cjs/common/render/primitives/MeshParams.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/MeshParams.js.map +0 -1
- package/lib/cjs/common/render/primitives/MeshPrimitive.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/MeshPrimitive.js.map +0 -1
- package/lib/cjs/common/render/primitives/PointStringParams.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/PointStringParams.js.map +0 -1
- package/lib/cjs/common/render/primitives/PolylineParams.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/PolylineParams.js.map +0 -1
- package/lib/cjs/common/render/primitives/SurfaceParams.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/SurfaceParams.js.map +0 -1
- package/lib/cjs/common/render/primitives/VertexIndices.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/VertexIndices.js.map +0 -1
- package/lib/cjs/common/render/primitives/VertexTable.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/VertexTable.js.map +0 -1
- package/lib/cjs/common/render/primitives/VertexTableSplitter.d.ts.map +0 -1
- package/lib/cjs/common/render/primitives/VertexTableSplitter.js.map +0 -1
- package/lib/cjs/render/GraphicPrimitive.d.ts.map +0 -1
- package/lib/cjs/render/GraphicPrimitive.js.map +0 -1
- package/lib/cjs/render/InstancedGraphicParams.d.ts.map +0 -1
- package/lib/cjs/render/InstancedGraphicParams.js.map +0 -1
- package/lib/cjs/render/primitives/ColorMap.d.ts.map +0 -1
- package/lib/cjs/render/primitives/ColorMap.js.map +0 -1
- package/lib/cjs/render/primitives/EdgeParams.d.ts +0 -8
- package/lib/cjs/render/primitives/EdgeParams.d.ts.map +0 -1
- package/lib/cjs/render/primitives/EdgeParams.js.map +0 -1
- package/lib/cjs/render/primitives/PointCloudPrimitive.d.ts.map +0 -1
- package/lib/cjs/render/primitives/PointCloudPrimitive.js.map +0 -1
- package/lib/cjs/render/primitives/PointStringParams.d.ts +0 -8
- package/lib/cjs/render/primitives/PointStringParams.d.ts.map +0 -1
- package/lib/cjs/render/primitives/PointStringParams.js.map +0 -1
- package/lib/cjs/render/primitives/Polyface.d.ts.map +0 -1
- package/lib/cjs/render/primitives/Polyface.js.map +0 -1
- package/lib/cjs/render/primitives/PolylineParams.d.ts +0 -15
- package/lib/cjs/render/primitives/PolylineParams.d.ts.map +0 -1
- package/lib/cjs/render/primitives/PolylineParams.js.map +0 -1
- package/lib/cjs/render/primitives/Primitives.d.ts.map +0 -1
- package/lib/cjs/render/primitives/Primitives.js.map +0 -1
- package/lib/cjs/render/primitives/Strokes.d.ts.map +0 -1
- package/lib/cjs/render/primitives/Strokes.js.map +0 -1
- package/lib/cjs/render/primitives/VertexKey.d.ts.map +0 -1
- package/lib/cjs/render/primitives/VertexKey.js.map +0 -1
- package/lib/cjs/render/primitives/VertexTableBuilder.d.ts.map +0 -1
- package/lib/cjs/render/primitives/VertexTableBuilder.js.map +0 -1
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +0 -1
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +0 -1
- package/lib/cjs/render/primitives/geometry/GeometryList.d.ts.map +0 -1
- package/lib/cjs/render/primitives/geometry/GeometryList.js.map +0 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts +0 -50
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +0 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +0 -176
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +0 -1
- package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts.map +0 -1
- package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js.map +0 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +0 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts.map +0 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +0 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +0 -171
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +0 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +0 -1
- package/lib/esm/common/render/AnimationNodeId.d.ts.map +0 -1
- package/lib/esm/common/render/AnimationNodeId.js.map +0 -1
- package/lib/esm/common/render/primitives/AuxChannelTable.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/AuxChannelTable.js.map +0 -1
- package/lib/esm/common/render/primitives/DisplayParams.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/DisplayParams.js.map +0 -1
- package/lib/esm/common/render/primitives/EdgeParams.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/EdgeParams.js +0 -42
- package/lib/esm/common/render/primitives/EdgeParams.js.map +0 -1
- package/lib/esm/common/render/primitives/MeshParams.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/MeshParams.js.map +0 -1
- package/lib/esm/common/render/primitives/MeshPrimitive.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/MeshPrimitive.js.map +0 -1
- package/lib/esm/common/render/primitives/PointStringParams.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/PointStringParams.js.map +0 -1
- package/lib/esm/common/render/primitives/PolylineParams.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/PolylineParams.js.map +0 -1
- package/lib/esm/common/render/primitives/SurfaceParams.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/SurfaceParams.js.map +0 -1
- package/lib/esm/common/render/primitives/VertexIndices.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/VertexIndices.js.map +0 -1
- package/lib/esm/common/render/primitives/VertexTable.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/VertexTable.js.map +0 -1
- package/lib/esm/common/render/primitives/VertexTableSplitter.d.ts.map +0 -1
- package/lib/esm/common/render/primitives/VertexTableSplitter.js.map +0 -1
- package/lib/esm/render/GraphicPrimitive.d.ts.map +0 -1
- package/lib/esm/render/GraphicPrimitive.js.map +0 -1
- package/lib/esm/render/InstancedGraphicParams.d.ts.map +0 -1
- package/lib/esm/render/InstancedGraphicParams.js.map +0 -1
- package/lib/esm/render/primitives/ColorMap.d.ts.map +0 -1
- package/lib/esm/render/primitives/ColorMap.js.map +0 -1
- package/lib/esm/render/primitives/EdgeParams.d.ts +0 -8
- package/lib/esm/render/primitives/EdgeParams.d.ts.map +0 -1
- package/lib/esm/render/primitives/EdgeParams.js.map +0 -1
- package/lib/esm/render/primitives/PointCloudPrimitive.d.ts.map +0 -1
- package/lib/esm/render/primitives/PointCloudPrimitive.js.map +0 -1
- package/lib/esm/render/primitives/PointStringParams.d.ts +0 -8
- package/lib/esm/render/primitives/PointStringParams.d.ts.map +0 -1
- package/lib/esm/render/primitives/PointStringParams.js.map +0 -1
- package/lib/esm/render/primitives/Polyface.d.ts.map +0 -1
- package/lib/esm/render/primitives/Polyface.js.map +0 -1
- package/lib/esm/render/primitives/PolylineParams.d.ts +0 -15
- package/lib/esm/render/primitives/PolylineParams.d.ts.map +0 -1
- package/lib/esm/render/primitives/PolylineParams.js.map +0 -1
- package/lib/esm/render/primitives/Primitives.d.ts.map +0 -1
- package/lib/esm/render/primitives/Primitives.js.map +0 -1
- package/lib/esm/render/primitives/Strokes.d.ts.map +0 -1
- package/lib/esm/render/primitives/Strokes.js.map +0 -1
- package/lib/esm/render/primitives/VertexKey.d.ts.map +0 -1
- package/lib/esm/render/primitives/VertexKey.js.map +0 -1
- package/lib/esm/render/primitives/VertexTableBuilder.d.ts.map +0 -1
- package/lib/esm/render/primitives/VertexTableBuilder.js.map +0 -1
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +0 -1
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +0 -1
- package/lib/esm/render/primitives/geometry/GeometryList.d.ts.map +0 -1
- package/lib/esm/render/primitives/geometry/GeometryList.js.map +0 -1
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts +0 -50
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +0 -1
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +0 -171
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +0 -1
- package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts.map +0 -1
- package/lib/esm/render/primitives/geometry/GeometryPrimitives.js.map +0 -1
- package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +0 -1
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts.map +0 -1
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +0 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +0 -171
- package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +0 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +0 -1
- /package/lib/cjs/common/{render → internal/render}/AnimationNodeId.d.ts +0 -0
- /package/lib/cjs/common/{render → internal/render}/AnimationNodeId.js +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/AuxChannelTable.d.ts +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/AuxChannelTable.js +0 -0
- /package/lib/cjs/{render/primitives → common/internal/render}/ColorMap.d.ts +0 -0
- /package/lib/cjs/{render/primitives → common/internal/render}/ColorMap.js +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/DisplayParams.d.ts +0 -0
- /package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryList.d.ts +0 -0
- /package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryList.js +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/MeshParams.d.ts +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/MeshParams.js +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/MeshPrimitive.d.ts +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/MeshPrimitive.js +0 -0
- /package/lib/cjs/{render/primitives → common/internal/render}/PointCloudPrimitive.d.ts +0 -0
- /package/lib/cjs/{render/primitives → common/internal/render}/PointCloudPrimitive.js +0 -0
- /package/lib/cjs/{render/primitives → common/internal/render}/Polyface.js +0 -0
- /package/lib/cjs/{render/primitives → common/internal/render}/Strokes.js +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/SurfaceParams.d.ts +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/SurfaceParams.js +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/VertexIndices.d.ts +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/VertexIndices.js +0 -0
- /package/lib/cjs/{render/primitives → common/internal/render}/VertexKey.d.ts +0 -0
- /package/lib/cjs/{render/primitives → common/internal/render}/VertexKey.js +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/VertexTable.d.ts +0 -0
- /package/lib/cjs/common/{render/primitives → internal/render}/VertexTable.js +0 -0
- /package/lib/cjs/{render → common/render}/GraphicPrimitive.d.ts +0 -0
- /package/lib/cjs/{render → common/render}/GraphicPrimitive.js +0 -0
- /package/lib/cjs/{render → common/render}/InstancedGraphicParams.d.ts +0 -0
- /package/lib/cjs/{render → common/render}/InstancedGraphicParams.js +0 -0
- /package/lib/esm/common/{render → internal/render}/AnimationNodeId.d.ts +0 -0
- /package/lib/esm/common/{render → internal/render}/AnimationNodeId.js +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/AuxChannelTable.d.ts +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/AuxChannelTable.js +0 -0
- /package/lib/esm/{render/primitives → common/internal/render}/ColorMap.d.ts +0 -0
- /package/lib/esm/{render/primitives → common/internal/render}/ColorMap.js +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/DisplayParams.d.ts +0 -0
- /package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryList.d.ts +0 -0
- /package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryList.js +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/MeshParams.d.ts +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/MeshParams.js +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/MeshPrimitive.d.ts +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/MeshPrimitive.js +0 -0
- /package/lib/esm/{render/primitives → common/internal/render}/PointCloudPrimitive.d.ts +0 -0
- /package/lib/esm/{render/primitives → common/internal/render}/PointCloudPrimitive.js +0 -0
- /package/lib/esm/{render/primitives → common/internal/render}/Polyface.js +0 -0
- /package/lib/esm/{render/primitives → common/internal/render}/Strokes.js +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/SurfaceParams.d.ts +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/SurfaceParams.js +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/VertexIndices.d.ts +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/VertexIndices.js +0 -0
- /package/lib/esm/{render/primitives → common/internal/render}/VertexKey.d.ts +0 -0
- /package/lib/esm/{render/primitives → common/internal/render}/VertexKey.js +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/VertexTable.d.ts +0 -0
- /package/lib/esm/common/{render/primitives → internal/render}/VertexTable.js +0 -0
- /package/lib/esm/{render → common/render}/GraphicPrimitive.d.ts +0 -0
- /package/lib/esm/{render → common/render}/GraphicPrimitive.js +0 -0
- /package/lib/esm/{render → common/render}/InstancedGraphicParams.d.ts +0 -0
- /package/lib/esm/{render → common/render}/InstancedGraphicParams.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstancedGeometry.js","sourceRoot":"","sources":["../../../../src/render/webgl/InstancedGeometry.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, dispose } from \"@itwin/core-bentley\";\r\nimport { Point3d, Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport { InstancedGraphicParams, PatternGraphicParams } from \"../InstancedGraphicParams\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { AttributeMap } from \"./AttributeMap\";\r\nimport { CachedGeometry, LUTGeometry } from \"./CachedGeometry\";\r\nimport { ShaderProgramParams } from \"./DrawCommand\";\r\nimport { GL } from \"./GL\";\r\nimport { BufferHandle, BufferParameters, BuffersContainer } from \"./AttributeBuffers\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\nimport { Matrix4 } from \"./Matrix\";\r\n\r\n/** @internal */\r\nexport function isInstancedGraphicParams(params: any): params is InstancedGraphicParams {\r\n return typeof params === \"object\" && typeof params.count === \"number\" && params.transforms instanceof Float32Array && params.transformCenter instanceof Point3d;\r\n}\r\n\r\nclass InstanceData {\r\n public readonly numInstances: number;\r\n public readonly range: Range3d;\r\n // A transform including only rtcCenter.\r\n private readonly _rtcOnlyTransform: Transform;\r\n // A transform from _rtcCenter including model matrix\r\n private readonly _rtcModelTransform: Transform;\r\n // The model matrix from which _rtcModelTransform was previously computed. If it changes, _rtcModelTransform must be recomputed.\r\n private readonly _modelMatrix = Transform.createIdentity();\r\n\r\n protected constructor(numInstances: number, rtcCenter: Point3d, range: Range3d) {\r\n this.numInstances = numInstances;\r\n this.range = range;\r\n this._rtcOnlyTransform = Transform.createTranslation(rtcCenter);\r\n this._rtcModelTransform = this._rtcOnlyTransform.clone();\r\n }\r\n\r\n public getRtcModelTransform(modelMatrix: Transform): Transform {\r\n if (!this._modelMatrix.isAlmostEqual(modelMatrix)) {\r\n modelMatrix.clone(this._modelMatrix);\r\n modelMatrix.multiplyTransformTransform(this._rtcOnlyTransform, this._rtcModelTransform);\r\n }\r\n\r\n return this._rtcModelTransform;\r\n }\r\n\r\n public getRtcOnlyTransform(): Transform {\r\n return this._rtcOnlyTransform;\r\n }\r\n\r\n private static readonly _noFeatureId = new Float32Array([0, 0, 0]);\r\n public get patternFeatureId(): Float32Array {\r\n return InstanceData._noFeatureId;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport interface PatternTransforms {\r\n readonly orgTransform: Matrix4;\r\n readonly localToModel: Matrix4;\r\n readonly symbolToLocal: Matrix4;\r\n readonly origin: Float32Array;\r\n}\r\n\r\n/** @internal */\r\nexport class InstanceBuffers extends InstanceData {\r\n private static readonly _patternParams = new Float32Array([0, 0, 0, 0]);\r\n\r\n public readonly transforms: BufferHandle;\r\n public readonly featureIds?: BufferHandle;\r\n public readonly hasFeatures: boolean;\r\n public readonly symbology?: BufferHandle;\r\n public readonly patternParams = InstanceBuffers._patternParams;\r\n public readonly patternTransforms = undefined;\r\n public readonly viewIndependentOrigin = undefined;\r\n\r\n private constructor(count: number, transforms: BufferHandle, rtcCenter: Point3d, range: Range3d, symbology?: BufferHandle, featureIds?: BufferHandle) {\r\n super(count, rtcCenter, range);\r\n this.transforms = transforms;\r\n this.featureIds = featureIds;\r\n this.hasFeatures = undefined !== featureIds;\r\n this.symbology = symbology;\r\n }\r\n\r\n public static createTransformBufferParameters(techniqueId: TechniqueId): BufferParameters[] {\r\n const params: BufferParameters[] = [];\r\n const numRows = 3;\r\n let row = 0;\r\n while (row < numRows) {\r\n // 3 rows per instance; 4 floats per row; 4 bytes per float.\r\n const floatsPerRow = 4;\r\n const bytesPerVertex = floatsPerRow * 4;\r\n const offset = row * bytesPerVertex;\r\n const stride = 3 * bytesPerVertex;\r\n const name = `a_instanceMatrixRow${row}`;\r\n const details = AttributeMap.findAttribute(name, techniqueId, true);\r\n assert(details !== undefined);\r\n const bParams: BufferParameters = {\r\n glAttribLoc: details.location,\r\n glSize: floatsPerRow,\r\n glType: GL.DataType.Float,\r\n glNormalized: false,\r\n glStride: stride,\r\n glOffset: offset,\r\n glInstanced: true,\r\n };\r\n params.push(bParams);\r\n row++;\r\n }\r\n return params;\r\n }\r\n\r\n public static create(params: InstancedGraphicParams, range: Range3d): InstanceBuffers | undefined {\r\n const { count, featureIds, symbologyOverrides, transforms } = params;\r\n\r\n assert(count > 0 && Math.floor(count) === count);\r\n assert(count === transforms.length / 12);\r\n assert(undefined === featureIds || count === featureIds.length / 3);\r\n assert(undefined === symbologyOverrides || count * 8 === symbologyOverrides.length);\r\n\r\n let idBuf: BufferHandle | undefined;\r\n if (undefined !== featureIds && undefined === (idBuf = BufferHandle.createArrayBuffer(featureIds)))\r\n return undefined;\r\n\r\n let symBuf: BufferHandle | undefined;\r\n if (undefined !== symbologyOverrides && undefined === (symBuf = BufferHandle.createArrayBuffer(symbologyOverrides)))\r\n return undefined;\r\n\r\n const tfBuf = BufferHandle.createArrayBuffer(transforms);\r\n return undefined !== tfBuf ? new InstanceBuffers(count, tfBuf, params.transformCenter, range, symBuf, idBuf) : undefined;\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return this.transforms.isDisposed\r\n && (undefined === this.featureIds || this.featureIds.isDisposed)\r\n && (undefined === this.symbology || this.symbology.isDisposed);\r\n }\r\n\r\n public dispose() {\r\n dispose(this.transforms);\r\n dispose(this.featureIds);\r\n dispose(this.symbology);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n const featureBytes = undefined !== this.featureIds ? this.featureIds.bytesUsed : 0;\r\n const symBytes = undefined !== this.symbology ? this.symbology.bytesUsed : 0;\r\n\r\n const bytesUsed = this.transforms.bytesUsed + symBytes + featureBytes;\r\n stats.addInstances(bytesUsed);\r\n }\r\n\r\n private static extendTransformedRange(tfs: Float32Array, i: number, range: Range3d, x: number, y: number, z: number) {\r\n range.extendXYZ(tfs[i + 3] + tfs[i + 0] * x + tfs[i + 1] * y + tfs[i + 2] * z,\r\n tfs[i + 7] + tfs[i + 4] * x + tfs[i + 5] * y + tfs[i + 6] * z,\r\n tfs[i + 11] + tfs[i + 8] * x + tfs[i + 9] * y + tfs[i + 10] * z);\r\n }\r\n\r\n public static computeRange(reprRange: Range3d, tfs: Float32Array, rtcCenter: Point3d, out?: Range3d): Range3d {\r\n const range = out ?? new Range3d();\r\n\r\n const numFloatsPerTransform = 3 * 4;\r\n assert(0 === tfs.length % (3 * 4));\r\n\r\n for (let i = 0; i < tfs.length; i += numFloatsPerTransform) {\r\n this.extendTransformedRange(tfs, i, range, reprRange.low.x, reprRange.low.y, reprRange.low.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.low.x, reprRange.low.y, reprRange.high.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.low.x, reprRange.high.y, reprRange.low.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.low.x, reprRange.high.y, reprRange.high.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.high.x, reprRange.low.y, reprRange.low.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.high.x, reprRange.low.y, reprRange.high.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.high.x, reprRange.high.y, reprRange.low.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.high.x, reprRange.high.y, reprRange.high.z);\r\n }\r\n\r\n range.low.addInPlace(rtcCenter);\r\n range.high.addInPlace(rtcCenter);\r\n\r\n return range.clone(out);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PatternBuffers extends InstanceData {\r\n private readonly _featureId?: Float32Array;\r\n\r\n private constructor(\r\n count: number,\r\n rtcCenter: Point3d,\r\n range: Range3d,\r\n public readonly patternParams: Float32Array, // [ isAreaPattern, spacingX, spacingY, scale ]\r\n public readonly origin: Float32Array, // [ x, y ]\r\n public readonly orgTransform: Matrix4,\r\n public readonly localToModel: Matrix4,\r\n public readonly symbolToLocal: Matrix4,\r\n public readonly offsets: BufferHandle,\r\n featureId: number | undefined,\r\n public readonly viewIndependentOrigin: Point3d | undefined,\r\n ) {\r\n super(count, rtcCenter, range);\r\n this.patternTransforms = this;\r\n if (undefined !== featureId) {\r\n this._featureId = new Float32Array([\r\n (featureId & 0x0000ff) >>> 0,\r\n (featureId & 0x00ff00) >>> 8,\r\n (featureId & 0xff0000) >>> 16,\r\n ]);\r\n }\r\n }\r\n\r\n public static create(params: PatternGraphicParams): PatternBuffers | undefined {\r\n const count = params.xyOffsets.byteLength / 2;\r\n assert(Math.floor(count) === count);\r\n\r\n const offsets = BufferHandle.createArrayBuffer(params.xyOffsets);\r\n if (!offsets)\r\n return undefined;\r\n\r\n return new PatternBuffers(\r\n count,\r\n new Point3d(),\r\n params.range,\r\n new Float32Array([1, params.spacing.x, params.spacing.y, params.scale]),\r\n new Float32Array([params.origin.x, params.origin.y]),\r\n Matrix4.fromTransform(params.orgTransform),\r\n Matrix4.fromTransform(params.patternToModel),\r\n Matrix4.fromTransform(Transform.createTranslation(params.symbolTranslation)),\r\n offsets,\r\n params.featureId,\r\n params.viewIndependentOrigin,\r\n );\r\n }\r\n\r\n public readonly patternTransforms: PatternTransforms;\r\n\r\n public get hasFeatures(): boolean {\r\n return undefined !== this._featureId;\r\n }\r\n\r\n public override get patternFeatureId(): Float32Array {\r\n return this._featureId ?? super.patternFeatureId;\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return this.offsets.isDisposed;\r\n }\r\n\r\n public dispose(): void {\r\n dispose(this.offsets);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n stats.addInstances(this.offsets.bytesUsed);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class InstancedGeometry extends CachedGeometry {\r\n private readonly _buffersContainer: BuffersContainer;\r\n private readonly _buffers: InstanceBuffers | PatternBuffers;\r\n private readonly _repr: LUTGeometry;\r\n private readonly _ownsBuffers: boolean;\r\n\r\n public getRtcModelTransform(modelMatrix: Transform) { return this._buffers.getRtcModelTransform(modelMatrix); }\r\n public getRtcOnlyTransform() { return this._buffers.getRtcOnlyTransform(); }\r\n\r\n public override get viewIndependentOrigin(): Point3d | undefined { return this._buffers.viewIndependentOrigin; }\r\n\r\n public override get asInstanced() { return this; }\r\n public override get asLUT() { return this._repr.asLUT; }\r\n public override get asMesh() { return this._repr.asMesh; }\r\n public override get asSurface() { return this._repr.asSurface; }\r\n public override get asEdge() { return this._repr.asEdge; }\r\n public override get asSilhouette() { return this._repr.asSilhouette; }\r\n public override get asIndexedEdge() { return this._repr.asIndexedEdge; }\r\n\r\n public get renderOrder() { return this._repr.renderOrder; }\r\n public override get isLitSurface() { return this._repr.isLitSurface; }\r\n public override get hasBakedLighting() { return this._repr.hasBakedLighting; }\r\n public override get hasAnimation() { return this._repr.hasAnimation; }\r\n public override get usesQuantizedPositions() { return this._repr.usesQuantizedPositions; }\r\n public get qOrigin() { return this._repr.qOrigin; }\r\n public get qScale() { return this._repr.qScale; }\r\n public override get materialInfo() { return this._repr.materialInfo; }\r\n public override get polylineBuffers() { return this._repr.polylineBuffers; }\r\n public override get isEdge() { return this._repr.isEdge; }\r\n public override get hasFeatures() { return this._buffers.hasFeatures; }\r\n public get techniqueId(): TechniqueId { return this._repr.techniqueId; }\r\n public override get supportsThematicDisplay() { return this._repr.supportsThematicDisplay; }\r\n\r\n public override getPass(target: Target) { return this._repr.getPass(target); }\r\n public override wantWoWReversal(params: ShaderProgramParams) { return this._repr.wantWoWReversal(params); }\r\n public override getLineCode(params: ShaderProgramParams) { return this._repr.getLineCode(params); }\r\n public override getLineWeight(params: ShaderProgramParams) { return this._repr.getLineWeight(params); }\r\n public override wantMonochrome(target: Target) { return this._repr.wantMonochrome(target); }\r\n public override wantMixMonochromeColor(target: Target): boolean { return this._repr.wantMixMonochromeColor(target); }\r\n\r\n public static create(repr: LUTGeometry, ownsBuffers: boolean, buffers: InstanceBuffers): InstancedGeometry {\r\n const techId = repr.techniqueId;\r\n const container = BuffersContainer.create();\r\n container.appendLinkages(repr.lutBuffers.linkages);\r\n\r\n container.addBuffer(buffers.transforms, InstanceBuffers.createTransformBufferParameters(repr.techniqueId));\r\n\r\n if (buffers.symbology) {\r\n const attrInstanceOverrides = AttributeMap.findAttribute(\"a_instanceOverrides\", techId, true);\r\n const attrInstanceRgba = AttributeMap.findAttribute(\"a_instanceRgba\", techId, true);\r\n assert(attrInstanceOverrides !== undefined);\r\n assert(attrInstanceRgba !== undefined);\r\n container.addBuffer(buffers.symbology, [\r\n BufferParameters.create(attrInstanceOverrides.location, 4, GL.DataType.UnsignedByte, false, 8, 0, true),\r\n BufferParameters.create(attrInstanceRgba.location, 4, GL.DataType.UnsignedByte, false, 8, 4, true),\r\n ]);\r\n }\r\n if (buffers.featureIds) {\r\n const attrFeatureId = AttributeMap.findAttribute(\"a_featureId\", techId, true);\r\n assert(attrFeatureId !== undefined);\r\n container.addBuffer(buffers.featureIds, [BufferParameters.create(attrFeatureId.location, 3, GL.DataType.UnsignedByte, false, 0, 0, true)]);\r\n }\r\n\r\n return new this(repr, ownsBuffers, buffers, container);\r\n }\r\n\r\n public static createPattern(repr: LUTGeometry, ownsBuffers: boolean, buffers: PatternBuffers): InstancedGeometry {\r\n const techId = repr.techniqueId;\r\n const container = BuffersContainer.create();\r\n container.appendLinkages(repr.lutBuffers.linkages);\r\n\r\n const attrX = AttributeMap.findAttribute(\"a_patternX\", techId, true);\r\n const attrY = AttributeMap.findAttribute(\"a_patternY\", techId, true);\r\n assert(undefined !== attrX && undefined !== attrY);\r\n container.addBuffer(buffers.offsets, [\r\n BufferParameters.create(attrX.location, 1, GL.DataType.Float, false, 8, 0, true),\r\n BufferParameters.create(attrY.location, 1, GL.DataType.Float, false, 8, 4, true),\r\n ]);\r\n\r\n return new this(repr, ownsBuffers, buffers, container);\r\n }\r\n\r\n private constructor(repr: LUTGeometry, ownsBuffers: boolean, buffers: InstanceBuffers | PatternBuffers, container: BuffersContainer) {\r\n super();\r\n this._repr = repr;\r\n this._ownsBuffers = ownsBuffers;\r\n this._buffers = buffers;\r\n this._buffersContainer = container;\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n if (!this._repr.isDisposed)\r\n return false;\r\n\r\n return !this._ownsBuffers || this._buffers.isDisposed;\r\n }\r\n\r\n public dispose() {\r\n this._repr.dispose();\r\n if (this._ownsBuffers)\r\n dispose(this._buffers);\r\n }\r\n\r\n protected _wantWoWReversal(_target: Target) {\r\n assert(false, \"Should never be called\");\r\n return false;\r\n }\r\n\r\n public draw() {\r\n this._repr.drawInstanced(this._buffers.numInstances, this._buffersContainer);\r\n }\r\n\r\n public override computeRange(output?: Range3d): Range3d {\r\n return this._buffers.range.clone(output);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics) {\r\n this._repr.collectStatistics(stats);\r\n if (this._ownsBuffers)\r\n this._buffers.collectStatistics(stats);\r\n }\r\n\r\n public get patternParams(): Float32Array { return this._buffers.patternParams; }\r\n public get patternTransforms(): PatternTransforms | undefined { return this._buffers.patternTransforms; }\r\n public get patternFeatureId(): Float32Array { return this._buffers.patternFeatureId; }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"InstancedGeometry.js","sourceRoot":"","sources":["../../../../src/render/webgl/InstancedGeometry.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, dispose } from \"@itwin/core-bentley\";\r\nimport { Point3d, Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport { InstancedGraphicParams, PatternGraphicParams } from \"../../common/render/InstancedGraphicParams\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { AttributeMap } from \"./AttributeMap\";\r\nimport { CachedGeometry, LUTGeometry } from \"./CachedGeometry\";\r\nimport { ShaderProgramParams } from \"./DrawCommand\";\r\nimport { GL } from \"./GL\";\r\nimport { BufferHandle, BufferParameters, BuffersContainer } from \"./AttributeBuffers\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\nimport { Matrix4 } from \"./Matrix\";\r\n\r\n/** @internal */\r\nexport function isInstancedGraphicParams(params: any): params is InstancedGraphicParams {\r\n return typeof params === \"object\" && typeof params.count === \"number\" && params.transforms instanceof Float32Array && params.transformCenter instanceof Point3d;\r\n}\r\n\r\nclass InstanceData {\r\n public readonly numInstances: number;\r\n public readonly range: Range3d;\r\n // A transform including only rtcCenter.\r\n private readonly _rtcOnlyTransform: Transform;\r\n // A transform from _rtcCenter including model matrix\r\n private readonly _rtcModelTransform: Transform;\r\n // The model matrix from which _rtcModelTransform was previously computed. If it changes, _rtcModelTransform must be recomputed.\r\n private readonly _modelMatrix = Transform.createIdentity();\r\n\r\n protected constructor(numInstances: number, rtcCenter: Point3d, range: Range3d) {\r\n this.numInstances = numInstances;\r\n this.range = range;\r\n this._rtcOnlyTransform = Transform.createTranslation(rtcCenter);\r\n this._rtcModelTransform = this._rtcOnlyTransform.clone();\r\n }\r\n\r\n public getRtcModelTransform(modelMatrix: Transform): Transform {\r\n if (!this._modelMatrix.isAlmostEqual(modelMatrix)) {\r\n modelMatrix.clone(this._modelMatrix);\r\n modelMatrix.multiplyTransformTransform(this._rtcOnlyTransform, this._rtcModelTransform);\r\n }\r\n\r\n return this._rtcModelTransform;\r\n }\r\n\r\n public getRtcOnlyTransform(): Transform {\r\n return this._rtcOnlyTransform;\r\n }\r\n\r\n private static readonly _noFeatureId = new Float32Array([0, 0, 0]);\r\n public get patternFeatureId(): Float32Array {\r\n return InstanceData._noFeatureId;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport interface PatternTransforms {\r\n readonly orgTransform: Matrix4;\r\n readonly localToModel: Matrix4;\r\n readonly symbolToLocal: Matrix4;\r\n readonly origin: Float32Array;\r\n}\r\n\r\n/** @internal */\r\nexport class InstanceBuffers extends InstanceData {\r\n private static readonly _patternParams = new Float32Array([0, 0, 0, 0]);\r\n\r\n public readonly transforms: BufferHandle;\r\n public readonly featureIds?: BufferHandle;\r\n public readonly hasFeatures: boolean;\r\n public readonly symbology?: BufferHandle;\r\n public readonly patternParams = InstanceBuffers._patternParams;\r\n public readonly patternTransforms = undefined;\r\n public readonly viewIndependentOrigin = undefined;\r\n\r\n private constructor(count: number, transforms: BufferHandle, rtcCenter: Point3d, range: Range3d, symbology?: BufferHandle, featureIds?: BufferHandle) {\r\n super(count, rtcCenter, range);\r\n this.transforms = transforms;\r\n this.featureIds = featureIds;\r\n this.hasFeatures = undefined !== featureIds;\r\n this.symbology = symbology;\r\n }\r\n\r\n public static createTransformBufferParameters(techniqueId: TechniqueId): BufferParameters[] {\r\n const params: BufferParameters[] = [];\r\n const numRows = 3;\r\n let row = 0;\r\n while (row < numRows) {\r\n // 3 rows per instance; 4 floats per row; 4 bytes per float.\r\n const floatsPerRow = 4;\r\n const bytesPerVertex = floatsPerRow * 4;\r\n const offset = row * bytesPerVertex;\r\n const stride = 3 * bytesPerVertex;\r\n const name = `a_instanceMatrixRow${row}`;\r\n const details = AttributeMap.findAttribute(name, techniqueId, true);\r\n assert(details !== undefined);\r\n const bParams: BufferParameters = {\r\n glAttribLoc: details.location,\r\n glSize: floatsPerRow,\r\n glType: GL.DataType.Float,\r\n glNormalized: false,\r\n glStride: stride,\r\n glOffset: offset,\r\n glInstanced: true,\r\n };\r\n params.push(bParams);\r\n row++;\r\n }\r\n return params;\r\n }\r\n\r\n public static create(params: InstancedGraphicParams, range: Range3d): InstanceBuffers | undefined {\r\n const { count, featureIds, symbologyOverrides, transforms } = params;\r\n\r\n assert(count > 0 && Math.floor(count) === count);\r\n assert(count === transforms.length / 12);\r\n assert(undefined === featureIds || count === featureIds.length / 3);\r\n assert(undefined === symbologyOverrides || count * 8 === symbologyOverrides.length);\r\n\r\n let idBuf: BufferHandle | undefined;\r\n if (undefined !== featureIds && undefined === (idBuf = BufferHandle.createArrayBuffer(featureIds)))\r\n return undefined;\r\n\r\n let symBuf: BufferHandle | undefined;\r\n if (undefined !== symbologyOverrides && undefined === (symBuf = BufferHandle.createArrayBuffer(symbologyOverrides)))\r\n return undefined;\r\n\r\n const tfBuf = BufferHandle.createArrayBuffer(transforms);\r\n return undefined !== tfBuf ? new InstanceBuffers(count, tfBuf, params.transformCenter, range, symBuf, idBuf) : undefined;\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return this.transforms.isDisposed\r\n && (undefined === this.featureIds || this.featureIds.isDisposed)\r\n && (undefined === this.symbology || this.symbology.isDisposed);\r\n }\r\n\r\n public dispose() {\r\n dispose(this.transforms);\r\n dispose(this.featureIds);\r\n dispose(this.symbology);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n const featureBytes = undefined !== this.featureIds ? this.featureIds.bytesUsed : 0;\r\n const symBytes = undefined !== this.symbology ? this.symbology.bytesUsed : 0;\r\n\r\n const bytesUsed = this.transforms.bytesUsed + symBytes + featureBytes;\r\n stats.addInstances(bytesUsed);\r\n }\r\n\r\n private static extendTransformedRange(tfs: Float32Array, i: number, range: Range3d, x: number, y: number, z: number) {\r\n range.extendXYZ(tfs[i + 3] + tfs[i + 0] * x + tfs[i + 1] * y + tfs[i + 2] * z,\r\n tfs[i + 7] + tfs[i + 4] * x + tfs[i + 5] * y + tfs[i + 6] * z,\r\n tfs[i + 11] + tfs[i + 8] * x + tfs[i + 9] * y + tfs[i + 10] * z);\r\n }\r\n\r\n public static computeRange(reprRange: Range3d, tfs: Float32Array, rtcCenter: Point3d, out?: Range3d): Range3d {\r\n const range = out ?? new Range3d();\r\n\r\n const numFloatsPerTransform = 3 * 4;\r\n assert(0 === tfs.length % (3 * 4));\r\n\r\n for (let i = 0; i < tfs.length; i += numFloatsPerTransform) {\r\n this.extendTransformedRange(tfs, i, range, reprRange.low.x, reprRange.low.y, reprRange.low.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.low.x, reprRange.low.y, reprRange.high.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.low.x, reprRange.high.y, reprRange.low.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.low.x, reprRange.high.y, reprRange.high.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.high.x, reprRange.low.y, reprRange.low.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.high.x, reprRange.low.y, reprRange.high.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.high.x, reprRange.high.y, reprRange.low.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.high.x, reprRange.high.y, reprRange.high.z);\r\n }\r\n\r\n range.low.addInPlace(rtcCenter);\r\n range.high.addInPlace(rtcCenter);\r\n\r\n return range.clone(out);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PatternBuffers extends InstanceData {\r\n private readonly _featureId?: Float32Array;\r\n\r\n private constructor(\r\n count: number,\r\n rtcCenter: Point3d,\r\n range: Range3d,\r\n public readonly patternParams: Float32Array, // [ isAreaPattern, spacingX, spacingY, scale ]\r\n public readonly origin: Float32Array, // [ x, y ]\r\n public readonly orgTransform: Matrix4,\r\n public readonly localToModel: Matrix4,\r\n public readonly symbolToLocal: Matrix4,\r\n public readonly offsets: BufferHandle,\r\n featureId: number | undefined,\r\n public readonly viewIndependentOrigin: Point3d | undefined,\r\n ) {\r\n super(count, rtcCenter, range);\r\n this.patternTransforms = this;\r\n if (undefined !== featureId) {\r\n this._featureId = new Float32Array([\r\n (featureId & 0x0000ff) >>> 0,\r\n (featureId & 0x00ff00) >>> 8,\r\n (featureId & 0xff0000) >>> 16,\r\n ]);\r\n }\r\n }\r\n\r\n public static create(params: PatternGraphicParams): PatternBuffers | undefined {\r\n const count = params.xyOffsets.byteLength / 2;\r\n assert(Math.floor(count) === count);\r\n\r\n const offsets = BufferHandle.createArrayBuffer(params.xyOffsets);\r\n if (!offsets)\r\n return undefined;\r\n\r\n return new PatternBuffers(\r\n count,\r\n new Point3d(),\r\n params.range,\r\n new Float32Array([1, params.spacing.x, params.spacing.y, params.scale]),\r\n new Float32Array([params.origin.x, params.origin.y]),\r\n Matrix4.fromTransform(params.orgTransform),\r\n Matrix4.fromTransform(params.patternToModel),\r\n Matrix4.fromTransform(Transform.createTranslation(params.symbolTranslation)),\r\n offsets,\r\n params.featureId,\r\n params.viewIndependentOrigin,\r\n );\r\n }\r\n\r\n public readonly patternTransforms: PatternTransforms;\r\n\r\n public get hasFeatures(): boolean {\r\n return undefined !== this._featureId;\r\n }\r\n\r\n public override get patternFeatureId(): Float32Array {\r\n return this._featureId ?? super.patternFeatureId;\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return this.offsets.isDisposed;\r\n }\r\n\r\n public dispose(): void {\r\n dispose(this.offsets);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n stats.addInstances(this.offsets.bytesUsed);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class InstancedGeometry extends CachedGeometry {\r\n private readonly _buffersContainer: BuffersContainer;\r\n private readonly _buffers: InstanceBuffers | PatternBuffers;\r\n private readonly _repr: LUTGeometry;\r\n private readonly _ownsBuffers: boolean;\r\n\r\n public getRtcModelTransform(modelMatrix: Transform) { return this._buffers.getRtcModelTransform(modelMatrix); }\r\n public getRtcOnlyTransform() { return this._buffers.getRtcOnlyTransform(); }\r\n\r\n public override get viewIndependentOrigin(): Point3d | undefined { return this._buffers.viewIndependentOrigin; }\r\n\r\n public override get asInstanced() { return this; }\r\n public override get asLUT() { return this._repr.asLUT; }\r\n public override get asMesh() { return this._repr.asMesh; }\r\n public override get asSurface() { return this._repr.asSurface; }\r\n public override get asEdge() { return this._repr.asEdge; }\r\n public override get asSilhouette() { return this._repr.asSilhouette; }\r\n public override get asIndexedEdge() { return this._repr.asIndexedEdge; }\r\n\r\n public get renderOrder() { return this._repr.renderOrder; }\r\n public override get isLitSurface() { return this._repr.isLitSurface; }\r\n public override get hasBakedLighting() { return this._repr.hasBakedLighting; }\r\n public override get hasAnimation() { return this._repr.hasAnimation; }\r\n public override get usesQuantizedPositions() { return this._repr.usesQuantizedPositions; }\r\n public get qOrigin() { return this._repr.qOrigin; }\r\n public get qScale() { return this._repr.qScale; }\r\n public override get materialInfo() { return this._repr.materialInfo; }\r\n public override get polylineBuffers() { return this._repr.polylineBuffers; }\r\n public override get isEdge() { return this._repr.isEdge; }\r\n public override get hasFeatures() { return this._buffers.hasFeatures; }\r\n public get techniqueId(): TechniqueId { return this._repr.techniqueId; }\r\n public override get supportsThematicDisplay() { return this._repr.supportsThematicDisplay; }\r\n\r\n public override getPass(target: Target) { return this._repr.getPass(target); }\r\n public override wantWoWReversal(params: ShaderProgramParams) { return this._repr.wantWoWReversal(params); }\r\n public override getLineCode(params: ShaderProgramParams) { return this._repr.getLineCode(params); }\r\n public override getLineWeight(params: ShaderProgramParams) { return this._repr.getLineWeight(params); }\r\n public override wantMonochrome(target: Target) { return this._repr.wantMonochrome(target); }\r\n public override wantMixMonochromeColor(target: Target): boolean { return this._repr.wantMixMonochromeColor(target); }\r\n\r\n public static create(repr: LUTGeometry, ownsBuffers: boolean, buffers: InstanceBuffers): InstancedGeometry {\r\n const techId = repr.techniqueId;\r\n const container = BuffersContainer.create();\r\n container.appendLinkages(repr.lutBuffers.linkages);\r\n\r\n container.addBuffer(buffers.transforms, InstanceBuffers.createTransformBufferParameters(repr.techniqueId));\r\n\r\n if (buffers.symbology) {\r\n const attrInstanceOverrides = AttributeMap.findAttribute(\"a_instanceOverrides\", techId, true);\r\n const attrInstanceRgba = AttributeMap.findAttribute(\"a_instanceRgba\", techId, true);\r\n assert(attrInstanceOverrides !== undefined);\r\n assert(attrInstanceRgba !== undefined);\r\n container.addBuffer(buffers.symbology, [\r\n BufferParameters.create(attrInstanceOverrides.location, 4, GL.DataType.UnsignedByte, false, 8, 0, true),\r\n BufferParameters.create(attrInstanceRgba.location, 4, GL.DataType.UnsignedByte, false, 8, 4, true),\r\n ]);\r\n }\r\n if (buffers.featureIds) {\r\n const attrFeatureId = AttributeMap.findAttribute(\"a_featureId\", techId, true);\r\n assert(attrFeatureId !== undefined);\r\n container.addBuffer(buffers.featureIds, [BufferParameters.create(attrFeatureId.location, 3, GL.DataType.UnsignedByte, false, 0, 0, true)]);\r\n }\r\n\r\n return new this(repr, ownsBuffers, buffers, container);\r\n }\r\n\r\n public static createPattern(repr: LUTGeometry, ownsBuffers: boolean, buffers: PatternBuffers): InstancedGeometry {\r\n const techId = repr.techniqueId;\r\n const container = BuffersContainer.create();\r\n container.appendLinkages(repr.lutBuffers.linkages);\r\n\r\n const attrX = AttributeMap.findAttribute(\"a_patternX\", techId, true);\r\n const attrY = AttributeMap.findAttribute(\"a_patternY\", techId, true);\r\n assert(undefined !== attrX && undefined !== attrY);\r\n container.addBuffer(buffers.offsets, [\r\n BufferParameters.create(attrX.location, 1, GL.DataType.Float, false, 8, 0, true),\r\n BufferParameters.create(attrY.location, 1, GL.DataType.Float, false, 8, 4, true),\r\n ]);\r\n\r\n return new this(repr, ownsBuffers, buffers, container);\r\n }\r\n\r\n private constructor(repr: LUTGeometry, ownsBuffers: boolean, buffers: InstanceBuffers | PatternBuffers, container: BuffersContainer) {\r\n super();\r\n this._repr = repr;\r\n this._ownsBuffers = ownsBuffers;\r\n this._buffers = buffers;\r\n this._buffersContainer = container;\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n if (!this._repr.isDisposed)\r\n return false;\r\n\r\n return !this._ownsBuffers || this._buffers.isDisposed;\r\n }\r\n\r\n public dispose() {\r\n this._repr.dispose();\r\n if (this._ownsBuffers)\r\n dispose(this._buffers);\r\n }\r\n\r\n protected _wantWoWReversal(_target: Target) {\r\n assert(false, \"Should never be called\");\r\n return false;\r\n }\r\n\r\n public draw() {\r\n this._repr.drawInstanced(this._buffers.numInstances, this._buffersContainer);\r\n }\r\n\r\n public override computeRange(output?: Range3d): Range3d {\r\n return this._buffers.range.clone(output);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics) {\r\n this._repr.collectStatistics(stats);\r\n if (this._ownsBuffers)\r\n this._buffers.collectStatistics(stats);\r\n }\r\n\r\n public get patternParams(): Float32Array { return this._buffers.patternParams; }\r\n public get patternTransforms(): PatternTransforms | undefined { return this._buffers.patternTransforms; }\r\n public get patternFeatureId(): Float32Array { return this._buffers.patternFeatureId; }\r\n}\r\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @module WebGL
|
|
3
3
|
*/
|
|
4
4
|
import { RenderMaterial } from "@itwin/core-common";
|
|
5
|
-
import { SurfaceMaterial, SurfaceMaterialAtlas } from "../../common/render/
|
|
5
|
+
import { SurfaceMaterial, SurfaceMaterialAtlas } from "../../common/internal/render/SurfaceParams";
|
|
6
6
|
/** Parameters describing a single material. The parameters used are:
|
|
7
7
|
* - diffuse color rgb (vec3).
|
|
8
8
|
* - alpha (float in [0..1])
|
|
@@ -39,6 +39,10 @@ export declare class Material extends RenderMaterial {
|
|
|
39
39
|
get overridesRgb(): boolean;
|
|
40
40
|
get overridesAlpha(): boolean;
|
|
41
41
|
get hasTranslucency(): boolean;
|
|
42
|
+
/** Strictly for testing. */
|
|
43
|
+
static preserveParams: boolean;
|
|
44
|
+
/** Strictly for testing. */
|
|
45
|
+
params?: RenderMaterial.Params;
|
|
42
46
|
constructor(params: RenderMaterial.Params);
|
|
43
47
|
private setInteger;
|
|
44
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Material.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/Material.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAY,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"Material.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/Material.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAY,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAEnG;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,QAAS,SAAQ,cAAc;IAE1C,gBAAuB,OAAO,EAAE,QAAQ,CAAgD;IAGxF,SAAgB,OAAO,QAAkB;IACzC,SAAgB,YAAY,eAAuB;IACnD,SAAgB,IAAI,eAAuB;IAE3C,IAAW,YAAY,YAAgC;IACvD,IAAW,cAAc,YAAgC;IACzD,IAAW,eAAe,YAAsD;IAEhF,4BAA4B;IAC5B,OAAc,cAAc,UAAS;IACrC,4BAA4B;IAErB,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC;gBAGnB,MAAM,EAAE,cAAc,CAAC,MAAM;IA+BhD,OAAO,CAAC,UAAU;CAQnB;AAID;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,oBAAoB,CAAC;AAE3D,gBAAgB;AAChB,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAOhG"}
|
|
@@ -46,6 +46,9 @@ export class Material extends RenderMaterial {
|
|
|
46
46
|
this.isAtlas = false;
|
|
47
47
|
this.fragUniforms = new Float32Array(4);
|
|
48
48
|
this.rgba = new Float32Array(4);
|
|
49
|
+
if (Material.preserveParams) {
|
|
50
|
+
this.params = params;
|
|
51
|
+
}
|
|
49
52
|
if (undefined !== params.diffuseColor) {
|
|
50
53
|
const rgb = FloatRgb.fromColorDef(params.diffuseColor);
|
|
51
54
|
this.rgba[0] = rgb.red;
|
|
@@ -75,6 +78,8 @@ export class Material extends RenderMaterial {
|
|
|
75
78
|
}
|
|
76
79
|
// eslint-disable-next-line deprecation/deprecation
|
|
77
80
|
Material.default = new Material(RenderMaterial.Params.defaults);
|
|
81
|
+
/** Strictly for testing. */
|
|
82
|
+
Material.preserveParams = false;
|
|
78
83
|
Object.freeze(Material.default);
|
|
79
84
|
/** @internal */
|
|
80
85
|
export function createMaterialInfo(source) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Material.js","sourceRoot":"","sources":["../../../../src/render/webgl/Material.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"Material.js","sourceRoot":"","sources":["../../../../src/render/webgl/Material.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { ColorDef, RenderMaterial } from \"@itwin/core-common\";\r\nimport { FloatRgb } from \"./FloatRGBA\";\r\nimport { SurfaceMaterial, SurfaceMaterialAtlas } from \"../../common/internal/render/SurfaceParams\";\r\n\r\n/** Parameters describing a single material. The parameters used are:\r\n * - diffuse color rgb (vec3).\r\n * - alpha (float in [0..1])\r\n * - is rgb overridden (bool)\r\n * - is alpha overridden (bool)\r\n * - specular exponent (float).\r\n * - specular color (vec3).\r\n * - specular weight (float in [0..1])\r\n * - diffuse weight (float in [0..1])\r\n * - texture weight (float in [0..1])\r\n *\r\n * The rgb and alpha are applied in the vertex shader. Either can be negative, indicating the material does not override it.\r\n *\r\n * The rest are passed as a varying vec4 to be applied in the fragment shader.\r\n * All but the specular exponent are compressed such that floats in [0..1] become integers in [0..255] and concatenated bitwise in pairs into 16-bit integer values.\r\n *\r\n * The result is:\r\n * x: diffuse and specular weights\r\n * y: texture weight and specular red\r\n * z: specular green and blue\r\n * w: specular exponent\r\n *\r\n * This packing is motivated by the limited max number of varying vectors guaranteed by WebGL.\r\n * A varying is used because:\r\n * 1. Material atlases require looking up the material associated with a particular vertex; and\r\n * 2. The vertex material may be replaced with a default material based on other criteria such as view flags and feature symbology overrides.\r\n * @internal\r\n */\r\nexport class Material extends RenderMaterial {\r\n // eslint-disable-next-line deprecation/deprecation\r\n public static readonly default: Material = new Material(RenderMaterial.Params.defaults);\r\n\r\n // Used for type-switching vs MaterialAtlas\r\n public readonly isAtlas = false as const;\r\n public readonly fragUniforms = new Float32Array(4);\r\n public readonly rgba = new Float32Array(4);\r\n\r\n public get overridesRgb() { return this.rgba[0] >= 0; }\r\n public get overridesAlpha() { return this.rgba[3] >= 0; }\r\n public get hasTranslucency() { return this.overridesAlpha && this.rgba[3] < 1; }\r\n\r\n /** Strictly for testing. */\r\n public static preserveParams = false;\r\n /** Strictly for testing. */\r\n // eslint-disable-next-line deprecation/deprecation\r\n public params?: RenderMaterial.Params;\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public constructor(params: RenderMaterial.Params) {\r\n super(params);\r\n\r\n if (Material.preserveParams) {\r\n this.params = params;\r\n }\r\n\r\n if (undefined !== params.diffuseColor) {\r\n const rgb = FloatRgb.fromColorDef(params.diffuseColor);\r\n this.rgba[0] = rgb.red;\r\n this.rgba[1] = rgb.green;\r\n this.rgba[2] = rgb.blue;\r\n } else {\r\n this.rgba[0] = this.rgba[1] = this.rgba[2] = -1;\r\n }\r\n\r\n const alpha = undefined !== params.alpha ? params.alpha : -1;\r\n this.rgba[3] = alpha;\r\n\r\n const scale = (value: number) => Math.floor(value * 255 + 0.5);\r\n this.setInteger(scale(params.diffuse), scale(params.specular), 0);\r\n\r\n const textureWeight = undefined !== this.textureMapping ? this.textureMapping.params.weight : 1.0;\r\n const specularRgb = undefined !== params.specularColor ? params.specularColor : ColorDef.white;\r\n const specularColors = specularRgb.colors;\r\n this.setInteger(scale(textureWeight), specularColors.r, 1);\r\n this.setInteger(specularColors.g, specularColors.b, 2);\r\n\r\n this.fragUniforms[3] = params.specularExponent;\r\n }\r\n\r\n private setInteger(loByte: number, hiByte: number, index: number): void {\r\n const clamp = (x: number) => Math.floor(Math.min(255, (Math.max(x, 0))));\r\n\r\n loByte = clamp(loByte);\r\n hiByte = clamp(hiByte);\r\n\r\n this.fragUniforms[index] = loByte + hiByte * 256;\r\n }\r\n}\r\n\r\nObject.freeze(Material.default);\r\n\r\n/** Describes the material associated with a surface.\r\n * @internal\r\n */\r\nexport type MaterialInfo = Material | SurfaceMaterialAtlas;\r\n\r\n/** @internal */\r\nexport function createMaterialInfo(source: SurfaceMaterial | undefined): MaterialInfo | undefined {\r\n if (undefined === source)\r\n return undefined;\r\n else if (source.isAtlas)\r\n return source;\r\n else\r\n return source.material as Material;\r\n}\r\n"]}
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
* @module WebGL
|
|
3
3
|
*/
|
|
4
4
|
import { Point3d, Range3d } from "@itwin/core-geometry";
|
|
5
|
-
import { InstancedGraphicParams } from "
|
|
6
|
-
import { MeshParams } from "../../common/render/
|
|
7
|
-
import { SurfaceType } from "../../common/render/
|
|
5
|
+
import { InstancedGraphicParams } from "../../common/render/InstancedGraphicParams";
|
|
6
|
+
import { MeshParams } from "../../common/internal/render/MeshParams";
|
|
7
|
+
import { SurfaceType } from "../../common/internal/render/SurfaceParams";
|
|
8
8
|
import { RenderMemory } from "../RenderMemory";
|
|
9
9
|
import { Graphic } from "./Graphic";
|
|
10
10
|
import { PatternBuffers } from "./InstancedGeometry";
|
|
11
|
+
import { Primitive } from "./Primitive";
|
|
11
12
|
import { RenderCommands } from "./RenderCommands";
|
|
12
13
|
import { RenderPass } from "./RenderFlags";
|
|
13
14
|
import { EdgeGeometry, PolylineEdgeGeometry, SilhouetteEdgeGeometry } from "./EdgeGeometry";
|
|
@@ -34,6 +35,8 @@ export declare class MeshGraphic extends Graphic {
|
|
|
34
35
|
private readonly _primitives;
|
|
35
36
|
private readonly _instances?;
|
|
36
37
|
private readonly _meshRange;
|
|
38
|
+
get primitives(): readonly Primitive[];
|
|
39
|
+
get meshRange(): Readonly<Range3d>;
|
|
37
40
|
static create(geometry: MeshRenderGeometry, instances?: InstancedGraphicParams | PatternBuffers): MeshGraphic | undefined;
|
|
38
41
|
private addPrimitive;
|
|
39
42
|
private constructor();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mesh.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/Mesh.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Mesh.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/Mesh.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAmB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,gBAAgB;AAChB,qBAAa,kBAAkB;IAC7B,SAAgB,IAAI,EAAE,QAAQ,CAAC;IAC/B,SAAgB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1C,SAAgB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5C,SAAgB,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzD,SAAgB,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrD,SAAgB,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnD,SAAgB,KAAK,EAAE,OAAO,CAAC;IAE/B,OAAO;WAqBO,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,GAAG,SAAS,GAAG,kBAAkB,GAAG,SAAS;IAK7G,OAAO;IASP,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU;CAQxD;AAED,gBAAgB;AAChB,qBAAa,WAAY,SAAQ,OAAO;IACtC,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAmC;IAC/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IAErC,IAAW,UAAU,IAAI,SAAS,SAAS,EAAE,CAA6B;IAC1E,IAAW,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,CAA4B;WAEvD,MAAM,CAAC,QAAQ,EAAE,kBAAkB,EAAE,SAAS,CAAC,EAAE,sBAAsB,GAAG,cAAc,GAAG,WAAW,GAAG,SAAS;IAgBhI,OAAO,CAAC,YAAY;IAUpB,OAAO;IAaP,IAAW,UAAU,IAAI,OAAO,CAAsE;IACtG,IAAW,UAAU,YAAoB;IAElC,OAAO;IASP,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAM9C,UAAU,CAAC,KAAK,EAAE,OAAO;IAOlC,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAC9B,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAE/E,IAAW,WAAW,IAAI,WAAW,CAA+B;CACrE"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @module WebGL
|
|
7
7
|
*/
|
|
8
8
|
import { assert, dispose } from "@itwin/core-bentley";
|
|
9
|
-
import { SurfaceType } from "../../common/render/
|
|
9
|
+
import { SurfaceType } from "../../common/internal/render/SurfaceParams";
|
|
10
10
|
import { CachedGeometry } from "./CachedGeometry";
|
|
11
11
|
import { Graphic } from "./Graphic";
|
|
12
12
|
import { InstanceBuffers, PatternBuffers } from "./InstancedGeometry";
|
|
@@ -56,6 +56,8 @@ export class MeshRenderGeometry {
|
|
|
56
56
|
}
|
|
57
57
|
/** @internal */
|
|
58
58
|
export class MeshGraphic extends Graphic {
|
|
59
|
+
get primitives() { return this._primitives; }
|
|
60
|
+
get meshRange() { return this._meshRange; }
|
|
59
61
|
static create(geometry, instances) {
|
|
60
62
|
let buffers;
|
|
61
63
|
if (instances) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mesh.js","sourceRoot":"","sources":["../../../../src/render/webgl/Mesh.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAItD,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,gBAAgB;AAChB,MAAM,OAAO,kBAAkB;IAS7B,YAAoB,IAAc,EAAE,MAAkB;QACpD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,gBAAgB;YACtD,OAAO;QAET,IAAI,KAAK,CAAC,WAAW;YACnB,IAAI,CAAC,eAAe,GAAG,sBAAsB,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAE3F,IAAI,KAAK,CAAC,QAAQ;YAChB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEhE,IAAI,KAAK,CAAC,SAAS;YACjB,IAAI,CAAC,aAAa,GAAG,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAE1E,IAAI,KAAK,CAAC,OAAO;YACf,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACxE,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,MAAkB,EAAE,qBAA0C;QACjF,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC;IAEM,OAAO;QACZ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC;IAEM,iBAAiB,CAAC,KAA8B;QACrD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;CACF;AAED,gBAAgB;AAChB,MAAM,OAAO,WAAY,SAAQ,OAAO;IAM/B,MAAM,CAAC,MAAM,CAAC,QAA4B,EAAE,SAAmD;QACpG,IAAI,OAAO,CAAC;QACZ,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,SAAS,YAAY,cAAc,EAAE,CAAC;gBACxC,OAAO,GAAG,SAAS,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,IAAI,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;gBACxI,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAO;oBACV,OAAO,SAAS,CAAC;YACrB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAEO,YAAY,CAAC,QAAoC;QACvD,IAAI,CAAC,QAAQ;YACX,OAAO;QAET,MAAM,CAAC,QAAQ,YAAY,cAAc,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACpE,IAAI,SAAS;YACX,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAED,YAAoB,QAA4B,EAAE,SAA4C;QAC5F,KAAK,EAAE,CAAC;QA/BO,gBAAW,GAAgB,EAAE,CAAC;QAgC7C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC3C,CAAC;IAED,IAAW,UAAU,KAAc,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IACtG,IAAW,UAAU,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC;IAElC,OAAO;QACZ,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW;YACtC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,CAAC;IAEM,iBAAiB,CAAC,KAA8B;QACrD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAEe,UAAU,CAAC,KAAc;QACvC,IAAI,IAAI,CAAC,UAAU;YACjB,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;;YAEzB,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAEM,WAAW,CAAC,IAAoB,IAAU,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9F,iBAAiB,CAAC,IAAoB,EAAE,IAAgB,IAAU,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3J,IAAW,WAAW,KAAkB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;CACrE","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, dispose } from \"@itwin/core-bentley\";\r\nimport { Point3d, Range3d } from \"@itwin/core-geometry\";\r\nimport { InstancedGraphicParams } from \"../InstancedGraphicParams\";\r\nimport { MeshParams } from \"../../common/render/primitives/MeshParams\";\r\nimport { SurfaceType } from \"../../common/render/primitives/SurfaceParams\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { RenderGeometry } from \"../RenderSystem\";\r\nimport { CachedGeometry } from \"./CachedGeometry\";\r\nimport { Graphic } from \"./Graphic\";\r\nimport { InstanceBuffers, PatternBuffers } from \"./InstancedGeometry\";\r\nimport { Primitive } from \"./Primitive\";\r\nimport { RenderCommands } from \"./RenderCommands\";\r\nimport { RenderPass } from \"./RenderFlags\";\r\nimport { EdgeGeometry, PolylineEdgeGeometry, SilhouetteEdgeGeometry } from \"./EdgeGeometry\";\r\nimport { IndexedEdgeGeometry } from \"./IndexedEdgeGeometry\";\r\nimport { SurfaceGeometry } from \"./SurfaceGeometry\";\r\nimport { MeshData } from \"./MeshData\";\r\n\r\n/** @internal */\r\nexport class MeshRenderGeometry {\r\n public readonly data: MeshData;\r\n public readonly surface?: SurfaceGeometry;\r\n public readonly segmentEdges?: EdgeGeometry;\r\n public readonly silhouetteEdges?: SilhouetteEdgeGeometry;\r\n public readonly polylineEdges?: PolylineEdgeGeometry;\r\n public readonly indexedEdges?: IndexedEdgeGeometry;\r\n public readonly range: Range3d;\r\n\r\n private constructor(data: MeshData, params: MeshParams) {\r\n this.data = data;\r\n this.range = params.vertices.qparams.computeRange();\r\n this.surface = SurfaceGeometry.create(data, params.surface.indices);\r\n const edges = params.edges;\r\n if (!edges || data.type === SurfaceType.VolumeClassifier)\r\n return;\r\n\r\n if (edges.silhouettes)\r\n this.silhouetteEdges = SilhouetteEdgeGeometry.createSilhouettes(data, edges.silhouettes);\r\n\r\n if (edges.segments)\r\n this.segmentEdges = EdgeGeometry.create(data, edges.segments);\r\n\r\n if (edges.polylines)\r\n this.polylineEdges = PolylineEdgeGeometry.create(data, edges.polylines);\r\n\r\n if (edges.indexed)\r\n this.indexedEdges = IndexedEdgeGeometry.create(data, edges.indexed);\r\n }\r\n\r\n public static create(params: MeshParams, viewIndependentOrigin: Point3d | undefined): MeshRenderGeometry | undefined {\r\n const data = MeshData.create(params, viewIndependentOrigin);\r\n return data ? new this(data, params) : undefined;\r\n }\r\n\r\n public dispose() {\r\n dispose(this.data);\r\n dispose(this.surface);\r\n dispose(this.segmentEdges);\r\n dispose(this.silhouetteEdges);\r\n dispose(this.polylineEdges);\r\n dispose(this.indexedEdges);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics) {\r\n this.data.collectStatistics(stats);\r\n this.surface?.collectStatistics(stats);\r\n this.segmentEdges?.collectStatistics(stats);\r\n this.silhouetteEdges?.collectStatistics(stats);\r\n this.polylineEdges?.collectStatistics(stats);\r\n this.indexedEdges?.collectStatistics(stats);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class MeshGraphic extends Graphic {\r\n public readonly meshData: MeshData;\r\n private readonly _primitives: Primitive[] = [];\r\n private readonly _instances?: InstanceBuffers | PatternBuffers;\r\n private readonly _meshRange: Range3d;\r\n\r\n public static create(geometry: MeshRenderGeometry, instances?: InstancedGraphicParams | PatternBuffers): MeshGraphic | undefined {\r\n let buffers;\r\n if (instances) {\r\n if (instances instanceof PatternBuffers) {\r\n buffers = instances;\r\n } else {\r\n const instancesRange = instances.range ?? InstanceBuffers.computeRange(geometry.range, instances.transforms, instances.transformCenter);\r\n buffers = InstanceBuffers.create(instances, instancesRange);\r\n if (!buffers)\r\n return undefined;\r\n }\r\n }\r\n\r\n return new MeshGraphic(geometry, buffers);\r\n }\r\n\r\n private addPrimitive(geometry: RenderGeometry | undefined) {\r\n if (!geometry)\r\n return;\r\n\r\n assert(geometry instanceof CachedGeometry);\r\n const primitive = Primitive.createShared(geometry, this._instances);\r\n if (primitive)\r\n this._primitives.push(primitive);\r\n }\r\n\r\n private constructor(geometry: MeshRenderGeometry, instances?: InstanceBuffers | PatternBuffers) {\r\n super();\r\n this.meshData = geometry.data;\r\n this._meshRange = geometry.range;\r\n this._instances = instances;\r\n\r\n this.addPrimitive(geometry.surface);\r\n this.addPrimitive(geometry.segmentEdges);\r\n this.addPrimitive(geometry.silhouetteEdges);\r\n this.addPrimitive(geometry.polylineEdges);\r\n this.addPrimitive(geometry.indexedEdges);\r\n }\r\n\r\n public get isDisposed(): boolean { return this.meshData.isDisposed && 0 === this._primitives.length; }\r\n public get isPickable() { return false; }\r\n\r\n public dispose() {\r\n for (const primitive of this._primitives)\r\n dispose(primitive);\r\n\r\n dispose(this.meshData);\r\n dispose(this._instances);\r\n this._primitives.length = 0;\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this.meshData.collectStatistics(stats);\r\n this._primitives.forEach((prim) => prim.collectStatistics(stats));\r\n this._instances?.collectStatistics(stats);\r\n }\r\n\r\n public override unionRange(range: Range3d) {\r\n if (this._instances)\r\n range.extendRange(range);\r\n else\r\n range.extendRange(this._meshRange);\r\n }\r\n\r\n public addCommands(cmds: RenderCommands): void { this._primitives.forEach((prim) => prim.addCommands(cmds)); }\r\n public override addHiliteCommands(cmds: RenderCommands, pass: RenderPass): void { this._primitives.forEach((prim) => prim.addHiliteCommands(cmds, pass)); }\r\n\r\n public get surfaceType(): SurfaceType { return this.meshData.type; }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"Mesh.js","sourceRoot":"","sources":["../../../../src/render/webgl/Mesh.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAItD,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,gBAAgB;AAChB,MAAM,OAAO,kBAAkB;IAS7B,YAAoB,IAAc,EAAE,MAAkB;QACpD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,gBAAgB;YACtD,OAAO;QAET,IAAI,KAAK,CAAC,WAAW;YACnB,IAAI,CAAC,eAAe,GAAG,sBAAsB,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAE3F,IAAI,KAAK,CAAC,QAAQ;YAChB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEhE,IAAI,KAAK,CAAC,SAAS;YACjB,IAAI,CAAC,aAAa,GAAG,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAE1E,IAAI,KAAK,CAAC,OAAO;YACf,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACxE,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,MAAkB,EAAE,qBAA0C;QACjF,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC;IAEM,OAAO;QACZ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC;IAEM,iBAAiB,CAAC,KAA8B;QACrD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;CACF;AAED,gBAAgB;AAChB,MAAM,OAAO,WAAY,SAAQ,OAAO;IAMtC,IAAW,UAAU,KAA2B,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1E,IAAW,SAAS,KAAwB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAE9D,MAAM,CAAC,MAAM,CAAC,QAA4B,EAAE,SAAmD;QACpG,IAAI,OAAO,CAAC;QACZ,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,SAAS,YAAY,cAAc,EAAE,CAAC;gBACxC,OAAO,GAAG,SAAS,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,IAAI,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;gBACxI,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAO;oBACV,OAAO,SAAS,CAAC;YACrB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAEO,YAAY,CAAC,QAAoC;QACvD,IAAI,CAAC,QAAQ;YACX,OAAO;QAET,MAAM,CAAC,QAAQ,YAAY,cAAc,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACpE,IAAI,SAAS;YACX,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAED,YAAoB,QAA4B,EAAE,SAA4C;QAC5F,KAAK,EAAE,CAAC;QAlCO,gBAAW,GAAgB,EAAE,CAAC;QAmC7C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC3C,CAAC;IAED,IAAW,UAAU,KAAc,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IACtG,IAAW,UAAU,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC;IAElC,OAAO;QACZ,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW;YACtC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,CAAC;IAEM,iBAAiB,CAAC,KAA8B;QACrD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAEe,UAAU,CAAC,KAAc;QACvC,IAAI,IAAI,CAAC,UAAU;YACjB,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;;YAEzB,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAEM,WAAW,CAAC,IAAoB,IAAU,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9F,iBAAiB,CAAC,IAAoB,EAAE,IAAgB,IAAU,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3J,IAAW,WAAW,KAAkB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;CACrE","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, dispose } from \"@itwin/core-bentley\";\r\nimport { Point3d, Range3d } from \"@itwin/core-geometry\";\r\nimport { InstancedGraphicParams } from \"../../common/render/InstancedGraphicParams\";\r\nimport { MeshParams } from \"../../common/internal/render/MeshParams\";\r\nimport { SurfaceType } from \"../../common/internal/render/SurfaceParams\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { RenderGeometry } from \"../RenderSystem\";\r\nimport { CachedGeometry } from \"./CachedGeometry\";\r\nimport { Graphic } from \"./Graphic\";\r\nimport { InstanceBuffers, PatternBuffers } from \"./InstancedGeometry\";\r\nimport { Primitive } from \"./Primitive\";\r\nimport { RenderCommands } from \"./RenderCommands\";\r\nimport { RenderPass } from \"./RenderFlags\";\r\nimport { EdgeGeometry, PolylineEdgeGeometry, SilhouetteEdgeGeometry } from \"./EdgeGeometry\";\r\nimport { IndexedEdgeGeometry } from \"./IndexedEdgeGeometry\";\r\nimport { SurfaceGeometry } from \"./SurfaceGeometry\";\r\nimport { MeshData } from \"./MeshData\";\r\n\r\n/** @internal */\r\nexport class MeshRenderGeometry {\r\n public readonly data: MeshData;\r\n public readonly surface?: SurfaceGeometry;\r\n public readonly segmentEdges?: EdgeGeometry;\r\n public readonly silhouetteEdges?: SilhouetteEdgeGeometry;\r\n public readonly polylineEdges?: PolylineEdgeGeometry;\r\n public readonly indexedEdges?: IndexedEdgeGeometry;\r\n public readonly range: Range3d;\r\n\r\n private constructor(data: MeshData, params: MeshParams) {\r\n this.data = data;\r\n this.range = params.vertices.qparams.computeRange();\r\n this.surface = SurfaceGeometry.create(data, params.surface.indices);\r\n const edges = params.edges;\r\n if (!edges || data.type === SurfaceType.VolumeClassifier)\r\n return;\r\n\r\n if (edges.silhouettes)\r\n this.silhouetteEdges = SilhouetteEdgeGeometry.createSilhouettes(data, edges.silhouettes);\r\n\r\n if (edges.segments)\r\n this.segmentEdges = EdgeGeometry.create(data, edges.segments);\r\n\r\n if (edges.polylines)\r\n this.polylineEdges = PolylineEdgeGeometry.create(data, edges.polylines);\r\n\r\n if (edges.indexed)\r\n this.indexedEdges = IndexedEdgeGeometry.create(data, edges.indexed);\r\n }\r\n\r\n public static create(params: MeshParams, viewIndependentOrigin: Point3d | undefined): MeshRenderGeometry | undefined {\r\n const data = MeshData.create(params, viewIndependentOrigin);\r\n return data ? new this(data, params) : undefined;\r\n }\r\n\r\n public dispose() {\r\n dispose(this.data);\r\n dispose(this.surface);\r\n dispose(this.segmentEdges);\r\n dispose(this.silhouetteEdges);\r\n dispose(this.polylineEdges);\r\n dispose(this.indexedEdges);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics) {\r\n this.data.collectStatistics(stats);\r\n this.surface?.collectStatistics(stats);\r\n this.segmentEdges?.collectStatistics(stats);\r\n this.silhouetteEdges?.collectStatistics(stats);\r\n this.polylineEdges?.collectStatistics(stats);\r\n this.indexedEdges?.collectStatistics(stats);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class MeshGraphic extends Graphic {\r\n public readonly meshData: MeshData;\r\n private readonly _primitives: Primitive[] = [];\r\n private readonly _instances?: InstanceBuffers | PatternBuffers;\r\n private readonly _meshRange: Range3d;\r\n\r\n public get primitives(): readonly Primitive[] { return this._primitives; }\r\n public get meshRange(): Readonly<Range3d> { return this._meshRange; }\r\n\r\n public static create(geometry: MeshRenderGeometry, instances?: InstancedGraphicParams | PatternBuffers): MeshGraphic | undefined {\r\n let buffers;\r\n if (instances) {\r\n if (instances instanceof PatternBuffers) {\r\n buffers = instances;\r\n } else {\r\n const instancesRange = instances.range ?? InstanceBuffers.computeRange(geometry.range, instances.transforms, instances.transformCenter);\r\n buffers = InstanceBuffers.create(instances, instancesRange);\r\n if (!buffers)\r\n return undefined;\r\n }\r\n }\r\n\r\n return new MeshGraphic(geometry, buffers);\r\n }\r\n\r\n private addPrimitive(geometry: RenderGeometry | undefined) {\r\n if (!geometry)\r\n return;\r\n\r\n assert(geometry instanceof CachedGeometry);\r\n const primitive = Primitive.createShared(geometry, this._instances);\r\n if (primitive)\r\n this._primitives.push(primitive);\r\n }\r\n\r\n private constructor(geometry: MeshRenderGeometry, instances?: InstanceBuffers | PatternBuffers) {\r\n super();\r\n this.meshData = geometry.data;\r\n this._meshRange = geometry.range;\r\n this._instances = instances;\r\n\r\n this.addPrimitive(geometry.surface);\r\n this.addPrimitive(geometry.segmentEdges);\r\n this.addPrimitive(geometry.silhouetteEdges);\r\n this.addPrimitive(geometry.polylineEdges);\r\n this.addPrimitive(geometry.indexedEdges);\r\n }\r\n\r\n public get isDisposed(): boolean { return this.meshData.isDisposed && 0 === this._primitives.length; }\r\n public get isPickable() { return false; }\r\n\r\n public dispose() {\r\n for (const primitive of this._primitives)\r\n dispose(primitive);\r\n\r\n dispose(this.meshData);\r\n dispose(this._instances);\r\n this._primitives.length = 0;\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this.meshData.collectStatistics(stats);\r\n this._primitives.forEach((prim) => prim.collectStatistics(stats));\r\n this._instances?.collectStatistics(stats);\r\n }\r\n\r\n public override unionRange(range: Range3d) {\r\n if (this._instances)\r\n range.extendRange(range);\r\n else\r\n range.extendRange(this._meshRange);\r\n }\r\n\r\n public addCommands(cmds: RenderCommands): void { this._primitives.forEach((prim) => prim.addCommands(cmds)); }\r\n public override addHiliteCommands(cmds: RenderCommands, pass: RenderPass): void { this._primitives.forEach((prim) => prim.addHiliteCommands(cmds, pass)); }\r\n\r\n public get surfaceType(): SurfaceType { return this.meshData.type; }\r\n}\r\n"]}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { Point3d } from "@itwin/core-geometry";
|
|
5
5
|
import { FillFlags } from "@itwin/core-common";
|
|
6
|
-
import { MeshParams } from "../../common/render/
|
|
7
|
-
import { SurfaceType } from "../../common/render/
|
|
6
|
+
import { MeshParams } from "../../common/internal/render/MeshParams";
|
|
7
|
+
import { SurfaceType } from "../../common/internal/render/SurfaceParams";
|
|
8
8
|
import { RenderMemory } from "../RenderMemory";
|
|
9
9
|
import { WebGLDisposable } from "./Disposable";
|
|
10
10
|
import { MaterialInfo } from "./Material";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeshData.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/MeshData.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAoB,SAAS,EAAc,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"MeshData.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/MeshData.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAoB,SAAS,EAAc,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAsB,YAAY,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,gBAAgB;AAChB,qBAAa,QAAS,YAAW,eAAe;IAC9C,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,WAAW,EAAE,OAAO,CAAC;IACrC,SAAgB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1C,SAAgB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClC,SAAgB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpC,SAAgB,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAClD,SAAgB,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAClD,SAAgB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjD,SAAgB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnD,SAAgB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5C,SAAgB,IAAI,EAAE,WAAW,CAAC;IAClC,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,QAAQ,EAAE,OAAO,CAAC;IAClC,SAAgB,gBAAgB,EAAE,OAAO,CAAC;IAC1C,SAAgB,GAAG,EAAE,SAAS,CAAC;IAC/B,SAAgB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAU;IAElD,OAAO;WAuDO,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS;IAK7F,IAAW,UAAU,IAAI,OAAO,CAA8D;IAEvF,OAAO;IAMd,IAAW,OAAO,YAAiE;IACnF,IAAW,wBAAwB,YAA2D;IAG9F,OAAO,KAAK,YAAY,GAEvB;IAEM,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;CAK/D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeshData.js","sourceRoot":"","sources":["../../../../src/render/webgl/MeshData.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { dispose } from \"@itwin/core-bentley\";\r\nimport { Point3d } from \"@itwin/core-geometry\";\r\nimport { FeatureIndexType, FillFlags, LinePixels } from \"@itwin/core-common\";\r\nimport { MeshParams } from \"../../common/render/primitives/MeshParams\";\r\nimport { SurfaceType } from \"../../common/render/primitives/SurfaceParams\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { WebGLDisposable } from \"./Disposable\";\r\nimport { LineCode } from \"./LineCode\";\r\nimport { createMaterialInfo, MaterialInfo } from \"./Material\";\r\nimport { Texture } from \"./Texture\";\r\nimport { VertexLUT } from \"./VertexLUT\";\r\n\r\n/** @internal */\r\nexport class MeshData implements WebGLDisposable {\r\n public readonly edgeWidth: number;\r\n public readonly hasFeatures: boolean;\r\n public readonly uniformFeatureId?: number; // Used strictly by BatchPrimitiveCommand.computeIsFlashed for flashing volume classification primitives.\r\n public readonly texture?: Texture;\r\n public readonly normalMap?: Texture;\r\n public readonly constantLodVParams?: Float32Array; // size 3, contains texture offset x & y and fake ortho distance (which will be set during binding)\r\n public readonly constantLodFParams?: Float32Array; // size 3, texture min and max size in worl units\r\n public readonly textureUsesConstantLod?: boolean;\r\n public readonly normalMapUsesConstantLod?: boolean;\r\n public readonly materialInfo?: MaterialInfo;\r\n public readonly type: SurfaceType;\r\n public readonly fillFlags: FillFlags;\r\n public readonly edgeLineCode: number; // Must call LineCode.valueFromLinePixels(val: LinePixels) and set the output to edgeLineCode\r\n public readonly isPlanar: boolean;\r\n public readonly hasBakedLighting: boolean;\r\n public readonly lut: VertexLUT;\r\n public readonly viewIndependentOrigin?: Point3d;\r\n private readonly _textureAlwaysDisplayed: boolean;\r\n\r\n private constructor(lut: VertexLUT, params: MeshParams, viOrigin: Point3d | undefined) {\r\n this.lut = lut;\r\n this.viewIndependentOrigin = viOrigin;\r\n\r\n this.hasFeatures = FeatureIndexType.Empty !== params.vertices.featureIndexType;\r\n if (FeatureIndexType.Uniform === params.vertices.featureIndexType)\r\n this.uniformFeatureId = params.vertices.uniformFeatureID;\r\n\r\n this.textureUsesConstantLod = false;\r\n this.normalMapUsesConstantLod = false;\r\n if (undefined !== params.surface.textureMapping) {\r\n this.texture = params.surface.textureMapping.texture as Texture;\r\n this._textureAlwaysDisplayed = params.surface.textureMapping.alwaysDisplayed;\r\n if (undefined !== params.surface.material && !params.surface.material.isAtlas) {\r\n const matTM = params.surface.material.material.textureMapping;\r\n if (undefined !== matTM) {\r\n this.textureUsesConstantLod = this.texture && matTM.params.useConstantLod;\r\n if (undefined !== matTM.normalMapParams) {\r\n this.normalMapUsesConstantLod = matTM.normalMapParams.useConstantLod;\r\n if (undefined !== matTM.normalMapParams.normalMap) {\r\n this.normalMap = matTM.normalMapParams.normalMap as Texture;\r\n } else {\r\n // If there are normal map params but the normal map is not present, use the texture as a normal map instead of a pattern map.\r\n this.normalMap = this.texture;\r\n this.texture = undefined;\r\n }\r\n }\r\n if (this.normalMapUsesConstantLod || this.textureUsesConstantLod) {\r\n this.constantLodVParams = new Float32Array(3);\r\n this.constantLodVParams[0] = matTM.params.constantLodParams.offset.x; // x offset\r\n this.constantLodVParams[1] = matTM.params.constantLodParams.offset.y; // y offset\r\n this.constantLodVParams[3] = 0.0; // placeholder for orto view distance\r\n this.constantLodFParams = new Float32Array(3);\r\n this.constantLodFParams[0] = matTM.params.constantLodParams.minDistClamp; // Minimum texture size\r\n this.constantLodFParams[1] = matTM.params.constantLodParams.maxDistClamp; // Maximum texture size\r\n this.constantLodFParams[2] = matTM.params.constantLodParams.repetitions; // # repetitions of pattern (to scale it)\r\n }\r\n }\r\n }\r\n } else {\r\n this.texture = undefined;\r\n this._textureAlwaysDisplayed = false;\r\n }\r\n\r\n this.materialInfo = createMaterialInfo(params.surface.material);\r\n\r\n this.type = params.surface.type;\r\n this.fillFlags = params.surface.fillFlags;\r\n this.isPlanar = params.isPlanar;\r\n this.hasBakedLighting = params.surface.hasBakedLighting;\r\n const edges = params.edges;\r\n this.edgeWidth = undefined !== edges ? edges.weight : 1;\r\n this.edgeLineCode = LineCode.valueFromLinePixels(undefined !== edges ? edges.linePixels : LinePixels.Solid);\r\n }\r\n\r\n public static create(params: MeshParams, viOrigin: Point3d | undefined): MeshData | undefined {\r\n const lut = VertexLUT.createFromVertexTable(params.vertices, params.auxChannels);\r\n return undefined !== lut ? new MeshData(lut, params, viOrigin) : undefined;\r\n }\r\n\r\n public get isDisposed(): boolean { return undefined === this.texture && this.lut.isDisposed; }\r\n\r\n public dispose() {\r\n dispose(this.lut);\r\n if (this._ownsTexture)\r\n this.texture!.dispose();\r\n }\r\n\r\n public get isGlyph() { return undefined !== this.texture && this.texture.isGlyph; }\r\n public get isTextureAlwaysDisplayed() { return this.isGlyph || this._textureAlwaysDisplayed; }\r\n\r\n // Returns true if no one else owns this texture. Implies that the texture should be disposed when this object is disposed, and the texture's memory should be tracked as belonging to this object.\r\n private get _ownsTexture(): boolean {\r\n return undefined !== this.texture && !this.texture?.hasOwner;\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n stats.addVertexTable(this.lut.bytesUsed);\r\n if (this._ownsTexture)\r\n stats.addTexture(this.texture!.bytesUsed);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"MeshData.js","sourceRoot":"","sources":["../../../../src/render/webgl/MeshData.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAa,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAK7E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAgB,MAAM,YAAY,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,gBAAgB;AAChB,MAAM,OAAO,QAAQ;IAoBnB,YAAoB,GAAc,EAAE,MAAkB,EAAE,QAA6B;QACnF,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC;QAEtC,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC/E,IAAI,gBAAgB,CAAC,OAAO,KAAK,MAAM,CAAC,QAAQ,CAAC,gBAAgB;YAC/D,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAE3D,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACpC,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;QACtC,IAAI,SAAS,KAAK,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAChD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,OAAkB,CAAC;YAChE,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC;YAC7E,IAAI,SAAS,KAAK,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC9E,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAC9D,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;oBACxB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC;oBAC1E,IAAI,SAAS,KAAK,KAAK,CAAC,eAAe,EAAE,CAAC;wBACxC,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC,eAAe,CAAC,cAAc,CAAC;wBACrE,IAAI,SAAS,KAAK,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;4BAClD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC,SAAoB,CAAC;wBAC9D,CAAC;6BAAM,CAAC;4BACN,8HAA8H;4BAC9H,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;4BAC9B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;wBAC3B,CAAC;oBACH,CAAC;oBACD,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;wBACjE,IAAI,CAAC,kBAAkB,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;wBAC9C,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW;wBACjF,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW;wBACjF,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAqC,qCAAqC;wBAC3G,IAAI,CAAC,kBAAkB,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;wBAC9C,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,uBAAuB;wBACjG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,uBAAuB;wBACjG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAE,yCAAyC;oBACrH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEhE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACxD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,mBAAmB,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9G,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,MAAkB,EAAE,QAA6B;QACpE,MAAM,GAAG,GAAG,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACjF,OAAO,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,CAAC;IAED,IAAW,UAAU,KAAc,OAAO,SAAS,KAAK,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IAEvF,OAAO;QACZ,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,IAAI,IAAI,CAAC,YAAY;YACnB,IAAI,CAAC,OAAQ,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,IAAW,OAAO,KAAK,OAAO,SAAS,KAAK,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACnF,IAAW,wBAAwB,KAAK,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE9F,mMAAmM;IACnM,IAAY,YAAY;QACtB,OAAO,SAAS,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC/D,CAAC;IAEM,iBAAiB,CAAC,KAA8B;QACrD,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,YAAY;YACnB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAQ,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { dispose } from \"@itwin/core-bentley\";\r\nimport { Point3d } from \"@itwin/core-geometry\";\r\nimport { FeatureIndexType, FillFlags, LinePixels } from \"@itwin/core-common\";\r\nimport { MeshParams } from \"../../common/internal/render/MeshParams\";\r\nimport { SurfaceType } from \"../../common/internal/render/SurfaceParams\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { WebGLDisposable } from \"./Disposable\";\r\nimport { LineCode } from \"./LineCode\";\r\nimport { createMaterialInfo, MaterialInfo } from \"./Material\";\r\nimport { Texture } from \"./Texture\";\r\nimport { VertexLUT } from \"./VertexLUT\";\r\n\r\n/** @internal */\r\nexport class MeshData implements WebGLDisposable {\r\n public readonly edgeWidth: number;\r\n public readonly hasFeatures: boolean;\r\n public readonly uniformFeatureId?: number; // Used strictly by BatchPrimitiveCommand.computeIsFlashed for flashing volume classification primitives.\r\n public readonly texture?: Texture;\r\n public readonly normalMap?: Texture;\r\n public readonly constantLodVParams?: Float32Array; // size 3, contains texture offset x & y and fake ortho distance (which will be set during binding)\r\n public readonly constantLodFParams?: Float32Array; // size 3, texture min and max size in worl units\r\n public readonly textureUsesConstantLod?: boolean;\r\n public readonly normalMapUsesConstantLod?: boolean;\r\n public readonly materialInfo?: MaterialInfo;\r\n public readonly type: SurfaceType;\r\n public readonly fillFlags: FillFlags;\r\n public readonly edgeLineCode: number; // Must call LineCode.valueFromLinePixels(val: LinePixels) and set the output to edgeLineCode\r\n public readonly isPlanar: boolean;\r\n public readonly hasBakedLighting: boolean;\r\n public readonly lut: VertexLUT;\r\n public readonly viewIndependentOrigin?: Point3d;\r\n private readonly _textureAlwaysDisplayed: boolean;\r\n\r\n private constructor(lut: VertexLUT, params: MeshParams, viOrigin: Point3d | undefined) {\r\n this.lut = lut;\r\n this.viewIndependentOrigin = viOrigin;\r\n\r\n this.hasFeatures = FeatureIndexType.Empty !== params.vertices.featureIndexType;\r\n if (FeatureIndexType.Uniform === params.vertices.featureIndexType)\r\n this.uniformFeatureId = params.vertices.uniformFeatureID;\r\n\r\n this.textureUsesConstantLod = false;\r\n this.normalMapUsesConstantLod = false;\r\n if (undefined !== params.surface.textureMapping) {\r\n this.texture = params.surface.textureMapping.texture as Texture;\r\n this._textureAlwaysDisplayed = params.surface.textureMapping.alwaysDisplayed;\r\n if (undefined !== params.surface.material && !params.surface.material.isAtlas) {\r\n const matTM = params.surface.material.material.textureMapping;\r\n if (undefined !== matTM) {\r\n this.textureUsesConstantLod = this.texture && matTM.params.useConstantLod;\r\n if (undefined !== matTM.normalMapParams) {\r\n this.normalMapUsesConstantLod = matTM.normalMapParams.useConstantLod;\r\n if (undefined !== matTM.normalMapParams.normalMap) {\r\n this.normalMap = matTM.normalMapParams.normalMap as Texture;\r\n } else {\r\n // If there are normal map params but the normal map is not present, use the texture as a normal map instead of a pattern map.\r\n this.normalMap = this.texture;\r\n this.texture = undefined;\r\n }\r\n }\r\n if (this.normalMapUsesConstantLod || this.textureUsesConstantLod) {\r\n this.constantLodVParams = new Float32Array(3);\r\n this.constantLodVParams[0] = matTM.params.constantLodParams.offset.x; // x offset\r\n this.constantLodVParams[1] = matTM.params.constantLodParams.offset.y; // y offset\r\n this.constantLodVParams[3] = 0.0; // placeholder for orto view distance\r\n this.constantLodFParams = new Float32Array(3);\r\n this.constantLodFParams[0] = matTM.params.constantLodParams.minDistClamp; // Minimum texture size\r\n this.constantLodFParams[1] = matTM.params.constantLodParams.maxDistClamp; // Maximum texture size\r\n this.constantLodFParams[2] = matTM.params.constantLodParams.repetitions; // # repetitions of pattern (to scale it)\r\n }\r\n }\r\n }\r\n } else {\r\n this.texture = undefined;\r\n this._textureAlwaysDisplayed = false;\r\n }\r\n\r\n this.materialInfo = createMaterialInfo(params.surface.material);\r\n\r\n this.type = params.surface.type;\r\n this.fillFlags = params.surface.fillFlags;\r\n this.isPlanar = params.isPlanar;\r\n this.hasBakedLighting = params.surface.hasBakedLighting;\r\n const edges = params.edges;\r\n this.edgeWidth = undefined !== edges ? edges.weight : 1;\r\n this.edgeLineCode = LineCode.valueFromLinePixels(undefined !== edges ? edges.linePixels : LinePixels.Solid);\r\n }\r\n\r\n public static create(params: MeshParams, viOrigin: Point3d | undefined): MeshData | undefined {\r\n const lut = VertexLUT.createFromVertexTable(params.vertices, params.auxChannels);\r\n return undefined !== lut ? new MeshData(lut, params, viOrigin) : undefined;\r\n }\r\n\r\n public get isDisposed(): boolean { return undefined === this.texture && this.lut.isDisposed; }\r\n\r\n public dispose() {\r\n dispose(this.lut);\r\n if (this._ownsTexture)\r\n this.texture!.dispose();\r\n }\r\n\r\n public get isGlyph() { return undefined !== this.texture && this.texture.isGlyph; }\r\n public get isTextureAlwaysDisplayed() { return this.isGlyph || this._textureAlwaysDisplayed; }\r\n\r\n // Returns true if no one else owns this texture. Implies that the texture should be disposed when this object is disposed, and the texture's memory should be tracked as belonging to this object.\r\n private get _ownsTexture(): boolean {\r\n return undefined !== this.texture && !this.texture?.hasOwner;\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n stats.addVertexTable(this.lut.bytesUsed);\r\n if (this._ownsTexture)\r\n stats.addTexture(this.texture!.bytesUsed);\r\n }\r\n}\r\n"]}
|
|
@@ -19,7 +19,7 @@ export declare abstract class MeshGeometry extends LUTGeometry {
|
|
|
19
19
|
get edgeWidth(): number;
|
|
20
20
|
get edgeLineCode(): number;
|
|
21
21
|
get hasFeatures(): boolean;
|
|
22
|
-
get surfaceType(): import("../../
|
|
22
|
+
get surfaceType(): import("../../common/internal/render/SurfaceParams").SurfaceType;
|
|
23
23
|
get fillFlags(): import("@itwin/core-common").FillFlags;
|
|
24
24
|
get isPlanar(): boolean;
|
|
25
25
|
get colorInfo(): ColorInfo;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeshGeometry.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/MeshGeometry.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;GAEG;AACH,8BAAsB,YAAa,SAAQ,WAAW;IACpD,SAAgB,IAAI,EAAE,QAAQ,CAAC;IAC/B,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAEvC,IAAoB,MAAM,SAAmB;cAC1B,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IAGtE,IAAW,SAAS,WAAkC;IACtD,IAAW,YAAY,WAAqC;IAC5D,IAAoB,WAAW,YAAoC;IACnE,IAAW,WAAW,
|
|
1
|
+
{"version":3,"file":"MeshGeometry.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/MeshGeometry.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;GAEG;AACH,8BAAsB,YAAa,SAAQ,WAAW;IACpD,SAAgB,IAAI,EAAE,QAAQ,CAAC;IAC/B,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAEvC,IAAoB,MAAM,SAAmB;cAC1B,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IAGtE,IAAW,SAAS,WAAkC;IACtD,IAAW,YAAY,WAAqC;IAC5D,IAAoB,WAAW,YAAoC;IACnE,IAAW,WAAW,qEAA6B;IACnD,IAAW,SAAS,2CAAkC;IACtD,IAAW,QAAQ,YAAiC;IACpD,IAAW,SAAS,IAAI,SAAS,CAAoC;IACrE,IAAW,YAAY,IAAI,SAAS,GAAG,SAAS,CAA0E;IAC1H,IAAW,OAAO,4CAAgC;IAClD,IAAW,SAAS,4CAAkC;IACtD,IAAoB,gBAAgB,YAAyC;IAC7E,IAAW,GAAG,oCAA4B;IAC1C,IAAW,kBAAkB,YAA+C;IAE5E,SAAS,aAAa,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM;IAMxD,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IAGhE,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IAGlE,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAGrD,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAYhD"}
|
|
@@ -44,6 +44,8 @@ export declare class PlanarClassifier extends RenderPlanarClassifier implements
|
|
|
44
44
|
private _classifierTreeRef?;
|
|
45
45
|
private _planarClipMaskOverrides?;
|
|
46
46
|
private _contentMode;
|
|
47
|
+
private _removeMe?;
|
|
48
|
+
private _featureSymbologySource;
|
|
47
49
|
private static _postProjectionMatrix;
|
|
48
50
|
private _debugFrustum?;
|
|
49
51
|
private _doDebugFrustum;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlanarClassifier.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PlanarClassifier.ts"],"names":[],"mappings":"AAUA,OAAO,EACwD,8BAA8B,EAAE,+BAA+B,EAC7H,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"PlanarClassifier.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PlanarClassifier.ts"],"names":[],"mappings":"AAUA,OAAO,EACwD,8BAA8B,EAAE,+BAA+B,EAC7H,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAA4D,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAA6B,kCAAkC,EAAqB,MAAM,qBAAqB,CAAC;AACvH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAW/C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,OAAO,EAAiB,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAExE,oBAAY,uBAAuB;IAAG,IAAI,IAAI;IAAE,QAAQ,IAAI;IAAE,cAAc,IAAI;IAAE,iBAAiB,IAAI;CAAE;AAoMzG,gBAAgB;AAChB,qBAAa,gBAAiB,SAAQ,sBAAuB,YAAW,YAAY,CAAC,QAAQ,EAAE,eAAe;IAC5G,OAAO,CAAC,kBAAkB,CAAC,CAAyB;IACpD,OAAO,CAAC,WAAW,CAAC,CAAkB;IACtC,OAAO,CAAC,yBAAyB,CAAC,CAA8B;IAChE,OAAO,CAAC,gCAAgC,CAAC,CAAqC;IAC9E,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,SAAS,CAAC,CAAkB;IACpC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAuB;IAC3D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IACrD,OAAO,CAAC,QAAQ,CAAC,CAAU;IAC3B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,WAAW,CAAC,CAA0B;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqF;IAC5G,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,eAAe,CAAC,CAAsB;IAC9C,OAAO,CAAC,kBAAkB,CAAC,CAAqC;IAChE,OAAO,CAAC,wBAAwB,CAAC,CAA6B;IAC9D,OAAO,CAAC,YAAY,CAAyD;IAC7E,OAAO,CAAC,SAAS,CAAC,CAAa;IAC/B,OAAO,CAAC,uBAAuB,CAE7B;IAEF,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAItB;IACd,OAAO,CAAC,aAAa,CAAC,CAAU;IAChC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,oBAAoB,CAAC,CAA4B;IACzD,OAAO,CAAC,wBAAwB,CAAC,CAAU;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IAExD,OAAO;IAUP,IAAW,iBAAiB,IAAI,MAAM,CAA8B;IAE7D,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAW5C,IAAW,aAAa,IAAI,OAAO,GAAG,SAAS,CAAwG;IACvJ,IAAW,gBAAgB,IAAI,QAAQ,CAAmC;IAE1E,IAAW,WAAW,IAAI,MAAM,CAA8B;IAC9D,IAAW,UAAU,IAAI,OAAO,CAA6B;IAC7D,IAAW,SAAS,IAAI,OAAO,CAA4B;IAC3D,IAAW,cAAc,IAAI,OAAO,CAAiC;IACrE,IAAW,aAAa,IAAI,8BAA8B,CAAkG;IAC5J,IAAW,cAAc,IAAI,+BAA+B,CAAmG;IAC/J,IAAW,uBAAuB,IAAI,OAAO,CAAmD;IAEzF,UAAU,CAAC,OAAO,EAAE,aAAa;WAI1B,MAAM,CAAC,UAAU,EAAE,uBAAuB,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB;IAIhG,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAc9D,IAAW,UAAU,IAAI,OAAO,CAAkD;IAE3E,OAAO;IAYd,IAAW,OAAO,IAAI,OAAO,GAAG,SAAS,CAWxC;IACM,4BAA4B,IAAI,OAAO,GAAG,SAAS;IAS1D,OAAO,CAAC,WAAW;IAUnB,IAAW,kBAAkB,uBAE5B;IAEM,cAAc,CAAC,UAAU,EAAE,UAAU;IAMrC,SAAS,CAAC,iBAAiB,CAAC,EAAE,kCAAkC,EAAE,cAAc,CAAC,EAAE,mBAAmB;IAMtG,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAuF5E,IAAI,CAAC,MAAM,EAAE,MAAM;CAkI3B"}
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
/** @packageDocumentation
|
|
6
6
|
* @module WebGL
|
|
7
7
|
*/
|
|
8
|
-
import { dispose } from "@itwin/core-bentley";
|
|
8
|
+
import { BeEvent, dispose } from "@itwin/core-bentley";
|
|
9
9
|
import { ColorDef, FrustumPlanes, RenderMode, RenderTexture, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, TextureTransparency, } from "@itwin/core-common";
|
|
10
|
-
import { Matrix4d, Plane3dByOriginAndUnitNormal, Point3d, Vector3d } from "@itwin/core-geometry";
|
|
10
|
+
import { Matrix4d, Plane3dByOriginAndUnitNormal, Point3d, Range3d, Vector3d } from "@itwin/core-geometry";
|
|
11
11
|
import { GraphicsCollectorDrawArgs } from "../../tile/internal";
|
|
12
12
|
import { RenderPlanarClassifier } from "../RenderPlanarClassifier";
|
|
13
13
|
import { BatchState } from "./BatchState";
|
|
@@ -199,6 +199,7 @@ class ClassifierAndMaskCombinationBuffer extends CombineTexturesFrameBuffer {
|
|
|
199
199
|
const scratchPrevRenderState = new RenderState();
|
|
200
200
|
/** @internal */
|
|
201
201
|
export class PlanarClassifier extends RenderPlanarClassifier {
|
|
202
|
+
;
|
|
202
203
|
constructor(classifier, target) {
|
|
203
204
|
super();
|
|
204
205
|
this._projectionMatrix = Matrix4d.createIdentity();
|
|
@@ -214,6 +215,9 @@ export class PlanarClassifier extends RenderPlanarClassifier {
|
|
|
214
215
|
this._renderState = new RenderState();
|
|
215
216
|
this._branchStack = new BranchStack();
|
|
216
217
|
this._contentMode = PlanarClassifierContent.None;
|
|
218
|
+
this._featureSymbologySource = {
|
|
219
|
+
onSourceDisposed: new BeEvent(),
|
|
220
|
+
};
|
|
217
221
|
this._doDebugFrustum = false;
|
|
218
222
|
this._debugFrustumGraphic = undefined;
|
|
219
223
|
this._bgColor = ColorDef.from(0, 0, 0, 255);
|
|
@@ -264,6 +268,11 @@ export class PlanarClassifier extends RenderPlanarClassifier {
|
|
|
264
268
|
this._maskBuffer = dispose(this._maskBuffer);
|
|
265
269
|
this._classifierCombinedBuffer = dispose(this._classifierCombinedBuffer);
|
|
266
270
|
this._classifierAndMaskCombinedBuffer = dispose(this._classifierAndMaskCombinedBuffer);
|
|
271
|
+
if (this._removeMe) {
|
|
272
|
+
this._removeMe();
|
|
273
|
+
this._removeMe = undefined;
|
|
274
|
+
}
|
|
275
|
+
this._featureSymbologySource.onSourceDisposed.raiseEvent();
|
|
267
276
|
}
|
|
268
277
|
get texture() {
|
|
269
278
|
switch (this._contentMode) {
|
|
@@ -313,27 +322,40 @@ export class PlanarClassifier extends RenderPlanarClassifier {
|
|
|
313
322
|
if (undefined === context.viewingSpace)
|
|
314
323
|
return;
|
|
315
324
|
const viewState = context.viewingSpace.view;
|
|
316
|
-
if (
|
|
325
|
+
if (!viewState.isSpatialView())
|
|
317
326
|
return;
|
|
318
|
-
|
|
319
|
-
const
|
|
327
|
+
this._doDebugFrustum = context.target.debugControl?.displayMaskFrustum ?? false;
|
|
328
|
+
const maxTextureSize = System.instance.maxTexSizeAllow;
|
|
329
|
+
const requiredHeight = maxTextureSize;
|
|
330
|
+
const requiredWidth = maxTextureSize;
|
|
320
331
|
if (requiredWidth !== this._width || requiredHeight !== this._height)
|
|
321
332
|
this.dispose();
|
|
322
333
|
this._width = requiredWidth;
|
|
323
334
|
this._height = requiredHeight;
|
|
324
|
-
const
|
|
335
|
+
const maskRange = Range3d.createNull();
|
|
336
|
+
const maskTrees = this._planarClipMask?.getTileTrees(viewState, target.modelId, maskRange);
|
|
325
337
|
if (!maskTrees && !this._classifierTreeRef)
|
|
326
338
|
return;
|
|
327
339
|
const allTrees = maskTrees ? maskTrees.slice() : new Array();
|
|
328
340
|
if (this._classifierTreeRef)
|
|
329
341
|
allTrees.push(this._classifierTreeRef);
|
|
330
|
-
const projection = PlanarTextureProjection.computePlanarTextureProjection(this._plane, context, target, allTrees, viewState, this._width, this._height);
|
|
342
|
+
const projection = PlanarTextureProjection.computePlanarTextureProjection(this._plane, context, target, allTrees, viewState, this._width, this._height, maskRange);
|
|
331
343
|
if (!projection.textureFrustum || !projection.projectionMatrix || !projection.worldToViewMap)
|
|
332
344
|
return;
|
|
333
345
|
this._projectionMatrix = projection.projectionMatrix;
|
|
334
346
|
this._frustum = projection.textureFrustum;
|
|
335
347
|
this._debugFrustum = projection.debugFrustum;
|
|
336
|
-
this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides();
|
|
348
|
+
this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides(viewState, context, this._featureSymbologySource);
|
|
349
|
+
if (!this._planarClipMask?.usingViewportOverrides && this._removeMe) {
|
|
350
|
+
this._removeMe();
|
|
351
|
+
this._removeMe = undefined;
|
|
352
|
+
}
|
|
353
|
+
else if (this._planarClipMask?.usingViewportOverrides && !this._removeMe) {
|
|
354
|
+
this._removeMe = context.viewport.onFeatureOverridesChanged.addListener(() => {
|
|
355
|
+
this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides(viewState, context, this._featureSymbologySource);
|
|
356
|
+
context.viewport.requestRedraw();
|
|
357
|
+
});
|
|
358
|
+
}
|
|
337
359
|
const drawTree = (treeRef, graphics) => {
|
|
338
360
|
this._graphics = graphics;
|
|
339
361
|
const frustumPlanes = this._frustum ? FrustumPlanes.fromFrustum(this._frustum) : FrustumPlanes.createEmpty();
|
|
@@ -351,13 +373,20 @@ export class PlanarClassifier extends RenderPlanarClassifier {
|
|
|
351
373
|
if (this._doDebugFrustum) {
|
|
352
374
|
this._debugFrustumGraphic = dispose(this._debugFrustumGraphic);
|
|
353
375
|
const builder = context.createSceneGraphicBuilder();
|
|
354
|
-
builder.setSymbology(ColorDef.green, ColorDef.green,
|
|
376
|
+
builder.setSymbology(ColorDef.green, ColorDef.green, 2);
|
|
355
377
|
builder.addFrustum(context.viewingSpace.getFrustum());
|
|
356
|
-
builder.setSymbology(ColorDef.red, ColorDef.red,
|
|
378
|
+
builder.setSymbology(ColorDef.red, ColorDef.red, 2);
|
|
357
379
|
builder.addFrustum(this._debugFrustum);
|
|
358
|
-
builder.setSymbology(ColorDef.
|
|
380
|
+
builder.setSymbology(ColorDef.blue, ColorDef.blue, 2);
|
|
359
381
|
builder.addFrustum(this._frustum);
|
|
382
|
+
builder.setSymbology(ColorDef.from(0, 200, 0, 222), ColorDef.from(0, 200, 0, 222), 2);
|
|
383
|
+
builder.addFrustumSides(context.viewingSpace.getFrustum());
|
|
384
|
+
builder.setSymbology(ColorDef.from(200, 0, 0, 222), ColorDef.from(200, 0, 0, 222), 2);
|
|
385
|
+
builder.addFrustumSides(this._debugFrustum);
|
|
386
|
+
builder.setSymbology(ColorDef.from(0, 0, 200, 222), ColorDef.from(0, 0, 200, 222), 2);
|
|
387
|
+
builder.addFrustumSides(this._frustum);
|
|
360
388
|
this._debugFrustumGraphic = builder.finish();
|
|
389
|
+
context.outputGraphic(this._debugFrustumGraphic);
|
|
361
390
|
}
|
|
362
391
|
}
|
|
363
392
|
draw(target) {
|
|
@@ -408,8 +437,6 @@ export class PlanarClassifier extends RenderPlanarClassifier {
|
|
|
408
437
|
this._contentMode = PlanarClassifierContent.ClassifierAndMask;
|
|
409
438
|
}
|
|
410
439
|
}
|
|
411
|
-
if (undefined !== this._debugFrustumGraphic)
|
|
412
|
-
target.graphics.foreground.push(this._debugFrustumGraphic);
|
|
413
440
|
// Temporarily override the Target's state.
|
|
414
441
|
const system = System.instance;
|
|
415
442
|
const maskViewFlags = {
|