@pilotdev/pilot-bim-dataprovider 25.9.0 → 25.10.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,268 +0,0 @@
1
- import { BimCloudHierarchyItem, BimCloudMetadata } from "../../model/BimDataElement.js";
2
- import { BinaryConverter, transmitBimData } from "../../utils/ViewerTools.js";
3
- export class BinaryCloudReader {
4
- constructor(module, path) {
5
- this.module = module;
6
- this.path = path;
7
- }
8
- async open() {
9
- let stream;
10
- try {
11
- stream = this.module.FS.open(this.path, "r");
12
- this.metadata = this.getCloudMetadata();
13
- }
14
- finally {
15
- if (stream)
16
- this.module.FS.close(stream);
17
- }
18
- }
19
- async close() {
20
- this.metadata = undefined;
21
- }
22
- getCloudPoints(index, offset, count) {
23
- let stream;
24
- try {
25
- stream = this.module.FS.open(this.path, "r");
26
- const byteArray = new Uint8Array(count);
27
- const floatArray = new Float32Array(byteArray.buffer);
28
- this.module.FS.read(stream, byteArray, byteArray.byteOffset, byteArray.byteLength, offset);
29
- return floatArray;
30
- }
31
- finally {
32
- if (stream)
33
- this.module.FS.close(stream);
34
- }
35
- }
36
- getCloudPointsArray(indicies, transmit, step) {
37
- let stream;
38
- try {
39
- stream = this.module.FS.open(this.path, "r");
40
- const count = indicies.length / 3;
41
- const result = new Array(count);
42
- for (let i = 0, j = 0; i < count; i++) {
43
- j++; //const dataIndex = indicies[j++];
44
- const offset = indicies[j++];
45
- const size = indicies[j++];
46
- const byteArray = new Uint8Array(size);
47
- const floatArray = new Float32Array(byteArray.buffer);
48
- this.module.FS.read(stream, byteArray, byteArray.byteOffset, byteArray.byteLength, offset);
49
- result[i] = floatArray;
50
- }
51
- return transmitBimData(result, transmit, step);
52
- }
53
- finally {
54
- if (stream)
55
- this.module.FS.close(stream);
56
- }
57
- }
58
- getCloudHierarchy() {
59
- let stream;
60
- try {
61
- if (!this.metadata)
62
- this.metadata = this.getCloudMetadata();
63
- const metadata = this.metadata;
64
- const count = metadata.nodesCount ?? 0;
65
- const nodesOffset = metadata.nodesOffset ?? 0;
66
- const pointsOffset = metadata.pointsOffset ?? 0;
67
- const byteSize = pointsOffset - nodesOffset;
68
- const array = new ArrayBuffer(byteSize);
69
- const byteArray = new Uint8Array(array);
70
- const result = new Array(count);
71
- stream = this.module.FS.open(this.path, "r");
72
- this.module.FS.read(stream, byteArray, byteArray.byteOffset, byteArray.byteLength, nodesOffset);
73
- let offset = 0;
74
- for (let i = 0; i < count; i++) {
75
- // offset: 0
76
- const index = BinaryConverter.toI32(byteArray, offset);
77
- offset += 4;
78
- // offset: 4
79
- const dataIndex = BinaryConverter.toI32(byteArray, offset);
80
- offset += 4;
81
- // offset: 8
82
- const pointOffset = BinaryConverter.toI64(byteArray, offset);
83
- offset += 8;
84
- // offset: 16
85
- const pointSize = BinaryConverter.toI64(byteArray, offset);
86
- offset += 8;
87
- // offset: 24
88
- const numPoints = BinaryConverter.toU32(byteArray, offset);
89
- offset += 4;
90
- // offset: 28
91
- const min = { x: 0.0, y: 0.0, z: 0.0 };
92
- min.x = BinaryConverter.toF32(byteArray, offset);
93
- offset += 4;
94
- min.y = BinaryConverter.toF32(byteArray, offset);
95
- offset += 4;
96
- min.z = BinaryConverter.toF32(byteArray, offset);
97
- offset += 4;
98
- // offset: 40
99
- const max = { x: 0.0, y: 0.0, z: 0.0 };
100
- max.x = BinaryConverter.toF32(byteArray, offset);
101
- offset += 4;
102
- max.y = BinaryConverter.toF32(byteArray, offset);
103
- offset += 4;
104
- max.z = BinaryConverter.toF32(byteArray, offset);
105
- offset += 4;
106
- // offset: 52
107
- const type = byteArray[offset];
108
- offset++;
109
- // offset: 53
110
- const mask = byteArray[offset];
111
- offset++;
112
- // offset: 54
113
- const childNodesCount = BinaryConverter.toU32(byteArray, offset);
114
- offset += 4;
115
- // offset: 58
116
- offset += 2;
117
- // offset: 60
118
- offset += 4;
119
- // offset: 64
120
- const node = new BimCloudHierarchyItem();
121
- node.index = index;
122
- node.dataIndex = dataIndex;
123
- node.type = type;
124
- node.mask = mask;
125
- node.numPoints = numPoints;
126
- node.min = min;
127
- node.max = max;
128
- node.offset = Number(pointOffset);
129
- node.size = Number(pointSize);
130
- node.childNodesCount = childNodesCount;
131
- result[i] = node;
132
- }
133
- return result;
134
- }
135
- finally {
136
- if (stream)
137
- this.module.FS.close(stream);
138
- }
139
- }
140
- getCloudMetadata() {
141
- if (this.metadata)
142
- return this.metadata;
143
- let stream;
144
- try {
145
- const result = new BimCloudMetadata();
146
- const headerSize = 124;
147
- const array = new ArrayBuffer(headerSize);
148
- const byteArray = new Uint8Array(array);
149
- stream = this.module.FS.open(this.path, "r");
150
- this.module.FS.read(stream, byteArray, byteArray.byteOffset, byteArray.byteLength, 0);
151
- let offset = 0;
152
- // offset: 0
153
- //const signature = [byteArray[0], byteArray[1], byteArray[2], byteArray[3]]; // ignore this field
154
- offset += 4;
155
- // offset: 4
156
- const version = BinaryConverter.toU32(byteArray, offset);
157
- offset += 4;
158
- // offset: 8
159
- const fileSize = BinaryConverter.toI64(byteArray, offset);
160
- offset += 8;
161
- // offset: 16
162
- const nodesOffset = BinaryConverter.toI64(byteArray, offset);
163
- offset += 8;
164
- // offset: 24
165
- const pointsOffset = BinaryConverter.toI64(byteArray, offset);
166
- offset += 8;
167
- // offset: 32
168
- const numPoints = BinaryConverter.toU64(byteArray, offset);
169
- offset += 8;
170
- // offset: 40
171
- const nodesCount = BinaryConverter.toU32(byteArray, offset);
172
- offset += 4;
173
- // offset: 44
174
- const depth = BinaryConverter.toU32(byteArray, offset);
175
- offset += 4;
176
- // offset: 48
177
- const baseSpacing = BinaryConverter.toF32(byteArray, offset);
178
- offset += 4;
179
- // offset: 52
180
- const scale = BinaryConverter.toF64(byteArray, offset);
181
- offset += 8;
182
- // offset: 60
183
- const min = { x: 0.0, y: 0.0, z: 0.0 };
184
- min.x = BinaryConverter.toF32(byteArray, offset);
185
- offset += 4;
186
- min.y = BinaryConverter.toF32(byteArray, offset);
187
- offset += 4;
188
- min.z = BinaryConverter.toF32(byteArray, offset);
189
- offset += 4;
190
- // offset: 72
191
- const max = { x: 0.0, y: 0.0, z: 0.0 };
192
- max.x = BinaryConverter.toF32(byteArray, offset);
193
- offset += 4;
194
- max.y = BinaryConverter.toF32(byteArray, offset);
195
- offset += 4;
196
- max.z = BinaryConverter.toF32(byteArray, offset);
197
- offset += 4;
198
- // offset: 84
199
- const rootBoxMin = { x: 0.0, y: 0.0, z: 0.0 };
200
- rootBoxMin.x = BinaryConverter.toF32(byteArray, offset);
201
- offset += 4;
202
- rootBoxMin.y = BinaryConverter.toF32(byteArray, offset);
203
- offset += 4;
204
- rootBoxMin.z = BinaryConverter.toF32(byteArray, offset);
205
- offset += 4;
206
- // offset: 96
207
- const rootBoxMax = { x: 0.0, y: 0.0, z: 0.0 };
208
- rootBoxMax.x = BinaryConverter.toF32(byteArray, offset);
209
- offset += 4;
210
- rootBoxMax.y = BinaryConverter.toF32(byteArray, offset);
211
- offset += 4;
212
- rootBoxMax.z = BinaryConverter.toF32(byteArray, offset);
213
- offset += 4;
214
- // offset: 108
215
- const centerPosition = { x: 0.0, y: 0.0, z: 0.0 };
216
- centerPosition.x = BinaryConverter.toF32(byteArray, offset);
217
- offset += 4;
218
- centerPosition.y = BinaryConverter.toF32(byteArray, offset);
219
- offset += 4;
220
- centerPosition.z = BinaryConverter.toF32(byteArray, offset);
221
- offset += 4;
222
- // offset: 120
223
- const pointFormat = byteArray[offset];
224
- offset++;
225
- // offset: 121
226
- const bytesPerPoint = byteArray[offset];
227
- offset++;
228
- // offset: 122
229
- offset += 2;
230
- // offset: 124
231
- result.depth = depth;
232
- result.min = min;
233
- result.max = max;
234
- result.baseSpacing = baseSpacing;
235
- result.version = version;
236
- result.nodesCount = nodesCount;
237
- result.posOffset = centerPosition;
238
- result.posScale = { x: scale, y: scale, z: scale };
239
- result.root_min = rootBoxMin;
240
- result.root_max = rootBoxMax;
241
- result.fileSize = Number(fileSize);
242
- result.pointFormat = pointFormat;
243
- result.bytesPerPoint = bytesPerPoint;
244
- result.numPoints = Number(numPoints);
245
- result.nodesOffset = Number(nodesOffset);
246
- result.pointsOffset = Number(pointsOffset);
247
- return result;
248
- }
249
- finally {
250
- if (stream)
251
- this.module.FS.close(stream);
252
- }
253
- }
254
- isValid() {
255
- const byteArray = new Uint8Array(new ArrayBuffer(4));
256
- const stream = this.module.FS.open(this.path, "r");
257
- this.module.FS.read(stream, byteArray, byteArray.byteOffset, byteArray.byteLength);
258
- this.module.FS.close(stream);
259
- const signature = [byteArray[0], byteArray[1], byteArray[2], byteArray[3]];
260
- const binaryFormat = new Uint8Array([80, 78, 84, 67]); //PNTC
261
- for (let index = 0; index < binaryFormat.length; index++) {
262
- if (binaryFormat[index] !== signature[index])
263
- return false;
264
- }
265
- return true;
266
- }
267
- }
268
- //# sourceMappingURL=BinaryCloudReader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BinaryCloudReader.js","sourceRoot":"","sources":["../../../../src/wasm/DataAccessors/BinaryCloudReader.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ICloudReader.js","sourceRoot":"","sources":["../../../../src/wasm/DataAccessors/ICloudReader.ts"],"names":[],"mappings":""}
@@ -1,16 +0,0 @@
1
- import { IWasmBimModule } from "../pilot_bim_dataprovider.js";
2
- import { BimCloudHierarchyItem, BimCloudMetadata } from "../../model/BimDataElement.js";
3
- import { ICloudReader } from "./ICloudReader.js";
4
- export declare class WasmCloudReader implements ICloudReader {
5
- readonly _module: IWasmBimModule;
6
- readonly path: string;
7
- private _cloudReader?;
8
- constructor(_module: IWasmBimModule, path: string);
9
- open(): Promise<void>;
10
- close(): Promise<void>;
11
- getCloudPoints(index: number, offset: number, count: number): Float32Array;
12
- getCloudPointsArray(indicies: number[], transmit: (elements: Float32Array[]) => Promise<void>, step: number): Promise<void>;
13
- getCloudHierarchy(): BimCloudHierarchyItem[];
14
- getCloudMetadata(): BimCloudMetadata;
15
- isValid(): boolean;
16
- }
@@ -1,47 +0,0 @@
1
- import { BimDataConverter, transmitWasmData } from "../../utils/ViewerTools.js";
2
- export class WasmCloudReader {
3
- constructor(_module, path) {
4
- this._module = _module;
5
- this.path = path;
6
- }
7
- async open() {
8
- this._cloudReader = this._module.getCloudReader();
9
- this._cloudReader.open(this.path);
10
- }
11
- async close() {
12
- this._cloudReader?.close();
13
- this._cloudReader?.delete();
14
- this._cloudReader = undefined;
15
- }
16
- getCloudPoints(index, offset, count) {
17
- const pointsData = this._cloudReader ? this._cloudReader.getCloudPoints(index, true) : this._module.getCloudPoints(this.path, index);
18
- return BimDataConverter.toCloudPoints(this._module, pointsData, true);
19
- }
20
- getCloudPointsArray(indicies, transmit, step) {
21
- const indiciesVector = new this._module.IntVector();
22
- const count = indicies.length / 3;
23
- indiciesVector.resize(count, 0);
24
- for (let i = 0, j = 0; i < count; i++, j += 3)
25
- indiciesVector.set(i, indicies[j]);
26
- const pointsDataArray = this._cloudReader ? this._cloudReader.getCloudPointsArray(indiciesVector, true) : this._module.getCloudPointsArray(this.path, indiciesVector);
27
- indiciesVector.delete();
28
- return transmitWasmData(this._module, pointsDataArray, true, BimDataConverter.toCloudPoints, transmit, step);
29
- }
30
- getCloudHierarchy() {
31
- const result = this._cloudReader ? this._cloudReader.getCloudHierarchy() : this._module.getCloudHierarchy(this.path);
32
- return BimDataConverter.toBimCloudHierarchy(result, true);
33
- }
34
- getCloudMetadata() {
35
- const result = this._cloudReader ? this._cloudReader.getCloudMetadata() : this._module.getCloudMetadata(this.path);
36
- return BimDataConverter.toCloudMetadata(result, true);
37
- }
38
- isValid() {
39
- try {
40
- return this._module.isValidDatabase(this.path);
41
- }
42
- catch {
43
- return false;
44
- }
45
- }
46
- }
47
- //# sourceMappingURL=WasmCloudReader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WasmCloudReader.js","sourceRoot":"","sources":["../../../../src/wasm/DataAccessors/WasmCloudReader.ts"],"names":[],"mappings":"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"}
@@ -1,141 +0,0 @@
1
- import { WasmWorker } from "./WasmWorker.js";
2
- import { isSecureContext } from "../utils/ViewerTools.js";
3
- import { expose } from "./worker.js";
4
- const HEAP_SIZE_LIMIT = 1024 * 1024 * 1024;
5
- export class WasmWorkerThreadSafeWrapper {
6
- constructor() {
7
- this._memoryLocker = { isLocked: false, lock: Promise.resolve() };
8
- this._operationsSet = new Set();
9
- this._wasmWorker = new WasmWorker();
10
- }
11
- get module() {
12
- return this._wasmWorker.module;
13
- }
14
- get cachedCloudReaders() {
15
- return this._wasmWorker.cachedCloudReaders;
16
- }
17
- init() {
18
- return this._wasmWorker.init();
19
- }
20
- dispose() {
21
- return this._wasmWorker.dispose();
22
- }
23
- // DataPart
24
- open(id, buffer) {
25
- return this.wrapOperation(async () => this._wasmWorker.open(id, buffer));
26
- }
27
- write(modelPartId, buffer, position) {
28
- return this.wrapOperation(async () => this._wasmWorker.write(modelPartId, buffer, position));
29
- }
30
- close(modelPartId) {
31
- return this.wrapOperation(async () => this._wasmWorker.close(modelPartId));
32
- }
33
- remove(modelPartId) {
34
- return this.wrapOperation(async () => this._wasmWorker.remove(modelPartId));
35
- }
36
- copy(modelPartTargetId, modelPartSourceId) {
37
- return this.wrapOperation(async () => this._wasmWorker.copy(modelPartTargetId, modelPartSourceId));
38
- }
39
- isValidDatabase(modelPartId) {
40
- return this.wrapOperation(async () => this._wasmWorker.isValidDatabase(modelPartId));
41
- }
42
- // ModelPart
43
- updateModelPart(modelPartId, buffer) {
44
- return this.wrapOperation(async () => this._wasmWorker.updateModelPart(modelPartId, buffer));
45
- }
46
- mergeModelParts(targetId, sourceId) {
47
- return this.wrapOperation(async () => this._wasmWorker.mergeModelParts(targetId, sourceId));
48
- }
49
- getAllTessellations(modelPartId, compressed, transmit) {
50
- return this.wrapOperation(async () => this._wasmWorker.getAllTessellations(modelPartId, compressed, transmit));
51
- }
52
- getTessellations(modelPartId, versionFrom, versionTo, firstItemIdx, compressed, transmit) {
53
- return this.wrapOperation(async () => this._wasmWorker.getTessellations(modelPartId, versionFrom, versionTo, firstItemIdx, compressed, transmit));
54
- }
55
- getTessellationsInfo(modelPartId, versionFrom, versionTo, compressed, transmit) {
56
- return this.wrapOperation(async () => this._wasmWorker.getTessellationsInfo(modelPartId, versionFrom, versionTo, compressed, transmit));
57
- }
58
- getTessellation(modelPartId, tessellationKey, version, compressed) {
59
- return this.wrapOperation(async () => this._wasmWorker.getTessellation(modelPartId, tessellationKey, version, compressed));
60
- }
61
- getTessellationsByIds(modelPartId, tessellations, version, compressed, transmit) {
62
- return this.wrapOperation(async () => this._wasmWorker.getTessellationsByIds(modelPartId, tessellations, version, compressed, transmit));
63
- }
64
- getAllElements(modelPartId, transmit) {
65
- return this.wrapOperation(async () => this._wasmWorker.getAllElements(modelPartId, transmit));
66
- }
67
- getElements(modelPartId, versionFrom, versionTo, transmit) {
68
- return this.wrapOperation(async () => this._wasmWorker.getElements(modelPartId, versionFrom, versionTo, transmit));
69
- }
70
- getDiffElements(modelPartId, versionFrom, versionTo, transmit) {
71
- return this.wrapOperation(async () => this._wasmWorker.getDiffElements(modelPartId, versionFrom, versionTo, transmit));
72
- }
73
- getElementProperties(modelPartId, elementId, version) {
74
- return this.wrapOperation(async () => this._wasmWorker.getElementProperties(modelPartId, elementId, version));
75
- }
76
- getElementPropertiesByIds(modelPartId, indexes, version) {
77
- return this.wrapOperation(async () => this._wasmWorker.getElementPropertiesByIds(modelPartId, indexes, version));
78
- }
79
- getElementTessellations(modelPartId, versionFrom, versionTo, compressed) {
80
- return this.wrapOperation(async () => this._wasmWorker.getElementTessellations(modelPartId, versionFrom, versionTo, compressed));
81
- }
82
- getAllVersions(modelPartId) {
83
- return this.wrapOperation(async () => this._wasmWorker.getAllVersions(modelPartId));
84
- }
85
- getLatestVersion(modelPartId) {
86
- return this.wrapOperation(async () => this._wasmWorker.getLatestVersion(modelPartId));
87
- }
88
- // CloudPart
89
- async cacheCloudPart(modelPartId) {
90
- return this.wrapOperation(async () => this._wasmWorker.cacheCloudPart(modelPartId));
91
- }
92
- getCloudPoints(modelPartId, index, offset, count) {
93
- return this.wrapOperation(async () => this._wasmWorker.getCloudPoints(modelPartId, index, offset, count));
94
- }
95
- getCloudPointsArray(modelPartId, indicies, transmit) {
96
- return this.wrapOperation(async () => this._wasmWorker.getCloudPointsArray(modelPartId, indicies, transmit));
97
- }
98
- getCloudHierarchy(modelPartId) {
99
- return this.wrapOperation(async () => this._wasmWorker.getCloudHierarchy(modelPartId));
100
- }
101
- getCloudMetadata(modelPartId) {
102
- return this.wrapOperation(async () => this._wasmWorker.getCloudMetadata(modelPartId));
103
- }
104
- // Memory checks & locks
105
- flushMemory() {
106
- if (!this.module || !isSecureContext)
107
- return Promise.resolve();
108
- if (this._memoryLocker.isLocked)
109
- return this._memoryLocker.lock;
110
- this._memoryLocker.isLocked = true;
111
- const promise = async () => {
112
- await Promise.all(Array.from(this._operationsSet.values()));
113
- const cloudParts = Array.from(this.cachedCloudReaders.keys());
114
- for await (const [, reader] of this.cachedCloudReaders)
115
- await reader.close();
116
- this.cachedCloudReaders.clear();
117
- await this.init();
118
- for await (const cloudId of cloudParts)
119
- await this._wasmWorker.cacheCloudPart(cloudId);
120
- this._memoryLocker.isLocked = false;
121
- };
122
- return this._memoryLocker.lock = promise();
123
- }
124
- async checkMemory() {
125
- while (this._memoryLocker.isLocked)
126
- await this._memoryLocker.lock;
127
- const heapSize = this.module?.HEAP8.byteLength;
128
- if (heapSize && heapSize > HEAP_SIZE_LIMIT) {
129
- await this.flushMemory();
130
- }
131
- }
132
- async wrapOperation(op) {
133
- await this.checkMemory();
134
- const opPromise = op();
135
- this._operationsSet.add(opPromise);
136
- opPromise.finally(() => this._operationsSet.delete(opPromise));
137
- return opPromise;
138
- }
139
- }
140
- expose(WasmWorkerThreadSafeWrapper);
141
- //# sourceMappingURL=WasmWorkerThreadSafeWrapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WasmWorkerThreadSafeWrapper.js","sourceRoot":"","sources":["../../../src/wasm/WasmWorkerThreadSafeWrapper.ts"],"names":[],"mappings":"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"}