@itwin/core-frontend 4.1.0-dev.8 → 4.1.0-dev.81
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +105 -1
- package/lib/cjs/AccuDraw.d.ts +3 -4
- package/lib/cjs/AccuDraw.d.ts.map +1 -1
- package/lib/cjs/AccuDraw.js +6 -7
- package/lib/cjs/AccuDraw.js.map +1 -1
- package/lib/cjs/AccuSnap.d.ts +17 -2
- package/lib/cjs/AccuSnap.d.ts.map +1 -1
- package/lib/cjs/AccuSnap.js +35 -8
- package/lib/cjs/AccuSnap.js.map +1 -1
- package/lib/cjs/BackgroundMapGeometry.d.ts +3 -2
- package/lib/cjs/BackgroundMapGeometry.d.ts.map +1 -1
- package/lib/cjs/BackgroundMapGeometry.js +47 -7
- package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
- package/lib/cjs/BriefcaseConnection.d.ts +3 -3
- package/lib/cjs/BriefcaseConnection.js +3 -3
- package/lib/cjs/BriefcaseConnection.js.map +1 -1
- package/lib/cjs/ChangeFlags.d.ts +25 -12
- package/lib/cjs/ChangeFlags.d.ts.map +1 -1
- package/lib/cjs/ChangeFlags.js +24 -11
- package/lib/cjs/ChangeFlags.js.map +1 -1
- package/lib/cjs/CheckpointConnection.js +1 -1
- package/lib/cjs/CheckpointConnection.js.map +1 -1
- package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
- package/lib/cjs/DisplayStyleState.js +2 -1
- package/lib/cjs/DisplayStyleState.js.map +1 -1
- package/lib/cjs/DrawingViewState.d.ts +2 -2
- package/lib/cjs/DrawingViewState.d.ts.map +1 -1
- package/lib/cjs/DrawingViewState.js +3 -3
- package/lib/cjs/DrawingViewState.js.map +1 -1
- package/lib/cjs/ElementLocateManager.d.ts +0 -1
- package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
- package/lib/cjs/ElementLocateManager.js +11 -19
- package/lib/cjs/ElementLocateManager.js.map +1 -1
- package/lib/cjs/EnvironmentDecorations.js +1 -1
- package/lib/cjs/EnvironmentDecorations.js.map +1 -1
- package/lib/cjs/FrustumAnimator.js.map +1 -1
- package/lib/cjs/GeoServices.d.ts +37 -7
- package/lib/cjs/GeoServices.d.ts.map +1 -1
- package/lib/cjs/GeoServices.js +75 -25
- package/lib/cjs/GeoServices.js.map +1 -1
- package/lib/cjs/HitDetail.d.ts +100 -29
- package/lib/cjs/HitDetail.d.ts.map +1 -1
- package/lib/cjs/HitDetail.js +89 -36
- package/lib/cjs/HitDetail.js.map +1 -1
- package/lib/cjs/IModelApp.d.ts +19 -14
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js +22 -19
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +64 -19
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +131 -20
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/IpcApp.d.ts +1 -1
- package/lib/cjs/IpcApp.js +1 -1
- package/lib/cjs/IpcApp.js.map +1 -1
- package/lib/cjs/Marker.d.ts +1 -1
- package/lib/cjs/Marker.d.ts.map +1 -1
- package/lib/cjs/Marker.js +3 -3
- package/lib/cjs/Marker.js.map +1 -1
- package/lib/cjs/NativeApp.js +1 -1
- package/lib/cjs/NativeApp.js.map +1 -1
- package/lib/cjs/NoRenderApp.d.ts +1 -1
- package/lib/cjs/NoRenderApp.d.ts.map +1 -1
- package/lib/cjs/NoRenderApp.js +1 -1
- package/lib/cjs/NoRenderApp.js.map +1 -1
- package/lib/cjs/RealityDataSource.js +1 -1
- package/lib/cjs/RealityDataSource.js.map +1 -1
- package/lib/cjs/RealityDataSourceContextShareImpl.js +1 -1
- package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -1
- package/lib/cjs/SheetViewState.d.ts +9 -7
- package/lib/cjs/SheetViewState.d.ts.map +1 -1
- package/lib/cjs/SheetViewState.js +22 -7
- package/lib/cjs/SheetViewState.js.map +1 -1
- package/lib/cjs/SpatialViewState.d.ts +20 -5
- package/lib/cjs/SpatialViewState.d.ts.map +1 -1
- package/lib/cjs/SpatialViewState.js +13 -5
- package/lib/cjs/SpatialViewState.js.map +1 -1
- package/lib/cjs/Sprites.js +2 -2
- package/lib/cjs/Sprites.js.map +1 -1
- package/lib/cjs/TentativePoint.d.ts.map +1 -1
- package/lib/cjs/TentativePoint.js +10 -1
- package/lib/cjs/TentativePoint.js.map +1 -1
- package/lib/cjs/ViewContext.d.ts +19 -0
- package/lib/cjs/ViewContext.d.ts.map +1 -1
- package/lib/cjs/ViewContext.js +9 -0
- package/lib/cjs/ViewContext.js.map +1 -1
- package/lib/cjs/ViewCreator3d.d.ts +3 -6
- package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
- package/lib/cjs/ViewCreator3d.js +12 -33
- package/lib/cjs/ViewCreator3d.js.map +1 -1
- package/lib/cjs/ViewGlobalLocation.d.ts.map +1 -1
- package/lib/cjs/ViewGlobalLocation.js +4 -3
- package/lib/cjs/ViewGlobalLocation.js.map +1 -1
- package/lib/cjs/ViewManager.d.ts +4 -2
- package/lib/cjs/ViewManager.d.ts.map +1 -1
- package/lib/cjs/ViewManager.js +4 -2
- package/lib/cjs/ViewManager.js.map +1 -1
- package/lib/cjs/ViewPose.d.ts +11 -11
- package/lib/cjs/ViewPose.d.ts.map +1 -1
- package/lib/cjs/ViewPose.js +17 -11
- package/lib/cjs/ViewPose.js.map +1 -1
- package/lib/cjs/ViewState.d.ts +44 -26
- package/lib/cjs/ViewState.d.ts.map +1 -1
- package/lib/cjs/ViewState.js +52 -25
- package/lib/cjs/ViewState.js.map +1 -1
- package/lib/cjs/ViewingSpace.js +1 -1
- package/lib/cjs/ViewingSpace.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +59 -21
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +68 -25
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/ViewportSync.d.ts +2 -2
- package/lib/cjs/ViewportSync.d.ts.map +1 -1
- package/lib/cjs/ViewportSync.js +2 -2
- package/lib/cjs/ViewportSync.js.map +1 -1
- package/lib/cjs/common/FrontendLoggerCategory.d.ts.map +1 -0
- package/lib/cjs/common/FrontendLoggerCategory.js.map +1 -0
- package/lib/cjs/common/ImageUtil.d.ts.map +1 -0
- package/lib/cjs/{ImageUtil.js → common/ImageUtil.js} +2 -0
- package/lib/cjs/common/ImageUtil.js.map +1 -0
- package/lib/cjs/common/ViewRect.d.ts.map +1 -0
- package/lib/cjs/common/ViewRect.js.map +1 -0
- package/lib/cjs/common/WorkerProxy.d.ts +73 -0
- package/lib/cjs/common/WorkerProxy.d.ts.map +1 -0
- package/lib/cjs/common/WorkerProxy.js +54 -0
- package/lib/cjs/common/WorkerProxy.js.map +1 -0
- package/lib/{esm → cjs/common}/gltf/GltfModel.d.ts +1 -1
- package/lib/cjs/common/gltf/GltfModel.d.ts.map +1 -0
- package/lib/cjs/common/gltf/GltfModel.js.map +1 -0
- package/lib/cjs/common/gltf/GltfParser.d.ts.map +1 -0
- package/lib/cjs/common/gltf/GltfParser.js.map +1 -0
- package/lib/cjs/common/gltf/GltfSchema.d.ts.map +1 -0
- package/lib/cjs/common/gltf/GltfSchema.js.map +1 -0
- package/lib/cjs/common/imdl/CompactEdges.d.ts +27 -0
- package/lib/cjs/common/imdl/CompactEdges.d.ts.map +1 -0
- package/lib/cjs/common/imdl/CompactEdges.js +96 -0
- package/lib/cjs/common/imdl/CompactEdges.js.map +1 -0
- package/lib/cjs/{imdl → common/imdl}/ImdlModel.d.ts +5 -0
- package/lib/cjs/common/imdl/ImdlModel.d.ts.map +1 -0
- package/lib/cjs/common/imdl/ImdlModel.js +71 -0
- package/lib/cjs/common/imdl/ImdlModel.js.map +1 -0
- package/lib/{esm → cjs/common}/imdl/ImdlSchema.d.ts +68 -36
- package/lib/cjs/common/imdl/ImdlSchema.d.ts.map +1 -0
- package/lib/cjs/common/imdl/ImdlSchema.js +23 -0
- package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -0
- package/lib/cjs/{imdl/ImdlParser.d.ts → common/imdl/ParseImdlDocument.d.ts} +13 -8
- package/lib/cjs/common/imdl/ParseImdlDocument.d.ts.map +1 -0
- package/lib/cjs/{imdl/ImdlParser.js → common/imdl/ParseImdlDocument.js} +52 -37
- package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -0
- package/lib/cjs/common/render/AnimationNodeId.d.ts +11 -0
- package/lib/cjs/common/render/AnimationNodeId.d.ts.map +1 -0
- package/lib/cjs/common/render/AnimationNodeId.js +19 -0
- package/lib/cjs/common/render/AnimationNodeId.js.map +1 -0
- package/lib/{esm/render/RenderMaterial.d.ts → cjs/common/render/MaterialParams.d.ts} +7 -20
- package/lib/cjs/common/render/MaterialParams.d.ts.map +1 -0
- package/lib/cjs/{render/RenderMaterial.js → common/render/MaterialParams.js} +1 -1
- package/lib/cjs/common/render/MaterialParams.js.map +1 -0
- package/lib/cjs/common/render/TextureParams.d.ts +30 -0
- package/lib/cjs/common/render/TextureParams.d.ts.map +1 -0
- package/lib/cjs/{render/RenderTexture.js → common/render/TextureParams.js} +1 -1
- package/lib/cjs/common/render/TextureParams.js.map +1 -0
- package/lib/{esm → cjs/common}/render/primitives/AuxChannelTable.d.ts +8 -8
- package/lib/cjs/common/render/primitives/AuxChannelTable.d.ts.map +1 -0
- package/lib/cjs/{render → common/render}/primitives/AuxChannelTable.js +9 -9
- package/lib/cjs/common/render/primitives/AuxChannelTable.js.map +1 -0
- package/lib/cjs/common/render/primitives/DisplayParams.d.ts.map +1 -0
- package/lib/cjs/common/render/primitives/DisplayParams.js.map +1 -0
- package/lib/cjs/common/render/primitives/EdgeParams.d.ts +94 -0
- package/lib/cjs/common/render/primitives/EdgeParams.d.ts.map +1 -0
- package/lib/cjs/common/render/primitives/EdgeParams.js +46 -0
- package/lib/cjs/common/render/primitives/EdgeParams.js.map +1 -0
- package/lib/cjs/common/render/primitives/MeshParams.d.ts +20 -0
- package/lib/cjs/common/render/primitives/MeshParams.d.ts.map +1 -0
- package/lib/cjs/{imdl/ImdlModel.js → common/render/primitives/MeshParams.js} +2 -2
- package/lib/cjs/common/render/primitives/MeshParams.js.map +1 -0
- package/lib/cjs/common/render/primitives/MeshPrimitive.d.ts +29 -0
- package/lib/cjs/common/render/primitives/MeshPrimitive.d.ts.map +1 -0
- package/lib/cjs/common/render/primitives/MeshPrimitive.js +18 -0
- package/lib/cjs/common/render/primitives/MeshPrimitive.js.map +1 -0
- package/lib/cjs/common/render/primitives/PointStringParams.d.ts +14 -0
- package/lib/cjs/common/render/primitives/PointStringParams.d.ts.map +1 -0
- package/lib/cjs/common/render/primitives/PointStringParams.js +10 -0
- package/lib/cjs/common/render/primitives/PointStringParams.js.map +1 -0
- package/lib/cjs/common/render/primitives/PolylineParams.d.ts +29 -0
- package/lib/cjs/common/render/primitives/PolylineParams.d.ts.map +1 -0
- package/lib/cjs/common/render/primitives/PolylineParams.js +10 -0
- package/lib/cjs/common/render/primitives/PolylineParams.js.map +1 -0
- package/lib/{esm → cjs/common}/render/primitives/SurfaceParams.d.ts +1 -1
- package/lib/cjs/common/render/primitives/SurfaceParams.d.ts.map +1 -0
- package/lib/cjs/common/render/primitives/SurfaceParams.js.map +1 -0
- package/lib/cjs/common/render/primitives/VertexIndices.d.ts +26 -0
- package/lib/cjs/common/render/primitives/VertexIndices.d.ts.map +1 -0
- package/lib/cjs/common/render/primitives/VertexIndices.js +64 -0
- package/lib/cjs/common/render/primitives/VertexIndices.js.map +1 -0
- package/lib/cjs/common/render/primitives/VertexTable.d.ts +45 -0
- package/lib/cjs/common/render/primitives/VertexTable.d.ts.map +1 -0
- package/lib/cjs/common/render/primitives/VertexTable.js +38 -0
- package/lib/cjs/common/render/primitives/VertexTable.js.map +1 -0
- package/lib/{esm → cjs/common}/render/primitives/VertexTableSplitter.d.ts +20 -3
- package/lib/cjs/common/render/primitives/VertexTableSplitter.d.ts.map +1 -0
- package/lib/cjs/{render → common/render}/primitives/VertexTableSplitter.js +33 -23
- package/lib/cjs/common/render/primitives/VertexTableSplitter.js.map +1 -0
- package/lib/cjs/core-frontend.d.ts +45 -11
- package/lib/cjs/core-frontend.d.ts.map +1 -1
- package/lib/cjs/core-frontend.js +45 -11
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/extension/ExtensionAdmin.js +1 -1
- package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
- package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.js +1 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/cjs/render/CanvasDecoration.d.ts +6 -2
- package/lib/cjs/render/CanvasDecoration.d.ts.map +1 -1
- package/lib/cjs/render/CanvasDecoration.js.map +1 -1
- package/lib/cjs/render/CreateRenderMaterialArgs.d.ts +24 -0
- package/lib/cjs/render/CreateRenderMaterialArgs.d.ts.map +1 -0
- package/lib/cjs/render/CreateRenderMaterialArgs.js +10 -0
- package/lib/cjs/render/CreateRenderMaterialArgs.js.map +1 -0
- package/lib/{esm/render/RenderTexture.d.ts → cjs/render/CreateTextureArgs.d.ts} +4 -28
- package/lib/cjs/render/CreateTextureArgs.d.ts.map +1 -0
- package/lib/cjs/render/CreateTextureArgs.js +10 -0
- package/lib/cjs/render/CreateTextureArgs.js.map +1 -0
- package/lib/cjs/render/GraphicBranch.d.ts +5 -7
- package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBranch.js +1 -9
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- package/lib/cjs/render/InstancedGraphicParams.d.ts +3 -4
- package/lib/cjs/render/InstancedGraphicParams.d.ts.map +1 -1
- package/lib/cjs/render/InstancedGraphicParams.js.map +1 -1
- package/lib/cjs/render/MockRender.d.ts +4 -4
- package/lib/cjs/render/MockRender.d.ts.map +1 -1
- package/lib/cjs/render/MockRender.js +1 -1
- 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 +5 -5
- package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/cjs/render/Pixel.d.ts +57 -0
- package/lib/cjs/render/Pixel.d.ts.map +1 -1
- package/lib/cjs/render/Pixel.js +41 -0
- package/lib/cjs/render/Pixel.js.map +1 -1
- package/lib/cjs/render/RealityMeshParams.js +2 -2
- package/lib/cjs/render/RealityMeshParams.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +24 -10
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js +7 -8
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/RenderTarget.d.ts +1 -1
- package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
- package/lib/cjs/render/RenderTarget.js.map +1 -1
- package/lib/cjs/render/UpsampleRealityMeshParams.js.map +1 -1
- package/lib/cjs/render/VisibleFeature.d.ts +1 -1
- package/lib/cjs/render/VisibleFeature.d.ts.map +1 -1
- package/lib/cjs/render/VisibleFeature.js.map +1 -1
- package/lib/cjs/render/primitives/EdgeParams.d.ts +2 -89
- package/lib/cjs/render/primitives/EdgeParams.d.ts.map +1 -1
- package/lib/cjs/render/primitives/EdgeParams.js +44 -80
- package/lib/cjs/render/primitives/EdgeParams.js.map +1 -1
- package/lib/cjs/render/primitives/PointCloudPrimitive.d.ts +1 -0
- package/lib/cjs/render/primitives/PointCloudPrimitive.d.ts.map +1 -1
- package/lib/cjs/render/primitives/PointCloudPrimitive.js.map +1 -1
- package/lib/cjs/render/primitives/PointStringParams.d.ts +3 -11
- package/lib/cjs/render/primitives/PointStringParams.d.ts.map +1 -1
- package/lib/cjs/render/primitives/PointStringParams.js +27 -30
- package/lib/cjs/render/primitives/PointStringParams.js.map +1 -1
- package/lib/cjs/render/primitives/Polyface.d.ts +1 -1
- package/lib/cjs/render/primitives/Polyface.d.ts.map +1 -1
- package/lib/cjs/render/primitives/Polyface.js.map +1 -1
- package/lib/cjs/render/primitives/PolylineParams.d.ts +8 -37
- package/lib/cjs/render/primitives/PolylineParams.d.ts.map +1 -1
- package/lib/cjs/render/primitives/PolylineParams.js +40 -48
- package/lib/cjs/render/primitives/PolylineParams.js.map +1 -1
- package/lib/cjs/render/primitives/Strokes.d.ts +1 -1
- package/lib/cjs/render/primitives/Strokes.d.ts.map +1 -1
- package/lib/cjs/render/primitives/Strokes.js.map +1 -1
- package/lib/cjs/render/primitives/VertexTableBuilder.d.ts +31 -0
- package/lib/cjs/render/primitives/VertexTableBuilder.d.ts.map +1 -0
- package/lib/cjs/render/primitives/{VertexTable.js → VertexTableBuilder.js} +62 -173
- package/lib/cjs/render/primitives/VertexTableBuilder.js.map +1 -0
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts +2 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilder.js +5 -2
- package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts +6 -5
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js +7 -4
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +58 -31
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +25 -29
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
- package/lib/cjs/render/webgl/BatchState.js +1 -1
- package/lib/cjs/render/webgl/BatchState.js.map +1 -1
- package/lib/cjs/render/webgl/BranchState.d.ts +3 -0
- package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BranchState.js +2 -0
- package/lib/cjs/render/webgl/BranchState.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.js +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/cjs/render/webgl/Graphic.d.ts +7 -1
- package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Graphic.js +7 -2
- 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.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 +2 -2
- package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Mesh.js +1 -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/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/RealityMesh.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/SceneCompositor.d.ts +2 -1
- package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.js +5 -2
- package/lib/cjs/render/webgl/SceneCompositor.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 +1 -1
- package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Target.js +14 -12
- package/lib/cjs/render/webgl/Target.js.map +1 -1
- package/lib/cjs/render/webgl/Texture.d.ts +1 -1
- package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Texture.js +1 -1
- package/lib/cjs/render/webgl/Texture.js.map +1 -1
- package/lib/cjs/render/webgl/UniformHandle.js +1 -1
- package/lib/cjs/render/webgl/UniformHandle.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.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Atmosphere.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/RealityMesh.js +32 -19
- package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/cjs/tile/B3dmReader.d.ts +1 -1
- package/lib/cjs/tile/B3dmReader.d.ts.map +1 -1
- package/lib/cjs/tile/B3dmReader.js +1 -1
- package/lib/cjs/tile/B3dmReader.js.map +1 -1
- package/lib/cjs/tile/DynamicIModelTile.js +1 -1
- package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
- package/lib/cjs/tile/FetchCloudStorage.d.ts +15 -0
- package/lib/cjs/tile/FetchCloudStorage.d.ts.map +1 -0
- package/lib/cjs/tile/FetchCloudStorage.js +35 -0
- package/lib/cjs/tile/FetchCloudStorage.js.map +1 -0
- package/lib/cjs/tile/GltfReader.d.ts +13 -4
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +80 -28
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/IModelTile.d.ts.map +1 -1
- package/lib/cjs/tile/IModelTile.js +4 -9
- package/lib/cjs/tile/IModelTile.js.map +1 -1
- package/lib/cjs/tile/IModelTileTree.d.ts +4 -1
- package/lib/cjs/tile/IModelTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/IModelTileTree.js +15 -0
- package/lib/cjs/tile/IModelTileTree.js.map +1 -1
- package/lib/cjs/tile/ImdlDecoder.d.ts +52 -0
- package/lib/cjs/tile/ImdlDecoder.d.ts.map +1 -0
- package/lib/cjs/tile/ImdlDecoder.js +35 -0
- package/lib/cjs/tile/ImdlDecoder.js.map +1 -0
- package/lib/{esm/imdl → cjs/tile}/ImdlGraphicsCreator.d.ts +1 -1
- package/lib/cjs/tile/ImdlGraphicsCreator.d.ts.map +1 -0
- package/lib/cjs/{imdl → tile}/ImdlGraphicsCreator.js +13 -13
- package/lib/cjs/tile/ImdlGraphicsCreator.js.map +1 -0
- package/lib/cjs/tile/ImdlParser.d.ts +26 -0
- package/lib/cjs/tile/ImdlParser.d.ts.map +1 -0
- package/lib/cjs/tile/ImdlParser.js +72 -0
- package/lib/cjs/tile/ImdlParser.js.map +1 -0
- package/lib/cjs/tile/ImdlReader.d.ts +6 -1
- package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
- package/lib/cjs/tile/ImdlReader.js +16 -11
- package/lib/cjs/tile/ImdlReader.js.map +1 -1
- package/lib/cjs/tile/OPCFormatInterpreter.js +1 -1
- package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/cjs/tile/PntsReader.js +1 -1
- package/lib/cjs/tile/PntsReader.js.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.js +2 -1
- package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityTile.d.ts +8 -3
- package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTile.js +4 -1
- package/lib/cjs/tile/RealityTile.js.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.js +10 -5
- package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/tile/RealityTileTree.js +1 -1
- package/lib/cjs/tile/RealityTileTree.js.map +1 -1
- package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +1 -1
- package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -1
- package/lib/cjs/tile/TileAdmin.d.ts +14 -11
- package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
- package/lib/cjs/tile/TileAdmin.js +9 -52
- package/lib/cjs/tile/TileAdmin.js.map +1 -1
- package/lib/cjs/tile/TileContent.d.ts +6 -0
- package/lib/cjs/tile/TileContent.d.ts.map +1 -1
- package/lib/cjs/tile/TileContent.js.map +1 -1
- package/lib/cjs/tile/TileStorage.js.map +1 -1
- package/lib/cjs/tile/internal.d.ts +9 -0
- package/lib/cjs/tile/internal.d.ts.map +1 -1
- package/lib/cjs/tile/internal.js +9 -0
- package/lib/cjs/tile/internal.js.map +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts +8 -1
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.js +21 -0
- package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/cjs/tile/map/EllipsoidTerrainProvider.d.ts +6 -4
- package/lib/cjs/tile/map/EllipsoidTerrainProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/EllipsoidTerrainProvider.js +6 -4
- package/lib/cjs/tile/map/EllipsoidTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +2 -0
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js +4 -2
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +55 -2
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +96 -23
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGisAttributeDrivenSymbology.d.ts +11 -0
- package/lib/cjs/tile/map/ImageryProviders/ArcGisAttributeDrivenSymbology.d.ts.map +1 -0
- package/lib/cjs/{imdl/ImdlSchema.js → tile/map/ImageryProviders/ArcGisAttributeDrivenSymbology.js} +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGisAttributeDrivenSymbology.js.map +1 -0
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts +15 -0
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts.map +1 -0
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js +59 -0
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -0
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryRenderer.d.ts +47 -0
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryRenderer.d.ts.map +1 -0
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryRenderer.js +126 -0
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryRenderer.js.map +1 -0
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGraphicsRenderer.d.ts +27 -0
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGraphicsRenderer.d.ts.map +1 -0
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGraphicsRenderer.js +135 -0
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGraphicsRenderer.js.map +1 -0
- package/lib/cjs/tile/map/ImageryProviders/WebMercator.d.ts +6 -0
- package/lib/cjs/tile/map/ImageryProviders/WebMercator.d.ts.map +1 -0
- package/lib/cjs/tile/map/ImageryProviders/WebMercator.js +22 -0
- package/lib/cjs/tile/map/ImageryProviders/WebMercator.js.map +1 -0
- package/lib/cjs/tile/map/ImageryTileTree.d.ts +2 -1
- package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.js +27 -11
- package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapFeatureInfo.d.ts +67 -7
- package/lib/cjs/tile/map/MapFeatureInfo.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapFeatureInfo.js +16 -2
- package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.js +3 -0
- package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +4 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js +3 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.d.ts +5 -3
- package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.js +3 -0
- package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
- package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTile.js +9 -1
- package/lib/cjs/tile/map/MapTile.js.map +1 -1
- package/lib/cjs/tile/map/MapTileLoader.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileLoader.js +1 -15
- package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts +12 -3
- package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +33 -20
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts +2 -3
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +3 -4
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapTilingScheme.d.ts +4 -4
- package/lib/cjs/tile/map/MapTilingScheme.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTilingScheme.js +4 -4
- package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
- package/lib/cjs/tile/map/QuadId.js.map +1 -1
- package/lib/cjs/tools/ElementSetTool.js +1 -1
- package/lib/cjs/tools/ElementSetTool.js.map +1 -1
- package/lib/cjs/tools/SelectTool.js +1 -1
- package/lib/cjs/tools/SelectTool.js.map +1 -1
- package/lib/cjs/tools/ToolAdmin.d.ts +8 -6
- package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/cjs/tools/ToolAdmin.js +11 -8
- package/lib/cjs/tools/ToolAdmin.js.map +1 -1
- package/lib/cjs/tools/ToolAssistance.d.ts +18 -0
- package/lib/cjs/tools/ToolAssistance.d.ts.map +1 -1
- package/lib/cjs/tools/ToolAssistance.js +8 -0
- package/lib/cjs/tools/ToolAssistance.js.map +1 -1
- package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
- package/lib/cjs/tools/ViewTool.js +3 -2
- package/lib/cjs/tools/ViewTool.js.map +1 -1
- package/lib/cjs/workers/ImdlParser/Worker.d.ts +20 -0
- package/lib/cjs/workers/ImdlParser/Worker.d.ts.map +1 -0
- package/lib/cjs/workers/ImdlParser/Worker.js +32 -0
- package/lib/cjs/workers/ImdlParser/Worker.js.map +1 -0
- package/lib/cjs/workers/ImdlParser/webpack.config.js +40 -0
- package/lib/cjs/workers/RegisterWorker.d.ts +9 -0
- package/lib/cjs/workers/RegisterWorker.d.ts.map +1 -0
- package/lib/cjs/workers/RegisterWorker.js +36 -0
- package/lib/cjs/workers/RegisterWorker.js.map +1 -0
- package/lib/esm/AccuDraw.d.ts +3 -4
- package/lib/esm/AccuDraw.d.ts.map +1 -1
- package/lib/esm/AccuDraw.js +6 -7
- package/lib/esm/AccuDraw.js.map +1 -1
- package/lib/esm/AccuSnap.d.ts +17 -2
- package/lib/esm/AccuSnap.d.ts.map +1 -1
- package/lib/esm/AccuSnap.js +35 -8
- package/lib/esm/AccuSnap.js.map +1 -1
- package/lib/esm/BackgroundMapGeometry.d.ts +3 -2
- package/lib/esm/BackgroundMapGeometry.d.ts.map +1 -1
- package/lib/esm/BackgroundMapGeometry.js +47 -7
- package/lib/esm/BackgroundMapGeometry.js.map +1 -1
- package/lib/esm/BriefcaseConnection.d.ts +3 -3
- package/lib/esm/BriefcaseConnection.js +3 -3
- package/lib/esm/BriefcaseConnection.js.map +1 -1
- package/lib/esm/ChangeFlags.d.ts +25 -12
- package/lib/esm/ChangeFlags.d.ts.map +1 -1
- package/lib/esm/ChangeFlags.js +24 -11
- package/lib/esm/ChangeFlags.js.map +1 -1
- package/lib/esm/CheckpointConnection.js +1 -1
- package/lib/esm/CheckpointConnection.js.map +1 -1
- package/lib/esm/DisplayStyleState.d.ts.map +1 -1
- package/lib/esm/DisplayStyleState.js +2 -1
- package/lib/esm/DisplayStyleState.js.map +1 -1
- package/lib/esm/DrawingViewState.d.ts +2 -2
- package/lib/esm/DrawingViewState.d.ts.map +1 -1
- package/lib/esm/DrawingViewState.js +3 -3
- package/lib/esm/DrawingViewState.js.map +1 -1
- package/lib/esm/ElementLocateManager.d.ts +0 -1
- package/lib/esm/ElementLocateManager.d.ts.map +1 -1
- package/lib/esm/ElementLocateManager.js +12 -20
- package/lib/esm/ElementLocateManager.js.map +1 -1
- package/lib/esm/EnvironmentDecorations.js +1 -1
- package/lib/esm/EnvironmentDecorations.js.map +1 -1
- package/lib/esm/FrustumAnimator.js.map +1 -1
- package/lib/esm/GeoServices.d.ts +37 -7
- package/lib/esm/GeoServices.d.ts.map +1 -1
- package/lib/esm/GeoServices.js +75 -25
- package/lib/esm/GeoServices.js.map +1 -1
- package/lib/esm/HitDetail.d.ts +100 -29
- package/lib/esm/HitDetail.d.ts.map +1 -1
- package/lib/esm/HitDetail.js +90 -37
- package/lib/esm/HitDetail.js.map +1 -1
- package/lib/esm/IModelApp.d.ts +19 -14
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js +23 -20
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +64 -19
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +132 -21
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/IpcApp.d.ts +1 -1
- package/lib/esm/IpcApp.js +1 -1
- package/lib/esm/IpcApp.js.map +1 -1
- package/lib/esm/Marker.d.ts +1 -1
- package/lib/esm/Marker.d.ts.map +1 -1
- package/lib/esm/Marker.js +3 -3
- package/lib/esm/Marker.js.map +1 -1
- package/lib/esm/NativeApp.js +1 -1
- package/lib/esm/NativeApp.js.map +1 -1
- package/lib/esm/NoRenderApp.d.ts +1 -1
- package/lib/esm/NoRenderApp.d.ts.map +1 -1
- package/lib/esm/NoRenderApp.js +1 -1
- package/lib/esm/NoRenderApp.js.map +1 -1
- package/lib/esm/RealityDataSource.js +1 -1
- package/lib/esm/RealityDataSource.js.map +1 -1
- package/lib/esm/RealityDataSourceContextShareImpl.js +1 -1
- package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -1
- package/lib/esm/SheetViewState.d.ts +9 -7
- package/lib/esm/SheetViewState.d.ts.map +1 -1
- package/lib/esm/SheetViewState.js +22 -7
- package/lib/esm/SheetViewState.js.map +1 -1
- package/lib/esm/SpatialViewState.d.ts +20 -5
- package/lib/esm/SpatialViewState.d.ts.map +1 -1
- package/lib/esm/SpatialViewState.js +13 -5
- package/lib/esm/SpatialViewState.js.map +1 -1
- package/lib/esm/Sprites.js +2 -2
- package/lib/esm/Sprites.js.map +1 -1
- package/lib/esm/TentativePoint.d.ts.map +1 -1
- package/lib/esm/TentativePoint.js +10 -1
- package/lib/esm/TentativePoint.js.map +1 -1
- package/lib/esm/ViewContext.d.ts +19 -0
- package/lib/esm/ViewContext.d.ts.map +1 -1
- package/lib/esm/ViewContext.js +9 -0
- package/lib/esm/ViewContext.js.map +1 -1
- package/lib/esm/ViewCreator3d.d.ts +3 -6
- package/lib/esm/ViewCreator3d.d.ts.map +1 -1
- package/lib/esm/ViewCreator3d.js +14 -35
- package/lib/esm/ViewCreator3d.js.map +1 -1
- package/lib/esm/ViewGlobalLocation.d.ts.map +1 -1
- package/lib/esm/ViewGlobalLocation.js +4 -3
- package/lib/esm/ViewGlobalLocation.js.map +1 -1
- package/lib/esm/ViewManager.d.ts +4 -2
- package/lib/esm/ViewManager.d.ts.map +1 -1
- package/lib/esm/ViewManager.js +4 -2
- package/lib/esm/ViewManager.js.map +1 -1
- package/lib/esm/ViewPose.d.ts +11 -11
- package/lib/esm/ViewPose.d.ts.map +1 -1
- package/lib/esm/ViewPose.js +17 -11
- package/lib/esm/ViewPose.js.map +1 -1
- package/lib/esm/ViewState.d.ts +44 -26
- package/lib/esm/ViewState.d.ts.map +1 -1
- package/lib/esm/ViewState.js +52 -25
- package/lib/esm/ViewState.js.map +1 -1
- package/lib/esm/ViewingSpace.js +1 -1
- package/lib/esm/ViewingSpace.js.map +1 -1
- package/lib/esm/Viewport.d.ts +59 -21
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +68 -25
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/ViewportSync.d.ts +2 -2
- package/lib/esm/ViewportSync.d.ts.map +1 -1
- package/lib/esm/ViewportSync.js +2 -2
- package/lib/esm/ViewportSync.js.map +1 -1
- package/lib/esm/common/FrontendLoggerCategory.d.ts.map +1 -0
- package/lib/esm/common/FrontendLoggerCategory.js.map +1 -0
- package/lib/esm/common/ImageUtil.d.ts.map +1 -0
- package/lib/esm/{ImageUtil.js → common/ImageUtil.js} +2 -0
- package/lib/esm/common/ImageUtil.js.map +1 -0
- package/lib/esm/common/ViewRect.d.ts.map +1 -0
- package/lib/esm/common/ViewRect.js.map +1 -0
- package/lib/esm/common/WorkerProxy.d.ts +73 -0
- package/lib/esm/common/WorkerProxy.d.ts.map +1 -0
- package/lib/esm/common/WorkerProxy.js +50 -0
- package/lib/esm/common/WorkerProxy.js.map +1 -0
- package/lib/{cjs → esm/common}/gltf/GltfModel.d.ts +1 -1
- package/lib/esm/common/gltf/GltfModel.d.ts.map +1 -0
- package/lib/esm/common/gltf/GltfModel.js.map +1 -0
- package/lib/esm/common/gltf/GltfParser.d.ts.map +1 -0
- package/lib/esm/common/gltf/GltfParser.js.map +1 -0
- package/lib/esm/common/gltf/GltfSchema.d.ts.map +1 -0
- package/lib/esm/common/gltf/GltfSchema.js.map +1 -0
- package/lib/esm/common/imdl/CompactEdges.d.ts +27 -0
- package/lib/esm/common/imdl/CompactEdges.d.ts.map +1 -0
- package/lib/esm/common/imdl/CompactEdges.js +92 -0
- package/lib/esm/common/imdl/CompactEdges.js.map +1 -0
- package/lib/esm/{imdl → common/imdl}/ImdlModel.d.ts +5 -0
- package/lib/esm/common/imdl/ImdlModel.d.ts.map +1 -0
- package/lib/esm/common/imdl/ImdlModel.js +67 -0
- package/lib/esm/common/imdl/ImdlModel.js.map +1 -0
- package/lib/{cjs → esm/common}/imdl/ImdlSchema.d.ts +68 -36
- package/lib/esm/common/imdl/ImdlSchema.d.ts.map +1 -0
- package/lib/esm/common/imdl/ImdlSchema.js +20 -0
- package/lib/esm/common/imdl/ImdlSchema.js.map +1 -0
- package/lib/esm/{imdl/ImdlParser.d.ts → common/imdl/ParseImdlDocument.d.ts} +13 -8
- package/lib/esm/common/imdl/ParseImdlDocument.d.ts.map +1 -0
- package/lib/esm/{imdl/ImdlParser.js → common/imdl/ParseImdlDocument.js} +40 -25
- package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -0
- package/lib/esm/common/render/AnimationNodeId.d.ts +11 -0
- package/lib/esm/common/render/AnimationNodeId.d.ts.map +1 -0
- package/lib/esm/common/render/AnimationNodeId.js +16 -0
- package/lib/esm/common/render/AnimationNodeId.js.map +1 -0
- package/lib/{cjs/render/RenderMaterial.d.ts → esm/common/render/MaterialParams.d.ts} +7 -20
- package/lib/esm/common/render/MaterialParams.d.ts.map +1 -0
- package/lib/esm/{render/RenderMaterial.js → common/render/MaterialParams.js} +1 -1
- package/lib/esm/common/render/MaterialParams.js.map +1 -0
- package/lib/esm/common/render/TextureParams.d.ts +30 -0
- package/lib/esm/common/render/TextureParams.d.ts.map +1 -0
- package/lib/esm/{render/RenderTexture.js → common/render/TextureParams.js} +1 -1
- package/lib/esm/common/render/TextureParams.js.map +1 -0
- package/lib/{cjs → esm/common}/render/primitives/AuxChannelTable.d.ts +8 -8
- package/lib/esm/common/render/primitives/AuxChannelTable.d.ts.map +1 -0
- package/lib/esm/{render → common/render}/primitives/AuxChannelTable.js +9 -9
- package/lib/esm/common/render/primitives/AuxChannelTable.js.map +1 -0
- package/lib/esm/common/render/primitives/DisplayParams.d.ts.map +1 -0
- package/lib/esm/common/render/primitives/DisplayParams.js.map +1 -0
- package/lib/esm/common/render/primitives/EdgeParams.d.ts +94 -0
- package/lib/esm/common/render/primitives/EdgeParams.d.ts.map +1 -0
- package/lib/esm/common/render/primitives/EdgeParams.js +42 -0
- package/lib/esm/common/render/primitives/EdgeParams.js.map +1 -0
- package/lib/esm/common/render/primitives/MeshParams.d.ts +20 -0
- package/lib/esm/common/render/primitives/MeshParams.d.ts.map +1 -0
- package/lib/esm/{imdl/ImdlSchema.js → common/render/primitives/MeshParams.js} +2 -2
- package/lib/esm/common/render/primitives/MeshParams.js.map +1 -0
- package/lib/esm/common/render/primitives/MeshPrimitive.d.ts +29 -0
- package/lib/esm/common/render/primitives/MeshPrimitive.d.ts.map +1 -0
- package/lib/esm/common/render/primitives/MeshPrimitive.js +15 -0
- package/lib/esm/common/render/primitives/MeshPrimitive.js.map +1 -0
- package/lib/esm/common/render/primitives/PointStringParams.d.ts +14 -0
- package/lib/esm/common/render/primitives/PointStringParams.d.ts.map +1 -0
- package/lib/esm/common/render/primitives/PointStringParams.js +9 -0
- package/lib/esm/common/render/primitives/PointStringParams.js.map +1 -0
- package/lib/esm/common/render/primitives/PolylineParams.d.ts +29 -0
- package/lib/esm/common/render/primitives/PolylineParams.d.ts.map +1 -0
- package/lib/esm/common/render/primitives/PolylineParams.js +9 -0
- package/lib/esm/common/render/primitives/PolylineParams.js.map +1 -0
- package/lib/{cjs → esm/common}/render/primitives/SurfaceParams.d.ts +1 -1
- package/lib/esm/common/render/primitives/SurfaceParams.d.ts.map +1 -0
- package/lib/esm/common/render/primitives/SurfaceParams.js.map +1 -0
- package/lib/esm/common/render/primitives/VertexIndices.d.ts +26 -0
- package/lib/esm/common/render/primitives/VertexIndices.d.ts.map +1 -0
- package/lib/esm/common/render/primitives/VertexIndices.js +60 -0
- package/lib/esm/common/render/primitives/VertexIndices.js.map +1 -0
- package/lib/esm/common/render/primitives/VertexTable.d.ts +45 -0
- package/lib/esm/common/render/primitives/VertexTable.d.ts.map +1 -0
- package/lib/esm/common/render/primitives/VertexTable.js +34 -0
- package/lib/esm/common/render/primitives/VertexTable.js.map +1 -0
- package/lib/{cjs → esm/common}/render/primitives/VertexTableSplitter.d.ts +20 -3
- package/lib/esm/common/render/primitives/VertexTableSplitter.d.ts.map +1 -0
- package/lib/esm/{render → common/render}/primitives/VertexTableSplitter.js +31 -21
- package/lib/esm/common/render/primitives/VertexTableSplitter.js.map +1 -0
- package/lib/esm/core-frontend.d.ts +45 -11
- package/lib/esm/core-frontend.d.ts.map +1 -1
- package/lib/esm/core-frontend.js +45 -11
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/extension/ExtensionAdmin.js +1 -1
- package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
- package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -1
- package/lib/esm/quantity-formatting/QuantityFormatter.js +1 -1
- package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/esm/render/CanvasDecoration.d.ts +6 -2
- package/lib/esm/render/CanvasDecoration.d.ts.map +1 -1
- package/lib/esm/render/CanvasDecoration.js.map +1 -1
- package/lib/esm/render/CreateRenderMaterialArgs.d.ts +24 -0
- package/lib/esm/render/CreateRenderMaterialArgs.d.ts.map +1 -0
- package/lib/esm/render/CreateRenderMaterialArgs.js +9 -0
- package/lib/esm/render/CreateRenderMaterialArgs.js.map +1 -0
- package/lib/{cjs/render/RenderTexture.d.ts → esm/render/CreateTextureArgs.d.ts} +4 -28
- package/lib/esm/render/CreateTextureArgs.d.ts.map +1 -0
- package/lib/esm/render/CreateTextureArgs.js +9 -0
- package/lib/esm/render/CreateTextureArgs.js.map +1 -0
- package/lib/esm/render/GraphicBranch.d.ts +5 -7
- package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
- package/lib/esm/render/GraphicBranch.js +0 -8
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- package/lib/esm/render/InstancedGraphicParams.d.ts +3 -4
- package/lib/esm/render/InstancedGraphicParams.d.ts.map +1 -1
- package/lib/esm/render/InstancedGraphicParams.js.map +1 -1
- package/lib/esm/render/MockRender.d.ts +4 -4
- 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 +5 -5
- package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/esm/render/Pixel.d.ts +57 -0
- package/lib/esm/render/Pixel.d.ts.map +1 -1
- package/lib/esm/render/Pixel.js +41 -0
- package/lib/esm/render/Pixel.js.map +1 -1
- package/lib/esm/render/RealityMeshParams.js +2 -2
- package/lib/esm/render/RealityMeshParams.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +24 -10
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js +8 -9
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/RenderTarget.d.ts +1 -1
- package/lib/esm/render/RenderTarget.d.ts.map +1 -1
- package/lib/esm/render/RenderTarget.js.map +1 -1
- package/lib/esm/render/UpsampleRealityMeshParams.js.map +1 -1
- package/lib/esm/render/VisibleFeature.d.ts +1 -1
- package/lib/esm/render/VisibleFeature.d.ts.map +1 -1
- package/lib/esm/render/VisibleFeature.js.map +1 -1
- package/lib/esm/render/primitives/EdgeParams.d.ts +2 -89
- package/lib/esm/render/primitives/EdgeParams.d.ts.map +1 -1
- package/lib/esm/render/primitives/EdgeParams.js +38 -74
- package/lib/esm/render/primitives/EdgeParams.js.map +1 -1
- package/lib/esm/render/primitives/PointCloudPrimitive.d.ts +1 -0
- package/lib/esm/render/primitives/PointCloudPrimitive.d.ts.map +1 -1
- package/lib/esm/render/primitives/PointCloudPrimitive.js.map +1 -1
- package/lib/esm/render/primitives/PointStringParams.d.ts +3 -11
- package/lib/esm/render/primitives/PointStringParams.d.ts.map +1 -1
- package/lib/esm/render/primitives/PointStringParams.js +25 -28
- package/lib/esm/render/primitives/PointStringParams.js.map +1 -1
- package/lib/esm/render/primitives/Polyface.d.ts +1 -1
- package/lib/esm/render/primitives/Polyface.d.ts.map +1 -1
- package/lib/esm/render/primitives/Polyface.js.map +1 -1
- package/lib/esm/render/primitives/PolylineParams.d.ts +8 -37
- package/lib/esm/render/primitives/PolylineParams.d.ts.map +1 -1
- package/lib/esm/render/primitives/PolylineParams.js +34 -43
- package/lib/esm/render/primitives/PolylineParams.js.map +1 -1
- package/lib/esm/render/primitives/Strokes.d.ts +1 -1
- package/lib/esm/render/primitives/Strokes.d.ts.map +1 -1
- package/lib/esm/render/primitives/Strokes.js.map +1 -1
- package/lib/esm/render/primitives/VertexTableBuilder.d.ts +31 -0
- package/lib/esm/render/primitives/VertexTableBuilder.d.ts.map +1 -0
- package/lib/esm/render/primitives/{VertexTable.js → VertexTableBuilder.js} +62 -170
- package/lib/esm/render/primitives/VertexTableBuilder.js.map +1 -0
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts +1 -1
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts +1 -1
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +1 -1
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts +1 -1
- package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryPrimitives.js +1 -1
- package/lib/esm/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts +2 -1
- package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilder.js +5 -2
- package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts +6 -5
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.js +8 -5
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +58 -31
- package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.js +26 -30
- package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
- package/lib/esm/render/webgl/BatchState.js +1 -1
- package/lib/esm/render/webgl/BatchState.js.map +1 -1
- package/lib/esm/render/webgl/BranchState.d.ts +3 -0
- package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/esm/render/webgl/BranchState.js +2 -0
- package/lib/esm/render/webgl/BranchState.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.js +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/esm/render/webgl/Graphic.d.ts +7 -1
- package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
- package/lib/esm/render/webgl/Graphic.js +7 -2
- 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.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 +2 -2
- package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/Mesh.js +1 -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/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/RealityMesh.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/SceneCompositor.d.ts +2 -1
- package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.js +5 -2
- package/lib/esm/render/webgl/SceneCompositor.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 +2 -2
- package/lib/esm/render/webgl/System.js.map +1 -1
- package/lib/esm/render/webgl/Target.d.ts +1 -1
- package/lib/esm/render/webgl/Target.d.ts.map +1 -1
- package/lib/esm/render/webgl/Target.js +13 -11
- package/lib/esm/render/webgl/Target.js.map +1 -1
- package/lib/esm/render/webgl/Texture.d.ts +1 -1
- package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
- package/lib/esm/render/webgl/Texture.js +1 -1
- package/lib/esm/render/webgl/Texture.js.map +1 -1
- package/lib/esm/render/webgl/UniformHandle.js +1 -1
- package/lib/esm/render/webgl/UniformHandle.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.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Atmosphere.js.map +1 -1
- package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/RealityMesh.js +32 -19
- package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/esm/tile/B3dmReader.d.ts +1 -1
- package/lib/esm/tile/B3dmReader.d.ts.map +1 -1
- package/lib/esm/tile/B3dmReader.js +1 -1
- package/lib/esm/tile/B3dmReader.js.map +1 -1
- package/lib/esm/tile/DynamicIModelTile.js +1 -1
- package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
- package/lib/esm/tile/FetchCloudStorage.d.ts +15 -0
- package/lib/esm/tile/FetchCloudStorage.d.ts.map +1 -0
- package/lib/esm/tile/FetchCloudStorage.js +31 -0
- package/lib/esm/tile/FetchCloudStorage.js.map +1 -0
- package/lib/esm/tile/GltfReader.d.ts +13 -4
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +81 -29
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/IModelTile.d.ts.map +1 -1
- package/lib/esm/tile/IModelTile.js +5 -10
- package/lib/esm/tile/IModelTile.js.map +1 -1
- package/lib/esm/tile/IModelTileTree.d.ts +4 -1
- package/lib/esm/tile/IModelTileTree.d.ts.map +1 -1
- package/lib/esm/tile/IModelTileTree.js +16 -1
- package/lib/esm/tile/IModelTileTree.js.map +1 -1
- package/lib/esm/tile/ImdlDecoder.d.ts +52 -0
- package/lib/esm/tile/ImdlDecoder.d.ts.map +1 -0
- package/lib/esm/tile/ImdlDecoder.js +31 -0
- package/lib/esm/tile/ImdlDecoder.js.map +1 -0
- package/lib/{cjs/imdl → esm/tile}/ImdlGraphicsCreator.d.ts +1 -1
- package/lib/esm/tile/ImdlGraphicsCreator.d.ts.map +1 -0
- package/lib/esm/{imdl → tile}/ImdlGraphicsCreator.js +5 -5
- package/lib/esm/tile/ImdlGraphicsCreator.js.map +1 -0
- package/lib/esm/tile/ImdlParser.d.ts +26 -0
- package/lib/esm/tile/ImdlParser.d.ts.map +1 -0
- package/lib/esm/tile/ImdlParser.js +68 -0
- package/lib/esm/tile/ImdlParser.js.map +1 -0
- package/lib/esm/tile/ImdlReader.d.ts +6 -1
- package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
- package/lib/esm/tile/ImdlReader.js +13 -9
- package/lib/esm/tile/ImdlReader.js.map +1 -1
- package/lib/esm/tile/OPCFormatInterpreter.js +1 -1
- package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/esm/tile/PntsReader.js +1 -1
- package/lib/esm/tile/PntsReader.js.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.js +2 -1
- package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
- package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/tile/RealityTile.d.ts +8 -3
- package/lib/esm/tile/RealityTile.d.ts.map +1 -1
- package/lib/esm/tile/RealityTile.js +4 -1
- package/lib/esm/tile/RealityTile.js.map +1 -1
- package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileLoader.js +10 -5
- package/lib/esm/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/tile/RealityTileTree.js +1 -1
- package/lib/esm/tile/RealityTileTree.js.map +1 -1
- package/lib/esm/tile/ThreeDTileFormatInterpreter.js +1 -1
- package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -1
- package/lib/esm/tile/TileAdmin.d.ts +14 -11
- package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
- package/lib/esm/tile/TileAdmin.js +10 -30
- package/lib/esm/tile/TileAdmin.js.map +1 -1
- package/lib/esm/tile/TileContent.d.ts +6 -0
- package/lib/esm/tile/TileContent.d.ts.map +1 -1
- package/lib/esm/tile/TileContent.js.map +1 -1
- package/lib/esm/tile/TileStorage.js.map +1 -1
- package/lib/esm/tile/internal.d.ts +9 -0
- package/lib/esm/tile/internal.d.ts.map +1 -1
- package/lib/esm/tile/internal.js +9 -0
- package/lib/esm/tile/internal.js.map +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.d.ts +8 -1
- package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.js +21 -0
- package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/esm/tile/map/EllipsoidTerrainProvider.d.ts +6 -4
- package/lib/esm/tile/map/EllipsoidTerrainProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/EllipsoidTerrainProvider.js +6 -4
- package/lib/esm/tile/map/EllipsoidTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +2 -0
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js +4 -2
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +55 -2
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +96 -24
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGisAttributeDrivenSymbology.d.ts +11 -0
- package/lib/esm/tile/map/ImageryProviders/ArcGisAttributeDrivenSymbology.d.ts.map +1 -0
- package/lib/esm/{imdl/ImdlModel.js → tile/map/ImageryProviders/ArcGisAttributeDrivenSymbology.js} +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGisAttributeDrivenSymbology.js.map +1 -0
- package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts +15 -0
- package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts.map +1 -0
- package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js +55 -0
- package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -0
- package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryRenderer.d.ts +47 -0
- package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryRenderer.d.ts.map +1 -0
- package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryRenderer.js +122 -0
- package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryRenderer.js.map +1 -0
- package/lib/esm/tile/map/ImageryProviders/ArcGisGraphicsRenderer.d.ts +27 -0
- package/lib/esm/tile/map/ImageryProviders/ArcGisGraphicsRenderer.d.ts.map +1 -0
- package/lib/esm/tile/map/ImageryProviders/ArcGisGraphicsRenderer.js +131 -0
- package/lib/esm/tile/map/ImageryProviders/ArcGisGraphicsRenderer.js.map +1 -0
- package/lib/esm/tile/map/ImageryProviders/WebMercator.d.ts +6 -0
- package/lib/esm/tile/map/ImageryProviders/WebMercator.d.ts.map +1 -0
- package/lib/esm/tile/map/ImageryProviders/WebMercator.js +18 -0
- package/lib/esm/tile/map/ImageryProviders/WebMercator.js.map +1 -0
- package/lib/esm/tile/map/ImageryTileTree.d.ts +2 -1
- package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.js +28 -12
- package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapFeatureInfo.d.ts +67 -7
- package/lib/esm/tile/map/MapFeatureInfo.d.ts.map +1 -1
- package/lib/esm/tile/map/MapFeatureInfo.js +14 -1
- package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.js +3 -0
- package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +4 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js +3 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.d.ts +5 -3
- package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.js +3 -0
- package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
- package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTile.js +9 -1
- package/lib/esm/tile/map/MapTile.js.map +1 -1
- package/lib/esm/tile/map/MapTileLoader.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileLoader.js +1 -15
- package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts +12 -3
- package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js +34 -21
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts +2 -3
- package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js +3 -4
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/esm/tile/map/MapTilingScheme.d.ts +4 -4
- package/lib/esm/tile/map/MapTilingScheme.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTilingScheme.js +4 -4
- package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
- package/lib/esm/tile/map/QuadId.js.map +1 -1
- package/lib/esm/tools/ElementSetTool.js +1 -1
- package/lib/esm/tools/ElementSetTool.js.map +1 -1
- package/lib/esm/tools/SelectTool.js +1 -1
- package/lib/esm/tools/SelectTool.js.map +1 -1
- package/lib/esm/tools/ToolAdmin.d.ts +8 -6
- package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/esm/tools/ToolAdmin.js +11 -8
- package/lib/esm/tools/ToolAdmin.js.map +1 -1
- package/lib/esm/tools/ToolAssistance.d.ts +18 -0
- package/lib/esm/tools/ToolAssistance.d.ts.map +1 -1
- package/lib/esm/tools/ToolAssistance.js +8 -0
- package/lib/esm/tools/ToolAssistance.js.map +1 -1
- package/lib/esm/tools/ViewTool.d.ts.map +1 -1
- package/lib/esm/tools/ViewTool.js +3 -2
- package/lib/esm/tools/ViewTool.js.map +1 -1
- package/lib/esm/workers/ImdlParser/Worker.d.ts +20 -0
- package/lib/esm/workers/ImdlParser/Worker.d.ts.map +1 -0
- package/lib/esm/workers/ImdlParser/Worker.js +30 -0
- package/lib/esm/workers/ImdlParser/Worker.js.map +1 -0
- package/lib/esm/workers/ImdlParser/webpack.config.js +40 -0
- package/lib/esm/workers/RegisterWorker.d.ts +9 -0
- package/lib/esm/workers/RegisterWorker.d.ts.map +1 -0
- package/lib/esm/workers/RegisterWorker.js +32 -0
- package/lib/esm/workers/RegisterWorker.js.map +1 -0
- package/lib/public/scripts/parse-imdl-worker.js +1 -0
- package/lib/workers/webpack/parse-imdl-worker.js +1 -0
- package/package.json +32 -69
- package/lib/cjs/FrontendLoggerCategory.d.ts.map +0 -1
- package/lib/cjs/FrontendLoggerCategory.js.map +0 -1
- package/lib/cjs/ImageUtil.d.ts.map +0 -1
- package/lib/cjs/ImageUtil.js.map +0 -1
- package/lib/cjs/ViewRect.d.ts.map +0 -1
- package/lib/cjs/ViewRect.js.map +0 -1
- package/lib/cjs/WebWorkerManager.d.ts +0 -49
- package/lib/cjs/WebWorkerManager.d.ts.map +0 -1
- package/lib/cjs/WebWorkerManager.js +0 -155
- package/lib/cjs/WebWorkerManager.js.map +0 -1
- package/lib/cjs/gltf/GltfModel.d.ts.map +0 -1
- package/lib/cjs/gltf/GltfModel.js.map +0 -1
- package/lib/cjs/gltf/GltfParser.d.ts.map +0 -1
- package/lib/cjs/gltf/GltfParser.js.map +0 -1
- package/lib/cjs/gltf/GltfSchema.d.ts.map +0 -1
- package/lib/cjs/gltf/GltfSchema.js.map +0 -1
- package/lib/cjs/imdl/ImdlGraphicsCreator.d.ts.map +0 -1
- package/lib/cjs/imdl/ImdlGraphicsCreator.js.map +0 -1
- package/lib/cjs/imdl/ImdlModel.d.ts.map +0 -1
- package/lib/cjs/imdl/ImdlModel.js.map +0 -1
- package/lib/cjs/imdl/ImdlParser.d.ts.map +0 -1
- package/lib/cjs/imdl/ImdlParser.js.map +0 -1
- package/lib/cjs/imdl/ImdlSchema.d.ts.map +0 -1
- package/lib/cjs/imdl/ImdlSchema.js.map +0 -1
- package/lib/cjs/render/RenderMaterial.d.ts.map +0 -1
- package/lib/cjs/render/RenderMaterial.js.map +0 -1
- package/lib/cjs/render/RenderTexture.d.ts.map +0 -1
- package/lib/cjs/render/RenderTexture.js.map +0 -1
- package/lib/cjs/render/primitives/AuxChannelTable.d.ts.map +0 -1
- package/lib/cjs/render/primitives/AuxChannelTable.js.map +0 -1
- package/lib/cjs/render/primitives/DisplayParams.d.ts.map +0 -1
- package/lib/cjs/render/primitives/DisplayParams.js.map +0 -1
- package/lib/cjs/render/primitives/SurfaceParams.d.ts.map +0 -1
- package/lib/cjs/render/primitives/SurfaceParams.js.map +0 -1
- package/lib/cjs/render/primitives/VertexTable.d.ts +0 -152
- package/lib/cjs/render/primitives/VertexTable.d.ts.map +0 -1
- package/lib/cjs/render/primitives/VertexTable.js.map +0 -1
- package/lib/cjs/render/primitives/VertexTableSplitter.d.ts.map +0 -1
- package/lib/cjs/render/primitives/VertexTableSplitter.js.map +0 -1
- package/lib/cjs/render-primitives.d.ts +0 -21
- package/lib/cjs/render-primitives.d.ts.map +0 -1
- package/lib/cjs/render-primitives.js +0 -41
- package/lib/cjs/render-primitives.js.map +0 -1
- package/lib/esm/FrontendLoggerCategory.d.ts.map +0 -1
- package/lib/esm/FrontendLoggerCategory.js.map +0 -1
- package/lib/esm/ImageUtil.d.ts.map +0 -1
- package/lib/esm/ImageUtil.js.map +0 -1
- package/lib/esm/ViewRect.d.ts.map +0 -1
- package/lib/esm/ViewRect.js.map +0 -1
- package/lib/esm/WebWorkerManager.d.ts +0 -49
- package/lib/esm/WebWorkerManager.d.ts.map +0 -1
- package/lib/esm/WebWorkerManager.js +0 -150
- package/lib/esm/WebWorkerManager.js.map +0 -1
- package/lib/esm/gltf/GltfModel.d.ts.map +0 -1
- package/lib/esm/gltf/GltfModel.js.map +0 -1
- package/lib/esm/gltf/GltfParser.d.ts.map +0 -1
- package/lib/esm/gltf/GltfParser.js.map +0 -1
- package/lib/esm/gltf/GltfSchema.d.ts.map +0 -1
- package/lib/esm/gltf/GltfSchema.js.map +0 -1
- package/lib/esm/imdl/ImdlGraphicsCreator.d.ts.map +0 -1
- package/lib/esm/imdl/ImdlGraphicsCreator.js.map +0 -1
- package/lib/esm/imdl/ImdlModel.d.ts.map +0 -1
- package/lib/esm/imdl/ImdlModel.js.map +0 -1
- package/lib/esm/imdl/ImdlParser.d.ts.map +0 -1
- package/lib/esm/imdl/ImdlParser.js.map +0 -1
- package/lib/esm/imdl/ImdlSchema.d.ts.map +0 -1
- package/lib/esm/imdl/ImdlSchema.js.map +0 -1
- package/lib/esm/render/RenderMaterial.d.ts.map +0 -1
- package/lib/esm/render/RenderMaterial.js.map +0 -1
- package/lib/esm/render/RenderTexture.d.ts.map +0 -1
- package/lib/esm/render/RenderTexture.js.map +0 -1
- package/lib/esm/render/primitives/AuxChannelTable.d.ts.map +0 -1
- package/lib/esm/render/primitives/AuxChannelTable.js.map +0 -1
- package/lib/esm/render/primitives/DisplayParams.d.ts.map +0 -1
- package/lib/esm/render/primitives/DisplayParams.js.map +0 -1
- package/lib/esm/render/primitives/SurfaceParams.d.ts.map +0 -1
- package/lib/esm/render/primitives/SurfaceParams.js.map +0 -1
- package/lib/esm/render/primitives/VertexTable.d.ts +0 -152
- package/lib/esm/render/primitives/VertexTable.d.ts.map +0 -1
- package/lib/esm/render/primitives/VertexTable.js.map +0 -1
- package/lib/esm/render/primitives/VertexTableSplitter.d.ts.map +0 -1
- package/lib/esm/render/primitives/VertexTableSplitter.js.map +0 -1
- package/lib/esm/render-primitives.d.ts +0 -21
- package/lib/esm/render-primitives.d.ts.map +0 -1
- package/lib/esm/render-primitives.js +0 -25
- package/lib/esm/render-primitives.js.map +0 -1
- /package/lib/cjs/{FrontendLoggerCategory.d.ts → common/FrontendLoggerCategory.d.ts} +0 -0
- /package/lib/cjs/{FrontendLoggerCategory.js → common/FrontendLoggerCategory.js} +0 -0
- /package/lib/cjs/{ImageUtil.d.ts → common/ImageUtil.d.ts} +0 -0
- /package/lib/cjs/{ViewRect.d.ts → common/ViewRect.d.ts} +0 -0
- /package/lib/cjs/{ViewRect.js → common/ViewRect.js} +0 -0
- /package/lib/cjs/{gltf → common/gltf}/GltfModel.js +0 -0
- /package/lib/cjs/{gltf → common/gltf}/GltfParser.d.ts +0 -0
- /package/lib/cjs/{gltf → common/gltf}/GltfParser.js +0 -0
- /package/lib/cjs/{gltf → common/gltf}/GltfSchema.d.ts +0 -0
- /package/lib/cjs/{gltf → common/gltf}/GltfSchema.js +0 -0
- /package/lib/cjs/{render → common/render}/primitives/DisplayParams.d.ts +0 -0
- /package/lib/cjs/{render → common/render}/primitives/DisplayParams.js +0 -0
- /package/lib/cjs/{render → common/render}/primitives/SurfaceParams.js +0 -0
- /package/lib/esm/{FrontendLoggerCategory.d.ts → common/FrontendLoggerCategory.d.ts} +0 -0
- /package/lib/esm/{FrontendLoggerCategory.js → common/FrontendLoggerCategory.js} +0 -0
- /package/lib/esm/{ImageUtil.d.ts → common/ImageUtil.d.ts} +0 -0
- /package/lib/esm/{ViewRect.d.ts → common/ViewRect.d.ts} +0 -0
- /package/lib/esm/{ViewRect.js → common/ViewRect.js} +0 -0
- /package/lib/esm/{gltf → common/gltf}/GltfModel.js +0 -0
- /package/lib/esm/{gltf → common/gltf}/GltfParser.d.ts +0 -0
- /package/lib/esm/{gltf → common/gltf}/GltfParser.js +0 -0
- /package/lib/esm/{gltf → common/gltf}/GltfSchema.d.ts +0 -0
- /package/lib/esm/{gltf → common/gltf}/GltfSchema.js +0 -0
- /package/lib/esm/{render → common/render}/primitives/DisplayParams.d.ts +0 -0
- /package/lib/esm/{render → common/render}/primitives/DisplayParams.js +0 -0
- /package/lib/esm/{render → common/render}/primitives/SurfaceParams.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GltfParser.js","sourceRoot":"","sources":["../../../src/gltf/GltfParser.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 { ByteStream, JsonUtils, Logger, utf8ToString } from \"@itwin/core-bentley\";\r\nimport { Matrix3d, Point3d, Point4d, Transform } from \"@itwin/core-geometry\";\r\nimport { GlbHeader, ImageSource, TileFormat } from \"@itwin/core-common\";\r\nimport type { DracoLoader, DracoMesh } from \"@loaders.gl/draco\";\r\nimport { FrontendLoggerCategory } from \"../FrontendLoggerCategory\";\r\nimport {\r\n getImageSourceFormatForMimeType, imageBitmapFromImageSource, imageElementFromImageSource, tryImageElementFromUrl,\r\n} from \"../ImageUtil\";\r\nimport { TextureImageSource } from \"../render/RenderTexture\";\r\nimport {\r\n DracoMeshCompression, getGltfNodeMeshIds, GltfAccessor, GltfBuffer, GltfBufferViewProps, GltfDictionary, gltfDictionaryIterator, GltfDocument, GltfId, GltfImage, GltfMesh, GltfMeshMode, GltfMeshPrimitive, GltfNode, traverseGltfNodes,\r\n} from \"./GltfSchema\";\r\nimport { Gltf } from \"./GltfModel\";\r\n\r\n/** @internal */\r\nexport interface ParseGltfLogger {\r\n log(message: string, type: \"error\" | \"warning\" | \"info\"): void;\r\n}\r\n\r\n/** Arguments supplied to [[parseGltf]].\r\n * @internal\r\n */\r\nexport interface ParseGltfArgs {\r\n logger?: ParseGltfLogger;\r\n gltf: Uint8Array | GltfDocument;\r\n noCreateImageBitmap?: boolean;\r\n baseUrl?: string;\r\n isCanceled?: boolean;\r\n upAxis?: \"y\" | \"z\"; // default \"y\"\r\n}\r\n\r\n/** Parse a [[GltfDocument]] or binary representation thereof to produce a [[Gltf.Model]].\r\n * This implementation is incomplete and not currently used.\r\n * @internal\r\n */\r\nexport async function parseGltf(args: ParseGltfArgs): Promise<Gltf.Model | undefined> {\r\n const source = args.gltf;\r\n let version: number;\r\n let json: GltfDocument;\r\n let binary: Uint8Array | undefined;\r\n\r\n if (source instanceof Uint8Array) {\r\n // It may be JSON - check for magic indicating glb.\r\n const buffer = ByteStream.fromUint8Array(source);\r\n if (TileFormat.Gltf !== buffer.readUint32()) {\r\n try {\r\n const utf8Json = utf8ToString(source);\r\n if (!utf8Json)\r\n return undefined;\r\n\r\n json = JSON.parse(utf8Json);\r\n version = 2;\r\n } catch (_) {\r\n return undefined;\r\n }\r\n } else {\r\n buffer.reset();\r\n const header = new GlbHeader(buffer);\r\n if (!header.isValid)\r\n return undefined;\r\n\r\n version = header.version;\r\n if (header.binaryChunk)\r\n binary = new Uint8Array(source.buffer, source.byteOffset + header.binaryChunk.offset, header.binaryChunk.length);\r\n\r\n try {\r\n const jsonBytes = new Uint8Array(source.buffer, source.byteOffset + header.jsonChunk.offset, header.jsonChunk.length);\r\n const jsonStr = utf8ToString(jsonBytes);\r\n if (undefined === jsonStr)\r\n return undefined;\r\n\r\n json = JSON.parse(jsonStr);\r\n } catch (_) {\r\n return undefined;\r\n }\r\n }\r\n } else {\r\n version = 2; // ###TODO verify against source.asset?.version\r\n json = source;\r\n }\r\n\r\n // asset is required in glTF 2, optional in glTF 1\r\n const asset = JsonUtils.asObject(json.asset);\r\n if (version === 2 && !asset)\r\n return undefined;\r\n\r\n const document: GltfDocument = {\r\n asset,\r\n scene: JsonUtils.asString(json.scene),\r\n extensions: JsonUtils.asObject(json.extensions),\r\n extensionsUsed: JsonUtils.asArray(json.extensionsUsed),\r\n extensionsRequired: JsonUtils.asArray(json.extensionsRequired),\r\n accessors: JsonUtils.asObject(json.accessors),\r\n buffers: JsonUtils.asObject(json.buffers),\r\n bufferViews: JsonUtils.asObject(json.bufferViews),\r\n images: JsonUtils.asObject(json.images),\r\n materials: JsonUtils.asObject(json.materials),\r\n meshes: JsonUtils.asObject(json.meshes),\r\n nodes: JsonUtils.asObject(json.nodes),\r\n samplers: JsonUtils.asObject(json.samplers),\r\n scenes: JsonUtils.asObject(json.scenes),\r\n textures: JsonUtils.asObject(json.textures),\r\n techniques: JsonUtils.asObject(json.techniques),\r\n };\r\n\r\n if (!document.meshes)\r\n return undefined;\r\n\r\n const logger = args.logger ?? {\r\n log: (message: string, type: \"error\" | \"warning\" | \"info\") => {\r\n const category = `${FrontendLoggerCategory.Package}.gltf`;\r\n const fn = type === \"error\" ? \"logError\" : (type === \"warning\" ? \"logWarning\" : \"logInfo\");\r\n Logger[fn](category, message);\r\n },\r\n };\r\n\r\n const parser = new GltfParser({\r\n document,\r\n version,\r\n upAxis: args.upAxis ?? \"y\",\r\n binary,\r\n baseUrl: args.baseUrl,\r\n logger,\r\n isCanceled: () => args.isCanceled ?? false,\r\n imageFromImageSource: (args.noCreateImageBitmap ?\r\n async (imgSrc) => imageElementFromImageSource(imgSrc) :\r\n async (imgSrc) => imageBitmapFromImageSource(imgSrc)),\r\n });\r\n\r\n return parser.parse();\r\n}\r\n\r\ninterface GltfParserOptions {\r\n document: GltfDocument;\r\n version: number;\r\n upAxis: \"y\" | \"z\";\r\n binary?: Uint8Array;\r\n baseUrl?: string;\r\n logger: ParseGltfLogger;\r\n imageFromImageSource: (source: ImageSource) => Promise<TextureImageSource>;\r\n isCanceled: () => boolean;\r\n}\r\n\r\ntype ParserBuffer = GltfBuffer & { resolvedBuffer?: Gltf.Buffer };\r\ntype ParserImage = GltfImage & { resolvedImage?: TextureImageSource };\r\n\r\nclass GltfParser {\r\n private readonly _version: number;\r\n private readonly _upAxis: \"y\" | \"z\";\r\n private readonly _baseUrl?: string;\r\n private readonly _logger: ParseGltfLogger;\r\n private readonly _isCanceled: () => boolean;\r\n private readonly _buffers: GltfDictionary<ParserBuffer>;\r\n private readonly _images: GltfDictionary<ParserImage>;\r\n private readonly _nodes: GltfDictionary<GltfNode>;\r\n private readonly _meshes: GltfDictionary<GltfMesh>;\r\n private readonly _accessors: GltfDictionary<GltfAccessor>;\r\n private readonly _sceneNodes: GltfId[];\r\n private readonly _bufferViews: GltfDictionary<GltfBufferViewProps>;\r\n private readonly _imageFromImageSource: (source: ImageSource) => Promise<TextureImageSource>;\r\n private readonly _dracoMeshes = new Map<DracoMeshCompression, DracoMesh>();\r\n\r\n public constructor(options: GltfParserOptions) {\r\n this._version = options.version;\r\n this._upAxis = options.upAxis;\r\n this._baseUrl = options.baseUrl;\r\n this._logger = options.logger;\r\n this._isCanceled = options.isCanceled;\r\n this._imageFromImageSource = options.imageFromImageSource;\r\n\r\n const emptyDict = { };\r\n const doc = options.document;\r\n this._buffers = doc.buffers ?? emptyDict;\r\n this._images = doc.images ?? emptyDict;\r\n this._nodes = doc.nodes ?? emptyDict;\r\n this._meshes = doc.meshes ?? emptyDict;\r\n this._bufferViews = doc.bufferViews ?? emptyDict;\r\n this._accessors = doc.accessors ?? emptyDict;\r\n\r\n if (options.binary) {\r\n const buffer = this._buffers[this._version === 2 ? 0 : \"binary_glTF\"];\r\n if (buffer && undefined === buffer.uri)\r\n buffer.resolvedBuffer = { data: options.binary };\r\n }\r\n\r\n let sceneNodes;\r\n if (doc.scenes && undefined !== doc.scene)\r\n sceneNodes = doc.scenes[doc.scene]?.nodes;\r\n\r\n this._sceneNodes = sceneNodes ?? Object.keys(this._nodes);\r\n }\r\n\r\n public async parse(): Promise<Gltf.Model | undefined> {\r\n // ###TODO_GLTF RTC_CENTER\r\n // ###TODO_GLTF pseudo-rtc bias (apply translation to each point at read time, for scalable mesh...)\r\n const toWorld = undefined;\r\n\r\n await this.resolveResources();\r\n if (this._isCanceled())\r\n return undefined;\r\n\r\n // ###TODO_GLTF compute content range (maybe do so elsewhere?)\r\n // I think spec says POSITION must specify min and max?\r\n\r\n const nodes: Gltf.Node[] = [];\r\n for (const nodeKey of this._sceneNodes) {\r\n const node = this._nodes[nodeKey];\r\n if (node)\r\n nodes.push(this.parseNode(node));\r\n }\r\n\r\n return {\r\n toWorld,\r\n nodes,\r\n };\r\n }\r\n\r\n private parseNode(node: GltfNode): Gltf.Node {\r\n const primitives = [];\r\n for (const meshId of getGltfNodeMeshIds(node)) {\r\n const mesh = this._meshes[meshId];\r\n if (!mesh)\r\n continue;\r\n\r\n const parsedPrimitives = this.parsePrimitives(mesh);\r\n for (const primitive of parsedPrimitives)\r\n primitives.push(primitive);\r\n }\r\n\r\n let toParent;\r\n if (node.matrix) {\r\n const origin = Point3d.create(node.matrix[12], node.matrix[13], node.matrix[14]);\r\n const matrix = Matrix3d.createRowValues(\r\n node.matrix[0], node.matrix[4], node.matrix[8],\r\n node.matrix[1], node.matrix[5], node.matrix[9],\r\n node.matrix[2], node.matrix[6], node.matrix[10],\r\n );\r\n\r\n toParent = Transform.createOriginAndMatrix(origin, matrix);\r\n } else if (node.rotation || node.scale || node.translation) {\r\n // SPEC: To compose the local transformation matrix, TRS properties MUST be converted to matrices and postmultiplied in the T * R * S order;\r\n // first the scale is applied to the vertices, then the rotation, and then the translation.\r\n const scale = Transform.createRefs(undefined, node.scale ? Matrix3d.createScale(node.scale[0], node.scale[1], node.scale[2]) : Matrix3d.identity);\r\n const rot = Transform.createRefs(undefined, node.rotation ? Matrix3d.createFromQuaternion(Point4d.create(node.rotation[0], node.rotation[1], node.rotation[2], node.rotation[3])) : Matrix3d.identity);\r\n rot.matrix.transposeInPlace(); // See comment on Matrix3d.createFromQuaternion\r\n const trans = Transform.createTranslation(node.translation ? new Point3d(node.translation[0], node.translation[1], node.translation[2]) : Point3d.createZero());\r\n\r\n toParent = scale.multiplyTransformTransform(rot);\r\n trans.multiplyTransformTransform(toParent, toParent);\r\n }\r\n\r\n return {\r\n primitives,\r\n toParent,\r\n };\r\n }\r\n\r\n private parsePrimitives(mesh: GltfMesh): Gltf.AnyPrimitive[] {\r\n const primitives: Gltf.AnyPrimitive[] = [];\r\n if (!mesh.primitives)\r\n return primitives;\r\n\r\n for (const primitive of mesh.primitives) {\r\n const parsedPrimitive = this.parsePrimitive(primitive);\r\n if (parsedPrimitive)\r\n primitives.push(parsedPrimitive);\r\n }\r\n\r\n return primitives;\r\n }\r\n\r\n private parsePrimitive(primitive: GltfMeshPrimitive): Gltf.AnyPrimitive | undefined {\r\n const meshMode = JsonUtils.asInt(primitive.mode, GltfMeshMode.Triangles);\r\n switch (meshMode) {\r\n case GltfMeshMode.TriangleStrip:\r\n return this.parseTrianglesPrimitive(primitive);\r\n default:\r\n // ###TODO_GLTF Make parser support all primitive types. Consumer can choose to do whatever with them.\r\n return undefined;\r\n }\r\n }\r\n\r\n private parseTrianglesPrimitive(primitive: GltfMeshPrimitive): Gltf.TrianglesPrimitive | undefined {\r\n const posId = primitive.attributes.POSITION;\r\n const pos = undefined !== posId ? this._accessors[posId] : undefined;\r\n if (!pos)\r\n return undefined;\r\n\r\n return undefined; // ###TODO_GLTF\r\n }\r\n\r\n private traverseNodes(nodeIds: Iterable<GltfId>): Iterable<GltfNode> {\r\n return traverseGltfNodes(nodeIds, this._nodes, new Set<GltfId>());\r\n }\r\n\r\n private async resolveResources(): Promise<void> {\r\n // Load any external images and buffers.\r\n await this._resolveResources();\r\n\r\n // If any meshes are draco-compressed, dynamically load the decoder module and then decode the meshes.\r\n const dracoMeshes: DracoMeshCompression[] = [];\r\n\r\n for (const node of this.traverseNodes(this._sceneNodes)) {\r\n for (const meshId of getGltfNodeMeshIds(node)) {\r\n const mesh = this._meshes[meshId];\r\n if (mesh?.primitives)\r\n for (const primitive of mesh.primitives)\r\n if (primitive.extensions?.KHR_draco_mesh_compression)\r\n dracoMeshes.push(primitive.extensions.KHR_draco_mesh_compression);\r\n }\r\n }\r\n\r\n if (dracoMeshes.length === 0)\r\n return;\r\n\r\n try {\r\n const dracoLoader = (await import(\"@loaders.gl/draco\")).DracoLoader;\r\n await Promise.all(dracoMeshes.map(async (x) => this.decodeDracoMesh(x, dracoLoader)));\r\n } catch (err) {\r\n Logger.logWarning(FrontendLoggerCategory.Render, \"Failed to decode draco-encoded glTF mesh\");\r\n Logger.logException(FrontendLoggerCategory.Render, err);\r\n }\r\n }\r\n\r\n private async _resolveResources(): Promise<void> {\r\n // ###TODO traverse the scene nodes to find resources referenced by them, instead of resolving everything - some resources may not\r\n // be required for the scene.\r\n const promises: Array<Promise<void>> = [];\r\n try {\r\n for (const buffer of gltfDictionaryIterator(this._buffers))\r\n if (!buffer.resolvedBuffer)\r\n promises.push(this.resolveBuffer(buffer));\r\n\r\n await Promise.all(promises);\r\n if (this._isCanceled())\r\n return;\r\n\r\n promises.length = 0;\r\n for (const image of gltfDictionaryIterator(this._images))\r\n if (!image.resolvedImage)\r\n promises.push(this.resolveImage(image));\r\n\r\n await Promise.all(promises);\r\n } catch (_) {\r\n // ###TODO_GLTF log\r\n }\r\n }\r\n\r\n private resolveUrl(uri: string): string | undefined {\r\n try {\r\n return new URL(uri, this._baseUrl).toString();\r\n } catch (_) {\r\n return undefined;\r\n }\r\n }\r\n\r\n private async resolveBuffer(buffer: ParserBuffer): Promise<void> {\r\n if (buffer.resolvedBuffer || undefined === buffer.uri)\r\n return;\r\n\r\n try {\r\n const url = this.resolveUrl(buffer.uri);\r\n const response = url ? await fetch(url) : undefined;\r\n if (this._isCanceled())\r\n return;\r\n\r\n const data = await response?.arrayBuffer();\r\n if (this._isCanceled())\r\n return;\r\n\r\n if (data)\r\n buffer.resolvedBuffer = { data: new Uint8Array(data) };\r\n } catch (_) {\r\n //\r\n }\r\n }\r\n\r\n private async resolveImage(image: ParserImage): Promise<void> {\r\n if (image.resolvedImage)\r\n return;\r\n\r\n interface BufferViewSource { bufferView?: GltfId, mimeType?: string }\r\n const bvSrc: BufferViewSource | undefined = undefined !== image.bufferView ? image : image.extensions?.KHR_binary_glTF;\r\n if (undefined !== bvSrc?.bufferView) {\r\n const format = undefined !== bvSrc.mimeType ? getImageSourceFormatForMimeType(bvSrc.mimeType) : undefined;\r\n const bufferView = this._bufferViews[bvSrc.bufferView];\r\n if (undefined === format || !bufferView || !bufferView.byteLength || bufferView.byteLength < 0)\r\n return;\r\n\r\n const bufferData = this._buffers[bufferView.buffer]?.resolvedBuffer?.data;\r\n if (!bufferData)\r\n return;\r\n\r\n const offset = bufferView.byteOffset ?? 0;\r\n const bytes = bufferData.subarray(offset, offset + bufferView.byteLength);\r\n try {\r\n const imageSource = new ImageSource(bytes, format);\r\n image.resolvedImage = await this._imageFromImageSource(imageSource);\r\n } catch (_) {\r\n //\r\n }\r\n\r\n return;\r\n }\r\n\r\n const url = undefined !== image.uri ? this.resolveUrl(image.uri) : undefined;\r\n if (undefined !== url)\r\n image.resolvedImage = await tryImageElementFromUrl(url);\r\n }\r\n\r\n private async decodeDracoMesh(ext: DracoMeshCompression, loader: typeof DracoLoader): Promise<void> {\r\n const bv = this._bufferViews[ext.bufferView];\r\n if (!bv || !bv.byteLength)\r\n return;\r\n\r\n let buf = this._buffers[bv.buffer]?.resolvedBuffer?.data;\r\n if (!buf)\r\n return;\r\n\r\n const offset = bv.byteOffset ?? 0;\r\n buf = buf.subarray(offset, offset + bv.byteLength);\r\n const mesh = await loader.parse(buf, { }); // NB: `options` argument declared optional but will produce exception if not supplied.\r\n if (mesh)\r\n this._dracoMeshes.set(ext, mesh);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GltfSchema.d.ts","sourceRoot":"","sources":["../../../src/gltf/GltfSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GltfSchema.js","sourceRoot":"","sources":["../../../src/gltf/GltfSchema.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\n/** Enumerates the types of [[GltfMeshPrimitive]] topologies.\r\n * @internal\r\n */\r\nexport enum GltfMeshMode {\r\n Points = 0,\r\n Lines = 1,\r\n LineStrip = 3,\r\n Triangles = 4,\r\n /** Not currently supported. */\r\n TriangleStrip = 5,\r\n /** Not currently supported. */\r\n TriangleFan = 6,\r\n}\r\n\r\n/** Enumerates the basic data types supported by accessors, material values, technique uniforms, etc.\r\n * @internal\r\n */\r\nexport enum GltfDataType {\r\n SignedByte = 0x1400,\r\n UnsignedByte = 0x1401,\r\n SignedShort = 5122,\r\n UnsignedShort = 5123,\r\n UInt32 = 5125,\r\n Float = 5126,\r\n Rgb = 6407,\r\n Rgba = 6408,\r\n IntVec2 = 0x8b53,\r\n IntVec3 = 0x8b54,\r\n FloatVec2 = 35664,\r\n FloatVec3 = 35665,\r\n FloatVec4 = 35666,\r\n FloatMat3 = 35675,\r\n FloatMat4 = 35676,\r\n Sampler2d = 35678,\r\n}\r\n\r\n/** @internal */\r\nexport enum GltfMagFilter {\r\n Nearest = 9728,\r\n Linear = 9729,\r\n}\r\n\r\n/** @internal */\r\nexport enum GltfMinFilter {\r\n Nearest = GltfMagFilter.Nearest,\r\n Linear = GltfMagFilter.Linear,\r\n NearestMipMapNearest = 9984,\r\n LinearMipMapNearest = 9985,\r\n NearestMipMapLinear = 9986,\r\n LinearMipMapLinear = 9987,\r\n}\r\n\r\n/** Describes how texture coordinates outside of the range [0..1] are handled.\r\n * @internal\r\n */\r\nexport enum GltfWrapMode {\r\n ClampToEdge = 33071,\r\n MirroredRepeat = 33648,\r\n Repeat = 10497,\r\n}\r\n\r\n/** Describes the intended target of a [[GltfBufferViewProps]].\r\n * @internal\r\n */\r\nexport enum GltfBufferTarget {\r\n ArrayBuffer = 34962,\r\n ElementArrayBuffer = 24963,\r\n}\r\n\r\n/** The type used to refer to an entry in a GltfDictionary in a glTF 1.0 asset. @internal */\r\nexport type Gltf1Id = string;\r\n/** The type used to refer to an entry in a GltfDictionary in a glTF 2.0 asset. @internal */\r\nexport type Gltf2Id = number;\r\n/** The type used to refer to an entry in a GltfDictionary. @internal */\r\nexport type GltfId = Gltf1Id | Gltf2Id;\r\n\r\n/** A collection of resources of some type defined at the top-level of a [[GltfDocument]].\r\n * In glTF 1.0, these are defined as objects; each resource is referenced and accessed by its string key.\r\n * In glTF 2.0, these are defined as arrays; each resource is referenced and accessed by its integer array index.\r\n * @internal\r\n */\r\nexport interface GltfDictionary<T extends GltfChildOfRootProperty> {\r\n [key: GltfId]: T | undefined;\r\n}\r\n\r\n/** @internal */\r\nexport interface GltfStringMap<T> {\r\n [key: string]: T | undefined;\r\n}\r\n\r\n/** Iterate the contents of a [[GltfDictionary]].\r\n * @internal\r\n */\r\nexport function * gltfDictionaryIterator<T extends GltfChildOfRootProperty>(dict: GltfDictionary<T>): Iterable<T> {\r\n if (Array.isArray(dict)) {\r\n for (const elem of dict)\r\n yield elem;\r\n } else {\r\n for (const key of Object.keys(dict)) {\r\n const value = dict[key];\r\n if (undefined !== value)\r\n yield value;\r\n }\r\n }\r\n}\r\n\r\n/** Optional extensions applied to a [[GltfProperty]] to enable behavior not defined in the core specification.\r\n * @internal\r\n */\r\nexport type GltfExtensions = GltfStringMap<unknown>;\r\n\r\n/** The base interface provided by most objects in a glTF asset, permitting additional data to be associated with the object.\r\n * @internal\r\n */\r\nexport interface GltfProperty {\r\n extensions?: GltfExtensions;\r\n extras?: any;\r\n}\r\n\r\n/** The base interface provided by top-level properties of a [[GltfDocument]].\r\n * @internal\r\n */\r\nexport interface GltfChildOfRootProperty extends GltfProperty {\r\n /** Optional name, strictly for human consumption. */\r\n name?: string;\r\n}\r\n\r\n/** @internal */\r\nexport interface DracoMeshCompression {\r\n bufferView: GltfId;\r\n // TEXCOORD_0, POSITION, etc\r\n attributes: GltfStringMap<number>;\r\n}\r\n\r\n/** @internal */\r\nexport interface MeshFeature extends GltfProperty {\r\n featureCount: number;\r\n nullFeatureId?: number;\r\n label?: string;\r\n propertyTable?: number;\r\n texture?: unknown;\r\n attribute?: number;\r\n}\r\n\r\n/** @internal */\r\nexport interface MeshFeatures {\r\n featureIds: MeshFeature[];\r\n}\r\n\r\n/** A unit of geometry belonging to a [[GltfMesh]]. @internal */\r\nexport interface GltfMeshPrimitive extends GltfProperty {\r\n /** Maps the name of each mesh attribute semantic to the Id of the [[GltfAccessor]] providing the attribute's data. */\r\n attributes: GltfStringMap<GltfId>;\r\n /** The Id of the [[GltfAccessor]] providing the vertex indices. */\r\n indices?: GltfId;\r\n /** The Id of the [[GltfMaterial]] to apply to the primitive when rendering. */\r\n material?: GltfId;\r\n /** The primitive topology type. */\r\n mode?: GltfMeshMode;\r\n /** Morph targets - currently unsupported. */\r\n targets?: GltfStringMap<GltfId>;\r\n extensions?: GltfExtensions & {\r\n /** The [CESIUM_primitive_outline](https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Vendor/CESIUM_primitive_outline) extension\r\n * describes how to draw outline edges for a triangle mesh.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n CESIUM_primitive_outline?: {\r\n /** The Id of the [[GltfBufferViewProps]] supplying the endpoints of each edge as indices into the triangle mesh's vertex array.\r\n * The number of indices must be even; each consecutive pair of indices describes one line segment. No connectivity between\r\n * line segments is implied.\r\n */\r\n indices?: GltfId;\r\n };\r\n /** The [KHR_draco_mesh_compression](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_draco_mesh_compression/README.md) extension\r\n * allows glTF to support geometry compressed with Draco geometry compression.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n KHR_draco_mesh_compression?: DracoMeshCompression;\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n EXT_mesh_features?: MeshFeatures;\r\n };\r\n}\r\n\r\n/** A collection of [[GltfMeshPrimitive]]s to be rendered. Each mesh is referenced by a node. Multiple nodes can refer to the same mesh.\r\n * The node's transform is applied when rendering the mesh.\r\n * @internal\r\n */\r\nexport interface GltfMesh extends GltfChildOfRootProperty {\r\n /** The collection of primitives to be rendered. */\r\n primitives?: GltfMeshPrimitive[];\r\n /** For morph targets - currently unsupported. */\r\n weights?: number[];\r\n}\r\n\r\n/** Properties common to [[Gltf1Node]] and [[Gltf2Node]]. @internal */\r\nexport interface GltfNodeBaseProps {\r\n /** The Ids of the child nodes. @see [[GltfNode]]. */\r\n children?: GltfId[];\r\n /** Currently ignored. */\r\n camera?: GltfId;\r\n /** Currently ignored. */\r\n skin?: GltfId;\r\n /** A 4x4 column-major transformation matrix. Mutually exclusive with [[rotation]], [[scale]], and [[translation]]. */\r\n matrix?: number[];\r\n /** Unit quaternion as [x, y, z, w], where w is the scalar. */\r\n rotation?: number[];\r\n /** Non-uniform scale as [x, y, z]. */\r\n scale?: number[];\r\n /** Translation as [x, y, z]. */\r\n translation?: number[];\r\n}\r\n\r\n/** glTF 1.0 representation of a [[GltfNode]]. Unlike a [[Gltf2Node]], a Gltf1Node may refer to any number of [[GltfMesh]]es.\r\n * @internal\r\n */\r\nexport interface Gltf1Node extends GltfChildOfRootProperty, GltfNodeBaseProps {\r\n /** The Ids of the [[GltfMesh]]es to be rendered by this node.\r\n * @note The spec defines this as an array of strings, but the original implementation of [[GltfReader]] was written to treat it as a string instead.\r\n * In case this was because of non-spec-compliant glTF that placed a string here instead of an array, either is permitted.\r\n */\r\n meshes?: GltfId[] | string;\r\n mesh?: never;\r\n /** Currently ignored. */\r\n jointName?: GltfId;\r\n /** Currently ignored. */\r\n skeletons?: GltfId[];\r\n}\r\n\r\n/** glTF 2.0 representation of a [[GltfNode]]. Unlike a [[Gltf1Node]], a Gltf2Node may refer to at most one [[GltfMesh]].\r\n * @internal\r\n */\r\nexport interface Gltf2Node extends GltfChildOfRootProperty, GltfNodeBaseProps {\r\n /** The Id of the [[GltfMesh]] to be rendered by this node. */\r\n mesh?: GltfId;\r\n meshes?: never;\r\n /** Morph targets - currently ignored. */\r\n weights?: number[];\r\n}\r\n\r\n/** Describes a node in a [[GltfScene]]. Each node may be associated with zero, one (glTF 2.0), or any number of (glTF 1.0) [[GltfMesh]]es.\r\n * Each node may define a transform. Each node may have any number of child nodes. A child node's transform is multiplied by its parent node's transform.\r\n * Some nodes may be associated with other types of data like cameras, skins, lights, etc - these types of data are currently unsupported.\r\n * Rendering a node means rendering its meshes and the meshes of all of its descendants, with transforms applied.\r\n * @internal\r\n */\r\nexport type GltfNode = Gltf1Node | Gltf2Node;\r\n\r\n/** Get the Ids of the meshes associated with a node.\r\n * @internal\r\n */\r\nexport function getGltfNodeMeshIds(node: GltfNode): GltfId[] {\r\n if (undefined !== node.meshes)\r\n return typeof node.meshes === \"string\" ? [node.meshes] : node.meshes;\r\n else if (undefined !== node.mesh)\r\n return [node.mesh];\r\n\r\n return [];\r\n}\r\n\r\n/** @internal */\r\nexport function * traverseGltfNodes(ids: Iterable<GltfId>, nodes: GltfDictionary<GltfNode>, traversed: Set<GltfId>): Iterable<GltfNode> {\r\n for (const id of ids) {\r\n if (traversed.has(id))\r\n throw new Error(\"Cycle detected while traversing glTF nodes\");\r\n\r\n const node = nodes[id];\r\n if (!node)\r\n continue;\r\n\r\n traversed.add(id);\r\n yield node;\r\n if (node.children)\r\n for (const child of traverseGltfNodes(node.children, nodes, traversed))\r\n yield child;\r\n }\r\n}\r\n\r\n/** Describes a scene graph that composes any number of [[GltfNode]]s to produce a rendering of the [[GltfDocument]] asset.\r\n * An asset may define any number of scenes; the default scene is specified by [[Gltf.scene]].\r\n * @internal\r\n */\r\nexport interface GltfScene extends GltfChildOfRootProperty {\r\n /** The Ids of the nodes comprising the scene graph. */\r\n nodes?: GltfId[];\r\n}\r\n\r\n/** Provides metadata about a [[GltfDocument]] asset.\r\n * @internal\r\n */\r\nexport interface GltfAsset extends GltfProperty {\r\n /** A copyright message suitable for display to credit the content creator. */\r\n copyright?: string;\r\n /** The name of the tool that generated the asset. */\r\n generator?: string;\r\n /** The glTF version targeted by the asset, in the form \"major.minor\" where \"major\" and \"minor\" are integers. */\r\n version: string;\r\n /** The minimum glTF version required to properly load this asset, in the same form as [[version]].\r\n * This minimum version must be no greater than [[version]].\r\n */\r\n minVersion?: string;\r\n}\r\n\r\n/** Describes an image such as one used for a [[GltfTexture]]. The image may be referenced by a [[uri]] or a [[bufferView]].\r\n * @internal\r\n */\r\nexport interface GltfImage extends GltfChildOfRootProperty {\r\n /** URI from which the image data can be obtained, either as a base-64-encoded data URI or an external resource.\r\n * Mutually exclusive with [[bufferView]].\r\n */\r\n uri?: string;\r\n /** The image's media type. This property is required if [[bufferView]] is defined. */\r\n mimeType?: \"image/jpeg\" | \"image/png\";\r\n /** The Id of the [[GltfBufferViewProps]] containing the image data. Mutually exclusive with [[uri]]. */\r\n bufferView?: GltfId;\r\n extensions?: GltfExtensions & {\r\n /** The [KHR_binary_glTF](https://github.com/KhronosGroup/glTF/tree/main/extensions/1.0/Khronos/KHR_binary_glTF) allows an image to\r\n * be embedded in a binary chunk appended to the glTF asset's JSON, instead of being referenced by an external URI.\r\n * This is superseded in glTF 2.0 by support for the glb file format specification.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n KHR_binary_glTF?: {\r\n /** The Id of the [[GltfBufferViewProps]] that contains the binary image data. */\r\n bufferView?: GltfId;\r\n /** Required - @see [[GltfImage.mimeType]]. */\r\n mimeType?: string;\r\n };\r\n };\r\n}\r\n\r\n/** Describes a reference to a [[GltfTexture]]. @internal */\r\nexport interface GltfTextureInfo extends GltfProperty {\r\n /** The Id of the [[GltfTexture]]. */\r\n index: GltfId;\r\n /** The set index of the texture's TEXCOORD attribute used for texture coordinate mapping.\r\n * For example, if `texCoord` is `2`, an attribute named `TEXCOORD_2` must exist containing the texture coordinates.\r\n * Default: 0.\r\n */\r\n texCoord?: number;\r\n}\r\n\r\n/** Describes a texture and its sampler.\r\n * @internal\r\n */\r\nexport interface GltfTexture extends GltfChildOfRootProperty {\r\n /** The Id of the [[GltfSampler]] used by this texture.\r\n * If undefined, a sampler with repeat wrapping and auto filtering should be used by default.\r\n */\r\n sampler?: GltfId;\r\n /** The Id of the [[GltfImage]] used by this texture.\r\n * If undefined, an extension or other mechanism should supply an alternate image source - otherwise, the behavior is undefined.\r\n */\r\n source?: GltfId;\r\n}\r\n\r\n/** Describes the filtering and wrapping behavior to be applied to a [[GltfTexture]].\r\n * @note The implementation currently does not support MirroredRepeat and does not support different wrapping for U and V;\r\n * effectively, unless `wrapS` or `wrapT` is set to ClampToEdge, the sampler will use GltfWrapMode.Repeat.\r\n * @internal\r\n */\r\nexport interface GltfSampler extends GltfChildOfRootProperty {\r\n /** Magnification filter. */\r\n magFilter?: GltfMagFilter;\r\n /** Minification filter. */\r\n minFilter?: GltfMinFilter;\r\n /** S (U) wrapping mode. Default: Repeat. */\r\n wrapS?: GltfWrapMode;\r\n /** T (V) wrapping mode. Default: Repeat. */\r\n wrapT?: GltfWrapMode;\r\n}\r\n\r\n/** GL states that can be enabled by a [[GltfTechnique]]. Only those queried by this implementation are enumerated.\r\n * @internal\r\n */\r\nexport enum GltfTechniqueState {\r\n /** Enables alpha blending. */\r\n Blend = 3042,\r\n}\r\n\r\n/** For glTF 1.0 only, describes shader programs and shader state associated with a [[Gltf1Material]], used to render meshes associated with the material.\r\n * This implementation uses it strictly to identify techniques that require alpha blending.\r\n * @internal\r\n */\r\nexport interface GltfTechnique extends GltfChildOfRootProperty {\r\n /** GL render states to be applied by the technique. */\r\n states?: {\r\n /** An array of integers corresponding to boolean GL states that should be enabled using GL's `enable` function.\r\n * For example, the value [[GltfTechniqueState.Blend]] (3042) indicates that blending should be enabled.\r\n */\r\n enable?: GltfTechniqueState[];\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport interface Gltf1Material extends GltfChildOfRootProperty {\r\n diffuse?: string;\r\n emission?: number[];\r\n shininess?: number;\r\n specular?: number[];\r\n technique?: GltfId;\r\n values?: {\r\n texStep?: number[];\r\n color?: number[];\r\n tex?: number | string;\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport interface GltfMaterialPbrMetallicRoughness extends GltfProperty {\r\n // Default [1,1,1,1]\r\n baseColorFactor?: number[];\r\n baseColorTexture?: GltfTextureInfo;\r\n // Default 1\r\n metallicFactor?: number;\r\n // Default 1\r\n roughnessFactor?: number;\r\n metallicRoughnessTexture?: GltfTextureInfo;\r\n}\r\n\r\n/** @internal */\r\nexport type GltfAlphaMode = \"OPAQUE\" | \"MASK\" | \"BLEND\";\r\n\r\n/** @internal */\r\nexport interface Gltf2Material extends GltfChildOfRootProperty {\r\n pbrMetallicRoughness?: GltfMaterialPbrMetallicRoughness;\r\n normalTexture?: GltfTextureInfo;\r\n occlusionTexture?: unknown;\r\n emissiveTexture?: GltfTextureInfo;\r\n emissiveFactor?: number[];\r\n // Default OPAQUE\r\n alphaMode?: GltfAlphaMode;\r\n // Default 0.5. Ignored unless alphaMode=MASK\r\n alphaCutoff?: number;\r\n doubleSided?: boolean;\r\n extensions?: GltfExtensions & {\r\n /** The [KHR_materials_unlit](https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_unlit) extension\r\n * indicates that the material should be displayed without lighting. The extension adds no additional properties; it is effectively a boolean flag.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n KHR_materials_unlit?: { };\r\n /** The [KHR_techniques_webgl extension](https://github.com/KhronosGroup/glTF/blob/c1c12bd100e88ff468ccef1cb88cfbec56a69af2/extensions/2.0/Khronos/KHR_techniques_webgl/README.md)\r\n * allows \"techniques\" to be associated with [[GltfMaterial]]s. Techniques can supply custom shader programs to render geometry; this was a core feature of glTF 1.0 (see [[GltfTechnique]]).\r\n * Here, it is only used to extract uniform values.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n KHR_techniques_webgl?: {\r\n technique?: number;\r\n // An object containing uniform values. Each property name corresponds to a uniform in the material's technique and must conform to that uniform's type and count properties.\r\n // A handful of uniforms referenced in this implementation by name are defined below.\r\n values?: {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n u_texStep?: number[];\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n u_color?: number[];\r\n // Diffuse texture.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n u_diffuse?: { index: number, texCoord: number };\r\n [k: string]: unknown | undefined;\r\n };\r\n };\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport type GltfMaterial = Gltf1Material | Gltf2Material;\r\n\r\n/** @internal */\r\nexport function isGltf1Material(material: GltfMaterial): material is Gltf1Material {\r\n const mat1 = material as Gltf1Material;\r\n return undefined !== mat1.technique || undefined !== mat1.values;\r\n}\r\n\r\n/** @internal */\r\nexport interface GltfBuffer extends GltfChildOfRootProperty {\r\n uri?: string;\r\n byteLength?: number;\r\n}\r\n\r\n/** @internal */\r\nexport interface GltfBufferViewProps extends GltfChildOfRootProperty {\r\n buffer: GltfId;\r\n byteLength?: number;\r\n byteOffset?: number;\r\n byteStride?: number;\r\n target?: GltfBufferTarget;\r\n}\r\n\r\n/** @internal */\r\nexport interface GltfAccessor extends GltfChildOfRootProperty {\r\n bufferView?: GltfId;\r\n byteOffset?: number;\r\n componentType?: GltfDataType.SignedByte | GltfDataType.UnsignedByte | GltfDataType.SignedShort | GltfDataType.UnsignedShort | GltfDataType.UInt32 | GltfDataType.Float;\r\n normalized?: boolean;\r\n count: number;\r\n type: \"SCALAR\" | \"VEC2\" | \"VEC3\" | \"VEC4\" | \"MAT2\" | \"MAT3\" | \"MAT4\";\r\n max?: number[];\r\n min?: number[];\r\n sparse?: unknown; // ###TODO sparse accessors\r\n extensions?: GltfExtensions & {\r\n /** Quantized attributes for glTF 1.0. Superceded by KHR_mesh_quantization. */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n WEB3D_quantized_attributes?: {\r\n decodedMin: number[];\r\n decodedMax: number[];\r\n /** Currently ignored. */\r\n decodeMatrix: number[];\r\n };\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport namespace GltfStructuralMetadata {\r\n export type ClassPropertyType = \"SCALAR\" | \"STRING\" | \"BOOLEAN\" | \"ENUM\" | \"VEC2\" | \"VEC3\" | \"VEC4\" | \"MAT2\" | \"MAT3\" | \"MAT4\" | string;\r\n export type ClassPropertyComponentType = \"INT8\" | \"UINT8\" | \"INT16\" | \"UINT16\" | \"INT32\" | \"UINT32\" | \"INT64\" | \"UINT64\" | \"FLOAT32\" | \"FLOAT64\" | string;\r\n\r\n // Ignoring VECN and MATN types because they complicate offset, scale, min, and max, all of which are otherwise only relevant to SCALAR in which case they're all just numbers.\r\n export interface ClassProperty extends GltfProperty {\r\n type: ClassPropertyType;\r\n name?: string;\r\n description?: string;\r\n componentType?: ClassPropertyComponentType;\r\n enumType?: string;\r\n array?: boolean;\r\n count?: number;\r\n normalized?: boolean;\r\n offset?: number;\r\n scale?: number;\r\n min?: number;\r\n max?: number;\r\n required?: boolean;\r\n noData?: unknown;\r\n default?: unknown;\r\n semantic?: string;\r\n }\r\n\r\n export interface EnumValue extends GltfProperty {\r\n name: string;\r\n value: number; // an integer\r\n description?: string;\r\n }\r\n\r\n export interface Enum extends GltfProperty {\r\n values: EnumValue[];\r\n // Default: UINT16\r\n valueType?: \"INT8\" | \"UINT8\" | \"INT16\" | \"UINT16\" | \"INT32\" | \"UINT32\" | \"INT64\" | \"UINT64\" | string;\r\n name?: string;\r\n description?: string;\r\n }\r\n\r\n export interface Class extends GltfProperty {\r\n name?: string;\r\n description?: string;\r\n properties?: {\r\n [propertyId: string]: ClassProperty | undefined;\r\n };\r\n }\r\n\r\n export interface Schema extends GltfProperty {\r\n id: string;\r\n name?: string;\r\n description?: string;\r\n version?: string;\r\n classes?: Class[];\r\n enums?: Enum[];\r\n }\r\n\r\n // Ignoring VECN and MATN types because they complicate offset, scale, min, and max, all of which are otherwise only relevant to SCALAR in which case they're all just numbers.\r\n export interface PropertyTableProperty extends GltfProperty {\r\n values: GltfId;\r\n arrayOffsets?: GltfId;\r\n stringOffsets?: GltfId;\r\n arrayOffsetType?: \"UINT8\" | \"UINT16\" | \"UINT32\" | \"UINT64\" | string;\r\n stringOffsetType?: \"UINT8\" | \"UINT16\" | \"UINT32\" | \"UINT64\" | string;\r\n offset?: number;\r\n scale?: number;\r\n min?: number;\r\n max?: number;\r\n }\r\n\r\n export interface PropertyTable {\r\n class: string;\r\n count: number;\r\n properties?: {\r\n [propertyId: string]: PropertyTableProperty | undefined;\r\n };\r\n }\r\n\r\n export interface Extension extends GltfProperty {\r\n // Exactly one of schema or schemaUri must be present.\r\n schemaUri?: string;\r\n schema?: Schema;\r\n propertyTables?: PropertyTable[];\r\n propertyTextures?: unknown;\r\n propertyAttributes?: unknown;\r\n }\r\n}\r\n\r\n/** Describes the top-level structure of a glTF asset.\r\n * This interface, along with all of the related Gltf* types defined in this file, is primarily based upon the [official glTF 2.0 specification](https://www.khronos.org/registry/glTF/specs/2.0/glTF-2.0.html).\r\n * However, it can also represent a [glTF 1.0](https://github.com/KhronosGroup/glTF/tree/main/specification/1.0#reference-node) asset.\r\n * Some types are combined. For example, the top-level dictionaries in glTF 1.0 are objects, while in glTF 2.0 they are arrays; the GltfDictionary interface supports accessing\r\n * items using either strings or numeric indexes represented by [[GltfId]].\r\n * For types that differ significantly between the two specs, Gltf1* and Gltf2* versions are defined (e.g., GltfMaterial is a union of Gltf1Material and Gltf2Material).\r\n * These interfaces also accommodate some deviations from both specs that are known to exist in the wild.\r\n * Most aspects of the specifications that are not implemented here are omitted (e.g., skinning, animations).\r\n * @internal\r\n */\r\nexport interface GltfDocument extends GltfProperty {\r\n /** Metadata about the glTF asset.\r\n * @note This property is required in glTF 2.0, but optional in 1.0.\r\n */\r\n asset?: GltfAsset;\r\n /** The Id of the default [[GltfScene]] in [[scenes]]. */\r\n scene?: GltfId;\r\n extensions?: GltfExtensions & {\r\n /** The [CESIUM_RTC extension](https://github.com/KhronosGroup/glTF/blob/main/extensions/1.0/Vendor/CESIUM_RTC/README.md) defines a centroid\r\n * relative to which all coordinates in the asset are defined, to reduce floating-point precision errors for large coordinates.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n CESIUM_RTC?: {\r\n center?: number[];\r\n };\r\n /** The [KHR_techniques_webgl extension](https://github.com/KhronosGroup/glTF/blob/c1c12bd100e88ff468ccef1cb88cfbec56a69af2/extensions/2.0/Khronos/KHR_techniques_webgl/README.md)\r\n * allows \"techniques\" to be associated with [[GltfMaterial]]s. Techniques can supply custom shader programs to render geometry; this was a core feature of glTF 1.0 (see [[GltfTechnique]]).\r\n * Here, it is only used to extract uniform values.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n KHR_techniques_webgl?: {\r\n techniques?: Array<{\r\n uniforms?: {\r\n [key: string]: { type: GltfDataType, value?: any } | undefined;\r\n };\r\n }>;\r\n };\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n EXT_structural_metadata?: GltfStructuralMetadata.Extension;\r\n };\r\n /** Names of glTF extensions used in the asset. */\r\n extensionsUsed?: string[];\r\n /** Names of glTF extensions required to properly load the asset. */\r\n extensionsRequired?: string[];\r\n accessors?: GltfDictionary<GltfAccessor>;\r\n /** Not currently supported. */\r\n animations?: GltfDictionary<any>;\r\n buffers?: GltfDictionary<GltfBuffer>;\r\n bufferViews?: GltfDictionary<GltfBufferViewProps>;\r\n /** Not currently used. */\r\n cameras?: GltfDictionary<any>;\r\n images?: GltfDictionary<GltfImage>;\r\n materials?: GltfDictionary<GltfMaterial>;\r\n meshes?: GltfDictionary<GltfMesh>;\r\n nodes?: GltfDictionary<GltfNode>;\r\n samplers?: GltfDictionary<GltfSampler>;\r\n scenes?: GltfDictionary<GltfScene>;\r\n /** Not currently supported. */\r\n skins?: GltfDictionary<any>;\r\n textures?: GltfDictionary<GltfTexture>;\r\n /** For glTF 1.0 only, techniques associated with [[Gltf1Material]]s. */\r\n techniques?: GltfDictionary<GltfTechnique>;\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImdlGraphicsCreator.d.ts","sourceRoot":"","sources":["../../../src/imdl/ImdlGraphicsCreator.ts"],"names":[],"mappings":"AAIA;;GAEG;AAQH,OAAO,KAAK,EAAE,SAAS,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAK5D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;IACxB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;CAC5B;AAoUD,gBAAgB;AAChB,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAqCvG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImdlGraphicsCreator.js","sourceRoot":"","sources":["../../../src/imdl/ImdlGraphicsCreator.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { JsonUtils } from \"@itwin/core-bentley\";\r\nimport { ClipVector, Point2d, Point3d, Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorDef, Gradient, ImageSource, RenderMaterial, RenderTexture, TextureMapping,\r\n} from \"@itwin/core-common\";\r\nimport type { ImdlColorDef, ImdlNamedTexture, ImdlTextureMapping } from \"../imdl/ImdlSchema\";\r\nimport type { ImdlModel as Imdl } from \"../imdl/ImdlModel\";\r\nimport { edgeParamsFromImdl, toMaterialArgs, toVertexTable } from \"../imdl/ImdlParser\";\r\nimport type { RenderGraphic } from \"../render/RenderGraphic\";\r\nimport { GraphicBranch } from \"../render/GraphicBranch\";\r\nimport type { RenderGeometry, RenderSystem } from \"../render/RenderSystem\";\r\nimport type { InstancedGraphicParams } from \"../render/InstancedGraphicParams\";\r\nimport type { IModelConnection } from \"../IModelConnection\";\r\nimport { createSurfaceMaterial } from \"../render/primitives/SurfaceParams\";\r\nimport { VertexIndices } from \"../render/primitives/VertexTable\";\r\nimport { AuxChannelTable } from \"../render/primitives/AuxChannelTable\";\r\n\r\n/** Options provided to [[decodeImdlContent]].\r\n * @internal\r\n */\r\nexport interface ImdlDecodeOptions {\r\n document: Imdl.Document;\r\n system: RenderSystem;\r\n iModel: IModelConnection;\r\n isCanceled?: () => boolean;\r\n}\r\n\r\nasync function loadNamedTexture(name: string, namedTex: ImdlNamedTexture, options: ImdlDecodeOptions): Promise<RenderTexture | undefined> {\r\n // Reasons a texture could be embedded in the tile content instead of requested separately from the backend:\r\n // - external textures are disabled\r\n // - the texture name is not a valid Id64 string\r\n // - the texture is below a certain backend-hardcoded size threshold\r\n // The bufferViewJson being defined signifies any of the above conditions. In that case, the image content\r\n // has been embedded in the tile contents. Otherwise, we will attempt to request the image content separately\r\n // from the backend.\r\n\r\n try {\r\n let textureType = RenderTexture.Type.Normal;\r\n const isGlyph = JsonUtils.asBool(namedTex.isGlyph);\r\n const isTileSection = !isGlyph && JsonUtils.asBool(namedTex.isTileSection);\r\n if (isGlyph)\r\n textureType = RenderTexture.Type.Glyph;\r\n else if (isTileSection)\r\n textureType = RenderTexture.Type.TileSection;\r\n\r\n // We produce unique tile sections for very large (> 8 megapixel) textures, and unique glyph atlases for raster text.\r\n // Neither should be cached.\r\n const cacheable = !isGlyph && !isTileSection;\r\n const ownership = cacheable ? { iModel: options.iModel, key: name } : undefined;\r\n\r\n const bufferViewId = JsonUtils.asString(namedTex.bufferView);\r\n const bufferViewJson = 0 !== bufferViewId.length ? options.document.json.bufferViews[bufferViewId] : undefined;\r\n\r\n if (undefined !== bufferViewJson) { // presence of bufferViewJson signifies we should read the texture from the tile content\r\n const byteOffset = JsonUtils.asInt(bufferViewJson.byteOffset);\r\n const byteLength = JsonUtils.asInt(bufferViewJson.byteLength);\r\n if (0 === byteLength)\r\n return undefined;\r\n\r\n const texBytes = options.document.binaryData.subarray(byteOffset, byteOffset + byteLength);\r\n const format = namedTex.format;\r\n const source = new ImageSource(texBytes, format);\r\n return await options.system.createTextureFromSource({ source, ownership, type: textureType, transparency: namedTex.transparency });\r\n }\r\n\r\n // bufferViewJson was undefined, so attempt to request the texture directly from the backend\r\n // eslint-disable-next-line deprecation/deprecation\r\n const params = new RenderTexture.Params(cacheable ? name : undefined, textureType);\r\n return options.system.createTextureFromElement(name, options.iModel, params, namedTex.format);\r\n } catch (_) {\r\n return undefined;\r\n }\r\n}\r\n\r\nasync function loadNamedTextures(options: ImdlDecodeOptions): Promise<Map<string, RenderTexture>> {\r\n const result = new Map<string, RenderTexture>();\r\n const namedTextures = options.document.json.namedTextures;\r\n if (!namedTextures)\r\n return result;\r\n\r\n const promises = new Array<Promise<void>>();\r\n for (const [name, namedTexture] of Object.entries(namedTextures)) {\r\n const texture = options.system.findTexture(name, options.iModel);\r\n if (texture) {\r\n result.set(name, texture);\r\n continue;\r\n } else if (namedTexture) {\r\n promises.push(loadNamedTexture(name, namedTexture, options).then((tx) => {\r\n if (tx)\r\n result.set(name, tx);\r\n }));\r\n }\r\n }\r\n\r\n if (promises.length > 0)\r\n await Promise.all(promises);\r\n\r\n return result;\r\n}\r\n\r\ninterface GraphicsOptions extends ImdlDecodeOptions {\r\n textures: Map<string, RenderTexture>;\r\n patterns: Map<string, RenderGeometry[]>;\r\n}\r\n\r\nfunction constantLodParamPropsFromJson(propsJson: { repetitions?: number, offset?: number[], minDistClamp?: number, maxDistClamp?: number } | undefined): TextureMapping.ConstantLodParamProps | undefined {\r\n if (undefined === propsJson)\r\n return undefined;\r\n\r\n const constantLodPops: TextureMapping.ConstantLodParamProps = {\r\n repetitions: JsonUtils.asDouble(propsJson.repetitions, 1.0),\r\n offset: { x: propsJson.offset ? JsonUtils.asDouble(propsJson.offset[0]) : 0.0, y: propsJson.offset ? JsonUtils.asDouble(propsJson.offset[1]) : 0.0 },\r\n minDistClamp: JsonUtils.asDouble(propsJson.minDistClamp, 1.0),\r\n maxDistClamp: JsonUtils.asDouble(propsJson.maxDistClamp, 4096.0 * 1024.0 * 1024.0),\r\n };\r\n return constantLodPops;\r\n}\r\n\r\nfunction textureMappingFromJson(json: ImdlTextureMapping | undefined, options: GraphicsOptions): TextureMapping | undefined {\r\n if (!json)\r\n return undefined;\r\n\r\n const texture = options.textures.get(JsonUtils.asString(json.name));\r\n if (!texture)\r\n return undefined;\r\n\r\n const paramsJson = json.params;\r\n const tf = paramsJson.transform;\r\n\r\n const paramProps: TextureMapping.ParamProps = {\r\n textureMat2x3: new TextureMapping.Trans2x3(tf[0][0], tf[0][1], tf[0][2], tf[1][0], tf[1][1], tf[1][2]),\r\n textureWeight: JsonUtils.asDouble(paramsJson.weight, 1.0),\r\n mapMode: JsonUtils.asInt(paramsJson.mode),\r\n worldMapping: JsonUtils.asBool(paramsJson.worldMapping),\r\n useConstantLod: JsonUtils.asBool(paramsJson.useConstantLod),\r\n constantLodProps: constantLodParamPropsFromJson(paramsJson.constantLodParams),\r\n };\r\n\r\n const textureMapping = new TextureMapping(texture, new TextureMapping.Params(paramProps));\r\n\r\n const normalMapJson = json.normalMapParams;\r\n if (normalMapJson) {\r\n let normalMap;\r\n const normalTexName = JsonUtils.asString(normalMapJson.textureName);\r\n if (normalTexName.length === 0 || undefined !== (normalMap = options.textures.get(normalTexName))) {\r\n textureMapping.normalMapParams = {\r\n normalMap,\r\n greenUp: JsonUtils.asBool(normalMapJson.greenUp),\r\n scale: JsonUtils.asDouble(normalMapJson.scale, 1),\r\n useConstantLod: JsonUtils.asBool(normalMapJson.useConstantLod),\r\n };\r\n }\r\n }\r\n\r\n return textureMapping;\r\n}\r\n\r\nfunction getMaterial(mat: string | Imdl.SurfaceMaterialParams, options: GraphicsOptions): RenderMaterial | undefined {\r\n if (typeof mat !== \"string\") {\r\n const args = toMaterialArgs(mat);\r\n return options.system.createRenderMaterial(args);\r\n }\r\n\r\n const material = options.system.findMaterial(mat, options.iModel);\r\n if (material || !options.document.json.renderMaterials)\r\n return material;\r\n\r\n const json = options.document.json.renderMaterials[mat];\r\n if (!json)\r\n return undefined;\r\n\r\n function colorDefFromJson(col: ImdlColorDef | undefined): ColorDef | undefined {\r\n return col ? ColorDef.from(col[0] * 255 + 0.5, col[1] * 255 + 0.5, col[2] * 255 + 0.5) : undefined;\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n const params = new RenderMaterial.Params(mat);\r\n params.diffuseColor = colorDefFromJson(json.diffuseColor);\r\n if (json.diffuse !== undefined)\r\n params.diffuse = JsonUtils.asDouble(json.diffuse);\r\n\r\n params.specularColor = colorDefFromJson(json.specularColor);\r\n if (json.specular !== undefined)\r\n params.specular = JsonUtils.asDouble(json.specular);\r\n\r\n params.reflectColor = colorDefFromJson(json.reflectColor);\r\n if (json.reflect !== undefined)\r\n params.reflect = JsonUtils.asDouble(json.reflect);\r\n\r\n if (json.specularExponent !== undefined)\r\n params.specularExponent = json.specularExponent;\r\n\r\n if (undefined !== json.transparency)\r\n params.alpha = 1.0 - json.transparency;\r\n\r\n params.refract = JsonUtils.asDouble(json.refract);\r\n params.shadows = JsonUtils.asBool(json.shadows);\r\n params.ambient = JsonUtils.asDouble(json.ambient);\r\n\r\n if (undefined !== json.textureMapping)\r\n params.textureMapping = textureMappingFromJson(json.textureMapping.texture, options);\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n return options.system.createMaterial(params, options.iModel);\r\n}\r\n\r\nfunction getModifiers(primitive: Imdl.Primitive): { viOrigin?: Point3d, instances?: InstancedGraphicParams } {\r\n const mod = primitive.modifier;\r\n switch (mod?.type) {\r\n case \"instances\":\r\n return {\r\n instances: {\r\n ...mod,\r\n transformCenter: Point3d.fromJSON(mod.transformCenter),\r\n range: mod.range ? Range3d.fromJSON(mod.range) : undefined,\r\n },\r\n };\r\n case \"viewIndependentOrigin\":\r\n return {\r\n viOrigin: Point3d.fromJSON(mod.origin),\r\n };\r\n default:\r\n return { };\r\n }\r\n}\r\n\r\nfunction createPrimitiveGeometry(primitive: Imdl.Primitive, options: GraphicsOptions, viOrigin: Point3d | undefined): RenderGeometry | undefined {\r\n switch (primitive.type) {\r\n case \"point\":\r\n return options.system.createPointStringGeometry({\r\n ...primitive.params,\r\n vertices: toVertexTable(primitive.params.vertices),\r\n indices: new VertexIndices(primitive.params.indices),\r\n }, viOrigin);\r\n case \"polyline\":\r\n return options.system.createPolylineGeometry({\r\n ...primitive.params,\r\n vertices: toVertexTable(primitive.params.vertices),\r\n polyline: {\r\n ...primitive.params.polyline,\r\n indices: new VertexIndices(primitive.params.polyline.indices),\r\n prevIndices: new VertexIndices(primitive.params.polyline.prevIndices),\r\n },\r\n }, viOrigin);\r\n case \"mesh\": {\r\n const surf = primitive.params.surface;\r\n let material;\r\n if (surf.material) {\r\n if (!surf.material.isAtlas)\r\n material = createSurfaceMaterial(getMaterial(surf.material.material, options));\r\n else\r\n material = surf.material;\r\n }\r\n\r\n let textureMapping;\r\n if (surf.textureMapping) {\r\n let texture;\r\n if (typeof surf.textureMapping.texture === \"string\") {\r\n texture = options.textures.get(surf.textureMapping.texture);\r\n } else {\r\n const gradient = Gradient.Symb.fromJSON(surf.textureMapping.texture);\r\n texture = options.system.getGradientTexture(gradient, options.iModel);\r\n }\r\n\r\n if (texture)\r\n textureMapping = { texture, alwaysDisplayed: surf.textureMapping.alwaysDisplayed };\r\n }\r\n\r\n return options.system.createMeshGeometry({\r\n ...primitive.params,\r\n edges: primitive.params.edges ? edgeParamsFromImdl(primitive.params.edges) : undefined,\r\n vertices: toVertexTable(primitive.params.vertices),\r\n auxChannels: primitive.params.auxChannels ? AuxChannelTable.fromJSON(primitive.params.auxChannels) : undefined,\r\n surface: {\r\n ...primitive.params.surface,\r\n material,\r\n textureMapping,\r\n indices: new VertexIndices(primitive.params.surface.indices),\r\n },\r\n }, viOrigin);\r\n }\r\n }\r\n}\r\n\r\nfunction createPrimitiveGraphic(primitive: Imdl.Primitive, options: GraphicsOptions): RenderGraphic | undefined {\r\n const mods = getModifiers(primitive);\r\n const geometry = createPrimitiveGeometry(primitive, options, mods.viOrigin);\r\n return geometry ? options.system.createRenderGraphic(geometry, mods.instances) : undefined;\r\n}\r\n\r\nfunction createPatternGeometries(primitives: Imdl.Primitive[], options: GraphicsOptions): RenderGeometry[] {\r\n const geometries = [];\r\n for (const primitive of primitives) {\r\n const geometry = createPrimitiveGeometry(primitive, options, undefined);\r\n if (geometry)\r\n geometries.push(geometry);\r\n }\r\n\r\n return geometries;\r\n}\r\n\r\nfunction createPatternGraphic(params: Imdl.AreaPatternParams, options: GraphicsOptions): RenderGraphic | undefined {\r\n const geometries = options.patterns.get(params.symbolName);\r\n if (!geometries || geometries.length === 0)\r\n return undefined;\r\n\r\n const clip = ClipVector.fromJSON(params.clip);\r\n const clipVolume = clip?.isValid ? options.system.createClipVolume(clip) : undefined;\r\n if (!clipVolume)\r\n return undefined;\r\n\r\n const viewIndependentOrigin = params.viewIndependentOrigin ? Point3d.fromJSON(params.viewIndependentOrigin) : undefined;\r\n const pattern = options.system.createAreaPattern({\r\n xyOffsets: params.xyOffsets,\r\n featureId: params.featureId,\r\n orgTransform: Transform.fromJSON(params.orgTransform),\r\n origin: Point2d.fromJSON(params.origin),\r\n scale: params.scale,\r\n spacing: Point2d.fromJSON(params.spacing),\r\n patternToModel: Transform.fromJSON(params.modelTransform),\r\n range: Range3d.fromJSON(params.range),\r\n symbolTranslation: Point3d.fromJSON(params.symbolTranslation),\r\n viewIndependentOrigin,\r\n });\r\n\r\n if (!pattern)\r\n return undefined;\r\n\r\n const branch = new GraphicBranch(true);\r\n for (const geometry of geometries) {\r\n const graphic = options.system.createRenderGraphic(geometry, pattern);\r\n if (graphic)\r\n branch.add(graphic);\r\n }\r\n\r\n return branch.isEmpty ? undefined : options.system.createGraphicBranch(branch, Transform.createIdentity(), { clipVolume });\r\n}\r\n\r\nfunction createNodeGraphics(node: Imdl.Node, options: GraphicsOptions): RenderGraphic[] {\r\n const graphics = [];\r\n for (const primitive of node.primitives) {\r\n const graphic = primitive.type === \"pattern\" ? createPatternGraphic(primitive.params, options) : createPrimitiveGraphic(primitive, options);\r\n if (graphic)\r\n graphics.push(graphic);\r\n }\r\n\r\n return graphics;\r\n}\r\n\r\n/** @internal */\r\nexport async function decodeImdlGraphics(options: ImdlDecodeOptions): Promise<RenderGraphic | undefined> {\r\n const textures = await loadNamedTextures(options);\r\n if (options.isCanceled && options.isCanceled())\r\n return undefined;\r\n\r\n const patterns = new Map<string, RenderGeometry[]>();\r\n const graphicsOptions = { ...options, textures, patterns };\r\n\r\n for (const [name, primitives] of options.document.patterns)\r\n patterns.set(name, createPatternGeometries(primitives, graphicsOptions));\r\n\r\n const system = options.system;\r\n const graphics: RenderGraphic[] = [];\r\n for (const node of options.document.nodes) {\r\n const nodeGraphics = createNodeGraphics(node, graphicsOptions);\r\n if (nodeGraphics.length === 0)\r\n continue;\r\n\r\n if (undefined !== node.layerId) {\r\n const layerGraphic = 1 === nodeGraphics.length ? nodeGraphics[0] : system.createGraphicList(nodeGraphics);\r\n graphics.push(system.createGraphicLayer(layerGraphic, node.layerId));\r\n } else if (undefined !== node.animationNodeId) {\r\n const branch = new GraphicBranch(true);\r\n branch.animationId = node.animationId;\r\n branch.animationNodeId = node.animationNodeId;\r\n branch.entries.push(...nodeGraphics);\r\n graphics.push(system.createBranch(branch, Transform.createIdentity()));\r\n } else {\r\n graphics.push(...nodeGraphics);\r\n }\r\n }\r\n\r\n switch (graphics.length) {\r\n case 0: return undefined;\r\n case 1: return graphics[0];\r\n default: return system.createGraphicList(graphics);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImdlModel.d.ts","sourceRoot":"","sources":["../../../src/imdl/ImdlModel.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EACL,aAAa,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EACpH,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE7D;;;;GAIG;AACH,yBAAiB,SAAS,CAAC;IACzB,UAAiB,WAAW;QAC1B,IAAI,EAAE,UAAU,CAAC;QACjB,wBAAwB,CAAC,EAAE,OAAO,CAAC;QACnC,OAAO,EAAE,cAAc,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,OAAO,CAAC;QACzB,YAAY,CAAC,EAAE,aAAa,CAAC;QAC7B,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,cAAc,CAAC;KAC3B;IAED,UAAiB,iBAAiB;QAChC,QAAQ,EAAE,WAAW,CAAC;QACtB,OAAO,EAAE,UAAU,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;KAChB;IAED,UAAiB,kBAAkB;QACjC,OAAO,EAAE,UAAU,CAAC;QACpB,WAAW,EAAE,UAAU,CAAC;QACxB,oBAAoB,EAAE,UAAU,CAAC;KAClC;IAED,UAAiB,cAAc;QAC7B,QAAQ,EAAE,WAAW,CAAC;QACtB,QAAQ,EAAE,kBAAkB,CAAC;QAC7B,QAAQ,EAAE,OAAO,CAAC;QAClB,IAAI,EAAE,iBAAiB,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,UAAU,CAAC;KACxB;IAED,UAAiB,iBAAiB;QAChC,OAAO,EAAE,UAAU,CAAC;QACpB,sBAAsB,EAAE,UAAU,CAAC;KACpC;IAED,UAAiB,gBAAiB,SAAQ,iBAAiB;QACzD,WAAW,EAAE,UAAU,CAAC;KACzB;IAED,UAAiB,iBAAiB;QAChC,OAAO,EAAE,UAAU,CAAC;QACpB,KAAK,EAAE,SAAS,CAAC;KAClB;IAED,UAAiB,UAAU;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,UAAU,CAAC;QACvB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;QAC7B,WAAW,CAAC,EAAE,gBAAgB,CAAC;QAC/B,SAAS,CAAC,EAAE,kBAAkB,CAAC;QAC/B,OAAO,CAAC,EAAE,iBAAiB,CAAC;KAC7B;IAED,UAAiB,qBAAqB;QACpC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE;YACR,KAAK,CAAC,EAAE,aAAa,CAAC;YACtB,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,QAAQ,CAAC,EAAE;YACT,KAAK,CAAC,EAAE,aAAa,CAAC;YACtB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;KACH;IAED,UAAiB,qBAAqB;QACpC,OAAO,EAAE,KAAK,CAAC;QACf,QAAQ,EAAE,MAAM,GAAG,qBAAqB,CAAC;KAC1C;IAED,KAAY,eAAe,GAAG,qBAAqB,GAAG,oBAAoB,CAAC;IAE3E,UAAiB,aAAa;QAC5B,IAAI,EAAE,WAAW,CAAC;QAClB,OAAO,EAAE,UAAU,CAAC;QACpB,SAAS,EAAE,SAAS,CAAC;QACrB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,QAAQ,CAAC,EAAE,eAAe,CAAC;QAC3B,cAAc,CAAC,EAAE;YACf,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC;YACrC,eAAe,EAAE,OAAO,CAAC;SAC1B,CAAC;KACH;IAED,UAAiB,UAAU;QACzB,QAAQ,EAAE,WAAW,CAAC;QACtB,OAAO,EAAE,aAAa,CAAC;QACvB,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,QAAQ,EAAE,OAAO,CAAC;QAClB,WAAW,CAAC,EAAE,oBAAoB,CAAC;KACpC;IAED,UAAiB,SAAS;QACxB,IAAI,EAAE,WAAW,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,YAAY,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,kBAAkB,CAAC,EAAE,UAAU,CAAC;QAChC,KAAK,CAAC,EAAE,aAAa,CAAC;KACvB;IAED,UAAiB,qBAAqB;QACpC,IAAI,EAAE,uBAAuB,CAAC;QAC9B,MAAM,EAAE,MAAM,CAAC;KAChB;IAED,KAAY,iBAAiB,GAAG,SAAS,GAAG,qBAAqB,CAAC;IAElE,KAAY,SAAS,GAAG;QACtB,MAAM,EAAE,UAAU,CAAC;QACnB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;QAC7B,IAAI,EAAE,MAAM,CAAC;KACd,GAAG;QACF,MAAM,EAAE,iBAAiB,CAAC;QAC1B,QAAQ,CAAC,EAAE,iBAAiB,CAAC;QAC7B,IAAI,EAAE,OAAO,CAAC;KACf,GAAG;QACF,MAAM,EAAE,cAAc,CAAC;QACvB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;QAC7B,IAAI,EAAE,UAAU,CAAC;KAClB,CAAC;IAEF,KAAY,iBAAiB,GAAG,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,GAAG;QACnE,SAAS,EAAE,YAAY,CAAC;KACzB,CAAC;IAEF,KAAY,aAAa,GAAG,SAAS,GAAG;QACtC,MAAM,EAAE,iBAAiB,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC;QACjB,IAAI,EAAE,SAAS,CAAC;KACjB,CAAC;IAEF,UAAiB,SAAS;QACxB,UAAU,EAAE,aAAa,EAAE,CAAC;QAC5B,eAAe,CAAC,EAAE,KAAK,CAAC;QACxB,WAAW,CAAC,EAAE,KAAK,CAAC;QACpB,OAAO,CAAC,EAAE,KAAK,CAAC;KACjB;IAED,UAAiB,aAAa;QAC5B,UAAU,EAAE,aAAa,EAAE,CAAC;QAC5B,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,KAAK,CAAC;KACjB;IAED,UAAiB,KAAK;QACpB,UAAU,EAAE,aAAa,EAAE,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,CAAC,EAAE,KAAK,CAAC;QACxB,WAAW,CAAC,EAAE,KAAK,CAAC;KACrB;IAED,KAAY,IAAI,GAAG,SAAS,GAAG,aAAa,GAAG,KAAK,CAAC;IAErD,UAAiB,uBAAuB;QACtC,UAAU,EAAE,KAAK,CAAC;QAClB,IAAI,EAAE,WAAW,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,CAAC,EAAE,SAAS,CAAC;QAC7B,gBAAgB,CAAC,EAAE,KAAK,CAAC;KAC1B;IAED,UAAiB,sBAAsB;QACrC,UAAU,EAAE,IAAI,CAAC;QACjB,IAAI,EAAE,WAAW,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,SAAS,CAAC;KAC9B;IAED,KAAY,YAAY,GAAG,uBAAuB,GAAG,sBAAsB,CAAC;IAE5E,UAAiB,QAAQ;QACvB,YAAY,EAAE,YAAY,CAAC;QAC3B,KAAK,EAAE,IAAI,EAAE,CAAC;QACd,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACnC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,UAAU,CAAC;QACvB,IAAI,EAAE,YAAY,CAAC;KACpB;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImdlModel.js","sourceRoot":"","sources":["../../../src/imdl/ImdlModel.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { UintArray } from \"@itwin/core-bentley\";\r\nimport { LowAndHighXYZ, XYAndZ } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorDefProps, FeatureIndexType, FillFlags, Gradient, LinePixels, PolylineTypeFlags, QParams2dProps, QParams3dProps,\r\n} from \"@itwin/core-common\";\r\nimport { EdgeTable } from \"../render/primitives/EdgeParams\";\r\nimport { SurfaceMaterialAtlas, SurfaceType } from \"../render/primitives/SurfaceParams\";\r\nimport { AuxChannelTableProps } from \"../render/primitives/AuxChannelTable\";\r\nimport { ImdlAreaPattern, ImdlDocument } from \"./ImdlSchema\";\r\n\r\n/** Types comprising the parsed representation of an ImdlDocument, produced by [[parseImdlDocument]] and consumed by [[decodeImdlGraphics]].\r\n * All of the types are required to support [structured cloning](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm) so that they\r\n * can be passed between workers and the main JavaScript thread.\r\n * @internal\r\n */\r\nexport namespace ImdlModel {\r\n export interface VertexTable {\r\n data: Uint8Array;\r\n usesUnquantizedPositions?: boolean;\r\n qparams: QParams3dProps;\r\n width: number;\r\n height: number;\r\n hasTranslucency: boolean;\r\n uniformColor?: ColorDefProps;\r\n featureIndexType: FeatureIndexType;\r\n uniformFeatureID?: number;\r\n numVertices: number;\r\n numRgbaPerVertex: number;\r\n uvParams?: QParams2dProps;\r\n }\r\n\r\n export interface PointStringParams {\r\n vertices: VertexTable;\r\n indices: Uint8Array;\r\n weight: number;\r\n }\r\n\r\n export interface TesselatedPolyline {\r\n indices: Uint8Array;\r\n prevIndices: Uint8Array;\r\n nextIndicesAndParams: Uint8Array;\r\n }\r\n\r\n export interface PolylineParams {\r\n vertices: VertexTable;\r\n polyline: TesselatedPolyline;\r\n isPlanar: boolean;\r\n type: PolylineTypeFlags;\r\n weight: number;\r\n linePixels: LinePixels;\r\n }\r\n\r\n export interface SegmentEdgeParams {\r\n indices: Uint8Array;\r\n endPointAndQuadIndices: Uint8Array;\r\n }\r\n\r\n export interface SilhouetteParams extends SegmentEdgeParams {\r\n normalPairs: Uint8Array;\r\n }\r\n\r\n export interface IndexedEdgeParams {\r\n indices: Uint8Array;\r\n edges: EdgeTable;\r\n }\r\n\r\n export interface EdgeParams {\r\n weight: number;\r\n linePixels: LinePixels;\r\n segments?: SegmentEdgeParams;\r\n silhouettes?: SilhouetteParams;\r\n polylines?: TesselatedPolyline;\r\n indexed?: IndexedEdgeParams;\r\n }\r\n\r\n export interface SurfaceMaterialParams {\r\n alpha?: number;\r\n diffuse?: {\r\n color?: ColorDefProps;\r\n weight?: number;\r\n };\r\n specular?: {\r\n color?: ColorDefProps;\r\n weight?: number;\r\n exponent?: number;\r\n };\r\n }\r\n\r\n export interface SurfaceRenderMaterial {\r\n isAtlas: false;\r\n material: string | SurfaceMaterialParams;\r\n }\r\n\r\n export type SurfaceMaterial = SurfaceRenderMaterial | SurfaceMaterialAtlas;\r\n\r\n export interface SurfaceParams {\r\n type: SurfaceType;\r\n indices: Uint8Array;\r\n fillFlags: FillFlags;\r\n hasBakedLighting: boolean;\r\n material?: SurfaceMaterial;\r\n textureMapping?: {\r\n texture: string | Gradient.SymbProps;\r\n alwaysDisplayed: boolean;\r\n };\r\n }\r\n\r\n export interface MeshParams {\r\n vertices: VertexTable;\r\n surface: SurfaceParams;\r\n edges?: EdgeParams;\r\n isPlanar: boolean;\r\n auxChannels?: AuxChannelTableProps;\r\n }\r\n\r\n export interface Instances {\r\n type: \"instances\";\r\n count: number;\r\n transforms: Float32Array;\r\n transformCenter: XYAndZ;\r\n featureIds?: Uint8Array;\r\n symbologyOverrides?: Uint8Array;\r\n range?: LowAndHighXYZ;\r\n }\r\n\r\n export interface ViewIndependentOrigin {\r\n type: \"viewIndependentOrigin\";\r\n origin: XYAndZ;\r\n }\r\n\r\n export type PrimitiveModifier = Instances | ViewIndependentOrigin;\r\n\r\n export type Primitive = {\r\n params: MeshParams;\r\n modifier?: PrimitiveModifier;\r\n type: \"mesh\";\r\n } | {\r\n params: PointStringParams;\r\n modifier?: PrimitiveModifier;\r\n type: \"point\";\r\n } | {\r\n params: PolylineParams;\r\n modifier?: PrimitiveModifier;\r\n type: \"polyline\";\r\n };\r\n\r\n export type AreaPatternParams = Omit<ImdlAreaPattern, \"xyOffsets\"> & {\r\n xyOffsets: Float32Array;\r\n };\r\n\r\n export type NodePrimitive = Primitive | {\r\n params: AreaPatternParams;\r\n modifier?: never;\r\n type: \"pattern\";\r\n };\r\n\r\n export interface BasicNode {\r\n primitives: NodePrimitive[];\r\n animationNodeId?: never;\r\n animationId?: never;\r\n layerId?: never;\r\n }\r\n\r\n export interface AnimationNode {\r\n primitives: NodePrimitive[];\r\n animationNodeId: number;\r\n animationId?: string;\r\n layerId?: never;\r\n }\r\n\r\n export interface Layer {\r\n primitives: NodePrimitive[];\r\n layerId: string;\r\n animationNodeId?: never;\r\n animationId?: never;\r\n }\r\n\r\n export type Node = BasicNode | AnimationNode | Layer;\r\n\r\n export interface SingleModelFeatureTable {\r\n multiModel: false;\r\n data: Uint32Array;\r\n numFeatures: number;\r\n animationNodeIds?: UintArray;\r\n numSubCategories?: never;\r\n }\r\n\r\n export interface MultiModelFeatureTable {\r\n multiModel: true;\r\n data: Uint32Array;\r\n numFeatures: number;\r\n numSubCategories: number;\r\n animationNodeIds?: UintArray;\r\n }\r\n\r\n export type FeatureTable = SingleModelFeatureTable | MultiModelFeatureTable;\r\n\r\n export interface Document {\r\n featureTable: FeatureTable;\r\n nodes: Node[];\r\n patterns: Map<string, Primitive[]>;\r\n rtcCenter?: XYAndZ;\r\n binaryData: Uint8Array;\r\n json: ImdlDocument;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImdlParser.d.ts","sourceRoot":"","sources":["../../../src/imdl/ImdlParser.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAU,UAAU,EAAE,UAAU,EAA2B,MAAM,qBAAqB,CAAC;AAE9F,OAAO,EAEwD,kBAAkB,EAAkB,cAAc,EACnG,cAAc,EAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,IAAI,IAAI,EAAE,MAAM,aAAa,CAAC;AAWhD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAA6B,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,UAAU,CAAC;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAoDD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;AAuG7E,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,GAAG,WAAW,CAOjE;AAWD,gBAAgB;AAChB,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU,CAqBpE;AAo1BD,gBAAgB;AAChB,wBAAgB,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,qBAAqB,GAAG,wBAAwB,CAkBxF;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,GAAG,kBAAkB,CAOrH;AAED,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC,QAAQ,GAAG,cAAc,CAyD5F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImdlParser.js","sourceRoot":"","sources":["../../../src/imdl/ImdlParser.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { assert, ByteStream, Id64String, JsonUtils, utf8ToString } from \"@itwin/core-bentley\";\r\nimport { Point3d, Range2d, Range3d } from \"@itwin/core-geometry\";\r\nimport {\r\n BatchType, ColorDef, FeatureTableHeader, FillFlags, GltfV2ChunkTypes, GltfVersions, Gradient, ImdlFlags, ImdlHeader, LinePixels, MultiModelPackedFeatureTable,\r\n PackedFeatureTable, PolylineTypeFlags, QParams2d, QParams3d, RenderFeatureTable, RenderMaterial, RenderSchedule, RenderTexture, RgbColor, TextureMapping, TileFormat,\r\n TileHeader, TileReadStatus,\r\n} from \"@itwin/core-common\";\r\nimport { ImdlModel as Imdl } from \"./ImdlModel\";\r\nimport {\r\n AnyImdlPrimitive, ImdlAreaPattern, ImdlColorDef, ImdlDisplayParams, ImdlDocument, ImdlIndexedEdges, ImdlMesh, ImdlMeshEdges, ImdlMeshPrimitive, ImdlNamedTexture, ImdlPolyline,\r\n ImdlSegmentEdges, ImdlSilhouetteEdges, ImdlTextureMapping,\r\n} from \"./ImdlSchema\";\r\nimport { Mesh } from \"../render/primitives/mesh/MeshPrimitives\";\r\nimport { isValidSurfaceType, SurfaceMaterial } from \"../render/primitives/SurfaceParams\";\r\nimport { DisplayParams } from \"../render/primitives/DisplayParams\";\r\nimport { AuxChannelTable, AuxChannelTableProps } from \"../render/primitives/AuxChannelTable\";\r\nimport { ComputeAnimationNodeId, splitMeshParams, splitPointStringParams, splitPolylineParams } from \"../render/primitives/VertexTableSplitter\";\r\nimport { AnimationNodeId } from \"../render/GraphicBranch\";\r\nimport { EdgeParams } from \"../render/primitives/EdgeParams\";\r\nimport { MeshParams, VertexIndices, VertexTable } from \"../render/primitives/VertexTable\";\r\nimport { CreateRenderMaterialArgs } from \"../render/RenderMaterial\";\r\n\r\n/** Timeline used to reassemble iMdl content into animatable nodes.\r\n * @internal\r\n */\r\nexport type ImdlTimeline = RenderSchedule.ModelTimeline | RenderSchedule.Script;\r\n\r\n/** Options provided to [[parseImdlDocument]].\r\n * @internal\r\n */\r\nexport interface ImdlParserOptions {\r\n stream: ByteStream;\r\n batchModelId: Id64String;\r\n is3d: boolean;\r\n maxVertexTableSize: number;\r\n omitEdges?: boolean;\r\n createUntransformedRootNode?: boolean;\r\n timeline?: ImdlTimeline;\r\n}\r\n\r\n/** Header preceding \"glTF\" data in iMdl tile. */\r\nclass GltfHeader extends TileHeader {\r\n public readonly gltfLength: number;\r\n public readonly scenePosition: number = 0;\r\n public readonly sceneStrLength: number = 0;\r\n public readonly binaryPosition: number = 0;\r\n public get isValid(): boolean { return TileFormat.Gltf === this.format; }\r\n\r\n public constructor(stream: ByteStream) {\r\n super(stream);\r\n this.gltfLength = stream.readUint32();\r\n\r\n this.sceneStrLength = stream.readUint32();\r\n const value5 = stream.readUint32();\r\n\r\n // Early versions of the reality data tile publisher incorrectly put version 2 into header - handle these old tiles\r\n // validating the chunk type.\r\n if (this.version === GltfVersions.Version2 && value5 === GltfVersions.Gltf1SceneFormat)\r\n this.version = GltfVersions.Version1;\r\n\r\n if (this.version === GltfVersions.Version1) {\r\n const gltfSceneFormat = value5;\r\n if (GltfVersions.Gltf1SceneFormat !== gltfSceneFormat) {\r\n this.invalidate();\r\n return;\r\n }\r\n\r\n this.scenePosition = stream.curPos;\r\n this.binaryPosition = stream.curPos + this.sceneStrLength;\r\n } else if (this.version === GltfVersions.Version2) {\r\n const sceneChunkType = value5;\r\n this.scenePosition = stream.curPos;\r\n stream.curPos = stream.curPos + this.sceneStrLength;\r\n const binaryLength = stream.readUint32();\r\n const binaryChunkType = stream.readUint32();\r\n if (GltfV2ChunkTypes.JSON !== sceneChunkType || GltfV2ChunkTypes.Binary !== binaryChunkType || 0 === binaryLength) {\r\n this.invalidate();\r\n return;\r\n }\r\n\r\n this.binaryPosition = stream.curPos;\r\n } else {\r\n this.invalidate();\r\n }\r\n }\r\n}\r\n\r\ntype OptionalDocumentProperties = \"rtcCenter\" | \"animationNodes\";\r\ntype Document = Required<Omit<ImdlDocument, OptionalDocumentProperties>> & Pick<ImdlDocument, OptionalDocumentProperties>;\r\n\r\n/** Error codes resulting from [[parseImdlDocument]].\r\n * @internal\r\n */\r\nexport type ImdlParseError = Exclude<TileReadStatus, TileReadStatus.Success>;\r\n\r\ninterface FeatureTableInfo {\r\n startPos: number;\r\n multiModel: boolean;\r\n}\r\n\r\nconst nodeIdRegex = /Node_(.*)/;\r\nfunction extractNodeId(nodeName: string): number {\r\n const match = nodeName.match(nodeIdRegex);\r\n assert(!!match && match.length === 2);\r\n if (!match || match.length !== 2)\r\n return 0;\r\n\r\n const nodeId = Number.parseInt(match[1], 10);\r\n assert(!Number.isNaN(nodeId));\r\n return Number.isNaN(nodeId) ? 0 : nodeId;\r\n}\r\n\r\nabstract class Texture extends RenderTexture {\r\n protected constructor(type: RenderTexture.Type) {\r\n super(type);\r\n }\r\n\r\n public abstract toImdl(): string | Gradient.SymbProps;\r\n\r\n public override dispose() { }\r\n public override get bytesUsed() { return 0; }\r\n}\r\n\r\nclass NamedTexture extends Texture {\r\n public constructor(private readonly _name: string, type: RenderTexture.Type) {\r\n super(type);\r\n }\r\n\r\n public override toImdl(): string {\r\n return this._name;\r\n }\r\n}\r\n\r\nclass GradientTexture extends Texture {\r\n public constructor(private readonly _gradient: Gradient.SymbProps) {\r\n super(RenderTexture.Type.Normal);\r\n }\r\n\r\n public override toImdl(): Gradient.SymbProps {\r\n return this._gradient;\r\n }\r\n}\r\n\r\nclass Material extends RenderMaterial {\r\n public readonly materialParams: Imdl.SurfaceMaterialParams;\r\n\r\n public toImdl(): Imdl.SurfaceMaterial {\r\n const material = this.key ?? this.materialParams;\r\n return { isAtlas: false, material };\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public constructor(params: RenderMaterial.Params, imdl?: Imdl.SurfaceMaterialParams) {\r\n super(params);\r\n\r\n this.materialParams = imdl ?? {\r\n alpha: params.alpha,\r\n diffuse: {\r\n color: params.diffuseColor?.toJSON(),\r\n weight: params.diffuse,\r\n },\r\n specular: {\r\n color: params.specularColor?.toJSON(),\r\n weight: params.specular,\r\n exponent: params.specularExponent,\r\n },\r\n };\r\n }\r\n\r\n public static create(args: CreateRenderMaterialArgs): Material {\r\n // eslint-disable-next-line deprecation/deprecation\r\n const params = new RenderMaterial.Params();\r\n params.alpha = args.alpha;\r\n if (args.diffuse) {\r\n if (undefined !== args.diffuse.weight)\r\n params.diffuse = args.diffuse?.weight;\r\n\r\n if (args.diffuse?.color)\r\n params.diffuseColor = args.diffuse.color instanceof ColorDef ? args.diffuse.color : RgbColor.fromJSON(args.diffuse.color).toColorDef();\r\n }\r\n\r\n if (args.specular) {\r\n if (undefined !== args.specular.weight)\r\n params.specular = args.specular.weight;\r\n\r\n if (undefined !== args.specular.exponent)\r\n params.specularExponent = args.specular.exponent;\r\n\r\n if (args.specular.color)\r\n params.specularColor = args.specular.color instanceof ColorDef ? args.specular.color : RgbColor.fromJSON(args.specular.color).toColorDef();\r\n }\r\n\r\n return new Material(params);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function toVertexTable(imdl: Imdl.VertexTable): VertexTable {\r\n return new VertexTable({\r\n ...imdl,\r\n uniformColor: undefined !== imdl.uniformColor ? ColorDef.fromJSON(imdl.uniformColor) : undefined,\r\n qparams: QParams3d.fromJSON(imdl.qparams),\r\n uvParams: imdl.uvParams ? QParams2d.fromJSON(imdl.uvParams) : undefined,\r\n });\r\n}\r\n\r\nfunction fromVertexTable(table: VertexTable): Imdl.VertexTable {\r\n return {\r\n ...table,\r\n uniformColor: table.uniformColor?.toJSON(),\r\n qparams: table.qparams.toJSON(),\r\n uvParams: table.uvParams?.toJSON(),\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function edgeParamsFromImdl(imdl: Imdl.EdgeParams): EdgeParams {\r\n return {\r\n ...imdl,\r\n segments: imdl.segments ? {\r\n ...imdl.segments,\r\n indices: new VertexIndices(imdl.segments.indices),\r\n } : undefined,\r\n silhouettes: imdl.silhouettes ? {\r\n ...imdl.silhouettes,\r\n indices: new VertexIndices(imdl.silhouettes.indices),\r\n } : undefined,\r\n polylines: imdl.polylines ? {\r\n ...imdl.polylines,\r\n indices: new VertexIndices(imdl.polylines.indices),\r\n prevIndices: new VertexIndices(imdl.polylines.prevIndices),\r\n } : undefined,\r\n indexed: imdl.indexed ? {\r\n indices: new VertexIndices(imdl.indexed.indices),\r\n edges: imdl.indexed.edges,\r\n } : undefined,\r\n };\r\n}\r\n\r\nfunction edgeParamsToImdl(params: EdgeParams): Imdl.EdgeParams {\r\n return {\r\n ...params,\r\n segments: params.segments ? {\r\n ...params.segments,\r\n indices: params.segments.indices.data,\r\n } : undefined,\r\n silhouettes: params.silhouettes ? {\r\n ...params.silhouettes,\r\n indices: params.silhouettes.indices.data,\r\n } : undefined,\r\n polylines: params.polylines ? {\r\n ...params.polylines,\r\n indices: params.polylines.indices.data,\r\n prevIndices: params.polylines.prevIndices.data,\r\n } : undefined,\r\n indexed: params.indexed ? {\r\n indices: params.indexed.indices.data,\r\n edges: params.indexed.edges,\r\n } : undefined,\r\n };\r\n}\r\n\r\nclass ImdlParser {\r\n private readonly _document: Document;\r\n private readonly _binaryData: Uint8Array;\r\n private readonly _options: ImdlParserOptions;\r\n private readonly _featureTableInfo: FeatureTableInfo;\r\n private readonly _patterns = new Map<string, Imdl.Primitive[]>();\r\n\r\n private get _stream(): ByteStream {\r\n return this._options.stream;\r\n }\r\n\r\n public constructor(doc: Document, binaryData: Uint8Array, options: ImdlParserOptions, featureTableInfo: FeatureTableInfo) {\r\n this._document = doc;\r\n this._binaryData = binaryData;\r\n this._options = options;\r\n this._featureTableInfo = featureTableInfo;\r\n }\r\n\r\n public parse(): Imdl.Document | ImdlParseError {\r\n const featureTable = this.parseFeatureTable();\r\n if (!featureTable)\r\n return TileReadStatus.InvalidFeatureTable;\r\n\r\n const rtcCenter = this._document.rtcCenter ? {\r\n x: this._document.rtcCenter[0] ?? 0,\r\n y: this._document.rtcCenter[1] ?? 0,\r\n z: this._document.rtcCenter[2] ?? 0,\r\n } : undefined;\r\n\r\n const nodes = this.parseNodes(featureTable);\r\n return {\r\n featureTable,\r\n nodes,\r\n rtcCenter,\r\n binaryData: this._binaryData,\r\n json: this._document,\r\n patterns: this._patterns,\r\n };\r\n }\r\n\r\n private parseFeatureTable(): Imdl.FeatureTable | undefined {\r\n this._stream.curPos = this._featureTableInfo.startPos;\r\n const header = FeatureTableHeader.readFrom(this._stream);\r\n if (!header || 0 !== header.length % 4)\r\n return undefined;\r\n\r\n // NB: We make a copy of the sub-array because we don't want to pin the entire data array in memory.\r\n const numUint32s = (header.length - FeatureTableHeader.sizeInBytes) / 4;\r\n const packedFeatureArray = new Uint32Array(this._stream.nextUint32s(numUint32s));\r\n if (this._stream.isPastTheEnd)\r\n return undefined;\r\n\r\n let featureTable: Imdl.FeatureTable;\r\n if (this._featureTableInfo.multiModel) {\r\n featureTable = {\r\n multiModel: true,\r\n data: packedFeatureArray,\r\n numFeatures: header.count,\r\n numSubCategories: header.numSubCategories,\r\n };\r\n } else {\r\n let animNodesArray: Uint8Array | Uint16Array | Uint32Array | undefined;\r\n const animationNodes = this._document.animationNodes;\r\n if (undefined !== animationNodes) {\r\n const bytesPerId = JsonUtils.asInt(animationNodes.bytesPerId);\r\n const bufferViewId = JsonUtils.asString(animationNodes.bufferView);\r\n const bufferViewJson = this._document.bufferViews[bufferViewId];\r\n if (undefined !== bufferViewJson) {\r\n const byteOffset = JsonUtils.asInt(bufferViewJson.byteOffset);\r\n const byteLength = JsonUtils.asInt(bufferViewJson.byteLength);\r\n const bytes = this._binaryData.subarray(byteOffset, byteOffset + byteLength);\r\n switch (bytesPerId) {\r\n case 1:\r\n animNodesArray = new Uint8Array(bytes);\r\n break;\r\n case 2:\r\n // NB: A *copy* of the subarray.\r\n animNodesArray = Uint16Array.from(new Uint16Array(bytes.buffer, bytes.byteOffset, bytes.byteLength / 2));\r\n break;\r\n case 4:\r\n // NB: A *copy* of the subarray.\r\n animNodesArray = Uint32Array.from(new Uint32Array(bytes.buffer, bytes.byteOffset, bytes.byteLength / 4));\r\n break;\r\n }\r\n }\r\n }\r\n\r\n featureTable = {\r\n multiModel: false,\r\n data: packedFeatureArray,\r\n numFeatures: header.count,\r\n animationNodeIds: animNodesArray,\r\n };\r\n }\r\n\r\n this._stream.curPos = this._featureTableInfo.startPos + header.length;\r\n return featureTable;\r\n }\r\n\r\n private parseNodes(featureTable: Imdl.FeatureTable): Imdl.Node[] {\r\n const nodes: Imdl.Node[] = [];\r\n const docNodes = this._document.nodes;\r\n const docMeshes = this._document.meshes;\r\n if (undefined === docNodes.Node_Root) {\r\n // A veeeery early version of the tile format (prior to introduction of schedule animation support) just supplied a flat list of meshes.\r\n // We shall never encounter such tiles again.\r\n return nodes;\r\n }\r\n\r\n for (const nodeKey of Object.keys(docNodes)) {\r\n const docNode = this._document.nodes[nodeKey];\r\n assert(undefined !== docNode); // we're iterating the keys...\r\n const docMesh = docMeshes[docNode];\r\n const docPrimitives = docMesh?.primitives;\r\n if (!docPrimitives)\r\n continue;\r\n\r\n const layerId = docMesh.layer;\r\n if (\"Node_Root\" === nodeKey) {\r\n if (this._options.timeline) {\r\n // Split up the root node into transform nodes.\r\n this.parseAnimationBranches(nodes, docMesh, featureTable, this._options.timeline);\r\n } else if (this._options.createUntransformedRootNode) {\r\n // If transform nodes exist in the tile tree, then we need to create a branch for the root node so that elements not associated with\r\n // any node in the schedule script can be grouped together.\r\n nodes.push({\r\n animationNodeId: AnimationNodeId.Untransformed,\r\n primitives: this.parseNodePrimitives(docPrimitives),\r\n });\r\n } else {\r\n nodes.push({ primitives: this.parseNodePrimitives(docPrimitives) });\r\n }\r\n } else if (undefined === layerId) {\r\n nodes.push({\r\n animationNodeId: extractNodeId(nodeKey),\r\n animationId: `${this._options.batchModelId}_${nodeKey}`,\r\n primitives: this.parseNodePrimitives(docPrimitives),\r\n });\r\n } else {\r\n nodes.push({\r\n layerId,\r\n primitives: this.parseNodePrimitives(docPrimitives),\r\n });\r\n }\r\n }\r\n\r\n return nodes;\r\n }\r\n\r\n private parseAnimationBranches(output: Imdl.Node[], docMesh: ImdlMesh, imdlFeatureTable: Imdl.FeatureTable, timeline: ImdlTimeline): void {\r\n const docPrimitives = docMesh.primitives;\r\n if (!docPrimitives)\r\n return;\r\n\r\n const nodesById = new Map<number, Imdl.AnimationNode>();\r\n const getNode = (nodeId: number): Imdl.AnimationNode => {\r\n let node = nodesById.get(nodeId);\r\n if (!node) {\r\n node = {\r\n animationNodeId: nodeId,\r\n animationId: `${this._options.batchModelId}_Node_${nodeId}`,\r\n primitives: [],\r\n };\r\n\r\n nodesById.set(nodeId, node);\r\n output.push(node);\r\n }\r\n\r\n return node;\r\n };\r\n\r\n // NB: The BatchType is irrelevant - just use Primary.\r\n assert(undefined === imdlFeatureTable.animationNodeIds);\r\n const featureTable = convertFeatureTable(imdlFeatureTable, this._options.batchModelId);\r\n featureTable.populateAnimationNodeIds((feature) => timeline.getBatchIdForFeature(feature), timeline.maxBatchId);\r\n imdlFeatureTable.animationNodeIds = featureTable.animationNodeIds;\r\n\r\n const discreteNodeIds = timeline.discreteBatchIds;\r\n const computeNodeId: ComputeAnimationNodeId = (featureIndex) => {\r\n const nodeId = featureTable.getAnimationNodeId(featureIndex);\r\n return 0 !== nodeId && discreteNodeIds.has(nodeId) ? nodeId : 0;\r\n };\r\n\r\n const splitArgs = {\r\n maxDimension: this._options.maxVertexTableSize,\r\n computeNodeId,\r\n featureTable,\r\n };\r\n\r\n const convertMaterial = (imdl: Imdl.SurfaceMaterial | undefined): SurfaceMaterial | undefined => {\r\n if (!imdl)\r\n return undefined;\r\n else if (imdl.isAtlas)\r\n return imdl;\r\n\r\n const material = (typeof imdl.material === \"string\") ? this.materialFromJson(imdl.material) : Material.create(toMaterialArgs(imdl.material));\r\n return material ? { isAtlas: false, material } : undefined;\r\n };\r\n\r\n for (const docPrimitive of docPrimitives) {\r\n const primitive = this.parseNodePrimitive(docPrimitive);\r\n if (!primitive)\r\n continue;\r\n\r\n switch (primitive.type) {\r\n case \"pattern\":\r\n // ###TODO animated area patterns\r\n getNode(AnimationNodeId.Untransformed).primitives.push(primitive);\r\n break;\r\n case \"mesh\": {\r\n const mesh = primitive.params;\r\n const texMap = mesh.surface.textureMapping;\r\n const params: MeshParams = {\r\n vertices: toVertexTable(primitive.params.vertices),\r\n surface: {\r\n ...primitive.params.surface,\r\n indices: new VertexIndices(primitive.params.surface.indices),\r\n material: convertMaterial(mesh.surface.material),\r\n textureMapping: texMap ? {\r\n alwaysDisplayed: texMap.alwaysDisplayed,\r\n // The texture type doesn't actually matter here.\r\n texture: typeof texMap.texture === \"string\" ? new NamedTexture(texMap.texture, RenderTexture.Type.Normal) : new GradientTexture(texMap.texture),\r\n } : undefined,\r\n },\r\n edges: primitive.params.edges ? edgeParamsFromImdl(primitive.params.edges) : undefined,\r\n isPlanar: primitive.params.isPlanar,\r\n auxChannels: primitive.params.auxChannels ? AuxChannelTable.fromJSON(primitive.params.auxChannels) : undefined,\r\n };\r\n\r\n const split = splitMeshParams({\r\n ...splitArgs,\r\n params,\r\n createMaterial: (args) => Material.create(args),\r\n });\r\n for (const [nodeId, p] of split) {\r\n let material: Imdl.SurfaceMaterial | undefined;\r\n if (p.surface.material) {\r\n if (p.surface.material.isAtlas) {\r\n material = p.surface.material;\r\n } else {\r\n assert(p.surface.material.material instanceof Material);\r\n material = p.surface.material.material.toImdl();\r\n }\r\n }\r\n\r\n assert(p.surface.textureMapping === undefined || p.surface.textureMapping.texture instanceof Texture);\r\n getNode(nodeId).primitives.push({\r\n type: \"mesh\",\r\n params: {\r\n vertices: fromVertexTable(p.vertices),\r\n surface: {\r\n ...p.surface,\r\n indices: p.surface.indices.data,\r\n material,\r\n textureMapping: p.surface.textureMapping?.texture instanceof Texture ? {\r\n texture: p.surface.textureMapping.texture.toImdl(),\r\n alwaysDisplayed: p.surface.textureMapping.alwaysDisplayed,\r\n } : undefined,\r\n },\r\n edges: p.edges ? edgeParamsToImdl(p.edges) : undefined,\r\n isPlanar: p.isPlanar,\r\n auxChannels: p.auxChannels?.toJSON(),\r\n },\r\n });\r\n }\r\n\r\n break;\r\n }\r\n case \"point\": {\r\n const params = {\r\n vertices: toVertexTable(primitive.params.vertices),\r\n indices: new VertexIndices(primitive.params.indices),\r\n weight: primitive.params.weight,\r\n };\r\n\r\n const split = splitPointStringParams({ ...splitArgs, params });\r\n for (const [nodeId, p] of split) {\r\n getNode(nodeId).primitives.push({\r\n type: \"point\",\r\n params: {\r\n vertices: fromVertexTable(p.vertices),\r\n indices: p.indices.data,\r\n weight: p.weight,\r\n },\r\n });\r\n }\r\n\r\n break;\r\n }\r\n case \"polyline\": {\r\n const params = {\r\n ...primitive.params,\r\n vertices: toVertexTable(primitive.params.vertices),\r\n polyline: {\r\n indices: new VertexIndices(primitive.params.polyline.indices),\r\n prevIndices: new VertexIndices(primitive.params.polyline.prevIndices),\r\n nextIndicesAndParams: primitive.params.polyline.nextIndicesAndParams,\r\n },\r\n };\r\n\r\n const split = splitPolylineParams({ ...splitArgs, params });\r\n for (const [nodeId, p] of split) {\r\n getNode(nodeId).primitives.push({\r\n type: \"polyline\",\r\n params: {\r\n ...p,\r\n vertices: fromVertexTable(p.vertices),\r\n polyline: {\r\n indices: p.polyline.indices.data,\r\n prevIndices: p.polyline.prevIndices.data,\r\n nextIndicesAndParams: p.polyline.nextIndicesAndParams,\r\n },\r\n },\r\n });\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private parseTesselatedPolyline(json: ImdlPolyline): Imdl.TesselatedPolyline | undefined {\r\n const indices = this.findBuffer(json.indices);\r\n const prevIndices = this.findBuffer(json.prevIndices);\r\n const nextIndicesAndParams = this.findBuffer(json.nextIndicesAndParams);\r\n\r\n return indices && prevIndices && nextIndicesAndParams ? { indices, prevIndices, nextIndicesAndParams } : undefined;\r\n }\r\n\r\n private parseSegmentEdges(imdl: ImdlSegmentEdges): Imdl.SegmentEdgeParams | undefined {\r\n const indices = this.findBuffer(imdl.indices);\r\n const endPointAndQuadIndices = this.findBuffer(imdl.endPointAndQuadIndices);\r\n return indices && endPointAndQuadIndices ? { indices, endPointAndQuadIndices } : undefined;\r\n }\r\n\r\n private parseSilhouetteEdges(imdl: ImdlSilhouetteEdges): Imdl.SilhouetteParams | undefined {\r\n const segments = this.parseSegmentEdges(imdl);\r\n const normalPairs = this.findBuffer(imdl.normalPairs);\r\n return segments && normalPairs ? { ...segments, normalPairs } : undefined;\r\n }\r\n\r\n private parseIndexedEdges(imdl: ImdlIndexedEdges): Imdl.IndexedEdgeParams | undefined {\r\n const indices = this.findBuffer(imdl.indices);\r\n const edgeTable = this.findBuffer(imdl.edges);\r\n if (!indices || !edgeTable)\r\n return undefined;\r\n\r\n return {\r\n indices,\r\n edges: {\r\n data: edgeTable,\r\n width: imdl.width,\r\n height: imdl.height,\r\n silhouettePadding: imdl.silhouettePadding,\r\n numSegments: imdl.numSegments,\r\n },\r\n };\r\n }\r\n\r\n private parseEdges(imdl: ImdlMeshEdges | undefined, displayParams: DisplayParams): Imdl.EdgeParams | undefined {\r\n if (!imdl)\r\n return undefined;\r\n\r\n const segments = imdl.segments ? this.parseSegmentEdges(imdl.segments) : undefined;\r\n const silhouettes = imdl.silhouettes ? this.parseSilhouetteEdges(imdl.silhouettes) : undefined;\r\n const indexed = imdl.indexed ? this.parseIndexedEdges(imdl.indexed) : undefined;\r\n const polylines = imdl.polylines ? this.parseTesselatedPolyline(imdl.polylines) : undefined;\r\n\r\n if (!segments && !silhouettes && !indexed &&!polylines)\r\n return undefined;\r\n\r\n return {\r\n segments,\r\n silhouettes,\r\n polylines,\r\n indexed,\r\n weight: displayParams.width,\r\n linePixels: displayParams.linePixels,\r\n };\r\n }\r\n\r\n private getPattern(name: string): Imdl.Primitive[] | undefined {\r\n let primitives = this._patterns.get(name);\r\n if (!primitives) {\r\n const symbol = this._document.patternSymbols[name];\r\n primitives = symbol ? this.parsePrimitives(symbol.primitives) : [];\r\n this._patterns.set(name, primitives);\r\n }\r\n\r\n return primitives.length > 0 ? primitives : undefined;\r\n }\r\n\r\n private parseAreaPattern(json: ImdlAreaPattern): Imdl.NodePrimitive | undefined {\r\n const primitives = this.getPattern(json.symbolName);\r\n if (!primitives || primitives.length === 0)\r\n return undefined;\r\n\r\n const xyOffsets = this.findBuffer(json.xyOffsets);\r\n if (!xyOffsets)\r\n return undefined;\r\n\r\n return {\r\n type: \"pattern\",\r\n params: {\r\n ...json,\r\n xyOffsets: new Float32Array(xyOffsets.buffer, xyOffsets.byteOffset, xyOffsets.byteLength / 4),\r\n },\r\n };\r\n }\r\n\r\n private parseNodePrimitives(docPrimitives: Array<AnyImdlPrimitive | ImdlAreaPattern>): Imdl.NodePrimitive[] {\r\n const primitives = [];\r\n for (const docPrimitive of docPrimitives) {\r\n const primitive = this.parseNodePrimitive(docPrimitive);\r\n if (primitive)\r\n primitives.push(primitive);\r\n }\r\n\r\n return primitives;\r\n }\r\n\r\n private parseNodePrimitive(docPrimitive: AnyImdlPrimitive | ImdlAreaPattern): Imdl.NodePrimitive | undefined {\r\n return docPrimitive.type === \"areaPattern\" ? this.parseAreaPattern(docPrimitive) : this.parsePrimitive(docPrimitive);\r\n }\r\n\r\n private parsePrimitives(docPrimitives: Array<AnyImdlPrimitive>): Imdl.Primitive[] {\r\n const primitives = [];\r\n for (const docPrimitive of docPrimitives) {\r\n const primitive = this.parsePrimitive(docPrimitive);\r\n if (primitive)\r\n primitives.push(primitive);\r\n }\r\n\r\n return primitives;\r\n }\r\n\r\n private parsePrimitive(docPrimitive: AnyImdlPrimitive): Imdl.Primitive | undefined {\r\n let modifier: Imdl.PrimitiveModifier | undefined = this.parseInstances(docPrimitive);\r\n if (!modifier && docPrimitive.viewIndependentOrigin) {\r\n const origin = Point3d.fromJSON(docPrimitive.viewIndependentOrigin);\r\n modifier = {\r\n type: \"viewIndependentOrigin\",\r\n origin: { x: origin.x, y: origin.y, z: origin.z },\r\n };\r\n }\r\n\r\n const materialName = docPrimitive.material ?? \"\";\r\n const dpMaterial = materialName.length ? JsonUtils.asObject(this._document.materials[materialName]) : undefined;\r\n const displayParams = dpMaterial ? this.parseDisplayParams(dpMaterial) : undefined;\r\n if (!displayParams)\r\n return undefined;\r\n\r\n const vertices = this.parseVertexTable(docPrimitive);\r\n if (!vertices)\r\n return undefined;\r\n\r\n let primitive: Imdl.Primitive | undefined;\r\n const isPlanar = !this._options.is3d || JsonUtils.asBool(docPrimitive.isPlanar);\r\n switch (docPrimitive.type) {\r\n case Mesh.PrimitiveType.Mesh: {\r\n const surface = this.parseSurface(docPrimitive, displayParams);\r\n if (surface) {\r\n primitive = {\r\n type: \"mesh\",\r\n params: {\r\n vertices,\r\n surface,\r\n isPlanar,\r\n auxChannels: this.parseAuxChannelTable(docPrimitive),\r\n edges: this.parseEdges(docPrimitive.edges, displayParams),\r\n },\r\n };\r\n }\r\n\r\n break;\r\n }\r\n case Mesh.PrimitiveType.Polyline: {\r\n const polyline = this.parseTesselatedPolyline(docPrimitive);\r\n if (polyline) {\r\n let type = PolylineTypeFlags.Normal;\r\n if (DisplayParams.RegionEdgeType.Outline === displayParams.regionEdgeType)\r\n type = (!displayParams.gradient || displayParams.gradient.isOutlined) ? PolylineTypeFlags.Edge : PolylineTypeFlags.Outline;\r\n\r\n primitive = {\r\n type: \"polyline\",\r\n params: {\r\n vertices,\r\n polyline,\r\n isPlanar,\r\n type,\r\n weight: displayParams.width,\r\n linePixels: displayParams.linePixels,\r\n },\r\n };\r\n }\r\n\r\n break;\r\n }\r\n case Mesh.PrimitiveType.Point: {\r\n const indices = this.findBuffer(docPrimitive.indices);\r\n const weight = displayParams.width;\r\n if (indices) {\r\n primitive = {\r\n type: \"point\",\r\n params: { vertices, indices, weight },\r\n };\r\n }\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (primitive)\r\n primitive.modifier = modifier;\r\n\r\n return primitive;\r\n }\r\n\r\n private parseSurface(mesh: ImdlMeshPrimitive, displayParams: DisplayParams): Imdl.SurfaceParams | undefined {\r\n const surf = mesh.surface;\r\n if (!surf)\r\n return undefined;\r\n\r\n const indices = this.findBuffer(surf.indices);\r\n if (!indices)\r\n return undefined;\r\n\r\n const type = surf.type;\r\n if (!isValidSurfaceType(type))\r\n return undefined;\r\n\r\n const texture = displayParams.textureMapping?.texture;\r\n let material: Imdl.SurfaceMaterial | undefined;\r\n const atlas = mesh.vertices.materialAtlas;\r\n const numColors = mesh.vertices.numColors;\r\n if (atlas && undefined !== numColors) {\r\n material = {\r\n isAtlas: true,\r\n hasTranslucency: JsonUtils.asBool(atlas.hasTranslucency),\r\n overridesAlpha: JsonUtils.asBool(atlas.overridesAlpha, false),\r\n vertexTableOffset: JsonUtils.asInt(numColors),\r\n numMaterials: JsonUtils.asInt(atlas.numMaterials),\r\n };\r\n } else if (displayParams.material) {\r\n assert(displayParams.material instanceof Material);\r\n material = displayParams.material.toImdl();\r\n }\r\n\r\n let textureMapping;\r\n if (texture) {\r\n assert(texture instanceof Texture);\r\n textureMapping = {\r\n texture: texture.toImdl(),\r\n alwaysDisplayed: JsonUtils.asBool(surf.alwaysDisplayTexture),\r\n };\r\n }\r\n\r\n return {\r\n type,\r\n indices,\r\n fillFlags: displayParams.fillFlags,\r\n hasBakedLighting: false,\r\n material,\r\n textureMapping,\r\n };\r\n }\r\n\r\n private parseAuxChannelTable(primitive: ImdlMeshPrimitive): AuxChannelTableProps | undefined {\r\n const json = primitive.auxChannels;\r\n if (undefined === json)\r\n return undefined;\r\n\r\n const bytes = this.findBuffer(JsonUtils.asString(json.bufferView));\r\n if (undefined === bytes)\r\n return undefined;\r\n\r\n return {\r\n data: bytes,\r\n width: json.width,\r\n height: json.height,\r\n count: json.count,\r\n numBytesPerVertex: json.numBytesPerVertex,\r\n displacements: json.displacements,\r\n normals: json.normals,\r\n params: json.params,\r\n };\r\n }\r\n\r\n private parseVertexTable(primitive: AnyImdlPrimitive): Imdl.VertexTable | undefined {\r\n const json = primitive.vertices;\r\n if (!json)\r\n return undefined;\r\n\r\n const bytes = this.findBuffer(JsonUtils.asString(json.bufferView));\r\n if (!bytes)\r\n return undefined;\r\n\r\n const uniformFeatureID = undefined !== json.featureID ? JsonUtils.asInt(json.featureID) : undefined;\r\n\r\n const rangeMin = JsonUtils.asArray(json.params.decodedMin);\r\n const rangeMax = JsonUtils.asArray(json.params.decodedMax);\r\n if (undefined === rangeMin || undefined === rangeMax)\r\n return undefined;\r\n\r\n const qparams = QParams3d.fromRange(Range3d.create(Point3d.create(rangeMin[0], rangeMin[1], rangeMin[2]), Point3d.create(rangeMax[0], rangeMax[1], rangeMax[2])));\r\n\r\n const uniformColor = undefined !== json.uniformColor ? ColorDef.fromJSON(json.uniformColor) : undefined;\r\n let uvParams: QParams2d | undefined;\r\n if (Mesh.PrimitiveType.Mesh === primitive.type && primitive.surface && primitive.surface.uvParams) {\r\n const uvMin = primitive.surface.uvParams.decodedMin;\r\n const uvMax = primitive.surface.uvParams.decodedMax;\r\n const uvRange = new Range2d(uvMin[0], uvMin[1], uvMax[0], uvMax[1]);\r\n uvParams = QParams2d.fromRange(uvRange);\r\n }\r\n\r\n return {\r\n data: bytes,\r\n usesUnquantizedPositions: true === json.usesUnquantizedPositions,\r\n qparams: qparams.toJSON(),\r\n width: json.width,\r\n height: json.height,\r\n hasTranslucency: json.hasTranslucency,\r\n uniformColor: uniformColor?.toJSON(),\r\n featureIndexType: json.featureIndexType,\r\n uniformFeatureID,\r\n numVertices: json.count,\r\n numRgbaPerVertex: json.numRgbaPerVertex,\r\n uvParams: uvParams?.toJSON(),\r\n };\r\n }\r\n\r\n private parseInstances(primitive: AnyImdlPrimitive): Imdl.Instances | undefined {\r\n const json = primitive.instances;\r\n if (!json)\r\n return undefined;\r\n\r\n const count = JsonUtils.asInt(json.count, 0);\r\n if (count <= 0)\r\n return undefined;\r\n\r\n const centerComponents = JsonUtils.asArray(json.transformCenter);\r\n if (undefined === centerComponents || 3 !== centerComponents.length)\r\n return undefined;\r\n\r\n const transformCenter = Point3d.create(centerComponents[0], centerComponents[1], centerComponents[2]);\r\n\r\n const featureIds = this.findBuffer(JsonUtils.asString(json.featureIds));\r\n if (undefined === featureIds)\r\n return undefined;\r\n\r\n const transformBytes = this.findBuffer(JsonUtils.asString(json.transforms));\r\n if (undefined === transformBytes)\r\n return undefined;\r\n\r\n // 1 transform = 3 rows of 4 floats = 12 floats per instance\r\n const numFloats = transformBytes.byteLength / 4;\r\n assert(Math.floor(numFloats) === numFloats);\r\n assert(0 === numFloats % 12);\r\n\r\n const transforms = new Float32Array(transformBytes.buffer, transformBytes.byteOffset, numFloats);\r\n\r\n let symbologyOverrides: Uint8Array | undefined;\r\n if (undefined !== json.symbologyOverrides)\r\n symbologyOverrides = this.findBuffer(JsonUtils.asString(json.symbologyOverrides));\r\n\r\n return {\r\n type: \"instances\",\r\n count,\r\n transforms,\r\n transformCenter,\r\n featureIds,\r\n symbologyOverrides,\r\n };\r\n }\r\n\r\n private findBuffer(bufferViewId: string): Uint8Array | undefined {\r\n if (typeof bufferViewId !== \"string\" || 0 === bufferViewId.length)\r\n return undefined;\r\n\r\n const bufferViewJson = this._document.bufferViews[bufferViewId];\r\n if (undefined === bufferViewJson)\r\n return undefined;\r\n\r\n const byteOffset = JsonUtils.asInt(bufferViewJson.byteOffset);\r\n const byteLength = JsonUtils.asInt(bufferViewJson.byteLength);\r\n if (0 === byteLength)\r\n return undefined;\r\n\r\n return this._binaryData.subarray(byteOffset, byteOffset + byteLength);\r\n }\r\n\r\n private colorDefFromMaterialJson(json: ImdlColorDef | undefined): ColorDef | undefined {\r\n return undefined !== json ? ColorDef.from(json[0] * 255 + 0.5, json[1] * 255 + 0.5, json[2] * 255 + 0.5) : undefined;\r\n }\r\n\r\n private materialFromJson(key: string): RenderMaterial | undefined {\r\n const materialJson = this._document.renderMaterials[key];\r\n if (!materialJson)\r\n return undefined;\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n const materialParams = new RenderMaterial.Params(key);\r\n materialParams.diffuseColor = this.colorDefFromMaterialJson(materialJson.diffuseColor);\r\n if (materialJson.diffuse !== undefined)\r\n materialParams.diffuse = JsonUtils.asDouble(materialJson.diffuse);\r\n\r\n materialParams.specularColor = this.colorDefFromMaterialJson(materialJson.specularColor);\r\n if (materialJson.specular !== undefined)\r\n materialParams.specular = JsonUtils.asDouble(materialJson.specular);\r\n\r\n materialParams.reflectColor = this.colorDefFromMaterialJson(materialJson.reflectColor);\r\n if (materialJson.reflect !== undefined)\r\n materialParams.reflect = JsonUtils.asDouble(materialJson.reflect);\r\n\r\n if (materialJson.specularExponent !== undefined)\r\n materialParams.specularExponent = materialJson.specularExponent;\r\n\r\n if (undefined !== materialJson.transparency)\r\n materialParams.alpha = 1.0 - materialJson.transparency;\r\n\r\n materialParams.refract = JsonUtils.asDouble(materialJson.refract);\r\n materialParams.shadows = JsonUtils.asBool(materialJson.shadows);\r\n materialParams.ambient = JsonUtils.asDouble(materialJson.ambient);\r\n\r\n if (undefined !== materialJson.textureMapping)\r\n materialParams.textureMapping = this.textureMappingFromJson(materialJson.textureMapping.texture);\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n return new Material(materialParams);\r\n }\r\n\r\n private parseNamedTexture(namedTex: ImdlNamedTexture, name: string): RenderTexture | undefined {\r\n const textureType = JsonUtils.asBool(namedTex.isGlyph) ? RenderTexture.Type.Glyph :\r\n (JsonUtils.asBool(namedTex.isTileSection) ? RenderTexture.Type.TileSection : RenderTexture.Type.Normal);\r\n\r\n return new NamedTexture(name, textureType);\r\n }\r\n\r\n private parseConstantLodProps(propsJson: { repetitions?: number, offset?: number[], minDistClamp?: number, maxDistClamp?: number } | undefined): TextureMapping.ConstantLodParamProps | undefined {\r\n if (undefined === propsJson)\r\n return undefined;\r\n\r\n return {\r\n repetitions: JsonUtils.asDouble(propsJson.repetitions, 1.0),\r\n offset: { x: propsJson.offset ? JsonUtils.asDouble(propsJson.offset[0]) : 0.0, y: propsJson.offset ? JsonUtils.asDouble(propsJson.offset[1]) : 0.0 },\r\n minDistClamp: JsonUtils.asDouble(propsJson.minDistClamp, 1.0),\r\n maxDistClamp: JsonUtils.asDouble(propsJson.maxDistClamp, 4096.0 * 1024.0 * 1024.0),\r\n };\r\n }\r\n\r\n private textureMappingFromJson(json: ImdlTextureMapping | undefined): TextureMapping | undefined {\r\n if (!json)\r\n return undefined;\r\n\r\n const name = JsonUtils.asString(json.name);\r\n const namedTex = 0 !== name.length ? this._document.namedTextures[name] : undefined;\r\n const texture = namedTex ? this.parseNamedTexture(namedTex, name) : undefined;\r\n if (!texture)\r\n return undefined;\r\n\r\n const paramsJson = json.params;\r\n const tf = paramsJson.transform;\r\n const paramProps: TextureMapping.ParamProps = {\r\n textureMat2x3: new TextureMapping.Trans2x3(tf[0][0], tf[0][1], tf[0][2], tf[1][0], tf[1][1], tf[1][2]),\r\n textureWeight: JsonUtils.asDouble(paramsJson.weight, 1.0),\r\n mapMode: JsonUtils.asInt(paramsJson.mode),\r\n worldMapping: JsonUtils.asBool(paramsJson.worldMapping),\r\n useConstantLod: JsonUtils.asBool(paramsJson.useConstantLod),\r\n constantLodProps: this.parseConstantLodProps(paramsJson.constantLodParams),\r\n };\r\n\r\n const textureMapping = new TextureMapping(texture, new TextureMapping.Params(paramProps));\r\n\r\n const normalMapJson = json.normalMapParams;\r\n if (normalMapJson) {\r\n const normalTexName = JsonUtils.asString(normalMapJson.textureName);\r\n const namedNormalTex = normalTexName.length > 0 ? this._document.namedTextures[normalTexName] : undefined;\r\n const normalMap = namedNormalTex ? this.parseNamedTexture(namedNormalTex, normalTexName) : undefined;\r\n if (normalMap) {\r\n textureMapping.normalMapParams = {\r\n normalMap,\r\n greenUp: JsonUtils.asBool(normalMapJson.greenUp),\r\n scale: JsonUtils.asDouble(normalMapJson.scale, 1),\r\n useConstantLod: JsonUtils.asBool(normalMapJson.useConstantLod),\r\n };\r\n }\r\n }\r\n\r\n return textureMapping;\r\n }\r\n\r\n private parseDisplayParams(json: ImdlDisplayParams): DisplayParams | undefined {\r\n const type = JsonUtils.asInt(json.type, DisplayParams.Type.Mesh);\r\n const lineColor = ColorDef.create(JsonUtils.asInt(json.lineColor));\r\n const fillColor = ColorDef.create(JsonUtils.asInt(json.fillColor));\r\n const width = JsonUtils.asInt(json.lineWidth);\r\n const linePixels = JsonUtils.asInt(json.linePixels, LinePixels.Solid);\r\n const fillFlags = JsonUtils.asInt(json.fillFlags, FillFlags.None);\r\n const ignoreLighting = JsonUtils.asBool(json.ignoreLighting);\r\n\r\n // Material will always contain its own texture if it has one\r\n const materialKey = json.materialId;\r\n const material = undefined !== materialKey ? this.materialFromJson(materialKey) : undefined;\r\n\r\n // We will only attempt to include the texture if material is undefined\r\n let textureMapping;\r\n let gradient: Gradient.Symb | undefined;\r\n if (!material) {\r\n const textureJson = json.texture;\r\n textureMapping = undefined !== textureJson ? this.textureMappingFromJson(textureJson) : undefined;\r\n\r\n if (undefined === textureMapping) {\r\n const gradientProps = json.gradient;\r\n gradient = undefined !== gradientProps ? Gradient.Symb.fromJSON(gradientProps) : undefined;\r\n if (gradient) {\r\n assert(undefined !== gradientProps);\r\n const texture = new GradientTexture(gradientProps);\r\n textureMapping = new TextureMapping(texture, new TextureMapping.Params({ textureMat2x3: new TextureMapping.Trans2x3(0, 1, 0, 1, 0, 0) }));\r\n }\r\n }\r\n }\r\n\r\n return new DisplayParams(type, lineColor, fillColor, width, linePixels, fillFlags, material, gradient, ignoreLighting, textureMapping);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function toMaterialArgs(mat: Imdl.SurfaceMaterialParams): CreateRenderMaterialArgs {\r\n const args: CreateRenderMaterialArgs = { alpha: mat.alpha };\r\n if (mat.diffuse) {\r\n args.diffuse = {\r\n weight: mat.diffuse.weight,\r\n color: undefined !== mat.diffuse.color ? ColorDef.fromJSON(mat.diffuse.color) : undefined,\r\n };\r\n }\r\n\r\n if (mat.specular) {\r\n args.specular = {\r\n weight: mat.specular.weight,\r\n exponent: mat.specular.exponent,\r\n color: undefined !== mat.specular.color ? ColorDef.fromJSON(mat.specular.color) : undefined,\r\n };\r\n }\r\n\r\n return args;\r\n}\r\n\r\n/** @internal */\r\nexport function convertFeatureTable(imdlFeatureTable: Imdl.FeatureTable, batchModelId: Id64String): RenderFeatureTable {\r\n const table = imdlFeatureTable.multiModel\r\n ? MultiModelPackedFeatureTable.create(imdlFeatureTable.data, batchModelId, imdlFeatureTable.numFeatures, BatchType.Primary, imdlFeatureTable.numSubCategories)\r\n : new PackedFeatureTable(imdlFeatureTable.data, batchModelId, imdlFeatureTable.numFeatures, BatchType.Primary);\r\n\r\n table.animationNodeIds = imdlFeatureTable.animationNodeIds;\r\n return table;\r\n}\r\n\r\n/** @internal */\r\nexport function parseImdlDocument(options: ImdlParserOptions): Imdl.Document | ImdlParseError {\r\n const stream = options.stream;\r\n const imdlHeader = new ImdlHeader(stream);\r\n if (!imdlHeader.isValid)\r\n return TileReadStatus.InvalidHeader;\r\n else if (!imdlHeader.isReadableVersion)\r\n return TileReadStatus.NewerMajorVersion;\r\n\r\n // Skip the feature table - we need to parse the JSON segment first to access its animationNodeIds.\r\n const ftStartPos = stream.curPos;\r\n const ftHeader = FeatureTableHeader.readFrom(stream);\r\n if (!ftHeader)\r\n return TileReadStatus.InvalidFeatureTable;\r\n\r\n stream.curPos = ftStartPos + ftHeader.length;\r\n\r\n // A glTF header follows the feature table\r\n const gltfHeader = new GltfHeader(stream);\r\n if (!gltfHeader.isValid)\r\n return TileReadStatus.InvalidTileData;\r\n\r\n stream.curPos = gltfHeader.scenePosition;\r\n const sceneStrData = stream.nextBytes(gltfHeader.sceneStrLength);\r\n const sceneStr = utf8ToString(sceneStrData);\r\n if (!sceneStr)\r\n return TileReadStatus.InvalidScene;\r\n\r\n try {\r\n const sceneValue = JSON.parse(sceneStr);\r\n const imdlDoc: Document = {\r\n scene: JsonUtils.asString(sceneValue.scene),\r\n scenes: JsonUtils.asArray(sceneValue.scenes),\r\n animationNodes: JsonUtils.asObject(sceneValue.animationNodes),\r\n bufferViews: JsonUtils.asObject(sceneValue.bufferViews) ?? { },\r\n meshes: JsonUtils.asObject(sceneValue.meshes),\r\n nodes: JsonUtils.asObject(sceneValue.nodes) ?? { },\r\n materials: JsonUtils.asObject(sceneValue.materials) ?? { },\r\n renderMaterials: JsonUtils.asObject(sceneValue.renderMaterials) ?? { },\r\n namedTextures: JsonUtils.asObject(sceneValue.namedTextures) ?? { },\r\n patternSymbols: JsonUtils.asObject(sceneValue.patternSymbols) ?? { },\r\n rtcCenter: JsonUtils.asArray(sceneValue.rtcCenter),\r\n };\r\n\r\n if (!imdlDoc.meshes)\r\n return TileReadStatus.InvalidTileData;\r\n\r\n const binaryData = new Uint8Array(stream.arrayBuffer, gltfHeader.binaryPosition);\r\n const featureTable = {\r\n startPos: ftStartPos,\r\n multiModel: 0 !== (imdlHeader.flags & ImdlFlags.MultiModelFeatureTable),\r\n };\r\n\r\n const parser = new ImdlParser(imdlDoc, binaryData, options, featureTable);\r\n return parser.parse();\r\n } catch (_) {\r\n return TileReadStatus.InvalidTileData;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImdlSchema.d.ts","sourceRoot":"","sources":["../../../src/imdl/ImdlSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImdlSchema.js","sourceRoot":"","sources":["../../../src/imdl/ImdlSchema.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { ClipVectorProps, Range3dProps, TransformProps, XYProps, XYZProps } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorDefProps, FeatureIndexType, FillFlags, Gradient, ImageSourceFormat, LinePixels, TextureMapping, TextureTransparency,\r\n} from \"@itwin/core-common\";\r\nimport { AuxChannelTableProps } from \"../render/primitives/AuxChannelTable\";\r\nimport { DisplayParams } from \"../render/primitives/DisplayParams\";\r\nimport { Mesh } from \"../render/primitives/mesh/MeshPrimitives\";\r\nimport { SurfaceType } from \"../render/primitives/SurfaceParams\";\r\n\r\n/* eslint-disable no-restricted-syntax */\r\n\r\n/** Describes a [ColorDef]($common) as [r, g, b] with each component in [0..1].\r\n * @alpha\r\n */\r\nexport type ImdlColorDef = number[];\r\n\r\n/** Describes a [TextureMapping]($common).\r\n * @alpha\r\n */\r\nexport interface ImdlTextureMapping {\r\n /** Optional name, which may be the Id of a persistent [RenderTexture]($common) or some other name unique among all texture mappings within the tile. */\r\n name?: string;\r\n /** Describes the [TextureMapping.Params]($common). */\r\n params: {\r\n /** Describes a [TextureMapping.Trans2x3]($common) as a 2x3 matrix. */\r\n transform: number[][];\r\n /** @see [TextureMapping.Params.weight]($common). Default: 1.0. */\r\n weight?: number;\r\n /** Default: [TextureMapping.Mode.Parametric]($common). */\r\n mode?: TextureMapping.Mode;\r\n /** @see [TextureMapping.Params.worldMapping]($common). Default: false. */\r\n worldMapping?: boolean;\r\n /** @see [TextureMapping.Params.useConstantLod]($common). Default: false. */\r\n useConstantLod?: boolean;\r\n /** Describes the [TextureMapping.ConstantLodParamProps]($common). */\r\n constantLodParams?: {\r\n repetitions?: number;\r\n offset?: number[];\r\n minDistClamp?: number;\r\n maxDistClamp?: number;\r\n };\r\n };\r\n /** @see [NormalMapParams]($common). */\r\n normalMapParams?: {\r\n textureName?: string;\r\n greenUp?: boolean;\r\n scale?: number;\r\n useConstantLod?: boolean;\r\n };\r\n}\r\n\r\n/** Describes a [RenderTexture]($common) with its image embedded into the tile data.\r\n * @alpha\r\n */\r\nexport interface ImdlNamedTexture {\r\n /** If true, the image is a texture atlas containing any number of glyphs used for text. */\r\n isGlyph?: boolean;\r\n /** If true, the texture should not repeat and should not be mip-mapped. */\r\n isTileSection?: boolean;\r\n /** The Id of the [[ImdlBufferView]] containing the image data. */\r\n bufferView: string;\r\n /** The format of the image data referenced by [[bufferView]]. */\r\n format: ImageSourceFormat;\r\n /** The kind of transparency present in the texture image. Default: Mixed. */\r\n transparency?: TextureTransparency;\r\n}\r\n\r\n/** Describes a [[DisplayParams]].\r\n * @alpha\r\n */\r\nexport interface ImdlDisplayParams {\r\n type: DisplayParams.Type;\r\n lineColor?: ColorDefProps;\r\n fillColor?: ColorDefProps;\r\n lineWidth?: number;\r\n linePixels?: LinePixels;\r\n fillFlags?: FillFlags;\r\n ignoreLighting?: boolean;\r\n materialId?: string;\r\n texture?: ImdlTextureMapping;\r\n gradient?: Gradient.SymbProps;\r\n}\r\n\r\n/** Describes a [RenderMaterial]($common).\r\n * @alpha\r\n */\r\nexport interface ImdlRenderMaterial {\r\n diffuseColor?: ImdlColorDef;\r\n diffuse?: number;\r\n specularColor?: ImdlColorDef;\r\n specular?: number;\r\n reflectColor?: ImdlColorDef;\r\n reflect?: number;\r\n specularExponent?: number;\r\n /** In [0..1] where 0 is fully opaque. */\r\n transparency?: number;\r\n refract?: number;\r\n shadows?: boolean;\r\n ambient?: number;\r\n textureMapping?: {\r\n texture: ImdlTextureMapping;\r\n };\r\n}\r\n\r\n/** Describes a [[SurfaceMaterialAtlas]] embedded into an [[ImdlVertexTable]].\r\n * @alpha\r\n */\r\nexport interface ImdlMaterialAtlas {\r\n readonly numMaterials: number;\r\n readonly hasTranslucency?: boolean;\r\n readonly overridesAlpha?: boolean;\r\n}\r\n\r\n/** Describes a [[VertexTable]].\r\n * @alpha\r\n */\r\nexport interface ImdlVertexTable {\r\n /** Id of the [[ImdlBufferView]] containing the binary vertex table data. */\r\n readonly bufferView: string;\r\n /** The number of vertices in the table. */\r\n readonly count: number;\r\n /** The number of RGBA values in the lookup texture allocated per vertex. */\r\n readonly numRgbaPerVertex: number;\r\n /** The number of colors in the color table embedded into the vertex table, or undefined if [[uniformColor]] is defined. */\r\n readonly numColors?: number;\r\n /** The width of the lookup texture. */\r\n readonly width: number;\r\n /** The height of the lookup texture. */\r\n readonly height: number;\r\n /** True if [[uniformColor]] has transparency or the embedded color table contains transparent colors. */\r\n readonly hasTranslucency: boolean;\r\n /** Describes the number (0, 1, or more than 1) of features contained in the vertex table. */\r\n readonly featureIndexType: FeatureIndexType;\r\n /** If [[featureIndexType]] is [FeatureIndexType.Uniform]($common), the ID of the feature associated with all vertices in the table. */\r\n readonly featureID?: number;\r\n /** If defined, the color associated with all vertices in the table. */\r\n readonly uniformColor?: ColorDefProps;\r\n /** The quantization range of the vertex positions. @see [QParams3d]($common). */\r\n readonly params: {\r\n readonly decodedMin: number[];\r\n readonly decodedMax: number[];\r\n };\r\n /** If the vertex table contains multiple surface materials, describes the embedded material atlas. */\r\n readonly materialAtlas?: ImdlMaterialAtlas;\r\n readonly usesUnquantizedPositions?: boolean;\r\n}\r\n\r\n/** Describes how to draw a single [[ImdlPrimitive]] repeatedly.\r\n * @see [[InstancedGraphicParams]].\r\n * @alpha\r\n */\r\nexport interface ImdlInstances {\r\n readonly count: number;\r\n readonly transformCenter: number[];\r\n readonly featureIds: string;\r\n readonly transforms: string;\r\n readonly symbologyOverrides?: string;\r\n}\r\n\r\n/** Describes a unit of geometry within an [[ImdlMesh]].\r\n * @alpha\r\n */\r\nexport interface ImdlPrimitive {\r\n /** The Id of the associated [[ImdlDisplayParams]]. */\r\n readonly material?: string;\r\n /** A lookup table containing the primitive's vertices. */\r\n readonly vertices: ImdlVertexTable;\r\n /** If true, all the vertices lie in a single plane. */\r\n readonly isPlanar?: boolean;\r\n /** If defined, a point about which the primitive should rotate when displayed to always face the camera. */\r\n readonly viewIndependentOrigin?: XYZProps;\r\n /** If defined, describes repeated instances of the same primitive. */\r\n readonly instances?: ImdlInstances;\r\n}\r\n\r\n/** Per-vertex data used to animate and/or resymbolize a mesh.\r\n * @see [[AuxChannelTable]].\r\n * @alpha\r\n */\r\nexport type ImdlAuxChannelTable = Omit<AuxChannelTableProps, \"data\"> & { bufferView: string };\r\n\r\n/** Describes the \"hard\" edges of an [[ImdlMeshPrimitive]]. These edges represent simple line segments connecting two vertices of the mesh.\r\n * They are always visible regardless of view orientation.\r\n * Each segment is represented as a quad such that it can be expanded to a desired width in pixels.\r\n * @alpha\r\n */\r\nexport interface ImdlSegmentEdges {\r\n /** Id of the [[ImdlBufferView]] containing - for each vertex of each quad - the 24-bit index of the vertex in the mesh's [[ImdlVertexTable]]. */\r\n readonly indices: string;\r\n /** Id of the [[ImdlBufferView]] containing - for each vertex of each quad - the 24-bit index of the segmnent's other endpoint in the mesh's [[ImdlVertexTable]],\r\n * along with a \"quad index\" in [0..3] identifying which corner of the quad the vertex represents.\r\n */\r\n readonly endPointAndQuadIndices: string;\r\n}\r\n\r\n/** Describes \"hidden\" edges of an [[ImdlMeshPrimitive]]. These edges represent simple line segments connecting two vertices of the mesh.\r\n * A given silhouette is visible when only one of the faces associated with the edge is facing the camera, producing view-dependent outlines for curved\r\n * geometry like spheres and cones.\r\n * @alpha\r\n */\r\nexport interface ImdlSilhouetteEdges extends ImdlSegmentEdges {\r\n /** The Id of the [[ImdlBufferView]] containing - for each vertex - a pair of [OctEncodedNormal]($common)s for the two faces associated with the edge. */\r\n readonly normalPairs: string;\r\n}\r\n\r\n/** A compact alternative representation of [[ImdlSegmentEdges]] and [[ImdlSilhouetteEdges]] consisting of a lookup table containing information about each unique\r\n * edge, along with indices into that table.\r\n * @see [[IndexedEdgeParams]].\r\n * @alpha\r\n */\r\nexport interface ImdlIndexedEdges {\r\n /** Id of the [[ImdlBufferView]] containing the indices - 6 per segment, forming a quad. */\r\n readonly indices: string;\r\n /** Id of the [[ImdlBufferView]] containing the lookup table binary data. */\r\n readonly edges: string;\r\n /** Width of the lookup texture. */\r\n readonly width: number;\r\n /** Height of the lookup texture. */\r\n readonly height: number;\r\n /** The number of simple segments in the lower partition of the lookup table. @see [[IndexedEdgeParams.numSegments]]. */\r\n readonly numSegments: number;\r\n /** The number of bytes inserted for alignment between the lower and upper partitions of the lookup table. @see [[IndexedEdgeParams.silhouettePadding]]. */\r\n readonly silhouettePadding: number;\r\n}\r\n\r\n/** Describes the edges of an [[ImdlMeshPrimitive]].\r\n * @alpha\r\n */\r\nexport interface ImdlMeshEdges {\r\n /** @see [[ImdlSegmentEdges]]. */\r\n readonly segments?: ImdlSegmentEdges;\r\n /** @see [[ImdlSilhouetteEdges]]. */\r\n readonly silhouettes?: ImdlSilhouetteEdges;\r\n /** Line strings with additional joint triangles inserted to produce wide edges with rounded corners.\r\n * Typically only produced for 2d views.\r\n */\r\n readonly polylines?: ImdlPolyline;\r\n /** @see [[ImdlIndexedEdges]]. */\r\n readonly indexed?: ImdlIndexedEdges;\r\n}\r\n\r\n/** Describes a collection of line strings with additional joint triangles inserted to produce wide line strings with rounded corners.\r\n * @see [[TesselatedPolyline]] and [[PolylineParams]].\r\n * @alpha\r\n */\r\nexport interface ImdlPolyline {\r\n /** Id of the [[ImdlBufferView]] containing the [[TesselatedPolyline.indices]]. */\r\n readonly indices: string;\r\n /** Id of the [[ImdlBufferView]] containing the [[TesselatedPolyline.prevIndices]]. */\r\n readonly prevIndices: string;\r\n /** Id of the [[ImdlBufferView]] containing the [[TesselatedPolyline.nextIndicesAndParams]]. */\r\n readonly nextIndicesAndParams: string;\r\n}\r\n\r\n/** Describes a planar region in which a pattern symbol is repeated in a regular grid.\r\n * @see [[PatternGraphicParams]].\r\n * @alpha\r\n */\r\nexport interface ImdlAreaPattern {\r\n readonly type: \"areaPattern\";\r\n /** The Id of the [[ImdlAreaPatternSymbol]] containing the pattern geometry. */\r\n readonly symbolName: string;\r\n /** A [ClipVector]($core-geometry) used to clip symbols to the pattern region's boundary. */\r\n readonly clip: ClipVectorProps;\r\n /** Uniform scale applied to the pattern geometry. */\r\n readonly scale: number;\r\n /** Spacing between each instance of the pattern in meters. */\r\n readonly spacing: XYProps;\r\n readonly orgTransform: TransformProps;\r\n readonly origin: XYProps;\r\n /** Id of the [[ImdlBufferView]] containing the offset of each occurrence of the symbol in pattern-space. */\r\n readonly xyOffsets: string;\r\n readonly featureId: number;\r\n readonly modelTransform: TransformProps;\r\n readonly range: Range3dProps;\r\n readonly symbolTranslation: XYZProps;\r\n readonly viewIndependentOrigin?: XYZProps;\r\n}\r\n\r\n/** Describes the surface of an [[ImdlMeshPrimitive]] as a collection of triangles.\r\n * @alpha\r\n */\r\nexport interface ImdlSurface {\r\n /** The type of surface. */\r\n readonly type: SurfaceType;\r\n /** The 24-bit indices into the [[ImdlVertexTable]] of each triangle's vertex. */\r\n readonly indices: string;\r\n /** If true, the [[ImdlTextureMapping]] is applied regardless of [ViewFlags.textures]($common). */\r\n readonly alwaysDisplayTexture?: boolean;\r\n /** The quantization range for the UV coordinates. @see [QParams2d]($common). */\r\n readonly uvParams?: {\r\n readonly decodedMin: number[];\r\n readonly decodedMax: number[];\r\n };\r\n}\r\n\r\n/** Describes a triangle mesh, optionally including its edges. @see [[MeshParams]].\r\n * @alpha\r\n */\r\nexport interface ImdlMeshPrimitive extends ImdlPrimitive {\r\n /** Type discriminator for [[AnyImdlPrimitive]]. */\r\n readonly type: Mesh.PrimitiveType.Mesh;\r\n readonly surface: ImdlSurface;\r\n readonly edges?: ImdlMeshEdges;\r\n readonly auxChannels?: ImdlAuxChannelTable;\r\n readonly areaPattern?: ImdlAreaPattern;\r\n}\r\n\r\n/** Describes a collection of line strings. @see [[PolylineParams]].\r\n * @alpha\r\n */\r\nexport interface ImdlPolylinePrimitive extends ImdlPrimitive, ImdlPolyline {\r\n /** Type discriminator for [[AnyImdlPrimitive]]. */\r\n readonly type: Mesh.PrimitiveType.Polyline;\r\n}\r\n\r\n/** Describes a collection of individual points. @see [[PointStringParams.\r\n * @alpha\r\n */\r\nexport interface ImdlPointStringPrimitive extends ImdlPrimitive {\r\n /** Type discriminator for [[AnyImdlPrimitive]]. */\r\n readonly type: Mesh.PrimitiveType.Point;\r\n /** The Id of the [[ImdlBufferView]] containing - for each point - the 24-bit index of the corresponding vertex in the [[ImdlVertexTable]]. */\r\n readonly indices: string;\r\n}\r\n\r\n/** @alpha */\r\nexport type AnyImdlPrimitive = ImdlMeshPrimitive | ImdlPolylinePrimitive | ImdlPointStringPrimitive;\r\n\r\n/** A collection of primitive geometry to be rendered.\r\n * @alpha\r\n */\r\nexport interface ImdlMesh {\r\n /** The geometry to be rendered. */\r\n readonly primitives?: Array<AnyImdlPrimitive | ImdlAreaPattern>;\r\n /** If this mesh defines a layer, the unique Id of that layer.\r\n * @see [[RenderSystem.createGraphicLayer]] for a description of layers.\r\n */\r\n readonly layer?: string;\r\n}\r\n\r\n/** A collection of primitive geometry to be rendered as the pattern symbol for an [[ImdlAreaPattern]].\r\n * @alpha\r\n */\r\nexport interface ImdlAreaPatternSymbol {\r\n readonly primitives: AnyImdlPrimitive[];\r\n}\r\n\r\n/** If the tile has an associated [RenderSchedule.Script]($common), an array of Ids of nodes in the script used to group elements.\r\n * @alpha\r\n */\r\nexport interface ImdlAnimationNodes {\r\n /** The number of bytes in each integer Id provided by [[bufferView]] - either 1, 2, or 4. */\r\n bytesPerId: number;\r\n /** The Id of the [[ImdlBufferView]] containing the tightly-packed array of 1-, 2- or 4-byte unsigned integer node Ids; the number of bytes is specified by [[bytesPerId]]. */\r\n bufferView: string;\r\n}\r\n\r\n/** Describes a contiguous array of bytes within the binary portion of the tile.\r\n * @alpha\r\n */\r\nexport interface ImdlBufferView {\r\n /** The number of bytes in the array. */\r\n byteLength: number;\r\n /** The offset from the beginning of the binary portion of the tile data to the first byte in the array. */\r\n byteOffset: number;\r\n}\r\n\r\n/** A top-level dictionary of resources of a particular type contained in an [[Imdl]] tile.\r\n * Each resource has a unique name by which it can be referred to by other contents of the tile.\r\n * @alpha\r\n */\r\nexport interface ImdlDictionary<T> {\r\n [key: string]: T | undefined;\r\n}\r\n\r\n/** Describes all of the geometry contained in the tile.\r\n * @alpha\r\n */\r\nexport interface ImdlScene {\r\n /** The Ids of the elements of [[Imdl.nodes]] to be included in the scene. */\r\n nodes: string[];\r\n}\r\n\r\n/** Describes the top-level contents of a tile.\r\n * @alpha\r\n */\r\nexport interface ImdlDocument {\r\n /** The Id of the ImdlScene in [[scenes]] that describes the tile's geometry. */\r\n scene: string;\r\n /** The collection of ImdlScenes included in the tile. */\r\n scenes: ImdlDictionary<ImdlScene>;\r\n /** Specifies point to which all vertex positions in the tile are relative, as an array of 3 numbers.\r\n * Currently only used for requestElementGraphics - see GraphicsRequestProps.useAbsolutePositions.\r\n */\r\n rtcCenter?: number[];\r\n /** Maps each node Id to the Id of the corresponding mesh in [[meshes]]. */\r\n nodes: ImdlDictionary<string>;\r\n meshes: ImdlDictionary<ImdlMesh>;\r\n bufferViews: ImdlDictionary<ImdlBufferView>;\r\n materials?: ImdlDictionary<ImdlDisplayParams>;\r\n patternSymbols?: ImdlDictionary<ImdlAreaPatternSymbol>;\r\n animationNodes?: ImdlAnimationNodes;\r\n renderMaterials?: ImdlDictionary<ImdlRenderMaterial>;\r\n namedTextures?: ImdlDictionary<ImdlNamedTexture>;\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RenderMaterial.d.ts","sourceRoot":"","sources":["../../../src/render/RenderMaterial.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC7G,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,gBAAgB,CAAC;IACzB,EAAE,EAAE,UAAU,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,+GAA+G;IAC/G,KAAK,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;IAEjC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;IAEjC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,oDAAoD;IACpD,OAAO,EAAE,aAAa,CAAC;IAEvB,sGAAsG;IACtG,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC;;OAEG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC;IAE3B;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC;IAEpC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,gBAAgB;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,cAAc,CAAC,qBAAqB,CAAC;CACzD;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAE9B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,kGAAkG;IAClG,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAE/B,mGAAmG;IACnG,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAEjC,2HAA2H;IAC3H,cAAc,CAAC,EAAE,2BAA2B,CAAC;CAC9C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RenderMaterial.js","sourceRoot":"","sources":["../../../src/render/RenderMaterial.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport { ColorDef, NormalMapParams, RenderTexture, RgbColorProps, TextureMapping } from \"@itwin/core-common\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\n\r\n/** Specifies the provenance of a [RenderMaterial]($common) created for a persistent material element.\r\n * @see [[CreateRenderMaterialArgs.source]].\r\n * @internal\r\n */\r\nexport interface RenderMaterialSource {\r\n iModel: IModelConnection;\r\n id: Id64String;\r\n}\r\n\r\n/** Describes the [diffuse](https://en.wikipedia.org/wiki/Diffuse_reflection) properties of a [RenderMaterial]($common).\r\n * @see [[CreateRenderMaterialArgs.diffuse]].\r\n * @public\r\n */\r\nexport interface MaterialDiffuseProps {\r\n /** The diffuse color. If defined, this overrides the color of any surface to which the material is applied. */\r\n color?: ColorDef | RgbColorProps;\r\n\r\n /** A multiplier in [0..1] specifying how strongly the diffuse color reflects light.\r\n * Default: 0.6\r\n */\r\n weight?: number;\r\n}\r\n\r\n/** Describes the [specular](https://en.wikipedia.org/wiki/Specular_highlight) properties of a material.\r\n * @see [[CreateRenderMaterialArgs.specular]].\r\n * @public\r\n */\r\nexport interface MaterialSpecularProps {\r\n /** The color of the specular reflections.\r\n * Default: white.\r\n */\r\n color?: ColorDef | RgbColorProps;\r\n\r\n /** A multiplier in [0..1] specifying the strength of the specular reflections.\r\n * Default: 0.4\r\n */\r\n weight?: number;\r\n\r\n /** An exponent in [0..infinity] describing the shininess of the surface.\r\n * Default: 13.5\r\n */\r\n exponent?: number;\r\n}\r\n\r\n/** Describes how to map a [RenderTexture]($common)'s image to the surfaces to which a [RenderMaterial]($common) is applied.\r\n * @see [[CreateRenderMaterialArgs.textureMapping]].\r\n * @public\r\n */\r\nexport interface MaterialTextureMappingProps {\r\n /** The texture from which the image is obtained. */\r\n texture: RenderTexture;\r\n\r\n /** The parameters describing a normal map to use either in place of or in addition to the texture. */\r\n normalMapParams?: NormalMapParams;\r\n\r\n /** The mode controlling how the image is mapped onto the surface.\r\n * Default: [TextureMapping.Mode.Parametric]($common).\r\n */\r\n mode?: TextureMapping.Mode;\r\n\r\n /** A 2x3 matrix for computing the UV coordinates.\r\n * Default: [TextureMapping.Trans2x3.identity]($common).\r\n */\r\n transform?: TextureMapping.Trans2x3;\r\n\r\n /** The ratio by which the color sampled from the texture image is mixed with the surface's or material's diffuse color.\r\n * A ratio of 1 selects only the texture sample; a ratio of 0 selects only the diffuse color; a ratio of 0.5 mixes them evenly.\r\n * Default: 1.\r\n */\r\n weight?: number;\r\n\r\n /** @internal */\r\n worldMapping?: boolean;\r\n\r\n /** True if want to use constant LOD texture mapping for the surface texture.\r\n * Default: false.\r\n */\r\n useConstantLod?: boolean;\r\n\r\n /** Parameters for constant LOD mapping mode.\r\n * See [[TextureMapping.ConstantLodParamProps]] for defaults.\r\n */\r\n constantLodProps?: TextureMapping.ConstantLodParamProps;\r\n}\r\n\r\n/** Arguments supplied to [[RenderSystem.createRenderMaterial]].\r\n * @public\r\n */\r\nexport interface CreateRenderMaterialArgs {\r\n /** If supplied, the material will be cached on the iModel by its element Id for subsequent reuse.\r\n * @internal\r\n */\r\n source?: RenderMaterialSource;\r\n\r\n /** Specifies the transparency of the material from 0.0 (fully transparent) to 1.0 (fully opaque).\r\n * If defined, this overrides the transparency of any surface to which the material is applied, and is multiplied with the\r\n * transparency of the material's [[textureMapping]] when sampling the texture.\r\n */\r\n alpha?: number;\r\n\r\n /** The [diffuse](https://en.wikipedia.org/wiki/Diffuse_reflection) properties of the material. */\r\n diffuse?: MaterialDiffuseProps;\r\n\r\n /** The [specular](https://en.wikipedia.org/wiki/Specular_highlight) properties of the material. */\r\n specular?: MaterialSpecularProps;\r\n\r\n /** Maps [RenderTexture]($common) images to the surfaces to which the material is applied to customize their appearance. */\r\n textureMapping?: MaterialTextureMappingProps;\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RenderTexture.d.ts","sourceRoot":"","sources":["../../../src/render/RenderTexture.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC5G,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;AAErD;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,sDAAsD;IACtD,MAAM,EAAE,gBAAgB,CAAC;IACzB,0FAA0F;IAC1F,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG,UAAU,CAAC;AAElE;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,GAAG,WAAW,GAAG,WAAW,CAAC;AAE9E;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,MAAM,EAAE,kBAAkB,CAAC;IAC3B;;OAEG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,oFAAoF;IACpF,IAAI,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC;IAC1B,kDAAkD;IAClD,KAAK,EAAE,YAAY,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,oFAAoF;IACpF,IAAI,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC;IAC1B,kDAAkD;IAClD,MAAM,EAAE,WAAW,CAAC;IACpB;;OAEG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,qBAAqB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,UAAU,CAAC;CAClE"}
|