@itwin/core-frontend 3.2.0-dev.6 → 3.2.0-dev.9

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.
Files changed (30) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/lib/cjs/render/webgl/RealityMesh.d.ts +1 -0
  3. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  4. package/lib/cjs/render/webgl/RealityMesh.js +1 -0
  5. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  6. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  7. package/lib/cjs/render/webgl/glsl/RealityMesh.js +1 -3
  8. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  9. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  10. package/lib/cjs/tile/map/ArcGisUtilities.js +13 -0
  11. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  12. package/lib/cjs/tools/ToolAdmin.d.ts +4 -5
  13. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  14. package/lib/cjs/tools/ToolAdmin.js +1 -13
  15. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  16. package/lib/esm/render/webgl/RealityMesh.d.ts +1 -0
  17. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  18. package/lib/esm/render/webgl/RealityMesh.js +1 -0
  19. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  20. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  21. package/lib/esm/render/webgl/glsl/RealityMesh.js +1 -3
  22. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  23. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  24. package/lib/esm/tile/map/ArcGisUtilities.js +13 -0
  25. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  26. package/lib/esm/tools/ToolAdmin.d.ts +4 -5
  27. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  28. package/lib/esm/tools/ToolAdmin.js +1 -13
  29. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  30. package/package.json +20 -20
package/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # Change Log - @itwin/core-frontend
2
2
 
3
- This log was last generated on Thu, 24 Feb 2022 15:26:55 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 10 Mar 2022 21:18:13 GMT and should not be manually modified.
4
+
5
+ ## 3.0.2
6
+ Thu, 10 Mar 2022 21:18:13 GMT
7
+
8
+ _Version update only_
4
9
 
5
10
  ## 3.0.1
6
11
  Thu, 24 Feb 2022 15:26:55 GMT
@@ -60,6 +60,7 @@ export declare class RealityMeshGeometry extends IndexedGeometry implements IDis
60
60
  readonly baseColor: ColorDef | undefined;
61
61
  private _baseIsTransparent;
62
62
  private _isTerrain;
63
+ readonly hasTextures: boolean;
63
64
  get asRealityMesh(): RealityMeshGeometry | undefined;
64
65
  get isDisposed(): boolean;
65
66
  get uvQParams(): Float32Array;
@@ -1 +1 @@
1
- {"version":3,"file":"RealityMesh.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/RealityMesh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RealityMesh.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/RealityMesh.ts"],"names":[],"mappings":"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"}
@@ -202,6 +202,7 @@ class RealityMeshGeometry extends CachedGeometry_1.IndexedGeometry {
202
202
  this.baseColor = baseColor;
203
203
  this._baseIsTransparent = _baseIsTransparent;
204
204
  this._isTerrain = _isTerrain;
205
+ this.hasTextures = undefined !== textureParams && textureParams.params.some((x) => undefined !== x.texture);
205
206
  }
206
207
  get asRealityMesh() { return this; }
207
208
  get isDisposed() { return this._realityMeshParams.isDisposed; }
@@ -1 +1 @@
1
- {"version":3,"file":"RealityMesh.js","sourceRoot":"","sources":["../../../../src/render/webgl/RealityMesh.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\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, dispose, IDisposable } from \"@itwin/core-bentley\";\r\nimport { ColorDef, Quantization, RenderTexture } from \"@itwin/core-common\";\r\nimport { Matrix4d, Range2d, Range3d, Transform, Vector2d } from \"@itwin/core-geometry\";\r\nimport { GraphicBranch } from \"../GraphicBranch\";\r\nimport { RealityMeshGraphicParams, RealityMeshPrimitive } from \"../primitives/mesh/RealityMeshPrimitive\";\r\nimport { TerrainMeshPrimitive } from \"../primitives/mesh/TerrainMeshPrimitive\";\r\nimport { RenderGraphic } from \"../RenderGraphic\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { RenderPlanarClassifier } from \"../RenderPlanarClassifier\";\r\nimport { RenderSystem, TerrainTexture } from \"../RenderSystem\";\r\nimport { BufferHandle, BufferParameters, QBufferHandle2d, QBufferHandle3d } from \"./AttributeBuffers\";\r\nimport { AttributeMap } from \"./AttributeMap\";\r\nimport { IndexedGeometry, IndexedGeometryParams } from \"./CachedGeometry\";\r\nimport { GL } from \"./GL\";\r\nimport { Matrix4 } from \"./Matrix\";\r\nimport { PlanarClassifier } from \"./PlanarClassifier\";\r\nimport { Primitive } from \"./Primitive\";\r\nimport { RenderOrder } from \"./RenderFlags\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\n\r\nconst scratchOverlapRange = Range2d.createNull();\r\nconst scratchBytes = new Uint8Array(4);\r\nconst scratchBatchBaseId = new Uint32Array(scratchBytes.buffer);\r\nconst scratchRange2d = Range2d.createNull();\r\nclass ProjectedTexture {\r\n public classifier: PlanarClassifier;\r\n constructor(classifier: RenderPlanarClassifier, public meshParams: RealityMeshGraphicParams, public targetRectangle: Range2d) {\r\n this.classifier = classifier as PlanarClassifier;\r\n }\r\n public clone(targetRectangle: Range2d) {\r\n return new ProjectedTexture(this.classifier, this.meshParams, targetRectangle.clone());\r\n }\r\n}\r\ntype TerrainOrProjectedTexture = TerrainTexture | ProjectedTexture;\r\n\r\nclass RealityTextureParam {\r\n constructor(public texture: RenderTexture | undefined, private _projectedTextureOrMatrix: ProjectedTexture | Matrix4) { }\r\n public get isProjected() { return this._projectedTextureOrMatrix instanceof ProjectedTexture; }\r\n\r\n /* There are two methods of applying a texture to a reality mesh. the first member of \"params\" denotes which\r\n method is to be used. A value of zero indicates a standard texture and one represents a classified texture.\r\n\r\n A standard (nonprojected) texture is generated by multiplying v_textCoord by the scaling and translation packed into the first row\r\n of \"matrix\". A clip rectangle is packed into second row of \"matrix\".\r\n\r\n A \"classified\" reality mesh texture is used for map layers. It does not uses v_texCoord, the texture coordinates\r\n are instead generated by a projection of the model position onto the X-Y plane. We only have eye position, not model position\r\n so the matrix in this case is a real transform matrix that contains a mapping from eye to model position\r\n followed by the model to texture projection.\r\n*/\r\n public getProjectionMatrix(): Matrix4d | undefined {\r\n return this._projectedTextureOrMatrix instanceof ProjectedTexture ? this._projectedTextureOrMatrix.classifier.projectionMatrix : undefined;\r\n }\r\n public getTerrainMatrix(): Matrix4 | undefined {\r\n return this._projectedTextureOrMatrix instanceof Matrix4 ? this._projectedTextureOrMatrix : undefined;\r\n }\r\n\r\n public getParams(result: Matrix4): Matrix4 {\r\n /** Entry 0 is 0 for */\r\n if (this._projectedTextureOrMatrix instanceof ProjectedTexture) {\r\n const projectedTexture = this._projectedTextureOrMatrix;\r\n\r\n result.data[0] = 1;\r\n result.data[1] = projectedTexture.classifier.textureImageCount;\r\n result.data[2] = projectedTexture.classifier.sourceTransparency === undefined ? 1.0 : (1.0 - projectedTexture.classifier.sourceTransparency);\r\n scratchBatchBaseId[0] = projectedTexture.classifier.baseBatchId;\r\n result.data[4] = scratchBytes[0];\r\n result.data[5] = scratchBytes[1];\r\n result.data[6] = scratchBytes[2];\r\n result.data[7] = scratchBytes[3];\r\n\r\n const points = [];\r\n const meshParams = projectedTexture.meshParams;\r\n // Calculate range in the tiles local coordinates.\r\n const low = meshParams.tileRectangle.worldToLocal(projectedTexture.targetRectangle.low, scratchRange2d.low)!;\r\n const high = meshParams.tileRectangle.worldToLocal(projectedTexture.targetRectangle.high, scratchRange2d.high)!;\r\n points.push(meshParams.projection.getGlobalPoint(low.x, low.y, 0));\r\n points.push( meshParams.projection.getGlobalPoint(high.x, low.y, 0));\r\n points.push(meshParams.projection.getGlobalPoint(high.x, high.y, 0));\r\n points.push(meshParams.projection.getGlobalPoint(low.x, high.y, 0));\r\n for (let i = 0, j = 8; i < 4; i++) {\r\n const projectedPoint = projectedTexture.classifier.projectionMatrix.multiplyPoint3dQuietNormalize(points[i]);\r\n result.data[j++] = projectedPoint.x;\r\n result.data[j++] = projectedPoint.y;\r\n }\r\n const x0 = result.data[10] - result.data[8], y0 = result.data[11] - result.data[9];\r\n const x1 = result.data[12] - result.data[8], y1 = result.data[13] - result.data[9];\r\n if (x0 * y1 - x1 * y0 < 0) {\r\n const swap = ((i: number, j: number) => {\r\n const temp = result.data[i];\r\n result.data[i] = result.data[j];\r\n result.data[j] = temp;\r\n });\r\n for (let i = 8, j = 14; i <= 10; i += 2, j -= 2) {\r\n swap(i, j);\r\n swap(i + 1, j + 1);\r\n }\r\n }\r\n } else {\r\n result.data[0] = 0;\r\n }\r\n return result;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class RealityTextureParams {\r\n constructor(public params: RealityTextureParam[]) { }\r\n public static create(textures: TerrainOrProjectedTexture[]) {\r\n const maxTexturesPerMesh = System.instance.maxRealityImageryLayers;\r\n assert(textures.length <= maxTexturesPerMesh);\r\n\r\n const textureParams = new Array<RealityTextureParam>();\r\n for (const texture of textures) {\r\n if (texture instanceof TerrainTexture) {\r\n const terrainTexture = texture;\r\n const matrix = new Matrix4(); // Published as Mat4.\r\n assert(terrainTexture.texture !== undefined, \"Texture not defined in TerrainTextureParams constructor\");\r\n matrix.data[0] = terrainTexture.translate.x;\r\n matrix.data[1] = terrainTexture.translate.y;\r\n matrix.data[2] = terrainTexture.scale.x;\r\n matrix.data[3] = terrainTexture.scale.y;\r\n\r\n if (terrainTexture.clipRectangle) {\r\n matrix.data[4] = terrainTexture.clipRectangle.low.x;\r\n matrix.data[5] = terrainTexture.clipRectangle.low.y;\r\n matrix.data[6] = terrainTexture.clipRectangle.high.x;\r\n matrix.data[7] = terrainTexture.clipRectangle.high.y;\r\n } else {\r\n matrix.data[4] = matrix.data[5] = 0;\r\n matrix.data[6] = matrix.data[7] = 1;\r\n }\r\n matrix.data[8] = (1.0 - terrainTexture.transparency);\r\n matrix.data[9] = terrainTexture.featureId;\r\n textureParams.push(new RealityTextureParam(terrainTexture.texture, matrix));\r\n } else {\r\n const classifier = texture.classifier;\r\n textureParams.push(new RealityTextureParam(classifier.getOrCreateClassifierTexture(), texture));\r\n }\r\n }\r\n\r\n for (let i = textures.length; i < maxTexturesPerMesh; i++) {\r\n const matrix = new Matrix4();\r\n matrix.data[0] = matrix.data[1] = 0.0;\r\n matrix.data[2] = matrix.data[3] = 1.0;\r\n matrix.data[4] = matrix.data[5] = 1;\r\n matrix.data[6] = matrix.data[7] = -1;\r\n matrix.data[15] = 0; // Denotes a terrain texture.\r\n textureParams.push(new RealityTextureParam(undefined, matrix));\r\n }\r\n return new RealityTextureParams(textureParams);\r\n }\r\n\r\n}\r\n\r\n/** @internal */\r\n\r\nexport class RealityMeshGeometryParams extends IndexedGeometryParams {\r\n public readonly uvParams: QBufferHandle2d;\r\n public readonly featureID?: number;\r\n public readonly normals?: BufferHandle;\r\n\r\n protected constructor(positions: QBufferHandle3d, normals: BufferHandle | undefined, uvParams: QBufferHandle2d, indices: BufferHandle, numIndices: number, featureID?: number) {\r\n super(positions, indices, numIndices);\r\n let attrParams = AttributeMap.findAttribute(\"a_uvParam\", TechniqueId.RealityMesh, false);\r\n assert(attrParams !== undefined);\r\n this.buffers.addBuffer(uvParams, [BufferParameters.create(attrParams.location, 2, GL.DataType.UnsignedShort, false, 0, 0, false)]);\r\n this.uvParams = uvParams;\r\n\r\n if (undefined !== normals) {\r\n attrParams = AttributeMap.findAttribute(\"a_norm\", TechniqueId.RealityMesh, false);\r\n assert(attrParams !== undefined);\r\n if (normals.bytesUsed > 0)\r\n this.buffers.addBuffer(normals, [BufferParameters.create(attrParams.location, 2, GL.DataType.UnsignedByte, false, 0, 0, false)]);\r\n this.normals = normals;\r\n }\r\n this.featureID = featureID;\r\n }\r\n\r\n private static createFromBuffers(posBuf: QBufferHandle3d, uvParamBuf: QBufferHandle2d, indices: Uint16Array, normBuf: BufferHandle | undefined, featureID: number) {\r\n const indBuf = BufferHandle.createBuffer(GL.Buffer.Target.ElementArrayBuffer, indices);\r\n\r\n if (undefined === indBuf)\r\n return undefined;\r\n\r\n return new RealityMeshGeometryParams(posBuf, normBuf, uvParamBuf, indBuf, indices.length, featureID);\r\n\r\n }\r\n\r\n public static createFromRealityMesh(mesh: RealityMeshPrimitive) {\r\n const posBuf = QBufferHandle3d.create(mesh.pointQParams, mesh.points);\r\n const uvParamBuf = QBufferHandle2d.create(mesh.uvQParams, mesh.uvs);\r\n const normalBuf = mesh.normals ? BufferHandle.createArrayBuffer(mesh.normals) : undefined;\r\n return (undefined === posBuf || undefined === uvParamBuf) ? undefined : this.createFromBuffers(posBuf, uvParamBuf, mesh.indices, normalBuf, mesh.featureID);\r\n }\r\n\r\n public override get isDisposed(): boolean {\r\n return super.isDisposed && this.uvParams.isDisposed;\r\n }\r\n public get bytesUsed(): number { return this.positions.bytesUsed + (undefined === this.normals ? 0 : this.normals.bytesUsed) + this.uvParams.bytesUsed + this.indices.bytesUsed; }\r\n\r\n public override dispose() {\r\n super.dispose();\r\n dispose(this.uvParams);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class RealityMeshGeometry extends IndexedGeometry implements IDisposable, RenderMemory.Consumer {\r\n public override get asRealityMesh(): RealityMeshGeometry | undefined { return this; }\r\n public override get isDisposed(): boolean { return this._realityMeshParams.isDisposed; }\r\n public get uvQParams() { return this._realityMeshParams.uvParams.params; }\r\n public override get hasFeatures(): boolean { return this._realityMeshParams.featureID !== undefined; }\r\n public override get supportsThematicDisplay() { return true; }\r\n public get overrideColorMix() { return .5; } // This could be a setting from either the mesh or the override if required.\r\n public get transform(): Transform | undefined { return this._transform; }\r\n\r\n private constructor(private _realityMeshParams: RealityMeshGeometryParams, public textureParams: RealityTextureParams | undefined, private readonly _transform: Transform | undefined, public readonly baseColor: ColorDef | undefined, private _baseIsTransparent: boolean, private _isTerrain: boolean) {\r\n super(_realityMeshParams);\r\n }\r\n\r\n public override dispose() {\r\n super.dispose();\r\n dispose(this._realityMeshParams);\r\n }\r\n\r\n public static createFromTerrainMesh(terrainMesh: TerrainMeshPrimitive, transform: Transform | undefined) {\r\n const params = RealityMeshGeometryParams.createFromRealityMesh(terrainMesh);\r\n return params ? new RealityMeshGeometry(params, undefined, transform, undefined, false, true) : undefined;\r\n }\r\n\r\n public static createFromRealityMesh(realityMesh: RealityMeshPrimitive): RealityMeshGeometry | undefined {\r\n const params = RealityMeshGeometryParams.createFromRealityMesh(realityMesh);\r\n if (!params)\r\n return undefined;\r\n const texture = realityMesh.texture ? new TerrainTexture(realityMesh.texture, realityMesh.featureID, Vector2d.create(1.0, -1.0), Vector2d.create(0.0, 1.0), Range2d.createXYXY(0, 0, 1, 1), 0, 0) : undefined;\r\n\r\n return new RealityMeshGeometry(params, texture ? RealityTextureParams.create([texture]) : undefined, undefined, undefined, false, false);\r\n }\r\n\r\n public getRange(): Range3d {\r\n return Range3d.createXYZXYZ(this.qOrigin[0], this.qOrigin[1], this.qOrigin[2], this.qOrigin[0] + Quantization.rangeScale16 * this.qScale[0], this.qOrigin[1] + Quantization.rangeScale16 * this.qScale[1], this.qOrigin[2] + Quantization.rangeScale16 * this.qScale[2]);\r\n }\r\n\r\n public static createGraphic(system: RenderSystem, params: RealityMeshGraphicParams): RenderGraphic | undefined {\r\n const meshes = [];\r\n const textures = params.textures ?? [];\r\n const realityMesh = params.realityMesh as RealityMeshGeometry;\r\n const { baseColor, baseTransparent, featureTable, tileId, layerClassifiers } = params;\r\n\r\n const texturesPerMesh = System.instance.maxRealityImageryLayers;\r\n const layers = new Array<(TerrainTexture | ProjectedTexture)[]>();\r\n // Collate the textures and classifiers layers into a single array.\r\n for (const texture of textures) {\r\n const layer = layers[texture.layerIndex];\r\n if (layer) {\r\n (layer as TerrainTexture[]).push(texture);\r\n } else {\r\n layers[texture.layerIndex] = [texture];\r\n }\r\n }\r\n params.layerClassifiers?.forEach((layerClassifier, layerIndex) => layers[layerIndex] = [new ProjectedTexture(layerClassifier, params, params.tileRectangle)]);\r\n\r\n if (layers.length < 2 && !layerClassifiers?.size && textures.length < texturesPerMesh) {\r\n // If only there is not more than one layer then we can group all of the textures into a single draw call.\r\n meshes.push(new RealityMeshGeometry(realityMesh._realityMeshParams, RealityTextureParams.create(textures), realityMesh._transform, baseColor, baseTransparent, realityMesh._isTerrain));\r\n } else {\r\n let primaryLayer;\r\n while (primaryLayer === undefined)\r\n primaryLayer = layers.shift();\r\n if (!primaryLayer)\r\n return undefined;\r\n for (const primaryTexture of primaryLayer) {\r\n const targetRectangle = primaryTexture.targetRectangle;\r\n const overlapMinimum = 1.0E-5 * (targetRectangle.high.x - targetRectangle.low.x) * (targetRectangle.high.y - targetRectangle.low.y);\r\n let layerTextures = [primaryTexture];\r\n for (const secondaryLayer of layers) {\r\n if (!secondaryLayer)\r\n continue;\r\n for (const secondaryTexture of secondaryLayer) {\r\n if (secondaryTexture instanceof ProjectedTexture) {\r\n layerTextures.push(secondaryTexture.clone(targetRectangle));\r\n } else {\r\n const secondaryRectangle = secondaryTexture.targetRectangle;\r\n const overlap = targetRectangle.intersect(secondaryRectangle, scratchOverlapRange);\r\n if (!overlap.isNull && (overlap.high.x - overlap.low.x) * (overlap.high.y - overlap.low.y) > overlapMinimum) {\r\n const textureRange = Range2d.createXYXY(overlap.low.x, overlap.low.y, overlap.high.x, overlap.high.y);\r\n secondaryRectangle.worldToLocal(textureRange.low, textureRange.low);\r\n secondaryRectangle.worldToLocal(textureRange.high, textureRange.high);\r\n\r\n if (secondaryTexture.clipRectangle)\r\n textureRange.intersect(secondaryTexture.clipRectangle, textureRange);\r\n\r\n if (!textureRange.isNull && textureRange) {\r\n layerTextures.push(secondaryTexture.cloneWithClip(textureRange));\r\n }\r\n }\r\n }\r\n }\r\n }\r\n while (layerTextures.length > texturesPerMesh) {\r\n meshes.push(new RealityMeshGeometry(realityMesh._realityMeshParams, RealityTextureParams.create(layerTextures.slice(0, texturesPerMesh)), realityMesh._transform, baseColor, baseTransparent, realityMesh._isTerrain));\r\n layerTextures = layerTextures.slice(texturesPerMesh);\r\n }\r\n meshes.push(new RealityMeshGeometry(realityMesh._realityMeshParams, RealityTextureParams.create(layerTextures), realityMesh._transform, baseColor, baseTransparent, realityMesh._isTerrain));\r\n }\r\n }\r\n\r\n if (meshes.length === 0)\r\n return undefined;\r\n\r\n const branch = new GraphicBranch(true);\r\n for (const mesh of meshes) {\r\n const primitive = Primitive.create(mesh);\r\n branch.add(system.createBatch(primitive!, featureTable, mesh.getRange(), { tileId }));\r\n }\r\n\r\n return system.createBranch(branch, realityMesh._transform ? realityMesh._transform : Transform.createIdentity());\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this._isTerrain ? stats.addTerrain(this._realityMeshParams.bytesUsed) : stats.addRealityMesh(this._realityMeshParams.bytesUsed);\r\n }\r\n\r\n public get techniqueId(): TechniqueId { return TechniqueId.RealityMesh; }\r\n\r\n public override getPass(target: Target) {\r\n if (target.isDrawingShadowMap)\r\n return \"none\";\r\n\r\n if (this._baseIsTransparent || (target.wantThematicDisplay && target.uniforms.thematic.wantIsoLines))\r\n return \"translucent\";\r\n\r\n return \"opaque\";\r\n }\r\n public get renderOrder(): RenderOrder { return RenderOrder.UnlitSurface; }\r\n\r\n public override draw(): void {\r\n this._params.buffers.bind();\r\n System.instance.context.drawElements(GL.PrimitiveType.Triangles, this._params.numIndices, GL.DataType.UnsignedShort, 0);\r\n this._params.buffers.unbind();\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"RealityMesh.js","sourceRoot":"","sources":["../../../../src/render/webgl/RealityMesh.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\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, dispose, IDisposable } from \"@itwin/core-bentley\";\r\nimport { ColorDef, Quantization, RenderTexture } from \"@itwin/core-common\";\r\nimport { Matrix4d, Range2d, Range3d, Transform, Vector2d } from \"@itwin/core-geometry\";\r\nimport { GraphicBranch } from \"../GraphicBranch\";\r\nimport { RealityMeshGraphicParams, RealityMeshPrimitive } from \"../primitives/mesh/RealityMeshPrimitive\";\r\nimport { TerrainMeshPrimitive } from \"../primitives/mesh/TerrainMeshPrimitive\";\r\nimport { RenderGraphic } from \"../RenderGraphic\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { RenderPlanarClassifier } from \"../RenderPlanarClassifier\";\r\nimport { RenderSystem, TerrainTexture } from \"../RenderSystem\";\r\nimport { BufferHandle, BufferParameters, QBufferHandle2d, QBufferHandle3d } from \"./AttributeBuffers\";\r\nimport { AttributeMap } from \"./AttributeMap\";\r\nimport { IndexedGeometry, IndexedGeometryParams } from \"./CachedGeometry\";\r\nimport { GL } from \"./GL\";\r\nimport { Matrix4 } from \"./Matrix\";\r\nimport { PlanarClassifier } from \"./PlanarClassifier\";\r\nimport { Primitive } from \"./Primitive\";\r\nimport { RenderOrder } from \"./RenderFlags\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\n\r\nconst scratchOverlapRange = Range2d.createNull();\r\nconst scratchBytes = new Uint8Array(4);\r\nconst scratchBatchBaseId = new Uint32Array(scratchBytes.buffer);\r\nconst scratchRange2d = Range2d.createNull();\r\nclass ProjectedTexture {\r\n public classifier: PlanarClassifier;\r\n constructor(classifier: RenderPlanarClassifier, public meshParams: RealityMeshGraphicParams, public targetRectangle: Range2d) {\r\n this.classifier = classifier as PlanarClassifier;\r\n }\r\n public clone(targetRectangle: Range2d) {\r\n return new ProjectedTexture(this.classifier, this.meshParams, targetRectangle.clone());\r\n }\r\n}\r\ntype TerrainOrProjectedTexture = TerrainTexture | ProjectedTexture;\r\n\r\nclass RealityTextureParam {\r\n constructor(public texture: RenderTexture | undefined, private _projectedTextureOrMatrix: ProjectedTexture | Matrix4) { }\r\n public get isProjected() { return this._projectedTextureOrMatrix instanceof ProjectedTexture; }\r\n\r\n /* There are two methods of applying a texture to a reality mesh. the first member of \"params\" denotes which\r\n method is to be used. A value of zero indicates a standard texture and one represents a classified texture.\r\n\r\n A standard (nonprojected) texture is generated by multiplying v_textCoord by the scaling and translation packed into the first row\r\n of \"matrix\". A clip rectangle is packed into second row of \"matrix\".\r\n\r\n A \"classified\" reality mesh texture is used for map layers. It does not uses v_texCoord, the texture coordinates\r\n are instead generated by a projection of the model position onto the X-Y plane. We only have eye position, not model position\r\n so the matrix in this case is a real transform matrix that contains a mapping from eye to model position\r\n followed by the model to texture projection.\r\n*/\r\n public getProjectionMatrix(): Matrix4d | undefined {\r\n return this._projectedTextureOrMatrix instanceof ProjectedTexture ? this._projectedTextureOrMatrix.classifier.projectionMatrix : undefined;\r\n }\r\n public getTerrainMatrix(): Matrix4 | undefined {\r\n return this._projectedTextureOrMatrix instanceof Matrix4 ? this._projectedTextureOrMatrix : undefined;\r\n }\r\n\r\n public getParams(result: Matrix4): Matrix4 {\r\n /** Entry 0 is 0 for */\r\n if (this._projectedTextureOrMatrix instanceof ProjectedTexture) {\r\n const projectedTexture = this._projectedTextureOrMatrix;\r\n\r\n result.data[0] = 1;\r\n result.data[1] = projectedTexture.classifier.textureImageCount;\r\n result.data[2] = projectedTexture.classifier.sourceTransparency === undefined ? 1.0 : (1.0 - projectedTexture.classifier.sourceTransparency);\r\n scratchBatchBaseId[0] = projectedTexture.classifier.baseBatchId;\r\n result.data[4] = scratchBytes[0];\r\n result.data[5] = scratchBytes[1];\r\n result.data[6] = scratchBytes[2];\r\n result.data[7] = scratchBytes[3];\r\n\r\n const points = [];\r\n const meshParams = projectedTexture.meshParams;\r\n // Calculate range in the tiles local coordinates.\r\n const low = meshParams.tileRectangle.worldToLocal(projectedTexture.targetRectangle.low, scratchRange2d.low)!;\r\n const high = meshParams.tileRectangle.worldToLocal(projectedTexture.targetRectangle.high, scratchRange2d.high)!;\r\n points.push(meshParams.projection.getGlobalPoint(low.x, low.y, 0));\r\n points.push( meshParams.projection.getGlobalPoint(high.x, low.y, 0));\r\n points.push(meshParams.projection.getGlobalPoint(high.x, high.y, 0));\r\n points.push(meshParams.projection.getGlobalPoint(low.x, high.y, 0));\r\n for (let i = 0, j = 8; i < 4; i++) {\r\n const projectedPoint = projectedTexture.classifier.projectionMatrix.multiplyPoint3dQuietNormalize(points[i]);\r\n result.data[j++] = projectedPoint.x;\r\n result.data[j++] = projectedPoint.y;\r\n }\r\n const x0 = result.data[10] - result.data[8], y0 = result.data[11] - result.data[9];\r\n const x1 = result.data[12] - result.data[8], y1 = result.data[13] - result.data[9];\r\n if (x0 * y1 - x1 * y0 < 0) {\r\n const swap = ((i: number, j: number) => {\r\n const temp = result.data[i];\r\n result.data[i] = result.data[j];\r\n result.data[j] = temp;\r\n });\r\n for (let i = 8, j = 14; i <= 10; i += 2, j -= 2) {\r\n swap(i, j);\r\n swap(i + 1, j + 1);\r\n }\r\n }\r\n } else {\r\n result.data[0] = 0;\r\n }\r\n return result;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class RealityTextureParams {\r\n constructor(public params: RealityTextureParam[]) { }\r\n public static create(textures: TerrainOrProjectedTexture[]) {\r\n const maxTexturesPerMesh = System.instance.maxRealityImageryLayers;\r\n assert(textures.length <= maxTexturesPerMesh);\r\n\r\n const textureParams = new Array<RealityTextureParam>();\r\n for (const texture of textures) {\r\n if (texture instanceof TerrainTexture) {\r\n const terrainTexture = texture;\r\n const matrix = new Matrix4(); // Published as Mat4.\r\n assert(terrainTexture.texture !== undefined, \"Texture not defined in TerrainTextureParams constructor\");\r\n matrix.data[0] = terrainTexture.translate.x;\r\n matrix.data[1] = terrainTexture.translate.y;\r\n matrix.data[2] = terrainTexture.scale.x;\r\n matrix.data[3] = terrainTexture.scale.y;\r\n\r\n if (terrainTexture.clipRectangle) {\r\n matrix.data[4] = terrainTexture.clipRectangle.low.x;\r\n matrix.data[5] = terrainTexture.clipRectangle.low.y;\r\n matrix.data[6] = terrainTexture.clipRectangle.high.x;\r\n matrix.data[7] = terrainTexture.clipRectangle.high.y;\r\n } else {\r\n matrix.data[4] = matrix.data[5] = 0;\r\n matrix.data[6] = matrix.data[7] = 1;\r\n }\r\n matrix.data[8] = (1.0 - terrainTexture.transparency);\r\n matrix.data[9] = terrainTexture.featureId;\r\n textureParams.push(new RealityTextureParam(terrainTexture.texture, matrix));\r\n } else {\r\n const classifier = texture.classifier;\r\n textureParams.push(new RealityTextureParam(classifier.getOrCreateClassifierTexture(), texture));\r\n }\r\n }\r\n\r\n for (let i = textures.length; i < maxTexturesPerMesh; i++) {\r\n const matrix = new Matrix4();\r\n matrix.data[0] = matrix.data[1] = 0.0;\r\n matrix.data[2] = matrix.data[3] = 1.0;\r\n matrix.data[4] = matrix.data[5] = 1;\r\n matrix.data[6] = matrix.data[7] = -1;\r\n matrix.data[15] = 0; // Denotes a terrain texture.\r\n textureParams.push(new RealityTextureParam(undefined, matrix));\r\n }\r\n return new RealityTextureParams(textureParams);\r\n }\r\n\r\n}\r\n\r\n/** @internal */\r\n\r\nexport class RealityMeshGeometryParams extends IndexedGeometryParams {\r\n public readonly uvParams: QBufferHandle2d;\r\n public readonly featureID?: number;\r\n public readonly normals?: BufferHandle;\r\n\r\n protected constructor(positions: QBufferHandle3d, normals: BufferHandle | undefined, uvParams: QBufferHandle2d, indices: BufferHandle, numIndices: number, featureID?: number) {\r\n super(positions, indices, numIndices);\r\n let attrParams = AttributeMap.findAttribute(\"a_uvParam\", TechniqueId.RealityMesh, false);\r\n assert(attrParams !== undefined);\r\n this.buffers.addBuffer(uvParams, [BufferParameters.create(attrParams.location, 2, GL.DataType.UnsignedShort, false, 0, 0, false)]);\r\n this.uvParams = uvParams;\r\n\r\n if (undefined !== normals) {\r\n attrParams = AttributeMap.findAttribute(\"a_norm\", TechniqueId.RealityMesh, false);\r\n assert(attrParams !== undefined);\r\n if (normals.bytesUsed > 0)\r\n this.buffers.addBuffer(normals, [BufferParameters.create(attrParams.location, 2, GL.DataType.UnsignedByte, false, 0, 0, false)]);\r\n this.normals = normals;\r\n }\r\n this.featureID = featureID;\r\n }\r\n\r\n private static createFromBuffers(posBuf: QBufferHandle3d, uvParamBuf: QBufferHandle2d, indices: Uint16Array, normBuf: BufferHandle | undefined, featureID: number) {\r\n const indBuf = BufferHandle.createBuffer(GL.Buffer.Target.ElementArrayBuffer, indices);\r\n\r\n if (undefined === indBuf)\r\n return undefined;\r\n\r\n return new RealityMeshGeometryParams(posBuf, normBuf, uvParamBuf, indBuf, indices.length, featureID);\r\n\r\n }\r\n\r\n public static createFromRealityMesh(mesh: RealityMeshPrimitive) {\r\n const posBuf = QBufferHandle3d.create(mesh.pointQParams, mesh.points);\r\n const uvParamBuf = QBufferHandle2d.create(mesh.uvQParams, mesh.uvs);\r\n const normalBuf = mesh.normals ? BufferHandle.createArrayBuffer(mesh.normals) : undefined;\r\n return (undefined === posBuf || undefined === uvParamBuf) ? undefined : this.createFromBuffers(posBuf, uvParamBuf, mesh.indices, normalBuf, mesh.featureID);\r\n }\r\n\r\n public override get isDisposed(): boolean {\r\n return super.isDisposed && this.uvParams.isDisposed;\r\n }\r\n public get bytesUsed(): number { return this.positions.bytesUsed + (undefined === this.normals ? 0 : this.normals.bytesUsed) + this.uvParams.bytesUsed + this.indices.bytesUsed; }\r\n\r\n public override dispose() {\r\n super.dispose();\r\n dispose(this.uvParams);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class RealityMeshGeometry extends IndexedGeometry implements IDisposable, RenderMemory.Consumer {\r\n public readonly hasTextures: boolean;\r\n public override get asRealityMesh(): RealityMeshGeometry | undefined { return this; }\r\n public override get isDisposed(): boolean { return this._realityMeshParams.isDisposed; }\r\n public get uvQParams() { return this._realityMeshParams.uvParams.params; }\r\n public override get hasFeatures(): boolean { return this._realityMeshParams.featureID !== undefined; }\r\n public override get supportsThematicDisplay() { return true; }\r\n public get overrideColorMix() { return .5; } // This could be a setting from either the mesh or the override if required.\r\n public get transform(): Transform | undefined { return this._transform; }\r\n\r\n private constructor(private _realityMeshParams: RealityMeshGeometryParams, public textureParams: RealityTextureParams | undefined, private readonly _transform: Transform | undefined, public readonly baseColor: ColorDef | undefined, private _baseIsTransparent: boolean, private _isTerrain: boolean) {\r\n super(_realityMeshParams);\r\n this.hasTextures = undefined !== textureParams && textureParams.params.some((x) => undefined !== x.texture);\r\n }\r\n\r\n public override dispose() {\r\n super.dispose();\r\n dispose(this._realityMeshParams);\r\n }\r\n\r\n public static createFromTerrainMesh(terrainMesh: TerrainMeshPrimitive, transform: Transform | undefined) {\r\n const params = RealityMeshGeometryParams.createFromRealityMesh(terrainMesh);\r\n return params ? new RealityMeshGeometry(params, undefined, transform, undefined, false, true) : undefined;\r\n }\r\n\r\n public static createFromRealityMesh(realityMesh: RealityMeshPrimitive): RealityMeshGeometry | undefined {\r\n const params = RealityMeshGeometryParams.createFromRealityMesh(realityMesh);\r\n if (!params)\r\n return undefined;\r\n const texture = realityMesh.texture ? new TerrainTexture(realityMesh.texture, realityMesh.featureID, Vector2d.create(1.0, -1.0), Vector2d.create(0.0, 1.0), Range2d.createXYXY(0, 0, 1, 1), 0, 0) : undefined;\r\n\r\n return new RealityMeshGeometry(params, texture ? RealityTextureParams.create([texture]) : undefined, undefined, undefined, false, false);\r\n }\r\n\r\n public getRange(): Range3d {\r\n return Range3d.createXYZXYZ(this.qOrigin[0], this.qOrigin[1], this.qOrigin[2], this.qOrigin[0] + Quantization.rangeScale16 * this.qScale[0], this.qOrigin[1] + Quantization.rangeScale16 * this.qScale[1], this.qOrigin[2] + Quantization.rangeScale16 * this.qScale[2]);\r\n }\r\n\r\n public static createGraphic(system: RenderSystem, params: RealityMeshGraphicParams): RenderGraphic | undefined {\r\n const meshes = [];\r\n const textures = params.textures ?? [];\r\n const realityMesh = params.realityMesh as RealityMeshGeometry;\r\n const { baseColor, baseTransparent, featureTable, tileId, layerClassifiers } = params;\r\n\r\n const texturesPerMesh = System.instance.maxRealityImageryLayers;\r\n const layers = new Array<(TerrainTexture | ProjectedTexture)[]>();\r\n // Collate the textures and classifiers layers into a single array.\r\n for (const texture of textures) {\r\n const layer = layers[texture.layerIndex];\r\n if (layer) {\r\n (layer as TerrainTexture[]).push(texture);\r\n } else {\r\n layers[texture.layerIndex] = [texture];\r\n }\r\n }\r\n params.layerClassifiers?.forEach((layerClassifier, layerIndex) => layers[layerIndex] = [new ProjectedTexture(layerClassifier, params, params.tileRectangle)]);\r\n\r\n if (layers.length < 2 && !layerClassifiers?.size && textures.length < texturesPerMesh) {\r\n // If only there is not more than one layer then we can group all of the textures into a single draw call.\r\n meshes.push(new RealityMeshGeometry(realityMesh._realityMeshParams, RealityTextureParams.create(textures), realityMesh._transform, baseColor, baseTransparent, realityMesh._isTerrain));\r\n } else {\r\n let primaryLayer;\r\n while (primaryLayer === undefined)\r\n primaryLayer = layers.shift();\r\n if (!primaryLayer)\r\n return undefined;\r\n for (const primaryTexture of primaryLayer) {\r\n const targetRectangle = primaryTexture.targetRectangle;\r\n const overlapMinimum = 1.0E-5 * (targetRectangle.high.x - targetRectangle.low.x) * (targetRectangle.high.y - targetRectangle.low.y);\r\n let layerTextures = [primaryTexture];\r\n for (const secondaryLayer of layers) {\r\n if (!secondaryLayer)\r\n continue;\r\n for (const secondaryTexture of secondaryLayer) {\r\n if (secondaryTexture instanceof ProjectedTexture) {\r\n layerTextures.push(secondaryTexture.clone(targetRectangle));\r\n } else {\r\n const secondaryRectangle = secondaryTexture.targetRectangle;\r\n const overlap = targetRectangle.intersect(secondaryRectangle, scratchOverlapRange);\r\n if (!overlap.isNull && (overlap.high.x - overlap.low.x) * (overlap.high.y - overlap.low.y) > overlapMinimum) {\r\n const textureRange = Range2d.createXYXY(overlap.low.x, overlap.low.y, overlap.high.x, overlap.high.y);\r\n secondaryRectangle.worldToLocal(textureRange.low, textureRange.low);\r\n secondaryRectangle.worldToLocal(textureRange.high, textureRange.high);\r\n\r\n if (secondaryTexture.clipRectangle)\r\n textureRange.intersect(secondaryTexture.clipRectangle, textureRange);\r\n\r\n if (!textureRange.isNull && textureRange) {\r\n layerTextures.push(secondaryTexture.cloneWithClip(textureRange));\r\n }\r\n }\r\n }\r\n }\r\n }\r\n while (layerTextures.length > texturesPerMesh) {\r\n meshes.push(new RealityMeshGeometry(realityMesh._realityMeshParams, RealityTextureParams.create(layerTextures.slice(0, texturesPerMesh)), realityMesh._transform, baseColor, baseTransparent, realityMesh._isTerrain));\r\n layerTextures = layerTextures.slice(texturesPerMesh);\r\n }\r\n meshes.push(new RealityMeshGeometry(realityMesh._realityMeshParams, RealityTextureParams.create(layerTextures), realityMesh._transform, baseColor, baseTransparent, realityMesh._isTerrain));\r\n }\r\n }\r\n\r\n if (meshes.length === 0)\r\n return undefined;\r\n\r\n const branch = new GraphicBranch(true);\r\n for (const mesh of meshes) {\r\n const primitive = Primitive.create(mesh);\r\n branch.add(system.createBatch(primitive!, featureTable, mesh.getRange(), { tileId }));\r\n }\r\n\r\n return system.createBranch(branch, realityMesh._transform ? realityMesh._transform : Transform.createIdentity());\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this._isTerrain ? stats.addTerrain(this._realityMeshParams.bytesUsed) : stats.addRealityMesh(this._realityMeshParams.bytesUsed);\r\n }\r\n\r\n public get techniqueId(): TechniqueId { return TechniqueId.RealityMesh; }\r\n\r\n public override getPass(target: Target) {\r\n if (target.isDrawingShadowMap)\r\n return \"none\";\r\n\r\n if (this._baseIsTransparent || (target.wantThematicDisplay && target.uniforms.thematic.wantIsoLines))\r\n return \"translucent\";\r\n\r\n return \"opaque\";\r\n }\r\n public get renderOrder(): RenderOrder { return RenderOrder.UnlitSurface; }\r\n\r\n public override draw(): void {\r\n this._params.buffers.bind();\r\n System.instance.context.drawElements(GL.PrimitiveType.Triangles, this._params.numIndices, GL.DataType.UnsignedShort, 0);\r\n this._params.buffers.unbind();\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RealityMesh.d.ts","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/RealityMesh.ts"],"names":[],"mappings":"AAIA;;GAEG;AAQH,OAAO,EAAkD,cAAc,EAAuC,MAAM,kBAAkB,CAAC;AAEvI,OAAO,EAAsD,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAyOvG,gBAAgB;AAChB,wBAAgB,kCAAkC,IAAI,cAAc,CAInE;AAED,gBAAgB;AAChB,wBAAgB,wBAAwB,IAAI,cAAc,CAIzD;AAED,gBAAgB;AAChB,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CA2EtF"}
1
+ {"version":3,"file":"RealityMesh.d.ts","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/RealityMesh.ts"],"names":[],"mappings":"AAIA;;GAEG;AAQH,OAAO,EAAkD,cAAc,EAAuC,MAAM,kBAAkB,CAAC;AAEvI,OAAO,EAAsD,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAwOvG,gBAAgB;AAChB,wBAAgB,kCAAkC,IAAI,cAAc,CAInE;AAED,gBAAgB;AAChB,wBAAgB,wBAAwB,IAAI,cAAc,CAIzD;AAED,gBAAgB;AAChB,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CA2EtF"}
@@ -122,9 +122,7 @@ function addTextures(builder, maxTexturesPerMesh) {
122
122
  });
123
123
  builder.frag.addUniform("u_texturesPresent", 0 /* Boolean */, (program) => {
124
124
  program.addGraphicUniform("u_texturesPresent", (uniform, params) => {
125
- var _a;
126
- const textureCount = (_a = params.geometry.asRealityMesh.textureParams) === null || _a === void 0 ? void 0 : _a.params.length;
127
- uniform.setUniform1i(textureCount ? 1 : 0);
125
+ uniform.setUniform1i(params.geometry.asRealityMesh.hasTextures ? 1 : 0);
128
126
  });
129
127
  });
130
128
  for (let i = 0; i < maxTexturesPerMesh; i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"RealityMesh.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/RealityMesh.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 WebGL\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { ColorDef } from \"@itwin/core-common\";\r\nimport { Matrix4d } from \"@itwin/core-geometry\";\r\nimport { AttributeMap } from \"../AttributeMap\";\r\nimport { Matrix4 } from \"../Matrix\";\r\nimport { TextureUnit } from \"../RenderFlags\";\r\nimport { FragmentShaderBuilder, FragmentShaderComponent, ProgramBuilder, VariableType, VertexShaderComponent } from \"../ShaderBuilder\";\r\nimport { System } from \"../System\";\r\nimport { FeatureMode, IsInstanced, IsShadowable, IsThematic, TechniqueFlags } from \"../TechniqueFlags\";\r\nimport { TechniqueId } from \"../TechniqueId\";\r\nimport { Texture } from \"../Texture\";\r\nimport { addVaryingColor } from \"./Color\";\r\nimport { addEyeSpace, addShaderFlags, addUInt32s } from \"./Common\";\r\nimport { decodeDepthRgb, unquantize2d } from \"./Decode\";\r\nimport { addFeatureSymbology, addHiliter, FeatureSymbologyOptions } from \"./FeatureSymbology\";\r\nimport { addAltPickBufferOutputs, addPickBufferOutputs, assignFragColor } from \"./Fragment\";\r\nimport { addColorPlanarClassifier, addFeaturePlanarClassifier, addHilitePlanarClassifier } from \"./PlanarClassification\";\r\nimport { addSolarShadowMap } from \"./SolarShadowMapping\";\r\nimport { addClassificationTranslucencyDiscard, octDecodeNormal } from \"./Surface\";\r\nimport { addThematicDisplay, getComputeThematicIndex } from \"./Thematic\";\r\nimport { addModelViewProjectionMatrix, addNormalMatrix } from \"./Vertex\";\r\nimport { addWiremesh } from \"./Wiremesh\";\r\n\r\nconst computePosition = \"gl_PointSize = 1.0; return MAT_MVP * rawPos;\";\r\nconst computeNormal = `\r\n vec3 normal = octDecodeNormal(a_norm); // normal coming in for is already in world space\r\n g_hillshadeIndex = normal.z; // save off world Z for thematic hill shade mode index\r\n return normalize(u_worldToViewN * normal);\r\n`;\r\n\r\nconst testInside = `\r\nbool testInside(float x0, float y0, float x1, float y1, float x, float y) {\r\n vec2 perp = vec2(y0 - y1, x1 - x0), test = vec2(x - x0, y - y0);\r\n float dot = (test.x * perp.x + test.y * perp.y) / sqrt(perp.x * perp.x + perp.y * perp.y);\r\n return dot >= -0.001;\r\n}\r\n`;\r\n\r\n/* There are two methods of applying a texture to a reality mesh. the first member of \"params\" denotes which\r\n method is to be used. A value of zero indicates a standard texture and one represents a projected texture.\r\n\r\n A standard (nonprojected) texture is generated by multiplying v_textCoord by the scaling and translation packed into the first row\r\n of \"matrix\". A clip rectangle is packed into second row of \"matrix\".\r\n\r\n A \"projected\" reality mesh texture is used for map layers. It does not uses v_texCoord, the texture coordinates\r\n are instead generated by a projection of the model position onto the X-Y plane. We only have eye position, not model position\r\n so the matrix in this case is a real transform matrix that contains a mapping from eye to model position\r\n followed by the model to texture projection.\r\n*/\r\nconst applyTexture = `\r\nbool applyTexture(inout vec4 col, sampler2D sampler, mat4 params, mat4 matrix) {\r\n vec2 uv;\r\n float layerAlpha;\r\n bool isProjected = params[0][0] != 0.0;\r\n float imageCount = params[0][1];\r\n vec2 classPos;\r\n\r\n if (isProjected) {\r\n vec4 eye4 = vec4(v_eyeSpace, 1.0);\r\n vec4 classPos4 = matrix * eye4;\r\n classPos = classPos4.xy / classPos4.w;\r\n\r\n if (!testInside(params[2].x, params[2].y, params[2].z, params[2].w, classPos.x, classPos.y) ||\r\n !testInside(params[2].z, params[2].w, params[3].x, params[3].y, classPos.x, classPos.y) ||\r\n !testInside(params[3].x, params[3].y, params[3].z, params[3].w, classPos.x, classPos.y) ||\r\n !testInside(params[3].z, params[3].w, params[2].x, params[2].y, classPos.x, classPos.y))\r\n return false;\r\n\r\n uv.x = classPos.x;\r\n uv.y = classPos.y / imageCount;\r\n layerAlpha = params[0][2];\r\n if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0)\r\n return false;\r\n } else {\r\n vec4 texTransform = matrix[0].xyzw;\r\n vec4 texClip = matrix[1].xyzw;\r\n layerAlpha = matrix[2].x;\r\n uv = vec2(texTransform[0] + texTransform[2] * v_texCoord.x, texTransform[1] + texTransform[3] * v_texCoord.y);\r\n if (uv.x < texClip[0] || uv.x > texClip[2] || uv.y < texClip[1] || uv.y > texClip[3])\r\n return false;\r\n uv.y = 1.0 - uv.y;\r\n }\r\n vec4 texCol = TEXTURE(sampler, uv);\r\n float alpha = layerAlpha * texCol.a;\r\n if (alpha > 0.05) {\r\n vec3 texRgb = isProjected ? (texCol.rgb / texCol.a) : texCol.rgb; // Texture color is premultiplied by alpha only if projected (from classification).\r\n col.rgb = (1.0 - alpha) * col.rgb + alpha * texRgb;\r\n if (isProjected) {\r\n vec4 featureTexel = TEXTURE(sampler, vec2(uv.x, (1.0 + classPos.y) / imageCount));\r\n classifierId = addUInt32s(params[1], featureTexel * 255.0) / 255.0;\r\n } else {\r\n featureIncrement = matrix[2].y;\r\n classifierId = vec4(0);\r\n }\r\n if (alpha > col.a)\r\n col.a = alpha;\r\n\r\n return true;\r\n }\r\nreturn false;\r\n}\r\n`;\r\n\r\nconst computeTexCoord = \"return unquantize2d(a_uvParam, u_qTexCoordParams);\";\r\nconst scratchMatrix4d1 = Matrix4d.createIdentity();\r\nconst scratchMatrix4d2 = Matrix4d.createIdentity();\r\nconst scratchMatrix = new Matrix4();\r\n\r\nconst overrideFeatureId = `return (classifierId == vec4(0)) ? (addUInt32s(feature_id * 255.0, vec4(featureIncrement, 0.0, 0.0, 0.0)) / 255.0) : classifierId;`;\r\n\r\nfunction addTextures(builder: ProgramBuilder, maxTexturesPerMesh: number) {\r\n builder.vert.addFunction(unquantize2d);\r\n builder.addFunctionComputedVarying(\"v_texCoord\", VariableType.Vec2, \"computeTexCoord\", computeTexCoord);\r\n builder.vert.addUniform(\"u_qTexCoordParams\", VariableType.Vec4, (prog) => {\r\n prog.addGraphicUniform(\"u_qTexCoordParams\", (uniform, params) => {\r\n const realityMesh = params.geometry.asRealityMesh!;\r\n if (undefined !== realityMesh.uvQParams) {\r\n uniform.setUniform4fv(realityMesh.uvQParams);\r\n }\r\n });\r\n });\r\n\r\n builder.frag.addUniform(\"u_texturesPresent\", VariableType.Boolean, (program) => {\r\n program.addGraphicUniform(\"u_texturesPresent\", (uniform, params) => {\r\n const textureCount = params.geometry.asRealityMesh!.textureParams?.params.length;\r\n uniform.setUniform1i(textureCount ? 1 : 0);\r\n });\r\n });\r\n\r\n for (let i = 0; i < maxTexturesPerMesh; i++) {\r\n const textureLabel = `s_texture${i}`;\r\n builder.frag.addUniform(textureLabel, VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(textureLabel, (uniform, params) => {\r\n const textureUnits = [TextureUnit.RealityMesh0, TextureUnit.RealityMesh1, params.target.drawForReadPixels ? TextureUnit.ShadowMap : TextureUnit.PickDepthAndOrder, TextureUnit.RealityMesh3, TextureUnit.RealityMesh4, TextureUnit.RealityMesh5];\r\n const realityMesh = params.geometry.asRealityMesh!;\r\n const realityTexture = realityMesh.textureParams ? realityMesh.textureParams.params[i].texture : undefined;\r\n if (realityTexture !== undefined) {\r\n const texture = realityTexture as Texture;\r\n texture.texture.bindSampler(uniform, textureUnits[i]);\r\n } else {\r\n // assert(false, \"Terrain Mesh texture not defined when beginning texture.\");\r\n System.instance.ensureSamplerBound(uniform, textureUnits[i]);\r\n }\r\n });\r\n });\r\n const paramsLabel = `u_texParams${i}`, matrixLabel = `u_texMatrix${i}`;\r\n builder.frag.addUniform(matrixLabel, VariableType.Mat4, (prog) => {\r\n prog.addGraphicUniform(matrixLabel, (uniform, params) => {\r\n const realityMesh = params.geometry.asRealityMesh!;\r\n const textureParam = realityMesh.textureParams?.params[i];\r\n assert(undefined !== textureParam);\r\n if (undefined !== textureParam) {\r\n const projectionMatrix = textureParam.getProjectionMatrix();\r\n if (projectionMatrix) {\r\n const eyeToModel = Matrix4d.createTransform(params.target.uniforms.frustum.viewMatrix.inverse()!, scratchMatrix4d1);\r\n const eyeToTexture = projectionMatrix.multiplyMatrixMatrix(eyeToModel, scratchMatrix4d2);\r\n uniform.setMatrix4(Matrix4.fromMatrix4d(eyeToTexture, scratchMatrix));\r\n } else\r\n uniform.setMatrix4(textureParam.getTerrainMatrix()!);\r\n }\r\n });\r\n });\r\n builder.frag.addUniform(paramsLabel, VariableType.Mat4, (prog) => {\r\n prog.addGraphicUniform(paramsLabel, (uniform, params) => {\r\n const realityMesh = params.geometry.asRealityMesh!;\r\n const textureParam = realityMesh.textureParams?.params[i];\r\n assert(undefined !== textureParam);\r\n if (undefined !== textureParam) {\r\n uniform.setMatrix4(textureParam.getParams(scratchMatrix));\r\n }\r\n });\r\n });\r\n }\r\n}\r\nfunction baseColorFromTextures(textureCount: number, applyFeatureColor: string) {\r\n const applyTextureStrings = [];\r\n\r\n for (let i = 0; i < textureCount; i++)\r\n applyTextureStrings.push(`if (applyTexture(col, s_texture${i}, u_texParams${i}, u_texMatrix${i})) doDiscard = false; `);\r\n\r\n return `\r\n if (!u_texturesPresent)\r\n return u_baseColor;\r\n\r\n bool doDiscard = true;\r\n vec4 col = u_baseColor;\r\n ${applyTextureStrings.join(\"\\n \")}\r\n if (doDiscard)\r\n discard;\r\n\r\n ${applyFeatureColor}\r\n\r\n return col;\r\n`;\r\n}\r\n\r\n// feature_rgb.r = -1.0 if rgb color not overridden for feature.\r\n// feature_alpha = -1.0 if alpha not overridden for feature.\r\nconst mixFeatureColor = `\r\n col.rgb = mix(col.rgb, mix(col.rgb, v_color.rgb, u_overrideColorMix), step(0.0, v_color.r));\r\n col.a = mix(col.a, v_color.a, step(0.0, v_color.a));\r\n `;\r\n\r\nfunction addThematicToRealityMesh(builder: ProgramBuilder, gradientTextureUnit: TextureUnit) {\r\n addNormalMatrix(builder.vert, IsInstanced.No);\r\n builder.vert.addFunction(octDecodeNormal);\r\n builder.vert.addGlobal(\"g_hillshadeIndex\", VariableType.Float);\r\n builder.addFunctionComputedVarying(\"v_n\", VariableType.Vec3, \"computeLightingNormal\", computeNormal);\r\n addThematicDisplay(builder, false, true);\r\n builder.addInlineComputedVarying(\"v_thematicIndex\", VariableType.Float, getComputeThematicIndex(builder.vert.usesInstancedGeometry, false, false));\r\n builder.vert.addUniform(\"u_worldToViewN\", VariableType.Mat3, (prog) => {\r\n prog.addGraphicUniform(\"u_worldToViewN\", (uniform, params) => {\r\n params.target.uniforms.branch.bindWorldToViewNTransform(uniform, params.geometry, false);\r\n });\r\n });\r\n builder.frag.addUniform(\"s_texture\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"s_texture\", (uniform, params) => {\r\n params.target.uniforms.thematic.bindTexture(uniform, gradientTextureUnit >= 0 ? gradientTextureUnit : (params.target.drawForReadPixels ? TextureUnit.ShadowMap : TextureUnit.PickDepthAndOrder));\r\n });\r\n });\r\n}\r\n\r\nfunction addColorOverrideMix(frag: FragmentShaderBuilder) {\r\n frag.addUniform(\"u_overrideColorMix\", VariableType.Float, (prog) => {\r\n prog.addGraphicUniform(\"u_overrideColorMix\", (uniform, params) => {\r\n uniform.setUniform1f(params.geometry.asRealityMesh!.overrideColorMix);\r\n });\r\n });\r\n\r\n}\r\n\r\nfunction createRealityMeshHiliterBuilder(): ProgramBuilder {\r\n const builder = new ProgramBuilder(AttributeMap.findAttributeMap(TechniqueId.RealityMesh, false));\r\n const vert = builder.vert;\r\n vert.set(VertexShaderComponent.ComputePosition, computePosition);\r\n addModelViewProjectionMatrix(vert);\r\n builder.frag.set(FragmentShaderComponent.AssignFragData, assignFragColor);\r\n return builder;\r\n\r\n}\r\n\r\n/** @internal */\r\nexport function createClassifierRealityMeshHiliter(): ProgramBuilder {\r\n const builder = createRealityMeshHiliterBuilder();\r\n addHilitePlanarClassifier(builder, false);\r\n return builder;\r\n}\r\n\r\n/** @internal */\r\nexport function createRealityMeshHiliter(): ProgramBuilder {\r\n const builder = createRealityMeshHiliterBuilder();\r\n addHiliter(builder, false);\r\n return builder;\r\n}\r\n\r\n/** @internal */\r\nexport default function createRealityMeshBuilder(flags: TechniqueFlags): ProgramBuilder {\r\n const builder = new ProgramBuilder(AttributeMap.findAttributeMap(TechniqueId.RealityMesh, false));\r\n const vert = builder.vert;\r\n vert.set(VertexShaderComponent.ComputePosition, computePosition);\r\n addModelViewProjectionMatrix(vert);\r\n\r\n if (flags.isShadowable === IsShadowable.Yes)\r\n addSolarShadowMap(builder, true);\r\n\r\n const frag = builder.frag;\r\n frag.addGlobal(\"featureIncrement\", VariableType.Float, \"0.0\");\r\n frag.addGlobal(\"classifierId\", VariableType.Vec4);\r\n frag.set(FragmentShaderComponent.OverrideFeatureId, overrideFeatureId);\r\n let textureCount = System.instance.maxRealityImageryLayers;\r\n let gradientTextureUnit = TextureUnit.RealityMeshThematicGradient;\r\n const caps = System.instance.capabilities;\r\n if (Math.min(caps.maxFragTextureUnits, caps.maxVertTextureUnits) < 16 && IsThematic.Yes === flags.isThematic) {\r\n textureCount--; // steal the last bg map layer texture for thematic gradient (just when thematic display is applied)\r\n gradientTextureUnit = -1; // is dependent on drawing mode so will set later\r\n }\r\n\r\n const feat = flags.featureMode;\r\n let opts = FeatureMode.Overrides === feat ? FeatureSymbologyOptions.Surface : FeatureSymbologyOptions.None;\r\n let applyFragmentFeatureColor = \"\";\r\n\r\n if (flags.isClassified) {\r\n opts &= ~FeatureSymbologyOptions.Alpha;\r\n addColorPlanarClassifier(builder, flags.isTranslucent, flags.isThematic);\r\n addClassificationTranslucencyDiscard(builder);\r\n }\r\n\r\n addFeatureSymbology(builder, feat, opts);\r\n if (feat === FeatureMode.Overrides) {\r\n addShaderFlags(builder);\r\n addVaryingColor(builder, \"return vec4(-1.0, -1.0, -1.0, -1.0);\");\r\n applyFragmentFeatureColor = mixFeatureColor;\r\n addColorOverrideMix(builder.frag);\r\n }\r\n const computeFragmentBaseColor = baseColorFromTextures(textureCount, applyFragmentFeatureColor);\r\n\r\n frag.addFunction(addUInt32s);\r\n frag.addFunction(testInside);\r\n addEyeSpace(builder);\r\n frag.addFunction(applyTexture);\r\n frag.set(FragmentShaderComponent.ComputeBaseColor, computeFragmentBaseColor);\r\n builder.frag.addUniform(\"u_baseColor\", VariableType.Vec4, (prog) => {\r\n prog.addGraphicUniform(\"u_baseColor\", (uniform, params) => {\r\n const realityMesh = params.geometry.asRealityMesh!;\r\n const baseColor = (realityMesh.baseColor ? realityMesh.baseColor : ColorDef.create(0xff000000)).colors;\r\n uniform.setUniform4fv([baseColor.r / 255, baseColor.g / 255, baseColor.b / 255, 1 - baseColor.t / 255]);\r\n });\r\n });\r\n builder.frag.set(FragmentShaderComponent.ComputeBaseColor, computeFragmentBaseColor);\r\n if (!flags.isTranslucent) {\r\n if (FeatureMode.None !== feat) {\r\n if (flags.isClassified)\r\n addFeaturePlanarClassifier(builder);\r\n\r\n builder.frag.addFunction(decodeDepthRgb);\r\n if (flags.isClassified)\r\n addPickBufferOutputs(builder.frag);\r\n else\r\n addAltPickBufferOutputs(builder.frag);\r\n }\r\n }\r\n\r\n addTextures(builder, textureCount);\r\n\r\n if (IsThematic.Yes === flags.isThematic)\r\n addThematicToRealityMesh(builder, gradientTextureUnit);\r\n\r\n if (flags.isWiremesh)\r\n addWiremesh(builder);\r\n\r\n return builder;\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"RealityMesh.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/RealityMesh.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 WebGL\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { ColorDef } from \"@itwin/core-common\";\r\nimport { Matrix4d } from \"@itwin/core-geometry\";\r\nimport { AttributeMap } from \"../AttributeMap\";\r\nimport { Matrix4 } from \"../Matrix\";\r\nimport { TextureUnit } from \"../RenderFlags\";\r\nimport { FragmentShaderBuilder, FragmentShaderComponent, ProgramBuilder, VariableType, VertexShaderComponent } from \"../ShaderBuilder\";\r\nimport { System } from \"../System\";\r\nimport { FeatureMode, IsInstanced, IsShadowable, IsThematic, TechniqueFlags } from \"../TechniqueFlags\";\r\nimport { TechniqueId } from \"../TechniqueId\";\r\nimport { Texture } from \"../Texture\";\r\nimport { addVaryingColor } from \"./Color\";\r\nimport { addEyeSpace, addShaderFlags, addUInt32s } from \"./Common\";\r\nimport { decodeDepthRgb, unquantize2d } from \"./Decode\";\r\nimport { addFeatureSymbology, addHiliter, FeatureSymbologyOptions } from \"./FeatureSymbology\";\r\nimport { addAltPickBufferOutputs, addPickBufferOutputs, assignFragColor } from \"./Fragment\";\r\nimport { addColorPlanarClassifier, addFeaturePlanarClassifier, addHilitePlanarClassifier } from \"./PlanarClassification\";\r\nimport { addSolarShadowMap } from \"./SolarShadowMapping\";\r\nimport { addClassificationTranslucencyDiscard, octDecodeNormal } from \"./Surface\";\r\nimport { addThematicDisplay, getComputeThematicIndex } from \"./Thematic\";\r\nimport { addModelViewProjectionMatrix, addNormalMatrix } from \"./Vertex\";\r\nimport { addWiremesh } from \"./Wiremesh\";\r\n\r\nconst computePosition = \"gl_PointSize = 1.0; return MAT_MVP * rawPos;\";\r\nconst computeNormal = `\r\n vec3 normal = octDecodeNormal(a_norm); // normal coming in for is already in world space\r\n g_hillshadeIndex = normal.z; // save off world Z for thematic hill shade mode index\r\n return normalize(u_worldToViewN * normal);\r\n`;\r\n\r\nconst testInside = `\r\nbool testInside(float x0, float y0, float x1, float y1, float x, float y) {\r\n vec2 perp = vec2(y0 - y1, x1 - x0), test = vec2(x - x0, y - y0);\r\n float dot = (test.x * perp.x + test.y * perp.y) / sqrt(perp.x * perp.x + perp.y * perp.y);\r\n return dot >= -0.001;\r\n}\r\n`;\r\n\r\n/* There are two methods of applying a texture to a reality mesh. the first member of \"params\" denotes which\r\n method is to be used. A value of zero indicates a standard texture and one represents a projected texture.\r\n\r\n A standard (nonprojected) texture is generated by multiplying v_textCoord by the scaling and translation packed into the first row\r\n of \"matrix\". A clip rectangle is packed into second row of \"matrix\".\r\n\r\n A \"projected\" reality mesh texture is used for map layers. It does not uses v_texCoord, the texture coordinates\r\n are instead generated by a projection of the model position onto the X-Y plane. We only have eye position, not model position\r\n so the matrix in this case is a real transform matrix that contains a mapping from eye to model position\r\n followed by the model to texture projection.\r\n*/\r\nconst applyTexture = `\r\nbool applyTexture(inout vec4 col, sampler2D sampler, mat4 params, mat4 matrix) {\r\n vec2 uv;\r\n float layerAlpha;\r\n bool isProjected = params[0][0] != 0.0;\r\n float imageCount = params[0][1];\r\n vec2 classPos;\r\n\r\n if (isProjected) {\r\n vec4 eye4 = vec4(v_eyeSpace, 1.0);\r\n vec4 classPos4 = matrix * eye4;\r\n classPos = classPos4.xy / classPos4.w;\r\n\r\n if (!testInside(params[2].x, params[2].y, params[2].z, params[2].w, classPos.x, classPos.y) ||\r\n !testInside(params[2].z, params[2].w, params[3].x, params[3].y, classPos.x, classPos.y) ||\r\n !testInside(params[3].x, params[3].y, params[3].z, params[3].w, classPos.x, classPos.y) ||\r\n !testInside(params[3].z, params[3].w, params[2].x, params[2].y, classPos.x, classPos.y))\r\n return false;\r\n\r\n uv.x = classPos.x;\r\n uv.y = classPos.y / imageCount;\r\n layerAlpha = params[0][2];\r\n if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0)\r\n return false;\r\n } else {\r\n vec4 texTransform = matrix[0].xyzw;\r\n vec4 texClip = matrix[1].xyzw;\r\n layerAlpha = matrix[2].x;\r\n uv = vec2(texTransform[0] + texTransform[2] * v_texCoord.x, texTransform[1] + texTransform[3] * v_texCoord.y);\r\n if (uv.x < texClip[0] || uv.x > texClip[2] || uv.y < texClip[1] || uv.y > texClip[3])\r\n return false;\r\n uv.y = 1.0 - uv.y;\r\n }\r\n vec4 texCol = TEXTURE(sampler, uv);\r\n float alpha = layerAlpha * texCol.a;\r\n if (alpha > 0.05) {\r\n vec3 texRgb = isProjected ? (texCol.rgb / texCol.a) : texCol.rgb; // Texture color is premultiplied by alpha only if projected (from classification).\r\n col.rgb = (1.0 - alpha) * col.rgb + alpha * texRgb;\r\n if (isProjected) {\r\n vec4 featureTexel = TEXTURE(sampler, vec2(uv.x, (1.0 + classPos.y) / imageCount));\r\n classifierId = addUInt32s(params[1], featureTexel * 255.0) / 255.0;\r\n } else {\r\n featureIncrement = matrix[2].y;\r\n classifierId = vec4(0);\r\n }\r\n if (alpha > col.a)\r\n col.a = alpha;\r\n\r\n return true;\r\n }\r\nreturn false;\r\n}\r\n`;\r\n\r\nconst computeTexCoord = \"return unquantize2d(a_uvParam, u_qTexCoordParams);\";\r\nconst scratchMatrix4d1 = Matrix4d.createIdentity();\r\nconst scratchMatrix4d2 = Matrix4d.createIdentity();\r\nconst scratchMatrix = new Matrix4();\r\n\r\nconst overrideFeatureId = `return (classifierId == vec4(0)) ? (addUInt32s(feature_id * 255.0, vec4(featureIncrement, 0.0, 0.0, 0.0)) / 255.0) : classifierId;`;\r\n\r\nfunction addTextures(builder: ProgramBuilder, maxTexturesPerMesh: number) {\r\n builder.vert.addFunction(unquantize2d);\r\n builder.addFunctionComputedVarying(\"v_texCoord\", VariableType.Vec2, \"computeTexCoord\", computeTexCoord);\r\n builder.vert.addUniform(\"u_qTexCoordParams\", VariableType.Vec4, (prog) => {\r\n prog.addGraphicUniform(\"u_qTexCoordParams\", (uniform, params) => {\r\n const realityMesh = params.geometry.asRealityMesh!;\r\n if (undefined !== realityMesh.uvQParams) {\r\n uniform.setUniform4fv(realityMesh.uvQParams);\r\n }\r\n });\r\n });\r\n\r\n builder.frag.addUniform(\"u_texturesPresent\", VariableType.Boolean, (program) => {\r\n program.addGraphicUniform(\"u_texturesPresent\", (uniform, params) => {\r\n uniform.setUniform1i(params.geometry.asRealityMesh!.hasTextures ? 1 : 0);\r\n });\r\n });\r\n\r\n for (let i = 0; i < maxTexturesPerMesh; i++) {\r\n const textureLabel = `s_texture${i}`;\r\n builder.frag.addUniform(textureLabel, VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(textureLabel, (uniform, params) => {\r\n const textureUnits = [TextureUnit.RealityMesh0, TextureUnit.RealityMesh1, params.target.drawForReadPixels ? TextureUnit.ShadowMap : TextureUnit.PickDepthAndOrder, TextureUnit.RealityMesh3, TextureUnit.RealityMesh4, TextureUnit.RealityMesh5];\r\n const realityMesh = params.geometry.asRealityMesh!;\r\n const realityTexture = realityMesh.textureParams ? realityMesh.textureParams.params[i].texture : undefined;\r\n if (realityTexture !== undefined) {\r\n const texture = realityTexture as Texture;\r\n texture.texture.bindSampler(uniform, textureUnits[i]);\r\n } else {\r\n // assert(false, \"Terrain Mesh texture not defined when beginning texture.\");\r\n System.instance.ensureSamplerBound(uniform, textureUnits[i]);\r\n }\r\n });\r\n });\r\n const paramsLabel = `u_texParams${i}`, matrixLabel = `u_texMatrix${i}`;\r\n builder.frag.addUniform(matrixLabel, VariableType.Mat4, (prog) => {\r\n prog.addGraphicUniform(matrixLabel, (uniform, params) => {\r\n const realityMesh = params.geometry.asRealityMesh!;\r\n const textureParam = realityMesh.textureParams?.params[i];\r\n assert(undefined !== textureParam);\r\n if (undefined !== textureParam) {\r\n const projectionMatrix = textureParam.getProjectionMatrix();\r\n if (projectionMatrix) {\r\n const eyeToModel = Matrix4d.createTransform(params.target.uniforms.frustum.viewMatrix.inverse()!, scratchMatrix4d1);\r\n const eyeToTexture = projectionMatrix.multiplyMatrixMatrix(eyeToModel, scratchMatrix4d2);\r\n uniform.setMatrix4(Matrix4.fromMatrix4d(eyeToTexture, scratchMatrix));\r\n } else\r\n uniform.setMatrix4(textureParam.getTerrainMatrix()!);\r\n }\r\n });\r\n });\r\n builder.frag.addUniform(paramsLabel, VariableType.Mat4, (prog) => {\r\n prog.addGraphicUniform(paramsLabel, (uniform, params) => {\r\n const realityMesh = params.geometry.asRealityMesh!;\r\n const textureParam = realityMesh.textureParams?.params[i];\r\n assert(undefined !== textureParam);\r\n if (undefined !== textureParam) {\r\n uniform.setMatrix4(textureParam.getParams(scratchMatrix));\r\n }\r\n });\r\n });\r\n }\r\n}\r\nfunction baseColorFromTextures(textureCount: number, applyFeatureColor: string) {\r\n const applyTextureStrings = [];\r\n\r\n for (let i = 0; i < textureCount; i++)\r\n applyTextureStrings.push(`if (applyTexture(col, s_texture${i}, u_texParams${i}, u_texMatrix${i})) doDiscard = false; `);\r\n\r\n return `\r\n if (!u_texturesPresent)\r\n return u_baseColor;\r\n\r\n bool doDiscard = true;\r\n vec4 col = u_baseColor;\r\n ${applyTextureStrings.join(\"\\n \")}\r\n if (doDiscard)\r\n discard;\r\n\r\n ${applyFeatureColor}\r\n\r\n return col;\r\n`;\r\n}\r\n\r\n// feature_rgb.r = -1.0 if rgb color not overridden for feature.\r\n// feature_alpha = -1.0 if alpha not overridden for feature.\r\nconst mixFeatureColor = `\r\n col.rgb = mix(col.rgb, mix(col.rgb, v_color.rgb, u_overrideColorMix), step(0.0, v_color.r));\r\n col.a = mix(col.a, v_color.a, step(0.0, v_color.a));\r\n `;\r\n\r\nfunction addThematicToRealityMesh(builder: ProgramBuilder, gradientTextureUnit: TextureUnit) {\r\n addNormalMatrix(builder.vert, IsInstanced.No);\r\n builder.vert.addFunction(octDecodeNormal);\r\n builder.vert.addGlobal(\"g_hillshadeIndex\", VariableType.Float);\r\n builder.addFunctionComputedVarying(\"v_n\", VariableType.Vec3, \"computeLightingNormal\", computeNormal);\r\n addThematicDisplay(builder, false, true);\r\n builder.addInlineComputedVarying(\"v_thematicIndex\", VariableType.Float, getComputeThematicIndex(builder.vert.usesInstancedGeometry, false, false));\r\n builder.vert.addUniform(\"u_worldToViewN\", VariableType.Mat3, (prog) => {\r\n prog.addGraphicUniform(\"u_worldToViewN\", (uniform, params) => {\r\n params.target.uniforms.branch.bindWorldToViewNTransform(uniform, params.geometry, false);\r\n });\r\n });\r\n builder.frag.addUniform(\"s_texture\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"s_texture\", (uniform, params) => {\r\n params.target.uniforms.thematic.bindTexture(uniform, gradientTextureUnit >= 0 ? gradientTextureUnit : (params.target.drawForReadPixels ? TextureUnit.ShadowMap : TextureUnit.PickDepthAndOrder));\r\n });\r\n });\r\n}\r\n\r\nfunction addColorOverrideMix(frag: FragmentShaderBuilder) {\r\n frag.addUniform(\"u_overrideColorMix\", VariableType.Float, (prog) => {\r\n prog.addGraphicUniform(\"u_overrideColorMix\", (uniform, params) => {\r\n uniform.setUniform1f(params.geometry.asRealityMesh!.overrideColorMix);\r\n });\r\n });\r\n\r\n}\r\n\r\nfunction createRealityMeshHiliterBuilder(): ProgramBuilder {\r\n const builder = new ProgramBuilder(AttributeMap.findAttributeMap(TechniqueId.RealityMesh, false));\r\n const vert = builder.vert;\r\n vert.set(VertexShaderComponent.ComputePosition, computePosition);\r\n addModelViewProjectionMatrix(vert);\r\n builder.frag.set(FragmentShaderComponent.AssignFragData, assignFragColor);\r\n return builder;\r\n\r\n}\r\n\r\n/** @internal */\r\nexport function createClassifierRealityMeshHiliter(): ProgramBuilder {\r\n const builder = createRealityMeshHiliterBuilder();\r\n addHilitePlanarClassifier(builder, false);\r\n return builder;\r\n}\r\n\r\n/** @internal */\r\nexport function createRealityMeshHiliter(): ProgramBuilder {\r\n const builder = createRealityMeshHiliterBuilder();\r\n addHiliter(builder, false);\r\n return builder;\r\n}\r\n\r\n/** @internal */\r\nexport default function createRealityMeshBuilder(flags: TechniqueFlags): ProgramBuilder {\r\n const builder = new ProgramBuilder(AttributeMap.findAttributeMap(TechniqueId.RealityMesh, false));\r\n const vert = builder.vert;\r\n vert.set(VertexShaderComponent.ComputePosition, computePosition);\r\n addModelViewProjectionMatrix(vert);\r\n\r\n if (flags.isShadowable === IsShadowable.Yes)\r\n addSolarShadowMap(builder, true);\r\n\r\n const frag = builder.frag;\r\n frag.addGlobal(\"featureIncrement\", VariableType.Float, \"0.0\");\r\n frag.addGlobal(\"classifierId\", VariableType.Vec4);\r\n frag.set(FragmentShaderComponent.OverrideFeatureId, overrideFeatureId);\r\n let textureCount = System.instance.maxRealityImageryLayers;\r\n let gradientTextureUnit = TextureUnit.RealityMeshThematicGradient;\r\n const caps = System.instance.capabilities;\r\n if (Math.min(caps.maxFragTextureUnits, caps.maxVertTextureUnits) < 16 && IsThematic.Yes === flags.isThematic) {\r\n textureCount--; // steal the last bg map layer texture for thematic gradient (just when thematic display is applied)\r\n gradientTextureUnit = -1; // is dependent on drawing mode so will set later\r\n }\r\n\r\n const feat = flags.featureMode;\r\n let opts = FeatureMode.Overrides === feat ? FeatureSymbologyOptions.Surface : FeatureSymbologyOptions.None;\r\n let applyFragmentFeatureColor = \"\";\r\n\r\n if (flags.isClassified) {\r\n opts &= ~FeatureSymbologyOptions.Alpha;\r\n addColorPlanarClassifier(builder, flags.isTranslucent, flags.isThematic);\r\n addClassificationTranslucencyDiscard(builder);\r\n }\r\n\r\n addFeatureSymbology(builder, feat, opts);\r\n if (feat === FeatureMode.Overrides) {\r\n addShaderFlags(builder);\r\n addVaryingColor(builder, \"return vec4(-1.0, -1.0, -1.0, -1.0);\");\r\n applyFragmentFeatureColor = mixFeatureColor;\r\n addColorOverrideMix(builder.frag);\r\n }\r\n const computeFragmentBaseColor = baseColorFromTextures(textureCount, applyFragmentFeatureColor);\r\n\r\n frag.addFunction(addUInt32s);\r\n frag.addFunction(testInside);\r\n addEyeSpace(builder);\r\n frag.addFunction(applyTexture);\r\n frag.set(FragmentShaderComponent.ComputeBaseColor, computeFragmentBaseColor);\r\n builder.frag.addUniform(\"u_baseColor\", VariableType.Vec4, (prog) => {\r\n prog.addGraphicUniform(\"u_baseColor\", (uniform, params) => {\r\n const realityMesh = params.geometry.asRealityMesh!;\r\n const baseColor = (realityMesh.baseColor ? realityMesh.baseColor : ColorDef.create(0xff000000)).colors;\r\n uniform.setUniform4fv([baseColor.r / 255, baseColor.g / 255, baseColor.b / 255, 1 - baseColor.t / 255]);\r\n });\r\n });\r\n builder.frag.set(FragmentShaderComponent.ComputeBaseColor, computeFragmentBaseColor);\r\n if (!flags.isTranslucent) {\r\n if (FeatureMode.None !== feat) {\r\n if (flags.isClassified)\r\n addFeaturePlanarClassifier(builder);\r\n\r\n builder.frag.addFunction(decodeDepthRgb);\r\n if (flags.isClassified)\r\n addPickBufferOutputs(builder.frag);\r\n else\r\n addAltPickBufferOutputs(builder.frag);\r\n }\r\n }\r\n\r\n addTextures(builder, textureCount);\r\n\r\n if (IsThematic.Yes === flags.isThematic)\r\n addThematicToRealityMesh(builder, gradientTextureUnit);\r\n\r\n if (flags.isWiremesh)\r\n addWiremesh(builder);\r\n\r\n return builder;\r\n}\r\n\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ArcGisUtilities.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/ArcGisUtilities.ts"],"names":[],"mappings":"AAMA,OAAO,EAAoB,uBAAuB,EAAkB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5G,OAAO,EACsC,iBAAiB,EAAoB,cAAc,EAAwB,wBAAwB,EAC/I,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,gBAAgB;AAChB,oBAAY,eAAe;IACzB,kBAAkB,MAAM;IACxB,YAAY,MAAM;IAClB,aAAa,MAAM;IACnB,YAAY,OAAO;IACnB,cAAc,OAAO;CACtB;AAED,gBAAgB;AAChB,qBAAa,eAAe;WAEZ,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAaxD,OAAO,CAAC,MAAM,CAAC,aAAa;WAMR,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;WAQlD,qBAAqB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;WA0BlD,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;WA0BpF,mBAAmB,CAAC,KAAK,CAAC,EAAE,iBAAiB,EAAE,GAAG,SAAqD,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;WAkBnI,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAiChJ,OAAO,CAAC,MAAM,CAAC,aAAa,CAA0B;WAClC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAoC3H,OAAO,CAAC,MAAM,CAAC,eAAe,CAA0B;WACpC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC;CAoBvG"}
1
+ {"version":3,"file":"ArcGisUtilities.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/ArcGisUtilities.ts"],"names":[],"mappings":"AAMA,OAAO,EAAoB,uBAAuB,EAAkB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5G,OAAO,EACsC,iBAAiB,EAAoB,cAAc,EAAwB,wBAAwB,EAC/I,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,gBAAgB;AAChB,oBAAY,eAAe;IACzB,kBAAkB,MAAM;IACxB,YAAY,MAAM;IAClB,aAAa,MAAM;IACnB,YAAY,OAAO;IACnB,cAAc,OAAO;CACtB;AAED,gBAAgB;AAChB,qBAAa,eAAe;WAEZ,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAaxD,OAAO,CAAC,MAAM,CAAC,aAAa;WAMR,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;WAQlD,qBAAqB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;WA0BlD,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;WA0BpF,mBAAmB,CAAC,KAAK,CAAC,EAAE,iBAAiB,EAAE,GAAG,SAAqD,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;WAkBnI,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,CAAC;IA8ChJ,OAAO,CAAC,MAAM,CAAC,aAAa,CAA0B;WAClC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAoC3H,OAAO,CAAC,MAAM,CAAC,eAAe,CAA0B;WACpC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC;CAoBvG"}
@@ -131,6 +131,19 @@ class ArcGisUtilities {
131
131
  else if (json.error.code === ArcGisErrorCode.InvalidCredentials)
132
132
  return { status: internal_1.MapLayerSourceStatus.InvalidCredentials, authInfo: { authMethod: internal_1.MapLayerAuthType.EsriToken } };
133
133
  }
134
+ // Check this service support map queries
135
+ let hasMapCapability = false;
136
+ try {
137
+ if (json.capabilities
138
+ && typeof json.capabilities === "string"
139
+ && json.capabilities.toLowerCase().includes("map")) {
140
+ hasMapCapability = true;
141
+ }
142
+ }
143
+ catch { }
144
+ if (!hasMapCapability) {
145
+ return { status: internal_1.MapLayerSourceStatus.InvalidFormat };
146
+ }
134
147
  let subLayers;
135
148
  if (json.layers) {
136
149
  subLayers = new Array();
@@ -1 +1 @@
1
- {"version":3,"file":"ArcGisUtilities.js","sourceRoot":"","sources":["../../../../src/tile/map/ArcGisUtilities.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\nimport { Angle } from \"@itwin/core-geometry\";\r\nimport { MapSubLayerProps } from \"@itwin/core-common\";\r\nimport { getJson, request, RequestBasicCredentials, RequestOptions, Response } from \"../../request/Request\";\r\nimport {\r\n ArcGisTokenClientType, ArcGisTokenManager, MapCartoRectangle, MapLayerAuthType, MapLayerSource, MapLayerSourceStatus, MapLayerSourceValidation,\r\n} from \"../internal\";\r\n\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n/** @internal */\r\nexport enum ArcGisErrorCode {\r\n InvalidCredentials = 401,\r\n InvalidToken = 498,\r\n TokenRequired = 499,\r\n UnknownError = 1000,\r\n NoTokenService = 1001,\r\n}\r\n\r\n/** @internal */\r\nexport class ArcGisUtilities {\r\n\r\n public static hasTokenError(response: Response): boolean {\r\n if (response.header && (response.header[\"content-type\"] as string)?.toLowerCase().includes(\"json\")) {\r\n try {\r\n // Tile response returns byte array, so we need to check the response data type and convert accordingly.\r\n const json = ((response.body instanceof ArrayBuffer) ? JSON.parse(Buffer.from(response.body).toString()) : response.body);\r\n return (json?.error?.code === ArcGisErrorCode.TokenRequired || json?.error?.code === ArcGisErrorCode.InvalidToken);\r\n } catch (_err) {\r\n return false; // that probably means we failed to convert byte array to JSON\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private static getBBoxString(range?: MapCartoRectangle) {\r\n if (!range)\r\n range = MapCartoRectangle.create();\r\n\r\n return `${range.low.x * Angle.degreesPerRadian},${range.low.y * Angle.degreesPerRadian},${range.high.x * Angle.degreesPerRadian},${range.high.y * Angle.degreesPerRadian}`;\r\n }\r\n public static async getEndpoint(url: string): Promise<any | undefined> {\r\n const capabilities = await request(`${url}?f=pjson`, {\r\n method: \"GET\",\r\n responseType: \"json\",\r\n });\r\n return capabilities.body;\r\n }\r\n\r\n public static async getNationalMapSources(): Promise<MapLayerSource[]> {\r\n const sources = new Array<MapLayerSource>();\r\n const services = await getJson(\"https://viewer.nationalmap.gov/tnmaccess/api/getMapServiceList\");\r\n\r\n if (!Array.isArray(services))\r\n return sources;\r\n\r\n for (const service of services) {\r\n if (service.wmsUrl.length === 0) // Exclude Wfs..\r\n continue;\r\n switch (service.serviceType) {\r\n case \"ArcGIS\":\r\n sources.push(MapLayerSource.fromJSON({ name: service.displayName, url: service.serviceLink, formatId: \"ArcGIS\" })!);\r\n break;\r\n default: {\r\n const wmsIndex = service.wmsUrl.lastIndexOf(\"/wms\");\r\n if (wmsIndex > 0) {\r\n const url = service.wmsUrl.slice(0, wmsIndex + 4);\r\n sources.push(MapLayerSource.fromJSON({ name: service.displayName, url, formatId: \"WMS\" })!);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n return sources;\r\n }\r\n public static async getServiceDirectorySources(url: string, baseUrl?: string): Promise<MapLayerSource[]> {\r\n if (undefined === baseUrl)\r\n baseUrl = url;\r\n let sources = new Array<MapLayerSource>();\r\n const json = await getJson(`${url}?f=json`);\r\n if (json !== undefined) {\r\n if (Array.isArray(json.folders)) {\r\n for (const folder of json.folders) {\r\n sources = sources.concat(await ArcGisUtilities.getServiceDirectorySources(`${url}/${folder}`, url));\r\n }\r\n }\r\n if (Array.isArray(json.services)) {\r\n for (const service of json.services) {\r\n let source;\r\n if (service.type === \"MapServer\")\r\n source = MapLayerSource.fromJSON({ name: service.name, url: `${baseUrl}/${service.name}/MapServer`, formatId: \"ArcGIS\" });\r\n else if (service.type === \"ImageServer\")\r\n source = MapLayerSource.fromJSON({ name: service.name, url: `${baseUrl}/${service.name}/ImageServer`, formatId: \"ArcGIS\" });\r\n if (source)\r\n sources.push(source);\r\n }\r\n }\r\n }\r\n\r\n return sources;\r\n }\r\n public static async getSourcesFromQuery(range?: MapCartoRectangle, url = \"https://usgs.maps.arcgis.com/sharing/rest/search\"): Promise<MapLayerSource[]> {\r\n const sources = new Array<MapLayerSource>();\r\n for (let start = 1; start > 0;) {\r\n const json = await getJson(`${url}?f=json&q=(group:9d1199a521334e77a7d15abbc29f8144) AND (type:\"Map Service\")&bbox=${ArcGisUtilities.getBBoxString(range)}&sortOrder=desc&start=${start}&num=100`);\r\n if (!json) break;\r\n start = json.nextStart ? json.nextStart : -1;\r\n if (json !== undefined && Array.isArray(json.results)) {\r\n for (const result of json.results) {\r\n const source = MapLayerSource.fromJSON({ name: result.name ? result.name : result.title, url: result.url, formatId: \"ArcGIS\" });\r\n if (source)\r\n sources.push(source);\r\n }\r\n }\r\n }\r\n\r\n return sources;\r\n }\r\n\r\n public static async validateSource(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<MapLayerSourceValidation> {\r\n\r\n let authMethod: MapLayerAuthType = MapLayerAuthType.None;\r\n\r\n const json = await this.getServiceJson(url, credentials, ignoreCache);\r\n if (json === undefined) {\r\n return { status: MapLayerSourceStatus.InvalidUrl };\r\n } else if (json.error !== undefined) {\r\n\r\n // If we got a 'Token Required' error, lets check what authentification methods this ESRI service offers\r\n // and return information needed to initiate the authentification process... the end-user\r\n // will have to provide his credentials before we can fully validate this source.\r\n if (json.error.code === ArcGisErrorCode.TokenRequired) {\r\n authMethod = MapLayerAuthType.EsriToken;\r\n return { status: MapLayerSourceStatus.RequireAuth, authInfo: { authMethod, tokenEndpoint: undefined } };\r\n } else if (json.error.code === ArcGisErrorCode.InvalidCredentials)\r\n return { status: MapLayerSourceStatus.InvalidCredentials, authInfo: { authMethod: MapLayerAuthType.EsriToken } };\r\n }\r\n\r\n let subLayers;\r\n if (json.layers) {\r\n\r\n subLayers = new Array<MapSubLayerProps>();\r\n\r\n for (const layer of json.layers) {\r\n const parent = layer.parentLayerId < 0 ? undefined : layer.parentLayerId;\r\n const children = Array.isArray(layer.subLayerIds) ? layer.subLayerIds : undefined;\r\n subLayers.push({ name: layer.name, visible: layer.defaultVisibility !== false, id: layer.id, parent, children });\r\n }\r\n }\r\n return { status: MapLayerSourceStatus.Valid, subLayers };\r\n }\r\n\r\n private static _serviceCache = new Map<string, any>();\r\n public static async getServiceJson(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<any> {\r\n if (!ignoreCache) {\r\n const cached = ArcGisUtilities._serviceCache.get(url);\r\n if (cached !== undefined)\r\n return cached;\r\n }\r\n\r\n try {\r\n const options: RequestOptions = {\r\n method: \"GET\",\r\n responseType: \"json\",\r\n };\r\n let tokenParam = \"\";\r\n if (credentials) {\r\n const token = await ArcGisTokenManager.getToken(url, credentials.user, credentials.password, { client: ArcGisTokenClientType.referer });\r\n if (token?.token) {\r\n tokenParam = `&token=${token.token}`;\r\n } else if (token?.error)\r\n return token; // An error occurred, return immediately\r\n }\r\n const finalUrl = `${url}?f=json${tokenParam}`;\r\n const data = await request(finalUrl, options);\r\n const json = data.body ?? undefined;\r\n\r\n // Cache the response only if it doesn't contain a token error.\r\n if (!ArcGisUtilities.hasTokenError(data)) {\r\n ArcGisUtilities._serviceCache.set(url, json);\r\n }\r\n\r\n return json;\r\n } catch (_error) {\r\n ArcGisUtilities._serviceCache.set(url, undefined);\r\n return undefined;\r\n }\r\n }\r\n\r\n private static _footprintCache = new Map<string, any>();\r\n public static async getFootprintJson(url: string, credentials?: RequestBasicCredentials): Promise<any> {\r\n const cached = ArcGisUtilities._footprintCache.get(url);\r\n if (cached !== undefined)\r\n return cached;\r\n\r\n try {\r\n let tokenParam = \"\";\r\n if (credentials) {\r\n const token = await ArcGisTokenManager.getToken(url, credentials.user, credentials.password, { client: ArcGisTokenClientType.referer });\r\n if (token?.token)\r\n tokenParam = `&token=${token.token}`;\r\n }\r\n const json = await getJson(`${url}?f=json&option=footprints&outSR=4326${tokenParam}`);\r\n ArcGisUtilities._footprintCache.set(url, json);\r\n return json;\r\n } catch (_error) {\r\n ArcGisUtilities._footprintCache.set(url, undefined);\r\n return undefined;\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ArcGisUtilities.js","sourceRoot":"","sources":["../../../../src/tile/map/ArcGisUtilities.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\nimport { Angle } from \"@itwin/core-geometry\";\r\nimport { MapSubLayerProps } from \"@itwin/core-common\";\r\nimport { getJson, request, RequestBasicCredentials, RequestOptions, Response } from \"../../request/Request\";\r\nimport {\r\n ArcGisTokenClientType, ArcGisTokenManager, MapCartoRectangle, MapLayerAuthType, MapLayerSource, MapLayerSourceStatus, MapLayerSourceValidation,\r\n} from \"../internal\";\r\n\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n/** @internal */\r\nexport enum ArcGisErrorCode {\r\n InvalidCredentials = 401,\r\n InvalidToken = 498,\r\n TokenRequired = 499,\r\n UnknownError = 1000,\r\n NoTokenService = 1001,\r\n}\r\n\r\n/** @internal */\r\nexport class ArcGisUtilities {\r\n\r\n public static hasTokenError(response: Response): boolean {\r\n if (response.header && (response.header[\"content-type\"] as string)?.toLowerCase().includes(\"json\")) {\r\n try {\r\n // Tile response returns byte array, so we need to check the response data type and convert accordingly.\r\n const json = ((response.body instanceof ArrayBuffer) ? JSON.parse(Buffer.from(response.body).toString()) : response.body);\r\n return (json?.error?.code === ArcGisErrorCode.TokenRequired || json?.error?.code === ArcGisErrorCode.InvalidToken);\r\n } catch (_err) {\r\n return false; // that probably means we failed to convert byte array to JSON\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private static getBBoxString(range?: MapCartoRectangle) {\r\n if (!range)\r\n range = MapCartoRectangle.create();\r\n\r\n return `${range.low.x * Angle.degreesPerRadian},${range.low.y * Angle.degreesPerRadian},${range.high.x * Angle.degreesPerRadian},${range.high.y * Angle.degreesPerRadian}`;\r\n }\r\n public static async getEndpoint(url: string): Promise<any | undefined> {\r\n const capabilities = await request(`${url}?f=pjson`, {\r\n method: \"GET\",\r\n responseType: \"json\",\r\n });\r\n return capabilities.body;\r\n }\r\n\r\n public static async getNationalMapSources(): Promise<MapLayerSource[]> {\r\n const sources = new Array<MapLayerSource>();\r\n const services = await getJson(\"https://viewer.nationalmap.gov/tnmaccess/api/getMapServiceList\");\r\n\r\n if (!Array.isArray(services))\r\n return sources;\r\n\r\n for (const service of services) {\r\n if (service.wmsUrl.length === 0) // Exclude Wfs..\r\n continue;\r\n switch (service.serviceType) {\r\n case \"ArcGIS\":\r\n sources.push(MapLayerSource.fromJSON({ name: service.displayName, url: service.serviceLink, formatId: \"ArcGIS\" })!);\r\n break;\r\n default: {\r\n const wmsIndex = service.wmsUrl.lastIndexOf(\"/wms\");\r\n if (wmsIndex > 0) {\r\n const url = service.wmsUrl.slice(0, wmsIndex + 4);\r\n sources.push(MapLayerSource.fromJSON({ name: service.displayName, url, formatId: \"WMS\" })!);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n return sources;\r\n }\r\n public static async getServiceDirectorySources(url: string, baseUrl?: string): Promise<MapLayerSource[]> {\r\n if (undefined === baseUrl)\r\n baseUrl = url;\r\n let sources = new Array<MapLayerSource>();\r\n const json = await getJson(`${url}?f=json`);\r\n if (json !== undefined) {\r\n if (Array.isArray(json.folders)) {\r\n for (const folder of json.folders) {\r\n sources = sources.concat(await ArcGisUtilities.getServiceDirectorySources(`${url}/${folder}`, url));\r\n }\r\n }\r\n if (Array.isArray(json.services)) {\r\n for (const service of json.services) {\r\n let source;\r\n if (service.type === \"MapServer\")\r\n source = MapLayerSource.fromJSON({ name: service.name, url: `${baseUrl}/${service.name}/MapServer`, formatId: \"ArcGIS\" });\r\n else if (service.type === \"ImageServer\")\r\n source = MapLayerSource.fromJSON({ name: service.name, url: `${baseUrl}/${service.name}/ImageServer`, formatId: \"ArcGIS\" });\r\n if (source)\r\n sources.push(source);\r\n }\r\n }\r\n }\r\n\r\n return sources;\r\n }\r\n public static async getSourcesFromQuery(range?: MapCartoRectangle, url = \"https://usgs.maps.arcgis.com/sharing/rest/search\"): Promise<MapLayerSource[]> {\r\n const sources = new Array<MapLayerSource>();\r\n for (let start = 1; start > 0;) {\r\n const json = await getJson(`${url}?f=json&q=(group:9d1199a521334e77a7d15abbc29f8144) AND (type:\"Map Service\")&bbox=${ArcGisUtilities.getBBoxString(range)}&sortOrder=desc&start=${start}&num=100`);\r\n if (!json) break;\r\n start = json.nextStart ? json.nextStart : -1;\r\n if (json !== undefined && Array.isArray(json.results)) {\r\n for (const result of json.results) {\r\n const source = MapLayerSource.fromJSON({ name: result.name ? result.name : result.title, url: result.url, formatId: \"ArcGIS\" });\r\n if (source)\r\n sources.push(source);\r\n }\r\n }\r\n }\r\n\r\n return sources;\r\n }\r\n\r\n public static async validateSource(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<MapLayerSourceValidation> {\r\n\r\n let authMethod: MapLayerAuthType = MapLayerAuthType.None;\r\n\r\n const json = await this.getServiceJson(url, credentials, ignoreCache);\r\n if (json === undefined) {\r\n return { status: MapLayerSourceStatus.InvalidUrl };\r\n } else if (json.error !== undefined) {\r\n\r\n // If we got a 'Token Required' error, lets check what authentification methods this ESRI service offers\r\n // and return information needed to initiate the authentification process... the end-user\r\n // will have to provide his credentials before we can fully validate this source.\r\n if (json.error.code === ArcGisErrorCode.TokenRequired) {\r\n authMethod = MapLayerAuthType.EsriToken;\r\n return { status: MapLayerSourceStatus.RequireAuth, authInfo: { authMethod, tokenEndpoint: undefined } };\r\n } else if (json.error.code === ArcGisErrorCode.InvalidCredentials)\r\n return { status: MapLayerSourceStatus.InvalidCredentials, authInfo: { authMethod: MapLayerAuthType.EsriToken } };\r\n }\r\n\r\n // Check this service support map queries\r\n let hasMapCapability = false;\r\n try {\r\n if (json.capabilities\r\n && typeof json.capabilities === \"string\"\r\n && json.capabilities.toLowerCase().includes(\"map\")) {\r\n hasMapCapability = true;\r\n }\r\n } catch { }\r\n if (!hasMapCapability) {\r\n return { status: MapLayerSourceStatus.InvalidFormat};\r\n }\r\n\r\n let subLayers;\r\n if (json.layers) {\r\n\r\n subLayers = new Array<MapSubLayerProps>();\r\n\r\n for (const layer of json.layers) {\r\n const parent = layer.parentLayerId < 0 ? undefined : layer.parentLayerId;\r\n const children = Array.isArray(layer.subLayerIds) ? layer.subLayerIds : undefined;\r\n subLayers.push({ name: layer.name, visible: layer.defaultVisibility !== false, id: layer.id, parent, children });\r\n }\r\n }\r\n return { status: MapLayerSourceStatus.Valid, subLayers };\r\n }\r\n\r\n private static _serviceCache = new Map<string, any>();\r\n public static async getServiceJson(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<any> {\r\n if (!ignoreCache) {\r\n const cached = ArcGisUtilities._serviceCache.get(url);\r\n if (cached !== undefined)\r\n return cached;\r\n }\r\n\r\n try {\r\n const options: RequestOptions = {\r\n method: \"GET\",\r\n responseType: \"json\",\r\n };\r\n let tokenParam = \"\";\r\n if (credentials) {\r\n const token = await ArcGisTokenManager.getToken(url, credentials.user, credentials.password, { client: ArcGisTokenClientType.referer });\r\n if (token?.token) {\r\n tokenParam = `&token=${token.token}`;\r\n } else if (token?.error)\r\n return token; // An error occurred, return immediately\r\n }\r\n const finalUrl = `${url}?f=json${tokenParam}`;\r\n const data = await request(finalUrl, options);\r\n const json = data.body ?? undefined;\r\n\r\n // Cache the response only if it doesn't contain a token error.\r\n if (!ArcGisUtilities.hasTokenError(data)) {\r\n ArcGisUtilities._serviceCache.set(url, json);\r\n }\r\n\r\n return json;\r\n } catch (_error) {\r\n ArcGisUtilities._serviceCache.set(url, undefined);\r\n return undefined;\r\n }\r\n }\r\n\r\n private static _footprintCache = new Map<string, any>();\r\n public static async getFootprintJson(url: string, credentials?: RequestBasicCredentials): Promise<any> {\r\n const cached = ArcGisUtilities._footprintCache.get(url);\r\n if (cached !== undefined)\r\n return cached;\r\n\r\n try {\r\n let tokenParam = \"\";\r\n if (credentials) {\r\n const token = await ArcGisTokenManager.getToken(url, credentials.user, credentials.password, { client: ArcGisTokenClientType.referer });\r\n if (token?.token)\r\n tokenParam = `&token=${token.token}`;\r\n }\r\n const json = await getJson(`${url}?f=json&option=footprints&outSR=4326${tokenParam}`);\r\n ArcGisUtilities._footprintCache.set(url, json);\r\n return json;\r\n } catch (_error) {\r\n ArcGisUtilities._footprintCache.set(url, undefined);\r\n return undefined;\r\n }\r\n }\r\n}\r\n"]}
@@ -410,14 +410,13 @@ export declare class WheelEventProcessor {
410
410
  * @public
411
411
  */
412
412
  export declare namespace ToolAdmin {
413
- /**
414
- * Active settings that placement tools will use.
413
+ /** Active settings that placement tools will use.
415
414
  * @alpha
416
415
  */
417
- class ActiveSettings {
418
- /** The active category */
416
+ interface ActiveSettings {
417
+ /** The category to which newly created elements will be assigned. */
419
418
  category?: Id64String;
420
- /** The target model */
419
+ /** The model that will contain newly created elements. */
421
420
  model?: Id64String;
422
421
  }
423
422
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ToolAdmin.d.ts","sourceRoot":"","sources":["../../../src/tools/ToolAdmin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolAdmin.d.ts","sourceRoot":"","sources":["../../../src/tools/ToolAdmin.ts"],"names":[],"mappings":"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"}
@@ -266,7 +266,7 @@ class ToolAdmin {
266
266
  * The active settings that placement tools will use.
267
267
  * @alpha
268
268
  */
269
- this.activeSettings = new ToolAdmin.ActiveSettings();
269
+ this.activeSettings = {};
270
270
  /** Apply operations such as transform, copy or delete to all members of an assembly. */
271
271
  this.assemblyLock = false;
272
272
  /** If Grid Lock is on, project data points to grid. */
@@ -1572,16 +1572,4 @@ class WheelEventProcessor {
1572
1572
  }
1573
1573
  }
1574
1574
  exports.WheelEventProcessor = WheelEventProcessor;
1575
- /**
1576
- * @public
1577
- */
1578
- (function (ToolAdmin) {
1579
- /**
1580
- * Active settings that placement tools will use.
1581
- * @alpha
1582
- */
1583
- class ActiveSettings {
1584
- }
1585
- ToolAdmin.ActiveSettings = ActiveSettings;
1586
- })(ToolAdmin = exports.ToolAdmin || (exports.ToolAdmin = {}));
1587
1575
  //# sourceMappingURL=ToolAdmin.js.map