@pilotdev/pilot-bim-dataprovider 25.6.0 → 25.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/src/file-system/IFileSystem.d.ts +3 -0
- package/lib/src/file-system/IFileSystem.js +50 -7
- package/lib/src/file-system/IFileSystem.js.map +1 -1
- package/lib/src/file-system/IFileSystemCache.d.ts +1 -1
- package/lib/src/file-system/IFileSystemCache.js +4 -1
- package/lib/src/file-system/IFileSystemCache.js.map +1 -1
- package/lib/src/file-system/OPFS.d.ts +2 -2
- package/lib/src/file-system/OPFS.js.map +1 -1
- package/lib/src/model/BimDataCloudPart.d.ts +2 -4
- package/lib/src/model/BimDataCloudPart.js +2 -6
- package/lib/src/model/BimDataCloudPart.js.map +1 -1
- package/lib/src/model/BimDataElement.d.ts +13 -2
- package/lib/src/model/BimDataElement.js.map +1 -1
- package/lib/src/model/BimDataIfcRepresentationStatus.d.ts +10 -0
- package/lib/src/model/BimDataIfcRepresentationStatus.js +12 -0
- package/lib/src/model/BimDataIfcRepresentationStatus.js.map +1 -0
- package/lib/src/model/BimDataModelPart.d.ts +5 -3
- package/lib/src/model/BimDataModelPart.js +22 -2
- package/lib/src/model/BimDataModelPart.js.map +1 -1
- package/lib/src/model/BimDataPart.d.ts +7 -2
- package/lib/src/model/BimDataPart.js +47 -3
- package/lib/src/model/BimDataPart.js.map +1 -1
- package/lib/src/model/BimDataProvider.js +7 -1
- package/lib/src/model/BimDataProvider.js.map +1 -1
- package/lib/src/model/BimDataTessellation.d.ts +5 -0
- package/lib/src/model/BimDataTessellation.js +6 -0
- package/lib/src/model/BimDataTessellation.js.map +1 -1
- package/lib/src/model/FileAccessDispatcher.d.ts +14 -0
- package/lib/src/model/FileAccessDispatcher.js +151 -0
- package/lib/src/model/FileAccessDispatcher.js.map +1 -0
- package/lib/src/utils/ViewerTools.d.ts +21 -2
- package/lib/src/utils/ViewerTools.js +111 -3
- package/lib/src/utils/ViewerTools.js.map +1 -1
- package/lib/src/utils/WasmTools.js +1 -1
- package/lib/src/utils/WasmTools.js.map +1 -1
- package/lib/src/wasm/{BimCloudPartAccessor.d.ts → DataAccessors/BimCloudPartAccessor.d.ts} +6 -5
- package/lib/src/wasm/DataAccessors/BimCloudPartAccessor.js +60 -0
- package/lib/src/wasm/DataAccessors/BimCloudPartAccessor.js.map +1 -0
- package/lib/src/wasm/{BimDataModelPartAccessor.d.ts → DataAccessors/BimDataModelPartAccessor.d.ts} +4 -3
- package/lib/src/wasm/{BimDataModelPartAccessor.js → DataAccessors/BimDataModelPartAccessor.js} +6 -2
- package/lib/src/wasm/DataAccessors/BimDataModelPartAccessor.js.map +1 -0
- package/lib/src/wasm/{BimDataPartAccessor.d.ts → DataAccessors/BimDataPartAccessor.d.ts} +1 -1
- package/lib/src/wasm/{BimDataPartAccessor.js → DataAccessors/BimDataPartAccessor.js} +1 -1
- package/lib/src/wasm/DataAccessors/BimDataPartAccessor.js.map +1 -0
- package/lib/src/wasm/DataAccessors/BinaryCloudReader.d.ts +16 -0
- package/lib/src/wasm/DataAccessors/BinaryCloudReader.js +268 -0
- package/lib/src/wasm/DataAccessors/BinaryCloudReader.js.map +1 -0
- package/lib/src/wasm/DataAccessors/ICloudReader.d.ts +10 -0
- package/lib/src/wasm/DataAccessors/ICloudReader.js +2 -0
- package/lib/src/wasm/DataAccessors/ICloudReader.js.map +1 -0
- package/lib/src/wasm/DataAccessors/WasmCloudReader.d.ts +16 -0
- package/lib/src/wasm/{BimCloudPartAccessor.js → DataAccessors/WasmCloudReader.js} +21 -23
- package/lib/src/wasm/DataAccessors/WasmCloudReader.js.map +1 -0
- package/lib/src/wasm/WasmWorker.d.ts +8 -6
- package/lib/src/wasm/WasmWorker.js +12 -9
- package/lib/src/wasm/WasmWorker.js.map +1 -1
- package/lib/src/wasm/WasmWorkerThreadSafeWrapper.d.ts +5 -4
- package/lib/src/wasm/WasmWorkerThreadSafeWrapper.js +8 -5
- package/lib/src/wasm/WasmWorkerThreadSafeWrapper.js.map +1 -1
- package/lib/src/wasm/pilot_bim_dataprovider.d.ts +19 -5
- package/lib/src/wasm/pilot_bim_dataprovider.wasm +0 -0
- package/lib/src/wasm/wasm.worker-node.cjs +1 -1
- package/lib/src/wasm/wasm.worker-web.cjs +1 -1
- package/package.json +1 -1
- package/lib/src/wasm/BimCloudPartAccessor.js.map +0 -1
- package/lib/src/wasm/BimDataModelPartAccessor.js.map +0 -1
- package/lib/src/wasm/BimDataPartAccessor.js.map +0 -1
- package/lib/src/wasm/index.d.ts +0 -0
- package/lib/src/wasm/index.js +0 -3
- package/lib/src/wasm/index.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BimCloudPartAccessor.js","sourceRoot":"","sources":["../../../../src/wasm/DataAccessors/BimCloudPartAccessor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAG3D,YAAY,EAAU,EAAE,MAAsB,EAAW,YAAkC,EAAW,aAAmC;QACvI,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QADqC,iBAAY,GAAZ,YAAY,CAAsB;QAAW,kBAAa,GAAb,aAAa,CAAsB;IAEzI,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,YAAY;YACnB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAE5B,IAAI,CAAC,IAAI,CAAC,YAAY;YACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEvC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAE9B,IAAI,IAAI,CAAC,aAAa;YACpB,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,cAAc,CAAC,KAAa,EAAE,MAAc,EAAE,KAAa;QACzD,IAAI,CAAC,IAAI,CAAC,YAAY;YACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,mBAAmB,CAAC,QAAkB,EAAE,QAAqD;QAC3F,IAAI,CAAC,IAAI,CAAC,YAAY;YACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAClF,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,YAAY;YACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;IAC/C,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,IAAI,CAAC,YAAY;YACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;IAC9C,CAAC;IAEQ,KAAK,CAAC,eAAe;QAC5B,IAAI,CAAC,IAAI,CAAC,YAAY;YACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;IACrC,CAAC;IAEO,SAAS;QACf,MAAM,YAAY,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhE,IAAI,YAAY,CAAC,OAAO,EAAE;YACxB,OAAO,YAAY,CAAC;aACjB,IAAI,UAAU,CAAC,OAAO,EAAE;YAC3B,OAAO,UAAU,CAAC;;YAElB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACtD,CAAC;CACF"}
|
package/lib/src/wasm/{BimDataModelPartAccessor.d.ts → DataAccessors/BimDataModelPartAccessor.d.ts}
RENAMED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { BimDataTessellation } from "
|
|
2
|
-
import { BimDataElement } from "
|
|
3
|
-
import { BimDataElementPropertySet } from "
|
|
1
|
+
import { BimDataTessellation, BimDataTessellationInfo } from "../../model/BimDataTessellation.js";
|
|
2
|
+
import { BimDataElement } from "../../model/BimDataElement.js";
|
|
3
|
+
import { BimDataElementPropertySet } from "../../model/BimDataElementPropertySet.js";
|
|
4
4
|
import { BimDataPartAccessor } from "./BimDataPartAccessor.js";
|
|
5
5
|
export declare class BimDataModelPartAccessor extends BimDataPartAccessor {
|
|
6
6
|
merge(targetPath: string, sourcePath: string): void;
|
|
7
7
|
getAllTessellations(compressed: boolean, transmit: (map: BimDataTessellation[]) => Promise<void>): Promise<void>;
|
|
8
8
|
getTessellations(versionFrom: bigint, versionTo: bigint, firstItemIdx: bigint, compressed: boolean, transmit: (map: BimDataTessellation[]) => Promise<void>): Promise<bigint>;
|
|
9
|
+
getTessellationsInfo(versionFrom: bigint, versionTo: bigint, compressed: boolean, transmit: (map: BimDataTessellationInfo[]) => Promise<void>): Promise<void>;
|
|
9
10
|
getTessellation(tessellationKey: string, version: bigint, compressed: boolean): BimDataTessellation;
|
|
10
11
|
getTessellationsByIds(tessellations: string[], version: bigint, compressed: boolean, transmit: (map: BimDataTessellation[]) => Promise<void>): Promise<void>;
|
|
11
12
|
getAllElements(transmit: (elements: BimDataElement[]) => Promise<void>): Promise<void>;
|
package/lib/src/wasm/{BimDataModelPartAccessor.js → DataAccessors/BimDataModelPartAccessor.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { BimDataConverter, transmitWasmData } from "
|
|
1
|
+
import { BimDataConverter, transmitWasmData } from "../../utils/ViewerTools.js";
|
|
2
2
|
import { BimDataPartAccessor } from "./BimDataPartAccessor.js";
|
|
3
|
-
import { TRANSMIT_STEP } from "
|
|
3
|
+
import { TRANSMIT_STEP } from "../../model/Consts.js";
|
|
4
4
|
export class BimDataModelPartAccessor extends BimDataPartAccessor {
|
|
5
5
|
merge(targetPath, sourcePath) {
|
|
6
6
|
const targetVersion = this._module.getDatabaseVersion(targetPath);
|
|
@@ -23,6 +23,10 @@ export class BimDataModelPartAccessor extends BimDataPartAccessor {
|
|
|
23
23
|
result.delete();
|
|
24
24
|
return Promise.resolve(nextItemIdx);
|
|
25
25
|
}
|
|
26
|
+
async getTessellationsInfo(versionFrom, versionTo, compressed, transmit) {
|
|
27
|
+
const result = this._module.getTessellationsInfo(this.path, versionFrom, versionTo, compressed);
|
|
28
|
+
return transmitWasmData(this._module, result, true, BimDataConverter.toBimDataTessellationInfo, transmit, TRANSMIT_STEP);
|
|
29
|
+
}
|
|
26
30
|
getTessellation(tessellationKey, version, compressed) {
|
|
27
31
|
const result = this._module.getTessellation(this.path, tessellationKey, version, compressed);
|
|
28
32
|
return BimDataConverter.toBimDataTessellation(this._module, result, true);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BimDataModelPartAccessor.js","sourceRoot":"","sources":["../../../../src/wasm/DataAccessors/BimDataModelPartAccessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BimDataPartAccessor.js","sourceRoot":"","sources":["../../../../src/wasm/DataAccessors/BimDataPartAccessor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,OAAO,mBAAmB;IAG9B,YAA4B,EAAU,EAAE,MAAsB;QAAlC,OAAE,GAAF,EAAE,CAAQ;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,GAAG,GAAG,gBAAgB,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,IAAI;YACF,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChD;QACD,MAAM;YACJ,OAAO,KAAK,CAAC;SACd;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IWasmBimModule } from "../pilot_bim_dataprovider.js";
|
|
2
|
+
import { BimCloudHierarchyItem, BimCloudMetadata } from "../../model/BimDataElement.js";
|
|
3
|
+
import { ICloudReader } from "./ICloudReader.js";
|
|
4
|
+
export declare class BinaryCloudReader implements ICloudReader {
|
|
5
|
+
readonly module: IWasmBimModule;
|
|
6
|
+
readonly path: string;
|
|
7
|
+
private metadata;
|
|
8
|
+
constructor(module: IWasmBimModule, path: string);
|
|
9
|
+
open(): Promise<void>;
|
|
10
|
+
close(): Promise<void>;
|
|
11
|
+
getCloudPoints(index: number, offset: number, count: number): Float32Array;
|
|
12
|
+
getCloudPointsArray(indicies: number[], transmit: (elements: Float32Array[]) => Promise<void>, step: number): Promise<void>;
|
|
13
|
+
getCloudHierarchy(): BimCloudHierarchyItem[];
|
|
14
|
+
getCloudMetadata(): BimCloudMetadata;
|
|
15
|
+
isValid(): boolean;
|
|
16
|
+
}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import { BimCloudHierarchyItem, BimCloudMetadata } from "../../model/BimDataElement.js";
|
|
2
|
+
import { BinaryConverter, transmitBimData } from "../../utils/ViewerTools.js";
|
|
3
|
+
export class BinaryCloudReader {
|
|
4
|
+
constructor(module, path) {
|
|
5
|
+
this.module = module;
|
|
6
|
+
this.path = path;
|
|
7
|
+
}
|
|
8
|
+
async open() {
|
|
9
|
+
let stream;
|
|
10
|
+
try {
|
|
11
|
+
stream = this.module.FS.open(this.path, "r");
|
|
12
|
+
this.metadata = this.getCloudMetadata();
|
|
13
|
+
}
|
|
14
|
+
finally {
|
|
15
|
+
if (stream)
|
|
16
|
+
this.module.FS.close(stream);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
async close() {
|
|
20
|
+
this.metadata = undefined;
|
|
21
|
+
}
|
|
22
|
+
getCloudPoints(index, offset, count) {
|
|
23
|
+
let stream;
|
|
24
|
+
try {
|
|
25
|
+
stream = this.module.FS.open(this.path, "r");
|
|
26
|
+
const byteArray = new Uint8Array(count);
|
|
27
|
+
const floatArray = new Float32Array(byteArray.buffer);
|
|
28
|
+
this.module.FS.read(stream, byteArray, byteArray.byteOffset, byteArray.byteLength, offset);
|
|
29
|
+
return floatArray;
|
|
30
|
+
}
|
|
31
|
+
finally {
|
|
32
|
+
if (stream)
|
|
33
|
+
this.module.FS.close(stream);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
getCloudPointsArray(indicies, transmit, step) {
|
|
37
|
+
let stream;
|
|
38
|
+
try {
|
|
39
|
+
stream = this.module.FS.open(this.path, "r");
|
|
40
|
+
const count = indicies.length / 3;
|
|
41
|
+
const result = new Array(count);
|
|
42
|
+
for (let i = 0, j = 0; i < count; i++) {
|
|
43
|
+
j++; //const dataIndex = indicies[j++];
|
|
44
|
+
const offset = indicies[j++];
|
|
45
|
+
const size = indicies[j++];
|
|
46
|
+
const byteArray = new Uint8Array(size);
|
|
47
|
+
const floatArray = new Float32Array(byteArray.buffer);
|
|
48
|
+
this.module.FS.read(stream, byteArray, byteArray.byteOffset, byteArray.byteLength, offset);
|
|
49
|
+
result[i] = floatArray;
|
|
50
|
+
}
|
|
51
|
+
return transmitBimData(result, transmit, step);
|
|
52
|
+
}
|
|
53
|
+
finally {
|
|
54
|
+
if (stream)
|
|
55
|
+
this.module.FS.close(stream);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
getCloudHierarchy() {
|
|
59
|
+
let stream;
|
|
60
|
+
try {
|
|
61
|
+
if (!this.metadata)
|
|
62
|
+
this.metadata = this.getCloudMetadata();
|
|
63
|
+
const metadata = this.metadata;
|
|
64
|
+
const count = metadata.nodesCount ?? 0;
|
|
65
|
+
const nodesOffset = metadata.nodesOffset ?? 0;
|
|
66
|
+
const pointsOffset = metadata.pointsOffset ?? 0;
|
|
67
|
+
const byteSize = pointsOffset - nodesOffset;
|
|
68
|
+
const array = new ArrayBuffer(byteSize);
|
|
69
|
+
const byteArray = new Uint8Array(array);
|
|
70
|
+
const result = new Array(count);
|
|
71
|
+
stream = this.module.FS.open(this.path, "r");
|
|
72
|
+
this.module.FS.read(stream, byteArray, byteArray.byteOffset, byteArray.byteLength, nodesOffset);
|
|
73
|
+
let offset = 0;
|
|
74
|
+
for (let i = 0; i < count; i++) {
|
|
75
|
+
// offset: 0
|
|
76
|
+
const index = BinaryConverter.toI32(byteArray, offset);
|
|
77
|
+
offset += 4;
|
|
78
|
+
// offset: 4
|
|
79
|
+
const dataIndex = BinaryConverter.toI32(byteArray, offset);
|
|
80
|
+
offset += 4;
|
|
81
|
+
// offset: 8
|
|
82
|
+
const pointOffset = BinaryConverter.toI64(byteArray, offset);
|
|
83
|
+
offset += 8;
|
|
84
|
+
// offset: 16
|
|
85
|
+
const pointSize = BinaryConverter.toI64(byteArray, offset);
|
|
86
|
+
offset += 8;
|
|
87
|
+
// offset: 24
|
|
88
|
+
const numPoints = BinaryConverter.toU32(byteArray, offset);
|
|
89
|
+
offset += 4;
|
|
90
|
+
// offset: 28
|
|
91
|
+
const min = { x: 0.0, y: 0.0, z: 0.0 };
|
|
92
|
+
min.x = BinaryConverter.toF32(byteArray, offset);
|
|
93
|
+
offset += 4;
|
|
94
|
+
min.y = BinaryConverter.toF32(byteArray, offset);
|
|
95
|
+
offset += 4;
|
|
96
|
+
min.z = BinaryConverter.toF32(byteArray, offset);
|
|
97
|
+
offset += 4;
|
|
98
|
+
// offset: 40
|
|
99
|
+
const max = { x: 0.0, y: 0.0, z: 0.0 };
|
|
100
|
+
max.x = BinaryConverter.toF32(byteArray, offset);
|
|
101
|
+
offset += 4;
|
|
102
|
+
max.y = BinaryConverter.toF32(byteArray, offset);
|
|
103
|
+
offset += 4;
|
|
104
|
+
max.z = BinaryConverter.toF32(byteArray, offset);
|
|
105
|
+
offset += 4;
|
|
106
|
+
// offset: 52
|
|
107
|
+
const type = byteArray[offset];
|
|
108
|
+
offset++;
|
|
109
|
+
// offset: 53
|
|
110
|
+
const mask = byteArray[offset];
|
|
111
|
+
offset++;
|
|
112
|
+
// offset: 54
|
|
113
|
+
const childNodesCount = BinaryConverter.toU32(byteArray, offset);
|
|
114
|
+
offset += 4;
|
|
115
|
+
// offset: 58
|
|
116
|
+
offset += 2;
|
|
117
|
+
// offset: 60
|
|
118
|
+
offset += 4;
|
|
119
|
+
// offset: 64
|
|
120
|
+
const node = new BimCloudHierarchyItem();
|
|
121
|
+
node.index = index;
|
|
122
|
+
node.dataIndex = dataIndex;
|
|
123
|
+
node.type = type;
|
|
124
|
+
node.mask = mask;
|
|
125
|
+
node.numPoints = numPoints;
|
|
126
|
+
node.min = min;
|
|
127
|
+
node.max = max;
|
|
128
|
+
node.offset = Number(pointOffset);
|
|
129
|
+
node.size = Number(pointSize);
|
|
130
|
+
node.childNodesCount = childNodesCount;
|
|
131
|
+
result[i] = node;
|
|
132
|
+
}
|
|
133
|
+
return result;
|
|
134
|
+
}
|
|
135
|
+
finally {
|
|
136
|
+
if (stream)
|
|
137
|
+
this.module.FS.close(stream);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
getCloudMetadata() {
|
|
141
|
+
if (this.metadata)
|
|
142
|
+
return this.metadata;
|
|
143
|
+
let stream;
|
|
144
|
+
try {
|
|
145
|
+
const result = new BimCloudMetadata();
|
|
146
|
+
const headerSize = 124;
|
|
147
|
+
const array = new ArrayBuffer(headerSize);
|
|
148
|
+
const byteArray = new Uint8Array(array);
|
|
149
|
+
stream = this.module.FS.open(this.path, "r");
|
|
150
|
+
this.module.FS.read(stream, byteArray, byteArray.byteOffset, byteArray.byteLength, 0);
|
|
151
|
+
let offset = 0;
|
|
152
|
+
// offset: 0
|
|
153
|
+
//const signature = [byteArray[0], byteArray[1], byteArray[2], byteArray[3]]; // ignore this field
|
|
154
|
+
offset += 4;
|
|
155
|
+
// offset: 4
|
|
156
|
+
const version = BinaryConverter.toU32(byteArray, offset);
|
|
157
|
+
offset += 4;
|
|
158
|
+
// offset: 8
|
|
159
|
+
const fileSize = BinaryConverter.toI64(byteArray, offset);
|
|
160
|
+
offset += 8;
|
|
161
|
+
// offset: 16
|
|
162
|
+
const nodesOffset = BinaryConverter.toI64(byteArray, offset);
|
|
163
|
+
offset += 8;
|
|
164
|
+
// offset: 24
|
|
165
|
+
const pointsOffset = BinaryConverter.toI64(byteArray, offset);
|
|
166
|
+
offset += 8;
|
|
167
|
+
// offset: 32
|
|
168
|
+
const numPoints = BinaryConverter.toU64(byteArray, offset);
|
|
169
|
+
offset += 8;
|
|
170
|
+
// offset: 40
|
|
171
|
+
const nodesCount = BinaryConverter.toU32(byteArray, offset);
|
|
172
|
+
offset += 4;
|
|
173
|
+
// offset: 44
|
|
174
|
+
const depth = BinaryConverter.toU32(byteArray, offset);
|
|
175
|
+
offset += 4;
|
|
176
|
+
// offset: 48
|
|
177
|
+
const baseSpacing = BinaryConverter.toF32(byteArray, offset);
|
|
178
|
+
offset += 4;
|
|
179
|
+
// offset: 52
|
|
180
|
+
const scale = BinaryConverter.toF64(byteArray, offset);
|
|
181
|
+
offset += 8;
|
|
182
|
+
// offset: 60
|
|
183
|
+
const min = { x: 0.0, y: 0.0, z: 0.0 };
|
|
184
|
+
min.x = BinaryConverter.toF32(byteArray, offset);
|
|
185
|
+
offset += 4;
|
|
186
|
+
min.y = BinaryConverter.toF32(byteArray, offset);
|
|
187
|
+
offset += 4;
|
|
188
|
+
min.z = BinaryConverter.toF32(byteArray, offset);
|
|
189
|
+
offset += 4;
|
|
190
|
+
// offset: 72
|
|
191
|
+
const max = { x: 0.0, y: 0.0, z: 0.0 };
|
|
192
|
+
max.x = BinaryConverter.toF32(byteArray, offset);
|
|
193
|
+
offset += 4;
|
|
194
|
+
max.y = BinaryConverter.toF32(byteArray, offset);
|
|
195
|
+
offset += 4;
|
|
196
|
+
max.z = BinaryConverter.toF32(byteArray, offset);
|
|
197
|
+
offset += 4;
|
|
198
|
+
// offset: 84
|
|
199
|
+
const rootBoxMin = { x: 0.0, y: 0.0, z: 0.0 };
|
|
200
|
+
rootBoxMin.x = BinaryConverter.toF32(byteArray, offset);
|
|
201
|
+
offset += 4;
|
|
202
|
+
rootBoxMin.y = BinaryConverter.toF32(byteArray, offset);
|
|
203
|
+
offset += 4;
|
|
204
|
+
rootBoxMin.z = BinaryConverter.toF32(byteArray, offset);
|
|
205
|
+
offset += 4;
|
|
206
|
+
// offset: 96
|
|
207
|
+
const rootBoxMax = { x: 0.0, y: 0.0, z: 0.0 };
|
|
208
|
+
rootBoxMax.x = BinaryConverter.toF32(byteArray, offset);
|
|
209
|
+
offset += 4;
|
|
210
|
+
rootBoxMax.y = BinaryConverter.toF32(byteArray, offset);
|
|
211
|
+
offset += 4;
|
|
212
|
+
rootBoxMax.z = BinaryConverter.toF32(byteArray, offset);
|
|
213
|
+
offset += 4;
|
|
214
|
+
// offset: 108
|
|
215
|
+
const centerPosition = { x: 0.0, y: 0.0, z: 0.0 };
|
|
216
|
+
centerPosition.x = BinaryConverter.toF32(byteArray, offset);
|
|
217
|
+
offset += 4;
|
|
218
|
+
centerPosition.y = BinaryConverter.toF32(byteArray, offset);
|
|
219
|
+
offset += 4;
|
|
220
|
+
centerPosition.z = BinaryConverter.toF32(byteArray, offset);
|
|
221
|
+
offset += 4;
|
|
222
|
+
// offset: 120
|
|
223
|
+
const pointFormat = byteArray[offset];
|
|
224
|
+
offset++;
|
|
225
|
+
// offset: 121
|
|
226
|
+
const bytesPerPoint = byteArray[offset];
|
|
227
|
+
offset++;
|
|
228
|
+
// offset: 122
|
|
229
|
+
offset += 2;
|
|
230
|
+
// offset: 124
|
|
231
|
+
result.depth = depth;
|
|
232
|
+
result.min = min;
|
|
233
|
+
result.max = max;
|
|
234
|
+
result.baseSpacing = baseSpacing;
|
|
235
|
+
result.version = version;
|
|
236
|
+
result.nodesCount = nodesCount;
|
|
237
|
+
result.posOffset = centerPosition;
|
|
238
|
+
result.posScale = { x: scale, y: scale, z: scale };
|
|
239
|
+
result.root_min = rootBoxMin;
|
|
240
|
+
result.root_max = rootBoxMax;
|
|
241
|
+
result.fileSize = Number(fileSize);
|
|
242
|
+
result.pointFormat = pointFormat;
|
|
243
|
+
result.bytesPerPoint = bytesPerPoint;
|
|
244
|
+
result.numPoints = Number(numPoints);
|
|
245
|
+
result.nodesOffset = Number(nodesOffset);
|
|
246
|
+
result.pointsOffset = Number(pointsOffset);
|
|
247
|
+
return result;
|
|
248
|
+
}
|
|
249
|
+
finally {
|
|
250
|
+
if (stream)
|
|
251
|
+
this.module.FS.close(stream);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
isValid() {
|
|
255
|
+
const byteArray = new Uint8Array(new ArrayBuffer(4));
|
|
256
|
+
const stream = this.module.FS.open(this.path, "r");
|
|
257
|
+
this.module.FS.read(stream, byteArray, byteArray.byteOffset, byteArray.byteLength);
|
|
258
|
+
this.module.FS.close(stream);
|
|
259
|
+
const signature = [byteArray[0], byteArray[1], byteArray[2], byteArray[3]];
|
|
260
|
+
const binaryFormat = new Uint8Array([80, 78, 84, 67]); //PNTC
|
|
261
|
+
for (let index = 0; index < binaryFormat.length; index++) {
|
|
262
|
+
if (binaryFormat[index] !== signature[index])
|
|
263
|
+
return false;
|
|
264
|
+
}
|
|
265
|
+
return true;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
//# sourceMappingURL=BinaryCloudReader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BinaryCloudReader.js","sourceRoot":"","sources":["../../../../src/wasm/DataAccessors/BinaryCloudReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BimCloudHierarchyItem, BimCloudMetadata } from "../../model/BimDataElement.js";
|
|
2
|
+
export interface ICloudReader {
|
|
3
|
+
open(filename: string): Promise<void>;
|
|
4
|
+
close(): Promise<void>;
|
|
5
|
+
getCloudPoints(index: number, offset: number, count: number): Float32Array;
|
|
6
|
+
getCloudPointsArray(indicies: number[], transmit: (elements: Float32Array[]) => Promise<void>, step: number): Promise<void>;
|
|
7
|
+
getCloudHierarchy(): BimCloudHierarchyItem[];
|
|
8
|
+
getCloudMetadata(): BimCloudMetadata;
|
|
9
|
+
isValid(): boolean;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ICloudReader.js","sourceRoot":"","sources":["../../../../src/wasm/DataAccessors/ICloudReader.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IWasmBimModule } from "../pilot_bim_dataprovider.js";
|
|
2
|
+
import { BimCloudHierarchyItem, BimCloudMetadata } from "../../model/BimDataElement.js";
|
|
3
|
+
import { ICloudReader } from "./ICloudReader.js";
|
|
4
|
+
export declare class WasmCloudReader implements ICloudReader {
|
|
5
|
+
readonly _module: IWasmBimModule;
|
|
6
|
+
readonly path: string;
|
|
7
|
+
private _cloudReader?;
|
|
8
|
+
constructor(_module: IWasmBimModule, path: string);
|
|
9
|
+
open(): Promise<void>;
|
|
10
|
+
close(): Promise<void>;
|
|
11
|
+
getCloudPoints(index: number, offset: number, count: number): Float32Array;
|
|
12
|
+
getCloudPointsArray(indicies: number[], transmit: (elements: Float32Array[]) => Promise<void>, step: number): Promise<void>;
|
|
13
|
+
getCloudHierarchy(): BimCloudHierarchyItem[];
|
|
14
|
+
getCloudMetadata(): BimCloudMetadata;
|
|
15
|
+
isValid(): boolean;
|
|
16
|
+
}
|
|
@@ -1,16 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
constructor(id, module, openFileFunc, closeFileFunc) {
|
|
7
|
-
super(id, module);
|
|
8
|
-
this.openFileFunc = openFileFunc;
|
|
9
|
-
this.closeFileFunc = closeFileFunc;
|
|
1
|
+
import { BimDataConverter, transmitWasmData } from "../../utils/ViewerTools.js";
|
|
2
|
+
export class WasmCloudReader {
|
|
3
|
+
constructor(_module, path) {
|
|
4
|
+
this._module = _module;
|
|
5
|
+
this.path = path;
|
|
10
6
|
}
|
|
11
7
|
async open() {
|
|
12
|
-
if (this.openFileFunc)
|
|
13
|
-
await this.openFileFunc();
|
|
14
8
|
this._cloudReader = this._module.getCloudReader();
|
|
15
9
|
this._cloudReader.open(this.path);
|
|
16
10
|
}
|
|
@@ -18,32 +12,36 @@ export class BimCloudPartAccessor extends BimDataPartAccessor {
|
|
|
18
12
|
this._cloudReader?.close();
|
|
19
13
|
this._cloudReader?.delete();
|
|
20
14
|
this._cloudReader = undefined;
|
|
21
|
-
if (this.closeFileFunc)
|
|
22
|
-
await this.closeFileFunc();
|
|
23
15
|
}
|
|
24
|
-
getCloudPoints(index) {
|
|
16
|
+
getCloudPoints(index, offset, count) {
|
|
25
17
|
const pointsData = this._cloudReader ? this._cloudReader.getCloudPoints(index, true) : this._module.getCloudPoints(this.path, index);
|
|
26
18
|
return BimDataConverter.toCloudPoints(this._module, pointsData, true);
|
|
27
19
|
}
|
|
28
|
-
getCloudPointsArray(indicies, transmit) {
|
|
20
|
+
getCloudPointsArray(indicies, transmit, step) {
|
|
29
21
|
const indiciesVector = new this._module.IntVector();
|
|
30
|
-
|
|
31
|
-
|
|
22
|
+
const count = indicies.length / 3;
|
|
23
|
+
indiciesVector.resize(count, 0);
|
|
24
|
+
for (let i = 0, j = 0; i < count; i++, j += 3)
|
|
25
|
+
indiciesVector.set(i, indicies[j]);
|
|
32
26
|
const pointsDataArray = this._cloudReader ? this._cloudReader.getCloudPointsArray(indiciesVector, true) : this._module.getCloudPointsArray(this.path, indiciesVector);
|
|
33
27
|
indiciesVector.delete();
|
|
34
|
-
return transmitWasmData(this._module, pointsDataArray, true, BimDataConverter.toCloudPoints, transmit,
|
|
28
|
+
return transmitWasmData(this._module, pointsDataArray, true, BimDataConverter.toCloudPoints, transmit, step);
|
|
35
29
|
}
|
|
36
30
|
getCloudHierarchy() {
|
|
37
31
|
const result = this._cloudReader ? this._cloudReader.getCloudHierarchy() : this._module.getCloudHierarchy(this.path);
|
|
38
32
|
return BimDataConverter.toBimCloudHierarchy(result, true);
|
|
39
33
|
}
|
|
40
|
-
getCloudParameters() {
|
|
41
|
-
const result = this._cloudReader ? this._cloudReader.getCloudParameters() : this._module.getCloudParameters(this.path);
|
|
42
|
-
return WasmTools.wasmMapToMap(result, true);
|
|
43
|
-
}
|
|
44
34
|
getCloudMetadata() {
|
|
45
35
|
const result = this._cloudReader ? this._cloudReader.getCloudMetadata() : this._module.getCloudMetadata(this.path);
|
|
46
36
|
return BimDataConverter.toCloudMetadata(result, true);
|
|
47
37
|
}
|
|
38
|
+
isValid() {
|
|
39
|
+
try {
|
|
40
|
+
return this._module.isValidDatabase(this.path);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
48
46
|
}
|
|
49
|
-
//# sourceMappingURL=
|
|
47
|
+
//# sourceMappingURL=WasmCloudReader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WasmCloudReader.js","sourceRoot":"","sources":["../../../../src/wasm/DataAccessors/WasmCloudReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { IWasmBimModule } from "./pilot_bim_dataprovider.js";
|
|
2
|
-
import { BimDataTessellation } from "../model/BimDataTessellation.js";
|
|
2
|
+
import { BimDataTessellation, BimDataTessellationInfo } from "../model/BimDataTessellation.js";
|
|
3
3
|
import { BimCloudHierarchyItem, BimCloudMetadata, BimDataElement } from "../model/BimDataElement.js";
|
|
4
4
|
import { BimDataElementPropertySet } from "../model/BimDataElementPropertySet.js";
|
|
5
5
|
import { IFileSystem } from "../file-system/IFileSystem.js";
|
|
6
|
-
import { BimCloudPartAccessor } from "./BimCloudPartAccessor.js";
|
|
6
|
+
import { BimCloudPartAccessor } from "./DataAccessors/BimCloudPartAccessor.js";
|
|
7
7
|
export interface IWasmWorker {
|
|
8
8
|
get module(): IWasmBimModule | undefined;
|
|
9
9
|
get cachedCloudReaders(): Map<string, BimCloudPartAccessor>;
|
|
@@ -12,6 +12,7 @@ export interface IWasmWorker {
|
|
|
12
12
|
write(modelPartId: string, buffer: ArrayBuffer, position: number): Promise<void>;
|
|
13
13
|
close(modelPartId: string): Promise<void>;
|
|
14
14
|
remove(modelPartId: string): Promise<void>;
|
|
15
|
+
copy(modelPartTargetId: string, modelPartSourceId: string): Promise<void>;
|
|
15
16
|
dispose(): void;
|
|
16
17
|
flushMemory(): Promise<void>;
|
|
17
18
|
isValidDatabase(modelPartId: string): Promise<boolean>;
|
|
@@ -19,6 +20,7 @@ export interface IWasmWorker {
|
|
|
19
20
|
mergeModelParts(targetId: string, sourceId: string): Promise<void>;
|
|
20
21
|
getAllTessellations(modelPartId: string, compressed: boolean, transmit: (map: BimDataTessellation[]) => Promise<void>): Promise<void>;
|
|
21
22
|
getTessellations(modelPartId: string, versionFrom: bigint, versionTo: bigint, firstItemIdx: bigint, compressed: boolean, transmit: (map: BimDataTessellation[]) => Promise<void>): Promise<bigint>;
|
|
23
|
+
getTessellationsInfo(modelPartId: string, versionFrom: bigint, versionTo: bigint, compressed: boolean, transmit: (map: BimDataTessellationInfo[]) => Promise<void>): Promise<void>;
|
|
22
24
|
getTessellation(modelPartId: string, tessellationKey: string, version: bigint, compressed: boolean): Promise<BimDataTessellation>;
|
|
23
25
|
getTessellationsByIds(modelPartId: string, tessellations: string[], version: bigint, compressed: boolean, transmit: (map: BimDataTessellation[]) => Promise<void>): Promise<void>;
|
|
24
26
|
getAllElements(modelPartId: string, transmit: (elements: BimDataElement[]) => Promise<void>): Promise<void>;
|
|
@@ -30,10 +32,9 @@ export interface IWasmWorker {
|
|
|
30
32
|
getAllVersions(modelPartId: string): Promise<bigint[]>;
|
|
31
33
|
getLatestVersion(modelPartId: string): Promise<bigint>;
|
|
32
34
|
cacheCloudPart(modelPartId: string): Promise<void>;
|
|
33
|
-
getCloudPoints(modelPartId: string, index: number): Promise<Float32Array>;
|
|
35
|
+
getCloudPoints(modelPartId: string, index: number, offset: number, count: number): Promise<Float32Array>;
|
|
34
36
|
getCloudPointsArray(modelPartId: string, indicies: number[], transmit: (elements: Float32Array[]) => Promise<void>): Promise<void>;
|
|
35
37
|
getCloudHierarchy(modelPartId: string): Promise<BimCloudHierarchyItem[]>;
|
|
36
|
-
getCloudParameters(modelPartId: string): Promise<Map<string, string>>;
|
|
37
38
|
getCloudMetadata(modelPartId: string): Promise<BimCloudMetadata>;
|
|
38
39
|
}
|
|
39
40
|
export declare class WasmWorker implements IWasmWorker {
|
|
@@ -45,6 +46,7 @@ export declare class WasmWorker implements IWasmWorker {
|
|
|
45
46
|
get cachedCloudReaders(): Map<string, BimCloudPartAccessor>;
|
|
46
47
|
init(): Promise<void>;
|
|
47
48
|
open(id: string, buffer?: ArrayBuffer): Promise<void>;
|
|
49
|
+
copy(modelPartTargetId: string, modelPartSourceId: string): Promise<void>;
|
|
48
50
|
write(modelPartId: string, buffer: ArrayBuffer, position: number): Promise<void>;
|
|
49
51
|
close(modelPartId: string): Promise<void>;
|
|
50
52
|
remove(modelPartId: string): Promise<void>;
|
|
@@ -55,6 +57,7 @@ export declare class WasmWorker implements IWasmWorker {
|
|
|
55
57
|
mergeModelParts(targetId: string, sourceId: string): Promise<void>;
|
|
56
58
|
getAllTessellations(modelPartId: string, compressed: boolean, transmit: (map: BimDataTessellation[]) => Promise<void>): Promise<void>;
|
|
57
59
|
getTessellations(modelPartId: string, versionFrom: bigint, versionTo: bigint, firstItemIdx: bigint, compressed: boolean, transmit: (map: BimDataTessellation[]) => Promise<void>): Promise<bigint>;
|
|
60
|
+
getTessellationsInfo(modelPartId: string, versionFrom: bigint, versionTo: bigint, compressed: boolean, transmit: (map: BimDataTessellationInfo[]) => Promise<void>): Promise<void>;
|
|
58
61
|
getTessellation(modelPartId: string, tessellationKey: string, version: bigint, compressed: boolean): Promise<BimDataTessellation>;
|
|
59
62
|
getTessellationsByIds(modelPartId: string, tessellations: string[], version: bigint, compressed: boolean, transmit: (map: BimDataTessellation[]) => Promise<void>): Promise<void>;
|
|
60
63
|
getAllElements(modelPartId: string, transmit: (elements: BimDataElement[]) => Promise<void>): Promise<void>;
|
|
@@ -66,10 +69,9 @@ export declare class WasmWorker implements IWasmWorker {
|
|
|
66
69
|
getAllVersions(modelPartId: string): Promise<bigint[]>;
|
|
67
70
|
getLatestVersion(modelPartId: string): Promise<bigint>;
|
|
68
71
|
cacheCloudPart(modelPartId: string): Promise<void>;
|
|
69
|
-
getCloudPoints(modelPartId: string, index: number): Promise<Float32Array>;
|
|
72
|
+
getCloudPoints(modelPartId: string, index: number, offset: number, count: number): Promise<Float32Array>;
|
|
70
73
|
getCloudPointsArray(modelPartId: string, indicies: number[], transmit: (elements: Float32Array[]) => Promise<void>): Promise<void>;
|
|
71
74
|
getCloudHierarchy(modelPartId: string): Promise<BimCloudHierarchyItem[]>;
|
|
72
|
-
getCloudParameters(modelPartId: string): Promise<Map<string, string>>;
|
|
73
75
|
getCloudMetadata(modelPartId: string): Promise<BimCloudMetadata>;
|
|
74
76
|
private runSyncFileOp;
|
|
75
77
|
}
|
|
@@ -3,9 +3,9 @@ import { WasmTools } from "../utils/WasmTools.js";
|
|
|
3
3
|
import { isNode, isCrossOriginIsolated, isSecureContext, isOPFSEnabled } from "../utils/ViewerTools.js";
|
|
4
4
|
import { DATA_ROOT_FOLDER } from "../model/Consts.js";
|
|
5
5
|
import { AsyncFileSystem, ProxyFileSystem } from "../file-system/IFileSystem.js";
|
|
6
|
-
import { BimCloudPartAccessor } from "./BimCloudPartAccessor.js";
|
|
7
|
-
import { BimDataPartAccessor } from "./BimDataPartAccessor.js";
|
|
8
|
-
import { BimDataModelPartAccessor } from "./BimDataModelPartAccessor.js";
|
|
6
|
+
import { BimCloudPartAccessor } from "./DataAccessors/BimCloudPartAccessor.js";
|
|
7
|
+
import { BimDataPartAccessor } from "./DataAccessors/BimDataPartAccessor.js";
|
|
8
|
+
import { BimDataModelPartAccessor } from "./DataAccessors/BimDataModelPartAccessor.js";
|
|
9
9
|
export class WasmWorker {
|
|
10
10
|
constructor() {
|
|
11
11
|
this._cachedCloudReaders = new Map();
|
|
@@ -42,6 +42,9 @@ export class WasmWorker {
|
|
|
42
42
|
await this._fs.writeFile(id, data);
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
+
async copy(modelPartTargetId, modelPartSourceId) {
|
|
46
|
+
await this._fs.copyFile(modelPartTargetId, modelPartSourceId);
|
|
47
|
+
}
|
|
45
48
|
async write(modelPartId, buffer, position) {
|
|
46
49
|
const data = new Uint8Array(buffer);
|
|
47
50
|
if (this._fs.isFileExists(modelPartId)) {
|
|
@@ -105,6 +108,10 @@ export class WasmWorker {
|
|
|
105
108
|
const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
|
|
106
109
|
return this.runSyncFileOp(modelPartId, () => modelPart.getTessellations(versionFrom, versionTo, firstItemIdx, compressed, transmit));
|
|
107
110
|
}
|
|
111
|
+
async getTessellationsInfo(modelPartId, versionFrom, versionTo, compressed, transmit) {
|
|
112
|
+
const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
|
|
113
|
+
return this.runSyncFileOp(modelPartId, () => modelPart.getTessellationsInfo(versionFrom, versionTo, compressed, transmit));
|
|
114
|
+
}
|
|
108
115
|
async getTessellation(modelPartId, tessellationKey, version, compressed) {
|
|
109
116
|
const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
|
|
110
117
|
return this.runSyncFileOp(modelPartId, () => modelPart.getTessellation(tessellationKey, version, compressed));
|
|
@@ -154,9 +161,9 @@ export class WasmWorker {
|
|
|
154
161
|
this._cachedCloudReaders.set(modelPartId, reader);
|
|
155
162
|
});
|
|
156
163
|
}
|
|
157
|
-
async getCloudPoints(modelPartId, index) {
|
|
164
|
+
async getCloudPoints(modelPartId, index, offset, count) {
|
|
158
165
|
const modelPart = this._cachedCloudReaders.get(modelPartId) ?? new BimCloudPartAccessor(modelPartId, this._module);
|
|
159
|
-
return this.runSyncFileOp(modelPartId, () => modelPart.getCloudPoints(index));
|
|
166
|
+
return this.runSyncFileOp(modelPartId, () => modelPart.getCloudPoints(index, offset, count));
|
|
160
167
|
}
|
|
161
168
|
async getCloudPointsArray(modelPartId, indicies, transmit) {
|
|
162
169
|
const modelPart = this._cachedCloudReaders.get(modelPartId) ?? new BimCloudPartAccessor(modelPartId, this._module);
|
|
@@ -166,10 +173,6 @@ export class WasmWorker {
|
|
|
166
173
|
const modelPart = this._cachedCloudReaders.get(modelPartId) ?? new BimCloudPartAccessor(modelPartId, this._module);
|
|
167
174
|
return this.runSyncFileOp(modelPartId, () => modelPart.getCloudHierarchy());
|
|
168
175
|
}
|
|
169
|
-
async getCloudParameters(modelPartId) {
|
|
170
|
-
const modelPart = this._cachedCloudReaders.get(modelPartId) ?? new BimCloudPartAccessor(modelPartId, this._module);
|
|
171
|
-
return this.runSyncFileOp(modelPartId, () => modelPart.getCloudParameters());
|
|
172
|
-
}
|
|
173
176
|
async getCloudMetadata(modelPartId) {
|
|
174
177
|
const modelPart = this._cachedCloudReaders.get(modelPartId) ?? new BimCloudPartAccessor(modelPartId, this._module);
|
|
175
178
|
return this.runSyncFileOp(modelPartId, () => modelPart.getCloudMetadata());
|