@pilotdev/pilot-bim-dataprovider 25.9.0 → 25.11.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 (123) hide show
  1. package/lib/index.d.ts +4 -9
  2. package/lib/index.js +2 -5
  3. package/lib/index.js.map +1 -1
  4. package/lib/src/BimDataProviderApi.d.ts +52 -0
  5. package/lib/src/BimDataProviderApi.js +2 -0
  6. package/lib/src/BimDataProviderApi.js.map +1 -0
  7. package/lib/src/model/{BimDataIfcType.d.ts → BimDataClasses.d.ts} +159 -0
  8. package/lib/src/model/{BimDataIfcType.js → BimDataClasses.js} +203 -1
  9. package/lib/src/model/BimDataClasses.js.map +1 -0
  10. package/lib/src/model/BimDataCloudPart.d.ts +5 -9
  11. package/lib/src/model/BimDataCloudPart.js +11 -12
  12. package/lib/src/model/BimDataCloudPart.js.map +1 -1
  13. package/lib/src/model/BimDataModelPart.d.ts +4 -23
  14. package/lib/src/model/BimDataModelPart.js +22 -36
  15. package/lib/src/model/BimDataModelPart.js.map +1 -1
  16. package/lib/src/model/BimDataPart.d.ts +11 -21
  17. package/lib/src/model/BimDataPart.js +41 -67
  18. package/lib/src/model/BimDataPart.js.map +1 -1
  19. package/lib/src/model/BimDataProvider.d.ts +4 -17
  20. package/lib/src/model/BimDataProvider.js +18 -27
  21. package/lib/src/model/BimDataProvider.js.map +1 -1
  22. package/lib/src/utils/Consts.d.ts +17 -0
  23. package/lib/src/utils/Consts.js +20 -0
  24. package/lib/src/utils/Consts.js.map +1 -0
  25. package/lib/src/utils/ViewerTools.d.ts +17 -16
  26. package/lib/src/utils/ViewerTools.js +39 -21
  27. package/lib/src/utils/ViewerTools.js.map +1 -1
  28. package/lib/src/wasm/WasmWorker.d.ts +22 -70
  29. package/lib/src/wasm/WasmWorker.js +89 -180
  30. package/lib/src/wasm/WasmWorker.js.map +1 -1
  31. package/lib/src/wasm/{WasmWorkerThreadSafeWrapper.d.ts → WorkerApi.d.ts} +39 -21
  32. package/lib/src/wasm/WorkerApi.js +2 -0
  33. package/lib/src/wasm/WorkerApi.js.map +1 -0
  34. package/lib/src/wasm/cloud_readers/BinaryCloudReader.d.ts +18 -0
  35. package/lib/src/wasm/cloud_readers/BinaryCloudReader.js +228 -0
  36. package/lib/src/wasm/cloud_readers/BinaryCloudReader.js.map +1 -0
  37. package/lib/src/wasm/{DataAccessors → cloud_readers}/ICloudReader.d.ts +6 -6
  38. package/lib/src/wasm/cloud_readers/ICloudReader.js.map +1 -0
  39. package/lib/src/wasm/cloud_readers/WasmCloudReader.d.ts +20 -0
  40. package/lib/src/wasm/cloud_readers/WasmCloudReader.js +53 -0
  41. package/lib/src/wasm/cloud_readers/WasmCloudReader.js.map +1 -0
  42. package/lib/src/wasm/data_accessors/CloudPartAccessor.d.ts +20 -0
  43. package/lib/src/wasm/data_accessors/CloudPartAccessor.js +70 -0
  44. package/lib/src/wasm/data_accessors/CloudPartAccessor.js.map +1 -0
  45. package/lib/src/wasm/data_accessors/FileAccessor.d.ts +37 -0
  46. package/lib/src/wasm/data_accessors/FileAccessor.js +237 -0
  47. package/lib/src/wasm/data_accessors/FileAccessor.js.map +1 -0
  48. package/lib/src/wasm/data_accessors/ModelPartAccessor.d.ts +27 -0
  49. package/lib/src/wasm/data_accessors/ModelPartAccessor.js +142 -0
  50. package/lib/src/wasm/data_accessors/ModelPartAccessor.js.map +1 -0
  51. package/lib/src/wasm/file-system/File.d.ts +30 -0
  52. package/lib/src/wasm/file-system/File.js +58 -0
  53. package/lib/src/wasm/file-system/File.js.map +1 -0
  54. package/lib/src/wasm/file-system/FileAccessDispatcher.d.ts +12 -0
  55. package/lib/src/{model → wasm/file-system}/FileAccessDispatcher.js +59 -21
  56. package/lib/src/wasm/file-system/FileAccessDispatcher.js.map +1 -0
  57. package/lib/src/wasm/file-system/FileLoader.d.ts +41 -0
  58. package/lib/src/wasm/file-system/FileLoader.js +107 -0
  59. package/lib/src/wasm/file-system/FileLoader.js.map +1 -0
  60. package/lib/src/wasm/file-system/IFileSystem.d.ts +76 -0
  61. package/lib/src/wasm/file-system/IFileSystem.js +308 -0
  62. package/lib/src/wasm/file-system/IFileSystem.js.map +1 -0
  63. package/lib/src/{file-system → wasm/file-system}/IFileSystemCache.d.ts +10 -6
  64. package/lib/src/{file-system → wasm/file-system}/IFileSystemCache.js +11 -13
  65. package/lib/src/wasm/file-system/IFileSystemCache.js.map +1 -0
  66. package/lib/src/{file-system → wasm/file-system}/OPFS.d.ts +6 -6
  67. package/lib/src/{file-system → wasm/file-system}/OPFS.js +7 -3
  68. package/lib/src/wasm/file-system/OPFS.js.map +1 -0
  69. package/lib/src/wasm/file-system/PATH.js.map +1 -0
  70. package/lib/src/wasm/file-system/PartialFile.d.ts +48 -0
  71. package/lib/src/wasm/file-system/PartialFile.js +367 -0
  72. package/lib/src/wasm/file-system/PartialFile.js.map +1 -0
  73. package/lib/src/wasm/pilot_bim_dataprovider.d.ts +17 -1
  74. package/lib/src/wasm/wasm.worker-node.cjs +1 -1
  75. package/lib/src/wasm/wasm.worker-web.cjs +1 -1
  76. package/lib/src/wasm/worker.js +2 -0
  77. package/lib/src/wasm/worker.js.map +1 -1
  78. package/package.json +3 -4
  79. package/lib/src/file-system/IFileSystem.d.ts +0 -50
  80. package/lib/src/file-system/IFileSystem.js +0 -233
  81. package/lib/src/file-system/IFileSystem.js.map +0 -1
  82. package/lib/src/file-system/IFileSystemCache.js.map +0 -1
  83. package/lib/src/file-system/OPFS.js.map +0 -1
  84. package/lib/src/file-system/PATH.js.map +0 -1
  85. package/lib/src/model/BimDataElement.d.ts +0 -113
  86. package/lib/src/model/BimDataElement.js +0 -45
  87. package/lib/src/model/BimDataElement.js.map +0 -1
  88. package/lib/src/model/BimDataElementPropertySet.d.ts +0 -26
  89. package/lib/src/model/BimDataElementPropertySet.js +0 -90
  90. package/lib/src/model/BimDataElementPropertySet.js.map +0 -1
  91. package/lib/src/model/BimDataIfcRepresentationStatus.d.ts +0 -10
  92. package/lib/src/model/BimDataIfcRepresentationStatus.js +0 -12
  93. package/lib/src/model/BimDataIfcRepresentationStatus.js.map +0 -1
  94. package/lib/src/model/BimDataIfcType.js.map +0 -1
  95. package/lib/src/model/BimDataTessellation.d.ts +0 -13
  96. package/lib/src/model/BimDataTessellation.js +0 -16
  97. package/lib/src/model/BimDataTessellation.js.map +0 -1
  98. package/lib/src/model/Consts.d.ts +0 -7
  99. package/lib/src/model/Consts.js +0 -8
  100. package/lib/src/model/Consts.js.map +0 -1
  101. package/lib/src/model/FileAccessDispatcher.d.ts +0 -14
  102. package/lib/src/model/FileAccessDispatcher.js.map +0 -1
  103. package/lib/src/wasm/DataAccessors/BimCloudPartAccessor.d.ts +0 -17
  104. package/lib/src/wasm/DataAccessors/BimCloudPartAccessor.js +0 -60
  105. package/lib/src/wasm/DataAccessors/BimCloudPartAccessor.js.map +0 -1
  106. package/lib/src/wasm/DataAccessors/BimDataModelPartAccessor.d.ts +0 -20
  107. package/lib/src/wasm/DataAccessors/BimDataModelPartAccessor.js +0 -89
  108. package/lib/src/wasm/DataAccessors/BimDataModelPartAccessor.js.map +0 -1
  109. package/lib/src/wasm/DataAccessors/BimDataPartAccessor.d.ts +0 -8
  110. package/lib/src/wasm/DataAccessors/BimDataPartAccessor.js +0 -19
  111. package/lib/src/wasm/DataAccessors/BimDataPartAccessor.js.map +0 -1
  112. package/lib/src/wasm/DataAccessors/BinaryCloudReader.d.ts +0 -16
  113. package/lib/src/wasm/DataAccessors/BinaryCloudReader.js +0 -268
  114. package/lib/src/wasm/DataAccessors/BinaryCloudReader.js.map +0 -1
  115. package/lib/src/wasm/DataAccessors/ICloudReader.js.map +0 -1
  116. package/lib/src/wasm/DataAccessors/WasmCloudReader.d.ts +0 -16
  117. package/lib/src/wasm/DataAccessors/WasmCloudReader.js +0 -47
  118. package/lib/src/wasm/DataAccessors/WasmCloudReader.js.map +0 -1
  119. package/lib/src/wasm/WasmWorkerThreadSafeWrapper.js +0 -141
  120. package/lib/src/wasm/WasmWorkerThreadSafeWrapper.js.map +0 -1
  121. /package/lib/src/wasm/{DataAccessors → cloud_readers}/ICloudReader.js +0 -0
  122. /package/lib/src/{file-system → wasm/file-system}/PATH.d.ts +0 -0
  123. /package/lib/src/{file-system → wasm/file-system}/PATH.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"WasmWorker.js","sourceRoot":"","sources":["../../../src/wasm/WasmWorker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WasmWorker.js","sourceRoot":"","sources":["../../../src/wasm/WasmWorker.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,31 @@
1
- import { IWasmWorker } from "./WasmWorker.js";
2
- import { BimDataTessellation, BimDataTessellationInfo } from "../model/BimDataTessellation.js";
3
- import { BimCloudHierarchyItem, BimCloudMetadata, BimDataElement } from "../model/BimDataElement.js";
4
- import { BimDataElementPropertySet } from "../model/BimDataElementPropertySet.js";
5
- import { BimCloudPartAccessor } from "./DataAccessors/BimCloudPartAccessor.js";
1
+ import { FlushMemoryOptions, OpenOptions } from "../BimDataProviderApi.js";
2
+ import { BimCloudHierarchyItem, BimCloudMetadata, BimDataElement, BimDataElementPropertySet, BimDataTessellation, BimDataTessellationInfo } from "../model/BimDataClasses.js";
6
3
  import { IWasmBimModule } from "./pilot_bim_dataprovider.js";
7
- export declare class WasmWorkerThreadSafeWrapper implements IWasmWorker {
8
- private _memoryLocker;
9
- private _operationsSet;
10
- private _wasmWorker;
11
- get module(): IWasmBimModule | undefined;
12
- get cachedCloudReaders(): Map<string, BimCloudPartAccessor>;
4
+ export type MemoryGuardOptions = {
5
+ checkRAM?: boolean;
6
+ checkCache?: boolean;
7
+ };
8
+ export interface IWasmWorker {
9
+ get fileAccessor(): IFileAccessor;
10
+ get modelPartAccessor(): IModelPartAccessor;
11
+ get cloudPartAccessor(): ICloudPartAccessor;
13
12
  init(): Promise<void>;
14
- dispose(): Promise<void>;
15
- open(id: string, buffer?: ArrayBuffer): Promise<void>;
16
- write(modelPartId: string, buffer: ArrayBuffer, position: number): Promise<void>;
13
+ dispose(): void;
14
+ flushMemory(options?: FlushMemoryOptions): Promise<void>;
15
+ }
16
+ export interface IFileAccessor {
17
+ open(modelPartId: string, source?: ArrayBuffer | ArrayBufferView | Blob | string, options?: OpenOptions): Promise<void>;
18
+ write(modelPartId: string, buffer: ArrayBuffer | ArrayBufferView, position: number): Promise<void>;
19
+ read(modelPartId: string, position: number, size: number): Promise<Uint8Array>;
17
20
  close(modelPartId: string): Promise<void>;
18
21
  remove(modelPartId: string): Promise<void>;
19
22
  copy(modelPartTargetId: string, modelPartSourceId: string): Promise<void>;
20
- isValidDatabase(modelPartId: string): Promise<boolean>;
21
- updateModelPart(modelPartId: string, buffer: ArrayBuffer): Promise<void>;
23
+ isValid(modelPartId: string): Promise<boolean>;
24
+ lockFile(modelPartId: string): Promise<string>;
25
+ unlockFile(modelPartId: string): Promise<void>;
26
+ clearCache(memToFreeAmount?: number): Promise<void>;
27
+ }
28
+ export interface IModelPartAccessor {
22
29
  mergeModelParts(targetId: string, sourceId: string): Promise<void>;
23
30
  getAllTessellations(modelPartId: string, compressed: boolean, transmit: (map: BimDataTessellation[]) => Promise<void>): Promise<void>;
24
31
  getTessellations(modelPartId: string, versionFrom: bigint, versionTo: bigint, firstItemIdx: bigint, compressed: boolean, transmit: (map: BimDataTessellation[]) => Promise<void>): Promise<bigint>;
@@ -28,17 +35,28 @@ export declare class WasmWorkerThreadSafeWrapper implements IWasmWorker {
28
35
  getAllElements(modelPartId: string, transmit: (elements: BimDataElement[]) => Promise<void>): Promise<void>;
29
36
  getElements(modelPartId: string, versionFrom: bigint, versionTo: bigint, transmit: (elements: BimDataElement[]) => Promise<void>): Promise<void>;
30
37
  getDiffElements(modelPartId: string, versionFrom: bigint, versionTo: bigint, transmit: (elements: BimDataElement[]) => Promise<void>): Promise<void>;
38
+ getElementTessellations(modelPartId: string, versionFrom: bigint, versionTo: bigint, compressed: boolean): Promise<BimDataTessellation[]>;
31
39
  getElementProperties(modelPartId: string, elementId: string, version: bigint): Promise<BimDataElementPropertySet[]>;
32
40
  getElementPropertiesByIds(modelPartId: string, indexes: string[], version: bigint): Promise<Map<string, BimDataElementPropertySet[]>>;
33
- getElementTessellations(modelPartId: string, versionFrom: bigint, versionTo: bigint, compressed: boolean): Promise<BimDataTessellation[]>;
34
41
  getAllVersions(modelPartId: string): Promise<bigint[]>;
35
42
  getLatestVersion(modelPartId: string): Promise<bigint>;
36
- cacheCloudPart(modelPartId: string): Promise<void>;
43
+ isValid(modelPartId: string): Promise<boolean>;
44
+ }
45
+ export interface ICloudPartAccessor {
46
+ openReader(modelPartId: string): Promise<void>;
47
+ closeReader(modelPartId: string): Promise<void>;
37
48
  getCloudPoints(modelPartId: string, index: number, offset: number, count: number): Promise<Float32Array>;
38
49
  getCloudPointsArray(modelPartId: string, indicies: number[], transmit: (elements: Float32Array[]) => Promise<void>): Promise<void>;
39
50
  getCloudHierarchy(modelPartId: string): Promise<BimCloudHierarchyItem[]>;
40
51
  getCloudMetadata(modelPartId: string): Promise<BimCloudMetadata>;
41
- flushMemory(): Promise<void>;
42
- private checkMemory;
43
- private wrapOperation;
52
+ getCachedCloudKeys(): Array<string>;
53
+ isValid(modelPartId: string): Promise<boolean>;
54
+ }
55
+ export interface IWasmModuleAccessor {
56
+ get module(): IWasmBimModule;
57
+ }
58
+ export interface IMemoryGuard {
59
+ estimate(): StorageEstimate;
60
+ runOperation<T>(op: () => Promise<T>, options?: MemoryGuardOptions): Promise<T>;
61
+ checkMemory(options?: MemoryGuardOptions): Promise<void>;
44
62
  }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=WorkerApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkerApi.js","sourceRoot":"","sources":["../../../src/wasm/WorkerApi.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { BimCloudMetadata, BimCloudHierarchyItem } from "../../model/BimDataClasses.js";
2
+ import { ICloudReader } from "./ICloudReader.js";
3
+ import { FileAccessor } from "../data_accessors/FileAccessor.js";
4
+ export declare class BinaryCloudReader implements ICloudReader {
5
+ readonly fileAccessor: FileAccessor;
6
+ readonly modelPartId: string;
7
+ private metadata;
8
+ private _file?;
9
+ constructor(fileAccessor: FileAccessor, modelPartId: string);
10
+ open(): Promise<void>;
11
+ 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
+ getCloudMetadata(): Promise<BimCloudMetadata>;
16
+ isValid(): Promise<boolean>;
17
+ private static transferPoints;
18
+ }
@@ -0,0 +1,228 @@
1
+ import { BimCloudMetadata, BimCloudHierarchyItem } from "../../model/BimDataClasses.js";
2
+ import { BinaryConverter, transmitBimData } from "../../utils/ViewerTools.js";
3
+ export class BinaryCloudReader {
4
+ fileAccessor;
5
+ modelPartId;
6
+ metadata;
7
+ _file;
8
+ constructor(fileAccessor, modelPartId) {
9
+ this.fileAccessor = fileAccessor;
10
+ this.modelPartId = modelPartId;
11
+ }
12
+ async open() {
13
+ this.metadata = await this.getCloudMetadata();
14
+ this._file = await this.fileAccessor.getFile(this.modelPartId);
15
+ await this._file.openSyncFileAccess();
16
+ }
17
+ async close() {
18
+ this.metadata = undefined;
19
+ await this._file?.closeSyncFileAccess();
20
+ this._file = undefined;
21
+ }
22
+ async getCloudPoints(index, offset, count) {
23
+ const bufferView = await (this._file ? this._file.read(offset, count) : this.fileAccessor.read(this.modelPartId, offset, count));
24
+ return new Float32Array(bufferView.buffer);
25
+ }
26
+ async getCloudPointsArray(indicies, transmit, step) {
27
+ const count = indicies.length / 3;
28
+ const resultPromise = new Array(count);
29
+ for (let i = 0, j = 0; i < count; i++) {
30
+ j++; //const dataIndex = indicies[j++];
31
+ const offset = indicies[j++];
32
+ const size = indicies[j++];
33
+ resultPromise[i] = (this._file ? this._file.read(offset, size) : this.fileAccessor.read(this.modelPartId, offset, size))
34
+ .then(array => new Float32Array(array.buffer));
35
+ }
36
+ const result = await Promise.all(resultPromise);
37
+ return transmitBimData(result, transmit, BinaryCloudReader.transferPoints, step);
38
+ }
39
+ async getCloudHierarchy() {
40
+ if (!this.metadata)
41
+ this.metadata = await this.getCloudMetadata();
42
+ const metadata = this.metadata;
43
+ const count = metadata.nodesCount ?? 0;
44
+ const nodesOffset = metadata.nodesOffset ?? 0;
45
+ const pointsOffset = metadata.pointsOffset ?? 0;
46
+ const byteSize = pointsOffset - nodesOffset;
47
+ const result = new Array(count);
48
+ const bufferView = await (this._file ? this._file.read(nodesOffset, byteSize) : this.fileAccessor.read(this.modelPartId, nodesOffset, byteSize));
49
+ const buffer = bufferView.buffer;
50
+ const byteArray = new Uint8Array(buffer);
51
+ let offset = 0;
52
+ for (let i = 0; i < count; i++) {
53
+ // offset: 0
54
+ const index = BinaryConverter.toI32(byteArray, offset);
55
+ offset += 4;
56
+ // offset: 4
57
+ const dataIndex = BinaryConverter.toI32(byteArray, offset);
58
+ offset += 4;
59
+ // offset: 8
60
+ const pointOffset = BinaryConverter.toI64(byteArray, offset);
61
+ offset += 8;
62
+ // offset: 16
63
+ const pointSize = BinaryConverter.toI64(byteArray, offset);
64
+ offset += 8;
65
+ // offset: 24
66
+ const numPoints = BinaryConverter.toU32(byteArray, offset);
67
+ offset += 4;
68
+ // offset: 28
69
+ const min = { x: 0.0, y: 0.0, z: 0.0 };
70
+ min.x = BinaryConverter.toF32(byteArray, offset);
71
+ offset += 4;
72
+ min.y = BinaryConverter.toF32(byteArray, offset);
73
+ offset += 4;
74
+ min.z = BinaryConverter.toF32(byteArray, offset);
75
+ offset += 4;
76
+ // offset: 40
77
+ const max = { x: 0.0, y: 0.0, z: 0.0 };
78
+ max.x = BinaryConverter.toF32(byteArray, offset);
79
+ offset += 4;
80
+ max.y = BinaryConverter.toF32(byteArray, offset);
81
+ offset += 4;
82
+ max.z = BinaryConverter.toF32(byteArray, offset);
83
+ offset += 4;
84
+ // offset: 52
85
+ const type = byteArray[offset];
86
+ offset++;
87
+ // offset: 53
88
+ const mask = byteArray[offset];
89
+ offset++;
90
+ // offset: 54
91
+ const childNodesCount = BinaryConverter.toU32(byteArray, offset);
92
+ offset += 4;
93
+ // offset: 58
94
+ offset += 2;
95
+ // offset: 60
96
+ offset += 4;
97
+ // offset: 64
98
+ const node = new BimCloudHierarchyItem();
99
+ node.index = index;
100
+ node.dataIndex = dataIndex;
101
+ node.type = type;
102
+ node.mask = mask;
103
+ node.numPoints = numPoints;
104
+ node.min = min;
105
+ node.max = max;
106
+ node.offset = Number(pointOffset);
107
+ node.size = Number(pointSize);
108
+ node.childNodesCount = childNodesCount;
109
+ result[i] = node;
110
+ }
111
+ return result;
112
+ }
113
+ async getCloudMetadata() {
114
+ if (this.metadata)
115
+ return this.metadata;
116
+ const result = new BimCloudMetadata();
117
+ const headerSize = 124;
118
+ const bufferView = await (this._file ? this._file.read(0, headerSize) : this.fileAccessor.read(this.modelPartId, 0, headerSize));
119
+ const buffer = bufferView.buffer;
120
+ const byteArray = new Uint8Array(buffer);
121
+ let offset = 0;
122
+ // offset: 0
123
+ //const signature = [byteArray[0], byteArray[1], byteArray[2], byteArray[3]];
124
+ offset += 4;
125
+ // offset: 4
126
+ const version = BinaryConverter.toU32(byteArray, offset);
127
+ offset += 4;
128
+ // offset: 8
129
+ const fileSize = BinaryConverter.toI64(byteArray, offset);
130
+ offset += 8;
131
+ // offset: 16
132
+ const nodesOffset = BinaryConverter.toI64(byteArray, offset);
133
+ offset += 8;
134
+ // offset: 24
135
+ const pointsOffset = BinaryConverter.toI64(byteArray, offset);
136
+ offset += 8;
137
+ // offset: 32
138
+ const numPoints = BinaryConverter.toU64(byteArray, offset);
139
+ offset += 8;
140
+ // offset: 40
141
+ const nodesCount = BinaryConverter.toU32(byteArray, offset);
142
+ offset += 4;
143
+ // offset: 44
144
+ const depth = BinaryConverter.toU32(byteArray, offset);
145
+ offset += 4;
146
+ // offset: 48
147
+ const baseSpacing = BinaryConverter.toF32(byteArray, offset);
148
+ offset += 4;
149
+ // offset: 52
150
+ const scale = BinaryConverter.toF64(byteArray, offset);
151
+ offset += 8;
152
+ // offset: 60
153
+ const min = { x: 0.0, y: 0.0, z: 0.0 };
154
+ min.x = BinaryConverter.toF32(byteArray, offset);
155
+ offset += 4;
156
+ min.y = BinaryConverter.toF32(byteArray, offset);
157
+ offset += 4;
158
+ min.z = BinaryConverter.toF32(byteArray, offset);
159
+ offset += 4;
160
+ // offset: 72
161
+ const max = { x: 0.0, y: 0.0, z: 0.0 };
162
+ max.x = BinaryConverter.toF32(byteArray, offset);
163
+ offset += 4;
164
+ max.y = BinaryConverter.toF32(byteArray, offset);
165
+ offset += 4;
166
+ max.z = BinaryConverter.toF32(byteArray, offset);
167
+ offset += 4;
168
+ // offset: 84
169
+ const rootBoxMin = { x: 0.0, y: 0.0, z: 0.0 };
170
+ rootBoxMin.x = BinaryConverter.toF32(byteArray, offset);
171
+ offset += 4;
172
+ rootBoxMin.y = BinaryConverter.toF32(byteArray, offset);
173
+ offset += 4;
174
+ rootBoxMin.z = BinaryConverter.toF32(byteArray, offset);
175
+ offset += 4;
176
+ // offset: 96
177
+ const rootBoxMax = { x: 0.0, y: 0.0, z: 0.0 };
178
+ rootBoxMax.x = BinaryConverter.toF32(byteArray, offset);
179
+ offset += 4;
180
+ rootBoxMax.y = BinaryConverter.toF32(byteArray, offset);
181
+ offset += 4;
182
+ rootBoxMax.z = BinaryConverter.toF32(byteArray, offset);
183
+ offset += 4;
184
+ // offset: 108
185
+ const centerPosition = { x: 0.0, y: 0.0, z: 0.0 };
186
+ centerPosition.x = BinaryConverter.toF32(byteArray, offset);
187
+ offset += 4;
188
+ centerPosition.y = BinaryConverter.toF32(byteArray, offset);
189
+ offset += 4;
190
+ centerPosition.z = BinaryConverter.toF32(byteArray, offset);
191
+ offset += 4;
192
+ // offset: 120
193
+ const pointFormat = byteArray[offset];
194
+ offset++;
195
+ // offset: 121
196
+ const bytesPerPoint = byteArray[offset];
197
+ offset++;
198
+ // offset: 122
199
+ offset += 2;
200
+ // offset: 124
201
+ result.depth = depth;
202
+ result.min = min;
203
+ result.max = max;
204
+ result.baseSpacing = baseSpacing;
205
+ result.version = version;
206
+ result.nodesCount = nodesCount;
207
+ result.posOffset = centerPosition;
208
+ result.posScale = { x: scale, y: scale, z: scale };
209
+ result.root_min = rootBoxMin;
210
+ result.root_max = rootBoxMax;
211
+ result.fileSize = Number(fileSize);
212
+ result.pointFormat = pointFormat;
213
+ result.bytesPerPoint = bytesPerPoint;
214
+ result.numPoints = Number(numPoints);
215
+ result.nodesOffset = Number(nodesOffset);
216
+ result.pointsOffset = Number(pointsOffset);
217
+ return result;
218
+ }
219
+ async isValid() {
220
+ const metadata = await this.getCloudMetadata();
221
+ const fileSize = (await this.fileAccessor.getFileInfo(this.modelPartId)).size;
222
+ return fileSize == metadata.fileSize;
223
+ }
224
+ static transferPoints(data) {
225
+ return data.buffer;
226
+ }
227
+ }
228
+ //# sourceMappingURL=BinaryCloudReader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BinaryCloudReader.js","sourceRoot":"","sources":["../../../../src/wasm/cloud_readers/BinaryCloudReader.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { BimCloudHierarchyItem, BimCloudMetadata } from "../../model/BimDataElement.js";
1
+ import { BimCloudHierarchyItem, BimCloudMetadata } from "../../model/BimDataClasses.js";
2
2
  export interface ICloudReader {
3
- open(filename: string): Promise<void>;
3
+ open(): Promise<void>;
4
4
  close(): Promise<void>;
5
- getCloudPoints(index: number, offset: number, count: number): Float32Array;
5
+ getCloudPoints(index: number, offset: number, count: number): Promise<Float32Array>;
6
6
  getCloudPointsArray(indicies: number[], transmit: (elements: Float32Array[]) => Promise<void>, step: number): Promise<void>;
7
- getCloudHierarchy(): BimCloudHierarchyItem[];
8
- getCloudMetadata(): BimCloudMetadata;
9
- isValid(): boolean;
7
+ getCloudHierarchy(): Promise<BimCloudHierarchyItem[]>;
8
+ getCloudMetadata(): Promise<BimCloudMetadata>;
9
+ isValid(): Promise<boolean>;
10
10
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ICloudReader.js","sourceRoot":"","sources":["../../../../src/wasm/cloud_readers/ICloudReader.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import { BimCloudHierarchyItem, BimCloudMetadata } from "../../model/BimDataClasses.js";
2
+ import { ICloudReader } from "./ICloudReader.js";
3
+ import { IWasmModuleAccessor } from "../WorkerApi.js";
4
+ import { FileAccessor } from "../data_accessors/FileAccessor.js";
5
+ export declare class WasmCloudReader implements ICloudReader {
6
+ readonly moduleAccessor: IWasmModuleAccessor;
7
+ readonly fileAccessor: FileAccessor;
8
+ readonly modelPartId: string;
9
+ private _cloudReader?;
10
+ private readonly path;
11
+ private readonly _memGuardOptions;
12
+ constructor(moduleAccessor: IWasmModuleAccessor, fileAccessor: FileAccessor, modelPartId: string);
13
+ open(): Promise<void>;
14
+ close(): Promise<void>;
15
+ getCloudPoints(index: number, offset: number, count: number): Promise<Float32Array>;
16
+ getCloudPointsArray(indicies: number[], transmit: (elements: Float32Array[]) => Promise<void>, step: number): Promise<void>;
17
+ getCloudHierarchy(): Promise<BimCloudHierarchyItem[]>;
18
+ getCloudMetadata(): Promise<BimCloudMetadata>;
19
+ isValid(): Promise<boolean>;
20
+ }
@@ -0,0 +1,53 @@
1
+ import { BimDataConverter, getPath, isOPFSEnabled, transmitWasmData } from "../../utils/ViewerTools.js";
2
+ export class WasmCloudReader {
3
+ moduleAccessor;
4
+ fileAccessor;
5
+ modelPartId;
6
+ _cloudReader;
7
+ path;
8
+ _memGuardOptions = { checkRAM: isOPFSEnabled, checkCache: false };
9
+ constructor(moduleAccessor, fileAccessor, modelPartId) {
10
+ this.moduleAccessor = moduleAccessor;
11
+ this.fileAccessor = fileAccessor;
12
+ this.modelPartId = modelPartId;
13
+ this.path = getPath(modelPartId);
14
+ }
15
+ async open() {
16
+ await this.fileAccessor.openSyncFileAccess(this.modelPartId);
17
+ this._cloudReader = this.moduleAccessor.module.getCloudReader();
18
+ this._cloudReader.open(this.path);
19
+ }
20
+ async close() {
21
+ this._cloudReader?.close();
22
+ this._cloudReader?.delete();
23
+ this._cloudReader = undefined;
24
+ await this.fileAccessor.closeSyncFileAccess(this.modelPartId);
25
+ }
26
+ async getCloudPoints(index, offset, count) {
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
+ return BimDataConverter.toCloudPoints(this.moduleAccessor.module, pointsData, true);
29
+ }
30
+ async getCloudPointsArray(indicies, transmit, step) {
31
+ const indiciesVector = new this.moduleAccessor.module.IntVector();
32
+ const count = indicies.length / 3;
33
+ indiciesVector.resize(count, 0);
34
+ for (let i = 0, j = 0; i < count; i++, j += 3) {
35
+ indiciesVector.set(i, indicies[j]);
36
+ }
37
+ const pointsDataArray = await this.fileAccessor.runSyncFileOp(this.modelPartId, async () => this._cloudReader?.getCloudPointsArray(indiciesVector, true) ?? this.moduleAccessor.module.getCloudPointsArray(this.path, indiciesVector), this._memGuardOptions);
38
+ indiciesVector.delete();
39
+ return transmitWasmData(this.moduleAccessor.module, pointsDataArray, true, BimDataConverter.toCloudPoints, transmit, step);
40
+ }
41
+ async getCloudHierarchy() {
42
+ const result = await this.fileAccessor.runSyncFileOp(this.modelPartId, async () => this._cloudReader?.getCloudHierarchy() ?? this.moduleAccessor.module.getCloudHierarchy(this.path), this._memGuardOptions);
43
+ return BimDataConverter.toBimCloudHierarchy(result, true);
44
+ }
45
+ async getCloudMetadata() {
46
+ const result = await this.fileAccessor.runSyncFileOp(this.modelPartId, async () => this._cloudReader?.getCloudMetadata() ?? this.moduleAccessor.module.getCloudMetadata(this.path));
47
+ return BimDataConverter.toCloudMetadata(result, true);
48
+ }
49
+ async isValid() {
50
+ return this.fileAccessor.runSyncFileOp(this.modelPartId, async () => this.moduleAccessor.module.isValidDatabase(this.path));
51
+ }
52
+ }
53
+ //# sourceMappingURL=WasmCloudReader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WasmCloudReader.js","sourceRoot":"","sources":["../../../../src/wasm/cloud_readers/WasmCloudReader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { BimCloudHierarchyItem, BimCloudMetadata } from "../../model/BimDataClasses.js";
2
+ import { FileAccessor } from "./FileAccessor.js";
3
+ import { ICloudReader } from "../cloud_readers/ICloudReader.js";
4
+ import { ICloudPartAccessor, IWasmModuleAccessor } from "../WorkerApi.js";
5
+ export declare class CloudPartAccessor implements ICloudPartAccessor {
6
+ readonly fileAccessor: FileAccessor;
7
+ readonly moduleAccessor: IWasmModuleAccessor;
8
+ protected _cachedCloudReaders: Map<string, ICloudReader>;
9
+ constructor(fileAccessor: FileAccessor, moduleAccessor: IWasmModuleAccessor);
10
+ openReader(modelPartId: string): Promise<void>;
11
+ closeReader(modelPartId: string): Promise<void>;
12
+ dispose(): Promise<void>;
13
+ getCachedCloudKeys(): Array<string>;
14
+ getCloudPoints(modelPartId: string, index: number, offset: number, count: number): Promise<Float32Array>;
15
+ getCloudPointsArray(modelPartId: string, indicies: number[], transmit: (elements: Float32Array[]) => Promise<void>): Promise<void>;
16
+ getCloudHierarchy(modelPartId: string): Promise<BimCloudHierarchyItem[]>;
17
+ getCloudMetadata(modelPartId: string): Promise<BimCloudMetadata>;
18
+ isValid(modelPartId: string): Promise<boolean>;
19
+ getReader(modelPartId: string): Promise<ICloudReader>;
20
+ }
@@ -0,0 +1,70 @@
1
+ import { BinaryCloudFileSignature, SqliteFileSignature, TRANSMIT_STEP } from "../../utils/Consts.js";
2
+ import { BinaryCloudReader } from "../cloud_readers/BinaryCloudReader.js";
3
+ import { WasmCloudReader } from "../cloud_readers/WasmCloudReader.js";
4
+ import { isValidFileSignature } from "../../utils/ViewerTools.js";
5
+ export class CloudPartAccessor {
6
+ fileAccessor;
7
+ moduleAccessor;
8
+ _cachedCloudReaders = new Map();
9
+ constructor(fileAccessor, moduleAccessor) {
10
+ this.fileAccessor = fileAccessor;
11
+ this.moduleAccessor = moduleAccessor;
12
+ }
13
+ async openReader(modelPartId) {
14
+ if (!this._cachedCloudReaders.has(modelPartId)) {
15
+ const reader = await this.getReader(modelPartId);
16
+ await reader.open();
17
+ this._cachedCloudReaders.set(modelPartId, reader);
18
+ }
19
+ }
20
+ async closeReader(modelPartId) {
21
+ if (this._cachedCloudReaders.has(modelPartId)) {
22
+ await this._cachedCloudReaders.get(modelPartId)?.close();
23
+ this._cachedCloudReaders.delete(modelPartId);
24
+ }
25
+ }
26
+ async dispose() {
27
+ const closePromises = new Array();
28
+ for (const [, reader] of this._cachedCloudReaders) {
29
+ closePromises.push(reader.close());
30
+ }
31
+ await Promise.all(closePromises);
32
+ }
33
+ getCachedCloudKeys() {
34
+ return Array.from(this._cachedCloudReaders.keys());
35
+ }
36
+ async getCloudPoints(modelPartId, index, offset, count) {
37
+ return (await this.getReader(modelPartId)).getCloudPoints(index, offset, count);
38
+ }
39
+ async getCloudPointsArray(modelPartId, indicies, transmit) {
40
+ return (await this.getReader(modelPartId)).getCloudPointsArray(indicies, transmit, TRANSMIT_STEP);
41
+ }
42
+ async getCloudHierarchy(modelPartId) {
43
+ return (await this.getReader(modelPartId)).getCloudHierarchy();
44
+ }
45
+ async getCloudMetadata(modelPartId) {
46
+ return (await this.getReader(modelPartId)).getCloudMetadata();
47
+ }
48
+ async isValid(modelPartId) {
49
+ try {
50
+ return (await this.getReader(modelPartId)).isValid();
51
+ }
52
+ catch {
53
+ return false;
54
+ }
55
+ }
56
+ async getReader(modelPartId) {
57
+ const reader = this._cachedCloudReaders.get(modelPartId);
58
+ if (reader)
59
+ return reader;
60
+ const fileSignLength = Math.max(BinaryCloudFileSignature.byteLength, SqliteFileSignature.length);
61
+ const arrayBuffer = await this.fileAccessor.read(modelPartId, 0, fileSignLength);
62
+ if (isValidFileSignature(BinaryCloudFileSignature, arrayBuffer))
63
+ return new BinaryCloudReader(this.fileAccessor, modelPartId);
64
+ else if (isValidFileSignature(SqliteFileSignature, arrayBuffer))
65
+ return new WasmCloudReader(this.moduleAccessor, this.fileAccessor, modelPartId);
66
+ else
67
+ throw new Error("Cloud format is not supported.");
68
+ }
69
+ }
70
+ //# sourceMappingURL=CloudPartAccessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CloudPartAccessor.js","sourceRoot":"","sources":["../../../../src/wasm/data_accessors/CloudPartAccessor.ts"],"names":[],"mappings":"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"}