@pilotdev/pilot-bim-dataprovider 24.22.0 → 24.24.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.
Files changed (42) hide show
  1. package/lib/index.d.ts +3 -1
  2. package/lib/index.js.map +1 -1
  3. package/lib/src/model/BimDataCloudPart.d.ts +17 -0
  4. package/lib/src/model/BimDataCloudPart.js +33 -0
  5. package/lib/src/model/BimDataCloudPart.js.map +1 -0
  6. package/lib/src/model/BimDataModelPart.d.ts +36 -0
  7. package/lib/src/model/BimDataModelPart.js +89 -0
  8. package/lib/src/model/BimDataModelPart.js.map +1 -0
  9. package/lib/src/model/BimDataPart.d.ts +9 -52
  10. package/lib/src/model/BimDataPart.js +11 -110
  11. package/lib/src/model/BimDataPart.js.map +1 -1
  12. package/lib/src/model/BimDataProvider.d.ts +5 -1
  13. package/lib/src/model/BimDataProvider.js +7 -1
  14. package/lib/src/model/BimDataProvider.js.map +1 -1
  15. package/lib/src/model/Consts.d.ts +1 -0
  16. package/lib/src/model/Consts.js +1 -0
  17. package/lib/src/model/Consts.js.map +1 -1
  18. package/lib/src/utils/ViewerTools.d.ts +5 -1
  19. package/lib/src/utils/ViewerTools.js +12 -4
  20. package/lib/src/utils/ViewerTools.js.map +1 -1
  21. package/lib/src/wasm/BimCloudPartAccessor.d.ts +16 -0
  22. package/lib/src/wasm/BimCloudPartAccessor.js +49 -0
  23. package/lib/src/wasm/BimCloudPartAccessor.js.map +1 -0
  24. package/lib/src/wasm/BimDataModelPartAccessor.d.ts +18 -0
  25. package/lib/src/wasm/BimDataModelPartAccessor.js +69 -0
  26. package/lib/src/wasm/BimDataModelPartAccessor.js.map +1 -0
  27. package/lib/src/wasm/BimDataPartAccessor.d.ts +8 -0
  28. package/lib/src/wasm/BimDataPartAccessor.js +19 -0
  29. package/lib/src/wasm/BimDataPartAccessor.js.map +1 -0
  30. package/lib/src/wasm/{wasm.worker.d.ts → WasmWorker.d.ts} +18 -10
  31. package/lib/src/wasm/WasmWorker.js +202 -0
  32. package/lib/src/wasm/WasmWorker.js.map +1 -0
  33. package/lib/src/wasm/WasmWorkerThreadSafeWrapper.d.ts +42 -0
  34. package/lib/src/wasm/WasmWorkerThreadSafeWrapper.js +135 -0
  35. package/lib/src/wasm/WasmWorkerThreadSafeWrapper.js.map +1 -0
  36. package/lib/src/wasm/pilot_bim_dataprovider.d.ts +6 -1
  37. package/lib/src/wasm/pilot_bim_dataprovider.wasm +0 -0
  38. package/lib/src/wasm/wasm.worker-node.cjs +1 -1
  39. package/lib/src/wasm/wasm.worker-web.cjs +1 -1
  40. package/package.json +1 -1
  41. package/lib/src/wasm/wasm.worker.js +0 -324
  42. package/lib/src/wasm/wasm.worker.js.map +0 -1
@@ -0,0 +1,135 @@
1
+ import { WasmWorker } from "./WasmWorker.js";
2
+ import { isSecureContext } from "../utils/ViewerTools.js";
3
+ import { expose } from "./worker.js";
4
+ const HEAP_SIZE_LIMIT = 1024 * 1024 * 1024;
5
+ export class WasmWorkerThreadSafeWrapper {
6
+ constructor() {
7
+ this._memoryLocker = { isLocked: false, lock: Promise.resolve() };
8
+ this._operationsSet = new Set();
9
+ this._wasmWorker = new WasmWorker();
10
+ }
11
+ get module() {
12
+ return this._wasmWorker.module;
13
+ }
14
+ get cachedCloudReaders() {
15
+ return this._wasmWorker.cachedCloudReaders;
16
+ }
17
+ init() {
18
+ return this._wasmWorker.init();
19
+ }
20
+ dispose() {
21
+ return this._wasmWorker.dispose();
22
+ }
23
+ // DataPart
24
+ open(id, buffer) {
25
+ return this.wrapOperation(async () => this._wasmWorker.open(id, buffer));
26
+ }
27
+ write(modelPartId, buffer, position) {
28
+ return this.wrapOperation(async () => this._wasmWorker.write(modelPartId, buffer, position));
29
+ }
30
+ close(modelPartId) {
31
+ return this.wrapOperation(async () => this._wasmWorker.close(modelPartId));
32
+ }
33
+ remove(modelPartId) {
34
+ return this.wrapOperation(async () => this._wasmWorker.remove(modelPartId));
35
+ }
36
+ isValidDatabase(modelPartId) {
37
+ return this.wrapOperation(async () => this._wasmWorker.isValidDatabase(modelPartId));
38
+ }
39
+ // ModelPart
40
+ updateModelPart(modelPartId, buffer) {
41
+ return this.wrapOperation(async () => this._wasmWorker.updateModelPart(modelPartId, buffer));
42
+ }
43
+ mergeModelParts(targetId, sourceId) {
44
+ return this.wrapOperation(async () => this._wasmWorker.mergeModelParts(targetId, sourceId));
45
+ }
46
+ getAllTessellations(modelPartId, compressed, transmit) {
47
+ return this.wrapOperation(async () => this._wasmWorker.getAllTessellations(modelPartId, compressed, transmit));
48
+ }
49
+ getTessellations(modelPartId, versionFrom, versionTo, compressed, transmit) {
50
+ return this.wrapOperation(async () => this._wasmWorker.getTessellations(modelPartId, versionFrom, versionTo, compressed, transmit));
51
+ }
52
+ getTessellation(modelPartId, tessellationKey, version, compressed) {
53
+ return this.wrapOperation(async () => this._wasmWorker.getTessellation(modelPartId, tessellationKey, version, compressed));
54
+ }
55
+ getTessellationsByIds(modelPartId, tessellations, version, compressed, transmit) {
56
+ return this.wrapOperation(async () => this._wasmWorker.getTessellationsByIds(modelPartId, tessellations, version, compressed, transmit));
57
+ }
58
+ getAllElements(modelPartId, transmit) {
59
+ return this.wrapOperation(async () => this._wasmWorker.getAllElements(modelPartId, transmit));
60
+ }
61
+ getElements(modelPartId, versionFrom, versionTo, transmit) {
62
+ return this.wrapOperation(async () => this._wasmWorker.getElements(modelPartId, versionFrom, versionTo, transmit));
63
+ }
64
+ getDiffElements(modelPartId, versionFrom, versionTo, transmit) {
65
+ return this.wrapOperation(async () => this._wasmWorker.getDiffElements(modelPartId, versionFrom, versionTo, transmit));
66
+ }
67
+ getElementProperties(modelPartId, elementId, version) {
68
+ return this.wrapOperation(async () => this._wasmWorker.getElementProperties(modelPartId, elementId, version));
69
+ }
70
+ getElementTessellations(modelPartId, versionFrom, versionTo, compressed) {
71
+ return this.wrapOperation(async () => this._wasmWorker.getElementTessellations(modelPartId, versionFrom, versionTo, compressed));
72
+ }
73
+ getAllVersions(modelPartId) {
74
+ return this.wrapOperation(async () => this._wasmWorker.getAllVersions(modelPartId));
75
+ }
76
+ getLatestVersion(modelPartId) {
77
+ return this.wrapOperation(async () => this._wasmWorker.getLatestVersion(modelPartId));
78
+ }
79
+ // CloudPart
80
+ async cacheCloudPart(modelPartId) {
81
+ return this.wrapOperation(async () => this._wasmWorker.cacheCloudPart(modelPartId));
82
+ }
83
+ getCloudPoints(modelPartId, index) {
84
+ return this.wrapOperation(async () => this._wasmWorker.getCloudPoints(modelPartId, index));
85
+ }
86
+ getCloudPointsArray(modelPartId, indicies, transmit) {
87
+ return this.wrapOperation(async () => this._wasmWorker.getCloudPointsArray(modelPartId, indicies, transmit));
88
+ }
89
+ getCloudHierarchy(modelPartId) {
90
+ return this.wrapOperation(async () => this._wasmWorker.getCloudHierarchy(modelPartId));
91
+ }
92
+ getCloudParameters(modelPartId) {
93
+ return this.wrapOperation(async () => this._wasmWorker.getCloudParameters(modelPartId));
94
+ }
95
+ getCloudMetadata(modelPartId) {
96
+ return this.wrapOperation(async () => this._wasmWorker.getCloudMetadata(modelPartId));
97
+ }
98
+ // Memory checks & locks
99
+ flushMemory() {
100
+ if (!this.module || !isSecureContext)
101
+ return Promise.resolve();
102
+ if (this._memoryLocker.isLocked)
103
+ return this._memoryLocker.lock;
104
+ this._memoryLocker.isLocked = true;
105
+ const promise = async () => {
106
+ await Promise.all(Array.from(this._operationsSet.values()));
107
+ const cloudParts = Array.from(this.cachedCloudReaders.keys());
108
+ for await (const [, reader] of this.cachedCloudReaders)
109
+ await reader.close();
110
+ this.cachedCloudReaders.clear();
111
+ await this.init();
112
+ for await (const cloudId of cloudParts)
113
+ await this._wasmWorker.cacheCloudPart(cloudId);
114
+ this._memoryLocker.isLocked = false;
115
+ };
116
+ return this._memoryLocker.lock = promise();
117
+ }
118
+ async checkMemory() {
119
+ while (this._memoryLocker.isLocked)
120
+ await this._memoryLocker.lock;
121
+ const heapSize = this.module?.HEAP8.byteLength;
122
+ if (heapSize && heapSize > HEAP_SIZE_LIMIT) {
123
+ await this.flushMemory();
124
+ }
125
+ }
126
+ async wrapOperation(op) {
127
+ await this.checkMemory();
128
+ const opPromise = op();
129
+ this._operationsSet.add(opPromise);
130
+ opPromise.finally(() => this._operationsSet.delete(opPromise));
131
+ return opPromise;
132
+ }
133
+ }
134
+ expose(WasmWorkerThreadSafeWrapper);
135
+ //# sourceMappingURL=WasmWorkerThreadSafeWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WasmWorkerThreadSafeWrapper.js","sourceRoot":"","sources":["../../../src/wasm/WasmWorkerThreadSafeWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAO3C,MAAM,OAAO,2BAA2B;IAAxC;QACU,kBAAa,GAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1E,mBAAc,GAA0B,IAAI,GAAG,EAAE,CAAC;QAClD,gBAAW,GAAG,IAAI,UAAU,EAAE,CAAC;IA8IzC,CAAC;IA5IC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC;IAC7C,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IACpC,CAAC;IAED,WAAW;IACX,IAAI,CAAC,EAAU,EAAE,MAAoB;QACnC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,KAAK,CAAC,WAAmB,EAAE,MAAmB,EAAE,QAAgB;QAC9D,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC/F,CAAC;IACD,KAAK,CAAC,WAAmB;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,CAAC,WAAmB;QACxB,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,eAAe,CAAC,WAAmB;QACjC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,YAAY;IACZ,eAAe,CAAC,WAAmB,EAAE,MAAmB;QACtD,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/F,CAAC;IACD,eAAe,CAAC,QAAgB,EAAE,QAAgB;QAChD,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9F,CAAC;IACD,mBAAmB,CAAC,WAAmB,EAAE,UAAmB,EAAE,QAAuD;QACnH,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjH,CAAC;IACD,gBAAgB,CAAC,WAAmB,EAAE,WAAmB,EAAE,SAAiB,EAAE,UAAmB,EAAE,QAAuD;QACxJ,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IACtI,CAAC;IACD,eAAe,CAAC,WAAmB,EAAE,eAAuB,EAAE,OAAe,EAAE,UAAmB;QAChG,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAC7H,CAAC;IACD,qBAAqB,CAAC,WAAmB,EAAE,aAAuB,EAAE,OAAe,EAAE,UAAmB,EAAE,QAAuD;QAC/J,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3I,CAAC;IACD,cAAc,CAAC,WAAmB,EAAE,QAAuD;QACzF,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChG,CAAC;IACD,WAAW,CAAC,WAAmB,EAAE,WAAmB,EAAE,SAAiB,EAAE,QAAuD;QAC9H,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrH,CAAC;IACD,eAAe,CAAC,WAAmB,EAAE,WAAmB,EAAE,SAAiB,EAAE,QAAuD;QAClI,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzH,CAAC;IACD,oBAAoB,CAAC,WAAmB,EAAE,SAAiB,EAAE,OAAe;QAC1E,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAChH,CAAC;IACD,uBAAuB,CAAC,WAAmB,EAAE,WAAmB,EAAE,SAAiB,EAAE,UAAmB;QACtG,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IACnI,CAAC;IACD,cAAc,CAAC,WAAmB;QAChC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;IACtF,CAAC;IACD,gBAAgB,CAAC,WAAmB;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,YAAY;IACZ,KAAK,CAAC,cAAc,CAAC,WAAmB;QACtC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;IACtF,CAAC;IACD,cAAc,CAAC,WAAmB,EAAE,KAAa;QAC/C,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7F,CAAC;IACD,mBAAmB,CAAC,WAAmB,EAAE,QAAkB,EAAE,QAAqD;QAChH,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC/G,CAAC;IACD,iBAAiB,CAAC,WAAmB;QACnC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;IACzF,CAAC;IACD,kBAAkB,CAAC,WAAmB;QACpC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1F,CAAC;IACD,gBAAgB,CAAC,WAAmB;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,wBAAwB;IACxB,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,eAAe;YAClC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ;YAC7B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAEjC,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;QAEnC,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YACzB,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAE5D,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC;YAE9D,IAAI,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,kBAAkB;gBACpD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YAEvB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;YAEhC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAElB,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,UAAU;gBACpC,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAEjD,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtC,CAAC,CAAA;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC;IAC7C,CAAC;IACO,KAAK,CAAC,WAAW;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ;YAChC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC;QAC/C,IAAI,QAAQ,IAAI,QAAQ,GAAG,eAAe,EAAE;YAC1C,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;SAC1B;IACH,CAAC;IACO,KAAK,CAAC,aAAa,CAAI,EAAoB;QACjD,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,EAAE,EAAE,CAAC;QACvB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/D,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAED,MAAM,CAAC,2BAA2B,CAAC,CAAC"}
@@ -7,6 +7,7 @@ export interface IWasmBimModule extends EmscriptenModule {
7
7
  getTessellations(filename: string, versionFrom: bigint, versionTo: bigint, compressed?: boolean): VectorOf<WasmTessellation>;
8
8
  getTessellation(filename: string, tessId: string, version: bigint, compressed?: boolean): WasmTessellation;
9
9
  getNodesTessellations(filename: string, versionFrom: bigint, versionTo: bigint, compressed?: boolean): VectorOf<WasmTessellation>;
10
+ getTessellationsByIds(filename: string, version: bigint, tessIds: VectorOf<string>, compressed?: boolean): VectorOf<WasmTessellation>;
10
11
  getNodes(filename: string, versionFrom: bigint, versionTo: bigint): VectorOf<WasmIfcNode>;
11
12
  getProperties(filename: string, elementId: string, version: bigint): VectorOf<WasmElementPropertySet>;
12
13
  getComparedNodes(filename: string, versionFrom: bigint, versionTo: bigint): VectorOf<WasmIfcNode>;
@@ -16,9 +17,10 @@ export interface IWasmBimModule extends EmscriptenModule {
16
17
  getDatabaseVersion(filename: string): bigint;
17
18
  mergeDatabases(targetDBFilename: string, sourceDBFilename: string): void;
18
19
  manualMergeDatabases(targetDBFilename: string, sourceDBFilename: string): void;
19
- auditDatabase(filename: string): void;
20
+ isValidDatabase(filename: string): boolean;
20
21
 
21
22
  getCloudPoints(filename: string, index: number): WasmPointsData;
23
+ getCloudPointsArray(filename: string, indicies: VectorOf<number>): VectorOf<WasmPointsData>;
22
24
  getCloudHierarchy(filename: string): VectorOf<WasmCloudHierarchyItem>;
23
25
  getCloudParameters(filename: string): MapOf<string, string>;
24
26
  getCloudMetadata(filename: string): WasmPointsMetadata;
@@ -28,6 +30,8 @@ export interface IWasmBimModule extends EmscriptenModule {
28
30
 
29
31
  export interface VectorOf<T> extends IDisposable {
30
32
  get(index: number): T;
33
+ set(index: number, value: T): void;
34
+ push_back(value: T): void;
31
35
  size(): number;
32
36
  }
33
37
 
@@ -217,6 +221,7 @@ export interface WasmCloudReader extends IDisposable {
217
221
  close(): void;
218
222
 
219
223
  getCloudPoints(index: number, cmdCacheEnable: boolean): WasmPointsData;
224
+ getCloudPointsArray(indicies: VectorOf<number>, cmdCacheEnable: boolean): VectorOf<WasmPointsData>;
220
225
  getCloudHierarchy(): VectorOf<WasmCloudHierarchyItem>;
221
226
  getCloudParameters(): MapOf<string, string>;
222
227
  getCloudMetadata(): WasmPointsMetadata;