@itwin/core-frontend 3.1.0-dev.8 → 3.2.0-dev.3
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 +163 -35
- package/lib/cjs/AccuSnap.js +2 -2
- package/lib/cjs/AccuSnap.js.map +1 -1
- package/lib/cjs/ApproximateTerrainHeights.d.ts +1 -1
- package/lib/cjs/ApproximateTerrainHeights.d.ts.map +1 -1
- package/lib/cjs/ApproximateTerrainHeights.js +21 -9
- package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
- package/lib/cjs/ApproximateTerrainHeightsProps.d.ts +12 -0
- package/lib/cjs/ApproximateTerrainHeightsProps.d.ts.map +1 -0
- package/lib/cjs/ApproximateTerrainHeightsProps.js +13 -0
- package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -0
- package/lib/cjs/CategorySelectorState.js +1 -1
- package/lib/cjs/CategorySelectorState.js.map +1 -1
- package/lib/cjs/DisplayStyleState.d.ts +4 -3
- package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
- package/lib/cjs/DisplayStyleState.js +32 -8
- package/lib/cjs/DisplayStyleState.js.map +1 -1
- package/lib/cjs/DrawingViewState.d.ts.map +1 -1
- package/lib/cjs/DrawingViewState.js +6 -5
- package/lib/cjs/DrawingViewState.js.map +1 -1
- package/lib/cjs/FrontendLoggerCategory.d.ts +3 -1
- package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
- package/lib/cjs/FrontendLoggerCategory.js +2 -0
- package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
- package/lib/cjs/HitDetail.js.map +1 -1
- package/lib/cjs/IModelApp.d.ts +8 -4
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js +20 -10
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +3 -5
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +4 -10
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/ImageUtil.d.ts.map +1 -1
- package/lib/cjs/ImageUtil.js +8 -14
- package/lib/cjs/ImageUtil.js.map +1 -1
- package/lib/cjs/LocalhostIpcApp.d.ts +2 -0
- package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
- package/lib/cjs/LocalhostIpcApp.js +10 -4
- package/lib/cjs/LocalhostIpcApp.js.map +1 -1
- package/lib/cjs/RealityDataSource.d.ts +60 -14
- package/lib/cjs/RealityDataSource.d.ts.map +1 -1
- package/lib/cjs/RealityDataSource.js +36 -235
- package/lib/cjs/RealityDataSource.js.map +1 -1
- package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts +67 -0
- package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -0
- package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js +166 -0
- package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -0
- package/lib/cjs/RealityDataSourceContextShareImpl.d.ts +83 -0
- package/lib/cjs/RealityDataSourceContextShareImpl.d.ts.map +1 -0
- package/lib/cjs/RealityDataSourceContextShareImpl.js +234 -0
- package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -0
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts +65 -0
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -0
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.js +135 -0
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -0
- package/lib/cjs/SheetViewState.js +4 -0
- package/lib/cjs/SheetViewState.js.map +1 -1
- package/lib/cjs/ViewState.d.ts +8 -0
- package/lib/cjs/ViewState.d.ts.map +1 -1
- package/lib/cjs/ViewState.js +1 -1
- package/lib/cjs/ViewState.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +30 -12
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +43 -1
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/core-frontend.d.ts +6 -4
- package/lib/cjs/core-frontend.d.ts.map +1 -1
- package/lib/cjs/core-frontend.js +6 -4
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/extension/Extension.d.ts +48 -0
- package/lib/cjs/extension/Extension.d.ts.map +1 -0
- package/lib/cjs/extension/Extension.js +18 -0
- package/lib/cjs/extension/Extension.js.map +1 -0
- package/lib/cjs/extension/ExtensionAdmin.d.ts +64 -0
- package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -0
- package/lib/cjs/extension/ExtensionAdmin.js +106 -0
- package/lib/cjs/extension/ExtensionAdmin.js.map +1 -0
- package/lib/cjs/extension/ExtensionHost.d.ts +23 -0
- package/lib/cjs/extension/ExtensionHost.d.ts.map +1 -0
- package/lib/cjs/extension/ExtensionHost.js +26 -0
- package/lib/cjs/extension/ExtensionHost.js.map +1 -0
- package/lib/cjs/extension/ExtensionImpl.d.ts +21 -0
- package/lib/cjs/extension/ExtensionImpl.d.ts.map +1 -0
- package/lib/cjs/extension/ExtensionImpl.js +45 -0
- package/lib/cjs/extension/ExtensionImpl.js.map +1 -0
- package/lib/cjs/extension/ExtensionLoader.d.ts +26 -0
- package/lib/cjs/extension/ExtensionLoader.d.ts.map +1 -0
- package/lib/cjs/extension/ExtensionLoader.js +10 -0
- package/lib/cjs/extension/ExtensionLoader.js.map +1 -0
- package/lib/cjs/extension/ExtensionRuntime.d.ts +5 -0
- package/lib/cjs/extension/ExtensionRuntime.d.ts.map +1 -0
- package/lib/cjs/extension/ExtensionRuntime.js +86 -0
- package/lib/cjs/extension/ExtensionRuntime.js.map +1 -0
- package/lib/cjs/extension/extensions.d.ts +19 -0
- package/lib/cjs/extension/extensions.d.ts.map +1 -0
- package/lib/cjs/extension/extensions.js +36 -0
- package/lib/cjs/extension/extensions.js.map +1 -0
- package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts +2 -2
- package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
- package/lib/cjs/quantity-formatting/BasicUnitsProvider.js +48 -44
- package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +90 -80
- package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.js +85 -45
- package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.d.ts +54 -0
- package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.d.ts.map +1 -0
- package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js +32 -0
- package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -0
- package/lib/cjs/quantity-formatting/UnitsData.d.ts +11 -0
- package/lib/cjs/quantity-formatting/UnitsData.d.ts.map +1 -0
- package/lib/cjs/quantity-formatting/UnitsData.js +59 -0
- package/lib/cjs/quantity-formatting/UnitsData.js.map +1 -0
- package/lib/cjs/render/GraphicBranch.d.ts +2 -0
- package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
- package/lib/cjs/render/ParticleCollectionBuilder.js +16 -9
- package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/cjs/render/RenderPlanarClassifier.d.ts +1 -1
- package/lib/cjs/render/RenderPlanarClassifier.d.ts.map +1 -1
- package/lib/cjs/render/RenderPlanarClassifier.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +12 -7
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js +27 -22
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/RenderTarget.d.ts +4 -4
- package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
- package/lib/cjs/render/RenderTarget.js.map +1 -1
- package/lib/cjs/render/Scene.d.ts.map +1 -1
- package/lib/cjs/render/Scene.js.map +1 -1
- package/lib/cjs/render/primitives/EdgeParams.d.ts.map +1 -1
- package/lib/cjs/render/primitives/EdgeParams.js +3 -1
- package/lib/cjs/render/primitives/EdgeParams.js.map +1 -1
- package/lib/cjs/render/primitives/PolylineParams.d.ts.map +1 -1
- package/lib/cjs/render/primitives/PolylineParams.js +10 -5
- package/lib/cjs/render/primitives/PolylineParams.js.map +1 -1
- package/lib/cjs/render/primitives/VertexKey.d.ts +11 -8
- package/lib/cjs/render/primitives/VertexKey.d.ts.map +1 -1
- package/lib/cjs/render/primitives/VertexKey.js +24 -6
- package/lib/cjs/render/primitives/VertexKey.js.map +1 -1
- package/lib/cjs/render/primitives/VertexTable.d.ts +15 -2
- package/lib/cjs/render/primitives/VertexTable.d.ts.map +1 -1
- package/lib/cjs/render/primitives/VertexTable.js +273 -108
- package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js +22 -10
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts +4 -6
- package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilder.js +16 -13
- package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js +12 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +45 -28
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +107 -146
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
- package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts +17 -2
- package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +1 -1
- package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js +39 -2
- package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js.map +1 -1
- package/lib/cjs/render/webgl/BackgroundMapDrape.js +1 -1
- package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/cjs/render/webgl/BranchState.d.ts +2 -0
- package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BranchState.js +5 -3
- package/lib/cjs/render/webgl/BranchState.js.map +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.d.ts +6 -0
- package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.js +6 -0
- package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.js +1 -1
- package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
- package/lib/cjs/render/webgl/Graphic.d.ts +5 -3
- 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/PlanarClassifier.d.ts +4 -1
- package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PlanarClassifier.js +22 -9
- package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts +2 -2
- package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PlanarTextureProjection.js +5 -3
- package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.d.ts +31 -11
- package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.js +155 -52
- package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RenderCommands.js +4 -0
- package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.d.ts +3 -0
- package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.js +45 -19
- package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.d.ts +8 -7
- package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.js +12 -5
- package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.d.ts +1 -0
- package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.js +1 -0
- package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/cjs/render/webgl/System.d.ts +9 -9
- package/lib/cjs/render/webgl/System.d.ts.map +1 -1
- package/lib/cjs/render/webgl/System.js +5 -5
- package/lib/cjs/render/webgl/System.js.map +1 -1
- package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Target.js.map +1 -1
- package/lib/cjs/render/webgl/VertexLUT.d.ts +2 -1
- package/lib/cjs/render/webgl/VertexLUT.d.ts.map +1 -1
- package/lib/cjs/render/webgl/VertexLUT.js +4 -3
- package/lib/cjs/render/webgl/VertexLUT.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Color.js +1 -1
- package/lib/cjs/render/webgl/glsl/Color.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Decode.d.ts +6 -0
- package/lib/cjs/render/webgl/glsl/Decode.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Decode.js +18 -1
- package/lib/cjs/render/webgl/glsl/Decode.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Edge.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Edge.js +15 -6
- package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/PlanarClassification.js +1 -1
- package/lib/cjs/render/webgl/glsl/PlanarClassification.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/PointString.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/PointString.js +1 -1
- package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Polyline.d.ts +2 -2
- package/lib/cjs/render/webgl/glsl/Polyline.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Polyline.js +24 -9
- package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/RealityMesh.js +102 -27
- package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.js +18 -19
- package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Thematic.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Thematic.js +1 -6
- package/lib/cjs/render/webgl/glsl/Thematic.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Vertex.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Vertex.js +31 -14
- package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/cjs/tile/ClassifierTileTree.d.ts +4 -2
- package/lib/cjs/tile/ClassifierTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/ClassifierTileTree.js +31 -16
- package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
- package/lib/cjs/tile/GltfReader.d.ts +22 -3
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +231 -45
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/OPCFormatInterpreter.d.ts +22 -0
- package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +1 -0
- package/lib/cjs/tile/OPCFormatInterpreter.js +92 -0
- package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -0
- package/lib/cjs/tile/PntsReader.d.ts +1 -1
- package/lib/cjs/tile/PntsReader.d.ts.map +1 -1
- package/lib/cjs/tile/PntsReader.js +170 -36
- package/lib/cjs/tile/PntsReader.js.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.d.ts +18 -2
- package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.js +53 -2
- package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityModelTileTree.d.ts +24 -3
- package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/RealityModelTileTree.js +36 -11
- package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityTile.d.ts +16 -2
- package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTile.js +32 -0
- package/lib/cjs/tile/RealityTile.js.map +1 -1
- package/lib/cjs/tile/RealityTileDrawArgs.d.ts +4 -1
- package/lib/cjs/tile/RealityTileDrawArgs.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileDrawArgs.js +3 -1
- package/lib/cjs/tile/RealityTileDrawArgs.js.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.d.ts +7 -4
- package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.js +19 -5
- package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/tile/RealityTileTree.d.ts +4 -1
- package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileTree.js +11 -3
- package/lib/cjs/tile/RealityTileTree.js.map +1 -1
- package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts +52 -0
- package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -0
- package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +179 -0
- package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -0
- package/lib/cjs/tile/TileDrawArgs.d.ts +2 -0
- package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.js +5 -0
- package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
- package/lib/cjs/tile/TileGeometryCollector.d.ts +80 -0
- package/lib/cjs/tile/TileGeometryCollector.d.ts.map +1 -0
- package/lib/cjs/tile/TileGeometryCollector.js +71 -0
- package/lib/cjs/tile/TileGeometryCollector.js.map +1 -0
- package/lib/cjs/tile/TileTree.d.ts +7 -1
- package/lib/cjs/tile/TileTree.d.ts.map +1 -1
- package/lib/cjs/tile/TileTree.js +7 -0
- package/lib/cjs/tile/TileTree.js.map +1 -1
- package/lib/cjs/tile/TileTreeReference.d.ts +26 -1
- package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeReference.js +40 -0
- package/lib/cjs/tile/TileTreeReference.js.map +1 -1
- package/lib/cjs/tile/internal.d.ts +4 -0
- package/lib/cjs/tile/internal.d.ts.map +1 -1
- package/lib/cjs/tile/internal.js +4 -0
- package/lib/cjs/tile/internal.js.map +1 -1
- package/lib/cjs/tile/map/BingElevation.d.ts +2 -16
- package/lib/cjs/tile/map/BingElevation.d.ts.map +1 -1
- package/lib/cjs/tile/map/BingElevation.js +1 -63
- package/lib/cjs/tile/map/BingElevation.js.map +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.js +2 -2
- package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +5 -3
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +45 -12
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +2 -2
- package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts +2 -2
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +2 -2
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +4 -3
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +2 -2
- package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +2 -2
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +2 -2
- package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.d.ts +2 -3
- package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.js +4 -3
- package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapFeatureInfo.d.ts +26 -0
- package/lib/cjs/tile/map/MapFeatureInfo.d.ts.map +1 -0
- package/lib/cjs/tile/map/MapFeatureInfo.js +19 -0
- package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -0
- package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +4 -4
- package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts +3 -3
- package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +5 -4
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js +5 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.d.ts +2 -2
- package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.js +6 -4
- package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerTileTreeReference.d.ts +10 -2
- package/lib/cjs/tile/map/MapLayerTileTreeReference.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerTileTreeReference.js +26 -3
- package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
- package/lib/cjs/tile/map/MapTile.d.ts +12 -10
- package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTile.js +60 -39
- package/lib/cjs/tile/map/MapTile.js.map +1 -1
- package/lib/cjs/tile/map/MapTileLoader.d.ts +2 -1
- package/lib/cjs/tile/map/MapTileLoader.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileLoader.js +4 -1
- package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts +18 -8
- package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +148 -61
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/cjs/tools/ToolAdmin.d.ts +2 -3
- package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/cjs/tools/ToolAdmin.js +7 -2
- package/lib/cjs/tools/ToolAdmin.js.map +1 -1
- package/lib/cjs/tools/ViewTool.d.ts +4 -4
- package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
- package/lib/cjs/tools/ViewTool.js +1 -1
- package/lib/cjs/tools/ViewTool.js.map +1 -1
- package/lib/esm/AccuSnap.js +2 -2
- package/lib/esm/AccuSnap.js.map +1 -1
- package/lib/esm/ApproximateTerrainHeights.d.ts +1 -1
- package/lib/esm/ApproximateTerrainHeights.d.ts.map +1 -1
- package/lib/esm/ApproximateTerrainHeights.js +2 -9
- package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
- package/lib/esm/ApproximateTerrainHeightsProps.d.ts +12 -0
- package/lib/esm/ApproximateTerrainHeightsProps.d.ts.map +1 -0
- package/lib/esm/ApproximateTerrainHeightsProps.js +10 -0
- package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -0
- package/lib/esm/CategorySelectorState.js +1 -1
- package/lib/esm/CategorySelectorState.js.map +1 -1
- package/lib/esm/DisplayStyleState.d.ts +4 -3
- package/lib/esm/DisplayStyleState.d.ts.map +1 -1
- package/lib/esm/DisplayStyleState.js +34 -10
- package/lib/esm/DisplayStyleState.js.map +1 -1
- package/lib/esm/DrawingViewState.d.ts.map +1 -1
- package/lib/esm/DrawingViewState.js +6 -5
- package/lib/esm/DrawingViewState.js.map +1 -1
- package/lib/esm/FrontendLoggerCategory.d.ts +3 -1
- package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
- package/lib/esm/FrontendLoggerCategory.js +2 -0
- package/lib/esm/FrontendLoggerCategory.js.map +1 -1
- package/lib/esm/HitDetail.js.map +1 -1
- package/lib/esm/IModelApp.d.ts +8 -4
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js +20 -10
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +3 -5
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +5 -11
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/ImageUtil.d.ts.map +1 -1
- package/lib/esm/ImageUtil.js +8 -14
- package/lib/esm/ImageUtil.js.map +1 -1
- package/lib/esm/LocalhostIpcApp.d.ts +2 -0
- package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
- package/lib/esm/LocalhostIpcApp.js +10 -4
- package/lib/esm/LocalhostIpcApp.js.map +1 -1
- package/lib/esm/RealityDataSource.d.ts +60 -14
- package/lib/esm/RealityDataSource.d.ts.map +1 -1
- package/lib/esm/RealityDataSource.js +37 -237
- package/lib/esm/RealityDataSource.js.map +1 -1
- package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts +67 -0
- package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -0
- package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js +162 -0
- package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -0
- package/lib/esm/RealityDataSourceContextShareImpl.d.ts +83 -0
- package/lib/esm/RealityDataSourceContextShareImpl.d.ts.map +1 -0
- package/lib/esm/RealityDataSourceContextShareImpl.js +230 -0
- package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -0
- package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts +65 -0
- package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -0
- package/lib/esm/RealityDataSourceTilesetUrlImpl.js +131 -0
- package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -0
- package/lib/esm/SheetViewState.js +4 -0
- package/lib/esm/SheetViewState.js.map +1 -1
- package/lib/esm/ViewState.d.ts +8 -0
- package/lib/esm/ViewState.d.ts.map +1 -1
- package/lib/esm/ViewState.js +1 -1
- package/lib/esm/ViewState.js.map +1 -1
- package/lib/esm/Viewport.d.ts +30 -12
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +43 -1
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/core-frontend.d.ts +6 -4
- package/lib/esm/core-frontend.d.ts.map +1 -1
- package/lib/esm/core-frontend.js +6 -4
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/extension/Extension.d.ts +48 -0
- package/lib/esm/extension/Extension.d.ts.map +1 -0
- package/lib/esm/extension/Extension.js +15 -0
- package/lib/esm/extension/Extension.js.map +1 -0
- package/lib/esm/extension/ExtensionAdmin.d.ts +64 -0
- package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -0
- package/lib/esm/extension/ExtensionAdmin.js +102 -0
- package/lib/esm/extension/ExtensionAdmin.js.map +1 -0
- package/lib/esm/extension/ExtensionHost.d.ts +23 -0
- package/lib/esm/extension/ExtensionHost.d.ts.map +1 -0
- package/lib/esm/extension/ExtensionHost.js +22 -0
- package/lib/esm/extension/ExtensionHost.js.map +1 -0
- package/lib/esm/extension/ExtensionImpl.d.ts +21 -0
- package/lib/esm/extension/ExtensionImpl.d.ts.map +1 -0
- package/lib/esm/extension/ExtensionImpl.js +40 -0
- package/lib/esm/extension/ExtensionImpl.js.map +1 -0
- package/lib/esm/extension/ExtensionLoader.d.ts +26 -0
- package/lib/esm/extension/ExtensionLoader.d.ts.map +1 -0
- package/lib/esm/extension/ExtensionLoader.js +9 -0
- package/lib/esm/extension/ExtensionLoader.js.map +1 -0
- package/lib/esm/extension/ExtensionRuntime.d.ts +5 -0
- package/lib/esm/extension/ExtensionRuntime.d.ts.map +1 -0
- package/lib/esm/extension/ExtensionRuntime.js +84 -0
- package/lib/esm/extension/ExtensionRuntime.js.map +1 -0
- package/lib/esm/extension/extensions.d.ts +19 -0
- package/lib/esm/extension/extensions.d.ts.map +1 -0
- package/lib/esm/extension/extensions.js +24 -0
- package/lib/esm/extension/extensions.js.map +1 -0
- package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts +2 -2
- package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
- package/lib/esm/quantity-formatting/BasicUnitsProvider.js +48 -44
- package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
- package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +90 -80
- package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
- package/lib/esm/quantity-formatting/QuantityFormatter.js +85 -42
- package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.d.ts +54 -0
- package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.d.ts.map +1 -0
- package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js +26 -0
- package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -0
- package/lib/esm/quantity-formatting/UnitsData.d.ts +11 -0
- package/lib/esm/quantity-formatting/UnitsData.d.ts.map +1 -0
- package/lib/esm/quantity-formatting/UnitsData.js +56 -0
- package/lib/esm/quantity-formatting/UnitsData.js.map +1 -0
- package/lib/esm/render/GraphicBranch.d.ts +2 -0
- package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
- package/lib/esm/render/ParticleCollectionBuilder.js +17 -10
- package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/esm/render/RenderPlanarClassifier.d.ts +1 -1
- package/lib/esm/render/RenderPlanarClassifier.d.ts.map +1 -1
- package/lib/esm/render/RenderPlanarClassifier.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +12 -7
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js +25 -20
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/RenderTarget.d.ts +4 -4
- package/lib/esm/render/RenderTarget.d.ts.map +1 -1
- package/lib/esm/render/RenderTarget.js.map +1 -1
- package/lib/esm/render/Scene.d.ts.map +1 -1
- package/lib/esm/render/Scene.js.map +1 -1
- package/lib/esm/render/primitives/EdgeParams.d.ts.map +1 -1
- package/lib/esm/render/primitives/EdgeParams.js +3 -1
- package/lib/esm/render/primitives/EdgeParams.js.map +1 -1
- package/lib/esm/render/primitives/PolylineParams.d.ts.map +1 -1
- package/lib/esm/render/primitives/PolylineParams.js +11 -6
- package/lib/esm/render/primitives/PolylineParams.js.map +1 -1
- package/lib/esm/render/primitives/VertexKey.d.ts +11 -8
- package/lib/esm/render/primitives/VertexKey.d.ts.map +1 -1
- package/lib/esm/render/primitives/VertexKey.js +24 -6
- package/lib/esm/render/primitives/VertexKey.js.map +1 -1
- package/lib/esm/render/primitives/VertexTable.d.ts +15 -2
- package/lib/esm/render/primitives/VertexTable.d.ts.map +1 -1
- package/lib/esm/render/primitives/VertexTable.js +274 -109
- package/lib/esm/render/primitives/VertexTable.js.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.js +23 -11
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts +4 -6
- package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilder.js +17 -14
- package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.js +12 -1
- package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +45 -28
- package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.js +108 -144
- package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
- package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts +17 -2
- package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +1 -1
- package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js +39 -2
- package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js.map +1 -1
- package/lib/esm/render/webgl/BackgroundMapDrape.js +1 -1
- package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/esm/render/webgl/BranchState.d.ts +2 -0
- package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/esm/render/webgl/BranchState.js +5 -3
- package/lib/esm/render/webgl/BranchState.js.map +1 -1
- package/lib/esm/render/webgl/CachedGeometry.d.ts +6 -0
- package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/CachedGeometry.js +6 -0
- package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.js +1 -1
- package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
- package/lib/esm/render/webgl/Graphic.d.ts +5 -3
- 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/PlanarClassifier.d.ts +4 -1
- package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/esm/render/webgl/PlanarClassifier.js +22 -9
- package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/esm/render/webgl/PlanarTextureProjection.d.ts +2 -2
- package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
- package/lib/esm/render/webgl/PlanarTextureProjection.js +5 -3
- package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.d.ts +31 -11
- package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.js +155 -52
- package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
- package/lib/esm/render/webgl/RenderCommands.js +4 -0
- package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.d.ts +3 -0
- package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.js +45 -19
- package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.d.ts +8 -7
- package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.js +12 -5
- package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/esm/render/webgl/ShaderProgram.d.ts +1 -0
- package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/esm/render/webgl/ShaderProgram.js +1 -0
- package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/esm/render/webgl/System.d.ts +9 -9
- package/lib/esm/render/webgl/System.d.ts.map +1 -1
- package/lib/esm/render/webgl/System.js +6 -6
- package/lib/esm/render/webgl/System.js.map +1 -1
- package/lib/esm/render/webgl/Target.d.ts.map +1 -1
- package/lib/esm/render/webgl/Target.js.map +1 -1
- package/lib/esm/render/webgl/VertexLUT.d.ts +2 -1
- package/lib/esm/render/webgl/VertexLUT.d.ts.map +1 -1
- package/lib/esm/render/webgl/VertexLUT.js +4 -3
- package/lib/esm/render/webgl/VertexLUT.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Color.js +1 -1
- package/lib/esm/render/webgl/glsl/Color.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Decode.d.ts +6 -0
- package/lib/esm/render/webgl/glsl/Decode.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Decode.js +17 -0
- package/lib/esm/render/webgl/glsl/Decode.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Edge.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Edge.js +15 -6
- package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
- package/lib/esm/render/webgl/glsl/PlanarClassification.js +1 -1
- package/lib/esm/render/webgl/glsl/PlanarClassification.js.map +1 -1
- package/lib/esm/render/webgl/glsl/PointString.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/PointString.js +1 -1
- package/lib/esm/render/webgl/glsl/PointString.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Polyline.d.ts +2 -2
- package/lib/esm/render/webgl/glsl/Polyline.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Polyline.js +24 -9
- package/lib/esm/render/webgl/glsl/Polyline.js.map +1 -1
- package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/RealityMesh.js +103 -28
- package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Surface.js +18 -19
- package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Thematic.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Thematic.js +1 -6
- package/lib/esm/render/webgl/glsl/Thematic.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Vertex.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Vertex.js +32 -15
- package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/esm/tile/ClassifierTileTree.d.ts +4 -2
- package/lib/esm/tile/ClassifierTileTree.d.ts.map +1 -1
- package/lib/esm/tile/ClassifierTileTree.js +32 -17
- package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
- package/lib/esm/tile/GltfReader.d.ts +22 -3
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +215 -48
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/OPCFormatInterpreter.d.ts +22 -0
- package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +1 -0
- package/lib/esm/tile/OPCFormatInterpreter.js +88 -0
- package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -0
- package/lib/esm/tile/PntsReader.d.ts +1 -1
- package/lib/esm/tile/PntsReader.d.ts.map +1 -1
- package/lib/esm/tile/PntsReader.js +154 -39
- package/lib/esm/tile/PntsReader.js.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.d.ts +18 -2
- package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.js +51 -2
- package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
- package/lib/esm/tile/RealityModelTileTree.d.ts +24 -3
- package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/esm/tile/RealityModelTileTree.js +36 -12
- package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/tile/RealityTile.d.ts +16 -2
- package/lib/esm/tile/RealityTile.d.ts.map +1 -1
- package/lib/esm/tile/RealityTile.js +32 -0
- package/lib/esm/tile/RealityTile.js.map +1 -1
- package/lib/esm/tile/RealityTileDrawArgs.d.ts +4 -1
- package/lib/esm/tile/RealityTileDrawArgs.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileDrawArgs.js +3 -1
- package/lib/esm/tile/RealityTileDrawArgs.js.map +1 -1
- package/lib/esm/tile/RealityTileLoader.d.ts +7 -4
- package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileLoader.js +19 -5
- package/lib/esm/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/tile/RealityTileTree.d.ts +4 -1
- package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileTree.js +13 -5
- package/lib/esm/tile/RealityTileTree.js.map +1 -1
- package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts +52 -0
- package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -0
- package/lib/esm/tile/ThreeDTileFormatInterpreter.js +175 -0
- package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -0
- package/lib/esm/tile/TileDrawArgs.d.ts +2 -0
- package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/esm/tile/TileDrawArgs.js +5 -0
- package/lib/esm/tile/TileDrawArgs.js.map +1 -1
- package/lib/esm/tile/TileGeometryCollector.d.ts +80 -0
- package/lib/esm/tile/TileGeometryCollector.d.ts.map +1 -0
- package/lib/esm/tile/TileGeometryCollector.js +67 -0
- package/lib/esm/tile/TileGeometryCollector.js.map +1 -0
- package/lib/esm/tile/TileTree.d.ts +7 -1
- package/lib/esm/tile/TileTree.d.ts.map +1 -1
- package/lib/esm/tile/TileTree.js +7 -0
- package/lib/esm/tile/TileTree.js.map +1 -1
- package/lib/esm/tile/TileTreeReference.d.ts +26 -1
- package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeReference.js +42 -2
- package/lib/esm/tile/TileTreeReference.js.map +1 -1
- package/lib/esm/tile/internal.d.ts +4 -0
- package/lib/esm/tile/internal.d.ts.map +1 -1
- package/lib/esm/tile/internal.js +4 -0
- package/lib/esm/tile/internal.js.map +1 -1
- package/lib/esm/tile/map/BingElevation.d.ts +2 -16
- package/lib/esm/tile/map/BingElevation.d.ts.map +1 -1
- package/lib/esm/tile/map/BingElevation.js +1 -63
- package/lib/esm/tile/map/BingElevation.js.map +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.js +2 -2
- package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +5 -3
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +46 -13
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +2 -2
- package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts +2 -2
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +2 -2
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +4 -3
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +2 -2
- package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +2 -2
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +2 -2
- package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.d.ts +2 -3
- package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.js +4 -3
- package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapFeatureInfo.d.ts +26 -0
- package/lib/esm/tile/map/MapFeatureInfo.d.ts.map +1 -0
- package/lib/esm/tile/map/MapFeatureInfo.js +15 -0
- package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -0
- package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +4 -4
- package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.d.ts +3 -3
- package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +5 -4
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js +5 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.d.ts +2 -2
- package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.js +6 -4
- package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
- package/lib/esm/tile/map/MapLayerTileTreeReference.d.ts +10 -2
- package/lib/esm/tile/map/MapLayerTileTreeReference.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerTileTreeReference.js +25 -3
- package/lib/esm/tile/map/MapLayerTileTreeReference.js.map +1 -1
- package/lib/esm/tile/map/MapTile.d.ts +12 -10
- package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTile.js +60 -39
- package/lib/esm/tile/map/MapTile.js.map +1 -1
- package/lib/esm/tile/map/MapTileLoader.d.ts +2 -1
- package/lib/esm/tile/map/MapTileLoader.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileLoader.js +4 -1
- package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts +18 -8
- package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js +150 -63
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js +2 -2
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/esm/tools/ToolAdmin.d.ts +2 -3
- package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/esm/tools/ToolAdmin.js +8 -3
- package/lib/esm/tools/ToolAdmin.js.map +1 -1
- package/lib/esm/tools/ViewTool.d.ts +4 -4
- package/lib/esm/tools/ViewTool.d.ts.map +1 -1
- package/lib/esm/tools/ViewTool.js +1 -1
- package/lib/esm/tools/ViewTool.js.map +1 -1
- package/package.json +22 -20
- package/lib/cjs/tile/DracoDecoder.d.ts +0 -20
- package/lib/cjs/tile/DracoDecoder.d.ts.map +0 -1
- package/lib/cjs/tile/DracoDecoder.js +0 -169
- package/lib/cjs/tile/DracoDecoder.js.map +0 -1
- package/lib/esm/tile/DracoDecoder.d.ts +0 -20
- package/lib/esm/tile/DracoDecoder.d.ts.map +0 -1
- package/lib/esm/tile/DracoDecoder.js +0 -165
- package/lib/esm/tile/DracoDecoder.js.map +0 -1
- package/lib/public/assets/approximateTerrainHeights.json +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PolylineParams.js","sourceRoot":"","sources":["../../../../src/render/primitives/PolylineParams.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { Point3d, Vector3d } from \"@itwin/core-geometry\";\r\nimport { LinePixels, PolylineData, PolylineTypeFlags, QPoint3dList } from \"@itwin/core-common\";\r\nimport { MeshArgs, PolylineArgs } from \"./mesh/MeshPrimitives\";\r\nimport { VertexIndices, VertexTable } from \"./VertexTable\";\r\n\r\n/** Parameter associated with each vertex index of a tesselated polyline. */\r\nconst enum PolylineParam { // eslint-disable-line no-restricted-syntax\r\n kNone = 0,\r\n kSquare = 1 * 3,\r\n kMiter = 2 * 3,\r\n kMiterInsideOnly = 3 * 3,\r\n kJointBase = 4 * 3,\r\n kNegatePerp = 8 * 3,\r\n kNegateAlong = 16 * 3,\r\n kNoneAdjustWeight = 32 * 3,\r\n}\r\n\r\n/**\r\n * Represents a tesselated polyline.\r\n * Given a polyline as a line string, each segment of the line string is triangulated into a quad.\r\n * Based on the angle between two segments, additional joint triangles may be inserted in between to enable smoothly-rounded corners.\r\n * @internal\r\n */\r\nexport interface TesselatedPolyline {\r\n /** 24-bit index of each vertex. */\r\n readonly indices: VertexIndices;\r\n /** 24-bit index of the previous vertex in the polyline. */\r\n readonly prevIndices: VertexIndices;\r\n /** 24-bit index of the next vertex in the polyline, plus 8-bit parameter describing the semantics of this vertex. */\r\n readonly nextIndicesAndParams: Uint8Array;\r\n}\r\n\r\nexport namespace TesselatedPolyline {\r\n export function fromMesh(args: MeshArgs): TesselatedPolyline | undefined {\r\n const tesselator = PolylineTesselator.fromMesh(args);\r\n return tesselator?.tesselate();\r\n }\r\n}\r\n\r\nclass PolylineVertex {\r\n public isSegmentStart: boolean = false;\r\n public isPolylineStartOrEnd: boolean = false;\r\n public vertexIndex: number = 0;\r\n public prevIndex: number = 0;\r\n public nextIndex: number = 0;\r\n\r\n public constructor() { }\r\n\r\n public init(isSegmentStart: boolean, isPolylineStartOrEnd: boolean, vertexIndex: number, prevIndex: number, nextIndex: number) {\r\n this.isSegmentStart = isSegmentStart;\r\n this.isPolylineStartOrEnd = isPolylineStartOrEnd;\r\n this.vertexIndex = vertexIndex;\r\n this.prevIndex = prevIndex;\r\n this.nextIndex = nextIndex;\r\n }\r\n\r\n public computeParam(negatePerp: boolean, adjacentToJoint: boolean = false, joint: boolean = false, noDisplacement: boolean = false): number {\r\n if (joint)\r\n return PolylineParam.kJointBase;\r\n\r\n let param: PolylineParam;\r\n if (noDisplacement)\r\n param = PolylineParam.kNoneAdjustWeight; // prevent getting tossed before width adjustment\r\n else if (adjacentToJoint)\r\n param = PolylineParam.kMiterInsideOnly;\r\n else\r\n param = this.isPolylineStartOrEnd ? PolylineParam.kSquare : PolylineParam.kMiter;\r\n\r\n let adjust = 0;\r\n if (negatePerp)\r\n adjust = PolylineParam.kNegatePerp;\r\n if (!this.isSegmentStart)\r\n adjust += PolylineParam.kNegateAlong;\r\n\r\n return param + adjust;\r\n }\r\n}\r\n\r\nclass PolylineTesselator {\r\n private _polylines: PolylineData[];\r\n private _points: QPoint3dList;\r\n private _doJoints: boolean;\r\n private _numIndices = 0;\r\n private _vertIndex: number[] = [];\r\n private _prevIndex: number[] = [];\r\n private _nextIndex: number[] = [];\r\n private _nextParam: number[] = [];\r\n private _position: Point3d[] = [];\r\n\r\n public constructor(polylines: PolylineData[], points: QPoint3dList, doJointTriangles: boolean) {\r\n this._polylines = polylines;\r\n this._points = points;\r\n this._doJoints = doJointTriangles;\r\n }\r\n\r\n public static fromPolyline(args: PolylineArgs): PolylineTesselator {\r\n return new PolylineTesselator(args.polylines, args.points, wantJointTriangles(args.width, args.flags.is2d));\r\n }\r\n\r\n public static fromMesh(args: MeshArgs): PolylineTesselator | undefined {\r\n if (undefined !== args.edges.polylines.lines && undefined !== args.points)\r\n return new PolylineTesselator(args.edges.polylines.lines, args.points, wantJointTriangles(args.edges.width, args.is2d));\r\n\r\n return undefined;\r\n }\r\n\r\n public tesselate(): TesselatedPolyline {\r\n for (const p of this._points.list)\r\n this._position.push(p.unquantize(this._points.params));\r\n\r\n this._tesselate();\r\n\r\n const vertIndex = VertexIndices.fromArray(this._vertIndex);\r\n const prevIndex = VertexIndices.fromArray(this._prevIndex);\r\n\r\n const nextIndexAndParam = new Uint8Array(this._numIndices * 4);\r\n for (let i = 0; i < this._numIndices; i++) {\r\n const index = this._nextIndex[i];\r\n const j = i * 4;\r\n VertexIndices.encodeIndex(index, nextIndexAndParam, j);\r\n nextIndexAndParam[j + 3] = this._nextParam[i] & 0x000000ff;\r\n }\r\n\r\n return {\r\n indices: vertIndex,\r\n prevIndices: prevIndex,\r\n nextIndicesAndParams: nextIndexAndParam,\r\n };\r\n }\r\n\r\n private _tesselate() {\r\n const v0 = new PolylineVertex(), v1 = new PolylineVertex();\r\n const maxJointDot = -0.7;\r\n\r\n for (const line of this._polylines) {\r\n if (line.numIndices < 2)\r\n continue;\r\n\r\n const last = line.numIndices - 1;\r\n const isClosed: boolean = line.vertIndices[0] === line.vertIndices[last];\r\n\r\n for (let i = 0; i < last; ++i) {\r\n const idx0 = line.vertIndices[i];\r\n const idx1 = line.vertIndices[i + 1];\r\n const isStart: boolean = (0 === i);\r\n const isEnd: boolean = (last - 1 === i);\r\n const prevIdx0 = isStart ? (isClosed ? line.vertIndices[last - 1] : idx0) : line.vertIndices[i - 1];\r\n const nextIdx1 = isEnd ? (isClosed ? line.vertIndices[1] : idx1) : line.vertIndices[i + 2];\r\n\r\n v0.init(true, isStart && !isClosed, idx0, prevIdx0, idx1);\r\n v1.init(false, isEnd && !isClosed, idx1, nextIdx1, idx0);\r\n\r\n const jointAt0: boolean = this._doJoints && (isClosed || !isStart) && this._dotProduct(v0) > maxJointDot;\r\n const jointAt1: boolean = this._doJoints && (isClosed || !isEnd) && this._dotProduct(v1) > maxJointDot;\r\n\r\n if (jointAt0 || jointAt1) {\r\n this._addVertex(v0, v0.computeParam(true, jointAt0, false, false));\r\n this._addVertex(v1, v1.computeParam(false, jointAt1, false, false));\r\n this._addVertex(v0, v0.computeParam(false, jointAt0, false, true));\r\n this._addVertex(v0, v0.computeParam(false, jointAt0, false, true));\r\n this._addVertex(v1, v1.computeParam(false, jointAt1, false, false));\r\n this._addVertex(v1, v1.computeParam(false, jointAt1, false, true));\r\n this._addVertex(v0, v0.computeParam(false, jointAt0, false, true));\r\n this._addVertex(v1, v1.computeParam(false, jointAt1, false, true));\r\n this._addVertex(v0, v0.computeParam(false, jointAt0, false, false));\r\n this._addVertex(v0, v0.computeParam(false, jointAt0, false, false));\r\n this._addVertex(v1, v1.computeParam(false, jointAt1, false, true));\r\n this._addVertex(v1, v1.computeParam(true, jointAt1, false, false));\r\n\r\n if (jointAt0)\r\n this.addJointTriangles(v0, v0.computeParam(false, true, false, true), v0);\r\n\r\n if (jointAt1)\r\n this.addJointTriangles(v1, v1.computeParam(false, true, false, true), v1);\r\n } else {\r\n this._addVertex(v0, v0.computeParam(true));\r\n this._addVertex(v1, v1.computeParam(false));\r\n this._addVertex(v0, v0.computeParam(false));\r\n this._addVertex(v0, v0.computeParam(false));\r\n this._addVertex(v1, v1.computeParam(false));\r\n this._addVertex(v1, v1.computeParam(true));\r\n }\r\n }\r\n }\r\n }\r\n\r\n private addJointTriangles(v0: PolylineVertex, p0: number, v1: PolylineVertex): void {\r\n const param = v1.computeParam(false, false, true);\r\n for (let i = 0; i < 3; i++) {\r\n this._addVertex(v0, p0);\r\n this._addVertex(v1, param + i + 1);\r\n this._addVertex(v1, param + i);\r\n }\r\n }\r\n\r\n private _dotProduct(v: PolylineVertex): number {\r\n const pos: Point3d = this._position[v.vertexIndex];\r\n const prevDir: Vector3d = Vector3d.createStartEnd(this._position[v.prevIndex], pos);\r\n const nextDir: Vector3d = Vector3d.createStartEnd(this._position[v.nextIndex], pos);\r\n return prevDir.dotProduct(nextDir);\r\n }\r\n\r\n private _addVertex(vertex: PolylineVertex, param: number): void {\r\n this._vertIndex[this._numIndices] = vertex.vertexIndex;\r\n this._prevIndex[this._numIndices] = vertex.prevIndex;\r\n this._nextIndex[this._numIndices] = vertex.nextIndex;\r\n this._nextParam[this._numIndices] = param;\r\n this._numIndices++;\r\n }\r\n}\r\n\r\n/** Strictly for tests. @internal */\r\nexport function tesselatePolyline(polylines: PolylineData[], points: QPoint3dList, doJointTriangles: boolean): TesselatedPolyline {\r\n const tesselator = new PolylineTesselator(polylines, points, doJointTriangles);\r\n return tesselator.tesselate();\r\n}\r\n\r\n/**\r\n * Describes a set of tesselated polylines.\r\n * Each segment of each polyline is triangulated into a quad. Additional triangles may be inserted\r\n * between segments to enable rounded corners.\r\n */\r\nexport class PolylineParams {\r\n public readonly vertices: VertexTable;\r\n public readonly polyline: TesselatedPolyline;\r\n public readonly isPlanar: boolean;\r\n public readonly type: PolylineTypeFlags;\r\n public readonly weight: number;\r\n public readonly linePixels: LinePixels;\r\n\r\n /** Directly construct a PolylineParams. The PolylineParams takes ownership of all input data. */\r\n public constructor(vertices: VertexTable, polyline: TesselatedPolyline, weight: number, linePixels: LinePixels, isPlanar: boolean, type: PolylineTypeFlags = PolylineTypeFlags.Normal) {\r\n this.vertices = vertices;\r\n this.polyline = polyline;\r\n this.isPlanar = isPlanar;\r\n this.weight = weight;\r\n this.linePixels = linePixels;\r\n this.type = type;\r\n }\r\n\r\n /** Construct from an PolylineArgs. */\r\n public static create(args: PolylineArgs): PolylineParams | undefined {\r\n assert(!args.flags.isDisjoint);\r\n const vertices = VertexTable.createForPolylines(args);\r\n if (undefined === vertices)\r\n return undefined;\r\n\r\n const tesselator = PolylineTesselator.fromPolyline(args);\r\n if (undefined === tesselator)\r\n return undefined;\r\n\r\n return new PolylineParams(vertices, tesselator.tesselate(), args.width, args.linePixels, args.flags.isPlanar, args.flags.type);\r\n }\r\n}\r\n\r\nexport function wantJointTriangles(weight: number, is2d: boolean): boolean {\r\n // Joints are incredibly expensive. In 3d, only generate them if the line is sufficiently wide for them to be noticeable.\r\n const jointWidthThreshold = 3;\r\n return is2d || weight >= jointWidthThreshold;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"PolylineParams.js","sourceRoot":"","sources":["../../../../src/render/primitives/PolylineParams.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { Point3d, Vector3d } from \"@itwin/core-geometry\";\r\nimport { LinePixels, PolylineData, PolylineTypeFlags, QPoint3dList } from \"@itwin/core-common\";\r\nimport { MeshArgs, PolylineArgs } from \"./mesh/MeshPrimitives\";\r\nimport { VertexIndices, VertexTable } from \"./VertexTable\";\r\n\r\n/** Parameter associated with each vertex index of a tesselated polyline. */\r\nconst enum PolylineParam { // eslint-disable-line no-restricted-syntax\r\n kNone = 0,\r\n kSquare = 1 * 3,\r\n kMiter = 2 * 3,\r\n kMiterInsideOnly = 3 * 3,\r\n kJointBase = 4 * 3,\r\n kNegatePerp = 8 * 3,\r\n kNegateAlong = 16 * 3,\r\n kNoneAdjustWeight = 32 * 3,\r\n}\r\n\r\n/**\r\n * Represents a tesselated polyline.\r\n * Given a polyline as a line string, each segment of the line string is triangulated into a quad.\r\n * Based on the angle between two segments, additional joint triangles may be inserted in between to enable smoothly-rounded corners.\r\n * @internal\r\n */\r\nexport interface TesselatedPolyline {\r\n /** 24-bit index of each vertex. */\r\n readonly indices: VertexIndices;\r\n /** 24-bit index of the previous vertex in the polyline. */\r\n readonly prevIndices: VertexIndices;\r\n /** 24-bit index of the next vertex in the polyline, plus 8-bit parameter describing the semantics of this vertex. */\r\n readonly nextIndicesAndParams: Uint8Array;\r\n}\r\n\r\nexport namespace TesselatedPolyline {\r\n export function fromMesh(args: MeshArgs): TesselatedPolyline | undefined {\r\n const tesselator = PolylineTesselator.fromMesh(args);\r\n return tesselator?.tesselate();\r\n }\r\n}\r\n\r\nclass PolylineVertex {\r\n public isSegmentStart: boolean = false;\r\n public isPolylineStartOrEnd: boolean = false;\r\n public vertexIndex: number = 0;\r\n public prevIndex: number = 0;\r\n public nextIndex: number = 0;\r\n\r\n public constructor() { }\r\n\r\n public init(isSegmentStart: boolean, isPolylineStartOrEnd: boolean, vertexIndex: number, prevIndex: number, nextIndex: number) {\r\n this.isSegmentStart = isSegmentStart;\r\n this.isPolylineStartOrEnd = isPolylineStartOrEnd;\r\n this.vertexIndex = vertexIndex;\r\n this.prevIndex = prevIndex;\r\n this.nextIndex = nextIndex;\r\n }\r\n\r\n public computeParam(negatePerp: boolean, adjacentToJoint: boolean = false, joint: boolean = false, noDisplacement: boolean = false): number {\r\n if (joint)\r\n return PolylineParam.kJointBase;\r\n\r\n let param: PolylineParam;\r\n if (noDisplacement)\r\n param = PolylineParam.kNoneAdjustWeight; // prevent getting tossed before width adjustment\r\n else if (adjacentToJoint)\r\n param = PolylineParam.kMiterInsideOnly;\r\n else\r\n param = this.isPolylineStartOrEnd ? PolylineParam.kSquare : PolylineParam.kMiter;\r\n\r\n let adjust = 0;\r\n if (negatePerp)\r\n adjust = PolylineParam.kNegatePerp;\r\n if (!this.isSegmentStart)\r\n adjust += PolylineParam.kNegateAlong;\r\n\r\n return param + adjust;\r\n }\r\n}\r\n\r\nclass PolylineTesselator {\r\n private _polylines: PolylineData[];\r\n private _doJoints: boolean;\r\n private _numIndices = 0;\r\n private _vertIndex: number[] = [];\r\n private _prevIndex: number[] = [];\r\n private _nextIndex: number[] = [];\r\n private _nextParam: number[] = [];\r\n private _position: Point3d[] = [];\r\n\r\n public constructor(polylines: PolylineData[], points: QPoint3dList | Point3d[], doJointTriangles: boolean) {\r\n this._polylines = polylines;\r\n if (points instanceof QPoint3dList) {\r\n for (const p of points.list)\r\n this._position.push(p.unquantize(points.params));\r\n } else {\r\n this._position = points;\r\n }\r\n\r\n this._doJoints = doJointTriangles;\r\n }\r\n\r\n public static fromPolyline(args: PolylineArgs): PolylineTesselator {\r\n return new PolylineTesselator(args.polylines, args.points, wantJointTriangles(args.width, args.flags.is2d));\r\n }\r\n\r\n public static fromMesh(args: MeshArgs): PolylineTesselator | undefined {\r\n if (undefined !== args.edges?.polylines.lines && undefined !== args.points)\r\n return new PolylineTesselator(args.edges.polylines.lines, args.points, wantJointTriangles(args.edges.width, true === args.is2d));\r\n\r\n return undefined;\r\n }\r\n\r\n public tesselate(): TesselatedPolyline {\r\n this._tesselate();\r\n\r\n const vertIndex = VertexIndices.fromArray(this._vertIndex);\r\n const prevIndex = VertexIndices.fromArray(this._prevIndex);\r\n\r\n const nextIndexAndParam = new Uint8Array(this._numIndices * 4);\r\n for (let i = 0; i < this._numIndices; i++) {\r\n const index = this._nextIndex[i];\r\n const j = i * 4;\r\n VertexIndices.encodeIndex(index, nextIndexAndParam, j);\r\n nextIndexAndParam[j + 3] = this._nextParam[i] & 0x000000ff;\r\n }\r\n\r\n return {\r\n indices: vertIndex,\r\n prevIndices: prevIndex,\r\n nextIndicesAndParams: nextIndexAndParam,\r\n };\r\n }\r\n\r\n private _tesselate() {\r\n const v0 = new PolylineVertex(), v1 = new PolylineVertex();\r\n const maxJointDot = -0.7;\r\n\r\n for (const line of this._polylines) {\r\n if (line.numIndices < 2)\r\n continue;\r\n\r\n const last = line.numIndices - 1;\r\n const isClosed: boolean = line.vertIndices[0] === line.vertIndices[last];\r\n\r\n for (let i = 0; i < last; ++i) {\r\n const idx0 = line.vertIndices[i];\r\n const idx1 = line.vertIndices[i + 1];\r\n const isStart: boolean = (0 === i);\r\n const isEnd: boolean = (last - 1 === i);\r\n const prevIdx0 = isStart ? (isClosed ? line.vertIndices[last - 1] : idx0) : line.vertIndices[i - 1];\r\n const nextIdx1 = isEnd ? (isClosed ? line.vertIndices[1] : idx1) : line.vertIndices[i + 2];\r\n\r\n v0.init(true, isStart && !isClosed, idx0, prevIdx0, idx1);\r\n v1.init(false, isEnd && !isClosed, idx1, nextIdx1, idx0);\r\n\r\n const jointAt0: boolean = this._doJoints && (isClosed || !isStart) && this._dotProduct(v0) > maxJointDot;\r\n const jointAt1: boolean = this._doJoints && (isClosed || !isEnd) && this._dotProduct(v1) > maxJointDot;\r\n\r\n if (jointAt0 || jointAt1) {\r\n this._addVertex(v0, v0.computeParam(true, jointAt0, false, false));\r\n this._addVertex(v1, v1.computeParam(false, jointAt1, false, false));\r\n this._addVertex(v0, v0.computeParam(false, jointAt0, false, true));\r\n this._addVertex(v0, v0.computeParam(false, jointAt0, false, true));\r\n this._addVertex(v1, v1.computeParam(false, jointAt1, false, false));\r\n this._addVertex(v1, v1.computeParam(false, jointAt1, false, true));\r\n this._addVertex(v0, v0.computeParam(false, jointAt0, false, true));\r\n this._addVertex(v1, v1.computeParam(false, jointAt1, false, true));\r\n this._addVertex(v0, v0.computeParam(false, jointAt0, false, false));\r\n this._addVertex(v0, v0.computeParam(false, jointAt0, false, false));\r\n this._addVertex(v1, v1.computeParam(false, jointAt1, false, true));\r\n this._addVertex(v1, v1.computeParam(true, jointAt1, false, false));\r\n\r\n if (jointAt0)\r\n this.addJointTriangles(v0, v0.computeParam(false, true, false, true), v0);\r\n\r\n if (jointAt1)\r\n this.addJointTriangles(v1, v1.computeParam(false, true, false, true), v1);\r\n } else {\r\n this._addVertex(v0, v0.computeParam(true));\r\n this._addVertex(v1, v1.computeParam(false));\r\n this._addVertex(v0, v0.computeParam(false));\r\n this._addVertex(v0, v0.computeParam(false));\r\n this._addVertex(v1, v1.computeParam(false));\r\n this._addVertex(v1, v1.computeParam(true));\r\n }\r\n }\r\n }\r\n }\r\n\r\n private addJointTriangles(v0: PolylineVertex, p0: number, v1: PolylineVertex): void {\r\n const param = v1.computeParam(false, false, true);\r\n for (let i = 0; i < 3; i++) {\r\n this._addVertex(v0, p0);\r\n this._addVertex(v1, param + i + 1);\r\n this._addVertex(v1, param + i);\r\n }\r\n }\r\n\r\n private _dotProduct(v: PolylineVertex): number {\r\n const pos: Point3d = this._position[v.vertexIndex];\r\n const prevDir: Vector3d = Vector3d.createStartEnd(this._position[v.prevIndex], pos);\r\n const nextDir: Vector3d = Vector3d.createStartEnd(this._position[v.nextIndex], pos);\r\n return prevDir.dotProduct(nextDir);\r\n }\r\n\r\n private _addVertex(vertex: PolylineVertex, param: number): void {\r\n this._vertIndex[this._numIndices] = vertex.vertexIndex;\r\n this._prevIndex[this._numIndices] = vertex.prevIndex;\r\n this._nextIndex[this._numIndices] = vertex.nextIndex;\r\n this._nextParam[this._numIndices] = param;\r\n this._numIndices++;\r\n }\r\n}\r\n\r\n/** Strictly for tests. @internal */\r\nexport function tesselatePolyline(polylines: PolylineData[], points: QPoint3dList, doJointTriangles: boolean): TesselatedPolyline {\r\n const tesselator = new PolylineTesselator(polylines, points, doJointTriangles);\r\n return tesselator.tesselate();\r\n}\r\n\r\n/**\r\n * Describes a set of tesselated polylines.\r\n * Each segment of each polyline is triangulated into a quad. Additional triangles may be inserted\r\n * between segments to enable rounded corners.\r\n */\r\nexport class PolylineParams {\r\n public readonly vertices: VertexTable;\r\n public readonly polyline: TesselatedPolyline;\r\n public readonly isPlanar: boolean;\r\n public readonly type: PolylineTypeFlags;\r\n public readonly weight: number;\r\n public readonly linePixels: LinePixels;\r\n\r\n /** Directly construct a PolylineParams. The PolylineParams takes ownership of all input data. */\r\n public constructor(vertices: VertexTable, polyline: TesselatedPolyline, weight: number, linePixels: LinePixels, isPlanar: boolean, type: PolylineTypeFlags = PolylineTypeFlags.Normal) {\r\n this.vertices = vertices;\r\n this.polyline = polyline;\r\n this.isPlanar = isPlanar;\r\n this.weight = weight;\r\n this.linePixels = linePixels;\r\n this.type = type;\r\n }\r\n\r\n /** Construct from an PolylineArgs. */\r\n public static create(args: PolylineArgs): PolylineParams | undefined {\r\n assert(!args.flags.isDisjoint);\r\n const vertices = VertexTable.createForPolylines(args);\r\n if (undefined === vertices)\r\n return undefined;\r\n\r\n const tesselator = PolylineTesselator.fromPolyline(args);\r\n if (undefined === tesselator)\r\n return undefined;\r\n\r\n return new PolylineParams(vertices, tesselator.tesselate(), args.width, args.linePixels, args.flags.isPlanar, args.flags.type);\r\n }\r\n}\r\n\r\nexport function wantJointTriangles(weight: number, is2d: boolean): boolean {\r\n // Joints are incredibly expensive. In 3d, only generate them if the line is sufficiently wide for them to be noticeable.\r\n const jointWidthThreshold = 3;\r\n return is2d || weight >= jointWidthThreshold;\r\n}\r\n"]}
|
|
@@ -2,29 +2,32 @@
|
|
|
2
2
|
* @module Rendering
|
|
3
3
|
*/
|
|
4
4
|
import { IndexMap } from "@itwin/core-bentley";
|
|
5
|
-
import { Point2d } from "@itwin/core-geometry";
|
|
6
|
-
import { OctEncodedNormal
|
|
5
|
+
import { Point2d, Point3d, XYAndZ } from "@itwin/core-geometry";
|
|
6
|
+
import { OctEncodedNormal } from "@itwin/core-common";
|
|
7
7
|
/** @internal */
|
|
8
8
|
export interface VertexKeyProps {
|
|
9
|
-
position:
|
|
9
|
+
position: Point3d;
|
|
10
10
|
fillColor: number;
|
|
11
11
|
normal?: OctEncodedNormal;
|
|
12
12
|
uvParam?: Point2d;
|
|
13
13
|
}
|
|
14
14
|
/** @internal */
|
|
15
15
|
export declare class VertexKey {
|
|
16
|
-
readonly position:
|
|
16
|
+
readonly position: Point3d;
|
|
17
17
|
readonly normal?: OctEncodedNormal;
|
|
18
18
|
readonly uvParam?: Point2d;
|
|
19
19
|
readonly fillColor: number;
|
|
20
|
-
constructor(position:
|
|
20
|
+
constructor(position: Point3d, fillColor: number, normal?: OctEncodedNormal, uvParam?: Point2d);
|
|
21
21
|
static create(props: VertexKeyProps): VertexKey;
|
|
22
|
-
equals(rhs: VertexKey): boolean;
|
|
23
|
-
compare(rhs: VertexKey): number;
|
|
22
|
+
equals(rhs: VertexKey, tolerance: XYAndZ): boolean;
|
|
23
|
+
compare(rhs: VertexKey, tolerance: XYAndZ): number;
|
|
24
24
|
}
|
|
25
25
|
/** @internal */
|
|
26
26
|
export declare class VertexMap extends IndexMap<VertexKey> {
|
|
27
|
-
|
|
27
|
+
private readonly _tolerance;
|
|
28
|
+
constructor(tolerance: XYAndZ);
|
|
28
29
|
insertKey(props: VertexKeyProps, onInsert?: (vk: VertexKey) => any): number;
|
|
30
|
+
arePositionsAlmostEqual(p0: VertexKeyProps, p1: VertexKeyProps): boolean;
|
|
31
|
+
comparePositions(p0: VertexKeyProps, p1: VertexKeyProps): number;
|
|
29
32
|
}
|
|
30
33
|
//# sourceMappingURL=VertexKey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VertexKey.d.ts","sourceRoot":"","sources":["../../../../src/render/primitives/VertexKey.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAgC,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"VertexKey.d.ts","sourceRoot":"","sources":["../../../../src/render/primitives/VertexKey.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAgC,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,gBAAgB;AAChB,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAaD,gBAAgB;AAChB,qBAAa,SAAS;IACpB,SAAgB,QAAQ,EAAE,OAAO,CAAC;IAClC,SAAgB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1C,SAAgB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClC,SAAgB,SAAS,EAAE,MAAM,CAAC;gBAEf,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,OAAO;WAOvF,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS;IAE/C,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAqBlD,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;CAwB1D;AAED,gBAAgB;AAChB,qBAAa,SAAU,SAAQ,QAAQ,CAAC,SAAS,CAAC;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAEjB,SAAS,EAAE,MAAM;IAK7B,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,GAAG,GAAG,MAAM;IAI3E,uBAAuB,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,cAAc,GAAG,OAAO;IAIxE,gBAAgB,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,cAAc,GAAG,MAAM;CAGxE"}
|
|
@@ -6,6 +6,15 @@
|
|
|
6
6
|
* @module Rendering
|
|
7
7
|
*/
|
|
8
8
|
import { assert, compareWithTolerance, IndexMap } from "@itwin/core-bentley";
|
|
9
|
+
function comparePositions(p0, p1, tolerance) {
|
|
10
|
+
let diff = compareWithTolerance(p0.x, p1.x, tolerance.x);
|
|
11
|
+
if (0 === diff) {
|
|
12
|
+
diff = compareWithTolerance(p0.y, p1.y, tolerance.y);
|
|
13
|
+
if (0 === diff)
|
|
14
|
+
diff = compareWithTolerance(p0.z, p1.z, tolerance.z);
|
|
15
|
+
}
|
|
16
|
+
return diff;
|
|
17
|
+
}
|
|
9
18
|
/** @internal */
|
|
10
19
|
export class VertexKey {
|
|
11
20
|
constructor(position, fillColor, normal, uvParam) {
|
|
@@ -15,7 +24,7 @@ export class VertexKey {
|
|
|
15
24
|
this.uvParam = uvParam === null || uvParam === void 0 ? void 0 : uvParam.clone();
|
|
16
25
|
}
|
|
17
26
|
static create(props) { return new VertexKey(props.position, props.fillColor, props.normal, props.uvParam); }
|
|
18
|
-
equals(rhs) {
|
|
27
|
+
equals(rhs, tolerance) {
|
|
19
28
|
if (this.fillColor !== rhs.fillColor)
|
|
20
29
|
return false;
|
|
21
30
|
if (undefined !== this.normal) {
|
|
@@ -23,20 +32,20 @@ export class VertexKey {
|
|
|
23
32
|
if (this.normal.value !== rhs.normal.value)
|
|
24
33
|
return false;
|
|
25
34
|
}
|
|
26
|
-
if (
|
|
35
|
+
if (0 !== comparePositions(this.position, rhs.position, tolerance))
|
|
27
36
|
return false;
|
|
28
37
|
if (undefined !== this.uvParam) {
|
|
29
38
|
assert(undefined !== rhs.uvParam);
|
|
30
|
-
return this.uvParam.isAlmostEqual(rhs.uvParam, 0.1);
|
|
39
|
+
return this.uvParam.isAlmostEqual(rhs.uvParam, 0.1); // ###TODO surely this is a typo?
|
|
31
40
|
}
|
|
32
41
|
return true;
|
|
33
42
|
}
|
|
34
|
-
compare(rhs) {
|
|
43
|
+
compare(rhs, tolerance) {
|
|
35
44
|
if (this === rhs)
|
|
36
45
|
return 0;
|
|
37
46
|
let diff = this.fillColor - rhs.fillColor;
|
|
38
47
|
if (0 === diff) {
|
|
39
|
-
diff = this.position
|
|
48
|
+
diff = comparePositions(this.position, rhs.position, tolerance);
|
|
40
49
|
if (0 === diff) {
|
|
41
50
|
if (undefined !== this.normal) {
|
|
42
51
|
assert(undefined !== rhs.normal);
|
|
@@ -55,9 +64,18 @@ export class VertexKey {
|
|
|
55
64
|
}
|
|
56
65
|
/** @internal */
|
|
57
66
|
export class VertexMap extends IndexMap {
|
|
58
|
-
constructor() {
|
|
67
|
+
constructor(tolerance) {
|
|
68
|
+
super((lhs, rhs) => lhs.compare(rhs, tolerance));
|
|
69
|
+
this._tolerance = tolerance;
|
|
70
|
+
}
|
|
59
71
|
insertKey(props, onInsert) {
|
|
60
72
|
return this.insert(VertexKey.create(props), onInsert);
|
|
61
73
|
}
|
|
74
|
+
arePositionsAlmostEqual(p0, p1) {
|
|
75
|
+
return 0 === this.comparePositions(p0, p1);
|
|
76
|
+
}
|
|
77
|
+
comparePositions(p0, p1) {
|
|
78
|
+
return comparePositions(p0.position, p1.position, this._tolerance);
|
|
79
|
+
}
|
|
62
80
|
}
|
|
63
81
|
//# sourceMappingURL=VertexKey.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VertexKey.js","sourceRoot":"","sources":["../../../../src/render/primitives/VertexKey.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAY7E,gBAAgB;AAChB,MAAM,OAAO,SAAS;IAMpB,YAAmB,
|
|
1
|
+
{"version":3,"file":"VertexKey.js","sourceRoot":"","sources":["../../../../src/render/primitives/VertexKey.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport { assert, compareWithTolerance, IndexMap } from \"@itwin/core-bentley\";\r\nimport { Point2d, Point3d, XYAndZ } from \"@itwin/core-geometry\";\r\nimport { OctEncodedNormal } from \"@itwin/core-common\";\r\n\r\n/** @internal */\r\nexport interface VertexKeyProps {\r\n position: Point3d;\r\n fillColor: number;\r\n normal?: OctEncodedNormal;\r\n uvParam?: Point2d;\r\n}\r\n\r\nfunction comparePositions(p0: Point3d, p1: Point3d, tolerance: XYAndZ): number {\r\n let diff = compareWithTolerance(p0.x, p1.x, tolerance.x);\r\n if (0 === diff) {\r\n diff = compareWithTolerance(p0.y, p1.y, tolerance.y);\r\n if (0 === diff)\r\n diff = compareWithTolerance(p0.z, p1.z, tolerance.z);\r\n }\r\n\r\n return diff;\r\n}\r\n\r\n/** @internal */\r\nexport class VertexKey {\r\n public readonly position: Point3d;\r\n public readonly normal?: OctEncodedNormal;\r\n public readonly uvParam?: Point2d;\r\n public readonly fillColor: number;\r\n\r\n public constructor(position: Point3d, fillColor: number, normal?: OctEncodedNormal, uvParam?: Point2d) {\r\n this.position = position.clone();\r\n this.fillColor = fillColor;\r\n this.normal = normal;\r\n this.uvParam = uvParam?.clone();\r\n }\r\n\r\n public static create(props: VertexKeyProps): VertexKey { return new VertexKey(props.position, props.fillColor, props.normal, props.uvParam); }\r\n\r\n public equals(rhs: VertexKey, tolerance: XYAndZ): boolean {\r\n if (this.fillColor !== rhs.fillColor)\r\n return false;\r\n\r\n if (undefined !== this.normal) {\r\n assert(undefined !== rhs.normal);\r\n if (this.normal.value !== rhs.normal.value)\r\n return false;\r\n }\r\n\r\n if (0 !== comparePositions(this.position, rhs.position, tolerance))\r\n return false;\r\n\r\n if (undefined !== this.uvParam) {\r\n assert(undefined !== rhs.uvParam);\r\n return this.uvParam.isAlmostEqual(rhs.uvParam, 0.1); // ###TODO surely this is a typo?\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public compare(rhs: VertexKey, tolerance: XYAndZ): number {\r\n if (this === rhs)\r\n return 0;\r\n\r\n let diff = this.fillColor - rhs.fillColor;\r\n if (0 === diff) {\r\n diff = comparePositions(this.position, rhs.position, tolerance);\r\n if (0 === diff) {\r\n if (undefined !== this.normal) {\r\n assert(undefined !== rhs.normal);\r\n diff = this.normal.value - rhs.normal.value;\r\n }\r\n\r\n if (0 === diff && undefined !== this.uvParam) {\r\n assert(undefined !== rhs.uvParam);\r\n diff = compareWithTolerance(this.uvParam.x, rhs.uvParam.x);\r\n if (0 === diff)\r\n diff = compareWithTolerance(this.uvParam.x, rhs.uvParam.y);\r\n }\r\n }\r\n }\r\n\r\n return diff;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class VertexMap extends IndexMap<VertexKey> {\r\n private readonly _tolerance: XYAndZ;\r\n\r\n public constructor(tolerance: XYAndZ) {\r\n super((lhs, rhs) => lhs.compare(rhs, tolerance));\r\n this._tolerance = tolerance;\r\n }\r\n\r\n public insertKey(props: VertexKeyProps, onInsert?: (vk: VertexKey) => any): number {\r\n return this.insert(VertexKey.create(props), onInsert);\r\n }\r\n\r\n public arePositionsAlmostEqual(p0: VertexKeyProps, p1: VertexKeyProps): boolean {\r\n return 0 === this.comparePositions(p0, p1);\r\n }\r\n\r\n public comparePositions(p0: VertexKeyProps, p1: VertexKeyProps): number {\r\n return comparePositions(p0.position, p1.position, this._tolerance);\r\n }\r\n}\r\n"]}
|
|
@@ -40,7 +40,13 @@ export declare function computeDimensions(nEntries: number, nRgbaPerEntry: numbe
|
|
|
40
40
|
export interface VertexTableProps {
|
|
41
41
|
/** The rectangular array of vertex data, of size width*height*numRgbaPerVertex bytes. */
|
|
42
42
|
readonly data: Uint8Array;
|
|
43
|
-
/**
|
|
43
|
+
/** If true, positions are not quantized but instead stored as 32-bit floats.
|
|
44
|
+
* [[qparams]] will still be defined; it can be used to derive the range of positions in the table.
|
|
45
|
+
*/
|
|
46
|
+
readonly usesUnquantizedPositions?: boolean;
|
|
47
|
+
/** Quantization parameters for the vertex positions encoded into the array, the positions are quantized;
|
|
48
|
+
* and for deriving the range of positions in the table, whether quantized or not.
|
|
49
|
+
*/
|
|
44
50
|
readonly qparams: QParams3d;
|
|
45
51
|
/** The number of 4-byte 'RGBA' values in each row of the array. Must be divisible by numRgbaPerVertex. */
|
|
46
52
|
readonly width: number;
|
|
@@ -72,7 +78,13 @@ export interface VertexTableProps {
|
|
|
72
78
|
export declare class VertexTable implements VertexTableProps {
|
|
73
79
|
/** The rectangular array of vertex data, of size width*height*numRgbaPerVertex bytes. */
|
|
74
80
|
readonly data: Uint8Array;
|
|
75
|
-
/**
|
|
81
|
+
/** If true, positions are not quantized but instead stored as 32-bit floats.
|
|
82
|
+
* [[qparams]] will still be defined; it can be used to derive the range of positions in the table.
|
|
83
|
+
*/
|
|
84
|
+
readonly usesUnquantizedPositions?: boolean;
|
|
85
|
+
/** Quantization parameters for the vertex positions encoded into the array, the positions are quantized;
|
|
86
|
+
* and for deriving the range of positions in the table, whether quantized or not.
|
|
87
|
+
*/
|
|
76
88
|
readonly qparams: QParams3d;
|
|
77
89
|
/** The number of 4-byte 'RGBA' values in each row of the array. Must be divisible by numRgbaPerVertex. */
|
|
78
90
|
readonly width: number;
|
|
@@ -120,6 +132,7 @@ export declare abstract class VertexTableBuilder {
|
|
|
120
132
|
abstract get numVertices(): number;
|
|
121
133
|
abstract get numRgbaPerVertex(): number;
|
|
122
134
|
abstract get qparams(): QParams3d;
|
|
135
|
+
abstract get usesUnquantizedPositions(): boolean;
|
|
123
136
|
get uvParams(): QParams2d | undefined;
|
|
124
137
|
abstract appendVertex(vertIndex: number): void;
|
|
125
138
|
appendColorTable(colorIndex: ColorIndex): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VertexTable.d.ts","sourceRoot":"","sources":["../../../../src/render/primitives/VertexTable.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"VertexTable.d.ts","sourceRoot":"","sources":["../../../../src/render/primitives/VertexTable.ts"],"names":[],"mappings":"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"}
|