@pilotdev/pilot-bim-dataprovider 24.9.0 → 24.12.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/README.md +9 -9
- package/lib/index.d.ts +3 -3
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/src/file-system/IFileSystem.d.ts +47 -0
- package/lib/src/file-system/IFileSystem.js +179 -0
- package/lib/src/file-system/IFileSystem.js.map +1 -0
- package/lib/src/file-system/IFileSystemCache.d.ts +62 -0
- package/lib/src/file-system/IFileSystemCache.js +154 -0
- package/lib/src/file-system/IFileSystemCache.js.map +1 -0
- package/lib/src/file-system/OPFS.d.ts +35 -0
- package/lib/src/file-system/OPFS.js +182 -0
- package/lib/src/file-system/OPFS.js.map +1 -0
- package/lib/src/file-system/PATH.d.ts +8 -0
- package/lib/src/file-system/PATH.js +34 -0
- package/lib/src/file-system/PATH.js.map +1 -0
- package/lib/src/model/BimDataElement.d.ts +69 -3
- package/lib/src/model/BimDataElement.js +13 -4
- package/lib/src/model/BimDataElement.js.map +1 -1
- package/lib/src/model/BimDataElementPropertySet.js.map +1 -1
- package/lib/src/model/BimDataPart.d.ts +62 -0
- package/lib/src/model/BimDataPart.js +99 -0
- package/lib/src/model/BimDataPart.js.map +1 -0
- package/lib/src/model/BimDataProvider.d.ts +16 -0
- package/lib/src/model/BimDataProvider.js +29 -0
- package/lib/src/model/BimDataProvider.js.map +1 -0
- package/lib/src/model/Consts.d.ts +3 -0
- package/lib/src/model/Consts.js +3 -0
- package/lib/src/model/Consts.js.map +1 -1
- package/lib/src/utils/ViewerTools.d.ts +9 -9
- package/lib/src/utils/ViewerTools.js +73 -38
- package/lib/src/utils/ViewerTools.js.map +1 -1
- package/lib/src/utils/WasmTools.d.ts +10 -6
- package/lib/src/utils/WasmTools.js +66 -32
- package/lib/src/utils/WasmTools.js.map +1 -1
- package/lib/src/wasm/CorsWorker.d.ts +6 -0
- package/lib/src/wasm/CorsWorker.js +20 -0
- package/lib/src/wasm/CorsWorker.js.map +1 -0
- package/lib/src/wasm/pilot_bim_dataprovider.d.ts +136 -7
- package/lib/src/wasm/pilot_bim_dataprovider.js +1 -1
- package/lib/src/wasm/pilot_bim_dataprovider.wasm +0 -0
- package/lib/src/wasm/wasm.worker.d.ts +56 -0
- package/lib/src/wasm/wasm.worker.js +280 -0
- package/lib/src/wasm/wasm.worker.js.map +1 -0
- package/package.json +5 -12
- package/lib/src/model/BimDataModel.d.ts +0 -19
- package/lib/src/model/BimDataModel.js +0 -59
- package/lib/src/model/BimDataModel.js.map +0 -1
- package/lib/src/model/BimDataModelPart.d.ts +0 -40
- package/lib/src/model/BimDataModelPart.js +0 -144
- package/lib/src/model/BimDataModelPart.js.map +0 -1
- package/lib/src/model/BimNodeComparer.d.ts +0 -10
- package/lib/src/model/BimNodeComparer.js +0 -71
- package/lib/src/model/BimNodeComparer.js.map +0 -1
|
Binary file
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { BimDataTessellation } from "../model/BimDataTessellation.js";
|
|
2
|
+
import { BimCloudHierarchyItem, BimCloudMetadata, BimDataElement } from "../model/BimDataElement.js";
|
|
3
|
+
import { BimDataElementPropertySet } from "../model/BimDataElementPropertySet.js";
|
|
4
|
+
interface IWasmWorker {
|
|
5
|
+
init(): Promise<void>;
|
|
6
|
+
open(modelPartId: string, buffer: ArrayBuffer): Promise<void>;
|
|
7
|
+
close(modelPartId: string): Promise<void>;
|
|
8
|
+
dispose(): void;
|
|
9
|
+
flushMemory(): Promise<void>;
|
|
10
|
+
auditModelPart(modelPartId: string): void;
|
|
11
|
+
updateModelPart(modelPartId: string, buffer: ArrayBuffer): Promise<void>;
|
|
12
|
+
getAllTessellations(modelPartId: string): Promise<Map<string, BimDataTessellation>>;
|
|
13
|
+
getTessellations(modelPartId: string, versionFrom: bigint, versionTo: bigint): Promise<Map<string, BimDataTessellation>>;
|
|
14
|
+
getAllElements(modelPartId: string): Promise<BimDataElement[]>;
|
|
15
|
+
getElements(modelPartId: string, versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
|
|
16
|
+
getDiffElements(modelPartId: string, versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
|
|
17
|
+
getElementTessellations(modelPartId: string, versionFrom: bigint, versionTo: bigint): Promise<Map<string, BimDataTessellation>>;
|
|
18
|
+
getElementProperties(modelPartId: string, elementId: string, version: bigint): Promise<BimDataElementPropertySet[]>;
|
|
19
|
+
getAllVersions(modelPartId: string): Promise<bigint[]>;
|
|
20
|
+
getLatestVersion(modelPartId: string): Promise<bigint>;
|
|
21
|
+
cacheCloudPart(modelPartId: string): Promise<void>;
|
|
22
|
+
getCloudPoints(modelPartId: string, index: number): Promise<Float32Array>;
|
|
23
|
+
getCloudHierarchy(modelPartId: string): Promise<BimCloudHierarchyItem[]>;
|
|
24
|
+
getCloudParameters(modelPartId: string): Promise<Map<string, string>>;
|
|
25
|
+
getCloudMetadata(modelPartId: string): Promise<BimCloudMetadata>;
|
|
26
|
+
}
|
|
27
|
+
export declare class WasmWorker implements IWasmWorker {
|
|
28
|
+
private readonly _isSecureContext;
|
|
29
|
+
private _module?;
|
|
30
|
+
private _cachedCloudReaders;
|
|
31
|
+
private _fs;
|
|
32
|
+
constructor();
|
|
33
|
+
init(): Promise<void>;
|
|
34
|
+
open(id: string, buffer: ArrayBuffer): Promise<void>;
|
|
35
|
+
close(modelPartId: string): Promise<void>;
|
|
36
|
+
dispose(): Promise<void>;
|
|
37
|
+
flushMemory(): Promise<void>;
|
|
38
|
+
auditModelPart(modelPartId: string): Promise<void>;
|
|
39
|
+
updateModelPart(modelPartId: string, buffer: ArrayBuffer): Promise<void>;
|
|
40
|
+
getAllTessellations(modelPartId: string): Promise<Map<string, BimDataTessellation>>;
|
|
41
|
+
getTessellations(modelPartId: string, versionFrom: bigint, versionTo: bigint): Promise<Map<string, BimDataTessellation>>;
|
|
42
|
+
getAllElements(modelPartId: string): Promise<BimDataElement[]>;
|
|
43
|
+
getElements(modelPartId: string, versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
|
|
44
|
+
getDiffElements(modelPartId: string, versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
|
|
45
|
+
getElementProperties(modelPartId: string, elementId: string, version: bigint): Promise<BimDataElementPropertySet[]>;
|
|
46
|
+
getElementTessellations(modelPartId: string, versionFrom: bigint, versionTo: bigint): Promise<Map<string, BimDataTessellation>>;
|
|
47
|
+
getAllVersions(modelPartId: string): Promise<bigint[]>;
|
|
48
|
+
getLatestVersion(modelPartId: string): Promise<bigint>;
|
|
49
|
+
cacheCloudPart(modelPartId: string): Promise<void>;
|
|
50
|
+
getCloudPoints(modelPartId: string, index: number): Promise<Float32Array>;
|
|
51
|
+
getCloudHierarchy(modelPartId: string): Promise<BimCloudHierarchyItem[]>;
|
|
52
|
+
getCloudParameters(modelPartId: string): Promise<Map<string, string>>;
|
|
53
|
+
getCloudMetadata(modelPartId: string): Promise<BimCloudMetadata>;
|
|
54
|
+
private runSyncFileOp;
|
|
55
|
+
}
|
|
56
|
+
export {};
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
import * as comlink from "comlink";
|
|
2
|
+
import BimDataProviderModule from "./pilot_bim_dataprovider.js";
|
|
3
|
+
import { WasmTools } from "../utils/WasmTools.js";
|
|
4
|
+
import { BimDataConverter } from "../utils/ViewerTools.js";
|
|
5
|
+
import { DATA_ROOT_FOLDER } from "../model/Consts.js";
|
|
6
|
+
import { AsyncFileSystem, ProxyFileSystem } from "../file-system/IFileSystem.js";
|
|
7
|
+
export class WasmWorker {
|
|
8
|
+
constructor() {
|
|
9
|
+
this._cachedCloudReaders = new Map();
|
|
10
|
+
this._isSecureContext = (self && Object.prototype.hasOwnProperty.call(self, 'isSecureContext ')) ? self.isSecureContext : false;
|
|
11
|
+
this._fs = this._isSecureContext ? new AsyncFileSystem() : new ProxyFileSystem();
|
|
12
|
+
}
|
|
13
|
+
async init() {
|
|
14
|
+
const moduleOverrides = {
|
|
15
|
+
print: (s) => console.log(s),
|
|
16
|
+
printErr: (e) => console.error(e)
|
|
17
|
+
};
|
|
18
|
+
this._module = await BimDataProviderModule(moduleOverrides);
|
|
19
|
+
this._module.FS.mkdir(DATA_ROOT_FOLDER);
|
|
20
|
+
const moduleFS = this._module.FS;
|
|
21
|
+
await this._fs.init();
|
|
22
|
+
this._fs.mountTo(moduleFS, DATA_ROOT_FOLDER);
|
|
23
|
+
}
|
|
24
|
+
async open(id, buffer) {
|
|
25
|
+
this._cachedCloudReaders.get(id)?.close();
|
|
26
|
+
this._cachedCloudReaders.delete(id);
|
|
27
|
+
if (!id)
|
|
28
|
+
id = "id_" + (0xffffffff * Math.random() >>> 0);
|
|
29
|
+
const data = new Uint8Array(buffer);
|
|
30
|
+
if (this._fs.isFileExists(id)) {
|
|
31
|
+
await this._fs.writeFile(id, data);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
await this._fs.makeFile(id, data);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
async close(modelPartId) {
|
|
38
|
+
this._cachedCloudReaders.get(modelPartId)?.close();
|
|
39
|
+
this._cachedCloudReaders.delete(modelPartId);
|
|
40
|
+
if (this._fs.isFileExists(modelPartId)) {
|
|
41
|
+
await this._fs.remove(modelPartId);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
async dispose() {
|
|
45
|
+
for (const [, reader] of this._cachedCloudReaders) {
|
|
46
|
+
await reader.close();
|
|
47
|
+
}
|
|
48
|
+
this._cachedCloudReaders.clear();
|
|
49
|
+
await this._fs.dispose();
|
|
50
|
+
}
|
|
51
|
+
async flushMemory() {
|
|
52
|
+
if (!this._module)
|
|
53
|
+
return;
|
|
54
|
+
const cloudParts = Array.from(this._cachedCloudReaders.keys());
|
|
55
|
+
for (const [, reader] of this._cachedCloudReaders) {
|
|
56
|
+
await reader.close();
|
|
57
|
+
}
|
|
58
|
+
this._cachedCloudReaders.clear();
|
|
59
|
+
await this.init();
|
|
60
|
+
const newModule = this._module;
|
|
61
|
+
for (const cloudId of cloudParts) {
|
|
62
|
+
const reader = new BimCloudPartAccessor(cloudId, newModule);
|
|
63
|
+
await reader.open();
|
|
64
|
+
this._cachedCloudReaders.set(cloudId, reader);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// ModelPart
|
|
68
|
+
auditModelPart(modelPartId) {
|
|
69
|
+
const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
|
|
70
|
+
return this.runSyncFileOp(modelPartId, () => modelPart.auditModelDatabase());
|
|
71
|
+
}
|
|
72
|
+
async updateModelPart(modelPartId, buffer) {
|
|
73
|
+
const module = this._module;
|
|
74
|
+
const modelPart = new BimDataModelPartAccessor(modelPartId, module);
|
|
75
|
+
const origin = modelPart.path;
|
|
76
|
+
const data = new Uint8Array(buffer);
|
|
77
|
+
const diff = "tmp_" + (0xffffffff * Math.random() >>> 0);
|
|
78
|
+
module.FS.createDataFile("/", diff, data, true, true, true);
|
|
79
|
+
if (this._isSecureContext) { // Workaround to merge in secure context:
|
|
80
|
+
// read origin file
|
|
81
|
+
const originData = await this.runSyncFileOp(modelPartId, () => module.FS.readFile(origin));
|
|
82
|
+
// create temp file in MEMFS
|
|
83
|
+
const tmpOrigin = "tmp_" + (0xffffffff * Math.random() >>> 0);
|
|
84
|
+
module.FS.createDataFile("/", tmpOrigin, originData, true, true, true);
|
|
85
|
+
// merge files in MEMFS
|
|
86
|
+
modelPart.merge(tmpOrigin, diff);
|
|
87
|
+
// read merged data
|
|
88
|
+
const mergedData = module.FS.readFile(tmpOrigin);
|
|
89
|
+
// store merged data
|
|
90
|
+
this.runSyncFileOp(modelPartId, () => this._fs.writeFile(modelPartId, mergedData));
|
|
91
|
+
// delete temp file
|
|
92
|
+
module.FS.unlink(tmpOrigin);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
modelPart.merge(origin, diff);
|
|
96
|
+
}
|
|
97
|
+
module.FS.unlink(diff);
|
|
98
|
+
}
|
|
99
|
+
getAllTessellations(modelPartId) {
|
|
100
|
+
const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
|
|
101
|
+
return this.runSyncFileOp(modelPartId, () => modelPart.getAllTessellations());
|
|
102
|
+
}
|
|
103
|
+
getTessellations(modelPartId, versionFrom, versionTo) {
|
|
104
|
+
const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
|
|
105
|
+
return this.runSyncFileOp(modelPartId, () => modelPart.getTessellations(versionFrom, versionTo));
|
|
106
|
+
}
|
|
107
|
+
getAllElements(modelPartId) {
|
|
108
|
+
const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
|
|
109
|
+
return this.runSyncFileOp(modelPartId, () => modelPart.getAllElements());
|
|
110
|
+
}
|
|
111
|
+
getElements(modelPartId, versionFrom, versionTo) {
|
|
112
|
+
const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
|
|
113
|
+
return this.runSyncFileOp(modelPartId, () => modelPart.getElements(versionFrom, versionTo));
|
|
114
|
+
}
|
|
115
|
+
getDiffElements(modelPartId, versionFrom, versionTo) {
|
|
116
|
+
const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
|
|
117
|
+
return this.runSyncFileOp(modelPartId, () => modelPart.getDiffElements(versionFrom, versionTo));
|
|
118
|
+
}
|
|
119
|
+
getElementProperties(modelPartId, elementId, version) {
|
|
120
|
+
const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
|
|
121
|
+
return this.runSyncFileOp(modelPartId, () => modelPart.getElementProperties(elementId, version));
|
|
122
|
+
}
|
|
123
|
+
getElementTessellations(modelPartId, versionFrom, versionTo) {
|
|
124
|
+
const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
|
|
125
|
+
return this.runSyncFileOp(modelPartId, () => modelPart.getElementTessellations(versionFrom, versionTo));
|
|
126
|
+
}
|
|
127
|
+
getAllVersions(modelPartId) {
|
|
128
|
+
const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
|
|
129
|
+
return this.runSyncFileOp(modelPartId, () => modelPart.getAllVersions());
|
|
130
|
+
}
|
|
131
|
+
getLatestVersion(modelPartId) {
|
|
132
|
+
const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
|
|
133
|
+
return this.runSyncFileOp(modelPartId, () => modelPart.getLatestVersion());
|
|
134
|
+
}
|
|
135
|
+
// CloudPart
|
|
136
|
+
async cacheCloudPart(modelPartId) {
|
|
137
|
+
const reader = new BimCloudPartAccessor(modelPartId, this._module, () => this._fs.openSyncFileAccess(modelPartId), () => Promise.resolve(this._fs.closeSyncFileAccess(modelPartId)));
|
|
138
|
+
await this._cachedCloudReaders.get(modelPartId)?.close();
|
|
139
|
+
await reader.open();
|
|
140
|
+
this._cachedCloudReaders.set(modelPartId, reader);
|
|
141
|
+
}
|
|
142
|
+
getCloudPoints(modelPartId, index) {
|
|
143
|
+
const modelPart = this._cachedCloudReaders.get(modelPartId) ?? new BimCloudPartAccessor(modelPartId, this._module);
|
|
144
|
+
return this.runSyncFileOp(modelPartId, () => modelPart.getCloudPoints(index));
|
|
145
|
+
}
|
|
146
|
+
getCloudHierarchy(modelPartId) {
|
|
147
|
+
const modelPart = this._cachedCloudReaders.get(modelPartId) ?? new BimCloudPartAccessor(modelPartId, this._module);
|
|
148
|
+
return this.runSyncFileOp(modelPartId, () => modelPart.getCloudHierarchy());
|
|
149
|
+
}
|
|
150
|
+
getCloudParameters(modelPartId) {
|
|
151
|
+
const modelPart = this._cachedCloudReaders.get(modelPartId) ?? new BimCloudPartAccessor(modelPartId, this._module);
|
|
152
|
+
return this.runSyncFileOp(modelPartId, () => modelPart.getCloudParameters());
|
|
153
|
+
}
|
|
154
|
+
getCloudMetadata(modelPartId) {
|
|
155
|
+
const modelPart = this._cachedCloudReaders.get(modelPartId) ?? new BimCloudPartAccessor(modelPartId, this._module);
|
|
156
|
+
return this.runSyncFileOp(modelPartId, () => modelPart.getCloudMetadata());
|
|
157
|
+
}
|
|
158
|
+
async runSyncFileOp(path, opFunc) {
|
|
159
|
+
try {
|
|
160
|
+
await this._fs.openSyncFileAccess(path);
|
|
161
|
+
return opFunc();
|
|
162
|
+
}
|
|
163
|
+
catch (e) {
|
|
164
|
+
console.error(e);
|
|
165
|
+
throw e;
|
|
166
|
+
}
|
|
167
|
+
finally {
|
|
168
|
+
this._fs.closeSyncFileAccess(path);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
comlink.expose(WasmWorker);
|
|
173
|
+
class BimDataPartAccessor {
|
|
174
|
+
constructor(id, module) {
|
|
175
|
+
this.id = id;
|
|
176
|
+
this._module = module;
|
|
177
|
+
}
|
|
178
|
+
get path() {
|
|
179
|
+
return '/' + DATA_ROOT_FOLDER + '/' + this.id;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
class BimDataModelPartAccessor extends BimDataPartAccessor {
|
|
183
|
+
merge(targetPath, sourcePath) {
|
|
184
|
+
const targetVersion = this._module.getDatabaseVersion(targetPath);
|
|
185
|
+
const sourceVersion = this._module.getDatabaseVersion(sourcePath);
|
|
186
|
+
if (sourceVersion < 2) {
|
|
187
|
+
this._module.auditDatabase(sourcePath);
|
|
188
|
+
}
|
|
189
|
+
if (sourceVersion != targetVersion) {
|
|
190
|
+
this._module.manualMergeDatabases(targetPath, sourcePath);
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
this._module.mergeDatabases(targetPath, sourcePath);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
auditModelDatabase() {
|
|
197
|
+
const databaseVersion = this._module.getDatabaseVersion(this.path);
|
|
198
|
+
if (databaseVersion < 2) {
|
|
199
|
+
this._module.auditDatabase(this.path);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
getAllTessellations() {
|
|
203
|
+
const vts = this._module.getAllTessellations(this.path);
|
|
204
|
+
return BimDataConverter.toBimDataTessellations(this._module, vts, true);
|
|
205
|
+
}
|
|
206
|
+
getTessellations(versionFrom, versionTo) {
|
|
207
|
+
const vts = this._module.getTessellations(this.path, versionFrom, versionTo);
|
|
208
|
+
return BimDataConverter.toBimDataTessellations(this._module, vts, true);
|
|
209
|
+
}
|
|
210
|
+
getAllElements() {
|
|
211
|
+
const nds = this._module.getAllNodes(this.path);
|
|
212
|
+
return BimDataConverter.toToBimDataElements(this._module, nds, true);
|
|
213
|
+
}
|
|
214
|
+
getElements(versionFrom, versionTo) {
|
|
215
|
+
const nds = this._module.getNodes(this.path, versionFrom, versionTo);
|
|
216
|
+
return BimDataConverter.toToBimDataElements(this._module, nds, true);
|
|
217
|
+
}
|
|
218
|
+
getDiffElements(versionFrom, versionTo) {
|
|
219
|
+
const result = this._module.getComparedNodes(this.path, versionFrom, versionTo);
|
|
220
|
+
return BimDataConverter.toToBimDataElements(this._module, result, true);
|
|
221
|
+
}
|
|
222
|
+
getElementTessellations(versionFrom, versionTo) {
|
|
223
|
+
const vts = this._module.getNodesTessellations(this.path, versionFrom, versionTo);
|
|
224
|
+
return BimDataConverter.toBimDataTessellations(this._module, vts, true);
|
|
225
|
+
}
|
|
226
|
+
getElementProperties(elementId, version) {
|
|
227
|
+
const set = this._module.getProperties(this.path, elementId, version);
|
|
228
|
+
return BimDataConverter.toModelElementPropertySet(set, true);
|
|
229
|
+
}
|
|
230
|
+
getAllVersions() {
|
|
231
|
+
const versions = new Array();
|
|
232
|
+
const bimVersions = this._module.getAllVersions(this.path);
|
|
233
|
+
for (let index = 0; index < bimVersions.size(); index++) {
|
|
234
|
+
const version = bimVersions.get(index);
|
|
235
|
+
versions.push(version);
|
|
236
|
+
}
|
|
237
|
+
bimVersions.delete();
|
|
238
|
+
return versions;
|
|
239
|
+
}
|
|
240
|
+
getLatestVersion() {
|
|
241
|
+
return this._module.getLatestVersion(this.path);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
class BimCloudPartAccessor extends BimDataPartAccessor {
|
|
245
|
+
constructor(id, module, openFileFunc, closeFileFunc) {
|
|
246
|
+
super(id, module);
|
|
247
|
+
this.openFileFunc = openFileFunc;
|
|
248
|
+
this.closeFileFunc = closeFileFunc;
|
|
249
|
+
}
|
|
250
|
+
async open() {
|
|
251
|
+
if (this.openFileFunc)
|
|
252
|
+
await this.openFileFunc();
|
|
253
|
+
this._cloudReader = this._module.getCloudReader();
|
|
254
|
+
this._cloudReader.open(this.path);
|
|
255
|
+
}
|
|
256
|
+
async close() {
|
|
257
|
+
this._cloudReader?.close();
|
|
258
|
+
this._cloudReader?.delete();
|
|
259
|
+
this._cloudReader = undefined;
|
|
260
|
+
if (this.closeFileFunc)
|
|
261
|
+
await this.closeFileFunc();
|
|
262
|
+
}
|
|
263
|
+
getCloudPoints(index) {
|
|
264
|
+
const pointsData = this._cloudReader ? this._cloudReader.getCloudPoints(index, true) : this._module.getCloudPoints(this.path, index);
|
|
265
|
+
return BimDataConverter.toCloudPoints(this._module, pointsData, true);
|
|
266
|
+
}
|
|
267
|
+
getCloudHierarchy() {
|
|
268
|
+
const result = this._cloudReader ? this._cloudReader.getCloudHierarchy() : this._module.getCloudHierarchy(this.path);
|
|
269
|
+
return BimDataConverter.toBimCloudHierarchy(result, true);
|
|
270
|
+
}
|
|
271
|
+
getCloudParameters() {
|
|
272
|
+
const result = this._cloudReader ? this._cloudReader.getCloudParameters() : this._module.getCloudParameters(this.path);
|
|
273
|
+
return WasmTools.wasmMapToMap(result, true);
|
|
274
|
+
}
|
|
275
|
+
getCloudMetadata() {
|
|
276
|
+
const result = this._cloudReader ? this._cloudReader.getCloudMetadata() : this._module.getCloudMetadata(this.path);
|
|
277
|
+
return BimDataConverter.toCloudMetadata(result, true);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
//# sourceMappingURL=wasm.worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm.worker.js","sourceRoot":"","sources":["../../../src/wasm/wasm.worker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pilotdev/pilot-bim-dataprovider",
|
|
3
|
-
"version": "24.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "24.12.0",
|
|
4
|
+
"description": "The package for reading data from a information model data container.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"files": [
|
|
@@ -22,20 +22,13 @@
|
|
|
22
22
|
],
|
|
23
23
|
"author": "JSC Ascon",
|
|
24
24
|
"license": "MIT",
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"@types/jest": "28.1.3",
|
|
28
|
-
"jest": "^29.7.0",
|
|
29
|
-
"jest-environment-jsdom": "^29.7.0",
|
|
30
|
-
"jest-mock-extended": "2.0.6",
|
|
31
|
-
"jest-teamcity-reporter": "0.9.0",
|
|
32
|
-
"ts-jest": "28.0.3",
|
|
33
|
-
"typescript": "4.9.4"
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"comlink": "4.2.0"
|
|
34
27
|
},
|
|
35
28
|
"exclude": [
|
|
36
29
|
"node_modules",
|
|
37
30
|
"lib",
|
|
38
31
|
"build.js",
|
|
39
|
-
"
|
|
32
|
+
"__tests__"
|
|
40
33
|
]
|
|
41
34
|
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { IBimDataModelPart } from './BimDataModelPart.js';
|
|
2
|
-
export interface IBimDataModel {
|
|
3
|
-
init(): Promise<void>;
|
|
4
|
-
openModelPart(id: string, buffer: ArrayBuffer): IBimDataModelPart | undefined;
|
|
5
|
-
closeModelPart(id: string): void;
|
|
6
|
-
getModelPart(id: string): IBimDataModelPart | undefined;
|
|
7
|
-
dispose(): void;
|
|
8
|
-
}
|
|
9
|
-
export declare class BimDataModel implements IBimDataModel {
|
|
10
|
-
private _module?;
|
|
11
|
-
private _modelParts;
|
|
12
|
-
private _isDisposed;
|
|
13
|
-
constructor();
|
|
14
|
-
init(): Promise<void>;
|
|
15
|
-
openModelPart(id: string, buffer: ArrayBuffer): IBimDataModelPart | undefined;
|
|
16
|
-
closeModelPart(id: string): void;
|
|
17
|
-
getModelPart(id: string): IBimDataModelPart | undefined;
|
|
18
|
-
dispose(): void;
|
|
19
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import BimDataProviderModule from '../wasm/pilot_bim_dataprovider.js';
|
|
11
|
-
import { BimDataModelPart } from './BimDataModelPart.js';
|
|
12
|
-
export class BimDataModel {
|
|
13
|
-
constructor() {
|
|
14
|
-
this._isDisposed = false;
|
|
15
|
-
this._modelParts = new Map();
|
|
16
|
-
}
|
|
17
|
-
init() {
|
|
18
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
19
|
-
const moduleOverrides = {
|
|
20
|
-
print: (s) => {
|
|
21
|
-
console.log(s);
|
|
22
|
-
},
|
|
23
|
-
printErr: (e) => {
|
|
24
|
-
console.error(e);
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
this._module = yield BimDataProviderModule(moduleOverrides);
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
openModelPart(id, buffer) {
|
|
31
|
-
if (!buffer || this._isDisposed)
|
|
32
|
-
return undefined;
|
|
33
|
-
if (!id)
|
|
34
|
-
id = "id_" + (0xffffffff * Math.random() >>> 0);
|
|
35
|
-
const mp = new BimDataModelPart(id, this._module);
|
|
36
|
-
mp.open(buffer);
|
|
37
|
-
this._modelParts.set(id, mp);
|
|
38
|
-
return mp;
|
|
39
|
-
}
|
|
40
|
-
closeModelPart(id) {
|
|
41
|
-
// dispose model
|
|
42
|
-
const mp = this._modelParts.get(id);
|
|
43
|
-
mp === null || mp === void 0 ? void 0 : mp.dispose();
|
|
44
|
-
this._modelParts.delete(id);
|
|
45
|
-
}
|
|
46
|
-
getModelPart(id) {
|
|
47
|
-
return this._modelParts.get(id);
|
|
48
|
-
}
|
|
49
|
-
dispose() {
|
|
50
|
-
// dispose module
|
|
51
|
-
this._modelParts.forEach(p => {
|
|
52
|
-
p.dispose();
|
|
53
|
-
});
|
|
54
|
-
this._modelParts.clear();
|
|
55
|
-
this._isDisposed = true;
|
|
56
|
-
this._module = undefined;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=BimDataModel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BimDataModel.js","sourceRoot":"","sources":["../../../src/model/BimDataModel.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,qBAAqB,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAqB,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAU5E,MAAM,OAAO,YAAY;IAMvB;QAFQ,gBAAW,GAAY,KAAK,CAAC;QAGnC,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAA6B,CAAC;IAC1D,CAAC;IAEK,IAAI;;YACR,MAAM,eAAe,GAA8B;gBACjD,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;oBACX,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC;gBACD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;oBACd,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC;aACF,CAAC;YAEF,IAAI,CAAC,OAAO,GAAG,MAAM,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAC9D,CAAC;KAAA;IAED,aAAa,CAAC,EAAU,EAAE,MAAmB;QAC3C,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW;YAC7B,OAAO,SAAS,CAAC;QAEnB,IAAI,CAAC,EAAE;YACL,EAAE,GAAG,KAAK,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAClD,MAAM,EAAE,GAAG,IAAI,gBAAgB,CAAC,EAAE,EAAkB,IAAI,CAAC,OAAO,CAAC,CAAC;QAClE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,cAAc,CAAC,EAAU;QACvB,iBAAiB;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,OAAO,EAAE,CAAC;QACd,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,YAAY,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,OAAO;QACL,iBAAiB;QACjB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC3B,CAAC,CAAC,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { IWasmBimModule } from "../wasm/pilot_bim_dataprovider.js";
|
|
2
|
-
import { BimDataElement } from "./BimDataElement.js";
|
|
3
|
-
import { BimDataElementPropertySet } from "./BimDataElementPropertySet.js";
|
|
4
|
-
import { BimDataTessellation } from "./BimDataTessellation.js";
|
|
5
|
-
export interface IBimDataModelPart {
|
|
6
|
-
id: string;
|
|
7
|
-
open(buffer: ArrayBuffer): void;
|
|
8
|
-
update(buffer: ArrayBuffer): void;
|
|
9
|
-
close(): void;
|
|
10
|
-
dispose(): void;
|
|
11
|
-
getAllTessellations(): Map<string, BimDataTessellation>;
|
|
12
|
-
getTessellations(versionFrom: bigint, versionTo: bigint): Map<string, BimDataTessellation>;
|
|
13
|
-
getAllElements(): BimDataElement[];
|
|
14
|
-
getElements(versionFrom: bigint, versionTo: bigint): BimDataElement[];
|
|
15
|
-
getElementsToCompare(versionFrom: bigint, versionTo: bigint): BimDataElement[];
|
|
16
|
-
getElementProperties(elementId: string, version: bigint): BimDataElementPropertySet[];
|
|
17
|
-
getAllVersions(): bigint[];
|
|
18
|
-
getLatestVersion(): bigint;
|
|
19
|
-
}
|
|
20
|
-
export declare class BimDataModelPart implements IBimDataModelPart {
|
|
21
|
-
readonly id: string;
|
|
22
|
-
private _module;
|
|
23
|
-
private _isOpen;
|
|
24
|
-
private _isDisposed;
|
|
25
|
-
constructor(id: string, module: IWasmBimModule);
|
|
26
|
-
dispose(): void;
|
|
27
|
-
open(buffer: ArrayBuffer): void;
|
|
28
|
-
update(buffer: ArrayBuffer): void;
|
|
29
|
-
close(): void;
|
|
30
|
-
getAllTessellations(): Map<string, BimDataTessellation>;
|
|
31
|
-
getTessellations(versionFrom: bigint, versionTo: bigint): Map<string, BimDataTessellation>;
|
|
32
|
-
getAllElements(): BimDataElement[];
|
|
33
|
-
getElements(versionFrom: bigint, versionTo: bigint): BimDataElement[];
|
|
34
|
-
getElementsToCompare(versionFrom: bigint, versionTo: bigint): BimDataElement[];
|
|
35
|
-
getElementProperties(elementId: string, version: bigint): BimDataElementPropertySet[];
|
|
36
|
-
getAllVersions(): bigint[];
|
|
37
|
-
getLatestVersion(): bigint;
|
|
38
|
-
private get _path();
|
|
39
|
-
private checkIsOpen;
|
|
40
|
-
}
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import { BimDataConverter } from "../utils/ViewerTools.js";
|
|
2
|
-
import { WasmTools } from "../utils/WasmTools.js";
|
|
3
|
-
import { BimDataNodeState } from "./BimDataElement.js";
|
|
4
|
-
import { BimNodeComparer } from "./BimNodeComparer.js";
|
|
5
|
-
export class BimDataModelPart {
|
|
6
|
-
constructor(id, module) {
|
|
7
|
-
this.id = id;
|
|
8
|
-
this._module = module;
|
|
9
|
-
this._isOpen = false;
|
|
10
|
-
this._isDisposed = false;
|
|
11
|
-
}
|
|
12
|
-
dispose() {
|
|
13
|
-
this.close();
|
|
14
|
-
this._isDisposed = true;
|
|
15
|
-
}
|
|
16
|
-
open(buffer) {
|
|
17
|
-
if (this._isDisposed)
|
|
18
|
-
return;
|
|
19
|
-
const data = new Uint8Array(buffer);
|
|
20
|
-
if (WasmTools.isFileExists(this._path, this._module)) {
|
|
21
|
-
this._module.FS.writeFile(this._path, data);
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
this._module.FS.createDataFile("/", this.id, data, true, true, true);
|
|
25
|
-
}
|
|
26
|
-
this._isOpen = true;
|
|
27
|
-
const databaseVersion = this._module.getDatabaseVersion(this.id);
|
|
28
|
-
if (databaseVersion < 2) {
|
|
29
|
-
this._module.auditDatabase(this.id);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
update(buffer) {
|
|
33
|
-
if (this._isDisposed)
|
|
34
|
-
return;
|
|
35
|
-
const data = new Uint8Array(buffer);
|
|
36
|
-
const tmpFileName = "tmp_" + (0xffffffff * Math.random() >>> 0);
|
|
37
|
-
this._module.FS.createDataFile("/", tmpFileName, data, true, true, true);
|
|
38
|
-
const targetVersion = this._module.getDatabaseVersion(this.id);
|
|
39
|
-
const sourceVersion = this._module.getDatabaseVersion(tmpFileName);
|
|
40
|
-
if (sourceVersion < 2) {
|
|
41
|
-
this._module.auditDatabase(tmpFileName);
|
|
42
|
-
}
|
|
43
|
-
if (sourceVersion != targetVersion) {
|
|
44
|
-
this._module.manualMergeDatabases(this.id, tmpFileName);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
this._module.mergeDatabases(this.id, tmpFileName);
|
|
48
|
-
}
|
|
49
|
-
if (WasmTools.isFileExists(tmpFileName, this._module)) {
|
|
50
|
-
this._module.FS.unlink(tmpFileName);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
close() {
|
|
54
|
-
if (this._isDisposed)
|
|
55
|
-
return;
|
|
56
|
-
if (WasmTools.isFileExists(this._path, this._module)) {
|
|
57
|
-
this._module.FS.unlink(this._path);
|
|
58
|
-
}
|
|
59
|
-
this._isOpen = false;
|
|
60
|
-
}
|
|
61
|
-
getAllTessellations() {
|
|
62
|
-
this.checkIsOpen();
|
|
63
|
-
const vts = this._module.getAllTessellations(this.id);
|
|
64
|
-
return BimDataConverter.toBimDataTessellations(vts, true);
|
|
65
|
-
}
|
|
66
|
-
getTessellations(versionFrom, versionTo) {
|
|
67
|
-
this.checkIsOpen();
|
|
68
|
-
const vts = this._module.getTessellations(this.id, versionFrom, versionTo);
|
|
69
|
-
return BimDataConverter.toBimDataTessellations(vts, true);
|
|
70
|
-
}
|
|
71
|
-
getAllElements() {
|
|
72
|
-
this.checkIsOpen();
|
|
73
|
-
const nds = this._module.getAllNodes(this.id);
|
|
74
|
-
return BimDataConverter.toToBimDataElements(nds, true);
|
|
75
|
-
}
|
|
76
|
-
getElements(versionFrom, versionTo) {
|
|
77
|
-
this.checkIsOpen();
|
|
78
|
-
const nds = this._module.getNodes(this.id, versionFrom, versionTo);
|
|
79
|
-
return BimDataConverter.toToBimDataElements(nds, true);
|
|
80
|
-
}
|
|
81
|
-
getElementsToCompare(versionFrom, versionTo) {
|
|
82
|
-
this.checkIsOpen();
|
|
83
|
-
const isReverse = versionTo < versionFrom;
|
|
84
|
-
if (isReverse) {
|
|
85
|
-
const tmp = versionFrom;
|
|
86
|
-
versionFrom = versionTo;
|
|
87
|
-
versionTo = tmp;
|
|
88
|
-
}
|
|
89
|
-
const pairsVector = this._module.getNodesToCompare(this.id, versionFrom, versionTo);
|
|
90
|
-
const bimDataPairs = BimDataConverter.toToBimDataPairs(pairsVector, true);
|
|
91
|
-
const result = new Array();
|
|
92
|
-
for (let i = 0; i < bimDataPairs.length; i++) {
|
|
93
|
-
const oldNode = isReverse ? bimDataPairs[i].newNode : bimDataPairs[i].oldNode;
|
|
94
|
-
const newNode = isReverse ? bimDataPairs[i].oldNode : bimDataPairs[i].newNode;
|
|
95
|
-
if (oldNode.objectState == BimDataNodeState.Removed && newNode.objectState == BimDataNodeState.Removed)
|
|
96
|
-
continue;
|
|
97
|
-
if (newNode.objectState == BimDataNodeState.Removed) {
|
|
98
|
-
result.push(newNode);
|
|
99
|
-
continue;
|
|
100
|
-
}
|
|
101
|
-
if (oldNode.objectState == BimDataNodeState.Removed) {
|
|
102
|
-
newNode.objectState == BimDataNodeState.Added;
|
|
103
|
-
result.push(newNode);
|
|
104
|
-
continue;
|
|
105
|
-
}
|
|
106
|
-
if (versionFrom != versionTo) {
|
|
107
|
-
const oldProps = this.getElementProperties(oldNode.guid, oldNode.revision);
|
|
108
|
-
const newProps = this.getElementProperties(newNode.guid, newNode.revision);
|
|
109
|
-
const nodeState = BimNodeComparer.compareNodes(oldNode, oldProps, newNode, newProps);
|
|
110
|
-
newNode.objectState = nodeState;
|
|
111
|
-
result.push(newNode);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
return result;
|
|
115
|
-
}
|
|
116
|
-
getElementProperties(elementId, version) {
|
|
117
|
-
this.checkIsOpen();
|
|
118
|
-
const set = this._module.getProperties(this.id, elementId, version);
|
|
119
|
-
return BimDataConverter.toModelElementPropertySet(set, true);
|
|
120
|
-
}
|
|
121
|
-
getAllVersions() {
|
|
122
|
-
this.checkIsOpen();
|
|
123
|
-
const versions = new Array();
|
|
124
|
-
const bimVersions = this._module.getAllVersions(this.id);
|
|
125
|
-
for (let index = 0; index < bimVersions.size(); index++) {
|
|
126
|
-
const version = bimVersions.get(index);
|
|
127
|
-
versions.push(version);
|
|
128
|
-
}
|
|
129
|
-
bimVersions.delete();
|
|
130
|
-
return versions;
|
|
131
|
-
}
|
|
132
|
-
getLatestVersion() {
|
|
133
|
-
this.checkIsOpen();
|
|
134
|
-
return this._module.getLatestVersion(this._path);
|
|
135
|
-
}
|
|
136
|
-
get _path() {
|
|
137
|
-
return "/" + this.id;
|
|
138
|
-
}
|
|
139
|
-
checkIsOpen() {
|
|
140
|
-
if (!this._isOpen)
|
|
141
|
-
throw new Error("Model part is not open. Please call method open first.");
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
//# sourceMappingURL=BimDataModelPart.js.map
|