@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.
Files changed (48) hide show
  1. package/lib/__tests__/test_utils/BinaryCloudTestUtils.d.ts +21 -0
  2. package/lib/__tests__/test_utils/BinaryCloudTestUtils.js +231 -0
  3. package/lib/__tests__/test_utils/BinaryCloudTestUtils.js.map +1 -0
  4. package/lib/src/BimDataProviderApi.d.ts +1 -1
  5. package/lib/src/model/BimDataClasses.d.ts +22 -10
  6. package/lib/src/model/BimDataClasses.js +18 -1
  7. package/lib/src/model/BimDataClasses.js.map +1 -1
  8. package/lib/src/model/BimDataCloudPart.d.ts +1 -1
  9. package/lib/src/model/BimDataCloudPart.js +2 -2
  10. package/lib/src/model/BimDataCloudPart.js.map +1 -1
  11. package/lib/src/utils/Consts.d.ts +7 -0
  12. package/lib/src/utils/Consts.js +8 -1
  13. package/lib/src/utils/Consts.js.map +1 -1
  14. package/lib/src/utils/ViewerTools.d.ts +14 -7
  15. package/lib/src/utils/ViewerTools.js +67 -20
  16. package/lib/src/utils/ViewerTools.js.map +1 -1
  17. package/lib/src/wasm/WorkerApi.d.ts +1 -1
  18. package/lib/src/wasm/cloud_readers/BinaryCloudReader.d.ts +18 -5
  19. package/lib/src/wasm/cloud_readers/BinaryCloudReader.js +219 -202
  20. package/lib/src/wasm/cloud_readers/BinaryCloudReader.js.map +1 -1
  21. package/lib/src/wasm/cloud_readers/ICacheableBinaryCloud.d.ts +42 -0
  22. package/lib/src/wasm/cloud_readers/ICacheableBinaryCloud.js +229 -0
  23. package/lib/src/wasm/cloud_readers/ICacheableBinaryCloud.js.map +1 -0
  24. package/lib/src/wasm/cloud_readers/ICloudReader.d.ts +1 -1
  25. package/lib/src/wasm/cloud_readers/WasmCloudReader.d.ts +1 -1
  26. package/lib/src/wasm/cloud_readers/WasmCloudReader.js +4 -5
  27. package/lib/src/wasm/cloud_readers/WasmCloudReader.js.map +1 -1
  28. package/lib/src/wasm/data_accessors/CloudPartAccessor.d.ts +1 -1
  29. package/lib/src/wasm/data_accessors/CloudPartAccessor.js +6 -6
  30. package/lib/src/wasm/data_accessors/CloudPartAccessor.js.map +1 -1
  31. package/lib/src/wasm/data_accessors/FileAccessor.d.ts +1 -1
  32. package/lib/src/wasm/data_accessors/FileAccessor.js +50 -35
  33. package/lib/src/wasm/data_accessors/FileAccessor.js.map +1 -1
  34. package/lib/src/wasm/file-system/ChunkCacheFile.d.ts +34 -0
  35. package/lib/src/wasm/file-system/ChunkCacheFile.js +254 -0
  36. package/lib/src/wasm/file-system/ChunkCacheFile.js.map +1 -0
  37. package/lib/src/wasm/file-system/File.d.ts +4 -1
  38. package/lib/src/wasm/file-system/File.js +11 -3
  39. package/lib/src/wasm/file-system/File.js.map +1 -1
  40. package/lib/src/wasm/file-system/PartialFile.d.ts +3 -2
  41. package/lib/src/wasm/file-system/PartialFile.js +26 -32
  42. package/lib/src/wasm/file-system/PartialFile.js.map +1 -1
  43. package/lib/src/wasm/file-system/RemoteFile.d.ts +24 -0
  44. package/lib/src/wasm/file-system/RemoteFile.js +106 -0
  45. package/lib/src/wasm/file-system/RemoteFile.js.map +1 -0
  46. package/lib/src/wasm/wasm.worker-node.cjs +1 -1
  47. package/lib/src/wasm/wasm.worker-web.cjs +1 -1
  48. package/package.json +1 -1
@@ -211,19 +211,7 @@ export class BimDataConverter {
211
211
  return modelElementValue;
212
212
  }
213
213
  static toBimCloudHierarchyItem(wasmHierarchyItem) {
214
- const hierarchyItem = new BimData.BimCloudHierarchyItem();
215
- hierarchyItem.index = wasmHierarchyItem.index;
216
- hierarchyItem.dataIndex = wasmHierarchyItem.dataIndex;
217
- hierarchyItem.type = wasmHierarchyItem.type;
218
- hierarchyItem.mask = wasmHierarchyItem.mask;
219
- hierarchyItem.numPoints = wasmHierarchyItem.numPoints;
220
- hierarchyItem.offset = Number(wasmHierarchyItem.offset);
221
- hierarchyItem.size = Number(wasmHierarchyItem.size);
222
- hierarchyItem.spacing = wasmHierarchyItem.spacing;
223
- const min = wasmHierarchyItem.min;
224
- hierarchyItem.min = { x: min[0], y: min[1], z: min[2] };
225
- const max = wasmHierarchyItem.max;
226
- hierarchyItem.max = { x: max[0], y: max[1], z: max[2] };
214
+ const hierarchyItem = new BimData.BimCloudHierarchyItem(wasmHierarchyItem.index, wasmHierarchyItem.dataIndex, wasmHierarchyItem.type, wasmHierarchyItem.mask, wasmHierarchyItem.numPoints, { x: wasmHierarchyItem.min[0], y: wasmHierarchyItem.min[1], z: wasmHierarchyItem.min[2] }, { x: wasmHierarchyItem.max[0], y: wasmHierarchyItem.max[1], z: wasmHierarchyItem.max[2] }, Number(wasmHierarchyItem.offset), 0, Number(wasmHierarchyItem.size), wasmHierarchyItem.spacing, 0);
227
215
  return hierarchyItem;
228
216
  }
229
217
  }
@@ -285,33 +273,59 @@ export class BinaryConverter {
285
273
  static u64Array = new BigUint64Array(BinaryConverter.u8Array.buffer);
286
274
  static i64Array = new BigInt64Array(BinaryConverter.u8Array.buffer);
287
275
  static f64Array = new Float64Array(BinaryConverter.u8Array.buffer);
288
- static toU16(source, offset) {
276
+ static fromU16(source, offset) {
289
277
  BinaryConverter.u8Array[0] = source[offset++];
290
278
  BinaryConverter.u8Array[1] = source[offset++];
291
279
  return BinaryConverter.u16Array[0];
292
280
  }
293
- static toU32(source, offset) {
281
+ static toU16(target, source, offset) {
282
+ BinaryConverter.u16Array[0] = source;
283
+ target[offset++] = BinaryConverter.u8Array[0];
284
+ target[offset++] = BinaryConverter.u8Array[1];
285
+ }
286
+ static fromU32(source, offset) {
294
287
  BinaryConverter.u8Array[0] = source[offset++];
295
288
  BinaryConverter.u8Array[1] = source[offset++];
296
289
  BinaryConverter.u8Array[2] = source[offset++];
297
290
  BinaryConverter.u8Array[3] = source[offset++];
298
291
  return BinaryConverter.u32Array[0];
299
292
  }
300
- static toI32(source, offset) {
293
+ static toU32(target, source, offset) {
294
+ BinaryConverter.u32Array[0] = source;
295
+ target[offset++] = BinaryConverter.u8Array[0];
296
+ target[offset++] = BinaryConverter.u8Array[1];
297
+ target[offset++] = BinaryConverter.u8Array[2];
298
+ target[offset++] = BinaryConverter.u8Array[3];
299
+ }
300
+ static fromI32(source, offset) {
301
301
  BinaryConverter.u8Array[0] = source[offset++];
302
302
  BinaryConverter.u8Array[1] = source[offset++];
303
303
  BinaryConverter.u8Array[2] = source[offset++];
304
304
  BinaryConverter.u8Array[3] = source[offset++];
305
305
  return BinaryConverter.i32Array[0];
306
306
  }
307
- static toF32(source, offset) {
307
+ static toI32(target, source, offset) {
308
+ BinaryConverter.i32Array[0] = source;
309
+ target[offset++] = BinaryConverter.u8Array[0];
310
+ target[offset++] = BinaryConverter.u8Array[1];
311
+ target[offset++] = BinaryConverter.u8Array[2];
312
+ target[offset++] = BinaryConverter.u8Array[3];
313
+ }
314
+ static fromF32(source, offset) {
308
315
  BinaryConverter.u8Array[0] = source[offset++];
309
316
  BinaryConverter.u8Array[1] = source[offset++];
310
317
  BinaryConverter.u8Array[2] = source[offset++];
311
318
  BinaryConverter.u8Array[3] = source[offset++];
312
319
  return BinaryConverter.f32Array[0];
313
320
  }
314
- static toF64(source, offset) {
321
+ static toF32(target, source, offset) {
322
+ BinaryConverter.f32Array[0] = source;
323
+ target[offset++] = BinaryConverter.u8Array[0];
324
+ target[offset++] = BinaryConverter.u8Array[1];
325
+ target[offset++] = BinaryConverter.u8Array[2];
326
+ target[offset++] = BinaryConverter.u8Array[3];
327
+ }
328
+ static fromF64(source, offset) {
315
329
  BinaryConverter.u8Array[0] = source[offset++];
316
330
  BinaryConverter.u8Array[1] = source[offset++];
317
331
  BinaryConverter.u8Array[2] = source[offset++];
@@ -322,7 +336,18 @@ export class BinaryConverter {
322
336
  BinaryConverter.u8Array[7] = source[offset++];
323
337
  return BinaryConverter.f64Array[0];
324
338
  }
325
- static toI64(source, offset) {
339
+ static toF64(target, source, offset) {
340
+ BinaryConverter.f64Array[0] = source;
341
+ target[offset++] = BinaryConverter.u8Array[0];
342
+ target[offset++] = BinaryConverter.u8Array[1];
343
+ target[offset++] = BinaryConverter.u8Array[2];
344
+ target[offset++] = BinaryConverter.u8Array[3];
345
+ target[offset++] = BinaryConverter.u8Array[4];
346
+ target[offset++] = BinaryConverter.u8Array[5];
347
+ target[offset++] = BinaryConverter.u8Array[6];
348
+ target[offset++] = BinaryConverter.u8Array[7];
349
+ }
350
+ static fromI64(source, offset) {
326
351
  BinaryConverter.u8Array[0] = source[offset++];
327
352
  BinaryConverter.u8Array[1] = source[offset++];
328
353
  BinaryConverter.u8Array[2] = source[offset++];
@@ -333,7 +358,18 @@ export class BinaryConverter {
333
358
  BinaryConverter.u8Array[7] = source[offset++];
334
359
  return BinaryConverter.i64Array[0];
335
360
  }
336
- static toU64(source, offset) {
361
+ static toI64(target, source, offset) {
362
+ BinaryConverter.i64Array[0] = source;
363
+ target[offset++] = BinaryConverter.u8Array[0];
364
+ target[offset++] = BinaryConverter.u8Array[1];
365
+ target[offset++] = BinaryConverter.u8Array[2];
366
+ target[offset++] = BinaryConverter.u8Array[3];
367
+ target[offset++] = BinaryConverter.u8Array[4];
368
+ target[offset++] = BinaryConverter.u8Array[5];
369
+ target[offset++] = BinaryConverter.u8Array[6];
370
+ target[offset++] = BinaryConverter.u8Array[7];
371
+ }
372
+ static fromU64(source, offset) {
337
373
  BinaryConverter.u8Array[0] = source[offset++];
338
374
  BinaryConverter.u8Array[1] = source[offset++];
339
375
  BinaryConverter.u8Array[2] = source[offset++];
@@ -344,6 +380,17 @@ export class BinaryConverter {
344
380
  BinaryConverter.u8Array[7] = source[offset++];
345
381
  return BinaryConverter.u64Array[0];
346
382
  }
383
+ static toU64(target, source, offset) {
384
+ BinaryConverter.u64Array[0] = source;
385
+ target[offset++] = BinaryConverter.u8Array[0];
386
+ target[offset++] = BinaryConverter.u8Array[1];
387
+ target[offset++] = BinaryConverter.u8Array[2];
388
+ target[offset++] = BinaryConverter.u8Array[3];
389
+ target[offset++] = BinaryConverter.u8Array[4];
390
+ target[offset++] = BinaryConverter.u8Array[5];
391
+ target[offset++] = BinaryConverter.u8Array[6];
392
+ target[offset++] = BinaryConverter.u8Array[7];
393
+ }
347
394
  }
348
395
  export function isValidFileSignature(signature, bufferView) {
349
396
  if (!bufferView || bufferView.byteLength < signature.byteLength)
@@ -1 +1 @@
1
- {"version":3,"file":"ViewerTools.js","sourceRoot":"","sources":["../../../src/utils/ViewerTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ViewerTools.js","sourceRoot":"","sources":["../../../src/utils/ViewerTools.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,7 @@ export interface IModelPartAccessor {
45
45
  export interface ICloudPartAccessor {
46
46
  openReader(modelPartId: string): Promise<void>;
47
47
  closeReader(modelPartId: string): Promise<void>;
48
- getCloudPoints(modelPartId: string, index: number, offset: number, count: number): Promise<Float32Array>;
48
+ getCloudPoints(modelPartId: string, index: number): Promise<Float32Array>;
49
49
  getCloudPointsArray(modelPartId: string, indicies: number[], transmit: (elements: Float32Array[]) => Promise<void>): Promise<void>;
50
50
  getCloudHierarchy(modelPartId: string): Promise<BimCloudHierarchyItem[]>;
51
51
  getCloudMetadata(modelPartId: string): Promise<BimCloudMetadata>;
@@ -4,15 +4,28 @@ import { FileAccessor } from "../data_accessors/FileAccessor.js";
4
4
  export declare class BinaryCloudReader implements ICloudReader {
5
5
  readonly fileAccessor: FileAccessor;
6
6
  readonly modelPartId: string;
7
- private metadata;
8
- private _file?;
7
+ private _header?;
8
+ private _chunks?;
9
+ private _nodes?;
10
+ private _sourceFile?;
11
+ private _cache?;
12
+ private _loadingOps;
9
13
  constructor(fileAccessor: FileAccessor, modelPartId: string);
10
14
  open(): Promise<void>;
11
15
  close(): Promise<void>;
12
- getCloudPoints(index: number, offset: number, count: number): Promise<Float32Array>;
13
- getCloudPointsArray(indicies: number[], transmit: (elements: Float32Array[]) => Promise<void>, step: number): Promise<void>;
14
- getCloudHierarchy(): Promise<BimCloudHierarchyItem[]>;
15
16
  getCloudMetadata(): Promise<BimCloudMetadata>;
17
+ getCloudHierarchy(): Promise<BimCloudHierarchyItem[]>;
18
+ getCloudPoints(index: number): Promise<Float32Array>;
19
+ getCloudPointsArray(indicies: number[], transmit: (elements: Float32Array[]) => Promise<void>, step: number): Promise<void>;
20
+ private getCloudHeader;
21
+ private getCloudNodes;
22
+ private getChunkTable;
23
+ private getPoints;
16
24
  isValid(): Promise<boolean>;
25
+ isValidCloudCache(): Promise<boolean>;
26
+ private readCacheable;
27
+ private loadPointsDataChunk;
28
+ private static dequantizePoints;
29
+ private static dequantizeChunk;
17
30
  private static transferPoints;
18
31
  }