@itwin/core-frontend 4.8.0-dev.32 → 4.8.0-dev.34
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/README.md +9 -1
- package/lib/cjs/AccuDraw.d.ts.map +1 -1
- package/lib/cjs/AccuDraw.js +4 -4
- package/lib/cjs/AccuDraw.js.map +1 -1
- package/lib/cjs/AccuSnap.js +1 -1
- 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/IModelConnection.d.ts +1 -1
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +1 -1
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/IpcApp.d.ts +1 -1
- package/lib/cjs/IpcApp.d.ts.map +1 -1
- package/lib/cjs/IpcApp.js +1 -1
- package/lib/cjs/IpcApp.js.map +1 -1
- package/lib/cjs/LocalhostIpcApp.js +1 -1
- package/lib/cjs/LocalhostIpcApp.js.map +1 -1
- package/lib/cjs/NativeApp.js +1 -1
- package/lib/cjs/NativeApp.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/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/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +2 -2
- 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/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/{esm → cjs/common}/internal/Symbols.d.ts +2 -0
- package/lib/cjs/common/internal/Symbols.d.ts.map +1 -0
- package/lib/cjs/{internal → common/internal}/Symbols.js +3 -1
- 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/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 +64 -0
- package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js +270 -0
- package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.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/{render/primitives/mesh → common/internal/render}/MeshPrimitives.d.ts +5 -9
- package/lib/cjs/common/internal/render/MeshPrimitives.d.ts.map +1 -0
- package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshPrimitives.js +4 -11
- 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 +10 -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 +4 -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/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 +154 -0
- package/lib/cjs/common/render/GraphicDescriptionBuilder.d.ts.map +1 -0
- package/lib/cjs/common/render/GraphicDescriptionBuilder.js +43 -0
- package/lib/cjs/common/render/GraphicDescriptionBuilder.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 +13 -0
- package/lib/cjs/common.d.ts.map +1 -0
- package/lib/cjs/common.js +34 -0
- package/lib/cjs/common.js.map +1 -0
- package/lib/cjs/core-frontend.d.ts +2 -43
- package/lib/cjs/core-frontend.d.ts.map +1 -1
- package/lib/cjs/core-frontend.js +2 -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 +3 -1
- package/lib/cjs/internal/cross-package.d.ts.map +1 -1
- package/lib/cjs/internal/cross-package.js +6 -2
- package/lib/cjs/internal/cross-package.js.map +1 -1
- 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/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 -258
- package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBuilder.js +18 -284
- package/lib/cjs/render/GraphicBuilder.js.map +1 -1
- package/lib/cjs/render/MockRender.d.ts +5 -5
- package/lib/cjs/render/MockRender.d.ts.map +1 -1
- package/lib/cjs/render/MockRender.js +2 -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/RealityMeshParams.js +1 -1
- package/lib/cjs/render/RealityMeshParams.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +33 -7
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js +55 -6
- package/lib/cjs/render/RenderSystem.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 +1 -1
- package/lib/cjs/render/webgl/Material.d.ts.map +1 -1
- 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/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/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.map +1 -1
- package/lib/cjs/render/webgl/Target.js +1 -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/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 -1
- package/lib/cjs/tile/B3dmReader.js.map +1 -1
- package/lib/cjs/tile/GltfReader.d.ts +5 -5
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +6 -6
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/I3dmReader.d.ts +1 -1
- 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 +3 -0
- package/lib/cjs/tile/ImdlGraphicsCreator.d.ts.map +1 -1
- package/lib/cjs/tile/ImdlGraphicsCreator.js +87 -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/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.js +1 -1
- package/lib/cjs/tile/PrimaryTileTree.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/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/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/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.map +1 -1
- package/lib/esm/AccuDraw.js +1 -1
- package/lib/esm/AccuDraw.js.map +1 -1
- package/lib/esm/AccuSnap.js +1 -1
- 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/IModelConnection.d.ts +1 -1
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +1 -1
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/IpcApp.d.ts +1 -1
- package/lib/esm/IpcApp.d.ts.map +1 -1
- package/lib/esm/IpcApp.js +1 -1
- package/lib/esm/IpcApp.js.map +1 -1
- package/lib/esm/LocalhostIpcApp.js +1 -1
- package/lib/esm/LocalhostIpcApp.js.map +1 -1
- package/lib/esm/NativeApp.js +1 -1
- package/lib/esm/NativeApp.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/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/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +1 -1
- 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/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/{cjs → esm/common}/internal/Symbols.d.ts +2 -0
- package/lib/esm/common/internal/Symbols.d.ts.map +1 -0
- package/lib/esm/{internal → common/internal}/Symbols.js +2 -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/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 +64 -0
- package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.d.ts.map +1 -0
- package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js +263 -0
- package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.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/{render/primitives/mesh → common/internal/render}/MeshPrimitives.d.ts +5 -9
- package/lib/esm/common/internal/render/MeshPrimitives.d.ts.map +1 -0
- package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshPrimitives.js +4 -11
- 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 +10 -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 +4 -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/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 +154 -0
- package/lib/esm/common/render/GraphicDescriptionBuilder.d.ts.map +1 -0
- package/lib/esm/common/render/GraphicDescriptionBuilder.js +40 -0
- package/lib/esm/common/render/GraphicDescriptionBuilder.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 +13 -0
- package/lib/esm/common.d.ts.map +1 -0
- package/lib/esm/common.js +18 -0
- package/lib/esm/common.js.map +1 -0
- package/lib/esm/core-frontend.d.ts +2 -43
- package/lib/esm/core-frontend.d.ts.map +1 -1
- package/lib/esm/core-frontend.js +2 -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 +3 -1
- package/lib/esm/internal/cross-package.d.ts.map +1 -1
- package/lib/esm/internal/cross-package.js +3 -1
- package/lib/esm/internal/cross-package.js.map +1 -1
- 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/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 -258
- package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
- package/lib/esm/render/GraphicBuilder.js +18 -284
- package/lib/esm/render/GraphicBuilder.js.map +1 -1
- package/lib/esm/render/MockRender.d.ts +5 -5
- package/lib/esm/render/MockRender.d.ts.map +1 -1
- package/lib/esm/render/MockRender.js +1 -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/RealityMeshParams.js +1 -1
- package/lib/esm/render/RealityMeshParams.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +33 -7
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js +55 -6
- package/lib/esm/render/RenderSystem.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 +1 -1
- package/lib/esm/render/webgl/Material.d.ts.map +1 -1
- 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/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/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.map +1 -1
- package/lib/esm/render/webgl/Target.js +1 -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/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 -1
- package/lib/esm/tile/B3dmReader.js.map +1 -1
- package/lib/esm/tile/GltfReader.d.ts +5 -5
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +6 -6
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/I3dmReader.d.ts +1 -1
- 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 +3 -0
- package/lib/esm/tile/ImdlGraphicsCreator.d.ts.map +1 -1
- package/lib/esm/tile/ImdlGraphicsCreator.js +87 -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/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.js +1 -1
- package/lib/esm/tile/PrimaryTileTree.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/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/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/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/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 +0 -10
- 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/internal/Symbols.d.ts.map +0 -1
- package/lib/cjs/internal/Symbols.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.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 +0 -9
- 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/internal/Symbols.d.ts.map +0 -1
- package/lib/esm/internal/Symbols.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.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/common/{render/primitives → internal/render}/DisplayParams.js +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/common/{render/primitives → internal/render}/VertexTableSplitter.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/common/{render/primitives → internal/render}/DisplayParams.js +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/common/{render/primitives → internal/render}/VertexTableSplitter.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,176 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
/** @packageDocumentation
|
|
7
|
-
* @module Rendering
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.PrimitiveBuilder = exports.GeometryListBuilder = void 0;
|
|
11
|
-
const core_geometry_1 = require("@itwin/core-geometry");
|
|
12
|
-
const core_common_1 = require("@itwin/core-common");
|
|
13
|
-
const GraphicBuilder_1 = require("../../GraphicBuilder");
|
|
14
|
-
const DisplayParams_1 = require("../../../common/render/primitives/DisplayParams");
|
|
15
|
-
const Primitives_1 = require("../Primitives");
|
|
16
|
-
const GeometryAccumulator_1 = require("./GeometryAccumulator");
|
|
17
|
-
function copy2dTo3d(pts2d, depth) {
|
|
18
|
-
const pts3d = [];
|
|
19
|
-
for (const point of pts2d)
|
|
20
|
-
pts3d.push(core_geometry_1.Point3d.create(point.x, point.y, depth));
|
|
21
|
-
return pts3d;
|
|
22
|
-
}
|
|
23
|
-
/** @internal */
|
|
24
|
-
class GeometryListBuilder extends GraphicBuilder_1.GraphicBuilder {
|
|
25
|
-
constructor(system, options, accumulatorTransform = core_geometry_1.Transform.identity) {
|
|
26
|
-
super(options);
|
|
27
|
-
this.graphicParams = new core_common_1.GraphicParams();
|
|
28
|
-
this.accum = new GeometryAccumulator_1.GeometryAccumulator({
|
|
29
|
-
system,
|
|
30
|
-
transform: accumulatorTransform,
|
|
31
|
-
analysisStyleDisplacement: this.analysisStyle?.displacement,
|
|
32
|
-
viewIndependentOrigin: options.viewIndependentOrigin,
|
|
33
|
-
});
|
|
34
|
-
if (this.pickable)
|
|
35
|
-
this.activateFeature(new core_common_1.Feature(this.pickable.id, this.pickable.subCategoryId, this.pickable.geometryClass));
|
|
36
|
-
}
|
|
37
|
-
finish() {
|
|
38
|
-
const graphic = this.finishGraphic(this.accum);
|
|
39
|
-
this.accum.clear();
|
|
40
|
-
return graphic;
|
|
41
|
-
}
|
|
42
|
-
activateGraphicParams(graphicParams) {
|
|
43
|
-
graphicParams.clone(this.graphicParams);
|
|
44
|
-
}
|
|
45
|
-
_activateFeature(feature) {
|
|
46
|
-
this.accum.currentFeature = feature;
|
|
47
|
-
}
|
|
48
|
-
addArc2d(ellipse, isEllipse, filled, zDepth) {
|
|
49
|
-
if (0.0 === zDepth) {
|
|
50
|
-
this.addArc(ellipse, isEllipse, filled);
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
const ell = ellipse;
|
|
54
|
-
ell.center.z = zDepth;
|
|
55
|
-
this.addArc(ell, isEllipse, filled);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
addArc(ellipse, isEllipse, filled) {
|
|
59
|
-
let curve;
|
|
60
|
-
if (isEllipse || filled) {
|
|
61
|
-
curve = core_geometry_1.Loop.create(ellipse);
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
curve = core_geometry_1.Path.create(ellipse);
|
|
65
|
-
}
|
|
66
|
-
if (filled && !isEllipse && !ellipse.sweep.isFullCircle) {
|
|
67
|
-
const gapSegment = core_geometry_1.LineSegment3d.create(ellipse.startPoint(), ellipse.endPoint());
|
|
68
|
-
gapSegment.markerBits = 0x00010000; // Set the CURVE_PRIMITIVE_BIT_GapCurve marker bit
|
|
69
|
-
curve.children.push(gapSegment);
|
|
70
|
-
}
|
|
71
|
-
const displayParams = curve.isAnyRegionType ? this.getMeshDisplayParams() : this.getLinearDisplayParams();
|
|
72
|
-
if (curve instanceof core_geometry_1.Loop)
|
|
73
|
-
this.accum.addLoop(curve, displayParams, this.placement, false);
|
|
74
|
-
else
|
|
75
|
-
this.accum.addPath(curve, displayParams, this.placement, false);
|
|
76
|
-
}
|
|
77
|
-
/** take ownership of input points and add as a line string to this builder */
|
|
78
|
-
addLineString(points) {
|
|
79
|
-
if (2 === points.length && points[0].isAlmostEqual(points[1]))
|
|
80
|
-
this.accum.addPointString(points, this.getLinearDisplayParams(), this.placement);
|
|
81
|
-
else
|
|
82
|
-
this.accum.addLineString(points, this.getLinearDisplayParams(), this.placement);
|
|
83
|
-
}
|
|
84
|
-
addLineString2d(points, zDepth) {
|
|
85
|
-
const pts3d = copy2dTo3d(points, zDepth);
|
|
86
|
-
this.addLineString(pts3d);
|
|
87
|
-
}
|
|
88
|
-
/** take ownership of input points and add as a point string to this builder */
|
|
89
|
-
addPointString(points) {
|
|
90
|
-
this.accum.addPointString(points, this.getLinearDisplayParams(), this.placement);
|
|
91
|
-
}
|
|
92
|
-
addPointString2d(points, zDepth) {
|
|
93
|
-
const pts3d = copy2dTo3d(points, zDepth);
|
|
94
|
-
this.addPointString(pts3d);
|
|
95
|
-
}
|
|
96
|
-
addShape(points) {
|
|
97
|
-
const loop = core_geometry_1.Loop.create(core_geometry_1.LineString3d.create(points));
|
|
98
|
-
this.accum.addLoop(loop, this.getMeshDisplayParams(), this.placement, false);
|
|
99
|
-
}
|
|
100
|
-
addShape2d(points, zDepth) {
|
|
101
|
-
const pts3d = copy2dTo3d(points, zDepth);
|
|
102
|
-
this.addShape(pts3d);
|
|
103
|
-
}
|
|
104
|
-
addPath(path) {
|
|
105
|
-
this.accum.addPath(path, this.getLinearDisplayParams(), this.placement, false);
|
|
106
|
-
}
|
|
107
|
-
addLoop(loop) {
|
|
108
|
-
this.accum.addLoop(loop, this.getMeshDisplayParams(), this.placement, false);
|
|
109
|
-
}
|
|
110
|
-
addPolyface(meshData) {
|
|
111
|
-
this.accum.addPolyface(meshData, this.getMeshDisplayParams(), this.placement);
|
|
112
|
-
}
|
|
113
|
-
addSolidPrimitive(primitive) {
|
|
114
|
-
this.accum.addSolidPrimitive(primitive, this.getMeshDisplayParams(), this.placement);
|
|
115
|
-
}
|
|
116
|
-
getGraphicParams() { return this.graphicParams; }
|
|
117
|
-
getDisplayParams(type) { return DisplayParams_1.DisplayParams.createForType(type, this.graphicParams); }
|
|
118
|
-
getMeshDisplayParams() { return DisplayParams_1.DisplayParams.createForMesh(this.graphicParams, !this.wantNormals, (grad) => this.resolveGradient(grad)); }
|
|
119
|
-
getLinearDisplayParams() { return DisplayParams_1.DisplayParams.createForLinear(this.graphicParams); }
|
|
120
|
-
get textDisplayParams() { return DisplayParams_1.DisplayParams.createForText(this.graphicParams); }
|
|
121
|
-
get system() { return this.accum.system; }
|
|
122
|
-
add(geom) { this.accum.addGeometry(geom); }
|
|
123
|
-
resolveGradient(gradient) {
|
|
124
|
-
return this.system.getGradientTexture(gradient, this.iModel);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
exports.GeometryListBuilder = GeometryListBuilder;
|
|
128
|
-
// Set to true to add a range box to every graphic produced by PrimitiveBuilder.
|
|
129
|
-
let addDebugRangeBox = false;
|
|
130
|
-
/** @internal */
|
|
131
|
-
class PrimitiveBuilder extends GeometryListBuilder {
|
|
132
|
-
constructor() {
|
|
133
|
-
super(...arguments);
|
|
134
|
-
this.primitives = [];
|
|
135
|
-
}
|
|
136
|
-
finishGraphic(accum) {
|
|
137
|
-
let meshes;
|
|
138
|
-
let range;
|
|
139
|
-
let featureTable;
|
|
140
|
-
if (!accum.isEmpty) {
|
|
141
|
-
// Overlay decorations don't test Z. Tools like to layer multiple primitives on top of one another; they rely on the primitives rendering
|
|
142
|
-
// in that same order to produce correct results (e.g., a thin line rendered atop a thick line of another color).
|
|
143
|
-
// No point generating edges for graphics that are always rendered in smooth shade mode.
|
|
144
|
-
const options = Primitives_1.GeometryOptions.createForGraphicBuilder(this);
|
|
145
|
-
const tolerance = this.computeTolerance(accum);
|
|
146
|
-
meshes = accum.saveToGraphicList(this.primitives, options, tolerance, this.pickable);
|
|
147
|
-
if (undefined !== meshes) {
|
|
148
|
-
if (meshes.features?.anyDefined)
|
|
149
|
-
featureTable = meshes.features;
|
|
150
|
-
range = meshes.range;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
let graphic = (this.primitives.length !== 1) ? this.accum.system.createGraphicList(this.primitives) : this.primitives.pop();
|
|
154
|
-
if (undefined !== featureTable) {
|
|
155
|
-
const batchRange = range ?? new core_geometry_1.Range3d();
|
|
156
|
-
const batchOptions = this._options.pickable;
|
|
157
|
-
graphic = this.accum.system.createBatch(graphic, core_common_1.PackedFeatureTable.pack(featureTable), batchRange, batchOptions);
|
|
158
|
-
}
|
|
159
|
-
if (addDebugRangeBox && range) {
|
|
160
|
-
addDebugRangeBox = false;
|
|
161
|
-
const builder = this.accum.system.createGraphic({ ...this._options });
|
|
162
|
-
builder.addRangeBox(range);
|
|
163
|
-
graphic = this.accum.system.createGraphicList([graphic, builder.finish()]);
|
|
164
|
-
addDebugRangeBox = true;
|
|
165
|
-
}
|
|
166
|
-
return graphic;
|
|
167
|
-
}
|
|
168
|
-
computeTolerance(accum) {
|
|
169
|
-
return this._computeChordTolerance({
|
|
170
|
-
graphic: this,
|
|
171
|
-
computeRange: () => accum.geometries.computeRange(),
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
exports.PrimitiveBuilder = PrimitiveBuilder;
|
|
176
|
-
//# sourceMappingURL=GeometryListBuilder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GeometryListBuilder.js","sourceRoot":"","sources":["../../../../../src/render/primitives/geometry/GeometryListBuilder.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 Rendering\r\n */\r\n\r\nimport {\r\n Arc3d, CurvePrimitive, IndexedPolyface, LineSegment3d, LineString3d, Loop, Path, Point2d, Point3d, Polyface, Range3d, SolidPrimitive, Transform,\r\n} from \"@itwin/core-geometry\";\r\nimport { Feature, FeatureTable, Gradient, GraphicParams, PackedFeatureTable, RenderTexture } from \"@itwin/core-common\";\r\nimport { CustomGraphicBuilderOptions, GraphicBuilder, ViewportGraphicBuilderOptions } from \"../../GraphicBuilder\";\r\nimport { RenderGraphic } from \"../../RenderGraphic\";\r\nimport { RenderSystem } from \"../../RenderSystem\";\r\nimport { DisplayParams } from \"../../../common/render/primitives/DisplayParams\";\r\nimport { GeometryOptions } from \"../Primitives\";\r\nimport { GeometryAccumulator } from \"./GeometryAccumulator\";\r\nimport { Geometry } from \"./GeometryPrimitives\";\r\nimport { MeshList } from \"../mesh/MeshPrimitives\";\r\n\r\nfunction copy2dTo3d(pts2d: Point2d[], depth: number): Point3d[] {\r\n const pts3d: Point3d[] = [];\r\n for (const point of pts2d)\r\n pts3d.push(Point3d.create(point.x, point.y, depth));\r\n return pts3d;\r\n}\r\n\r\n/** @internal */\r\nexport abstract class GeometryListBuilder extends GraphicBuilder {\r\n public accum: GeometryAccumulator;\r\n public readonly graphicParams: GraphicParams = new GraphicParams();\r\n\r\n public abstract finishGraphic(accum: GeometryAccumulator): RenderGraphic; // Invoked by Finish() to obtain the finished RenderGraphic.\r\n\r\n public constructor(system: RenderSystem, options: ViewportGraphicBuilderOptions | CustomGraphicBuilderOptions, accumulatorTransform = Transform.identity) {\r\n super(options);\r\n this.accum = new GeometryAccumulator({\r\n system,\r\n transform: accumulatorTransform,\r\n analysisStyleDisplacement: this.analysisStyle?.displacement,\r\n viewIndependentOrigin: options.viewIndependentOrigin,\r\n });\r\n\r\n if (this.pickable)\r\n this.activateFeature(new Feature(this.pickable.id, this.pickable.subCategoryId, this.pickable.geometryClass));\r\n }\r\n\r\n public finish(): RenderGraphic {\r\n const graphic = this.finishGraphic(this.accum);\r\n this.accum.clear();\r\n return graphic;\r\n }\r\n\r\n public activateGraphicParams(graphicParams: GraphicParams): void {\r\n graphicParams.clone(this.graphicParams);\r\n }\r\n\r\n protected override _activateFeature(feature: Feature): void {\r\n this.accum.currentFeature = feature;\r\n }\r\n\r\n public addArc2d(ellipse: Arc3d, isEllipse: boolean, filled: boolean, zDepth: number): void {\r\n if (0.0 === zDepth) {\r\n this.addArc(ellipse, isEllipse, filled);\r\n } else {\r\n const ell: Arc3d = ellipse;\r\n ell.center.z = zDepth;\r\n this.addArc(ell, isEllipse, filled);\r\n }\r\n }\r\n\r\n public addArc(ellipse: Arc3d, isEllipse: boolean, filled: boolean): void {\r\n let curve;\r\n if (isEllipse || filled) {\r\n curve = Loop.create(ellipse);\r\n } else {\r\n curve = Path.create(ellipse);\r\n }\r\n\r\n if (filled && !isEllipse && !ellipse.sweep.isFullCircle) {\r\n const gapSegment: CurvePrimitive = LineSegment3d.create(ellipse.startPoint(), ellipse.endPoint());\r\n (gapSegment as any).markerBits = 0x00010000; // Set the CURVE_PRIMITIVE_BIT_GapCurve marker bit\r\n curve.children.push(gapSegment);\r\n }\r\n const displayParams = curve.isAnyRegionType ? this.getMeshDisplayParams() : this.getLinearDisplayParams();\r\n if (curve instanceof Loop)\r\n this.accum.addLoop(curve, displayParams, this.placement, false);\r\n else\r\n this.accum.addPath(curve, displayParams, this.placement, false);\r\n }\r\n\r\n /** take ownership of input points and add as a line string to this builder */\r\n public addLineString(points: Point3d[]): void {\r\n if (2 === points.length && points[0].isAlmostEqual(points[1]))\r\n this.accum.addPointString(points, this.getLinearDisplayParams(), this.placement);\r\n else\r\n this.accum.addLineString(points, this.getLinearDisplayParams(), this.placement);\r\n }\r\n\r\n public addLineString2d(points: Point2d[], zDepth: number): void {\r\n const pts3d = copy2dTo3d(points, zDepth);\r\n this.addLineString(pts3d);\r\n }\r\n\r\n /** take ownership of input points and add as a point string to this builder */\r\n public addPointString(points: Point3d[]): void {\r\n this.accum.addPointString(points, this.getLinearDisplayParams(), this.placement);\r\n }\r\n\r\n public addPointString2d(points: Point2d[], zDepth: number): void {\r\n const pts3d = copy2dTo3d(points, zDepth);\r\n this.addPointString(pts3d);\r\n }\r\n\r\n public addShape(points: Point3d[]): void {\r\n const loop = Loop.create(LineString3d.create(points));\r\n this.accum.addLoop(loop, this.getMeshDisplayParams(), this.placement, false);\r\n }\r\n\r\n public addShape2d(points: Point2d[], zDepth: number): void {\r\n const pts3d = copy2dTo3d(points, zDepth);\r\n this.addShape(pts3d);\r\n }\r\n\r\n public addPath(path: Path): void {\r\n this.accum.addPath(path, this.getLinearDisplayParams(), this.placement, false);\r\n }\r\n\r\n public addLoop(loop: Loop): void {\r\n this.accum.addLoop(loop, this.getMeshDisplayParams(), this.placement, false);\r\n }\r\n\r\n public addPolyface(meshData: Polyface): void {\r\n this.accum.addPolyface(meshData as IndexedPolyface, this.getMeshDisplayParams(), this.placement);\r\n }\r\n\r\n public addSolidPrimitive(primitive: SolidPrimitive): void {\r\n this.accum.addSolidPrimitive(primitive, this.getMeshDisplayParams(), this.placement);\r\n }\r\n\r\n public getGraphicParams(): GraphicParams { return this.graphicParams; }\r\n\r\n public getDisplayParams(type: DisplayParams.Type): DisplayParams { return DisplayParams.createForType(type, this.graphicParams); }\r\n public getMeshDisplayParams(): DisplayParams { return DisplayParams.createForMesh(this.graphicParams, !this.wantNormals, (grad) => this.resolveGradient(grad)); }\r\n public getLinearDisplayParams(): DisplayParams { return DisplayParams.createForLinear(this.graphicParams); }\r\n public get textDisplayParams(): DisplayParams { return DisplayParams.createForText(this.graphicParams); }\r\n\r\n public get system(): RenderSystem { return this.accum.system; }\r\n\r\n public add(geom: Geometry): void { this.accum.addGeometry(geom); }\r\n\r\n private resolveGradient(gradient: Gradient.Symb): RenderTexture | undefined {\r\n return this.system.getGradientTexture(gradient, this.iModel);\r\n }\r\n}\r\n\r\n// Set to true to add a range box to every graphic produced by PrimitiveBuilder.\r\nlet addDebugRangeBox = false;\r\n\r\n/** @internal */\r\nexport class PrimitiveBuilder extends GeometryListBuilder {\r\n public primitives: RenderGraphic[] = [];\r\n\r\n public finishGraphic(accum: GeometryAccumulator): RenderGraphic {\r\n let meshes: MeshList | undefined;\r\n let range: Range3d | undefined;\r\n let featureTable: FeatureTable | undefined;\r\n if (!accum.isEmpty) {\r\n // Overlay decorations don't test Z. Tools like to layer multiple primitives on top of one another; they rely on the primitives rendering\r\n // in that same order to produce correct results (e.g., a thin line rendered atop a thick line of another color).\r\n // No point generating edges for graphics that are always rendered in smooth shade mode.\r\n const options = GeometryOptions.createForGraphicBuilder(this);\r\n const tolerance = this.computeTolerance(accum);\r\n meshes = accum.saveToGraphicList(this.primitives, options, tolerance, this.pickable);\r\n if (undefined !== meshes) {\r\n if (meshes.features?.anyDefined)\r\n featureTable = meshes.features;\r\n\r\n range = meshes.range;\r\n }\r\n }\r\n\r\n let graphic = (this.primitives.length !== 1) ? this.accum.system.createGraphicList(this.primitives) : this.primitives.pop() as RenderGraphic;\r\n if (undefined !== featureTable) {\r\n const batchRange = range ?? new Range3d();\r\n const batchOptions = this._options.pickable;\r\n graphic = this.accum.system.createBatch(graphic, PackedFeatureTable.pack(featureTable), batchRange, batchOptions);\r\n }\r\n\r\n if (addDebugRangeBox && range) {\r\n addDebugRangeBox = false;\r\n const builder = this.accum.system.createGraphic({ ...this._options });\r\n builder.addRangeBox(range);\r\n graphic = this.accum.system.createGraphicList([graphic, builder.finish()]);\r\n addDebugRangeBox = true;\r\n }\r\n\r\n return graphic;\r\n }\r\n\r\n public computeTolerance(accum: GeometryAccumulator): number {\r\n return this._computeChordTolerance({\r\n graphic: this,\r\n computeRange: () => accum.geometries.computeRange(),\r\n });\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GeometryPrimitives.d.ts","sourceRoot":"","sources":["../../../../../src/render/primitives/geometry/GeometryPrimitives.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GeometryPrimitives.js","sourceRoot":"","sources":["../../../../../src/render/primitives/geometry/GeometryPrimitives.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 Rendering\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport {\r\n CurveChain, IndexedPolyface, Loop, Path, Point3d, PolyfaceBuilder, PolyfaceQuery, Range3d, SolidPrimitive, StrokeOptions, SweepContour, Transform,\r\n} from \"@itwin/core-geometry\";\r\nimport { Feature } from \"@itwin/core-common\";\r\nimport { DisplayParams } from \"../../../common/render/primitives/DisplayParams\";\r\nimport { PolyfacePrimitive, PolyfacePrimitiveList } from \"../Polyface\";\r\nimport { StrokesPrimitive, StrokesPrimitiveList, StrokesPrimitivePointList, StrokesPrimitivePointLists } from \"../Strokes\";\r\n\r\n/** @internal */\r\nexport type PrimitiveGeometryType = Loop | Path | IndexedPolyface | SolidPrimitive;\r\n\r\n/** @internal */\r\nexport abstract class Geometry {\r\n public readonly transform: Transform;\r\n public readonly tileRange: Range3d;\r\n public readonly displayParams: DisplayParams;\r\n public readonly feature?: Feature;\r\n\r\n public constructor(transform: Transform, tileRange: Range3d, displayParams: DisplayParams, feature: Feature | undefined) {\r\n this.transform = transform;\r\n this.tileRange = tileRange;\r\n this.displayParams = displayParams;\r\n this.feature = feature;\r\n }\r\n\r\n public static createFromPointString(pts: Point3d[], tf: Transform, tileRange: Range3d, params: DisplayParams, feature: Feature | undefined): Geometry {\r\n return new PrimitivePointStringGeometry(pts, tf, tileRange, params, feature);\r\n }\r\n\r\n public static createFromLineString(pts: Point3d[], tf: Transform, tileRange: Range3d, params: DisplayParams, feature: Feature | undefined): Geometry {\r\n return new PrimitiveLineStringGeometry(pts, tf, tileRange, params, feature);\r\n }\r\n\r\n public static createFromLoop(loop: Loop, tf: Transform, tileRange: Range3d, params: DisplayParams, disjoint: boolean, feature: Feature | undefined): Geometry {\r\n return new PrimitiveLoopGeometry(loop, tf, tileRange, params, disjoint, feature);\r\n }\r\n\r\n public static createFromSolidPrimitive(primitive: SolidPrimitive, tf: Transform, tileRange: Range3d, params: DisplayParams, feature: Feature | undefined): Geometry {\r\n return new SolidPrimitiveGeometry(primitive, tf, tileRange, params, feature);\r\n }\r\n\r\n public static createFromPath(path: Path, tf: Transform, tileRange: Range3d, params: DisplayParams, disjoint: boolean, feature: Feature | undefined): Geometry {\r\n return new PrimitivePathGeometry(path, tf, tileRange, params, disjoint, feature);\r\n }\r\n\r\n public static createFromPolyface(ipf: IndexedPolyface, tf: Transform, tileRange: Range3d, params: DisplayParams, feature: Feature | undefined): Geometry {\r\n return new PrimitivePolyfaceGeometry(ipf, tf, tileRange, params, feature);\r\n }\r\n\r\n protected abstract _getPolyfaces(facetOptions: StrokeOptions): PolyfacePrimitiveList | undefined;\r\n protected abstract _getStrokes(facetOptions: StrokeOptions): StrokesPrimitiveList | undefined;\r\n\r\n public getPolyfaces(tolerance: number): PolyfacePrimitiveList | undefined {\r\n const facetOptions = StrokeOptions.createForFacets();\r\n facetOptions.chordTol = tolerance;\r\n if (this.displayParams.isTextured)\r\n facetOptions.needParams = true;\r\n\r\n if (!this.displayParams.ignoreLighting) // ###TODO don't generate normals for 2d views.\r\n facetOptions.needNormals = true;\r\n\r\n return this._getPolyfaces(facetOptions);\r\n }\r\n\r\n public getStrokes(tolerance: number): StrokesPrimitiveList | undefined {\r\n const strokeOptions = StrokeOptions.createForCurves();\r\n strokeOptions.chordTol = tolerance;\r\n return this._getStrokes(strokeOptions);\r\n }\r\n\r\n public get hasTexture() { return this.displayParams.isTextured; }\r\n public doDecimate() { return false; }\r\n public doVertexCluster() { return true; }\r\n public part() { return undefined; }\r\n}\r\n\r\n/** @internal */\r\nexport class PrimitivePathGeometry extends Geometry {\r\n public readonly path: Path;\r\n public readonly isDisjoint: boolean;\r\n\r\n public constructor(path: Path, tf: Transform, range: Range3d, params: DisplayParams, isDisjoint: boolean, feature: Feature | undefined) {\r\n super(tf, range, params, feature);\r\n this.path = path;\r\n this.isDisjoint = isDisjoint;\r\n }\r\n\r\n protected _getPolyfaces(_facetOptions: StrokeOptions): PolyfacePrimitiveList | undefined { return undefined; }\r\n\r\n protected _getStrokes(facetOptions: StrokeOptions): StrokesPrimitiveList | undefined {\r\n return PrimitivePathGeometry.getStrokesForLoopOrPath(this.path, facetOptions, this.displayParams, this.isDisjoint, this.transform);\r\n }\r\n\r\n public static getStrokesForLoopOrPath(loopOrPath: Loop | Path, facetOptions: StrokeOptions, params: DisplayParams, isDisjoint: boolean, transform: Transform): StrokesPrimitiveList | undefined {\r\n const strksList = new StrokesPrimitiveList();\r\n\r\n if (!loopOrPath.isAnyRegionType || params.wantRegionOutline) {\r\n const strksPts: StrokesPrimitivePointLists = new StrokesPrimitivePointLists();\r\n PrimitivePathGeometry.collectCurveStrokes(strksPts, loopOrPath, facetOptions, transform);\r\n\r\n if (strksPts.length > 0) {\r\n const isPlanar = loopOrPath.isAnyRegionType;\r\n assert(isPlanar === params.wantRegionOutline);\r\n const strksPrim: StrokesPrimitive = StrokesPrimitive.create(params, isDisjoint, isPlanar);\r\n strksPrim.strokes = strksPts;\r\n strksList.push(strksPrim);\r\n }\r\n }\r\n\r\n return strksList;\r\n }\r\n\r\n private static collectCurveStrokes(strksPts: StrokesPrimitivePointLists, loopOrPath: CurveChain, facetOptions: StrokeOptions, trans: Transform) {\r\n const strokes = loopOrPath.getPackedStrokes(facetOptions);\r\n if (undefined !== strokes) {\r\n const pts = strokes.getPoint3dArray();\r\n trans.multiplyPoint3dArrayInPlace(pts);\r\n strksPts.push(new StrokesPrimitivePointList(pts));\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PrimitivePointStringGeometry extends Geometry {\r\n public readonly pts: Point3d[];\r\n\r\n public constructor(pts: Point3d[], tf: Transform, range: Range3d, params: DisplayParams, feature: Feature | undefined) {\r\n super(tf, range, params, feature);\r\n this.pts = pts;\r\n }\r\n\r\n protected _getPolyfaces(_facetOptions: StrokeOptions): PolyfacePrimitiveList | undefined {\r\n return undefined;\r\n }\r\n\r\n protected _getStrokes(_facetOptions: StrokeOptions): StrokesPrimitiveList | undefined {\r\n const strksList = new StrokesPrimitiveList();\r\n const strksPts = new StrokesPrimitivePointLists(new StrokesPrimitivePointList(this.pts));\r\n\r\n const strksPrim: StrokesPrimitive = StrokesPrimitive.create(this.displayParams, true, false);\r\n strksPrim.strokes = strksPts;\r\n strksPrim.transform(this.transform);\r\n strksList.push(strksPrim);\r\n\r\n return strksList;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PrimitiveLineStringGeometry extends Geometry {\r\n public readonly pts: Point3d[];\r\n\r\n public constructor(pts: Point3d[], tf: Transform, range: Range3d, params: DisplayParams, feature: Feature | undefined) {\r\n super(tf, range, params, feature);\r\n this.pts = pts;\r\n }\r\n\r\n protected _getPolyfaces(_facetOptions: StrokeOptions): PolyfacePrimitiveList | undefined {\r\n return undefined;\r\n }\r\n\r\n protected _getStrokes(_facetOptions: StrokeOptions): StrokesPrimitiveList | undefined {\r\n const strksList = new StrokesPrimitiveList();\r\n const strksPts = new StrokesPrimitivePointLists(new StrokesPrimitivePointList(this.pts));\r\n\r\n const strksPrim: StrokesPrimitive = StrokesPrimitive.create(this.displayParams, false, false);\r\n strksPrim.strokes = strksPts;\r\n strksPrim.transform(this.transform);\r\n strksList.push(strksPrim);\r\n\r\n return strksList;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PrimitiveLoopGeometry extends Geometry {\r\n public readonly loop: Loop;\r\n public readonly isDisjoint: boolean;\r\n\r\n public constructor(loop: Loop, tf: Transform, range: Range3d, params: DisplayParams, isDisjoint: boolean, feature: Feature | undefined) {\r\n super(tf, range, params, feature);\r\n this.loop = loop;\r\n this.isDisjoint = isDisjoint;\r\n }\r\n\r\n protected _getPolyfaces(facetOptions: StrokeOptions): PolyfacePrimitiveList | undefined {\r\n if (!this.loop.isAnyRegionType) {\r\n return undefined;\r\n }\r\n\r\n // The following is good for single loop things according to Earlin.\r\n const contour = SweepContour.createForLinearSweep(this.loop);\r\n if (contour !== undefined) {\r\n const pfBuilder: PolyfaceBuilder = PolyfaceBuilder.create(facetOptions);\r\n contour.emitFacets(pfBuilder, false, this.transform); // build facets and emit them to the builder\r\n const polyface = pfBuilder.claimPolyface();\r\n const wantEdges = DisplayParams.RegionEdgeType.Default === this.displayParams.regionEdgeType;\r\n const isPlanar = true;\r\n return new PolyfacePrimitiveList(PolyfacePrimitive.create(this.displayParams, polyface, wantEdges, isPlanar));\r\n } // ###TODO: this approach might not work with holes\r\n\r\n return undefined;\r\n }\r\n\r\n protected _getStrokes(facetOptions: StrokeOptions): StrokesPrimitiveList | undefined {\r\n return PrimitivePathGeometry.getStrokesForLoopOrPath(this.loop, facetOptions, this.displayParams, this.isDisjoint, this.transform);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PrimitivePolyfaceGeometry extends Geometry {\r\n public readonly polyface: IndexedPolyface;\r\n\r\n public constructor(polyface: IndexedPolyface, tf: Transform, range: Range3d, params: DisplayParams, feature: Feature | undefined) {\r\n super(tf, range, params, feature);\r\n this.polyface = tf.isIdentity ? polyface : polyface.cloneTransformed(tf);\r\n }\r\n\r\n protected _getPolyfaces(facetOptions: StrokeOptions): PolyfacePrimitiveList | undefined {\r\n if (!this.hasTexture) {\r\n if (this.polyface.data.param)\r\n this.polyface.data.param.clear();\r\n\r\n if (this.polyface.data.paramIndex)\r\n this.polyface.data.paramIndex = [];\r\n }\r\n\r\n if (!facetOptions.needNormals) {\r\n if (this.polyface.data.normal)\r\n this.polyface.data.normal.clear();\r\n\r\n if (this.polyface.data.normalIndex)\r\n this.polyface.data.normalIndex = [];\r\n } else if (!this.polyface.data.normal || 0 === this.polyface.data.normal.length) {\r\n PolyfaceQuery.buildAverageNormals(this.polyface);\r\n }\r\n\r\n return new PolyfacePrimitiveList(PolyfacePrimitive.create(this.displayParams, this.polyface));\r\n }\r\n\r\n protected _getStrokes(_facetOptions: StrokeOptions): StrokesPrimitiveList | undefined { return undefined; }\r\n}\r\n\r\nclass SolidPrimitiveGeometry extends Geometry {\r\n private readonly _primitive: SolidPrimitive;\r\n\r\n public constructor(primitive: SolidPrimitive, tf: Transform, range: Range3d, params: DisplayParams, feature: Feature | undefined) {\r\n super(tf, range, params, feature);\r\n const xformPrim = tf.isIdentity ? primitive : primitive.cloneTransformed(tf);\r\n this._primitive = xformPrim !== undefined ? xformPrim as SolidPrimitive : primitive;\r\n }\r\n\r\n protected _getStrokes() { return undefined; }\r\n\r\n protected _getPolyfaces(opts: StrokeOptions): PolyfacePrimitiveList {\r\n const builder = PolyfaceBuilder.create(opts);\r\n builder.addGeometryQuery(this._primitive);\r\n return new PolyfacePrimitiveList(PolyfacePrimitive.create(this.displayParams, builder.claimPolyface()));\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MeshBuilder.js","sourceRoot":"","sources":["../../../../../src/render/primitives/mesh/MeshBuilder.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 Rendering\r\n */\r\n\r\nimport { assert, Dictionary } from \"@itwin/core-bentley\";\r\nimport { Angle, IndexedPolyface, Point2d, Point3d, Polyface, PolyfaceVisitor, Range3d, Vector3d } from \"@itwin/core-geometry\";\r\nimport { Feature, MeshEdge, MeshEdges, MeshPolyline, OctEncodedNormal, OctEncodedNormalPair, QPoint3dList, TextureMapping } from \"@itwin/core-common\";\r\nimport { DisplayParams } from \"../../../common/render/primitives/DisplayParams\";\r\nimport { Triangle, TriangleKey, TriangleSet } from \"../Primitives\";\r\nimport { StrokesPrimitivePointLists } from \"../Strokes\";\r\nimport { VertexKey, VertexKeyProps, VertexMap } from \"../VertexKey\";\r\nimport { Mesh } from \"./MeshPrimitives\";\r\n\r\n// Describes a vertex along with the index of the source vertex in the source PolyfaceVisitor.\r\ntype VertexKeyPropsWithIndex = VertexKeyProps & { sourceIndex: number };\r\n\r\n/** @internal */\r\nexport class MeshBuilder {\r\n public readonly vertexMap: VertexMap;\r\n private _triangleSet?: TriangleSet;\r\n private _currentPolyface?: MeshBuilderPolyface;\r\n public readonly mesh: Mesh;\r\n public readonly tolerance: number;\r\n public readonly areaTolerance: number;\r\n public readonly tileRange: Range3d;\r\n public get currentPolyface(): MeshBuilderPolyface | undefined { return this._currentPolyface; }\r\n public get displayParams(): DisplayParams { return this.mesh.displayParams; }\r\n public set displayParams(params: DisplayParams) { this.mesh.displayParams = params; }\r\n\r\n /** create reference for triangleSet on demand */\r\n public get triangleSet(): TriangleSet {\r\n if (undefined === this._triangleSet)\r\n this._triangleSet = new TriangleSet();\r\n\r\n return this._triangleSet;\r\n }\r\n\r\n private constructor(mesh: Mesh, tolerance: number, areaTolerance: number, tileRange: Range3d) {\r\n this.mesh = mesh;\r\n this.tolerance = tolerance;\r\n this.areaTolerance = areaTolerance;\r\n this.tileRange = tileRange;\r\n\r\n let vertexTolerance;\r\n if (mesh.points instanceof QPoint3dList) {\r\n const p0 = mesh.points.params.unquantize(0, 0, 0);\r\n const p1 = mesh.points.params.unquantize(1, 1, 1);\r\n vertexTolerance = p1.minus(p0, p0);\r\n } else {\r\n vertexTolerance = { x: tolerance, y: tolerance, z: tolerance };\r\n }\r\n\r\n this.vertexMap = new VertexMap(vertexTolerance);\r\n }\r\n\r\n /** create a new MeshBuilder */\r\n public static create(props: MeshBuilder.Props): MeshBuilder {\r\n const mesh = Mesh.create(props);\r\n const { tolerance, areaTolerance, range } = props;\r\n return new MeshBuilder(mesh, tolerance, areaTolerance, range);\r\n }\r\n\r\n /**\r\n * iterate through each point list of the strokes primitive and either load the point string or polyline into builder\r\n * @param strokes lists of stroke primitive point lists to iterate\r\n * @param isDisjoint if true add point string, else add polyline\r\n * @param fillColor\r\n */\r\n public addStrokePointLists(strokes: StrokesPrimitivePointLists, isDisjoint: boolean, fillColor: number, feature: Feature | undefined): void {\r\n for (const strokePoints of strokes) {\r\n if (isDisjoint)\r\n this.addPointString(strokePoints.points, fillColor, feature);\r\n else\r\n this.addPolyline(strokePoints.points, fillColor, feature);\r\n }\r\n }\r\n\r\n /**\r\n * add data from polyface into mesh builder\r\n * @param polyface the indexed polyface to iterate the facets of to load each facet's triangles' vertices\r\n * @param props the properties required for this operation\r\n */\r\n public addFromPolyface(polyface: IndexedPolyface, props: MeshBuilder.PolyfaceOptions, feature: Feature | undefined): void {\r\n this.beginPolyface(polyface, props.edgeOptions);\r\n const visitor = polyface.createVisitor();\r\n\r\n while (visitor.moveToNextFacet()) {\r\n this.addFromPolyfaceVisitor(visitor, props, feature);\r\n }\r\n\r\n this.endPolyface();\r\n }\r\n\r\n /**\r\n * @param visitor the PolyfaceVisitor containing the face data to be added\r\n * @param props the properties required for this operation:\r\n */\r\n public addFromPolyfaceVisitor(visitor: PolyfaceVisitor, options: MeshBuilder.PolyfaceOptions, feature: Feature | undefined): void {\r\n const { pointCount, normalCount, paramCount, requireNormals } = visitor;\r\n const { includeParams, mappedTexture } = options;\r\n\r\n const isDegenerate = requireNormals && normalCount < pointCount; // TFS#790263: Degenerate triangle - no normals.\r\n\r\n // a triangle must have at least 3 points\r\n if (pointCount < 3 || isDegenerate)\r\n return;\r\n\r\n const haveParam = includeParams && paramCount > 0;\r\n const triangleCount = pointCount - 2;\r\n\r\n assert(!includeParams || paramCount > 0);\r\n assert(!haveParam || undefined !== mappedTexture);\r\n\r\n // The face represented by this visitor should be convex (we request that in facet options) - so we do a simple fan triangulation.\r\n const polyfaceVisitorOptions = { ...options, triangleCount, haveParam };\r\n for (let triangleIndex = 0; triangleIndex < triangleCount; triangleIndex++) {\r\n const triangle = this.createTriangle(triangleIndex, visitor, polyfaceVisitorOptions, feature);\r\n if (undefined !== triangle)\r\n this.addTriangle(triangle);\r\n }\r\n }\r\n\r\n public createTriangleVertices(triangleIndex: number, visitor: PolyfaceVisitor, options: MeshBuilder.PolyfaceVisitorOptions, feature: Feature | undefined): VertexKeyPropsWithIndex[] | undefined {\r\n const { point, requireNormals } = visitor;\r\n const { fillColor, haveParam } = options;\r\n\r\n // If we do not have UVParams stored on the IndexedPolyface, compute them now\r\n let params: Point2d[] | undefined;\r\n if (haveParam && options.mappedTexture) {\r\n assert(this.mesh.points.length === 0 || this.mesh.uvParams.length !== 0);\r\n const mappedTexture = options.mappedTexture;\r\n const transformToImodel = mappedTexture.params.textureMatrix.transform;\r\n if (transformToImodel)\r\n params = mappedTexture.computeUVParams(visitor, transformToImodel);\r\n assert(params !== undefined);\r\n }\r\n\r\n const vertices = [];\r\n for (let i = 0; i < 3; ++i) {\r\n const vertexIndex = 0 === i ? 0 : triangleIndex + i;\r\n const position = point.getPoint3dAtUncheckedPointIndex(vertexIndex);\r\n const normal = requireNormals ? OctEncodedNormal.fromVector(visitor.getNormal(vertexIndex)!) : undefined;\r\n const uvParam: Point2d | undefined = params ? params[vertexIndex] : undefined;\r\n vertices[i] = { position, fillColor, normal, uvParam, sourceIndex: vertexIndex, feature };\r\n }\r\n\r\n // Previously we would add all 3 vertices to our map, then detect degenerate triangles in AddTriangle().\r\n // This led to unused vertex data, and caused mismatch in # of vertices when recreating the MeshBuilder from the data in the tile cache.\r\n // Detect beforehand instead.\r\n if (this.vertexMap.arePositionsAlmostEqual(vertices[0], vertices[1])\r\n || this.vertexMap.arePositionsAlmostEqual(vertices[0], vertices[2])\r\n || this.vertexMap.arePositionsAlmostEqual(vertices[1], vertices[2]))\r\n return undefined;\r\n\r\n return vertices;\r\n }\r\n\r\n public createTriangle(triangleIndex: number, visitor: PolyfaceVisitor, options: MeshBuilder.PolyfaceVisitorOptions, feature: Feature | undefined): Triangle | undefined {\r\n // generate vertex key properties for each of the three sides of the triangle\r\n const vertices = this.createTriangleVertices(triangleIndex, visitor, options, feature);\r\n\r\n // avoid creating degenerate triangles\r\n if (undefined === vertices)\r\n return undefined;\r\n\r\n const { edgeVisible } = visitor;\r\n\r\n const triangle = new Triangle();\r\n\r\n triangle.setEdgeVisibility(\r\n 0 === triangleIndex ? edgeVisible[0] : false,\r\n edgeVisible[triangleIndex + 1],\r\n triangleIndex === options.triangleCount - 1 ? edgeVisible[triangleIndex + 2] : false,\r\n );\r\n\r\n // set each triangle index to the index associated with the vertex key location in the vertex map\r\n vertices.forEach((vertexProps, i: number) => {\r\n let vertexKeyIndex;\r\n if (visitor.auxData) {\r\n // No deduplication with auxData (for now...)\r\n vertexKeyIndex = this.mesh.addVertex(vertexProps);\r\n this.mesh.addAuxChannels(visitor.auxData.channels, vertexProps.sourceIndex);\r\n } else {\r\n vertexKeyIndex = this.addVertex(vertexProps);\r\n }\r\n\r\n triangle.indices[i] = vertexKeyIndex;\r\n\r\n // if the current polyface exists, map the vertex key index to the visitor's client point index\r\n if (this.currentPolyface !== undefined)\r\n this.currentPolyface.vertexIndexMap.set(vertexKeyIndex, visitor.clientPointIndex(vertexProps.sourceIndex));\r\n });\r\n\r\n return triangle;\r\n }\r\n\r\n /** removed Feature for now */\r\n public addPolyline(points: Point3d[], fillColor: number, feature: Feature | undefined): void {\r\n const { mesh } = this;\r\n\r\n const poly = new MeshPolyline();\r\n for (const position of points)\r\n poly.addIndex(this.addVertex({ position, fillColor, feature }));\r\n\r\n mesh.addPolyline(poly);\r\n }\r\n\r\n /** removed Feature for now */\r\n public addPointString(points: Point3d[], fillColor: number, feature: Feature | undefined): void {\r\n const { mesh } = this;\r\n const poly = new MeshPolyline();\r\n\r\n for (const position of points)\r\n poly.addIndex(this.addVertex({ position, fillColor, feature }));\r\n\r\n mesh.addPolyline(poly);\r\n }\r\n\r\n public beginPolyface(polyface: Polyface, options: MeshEdgeCreationOptions): void {\r\n if (!options.generateNoEdges) {\r\n const triangles = this.mesh.triangles;\r\n this._currentPolyface = new MeshBuilderPolyface(polyface, options, triangles === undefined ? 0 : triangles.length);\r\n }\r\n }\r\n\r\n public endPolyface(): void {\r\n const { currentPolyface, mesh } = this;\r\n if (undefined === currentPolyface)\r\n return;\r\n\r\n this._currentPolyface = undefined;\r\n buildMeshEdges(mesh, currentPolyface);\r\n }\r\n\r\n public addVertex(vertex: VertexKeyProps, addToMeshOnInsert = true): number {\r\n // if vertex key isn't duplicate, then also insert properties into mesh\r\n const onInsert = (vk: VertexKey) => this.mesh.addVertex(vk);\r\n return this.vertexMap.insertKey(vertex, addToMeshOnInsert ? onInsert : undefined);\r\n }\r\n\r\n public addTriangle(triangle: Triangle): void {\r\n // Attempt to avoid adding vertices originating from degenerate triangles before we get here.\r\n // Removed assert and just return if degenerate at this point because uncommon cases (not worth testing for) can still occur.\r\n if (triangle.isDegenerate)\r\n return;\r\n\r\n const onInsert = (_vk: TriangleKey) => this.mesh.addTriangle(triangle);\r\n this.triangleSet.insertKey(triangle, onInsert);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport namespace MeshBuilder { // eslint-disable-line no-redeclare\r\n export interface Props extends Mesh.Props {\r\n tolerance: number;\r\n areaTolerance: number;\r\n }\r\n export interface PolyfaceOptions {\r\n includeParams: boolean;\r\n fillColor: number;\r\n mappedTexture?: TextureMapping;\r\n edgeOptions: MeshEdgeCreationOptions;\r\n }\r\n\r\n export interface PolyfaceVisitorOptions extends PolyfaceOptions {\r\n triangleCount: number;\r\n haveParam: boolean;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class MeshEdgeCreationOptions {\r\n public readonly type: MeshEdgeCreationOptions.Type;\r\n public readonly minCreaseAngle = 20.0 * Angle.radiansPerDegree;\r\n public get generateAllEdges(): boolean { return this.type === MeshEdgeCreationOptions.Type.AllEdges; }\r\n public get generateNoEdges(): boolean { return this.type === MeshEdgeCreationOptions.Type.NoEdges; }\r\n public get generateCreaseEdges(): boolean { return 0 !== (this.type & MeshEdgeCreationOptions.Type.CreaseEdges); }\r\n /** Create edge chains for polyfaces that do not already have them. */\r\n public get createEdgeChains(): boolean { return 0 !== (this.type & MeshEdgeCreationOptions.Type.CreateChains); }\r\n constructor(type = MeshEdgeCreationOptions.Type.NoEdges) { this.type = type; }\r\n}\r\n\r\n/** @internal */\r\nexport namespace MeshEdgeCreationOptions { // eslint-disable-line no-redeclare\r\n export enum Type {\r\n NoEdges = 0x0000,\r\n CreaseEdges = 0x0001 << 1,\r\n SmoothEdges = 0x0001 << 2,\r\n CreateChains = 0x0001 << 3,\r\n DefaultEdges = CreaseEdges,\r\n AllEdges = CreaseEdges | SmoothEdges,\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class MeshBuilderPolyface {\r\n public readonly polyface: Polyface;\r\n public readonly edgeOptions: MeshEdgeCreationOptions;\r\n public readonly vertexIndexMap: Map<number, number> = new Map<number, number>();\r\n public readonly baseTriangleIndex: number;\r\n constructor(polyface: Polyface, edgeOptions: MeshEdgeCreationOptions, baseTriangleIndex: number) {\r\n this.polyface = polyface;\r\n this.edgeOptions = edgeOptions;\r\n this.baseTriangleIndex = baseTriangleIndex;\r\n }\r\n}\r\n\r\nclass EdgeInfo {\r\n public faceIndex1?: number;\r\n\r\n public constructor(\r\n public visible: boolean,\r\n public faceIndex0: number,\r\n public edge: MeshEdge,\r\n public point0: Point3d,\r\n public point1: Point3d) {\r\n }\r\n\r\n public addFace(visible: boolean, faceIndex: number) {\r\n if (undefined === this.faceIndex1) {\r\n this.visible ||= visible;\r\n this.faceIndex1 = faceIndex;\r\n }\r\n }\r\n}\r\n\r\nfunction buildMeshEdges(mesh: Mesh, polyface: MeshBuilderPolyface): void {\r\n if (!mesh.triangles)\r\n return;\r\n\r\n const edgeMap = new Dictionary<MeshEdge, EdgeInfo>((lhs, rhs) => lhs.compareTo(rhs));\r\n const triangleNormals: Vector3d[] = [];\r\n\r\n // We need to detect the edge pairs -- Can't do that from the Mesh indices as these are not shared - so we'll\r\n // assume that the polyface indices are properly shared, this should be true as a seperate index array is used\r\n // for Polyfaces.\r\n const triangle = new Triangle();\r\n const polyfacePoints = [new Point3d(), new Point3d(), new Point3d()];\r\n const polyfaceIndices = [0, 0, 0];\r\n\r\n for (let triangleIndex = polyface.baseTriangleIndex; triangleIndex < mesh.triangles.length; triangleIndex++) {\r\n let indexNotFound = false;\r\n mesh.triangles.getTriangle(triangleIndex, triangle);\r\n for (let j = 0; j < 3; j++) {\r\n const foundPolyfaceIndex = polyface.vertexIndexMap.get(triangle.indices[j]);\r\n assert(undefined !== foundPolyfaceIndex);\r\n if (undefined === foundPolyfaceIndex) {\r\n indexNotFound = true;\r\n continue;\r\n }\r\n\r\n polyfaceIndices[j] = foundPolyfaceIndex;\r\n polyface.polyface.data.getPoint(foundPolyfaceIndex, polyfacePoints[j]);\r\n }\r\n\r\n if (indexNotFound)\r\n continue;\r\n\r\n for (let j = 0; j < 3; j++) {\r\n const jNext = (j + 1) % 3;\r\n const triangleNormalIndex = triangleNormals.length;\r\n const meshEdge = new MeshEdge(triangle.indices[j], triangle.indices[jNext]);\r\n const polyfaceEdge = new MeshEdge(polyfaceIndices[j], polyfaceIndices[jNext]);\r\n const edgeInfo = new EdgeInfo(triangle.isEdgeVisible(j), triangleNormalIndex, meshEdge, polyfacePoints[j], polyfacePoints[jNext]);\r\n\r\n const findOrInsert = edgeMap.findOrInsert(polyfaceEdge, edgeInfo);\r\n if (!findOrInsert.inserted)\r\n findOrInsert.value.addFace(edgeInfo.visible, triangleNormalIndex);\r\n }\r\n\r\n const normal = Vector3d.createCrossProductToPoints(polyfacePoints[0], polyfacePoints[1], polyfacePoints[2]);\r\n normal.normalizeInPlace();\r\n triangleNormals.push(normal);\r\n }\r\n\r\n // If there is no visibility indication in the mesh, infer from the mesh geometry.\r\n if (!polyface.edgeOptions.generateAllEdges) {\r\n const minEdgeDot = Math.cos(polyface.edgeOptions.minCreaseAngle);\r\n for (const edgeInfo of edgeMap.values()) {\r\n if (undefined !== edgeInfo.faceIndex1) {\r\n const normal0 = triangleNormals[edgeInfo.faceIndex0];\r\n const normal1 = triangleNormals[edgeInfo.faceIndex1];\r\n if (Math.abs(normal0.dotProduct(normal1)) > minEdgeDot)\r\n edgeInfo.visible = false;\r\n }\r\n }\r\n }\r\n\r\n // Now populate the MeshEdges.\r\n // ###TODO edge chains?\r\n if (undefined === mesh.edges)\r\n mesh.edges = new MeshEdges();\r\n\r\n const maxPlanarDot = 0.999999;\r\n for (const edgeInfo of edgeMap.values()) {\r\n if (edgeInfo.visible) {\r\n mesh.edges.visible.push(edgeInfo.edge);\r\n } else if (undefined !== edgeInfo.faceIndex1) {\r\n const normal0 = triangleNormals[edgeInfo.faceIndex0];\r\n const normal1 = triangleNormals[edgeInfo.faceIndex1];\r\n if (Math.abs(normal0.dotProduct(normal1)) < maxPlanarDot) {\r\n mesh.edges.silhouette.push(edgeInfo.edge);\r\n mesh.edges.silhouetteNormals.push(new OctEncodedNormalPair(OctEncodedNormal.fromVector(normal0), OctEncodedNormal.fromVector(normal1)));\r\n }\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MeshBuilderMap.d.ts","sourceRoot":"","sources":["../../../../../src/render/primitives/mesh/MeshBuilderMap.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAmC,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,eAAe,EAAkB,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,WAAW,EAA2B,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAElD,gBAAgB;AAChB,qBAAa,cAAe,SAAQ,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,WAAW,CAAC;IAC7E,SAAgB,KAAK,EAAE,OAAO,CAAC;IAC/B,SAAgB,eAAe,EAAE,MAAM,CAAC;IACxC,SAAgB,kBAAkB,EAAE,MAAM,CAAC;IAC3C,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxC,SAAgB,OAAO,EAAE,eAAe,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAC9C,OAAO,CAAC,SAAS,CAAK;gBAEV,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE;QAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,UAAU,CAAA;KAAE,GAAG,SAAS;WActJ,oBAAoB,CAAC,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE;QAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,UAAU,CAAA;KAAE,GAAG,SAAS,GAAG,cAAc;IAS/N,QAAQ,IAAI,QAAQ;IAS3B;;;;OAIG;IACI,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAOzC;;;OAGG;IACI,yBAAyB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAQtD;;;OAGG;IACI,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;IAc3F;;;OAGG;IACI,uBAAuB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAQpD;;;OAGG;IACI,oBAAoB,CAAC,eAAe,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;IAQ3F,UAAU,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,WAAW;IAmBtH,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,cAAc,CAAC,GAAG;IAShI;;;;;OAKG;IACI,iBAAiB,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,GAAG,WAAW;CAQzF;AAED,gBAAgB;AAChB,yBAAiB,cAAc,CAAC;IAC9B,MAAa,GAAG;QACP,KAAK,EAAE,MAAM,CAAK;QACzB,SAAgB,MAAM,EAAE,aAAa,CAAC;QACtC,SAAgB,IAAI,EAAE,iBAAiB,CAAC;QACxC,SAAgB,UAAU,EAAE,OAAO,CAAC;QACpC,SAAgB,QAAQ,EAAE,OAAO,CAAC;oBAEtB,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;eAOpF,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG;QAItC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM;QAkBzB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;KACjC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MeshBuilderMap.js","sourceRoot":"","sources":["../../../../../src/render/primitives/mesh/MeshBuilderMap.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 Rendering\r\n */\r\n\r\nimport { compareBooleans, compareNumbers, Dictionary, Id64String } from \"@itwin/core-bentley\";\r\nimport { Range3d } from \"@itwin/core-geometry\";\r\nimport { Feature, FeatureTable } from \"@itwin/core-common\";\r\nimport { DisplayParams } from \"../../../common/render/primitives/DisplayParams\";\r\nimport { MeshPrimitiveType } from \"../../../common/render/primitives/MeshPrimitive\";\r\nimport { GeometryList } from \"../geometry/GeometryList\";\r\nimport { Geometry } from \"../geometry/GeometryPrimitives\";\r\nimport { PolyfacePrimitive } from \"../Polyface\";\r\nimport { GeometryOptions, ToleranceRatio } from \"../Primitives\";\r\nimport { StrokesPrimitive } from \"../Strokes\";\r\nimport { MeshBuilder, MeshEdgeCreationOptions } from \"./MeshBuilder\";\r\nimport { Mesh, MeshList } from \"./MeshPrimitives\";\r\n\r\n/** @internal */\r\nexport class MeshBuilderMap extends Dictionary<MeshBuilderMap.Key, MeshBuilder> {\r\n public readonly range: Range3d;\r\n public readonly vertexTolerance: number;\r\n public readonly facetAreaTolerance: number;\r\n public readonly tolerance: number;\r\n public readonly is2d: boolean;\r\n public readonly features?: FeatureTable;\r\n public readonly options: GeometryOptions;\r\n private readonly _isVolumeClassifier: boolean;\r\n private _keyOrder = 0;\r\n\r\n constructor(tolerance: number, range: Range3d, is2d: boolean, options: GeometryOptions, pickable: { isVolumeClassifier?: boolean, modelId?: Id64String } | undefined) {\r\n super((lhs: MeshBuilderMap.Key, rhs: MeshBuilderMap.Key) => lhs.compare(rhs));\r\n this.tolerance = tolerance;\r\n this.vertexTolerance = tolerance * ToleranceRatio.vertex;\r\n this.facetAreaTolerance = tolerance * ToleranceRatio.facetArea;\r\n this.range = range;\r\n this.is2d = is2d;\r\n this.options = options;\r\n this._isVolumeClassifier = pickable?.isVolumeClassifier ?? false;\r\n\r\n if (pickable)\r\n this.features = new FeatureTable(2048 * 1024, pickable.modelId);\r\n }\r\n\r\n public static createFromGeometries(geometries: GeometryList, tolerance: number, range: Range3d, is2d: boolean, options: GeometryOptions, pickable: { isVolumeClassifier?: boolean, modelId?: Id64String } | undefined): MeshBuilderMap {\r\n const map = new MeshBuilderMap(tolerance, range, is2d, options, pickable);\r\n\r\n for (const geom of geometries)\r\n map.loadGeometry(geom);\r\n\r\n return map;\r\n }\r\n\r\n public toMeshes(): MeshList {\r\n const meshes = new MeshList(this.features, this.range);\r\n for (const builder of this._values) {\r\n if (builder.mesh.points.length > 0)\r\n meshes.push(builder.mesh);\r\n }\r\n return meshes;\r\n }\r\n\r\n /**\r\n * extract polyfaces and strokes from geometry into MeshBuilder stored in builderMap\r\n * @param geom Geometry instance to extract polyfaces and strokes from\r\n * @param wantSurfacesOnly if true prevent strokes from being loaded into builders\r\n */\r\n public loadGeometry(geom: Geometry): void {\r\n this.loadPolyfacePrimitiveList(geom);\r\n\r\n if (!this.options.wantSurfacesOnly)\r\n this.loadStrokePrimitiveList(geom);\r\n }\r\n\r\n /**\r\n * extract polyface primitives from geometry in meshBuilder stored in builderMap\r\n * @param geom Geometry instance to extract polyfaces from\r\n */\r\n public loadPolyfacePrimitiveList(geom: Geometry): void {\r\n const polyfaces = geom.getPolyfaces(this.tolerance);\r\n\r\n if (polyfaces !== undefined)\r\n for (const polyface of polyfaces)\r\n this.loadIndexedPolyface(polyface, geom.feature);\r\n }\r\n\r\n /**\r\n * extract indexed polyfaces into meshBuilder stored in builderMap\r\n * @param polyface PolyfacePrimitive to extract indexed polyfaces from\r\n */\r\n public loadIndexedPolyface(polyface: PolyfacePrimitive, feature: Feature | undefined): void {\r\n const { indexedPolyface, displayParams, isPlanar } = polyface;\r\n const { pointCount, normalCount } = indexedPolyface;\r\n const { fillColor, isTextured } = displayParams;\r\n const textureMapping = displayParams.textureMapping;\r\n\r\n if (pointCount === 0)\r\n return;\r\n\r\n const builder = this.getBuilder(displayParams, MeshPrimitiveType.Mesh, normalCount > 0, isPlanar);\r\n const edgeOptions = new MeshEdgeCreationOptions(polyface.displayEdges && this.options.edges ? MeshEdgeCreationOptions.Type.DefaultEdges : MeshEdgeCreationOptions.Type.NoEdges);\r\n builder.addFromPolyface(indexedPolyface, { edgeOptions, includeParams: isTextured, fillColor: fillColor.tbgr, mappedTexture: textureMapping }, feature);\r\n }\r\n\r\n /**\r\n * extract stroke primitives from geometry in meshBuilder stored in builderMap\r\n * @param geom Geometry instance to extract strokes from\r\n */\r\n public loadStrokePrimitiveList(geom: Geometry): void {\r\n const strokes = geom.getStrokes(this.tolerance);\r\n\r\n if (undefined !== strokes)\r\n for (const stroke of strokes)\r\n this.loadStrokesPrimitive(stroke, geom.feature);\r\n }\r\n\r\n /**\r\n * extract strokes primitive into meshBuilder stored in builderMap\r\n * @param strokePrimitive StrokesPrimitive instance to extractfrom\r\n */\r\n public loadStrokesPrimitive(strokePrimitive: StrokesPrimitive, feature: Feature | undefined): void {\r\n const { displayParams, isDisjoint, isPlanar, strokes } = strokePrimitive;\r\n\r\n const type = isDisjoint ? MeshPrimitiveType.Point : MeshPrimitiveType.Polyline;\r\n const builder = this.getBuilder(displayParams, type, false, isPlanar);\r\n builder.addStrokePointLists(strokes, isDisjoint, displayParams.fillColor.tbgr, feature);\r\n }\r\n\r\n public getBuilder(displayParams: DisplayParams, type: MeshPrimitiveType, hasNormals: boolean, isPlanar: boolean): MeshBuilder {\r\n const { facetAreaTolerance, tolerance, is2d, range } = this;\r\n const key = this.getKey(displayParams, type, hasNormals, isPlanar);\r\n\r\n const quantizePositions = false; // ###TODO should this be configurable?\r\n return this.getBuilderFromKey(key, {\r\n displayParams,\r\n type,\r\n range,\r\n quantizePositions,\r\n is2d,\r\n isPlanar,\r\n tolerance,\r\n areaTolerance: facetAreaTolerance,\r\n features: this.features,\r\n isVolumeClassifier: this._isVolumeClassifier,\r\n });\r\n }\r\n\r\n public getKey(displayParams: DisplayParams, type: MeshPrimitiveType, hasNormals: boolean, isPlanar: boolean): MeshBuilderMap.Key {\r\n const key = new MeshBuilderMap.Key(displayParams, type, hasNormals, isPlanar);\r\n\r\n if (this.options.preserveOrder)\r\n key.order = ++this._keyOrder;\r\n\r\n return key;\r\n }\r\n\r\n /**\r\n * gets builder associated with key if defined, otherwise creates a new builder and sets that with key\r\n * @param key MeshBuilderMap.Key to associate with builder\r\n * @param props MeshBuilder.Props required to create builder if it does not already exist\r\n * @returns builder reference, changes will update instance stored in builderMap\r\n */\r\n public getBuilderFromKey(key: MeshBuilderMap.Key, props: MeshBuilder.Props): MeshBuilder {\r\n let builder = this.get(key);\r\n if (undefined === builder) {\r\n builder = MeshBuilder.create(props);\r\n this.set(key, builder);\r\n }\r\n return builder;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport namespace MeshBuilderMap { // eslint-disable-line no-redeclare\r\n export class Key {\r\n public order: number = 0;\r\n public readonly params: DisplayParams;\r\n public readonly type: MeshPrimitiveType;\r\n public readonly hasNormals: boolean;\r\n public readonly isPlanar: boolean;\r\n\r\n constructor(params: DisplayParams, type: MeshPrimitiveType, hasNormals: boolean, isPlanar: boolean) {\r\n this.params = params;\r\n this.type = type;\r\n this.hasNormals = hasNormals;\r\n this.isPlanar = isPlanar;\r\n }\r\n\r\n public static createFromMesh(mesh: Mesh): Key {\r\n return new Key(mesh.displayParams, mesh.type, mesh.normals.length !== 0, mesh.isPlanar);\r\n }\r\n\r\n public compare(rhs: Key): number {\r\n let diff = compareNumbers(this.order, rhs.order);\r\n if (0 === diff) {\r\n diff = compareNumbers(this.type, rhs.type);\r\n if (0 === diff) {\r\n diff = compareBooleans(this.isPlanar, rhs.isPlanar);\r\n if (0 === diff) {\r\n diff = compareBooleans(this.hasNormals, rhs.hasNormals);\r\n if (0 === diff) {\r\n diff = this.params.compareForMerge(rhs.params);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return diff;\r\n }\r\n\r\n public equals(rhs: Key): boolean { return 0 === this.compare(rhs); }\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MeshPrimitives.d.ts","sourceRoot":"","sources":["../../../../../src/render/primitives/mesh/MeshPrimitives.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MeshPrimitives.js","sourceRoot":"","sources":["../../../../../src/render/primitives/mesh/MeshPrimitives.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 Rendering\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { AuxChannel, AuxChannelData, Point2d, Point3d, Range3d } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorIndex, EdgeArgs, Feature, FeatureIndex, FeatureIndexType, FeatureTable, FillFlags, LinePixels, MeshEdges, MeshPolyline, MeshPolylineList,\r\n OctEncodedNormal, PolylineEdgeArgs, PolylineFlags, PolylineIndices, PolylineTypeFlags, QParams3d, QPoint3dList, RenderMaterial,\r\n RenderTexture, SilhouetteEdgeArgs,\r\n} from \"@itwin/core-common\";\r\nimport { InstancedGraphicParams } from \"../../InstancedGraphicParams\";\r\nimport { RenderGraphic } from \"../../RenderGraphic\";\r\nimport { RenderSystem } from \"../../RenderSystem\";\r\nimport { ColorMap } from \"../ColorMap\";\r\nimport { DisplayParams } from \"../../../common/render/primitives/DisplayParams\";\r\nimport { MeshPointList, MeshPrimitiveType, Point3dList } from \"../../../common/render/primitives/MeshPrimitive\";\r\nimport { Triangle, TriangleList } from \"../Primitives\";\r\nimport { VertexKeyProps } from \"../VertexKey\";\r\n\r\n/** Arguments supplied to [[RenderSystem.createIndexedPolylines]] describing a set of \"polylines\" (i.e., line strings or point strings).\r\n * Line strings consist of two or more points, connected by segments between them with a width specified in pixels.\r\n * Point strings consist of one or more disconnected points, drawn as dots with a radius specified in pixels.\r\n * @public\r\n */\r\nexport interface PolylineArgs {\r\n /** The color(s) of the vertices. */\r\n colors: ColorIndex;\r\n /** The [Feature]($common)(s) contained in the [[polylines]]. */\r\n features: FeatureIndex;\r\n /** The width of the lines or radius of the points, in pixels. */\r\n width: number;\r\n /** The pixel pattern to apply to the line strings. */\r\n linePixels: LinePixels;\r\n /** Flags describing how to draw the [[polylines]]. */\r\n flags: PolylineFlags;\r\n /** The positions of the [[polylines]]' vertices. If the positions are not quantized, they must include\r\n * a precomputed [Range3d]($core-geometry) encompassing all of the points.\r\n */\r\n points: QPoint3dList | (Array<Point3d> & { range: Range3d });\r\n /** The set of polylines. Each entry in the array describes a separate line string or point string as a series of indices into [[points]]. */\r\n polylines: PolylineIndices[];\r\n}\r\n\r\n/** @public */\r\nexport namespace PolylineArgs {\r\n /** @internal */\r\n export function fromMesh(mesh: Mesh): PolylineArgs | undefined {\r\n if (!mesh.polylines || mesh.polylines.length === 0)\r\n return undefined;\r\n\r\n const polylines = [];\r\n for (const polyline of mesh.polylines)\r\n if (polyline.indices.length > 0)\r\n polylines.push(polyline.indices);\r\n\r\n if (polylines.length === 0)\r\n return undefined;\r\n\r\n const flags: PolylineFlags = {\r\n is2d: mesh.is2d,\r\n isPlanar: mesh.isPlanar,\r\n isDisjoint: mesh.type === MeshPrimitiveType.Point,\r\n };\r\n\r\n if (mesh.displayParams.regionEdgeType === DisplayParams.RegionEdgeType.Outline) {\r\n // This polyline is behaving as the edges of a region surface.\r\n if (!mesh.displayParams.gradient || mesh.displayParams.gradient.isOutlined)\r\n flags.type = PolylineTypeFlags.Edge;\r\n else\r\n flags.type = PolylineTypeFlags.Outline; // edges only displayed if fill undisplayed\r\n }\r\n\r\n const colors = new ColorIndex();\r\n mesh.colorMap.toColorIndex(colors, mesh.colors);\r\n\r\n const features = new FeatureIndex();\r\n mesh.toFeatureIndex(features);\r\n\r\n return {\r\n width: mesh.displayParams.width,\r\n linePixels: mesh.displayParams.linePixels,\r\n flags,\r\n polylines,\r\n points: mesh.points,\r\n colors,\r\n features,\r\n };\r\n }\r\n}\r\n\r\n/** The vertices of the edges are shared with those of the surface\r\n * @internal\r\n */\r\nexport class MeshArgsEdges {\r\n public edges = new EdgeArgs();\r\n public silhouettes = new SilhouetteEdgeArgs();\r\n public polylines = new PolylineEdgeArgs();\r\n public width = 0;\r\n public linePixels = LinePixels.Solid;\r\n\r\n public clear(): void {\r\n this.edges.clear();\r\n this.silhouettes.clear();\r\n this.polylines.clear();\r\n this.width = 0;\r\n this.linePixels = LinePixels.Solid;\r\n }\r\n public get isValid(): boolean { return this.edges.isValid || this.silhouettes.isValid || this.polylines.isValid; }\r\n}\r\n\r\n/** Arguments supplied to [[RenderSystem.createTriMesh]] describing a triangle mesh.\r\n * @public\r\n */\r\nexport interface MeshArgs {\r\n /** @internal */\r\n edges?: MeshArgsEdges;\r\n /** The indices of the triangles. Each consecutive set of three indices represents one triangle.\r\n * The indices are used to index into the vertex attribute arrays like [[points]] and [[normals]].\r\n * Their values must be 32-bit unsigned integers.\r\n */\r\n vertIndices: number[];\r\n /** The positions of the mesh's vertices, indexed by [[vertIndices]]. If the positions are not quantized, they must include\r\n * a precomputed [Range3d]($core-geometry) encompassing all of the points.\r\n */\r\n points: QPoint3dList | (Array<Point3d> & { range: Range3d });\r\n /** The per-vertex normal vectors, indexed by [[vertIndices]].\r\n * Normal vectors are required if the mesh is to be lit or have [ThematicDisplay]($common) applied to it.\r\n */\r\n normals?: OctEncodedNormal[];\r\n /** The color(s) of the mesh. */\r\n colors: ColorIndex;\r\n /** The [Feature]($common)(s) contained in the mesh. */\r\n features: FeatureIndex;\r\n /** If [[isPlanar]] is `true`, describes how fill is applied to planar region interiors in wireframe mode.\r\n * Default: [FillFlags.ByView]($common).\r\n */\r\n fillFlags?: FillFlags;\r\n /** If `true`, indicates that the mesh represents a planar region. Default: false. */\r\n isPlanar?: boolean;\r\n /** If `true`, indicates that the mesh is two-dimensional - i.e., all [[points]] have the same z coordinate. */\r\n is2d?: boolean;\r\n /** If `true`, indicates that the mesh has a texture that includes static lighting - e.g., from photogrammetry. */\r\n hasBakedLighting?: boolean;\r\n /** @internal */\r\n isVolumeClassifier?: boolean;\r\n /** Auxiliary data associated with the mesh. */\r\n auxChannels?: ReadonlyArray<AuxChannel>;\r\n /** The material applied to the mesh. */\r\n material?: RenderMaterial;\r\n /** A texture mapping to be applied to the mesh. */\r\n textureMapping?: {\r\n /** The texture image. */\r\n texture: RenderTexture;\r\n /** The per-vertex texture coordinates, indexed by [[vertIndices]]. */\r\n uvParams: Point2d[];\r\n };\r\n}\r\n\r\n/** @public */\r\nexport namespace MeshArgs {\r\n /** @internal */\r\n export function fromMesh(mesh: Mesh): MeshArgs | undefined {\r\n if (!mesh.triangles || mesh.triangles.isEmpty || mesh.points.length === 0)\r\n return undefined;\r\n\r\n const texture = mesh.displayParams.textureMapping?.texture;\r\n const textureMapping = texture && mesh.uvParams.length > 0 ? { texture, uvParams: mesh.uvParams } : undefined;\r\n\r\n const colors = new ColorIndex();\r\n mesh.colorMap.toColorIndex(colors, mesh.colors);\r\n\r\n const features = new FeatureIndex();\r\n mesh.toFeatureIndex(features);\r\n\r\n let edges;\r\n if (mesh.edges) {\r\n edges = new MeshArgsEdges();\r\n edges.width = mesh.displayParams.width;\r\n edges.linePixels = mesh.displayParams.linePixels;\r\n edges.edges.init(mesh.edges);\r\n edges.silhouettes.init(mesh.edges);\r\n\r\n const polylines = [];\r\n for (const meshPolyline of mesh.edges.polylines)\r\n if (meshPolyline.indices.length > 0)\r\n polylines.push(meshPolyline.indices);\r\n\r\n edges.polylines.init(polylines);\r\n }\r\n\r\n return {\r\n vertIndices: mesh.triangles.indices,\r\n points: mesh.points,\r\n normals: !mesh.displayParams.ignoreLighting && mesh.normals.length > 0 ? mesh.normals : undefined,\r\n textureMapping,\r\n colors,\r\n features,\r\n material: mesh.displayParams.material,\r\n fillFlags: mesh.displayParams.fillFlags,\r\n isPlanar: mesh.isPlanar,\r\n is2d: mesh.is2d,\r\n hasBakedLighting: true === mesh.hasBakedLighting,\r\n isVolumeClassifier: true === mesh.isVolumeClassifier,\r\n edges,\r\n auxChannels: mesh.auxChannels,\r\n };\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class Mesh {\r\n private readonly _data: TriangleList | MeshPolylineList;\r\n public readonly points: MeshPointList;\r\n public readonly normals: OctEncodedNormal[] = [];\r\n public readonly uvParams: Point2d[] = [];\r\n public readonly colorMap: ColorMap = new ColorMap(); // used to be called ColorTable\r\n public colors: number[] = [];\r\n public edges?: MeshEdges;\r\n public readonly features?: Mesh.Features;\r\n public readonly type: MeshPrimitiveType;\r\n public readonly is2d: boolean;\r\n public readonly isPlanar: boolean;\r\n public readonly hasBakedLighting: boolean;\r\n public readonly isVolumeClassifier: boolean;\r\n public displayParams: DisplayParams;\r\n private _auxChannels?: AuxChannel[];\r\n\r\n private constructor(props: Mesh.Props) {\r\n const { displayParams, features, type, range, is2d, isPlanar } = props;\r\n this._data = MeshPrimitiveType.Mesh === type ? new TriangleList() : new MeshPolylineList();\r\n this.displayParams = displayParams;\r\n this.features = features ? new Mesh.Features(features) : undefined;\r\n this.type = type;\r\n this.is2d = is2d;\r\n this.isPlanar = isPlanar;\r\n this.hasBakedLighting = (true === props.hasBakedLighting);\r\n this.isVolumeClassifier = (true === props.isVolumeClassifier);\r\n if (props.quantizePositions) {\r\n this.points = new QPoint3dList(QParams3d.fromRange(range));\r\n } else {\r\n const points = [] as unknown as Point3dList;\r\n points.range = range;\r\n const center = range.center;\r\n points.add = (pt: Point3d) => {\r\n // assert(range.containsPoint(pt)); rounding error triggers this sometimes...\r\n points.push(pt.minus(center));\r\n };\r\n this.points = points;\r\n }\r\n }\r\n\r\n public static create(props: Mesh.Props): Mesh { return new Mesh(props); }\r\n\r\n public get triangles(): TriangleList | undefined {\r\n return MeshPrimitiveType.Mesh === this.type ? this._data as TriangleList : undefined;\r\n }\r\n\r\n public get polylines(): MeshPolylineList | undefined {\r\n return MeshPrimitiveType.Mesh !== this.type ? this._data as MeshPolylineList : undefined;\r\n }\r\n\r\n public get auxChannels(): ReadonlyArray<AuxChannel> | undefined {\r\n return this._auxChannels;\r\n }\r\n\r\n public addAuxChannels(channels: ReadonlyArray<AuxChannel>, srcIndex: number): void {\r\n // The native version of this function appears to assume that all polyfaces added to the Mesh will have\r\n // the same number + type of aux channels.\r\n // ###TODO We should really produce a separate Mesh for each unique combination. For now just bail on mismatch.\r\n if (this._auxChannels) {\r\n if (this._auxChannels.length !== channels.length)\r\n return;\r\n\r\n for (let i = 0; i < channels.length; i++) {\r\n const src = channels[i];\r\n const dst = this._auxChannels[i];\r\n if (src.dataType !== dst.dataType || src.name !== dst.name || src.inputName !== dst.inputName)\r\n return;\r\n }\r\n }\r\n\r\n if (!this._auxChannels) {\r\n // Copy the channels, leaving each AuxData's values array empty.\r\n this._auxChannels = channels.map((x) => new AuxChannel(x.data.map((y) => new AuxChannelData(y.input, [])), x.dataType, x.name, x.inputName));\r\n }\r\n\r\n // Append the value at srcIndex from each source channel's data to our channels.\r\n for (let channelIndex = 0; channelIndex < channels.length; channelIndex++) {\r\n const srcChannel = channels[channelIndex];\r\n const dstChannel = this._auxChannels[channelIndex];\r\n const dstIndex = dstChannel.valueCount;\r\n for (let dataIndex = 0; dataIndex < srcChannel.data.length; dataIndex++) {\r\n const dstData = dstChannel.data[dataIndex];\r\n dstData.copyValues(srcChannel.data[dataIndex], dstIndex, srcIndex, dstChannel.entriesPerValue);\r\n }\r\n }\r\n }\r\n\r\n public toFeatureIndex(index: FeatureIndex): void {\r\n if (undefined !== this.features)\r\n this.features.toFeatureIndex(index);\r\n }\r\n\r\n public toMeshArgs(): MeshArgs | undefined {\r\n return MeshArgs.fromMesh(this);\r\n }\r\n\r\n public toPolylineArgs(): PolylineArgs | undefined {\r\n return PolylineArgs.fromMesh(this);\r\n }\r\n\r\n public getGraphics(system: RenderSystem, instancesOrViewIndependentOrigin?: InstancedGraphicParams | Point3d): RenderGraphic | undefined {\r\n const meshArgs = this.toMeshArgs();\r\n if (meshArgs)\r\n return system.createTriMesh(meshArgs, instancesOrViewIndependentOrigin);\r\n\r\n const plArgs = this.toPolylineArgs();\r\n return plArgs ? system.createIndexedPolylines(plArgs, instancesOrViewIndependentOrigin) : undefined;\r\n }\r\n\r\n public addPolyline(poly: MeshPolyline): void {\r\n const { type, polylines } = this;\r\n\r\n assert(MeshPrimitiveType.Polyline === type || MeshPrimitiveType.Point === type);\r\n assert(undefined !== polylines);\r\n\r\n if (MeshPrimitiveType.Polyline === type && poly.indices.length < 2)\r\n return;\r\n\r\n if (undefined !== polylines)\r\n polylines.push(poly);\r\n }\r\n\r\n public addTriangle(triangle: Triangle): void {\r\n const { triangles, type } = this;\r\n\r\n assert(MeshPrimitiveType.Mesh === type);\r\n assert(undefined !== triangles);\r\n\r\n if (undefined !== triangles)\r\n triangles.addTriangle(triangle);\r\n }\r\n\r\n public addVertex(props: VertexKeyProps): number {\r\n const { feature, position, normal, uvParam, fillColor } = props;\r\n\r\n this.points.add(position);\r\n\r\n if (undefined !== normal)\r\n this.normals.push(normal);\r\n\r\n if (undefined !== uvParam)\r\n this.uvParams.push(uvParam);\r\n\r\n if (feature) {\r\n assert(undefined !== this.features);\r\n this.features.add(feature, this.points.length);\r\n }\r\n\r\n // Don't allocate color indices until we have non-uniform colors\r\n if (0 === this.colorMap.length) {\r\n this.colorMap.insert(fillColor);\r\n assert(this.colorMap.isUniform);\r\n assert(0 === this.colorMap.indexOf(fillColor));\r\n } else if (!this.colorMap.isUniform || !this.colorMap.hasColor(fillColor)) {\r\n // Back-fill uniform value (index=0) for existing vertices if previously uniform\r\n if (0 === this.colors.length)\r\n this.colors.length = this.points.length - 1;\r\n\r\n this.colors.push(this.colorMap.insert(fillColor));\r\n assert(!this.colorMap.isUniform);\r\n }\r\n\r\n return this.points.length - 1;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport namespace Mesh { // eslint-disable-line no-redeclare\r\n export class Features {\r\n public readonly table: FeatureTable;\r\n public indices: number[] = [];\r\n public uniform = 0;\r\n public initialized = false;\r\n\r\n public constructor(table: FeatureTable) { this.table = table; }\r\n\r\n public add(feat: Feature, numVerts: number): void {\r\n const index = this.table.insert(feat);\r\n if (!this.initialized) {\r\n // First feature - uniform.\r\n this.uniform = index;\r\n this.initialized = true;\r\n } else if (0 < this.indices.length) {\r\n // Already non-uniform\r\n this.indices.push(index);\r\n } else {\r\n // Second feature - back-fill uniform for existing verts\r\n while (this.indices.length < numVerts - 1)\r\n this.indices.push(this.uniform);\r\n\r\n this.indices.push(index);\r\n }\r\n }\r\n\r\n public setIndices(indices: number[]) {\r\n this.indices.length = 0;\r\n this.uniform = 0;\r\n this.initialized = 0 < indices.length;\r\n\r\n assert(0 < indices.length);\r\n if (1 === indices.length)\r\n this.uniform = indices[0];\r\n else if (1 < indices.length)\r\n this.indices = indices;\r\n }\r\n\r\n public toFeatureIndex(output?: FeatureIndex): FeatureIndex {\r\n const index = output ?? new FeatureIndex();\r\n if (!this.initialized) {\r\n index.type = FeatureIndexType.Empty;\r\n } else if (this.indices.length === 0) {\r\n index.type = FeatureIndexType.Uniform;\r\n index.featureID = this.uniform;\r\n } else {\r\n index.type = FeatureIndexType.NonUniform;\r\n index.featureIDs = new Uint32Array(this.indices);\r\n }\r\n\r\n return index;\r\n }\r\n }\r\n\r\n export interface Props {\r\n displayParams: DisplayParams;\r\n features?: FeatureTable;\r\n type: MeshPrimitiveType;\r\n range: Range3d;\r\n quantizePositions: boolean;\r\n is2d: boolean;\r\n isPlanar: boolean;\r\n hasBakedLighting?: boolean;\r\n isVolumeClassifier?: boolean;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class MeshList extends Array<Mesh> {\r\n public readonly features?: FeatureTable;\r\n public readonly range?: Range3d;\r\n constructor(features?: FeatureTable, range?: Range3d) {\r\n super();\r\n this.features = features;\r\n this.range = range;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AnimationNodeId.d.ts","sourceRoot":"","sources":["../../../../src/common/render/AnimationNodeId.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;GAGG;AACH,oBAAY,eAAe;IACzB,aAAa,aAAa;CAC3B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AnimationNodeId.js","sourceRoot":"","sources":["../../../../src/common/render/AnimationNodeId.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH;;;GAGG;AACH,MAAM,CAAN,IAAY,eAEX;AAFD,WAAY,eAAe;IACzB,gFAA0B,CAAA;AAC5B,CAAC,EAFW,eAAe,KAAf,eAAe,QAE1B","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\n/** Special values of [[GraphicBranch.animationNodeId]].\r\n * All other values refer to an [ElementTimeline.batchId]($common) that applies a transform to the graphics in the branch.\r\n * @internal\r\n */\r\nexport enum AnimationNodeId {\r\n Untransformed = 0xffffffff,\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AuxChannelTable.d.ts","sourceRoot":"","sources":["../../../../../src/common/render/primitives/AuxChannelTable.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EACwB,UAAU,IAAI,kBAAkB,EAC9D,MAAM,sBAAsB,CAAC;AAI9B,aAAa;AACb,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,aAAa;AACb,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC/D,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,aAAa;AACb,qBAAa,UAAW,YAAW,eAAe;IAChD,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjC,SAAgB,OAAO,EAAE,MAAM,EAAE,CAAC;gBAEf,KAAK,EAAE,eAAe;IAMlC,MAAM,IAAI,eAAe;CAOjC;AAED,aAAa;AACb,qBAAa,sBAAuB,SAAQ,UAAU;IACpD,SAAgB,OAAO,EAAE,YAAY,CAAC;IACtC,SAAgB,MAAM,EAAE,YAAY,CAAC;gBAElB,KAAK,EAAE,wBAAwB;IAMlC,MAAM,IAAI,wBAAwB;CAOnD;AAED,aAAa;AACb,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,KAAK,EAAE,wBAAwB;IAMlC,MAAM,IAAI,wBAAwB;CAOnD;AAED,aAAa;AACb,MAAM,WAAW,oBAAoB;IACnC,8FAA8F;IAC9F,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sGAAsG;IACtG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,yCAAyC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACpD,mCAAmC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,yCAAyC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,wBAAwB,EAAE,CAAC;CAC9C;AAED;;;;;;;GAOG;AACH,qBAAa,eAAe;IAC1B,8FAA8F;IAC9F,SAAgB,IAAI,EAAE,UAAU,CAAC;IACjC,kEAAkE;IAClE,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,uCAAuC;IACvC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,sGAAsG;IACtG,SAAgB,WAAW,EAAE,MAAM,CAAC;IACpC,gFAAgF;IAChF,SAAgB,iBAAiB,EAAE,MAAM,CAAC;IAC1C,yCAAyC;IACzC,SAAgB,aAAa,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACzD,mCAAmC;IACnC,SAAgB,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvC,yCAAyC;IACzC,SAAgB,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAE3C,OAAO;WAWO,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,eAAe,GAAG,SAAS;IA0BzE,MAAM,IAAI,oBAAoB;WAavB,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;CAGhJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AuxChannelTable.js","sourceRoot":"","sources":["../../../../../src/common/render/primitives/AuxChannelTable.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAW,MAAM,qBAAqB,CAAC;AACtD,OAAO,EACL,kBAAkB,EAAE,OAAO,EAAoC,OAAO,EAAE,OAAO,EAAE,QAAQ,GAC1F,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAelD,aAAa;AACb,MAAM,OAAO,UAAU;IAKrB,YAAmB,KAAsB;QACvC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC/B,CAAC;IAEM,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF;AAED,aAAa;AACb,MAAM,OAAO,sBAAuB,SAAQ,UAAU;IAIpD,YAAmB,KAA+B;QAChD,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAEe,MAAM;QACpB,OAAO;YACL,GAAG,KAAK,CAAC,MAAM,EAAE;YACjB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACjC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;SAChC,CAAC;IACJ,CAAC;CACF;AAED,aAAa;AACb,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAI7C,YAAmB,KAA+B;QAChD,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAEe,MAAM;QACpB,OAAO;YACL,GAAG,KAAK,CAAC,MAAM,EAAE;YACjB,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;YACvB,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;SACtB,CAAC;IACJ,CAAC;CACF;AAsBD;;;;;;;GAOG;AACH,MAAM,OAAO,eAAe;IAkB1B,YAAoB,KAA2B,EAAE,aAAwC,EAAE,OAAsB,EAAE,MAA0B;QAC3I,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,KAA2B;QAChD,IAAI,aAAmD,CAAC;QACxD,IAAI,OAAiC,CAAC;QACtC,IAAI,MAAqC,CAAC;QAE1C,IAAI,SAAS,KAAK,KAAK,CAAC,aAAa,IAAI,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YACxE,aAAa,GAAG,EAAE,CAAC;YACnB,KAAK,MAAM,YAAY,IAAI,KAAK,CAAC,aAAa;gBAC5C,aAAa,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,SAAS,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC5D,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO;gBAChC,OAAO,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,SAAS,KAAK,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC1D,MAAM,GAAG,EAAE,CAAC;YACZ,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM;gBAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,SAAS,KAAK,aAAa,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/J,CAAC;IAEM,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,WAAW;YACvB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACzD,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SAC5C,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,QAA2C,EAAE,WAAmB,EAAE,YAAoB;QAC/G,OAAO,sBAAsB,CAAC,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAC1F,CAAC;CACF;AAED,SAAS,MAAM,CAAC,GAAW;IACzB,IAAI,CAAC,KAAK,GAAG;QACX,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAEhB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,sBAAsB;IAK1B,YAAoB,KAAoC,EAAE,iBAAyB;QACjF,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAAC,QAA2C,EAAE,WAAmB,EAAE,YAAoB;QACvH,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5G,IAAI,CAAC,iBAAiB;YACpB,OAAO,SAAS,CAAC;QAEnB,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,MAAM,qBAAqB,GAAG,cAAc,GAAG,CAAC,GAAG,iBAAiB,CAAC;QACrE,MAAM,CAAC,CAAC,KAAK,qBAAqB,IAAI,CAAC,KAAK,qBAAqB,CAAC,CAAC;QAEnE,kIAAkI;QAClI,IAAI,UAAU,CAAC;QACf,IAAI,CAAC,KAAK,qBAAqB;YAC7B,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,GAAG,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,gDAAgD;;YAE3J,UAAU,GAAG,iBAAiB,CAAC,WAAW,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;QAE/E,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtE,MAAM,KAAK,GAAkC;YAC3C,IAAI;YACJ,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,KAAK,EAAE,WAAW;YAClB,iBAAiB;SAClB,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QACrE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxB,OAAO,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAEO,KAAK,CAAC,QAA2C;QACvD,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,kBAAkB,CAAC,MAAM,KAAK,OAAO,CAAC,QAAQ;gBAChD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;iBAClC,IAAI,kBAAkB,CAAC,MAAM,KAAK,OAAO,CAAC,QAAQ;gBACrD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;;gBAE3C,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAEtC,UAAU,IAAI,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,OAA2B,EAAE,UAAkB;QAChE,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,EAAE,CAAC;QAEnB,MAAM,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,IAAI,SAAS,GAAG,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB;YACzD,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,sCAAsC;YAEnE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/C,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC1B,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9B,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9B,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAE1B,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACtD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;gBACrD,SAAS,IAAI,IAAI,CAAC,kBAAkB,CAAC;YACvC,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;YACxB,MAAM;YACN,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAEO,SAAS,CAAC,OAA2B,EAAE,UAAkB;QAC/D,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,EAAE,CAAC;QAEnB,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAEjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,IAAI,SAAS,GAAG,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB;YACzD,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,sCAAsC;YAEnE,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC3C,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAClE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;gBACjD,SAAS,IAAI,IAAI,CAAC,kBAAkB,CAAC;YACvC,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC;YACV,MAAM;YACN,OAAO;YACP,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;YACxB,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;YACpB,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACzB,CAAC,CAAC;IACL,CAAC;IAEO,gBAAgB,CAAC,OAA2B,EAAE,UAAkB;QACtE,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,EAAE,CAAC;QAEnB,MAAM,KAAK,GAAG,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/C,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,IAAI,SAAS,GAAG,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAyB;YAC7D,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,sCAAsC;YAEnE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/C,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAE5B,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBACpD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBACpD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBACpD,SAAS,IAAI,IAAI,CAAC,kBAAkB,CAAC;YACvC,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC;QACpF,aAAa,CAAC,IAAI,CAAC;YACjB,MAAM;YACN,OAAO;YACP,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;YACxB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE;YACjC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;CACF;AAED,SAAS,wBAAwB,CAAC,OAA2B;IAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;IACrC,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAK,kBAAkB,CAAC,MAAM;YAC5B,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,kDAAkD;QACzE,KAAK,kBAAkB,CAAC,MAAM,CAAC;QAC/B,KAAK,kBAAkB,CAAC,QAAQ,CAAC;QACjC,KAAK,kBAAkB,CAAC,MAAM;YAC5B,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,sCAAsC;IAC/D,CAAC;AACH,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport { assert, Mutable } from \"@itwin/core-bentley\";\r\nimport {\r\n AuxChannelDataType, Point3d, AuxChannel as PolyfaceAuxChannel, Range1d, Range3d, Vector3d,\r\n} from \"@itwin/core-geometry\";\r\nimport { OctEncodedNormal, QParams3d, QPoint3d, Quantization } from \"@itwin/core-common\";\r\nimport { computeDimensions } from \"./VertexTable\";\r\n\r\n/** @alpha */\r\nexport interface AuxChannelProps {\r\n readonly name: string;\r\n readonly inputs: number[];\r\n readonly indices: number[];\r\n}\r\n\r\n/** @alpha */\r\nexport interface QuantizedAuxChannelProps extends AuxChannelProps {\r\n readonly qOrigin: number[];\r\n readonly qScale: number[];\r\n}\r\n\r\n/** @alpha */\r\nexport class AuxChannel implements AuxChannelProps {\r\n public readonly name: string;\r\n public readonly inputs: number[];\r\n public readonly indices: number[];\r\n\r\n public constructor(props: AuxChannelProps) {\r\n this.name = props.name;\r\n this.inputs = props.inputs;\r\n this.indices = props.indices;\r\n }\r\n\r\n public toJSON(): AuxChannelProps {\r\n return {\r\n name: this.name,\r\n inputs: this.inputs,\r\n indices: this.indices,\r\n };\r\n }\r\n}\r\n\r\n/** @alpha */\r\nexport class AuxDisplacementChannel extends AuxChannel {\r\n public readonly qOrigin: Float32Array;\r\n public readonly qScale: Float32Array;\r\n\r\n public constructor(props: QuantizedAuxChannelProps) {\r\n super(props);\r\n this.qOrigin = Float32Array.from(props.qOrigin);\r\n this.qScale = Float32Array.from(props.qScale);\r\n }\r\n\r\n public override toJSON(): QuantizedAuxChannelProps {\r\n return {\r\n ...super.toJSON(),\r\n qOrigin: Array.from(this.qOrigin),\r\n qScale: Array.from(this.qScale),\r\n };\r\n }\r\n}\r\n\r\n/** @alpha */\r\nexport class AuxParamChannel extends AuxChannel {\r\n public readonly qOrigin: number;\r\n public readonly qScale: number;\r\n\r\n public constructor(props: QuantizedAuxChannelProps) {\r\n super(props);\r\n this.qOrigin = props.qOrigin[0];\r\n this.qScale = props.qScale[0];\r\n }\r\n\r\n public override toJSON(): QuantizedAuxChannelProps {\r\n return {\r\n ...super.toJSON(),\r\n qOrigin: [this.qOrigin],\r\n qScale: [this.qScale],\r\n };\r\n }\r\n}\r\n\r\n/** @alpha */\r\nexport interface AuxChannelTableProps {\r\n /** Rectangular array of per-vertex data, of size width * height * numBytesPerVertex bytes. */\r\n readonly data: Uint8Array;\r\n /** The number of 4-byte RGBA columns in each row of the array. */\r\n readonly width: number;\r\n /** The number of rows in the array. */\r\n readonly height: number;\r\n /** The number of vertices in the array. Must be no more than (width * height) / numBytesPerVertex. */\r\n readonly count: number;\r\n /** The number of bytes allocated for each vertex. Must be a multiple of two. */\r\n readonly numBytesPerVertex: number;\r\n /** Displacements used for animations. */\r\n readonly displacements?: QuantizedAuxChannelProps[];\r\n /** Normals used for animations. */\r\n readonly normals?: AuxChannelProps[];\r\n /** Scalar params used for animations. */\r\n readonly params?: QuantizedAuxChannelProps[];\r\n}\r\n\r\n/**\r\n * Represents one or more channels of auxiliary per-vertex data which can be used to animate and resymbolize a mesh in various ways.\r\n * Each channel holds a fixed number of bytes for each vertex (typically 2 bytes for normals and params, 6 bytes for displacements).\r\n * The channels are interleaved in a rectangular array such that the data for each vertex is stored contiguously; that is, if a displacement and\r\n * a normal channel exist, then the first vertex's displacement is followed by the first vertex's normal, which is followed by the second\r\n * vertex's displacement and normal; and so on.\r\n * @alpha\r\n */\r\nexport class AuxChannelTable {\r\n /** Rectangular array of per-vertex data, of size width * height * numBytesPerVertex bytes. */\r\n public readonly data: Uint8Array;\r\n /** The number of 4-byte RGBA columns in each row of the array. */\r\n public readonly width: number;\r\n /** The number of rows in the array. */\r\n public readonly height: number;\r\n /** The number of vertices in the array. Must be no more than (width * height) / numBytesPerVertex. */\r\n public readonly numVertices: number;\r\n /** The number of bytes allocated for each vertex. Must be a multiple of two. */\r\n public readonly numBytesPerVertex: number;\r\n /** Displacements used for animations. */\r\n public readonly displacements?: AuxDisplacementChannel[];\r\n /** Normals used for animations. */\r\n public readonly normals?: AuxChannel[];\r\n /** Scalar params used for animations. */\r\n public readonly params?: AuxParamChannel[];\r\n\r\n private constructor(props: AuxChannelTableProps, displacements?: AuxDisplacementChannel[], normals?: AuxChannel[], params?: AuxParamChannel[]) {\r\n this.data = props.data;\r\n this.width = props.width;\r\n this.height = props.height;\r\n this.numVertices = props.count;\r\n this.numBytesPerVertex = props.numBytesPerVertex;\r\n this.displacements = displacements;\r\n this.normals = normals;\r\n this.params = params;\r\n }\r\n\r\n public static fromJSON(props: AuxChannelTableProps): AuxChannelTable | undefined {\r\n let displacements: AuxDisplacementChannel[] | undefined;\r\n let normals: AuxChannel[] | undefined;\r\n let params: AuxParamChannel[] | undefined;\r\n\r\n if (undefined !== props.displacements && 0 < props.displacements.length) {\r\n displacements = [];\r\n for (const displacement of props.displacements)\r\n displacements.push(new AuxDisplacementChannel(displacement));\r\n }\r\n\r\n if (undefined !== props.normals && 0 < props.normals.length) {\r\n normals = [];\r\n for (const normal of props.normals)\r\n normals.push(new AuxChannel(normal));\r\n }\r\n\r\n if (undefined !== props.params && 0 < props.params.length) {\r\n params = [];\r\n for (const param of props.params)\r\n params.push(new AuxParamChannel(param));\r\n }\r\n\r\n return undefined !== displacements || undefined !== normals || undefined !== params ? new AuxChannelTable(props, displacements, normals, params) : undefined;\r\n }\r\n\r\n public toJSON(): AuxChannelTableProps {\r\n return {\r\n data: this.data,\r\n width: this.width,\r\n height: this.height,\r\n count: this.numVertices,\r\n numBytesPerVertex: this.numBytesPerVertex,\r\n displacements: this.displacements?.map((x) => x.toJSON()),\r\n normals: this.normals?.map((x) => x.toJSON()),\r\n params: this.params?.map((x) => x.toJSON()),\r\n };\r\n }\r\n\r\n public static fromChannels(channels: ReadonlyArray<PolyfaceAuxChannel>, numVertices: number, maxDimension: number): AuxChannelTable | undefined {\r\n return AuxChannelTableBuilder.buildAuxChannelTable(channels, numVertices, maxDimension);\r\n }\r\n}\r\n\r\nfunction invert(num: number): number {\r\n if (0 !== num)\r\n num = 1 / num;\r\n\r\n return num;\r\n}\r\n\r\nclass AuxChannelTableBuilder {\r\n private readonly _view: DataView;\r\n private readonly _props: Mutable<AuxChannelTableProps>;\r\n private readonly _numBytesPerVertex: number;\r\n\r\n private constructor(props: Mutable<AuxChannelTableProps>, numBytesPerVertex: number) {\r\n this._props = props;\r\n this._numBytesPerVertex = numBytesPerVertex;\r\n this._view = new DataView(props.data.buffer);\r\n }\r\n\r\n public static buildAuxChannelTable(channels: ReadonlyArray<PolyfaceAuxChannel>, numVertices: number, maxDimension: number): AuxChannelTable | undefined {\r\n const numBytesPerVertex = channels.reduce((accum, channel) => accum + computeNumBytesPerVertex(channel), 0);\r\n if (!numBytesPerVertex)\r\n return undefined;\r\n\r\n const nRgbaPerVertex = Math.floor((numBytesPerVertex + 3) / 4);\r\n const nUnusedBytesPerVertex = nRgbaPerVertex * 4 - numBytesPerVertex;\r\n assert(0 === nUnusedBytesPerVertex || 2 === nUnusedBytesPerVertex);\r\n\r\n // We don't want any unused bytes. If we've got 2 extra, make every other vertex's channel start in the middle of the first texel.\r\n let dimensions;\r\n if (0 !== nUnusedBytesPerVertex)\r\n dimensions = computeDimensions(Math.floor((numVertices + 1) / 2), numBytesPerVertex / 2, 0, maxDimension); // twice as many RGBA for half as many vertices.\r\n else\r\n dimensions = computeDimensions(numVertices, nRgbaPerVertex, 0, maxDimension);\r\n\r\n const data = new Uint8Array(dimensions.width * dimensions.height * 4);\r\n const props: Mutable<AuxChannelTableProps> = {\r\n data,\r\n width: dimensions.width,\r\n height: dimensions.height,\r\n count: numVertices,\r\n numBytesPerVertex,\r\n };\r\n\r\n const builder = new AuxChannelTableBuilder(props, numBytesPerVertex);\r\n builder.build(channels);\r\n return AuxChannelTable.fromJSON(props);\r\n }\r\n\r\n private build(channels: ReadonlyArray<PolyfaceAuxChannel>): void {\r\n let byteOffset = 0;\r\n for (const channel of channels) {\r\n if (AuxChannelDataType.Normal === channel.dataType)\r\n this.addNormals(channel, byteOffset);\r\n else if (AuxChannelDataType.Vector === channel.dataType)\r\n this.addDisplacements(channel, byteOffset);\r\n else\r\n this.addParams(channel, byteOffset);\r\n\r\n byteOffset += computeNumBytesPerVertex(channel);\r\n }\r\n }\r\n\r\n private addNormals(channel: PolyfaceAuxChannel, byteOffset: number): void {\r\n const inputs = [];\r\n const indices = [];\r\n\r\n const normal = new Vector3d();\r\n for (let i = 0; i < channel.data.length; i++) {\r\n let byteIndex = byteOffset + i * 2; // 2 bytes per normal\r\n indices.push(byteIndex / 2); // indices aligned to 2-byte intervals\r\n\r\n const data = channel.data[i];\r\n inputs.push(data.input);\r\n\r\n for (let j = 0; j < data.values.length; j += 3) {\r\n normal.x = data.values[j];\r\n normal.y = data.values[j + 1];\r\n normal.z = data.values[j + 2];\r\n normal.normalizeInPlace();\r\n\r\n const encodedNormal = OctEncodedNormal.encode(normal);\r\n this._view.setUint16(byteIndex, encodedNormal, true);\r\n byteIndex += this._numBytesPerVertex;\r\n }\r\n }\r\n\r\n const normals = this._props.normals ?? (this._props.normals = []);\r\n normals.push({\r\n name: channel.name ?? \"\",\r\n inputs,\r\n indices,\r\n });\r\n }\r\n\r\n private addParams(channel: PolyfaceAuxChannel, byteOffset: number): void {\r\n const inputs = [];\r\n const indices = [];\r\n\r\n const range = Range1d.createNull();\r\n for (const data of channel.data) {\r\n inputs.push(data.input);\r\n range.extendArray(data.values);\r\n }\r\n\r\n const qScale = Quantization.computeScale(range.high - range.low);\r\n\r\n for (let i = 0; i < channel.data.length; i++) {\r\n let byteIndex = byteOffset + i * 2; // 2 bytes per double\r\n indices.push(byteIndex / 2); // indices aligned to 2-byte intervals\r\n\r\n for (const value of channel.data[i].values) {\r\n const quantized = Quantization.quantize(value, range.low, qScale);\r\n this._view.setUint16(byteIndex, quantized, true);\r\n byteIndex += this._numBytesPerVertex;\r\n }\r\n }\r\n\r\n const params = this._props.params ?? (this._props.params = []);\r\n params.push({\r\n inputs,\r\n indices,\r\n name: channel.name ?? \"\",\r\n qOrigin: [range.low],\r\n qScale: [invert(qScale)],\r\n });\r\n }\r\n\r\n private addDisplacements(channel: PolyfaceAuxChannel, byteOffset: number): void {\r\n const inputs = [];\r\n const indices = [];\r\n\r\n const point = new Point3d();\r\n const range = Range3d.createNull();\r\n for (const data of channel.data) {\r\n inputs.push(data.input);\r\n for (let i = 0; i < data.values.length; i += 3) {\r\n point.set(data.values[i], data.values[i + 1], data.values[i + 2]);\r\n range.extend(point);\r\n }\r\n }\r\n\r\n const qParams = QParams3d.fromRange(range);\r\n const qPoint = new QPoint3d();\r\n for (let i = 0; i < channel.data.length; i++) {\r\n let byteIndex = byteOffset + i * 6; // 2 bytes per coordinate\r\n indices.push(byteIndex / 2); // indices aligned to 2-byte intervals\r\n\r\n const data = channel.data[i];\r\n for (let j = 0; j < data.values.length; j += 3) {\r\n point.set(data.values[j], data.values[j + 1], data.values[j + 2]);\r\n qPoint.init(point, qParams);\r\n\r\n this._view.setUint16(byteIndex + 0, qPoint.x, true);\r\n this._view.setUint16(byteIndex + 2, qPoint.y, true);\r\n this._view.setUint16(byteIndex + 4, qPoint.z, true);\r\n byteIndex += this._numBytesPerVertex;\r\n }\r\n }\r\n\r\n const displacements = this._props.displacements ?? (this._props.displacements = []);\r\n displacements.push({\r\n inputs,\r\n indices,\r\n name: channel.name ?? \"\",\r\n qOrigin: qParams.origin.toArray(),\r\n qScale: qParams.scale.toArray().map((x) => invert(x)),\r\n });\r\n }\r\n}\r\n\r\nfunction computeNumBytesPerVertex(channel: PolyfaceAuxChannel): number {\r\n const nEntries = channel.data.length;\r\n switch (channel.dataType) {\r\n case AuxChannelDataType.Vector:\r\n return 6 * nEntries; // 3 16-bit quantized coordinate values per entry.\r\n case AuxChannelDataType.Normal:\r\n case AuxChannelDataType.Distance:\r\n case AuxChannelDataType.Scalar:\r\n return 2 * nEntries; // 1 16-bit quantized value per entry.\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DisplayParams.d.ts","sourceRoot":"","sources":["../../../../../src/common/render/primitives/DisplayParams.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAa7I;;GAEG;AACH,qBAAa,aAAa;IACxB,gBAAuB,eAAe,EAAE,MAAM,CAAM;IACpD,SAAgB,IAAI,EAAE,aAAa,CAAC,IAAI,CAA2B;IACnE,SAAgB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1C,SAAgB,QAAQ,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAiB;IAClD,SAAgB,SAAS,EAAE,QAAQ,CAAC;IACpC,SAAgB,SAAS,EAAE,QAAQ,CAAC;IACpC,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,UAAU,EAAE,UAAU,CAAC;IACvC,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,cAAc,EAAE,OAAO,CAAC;gBAErB,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,GAAE,MAAU,EAAE,UAAU,GAAE,UAA6B,EACjJ,SAAS,GAAE,SAA0B,EAAE,QAAQ,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAE,OAAe,EAAE,cAAc,CAAC,EAAE,cAAc;IAe9J,sHAAsH;WACxG,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,aAAa,GAAG,SAAS,EAAE,cAAc,UAAQ,GAAG,aAAa;IAmBrL,wGAAwG;WAC1F,aAAa,CAAC,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,aAAa,GAAG,SAAS,GAAG,aAAa;IAI5J,0GAA0G;WAC5F,eAAe,CAAC,EAAE,EAAE,aAAa,GAAG,aAAa;IAI/D,wGAAwG;WAC1F,aAAa,CAAC,EAAE,EAAE,aAAa,GAAG,aAAa;IAI7D,IAAW,cAAc,IAAI,aAAa,CAAC,cAAc,CAYxD;IAED,IAAW,iBAAiB,IAAI,OAAO,CAEtC;IAED,IAAW,eAAe,IAAI,OAAO,CAAyE;IAC9G,IAAW,mBAAmB,IAAI,OAAO,CAA8C;IACvF,IAAW,mBAAmB,IAAI,OAAO,CAA8C;IACvF,IAAW,cAAc,IAAI,cAAc,GAAG,SAAS,CAA8F;IACrJ,IAAW,UAAU,IAAI,OAAO,CAA8C;IAE9E,qHAAqH;IAC9G,MAAM,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,GAAE,aAAa,CAAC,cAAoD,GAAG,OAAO;IA+BhH,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM;IAoClD;;;OAGG;WACW,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ;CAG5D;AAED,gBAAgB;AAChB,yBAAiB,aAAa,CAAC;IAC7B,KAAY,IAAI;QACd,IAAI,IAAA;QACJ,MAAM,IAAA;QACN,IAAI,IAAA;KACL;IAED,KAAY,cAAc;QACxB,IAAI,IAAA;QACJ,OAAO,IAAA;QACP,OAAO,IAAA;KACR;IAED,KAAY,cAAc;QACxB,KAAK,IAAA,CAAG,qEAAqE;QAC7E,MAAM,IAAA;KACP;CACF"}
|