@itwin/core-frontend 3.4.0-dev.9 → 3.5.0-dev.5
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 +37 -1
- package/lib/cjs/AccuDraw.d.ts.map +1 -1
- package/lib/cjs/AccuDraw.js +60 -15
- package/lib/cjs/AccuDraw.js.map +1 -1
- package/lib/cjs/AccuSnap.d.ts.map +1 -1
- package/lib/cjs/AccuSnap.js +46 -36
- package/lib/cjs/AccuSnap.js.map +1 -1
- package/lib/cjs/AuxCoordSys.d.ts.map +1 -1
- package/lib/cjs/AuxCoordSys.js +2 -3
- package/lib/cjs/AuxCoordSys.js.map +1 -1
- package/lib/cjs/BackgroundMapGeometry.d.ts.map +1 -1
- package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
- package/lib/cjs/CategorySelectorState.d.ts.map +1 -1
- package/lib/cjs/CategorySelectorState.js +6 -4
- package/lib/cjs/CategorySelectorState.js.map +1 -1
- package/lib/cjs/ContextRealityModelState.d.ts.map +1 -1
- package/lib/cjs/ContextRealityModelState.js +2 -0
- package/lib/cjs/ContextRealityModelState.js.map +1 -1
- package/lib/cjs/DevTools.d.ts.map +1 -1
- package/lib/cjs/DevTools.js.map +1 -1
- package/lib/cjs/DisplayStyleState.js +1 -1
- package/lib/cjs/DisplayStyleState.js.map +1 -1
- package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
- package/lib/cjs/ElementLocateManager.js +4 -2
- package/lib/cjs/ElementLocateManager.js.map +1 -1
- package/lib/cjs/FrustumAnimator.d.ts.map +1 -1
- package/lib/cjs/FrustumAnimator.js +5 -1
- package/lib/cjs/FrustumAnimator.js.map +1 -1
- package/lib/cjs/FuzzySearch.d.ts.map +1 -1
- package/lib/cjs/FuzzySearch.js +9 -3
- package/lib/cjs/FuzzySearch.js.map +1 -1
- package/lib/cjs/HitDetail.d.ts.map +1 -1
- package/lib/cjs/HitDetail.js +13 -3
- package/lib/cjs/HitDetail.js.map +1 -1
- package/lib/cjs/IModelApp.d.ts +7 -2
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js +10 -2
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +3 -1
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/ImageUtil.d.ts +6 -0
- package/lib/cjs/ImageUtil.d.ts.map +1 -1
- package/lib/cjs/ImageUtil.js +14 -1
- package/lib/cjs/ImageUtil.js.map +1 -1
- package/lib/cjs/Marker.d.ts.map +1 -1
- package/lib/cjs/Marker.js +5 -1
- package/lib/cjs/Marker.js.map +1 -1
- package/lib/cjs/ModelState.d.ts.map +1 -1
- package/lib/cjs/ModelState.js +5 -0
- package/lib/cjs/ModelState.js.map +1 -1
- package/lib/cjs/NativeAppLogger.d.ts.map +1 -1
- package/lib/cjs/NativeAppLogger.js +1 -1
- package/lib/cjs/NativeAppLogger.js.map +1 -1
- package/lib/cjs/TentativePoint.d.ts.map +1 -1
- package/lib/cjs/TentativePoint.js.map +1 -1
- package/lib/cjs/ViewManager.d.ts +4 -0
- package/lib/cjs/ViewManager.d.ts.map +1 -1
- package/lib/cjs/ViewManager.js +9 -3
- package/lib/cjs/ViewManager.js.map +1 -1
- package/lib/cjs/ViewRect.d.ts.map +1 -1
- package/lib/cjs/ViewRect.js +5 -1
- package/lib/cjs/ViewRect.js.map +1 -1
- package/lib/cjs/ViewState.d.ts +36 -12
- package/lib/cjs/ViewState.d.ts.map +1 -1
- package/lib/cjs/ViewState.js +35 -25
- package/lib/cjs/ViewState.js.map +1 -1
- package/lib/cjs/ViewingSpace.d.ts.map +1 -1
- package/lib/cjs/ViewingSpace.js +12 -5
- package/lib/cjs/ViewingSpace.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +14 -0
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +107 -5
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/core-frontend.d.ts +6 -0
- package/lib/cjs/core-frontend.d.ts.map +1 -1
- package/lib/cjs/core-frontend.js +6 -0
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -1
- package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
- package/lib/cjs/extension/ExtensionImpl.d.ts.map +1 -1
- package/lib/cjs/extension/ExtensionImpl.js +3 -1
- package/lib/cjs/extension/ExtensionImpl.js.map +1 -1
- package/lib/cjs/public/scripts/checkbrowser.js +24 -0
- package/lib/cjs/render/Decorations.d.ts.map +1 -1
- package/lib/cjs/render/Decorations.js +24 -6
- package/lib/cjs/render/Decorations.js.map +1 -1
- package/lib/cjs/render/GraphicBranch.d.ts +5 -1
- package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- package/lib/cjs/render/RealityMeshGraphicParams.d.ts +19 -0
- package/lib/cjs/render/RealityMeshGraphicParams.d.ts.map +1 -0
- package/lib/cjs/render/RealityMeshGraphicParams.js +10 -0
- package/lib/cjs/render/RealityMeshGraphicParams.js.map +1 -0
- package/lib/cjs/render/RealityMeshParams.d.ts +130 -0
- package/lib/cjs/render/RealityMeshParams.d.ts.map +1 -0
- package/lib/cjs/render/RealityMeshParams.js +176 -0
- package/lib/cjs/render/RealityMeshParams.js.map +1 -0
- package/lib/cjs/render/RenderSystem.d.ts +8 -4
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js +7 -1
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/RenderTexture.d.ts +1 -1
- package/lib/cjs/render/RenderTexture.d.ts.map +1 -1
- package/lib/cjs/render/RenderTexture.js.map +1 -1
- package/lib/cjs/render/UpsampleRealityMeshParams.d.ts +11 -0
- package/lib/cjs/render/UpsampleRealityMeshParams.d.ts.map +1 -0
- package/lib/cjs/render/UpsampleRealityMeshParams.js +205 -0
- package/lib/cjs/render/UpsampleRealityMeshParams.js.map +1 -0
- package/lib/cjs/render/primitives/DisplayParams.d.ts.map +1 -1
- package/lib/cjs/render/primitives/DisplayParams.js.map +1 -1
- package/lib/cjs/render/primitives/PointCloudPrimitive.d.ts +4 -8
- package/lib/cjs/render/primitives/PointCloudPrimitive.d.ts.map +1 -1
- package/lib/cjs/render/primitives/PointCloudPrimitive.js +0 -16
- package/lib/cjs/render/primitives/PointCloudPrimitive.js.map +1 -1
- package/lib/cjs/render/primitives/Polyface.d.ts.map +1 -1
- package/lib/cjs/render/primitives/Polyface.js +3 -1
- package/lib/cjs/render/primitives/Polyface.js.map +1 -1
- package/lib/cjs/render/primitives/Primitives.d.ts.map +1 -1
- package/lib/cjs/render/primitives/Primitives.js.map +1 -1
- package/lib/cjs/render/primitives/Strokes.d.ts.map +1 -1
- package/lib/cjs/render/primitives/Strokes.js +6 -2
- package/lib/cjs/render/primitives/Strokes.js.map +1 -1
- package/lib/cjs/render/primitives/VertexTableSplitter.d.ts.map +1 -1
- package/lib/cjs/render/primitives/VertexTableSplitter.js +7 -85
- package/lib/cjs/render/primitives/VertexTableSplitter.js.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js +4 -1
- package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +1 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +3 -1
- package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
- package/lib/cjs/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/cjs/render/webgl/BranchState.d.ts +3 -1
- package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BranchState.js +18 -15
- package/lib/cjs/render/webgl/BranchState.js.map +1 -1
- package/lib/cjs/render/webgl/BranchUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BranchUniforms.js +4 -0
- package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/ColorInfo.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ColorInfo.js +4 -1
- package/lib/cjs/render/webgl/ColorInfo.js.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.js +12 -3
- package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
- package/lib/cjs/render/webgl/FrameBuffer.d.ts.map +1 -1
- package/lib/cjs/render/webgl/FrameBuffer.js +4 -1
- package/lib/cjs/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/cjs/render/webgl/FrustumUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Graphic.js +5 -2
- package/lib/cjs/render/webgl/Graphic.js.map +1 -1
- package/lib/cjs/render/webgl/Matrix.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Matrix.js +16 -4
- package/lib/cjs/render/webgl/Matrix.js.map +1 -1
- package/lib/cjs/render/webgl/PerformanceMetrics.js +2 -2
- package/lib/cjs/render/webgl/PerformanceMetrics.js.map +1 -1
- package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PlanarClassifier.js +3 -1
- package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.d.ts +1 -2
- package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.js +7 -7
- package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
- package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Primitive.js.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.d.ts +6 -6
- package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.js +20 -12
- package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/render/webgl/RealityModelUniforms.d.ts +35 -0
- package/lib/cjs/render/webgl/RealityModelUniforms.d.ts.map +1 -0
- package/lib/cjs/render/webgl/RealityModelUniforms.js +73 -0
- package/lib/cjs/render/webgl/RealityModelUniforms.js.map +1 -0
- package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RenderCommands.js +3 -2
- package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
- package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RenderFlags.js +3 -1
- package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.js +4 -1
- package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/cjs/render/webgl/SolarShadowMap.d.ts.map +1 -1
- package/lib/cjs/render/webgl/SolarShadowMap.js +17 -5
- package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/cjs/render/webgl/System.d.ts +6 -4
- package/lib/cjs/render/webgl/System.d.ts.map +1 -1
- package/lib/cjs/render/webgl/System.js +21 -4
- package/lib/cjs/render/webgl/System.js.map +1 -1
- package/lib/cjs/render/webgl/TargetUniforms.d.ts +2 -0
- package/lib/cjs/render/webgl/TargetUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/TargetUniforms.js +2 -0
- package/lib/cjs/render/webgl/TargetUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Technique.js +6 -31
- package/lib/cjs/render/webgl/Technique.js.map +1 -1
- package/lib/cjs/render/webgl/TechniqueFlags.d.ts.map +1 -1
- package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Texture.js +21 -12
- package/lib/cjs/render/webgl/Texture.js.map +1 -1
- package/lib/cjs/render/webgl/ThematicSensors.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ThematicSensors.js +8 -2
- package/lib/cjs/render/webgl/ThematicSensors.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +3 -1
- package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Common.js +1 -1
- package/lib/cjs/render/webgl/glsl/Common.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/PointCloud.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/PointCloud.js +43 -20
- package/lib/cjs/render/webgl/glsl/PointCloud.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts +4 -2
- package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/RealityMesh.js +5 -3
- package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/SkyBox.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
- package/lib/cjs/tile/GltfReader.d.ts +3 -2
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +7 -3
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/ImdlReader.d.ts +1 -1
- package/lib/cjs/tile/ImdlReader.js.map +1 -1
- package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +1 -1
- package/lib/cjs/tile/OPCFormatInterpreter.js +3 -1
- package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/OrbitGtTileTree.js +8 -2
- package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/cjs/tile/PntsReader.d.ts.map +1 -1
- package/lib/cjs/tile/PntsReader.js +8 -2
- 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 +14 -11
- package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityModelTileTree.d.ts +4 -1
- package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/RealityModelTileTree.js +8 -0
- package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityTile.d.ts +57 -3
- package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTile.js +49 -5
- 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.map +1 -1
- package/lib/cjs/tile/RealityTileTree.d.ts +37 -2
- package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileTree.js +30 -2
- package/lib/cjs/tile/RealityTileTree.js.map +1 -1
- package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -1
- package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +6 -2
- package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -1
- package/lib/cjs/tile/TileAdmin.d.ts +12 -0
- package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
- package/lib/cjs/tile/TileAdmin.js +54 -4
- package/lib/cjs/tile/TileAdmin.js.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.js +10 -16
- package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
- package/lib/cjs/tile/TileRequest.d.ts +5 -1
- package/lib/cjs/tile/TileRequest.d.ts.map +1 -1
- package/lib/cjs/tile/TileRequest.js +6 -2
- package/lib/cjs/tile/TileRequest.js.map +1 -1
- package/lib/cjs/tile/TileStorage.d.ts +13 -0
- package/lib/cjs/tile/TileStorage.d.ts.map +1 -0
- package/lib/cjs/tile/TileStorage.js +50 -0
- package/lib/cjs/tile/TileStorage.js.map +1 -0
- package/lib/cjs/tile/internal.d.ts +2 -0
- package/lib/cjs/tile/internal.d.ts.map +1 -1
- package/lib/cjs/tile/internal.js +2 -0
- package/lib/cjs/tile/internal.js.map +1 -1
- package/lib/cjs/tile/map/ArcGISTileMap.js +1 -1
- package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts +0 -2
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.js +1 -24
- package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/cjs/tile/map/BingElevation.d.ts +8 -3
- package/lib/cjs/tile/map/BingElevation.d.ts.map +1 -1
- package/lib/cjs/tile/map/BingElevation.js +36 -14
- package/lib/cjs/tile/map/BingElevation.js.map +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts +2 -7
- package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.js +100 -90
- package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/EllipsoidTerrainProvider.d.ts +9 -12
- package/lib/cjs/tile/map/EllipsoidTerrainProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/EllipsoidTerrainProvider.js +70 -67
- package/lib/cjs/tile/map/EllipsoidTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +9 -16
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +8 -6
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +3 -3
- package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.js +21 -6
- package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapCartoRectangle.d.ts +62 -6
- package/lib/cjs/tile/map/MapCartoRectangle.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapCartoRectangle.js +103 -17
- package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.js +4 -2
- package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.js +11 -7
- package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
- package/lib/cjs/tile/map/MapTile.d.ts +68 -15
- package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTile.js +88 -30
- package/lib/cjs/tile/map/MapTile.js.map +1 -1
- package/lib/cjs/tile/map/MapTileAvailability.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileAvailability.js +1 -1
- package/lib/cjs/tile/map/MapTileAvailability.js.map +1 -1
- package/lib/cjs/tile/map/MapTileLoader.d.ts +2 -2
- package/lib/cjs/tile/map/MapTileLoader.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileLoader.js +11 -20
- package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts +72 -7
- package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +72 -16
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapTilingScheme.d.ts +67 -55
- package/lib/cjs/tile/map/MapTilingScheme.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTilingScheme.js +71 -67
- package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
- package/lib/cjs/tile/map/QuadId.d.ts +24 -2
- package/lib/cjs/tile/map/QuadId.d.ts.map +1 -1
- package/lib/cjs/tile/map/QuadId.js +49 -20
- package/lib/cjs/tile/map/QuadId.js.map +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +79 -19
- package/lib/cjs/tile/map/TerrainMeshProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.js +28 -13
- package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
- package/lib/cjs/tile/map/TerrainProvider.d.ts +34 -0
- package/lib/cjs/tile/map/TerrainProvider.d.ts.map +1 -0
- package/lib/cjs/tile/map/TerrainProvider.js +41 -0
- package/lib/cjs/tile/map/TerrainProvider.js.map +1 -0
- package/lib/cjs/tile/map/WmsCapabilities.js +1 -1
- package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
- package/lib/cjs/tile/map/WmtsCapabilities.d.ts.map +1 -1
- package/lib/cjs/tile/map/WmtsCapabilities.js +7 -3
- package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/cjs/tile/object-storage-azure.js +5 -0
- package/lib/cjs/tools/AccuDrawTool.d.ts.map +1 -1
- package/lib/cjs/tools/AccuDrawTool.js +87 -26
- package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
- package/lib/cjs/tools/ClipViewTool.d.ts +2 -2
- package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
- package/lib/cjs/tools/ClipViewTool.js +29 -16
- package/lib/cjs/tools/ClipViewTool.js.map +1 -1
- package/lib/cjs/tools/ElementSetTool.d.ts.map +1 -1
- package/lib/cjs/tools/ElementSetTool.js +26 -10
- package/lib/cjs/tools/ElementSetTool.js.map +1 -1
- package/lib/cjs/tools/MeasureTool.d.ts.map +1 -1
- package/lib/cjs/tools/MeasureTool.js +65 -41
- package/lib/cjs/tools/MeasureTool.js.map +1 -1
- package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
- package/lib/cjs/tools/PrimitiveTool.js +9 -4
- package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
- package/lib/cjs/tools/SelectTool.d.ts.map +1 -1
- package/lib/cjs/tools/SelectTool.js +20 -9
- package/lib/cjs/tools/SelectTool.js.map +1 -1
- package/lib/cjs/tools/Tool.d.ts.map +1 -1
- package/lib/cjs/tools/Tool.js +13 -5
- package/lib/cjs/tools/Tool.js.map +1 -1
- package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/cjs/tools/ToolAdmin.js +27 -9
- package/lib/cjs/tools/ToolAdmin.js.map +1 -1
- package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
- package/lib/cjs/tools/ViewTool.js +111 -40
- package/lib/cjs/tools/ViewTool.js.map +1 -1
- package/lib/cjs/webgl.d.ts +1 -0
- package/lib/cjs/webgl.d.ts.map +1 -1
- package/lib/cjs/webgl.js +1 -0
- package/lib/cjs/webgl.js.map +1 -1
- package/lib/esm/AccuDraw.d.ts.map +1 -1
- package/lib/esm/AccuDraw.js +60 -15
- package/lib/esm/AccuDraw.js.map +1 -1
- package/lib/esm/AccuSnap.d.ts.map +1 -1
- package/lib/esm/AccuSnap.js +47 -37
- package/lib/esm/AccuSnap.js.map +1 -1
- package/lib/esm/AuxCoordSys.d.ts.map +1 -1
- package/lib/esm/AuxCoordSys.js +2 -3
- package/lib/esm/AuxCoordSys.js.map +1 -1
- package/lib/esm/BackgroundMapGeometry.d.ts.map +1 -1
- package/lib/esm/BackgroundMapGeometry.js.map +1 -1
- package/lib/esm/CategorySelectorState.d.ts.map +1 -1
- package/lib/esm/CategorySelectorState.js +6 -4
- package/lib/esm/CategorySelectorState.js.map +1 -1
- package/lib/esm/ContextRealityModelState.d.ts.map +1 -1
- package/lib/esm/ContextRealityModelState.js +2 -0
- package/lib/esm/ContextRealityModelState.js.map +1 -1
- package/lib/esm/DevTools.d.ts.map +1 -1
- package/lib/esm/DevTools.js.map +1 -1
- package/lib/esm/DisplayStyleState.js +1 -1
- package/lib/esm/DisplayStyleState.js.map +1 -1
- package/lib/esm/ElementLocateManager.d.ts.map +1 -1
- package/lib/esm/ElementLocateManager.js +4 -2
- package/lib/esm/ElementLocateManager.js.map +1 -1
- package/lib/esm/FrustumAnimator.d.ts.map +1 -1
- package/lib/esm/FrustumAnimator.js +5 -1
- package/lib/esm/FrustumAnimator.js.map +1 -1
- package/lib/esm/FuzzySearch.d.ts.map +1 -1
- package/lib/esm/FuzzySearch.js +9 -3
- package/lib/esm/FuzzySearch.js.map +1 -1
- package/lib/esm/HitDetail.d.ts.map +1 -1
- package/lib/esm/HitDetail.js +13 -3
- package/lib/esm/HitDetail.js.map +1 -1
- package/lib/esm/IModelApp.d.ts +7 -2
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js +11 -3
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +3 -1
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/ImageUtil.d.ts +6 -0
- package/lib/esm/ImageUtil.d.ts.map +1 -1
- package/lib/esm/ImageUtil.js +12 -0
- package/lib/esm/ImageUtil.js.map +1 -1
- package/lib/esm/Marker.d.ts.map +1 -1
- package/lib/esm/Marker.js +5 -1
- package/lib/esm/Marker.js.map +1 -1
- package/lib/esm/ModelState.d.ts.map +1 -1
- package/lib/esm/ModelState.js +6 -1
- package/lib/esm/ModelState.js.map +1 -1
- package/lib/esm/NativeAppLogger.d.ts.map +1 -1
- package/lib/esm/NativeAppLogger.js +1 -1
- package/lib/esm/NativeAppLogger.js.map +1 -1
- package/lib/esm/TentativePoint.d.ts.map +1 -1
- package/lib/esm/TentativePoint.js.map +1 -1
- package/lib/esm/ViewManager.d.ts +4 -0
- package/lib/esm/ViewManager.d.ts.map +1 -1
- package/lib/esm/ViewManager.js +9 -3
- package/lib/esm/ViewManager.js.map +1 -1
- package/lib/esm/ViewRect.d.ts.map +1 -1
- package/lib/esm/ViewRect.js +5 -1
- package/lib/esm/ViewRect.js.map +1 -1
- package/lib/esm/ViewState.d.ts +36 -12
- package/lib/esm/ViewState.d.ts.map +1 -1
- package/lib/esm/ViewState.js +35 -25
- package/lib/esm/ViewState.js.map +1 -1
- package/lib/esm/ViewingSpace.d.ts.map +1 -1
- package/lib/esm/ViewingSpace.js +12 -5
- package/lib/esm/ViewingSpace.js.map +1 -1
- package/lib/esm/Viewport.d.ts +14 -0
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +107 -5
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/core-frontend.d.ts +6 -0
- package/lib/esm/core-frontend.d.ts.map +1 -1
- package/lib/esm/core-frontend.js +6 -0
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -1
- package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
- package/lib/esm/extension/ExtensionImpl.d.ts.map +1 -1
- package/lib/esm/extension/ExtensionImpl.js +3 -1
- package/lib/esm/extension/ExtensionImpl.js.map +1 -1
- package/lib/esm/public/scripts/checkbrowser.js +24 -0
- package/lib/esm/render/Decorations.d.ts.map +1 -1
- package/lib/esm/render/Decorations.js +24 -6
- package/lib/esm/render/Decorations.js.map +1 -1
- package/lib/esm/render/GraphicBranch.d.ts +5 -1
- package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- package/lib/esm/render/RealityMeshGraphicParams.d.ts +19 -0
- package/lib/esm/render/RealityMeshGraphicParams.d.ts.map +1 -0
- package/lib/esm/render/RealityMeshGraphicParams.js +9 -0
- package/lib/esm/render/RealityMeshGraphicParams.js.map +1 -0
- package/lib/esm/render/RealityMeshParams.d.ts +130 -0
- package/lib/esm/render/RealityMeshParams.d.ts.map +1 -0
- package/lib/esm/render/RealityMeshParams.js +172 -0
- package/lib/esm/render/RealityMeshParams.js.map +1 -0
- package/lib/esm/render/RenderSystem.d.ts +8 -4
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js +7 -1
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/RenderTexture.d.ts +1 -1
- package/lib/esm/render/RenderTexture.d.ts.map +1 -1
- package/lib/esm/render/RenderTexture.js.map +1 -1
- package/lib/esm/render/UpsampleRealityMeshParams.d.ts +11 -0
- package/lib/esm/render/UpsampleRealityMeshParams.d.ts.map +1 -0
- package/lib/esm/render/UpsampleRealityMeshParams.js +201 -0
- package/lib/esm/render/UpsampleRealityMeshParams.js.map +1 -0
- package/lib/esm/render/primitives/DisplayParams.d.ts.map +1 -1
- package/lib/esm/render/primitives/DisplayParams.js.map +1 -1
- package/lib/esm/render/primitives/PointCloudPrimitive.d.ts +4 -8
- package/lib/esm/render/primitives/PointCloudPrimitive.d.ts.map +1 -1
- package/lib/esm/render/primitives/PointCloudPrimitive.js +1 -14
- package/lib/esm/render/primitives/PointCloudPrimitive.js.map +1 -1
- package/lib/esm/render/primitives/Polyface.d.ts.map +1 -1
- package/lib/esm/render/primitives/Polyface.js +3 -1
- package/lib/esm/render/primitives/Polyface.js.map +1 -1
- package/lib/esm/render/primitives/Primitives.d.ts.map +1 -1
- package/lib/esm/render/primitives/Primitives.js.map +1 -1
- package/lib/esm/render/primitives/Strokes.d.ts.map +1 -1
- package/lib/esm/render/primitives/Strokes.js +6 -2
- package/lib/esm/render/primitives/Strokes.js.map +1 -1
- package/lib/esm/render/primitives/VertexTableSplitter.d.ts.map +1 -1
- package/lib/esm/render/primitives/VertexTableSplitter.js +1 -79
- package/lib/esm/render/primitives/VertexTableSplitter.js.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.js +4 -1
- package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +1 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.js +3 -1
- package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
- package/lib/esm/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
- package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/esm/render/webgl/BranchState.d.ts +3 -1
- package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/esm/render/webgl/BranchState.js +18 -15
- package/lib/esm/render/webgl/BranchState.js.map +1 -1
- package/lib/esm/render/webgl/BranchUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/BranchUniforms.js +4 -0
- package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/esm/render/webgl/ColorInfo.d.ts.map +1 -1
- package/lib/esm/render/webgl/ColorInfo.js +4 -1
- package/lib/esm/render/webgl/ColorInfo.js.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.js +12 -3
- package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
- package/lib/esm/render/webgl/FrameBuffer.d.ts.map +1 -1
- package/lib/esm/render/webgl/FrameBuffer.js +4 -1
- package/lib/esm/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/esm/render/webgl/FrustumUniforms.js.map +1 -1
- package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
- package/lib/esm/render/webgl/Graphic.js +5 -2
- package/lib/esm/render/webgl/Graphic.js.map +1 -1
- package/lib/esm/render/webgl/Matrix.d.ts.map +1 -1
- package/lib/esm/render/webgl/Matrix.js +16 -4
- package/lib/esm/render/webgl/Matrix.js.map +1 -1
- package/lib/esm/render/webgl/PerformanceMetrics.js +2 -2
- package/lib/esm/render/webgl/PerformanceMetrics.js.map +1 -1
- package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/esm/render/webgl/PlanarClassifier.js +3 -1
- package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
- package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/esm/render/webgl/PointCloud.d.ts +1 -2
- package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/esm/render/webgl/PointCloud.js +7 -7
- package/lib/esm/render/webgl/PointCloud.js.map +1 -1
- package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
- package/lib/esm/render/webgl/Primitive.js.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.d.ts +6 -6
- package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.js +20 -12
- package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/render/webgl/RealityModelUniforms.d.ts +35 -0
- package/lib/esm/render/webgl/RealityModelUniforms.d.ts.map +1 -0
- package/lib/esm/render/webgl/RealityModelUniforms.js +68 -0
- package/lib/esm/render/webgl/RealityModelUniforms.js.map +1 -0
- package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
- package/lib/esm/render/webgl/RenderCommands.js +3 -2
- package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
- package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/esm/render/webgl/RenderFlags.js +3 -1
- package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.js +4 -1
- package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/esm/render/webgl/SolarShadowMap.d.ts.map +1 -1
- package/lib/esm/render/webgl/SolarShadowMap.js +17 -5
- package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/esm/render/webgl/System.d.ts +6 -4
- package/lib/esm/render/webgl/System.d.ts.map +1 -1
- package/lib/esm/render/webgl/System.js +21 -4
- package/lib/esm/render/webgl/System.js.map +1 -1
- package/lib/esm/render/webgl/TargetUniforms.d.ts +2 -0
- package/lib/esm/render/webgl/TargetUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/TargetUniforms.js +2 -0
- package/lib/esm/render/webgl/TargetUniforms.js.map +1 -1
- package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
- package/lib/esm/render/webgl/Technique.js +5 -11
- package/lib/esm/render/webgl/Technique.js.map +1 -1
- package/lib/esm/render/webgl/TechniqueFlags.d.ts.map +1 -1
- package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
- package/lib/esm/render/webgl/Texture.js +21 -12
- package/lib/esm/render/webgl/Texture.js.map +1 -1
- package/lib/esm/render/webgl/ThematicSensors.d.ts.map +1 -1
- package/lib/esm/render/webgl/ThematicSensors.js +8 -2
- package/lib/esm/render/webgl/ThematicSensors.js.map +1 -1
- package/lib/esm/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +3 -1
- package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Common.js +1 -1
- package/lib/esm/render/webgl/glsl/Common.js.map +1 -1
- package/lib/esm/render/webgl/glsl/PointCloud.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/PointCloud.js +44 -21
- package/lib/esm/render/webgl/glsl/PointCloud.js.map +1 -1
- package/lib/esm/render/webgl/glsl/RealityMesh.d.ts +4 -2
- package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/RealityMesh.js +4 -3
- package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/esm/render/webgl/glsl/SkyBox.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/SkyBox.js.map +1 -1
- package/lib/esm/tile/GltfReader.d.ts +3 -2
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +8 -4
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/ImdlReader.d.ts +1 -1
- package/lib/esm/tile/ImdlReader.js.map +1 -1
- package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +1 -1
- package/lib/esm/tile/OPCFormatInterpreter.js +3 -1
- package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/esm/tile/OrbitGtTileTree.d.ts.map +1 -1
- package/lib/esm/tile/OrbitGtTileTree.js +8 -2
- package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/esm/tile/PntsReader.d.ts.map +1 -1
- package/lib/esm/tile/PntsReader.js +8 -2
- 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 +14 -11
- package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
- package/lib/esm/tile/RealityModelTileTree.d.ts +4 -1
- package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/esm/tile/RealityModelTileTree.js +9 -1
- package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/tile/RealityTile.d.ts +57 -3
- package/lib/esm/tile/RealityTile.d.ts.map +1 -1
- package/lib/esm/tile/RealityTile.js +49 -5
- 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.map +1 -1
- package/lib/esm/tile/RealityTileTree.d.ts +37 -2
- package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileTree.js +30 -2
- package/lib/esm/tile/RealityTileTree.js.map +1 -1
- package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -1
- package/lib/esm/tile/ThreeDTileFormatInterpreter.js +6 -2
- package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -1
- package/lib/esm/tile/TileAdmin.d.ts +12 -0
- package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
- package/lib/esm/tile/TileAdmin.js +35 -4
- package/lib/esm/tile/TileAdmin.js.map +1 -1
- package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/esm/tile/TileDrawArgs.js +11 -17
- package/lib/esm/tile/TileDrawArgs.js.map +1 -1
- package/lib/esm/tile/TileRequest.d.ts +5 -1
- package/lib/esm/tile/TileRequest.d.ts.map +1 -1
- package/lib/esm/tile/TileRequest.js +6 -2
- package/lib/esm/tile/TileRequest.js.map +1 -1
- package/lib/esm/tile/TileStorage.d.ts +13 -0
- package/lib/esm/tile/TileStorage.d.ts.map +1 -0
- package/lib/esm/tile/TileStorage.js +46 -0
- package/lib/esm/tile/TileStorage.js.map +1 -0
- package/lib/esm/tile/internal.d.ts +2 -0
- package/lib/esm/tile/internal.d.ts.map +1 -1
- package/lib/esm/tile/internal.js +2 -0
- package/lib/esm/tile/internal.js.map +1 -1
- package/lib/esm/tile/map/ArcGISTileMap.js +1 -1
- package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.d.ts +0 -2
- package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.js +1 -24
- package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/esm/tile/map/BingElevation.d.ts +8 -3
- package/lib/esm/tile/map/BingElevation.d.ts.map +1 -1
- package/lib/esm/tile/map/BingElevation.js +36 -14
- package/lib/esm/tile/map/BingElevation.js.map +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.d.ts +2 -7
- package/lib/esm/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.js +101 -91
- package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/EllipsoidTerrainProvider.d.ts +9 -12
- package/lib/esm/tile/map/EllipsoidTerrainProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/EllipsoidTerrainProvider.js +71 -68
- package/lib/esm/tile/map/EllipsoidTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +9 -16
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +8 -6
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +3 -3
- package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.js +21 -6
- package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapCartoRectangle.d.ts +62 -6
- package/lib/esm/tile/map/MapCartoRectangle.d.ts.map +1 -1
- package/lib/esm/tile/map/MapCartoRectangle.js +103 -17
- package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.js +4 -2
- package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.js +11 -7
- package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
- package/lib/esm/tile/map/MapTile.d.ts +68 -15
- package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTile.js +88 -30
- package/lib/esm/tile/map/MapTile.js.map +1 -1
- package/lib/esm/tile/map/MapTileAvailability.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileAvailability.js +1 -1
- package/lib/esm/tile/map/MapTileAvailability.js.map +1 -1
- package/lib/esm/tile/map/MapTileLoader.d.ts +2 -2
- package/lib/esm/tile/map/MapTileLoader.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileLoader.js +12 -21
- package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts +72 -7
- package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js +73 -17
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapTilingScheme.d.ts +67 -55
- package/lib/esm/tile/map/MapTilingScheme.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTilingScheme.js +72 -68
- package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
- package/lib/esm/tile/map/QuadId.d.ts +24 -2
- package/lib/esm/tile/map/QuadId.d.ts.map +1 -1
- package/lib/esm/tile/map/QuadId.js +49 -20
- package/lib/esm/tile/map/QuadId.js.map +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.d.ts +79 -19
- package/lib/esm/tile/map/TerrainMeshProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.js +28 -13
- package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
- package/lib/esm/tile/map/TerrainProvider.d.ts +34 -0
- package/lib/esm/tile/map/TerrainProvider.d.ts.map +1 -0
- package/lib/esm/tile/map/TerrainProvider.js +37 -0
- package/lib/esm/tile/map/TerrainProvider.js.map +1 -0
- package/lib/esm/tile/map/WmsCapabilities.js +1 -1
- package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
- package/lib/esm/tile/map/WmtsCapabilities.d.ts.map +1 -1
- package/lib/esm/tile/map/WmtsCapabilities.js +7 -3
- package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/esm/tile/object-storage-azure.js +5 -0
- package/lib/esm/tools/AccuDrawTool.d.ts.map +1 -1
- package/lib/esm/tools/AccuDrawTool.js +87 -26
- package/lib/esm/tools/AccuDrawTool.js.map +1 -1
- package/lib/esm/tools/ClipViewTool.d.ts +2 -2
- package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
- package/lib/esm/tools/ClipViewTool.js +29 -16
- package/lib/esm/tools/ClipViewTool.js.map +1 -1
- package/lib/esm/tools/ElementSetTool.d.ts.map +1 -1
- package/lib/esm/tools/ElementSetTool.js +26 -10
- package/lib/esm/tools/ElementSetTool.js.map +1 -1
- package/lib/esm/tools/MeasureTool.d.ts.map +1 -1
- package/lib/esm/tools/MeasureTool.js +65 -41
- package/lib/esm/tools/MeasureTool.js.map +1 -1
- package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
- package/lib/esm/tools/PrimitiveTool.js +9 -4
- package/lib/esm/tools/PrimitiveTool.js.map +1 -1
- package/lib/esm/tools/SelectTool.d.ts.map +1 -1
- package/lib/esm/tools/SelectTool.js +20 -9
- package/lib/esm/tools/SelectTool.js.map +1 -1
- package/lib/esm/tools/Tool.d.ts.map +1 -1
- package/lib/esm/tools/Tool.js +13 -5
- package/lib/esm/tools/Tool.js.map +1 -1
- package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/esm/tools/ToolAdmin.js +27 -9
- package/lib/esm/tools/ToolAdmin.js.map +1 -1
- package/lib/esm/tools/ViewTool.d.ts.map +1 -1
- package/lib/esm/tools/ViewTool.js +111 -40
- package/lib/esm/tools/ViewTool.js.map +1 -1
- package/lib/esm/webgl.d.ts +1 -0
- package/lib/esm/webgl.d.ts.map +1 -1
- package/lib/esm/webgl.js +1 -0
- package/lib/esm/webgl.js.map +1 -1
- package/package.json +30 -24
- package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts +0 -47
- package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +0 -1
- package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js +0 -75
- package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js.map +0 -1
- package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.d.ts +0 -56
- package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.d.ts.map +0 -1
- package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js +0 -270
- package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js.map +0 -1
- package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts +0 -47
- package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +0 -1
- package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js +0 -71
- package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js.map +0 -1
- package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.d.ts +0 -56
- package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.d.ts.map +0 -1
- package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js +0 -266
- package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js.map +0 -1
|
@@ -37,7 +37,7 @@ export declare type TextureOwnership = TextureCacheOwnership | "external";
|
|
|
37
37
|
* @public
|
|
38
38
|
* @extensions
|
|
39
39
|
*/
|
|
40
|
-
export declare type TextureImageSource = HTMLImageElement | ImageBuffer;
|
|
40
|
+
export declare type TextureImageSource = HTMLImageElement | ImageBuffer | ImageBitmap;
|
|
41
41
|
/** Describes the image from which to create a [RenderTexture]($common).
|
|
42
42
|
* @see [[CreateTextureArgs.image]]
|
|
43
43
|
* @public
|
|
@@ -1 +1 @@
|
|
|
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,oBAAY,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,oBAAY,gBAAgB,GAAG,qBAAqB,GAAG,UAAU,CAAC;AAElE;;;;GAIG;AACH,oBAAY,kBAAkB,GAAG,gBAAgB,GAAG,WAAW,CAAC;
|
|
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,oBAAY,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,oBAAY,gBAAgB,GAAG,qBAAqB,GAAG,UAAU,CAAC;AAElE;;;;GAIG;AACH,oBAAY,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderTexture.js","sourceRoot":"","sources":["../../../src/render/RenderTexture.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 { Gradient, ImageBuffer, ImageSource, RenderTexture, TextureTransparency } from \"@itwin/core-common\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\n\r\n/** A key that uniquely identifies a [RenderTexture]($common) in the context of an [[IModelConnection]], used for caching.\r\n * @see [[TextureCacheOwnership]].\r\n * @public\r\n * @extensions\r\n */\r\nexport type TextureCacheKey = string | Gradient.Symb;\r\n\r\n/** Specifies that a [RenderTexture]($common) should be kept in memory until the corresponding [[IModelConnection]] is closed, at\r\n * which point it will be disposed.\r\n * @see [[TextureOwnership]]\r\n * @public\r\n * @extensions\r\n */\r\nexport interface TextureCacheOwnership {\r\n /** The iModel on which the texture will be cached. */\r\n iModel: IModelConnection;\r\n /** The key uniquely identifying the texture amongst all textures cached on the iModel. */\r\n key: string | Gradient.Symb;\r\n}\r\n\r\n/** Describes the ownership of a [RenderTexture]($common), which controls when the texture is disposed of.\r\n * - [[TextureCacheOwnership]] indicates that the texture will be disposed of when the [[IModelConnection]] is closed, and that attempting\r\n * to create or look up a texture with the same `key` as an existing cached texture will always return the cached texture instead of creating\r\n * a new one.\r\n * - \"external\" indicates that the lifetime of the texture will be controlled externally, e.g. by a [[Decorator]], in which case the owner of the\r\n * texture is responsible for calling its `dispose` method when it is no longer needed.\r\n * @see [[CreateTextureArgs.ownership]]\r\n * @public\r\n * @extensions\r\n */\r\nexport type TextureOwnership = TextureCacheOwnership | \"external\";\r\n\r\n/** An object from which a [RenderTexture]($common) can be created.\r\n * @see [[TextureImage.source]]\r\n * @public\r\n * @extensions\r\n */\r\nexport type TextureImageSource = HTMLImageElement | ImageBuffer; // ###TODO | HTMLCanvasElement etc\r\n\r\n/** Describes the image from which to create a [RenderTexture]($common).\r\n * @see [[CreateTextureArgs.image]]\r\n * @public\r\n * @extensions\r\n */\r\nexport interface TextureImage {\r\n /** The object that supplies the texture image. */\r\n source: TextureImageSource;\r\n /** Describes the transparency of the image. If this information can be supplied, it can improve performance.\r\n * If this information is not available at the call site, omit it - it defaults to \"mixed\" if it cannot be inferred from the source.\r\n */\r\n transparency?: TextureTransparency;\r\n}\r\n\r\n/** Arguments supplied to [[RenderSystem.createTexture]] to create a [RenderTexture]($common).\r\n * @public\r\n * @extensions\r\n */\r\nexport interface CreateTextureArgs {\r\n /** The type of texture to create. Default: [RenderTexture.Type.Normal]($common). */\r\n type?: RenderTexture.Type;\r\n /** The image from which to create the texture. */\r\n image: TextureImage;\r\n /** The ownership of the texture. If `undefined`, the texture's lifetime will be controlled by the first [[RenderGraphic]] with which it\r\n * becomes associated, such that disposing of the graphic will also dispose of the texture.\r\n * Applications typically create textures for use with [[Decorator]]s, which recreate their graphics quite frequently.\r\n * Ideally, the decorator will take ownership of the texture by specifying \"external\" and disposing of the texture when it is no longer needed,\r\n * rather than recreating the texture every time it creates its decoration graphics.\r\n */\r\n ownership?: TextureOwnership;\r\n}\r\n\r\n/** Arguments supplied to [[RenderSystem.createTextureFromSource]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface CreateTextureFromSourceArgs {\r\n /** The type of texture to create. Default: [RenderTexture.Type.Normal]($common). */\r\n type?: RenderTexture.Type;\r\n /** The image from which to create the texture. */\r\n source: ImageSource;\r\n /** Describes the transparency of the image. If this information can be supplied, it can improve performance.\r\n * If not supplied, PNGs will default to [TextureTransparency.Mixed]($common) and JPEGs (which do not support transparency) to [TextureTransparency.Opaque]($common).\r\n */\r\n transparency?: TextureTransparency;\r\n /** The ownership of the texture. If `undefined`, the texture's lifetime will be controlled by the first [[RenderGraphic]] with which it\r\n * becomes associated, such that disposing of the graphic will also dispose of the texture.\r\n * Applications typically create textures for use with [[Decorator]]s, which recreate their graphics quite frequently.\r\n * Ideally, the decorator will take ownership of the texture by specifying \"external\" and disposing of the texture when it is no longer needed,\r\n * rather than recreating the texture every time it creates its decoration graphics.\r\n */\r\n ownership?: TextureCacheOwnership & { key: string } | \"external\";\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"RenderTexture.js","sourceRoot":"","sources":["../../../src/render/RenderTexture.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 { Gradient, ImageBuffer, ImageSource, RenderTexture, TextureTransparency } from \"@itwin/core-common\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\n\r\n/** A key that uniquely identifies a [RenderTexture]($common) in the context of an [[IModelConnection]], used for caching.\r\n * @see [[TextureCacheOwnership]].\r\n * @public\r\n * @extensions\r\n */\r\nexport type TextureCacheKey = string | Gradient.Symb;\r\n\r\n/** Specifies that a [RenderTexture]($common) should be kept in memory until the corresponding [[IModelConnection]] is closed, at\r\n * which point it will be disposed.\r\n * @see [[TextureOwnership]]\r\n * @public\r\n * @extensions\r\n */\r\nexport interface TextureCacheOwnership {\r\n /** The iModel on which the texture will be cached. */\r\n iModel: IModelConnection;\r\n /** The key uniquely identifying the texture amongst all textures cached on the iModel. */\r\n key: string | Gradient.Symb;\r\n}\r\n\r\n/** Describes the ownership of a [RenderTexture]($common), which controls when the texture is disposed of.\r\n * - [[TextureCacheOwnership]] indicates that the texture will be disposed of when the [[IModelConnection]] is closed, and that attempting\r\n * to create or look up a texture with the same `key` as an existing cached texture will always return the cached texture instead of creating\r\n * a new one.\r\n * - \"external\" indicates that the lifetime of the texture will be controlled externally, e.g. by a [[Decorator]], in which case the owner of the\r\n * texture is responsible for calling its `dispose` method when it is no longer needed.\r\n * @see [[CreateTextureArgs.ownership]]\r\n * @public\r\n * @extensions\r\n */\r\nexport type TextureOwnership = TextureCacheOwnership | \"external\";\r\n\r\n/** An object from which a [RenderTexture]($common) can be created.\r\n * @see [[TextureImage.source]]\r\n * @public\r\n * @extensions\r\n */\r\nexport type TextureImageSource = HTMLImageElement | ImageBuffer | ImageBitmap; // ###TODO | HTMLCanvasElement etc\r\n\r\n/** Describes the image from which to create a [RenderTexture]($common).\r\n * @see [[CreateTextureArgs.image]]\r\n * @public\r\n * @extensions\r\n */\r\nexport interface TextureImage {\r\n /** The object that supplies the texture image. */\r\n source: TextureImageSource;\r\n /** Describes the transparency of the image. If this information can be supplied, it can improve performance.\r\n * If this information is not available at the call site, omit it - it defaults to \"mixed\" if it cannot be inferred from the source.\r\n */\r\n transparency?: TextureTransparency;\r\n}\r\n\r\n/** Arguments supplied to [[RenderSystem.createTexture]] to create a [RenderTexture]($common).\r\n * @public\r\n * @extensions\r\n */\r\nexport interface CreateTextureArgs {\r\n /** The type of texture to create. Default: [RenderTexture.Type.Normal]($common). */\r\n type?: RenderTexture.Type;\r\n /** The image from which to create the texture. */\r\n image: TextureImage;\r\n /** The ownership of the texture. If `undefined`, the texture's lifetime will be controlled by the first [[RenderGraphic]] with which it\r\n * becomes associated, such that disposing of the graphic will also dispose of the texture.\r\n * Applications typically create textures for use with [[Decorator]]s, which recreate their graphics quite frequently.\r\n * Ideally, the decorator will take ownership of the texture by specifying \"external\" and disposing of the texture when it is no longer needed,\r\n * rather than recreating the texture every time it creates its decoration graphics.\r\n */\r\n ownership?: TextureOwnership;\r\n}\r\n\r\n/** Arguments supplied to [[RenderSystem.createTextureFromSource]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface CreateTextureFromSourceArgs {\r\n /** The type of texture to create. Default: [RenderTexture.Type.Normal]($common). */\r\n type?: RenderTexture.Type;\r\n /** The image from which to create the texture. */\r\n source: ImageSource;\r\n /** Describes the transparency of the image. If this information can be supplied, it can improve performance.\r\n * If not supplied, PNGs will default to [TextureTransparency.Mixed]($common) and JPEGs (which do not support transparency) to [TextureTransparency.Opaque]($common).\r\n */\r\n transparency?: TextureTransparency;\r\n /** The ownership of the texture. If `undefined`, the texture's lifetime will be controlled by the first [[RenderGraphic]] with which it\r\n * becomes associated, such that disposing of the graphic will also dispose of the texture.\r\n * Applications typically create textures for use with [[Decorator]]s, which recreate their graphics quite frequently.\r\n * Ideally, the decorator will take ownership of the texture by specifying \"external\" and disposing of the texture when it is no longer needed,\r\n * rather than recreating the texture every time it creates its decoration graphics.\r\n */\r\n ownership?: TextureCacheOwnership & { key: string } | \"external\";\r\n}\r\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module Rendering
|
|
3
|
+
*/
|
|
4
|
+
import { Range1d, Range2d } from "@itwin/core-geometry";
|
|
5
|
+
import { RealityMeshParams } from "./RealityMeshParams";
|
|
6
|
+
export interface UpsampledRealityMeshParams {
|
|
7
|
+
heightRange: Range1d;
|
|
8
|
+
mesh: RealityMeshParams;
|
|
9
|
+
}
|
|
10
|
+
export declare function upsampleRealityMeshParams(params: RealityMeshParams, uvSampleRange: Range2d): UpsampledRealityMeshParams;
|
|
11
|
+
//# sourceMappingURL=UpsampleRealityMeshParams.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UpsampleRealityMeshParams.d.ts","sourceRoot":"","sources":["../../../src/render/UpsampleRealityMeshParams.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EACL,OAAO,EAAE,OAAO,EACjB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,iBAAiB,EAA4B,MAAM,qBAAqB,CAAC;AAiBlF,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAMD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,iBAAiB,EAAE,aAAa,EAAE,OAAO,GAAG,0BAA0B,CAqFvH"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
/** @packageDocumentation
|
|
7
|
+
* @module Rendering
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.upsampleRealityMeshParams = void 0;
|
|
11
|
+
const core_geometry_1 = require("@itwin/core-geometry");
|
|
12
|
+
const core_common_1 = require("@itwin/core-common");
|
|
13
|
+
const RealityMeshParams_1 = require("./RealityMeshParams");
|
|
14
|
+
class UpsampleIndexMap extends Map {
|
|
15
|
+
constructor() {
|
|
16
|
+
super(...arguments);
|
|
17
|
+
this._next = 0;
|
|
18
|
+
this.indices = new Array();
|
|
19
|
+
}
|
|
20
|
+
addTriangle(indices) {
|
|
21
|
+
for (const index of indices) {
|
|
22
|
+
let mapIndex = this.get(index);
|
|
23
|
+
if (undefined === mapIndex)
|
|
24
|
+
this.set(index, mapIndex = this._next++);
|
|
25
|
+
this.indices.push(mapIndex);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
class ClipAxis {
|
|
30
|
+
constructor(vertical, lessThan, value) {
|
|
31
|
+
this.vertical = vertical;
|
|
32
|
+
this.lessThan = lessThan;
|
|
33
|
+
this.value = value;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function upsampleRealityMeshParams(params, uvSampleRange) {
|
|
37
|
+
const indexMap = new UpsampleIndexMap();
|
|
38
|
+
const uvParams = core_common_1.QParams2d.fromZeroToOne();
|
|
39
|
+
const uvLow = core_common_1.QPoint2d.create(uvSampleRange.low, uvParams);
|
|
40
|
+
const uvHigh = core_common_1.QPoint2d.create(uvSampleRange.high, uvParams);
|
|
41
|
+
const uvRange = core_geometry_1.Range2d.createXYXY(uvLow.x, uvLow.y, uvHigh.x, uvHigh.y);
|
|
42
|
+
const clipAxes = new Array();
|
|
43
|
+
const addedPoints = new Array(), addedParams = new Array(), addedNormals = new Array();
|
|
44
|
+
if (uvLow.x > 0)
|
|
45
|
+
clipAxes.push(new ClipAxis(true, false, uvLow.x));
|
|
46
|
+
if (uvHigh.x < core_common_1.Quantization.rangeScale16)
|
|
47
|
+
clipAxes.push(new ClipAxis(true, true, uvHigh.x));
|
|
48
|
+
if (uvLow.y > 0)
|
|
49
|
+
clipAxes.push(new ClipAxis(false, false, uvLow.y));
|
|
50
|
+
if (uvHigh.y < core_common_1.Quantization.rangeScale16)
|
|
51
|
+
clipAxes.push(new ClipAxis(false, true, uvHigh.y));
|
|
52
|
+
const triangleRange = core_geometry_1.Range2d.createNull();
|
|
53
|
+
for (let i = 0; i < params.indices.length;) {
|
|
54
|
+
const triangleIndices = [params.indices[i++], params.indices[i++], params.indices[i++]];
|
|
55
|
+
core_geometry_1.Range2d.createNull(triangleRange);
|
|
56
|
+
for (const index of triangleIndices) {
|
|
57
|
+
const paramIndex = 2 * index;
|
|
58
|
+
triangleRange.extendXY(params.uvs.points[paramIndex], params.uvs.points[paramIndex + 1]);
|
|
59
|
+
}
|
|
60
|
+
if (uvRange.intersectsRange(triangleRange)) {
|
|
61
|
+
if (uvRange.containsRange(triangleRange)) {
|
|
62
|
+
indexMap.addTriangle(triangleIndices);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
addClipped(params, triangleIndices, indexMap, clipAxes, 0, addedPoints, addedParams, addedNormals);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
const parentPoints = params.positions;
|
|
70
|
+
const parentParams = params.uvs;
|
|
71
|
+
const parentNormals = params.normals;
|
|
72
|
+
const parentPointCount = parentPoints.points.length / 3;
|
|
73
|
+
const zRange = core_geometry_1.Range1d.createNull();
|
|
74
|
+
const builder = new RealityMeshParams_1.RealityMeshParamsBuilder({
|
|
75
|
+
positionRange: parentPoints.params.computeRange(),
|
|
76
|
+
initialVertexCapacity: indexMap.size,
|
|
77
|
+
initialIndexCapacity: indexMap.indices.length,
|
|
78
|
+
wantNormals: parentNormals !== undefined,
|
|
79
|
+
});
|
|
80
|
+
const pos = new core_common_1.QPoint3d();
|
|
81
|
+
const uv = new core_common_1.QPoint2d();
|
|
82
|
+
for (const entry of indexMap.entries()) {
|
|
83
|
+
const parentIndex = entry[0];
|
|
84
|
+
let normal;
|
|
85
|
+
if (parentIndex < parentPointCount) {
|
|
86
|
+
const pointIndex = 3 * parentIndex;
|
|
87
|
+
pos.setFromScalars(parentPoints.points[pointIndex], parentPoints.points[pointIndex + 1], parentPoints.points[pointIndex + 2]);
|
|
88
|
+
const paramIndex = 2 * parentIndex;
|
|
89
|
+
uv.setFromScalars(parentParams.points[paramIndex], parentParams.points[paramIndex + 1]);
|
|
90
|
+
if (parentNormals)
|
|
91
|
+
normal = parentNormals[parentIndex];
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
const addedIndex = parentIndex - parentPointCount;
|
|
95
|
+
addedPoints[addedIndex].clone(pos);
|
|
96
|
+
addedParams[addedIndex].clone(uv);
|
|
97
|
+
if (addedNormals.length > 0)
|
|
98
|
+
normal = addedNormals[addedIndex];
|
|
99
|
+
}
|
|
100
|
+
builder.addQuantizedVertex(pos, uv, normal);
|
|
101
|
+
zRange.extendX(pos.z);
|
|
102
|
+
}
|
|
103
|
+
builder.addIndices(indexMap.indices);
|
|
104
|
+
const mesh = builder.finish();
|
|
105
|
+
const qParams = mesh.positions.params;
|
|
106
|
+
return {
|
|
107
|
+
mesh: builder.finish(),
|
|
108
|
+
heightRange: core_geometry_1.Range1d.createXX(core_common_1.Quantization.unquantize(zRange.low, qParams.origin.z, qParams.scale.z), core_common_1.Quantization.unquantize(zRange.high, qParams.origin.z, qParams.scale.z)),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
exports.upsampleRealityMeshParams = upsampleRealityMeshParams;
|
|
112
|
+
function interpolate(value0, value1, fraction) {
|
|
113
|
+
return value0 + (value1 - value0) * fraction;
|
|
114
|
+
}
|
|
115
|
+
function interpolateInt(value0, value1, fraction) {
|
|
116
|
+
return Math.floor(.5 + interpolate(value0, value1, fraction));
|
|
117
|
+
}
|
|
118
|
+
function interpolateQPoint3d(qPoint, qNext, fraction) {
|
|
119
|
+
return core_common_1.QPoint3d.fromScalars(interpolateInt(qPoint.x, qNext.x, fraction), interpolateInt(qPoint.y, qNext.y, fraction), interpolateInt(qPoint.z, qNext.z, fraction));
|
|
120
|
+
}
|
|
121
|
+
function interpolateQPoint2d(qPoint, qNext, fraction) {
|
|
122
|
+
return core_common_1.QPoint2d.fromScalars(interpolateInt(qPoint.x, qNext.x, fraction), interpolateInt(qPoint.y, qNext.y, fraction));
|
|
123
|
+
}
|
|
124
|
+
function interpolateOctEncodedNormal(normal0, normal1, fraction) {
|
|
125
|
+
const n0 = core_common_1.OctEncodedNormal.decodeValue(normal0);
|
|
126
|
+
const n1 = core_common_1.OctEncodedNormal.decodeValue(normal1);
|
|
127
|
+
if (undefined !== n0 && undefined !== n1) {
|
|
128
|
+
const n = core_geometry_1.Vector3d.create(interpolate(n0.x, n1.x, fraction), interpolate(n0.y, n1.y, fraction), interpolate(n0.z, n1.z, fraction));
|
|
129
|
+
n.normalizeInPlace();
|
|
130
|
+
return core_common_1.OctEncodedNormal.encode(n);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
return core_common_1.OctEncodedNormal.encode(core_geometry_1.Vector3d.create(0, 0, 1));
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
function addClipped(params, triangleIndices, indexMap, clipAxes, clipIndex, addedPoints, addedParams, addedNormals) {
|
|
137
|
+
if (clipIndex === clipAxes.length) {
|
|
138
|
+
indexMap.addTriangle(triangleIndices);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
const inside = [false, false, false];
|
|
142
|
+
const values = [0, 0, 0];
|
|
143
|
+
const clipOutput = [];
|
|
144
|
+
const parentPoints = params.positions.points;
|
|
145
|
+
const parentParams = params.uvs.points;
|
|
146
|
+
const parentNormals = params.normals;
|
|
147
|
+
const clipAxis = clipAxes[clipIndex++];
|
|
148
|
+
const clipValue = clipAxis.value;
|
|
149
|
+
const parentPointCount = parentPoints.length / 3;
|
|
150
|
+
const scratchQPoint3d = new core_common_1.QPoint3d(), scratchQPoint3d1 = new core_common_1.QPoint3d();
|
|
151
|
+
const scratchQPoint2d = new core_common_1.QPoint2d(), scratchQPoint2d1 = new core_common_1.QPoint2d();
|
|
152
|
+
const getPoint = (index, result) => {
|
|
153
|
+
if (index < parentPointCount) {
|
|
154
|
+
const pointIndex = index * 3;
|
|
155
|
+
result.setFromScalars(parentPoints[pointIndex], parentPoints[pointIndex + 1], parentPoints[pointIndex + 2]);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
addedPoints[index - parentPointCount].clone(result);
|
|
159
|
+
}
|
|
160
|
+
return result;
|
|
161
|
+
};
|
|
162
|
+
const getParam = (index, result) => {
|
|
163
|
+
if (index < parentPointCount) {
|
|
164
|
+
const pointIndex = index * 2;
|
|
165
|
+
result.setFromScalars(parentParams[pointIndex], parentParams[pointIndex + 1]);
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
addedParams[index - parentPointCount].clone(result);
|
|
169
|
+
}
|
|
170
|
+
return result;
|
|
171
|
+
};
|
|
172
|
+
const getNormal = (index) => {
|
|
173
|
+
if (!parentNormals)
|
|
174
|
+
return undefined;
|
|
175
|
+
return (index < parentPointCount) ? parentNormals[index] : addedNormals[index - parentPointCount];
|
|
176
|
+
};
|
|
177
|
+
for (let i = 0; i < 3; i++) {
|
|
178
|
+
const index = triangleIndices[i];
|
|
179
|
+
const thisParam = getParam(index, scratchQPoint2d);
|
|
180
|
+
const thisValue = clipAxis.vertical ? thisParam.x : thisParam.y;
|
|
181
|
+
values[i] = thisValue;
|
|
182
|
+
inside[i] = clipAxis.lessThan ? (thisValue < clipValue) : (thisValue > clipValue);
|
|
183
|
+
}
|
|
184
|
+
for (let i = 0; i < 3; i++) {
|
|
185
|
+
const index = triangleIndices[i];
|
|
186
|
+
const next = (i + 1) % 3;
|
|
187
|
+
if (inside[i])
|
|
188
|
+
clipOutput.push(index);
|
|
189
|
+
if (inside[i] !== inside[next]) {
|
|
190
|
+
const nextIndex = triangleIndices[next];
|
|
191
|
+
const fraction = (clipValue - values[i]) / (values[next] - values[i]);
|
|
192
|
+
clipOutput.push(parentPointCount + addedPoints.length);
|
|
193
|
+
addedPoints.push(interpolateQPoint3d(getPoint(index, scratchQPoint3d), getPoint(nextIndex, scratchQPoint3d1), fraction));
|
|
194
|
+
addedParams.push(interpolateQPoint2d(getParam(index, scratchQPoint2d), getParam(nextIndex, scratchQPoint2d1), fraction));
|
|
195
|
+
if (parentNormals)
|
|
196
|
+
addedNormals.push(interpolateOctEncodedNormal(getNormal(index), getNormal(nextIndex), fraction));
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
if (clipOutput.length > 2) {
|
|
200
|
+
addClipped(params, clipOutput.slice(0, 3), indexMap, clipAxes, clipIndex, addedPoints, addedParams, addedNormals);
|
|
201
|
+
if (clipOutput.length > 3)
|
|
202
|
+
addClipped(params, [clipOutput[0], clipOutput[2], clipOutput[3]], indexMap, clipAxes, clipIndex, addedPoints, addedParams, addedNormals);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=UpsampleRealityMeshParams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UpsampleRealityMeshParams.js","sourceRoot":"","sources":["../../../src/render/UpsampleRealityMeshParams.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport {\r\n Range1d, Range2d, Vector3d,\r\n} from \"@itwin/core-geometry\";\r\nimport {\r\n OctEncodedNormal, QParams2d, QPoint2d, QPoint3d, Quantization,\r\n} from \"@itwin/core-common\";\r\nimport { RealityMeshParams, RealityMeshParamsBuilder } from \"./RealityMeshParams\";\r\n\r\nclass UpsampleIndexMap extends Map<number, number> {\r\n private _next = 0;\r\n public indices = new Array<number>();\r\n\r\n public addTriangle(indices: number[]) {\r\n for (const index of indices) {\r\n let mapIndex = this.get(index);\r\n if (undefined === mapIndex)\r\n this.set(index, mapIndex = this._next++);\r\n\r\n this.indices.push(mapIndex);\r\n }\r\n }\r\n}\r\n\r\nexport interface UpsampledRealityMeshParams {\r\n heightRange: Range1d;\r\n mesh: RealityMeshParams;\r\n}\r\n\r\nclass ClipAxis {\r\n constructor(public vertical: boolean, public lessThan: boolean, public value: number) { }\r\n}\r\n\r\nexport function upsampleRealityMeshParams(params: RealityMeshParams, uvSampleRange: Range2d): UpsampledRealityMeshParams {\r\n const indexMap = new UpsampleIndexMap();\r\n const uvParams = QParams2d.fromZeroToOne();\r\n const uvLow = QPoint2d.create(uvSampleRange.low, uvParams);\r\n const uvHigh = QPoint2d.create(uvSampleRange.high, uvParams);\r\n const uvRange = Range2d.createXYXY(uvLow.x, uvLow.y, uvHigh.x, uvHigh.y);\r\n\r\n const clipAxes = new Array<ClipAxis>();\r\n const addedPoints = new Array<QPoint3d>(), addedParams = new Array<QPoint2d>(), addedNormals = new Array<number>();\r\n if (uvLow.x > 0)\r\n clipAxes.push(new ClipAxis(true, false, uvLow.x));\r\n if (uvHigh.x < Quantization.rangeScale16)\r\n clipAxes.push(new ClipAxis(true, true, uvHigh.x));\r\n if (uvLow.y > 0)\r\n clipAxes.push(new ClipAxis(false, false, uvLow.y));\r\n if (uvHigh.y < Quantization.rangeScale16)\r\n clipAxes.push(new ClipAxis(false, true, uvHigh.y));\r\n\r\n const triangleRange = Range2d.createNull();\r\n for (let i = 0; i < params.indices.length;) {\r\n const triangleIndices = [params.indices[i++], params.indices[i++], params.indices[i++]];\r\n\r\n Range2d.createNull(triangleRange);\r\n for (const index of triangleIndices) {\r\n const paramIndex = 2 * index;\r\n triangleRange.extendXY(params.uvs.points[paramIndex], params.uvs.points[paramIndex + 1]);\r\n }\r\n\r\n if (uvRange.intersectsRange(triangleRange)) {\r\n if (uvRange.containsRange(triangleRange)) {\r\n indexMap.addTriangle(triangleIndices);\r\n } else {\r\n addClipped(params, triangleIndices, indexMap, clipAxes, 0, addedPoints, addedParams, addedNormals);\r\n }\r\n }\r\n }\r\n\r\n const parentPoints = params.positions;\r\n const parentParams = params.uvs;\r\n const parentNormals = params.normals;\r\n const parentPointCount = parentPoints.points.length / 3;\r\n\r\n const zRange = Range1d.createNull();\r\n const builder = new RealityMeshParamsBuilder({\r\n positionRange: parentPoints.params.computeRange(),\r\n initialVertexCapacity: indexMap.size,\r\n initialIndexCapacity: indexMap.indices.length,\r\n wantNormals: parentNormals !== undefined,\r\n });\r\n\r\n const pos = new QPoint3d();\r\n const uv = new QPoint2d();\r\n for (const entry of indexMap.entries()) {\r\n const parentIndex = entry[0];\r\n let normal: number | undefined;\r\n if (parentIndex < parentPointCount) {\r\n const pointIndex = 3 * parentIndex;\r\n pos.setFromScalars(parentPoints.points[pointIndex], parentPoints.points[pointIndex + 1], parentPoints.points[pointIndex + 2]);\r\n const paramIndex = 2 * parentIndex;\r\n uv.setFromScalars(parentParams.points[paramIndex], parentParams.points[paramIndex + 1]);\r\n if (parentNormals)\r\n normal = parentNormals[parentIndex];\r\n } else {\r\n const addedIndex = parentIndex - parentPointCount;\r\n addedPoints[addedIndex].clone(pos);\r\n addedParams[addedIndex].clone(uv);\r\n if (addedNormals.length > 0)\r\n normal = addedNormals[addedIndex];\r\n }\r\n\r\n builder.addQuantizedVertex(pos, uv, normal);\r\n zRange.extendX(pos.z);\r\n }\r\n\r\n builder.addIndices(indexMap.indices);\r\n\r\n const mesh = builder.finish();\r\n const qParams = mesh.positions.params;\r\n return {\r\n mesh: builder.finish(),\r\n heightRange: Range1d.createXX(\r\n Quantization.unquantize(zRange.low, qParams.origin.z, qParams.scale.z),\r\n Quantization.unquantize(zRange.high, qParams.origin.z, qParams.scale.z)\r\n ),\r\n };\r\n}\r\n\r\nfunction interpolate(value0: number, value1: number, fraction: number) {\r\n return value0 + (value1 - value0) * fraction;\r\n}\r\n\r\nfunction interpolateInt(value0: number, value1: number, fraction: number) {\r\n return Math.floor(.5 + interpolate(value0, value1, fraction));\r\n}\r\n\r\nfunction interpolateQPoint3d(qPoint: QPoint3d, qNext: QPoint3d, fraction: number): QPoint3d {\r\n return QPoint3d.fromScalars(interpolateInt(qPoint.x, qNext.x, fraction), interpolateInt(qPoint.y, qNext.y, fraction), interpolateInt(qPoint.z, qNext.z, fraction));\r\n}\r\n\r\nfunction interpolateQPoint2d(qPoint: QPoint2d, qNext: QPoint2d, fraction: number): QPoint2d {\r\n return QPoint2d.fromScalars(interpolateInt(qPoint.x, qNext.x, fraction), interpolateInt(qPoint.y, qNext.y, fraction));\r\n}\r\n\r\nfunction interpolateOctEncodedNormal(normal0: number, normal1: number, fraction: number): number {\r\n const n0 = OctEncodedNormal.decodeValue(normal0);\r\n const n1 = OctEncodedNormal.decodeValue(normal1);\r\n if (undefined !== n0 && undefined !== n1) {\r\n const n = Vector3d.create(interpolate(n0.x, n1.x, fraction), interpolate(n0.y, n1.y, fraction), interpolate(n0.z, n1.z, fraction));\r\n n.normalizeInPlace();\r\n return OctEncodedNormal.encode(n);\r\n } else {\r\n return OctEncodedNormal.encode(Vector3d.create(0, 0, 1));\r\n }\r\n}\r\n\r\nfunction addClipped(params: RealityMeshParams, triangleIndices: number[], indexMap: UpsampleIndexMap, clipAxes: ClipAxis[], clipIndex: number, addedPoints: QPoint3d[], addedParams: QPoint2d[], addedNormals: number[]) {\r\n if (clipIndex === clipAxes.length) {\r\n indexMap.addTriangle(triangleIndices);\r\n return;\r\n }\r\n\r\n const inside = [false, false, false];\r\n const values = [0, 0, 0];\r\n const clipOutput: number[] = [];\r\n\r\n const parentPoints = params.positions.points;\r\n const parentParams = params.uvs.points;\r\n const parentNormals = params.normals;\r\n\r\n const clipAxis = clipAxes[clipIndex++];\r\n const clipValue = clipAxis.value;\r\n\r\n const parentPointCount = parentPoints.length / 3;\r\n const scratchQPoint3d = new QPoint3d(), scratchQPoint3d1 = new QPoint3d();\r\n const scratchQPoint2d = new QPoint2d(), scratchQPoint2d1 = new QPoint2d();\r\n\r\n const getPoint = (index: number, result: QPoint3d): QPoint3d => {\r\n if (index < parentPointCount) {\r\n const pointIndex = index * 3;\r\n result.setFromScalars(parentPoints[pointIndex], parentPoints[pointIndex + 1], parentPoints[pointIndex + 2]);\r\n } else {\r\n addedPoints[index - parentPointCount].clone(result);\r\n }\r\n\r\n return result;\r\n };\r\n\r\n const getParam = (index: number, result: QPoint2d): QPoint2d => {\r\n if (index < parentPointCount) {\r\n const pointIndex = index * 2;\r\n result.setFromScalars(parentParams[pointIndex], parentParams[pointIndex + 1]);\r\n } else {\r\n addedParams[index - parentPointCount].clone(result);\r\n }\r\n return result;\r\n };\r\n\r\n const getNormal = (index: number): number | undefined => {\r\n if (!parentNormals)\r\n return undefined;\r\n\r\n return (index < parentPointCount) ? parentNormals[index] : addedNormals[index - parentPointCount];\r\n };\r\n\r\n for (let i = 0; i < 3; i++) {\r\n const index = triangleIndices[i];\r\n const thisParam = getParam(index, scratchQPoint2d);\r\n const thisValue = clipAxis.vertical ? thisParam.x : thisParam.y;\r\n values[i] = thisValue;\r\n inside[i] = clipAxis.lessThan ? (thisValue < clipValue) : (thisValue > clipValue);\r\n }\r\n\r\n for (let i = 0; i < 3; i++) {\r\n const index = triangleIndices[i];\r\n const next = (i + 1) % 3;\r\n if (inside[i])\r\n clipOutput.push(index);\r\n if (inside[i] !== inside[next]) {\r\n const nextIndex = triangleIndices[next];\r\n const fraction = (clipValue - values[i]) / (values[next] - values[i]);\r\n\r\n clipOutput.push(parentPointCount + addedPoints.length);\r\n addedPoints.push(interpolateQPoint3d(getPoint(index, scratchQPoint3d), getPoint(nextIndex, scratchQPoint3d1), fraction));\r\n addedParams.push(interpolateQPoint2d(getParam(index, scratchQPoint2d), getParam(nextIndex, scratchQPoint2d1), fraction));\r\n if (parentNormals)\r\n addedNormals.push(interpolateOctEncodedNormal(getNormal(index)!, getNormal(nextIndex)!, fraction));\r\n\r\n }\r\n }\r\n\r\n if (clipOutput.length > 2) {\r\n addClipped(params, clipOutput.slice(0, 3), indexMap, clipAxes, clipIndex, addedPoints, addedParams, addedNormals);\r\n if (clipOutput.length > 3)\r\n addClipped(params, [clipOutput[0], clipOutput[2], clipOutput[3]], indexMap, clipAxes, clipIndex, addedPoints, addedParams, addedNormals);\r\n }\r\n}\r\n\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisplayParams.d.ts","sourceRoot":"","sources":["../../../../src/render/primitives/DisplayParams.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAW7I;;GAEG;AACH,qBAAa,aAAa;IACxB,gBAAuB,eAAe,EAAE,MAAM,CAAM;IACpD,SAAgB,IAAI,EAAE,aAAa,CAAC,IAAI,CAA2B;IACnE,SAAgB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1C,SAAgB,QAAQ,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAiB;IAClD,SAAgB,SAAS,EAAE,QAAQ,CAAC;IACpC,SAAgB,SAAS,EAAE,QAAQ,CAAC;IACpC,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,UAAU,EAAE,UAAU,CAAC;IACvC,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,cAAc,EAAE,OAAO,CAAC;gBAErB,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,GAAE,MAAU,EAAE,UAAU,GAAE,UAA6B,EACjJ,SAAS,GAAE,SAA0B,EAAE,QAAQ,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAE,OAAe,EAAE,cAAc,CAAC,EAAE,cAAc;IAe9J,sHAAsH;WACxG,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,aAAa,GAAG,SAAS,EAAE,cAAc,UAAQ,GAAG,aAAa;IAmBrL,wGAAwG;WAC1F,aAAa,CAAC,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,aAAa,GAAG,SAAS,GAAG,aAAa;IAI5J,0GAA0G;WAC5F,eAAe,CAAC,EAAE,EAAE,aAAa,GAAG,aAAa;IAI/D,wGAAwG;WAC1F,aAAa,CAAC,EAAE,EAAE,aAAa,GAAG,aAAa;IAI7D,IAAW,cAAc,IAAI,aAAa,CAAC,cAAc,CAYxD;IAED,IAAW,iBAAiB,IAAI,OAAO,CAEtC;IAED,IAAW,eAAe,IAAI,OAAO,CAAyE;IAC9G,IAAW,mBAAmB,IAAI,OAAO,CAA8C;IACvF,IAAW,mBAAmB,IAAI,OAAO,CAA8C;IACvF,IAAW,cAAc,IAAI,cAAc,GAAG,SAAS,CAA8F;IACrJ,IAAW,UAAU,IAAI,OAAO,CAA8C;IAE9E,qHAAqH;IAC9G,MAAM,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,GAAE,aAAa,CAAC,cAAoD,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"DisplayParams.d.ts","sourceRoot":"","sources":["../../../../src/render/primitives/DisplayParams.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAW7I;;GAEG;AACH,qBAAa,aAAa;IACxB,gBAAuB,eAAe,EAAE,MAAM,CAAM;IACpD,SAAgB,IAAI,EAAE,aAAa,CAAC,IAAI,CAA2B;IACnE,SAAgB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1C,SAAgB,QAAQ,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAiB;IAClD,SAAgB,SAAS,EAAE,QAAQ,CAAC;IACpC,SAAgB,SAAS,EAAE,QAAQ,CAAC;IACpC,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,UAAU,EAAE,UAAU,CAAC;IACvC,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,cAAc,EAAE,OAAO,CAAC;gBAErB,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,GAAE,MAAU,EAAE,UAAU,GAAE,UAA6B,EACjJ,SAAS,GAAE,SAA0B,EAAE,QAAQ,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAE,OAAe,EAAE,cAAc,CAAC,EAAE,cAAc;IAe9J,sHAAsH;WACxG,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,aAAa,GAAG,SAAS,EAAE,cAAc,UAAQ,GAAG,aAAa;IAmBrL,wGAAwG;WAC1F,aAAa,CAAC,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,aAAa,GAAG,SAAS,GAAG,aAAa;IAI5J,0GAA0G;WAC5F,eAAe,CAAC,EAAE,EAAE,aAAa,GAAG,aAAa;IAI/D,wGAAwG;WAC1F,aAAa,CAAC,EAAE,EAAE,aAAa,GAAG,aAAa;IAI7D,IAAW,cAAc,IAAI,aAAa,CAAC,cAAc,CAYxD;IAED,IAAW,iBAAiB,IAAI,OAAO,CAEtC;IAED,IAAW,eAAe,IAAI,OAAO,CAAyE;IAC9G,IAAW,mBAAmB,IAAI,OAAO,CAA8C;IACvF,IAAW,mBAAmB,IAAI,OAAO,CAA8C;IACvF,IAAW,cAAc,IAAI,cAAc,GAAG,SAAS,CAA8F;IACrJ,IAAW,UAAU,IAAI,OAAO,CAA8C;IAE9E,qHAAqH;IAC9G,MAAM,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,GAAE,aAAa,CAAC,cAAoD,GAAG,OAAO;IA+BhH,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM;IAoClD;;;OAGG;WACW,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ;CAG5D;AAED,gBAAgB;AAChB,yBAAiB,aAAa,CAAC;IAC7B,KAAY,IAAI;QACd,IAAI,IAAA;QACJ,MAAM,IAAA;QACN,IAAI,IAAA;KACL;IAED,KAAY,cAAc;QACxB,IAAI,IAAA;QACJ,OAAO,IAAA;QACP,OAAO,IAAA;KACR;IAED,KAAY,cAAc;QACxB,KAAK,IAAA;QACL,MAAM,IAAA;KACP;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisplayParams.js","sourceRoot":"","sources":["../../../../src/render/primitives/DisplayParams.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, compareBooleans, compareNumbers, comparePossiblyUndefined, compareStringsOrUndefined } from \"@itwin/core-bentley\";\r\nimport { ColorDef, FillFlags, Gradient, GraphicParams, LinePixels, RenderMaterial, RenderTexture, TextureMapping } from \"@itwin/core-common\";\r\n\r\nfunction compareMaterials(lhs?: RenderMaterial, rhs?: RenderMaterial): number {\r\n return comparePossiblyUndefined((lhMat: RenderMaterial, rhMat: RenderMaterial) => lhMat === rhMat ? 0 : compareStringsOrUndefined(lhMat.key, rhMat.key), lhs, rhs);\r\n}\r\nfunction compareTextureMappings(_lhs?: TextureMapping, _rhs?: TextureMapping): number {\r\n // ###TODO\r\n // return comparePossiblyUndefined((lhTex: TextureMapping, rhTex: TextureMapping) => lhTex === rhTex ? 0 : compareStringsOrUndefined(lhTex.texture.key, rhTex.texture.key), lhs, rhs);\r\n return 0;\r\n}\r\n\r\n/** This class is used to determine if things can be batched together for display.\r\n * @internal\r\n */\r\nexport class DisplayParams {\r\n public static readonly minTransparency: number = 15; // Threshold below which we consider a color fully opaque\r\n public readonly type: DisplayParams.Type = DisplayParams.Type.Mesh;\r\n public readonly material?: RenderMaterial; // meshes only\r\n public readonly gradient?: Gradient.Symb;\r\n private readonly _textureMapping?: TextureMapping; // only if material is undefined - e.g. glyphs, gradients\r\n public readonly lineColor: ColorDef; // all types of geometry (edge color for meshes)\r\n public readonly fillColor: ColorDef; // meshes only\r\n public readonly width: number; // linear and mesh (edges)\r\n public readonly linePixels: LinePixels; // linear and mesh (edges)\r\n public readonly fillFlags: FillFlags; // meshes only\r\n public readonly ignoreLighting: boolean; // always true for text and linear geometry; true for meshes only if normals not desired\r\n\r\n public constructor(type: DisplayParams.Type, lineColor: ColorDef, fillColor: ColorDef, width: number = 0, linePixels: LinePixels = LinePixels.Solid,\r\n fillFlags: FillFlags = FillFlags.None, material?: RenderMaterial, gradient?: Gradient.Symb, ignoreLighting: boolean = false, textureMapping?: TextureMapping) {\r\n this.type = type;\r\n this.material = material;\r\n this.gradient = gradient;\r\n this.lineColor = DisplayParams.adjustTransparency(lineColor);\r\n this.fillColor = DisplayParams.adjustTransparency(fillColor);\r\n this.width = width;\r\n this.linePixels = linePixels;\r\n this.fillFlags = fillFlags;\r\n this.ignoreLighting = ignoreLighting;\r\n this._textureMapping = textureMapping;\r\n\r\n assert(undefined === material || undefined === textureMapping);\r\n }\r\n\r\n /** Creates a DisplayParams object for a particular type (mesh, linear, text) based on the specified GraphicParams. */\r\n public static createForType(type: DisplayParams.Type, gf: GraphicParams, resolveGradient?: (grad: Gradient.Symb) => RenderTexture | undefined, ignoreLighting = false): DisplayParams {\r\n const lineColor = DisplayParams.adjustTransparency(gf.lineColor);\r\n switch (type) {\r\n case DisplayParams.Type.Mesh: {\r\n let gradientMapping: TextureMapping | undefined;\r\n if (undefined !== gf.gradient && undefined !== resolveGradient) {\r\n const gradientTexture = resolveGradient(gf.gradient);\r\n if (undefined !== gradientTexture)\r\n gradientMapping = new TextureMapping(gradientTexture, new TextureMapping.Params());\r\n }\r\n return new DisplayParams(type, lineColor, DisplayParams.adjustTransparency(gf.fillColor), gf.rasterWidth, gf.linePixels, gf.fillFlags, gf.material, gf.gradient, ignoreLighting, gradientMapping);\r\n }\r\n case DisplayParams.Type.Linear:\r\n return new DisplayParams(type, lineColor, lineColor, gf.rasterWidth, gf.linePixels);\r\n default: // DisplayParams.Type.Text\r\n return new DisplayParams(type, lineColor, lineColor, 0, LinePixels.Solid, FillFlags.Always, undefined, undefined, true);\r\n }\r\n }\r\n\r\n /** Creates a DisplayParams object that describes mesh geometry based on the specified GraphicParams. */\r\n public static createForMesh(gf: GraphicParams, ignoreLighting: boolean, resolveGradient?: (grad: Gradient.Symb) => RenderTexture | undefined): DisplayParams {\r\n return DisplayParams.createForType(DisplayParams.Type.Mesh, gf, resolveGradient, ignoreLighting);\r\n }\r\n\r\n /** Creates a DisplayParams object that describes linear geometry based on the specified GraphicParams. */\r\n public static createForLinear(gf: GraphicParams): DisplayParams {\r\n return DisplayParams.createForType(DisplayParams.Type.Linear, gf);\r\n }\r\n\r\n /** Creates a DisplayParams object that describes text geometry based on the specified GraphicParams. */\r\n public static createForText(gf: GraphicParams): DisplayParams {\r\n return DisplayParams.createForType(DisplayParams.Type.Text, gf);\r\n }\r\n\r\n public get regionEdgeType(): DisplayParams.RegionEdgeType {\r\n if (this.hasBlankingFill)\r\n return DisplayParams.RegionEdgeType.None;\r\n\r\n if (this.gradient !== undefined && undefined !== this.gradient.flags) {\r\n // Even if the gradient is not outlined, produce an outline to be displayed as the region's edges when fill ViewFlag is off.\r\n const gradFlags: Gradient.Flags = this.gradient.flags;\r\n if (0 !== (gradFlags & Gradient.Flags.Outline) || FillFlags.None === (this.fillFlags & FillFlags.Always))\r\n return DisplayParams.RegionEdgeType.Outline;\r\n return DisplayParams.RegionEdgeType.None;\r\n }\r\n return (!this.fillColor.equals(this.lineColor)) ? DisplayParams.RegionEdgeType.Outline : DisplayParams.RegionEdgeType.Default;\r\n }\r\n\r\n public get wantRegionOutline(): boolean {\r\n return DisplayParams.RegionEdgeType.Outline === this.regionEdgeType;\r\n }\r\n\r\n public get hasBlankingFill(): boolean { return FillFlags.Blanking === (this.fillFlags & FillFlags.Blanking); }\r\n public get hasFillTransparency(): boolean { return 255 !== this.fillColor.getAlpha(); }\r\n public get hasLineTransparency(): boolean { return 255 !== this.lineColor.getAlpha(); }\r\n public get textureMapping(): TextureMapping | undefined { return undefined !== this.material ? this.material.textureMapping : this._textureMapping; }\r\n public get isTextured(): boolean { return undefined !== this.textureMapping; }\r\n\r\n /** Determines if the properties of this DisplayParams object are equal to those of another DisplayParams object. */\r\n public equals(rhs: DisplayParams, purpose: DisplayParams.ComparePurpose = DisplayParams.ComparePurpose.Strict): boolean {\r\n if (DisplayParams.ComparePurpose.Merge === purpose)\r\n return 0 === this.compareForMerge(rhs);\r\n else if (rhs === this)\r\n return true;\r\n\r\n if (this.type !== rhs.type) return false;\r\n if (this.ignoreLighting !== rhs.ignoreLighting) return false;\r\n if (this.width !== rhs.width) return false;\r\n if (this.linePixels !== rhs.linePixels) return false;\r\n if (this.fillFlags !== rhs.fillFlags) return false;\r\n if (this.wantRegionOutline !== rhs.wantRegionOutline) return false;\r\n if (this.material !== rhs.material) return false;\r\n if (this.textureMapping !== rhs.textureMapping) return false;\r\n\r\n if (!this.fillColor.equals(rhs.fillColor)) return false;\r\n if (!this.lineColor.equals(rhs.lineColor)) return false;\r\n return true;\r\n }\r\n\r\n public compareForMerge(rhs: DisplayParams): number {\r\n if (rhs === this)\r\n return 0;\r\n\r\n let diff = compareNumbers(this.type, rhs.type);\r\n if (0 === diff) {\r\n diff = compareBooleans(this.ignoreLighting, rhs.ignoreLighting);\r\n if (0 === diff) {\r\n diff = compareNumbers(this.width, rhs.width);\r\n if (0 === diff) {\r\n diff = compareNumbers(this.linePixels, rhs.linePixels);\r\n if (0 === diff) {\r\n diff = compareNumbers(this.fillFlags, rhs.fillFlags);\r\n if (0 === diff) {\r\n diff = compareBooleans(this.wantRegionOutline, rhs.wantRegionOutline);\r\n if (0 === diff) {\r\n diff = compareBooleans(this.hasFillTransparency, rhs.hasFillTransparency);\r\n if (0 === diff) {\r\n diff = compareBooleans(this.hasLineTransparency, rhs.hasLineTransparency);\r\n if (0 === diff) {\r\n diff = compareMaterials(this.material, rhs.material);\r\n if (0 === diff && undefined === this.material && this.isTextured) {\r\n diff = compareTextureMappings(this.textureMapping, rhs.textureMapping);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return diff;\r\n }\r\n\r\n /**\r\n * Given a ColorDef object, check its transparency and if it falls below the minimum, mark the color as fully opaque.\r\n * @return The original reference to the color provided, which has possibly been modified.\r\n */\r\n public static adjustTransparency(color: ColorDef): ColorDef {\r\n return (color.colors.t < DisplayParams.minTransparency) ? color.withTransparency(0) : color;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport namespace DisplayParams { // eslint-disable-line no-redeclare\r\n export enum Type {\r\n Mesh,\r\n Linear,\r\n Text,\r\n }\r\n\r\n export enum RegionEdgeType {\r\n None,\r\n Default,\r\n Outline,\r\n }\r\n\r\n export enum ComparePurpose {\r\n Merge, // considers colors equivalent if both have or both lack transparency\r\n Strict, // compares all members\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"DisplayParams.js","sourceRoot":"","sources":["../../../../src/render/primitives/DisplayParams.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, compareBooleans, compareNumbers, comparePossiblyUndefined, compareStringsOrUndefined } from \"@itwin/core-bentley\";\r\nimport { ColorDef, FillFlags, Gradient, GraphicParams, LinePixels, RenderMaterial, RenderTexture, TextureMapping } from \"@itwin/core-common\";\r\n\r\nfunction compareMaterials(lhs?: RenderMaterial, rhs?: RenderMaterial): number {\r\n return comparePossiblyUndefined((lhMat: RenderMaterial, rhMat: RenderMaterial) => lhMat === rhMat ? 0 : compareStringsOrUndefined(lhMat.key, rhMat.key), lhs, rhs);\r\n}\r\nfunction compareTextureMappings(_lhs?: TextureMapping, _rhs?: TextureMapping): number {\r\n // ###TODO\r\n // return comparePossiblyUndefined((lhTex: TextureMapping, rhTex: TextureMapping) => lhTex === rhTex ? 0 : compareStringsOrUndefined(lhTex.texture.key, rhTex.texture.key), lhs, rhs);\r\n return 0;\r\n}\r\n\r\n/** This class is used to determine if things can be batched together for display.\r\n * @internal\r\n */\r\nexport class DisplayParams {\r\n public static readonly minTransparency: number = 15; // Threshold below which we consider a color fully opaque\r\n public readonly type: DisplayParams.Type = DisplayParams.Type.Mesh;\r\n public readonly material?: RenderMaterial; // meshes only\r\n public readonly gradient?: Gradient.Symb;\r\n private readonly _textureMapping?: TextureMapping; // only if material is undefined - e.g. glyphs, gradients\r\n public readonly lineColor: ColorDef; // all types of geometry (edge color for meshes)\r\n public readonly fillColor: ColorDef; // meshes only\r\n public readonly width: number; // linear and mesh (edges)\r\n public readonly linePixels: LinePixels; // linear and mesh (edges)\r\n public readonly fillFlags: FillFlags; // meshes only\r\n public readonly ignoreLighting: boolean; // always true for text and linear geometry; true for meshes only if normals not desired\r\n\r\n public constructor(type: DisplayParams.Type, lineColor: ColorDef, fillColor: ColorDef, width: number = 0, linePixels: LinePixels = LinePixels.Solid,\r\n fillFlags: FillFlags = FillFlags.None, material?: RenderMaterial, gradient?: Gradient.Symb, ignoreLighting: boolean = false, textureMapping?: TextureMapping) {\r\n this.type = type;\r\n this.material = material;\r\n this.gradient = gradient;\r\n this.lineColor = DisplayParams.adjustTransparency(lineColor);\r\n this.fillColor = DisplayParams.adjustTransparency(fillColor);\r\n this.width = width;\r\n this.linePixels = linePixels;\r\n this.fillFlags = fillFlags;\r\n this.ignoreLighting = ignoreLighting;\r\n this._textureMapping = textureMapping;\r\n\r\n assert(undefined === material || undefined === textureMapping);\r\n }\r\n\r\n /** Creates a DisplayParams object for a particular type (mesh, linear, text) based on the specified GraphicParams. */\r\n public static createForType(type: DisplayParams.Type, gf: GraphicParams, resolveGradient?: (grad: Gradient.Symb) => RenderTexture | undefined, ignoreLighting = false): DisplayParams {\r\n const lineColor = DisplayParams.adjustTransparency(gf.lineColor);\r\n switch (type) {\r\n case DisplayParams.Type.Mesh: {\r\n let gradientMapping: TextureMapping | undefined;\r\n if (undefined !== gf.gradient && undefined !== resolveGradient) {\r\n const gradientTexture = resolveGradient(gf.gradient);\r\n if (undefined !== gradientTexture)\r\n gradientMapping = new TextureMapping(gradientTexture, new TextureMapping.Params());\r\n }\r\n return new DisplayParams(type, lineColor, DisplayParams.adjustTransparency(gf.fillColor), gf.rasterWidth, gf.linePixels, gf.fillFlags, gf.material, gf.gradient, ignoreLighting, gradientMapping);\r\n }\r\n case DisplayParams.Type.Linear:\r\n return new DisplayParams(type, lineColor, lineColor, gf.rasterWidth, gf.linePixels);\r\n default: // DisplayParams.Type.Text\r\n return new DisplayParams(type, lineColor, lineColor, 0, LinePixels.Solid, FillFlags.Always, undefined, undefined, true);\r\n }\r\n }\r\n\r\n /** Creates a DisplayParams object that describes mesh geometry based on the specified GraphicParams. */\r\n public static createForMesh(gf: GraphicParams, ignoreLighting: boolean, resolveGradient?: (grad: Gradient.Symb) => RenderTexture | undefined): DisplayParams {\r\n return DisplayParams.createForType(DisplayParams.Type.Mesh, gf, resolveGradient, ignoreLighting);\r\n }\r\n\r\n /** Creates a DisplayParams object that describes linear geometry based on the specified GraphicParams. */\r\n public static createForLinear(gf: GraphicParams): DisplayParams {\r\n return DisplayParams.createForType(DisplayParams.Type.Linear, gf);\r\n }\r\n\r\n /** Creates a DisplayParams object that describes text geometry based on the specified GraphicParams. */\r\n public static createForText(gf: GraphicParams): DisplayParams {\r\n return DisplayParams.createForType(DisplayParams.Type.Text, gf);\r\n }\r\n\r\n public get regionEdgeType(): DisplayParams.RegionEdgeType {\r\n if (this.hasBlankingFill)\r\n return DisplayParams.RegionEdgeType.None;\r\n\r\n if (this.gradient !== undefined && undefined !== this.gradient.flags) {\r\n // Even if the gradient is not outlined, produce an outline to be displayed as the region's edges when fill ViewFlag is off.\r\n const gradFlags: Gradient.Flags = this.gradient.flags;\r\n if (0 !== (gradFlags & Gradient.Flags.Outline) || FillFlags.None === (this.fillFlags & FillFlags.Always))\r\n return DisplayParams.RegionEdgeType.Outline;\r\n return DisplayParams.RegionEdgeType.None;\r\n }\r\n return (!this.fillColor.equals(this.lineColor)) ? DisplayParams.RegionEdgeType.Outline : DisplayParams.RegionEdgeType.Default;\r\n }\r\n\r\n public get wantRegionOutline(): boolean {\r\n return DisplayParams.RegionEdgeType.Outline === this.regionEdgeType;\r\n }\r\n\r\n public get hasBlankingFill(): boolean { return FillFlags.Blanking === (this.fillFlags & FillFlags.Blanking); }\r\n public get hasFillTransparency(): boolean { return 255 !== this.fillColor.getAlpha(); }\r\n public get hasLineTransparency(): boolean { return 255 !== this.lineColor.getAlpha(); }\r\n public get textureMapping(): TextureMapping | undefined { return undefined !== this.material ? this.material.textureMapping : this._textureMapping; }\r\n public get isTextured(): boolean { return undefined !== this.textureMapping; }\r\n\r\n /** Determines if the properties of this DisplayParams object are equal to those of another DisplayParams object. */\r\n public equals(rhs: DisplayParams, purpose: DisplayParams.ComparePurpose = DisplayParams.ComparePurpose.Strict): boolean {\r\n if (DisplayParams.ComparePurpose.Merge === purpose)\r\n return 0 === this.compareForMerge(rhs);\r\n else if (rhs === this)\r\n return true;\r\n\r\n if (this.type !== rhs.type)\r\n return false;\r\n if (this.ignoreLighting !== rhs.ignoreLighting)\r\n return false;\r\n if (this.width !== rhs.width)\r\n return false;\r\n if (this.linePixels !== rhs.linePixels)\r\n return false;\r\n if (this.fillFlags !== rhs.fillFlags)\r\n return false;\r\n if (this.wantRegionOutline !== rhs.wantRegionOutline)\r\n return false;\r\n if (this.material !== rhs.material)\r\n return false;\r\n if (this.textureMapping !== rhs.textureMapping)\r\n return false;\r\n\r\n if (!this.fillColor.equals(rhs.fillColor))\r\n return false;\r\n if (!this.lineColor.equals(rhs.lineColor))\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n public compareForMerge(rhs: DisplayParams): number {\r\n if (rhs === this)\r\n return 0;\r\n\r\n let diff = compareNumbers(this.type, rhs.type);\r\n if (0 === diff) {\r\n diff = compareBooleans(this.ignoreLighting, rhs.ignoreLighting);\r\n if (0 === diff) {\r\n diff = compareNumbers(this.width, rhs.width);\r\n if (0 === diff) {\r\n diff = compareNumbers(this.linePixels, rhs.linePixels);\r\n if (0 === diff) {\r\n diff = compareNumbers(this.fillFlags, rhs.fillFlags);\r\n if (0 === diff) {\r\n diff = compareBooleans(this.wantRegionOutline, rhs.wantRegionOutline);\r\n if (0 === diff) {\r\n diff = compareBooleans(this.hasFillTransparency, rhs.hasFillTransparency);\r\n if (0 === diff) {\r\n diff = compareBooleans(this.hasLineTransparency, rhs.hasLineTransparency);\r\n if (0 === diff) {\r\n diff = compareMaterials(this.material, rhs.material);\r\n if (0 === diff && undefined === this.material && this.isTextured) {\r\n diff = compareTextureMappings(this.textureMapping, rhs.textureMapping);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return diff;\r\n }\r\n\r\n /**\r\n * Given a ColorDef object, check its transparency and if it falls below the minimum, mark the color as fully opaque.\r\n * @return The original reference to the color provided, which has possibly been modified.\r\n */\r\n public static adjustTransparency(color: ColorDef): ColorDef {\r\n return (color.colors.t < DisplayParams.minTransparency) ? color.withTransparency(0) : color;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport namespace DisplayParams { // eslint-disable-line no-redeclare\r\n export enum Type {\r\n Mesh,\r\n Linear,\r\n Text,\r\n }\r\n\r\n export enum RegionEdgeType {\r\n None,\r\n Default,\r\n Outline,\r\n }\r\n\r\n export enum ComparePurpose {\r\n Merge, // considers colors equivalent if both have or both lack transparency\r\n Strict, // compares all members\r\n }\r\n}\r\n"]}
|
|
@@ -2,16 +2,12 @@
|
|
|
2
2
|
* @module Rendering
|
|
3
3
|
*/
|
|
4
4
|
import { FeatureIndex, QParams3d } from "@itwin/core-common";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
points: Uint16Array | Uint8Array;
|
|
9
|
-
pointParams: QParams3d;
|
|
5
|
+
export interface PointCloudArgs {
|
|
6
|
+
positions: Uint8Array | Uint16Array;
|
|
7
|
+
qparams: QParams3d;
|
|
10
8
|
colors: Uint8Array;
|
|
11
9
|
features: FeatureIndex;
|
|
12
10
|
voxelSize: number;
|
|
13
|
-
|
|
14
|
-
minimumPointSize: number;
|
|
15
|
-
constructor(points: Uint16Array | Uint8Array, pointParams: QParams3d, colors: Uint8Array, features: Mesh.Features, voxelSize?: number, colorIsBgr?: boolean, minimumPointSize?: number);
|
|
11
|
+
colorFormat: "bgr" | "rgb";
|
|
16
12
|
}
|
|
17
13
|
//# sourceMappingURL=PointCloudPrimitive.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointCloudPrimitive.d.ts","sourceRoot":"","sources":["../../../../src/render/primitives/PointCloudPrimitive.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"PointCloudPrimitive.d.ts","sourceRoot":"","sources":["../../../../src/render/primitives/PointCloudPrimitive.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,UAAU,GAAG,WAAW,CAAC;IACpC,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,KAAK,GAAG,KAAK,CAAC;CAC5B"}
|
|
@@ -7,20 +7,4 @@
|
|
|
7
7
|
* @module Rendering
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.PointCloudArgs = void 0;
|
|
11
|
-
const core_common_1 = require("@itwin/core-common");
|
|
12
|
-
/** @internal */
|
|
13
|
-
class PointCloudArgs {
|
|
14
|
-
constructor(points, pointParams, colors, features, voxelSize = -1, colorIsBgr = false, minimumPointSize = 1) {
|
|
15
|
-
this.features = new core_common_1.FeatureIndex();
|
|
16
|
-
this.points = points;
|
|
17
|
-
this.colors = colors;
|
|
18
|
-
this.pointParams = pointParams;
|
|
19
|
-
this.voxelSize = voxelSize;
|
|
20
|
-
this.colorIsBgr = colorIsBgr;
|
|
21
|
-
this.minimumPointSize = minimumPointSize;
|
|
22
|
-
features.toFeatureIndex(this.features);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
exports.PointCloudArgs = PointCloudArgs;
|
|
26
10
|
//# sourceMappingURL=PointCloudPrimitive.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointCloudPrimitive.js","sourceRoot":"","sources":["../../../../src/render/primitives/PointCloudPrimitive.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG
|
|
1
|
+
{"version":3,"file":"PointCloudPrimitive.js","sourceRoot":"","sources":["../../../../src/render/primitives/PointCloudPrimitive.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 { FeatureIndex, QParams3d } from \"@itwin/core-common\";\r\n\r\nexport interface PointCloudArgs {\r\n positions: Uint8Array | Uint16Array;\r\n qparams: QParams3d;\r\n colors: Uint8Array;\r\n features: FeatureIndex;\r\n voxelSize: number;\r\n colorFormat: \"bgr\" | \"rgb\";\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Polyface.d.ts","sourceRoot":"","sources":["../../../../src/render/primitives/Polyface.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,gBAAgB;AAChB,qBAAa,iBAAiB;IAC5B,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C,OAAO,CAAC,SAAS,CAAkB;IACnC,SAAgB,YAAY,EAAE,OAAO,CAAC;IACtC,SAAgB,QAAQ,EAAE,OAAO,CAAC;IAElC,IAAW,eAAe,oBAA6B;WAEzC,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,eAAe,EAAE,YAAY,GAAE,OAAc,EAAE,QAAQ,GAAE,OAAe;IAIxH,OAAO;IAOA,KAAK,IAAI,iBAAiB;IAC1B,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;CAC5C;AAED,gBAAgB;AAChB,qBAAa,qBAAsB,SAAQ,KAAK,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"Polyface.d.ts","sourceRoot":"","sources":["../../../../src/render/primitives/Polyface.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,gBAAgB;AAChB,qBAAa,iBAAiB;IAC5B,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C,OAAO,CAAC,SAAS,CAAkB;IACnC,SAAgB,YAAY,EAAE,OAAO,CAAC;IACtC,SAAgB,QAAQ,EAAE,OAAO,CAAC;IAElC,IAAW,eAAe,oBAA6B;WAEzC,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,eAAe,EAAE,YAAY,GAAE,OAAc,EAAE,QAAQ,GAAE,OAAe;IAIxH,OAAO;IAOA,KAAK,IAAI,iBAAiB;IAC1B,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;CAC5C;AAED,gBAAgB;AAChB,qBAAa,qBAAsB,SAAQ,KAAK,CAAC,iBAAiB,CAAC;gBACrD,GAAG,IAAI,EAAE,iBAAiB,EAAE;CAGzC"}
|
|
@@ -26,7 +26,9 @@ class PolyfacePrimitive {
|
|
|
26
26
|
exports.PolyfacePrimitive = PolyfacePrimitive;
|
|
27
27
|
/** @internal */
|
|
28
28
|
class PolyfacePrimitiveList extends Array {
|
|
29
|
-
constructor(...args) {
|
|
29
|
+
constructor(...args) {
|
|
30
|
+
super(...args);
|
|
31
|
+
}
|
|
30
32
|
}
|
|
31
33
|
exports.PolyfacePrimitiveList = PolyfacePrimitiveList;
|
|
32
34
|
//# sourceMappingURL=Polyface.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Polyface.js","sourceRoot":"","sources":["../../../../src/render/primitives/Polyface.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAKH,gBAAgB;AAChB,MAAa,iBAAiB;IAY5B,YAAoB,MAAqB,EAAE,EAAmB,EAAE,YAAqB,EAAE,QAAiB;QACtG,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAXD,IAAW,eAAe,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhD,MAAM,CAAC,MAAM,CAAC,MAAqB,EAAE,EAAmB,EAAE,eAAwB,IAAI,EAAE,WAAoB,KAAK;QACtH,OAAO,IAAI,iBAAiB,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;IASM,KAAK,KAAwB,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1I,SAAS,CAAC,KAAgB,IAAa,OAAO,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAClG;AArBD,8CAqBC;AAED,gBAAgB;AAChB,MAAa,qBAAsB,SAAQ,KAAwB;
|
|
1
|
+
{"version":3,"file":"Polyface.js","sourceRoot":"","sources":["../../../../src/render/primitives/Polyface.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAKH,gBAAgB;AAChB,MAAa,iBAAiB;IAY5B,YAAoB,MAAqB,EAAE,EAAmB,EAAE,YAAqB,EAAE,QAAiB;QACtG,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAXD,IAAW,eAAe,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhD,MAAM,CAAC,MAAM,CAAC,MAAqB,EAAE,EAAmB,EAAE,eAAwB,IAAI,EAAE,WAAoB,KAAK;QACtH,OAAO,IAAI,iBAAiB,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;IASM,KAAK,KAAwB,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1I,SAAS,CAAC,KAAgB,IAAa,OAAO,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAClG;AArBD,8CAqBC;AAED,gBAAgB;AAChB,MAAa,qBAAsB,SAAQ,KAAwB;IACjE,YAAY,GAAG,IAAyB;QACtC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACjB,CAAC;CACF;AAJD,sDAIC","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 { IndexedPolyface, Transform } from \"@itwin/core-geometry\";\r\nimport { DisplayParams } from \"./DisplayParams\";\r\n\r\n/** @internal */\r\nexport class PolyfacePrimitive {\r\n public readonly displayParams: DisplayParams;\r\n private _polyface: IndexedPolyface;\r\n public readonly displayEdges: boolean;\r\n public readonly isPlanar: boolean;\r\n\r\n public get indexedPolyface() { return this._polyface; }\r\n\r\n public static create(params: DisplayParams, pf: IndexedPolyface, displayEdges: boolean = true, isPlanar: boolean = false) {\r\n return new PolyfacePrimitive(params, pf, displayEdges, isPlanar);\r\n }\r\n\r\n private constructor(params: DisplayParams, pf: IndexedPolyface, displayEdges: boolean, isPlanar: boolean) {\r\n this.displayParams = params;\r\n this._polyface = pf;\r\n this.displayEdges = displayEdges;\r\n this.isPlanar = isPlanar;\r\n }\r\n\r\n public clone(): PolyfacePrimitive { return new PolyfacePrimitive(this.displayParams, this._polyface.clone(), this.displayEdges, this.isPlanar); }\r\n public transform(trans: Transform): boolean { return this._polyface.tryTransformInPlace(trans); }\r\n}\r\n\r\n/** @internal */\r\nexport class PolyfacePrimitiveList extends Array<PolyfacePrimitive> {\r\n constructor(...args: PolyfacePrimitive[]) {\r\n super(...args);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Primitives.d.ts","sourceRoot":"","sources":["../../../../src/render/primitives/Primitives.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAU,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,gBAAgB;AAChB,yBAAiB,cAAc,CAAC;IACvB,MAAM,MAAM,MAAM,CAAC;IACnB,MAAM,SAAS,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,oBAAY,UAAU;IACpB,KAAK,IAAA;IACL,MAAM,IAAA;IACN,kBAAkB,IAAA;CACnB;AAED,gBAAgB;AAChB,oBAAY,YAAY;IAAG,GAAG,IAAI;IAAE,EAAE,IAAI;CAAE;AAE5C,gBAAgB;AAChB,oBAAY,aAAa;IAAG,GAAG,IAAI;IAAE,EAAE,IAAI;CAAE;AAE7C,gBAAgB;AAChB,oBAAY,aAAa;IAAG,GAAG,IAAI;IAAE,EAAE,IAAI;CAAE;AAE7C,gBAAgB;AAChB,qBAAa,eAAe;IAC1B,SAAgB,OAAO,EAAE,UAAU,CAAC;IACpC,SAAgB,QAAQ,EAAE,YAAY,CAAC;IACvC,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C,SAAgB,KAAK,EAAE,aAAa,CAAC;gBACzB,KAAK,EAAE,aAAa,EAAE,OAAO,GAAE,UAA8B,EAAE,QAAQ,GAAE,YAA8B,EAAE,aAAa,GAAE,aAAgC;
|
|
1
|
+
{"version":3,"file":"Primitives.d.ts","sourceRoot":"","sources":["../../../../src/render/primitives/Primitives.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAU,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,gBAAgB;AAChB,yBAAiB,cAAc,CAAC;IACvB,MAAM,MAAM,MAAM,CAAC;IACnB,MAAM,SAAS,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,oBAAY,UAAU;IACpB,KAAK,IAAA;IACL,MAAM,IAAA;IACN,kBAAkB,IAAA;CACnB;AAED,gBAAgB;AAChB,oBAAY,YAAY;IAAG,GAAG,IAAI;IAAE,EAAE,IAAI;CAAE;AAE5C,gBAAgB;AAChB,oBAAY,aAAa;IAAG,GAAG,IAAI;IAAE,EAAE,IAAI;CAAE;AAE7C,gBAAgB;AAChB,oBAAY,aAAa;IAAG,GAAG,IAAI;IAAE,EAAE,IAAI;CAAE;AAE7C,gBAAgB;AAChB,qBAAa,eAAe;IAC1B,SAAgB,OAAO,EAAE,UAAU,CAAC;IACpC,SAAgB,QAAQ,EAAE,YAAY,CAAC;IACvC,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C,SAAgB,KAAK,EAAE,aAAa,CAAC;gBACzB,KAAK,EAAE,aAAa,EAAE,OAAO,GAAE,UAA8B,EAAE,QAAQ,GAAE,YAA8B,EAAE,aAAa,GAAE,aAAgC;IAOpK,IAAW,gBAAgB,IAAI,OAAO,CAA+C;IACrF,IAAW,iBAAiB,IAAI,OAAO,CAAqD;IAC5F,IAAW,SAAS,IAAI,OAAO,CAA6C;WAE9D,uBAAuB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,UAA8B,EAAE,QAAQ,GAAE,YAA8B,GAAG,eAAe;CAGlK;AAED,gBAAgB;AAChB,qBAAa,QAAQ;IACnB,SAAgB,OAAO,cAAsB;IAC7C,SAAgB,OAAO,YAAsB;IACtC,WAAW,EAAE,OAAO,CAAC;gBAET,WAAW,GAAE,OAAc;IAEvC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAM1C,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO;IAMpD,aAAa,CAAC,KAAK,EAAE,MAAM;IAKlC,IAAW,YAAY,YAAgI;CACxJ;AAED,gBAAgB;AAChB,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,SAAgB,OAAO,EAAE,MAAM,EAAE,CAAM;IAEvC,IAAW,MAAM,IAAI,MAAM,CAA+B;IAC1D,IAAW,OAAO,IAAI,OAAO,CAA8B;IAEpD,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAYrC,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,WAAW,GAAG,WAAW,EAAE,KAAK,GAAE,MAAU;IASpF,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,GAAG,QAAQ;CAmB5D;AAED,gBAAgB;AAChB,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;gBAElC,QAAQ,EAAE,QAAQ;IAwC9B,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM;CAUzC;AAED,gBAAgB;AAChB,qBAAa,WAAY,SAAQ,WAAW,CAAC,WAAW,CAAC;;IAIhD,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,GAAG,GAAG,MAAM;CAG1F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Primitives.js","sourceRoot":"","sources":["../../../../src/render/primitives/Primitives.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, SortedArray } from \"@itwin/core-bentley\";\r\nimport { GraphicBuilder } from \"../GraphicBuilder\";\r\n\r\n/** @internal */\r\nexport namespace ToleranceRatio {\r\n export const vertex = 0.1;\r\n export const facetArea = 0.1;\r\n}\r\n\r\n/** Specifies under what circumstances a GeometryAccumulator should generate normals.\r\n * @internal\r\n */\r\nexport enum NormalMode {\r\n Never, // Never generate normals\r\n Always, // Always generate normals\r\n CurvedSurfacesOnly, // Generate normals only for curved surfaces\r\n}\r\n\r\n/** @internal */\r\nexport enum SurfacesOnly { Yes = 1, No = 0 } // Yes indicates polylines will not be generated, only meshes.\r\n\r\n/** @internal */\r\nexport enum PreserveOrder { Yes = 1, No = 0 } // Yes indicates primitives will not be merged, and the order in which they were added to the GraphicBuilder will be preserved.\r\n\r\n/** @internal */\r\nexport enum GenerateEdges { Yes = 1, No = 0 } // Yes indicates edges will be generated for surfaces\r\n\r\n/** @internal */\r\nexport class GeometryOptions {\r\n public readonly normals: NormalMode;\r\n public readonly surfaces: SurfacesOnly;\r\n public readonly preserveOrder: PreserveOrder;\r\n public readonly edges: GenerateEdges;\r\n constructor(edges: GenerateEdges, normals: NormalMode = NormalMode.Always, surfaces: SurfacesOnly = SurfacesOnly.No, preserveOrder: PreserveOrder = PreserveOrder.No) {\r\n this.normals = normals; this.surfaces = surfaces; this.preserveOrder = preserveOrder; this.edges = edges;\r\n }\r\n\r\n public get wantSurfacesOnly(): boolean { return this.surfaces === SurfacesOnly.Yes; }\r\n public get wantPreserveOrder(): boolean { return this.preserveOrder === PreserveOrder.Yes; }\r\n public get wantEdges(): boolean { return this.edges === GenerateEdges.Yes; }\r\n\r\n public static createForGraphicBuilder(params: GraphicBuilder, normals: NormalMode = NormalMode.Always, surfaces: SurfacesOnly = SurfacesOnly.No): GeometryOptions {\r\n return new GeometryOptions(params.wantEdges ? GenerateEdges.Yes : GenerateEdges.No, normals, surfaces, params.preserveOrder ? PreserveOrder.Yes : PreserveOrder.No);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class Triangle {\r\n public readonly indices = new Uint32Array(3);\r\n public readonly visible = [true, true, true];\r\n public singleSided: boolean;\r\n\r\n public constructor(singleSided: boolean = true) { this.singleSided = singleSided; }\r\n\r\n public setIndices(a: number, b: number, c: number) {\r\n this.indices[0] = a;\r\n this.indices[1] = b;\r\n this.indices[2] = c;\r\n }\r\n\r\n public setEdgeVisibility(a: boolean, b: boolean, c: boolean) {\r\n this.visible[0] = a;\r\n this.visible[1] = b;\r\n this.visible[2] = c;\r\n }\r\n\r\n public isEdgeVisible(index: number) {\r\n assert(index < 3 && index >= 0);\r\n return this.visible[index];\r\n }\r\n\r\n public get isDegenerate() { return this.indices[0] === this.indices[1] || this.indices[0] === this.indices[2] || this.indices[1] === this.indices[2]; }\r\n}\r\n\r\n/** @internal */\r\nexport class TriangleList {\r\n private readonly _flags: number[] = [];\r\n public readonly indices: number[] = [];\r\n\r\n public get length(): number { return this._flags.length; }\r\n public get isEmpty(): boolean { return 0 === this.length; }\r\n\r\n public addTriangle(triangle: Triangle): void {\r\n let flags = triangle.singleSided ? 1 : 0;\r\n for (let i = 0; i < 3; i++) {\r\n if (triangle.isEdgeVisible(i))\r\n flags |= (0x0002 << i);\r\n\r\n this.indices.push(triangle.indices[i]);\r\n }\r\n\r\n this._flags.push(flags);\r\n }\r\n\r\n public addFromTypedArray(indices: Uint8Array | Uint16Array | Uint32Array, flags: number = 0) {\r\n for (let i = 0; i < indices.length;) {\r\n this.indices.push(indices[i++]);\r\n this.indices.push(indices[i++]);\r\n this.indices.push(indices[i++]);\r\n this._flags.push(flags);\r\n }\r\n }\r\n\r\n public getTriangle(index: number, out?: Triangle): Triangle {\r\n const triangle = undefined !== out ? out : new Triangle();\r\n\r\n if (index > this.length) {\r\n assert(false);\r\n return new Triangle();\r\n }\r\n\r\n const flags = this._flags[index];\r\n triangle.singleSided = 0 !== (flags & 0x0001);\r\n\r\n const baseIndex = index * 3;\r\n for (let i = 0; i < 3; i++) {\r\n triangle.indices[i] = this.indices[baseIndex + i];\r\n triangle.visible[i] = 0 !== (flags & 0x0002 << i);\r\n }\r\n\r\n return triangle;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class TriangleKey {\r\n private readonly _sortedIndices = new Uint32Array(3);\r\n\r\n public constructor(triangle: Triangle) {\r\n const index = triangle.indices;\r\n const sorted = this._sortedIndices;\r\n\r\n if (index[0] < index[1]) {\r\n if (index[0] < index[2]) {\r\n sorted[0] = index[0];\r\n if (index[1] < index[2]) {\r\n sorted[1] = index[1];\r\n sorted[2] = index[2];\r\n } else {\r\n sorted[1] = index[2];\r\n sorted[2] = index[1];\r\n }\r\n } else {\r\n sorted[0] = index[2];\r\n sorted[1] = index[0];\r\n sorted[2] = index[1];\r\n }\r\n } else {\r\n if (index[1] < index[2]) {\r\n sorted[0] = index[1];\r\n if (index[0] < index[2]) {\r\n sorted[1] = index[0];\r\n sorted[2] = index[2];\r\n } else {\r\n sorted[1] = index[2];\r\n sorted[2] = index[0];\r\n }\r\n } else {\r\n sorted[0] = index[2];\r\n sorted[1] = index[1];\r\n sorted[2] = index[0];\r\n }\r\n }\r\n\r\n assert(sorted[0] < sorted[1]);\r\n assert(sorted[1] < sorted[2]);\r\n }\r\n\r\n public compare(rhs: TriangleKey): number {\r\n let diff = 0;\r\n for (let i = 0; i < 3; i++) {\r\n diff = this._sortedIndices[i] - rhs._sortedIndices[i];\r\n if (0 !== diff)\r\n break;\r\n }\r\n\r\n return diff;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class TriangleSet extends SortedArray<TriangleKey> {\r\n public constructor() {\r\n super((lhs: TriangleKey, rhs: TriangleKey) => lhs.compare(rhs));\r\n }\r\n public insertKey(triangle: Triangle, onInsert: (triangleKey: TriangleKey) => any): number {\r\n return this.insert(new TriangleKey(triangle), onInsert);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"Primitives.js","sourceRoot":"","sources":["../../../../src/render/primitives/Primitives.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, SortedArray } from \"@itwin/core-bentley\";\r\nimport { GraphicBuilder } from \"../GraphicBuilder\";\r\n\r\n/** @internal */\r\nexport namespace ToleranceRatio {\r\n export const vertex = 0.1;\r\n export const facetArea = 0.1;\r\n}\r\n\r\n/** Specifies under what circumstances a GeometryAccumulator should generate normals.\r\n * @internal\r\n */\r\nexport enum NormalMode {\r\n Never, // Never generate normals\r\n Always, // Always generate normals\r\n CurvedSurfacesOnly, // Generate normals only for curved surfaces\r\n}\r\n\r\n/** @internal */\r\nexport enum SurfacesOnly { Yes = 1, No = 0 } // Yes indicates polylines will not be generated, only meshes.\r\n\r\n/** @internal */\r\nexport enum PreserveOrder { Yes = 1, No = 0 } // Yes indicates primitives will not be merged, and the order in which they were added to the GraphicBuilder will be preserved.\r\n\r\n/** @internal */\r\nexport enum GenerateEdges { Yes = 1, No = 0 } // Yes indicates edges will be generated for surfaces\r\n\r\n/** @internal */\r\nexport class GeometryOptions {\r\n public readonly normals: NormalMode;\r\n public readonly surfaces: SurfacesOnly;\r\n public readonly preserveOrder: PreserveOrder;\r\n public readonly edges: GenerateEdges;\r\n constructor(edges: GenerateEdges, normals: NormalMode = NormalMode.Always, surfaces: SurfacesOnly = SurfacesOnly.No, preserveOrder: PreserveOrder = PreserveOrder.No) {\r\n this.normals = normals;\r\n this.surfaces = surfaces;\r\n this.preserveOrder = preserveOrder;\r\n this.edges = edges;\r\n }\r\n\r\n public get wantSurfacesOnly(): boolean { return this.surfaces === SurfacesOnly.Yes; }\r\n public get wantPreserveOrder(): boolean { return this.preserveOrder === PreserveOrder.Yes; }\r\n public get wantEdges(): boolean { return this.edges === GenerateEdges.Yes; }\r\n\r\n public static createForGraphicBuilder(params: GraphicBuilder, normals: NormalMode = NormalMode.Always, surfaces: SurfacesOnly = SurfacesOnly.No): GeometryOptions {\r\n return new GeometryOptions(params.wantEdges ? GenerateEdges.Yes : GenerateEdges.No, normals, surfaces, params.preserveOrder ? PreserveOrder.Yes : PreserveOrder.No);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class Triangle {\r\n public readonly indices = new Uint32Array(3);\r\n public readonly visible = [true, true, true];\r\n public singleSided: boolean;\r\n\r\n public constructor(singleSided: boolean = true) { this.singleSided = singleSided; }\r\n\r\n public setIndices(a: number, b: number, c: number) {\r\n this.indices[0] = a;\r\n this.indices[1] = b;\r\n this.indices[2] = c;\r\n }\r\n\r\n public setEdgeVisibility(a: boolean, b: boolean, c: boolean) {\r\n this.visible[0] = a;\r\n this.visible[1] = b;\r\n this.visible[2] = c;\r\n }\r\n\r\n public isEdgeVisible(index: number) {\r\n assert(index < 3 && index >= 0);\r\n return this.visible[index];\r\n }\r\n\r\n public get isDegenerate() { return this.indices[0] === this.indices[1] || this.indices[0] === this.indices[2] || this.indices[1] === this.indices[2]; }\r\n}\r\n\r\n/** @internal */\r\nexport class TriangleList {\r\n private readonly _flags: number[] = [];\r\n public readonly indices: number[] = [];\r\n\r\n public get length(): number { return this._flags.length; }\r\n public get isEmpty(): boolean { return 0 === this.length; }\r\n\r\n public addTriangle(triangle: Triangle): void {\r\n let flags = triangle.singleSided ? 1 : 0;\r\n for (let i = 0; i < 3; i++) {\r\n if (triangle.isEdgeVisible(i))\r\n flags |= (0x0002 << i);\r\n\r\n this.indices.push(triangle.indices[i]);\r\n }\r\n\r\n this._flags.push(flags);\r\n }\r\n\r\n public addFromTypedArray(indices: Uint8Array | Uint16Array | Uint32Array, flags: number = 0) {\r\n for (let i = 0; i < indices.length;) {\r\n this.indices.push(indices[i++]);\r\n this.indices.push(indices[i++]);\r\n this.indices.push(indices[i++]);\r\n this._flags.push(flags);\r\n }\r\n }\r\n\r\n public getTriangle(index: number, out?: Triangle): Triangle {\r\n const triangle = undefined !== out ? out : new Triangle();\r\n\r\n if (index > this.length) {\r\n assert(false);\r\n return new Triangle();\r\n }\r\n\r\n const flags = this._flags[index];\r\n triangle.singleSided = 0 !== (flags & 0x0001);\r\n\r\n const baseIndex = index * 3;\r\n for (let i = 0; i < 3; i++) {\r\n triangle.indices[i] = this.indices[baseIndex + i];\r\n triangle.visible[i] = 0 !== (flags & 0x0002 << i);\r\n }\r\n\r\n return triangle;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class TriangleKey {\r\n private readonly _sortedIndices = new Uint32Array(3);\r\n\r\n public constructor(triangle: Triangle) {\r\n const index = triangle.indices;\r\n const sorted = this._sortedIndices;\r\n\r\n if (index[0] < index[1]) {\r\n if (index[0] < index[2]) {\r\n sorted[0] = index[0];\r\n if (index[1] < index[2]) {\r\n sorted[1] = index[1];\r\n sorted[2] = index[2];\r\n } else {\r\n sorted[1] = index[2];\r\n sorted[2] = index[1];\r\n }\r\n } else {\r\n sorted[0] = index[2];\r\n sorted[1] = index[0];\r\n sorted[2] = index[1];\r\n }\r\n } else {\r\n if (index[1] < index[2]) {\r\n sorted[0] = index[1];\r\n if (index[0] < index[2]) {\r\n sorted[1] = index[0];\r\n sorted[2] = index[2];\r\n } else {\r\n sorted[1] = index[2];\r\n sorted[2] = index[0];\r\n }\r\n } else {\r\n sorted[0] = index[2];\r\n sorted[1] = index[1];\r\n sorted[2] = index[0];\r\n }\r\n }\r\n\r\n assert(sorted[0] < sorted[1]);\r\n assert(sorted[1] < sorted[2]);\r\n }\r\n\r\n public compare(rhs: TriangleKey): number {\r\n let diff = 0;\r\n for (let i = 0; i < 3; i++) {\r\n diff = this._sortedIndices[i] - rhs._sortedIndices[i];\r\n if (0 !== diff)\r\n break;\r\n }\r\n\r\n return diff;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class TriangleSet extends SortedArray<TriangleKey> {\r\n public constructor() {\r\n super((lhs: TriangleKey, rhs: TriangleKey) => lhs.compare(rhs));\r\n }\r\n public insertKey(triangle: Triangle, onInsert: (triangleKey: TriangleKey) => any): number {\r\n return this.insert(new TriangleKey(triangle), onInsert);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Strokes.d.ts","sourceRoot":"","sources":["../../../../src/render/primitives/Strokes.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,gBAAgB;AAChB,qBAAa,yBAAyB;IAC7B,MAAM,EAAE,OAAO,EAAE,CAAC;gBACb,MAAM,GAAE,OAAO,EAAO;CACnC;AAED,gBAAgB;AAChB,qBAAa,0BAA2B,SAAQ,KAAK,CAAC,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"Strokes.d.ts","sourceRoot":"","sources":["../../../../src/render/primitives/Strokes.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,gBAAgB;AAChB,qBAAa,yBAAyB;IAC7B,MAAM,EAAE,OAAO,EAAE,CAAC;gBACb,MAAM,GAAE,OAAO,EAAO;CACnC;AAED,gBAAgB;AAChB,qBAAa,0BAA2B,SAAQ,KAAK,CAAC,yBAAyB,CAAC;gBAClE,GAAG,IAAI,EAAE,yBAAyB,EAAE;CAGjD;AAED,gBAAgB;AAChB,qBAAa,gBAAgB;IAC3B,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C,SAAgB,UAAU,EAAE,OAAO,CAAC;IACpC,SAAgB,QAAQ,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,0BAA0B,CAAC;WAE7B,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;IAIlF,OAAO;IAOA,SAAS,CAAC,KAAK,EAAE,SAAS;CAKlC;AAED,gBAAgB;AAChB,qBAAa,oBAAqB,SAAQ,KAAK,CAAC,gBAAgB,CAAC;gBACnD,GAAG,IAAI,EAAE,gBAAgB,EAAE;CAGxC"}
|