@itwin/core-frontend 3.0.0-dev.159 → 3.0.0-dev.166
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/lib/cjs/Viewport.js +2 -2
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/tile/B3dmReader.d.ts.map +1 -1
- package/lib/cjs/tile/B3dmReader.js +5 -2
- package/lib/cjs/tile/B3dmReader.js.map +1 -1
- package/lib/cjs/tile/GltfReader.d.ts +29 -3
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +25 -23
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/I3dmReader.d.ts.map +1 -1
- package/lib/cjs/tile/I3dmReader.js +5 -2
- package/lib/cjs/tile/I3dmReader.js.map +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts +3 -3
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +4 -6
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/esm/Viewport.js +2 -2
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/tile/B3dmReader.d.ts.map +1 -1
- package/lib/esm/tile/B3dmReader.js +6 -3
- package/lib/esm/tile/B3dmReader.js.map +1 -1
- package/lib/esm/tile/GltfReader.d.ts +29 -3
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +25 -23
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/I3dmReader.d.ts.map +1 -1
- package/lib/esm/tile/I3dmReader.js +6 -3
- package/lib/esm/tile/I3dmReader.js.map +1 -1
- package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts +3 -3
- package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js +4 -6
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/package.json +22 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"I3dmReader.js","sourceRoot":"","sources":["../../../src/tile/I3dmReader.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\nimport { ByteStream, Id64String, JsonUtils, utf8ToString } from \"@itwin/core-bentley\";\r\nimport { AxisOrder, Matrix3d, Point3d, Vector3d } from \"@itwin/core-geometry\";\r\nimport { BatchType, ElementAlignedBox3d, Feature, FeatureTable, I3dmHeader, TileReadStatus } from \"@itwin/core-common\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { InstancedGraphicParams } from \"../render/InstancedGraphicParams\";\r\nimport { Mesh } from \"../render/primitives/mesh/MeshPrimitives\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\nimport { BatchedTileIdMap, GltfReader, GltfReaderProps, GltfReaderResult, ShouldAbortReadGltf } from \"./internal\";\r\n\r\nfunction setTransform(transforms: Float32Array, index: number, rotation: Matrix3d, origin: Point3d): void {\r\n const i = index * 12;\r\n let rot = rotation.coffs;\r\n\r\n const ignoreRotation = false;\r\n if (ignoreRotation)\r\n rot = new Float64Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);\r\n\r\n const ignoreOrigin = false;\r\n if (ignoreOrigin)\r\n origin.x = origin.y = origin.z = 0;\r\n\r\n transforms[i + 0] = rot[0];\r\n transforms[i + 1] = rot[1];\r\n transforms[i + 2] = rot[2];\r\n transforms[i + 3] = origin.x;\r\n\r\n transforms[i + 4] = rot[3];\r\n transforms[i + 5] = rot[4];\r\n transforms[i + 6] = rot[5];\r\n transforms[i + 7] = origin.y;\r\n\r\n transforms[i + 8] = rot[6];\r\n transforms[i + 9] = rot[7];\r\n transforms[i + 10] = rot[8];\r\n transforms[i + 11] = origin.z;\r\n}\r\n\r\n/**\r\n * Deserializes a tile in [i3dm](https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification/TileFormats/Instanced3DModel) format.\r\n * @internal\r\n */\r\nexport class I3dmReader extends GltfReader {\r\n private _instanceCount = 0;\r\n private _featureTable?: FeatureTable;\r\n private readonly _modelId: Id64String;\r\n\r\n public static create(stream: ByteStream, iModel: IModelConnection, modelId: Id64String, is3d: boolean, range: ElementAlignedBox3d,\r\n system: RenderSystem, yAxisUp: boolean, isLeaf: boolean, isCanceled?: ShouldAbortReadGltf, idMap?: BatchedTileIdMap, deduplicateVertices=false): I3dmReader | undefined {\r\n const header = new I3dmHeader(stream);\r\n if (!header.isValid)\r\n return undefined;\r\n\r\n const props = GltfReaderProps.create(stream, yAxisUp);\r\n if (undefined === props)\r\n return undefined;\r\n\r\n stream.curPos = header.featureTableJsonPosition;\r\n const featureStr = utf8ToString(stream.nextBytes(header.featureTableJsonLength));\r\n if (undefined === featureStr)\r\n return undefined;\r\n\r\n const featureBinary = new Uint8Array(stream.arrayBuffer, header.featureTableJsonPosition + header.featureTableJsonLength, header.featureTableBinaryLength);\r\n return new I3dmReader(featureBinary, JSON.parse(featureStr), header.batchTableJson, props, iModel, modelId, is3d, system,\r\n range, isLeaf, isCanceled, idMap, deduplicateVertices);\r\n }\r\n\r\n private constructor(private _featureBinary: Uint8Array, private _featureJson: any, private _batchTableJson: any, props: GltfReaderProps,\r\n iModel: IModelConnection, modelId: Id64String, is3d: boolean, system: RenderSystem, private _range: ElementAlignedBox3d,\r\n private _isLeaf: boolean, isCanceled?: ShouldAbortReadGltf, private _idMap?: BatchedTileIdMap, deduplicateVertices=false) {\r\n super(props, iModel, is3d, system, BatchType.Primary, isCanceled, deduplicateVertices);\r\n this._modelId = modelId;\r\n }\r\n\r\n public async read(): Promise<GltfReaderResult> {\r\n this._instanceCount = JsonUtils.asInt(this._featureJson.INSTANCES_LENGTH, 0);\r\n\r\n // NB: For reality models with no batch table, we want the model ID in the feature table\r\n this._featureTable = new FeatureTable(undefined === this._batchTableJson ? this._instanceCount : 1, this._modelId, this._type);\r\n if (this._idMap !== undefined && this._batchTableJson !== undefined) {\r\n for (let i = 0; i < this._instanceCount; i++) {\r\n const feature: any = {};\r\n for (const key in this._batchTableJson) // eslint-disable-line guard-for-in\r\n feature[key] = this._batchTableJson[key][i];\r\n\r\n this._featureTable.insert(new Feature(this._idMap.getBatchId(feature)));\r\n }\r\n } else {\r\n // NB: For reality models with no batch table, we want the model ID in the feature table\r\n const feature = new Feature(this._modelId);\r\n this._featureTable.insert(feature);\r\n }\r\n\r\n await this.loadTextures();\r\n if (this._isCanceled)\r\n return { readStatus: TileReadStatus.Canceled, isLeaf: this._isLeaf };\r\n\r\n const instances = this.readInstances();\r\n if (undefined === instances)\r\n return { readStatus: TileReadStatus.InvalidTileData, isLeaf: this._isLeaf };\r\n\r\n return this.readGltfAndCreateGraphics(this._isLeaf, this._featureTable, this._range, undefined, undefined, instances);\r\n }\r\n\r\n protected readFeatures(_features: Mesh.Features, _json: any): boolean {\r\n return false;\r\n }\r\n\r\n private readInstances(): InstancedGraphicParams | undefined {\r\n const count = JsonUtils.asInt(this._featureJson.INSTANCES_LENGTH, 0);\r\n if (count <= 0)\r\n return undefined;\r\n\r\n const json = this._featureJson;\r\n const binary = this._featureBinary;\r\n\r\n const batchIds = json.BATCH_ID ? new Int32Array(binary.buffer, binary.byteOffset + json.BATCH_ID.byteOffset, count) : undefined;\r\n const positions = json.POSITION ? new Float32Array(binary.buffer, binary.byteOffset + json.POSITION.byteOffset, count * 3) : undefined;\r\n const upNormals = json.NORMAL_UP ? new Float32Array(binary.buffer, binary.byteOffset + json.NORMAL_UP.byteOffset, count * 3) : undefined;\r\n const rightNormals = json.NORMAL_RIGHT ? new Float32Array(binary.buffer, binary.byteOffset + json.NORMAL_RIGHT.byteOffset, count * 3) : undefined;\r\n const scales = json.SCALE ? new Float32Array(binary.buffer, binary.byteOffset + json.SCALE.byteOffset, count) : undefined;\r\n const nonUniformScales = json.SCALE_NON_UNIFORM ? new Float32Array(binary.buffer, binary.byteOffset + json.SCALE_NON_UNIFORM.byteOffset, count * 3) : undefined;\r\n\r\n const matrix = Matrix3d.createIdentity();\r\n const position = Point3d.createZero();\r\n const upNormal = Vector3d.create(0, 0, 1);\r\n const rightNormal = Vector3d.create(1, 0, 0);\r\n const scale = Vector3d.create(1, 1, 1);\r\n\r\n const transformCenter = this._range.center;\r\n const transforms = new Float32Array(12 * count);\r\n for (let i = 0; i < count; i++) {\r\n const index = i * 3;\r\n if (positions)\r\n position.set(positions[index] - transformCenter.x, positions[index + 1] - transformCenter.y, positions[index + 2] - transformCenter.z);\r\n\r\n if (upNormals || rightNormals) {\r\n if (upNormals)\r\n upNormal.set(upNormals[index], upNormals[index + 1], upNormals[index + 2]);\r\n\r\n if (rightNormals)\r\n rightNormal.set(rightNormals[index], rightNormals[index + 1], rightNormals[index + 2]);\r\n\r\n if (scales)\r\n scale.x = scale.y = scale.z = scales[i];\r\n\r\n if (nonUniformScales) {\r\n scale.x *= nonUniformScales[index + 0];\r\n scale.y *= nonUniformScales[index + 1];\r\n scale.z *= nonUniformScales[index + 2];\r\n }\r\n\r\n Matrix3d.createRigidFromColumns(rightNormal, upNormal, AxisOrder.XYZ, matrix);\r\n if (scales || nonUniformScales)\r\n matrix.scaleColumnsInPlace(scale.x, scale.y, scale.z);\r\n\r\n setTransform(transforms, i, matrix, position);\r\n }\r\n }\r\n\r\n let featureIds;\r\n if (undefined !== batchIds) {\r\n featureIds = new Uint8Array(3 * batchIds.length);\r\n for (let i = 0, j = 0; i < batchIds.length; i++) {\r\n const batchId = batchIds[i];\r\n featureIds[j++] = batchId & 0x000000ff;\r\n featureIds[j++] = (batchId & 0x0000ff00) >> 8;\r\n featureIds[j++] = (batchId & 0x00ff0000) >> 16;\r\n }\r\n }\r\n const symbologyOverrides = undefined;\r\n\r\n return { count, transforms, symbologyOverrides, featureIds, transformCenter };\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"I3dmReader.js","sourceRoot":"","sources":["../../../src/tile/I3dmReader.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\nimport { ByteStream, Id64String, JsonUtils, utf8ToString } from \"@itwin/core-bentley\";\r\nimport { AxisOrder, Matrix3d, Point3d, Vector3d } from \"@itwin/core-geometry\";\r\nimport { ElementAlignedBox3d, Feature, FeatureTable, I3dmHeader, TileReadStatus } from \"@itwin/core-common\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { InstancedGraphicParams } from \"../render/InstancedGraphicParams\";\r\nimport { Mesh } from \"../render/primitives/mesh/MeshPrimitives\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\nimport { BatchedTileIdMap, GltfReader, GltfReaderProps, GltfReaderResult, ShouldAbortReadGltf } from \"./internal\";\r\n\r\nfunction setTransform(transforms: Float32Array, index: number, rotation: Matrix3d, origin: Point3d): void {\r\n const i = index * 12;\r\n let rot = rotation.coffs;\r\n\r\n const ignoreRotation = false;\r\n if (ignoreRotation)\r\n rot = new Float64Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);\r\n\r\n const ignoreOrigin = false;\r\n if (ignoreOrigin)\r\n origin.x = origin.y = origin.z = 0;\r\n\r\n transforms[i + 0] = rot[0];\r\n transforms[i + 1] = rot[1];\r\n transforms[i + 2] = rot[2];\r\n transforms[i + 3] = origin.x;\r\n\r\n transforms[i + 4] = rot[3];\r\n transforms[i + 5] = rot[4];\r\n transforms[i + 6] = rot[5];\r\n transforms[i + 7] = origin.y;\r\n\r\n transforms[i + 8] = rot[6];\r\n transforms[i + 9] = rot[7];\r\n transforms[i + 10] = rot[8];\r\n transforms[i + 11] = origin.z;\r\n}\r\n\r\n/**\r\n * Deserializes a tile in [i3dm](https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification/TileFormats/Instanced3DModel) format.\r\n * @internal\r\n */\r\nexport class I3dmReader extends GltfReader {\r\n private _instanceCount = 0;\r\n private _featureTable?: FeatureTable;\r\n private readonly _modelId: Id64String;\r\n\r\n public static create(stream: ByteStream, iModel: IModelConnection, modelId: Id64String, is3d: boolean, range: ElementAlignedBox3d,\r\n system: RenderSystem, yAxisUp: boolean, isLeaf: boolean, isCanceled?: ShouldAbortReadGltf, idMap?: BatchedTileIdMap, deduplicateVertices=false): I3dmReader | undefined {\r\n const header = new I3dmHeader(stream);\r\n if (!header.isValid)\r\n return undefined;\r\n\r\n const props = GltfReaderProps.create(stream, yAxisUp);\r\n if (undefined === props)\r\n return undefined;\r\n\r\n stream.curPos = header.featureTableJsonPosition;\r\n const featureStr = utf8ToString(stream.nextBytes(header.featureTableJsonLength));\r\n if (undefined === featureStr)\r\n return undefined;\r\n\r\n const featureBinary = new Uint8Array(stream.arrayBuffer, header.featureTableJsonPosition + header.featureTableJsonLength, header.featureTableBinaryLength);\r\n return new I3dmReader(featureBinary, JSON.parse(featureStr), header.batchTableJson, props, iModel, modelId, is3d, system,\r\n range, isLeaf, isCanceled, idMap, deduplicateVertices);\r\n }\r\n\r\n private constructor(private _featureBinary: Uint8Array, private _featureJson: any, private _batchTableJson: any, props: GltfReaderProps,\r\n iModel: IModelConnection, modelId: Id64String, is3d: boolean, system: RenderSystem, private _range: ElementAlignedBox3d,\r\n private _isLeaf: boolean, shouldAbort?: ShouldAbortReadGltf, private _idMap?: BatchedTileIdMap, deduplicateVertices=false) {\r\n super({\r\n props, iModel, system, shouldAbort, deduplicateVertices,\r\n is2d: !is3d,\r\n });\r\n this._modelId = modelId;\r\n }\r\n\r\n public async read(): Promise<GltfReaderResult> {\r\n this._instanceCount = JsonUtils.asInt(this._featureJson.INSTANCES_LENGTH, 0);\r\n\r\n // NB: For reality models with no batch table, we want the model ID in the feature table\r\n this._featureTable = new FeatureTable(undefined === this._batchTableJson ? this._instanceCount : 1, this._modelId, this._type);\r\n if (this._idMap !== undefined && this._batchTableJson !== undefined) {\r\n for (let i = 0; i < this._instanceCount; i++) {\r\n const feature: any = {};\r\n for (const key in this._batchTableJson) // eslint-disable-line guard-for-in\r\n feature[key] = this._batchTableJson[key][i];\r\n\r\n this._featureTable.insert(new Feature(this._idMap.getBatchId(feature)));\r\n }\r\n } else {\r\n // NB: For reality models with no batch table, we want the model ID in the feature table\r\n const feature = new Feature(this._modelId);\r\n this._featureTable.insert(feature);\r\n }\r\n\r\n await this.loadTextures();\r\n if (this._isCanceled)\r\n return { readStatus: TileReadStatus.Canceled, isLeaf: this._isLeaf };\r\n\r\n const instances = this.readInstances();\r\n if (undefined === instances)\r\n return { readStatus: TileReadStatus.InvalidTileData, isLeaf: this._isLeaf };\r\n\r\n return this.readGltfAndCreateGraphics(this._isLeaf, this._featureTable, this._range, undefined, undefined, instances);\r\n }\r\n\r\n protected readFeatures(_features: Mesh.Features, _json: any): boolean {\r\n return false;\r\n }\r\n\r\n private readInstances(): InstancedGraphicParams | undefined {\r\n const count = JsonUtils.asInt(this._featureJson.INSTANCES_LENGTH, 0);\r\n if (count <= 0)\r\n return undefined;\r\n\r\n const json = this._featureJson;\r\n const binary = this._featureBinary;\r\n\r\n const batchIds = json.BATCH_ID ? new Int32Array(binary.buffer, binary.byteOffset + json.BATCH_ID.byteOffset, count) : undefined;\r\n const positions = json.POSITION ? new Float32Array(binary.buffer, binary.byteOffset + json.POSITION.byteOffset, count * 3) : undefined;\r\n const upNormals = json.NORMAL_UP ? new Float32Array(binary.buffer, binary.byteOffset + json.NORMAL_UP.byteOffset, count * 3) : undefined;\r\n const rightNormals = json.NORMAL_RIGHT ? new Float32Array(binary.buffer, binary.byteOffset + json.NORMAL_RIGHT.byteOffset, count * 3) : undefined;\r\n const scales = json.SCALE ? new Float32Array(binary.buffer, binary.byteOffset + json.SCALE.byteOffset, count) : undefined;\r\n const nonUniformScales = json.SCALE_NON_UNIFORM ? new Float32Array(binary.buffer, binary.byteOffset + json.SCALE_NON_UNIFORM.byteOffset, count * 3) : undefined;\r\n\r\n const matrix = Matrix3d.createIdentity();\r\n const position = Point3d.createZero();\r\n const upNormal = Vector3d.create(0, 0, 1);\r\n const rightNormal = Vector3d.create(1, 0, 0);\r\n const scale = Vector3d.create(1, 1, 1);\r\n\r\n const transformCenter = this._range.center;\r\n const transforms = new Float32Array(12 * count);\r\n for (let i = 0; i < count; i++) {\r\n const index = i * 3;\r\n if (positions)\r\n position.set(positions[index] - transformCenter.x, positions[index + 1] - transformCenter.y, positions[index + 2] - transformCenter.z);\r\n\r\n if (upNormals || rightNormals) {\r\n if (upNormals)\r\n upNormal.set(upNormals[index], upNormals[index + 1], upNormals[index + 2]);\r\n\r\n if (rightNormals)\r\n rightNormal.set(rightNormals[index], rightNormals[index + 1], rightNormals[index + 2]);\r\n\r\n if (scales)\r\n scale.x = scale.y = scale.z = scales[i];\r\n\r\n if (nonUniformScales) {\r\n scale.x *= nonUniformScales[index + 0];\r\n scale.y *= nonUniformScales[index + 1];\r\n scale.z *= nonUniformScales[index + 2];\r\n }\r\n\r\n Matrix3d.createRigidFromColumns(rightNormal, upNormal, AxisOrder.XYZ, matrix);\r\n if (scales || nonUniformScales)\r\n matrix.scaleColumnsInPlace(scale.x, scale.y, scale.z);\r\n\r\n setTransform(transforms, i, matrix, position);\r\n }\r\n }\r\n\r\n let featureIds;\r\n if (undefined !== batchIds) {\r\n featureIds = new Uint8Array(3 * batchIds.length);\r\n for (let i = 0, j = 0; i < batchIds.length; i++) {\r\n const batchId = batchIds[i];\r\n featureIds[j++] = batchId & 0x000000ff;\r\n featureIds[j++] = (batchId & 0x0000ff00) >> 8;\r\n featureIds[j++] = (batchId & 0x00ff0000) >> 16;\r\n }\r\n }\r\n const symbologyOverrides = undefined;\r\n\r\n return { count, transforms, symbologyOverrides, featureIds, transformCenter };\r\n }\r\n}\r\n"]}
|
|
@@ -3,18 +3,18 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { Id64String } from "@itwin/core-bentley";
|
|
5
5
|
import { MapLayerSettings } from "@itwin/core-common";
|
|
6
|
-
import {
|
|
6
|
+
import { DisplayStyleState } from "../../DisplayStyleState";
|
|
7
7
|
import { ViewState } from "../../ViewState";
|
|
8
|
+
import { Viewport } from "../../Viewport";
|
|
8
9
|
import { MapLayerImageryProvider, MapTileTreeReference, TiledGraphicsProvider, TileTreeReference } from "../internal";
|
|
9
10
|
/** @internal */
|
|
10
11
|
export declare class MapTiledGraphicsProvider implements TiledGraphicsProvider {
|
|
11
|
-
private readonly _vp;
|
|
12
12
|
readonly backgroundMap: MapTileTreeReference;
|
|
13
13
|
readonly overlayMap: MapTileTreeReference;
|
|
14
14
|
readonly backgroundDrapeMap: MapTileTreeReference;
|
|
15
15
|
private readonly _detachFromDisplayStyle;
|
|
16
16
|
forEachTileTreeRef(viewport: Viewport, func: (ref: TileTreeReference) => void): void;
|
|
17
|
-
constructor(
|
|
17
|
+
constructor(viewportId: number, displayStyle: DisplayStyleState);
|
|
18
18
|
setView(newView: ViewState): void;
|
|
19
19
|
detachFromDisplayStyle(): void;
|
|
20
20
|
/** @internal */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapTiledGraphicsProvider.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/MapTiledGraphicsProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAsB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"MapTiledGraphicsProvider.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/MapTiledGraphicsProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAsB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEtH,gBAAgB;AAChB,qBAAa,wBAAyB,YAAW,qBAAqB;IACpE,SAAgB,aAAa,EAAE,oBAAoB,CAAC;IACpD,SAAgB,UAAU,EAAE,oBAAoB,CAAC;IACjD,SAAgB,kBAAkB,EAAE,oBAAoB,CAAC;IACzD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAsB;IAEvD,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI;gBAM/E,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB;IAyBxD,OAAO,CAAC,OAAO,EAAE,SAAS;IAsB1B,sBAAsB,IAAI,IAAI;IAIrC,gBAAgB;IACT,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS;IAKzG,gBAAgB;IACT,eAAe,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,GAAG,gBAAgB,GAAG,SAAS;CAOrG"}
|
|
@@ -9,15 +9,13 @@ import { MapLayerSettings } from "@itwin/core-common";
|
|
|
9
9
|
import { MapTileTreeReference } from "../internal";
|
|
10
10
|
/** @internal */
|
|
11
11
|
export class MapTiledGraphicsProvider {
|
|
12
|
-
constructor(
|
|
13
|
-
this._vp = _vp;
|
|
12
|
+
constructor(viewportId, displayStyle) {
|
|
14
13
|
this._detachFromDisplayStyle = [];
|
|
15
|
-
const displayStyle = _vp.displayStyle;
|
|
16
14
|
const mapSettings = displayStyle.backgroundMapSettings;
|
|
17
15
|
const mapImagery = displayStyle.settings.mapImagery;
|
|
18
|
-
this.backgroundMap = new MapTileTreeReference(mapSettings, mapImagery.backgroundBase, mapImagery.backgroundLayers, displayStyle.iModel,
|
|
19
|
-
this.overlayMap = new MapTileTreeReference(mapSettings, undefined, mapImagery.overlayLayers, displayStyle.iModel,
|
|
20
|
-
this.backgroundDrapeMap = new MapTileTreeReference(mapSettings, mapImagery.backgroundBase, mapImagery.backgroundLayers, displayStyle.iModel,
|
|
16
|
+
this.backgroundMap = new MapTileTreeReference(mapSettings, mapImagery.backgroundBase, mapImagery.backgroundLayers, displayStyle.iModel, viewportId, false, false, () => displayStyle.overrideTerrainDisplay());
|
|
17
|
+
this.overlayMap = new MapTileTreeReference(mapSettings, undefined, mapImagery.overlayLayers, displayStyle.iModel, viewportId, true, false);
|
|
18
|
+
this.backgroundDrapeMap = new MapTileTreeReference(mapSettings, mapImagery.backgroundBase, mapImagery.backgroundLayers, displayStyle.iModel, viewportId, false, true);
|
|
21
19
|
const removals = this._detachFromDisplayStyle;
|
|
22
20
|
removals.push(displayStyle.settings.onBackgroundMapChanged.addListener((settings) => {
|
|
23
21
|
this.backgroundMap.settings = settings;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapTiledGraphicsProvider.js","sourceRoot":"","sources":["../../../../src/tile/map/MapTiledGraphicsProvider.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAsB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"MapTiledGraphicsProvider.js","sourceRoot":"","sources":["../../../../src/tile/map/MapTiledGraphicsProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport { MapImagerySettings, MapLayerSettings } from \"@itwin/core-common\";\r\nimport { DisplayStyleState } from \"../../DisplayStyleState\";\r\nimport { ViewState } from \"../../ViewState\";\r\nimport { Viewport } from \"../../Viewport\";\r\nimport { MapLayerImageryProvider, MapTileTreeReference, TiledGraphicsProvider, TileTreeReference } from \"../internal\";\r\n\r\n/** @internal */\r\nexport class MapTiledGraphicsProvider implements TiledGraphicsProvider {\r\n public readonly backgroundMap: MapTileTreeReference;\r\n public readonly overlayMap: MapTileTreeReference;\r\n public readonly backgroundDrapeMap: MapTileTreeReference;\r\n private readonly _detachFromDisplayStyle: VoidFunction[] = [];\r\n\r\n public forEachTileTreeRef(viewport: Viewport, func: (ref: TileTreeReference) => void): void {\r\n if (viewport.viewFlags.backgroundMap) {\r\n func(this.backgroundMap);\r\n func(this.overlayMap);\r\n }\r\n }\r\n constructor(viewportId: number, displayStyle: DisplayStyleState) {\r\n const mapSettings = displayStyle.backgroundMapSettings;\r\n const mapImagery = displayStyle.settings.mapImagery;\r\n this.backgroundMap = new MapTileTreeReference(mapSettings, mapImagery.backgroundBase, mapImagery.backgroundLayers, displayStyle.iModel, viewportId, false, false, () => displayStyle.overrideTerrainDisplay());\r\n this.overlayMap = new MapTileTreeReference(mapSettings, undefined, mapImagery.overlayLayers, displayStyle.iModel, viewportId, true, false);\r\n this.backgroundDrapeMap = new MapTileTreeReference(mapSettings, mapImagery.backgroundBase, mapImagery.backgroundLayers, displayStyle.iModel, viewportId, false, true);\r\n\r\n const removals = this._detachFromDisplayStyle;\r\n removals.push(displayStyle.settings.onBackgroundMapChanged.addListener((settings) => {\r\n this.backgroundMap.settings = settings;\r\n this.overlayMap.settings = settings;\r\n this.backgroundDrapeMap.settings = settings;\r\n }));\r\n\r\n removals.push(displayStyle.settings.onMapImageryChanged.addListener((imagery: Readonly<MapImagerySettings>) => {\r\n this.backgroundMap.setBaseLayerSettings(imagery.backgroundBase);\r\n this.backgroundMap.setLayerSettings(imagery.backgroundLayers);\r\n this.backgroundDrapeMap.setBaseLayerSettings(mapImagery.backgroundBase);\r\n this.backgroundDrapeMap.setLayerSettings(mapImagery.backgroundLayers);\r\n this.overlayMap.setLayerSettings(imagery.overlayLayers);\r\n }));\r\n }\r\n\r\n // This is used in inital view setup and when views are synchronized. If view is being synchronized\r\n // we need to clear the layers which purges tile graphics if the settings or layers are changed.\r\n public setView(newView: ViewState) {\r\n const layersMatch = ((layers1: MapLayerSettings[], layers2: MapLayerSettings[]): boolean => {\r\n if (layers1.length !== layers2.length)\r\n return false;\r\n\r\n for (let i = 0; i < layers1.length; i++)\r\n if (!layers1[i].displayMatches(layers2[i]))\r\n return false;\r\n\r\n return true;\r\n });\r\n const mapImagery = newView.displayStyle.settings.mapImagery;\r\n if (!newView.displayStyle.backgroundMapSettings.equals(this.backgroundMap.settings)\r\n || !layersMatch(mapImagery.backgroundLayers, this.backgroundMap.layerSettings)\r\n || (mapImagery.backgroundBase instanceof MapLayerSettings && !layersMatch([mapImagery.backgroundBase], this.backgroundDrapeMap.layerSettings))) {\r\n this.backgroundMap.clearLayers();\r\n this.backgroundDrapeMap.clearLayers();\r\n }\r\n if (!layersMatch(mapImagery.overlayLayers, this.overlayMap.layerSettings))\r\n this.overlayMap.clearLayers();\r\n }\r\n\r\n public detachFromDisplayStyle(): void {\r\n this._detachFromDisplayStyle.forEach((f) => f());\r\n this._detachFromDisplayStyle.length = 0;\r\n }\r\n /** @internal */\r\n public getMapLayerImageryProvider(index: number, isOverlay: boolean): MapLayerImageryProvider | undefined {\r\n const imageryTreeRef = isOverlay ? this.overlayMap.getLayerImageryTreeRef(index) : this.backgroundMap.getLayerImageryTreeRef(index);\r\n return imageryTreeRef?.imageryProvider;\r\n }\r\n\r\n /** @internal */\r\n public mapLayerFromIds(mapTreeId: Id64String, layerTreeId: Id64String): MapLayerSettings | undefined {\r\n let mapLayer;\r\n if (undefined === (mapLayer = this.backgroundMap.layerFromTreeModelIds(mapTreeId, layerTreeId)))\r\n mapLayer = this.overlayMap.layerFromTreeModelIds(mapTreeId, layerTreeId);\r\n\r\n return mapLayer;\r\n }\r\n}\r\n\r\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/core-frontend",
|
|
3
|
-
"version": "3.0.0-dev.
|
|
3
|
+
"version": "3.0.0-dev.166",
|
|
4
4
|
"description": "iTwin.js frontend components",
|
|
5
5
|
"main": "lib/cjs/core-frontend.js",
|
|
6
6
|
"module": "lib/esm/core-frontend.js",
|
|
@@ -23,31 +23,31 @@
|
|
|
23
23
|
"url": "http://www.bentley.com"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
|
-
"@bentley/itwin-client": "^3.0.0-dev.
|
|
27
|
-
"@itwin/appui-abstract": "^3.0.0-dev.
|
|
28
|
-
"@itwin/core-bentley": "^3.0.0-dev.
|
|
29
|
-
"@itwin/core-common": "^3.0.0-dev.
|
|
30
|
-
"@itwin/core-geometry": "^3.0.0-dev.
|
|
31
|
-
"@itwin/core-orbitgt": "^3.0.0-dev.
|
|
32
|
-
"@itwin/core-quantity": "^3.0.0-dev.
|
|
33
|
-
"@itwin/webgl-compatibility": "^3.0.0-dev.
|
|
26
|
+
"@bentley/itwin-client": "^3.0.0-dev.166",
|
|
27
|
+
"@itwin/appui-abstract": "^3.0.0-dev.166",
|
|
28
|
+
"@itwin/core-bentley": "^3.0.0-dev.166",
|
|
29
|
+
"@itwin/core-common": "^3.0.0-dev.166",
|
|
30
|
+
"@itwin/core-geometry": "^3.0.0-dev.166",
|
|
31
|
+
"@itwin/core-orbitgt": "^3.0.0-dev.166",
|
|
32
|
+
"@itwin/core-quantity": "^3.0.0-dev.166",
|
|
33
|
+
"@itwin/webgl-compatibility": "^3.0.0-dev.166"
|
|
34
34
|
},
|
|
35
35
|
"//devDependencies": [
|
|
36
36
|
"NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install",
|
|
37
37
|
"NOTE: All tools used by scripts in this package must be listed as devDependencies"
|
|
38
38
|
],
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@bentley/itwin-client": "3.0.0-dev.
|
|
41
|
-
"@itwin/appui-abstract": "3.0.0-dev.
|
|
42
|
-
"@itwin/build-tools": "3.0.0-dev.
|
|
43
|
-
"@itwin/core-bentley": "3.0.0-dev.
|
|
44
|
-
"@itwin/core-common": "3.0.0-dev.
|
|
45
|
-
"@itwin/core-geometry": "3.0.0-dev.
|
|
46
|
-
"@itwin/core-orbitgt": "3.0.0-dev.
|
|
47
|
-
"@itwin/core-quantity": "3.0.0-dev.
|
|
48
|
-
"@itwin/certa": "3.0.0-dev.
|
|
49
|
-
"@itwin/eslint-plugin": "3.0.0-dev.
|
|
50
|
-
"@itwin/webgl-compatibility": "3.0.0-dev.
|
|
40
|
+
"@bentley/itwin-client": "3.0.0-dev.166",
|
|
41
|
+
"@itwin/appui-abstract": "3.0.0-dev.166",
|
|
42
|
+
"@itwin/build-tools": "3.0.0-dev.166",
|
|
43
|
+
"@itwin/core-bentley": "3.0.0-dev.166",
|
|
44
|
+
"@itwin/core-common": "3.0.0-dev.166",
|
|
45
|
+
"@itwin/core-geometry": "3.0.0-dev.166",
|
|
46
|
+
"@itwin/core-orbitgt": "3.0.0-dev.166",
|
|
47
|
+
"@itwin/core-quantity": "3.0.0-dev.166",
|
|
48
|
+
"@itwin/certa": "3.0.0-dev.166",
|
|
49
|
+
"@itwin/eslint-plugin": "3.0.0-dev.166",
|
|
50
|
+
"@itwin/webgl-compatibility": "3.0.0-dev.166",
|
|
51
51
|
"@types/chai": "^4.1.4",
|
|
52
52
|
"@types/chai-as-promised": "^7",
|
|
53
53
|
"@types/mocha": "^8.2.2",
|
|
@@ -72,8 +72,8 @@
|
|
|
72
72
|
"NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"
|
|
73
73
|
],
|
|
74
74
|
"dependencies": {
|
|
75
|
-
"@itwin/core-i18n": "3.0.0-dev.
|
|
76
|
-
"@itwin/core-telemetry": "3.0.0-dev.
|
|
75
|
+
"@itwin/core-i18n": "3.0.0-dev.166",
|
|
76
|
+
"@itwin/core-telemetry": "3.0.0-dev.166",
|
|
77
77
|
"fuse.js": "^3.3.0",
|
|
78
78
|
"semver": "^5.5.0",
|
|
79
79
|
"wms-capabilities": "0.4.0",
|