@pilotdev/pilot-bim-dataprovider 26.1.0 → 26.3.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/__tests__/test_utils/BinaryCloudTestUtils.d.ts +21 -0
- package/lib/__tests__/test_utils/BinaryCloudTestUtils.js +231 -0
- package/lib/__tests__/test_utils/BinaryCloudTestUtils.js.map +1 -0
- package/lib/src/BimDataProviderApi.d.ts +1 -1
- package/lib/src/model/BimDataClasses.d.ts +22 -10
- package/lib/src/model/BimDataClasses.js +18 -1
- package/lib/src/model/BimDataClasses.js.map +1 -1
- package/lib/src/model/BimDataCloudPart.d.ts +1 -1
- package/lib/src/model/BimDataCloudPart.js +2 -2
- package/lib/src/model/BimDataCloudPart.js.map +1 -1
- package/lib/src/utils/Consts.d.ts +7 -0
- package/lib/src/utils/Consts.js +8 -1
- package/lib/src/utils/Consts.js.map +1 -1
- package/lib/src/utils/ViewerTools.d.ts +14 -7
- package/lib/src/utils/ViewerTools.js +67 -20
- package/lib/src/utils/ViewerTools.js.map +1 -1
- package/lib/src/wasm/WorkerApi.d.ts +1 -1
- package/lib/src/wasm/cloud_readers/BinaryCloudReader.d.ts +18 -5
- package/lib/src/wasm/cloud_readers/BinaryCloudReader.js +219 -202
- package/lib/src/wasm/cloud_readers/BinaryCloudReader.js.map +1 -1
- package/lib/src/wasm/cloud_readers/ICacheableBinaryCloud.d.ts +42 -0
- package/lib/src/wasm/cloud_readers/ICacheableBinaryCloud.js +229 -0
- package/lib/src/wasm/cloud_readers/ICacheableBinaryCloud.js.map +1 -0
- package/lib/src/wasm/cloud_readers/ICloudReader.d.ts +1 -1
- package/lib/src/wasm/cloud_readers/WasmCloudReader.d.ts +1 -1
- package/lib/src/wasm/cloud_readers/WasmCloudReader.js +4 -5
- package/lib/src/wasm/cloud_readers/WasmCloudReader.js.map +1 -1
- package/lib/src/wasm/data_accessors/CloudPartAccessor.d.ts +1 -1
- package/lib/src/wasm/data_accessors/CloudPartAccessor.js +6 -6
- package/lib/src/wasm/data_accessors/CloudPartAccessor.js.map +1 -1
- package/lib/src/wasm/data_accessors/FileAccessor.d.ts +1 -1
- package/lib/src/wasm/data_accessors/FileAccessor.js +50 -35
- package/lib/src/wasm/data_accessors/FileAccessor.js.map +1 -1
- package/lib/src/wasm/file-system/ChunkCacheFile.d.ts +34 -0
- package/lib/src/wasm/file-system/ChunkCacheFile.js +254 -0
- package/lib/src/wasm/file-system/ChunkCacheFile.js.map +1 -0
- package/lib/src/wasm/file-system/File.d.ts +4 -1
- package/lib/src/wasm/file-system/File.js +11 -3
- package/lib/src/wasm/file-system/File.js.map +1 -1
- package/lib/src/wasm/file-system/PartialFile.d.ts +3 -2
- package/lib/src/wasm/file-system/PartialFile.js +26 -32
- package/lib/src/wasm/file-system/PartialFile.js.map +1 -1
- package/lib/src/wasm/file-system/RemoteFile.d.ts +24 -0
- package/lib/src/wasm/file-system/RemoteFile.js +106 -0
- package/lib/src/wasm/file-system/RemoteFile.js.map +1 -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
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import { BimCloudMetadata, BimCloudHierarchyItem } from "../../model/BimDataClasses.js";
|
|
2
|
+
import { BinaryConverter } from "../../utils/ViewerTools.js";
|
|
3
|
+
import { OPFS_BIM_CACHE_CHUNK_EXT } from "../../utils/Consts.js";
|
|
4
|
+
export class BinaryCloudChunks {
|
|
5
|
+
_chunkTable = [];
|
|
6
|
+
itemSize = 12;
|
|
7
|
+
name = "chunkTable" + OPFS_BIM_CACHE_CHUNK_EXT;
|
|
8
|
+
countToRead = 0;
|
|
9
|
+
get(index) {
|
|
10
|
+
return this._chunkTable[index];
|
|
11
|
+
}
|
|
12
|
+
getData() {
|
|
13
|
+
return this._chunkTable;
|
|
14
|
+
}
|
|
15
|
+
readFromBuffer(buffer) {
|
|
16
|
+
let offset = 0;
|
|
17
|
+
const chunkCount = BinaryConverter.fromU32(buffer, offset);
|
|
18
|
+
offset += 4;
|
|
19
|
+
if (chunkCount * this.itemSize + offset < buffer.byteLength)
|
|
20
|
+
throw new Error("Invalid chunk table size.");
|
|
21
|
+
this._chunkTable = [];
|
|
22
|
+
while (offset < buffer.byteLength) {
|
|
23
|
+
const chunkEntry = {
|
|
24
|
+
offset: Number(BinaryConverter.fromI64(buffer, offset)),
|
|
25
|
+
size: BinaryConverter.fromI32(buffer, offset + 8)
|
|
26
|
+
};
|
|
27
|
+
this._chunkTable.push(chunkEntry);
|
|
28
|
+
offset += this.itemSize;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
bytesToRead() {
|
|
32
|
+
return this.countToRead * this.itemSize + 4;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export class BinaryCloudNodes {
|
|
36
|
+
_hierarchy = [];
|
|
37
|
+
_nodeMap = new Map();
|
|
38
|
+
itemSize = 56;
|
|
39
|
+
name = "hierarchy" + OPFS_BIM_CACHE_CHUNK_EXT;
|
|
40
|
+
count = 0;
|
|
41
|
+
getData() {
|
|
42
|
+
return this._hierarchy;
|
|
43
|
+
}
|
|
44
|
+
getNodeByDataIndex(dataIndex) {
|
|
45
|
+
return this._nodeMap.get(dataIndex) ?? this._hierarchy.find(node => node.dataIndex == dataIndex);
|
|
46
|
+
}
|
|
47
|
+
getNodesByChunkId(chunkId) {
|
|
48
|
+
return this._hierarchy.filter(node => node.chunkId == chunkId);
|
|
49
|
+
}
|
|
50
|
+
readFromBuffer(buffer) {
|
|
51
|
+
this._hierarchy = [];
|
|
52
|
+
let offset = 0;
|
|
53
|
+
while (offset < buffer.byteLength) {
|
|
54
|
+
// offset: 0
|
|
55
|
+
const index = BinaryConverter.fromI32(buffer, offset);
|
|
56
|
+
offset += 4;
|
|
57
|
+
// offset: 4
|
|
58
|
+
const dataIndex = BinaryConverter.fromI32(buffer, offset);
|
|
59
|
+
offset += 4;
|
|
60
|
+
// offset: 8
|
|
61
|
+
const chunkId = BinaryConverter.fromI32(buffer, offset);
|
|
62
|
+
offset += 4;
|
|
63
|
+
// offset: 12
|
|
64
|
+
const chunkOffset = BinaryConverter.fromU32(buffer, offset);
|
|
65
|
+
offset += 4;
|
|
66
|
+
// offset: 16
|
|
67
|
+
const pointSize = BinaryConverter.fromU32(buffer, offset);
|
|
68
|
+
offset += 4;
|
|
69
|
+
// offset: 20
|
|
70
|
+
const numPoints = BinaryConverter.fromU32(buffer, offset);
|
|
71
|
+
offset += 4;
|
|
72
|
+
// offset: 24
|
|
73
|
+
const childNodesCount = BinaryConverter.fromU32(buffer, offset);
|
|
74
|
+
offset += 4;
|
|
75
|
+
// offset: 28
|
|
76
|
+
const min = { x: 0.0, y: 0.0, z: 0.0 };
|
|
77
|
+
min.x = BinaryConverter.fromF32(buffer, offset);
|
|
78
|
+
offset += 4;
|
|
79
|
+
min.y = BinaryConverter.fromF32(buffer, offset);
|
|
80
|
+
offset += 4;
|
|
81
|
+
min.z = BinaryConverter.fromF32(buffer, offset);
|
|
82
|
+
offset += 4;
|
|
83
|
+
// offset: 40
|
|
84
|
+
const max = { x: 0.0, y: 0.0, z: 0.0 };
|
|
85
|
+
max.x = BinaryConverter.fromF32(buffer, offset);
|
|
86
|
+
offset += 4;
|
|
87
|
+
max.y = BinaryConverter.fromF32(buffer, offset);
|
|
88
|
+
offset += 4;
|
|
89
|
+
max.z = BinaryConverter.fromF32(buffer, offset);
|
|
90
|
+
offset += 4;
|
|
91
|
+
// offset: 52
|
|
92
|
+
const type = buffer[offset];
|
|
93
|
+
offset++;
|
|
94
|
+
// offset: 53
|
|
95
|
+
const mask = buffer[offset];
|
|
96
|
+
offset++;
|
|
97
|
+
// offset: 54
|
|
98
|
+
offset += 2;
|
|
99
|
+
// offset: 56
|
|
100
|
+
const node = new BimCloudHierarchyItem(index, dataIndex, type, mask, numPoints, min, max, chunkOffset, chunkId, pointSize, 0, childNodesCount);
|
|
101
|
+
this._hierarchy.push(node);
|
|
102
|
+
this._nodeMap.set(node.dataIndex, node);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
bytesToRead() {
|
|
106
|
+
return this.count * this.itemSize;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
export class BinaryCloudHeader {
|
|
110
|
+
static size = 136;
|
|
111
|
+
_header = new BimCloudMetadata();
|
|
112
|
+
itemSize = BinaryCloudHeader.size;
|
|
113
|
+
name = "header" + OPFS_BIM_CACHE_CHUNK_EXT;
|
|
114
|
+
getData() {
|
|
115
|
+
return this._header;
|
|
116
|
+
}
|
|
117
|
+
readFromBuffer(buffer) {
|
|
118
|
+
if (buffer.length < this.itemSize)
|
|
119
|
+
throw new Error("Invalid binary cloud header size.");
|
|
120
|
+
let offset = 0;
|
|
121
|
+
// offset: 0
|
|
122
|
+
//const signature = [byteArray[0], byteArray[1], byteArray[2], byteArray[3]];
|
|
123
|
+
offset += 4;
|
|
124
|
+
// offset: 4
|
|
125
|
+
const version = BinaryConverter.fromU32(buffer, offset);
|
|
126
|
+
offset += 4;
|
|
127
|
+
// offset: 8
|
|
128
|
+
const fileSize = BinaryConverter.fromI64(buffer, offset);
|
|
129
|
+
offset += 8;
|
|
130
|
+
// offset: 16
|
|
131
|
+
const nodesOffset = BinaryConverter.fromI64(buffer, offset);
|
|
132
|
+
offset += 8;
|
|
133
|
+
// offset: 24
|
|
134
|
+
const pointsOffset = BinaryConverter.fromI64(buffer, offset);
|
|
135
|
+
offset += 8;
|
|
136
|
+
// offset: 32
|
|
137
|
+
const chunkTableOffset = BinaryConverter.fromI64(buffer, offset);
|
|
138
|
+
offset += 8;
|
|
139
|
+
// offset: 40
|
|
140
|
+
const numPoints = BinaryConverter.fromU64(buffer, offset);
|
|
141
|
+
offset += 8;
|
|
142
|
+
// offset: 48
|
|
143
|
+
const numNodes = BinaryConverter.fromU32(buffer, offset);
|
|
144
|
+
offset += 4;
|
|
145
|
+
// offset: 52
|
|
146
|
+
const numChunks = BinaryConverter.fromU32(buffer, offset);
|
|
147
|
+
offset += 4;
|
|
148
|
+
// offset: 56
|
|
149
|
+
const depth = BinaryConverter.fromU32(buffer, offset);
|
|
150
|
+
offset += 4;
|
|
151
|
+
// offset: 60
|
|
152
|
+
const baseSpacing = BinaryConverter.fromF32(buffer, offset);
|
|
153
|
+
offset += 4;
|
|
154
|
+
// offset: 64
|
|
155
|
+
const scale = BinaryConverter.fromF64(buffer, offset);
|
|
156
|
+
offset += 8;
|
|
157
|
+
// offset: 72
|
|
158
|
+
const min = { x: 0.0, y: 0.0, z: 0.0 };
|
|
159
|
+
min.x = BinaryConverter.fromF32(buffer, offset);
|
|
160
|
+
offset += 4;
|
|
161
|
+
min.y = BinaryConverter.fromF32(buffer, offset);
|
|
162
|
+
offset += 4;
|
|
163
|
+
min.z = BinaryConverter.fromF32(buffer, offset);
|
|
164
|
+
offset += 4;
|
|
165
|
+
// offset: 84
|
|
166
|
+
const max = { x: 0.0, y: 0.0, z: 0.0 };
|
|
167
|
+
max.x = BinaryConverter.fromF32(buffer, offset);
|
|
168
|
+
offset += 4;
|
|
169
|
+
max.y = BinaryConverter.fromF32(buffer, offset);
|
|
170
|
+
offset += 4;
|
|
171
|
+
max.z = BinaryConverter.fromF32(buffer, offset);
|
|
172
|
+
offset += 4;
|
|
173
|
+
// offset: 96
|
|
174
|
+
const rootBoxMin = { x: 0.0, y: 0.0, z: 0.0 };
|
|
175
|
+
rootBoxMin.x = BinaryConverter.fromF32(buffer, offset);
|
|
176
|
+
offset += 4;
|
|
177
|
+
rootBoxMin.y = BinaryConverter.fromF32(buffer, offset);
|
|
178
|
+
offset += 4;
|
|
179
|
+
rootBoxMin.z = BinaryConverter.fromF32(buffer, offset);
|
|
180
|
+
offset += 4;
|
|
181
|
+
// offset: 108
|
|
182
|
+
const rootBoxMax = { x: 0.0, y: 0.0, z: 0.0 };
|
|
183
|
+
rootBoxMax.x = BinaryConverter.fromF32(buffer, offset);
|
|
184
|
+
offset += 4;
|
|
185
|
+
rootBoxMax.y = BinaryConverter.fromF32(buffer, offset);
|
|
186
|
+
offset += 4;
|
|
187
|
+
rootBoxMax.z = BinaryConverter.fromF32(buffer, offset);
|
|
188
|
+
offset += 4;
|
|
189
|
+
// offset: 120
|
|
190
|
+
const centerPosition = { x: 0.0, y: 0.0, z: 0.0 };
|
|
191
|
+
centerPosition.x = BinaryConverter.fromF32(buffer, offset);
|
|
192
|
+
offset += 4;
|
|
193
|
+
centerPosition.y = BinaryConverter.fromF32(buffer, offset);
|
|
194
|
+
offset += 4;
|
|
195
|
+
centerPosition.z = BinaryConverter.fromF32(buffer, offset);
|
|
196
|
+
offset += 4;
|
|
197
|
+
// offset: 132
|
|
198
|
+
const pointFormat = buffer[offset];
|
|
199
|
+
offset++;
|
|
200
|
+
// offset: 133
|
|
201
|
+
const bytesPerPoint = buffer[offset];
|
|
202
|
+
offset++;
|
|
203
|
+
// offset: 134
|
|
204
|
+
offset += 2;
|
|
205
|
+
// offset: 136
|
|
206
|
+
this._header.version = version;
|
|
207
|
+
this._header.fileSize = Number(fileSize);
|
|
208
|
+
this._header.nodesOffset = Number(nodesOffset);
|
|
209
|
+
this._header.pointsOffset = Number(pointsOffset);
|
|
210
|
+
this._header.chunkTableOffset = Number(chunkTableOffset);
|
|
211
|
+
this._header.numPoints = Number(numPoints);
|
|
212
|
+
this._header.nodesCount = numNodes;
|
|
213
|
+
this._header.chunkCount = numChunks;
|
|
214
|
+
this._header.depth = depth;
|
|
215
|
+
this._header.baseSpacing = baseSpacing;
|
|
216
|
+
this._header.posScale = { x: scale, y: scale, z: scale };
|
|
217
|
+
this._header.min = min;
|
|
218
|
+
this._header.max = max;
|
|
219
|
+
this._header.root_min = rootBoxMin;
|
|
220
|
+
this._header.root_max = rootBoxMax;
|
|
221
|
+
this._header.posOffset = centerPosition;
|
|
222
|
+
this._header.pointFormat = pointFormat;
|
|
223
|
+
this._header.bytesPerPoint = bytesPerPoint;
|
|
224
|
+
}
|
|
225
|
+
bytesToRead() {
|
|
226
|
+
return BinaryCloudHeader.size;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=ICacheableBinaryCloud.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ICacheableBinaryCloud.js","sourceRoot":"","sources":["../../../../src/wasm/cloud_readers/ICacheableBinaryCloud.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { BimCloudHierarchyItem, BimCloudMetadata } from "../../model/BimDataClas
|
|
|
2
2
|
export interface ICloudReader {
|
|
3
3
|
open(): Promise<void>;
|
|
4
4
|
close(): Promise<void>;
|
|
5
|
-
getCloudPoints(index: number
|
|
5
|
+
getCloudPoints(index: number): Promise<Float32Array>;
|
|
6
6
|
getCloudPointsArray(indicies: number[], transmit: (elements: Float32Array[]) => Promise<void>, step: number): Promise<void>;
|
|
7
7
|
getCloudHierarchy(): Promise<BimCloudHierarchyItem[]>;
|
|
8
8
|
getCloudMetadata(): Promise<BimCloudMetadata>;
|
|
@@ -12,7 +12,7 @@ export declare class WasmCloudReader implements ICloudReader {
|
|
|
12
12
|
constructor(moduleAccessor: IWasmModuleAccessor, fileAccessor: FileAccessor, modelPartId: string);
|
|
13
13
|
open(): Promise<void>;
|
|
14
14
|
close(): Promise<void>;
|
|
15
|
-
getCloudPoints(index: number
|
|
15
|
+
getCloudPoints(index: number): Promise<Float32Array>;
|
|
16
16
|
getCloudPointsArray(indicies: number[], transmit: (elements: Float32Array[]) => Promise<void>, step: number): Promise<void>;
|
|
17
17
|
getCloudHierarchy(): Promise<BimCloudHierarchyItem[]>;
|
|
18
18
|
getCloudMetadata(): Promise<BimCloudMetadata>;
|
|
@@ -23,16 +23,15 @@ export class WasmCloudReader {
|
|
|
23
23
|
this._cloudReader = undefined;
|
|
24
24
|
await this.fileAccessor.closeSyncFileAccess(this.modelPartId);
|
|
25
25
|
}
|
|
26
|
-
async getCloudPoints(index
|
|
26
|
+
async getCloudPoints(index) {
|
|
27
27
|
const pointsData = await this.fileAccessor.runSyncFileOp(this.modelPartId, async () => this._cloudReader?.getCloudPoints(index, true) ?? this.moduleAccessor.module.getCloudPoints(this.path, index), this._memGuardOptions);
|
|
28
28
|
return BimDataConverter.toCloudPoints(this.moduleAccessor.module, pointsData, true);
|
|
29
29
|
}
|
|
30
30
|
async getCloudPointsArray(indicies, transmit, step) {
|
|
31
31
|
const indiciesVector = new this.moduleAccessor.module.IntVector();
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
indiciesVector.set(i, indicies[j]);
|
|
32
|
+
indiciesVector.resize(indicies.length, 0);
|
|
33
|
+
for (let i = 0; i < indicies.length; i++) {
|
|
34
|
+
indiciesVector.set(i, indicies[i]);
|
|
36
35
|
}
|
|
37
36
|
const pointsDataArray = await this.fileAccessor.runSyncFileOp(this.modelPartId, async () => this._cloudReader?.getCloudPointsArray(indiciesVector, true) ?? this.moduleAccessor.module.getCloudPointsArray(this.path, indiciesVector), this._memGuardOptions);
|
|
38
37
|
indiciesVector.delete();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WasmCloudReader.js","sourceRoot":"","sources":["../../../../src/wasm/cloud_readers/WasmCloudReader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAMxG,MAAM,OAAO,eAAe;IAKL;IAA8C;IAAqC;IAJhG,YAAY,CAAe;IAClB,IAAI,CAAC;IACL,gBAAgB,GAAuB,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAEvG,YAAqB,cAAmC,EAAW,YAA0B,EAAW,WAAmB;QAAtG,mBAAc,GAAd,cAAc,CAAqB;QAAW,iBAAY,GAAZ,YAAY,CAAc;QAAW,gBAAW,GAAX,WAAW,CAAQ;QACzH,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAChE,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,EAAE,MAAM,EAAE,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAa
|
|
1
|
+
{"version":3,"file":"WasmCloudReader.js","sourceRoot":"","sources":["../../../../src/wasm/cloud_readers/WasmCloudReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ export declare class CloudPartAccessor implements ICloudPartAccessor {
|
|
|
11
11
|
closeReader(modelPartId: string): Promise<void>;
|
|
12
12
|
dispose(): Promise<void>;
|
|
13
13
|
getCachedCloudKeys(): Array<string>;
|
|
14
|
-
getCloudPoints(modelPartId: string, index: number
|
|
14
|
+
getCloudPoints(modelPartId: string, index: number): Promise<Float32Array>;
|
|
15
15
|
getCloudPointsArray(modelPartId: string, indicies: number[], transmit: (elements: Float32Array[]) => Promise<void>): Promise<void>;
|
|
16
16
|
getCloudHierarchy(modelPartId: string): Promise<BimCloudHierarchyItem[]>;
|
|
17
17
|
getCloudMetadata(modelPartId: string): Promise<BimCloudMetadata>;
|
|
@@ -33,8 +33,8 @@ export class CloudPartAccessor {
|
|
|
33
33
|
getCachedCloudKeys() {
|
|
34
34
|
return Array.from(this._cachedCloudReaders.keys());
|
|
35
35
|
}
|
|
36
|
-
async getCloudPoints(modelPartId, index
|
|
37
|
-
return (await this.getReader(modelPartId)).getCloudPoints(index
|
|
36
|
+
async getCloudPoints(modelPartId, index) {
|
|
37
|
+
return (await this.getReader(modelPartId)).getCloudPoints(index);
|
|
38
38
|
}
|
|
39
39
|
async getCloudPointsArray(modelPartId, indicies, transmit) {
|
|
40
40
|
return (await this.getReader(modelPartId)).getCloudPointsArray(indicies, transmit, TRANSMIT_STEP);
|
|
@@ -57,11 +57,11 @@ export class CloudPartAccessor {
|
|
|
57
57
|
const reader = this._cachedCloudReaders.get(modelPartId);
|
|
58
58
|
if (reader)
|
|
59
59
|
return reader;
|
|
60
|
-
const
|
|
61
|
-
const
|
|
62
|
-
if (isValidFileSignature(BinaryCloudFileSignature,
|
|
60
|
+
const file = await this.fileAccessor.getFile(modelPartId);
|
|
61
|
+
const signature = await file.getFileSignature();
|
|
62
|
+
if (isValidFileSignature(BinaryCloudFileSignature, signature))
|
|
63
63
|
return new BinaryCloudReader(this.fileAccessor, modelPartId);
|
|
64
|
-
else if (isValidFileSignature(SqliteFileSignature,
|
|
64
|
+
else if (isValidFileSignature(SqliteFileSignature, signature))
|
|
65
65
|
return new WasmCloudReader(this.moduleAccessor, this.fileAccessor, modelPartId);
|
|
66
66
|
else
|
|
67
67
|
throw new Error("Cloud format is not supported.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CloudPartAccessor.js","sourceRoot":"","sources":["../../../../src/wasm/data_accessors/CloudPartAccessor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGlE,MAAM,OAAO,iBAAiB;IAIP;IAAqC;IAFhD,mBAAmB,GAA8B,IAAI,GAAG,EAAE,CAAC;IAErE,YAAqB,YAA0B,EAAW,cAAmC;QAAxE,iBAAY,GAAZ,YAAY,CAAc;QAAW,mBAAc,GAAd,cAAc,CAAqB;IAAI,CAAC;IAElG,KAAK,CAAC,UAAU,CAAC,WAAmB;QAClC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACjD,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;SACnD;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,WAAmB;QACnC,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YAC7C,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC;YACzD,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;SAC9C;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,aAAa,GAAG,IAAI,KAAK,EAAiB,CAAC;QACjD,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAE;YACjD,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;SACpC;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC;IAED,kBAAkB;QAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAAmB,EAAE,KAAa
|
|
1
|
+
{"version":3,"file":"CloudPartAccessor.js","sourceRoot":"","sources":["../../../../src/wasm/data_accessors/CloudPartAccessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ export declare class FileAccessor implements IFileAccessor {
|
|
|
9
9
|
readonly moduleAccessor: IWasmModuleAccessor;
|
|
10
10
|
readonly fileAccessDispatcher?: FileAccessDispatcher | undefined;
|
|
11
11
|
private _files;
|
|
12
|
+
private _weakFiles;
|
|
12
13
|
private readonly _memGuardOptions;
|
|
13
14
|
constructor(fs: IFileSystem, memoryGuard: IMemoryGuard, moduleAccessor: IWasmModuleAccessor, fileAccessDispatcher?: FileAccessDispatcher | undefined);
|
|
14
15
|
isFileExists(path: string): boolean;
|
|
@@ -33,5 +34,4 @@ export declare class FileAccessor implements IFileAccessor {
|
|
|
33
34
|
clearCache(memToFreeAmount?: number): Promise<void>;
|
|
34
35
|
private openUrl;
|
|
35
36
|
private fileGuardOp;
|
|
36
|
-
private isPartialFile;
|
|
37
37
|
}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
import { MAX_WRITE_CHUNK_SIZE,
|
|
1
|
+
import { MAX_WRITE_CHUNK_SIZE, BinaryCloudFileSignature, SqliteFileSignature, SupportedBimFileSignatures, MaxBimFileSignatureByteLength, RemoteFileSignature, PartialFileSignature, CacheFileSignature } from "../../utils/Consts.js";
|
|
2
2
|
import { isOPFSEnabled, isValidFileSignature } from "../../utils/ViewerTools.js";
|
|
3
3
|
import { FetchStatus, FileLoader } from "../file-system/FileLoader.js";
|
|
4
4
|
import { File } from "../file-system/File.js";
|
|
5
5
|
import { PartialFile } from "../file-system/PartialFile.js";
|
|
6
|
+
import { RemoteFile } from "../file-system/RemoteFile.js";
|
|
7
|
+
import { ChunkCacheFile } from "../file-system/ChunkCacheFile.js";
|
|
6
8
|
export class FileAccessor {
|
|
7
9
|
fs;
|
|
8
10
|
memoryGuard;
|
|
9
11
|
moduleAccessor;
|
|
10
12
|
fileAccessDispatcher;
|
|
11
13
|
_files;
|
|
14
|
+
_weakFiles;
|
|
12
15
|
_memGuardOptions = { checkRAM: false, checkCache: isOPFSEnabled };
|
|
13
16
|
constructor(fs, memoryGuard, moduleAccessor, fileAccessDispatcher) {
|
|
14
17
|
this.fs = fs;
|
|
@@ -16,6 +19,7 @@ export class FileAccessor {
|
|
|
16
19
|
this.moduleAccessor = moduleAccessor;
|
|
17
20
|
this.fileAccessDispatcher = fileAccessDispatcher;
|
|
18
21
|
this._files = new Map();
|
|
22
|
+
this._weakFiles = new Map();
|
|
19
23
|
}
|
|
20
24
|
isFileExists(path) {
|
|
21
25
|
return this.fs.isFileExists(path);
|
|
@@ -27,6 +31,7 @@ export class FileAccessor {
|
|
|
27
31
|
return this.fileAccessDispatcher?.lockFile(modelPartId, this.copy.bind(this), this.remove.bind(this)) ?? modelPartId;
|
|
28
32
|
}
|
|
29
33
|
async unlockFile(modelPartId) {
|
|
34
|
+
this._weakFiles.delete(modelPartId);
|
|
30
35
|
return this.fileAccessDispatcher?.unlockFile(modelPartId);
|
|
31
36
|
}
|
|
32
37
|
async open(id, source, options) {
|
|
@@ -52,8 +57,10 @@ export class FileAccessor {
|
|
|
52
57
|
await file.write(source.buffer, 0);
|
|
53
58
|
}
|
|
54
59
|
}, this._memGuardOptions);
|
|
55
|
-
if (file)
|
|
60
|
+
if (file) {
|
|
56
61
|
this._files.set(id, file);
|
|
62
|
+
this._weakFiles.delete(id);
|
|
63
|
+
}
|
|
57
64
|
}
|
|
58
65
|
async copy(modelPartTargetId, modelPartSourceId) {
|
|
59
66
|
const source = await this.getFile(modelPartSourceId);
|
|
@@ -70,6 +77,7 @@ export class FileAccessor {
|
|
|
70
77
|
return file.read(position, size);
|
|
71
78
|
}
|
|
72
79
|
async close(modelPartId) {
|
|
80
|
+
this._weakFiles.delete(modelPartId);
|
|
73
81
|
const file = this._files.get(modelPartId);
|
|
74
82
|
if (file) {
|
|
75
83
|
await file.close();
|
|
@@ -88,9 +96,8 @@ export class FileAccessor {
|
|
|
88
96
|
const file = await this.getFile(modelPartId, { create: false });
|
|
89
97
|
if (!await file.isValid())
|
|
90
98
|
return false;
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
return SupportedFileSignatures.some(signature => isValidFileSignature(signature, arrayBuffer));
|
|
99
|
+
const fileSignature = await file.getFileSignature();
|
|
100
|
+
return SupportedBimFileSignatures.some(signature => isValidFileSignature(signature, fileSignature));
|
|
94
101
|
}
|
|
95
102
|
catch {
|
|
96
103
|
return false;
|
|
@@ -100,18 +107,35 @@ export class FileAccessor {
|
|
|
100
107
|
return this.getFile(modelPartId, { create: false }).then(file => file.getFileInfo());
|
|
101
108
|
}
|
|
102
109
|
async getFile(path, options = { create: false }) {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
+
// looking for a file in opened files
|
|
111
|
+
let file = this._files.get(path);
|
|
112
|
+
// looking for a file in weak cache
|
|
113
|
+
if (!file && this._weakFiles.has(path)) {
|
|
114
|
+
file = this._weakFiles.get(path)?.deref();
|
|
115
|
+
if (!file)
|
|
116
|
+
this._weakFiles.delete(path);
|
|
117
|
+
}
|
|
118
|
+
// looking for a file on disk
|
|
119
|
+
if (!file && this.isFileExists(path)) {
|
|
120
|
+
await this.fs.actualizeFilePath(path);
|
|
121
|
+
file = await File.open(this.fs, path);
|
|
122
|
+
}
|
|
123
|
+
if (file) {
|
|
124
|
+
const signature = await file.getFileSignature();
|
|
125
|
+
if (isValidFileSignature(CacheFileSignature, signature))
|
|
126
|
+
file = await ChunkCacheFile.fromFile(file);
|
|
127
|
+
if (isValidFileSignature(RemoteFileSignature, signature))
|
|
128
|
+
file = await RemoteFile.fromFile(file);
|
|
129
|
+
if (isValidFileSignature(PartialFileSignature, signature))
|
|
130
|
+
file = await PartialFile.fromFile(file);
|
|
110
131
|
}
|
|
111
132
|
else if (options.create) {
|
|
112
|
-
|
|
133
|
+
file = await File.open(this.fs, path, options);
|
|
113
134
|
}
|
|
114
|
-
|
|
135
|
+
else
|
|
136
|
+
throw new Error("File is not exist.");
|
|
137
|
+
this._weakFiles.set(path, new WeakRef(file));
|
|
138
|
+
return file;
|
|
115
139
|
}
|
|
116
140
|
async runSyncFileOp(path, opFunc, options) {
|
|
117
141
|
return this.memoryGuard.runOperation(() => this.fileGuardOp(path, opFunc), options);
|
|
@@ -145,6 +169,8 @@ export class FileAccessor {
|
|
|
145
169
|
for (const [, file] of this._files) {
|
|
146
170
|
closePromises.push(file.close());
|
|
147
171
|
}
|
|
172
|
+
this._weakFiles.clear();
|
|
173
|
+
this._files.clear();
|
|
148
174
|
await Promise.all(closePromises);
|
|
149
175
|
}
|
|
150
176
|
async clearCache(memToFreeAmount = Number.MAX_SAFE_INTEGER) {
|
|
@@ -161,25 +187,26 @@ export class FileAccessor {
|
|
|
161
187
|
await file.remove();
|
|
162
188
|
}
|
|
163
189
|
}
|
|
190
|
+
this._weakFiles.clear();
|
|
164
191
|
}
|
|
165
192
|
async openUrl(id, source, chunkSize) {
|
|
166
193
|
// Try to fetch first chunk of the file
|
|
167
|
-
const firstChunkRange = { startByte: 0, endByte:
|
|
194
|
+
const firstChunkRange = { startByte: 0, endByte: MaxBimFileSignatureByteLength - 1 };
|
|
168
195
|
let response = await FileLoader.fetchRange(source, firstChunkRange);
|
|
169
196
|
// If file length less than chunk size try again with new range
|
|
170
|
-
if (response.status == FetchStatus.InvalidRange && response.length <
|
|
197
|
+
if (response.status == FetchStatus.InvalidRange && response.length < MaxBimFileSignatureByteLength) {
|
|
171
198
|
firstChunkRange.endByte = response.length - 1;
|
|
172
199
|
response = await FileLoader.fetchRange(source, firstChunkRange);
|
|
173
200
|
}
|
|
174
|
-
// If partial load is not supported by the server, the response includes the full file
|
|
201
|
+
// If partial load is not supported by the server, the response includes the full file content.
|
|
175
202
|
if (response.status == FetchStatus.FullFile) {
|
|
176
203
|
// get file signature and check if file format is supported by dataprovider
|
|
177
204
|
const size = response.data.size;
|
|
178
|
-
const signatureSize = Math.min(size,
|
|
205
|
+
const signatureSize = Math.min(size, MaxBimFileSignatureByteLength);
|
|
179
206
|
const arrayBuffer = await FileLoader.readChunk(0, signatureSize, response.data);
|
|
180
|
-
if (
|
|
207
|
+
if (SupportedBimFileSignatures.some(signature => isValidFileSignature(signature, arrayBuffer))) {
|
|
181
208
|
// Store full file if file format is supported
|
|
182
|
-
const file = await File.open(this.fs, id, { create: true });
|
|
209
|
+
const file = await File.open(this.fs, id, { create: true }, new Uint8Array(arrayBuffer));
|
|
183
210
|
await FileLoader.writeBlobToFile(response.data, chunkSize, file);
|
|
184
211
|
return file;
|
|
185
212
|
}
|
|
@@ -191,7 +218,7 @@ export class FileAccessor {
|
|
|
191
218
|
const fileLength = response.length;
|
|
192
219
|
// If SQLite database:
|
|
193
220
|
if (isValidFileSignature(SqliteFileSignature, buffer)) {
|
|
194
|
-
const file = await File.open(this.fs, id, { create: true });
|
|
221
|
+
const file = await File.open(this.fs, id, { create: true }, SqliteFileSignature);
|
|
195
222
|
// write first chunk
|
|
196
223
|
await file.write(buffer, 0);
|
|
197
224
|
// fetch the rest
|
|
@@ -200,11 +227,8 @@ export class FileAccessor {
|
|
|
200
227
|
}
|
|
201
228
|
// If binary cloud
|
|
202
229
|
if (isValidFileSignature(BinaryCloudFileSignature, buffer)) {
|
|
203
|
-
// make
|
|
204
|
-
|
|
205
|
-
// write first chunk
|
|
206
|
-
await partial.write(buffer, 0);
|
|
207
|
-
return partial;
|
|
230
|
+
// make remote file
|
|
231
|
+
return await RemoteFile.fromUrl(this.fs, id, String(source), fileLength, BinaryCloudFileSignature);
|
|
208
232
|
}
|
|
209
233
|
throw new Error("Given 3D model is not supported");
|
|
210
234
|
}
|
|
@@ -224,14 +248,5 @@ export class FileAccessor {
|
|
|
224
248
|
await this.closeSyncFileAccess(path);
|
|
225
249
|
}
|
|
226
250
|
}
|
|
227
|
-
async isPartialFile(file) {
|
|
228
|
-
try {
|
|
229
|
-
const buffer = await file.read(0, PartialFileSignature.byteLength);
|
|
230
|
-
return isValidFileSignature(PartialFileSignature, buffer);
|
|
231
|
-
}
|
|
232
|
-
catch {
|
|
233
|
-
return false;
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
251
|
}
|
|
237
252
|
//# sourceMappingURL=FileAccessor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileAccessor.js","sourceRoot":"","sources":["../../../../src/wasm/data_accessors/FileAccessor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FileAccessor.js","sourceRoot":"","sources":["../../../../src/wasm/data_accessors/FileAccessor.ts"],"names":[],"mappings":"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"}
|