@itwin/core-frontend 5.1.0-dev.1 → 5.1.0-dev.10
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 +20 -1
- package/lib/cjs/AccuDraw.d.ts +2 -0
- package/lib/cjs/AccuDraw.d.ts.map +1 -1
- package/lib/cjs/AccuDraw.js +2 -0
- package/lib/cjs/AccuDraw.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +12 -0
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +21 -0
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/ViewContext.d.ts +4 -1
- package/lib/cjs/ViewContext.d.ts.map +1 -1
- package/lib/cjs/ViewContext.js +10 -5
- package/lib/cjs/ViewContext.js.map +1 -1
- package/lib/cjs/ViewManager.js +2 -2
- package/lib/cjs/ViewManager.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +1 -1
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +2 -2
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/extension/providers/ExtensionLoadScript.d.ts.map +1 -1
- package/lib/cjs/extension/providers/ExtensionLoadScript.js +24 -6
- package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
- package/lib/cjs/internal/cross-package.d.ts +1 -1
- package/lib/cjs/internal/cross-package.d.ts.map +1 -1
- package/lib/cjs/internal/cross-package.js.map +1 -1
- package/lib/cjs/internal/render/MockRender.d.ts +1 -1
- package/lib/cjs/internal/render/MockRender.d.ts.map +1 -1
- package/lib/cjs/internal/render/MockRender.js +1 -1
- package/lib/cjs/internal/render/MockRender.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Mesh.js +1 -1
- package/lib/cjs/internal/render/webgl/Mesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderCommands.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderCommands.js +2 -3
- package/lib/cjs/internal/render/webgl/RenderCommands.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Target.d.ts +1 -1
- package/lib/cjs/internal/render/webgl/Target.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/Target.js +2 -2
- package/lib/cjs/internal/render/webgl/Target.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TargetGraphics.d.ts +3 -3
- package/lib/cjs/internal/render/webgl/TargetGraphics.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/TargetGraphics.js +10 -7
- package/lib/cjs/internal/render/webgl/TargetGraphics.js.map +1 -1
- package/lib/cjs/internal/tile/GraphicsCollector.d.ts +1 -0
- package/lib/cjs/internal/tile/GraphicsCollector.d.ts.map +1 -1
- package/lib/cjs/internal/tile/GraphicsCollector.js +1 -0
- package/lib/cjs/internal/tile/GraphicsCollector.js.map +1 -1
- package/lib/cjs/internal/tile/IModelTile.d.ts.map +1 -1
- package/lib/cjs/internal/tile/IModelTile.js +2 -1
- package/lib/cjs/internal/tile/IModelTile.js.map +1 -1
- package/lib/cjs/internal/tile/IModelTileTree.d.ts.map +1 -1
- package/lib/cjs/internal/tile/IModelTileTree.js +2 -1
- package/lib/cjs/internal/tile/IModelTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -1
- package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js +8 -2
- package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
- package/lib/cjs/internal/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/cjs/internal/tile/RealityTileLoader.js +2 -1
- package/lib/cjs/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/render/RenderTarget.d.ts +1 -1
- package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
- package/lib/cjs/render/RenderTarget.js.map +1 -1
- package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileTree.js +1 -1
- package/lib/cjs/tile/RealityTileTree.js.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.d.ts +1 -0
- package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.js +2 -0
- package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
- package/lib/cjs/tile/map/MapCartoRectangle.d.ts +10 -0
- package/lib/cjs/tile/map/MapCartoRectangle.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapCartoRectangle.js +12 -0
- package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +2 -2
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js +8 -4
- package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/QuadId.d.ts +15 -0
- package/lib/cjs/tile/map/QuadId.d.ts.map +1 -1
- package/lib/cjs/tile/map/QuadId.js +12 -0
- package/lib/cjs/tile/map/QuadId.js.map +1 -1
- package/lib/cjs/tools/AccuDrawViewportUI.d.ts +7 -0
- package/lib/cjs/tools/AccuDrawViewportUI.d.ts.map +1 -1
- package/lib/cjs/tools/AccuDrawViewportUI.js +14 -0
- package/lib/cjs/tools/AccuDrawViewportUI.js.map +1 -1
- package/lib/cjs/tools/ToolAdmin.d.ts +1 -0
- package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/cjs/tools/ToolAdmin.js +8 -2
- package/lib/cjs/tools/ToolAdmin.js.map +1 -1
- package/lib/esm/AccuDraw.d.ts +2 -0
- package/lib/esm/AccuDraw.d.ts.map +1 -1
- package/lib/esm/AccuDraw.js +2 -0
- package/lib/esm/AccuDraw.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +12 -0
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +21 -0
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/ViewContext.d.ts +4 -1
- package/lib/esm/ViewContext.d.ts.map +1 -1
- package/lib/esm/ViewContext.js +10 -5
- package/lib/esm/ViewContext.js.map +1 -1
- package/lib/esm/ViewManager.js +2 -2
- package/lib/esm/ViewManager.js.map +1 -1
- package/lib/esm/Viewport.d.ts +1 -1
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +2 -2
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/extension/providers/ExtensionLoadScript.d.ts.map +1 -1
- package/lib/esm/extension/providers/ExtensionLoadScript.js +1 -6
- package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -1
- package/lib/esm/internal/cross-package.d.ts +1 -1
- package/lib/esm/internal/cross-package.d.ts.map +1 -1
- package/lib/esm/internal/cross-package.js +1 -1
- package/lib/esm/internal/cross-package.js.map +1 -1
- package/lib/esm/internal/render/MockRender.d.ts +1 -1
- package/lib/esm/internal/render/MockRender.d.ts.map +1 -1
- package/lib/esm/internal/render/MockRender.js +1 -1
- package/lib/esm/internal/render/MockRender.js.map +1 -1
- package/lib/esm/internal/render/webgl/Mesh.js +1 -1
- package/lib/esm/internal/render/webgl/Mesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderCommands.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/RenderCommands.js +2 -3
- package/lib/esm/internal/render/webgl/RenderCommands.js.map +1 -1
- package/lib/esm/internal/render/webgl/Target.d.ts +1 -1
- package/lib/esm/internal/render/webgl/Target.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/Target.js +2 -2
- package/lib/esm/internal/render/webgl/Target.js.map +1 -1
- package/lib/esm/internal/render/webgl/TargetGraphics.d.ts +3 -3
- package/lib/esm/internal/render/webgl/TargetGraphics.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/TargetGraphics.js +10 -7
- package/lib/esm/internal/render/webgl/TargetGraphics.js.map +1 -1
- package/lib/esm/internal/tile/GraphicsCollector.d.ts +1 -0
- package/lib/esm/internal/tile/GraphicsCollector.d.ts.map +1 -1
- package/lib/esm/internal/tile/GraphicsCollector.js +1 -0
- package/lib/esm/internal/tile/GraphicsCollector.js.map +1 -1
- package/lib/esm/internal/tile/IModelTile.d.ts.map +1 -1
- package/lib/esm/internal/tile/IModelTile.js +2 -1
- package/lib/esm/internal/tile/IModelTile.js.map +1 -1
- package/lib/esm/internal/tile/IModelTileTree.d.ts.map +1 -1
- package/lib/esm/internal/tile/IModelTileTree.js +2 -1
- package/lib/esm/internal/tile/IModelTileTree.js.map +1 -1
- package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -1
- package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js +8 -2
- package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
- package/lib/esm/internal/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/esm/internal/tile/RealityTileLoader.js +2 -1
- package/lib/esm/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/render/RenderTarget.d.ts +1 -1
- package/lib/esm/render/RenderTarget.d.ts.map +1 -1
- package/lib/esm/render/RenderTarget.js.map +1 -1
- package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileTree.js +2 -2
- package/lib/esm/tile/RealityTileTree.js.map +1 -1
- package/lib/esm/tile/TileDrawArgs.d.ts +1 -0
- package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/esm/tile/TileDrawArgs.js +2 -0
- package/lib/esm/tile/TileDrawArgs.js.map +1 -1
- package/lib/esm/tile/map/MapCartoRectangle.d.ts +10 -0
- package/lib/esm/tile/map/MapCartoRectangle.d.ts.map +1 -1
- package/lib/esm/tile/map/MapCartoRectangle.js +12 -0
- package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +2 -2
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js +8 -4
- package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/QuadId.d.ts +15 -0
- package/lib/esm/tile/map/QuadId.d.ts.map +1 -1
- package/lib/esm/tile/map/QuadId.js +12 -0
- package/lib/esm/tile/map/QuadId.js.map +1 -1
- package/lib/esm/tools/AccuDrawViewportUI.d.ts +7 -0
- package/lib/esm/tools/AccuDrawViewportUI.d.ts.map +1 -1
- package/lib/esm/tools/AccuDrawViewportUI.js +14 -0
- package/lib/esm/tools/AccuDrawViewportUI.js.map +1 -1
- package/lib/esm/tools/ToolAdmin.d.ts +1 -0
- package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/esm/tools/ToolAdmin.js +8 -2
- package/lib/esm/tools/ToolAdmin.js.map +1 -1
- package/lib/public/scripts/parse-imdl-worker.js +1 -1
- package/lib/workers/webpack/parse-imdl-worker.js +1 -1
- package/package.json +20 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RealityTileLoader.js","sourceRoot":"","sources":["../../../../src/internal/tile/RealityTileLoader.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tiles\n */\n\nimport { assert, ByteStream } from \"@itwin/core-bentley\";\nimport { Point2d, Point3d, Transform } from \"@itwin/core-geometry\";\nimport { BatchType, CompositeTileHeader, TileFormat, ViewFlagOverrides } from \"@itwin/core-common\";\nimport { IModelApp } from \"../../IModelApp\";\nimport { GraphicBranch } from \"../../render/GraphicBranch\";\nimport { RenderSystem } from \"../../render/RenderSystem\";\nimport { ScreenViewport, Viewport } from \"../../Viewport\";\nimport { GltfWrapMode } from \"../../common/gltf/GltfSchema\";\nimport {\n B3dmReader, BatchedTileIdMap, createDefaultViewFlagOverrides, GltfGraphicsReader, GltfReader, GltfReaderProps, I3dmReader, ImdlReader, readPointCloudTileContent,\n RealityTile, RealityTileContent, RealityTileTree, Tile, TileContent, TileDrawArgs, TileLoadPriority, TileRequest, TileRequestChannel, TileUser,\n} from \"../../tile/internal\";\nimport { LayerTileData } from \"../render/webgl/MapLayerParams\";\n\nconst defaultViewFlagOverrides = createDefaultViewFlagOverrides({});\n\nconst scratchTileCenterWorld = new Point3d();\nconst scratchTileCenterView = new Point3d();\n\n/** Serves as a \"handler\" for a specific type of [[TileTree]]. Its primary responsibilities involve loading tile content.\n * @internal\n */\nexport abstract class RealityTileLoader {\n private _containsPointClouds = false;\n public readonly preloadRealityParentDepth: number;\n public readonly preloadRealityParentSkip: number;\n\n public constructor(private _produceGeometry?: boolean) {\n this.preloadRealityParentDepth = IModelApp.tileAdmin.contextPreloadParentDepth;\n this.preloadRealityParentSkip = IModelApp.tileAdmin.contextPreloadParentSkip;\n }\n\n public computeTilePriority(tile: Tile, viewports: Iterable<Viewport>, _users: Iterable<TileUser>): number {\n // ###TODO: Handle case where tile tree reference(s) have a transform different from tree's (background map with ground bias).\n return RealityTileLoader.computeTileLocationPriority(tile, viewports, tile.tree.iModelTransform);\n }\n\n public abstract loadChildren(tile: RealityTile): Promise<Tile[] | undefined>;\n public abstract getRequestChannel(tile: Tile): TileRequestChannel;\n public abstract requestTileContent(tile: Tile, isCanceled: () => boolean): Promise<TileRequest.Response>;\n public get wantDeduplicatedVertices(): boolean { return false; }\n public abstract get maxDepth(): number;\n public abstract get minDepth(): number;\n public abstract get priority(): TileLoadPriority;\n protected get _batchType(): BatchType { return BatchType.Primary; }\n protected get _loadEdges(): boolean { return true; }\n public getBatchIdMap(): BatchedTileIdMap | undefined { return undefined; }\n public get isContentUnbounded(): boolean { return false; }\n public get containsPointClouds(): boolean { return this._containsPointClouds; }\n public get parentsAndChildrenExclusive(): boolean { return true; }\n public forceTileLoad(_tile: Tile): boolean { return false; }\n public get maximumScreenSpaceError(): number | undefined { return undefined; }\n\n public processSelectedTiles(selected: Tile[], _args: TileDrawArgs): Tile[] { return selected; }\n\n // NB: The isCanceled arg is chiefly for tests...in usual case it just returns false if the tile is no longer in 'loading' state.\n public async loadTileContent(tile: Tile, data: TileRequest.ResponseData, system: RenderSystem, isCanceled?: () => boolean): Promise<RealityTileContent> {\n assert(data instanceof Uint8Array);\n const blob = data;\n const streamBuffer = ByteStream.fromUint8Array(blob);\n const realityTile = tile as RealityTile;\n return this._produceGeometry ? this.loadGeometryFromStream(realityTile, streamBuffer, system) : this.loadGraphicsFromStream(realityTile, streamBuffer, system, isCanceled);\n }\n\n private _getFormat(streamBuffer: ByteStream) {\n const position = streamBuffer.curPos;\n const format = streamBuffer.readUint32();\n streamBuffer.curPos = position;\n return format;\n\n }\n\n public async loadGeometryFromStream(tile: RealityTile, streamBuffer: ByteStream, system: RenderSystem): Promise<RealityTileContent> {\n const format = this._getFormat(streamBuffer);\n if (format !== TileFormat.B3dm)\n return {};\n\n const { is3d, yAxisUp, iModel, modelId } = tile.realityRoot;\n const reader = B3dmReader.create(streamBuffer, iModel, modelId, is3d, tile.contentRange, system, yAxisUp, tile.isLeaf, tile.center, tile.transformToRoot, undefined, this.getBatchIdMap());\n if (reader)\n reader.defaultWrapMode = GltfWrapMode.ClampToEdge;\n\n return { geometry: reader?.readGltfAndCreateGeometry(tile.tree.iModelTransform) };\n }\n\n private async loadGraphicsFromStream(tile: RealityTile, streamBuffer: ByteStream, system: RenderSystem, isCanceled?: () => boolean): Promise<TileContent> {\n const format = this._getFormat(streamBuffer);\n if (undefined === isCanceled)\n isCanceled = () => !tile.isLoading;\n\n const { is3d, yAxisUp, iModel, modelId } = tile.realityRoot;\n let reader: GltfReader | ImdlReader | undefined;\n\n const tileData: LayerTileData = {\n ecefTransform: tile.tree.iModel.ecefLocation?.getTransform() ?? Transform.createIdentity(),\n range: tile.range,\n layerClassifiers: tile.tree.layerHandler?.layerClassifiers,\n };\n\n switch (format) {\n case TileFormat.IModel:\n reader = ImdlReader.create({\n stream: streamBuffer,\n iModel,\n modelId,\n is3d,\n system,\n isCanceled,\n });\n break;\n case TileFormat.Pnts:\n this._containsPointClouds = true;\n const res = await readPointCloudTileContent(streamBuffer, iModel, modelId, is3d, tile, system);\n let graphic = res.graphic;\n const rtcCenter = res.rtcCenter;\n if (graphic && (rtcCenter || tile.transformToRoot && !tile.transformToRoot.isIdentity)) {\n const transformBranch = new GraphicBranch(true);\n transformBranch.add(graphic);\n let xform: Transform;\n if (!tile.transformToRoot && rtcCenter)\n xform = Transform.createTranslation(rtcCenter);\n else {\n if (rtcCenter)\n xform = Transform.createOriginAndMatrix(rtcCenter.plus(tile.transformToRoot!.origin), tile.transformToRoot!.matrix);\n else\n xform = tile.transformToRoot!;\n }\n graphic = system.createBranch(transformBranch, xform);\n }\n\n return { graphic };\n case TileFormat.B3dm:\n reader = B3dmReader.create(streamBuffer, iModel, modelId, is3d, tile.contentRange, system, yAxisUp, tile.isLeaf, tile.center, tile.transformToRoot, isCanceled, this.getBatchIdMap(), this.wantDeduplicatedVertices, tileData);\n if (reader) {\n // glTF spec defaults wrap mode to \"repeat\" but many reality tiles omit the wrap mode and should not repeat.\n // The render system also currently only produces mip-maps for repeating textures, and we don't want mip-maps for reality tile textures.\n assert(reader instanceof GltfReader);\n reader.defaultWrapMode = GltfWrapMode.ClampToEdge;\n }\n\n break;\n case TileFormat.I3dm:\n reader = I3dmReader.create(streamBuffer, iModel, modelId, is3d, tile.contentRange, system, yAxisUp, tile.isLeaf, isCanceled, undefined, this.wantDeduplicatedVertices, tileData);\n break;\n case TileFormat.Gltf:\n const tree = tile.tree as RealityTileTree;\n const baseUrl = tree.baseUrl;\n const props = createReaderPropsWithBaseUrl(streamBuffer, yAxisUp, baseUrl);\n if (props) {\n reader = new GltfGraphicsReader(props, {\n iModel,\n gltf: props.glTF,\n contentRange: tile.contentRange,\n transform: tile.transformToRoot,\n hasChildren: !tile.isLeaf,\n pickableOptions: { id: modelId },\n idMap: this.getBatchIdMap(),\n tileData\n });\n }\n break;\n case TileFormat.Cmpt:\n const header = new CompositeTileHeader(streamBuffer);\n if (!header.isValid)\n return {};\n\n const branch = new GraphicBranch(true);\n for (let i = 0; i < header.tileCount; i++) {\n const tilePosition = streamBuffer.curPos;\n streamBuffer.advance(8); // Skip magic and version.\n const tileBytes = streamBuffer.readUint32();\n streamBuffer.curPos = tilePosition;\n const result = await this.loadGraphicsFromStream(tile, streamBuffer, system, isCanceled);\n if (result.graphic)\n branch.add(result.graphic);\n streamBuffer.curPos = tilePosition + tileBytes;\n }\n return { graphic: branch.isEmpty ? undefined : system.createBranch(branch, Transform.createIdentity()), isLeaf: tile.isLeaf };\n\n default:\n assert(false, `unknown tile format ${format}`);\n break;\n }\n\n let content: TileContent = {};\n if (undefined !== reader) {\n try {\n content = await reader.read();\n if (content.containsPointCloud)\n this._containsPointClouds = true;\n } catch {\n // Failure to load should prevent us from trying to load children\n content.isLeaf = true;\n }\n }\n\n return content;\n }\n\n public get viewFlagOverrides(): ViewFlagOverrides { return defaultViewFlagOverrides; }\n\n public static computeTileLocationPriority(tile: Tile, viewports: Iterable<Viewport>, location: Transform): number {\n // Compute a priority value for tiles that are:\n // * Closer to the eye;\n // * Closer to the center of attention (center of the screen or zoom target).\n // This way, we can load in priority tiles that are more likely to be important.\n let center: Point3d | undefined;\n let minDistance = 1.0;\n\n const currentInputState = IModelApp.toolAdmin.currentInputState;\n const now = Date.now();\n const wheelEventRelevanceTimeout = 1000; // Wheel events older than this value will not be considered\n\n for (const viewport of viewports) {\n center = center ?? location.multiplyPoint3d(tile.center, scratchTileCenterWorld);\n const npc = viewport.worldToNpc(center, scratchTileCenterView);\n\n let focusPoint = new Point2d(0.5, 0.5);\n\n if (currentInputState.viewport === viewport && viewport instanceof ScreenViewport) {\n // Try to get a better target point from the last zoom target\n const { lastWheelEvent } = currentInputState;\n\n if (lastWheelEvent !== undefined && now - lastWheelEvent.time < wheelEventRelevanceTimeout) {\n const focusPointCandidate = Point2d.fromJSON(viewport.worldToNpc(lastWheelEvent.point));\n\n if (focusPointCandidate.x > 0 && focusPointCandidate.x < 1 && focusPointCandidate.y > 0 && focusPointCandidate.y < 1)\n focusPoint = focusPointCandidate;\n }\n }\n\n // NB: In NPC coords, 0 = far plane, 1 = near plane.\n const distanceToEye = 1.0 - npc.z;\n const distanceToCenter = Math.min(npc.distanceXY(focusPoint) / 0.707, 1.0); // Math.sqrt(0.5) = 0.707\n\n // Distance is a mix of the two previously computed values, still in range [0; 1]\n // We use this factor to determine how much the distance to the center of attention is important compared to distance to the eye\n const distanceToCenterWeight = 0.3;\n const distance = distanceToEye * (1.0 - distanceToCenterWeight) + distanceToCenter * distanceToCenterWeight;\n\n minDistance = Math.min(distance, minDistance);\n }\n\n return minDistance;\n }\n}\n\n/** Exposed strictly for testing purposes.\n* @internal\n*/\nexport function createReaderPropsWithBaseUrl(streamBuffer: ByteStream, yAxisUp: boolean, baseUrl?: string): GltfReaderProps | undefined {\n let url: URL | undefined;\n if (baseUrl) {\n try {\n url = new URL(baseUrl);\n } catch {\n url = undefined;\n }\n }\n return GltfReaderProps.create(streamBuffer.nextBytes(streamBuffer.arrayBuffer.byteLength), yAxisUp, url);\n}"]}
|
|
1
|
+
{"version":3,"file":"RealityTileLoader.js","sourceRoot":"","sources":["../../../../src/internal/tile/RealityTileLoader.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tiles\n */\n\nimport { assert, ByteStream } from \"@itwin/core-bentley\";\nimport { Point2d, Point3d, Transform } from \"@itwin/core-geometry\";\nimport { BatchType, CompositeTileHeader, TileFormat, ViewFlagOverrides } from \"@itwin/core-common\";\nimport { IModelApp } from \"../../IModelApp\";\nimport { GraphicBranch } from \"../../render/GraphicBranch\";\nimport { RenderSystem } from \"../../render/RenderSystem\";\nimport { ScreenViewport, Viewport } from \"../../Viewport\";\nimport { GltfWrapMode } from \"../../common/gltf/GltfSchema\";\nimport {\n B3dmReader, BatchedTileIdMap, createDefaultViewFlagOverrides, GltfGraphicsReader, GltfReader, GltfReaderProps, I3dmReader, ImdlReader, readPointCloudTileContent,\n RealityTile, RealityTileContent, RealityTileTree, Tile, TileContent, TileDrawArgs, TileLoadPriority, TileRequest, TileRequestChannel, TileUser,\n} from \"../../tile/internal\";\nimport { LayerTileData } from \"../render/webgl/MapLayerParams\";\n\nconst defaultViewFlagOverrides = createDefaultViewFlagOverrides({});\n\nconst scratchTileCenterWorld = new Point3d();\nconst scratchTileCenterView = new Point3d();\n\n/** Serves as a \"handler\" for a specific type of [[TileTree]]. Its primary responsibilities involve loading tile content.\n * @internal\n */\nexport abstract class RealityTileLoader {\n private _containsPointClouds = false;\n public readonly preloadRealityParentDepth: number;\n public readonly preloadRealityParentSkip: number;\n\n public constructor(private _produceGeometry?: boolean) {\n this.preloadRealityParentDepth = IModelApp.tileAdmin.contextPreloadParentDepth;\n this.preloadRealityParentSkip = IModelApp.tileAdmin.contextPreloadParentSkip;\n }\n\n public computeTilePriority(tile: Tile, viewports: Iterable<Viewport>, _users: Iterable<TileUser>): number {\n // ###TODO: Handle case where tile tree reference(s) have a transform different from tree's (background map with ground bias).\n return RealityTileLoader.computeTileLocationPriority(tile, viewports, tile.tree.iModelTransform);\n }\n\n public abstract loadChildren(tile: RealityTile): Promise<Tile[] | undefined>;\n public abstract getRequestChannel(tile: Tile): TileRequestChannel;\n public abstract requestTileContent(tile: Tile, isCanceled: () => boolean): Promise<TileRequest.Response>;\n public get wantDeduplicatedVertices(): boolean { return false; }\n public abstract get maxDepth(): number;\n public abstract get minDepth(): number;\n public abstract get priority(): TileLoadPriority;\n protected get _batchType(): BatchType { return BatchType.Primary; }\n protected get _loadEdges(): boolean { return true; }\n public getBatchIdMap(): BatchedTileIdMap | undefined { return undefined; }\n public get isContentUnbounded(): boolean { return false; }\n public get containsPointClouds(): boolean { return this._containsPointClouds; }\n public get parentsAndChildrenExclusive(): boolean { return true; }\n public forceTileLoad(_tile: Tile): boolean { return false; }\n public get maximumScreenSpaceError(): number | undefined { return undefined; }\n\n public processSelectedTiles(selected: Tile[], _args: TileDrawArgs): Tile[] { return selected; }\n\n // NB: The isCanceled arg is chiefly for tests...in usual case it just returns false if the tile is no longer in 'loading' state.\n public async loadTileContent(tile: Tile, data: TileRequest.ResponseData, system: RenderSystem, isCanceled?: () => boolean): Promise<RealityTileContent> {\n assert(data instanceof Uint8Array);\n const blob = data;\n const streamBuffer = ByteStream.fromUint8Array(blob);\n const realityTile = tile as RealityTile;\n return this._produceGeometry ? this.loadGeometryFromStream(realityTile, streamBuffer, system) : this.loadGraphicsFromStream(realityTile, streamBuffer, system, isCanceled);\n }\n\n private _getFormat(streamBuffer: ByteStream) {\n const position = streamBuffer.curPos;\n const format = streamBuffer.readUint32();\n streamBuffer.curPos = position;\n return format;\n\n }\n\n public async loadGeometryFromStream(tile: RealityTile, streamBuffer: ByteStream, system: RenderSystem): Promise<RealityTileContent> {\n const format = this._getFormat(streamBuffer);\n if (format !== TileFormat.B3dm)\n return {};\n\n const { is3d, yAxisUp, iModel, modelId } = tile.realityRoot;\n const reader = B3dmReader.create(streamBuffer, iModel, modelId, is3d, tile.contentRange, system, yAxisUp, tile.isLeaf, tile.center, tile.transformToRoot, undefined, this.getBatchIdMap());\n if (reader)\n reader.defaultWrapMode = GltfWrapMode.ClampToEdge;\n\n return { geometry: reader?.readGltfAndCreateGeometry(tile.tree.iModelTransform) };\n }\n\n private async loadGraphicsFromStream(tile: RealityTile, streamBuffer: ByteStream, system: RenderSystem, isCanceled?: () => boolean): Promise<TileContent> {\n const format = this._getFormat(streamBuffer);\n if (undefined === isCanceled)\n isCanceled = () => !tile.isLoading;\n\n const { is3d, yAxisUp, iModel, modelId } = tile.realityRoot;\n let reader: GltfReader | ImdlReader | undefined;\n\n const ecefTransform = tile.tree.iModel.isGeoLocated ? tile.tree.iModel.getEcefTransform() : Transform.createIdentity();\n const tileData: LayerTileData = {\n ecefTransform,\n range: tile.range,\n layerClassifiers: tile.tree.layerHandler?.layerClassifiers,\n };\n\n switch (format) {\n case TileFormat.IModel:\n reader = ImdlReader.create({\n stream: streamBuffer,\n iModel,\n modelId,\n is3d,\n system,\n isCanceled,\n });\n break;\n case TileFormat.Pnts:\n this._containsPointClouds = true;\n const res = await readPointCloudTileContent(streamBuffer, iModel, modelId, is3d, tile, system);\n let graphic = res.graphic;\n const rtcCenter = res.rtcCenter;\n if (graphic && (rtcCenter || tile.transformToRoot && !tile.transformToRoot.isIdentity)) {\n const transformBranch = new GraphicBranch(true);\n transformBranch.add(graphic);\n let xform: Transform;\n if (!tile.transformToRoot && rtcCenter)\n xform = Transform.createTranslation(rtcCenter);\n else {\n if (rtcCenter)\n xform = Transform.createOriginAndMatrix(rtcCenter.plus(tile.transformToRoot!.origin), tile.transformToRoot!.matrix);\n else\n xform = tile.transformToRoot!;\n }\n graphic = system.createBranch(transformBranch, xform);\n }\n\n return { graphic };\n case TileFormat.B3dm:\n reader = B3dmReader.create(streamBuffer, iModel, modelId, is3d, tile.contentRange, system, yAxisUp, tile.isLeaf, tile.center, tile.transformToRoot, isCanceled, this.getBatchIdMap(), this.wantDeduplicatedVertices, tileData);\n if (reader) {\n // glTF spec defaults wrap mode to \"repeat\" but many reality tiles omit the wrap mode and should not repeat.\n // The render system also currently only produces mip-maps for repeating textures, and we don't want mip-maps for reality tile textures.\n assert(reader instanceof GltfReader);\n reader.defaultWrapMode = GltfWrapMode.ClampToEdge;\n }\n\n break;\n case TileFormat.I3dm:\n reader = I3dmReader.create(streamBuffer, iModel, modelId, is3d, tile.contentRange, system, yAxisUp, tile.isLeaf, isCanceled, undefined, this.wantDeduplicatedVertices, tileData);\n break;\n case TileFormat.Gltf:\n const tree = tile.tree as RealityTileTree;\n const baseUrl = tree.baseUrl;\n const props = createReaderPropsWithBaseUrl(streamBuffer, yAxisUp, baseUrl);\n if (props) {\n reader = new GltfGraphicsReader(props, {\n iModel,\n gltf: props.glTF,\n contentRange: tile.contentRange,\n transform: tile.transformToRoot,\n hasChildren: !tile.isLeaf,\n pickableOptions: { id: modelId },\n idMap: this.getBatchIdMap(),\n tileData\n });\n }\n break;\n case TileFormat.Cmpt:\n const header = new CompositeTileHeader(streamBuffer);\n if (!header.isValid)\n return {};\n\n const branch = new GraphicBranch(true);\n for (let i = 0; i < header.tileCount; i++) {\n const tilePosition = streamBuffer.curPos;\n streamBuffer.advance(8); // Skip magic and version.\n const tileBytes = streamBuffer.readUint32();\n streamBuffer.curPos = tilePosition;\n const result = await this.loadGraphicsFromStream(tile, streamBuffer, system, isCanceled);\n if (result.graphic)\n branch.add(result.graphic);\n streamBuffer.curPos = tilePosition + tileBytes;\n }\n return { graphic: branch.isEmpty ? undefined : system.createBranch(branch, Transform.createIdentity()), isLeaf: tile.isLeaf };\n\n default:\n assert(false, `unknown tile format ${format}`);\n break;\n }\n\n let content: TileContent = {};\n if (undefined !== reader) {\n try {\n content = await reader.read();\n if (content.containsPointCloud)\n this._containsPointClouds = true;\n } catch {\n // Failure to load should prevent us from trying to load children\n content.isLeaf = true;\n }\n }\n\n return content;\n }\n\n public get viewFlagOverrides(): ViewFlagOverrides { return defaultViewFlagOverrides; }\n\n public static computeTileLocationPriority(tile: Tile, viewports: Iterable<Viewport>, location: Transform): number {\n // Compute a priority value for tiles that are:\n // * Closer to the eye;\n // * Closer to the center of attention (center of the screen or zoom target).\n // This way, we can load in priority tiles that are more likely to be important.\n let center: Point3d | undefined;\n let minDistance = 1.0;\n\n const currentInputState = IModelApp.toolAdmin.currentInputState;\n const now = Date.now();\n const wheelEventRelevanceTimeout = 1000; // Wheel events older than this value will not be considered\n\n for (const viewport of viewports) {\n center = center ?? location.multiplyPoint3d(tile.center, scratchTileCenterWorld);\n const npc = viewport.worldToNpc(center, scratchTileCenterView);\n\n let focusPoint = new Point2d(0.5, 0.5);\n\n if (currentInputState.viewport === viewport && viewport instanceof ScreenViewport) {\n // Try to get a better target point from the last zoom target\n const { lastWheelEvent } = currentInputState;\n\n if (lastWheelEvent !== undefined && now - lastWheelEvent.time < wheelEventRelevanceTimeout) {\n const focusPointCandidate = Point2d.fromJSON(viewport.worldToNpc(lastWheelEvent.point));\n\n if (focusPointCandidate.x > 0 && focusPointCandidate.x < 1 && focusPointCandidate.y > 0 && focusPointCandidate.y < 1)\n focusPoint = focusPointCandidate;\n }\n }\n\n // NB: In NPC coords, 0 = far plane, 1 = near plane.\n const distanceToEye = 1.0 - npc.z;\n const distanceToCenter = Math.min(npc.distanceXY(focusPoint) / 0.707, 1.0); // Math.sqrt(0.5) = 0.707\n\n // Distance is a mix of the two previously computed values, still in range [0; 1]\n // We use this factor to determine how much the distance to the center of attention is important compared to distance to the eye\n const distanceToCenterWeight = 0.3;\n const distance = distanceToEye * (1.0 - distanceToCenterWeight) + distanceToCenter * distanceToCenterWeight;\n\n minDistance = Math.min(distance, minDistance);\n }\n\n return minDistance;\n }\n}\n\n/** Exposed strictly for testing purposes.\n* @internal\n*/\nexport function createReaderPropsWithBaseUrl(streamBuffer: ByteStream, yAxisUp: boolean, baseUrl?: string): GltfReaderProps | undefined {\n let url: URL | undefined;\n if (baseUrl) {\n try {\n url = new URL(baseUrl);\n } catch {\n url = undefined;\n }\n }\n return GltfReaderProps.create(streamBuffer.nextBytes(streamBuffer.arrayBuffer.byteLength), yAxisUp, url);\n}"]}
|
|
@@ -82,7 +82,7 @@ export declare abstract class RenderTarget implements Disposable, RenderMemory.C
|
|
|
82
82
|
/** @internal */
|
|
83
83
|
abstract changeScene(scene: Scene): void;
|
|
84
84
|
/** @internal */
|
|
85
|
-
abstract changeDynamics(
|
|
85
|
+
abstract changeDynamics(foreground: GraphicList | undefined, overlay: GraphicList | undefined): void;
|
|
86
86
|
/** @internal */
|
|
87
87
|
abstract changeDecorations(decorations: Decorations): void;
|
|
88
88
|
/** @internal */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderTarget.d.ts","sourceRoot":"","sources":["../../../src/render/RenderTarget.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"RenderTarget.d.ts","sourceRoot":"","sources":["../../../src/render/RenderTarget.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderTarget.js","sourceRoot":"","sources":["../../../src/render/RenderTarget.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Rendering\n */\n\nimport { Id64String } from \"@itwin/core-bentley\";\nimport { ImageBuffer } from \"@itwin/core-common\";\nimport { XAndY } from \"@itwin/core-geometry\";\nimport { IModelConnection } from \"../IModelConnection\";\nimport { HiliteSet } from \"../SelectionSet\";\nimport { SceneContext } from \"../ViewContext\";\nimport { ReadImageBufferArgs, Viewport } from \"../Viewport\";\nimport { ViewRect } from \"../common/ViewRect\";\nimport { CanvasDecoration } from \"./CanvasDecoration\";\nimport { Decorations } from \"./Decorations\";\nimport { FeatureSymbology } from \"./FeatureSymbology\";\nimport { FrameStatsCollector } from \"../internal/render/FrameStatsCollector\";\nimport { AnimationBranchStates } from \"../internal/render/AnimationBranchState\";\nimport { CustomGraphicBuilderOptions, ViewportGraphicBuilderOptions } from \"./GraphicBuilder\";\nimport { Pixel } from \"./Pixel\";\nimport { GraphicList } from \"./RenderGraphic\";\nimport { RenderMemory } from \"./RenderMemory\";\nimport { RenderPlan } from \"../internal/render/RenderPlan\";\nimport { RenderPlanarClassifier } from \"../internal/render/RenderPlanarClassifier\";\nimport { RenderSystem, } from \"./RenderSystem\";\nimport { Scene } from \"./Scene\";\nimport { QueryTileFeaturesOptions, QueryVisibleFeaturesCallback } from \"./VisibleFeature\";\nimport { ActiveSpatialClassifier } from \"../SpatialClassifiersState\";\nimport { _implementationProhibited } from \"../common/internal/Symbols\";\nimport { RenderTextureDrape } from \"../internal/render/RenderTextureDrape\";\nimport { RenderTargetDebugControl } from \"../internal/render/RenderTargetDebugControl\";\n\n/** Connects a [[Viewport]] to a graphics renderer such as a [WebGLRenderingContext](https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext)\n * to enable the viewport's contents to be rendered to the screen or to an off-screen buffer.\n * Application code never interacts directly with a `RenderTarget` - it interacts with the `Viewport`'s API which forwards requests to the `RenderTarget`.\n * @public\n */\nexport abstract class RenderTarget implements Disposable, RenderMemory.Consumer {\n /** @internal */\n protected abstract readonly [_implementationProhibited]: unknown;\n\n /** @internal */\n public pickOverlayDecoration(_pt: XAndY): CanvasDecoration | undefined { return undefined; }\n\n /** @internal */\n public abstract get renderSystem(): RenderSystem;\n\n /** NB: *Device pixels*, not CSS pixels! */\n /** @internal */\n public abstract get viewRect(): ViewRect;\n\n /** @internal */\n public get devicePixelRatio(): number { return 1; }\n /** @internal */\n public cssPixelsToDevicePixels(cssPixels: number, floor = true): number {\n const pix = cssPixels * this.devicePixelRatio;\n return floor ? Math.floor(pix) : pix;\n }\n\n /** Given the size of a logical pixel in meters, convert it to the size of a physical pixel in meters, if [[RenderSystem.dpiAwareLOD]] is `true`.\n * Used when computing LOD for graphics.\n */\n /** @internal */\n public adjustPixelSizeForLOD(cssPixelSize: number): number {\n return this.renderSystem.dpiAwareLOD ? this.cssPixelsToDevicePixels(cssPixelSize, false) : cssPixelSize;\n }\n\n /** @internal */\n public abstract get wantInvertBlackBackground(): boolean;\n\n /** @internal */\n public abstract get analysisFraction(): number;\n public abstract set analysisFraction(fraction: number);\n\n /** @internal */\n public get animationBranches(): AnimationBranchStates | undefined { return undefined; }\n public set animationBranches(_transforms: AnimationBranchStates | undefined) { }\n\n /** @internal */\n public get antialiasSamples(): number { return 1; }\n public set antialiasSamples(_numSamples: number) { }\n\n /** @internal */\n public assignFrameStatsCollector(_collector: FrameStatsCollector) { }\n\n /** Update the solar shadow map. If a SceneContext is supplied, shadows are enabled; otherwise, shadows are disabled. */\n /** @internal */\n public updateSolarShadows(_context: SceneContext | undefined): void { }\n /** @internal */\n public getPlanarClassifier(_id: string): RenderPlanarClassifier | undefined { return undefined; }\n /** @internal */\n public createPlanarClassifier(_properties?: ActiveSpatialClassifier): RenderPlanarClassifier | undefined { return undefined; }\n /** @internal */\n public getTextureDrape(_id: Id64String): RenderTextureDrape | undefined { return undefined; }\n\n /** @internal */\n public createGraphicBuilder(options: CustomGraphicBuilderOptions | ViewportGraphicBuilderOptions) {\n return this.renderSystem.createGraphic(options);\n }\n\n /** @internal */\n public [Symbol.dispose](): void { }\n /** @internal */\n public reset(_realityMapLayerChanged?: boolean): void { }\n /** @internal */\n public abstract changeScene(scene: Scene): void;\n /** @internal */\n public abstract changeDynamics(dynamics?: GraphicList): void;\n /** @internal */\n public abstract changeDecorations(decorations: Decorations): void;\n /** @internal */\n public abstract changeRenderPlan(plan: RenderPlan): void;\n /** @internal */\n public abstract drawFrame(sceneMilSecElapsed?: number): void;\n /** @internal */\n public overrideFeatureSymbology(_ovr: FeatureSymbology.Overrides): void { }\n /** @internal */\n public setHiliteSet(_hilited: HiliteSet): void { }\n /** @internal */\n public setFlashed(_elementId: Id64String, _intensity: number): void { }\n /** @internal */\n public onBeforeRender(_viewport: Viewport, _setSceneNeedRedraw: (redraw: boolean) => void): void { }\n /** @internal */\n public abstract setViewRect(_rect: ViewRect, _temporary: boolean): void;\n /** @internal */\n public onResized(): void { }\n /** @internal */\n public abstract updateViewRect(): boolean; // force a RenderTarget viewRect to resize if necessary since last draw\n /** `rect` is specified in *CSS* pixels. */\n /** @internal */\n public abstract readPixels(rect: ViewRect, selector: Pixel.Selector, receiver: Pixel.Receiver, excludeNonLocatable: boolean, excludedElements?: Iterable<Id64String>): void;\n /** @internal */\n public readImageBuffer(_args?: ReadImageBufferArgs): ImageBuffer | undefined { return undefined; }\n /** @internal */\n public readImageToCanvas(_overlayCanvas?: HTMLCanvasElement): HTMLCanvasElement { return document.createElement(\"canvas\"); }\n /** @internal */\n public collectStatistics(_stats: RenderMemory.Statistics): void { }\n\n /** Specify whether webgl content should be rendered directly to the screen.\n * If rendering to screen becomes enabled, returns the canvas to which to render the webgl content.\n * Returns undefined if rendering to screen becomes disabled, or is not supported by this RenderTarget.\n */\n /** @internal */\n public setRenderToScreen(_toScreen: boolean): HTMLCanvasElement | undefined { return undefined; }\n\n /** @internal */\n public get debugControl(): RenderTargetDebugControl | undefined { return undefined; }\n\n /** An ordered list of names of screen-space post-processing effects to be applied to the image produced by this target.\n * The effects are applied in the order in which they appear in the list. Any names not corresponding to a registered effect are ignored.\n * This may have no effect if this target does not support screen-space effects.\n * @see [[RenderSystem.createScreenSpaceEffectBuilder]] to create and register new effects.\n */\n /** @internal */\n public abstract get screenSpaceEffects(): Iterable<string>;\n public abstract set screenSpaceEffects(_effectNames: Iterable<string>);\n\n /** Implementation for [[Viewport.queryVisibleFeatures]]. Not intended for direct usage. The returned iterable remains valid only for the duration of the\n * Viewport.queryVisibleFeatures call.\n */\n /** @internal */\n public queryVisibleTileFeatures(_options: QueryTileFeaturesOptions, _iModel: IModelConnection, callback: QueryVisibleFeaturesCallback): void {\n callback([]);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"RenderTarget.js","sourceRoot":"","sources":["../../../src/render/RenderTarget.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Rendering\n */\n\nimport { Id64String } from \"@itwin/core-bentley\";\nimport { ImageBuffer } from \"@itwin/core-common\";\nimport { XAndY } from \"@itwin/core-geometry\";\nimport { IModelConnection } from \"../IModelConnection\";\nimport { HiliteSet } from \"../SelectionSet\";\nimport { SceneContext } from \"../ViewContext\";\nimport { ReadImageBufferArgs, Viewport } from \"../Viewport\";\nimport { ViewRect } from \"../common/ViewRect\";\nimport { CanvasDecoration } from \"./CanvasDecoration\";\nimport { Decorations } from \"./Decorations\";\nimport { FeatureSymbology } from \"./FeatureSymbology\";\nimport { FrameStatsCollector } from \"../internal/render/FrameStatsCollector\";\nimport { AnimationBranchStates } from \"../internal/render/AnimationBranchState\";\nimport { CustomGraphicBuilderOptions, ViewportGraphicBuilderOptions } from \"./GraphicBuilder\";\nimport { Pixel } from \"./Pixel\";\nimport { GraphicList } from \"./RenderGraphic\";\nimport { RenderMemory } from \"./RenderMemory\";\nimport { RenderPlan } from \"../internal/render/RenderPlan\";\nimport { RenderPlanarClassifier } from \"../internal/render/RenderPlanarClassifier\";\nimport { RenderSystem, } from \"./RenderSystem\";\nimport { Scene } from \"./Scene\";\nimport { QueryTileFeaturesOptions, QueryVisibleFeaturesCallback } from \"./VisibleFeature\";\nimport { ActiveSpatialClassifier } from \"../SpatialClassifiersState\";\nimport { _implementationProhibited } from \"../common/internal/Symbols\";\nimport { RenderTextureDrape } from \"../internal/render/RenderTextureDrape\";\nimport { RenderTargetDebugControl } from \"../internal/render/RenderTargetDebugControl\";\n\n/** Connects a [[Viewport]] to a graphics renderer such as a [WebGLRenderingContext](https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext)\n * to enable the viewport's contents to be rendered to the screen or to an off-screen buffer.\n * Application code never interacts directly with a `RenderTarget` - it interacts with the `Viewport`'s API which forwards requests to the `RenderTarget`.\n * @public\n */\nexport abstract class RenderTarget implements Disposable, RenderMemory.Consumer {\n /** @internal */\n protected abstract readonly [_implementationProhibited]: unknown;\n\n /** @internal */\n public pickOverlayDecoration(_pt: XAndY): CanvasDecoration | undefined { return undefined; }\n\n /** @internal */\n public abstract get renderSystem(): RenderSystem;\n\n /** NB: *Device pixels*, not CSS pixels! */\n /** @internal */\n public abstract get viewRect(): ViewRect;\n\n /** @internal */\n public get devicePixelRatio(): number { return 1; }\n /** @internal */\n public cssPixelsToDevicePixels(cssPixels: number, floor = true): number {\n const pix = cssPixels * this.devicePixelRatio;\n return floor ? Math.floor(pix) : pix;\n }\n\n /** Given the size of a logical pixel in meters, convert it to the size of a physical pixel in meters, if [[RenderSystem.dpiAwareLOD]] is `true`.\n * Used when computing LOD for graphics.\n */\n /** @internal */\n public adjustPixelSizeForLOD(cssPixelSize: number): number {\n return this.renderSystem.dpiAwareLOD ? this.cssPixelsToDevicePixels(cssPixelSize, false) : cssPixelSize;\n }\n\n /** @internal */\n public abstract get wantInvertBlackBackground(): boolean;\n\n /** @internal */\n public abstract get analysisFraction(): number;\n public abstract set analysisFraction(fraction: number);\n\n /** @internal */\n public get animationBranches(): AnimationBranchStates | undefined { return undefined; }\n public set animationBranches(_transforms: AnimationBranchStates | undefined) { }\n\n /** @internal */\n public get antialiasSamples(): number { return 1; }\n public set antialiasSamples(_numSamples: number) { }\n\n /** @internal */\n public assignFrameStatsCollector(_collector: FrameStatsCollector) { }\n\n /** Update the solar shadow map. If a SceneContext is supplied, shadows are enabled; otherwise, shadows are disabled. */\n /** @internal */\n public updateSolarShadows(_context: SceneContext | undefined): void { }\n /** @internal */\n public getPlanarClassifier(_id: string): RenderPlanarClassifier | undefined { return undefined; }\n /** @internal */\n public createPlanarClassifier(_properties?: ActiveSpatialClassifier): RenderPlanarClassifier | undefined { return undefined; }\n /** @internal */\n public getTextureDrape(_id: Id64String): RenderTextureDrape | undefined { return undefined; }\n\n /** @internal */\n public createGraphicBuilder(options: CustomGraphicBuilderOptions | ViewportGraphicBuilderOptions) {\n return this.renderSystem.createGraphic(options);\n }\n\n /** @internal */\n public [Symbol.dispose](): void { }\n /** @internal */\n public reset(_realityMapLayerChanged?: boolean): void { }\n /** @internal */\n public abstract changeScene(scene: Scene): void;\n /** @internal */\n public abstract changeDynamics(foreground: GraphicList | undefined, overlay: GraphicList | undefined): void;\n /** @internal */\n public abstract changeDecorations(decorations: Decorations): void;\n /** @internal */\n public abstract changeRenderPlan(plan: RenderPlan): void;\n /** @internal */\n public abstract drawFrame(sceneMilSecElapsed?: number): void;\n /** @internal */\n public overrideFeatureSymbology(_ovr: FeatureSymbology.Overrides): void { }\n /** @internal */\n public setHiliteSet(_hilited: HiliteSet): void { }\n /** @internal */\n public setFlashed(_elementId: Id64String, _intensity: number): void { }\n /** @internal */\n public onBeforeRender(_viewport: Viewport, _setSceneNeedRedraw: (redraw: boolean) => void): void { }\n /** @internal */\n public abstract setViewRect(_rect: ViewRect, _temporary: boolean): void;\n /** @internal */\n public onResized(): void { }\n /** @internal */\n public abstract updateViewRect(): boolean; // force a RenderTarget viewRect to resize if necessary since last draw\n /** `rect` is specified in *CSS* pixels. */\n /** @internal */\n public abstract readPixels(rect: ViewRect, selector: Pixel.Selector, receiver: Pixel.Receiver, excludeNonLocatable: boolean, excludedElements?: Iterable<Id64String>): void;\n /** @internal */\n public readImageBuffer(_args?: ReadImageBufferArgs): ImageBuffer | undefined { return undefined; }\n /** @internal */\n public readImageToCanvas(_overlayCanvas?: HTMLCanvasElement): HTMLCanvasElement { return document.createElement(\"canvas\"); }\n /** @internal */\n public collectStatistics(_stats: RenderMemory.Statistics): void { }\n\n /** Specify whether webgl content should be rendered directly to the screen.\n * If rendering to screen becomes enabled, returns the canvas to which to render the webgl content.\n * Returns undefined if rendering to screen becomes disabled, or is not supported by this RenderTarget.\n */\n /** @internal */\n public setRenderToScreen(_toScreen: boolean): HTMLCanvasElement | undefined { return undefined; }\n\n /** @internal */\n public get debugControl(): RenderTargetDebugControl | undefined { return undefined; }\n\n /** An ordered list of names of screen-space post-processing effects to be applied to the image produced by this target.\n * The effects are applied in the order in which they appear in the list. Any names not corresponding to a registered effect are ignored.\n * This may have no effect if this target does not support screen-space effects.\n * @see [[RenderSystem.createScreenSpaceEffectBuilder]] to create and register new effects.\n */\n /** @internal */\n public abstract get screenSpaceEffects(): Iterable<string>;\n public abstract set screenSpaceEffects(_effectNames: Iterable<string>);\n\n /** Implementation for [[Viewport.queryVisibleFeatures]]. Not intended for direct usage. The returned iterable remains valid only for the duration of the\n * Viewport.queryVisibleFeatures call.\n */\n /** @internal */\n public queryVisibleTileFeatures(_options: QueryTileFeaturesOptions, _iModel: IModelConnection, callback: QueryVisibleFeaturesCallback): void {\n callback([]);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RealityTileTree.d.ts","sourceRoot":"","sources":["../../../src/tile/RealityTileTree.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAuB,UAAU,EAAmB,MAAM,qBAAqB,CAAC;AACvF,OAAO,EACc,OAAO,EAAE,SAAS,EACtC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAA0C,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE/F,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"RealityTileTree.d.ts","sourceRoot":"","sources":["../../../src/tile/RealityTileTree.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ import { Cartographic, ColorDef, GeoCoordStatus } from "@itwin/core-common";
|
|
|
11
11
|
import { BackgroundMapGeometry } from "../BackgroundMapGeometry";
|
|
12
12
|
import { IModelApp } from "../IModelApp";
|
|
13
13
|
import { GraphicBranch } from "../render/GraphicBranch";
|
|
14
|
-
import {
|
|
14
|
+
import { MapTile, RealityTile, TileTree, } from "./internal";
|
|
15
15
|
/** @internal */
|
|
16
16
|
export class TraversalDetails {
|
|
17
17
|
queuedChildren = new Array();
|
|
@@ -200,7 +200,7 @@ export class RealityTileTree extends TileTree {
|
|
|
200
200
|
sortIndices = selectedTiles.map((_x, i) => i);
|
|
201
201
|
sortIndices.sort((a, b) => selectedTiles[a].depth - selectedTiles[b].depth);
|
|
202
202
|
}
|
|
203
|
-
if (
|
|
203
|
+
if (args.shouldCollectClassifierGraphics)
|
|
204
204
|
this.collectClassifierGraphics(args, selectedTiles);
|
|
205
205
|
assert(selectedTiles.length === displayedTileDescendants.length);
|
|
206
206
|
for (let i = 0; i < selectedTiles.length; i++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RealityTileTree.js","sourceRoot":"","sources":["../../../src/tile/RealityTileTree.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tiles\n */\n\nimport { assert, BeTimePoint, Id64String, ProcessDetector } from \"@itwin/core-bentley\";\nimport {\n Matrix3d, Point3d, Range3d, Transform, Vector3d, XYZProps,\n} from \"@itwin/core-geometry\";\nimport { Cartographic, ColorDef, GeoCoordStatus, ViewFlagOverrides } from \"@itwin/core-common\";\nimport { BackgroundMapGeometry } from \"../BackgroundMapGeometry\";\nimport { GeoConverter } from \"../GeoServices\";\nimport { IModelApp } from \"../IModelApp\";\nimport { GraphicBranch } from \"../render/GraphicBranch\";\nimport { GraphicBuilder } from \"../render/GraphicBuilder\";\nimport { SceneContext } from \"../ViewContext\";\nimport {\n GraphicsCollectorDrawArgs, MapTile, RealityTile, RealityTileLoader, RealityTileParams, Tile, TileDrawArgs, TileGeometryCollector,\n TileGraphicType, TileParams, TileTree, TileTreeParams,\n} from \"./internal\";\n\n/** @internal */\nexport class TraversalDetails {\n public queuedChildren = new Array<Tile>();\n public childrenSelected = false;\n public shouldSelectParent = false;\n\n public initialize() {\n this.queuedChildren.length = 0;\n this.childrenSelected = false;\n this.shouldSelectParent = false;\n }\n}\n\n/** @internal */\nexport class TraversalChildrenDetails {\n private _childDetails: TraversalDetails[] = [];\n\n public initialize() {\n for (const child of this._childDetails)\n child.initialize();\n }\n\n public getChildDetail(index: number) {\n while (this._childDetails.length <= index)\n this._childDetails.push(new TraversalDetails());\n\n return this._childDetails[index];\n }\n\n public combine(parentDetails: TraversalDetails) {\n parentDetails.queuedChildren.length = 0;\n parentDetails.childrenSelected = false;\n parentDetails.shouldSelectParent = false;\n\n for (const child of this._childDetails) {\n parentDetails.childrenSelected = parentDetails.childrenSelected || child.childrenSelected;\n parentDetails.shouldSelectParent = parentDetails.shouldSelectParent || child.shouldSelectParent;\n\n for (const queuedChild of child.queuedChildren)\n parentDetails.queuedChildren.push(queuedChild);\n }\n }\n}\n\n/** @internal */\nexport class TraversalSelectionContext {\n public preloaded = new Set<RealityTile>();\n public missing = new Array<RealityTile>();\n public get selectionCountExceeded() { return this._maxSelectionCount === undefined ? false : (this.missing.length + this.selected.length) > this._maxSelectionCount; } // Avoid selecting excessive number of tiles.\n constructor(public selected: Tile[], public displayedDescendants: Tile[][], public preloadDebugBuilder?: GraphicBuilder, private _maxSelectionCount?: number) { }\n\n public selectOrQueue(tile: RealityTile, args: TileDrawArgs, traversalDetails: TraversalDetails) {\n tile.selectSecondaryTiles(args, this);\n tile.markUsed(args);\n traversalDetails.shouldSelectParent = true;\n\n if (tile.isReady) {\n args.markReady(tile);\n this.selected.push(tile);\n tile.markDisplayed();\n this.displayedDescendants.push((traversalDetails.childrenSelected) ? traversalDetails.queuedChildren.slice() : []);\n traversalDetails.queuedChildren.length = 0;\n traversalDetails.childrenSelected = true;\n traversalDetails.shouldSelectParent = false;\n } else if (!tile.isNotFound) {\n traversalDetails.queuedChildren.push(tile);\n if (!tile.isLoaded)\n this.missing.push(tile);\n }\n }\n\n public preload(tile: RealityTile, args: TileDrawArgs): void {\n if (!this.preloaded.has(tile)) {\n if (this.preloadDebugBuilder)\n tile.addBoundingGraphic(this.preloadDebugBuilder, ColorDef.red);\n\n tile.markUsed(args);\n tile.selectSecondaryTiles(args, this);\n this.preloaded.add(tile);\n if (!tile.isNotFound && !tile.isLoaded)\n this.missing.push(tile);\n }\n }\n\n public select(tiles: RealityTile[], args: TileDrawArgs): void {\n for (const tile of tiles) {\n tile.markUsed(args);\n this.selected.push(tile);\n this.displayedDescendants.push([]);\n }\n }\n}\n\nconst scratchCarto = Cartographic.createZero();\nconst scratchPoint = Point3d.createZero(), scratchOrigin = Point3d.createZero();\nconst scratchRange = Range3d.createNull();\nconst scratchX = Vector3d.createZero(), scratchY = Vector3d.createZero(), scratchZ = Vector3d.createZero();\nconst scratchMatrix = Matrix3d.createZero(), scratchTransform = Transform.createZero();\n\ninterface ChildReprojection {\n child: RealityTile;\n ecefCenter: Point3d;\n dbPoints: Point3d[]; // Center, xEnd, yEnd, zEnd\n}\n\n/** Provides access to per-feature properties within a [[RealityTileTree]].\n * A [[RealityTileTree]] may refer to a tileset in one of the [3D Tiles 1.0](https://docs.ogc.org/cs/18-053r2/18-053r2.html).\n * Tiles within such tilesets may include a [batch table](https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/BatchTable) describing subcomponents (\"features\") within the tile.\n * For example, a tileset representing a building may encode each door, window, and wall as separate features.\n * The batch table may additionally contain metadata in JSON format describing each feature.\n *\n * During tile decoding, iTwin.js assigns unique, transient [Id64String]($bentley)s to each unique feature within the tileset.\n * When interacting with tileset features (e.g., via a [[SelectionSet]] or [[HitDetail]]), the features are identified by these transient Ids.\n * The tile tree's BatchTableProperties maintains the mapping between the transient Ids and the per-feature properties.\n *\n * The following example illustrates one way to obtain the properties of a specific feature within a reality model's batch table:\n * ```ts\n * [[include:GetBatchTableFeatureProperties]]\n * ```\n *\n * @see [[RealityTileTree.batchTableProperties]] to obtain the batch table properties for a TileTree.\n * @beta\n */\nexport interface BatchTableProperties {\n /** Obtain the JSON properties associated with the specified transient Id.\n * @param id The transient Id mapped to the feature of interest.\n * @returns A corresponding JSON object representing the feature's properties, or `undefined` if no such properties exist.\n * @note Treat the JSON properties as read-only - do not modify them.\n */\n getFeatureProperties(id: Id64String): Record<string, any> | undefined;\n\n /** Obtain an iterator over all of the features in the batch table and their properties. */\n entries(): Iterable<{ id: Id64String, properties: Record<string, any> }>;\n}\n\n/** @internal */\nexport interface RealityTileTreeParams extends TileTreeParams {\n readonly loader: RealityTileLoader;\n readonly yAxisUp?: boolean;\n readonly rootTile: RealityTileParams;\n readonly rootToEcef?: Transform;\n readonly gcsConverterAvailable: boolean;\n readonly baseUrl?: string;\n}\n\n/** Base class for a [[TileTree]] representing a reality model (e.g., a point cloud or photogrammetry mesh) or 3d terrain with map imagery.\n * The tiles within the tree are instances of [[RealityTile]]s.\n * @public\n */\nexport class RealityTileTree extends TileTree {\n /** @internal */\n public traversalChildrenByDepth: TraversalChildrenDetails[] = [];\n /** @internal */\n public readonly loader: RealityTileLoader;\n /** @internal */\n public readonly yAxisUp: boolean;\n /** @internal */\n public cartesianRange: Range3d;\n /** @internal */\n public cartesianTransitionDistance: number;\n /** @internal */\n protected _gcsConverter: GeoConverter | undefined;\n /** @internal */\n protected _rootTile: RealityTile;\n /** @internal */\n protected _rootToEcef?: Transform;\n /** @internal */\n protected _ecefToDb?: Transform;\n /** @internal */\n public readonly baseUrl?: string;\n\n /** @internal */\n public constructor(params: RealityTileTreeParams) {\n super(params);\n this.loader = params.loader;\n this.yAxisUp = true === params.yAxisUp;\n this._rootTile = this.createTile(params.rootTile);\n this.cartesianRange = BackgroundMapGeometry.getCartesianRange(this.iModel);\n this.cartesianTransitionDistance = this.cartesianRange.diagonal().magnitudeXY() * .25; // Transition distance from elliptical to cartesian.\n this._gcsConverter = params.gcsConverterAvailable ? params.iModel.geoServices.getConverter(\"WGS84\") : undefined;\n if (params.rootToEcef) {\n this._rootToEcef = params.rootToEcef;\n const dbToRoot = this.iModelTransform.inverse();\n if (dbToRoot) {\n const dbToEcef = this._rootToEcef.multiplyTransformTransform(dbToRoot);\n this._ecefToDb = dbToEcef.inverse();\n }\n }\n this.baseUrl = params.baseUrl;\n }\n\n /** The mapping of per-feature JSON properties from this tile tree's batch table, if one is defined.\n * @beta\n */\n public get batchTableProperties(): BatchTableProperties | undefined {\n return this.loader.getBatchIdMap();\n }\n\n /** @internal */\n public get rootTile(): RealityTile { return this._rootTile; }\n /** @internal */\n public get is3d() { return true; }\n /** @internal */\n public get maxDepth() { return this.loader.maxDepth; }\n /** @internal */\n public get minDepth() { return this.loader.minDepth; }\n /** @internal */\n public override get isContentUnbounded() { return this.loader.isContentUnbounded; }\n /** @internal */\n public get isTransparent() { return false; }\n\n /** @internal */\n protected _selectTiles(args: TileDrawArgs): Tile[] { return this.selectRealityTiles(args, []); }\n /** @internal */\n public get viewFlagOverrides(): ViewFlagOverrides { return this.loader.viewFlagOverrides; }\n /** @internal */\n public override get parentsAndChildrenExclusive() { return this.loader.parentsAndChildrenExclusive; }\n\n /** @internal */\n public createTile(props: TileParams): RealityTile { return new RealityTile(props, this); }\n\n /** Collect tiles from this tile tree based on the criteria implemented by `collector`.\n * @internal\n */\n public override collectTileGeometry(collector: TileGeometryCollector): void {\n this.rootTile.collectTileGeometry(collector);\n }\n\n /** @internal */\n public prune(): void {\n const olderThan = BeTimePoint.now().minus(this.expirationTime);\n this.rootTile.purgeContents(olderThan, !ProcessDetector.isMobileBrowser);\n }\n\n /** @internal */\n public draw(args: TileDrawArgs): void {\n const displayedTileDescendants = new Array<RealityTile[]>();\n const debugControl = args.context.target.debugControl;\n const selectBuilder = (debugControl && debugControl.displayRealityTileRanges) ? args.context.createSceneGraphicBuilder() : undefined;\n const preloadDebugBuilder = (debugControl && debugControl.displayRealityTilePreload) ? args.context.createSceneGraphicBuilder() : undefined;\n const graphicTypeBranches = new Map<TileGraphicType, GraphicBranch>();\n\n const selectedTiles = this.selectRealityTiles(args, displayedTileDescendants, preloadDebugBuilder);\n args.processSelectedTiles(selectedTiles);\n let sortIndices;\n\n if (!this.parentsAndChildrenExclusive) {\n sortIndices = selectedTiles.map((_x, i) => i);\n sortIndices.sort((a, b) => selectedTiles[a].depth - selectedTiles[b].depth);\n }\n\n if (!(args instanceof GraphicsCollectorDrawArgs))\n this.collectClassifierGraphics(args, selectedTiles);\n\n assert(selectedTiles.length === displayedTileDescendants.length);\n for (let i = 0; i < selectedTiles.length; i++) {\n const index = sortIndices ? sortIndices[i] : i;\n const selectedTile = selectedTiles[index];\n const graphics = args.getTileGraphics(selectedTile);\n const tileGraphicType = selectedTile.graphicType;\n let targetBranch;\n if (undefined !== tileGraphicType && tileGraphicType !== args.context.graphicType) {\n if (!(targetBranch = graphicTypeBranches.get(tileGraphicType))) {\n graphicTypeBranches.set(tileGraphicType, targetBranch = new GraphicBranch(false));\n targetBranch.setViewFlagOverrides(args.graphics.viewFlagOverrides);\n targetBranch.symbologyOverrides = args.graphics.symbologyOverrides;\n }\n }\n\n if (!targetBranch)\n targetBranch = args.graphics;\n\n if (undefined !== graphics) {\n const displayedDescendants = displayedTileDescendants[index];\n if (0 === displayedDescendants.length || !this.loader.parentsAndChildrenExclusive || selectedTile.allChildrenIncluded(displayedDescendants)) {\n targetBranch.add(graphics);\n if (selectBuilder)\n selectedTile.addBoundingGraphic(selectBuilder, ColorDef.green);\n } else {\n if (selectBuilder)\n selectedTile.addBoundingGraphic(selectBuilder, ColorDef.red);\n\n for (const displayedDescendant of displayedDescendants) {\n const clipVector = displayedDescendant.getContentClip();\n if (selectBuilder)\n displayedDescendant.addBoundingGraphic(selectBuilder, ColorDef.blue);\n\n if (undefined === clipVector) {\n targetBranch.add(graphics);\n } else {\n clipVector.transformInPlace(args.location);\n if (!this.isTransparent)\n for (const primitive of clipVector.clips)\n for (const clipPlanes of primitive.fetchClipPlanesRef()!.convexSets)\n for (const plane of clipPlanes.planes)\n plane.offsetDistance(-displayedDescendant.radius * .05); // Overlap with existing (high resolution) tile slightly to avoid cracks.\n\n const branch = new GraphicBranch(false);\n branch.add(graphics);\n const clipVolume = args.context.target.renderSystem.createClipVolume(clipVector);\n targetBranch.add(args.context.createGraphicBranch(branch, Transform.createIdentity(), { clipVolume }));\n }\n }\n }\n if (preloadDebugBuilder)\n targetBranch.add(preloadDebugBuilder.finish());\n\n if (selectBuilder)\n targetBranch.add(selectBuilder.finish());\n\n const rangeGraphic = selectedTile.getRangeGraphic(args.context);\n if (undefined !== rangeGraphic)\n targetBranch.add(rangeGraphic);\n }\n }\n\n args.drawGraphics();\n for (const graphicTypeBranch of graphicTypeBranches) {\n args.drawGraphicsWithType(graphicTypeBranch[0], graphicTypeBranch[1]);\n }\n }\n\n /** @internal */\n protected collectClassifierGraphics(args: TileDrawArgs, selectedTiles: RealityTile[]) {\n const classifier = args.context.planarClassifiers.get(this.modelId);\n if (classifier)\n classifier.collectGraphics(args.context, { modelId: this.modelId, tiles: selectedTiles, location: args.location, isPointCloud: this.isPointCloud });\n }\n\n /** @internal */\n public getTraversalChildren(depth: number) {\n while (this.traversalChildrenByDepth.length <= depth)\n this.traversalChildrenByDepth.push(new TraversalChildrenDetails());\n\n return this.traversalChildrenByDepth[depth];\n }\n\n /** @internal */\n public doReprojectChildren(tile: Tile): boolean {\n if (!(tile instanceof RealityTile) || this._gcsConverter === undefined || this._rootToEcef === undefined || undefined === this._ecefToDb)\n return false;\n\n const tileRange = this.iModelTransform.isIdentity ? tile.range : this.iModelTransform.multiplyRange(tile.range, scratchRange);\n\n return this.cartesianRange.intersectsRange(tileRange);\n }\n\n /** @internal */\n public reprojectAndResolveChildren(parent: Tile, children: Tile[], resolve: (children: Tile[] | undefined) => void): void {\n if (!this.doReprojectChildren(parent)) {\n resolve(children);\n return;\n }\n\n const ecefToDb = this._ecefToDb!; // Tested for undefined in doReprojectChildren\n const rootToDb = this.iModelTransform;\n const dbToEcef = ecefToDb.inverse()!;\n const reprojectChildren = new Array<ChildReprojection>();\n for (const child of children) {\n const realityChild = child as RealityTile;\n const childRange = rootToDb.multiplyRange(realityChild.contentRange, scratchRange);\n const dbCenter = childRange.center;\n const ecefCenter = dbToEcef.multiplyPoint3d(dbCenter);\n const dbPoints = [dbCenter, dbCenter.plusXYZ(1), dbCenter.plusXYZ(0, 1), dbCenter.plusXYZ(0, 0, 1)];\n reprojectChildren.push({ child: realityChild, ecefCenter, dbPoints });\n }\n if (reprojectChildren.length === 0)\n resolve(children);\n else {\n const requestProps = new Array<XYZProps>();\n\n for (const reprojection of reprojectChildren) {\n for (const dbPoint of reprojection.dbPoints) {\n const ecefPoint = dbToEcef.multiplyPoint3d(dbPoint);\n const carto = Cartographic.fromEcef(ecefPoint, scratchCarto);\n if (carto)\n requestProps.push({ x: carto.longitudeDegrees, y: carto.latitudeDegrees, z: carto.height });\n\n }\n }\n\n if (requestProps.length !== 4 * reprojectChildren.length)\n resolve(children);\n else {\n this._gcsConverter!.getIModelCoordinatesFromGeoCoordinates(requestProps).then((response) => {\n\n const reprojectedCoords = response.iModelCoords;\n const dbToRoot = rootToDb.inverse()!;\n const getReprojectedPoint = (original: Point3d, reprojectedXYZ: XYZProps) => {\n scratchPoint.setFromJSON(reprojectedXYZ);\n const cartesianDistance = this.cartesianRange.distanceToPoint(scratchPoint);\n if (cartesianDistance < this.cartesianTransitionDistance)\n return scratchPoint.interpolate(cartesianDistance / this.cartesianTransitionDistance, original, scratchPoint);\n else\n return original;\n };\n\n let responseIndex = 0;\n for (const reprojection of reprojectChildren) {\n if (reprojectedCoords.every((coord) => coord.s === GeoCoordStatus.Success)) {\n const reprojectedOrigin = getReprojectedPoint(reprojection.dbPoints[0], reprojectedCoords[responseIndex++].p).clone(scratchOrigin);\n const xVector = Vector3d.createStartEnd(reprojectedOrigin, getReprojectedPoint(reprojection.dbPoints[1], reprojectedCoords[responseIndex++].p), scratchX);\n const yVector = Vector3d.createStartEnd(reprojectedOrigin, getReprojectedPoint(reprojection.dbPoints[2], reprojectedCoords[responseIndex++].p), scratchY);\n const zVector = Vector3d.createStartEnd(reprojectedOrigin, getReprojectedPoint(reprojection.dbPoints[3], reprojectedCoords[responseIndex++].p), scratchZ);\n const matrix = Matrix3d.createColumns(xVector, yVector, zVector, scratchMatrix);\n if (matrix !== undefined) {\n const dbReprojection = Transform.createMatrixPickupPutdown(matrix, reprojection.dbPoints[0], reprojectedOrigin, scratchTransform);\n if (dbReprojection) {\n const rootReprojection = dbToRoot.multiplyTransformTransform(dbReprojection).multiplyTransformTransform(rootToDb);\n reprojection.child.reproject(rootReprojection);\n }\n }\n }\n }\n\n resolve(children);\n }).catch(() => {\n resolve(children); // Error occured in reprojection - just resolve with unprojected corners.\n });\n }\n }\n }\n\n /** @internal */\n public getBaseRealityDepth(_sceneContext: SceneContext) { return -1; }\n\n /** Scan the list of currently selected reality tiles, and fire the viewport's 'onMapLayerScaleRangeVisibilityChanged ' event\n * if any scale range visibility change is detected for one more map-layer definition.\n * @internal\n */\n public reportTileVisibility(_args: TileDrawArgs, _selected: RealityTile[]) { }\n\n /** @internal */\n public selectRealityTiles(args: TileDrawArgs, displayedDescendants: RealityTile[][], preloadDebugBuilder?: GraphicBuilder): RealityTile[] {\n this._lastSelected = BeTimePoint.now();\n const selected: RealityTile[] = [];\n const context = new TraversalSelectionContext(selected, displayedDescendants, preloadDebugBuilder, args.maxRealityTreeSelectionCount);\n const rootTile = this.rootTile;\n const debugControl = args.context.target.debugControl;\n const freezeTiles = debugControl && debugControl.freezeRealityTiles;\n\n rootTile.selectRealityTiles(context, args, new TraversalDetails());\n\n const baseDepth = this.getBaseRealityDepth(args.context);\n\n if (IModelApp.tileAdmin.isPreloadingAllowed && 0 === context.missing.length) {\n if (baseDepth > 0) // Maps may force loading of low level globe tiles.\n rootTile.preloadRealityTilesAtDepth(baseDepth, context, args);\n\n if (!freezeTiles)\n rootTile.preloadProtectedTiles(args, context);\n }\n\n if (!freezeTiles)\n for (const tile of context.missing) {\n const loadableTile = tile.loadableTile;\n\n loadableTile.markUsed(args);\n args.insertMissing(loadableTile);\n }\n\n if (debugControl && debugControl.logRealityTiles) {\n this.logTiles(\"Selected: \", selected.values());\n const preloaded = [];\n for (const tile of context.preloaded)\n preloaded.push(tile);\n\n this.logTiles(\"Preloaded: \", preloaded.values());\n this.logTiles(\"Missing: \", context.missing.values());\n\n const imageryTiles: RealityTile[] = [];\n for (const selectedTile of selected) {\n if (selectedTile instanceof MapTile) {\n const selectedImageryTiles = (selectedTile).imageryTiles;\n if (selectedImageryTiles)\n selectedImageryTiles.forEach((tile) => imageryTiles.push(tile));\n }\n }\n if (imageryTiles.length)\n this.logTiles(\"Imagery:\", imageryTiles.values());\n }\n\n this.reportTileVisibility(args, selected);\n\n IModelApp.tileAdmin.addTilesForUser(args.context.viewport, selected, args.readyTiles, args.touchedTiles);\n return selected;\n }\n\n /** @internal */\n protected logTiles(label: string, tiles: IterableIterator<Tile>) {\n let depthString = \"\";\n let min = 10000, max = -10000;\n let count = 0;\n const depthMap = new Map<number, number>();\n for (const tile of tiles) {\n count++;\n const depth = tile.depth;\n min = Math.min(min, tile.depth);\n max = Math.max(max, tile.depth);\n const found = depthMap.get(depth);\n depthMap.set(depth, found === undefined ? 1 : found + 1);\n }\n\n depthMap.forEach((value, key) => depthString += `${key}(x${value}), `);\n // eslint-disable-next-line no-console\n console.log(`${label}: ${count} Min: ${min} Max: ${max} Depths: ${depthString}`);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"RealityTileTree.js","sourceRoot":"","sources":["../../../src/tile/RealityTileTree.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tiles\n */\n\nimport { assert, BeTimePoint, Id64String, ProcessDetector } from \"@itwin/core-bentley\";\nimport {\n Matrix3d, Point3d, Range3d, Transform, Vector3d, XYZProps,\n} from \"@itwin/core-geometry\";\nimport { Cartographic, ColorDef, GeoCoordStatus, ViewFlagOverrides } from \"@itwin/core-common\";\nimport { BackgroundMapGeometry } from \"../BackgroundMapGeometry\";\nimport { GeoConverter } from \"../GeoServices\";\nimport { IModelApp } from \"../IModelApp\";\nimport { GraphicBranch } from \"../render/GraphicBranch\";\nimport { GraphicBuilder } from \"../render/GraphicBuilder\";\nimport { SceneContext } from \"../ViewContext\";\nimport {\n MapTile, RealityTile, RealityTileLoader, RealityTileParams, Tile, TileDrawArgs, TileGeometryCollector,\n TileGraphicType, TileParams, TileTree, TileTreeParams,\n} from \"./internal\";\n\n/** @internal */\nexport class TraversalDetails {\n public queuedChildren = new Array<Tile>();\n public childrenSelected = false;\n public shouldSelectParent = false;\n\n public initialize() {\n this.queuedChildren.length = 0;\n this.childrenSelected = false;\n this.shouldSelectParent = false;\n }\n}\n\n/** @internal */\nexport class TraversalChildrenDetails {\n private _childDetails: TraversalDetails[] = [];\n\n public initialize() {\n for (const child of this._childDetails)\n child.initialize();\n }\n\n public getChildDetail(index: number) {\n while (this._childDetails.length <= index)\n this._childDetails.push(new TraversalDetails());\n\n return this._childDetails[index];\n }\n\n public combine(parentDetails: TraversalDetails) {\n parentDetails.queuedChildren.length = 0;\n parentDetails.childrenSelected = false;\n parentDetails.shouldSelectParent = false;\n\n for (const child of this._childDetails) {\n parentDetails.childrenSelected = parentDetails.childrenSelected || child.childrenSelected;\n parentDetails.shouldSelectParent = parentDetails.shouldSelectParent || child.shouldSelectParent;\n\n for (const queuedChild of child.queuedChildren)\n parentDetails.queuedChildren.push(queuedChild);\n }\n }\n}\n\n/** @internal */\nexport class TraversalSelectionContext {\n public preloaded = new Set<RealityTile>();\n public missing = new Array<RealityTile>();\n public get selectionCountExceeded() { return this._maxSelectionCount === undefined ? false : (this.missing.length + this.selected.length) > this._maxSelectionCount; } // Avoid selecting excessive number of tiles.\n constructor(public selected: Tile[], public displayedDescendants: Tile[][], public preloadDebugBuilder?: GraphicBuilder, private _maxSelectionCount?: number) { }\n\n public selectOrQueue(tile: RealityTile, args: TileDrawArgs, traversalDetails: TraversalDetails) {\n tile.selectSecondaryTiles(args, this);\n tile.markUsed(args);\n traversalDetails.shouldSelectParent = true;\n\n if (tile.isReady) {\n args.markReady(tile);\n this.selected.push(tile);\n tile.markDisplayed();\n this.displayedDescendants.push((traversalDetails.childrenSelected) ? traversalDetails.queuedChildren.slice() : []);\n traversalDetails.queuedChildren.length = 0;\n traversalDetails.childrenSelected = true;\n traversalDetails.shouldSelectParent = false;\n } else if (!tile.isNotFound) {\n traversalDetails.queuedChildren.push(tile);\n if (!tile.isLoaded)\n this.missing.push(tile);\n }\n }\n\n public preload(tile: RealityTile, args: TileDrawArgs): void {\n if (!this.preloaded.has(tile)) {\n if (this.preloadDebugBuilder)\n tile.addBoundingGraphic(this.preloadDebugBuilder, ColorDef.red);\n\n tile.markUsed(args);\n tile.selectSecondaryTiles(args, this);\n this.preloaded.add(tile);\n if (!tile.isNotFound && !tile.isLoaded)\n this.missing.push(tile);\n }\n }\n\n public select(tiles: RealityTile[], args: TileDrawArgs): void {\n for (const tile of tiles) {\n tile.markUsed(args);\n this.selected.push(tile);\n this.displayedDescendants.push([]);\n }\n }\n}\n\nconst scratchCarto = Cartographic.createZero();\nconst scratchPoint = Point3d.createZero(), scratchOrigin = Point3d.createZero();\nconst scratchRange = Range3d.createNull();\nconst scratchX = Vector3d.createZero(), scratchY = Vector3d.createZero(), scratchZ = Vector3d.createZero();\nconst scratchMatrix = Matrix3d.createZero(), scratchTransform = Transform.createZero();\n\ninterface ChildReprojection {\n child: RealityTile;\n ecefCenter: Point3d;\n dbPoints: Point3d[]; // Center, xEnd, yEnd, zEnd\n}\n\n/** Provides access to per-feature properties within a [[RealityTileTree]].\n * A [[RealityTileTree]] may refer to a tileset in one of the [3D Tiles 1.0](https://docs.ogc.org/cs/18-053r2/18-053r2.html).\n * Tiles within such tilesets may include a [batch table](https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/BatchTable) describing subcomponents (\"features\") within the tile.\n * For example, a tileset representing a building may encode each door, window, and wall as separate features.\n * The batch table may additionally contain metadata in JSON format describing each feature.\n *\n * During tile decoding, iTwin.js assigns unique, transient [Id64String]($bentley)s to each unique feature within the tileset.\n * When interacting with tileset features (e.g., via a [[SelectionSet]] or [[HitDetail]]), the features are identified by these transient Ids.\n * The tile tree's BatchTableProperties maintains the mapping between the transient Ids and the per-feature properties.\n *\n * The following example illustrates one way to obtain the properties of a specific feature within a reality model's batch table:\n * ```ts\n * [[include:GetBatchTableFeatureProperties]]\n * ```\n *\n * @see [[RealityTileTree.batchTableProperties]] to obtain the batch table properties for a TileTree.\n * @beta\n */\nexport interface BatchTableProperties {\n /** Obtain the JSON properties associated with the specified transient Id.\n * @param id The transient Id mapped to the feature of interest.\n * @returns A corresponding JSON object representing the feature's properties, or `undefined` if no such properties exist.\n * @note Treat the JSON properties as read-only - do not modify them.\n */\n getFeatureProperties(id: Id64String): Record<string, any> | undefined;\n\n /** Obtain an iterator over all of the features in the batch table and their properties. */\n entries(): Iterable<{ id: Id64String, properties: Record<string, any> }>;\n}\n\n/** @internal */\nexport interface RealityTileTreeParams extends TileTreeParams {\n readonly loader: RealityTileLoader;\n readonly yAxisUp?: boolean;\n readonly rootTile: RealityTileParams;\n readonly rootToEcef?: Transform;\n readonly gcsConverterAvailable: boolean;\n readonly baseUrl?: string;\n}\n\n/** Base class for a [[TileTree]] representing a reality model (e.g., a point cloud or photogrammetry mesh) or 3d terrain with map imagery.\n * The tiles within the tree are instances of [[RealityTile]]s.\n * @public\n */\nexport class RealityTileTree extends TileTree {\n /** @internal */\n public traversalChildrenByDepth: TraversalChildrenDetails[] = [];\n /** @internal */\n public readonly loader: RealityTileLoader;\n /** @internal */\n public readonly yAxisUp: boolean;\n /** @internal */\n public cartesianRange: Range3d;\n /** @internal */\n public cartesianTransitionDistance: number;\n /** @internal */\n protected _gcsConverter: GeoConverter | undefined;\n /** @internal */\n protected _rootTile: RealityTile;\n /** @internal */\n protected _rootToEcef?: Transform;\n /** @internal */\n protected _ecefToDb?: Transform;\n /** @internal */\n public readonly baseUrl?: string;\n\n /** @internal */\n public constructor(params: RealityTileTreeParams) {\n super(params);\n this.loader = params.loader;\n this.yAxisUp = true === params.yAxisUp;\n this._rootTile = this.createTile(params.rootTile);\n this.cartesianRange = BackgroundMapGeometry.getCartesianRange(this.iModel);\n this.cartesianTransitionDistance = this.cartesianRange.diagonal().magnitudeXY() * .25; // Transition distance from elliptical to cartesian.\n this._gcsConverter = params.gcsConverterAvailable ? params.iModel.geoServices.getConverter(\"WGS84\") : undefined;\n if (params.rootToEcef) {\n this._rootToEcef = params.rootToEcef;\n const dbToRoot = this.iModelTransform.inverse();\n if (dbToRoot) {\n const dbToEcef = this._rootToEcef.multiplyTransformTransform(dbToRoot);\n this._ecefToDb = dbToEcef.inverse();\n }\n }\n this.baseUrl = params.baseUrl;\n }\n\n /** The mapping of per-feature JSON properties from this tile tree's batch table, if one is defined.\n * @beta\n */\n public get batchTableProperties(): BatchTableProperties | undefined {\n return this.loader.getBatchIdMap();\n }\n\n /** @internal */\n public get rootTile(): RealityTile { return this._rootTile; }\n /** @internal */\n public get is3d() { return true; }\n /** @internal */\n public get maxDepth() { return this.loader.maxDepth; }\n /** @internal */\n public get minDepth() { return this.loader.minDepth; }\n /** @internal */\n public override get isContentUnbounded() { return this.loader.isContentUnbounded; }\n /** @internal */\n public get isTransparent() { return false; }\n\n /** @internal */\n protected _selectTiles(args: TileDrawArgs): Tile[] { return this.selectRealityTiles(args, []); }\n /** @internal */\n public get viewFlagOverrides(): ViewFlagOverrides { return this.loader.viewFlagOverrides; }\n /** @internal */\n public override get parentsAndChildrenExclusive() { return this.loader.parentsAndChildrenExclusive; }\n\n /** @internal */\n public createTile(props: TileParams): RealityTile { return new RealityTile(props, this); }\n\n /** Collect tiles from this tile tree based on the criteria implemented by `collector`.\n * @internal\n */\n public override collectTileGeometry(collector: TileGeometryCollector): void {\n this.rootTile.collectTileGeometry(collector);\n }\n\n /** @internal */\n public prune(): void {\n const olderThan = BeTimePoint.now().minus(this.expirationTime);\n this.rootTile.purgeContents(olderThan, !ProcessDetector.isMobileBrowser);\n }\n\n /** @internal */\n public draw(args: TileDrawArgs): void {\n const displayedTileDescendants = new Array<RealityTile[]>();\n const debugControl = args.context.target.debugControl;\n const selectBuilder = (debugControl && debugControl.displayRealityTileRanges) ? args.context.createSceneGraphicBuilder() : undefined;\n const preloadDebugBuilder = (debugControl && debugControl.displayRealityTilePreload) ? args.context.createSceneGraphicBuilder() : undefined;\n const graphicTypeBranches = new Map<TileGraphicType, GraphicBranch>();\n\n const selectedTiles = this.selectRealityTiles(args, displayedTileDescendants, preloadDebugBuilder);\n args.processSelectedTiles(selectedTiles);\n let sortIndices;\n\n if (!this.parentsAndChildrenExclusive) {\n sortIndices = selectedTiles.map((_x, i) => i);\n sortIndices.sort((a, b) => selectedTiles[a].depth - selectedTiles[b].depth);\n }\n\n if (args.shouldCollectClassifierGraphics)\n this.collectClassifierGraphics(args, selectedTiles);\n\n assert(selectedTiles.length === displayedTileDescendants.length);\n for (let i = 0; i < selectedTiles.length; i++) {\n const index = sortIndices ? sortIndices[i] : i;\n const selectedTile = selectedTiles[index];\n const graphics = args.getTileGraphics(selectedTile);\n const tileGraphicType = selectedTile.graphicType;\n let targetBranch;\n if (undefined !== tileGraphicType && tileGraphicType !== args.context.graphicType) {\n if (!(targetBranch = graphicTypeBranches.get(tileGraphicType))) {\n graphicTypeBranches.set(tileGraphicType, targetBranch = new GraphicBranch(false));\n targetBranch.setViewFlagOverrides(args.graphics.viewFlagOverrides);\n targetBranch.symbologyOverrides = args.graphics.symbologyOverrides;\n }\n }\n\n if (!targetBranch)\n targetBranch = args.graphics;\n\n if (undefined !== graphics) {\n const displayedDescendants = displayedTileDescendants[index];\n if (0 === displayedDescendants.length || !this.loader.parentsAndChildrenExclusive || selectedTile.allChildrenIncluded(displayedDescendants)) {\n targetBranch.add(graphics);\n if (selectBuilder)\n selectedTile.addBoundingGraphic(selectBuilder, ColorDef.green);\n } else {\n if (selectBuilder)\n selectedTile.addBoundingGraphic(selectBuilder, ColorDef.red);\n\n for (const displayedDescendant of displayedDescendants) {\n const clipVector = displayedDescendant.getContentClip();\n if (selectBuilder)\n displayedDescendant.addBoundingGraphic(selectBuilder, ColorDef.blue);\n\n if (undefined === clipVector) {\n targetBranch.add(graphics);\n } else {\n clipVector.transformInPlace(args.location);\n if (!this.isTransparent)\n for (const primitive of clipVector.clips)\n for (const clipPlanes of primitive.fetchClipPlanesRef()!.convexSets)\n for (const plane of clipPlanes.planes)\n plane.offsetDistance(-displayedDescendant.radius * .05); // Overlap with existing (high resolution) tile slightly to avoid cracks.\n\n const branch = new GraphicBranch(false);\n branch.add(graphics);\n const clipVolume = args.context.target.renderSystem.createClipVolume(clipVector);\n targetBranch.add(args.context.createGraphicBranch(branch, Transform.createIdentity(), { clipVolume }));\n }\n }\n }\n if (preloadDebugBuilder)\n targetBranch.add(preloadDebugBuilder.finish());\n\n if (selectBuilder)\n targetBranch.add(selectBuilder.finish());\n\n const rangeGraphic = selectedTile.getRangeGraphic(args.context);\n if (undefined !== rangeGraphic)\n targetBranch.add(rangeGraphic);\n }\n }\n\n args.drawGraphics();\n for (const graphicTypeBranch of graphicTypeBranches) {\n args.drawGraphicsWithType(graphicTypeBranch[0], graphicTypeBranch[1]);\n }\n }\n\n /** @internal */\n protected collectClassifierGraphics(args: TileDrawArgs, selectedTiles: RealityTile[]) {\n const classifier = args.context.planarClassifiers.get(this.modelId);\n if (classifier)\n classifier.collectGraphics(args.context, { modelId: this.modelId, tiles: selectedTiles, location: args.location, isPointCloud: this.isPointCloud });\n }\n\n /** @internal */\n public getTraversalChildren(depth: number) {\n while (this.traversalChildrenByDepth.length <= depth)\n this.traversalChildrenByDepth.push(new TraversalChildrenDetails());\n\n return this.traversalChildrenByDepth[depth];\n }\n\n /** @internal */\n public doReprojectChildren(tile: Tile): boolean {\n if (!(tile instanceof RealityTile) || this._gcsConverter === undefined || this._rootToEcef === undefined || undefined === this._ecefToDb)\n return false;\n\n const tileRange = this.iModelTransform.isIdentity ? tile.range : this.iModelTransform.multiplyRange(tile.range, scratchRange);\n\n return this.cartesianRange.intersectsRange(tileRange);\n }\n\n /** @internal */\n public reprojectAndResolveChildren(parent: Tile, children: Tile[], resolve: (children: Tile[] | undefined) => void): void {\n if (!this.doReprojectChildren(parent)) {\n resolve(children);\n return;\n }\n\n const ecefToDb = this._ecefToDb!; // Tested for undefined in doReprojectChildren\n const rootToDb = this.iModelTransform;\n const dbToEcef = ecefToDb.inverse()!;\n const reprojectChildren = new Array<ChildReprojection>();\n for (const child of children) {\n const realityChild = child as RealityTile;\n const childRange = rootToDb.multiplyRange(realityChild.contentRange, scratchRange);\n const dbCenter = childRange.center;\n const ecefCenter = dbToEcef.multiplyPoint3d(dbCenter);\n const dbPoints = [dbCenter, dbCenter.plusXYZ(1), dbCenter.plusXYZ(0, 1), dbCenter.plusXYZ(0, 0, 1)];\n reprojectChildren.push({ child: realityChild, ecefCenter, dbPoints });\n }\n if (reprojectChildren.length === 0)\n resolve(children);\n else {\n const requestProps = new Array<XYZProps>();\n\n for (const reprojection of reprojectChildren) {\n for (const dbPoint of reprojection.dbPoints) {\n const ecefPoint = dbToEcef.multiplyPoint3d(dbPoint);\n const carto = Cartographic.fromEcef(ecefPoint, scratchCarto);\n if (carto)\n requestProps.push({ x: carto.longitudeDegrees, y: carto.latitudeDegrees, z: carto.height });\n\n }\n }\n\n if (requestProps.length !== 4 * reprojectChildren.length)\n resolve(children);\n else {\n this._gcsConverter!.getIModelCoordinatesFromGeoCoordinates(requestProps).then((response) => {\n\n const reprojectedCoords = response.iModelCoords;\n const dbToRoot = rootToDb.inverse()!;\n const getReprojectedPoint = (original: Point3d, reprojectedXYZ: XYZProps) => {\n scratchPoint.setFromJSON(reprojectedXYZ);\n const cartesianDistance = this.cartesianRange.distanceToPoint(scratchPoint);\n if (cartesianDistance < this.cartesianTransitionDistance)\n return scratchPoint.interpolate(cartesianDistance / this.cartesianTransitionDistance, original, scratchPoint);\n else\n return original;\n };\n\n let responseIndex = 0;\n for (const reprojection of reprojectChildren) {\n if (reprojectedCoords.every((coord) => coord.s === GeoCoordStatus.Success)) {\n const reprojectedOrigin = getReprojectedPoint(reprojection.dbPoints[0], reprojectedCoords[responseIndex++].p).clone(scratchOrigin);\n const xVector = Vector3d.createStartEnd(reprojectedOrigin, getReprojectedPoint(reprojection.dbPoints[1], reprojectedCoords[responseIndex++].p), scratchX);\n const yVector = Vector3d.createStartEnd(reprojectedOrigin, getReprojectedPoint(reprojection.dbPoints[2], reprojectedCoords[responseIndex++].p), scratchY);\n const zVector = Vector3d.createStartEnd(reprojectedOrigin, getReprojectedPoint(reprojection.dbPoints[3], reprojectedCoords[responseIndex++].p), scratchZ);\n const matrix = Matrix3d.createColumns(xVector, yVector, zVector, scratchMatrix);\n if (matrix !== undefined) {\n const dbReprojection = Transform.createMatrixPickupPutdown(matrix, reprojection.dbPoints[0], reprojectedOrigin, scratchTransform);\n if (dbReprojection) {\n const rootReprojection = dbToRoot.multiplyTransformTransform(dbReprojection).multiplyTransformTransform(rootToDb);\n reprojection.child.reproject(rootReprojection);\n }\n }\n }\n }\n\n resolve(children);\n }).catch(() => {\n resolve(children); // Error occured in reprojection - just resolve with unprojected corners.\n });\n }\n }\n }\n\n /** @internal */\n public getBaseRealityDepth(_sceneContext: SceneContext) { return -1; }\n\n /** Scan the list of currently selected reality tiles, and fire the viewport's 'onMapLayerScaleRangeVisibilityChanged ' event\n * if any scale range visibility change is detected for one more map-layer definition.\n * @internal\n */\n public reportTileVisibility(_args: TileDrawArgs, _selected: RealityTile[]) { }\n\n /** @internal */\n public selectRealityTiles(args: TileDrawArgs, displayedDescendants: RealityTile[][], preloadDebugBuilder?: GraphicBuilder): RealityTile[] {\n this._lastSelected = BeTimePoint.now();\n const selected: RealityTile[] = [];\n const context = new TraversalSelectionContext(selected, displayedDescendants, preloadDebugBuilder, args.maxRealityTreeSelectionCount);\n const rootTile = this.rootTile;\n const debugControl = args.context.target.debugControl;\n const freezeTiles = debugControl && debugControl.freezeRealityTiles;\n\n rootTile.selectRealityTiles(context, args, new TraversalDetails());\n\n const baseDepth = this.getBaseRealityDepth(args.context);\n\n if (IModelApp.tileAdmin.isPreloadingAllowed && 0 === context.missing.length) {\n if (baseDepth > 0) // Maps may force loading of low level globe tiles.\n rootTile.preloadRealityTilesAtDepth(baseDepth, context, args);\n\n if (!freezeTiles)\n rootTile.preloadProtectedTiles(args, context);\n }\n\n if (!freezeTiles)\n for (const tile of context.missing) {\n const loadableTile = tile.loadableTile;\n\n loadableTile.markUsed(args);\n args.insertMissing(loadableTile);\n }\n\n if (debugControl && debugControl.logRealityTiles) {\n this.logTiles(\"Selected: \", selected.values());\n const preloaded = [];\n for (const tile of context.preloaded)\n preloaded.push(tile);\n\n this.logTiles(\"Preloaded: \", preloaded.values());\n this.logTiles(\"Missing: \", context.missing.values());\n\n const imageryTiles: RealityTile[] = [];\n for (const selectedTile of selected) {\n if (selectedTile instanceof MapTile) {\n const selectedImageryTiles = (selectedTile).imageryTiles;\n if (selectedImageryTiles)\n selectedImageryTiles.forEach((tile) => imageryTiles.push(tile));\n }\n }\n if (imageryTiles.length)\n this.logTiles(\"Imagery:\", imageryTiles.values());\n }\n\n this.reportTileVisibility(args, selected);\n\n IModelApp.tileAdmin.addTilesForUser(args.context.viewport, selected, args.readyTiles, args.touchedTiles);\n return selected;\n }\n\n /** @internal */\n protected logTiles(label: string, tiles: IterableIterator<Tile>) {\n let depthString = \"\";\n let min = 10000, max = -10000;\n let count = 0;\n const depthMap = new Map<number, number>();\n for (const tile of tiles) {\n count++;\n const depth = tile.depth;\n min = Math.min(min, tile.depth);\n max = Math.max(max, tile.depth);\n const found = depthMap.get(depth);\n depthMap.set(depth, found === undefined ? 1 : found + 1);\n }\n\n depthMap.forEach((value, key) => depthString += `${key}(x${value}), `);\n // eslint-disable-next-line no-console\n console.log(`${label}: ${count} Min: ${min} Max: ${max} Depths: ${depthString}`);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TileDrawArgs.d.ts","sourceRoot":"","sources":["../../../src/tile/TileDrawArgs.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TileDrawArgs.d.ts","sourceRoot":"","sources":["../../../src/tile/TileDrawArgs.ts"],"names":[],"mappings":"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"}
|
|
@@ -320,5 +320,7 @@ export class TileDrawArgs {
|
|
|
320
320
|
processSelectedTiles(_tiles) { }
|
|
321
321
|
/* @internal */
|
|
322
322
|
get maxRealityTreeSelectionCount() { return undefined; }
|
|
323
|
+
/* @internal */
|
|
324
|
+
get shouldCollectClassifierGraphics() { return true; }
|
|
323
325
|
}
|
|
324
326
|
//# sourceMappingURL=TileDrawArgs.js.map
|