@itwin/core-frontend 5.1.0-dev.66 → 5.1.0-dev.69

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 (109) hide show
  1. package/lib/cjs/common/gltf/GltfSchema.d.ts +9 -0
  2. package/lib/cjs/common/gltf/GltfSchema.d.ts.map +1 -1
  3. package/lib/cjs/common/gltf/GltfSchema.js.map +1 -1
  4. package/lib/cjs/common/imdl/CompactEdges.d.ts +11 -0
  5. package/lib/cjs/common/imdl/CompactEdges.d.ts.map +1 -1
  6. package/lib/cjs/common/imdl/CompactEdges.js +9 -6
  7. package/lib/cjs/common/imdl/CompactEdges.js.map +1 -1
  8. package/lib/cjs/common/imdl/ImdlSchema.d.ts +5 -1
  9. package/lib/cjs/common/imdl/ImdlSchema.d.ts.map +1 -1
  10. package/lib/cjs/common/imdl/ImdlSchema.js +4 -0
  11. package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -1
  12. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  13. package/lib/cjs/common/imdl/ParseImdlDocument.js +11 -9
  14. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
  15. package/lib/cjs/common/internal/render/EdgeParams.d.ts +7 -2
  16. package/lib/cjs/common/internal/render/EdgeParams.d.ts.map +1 -1
  17. package/lib/cjs/common/internal/render/EdgeParams.js +30 -8
  18. package/lib/cjs/common/internal/render/EdgeParams.js.map +1 -1
  19. package/lib/cjs/common/internal/render/MeshPrimitives.d.ts +2 -1
  20. package/lib/cjs/common/internal/render/MeshPrimitives.d.ts.map +1 -1
  21. package/lib/cjs/common/internal/render/MeshPrimitives.js +5 -7
  22. package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -1
  23. package/lib/cjs/common/internal/render/PolylineParams.d.ts +8 -3
  24. package/lib/cjs/common/internal/render/PolylineParams.d.ts.map +1 -1
  25. package/lib/cjs/common/internal/render/PolylineParams.js +6 -9
  26. package/lib/cjs/common/internal/render/PolylineParams.js.map +1 -1
  27. package/lib/cjs/common/internal/render/VertexTableSplitter.d.ts.map +1 -1
  28. package/lib/cjs/common/internal/render/VertexTableSplitter.js +9 -7
  29. package/lib/cjs/common/internal/render/VertexTableSplitter.js.map +1 -1
  30. package/lib/cjs/internal/render/webgl/EdgeGeometry.d.ts +8 -6
  31. package/lib/cjs/internal/render/webgl/EdgeGeometry.d.ts.map +1 -1
  32. package/lib/cjs/internal/render/webgl/EdgeGeometry.js +21 -7
  33. package/lib/cjs/internal/render/webgl/EdgeGeometry.js.map +1 -1
  34. package/lib/cjs/internal/render/webgl/IndexedEdgeGeometry.d.ts +6 -1
  35. package/lib/cjs/internal/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  36. package/lib/cjs/internal/render/webgl/IndexedEdgeGeometry.js +19 -4
  37. package/lib/cjs/internal/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  38. package/lib/cjs/internal/render/webgl/Mesh.d.ts +1 -1
  39. package/lib/cjs/internal/render/webgl/Mesh.d.ts.map +1 -1
  40. package/lib/cjs/internal/render/webgl/Mesh.js +13 -6
  41. package/lib/cjs/internal/render/webgl/Mesh.js.map +1 -1
  42. package/lib/cjs/internal/webgl.d.ts +1 -1
  43. package/lib/cjs/internal/webgl.d.ts.map +1 -1
  44. package/lib/cjs/internal/webgl.js.map +1 -1
  45. package/lib/cjs/quantity-formatting/QuantityFormatter.js +0 -2
  46. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  47. package/lib/cjs/render/MeshArgs.d.ts +8 -3
  48. package/lib/cjs/render/MeshArgs.d.ts.map +1 -1
  49. package/lib/cjs/render/MeshArgs.js.map +1 -1
  50. package/lib/cjs/tile/GltfReader.d.ts +1 -0
  51. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  52. package/lib/cjs/tile/GltfReader.js +68 -0
  53. package/lib/cjs/tile/GltfReader.js.map +1 -1
  54. package/lib/esm/common/gltf/GltfSchema.d.ts +9 -0
  55. package/lib/esm/common/gltf/GltfSchema.d.ts.map +1 -1
  56. package/lib/esm/common/gltf/GltfSchema.js.map +1 -1
  57. package/lib/esm/common/imdl/CompactEdges.d.ts +11 -0
  58. package/lib/esm/common/imdl/CompactEdges.d.ts.map +1 -1
  59. package/lib/esm/common/imdl/CompactEdges.js +8 -6
  60. package/lib/esm/common/imdl/CompactEdges.js.map +1 -1
  61. package/lib/esm/common/imdl/ImdlSchema.d.ts +5 -1
  62. package/lib/esm/common/imdl/ImdlSchema.d.ts.map +1 -1
  63. package/lib/esm/common/imdl/ImdlSchema.js +4 -0
  64. package/lib/esm/common/imdl/ImdlSchema.js.map +1 -1
  65. package/lib/esm/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  66. package/lib/esm/common/imdl/ParseImdlDocument.js +11 -9
  67. package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
  68. package/lib/esm/common/internal/render/EdgeParams.d.ts +7 -2
  69. package/lib/esm/common/internal/render/EdgeParams.d.ts.map +1 -1
  70. package/lib/esm/common/internal/render/EdgeParams.js +31 -9
  71. package/lib/esm/common/internal/render/EdgeParams.js.map +1 -1
  72. package/lib/esm/common/internal/render/MeshPrimitives.d.ts +2 -1
  73. package/lib/esm/common/internal/render/MeshPrimitives.d.ts.map +1 -1
  74. package/lib/esm/common/internal/render/MeshPrimitives.js +5 -7
  75. package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -1
  76. package/lib/esm/common/internal/render/PolylineParams.d.ts +8 -3
  77. package/lib/esm/common/internal/render/PolylineParams.d.ts.map +1 -1
  78. package/lib/esm/common/internal/render/PolylineParams.js +5 -8
  79. package/lib/esm/common/internal/render/PolylineParams.js.map +1 -1
  80. package/lib/esm/common/internal/render/VertexTableSplitter.d.ts.map +1 -1
  81. package/lib/esm/common/internal/render/VertexTableSplitter.js +9 -7
  82. package/lib/esm/common/internal/render/VertexTableSplitter.js.map +1 -1
  83. package/lib/esm/internal/render/webgl/EdgeGeometry.d.ts +8 -6
  84. package/lib/esm/internal/render/webgl/EdgeGeometry.d.ts.map +1 -1
  85. package/lib/esm/internal/render/webgl/EdgeGeometry.js +21 -7
  86. package/lib/esm/internal/render/webgl/EdgeGeometry.js.map +1 -1
  87. package/lib/esm/internal/render/webgl/IndexedEdgeGeometry.d.ts +6 -1
  88. package/lib/esm/internal/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  89. package/lib/esm/internal/render/webgl/IndexedEdgeGeometry.js +19 -4
  90. package/lib/esm/internal/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  91. package/lib/esm/internal/render/webgl/Mesh.d.ts +1 -1
  92. package/lib/esm/internal/render/webgl/Mesh.d.ts.map +1 -1
  93. package/lib/esm/internal/render/webgl/Mesh.js +14 -7
  94. package/lib/esm/internal/render/webgl/Mesh.js.map +1 -1
  95. package/lib/esm/internal/webgl.d.ts +1 -1
  96. package/lib/esm/internal/webgl.d.ts.map +1 -1
  97. package/lib/esm/internal/webgl.js.map +1 -1
  98. package/lib/esm/quantity-formatting/QuantityFormatter.js +0 -2
  99. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  100. package/lib/esm/render/MeshArgs.d.ts +8 -3
  101. package/lib/esm/render/MeshArgs.d.ts.map +1 -1
  102. package/lib/esm/render/MeshArgs.js.map +1 -1
  103. package/lib/esm/tile/GltfReader.d.ts +1 -0
  104. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  105. package/lib/esm/tile/GltfReader.js +69 -1
  106. package/lib/esm/tile/GltfReader.js.map +1 -1
  107. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  108. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  109. package/package.json +20 -20
@@ -1 +1 @@
1
- {"version":3,"file":"IndexedEdgeGeometry.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/IndexedEdgeGeometry.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert, dispose } from \"@itwin/core-bentley\";\nimport { RenderMode } from \"@itwin/core-common\";\nimport { RenderMemory } from \"../../../render/RenderMemory\";\nimport { TextureHandle } from \"./Texture\";\nimport { BufferHandle, BufferParameters, BuffersContainer } from \"./AttributeBuffers\";\nimport { WebGLDisposable } from \"./Disposable\";\nimport { MeshData } from \"./MeshData\";\nimport { MeshGeometry } from \"./MeshGeometry\";\nimport { AttributeMap } from \"./AttributeMap\";\nimport { TechniqueId } from \"./TechniqueId\";\nimport { GL } from \"./GL\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { ShaderProgramParams } from \"./DrawCommand\";\nimport { RenderOrder } from \"./RenderFlags\";\nimport { EdgeTable, IndexedEdgeParams } from \"../../../common/internal/render/EdgeParams\";\n\n/** @see [[EdgeTable]]\n * @internal\n */\nexport class EdgeLUT implements WebGLDisposable {\n public readonly texture: TextureHandle;\n public readonly numSegments: number;\n public readonly silhouettePadding: number;\n\n private constructor(texture: TextureHandle, numSegments: number, silhouettePadding: number) {\n this.texture = texture;\n this.numSegments = numSegments;\n this.silhouettePadding = silhouettePadding;\n }\n\n public [Symbol.dispose](): void {\n dispose(this.texture);\n }\n\n public static create(table: EdgeTable): EdgeLUT | undefined {\n const texture = TextureHandle.createForData(table.width, table.height, table.data);\n return texture ? new EdgeLUT(texture, table.numSegments, table.silhouettePadding) : undefined;\n }\n\n public get bytesUsed(): number {\n return this.texture.bytesUsed;\n }\n\n public get isDisposed(): boolean {\n return this.texture.isDisposed;\n }\n}\n\n/** @see [[IndexedEdgeParams]]\n * @internal\n */\nexport class IndexedEdgeGeometry extends MeshGeometry {\n private readonly _buffers: BuffersContainer;\n private readonly _indices: BufferHandle;\n public readonly edgeLut: EdgeLUT;\n\n public get lutBuffers() { return this._buffers; }\n public override get asIndexedEdge() { return this; }\n\n private constructor(mesh: MeshData, indices: BufferHandle, numIndices: number, lut: EdgeLUT) {\n super(mesh, numIndices);\n this.edgeLut = lut;\n this._buffers = BuffersContainer.create();\n const attrPos = AttributeMap.findAttribute(\"a_pos\", TechniqueId.IndexedEdge, false);\n assert(undefined !== attrPos);\n this._buffers.addBuffer(indices, [BufferParameters.create(attrPos.location, 3, GL.DataType.UnsignedByte, false, 0, 0, false)]);\n this._indices = indices;\n }\n\n public [Symbol.dispose](): void {\n dispose(this._buffers);\n dispose(this._indices);\n dispose(this.edgeLut);\n }\n\n public get isDisposed(): boolean {\n return this._buffers.isDisposed && this._indices.isDisposed && this.edgeLut.isDisposed;\n }\n\n public static create(mesh: MeshData, params: IndexedEdgeParams): IndexedEdgeGeometry | undefined {\n const indexBuffer = BufferHandle.createArrayBuffer(params.indices.data);\n const lut = EdgeLUT.create(params.edges);\n return indexBuffer && lut ? new IndexedEdgeGeometry(mesh, indexBuffer, params.indices.length, lut) : undefined;\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n stats.addIndexedEdges(this._indices.bytesUsed);\n stats.addEdgeTable(this.edgeLut.bytesUsed);\n }\n\n protected _draw(numInstances: number, instances?: BuffersContainer): void {\n const bufs = instances ?? this._buffers;\n bufs.bind();\n System.instance.drawArrays(GL.PrimitiveType.Triangles, 0, this._numIndices, numInstances);\n bufs.unbind();\n }\n\n protected _wantWoWReversal(): boolean { return true; }\n protected override _getLineCode(params: ShaderProgramParams): number { return this.computeEdgeLineCode(params); }\n\n public get techniqueId() { return TechniqueId.IndexedEdge; }\n public override getPass(target: Target) { return this.computeEdgePass(target); }\n public get renderOrder() { return this.isPlanar ? RenderOrder.PlanarEdge : RenderOrder.Edge; }\n public override getColor(target: Target) { return this.computeEdgeColor(target); }\n public override wantMonochrome(target: Target) { return target.currentViewFlags.renderMode === RenderMode.Wireframe; }\n}\n"]}
1
+ {"version":3,"file":"IndexedEdgeGeometry.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/IndexedEdgeGeometry.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert, dispose } from \"@itwin/core-bentley\";\nimport { EdgeAppearanceOverrides, RenderMode } from \"@itwin/core-common\";\nimport { RenderMemory } from \"../../../render/RenderMemory\";\nimport { TextureHandle } from \"./Texture\";\nimport { BufferHandle, BufferParameters, BuffersContainer } from \"./AttributeBuffers\";\nimport { WebGLDisposable } from \"./Disposable\";\nimport { MeshData } from \"./MeshData\";\nimport { MeshGeometry } from \"./MeshGeometry\";\nimport { AttributeMap } from \"./AttributeMap\";\nimport { TechniqueId } from \"./TechniqueId\";\nimport { GL } from \"./GL\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { ShaderProgramParams } from \"./DrawCommand\";\nimport { RenderOrder } from \"./RenderFlags\";\nimport { EdgeTable, IndexedEdgeParams } from \"../../../common/internal/render/EdgeParams\";\nimport { ColorInfo } from \"./ColorInfo\";\nimport { lineCodeFromLinePixels } from \"../../../common/internal/render/LineCode\";\n\n/** @see [[EdgeTable]]\n * @internal\n */\nexport class EdgeLUT implements WebGLDisposable {\n public readonly texture: TextureHandle;\n public readonly numSegments: number;\n public readonly silhouettePadding: number;\n\n private constructor(texture: TextureHandle, numSegments: number, silhouettePadding: number) {\n this.texture = texture;\n this.numSegments = numSegments;\n this.silhouettePadding = silhouettePadding;\n }\n\n public [Symbol.dispose](): void {\n dispose(this.texture);\n }\n\n public static create(table: EdgeTable): EdgeLUT | undefined {\n const texture = TextureHandle.createForData(table.width, table.height, table.data);\n return texture ? new EdgeLUT(texture, table.numSegments, table.silhouettePadding) : undefined;\n }\n\n public get bytesUsed(): number {\n return this.texture.bytesUsed;\n }\n\n public get isDisposed(): boolean {\n return this.texture.isDisposed;\n }\n}\n\n/** @see [[IndexedEdgeParams]]\n * @internal\n */\nexport class IndexedEdgeGeometry extends MeshGeometry {\n private readonly _buffers: BuffersContainer;\n private readonly _indices: BufferHandle;\n private readonly _colorInfo: ColorInfo;\n private readonly _width: number;\n private readonly _lineCode: number;\n public readonly edgeLut: EdgeLUT;\n\n public get lutBuffers() { return this._buffers; }\n public override get asIndexedEdge() { return this; }\n\n private constructor(mesh: MeshData, indices: BufferHandle, numIndices: number, lut: EdgeLUT, appearance: EdgeAppearanceOverrides | undefined) {\n super(mesh, numIndices);\n this.edgeLut = lut;\n this._buffers = BuffersContainer.create();\n const attrPos = AttributeMap.findAttribute(\"a_pos\", TechniqueId.IndexedEdge, false);\n assert(undefined !== attrPos);\n this._buffers.addBuffer(indices, [BufferParameters.create(attrPos.location, 3, GL.DataType.UnsignedByte, false, 0, 0, false)]);\n this._indices = indices;\n\n this._colorInfo = appearance?.color ? ColorInfo.createFromColorDef(appearance.color) : mesh.lut.colorInfo;\n this._width = appearance?.width ?? mesh.edgeWidth;\n this._lineCode = appearance?.linePixels ? lineCodeFromLinePixels(appearance?.linePixels) : mesh.edgeLineCode;\n }\n\n public [Symbol.dispose](): void {\n dispose(this._buffers);\n dispose(this._indices);\n dispose(this.edgeLut);\n }\n\n public get isDisposed(): boolean {\n return this._buffers.isDisposed && this._indices.isDisposed && this.edgeLut.isDisposed;\n }\n\n public static create(mesh: MeshData, params: IndexedEdgeParams): IndexedEdgeGeometry | undefined {\n const indexBuffer = BufferHandle.createArrayBuffer(params.indices.data);\n const lut = EdgeLUT.create(params.edges);\n return indexBuffer && lut ? new IndexedEdgeGeometry(mesh, indexBuffer, params.indices.length, lut, params.appearance) : undefined;\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n stats.addIndexedEdges(this._indices.bytesUsed);\n stats.addEdgeTable(this.edgeLut.bytesUsed);\n }\n\n protected _draw(numInstances: number, instances?: BuffersContainer): void {\n const bufs = instances ?? this._buffers;\n bufs.bind();\n System.instance.drawArrays(GL.PrimitiveType.Triangles, 0, this._numIndices, numInstances);\n bufs.unbind();\n }\n\n protected _wantWoWReversal(): boolean { return true; }\n\n protected override _getLineCode(params: ShaderProgramParams): number {\n return params.target.computeEdgeLineCode(params.renderPass, this._lineCode);\n }\n\n protected override _getLineWeight(params: ShaderProgramParams): number {\n return params.target.computeEdgeWeight(params.renderPass, this._width);\n }\n\n public override getColor(target: Target) {\n return target.computeEdgeColor(this._colorInfo);\n }\n\n public get techniqueId() { return TechniqueId.IndexedEdge; }\n public override getPass(target: Target) { return this.computeEdgePass(target); }\n public get renderOrder() { return this.isPlanar ? RenderOrder.PlanarEdge : RenderOrder.Edge; }\n public override wantMonochrome(target: Target) { return target.currentViewFlags.renderMode === RenderMode.Wireframe; }\n}\n"]}
@@ -24,7 +24,7 @@ export declare class MeshRenderGeometry implements RenderGeometry {
24
24
  readonly surface?: SurfaceGeometry;
25
25
  readonly segmentEdges?: EdgeGeometry;
26
26
  readonly silhouetteEdges?: SilhouetteEdgeGeometry;
27
- readonly polylineEdges?: PolylineEdgeGeometry;
27
+ readonly polylineEdges?: PolylineEdgeGeometry[];
28
28
  readonly indexedEdges?: IndexedEdgeGeometry;
29
29
  readonly range: Range3d;
30
30
  private constructor();
@@ -1 +1 @@
1
- {"version":3,"file":"Mesh.d.ts","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/Mesh.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEzE,gBAAgB;AAChB,qBAAa,kBAAmB,YAAW,cAAc;IACvD,SAAgB,kBAAkB,EAAE,MAAM,CAAmB;IAC7D,SAAgB,cAAc,EAAE,OAAO,CAAC;IACjC,SAAS,UAAS;IACzB,SAAgB,IAAI,EAAE,QAAQ,CAAC;IAC/B,SAAgB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1C,SAAgB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5C,SAAgB,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzD,SAAgB,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrD,SAAgB,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnD,SAAgB,KAAK,EAAE,OAAO,CAAC;IAE/B,OAAO;WAsBO,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,GAAG,SAAS,GAAG,kBAAkB,GAAG,SAAS;IAK7G,CAAC,MAAM,CAAC,OAAO,CAAC;IAavB,IAAW,UAAU,YAOpB;IAEM,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU;IAShD,YAAY,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO;CAG5C;AAED,gBAAgB;AAChB,qBAAa,WAAY,SAAQ,OAAO;IACtC,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAmC;IAC/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IAErC,IAAW,UAAU,IAAI,SAAS,SAAS,EAAE,CAA6B;IAC1E,IAAW,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,CAA4B;WAEvD,MAAM,CAAC,QAAQ,EAAE,kBAAkB,EAAE,SAAS,CAAC,EAAE,eAAe,GAAG,cAAc,GAAG,WAAW,GAAG,SAAS;IAIzH,OAAO,CAAC,YAAY;IASpB,OAAO;IAaP,IAAW,UAAU,IAAI,OAAO,CAAsE;IACtG,IAAW,UAAU,YAAoB;IAElC,OAAO;IASP,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAM9C,UAAU,CAAC,KAAK,EAAE,OAAO;IAOlC,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAC9B,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAE/E,IAAW,WAAW,IAAI,WAAW,CAA+B;CACrE"}
1
+ {"version":3,"file":"Mesh.d.ts","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/Mesh.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEzE,gBAAgB;AAChB,qBAAa,kBAAmB,YAAW,cAAc;IACvD,SAAgB,kBAAkB,EAAE,MAAM,CAAmB;IAC7D,SAAgB,cAAc,EAAE,OAAO,CAAC;IACjC,SAAS,UAAS;IACzB,SAAgB,IAAI,EAAE,QAAQ,CAAC;IAC/B,SAAgB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1C,SAAgB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5C,SAAgB,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzD,SAAgB,aAAa,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACvD,SAAgB,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnD,SAAgB,KAAK,EAAE,OAAO,CAAC;IAE/B,OAAO;WA6BO,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,GAAG,SAAS,GAAG,kBAAkB,GAAG,SAAS;IAK7G,CAAC,MAAM,CAAC,OAAO,CAAC;IAavB,IAAW,UAAU,YAOpB;IAEM,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU;IAShD,YAAY,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO;CAG5C;AAED,gBAAgB;AAChB,qBAAa,WAAY,SAAQ,OAAO;IACtC,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAmC;IAC/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IAErC,IAAW,UAAU,IAAI,SAAS,SAAS,EAAE,CAA6B;IAC1E,IAAW,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,CAA4B;WAEvD,MAAM,CAAC,QAAQ,EAAE,kBAAkB,EAAE,SAAS,CAAC,EAAE,eAAe,GAAG,cAAc,GAAG,WAAW,GAAG,SAAS;IAIzH,OAAO,CAAC,YAAY;IASpB,OAAO;IAaP,IAAW,UAAU,IAAI,OAAO,CAAsE;IACtG,IAAW,UAAU,YAAoB;IAElC,OAAO;IASP,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAM9C,UAAU,CAAC,KAAK,EAAE,OAAO;IAOlC,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAC9B,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAE/E,IAAW,WAAW,IAAI,WAAW,CAA+B;CACrE"}
@@ -5,7 +5,7 @@
5
5
  /** @packageDocumentation
6
6
  * @module WebGL
7
7
  */
8
- import { dispose } from "@itwin/core-bentley";
8
+ import { dispose, disposeArray } from "@itwin/core-bentley";
9
9
  import { SurfaceType } from "../../../common/internal/render/SurfaceParams";
10
10
  import { Graphic } from "./Graphic";
11
11
  import { Primitive } from "./Primitive";
@@ -37,8 +37,15 @@ export class MeshRenderGeometry {
37
37
  this.silhouetteEdges = SilhouetteEdgeGeometry.createSilhouettes(data, edges.silhouettes);
38
38
  if (edges.segments)
39
39
  this.segmentEdges = EdgeGeometry.create(data, edges.segments);
40
- if (edges.polylines)
41
- this.polylineEdges = PolylineEdgeGeometry.create(data, edges.polylines);
40
+ if (edges.polylineGroups) {
41
+ this.polylineEdges = [];
42
+ for (const group of edges.polylineGroups) {
43
+ const polyline = PolylineEdgeGeometry.create(data, group);
44
+ if (polyline) {
45
+ this.polylineEdges.push(polyline);
46
+ }
47
+ }
48
+ }
42
49
  if (edges.indexed)
43
50
  this.indexedEdges = IndexedEdgeGeometry.create(data, edges.indexed);
44
51
  }
@@ -54,7 +61,7 @@ export class MeshRenderGeometry {
54
61
  dispose(this.surface);
55
62
  dispose(this.segmentEdges);
56
63
  dispose(this.silhouetteEdges);
57
- dispose(this.polylineEdges);
64
+ disposeArray(this.polylineEdges);
58
65
  dispose(this.indexedEdges);
59
66
  }
60
67
  get isDisposed() {
@@ -62,7 +69,7 @@ export class MeshRenderGeometry {
62
69
  (!this.surface || this.surface.isDisposed) &&
63
70
  (!this.segmentEdges || this.segmentEdges.isDisposed) &&
64
71
  (!this.silhouetteEdges || this.silhouetteEdges.isDisposed) &&
65
- (!this.polylineEdges || this.polylineEdges.isDisposed) &&
72
+ (!this.polylineEdges || this.polylineEdges.every((x) => x.isDisposed)) &&
66
73
  (!this.indexedEdges || this.indexedEdges.isDisposed);
67
74
  }
68
75
  collectStatistics(stats) {
@@ -70,7 +77,7 @@ export class MeshRenderGeometry {
70
77
  this.surface?.collectStatistics(stats);
71
78
  this.segmentEdges?.collectStatistics(stats);
72
79
  this.silhouetteEdges?.collectStatistics(stats);
73
- this.polylineEdges?.collectStatistics(stats);
80
+ this.polylineEdges?.forEach((x) => x.collectStatistics(stats));
74
81
  this.indexedEdges?.collectStatistics(stats);
75
82
  }
76
83
  computeRange(out) {
@@ -103,8 +110,8 @@ export class MeshGraphic extends Graphic {
103
110
  this.addPrimitive(geometry.surface);
104
111
  this.addPrimitive(geometry.segmentEdges);
105
112
  this.addPrimitive(geometry.silhouetteEdges);
106
- this.addPrimitive(geometry.polylineEdges);
107
113
  this.addPrimitive(geometry.indexedEdges);
114
+ geometry.polylineEdges?.forEach((x) => this.addPrimitive(x));
108
115
  }
109
116
  get isDisposed() { return this.meshData.isDisposed && 0 === this._primitives.length; }
110
117
  get isPickable() { return false; }
@@ -1 +1 @@
1
- {"version":3,"file":"Mesh.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/Mesh.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { dispose } from \"@itwin/core-bentley\";\nimport { Point3d, Range3d } from \"@itwin/core-geometry\";\nimport { MeshParams } from \"../../../common/internal/render/MeshParams\";\nimport { SurfaceType } from \"../../../common/internal/render/SurfaceParams\";\nimport { RenderMemory } from \"../../../render/RenderMemory\";\nimport { CachedGeometry } from \"./CachedGeometry\";\nimport { Graphic } from \"./Graphic\";\nimport { InstanceBuffers, PatternBuffers } from \"./InstancedGeometry\";\nimport { Primitive } from \"./Primitive\";\nimport { RenderCommands } from \"./RenderCommands\";\nimport { RenderPass } from \"./RenderFlags\";\nimport { EdgeGeometry, PolylineEdgeGeometry, SilhouetteEdgeGeometry } from \"./EdgeGeometry\";\nimport { IndexedEdgeGeometry } from \"./IndexedEdgeGeometry\";\nimport { SurfaceGeometry } from \"./SurfaceGeometry\";\nimport { MeshData } from \"./MeshData\";\nimport { RenderGeometry } from \"../../../internal/render/RenderGeometry\";\n\n/** @internal */\nexport class MeshRenderGeometry implements RenderGeometry {\n public readonly renderGeometryType: \"mesh\" = \"mesh\" as const;\n public readonly isInstanceable: boolean;\n public noDispose = false;\n public readonly data: MeshData;\n public readonly surface?: SurfaceGeometry;\n public readonly segmentEdges?: EdgeGeometry;\n public readonly silhouetteEdges?: SilhouetteEdgeGeometry;\n public readonly polylineEdges?: PolylineEdgeGeometry;\n public readonly indexedEdges?: IndexedEdgeGeometry;\n public readonly range: Range3d;\n\n private constructor(data: MeshData, params: MeshParams) {\n this.data = data;\n this.isInstanceable = data.viewIndependentOrigin === undefined;\n this.range = params.vertices.qparams.computeRange();\n this.surface = SurfaceGeometry.create(data, params);\n const edges = params.edges;\n if (!edges || data.type === SurfaceType.VolumeClassifier)\n return;\n\n if (edges.silhouettes)\n this.silhouetteEdges = SilhouetteEdgeGeometry.createSilhouettes(data, edges.silhouettes);\n\n if (edges.segments)\n this.segmentEdges = EdgeGeometry.create(data, edges.segments);\n\n if (edges.polylines)\n this.polylineEdges = PolylineEdgeGeometry.create(data, edges.polylines);\n\n if (edges.indexed)\n this.indexedEdges = IndexedEdgeGeometry.create(data, edges.indexed);\n }\n\n public static create(params: MeshParams, viewIndependentOrigin: Point3d | undefined): MeshRenderGeometry | undefined {\n const data = MeshData.create(params, viewIndependentOrigin);\n return data ? new this(data, params) : undefined;\n }\n\n public [Symbol.dispose]() {\n if (this.noDispose) {\n return;\n }\n\n dispose(this.data);\n dispose(this.surface);\n dispose(this.segmentEdges);\n dispose(this.silhouetteEdges);\n dispose(this.polylineEdges);\n dispose(this.indexedEdges);\n }\n\n public get isDisposed() {\n return this.data.isDisposed &&\n (!this.surface || this.surface.isDisposed) &&\n (!this.segmentEdges || this.segmentEdges.isDisposed) &&\n (!this.silhouetteEdges || this.silhouetteEdges.isDisposed) &&\n (!this.polylineEdges || this.polylineEdges.isDisposed) &&\n (!this.indexedEdges || this.indexedEdges.isDisposed);\n }\n\n public collectStatistics(stats: RenderMemory.Statistics) {\n this.data.collectStatistics(stats);\n this.surface?.collectStatistics(stats);\n this.segmentEdges?.collectStatistics(stats);\n this.silhouetteEdges?.collectStatistics(stats);\n this.polylineEdges?.collectStatistics(stats);\n this.indexedEdges?.collectStatistics(stats);\n }\n\n public computeRange(out?: Range3d): Range3d {\n return this.range.clone(out);\n }\n}\n\n/** @internal */\nexport class MeshGraphic extends Graphic {\n public readonly meshData: MeshData;\n private readonly _primitives: Primitive[] = [];\n private readonly _instances?: InstanceBuffers | PatternBuffers;\n private readonly _meshRange: Range3d;\n\n public get primitives(): readonly Primitive[] { return this._primitives; }\n public get meshRange(): Readonly<Range3d> { return this._meshRange; }\n\n public static create(geometry: MeshRenderGeometry, instances?: InstanceBuffers | PatternBuffers): MeshGraphic | undefined {\n return new MeshGraphic(geometry, instances);\n }\n\n private addPrimitive(geometry: CachedGeometry | undefined) {\n if (!geometry)\n return;\n\n const primitive = Primitive.createShared(geometry, this._instances);\n if (primitive)\n this._primitives.push(primitive);\n }\n\n private constructor(geometry: MeshRenderGeometry, instances?: InstanceBuffers | PatternBuffers) {\n super();\n this.meshData = geometry.data;\n this._meshRange = geometry.range;\n this._instances = instances;\n\n this.addPrimitive(geometry.surface);\n this.addPrimitive(geometry.segmentEdges);\n this.addPrimitive(geometry.silhouetteEdges);\n this.addPrimitive(geometry.polylineEdges);\n this.addPrimitive(geometry.indexedEdges);\n }\n\n public get isDisposed(): boolean { return this.meshData.isDisposed && 0 === this._primitives.length; }\n public get isPickable() { return false; }\n\n public dispose() {\n for (const primitive of this._primitives)\n dispose(primitive);\n\n dispose(this.meshData);\n dispose(this._instances);\n this._primitives.length = 0;\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n this.meshData.collectStatistics(stats);\n this._primitives.forEach((prim) => prim.collectStatistics(stats));\n this._instances?.collectStatistics(stats);\n }\n\n public override unionRange(range: Range3d) {\n if (this._instances)\n range.extendRange(this._instances.range);\n else\n range.extendRange(this._meshRange);\n }\n\n public addCommands(cmds: RenderCommands): void { this._primitives.forEach((prim) => prim.addCommands(cmds)); }\n public override addHiliteCommands(cmds: RenderCommands, pass: RenderPass): void { this._primitives.forEach((prim) => prim.addHiliteCommands(cmds, pass)); }\n\n public get surfaceType(): SurfaceType { return this.meshData.type; }\n}\n"]}
1
+ {"version":3,"file":"Mesh.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/Mesh.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { dispose, disposeArray } from \"@itwin/core-bentley\";\nimport { Point3d, Range3d } from \"@itwin/core-geometry\";\nimport { MeshParams } from \"../../../common/internal/render/MeshParams\";\nimport { SurfaceType } from \"../../../common/internal/render/SurfaceParams\";\nimport { RenderMemory } from \"../../../render/RenderMemory\";\nimport { CachedGeometry } from \"./CachedGeometry\";\nimport { Graphic } from \"./Graphic\";\nimport { InstanceBuffers, PatternBuffers } from \"./InstancedGeometry\";\nimport { Primitive } from \"./Primitive\";\nimport { RenderCommands } from \"./RenderCommands\";\nimport { RenderPass } from \"./RenderFlags\";\nimport { EdgeGeometry, PolylineEdgeGeometry, SilhouetteEdgeGeometry } from \"./EdgeGeometry\";\nimport { IndexedEdgeGeometry } from \"./IndexedEdgeGeometry\";\nimport { SurfaceGeometry } from \"./SurfaceGeometry\";\nimport { MeshData } from \"./MeshData\";\nimport { RenderGeometry } from \"../../../internal/render/RenderGeometry\";\n\n/** @internal */\nexport class MeshRenderGeometry implements RenderGeometry {\n public readonly renderGeometryType: \"mesh\" = \"mesh\" as const;\n public readonly isInstanceable: boolean;\n public noDispose = false;\n public readonly data: MeshData;\n public readonly surface?: SurfaceGeometry;\n public readonly segmentEdges?: EdgeGeometry;\n public readonly silhouetteEdges?: SilhouetteEdgeGeometry;\n public readonly polylineEdges?: PolylineEdgeGeometry[];\n public readonly indexedEdges?: IndexedEdgeGeometry;\n public readonly range: Range3d;\n\n private constructor(data: MeshData, params: MeshParams) {\n this.data = data;\n this.isInstanceable = data.viewIndependentOrigin === undefined;\n this.range = params.vertices.qparams.computeRange();\n this.surface = SurfaceGeometry.create(data, params);\n const edges = params.edges;\n if (!edges || data.type === SurfaceType.VolumeClassifier)\n return;\n\n if (edges.silhouettes)\n this.silhouetteEdges = SilhouetteEdgeGeometry.createSilhouettes(data, edges.silhouettes);\n\n if (edges.segments)\n this.segmentEdges = EdgeGeometry.create(data, edges.segments);\n\n if (edges.polylineGroups) {\n this.polylineEdges = [];\n for (const group of edges.polylineGroups) {\n const polyline = PolylineEdgeGeometry.create(data, group);\n if (polyline) {\n this.polylineEdges.push(polyline);\n }\n }\n }\n\n if (edges.indexed)\n this.indexedEdges = IndexedEdgeGeometry.create(data, edges.indexed);\n }\n\n public static create(params: MeshParams, viewIndependentOrigin: Point3d | undefined): MeshRenderGeometry | undefined {\n const data = MeshData.create(params, viewIndependentOrigin);\n return data ? new this(data, params) : undefined;\n }\n\n public [Symbol.dispose]() {\n if (this.noDispose) {\n return;\n }\n\n dispose(this.data);\n dispose(this.surface);\n dispose(this.segmentEdges);\n dispose(this.silhouetteEdges);\n disposeArray(this.polylineEdges);\n dispose(this.indexedEdges);\n }\n\n public get isDisposed() {\n return this.data.isDisposed &&\n (!this.surface || this.surface.isDisposed) &&\n (!this.segmentEdges || this.segmentEdges.isDisposed) &&\n (!this.silhouetteEdges || this.silhouetteEdges.isDisposed) &&\n (!this.polylineEdges || this.polylineEdges.every((x) => x.isDisposed)) &&\n (!this.indexedEdges || this.indexedEdges.isDisposed);\n }\n\n public collectStatistics(stats: RenderMemory.Statistics) {\n this.data.collectStatistics(stats);\n this.surface?.collectStatistics(stats);\n this.segmentEdges?.collectStatistics(stats);\n this.silhouetteEdges?.collectStatistics(stats);\n this.polylineEdges?.forEach((x) => x.collectStatistics(stats));\n this.indexedEdges?.collectStatistics(stats);\n }\n\n public computeRange(out?: Range3d): Range3d {\n return this.range.clone(out);\n }\n}\n\n/** @internal */\nexport class MeshGraphic extends Graphic {\n public readonly meshData: MeshData;\n private readonly _primitives: Primitive[] = [];\n private readonly _instances?: InstanceBuffers | PatternBuffers;\n private readonly _meshRange: Range3d;\n\n public get primitives(): readonly Primitive[] { return this._primitives; }\n public get meshRange(): Readonly<Range3d> { return this._meshRange; }\n\n public static create(geometry: MeshRenderGeometry, instances?: InstanceBuffers | PatternBuffers): MeshGraphic | undefined {\n return new MeshGraphic(geometry, instances);\n }\n\n private addPrimitive(geometry: CachedGeometry | undefined) {\n if (!geometry)\n return;\n\n const primitive = Primitive.createShared(geometry, this._instances);\n if (primitive)\n this._primitives.push(primitive);\n }\n\n private constructor(geometry: MeshRenderGeometry, instances?: InstanceBuffers | PatternBuffers) {\n super();\n this.meshData = geometry.data;\n this._meshRange = geometry.range;\n this._instances = instances;\n\n this.addPrimitive(geometry.surface);\n this.addPrimitive(geometry.segmentEdges);\n this.addPrimitive(geometry.silhouetteEdges);\n this.addPrimitive(geometry.indexedEdges);\n geometry.polylineEdges?.forEach((x) => this.addPrimitive(x));\n }\n\n public get isDisposed(): boolean { return this.meshData.isDisposed && 0 === this._primitives.length; }\n public get isPickable() { return false; }\n\n public dispose() {\n for (const primitive of this._primitives)\n dispose(primitive);\n\n dispose(this.meshData);\n dispose(this._instances);\n this._primitives.length = 0;\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n this.meshData.collectStatistics(stats);\n this._primitives.forEach((prim) => prim.collectStatistics(stats));\n this._instances?.collectStatistics(stats);\n }\n\n public override unionRange(range: Range3d) {\n if (this._instances)\n range.extendRange(this._instances.range);\n else\n range.extendRange(this._meshRange);\n }\n\n public addCommands(cmds: RenderCommands): void { this._primitives.forEach((prim) => prim.addCommands(cmds)); }\n public override addHiliteCommands(cmds: RenderCommands, pass: RenderPass): void { this._primitives.forEach((prim) => prim.addHiliteCommands(cmds, pass)); }\n\n public get surfaceType(): SurfaceType { return this.meshData.type; }\n}\n"]}
@@ -9,7 +9,7 @@ export { MeshGraphic } from "./render/webgl/Mesh";
9
9
  export { PolylineGeometry } from "./render/webgl/Polyline";
10
10
  export { RenderOrder } from "./render/webgl/RenderFlags";
11
11
  export { FrameBuffer } from "./render/webgl/FrameBuffer";
12
- export { ExternalTextureLoader, ExternalTextureRequest, Texture2DHandle, TextureHandle } from "./render/webgl/Texture";
12
+ export { ExternalTextureLoader, type ExternalTextureRequest, Texture2DHandle, TextureHandle } from "./render/webgl/Texture";
13
13
  export { FeatureOverrides } from "./render/webgl/FeatureOverrides";
14
14
  export { GL } from "./render/webgl/GL";
15
15
  //# sourceMappingURL=webgl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webgl.d.ts","sourceRoot":"","sources":["../../../src/internal/webgl.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/G,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"webgl.d.ts","sourceRoot":"","sources":["../../../src/internal/webgl.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/G,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,KAAK,sBAAsB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5H,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"webgl.js","sourceRoot":"","sources":["../../../src/internal/webgl.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,wEAAwE;AACxE,oGAAoG;AACpG,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/G,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAA0B,eAAe,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utils\n */\n\n// All of the following are exported strictly for core-full-stack-tests.\n// Most if not all of those tests really should be moved to core-frontend and these exports removed.\nexport { PerformanceMetrics } from \"./render/webgl/PerformanceMetrics\";\nexport { OffScreenTarget, OnScreenTarget, Target } from \"./render/webgl/Target\";\nexport { Batch, Branch, Graphic, GraphicOwner, GraphicsArray, WorldDecorations } from \"./render/webgl/Graphic\";\nexport { Primitive } from \"./render/webgl/Primitive\";\nexport { MeshGraphic } from \"./render/webgl/Mesh\";\nexport { PolylineGeometry } from \"./render/webgl/Polyline\";\nexport { RenderOrder } from \"./render/webgl/RenderFlags\";\nexport { FrameBuffer } from \"./render/webgl/FrameBuffer\";\nexport { ExternalTextureLoader, ExternalTextureRequest, Texture2DHandle, TextureHandle } from \"./render/webgl/Texture\";\nexport { FeatureOverrides } from \"./render/webgl/FeatureOverrides\";\nexport { GL } from \"./render/webgl/GL\";\n"]}
1
+ {"version":3,"file":"webgl.js","sourceRoot":"","sources":["../../../src/internal/webgl.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,wEAAwE;AACxE,oGAAoG;AACpG,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/G,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAA+B,eAAe,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5H,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utils\n */\n\n// All of the following are exported strictly for core-full-stack-tests.\n// Most if not all of those tests really should be moved to core-frontend and these exports removed.\nexport { PerformanceMetrics } from \"./render/webgl/PerformanceMetrics\";\nexport { OffScreenTarget, OnScreenTarget, Target } from \"./render/webgl/Target\";\nexport { Batch, Branch, Graphic, GraphicOwner, GraphicsArray, WorldDecorations } from \"./render/webgl/Graphic\";\nexport { Primitive } from \"./render/webgl/Primitive\";\nexport { MeshGraphic } from \"./render/webgl/Mesh\";\nexport { PolylineGeometry } from \"./render/webgl/Polyline\";\nexport { RenderOrder } from \"./render/webgl/RenderFlags\";\nexport { FrameBuffer } from \"./render/webgl/FrameBuffer\";\nexport { ExternalTextureLoader, type ExternalTextureRequest, Texture2DHandle, TextureHandle } from \"./render/webgl/Texture\";\nexport { FeatureOverrides } from \"./render/webgl/FeatureOverrides\";\nexport { GL } from \"./render/webgl/GL\";\n"]}
@@ -649,7 +649,6 @@ export class QuantityFormatter {
649
649
  requestedSystem = isImperial ? "imperial" : "metric";
650
650
  return this.getParserSpecByQuantityTypeAndSystem(type, requestedSystem);
651
651
  }
652
- // eslint-disable-next-line @typescript-eslint/promise-function-async
653
652
  formatQuantity(args, spec) {
654
653
  if (typeof args === "number") {
655
654
  /** Format a quantity value. Default FormatterSpec implementation uses Formatter.formatQuantity. */
@@ -672,7 +671,6 @@ export class QuantityFormatter {
672
671
  });
673
672
  return formatSpec.applyFormatting(value);
674
673
  }
675
- // eslint-disable-next-line @typescript-eslint/promise-function-async
676
674
  parseToQuantityValue(args, parserSpec) {
677
675
  if (typeof args === "string") {
678
676
  /** Parse a quantity value. Default ParserSpec implementation uses ParserSpec.parseToQuantityValue. */