@itwin/core-frontend 4.1.0-dev.63 → 4.1.0-dev.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -1
- package/lib/cjs/Viewport.js +1 -1
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/tile/GltfReader.d.ts +10 -1
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +64 -5
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.js +9 -4
- package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/tile/TileContent.d.ts +6 -0
- package/lib/cjs/tile/TileContent.d.ts.map +1 -1
- package/lib/cjs/tile/TileContent.js.map +1 -1
- package/lib/cjs/tile/internal.d.ts +1 -0
- package/lib/cjs/tile/internal.d.ts.map +1 -1
- package/lib/cjs/tile/internal.js +1 -0
- package/lib/cjs/tile/internal.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGisAttributeDrivenSymbology.d.ts +11 -0
- package/lib/cjs/tile/map/ImageryProviders/ArcGisAttributeDrivenSymbology.d.ts.map +1 -0
- package/lib/cjs/tile/map/ImageryProviders/ArcGisAttributeDrivenSymbology.js +10 -0
- package/lib/cjs/tile/map/ImageryProviders/ArcGisAttributeDrivenSymbology.js.map +1 -0
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryRenderer.d.ts +3 -0
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryRenderer.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryRenderer.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGraphicsRenderer.d.ts +2 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGraphicsRenderer.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGraphicsRenderer.js +1 -0
- package/lib/cjs/tile/map/ImageryProviders/ArcGisGraphicsRenderer.js.map +1 -1
- package/lib/esm/Viewport.js +1 -1
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/tile/GltfReader.d.ts +10 -1
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +65 -6
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileLoader.js +9 -4
- package/lib/esm/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/tile/TileContent.d.ts +6 -0
- package/lib/esm/tile/TileContent.d.ts.map +1 -1
- package/lib/esm/tile/TileContent.js.map +1 -1
- package/lib/esm/tile/internal.d.ts +1 -0
- package/lib/esm/tile/internal.d.ts.map +1 -1
- package/lib/esm/tile/internal.js +1 -0
- package/lib/esm/tile/internal.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGisAttributeDrivenSymbology.d.ts +11 -0
- package/lib/esm/tile/map/ImageryProviders/ArcGisAttributeDrivenSymbology.d.ts.map +1 -0
- package/lib/esm/tile/map/ImageryProviders/ArcGisAttributeDrivenSymbology.js +9 -0
- package/lib/esm/tile/map/ImageryProviders/ArcGisAttributeDrivenSymbology.js.map +1 -0
- package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryRenderer.d.ts +3 -0
- package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryRenderer.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryRenderer.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGisGraphicsRenderer.d.ts +2 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGisGraphicsRenderer.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGisGraphicsRenderer.js +1 -0
- package/lib/esm/tile/map/ImageryProviders/ArcGisGraphicsRenderer.js.map +1 -1
- package/package.json +18 -18
|
@@ -11,6 +11,7 @@ import { RenderGraphic } from "../render/RenderGraphic";
|
|
|
11
11
|
import { RenderSystem } from "../render/RenderSystem";
|
|
12
12
|
import { RealityTileGeometry, TileContent } from "./internal";
|
|
13
13
|
import { DisplayParams } from "../common/render/primitives/DisplayParams";
|
|
14
|
+
import { PointCloudArgs } from "../render/primitives/PointCloudPrimitive";
|
|
14
15
|
import { TextureImageSource } from "../common/render/TextureParams";
|
|
15
16
|
import { GltfAccessor, GltfBuffer, GltfBufferViewProps, GltfDataType, GltfDictionary, GltfDocument, GltfId, GltfImage, GltfMaterial, GltfMesh, GltfMeshPrimitive, GltfNode, GltfSampler, GltfScene, GltfTexture, GltfWrapMode } from "../common/gltf/GltfSchema";
|
|
16
17
|
/** @internal */
|
|
@@ -88,8 +89,14 @@ export declare class GltfMeshData {
|
|
|
88
89
|
uvs?: Uint16Array;
|
|
89
90
|
uvRange?: Range2d;
|
|
90
91
|
indices?: Uint8Array | Uint16Array | Uint32Array;
|
|
92
|
+
readonly type: "mesh";
|
|
91
93
|
constructor(props: Mesh);
|
|
92
94
|
}
|
|
95
|
+
interface GltfPointCloud extends PointCloudArgs {
|
|
96
|
+
readonly type: "pointcloud";
|
|
97
|
+
pointRange: Range3d;
|
|
98
|
+
}
|
|
99
|
+
type GltfPrimitiveData = GltfMeshData | GltfPointCloud;
|
|
93
100
|
/** A function that returns true if deserialization of the data supplied by the reader should abort.
|
|
94
101
|
* @internal
|
|
95
102
|
*/
|
|
@@ -141,6 +148,7 @@ export declare abstract class GltfReader {
|
|
|
141
148
|
protected _computedContentRange?: ElementAlignedBox3d;
|
|
142
149
|
private readonly _resolvedTextures;
|
|
143
150
|
private readonly _dracoMeshes;
|
|
151
|
+
private _containsPointCloud;
|
|
144
152
|
protected get _nodes(): GltfDictionary<GltfNode>;
|
|
145
153
|
protected get _meshes(): GltfDictionary<GltfMesh>;
|
|
146
154
|
protected get _accessors(): GltfDictionary<GltfAccessor>;
|
|
@@ -200,7 +208,8 @@ export declare abstract class GltfReader {
|
|
|
200
208
|
private isMaterialTransparent;
|
|
201
209
|
protected createDisplayParams(material: GltfMaterial, hasBakedLighting: boolean): DisplayParams | undefined;
|
|
202
210
|
private readMeshPrimitives;
|
|
203
|
-
protected readMeshPrimitive(primitive: GltfMeshPrimitive, featureTable?: FeatureTable, pseudoRtcBias?: Vector3d):
|
|
211
|
+
protected readMeshPrimitive(primitive: GltfMeshPrimitive, featureTable?: FeatureTable, pseudoRtcBias?: Vector3d): GltfPrimitiveData | undefined;
|
|
212
|
+
private readPointCloud;
|
|
204
213
|
private readDracoMeshPrimitive;
|
|
205
214
|
private deduplicateVertices;
|
|
206
215
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GltfReader.d.ts","sourceRoot":"","sources":["../../../src/tile/GltfReader.ts"],"names":[],"mappings":"AAIA;;GAEG;AAKH,OAAO,EACsC,OAAO,EAAqB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAC7G,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,gBAAgB,EAAE,SAAS,EAAY,mBAAmB,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"GltfReader.d.ts","sourceRoot":"","sources":["../../../src/tile/GltfReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -209,6 +209,7 @@ exports.GltfReaderProps = GltfReaderProps;
|
|
|
209
209
|
*/
|
|
210
210
|
class GltfMeshData {
|
|
211
211
|
constructor(props) {
|
|
212
|
+
this.type = "mesh";
|
|
212
213
|
this.primitive = props;
|
|
213
214
|
}
|
|
214
215
|
}
|
|
@@ -375,6 +376,7 @@ class GltfReader {
|
|
|
375
376
|
contentRange,
|
|
376
377
|
range,
|
|
377
378
|
graphic: renderGraphic,
|
|
379
|
+
containsPointCloud: this._containsPointCloud,
|
|
378
380
|
};
|
|
379
381
|
}
|
|
380
382
|
readGltfAndCreateGeometry(transformToRoot, needNormals = false, needParams = false) {
|
|
@@ -388,6 +390,8 @@ class GltfReader {
|
|
|
388
390
|
return { polyfaces };
|
|
389
391
|
}
|
|
390
392
|
graphicFromMeshData(gltfMesh, instances) {
|
|
393
|
+
if ("pointcloud" === gltfMesh.type)
|
|
394
|
+
return this._system.createPointCloud(gltfMesh, this._iModel);
|
|
391
395
|
if (!gltfMesh.points || !gltfMesh.pointRange)
|
|
392
396
|
return gltfMesh.primitive.getGraphics(this._system, instances);
|
|
393
397
|
const realityMeshPrimitive = (this._vertexTableRequired || instances) ? undefined : RealityMeshParams_1.RealityMeshParams.fromGltfMesh(gltfMesh);
|
|
@@ -474,9 +478,11 @@ class GltfReader {
|
|
|
474
478
|
transformStack.push(node);
|
|
475
479
|
const meshes = this.readMeshPrimitives(node);
|
|
476
480
|
for (const mesh of meshes) {
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
481
|
+
if (mesh.type === "mesh") {
|
|
482
|
+
const polyface = this.polyfaceFromGltfMesh(mesh, transformStack.transform, needNormals, needParams);
|
|
483
|
+
if (polyface)
|
|
484
|
+
polyfaces.push(polyface);
|
|
485
|
+
}
|
|
480
486
|
}
|
|
481
487
|
if (node.children) {
|
|
482
488
|
for (const childId of node.children) {
|
|
@@ -550,6 +556,9 @@ class GltfReader {
|
|
|
550
556
|
}
|
|
551
557
|
let componentCount = 1;
|
|
552
558
|
switch (accessor.type) {
|
|
559
|
+
case "VEC4":
|
|
560
|
+
componentCount = 4;
|
|
561
|
+
break;
|
|
553
562
|
case "VEC3":
|
|
554
563
|
componentCount = 3;
|
|
555
564
|
break;
|
|
@@ -576,6 +585,7 @@ class GltfReader {
|
|
|
576
585
|
constructor(args) {
|
|
577
586
|
this._resolvedTextures = new core_bentley_1.Dictionary((lhs, rhs) => compareTextureKeys(lhs, rhs));
|
|
578
587
|
this._dracoMeshes = new Map();
|
|
588
|
+
this._containsPointCloud = false;
|
|
579
589
|
/** The glTF spec says that if GltfSampler.wrapS/T are omitted, they default to Repeat.
|
|
580
590
|
* However, the reality data service serves tiles that lack any wrapS/T property, and we want those clamped to edge, not repeated.
|
|
581
591
|
* (We also don't want to produce mip-maps for them, which is determined indirectly from the wrap mode).
|
|
@@ -709,6 +719,12 @@ class GltfReader {
|
|
|
709
719
|
return meshes;
|
|
710
720
|
}
|
|
711
721
|
readMeshPrimitive(primitive, featureTable, pseudoRtcBias) {
|
|
722
|
+
const meshMode = core_bentley_1.JsonUtils.asInt(primitive.mode, GltfSchema_1.GltfMeshMode.Triangles);
|
|
723
|
+
if (meshMode === GltfSchema_1.GltfMeshMode.Points /* && !this._vertexTableRequired */) {
|
|
724
|
+
const pointCloud = this.readPointCloud(primitive, undefined !== featureTable);
|
|
725
|
+
if (pointCloud)
|
|
726
|
+
return pointCloud;
|
|
727
|
+
}
|
|
712
728
|
const materialName = core_bentley_1.JsonUtils.asString(primitive.material);
|
|
713
729
|
const material = 0 < materialName.length ? this._materials[materialName] : {};
|
|
714
730
|
if (!material)
|
|
@@ -718,7 +734,6 @@ class GltfReader {
|
|
|
718
734
|
if (!displayParams)
|
|
719
735
|
return undefined;
|
|
720
736
|
let primitiveType = -1;
|
|
721
|
-
const meshMode = core_bentley_1.JsonUtils.asInt(primitive.mode, GltfSchema_1.GltfMeshMode.Triangles);
|
|
722
737
|
switch (meshMode) {
|
|
723
738
|
case GltfSchema_1.GltfMeshMode.Lines:
|
|
724
739
|
primitiveType = MeshPrimitive_1.MeshPrimitiveType.Polyline;
|
|
@@ -730,7 +745,6 @@ class GltfReader {
|
|
|
730
745
|
primitiveType = MeshPrimitive_1.MeshPrimitiveType.Mesh;
|
|
731
746
|
break;
|
|
732
747
|
default:
|
|
733
|
-
(0, core_bentley_1.assert)(false);
|
|
734
748
|
return undefined;
|
|
735
749
|
}
|
|
736
750
|
const isVolumeClassifier = this._isVolumeClassifier;
|
|
@@ -825,6 +839,51 @@ class GltfReader {
|
|
|
825
839
|
}
|
|
826
840
|
return mesh;
|
|
827
841
|
}
|
|
842
|
+
readPointCloud(primitive, hasFeatures) {
|
|
843
|
+
const posView = this.getBufferView(primitive.attributes, "POSITION");
|
|
844
|
+
if (!posView || GltfSchema_1.GltfDataType.Float !== posView.type)
|
|
845
|
+
return undefined;
|
|
846
|
+
const posData = posView.toBufferData(GltfSchema_1.GltfDataType.Float);
|
|
847
|
+
if (!(posData?.buffer instanceof Float32Array))
|
|
848
|
+
return undefined;
|
|
849
|
+
const colorView = this.getBufferView(primitive.attributes, "COLOR_0");
|
|
850
|
+
if (!colorView || GltfSchema_1.GltfDataType.UnsignedByte !== colorView.type)
|
|
851
|
+
return undefined;
|
|
852
|
+
const colorData = colorView.toBufferData(GltfSchema_1.GltfDataType.UnsignedByte);
|
|
853
|
+
if (!(colorData?.buffer instanceof Uint8Array))
|
|
854
|
+
return undefined;
|
|
855
|
+
const strideSkip = posView.stride - 3;
|
|
856
|
+
const pointRange = new core_geometry_1.Range3d();
|
|
857
|
+
for (let i = 0; i < posData.buffer.length; i += strideSkip)
|
|
858
|
+
pointRange.extendXYZ(posData.buffer[i++], posData.buffer[i++], posData.buffer[i++]);
|
|
859
|
+
let colors = colorData.buffer;
|
|
860
|
+
if ("VEC4" === colorView.accessor.type) {
|
|
861
|
+
// ###TODO support transparent point clouds
|
|
862
|
+
colors = new Uint8Array(colorData.count * 3);
|
|
863
|
+
for (let i = 0; i < colorData.count; i++) {
|
|
864
|
+
const srcIdx = colorView.stride * i;
|
|
865
|
+
const dstIdx = 3 * i;
|
|
866
|
+
for (let j = 0; j < 3; j++)
|
|
867
|
+
colors[dstIdx + j] = colorData.buffer[srcIdx + j];
|
|
868
|
+
}
|
|
869
|
+
}
|
|
870
|
+
const features = new core_common_1.FeatureIndex();
|
|
871
|
+
if (hasFeatures)
|
|
872
|
+
features.type = core_common_1.FeatureIndexType.Uniform;
|
|
873
|
+
this._containsPointCloud = true;
|
|
874
|
+
return {
|
|
875
|
+
type: "pointcloud",
|
|
876
|
+
positions: posData.buffer,
|
|
877
|
+
qparams: core_common_1.QParams3d.fromOriginAndScale(new core_geometry_1.Point3d(0, 0, 0), new core_geometry_1.Point3d(1, 1, 1)),
|
|
878
|
+
pointRange,
|
|
879
|
+
colors,
|
|
880
|
+
colorFormat: "rgb",
|
|
881
|
+
features,
|
|
882
|
+
// ###TODO: If tile does not use additive refinement, compute voxelSize based on point range.
|
|
883
|
+
// Additive refinement is typical of the glTF point clouds we receive from Orbit.
|
|
884
|
+
voxelSize: 0,
|
|
885
|
+
};
|
|
886
|
+
}
|
|
828
887
|
readDracoMeshPrimitive(mesh, ext) {
|
|
829
888
|
const draco = this._dracoMeshes.get(ext);
|
|
830
889
|
if (!draco || "triangle-list" !== draco.topology)
|