@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.
- package/lib/index.d.ts +4 -9
- package/lib/index.js +2 -5
- package/lib/index.js.map +1 -1
- package/lib/src/BimDataProviderApi.d.ts +52 -0
- package/lib/src/BimDataProviderApi.js +2 -0
- package/lib/src/BimDataProviderApi.js.map +1 -0
- package/lib/src/model/{BimDataIfcType.d.ts → BimDataClasses.d.ts} +159 -0
- package/lib/src/model/{BimDataIfcType.js → BimDataClasses.js} +203 -1
- package/lib/src/model/BimDataClasses.js.map +1 -0
- package/lib/src/model/BimDataCloudPart.d.ts +5 -9
- package/lib/src/model/BimDataCloudPart.js +11 -12
- package/lib/src/model/BimDataCloudPart.js.map +1 -1
- package/lib/src/model/BimDataModelPart.d.ts +4 -23
- package/lib/src/model/BimDataModelPart.js +22 -36
- package/lib/src/model/BimDataModelPart.js.map +1 -1
- package/lib/src/model/BimDataPart.d.ts +11 -21
- package/lib/src/model/BimDataPart.js +41 -67
- package/lib/src/model/BimDataPart.js.map +1 -1
- package/lib/src/model/BimDataProvider.d.ts +4 -17
- package/lib/src/model/BimDataProvider.js +18 -27
- package/lib/src/model/BimDataProvider.js.map +1 -1
- package/lib/src/utils/Consts.d.ts +17 -0
- package/lib/src/utils/Consts.js +20 -0
- package/lib/src/utils/Consts.js.map +1 -0
- package/lib/src/utils/ViewerTools.d.ts +17 -16
- package/lib/src/utils/ViewerTools.js +39 -21
- package/lib/src/utils/ViewerTools.js.map +1 -1
- package/lib/src/wasm/WasmWorker.d.ts +22 -70
- package/lib/src/wasm/WasmWorker.js +89 -180
- package/lib/src/wasm/WasmWorker.js.map +1 -1
- package/lib/src/wasm/{WasmWorkerThreadSafeWrapper.d.ts → WorkerApi.d.ts} +39 -21
- package/lib/src/wasm/WorkerApi.js +2 -0
- package/lib/src/wasm/WorkerApi.js.map +1 -0
- package/lib/src/wasm/cloud_readers/BinaryCloudReader.d.ts +18 -0
- package/lib/src/wasm/cloud_readers/BinaryCloudReader.js +228 -0
- package/lib/src/wasm/cloud_readers/BinaryCloudReader.js.map +1 -0
- package/lib/src/wasm/{DataAccessors → cloud_readers}/ICloudReader.d.ts +6 -6
- package/lib/src/wasm/cloud_readers/ICloudReader.js.map +1 -0
- package/lib/src/wasm/cloud_readers/WasmCloudReader.d.ts +20 -0
- package/lib/src/wasm/cloud_readers/WasmCloudReader.js +53 -0
- package/lib/src/wasm/cloud_readers/WasmCloudReader.js.map +1 -0
- package/lib/src/wasm/data_accessors/CloudPartAccessor.d.ts +20 -0
- package/lib/src/wasm/data_accessors/CloudPartAccessor.js +70 -0
- package/lib/src/wasm/data_accessors/CloudPartAccessor.js.map +1 -0
- package/lib/src/wasm/data_accessors/FileAccessor.d.ts +37 -0
- package/lib/src/wasm/data_accessors/FileAccessor.js +237 -0
- package/lib/src/wasm/data_accessors/FileAccessor.js.map +1 -0
- package/lib/src/wasm/data_accessors/ModelPartAccessor.d.ts +27 -0
- package/lib/src/wasm/data_accessors/ModelPartAccessor.js +142 -0
- package/lib/src/wasm/data_accessors/ModelPartAccessor.js.map +1 -0
- package/lib/src/wasm/file-system/File.d.ts +30 -0
- package/lib/src/wasm/file-system/File.js +58 -0
- package/lib/src/wasm/file-system/File.js.map +1 -0
- package/lib/src/wasm/file-system/FileAccessDispatcher.d.ts +12 -0
- package/lib/src/{model → wasm/file-system}/FileAccessDispatcher.js +59 -21
- package/lib/src/wasm/file-system/FileAccessDispatcher.js.map +1 -0
- package/lib/src/wasm/file-system/FileLoader.d.ts +41 -0
- package/lib/src/wasm/file-system/FileLoader.js +107 -0
- package/lib/src/wasm/file-system/FileLoader.js.map +1 -0
- package/lib/src/wasm/file-system/IFileSystem.d.ts +76 -0
- package/lib/src/wasm/file-system/IFileSystem.js +308 -0
- package/lib/src/wasm/file-system/IFileSystem.js.map +1 -0
- package/lib/src/{file-system → wasm/file-system}/IFileSystemCache.d.ts +10 -6
- package/lib/src/{file-system → wasm/file-system}/IFileSystemCache.js +11 -13
- package/lib/src/wasm/file-system/IFileSystemCache.js.map +1 -0
- package/lib/src/{file-system → wasm/file-system}/OPFS.d.ts +6 -6
- package/lib/src/{file-system → wasm/file-system}/OPFS.js +7 -3
- package/lib/src/wasm/file-system/OPFS.js.map +1 -0
- package/lib/src/wasm/file-system/PATH.js.map +1 -0
- package/lib/src/wasm/file-system/PartialFile.d.ts +48 -0
- package/lib/src/wasm/file-system/PartialFile.js +367 -0
- package/lib/src/wasm/file-system/PartialFile.js.map +1 -0
- package/lib/src/wasm/pilot_bim_dataprovider.d.ts +17 -1
- package/lib/src/wasm/wasm.worker-node.cjs +1 -1
- package/lib/src/wasm/wasm.worker-web.cjs +1 -1
- package/lib/src/wasm/worker.js +2 -0
- package/lib/src/wasm/worker.js.map +1 -1
- package/package.json +3 -4
- package/lib/src/file-system/IFileSystem.d.ts +0 -50
- package/lib/src/file-system/IFileSystem.js +0 -233
- package/lib/src/file-system/IFileSystem.js.map +0 -1
- package/lib/src/file-system/IFileSystemCache.js.map +0 -1
- package/lib/src/file-system/OPFS.js.map +0 -1
- package/lib/src/file-system/PATH.js.map +0 -1
- package/lib/src/model/BimDataElement.d.ts +0 -113
- package/lib/src/model/BimDataElement.js +0 -45
- package/lib/src/model/BimDataElement.js.map +0 -1
- package/lib/src/model/BimDataElementPropertySet.d.ts +0 -26
- package/lib/src/model/BimDataElementPropertySet.js +0 -90
- package/lib/src/model/BimDataElementPropertySet.js.map +0 -1
- package/lib/src/model/BimDataIfcRepresentationStatus.d.ts +0 -10
- package/lib/src/model/BimDataIfcRepresentationStatus.js +0 -12
- package/lib/src/model/BimDataIfcRepresentationStatus.js.map +0 -1
- package/lib/src/model/BimDataIfcType.js.map +0 -1
- package/lib/src/model/BimDataTessellation.d.ts +0 -13
- package/lib/src/model/BimDataTessellation.js +0 -16
- package/lib/src/model/BimDataTessellation.js.map +0 -1
- package/lib/src/model/Consts.d.ts +0 -7
- package/lib/src/model/Consts.js +0 -8
- package/lib/src/model/Consts.js.map +0 -1
- package/lib/src/model/FileAccessDispatcher.d.ts +0 -14
- package/lib/src/model/FileAccessDispatcher.js.map +0 -1
- package/lib/src/wasm/DataAccessors/BimCloudPartAccessor.d.ts +0 -17
- package/lib/src/wasm/DataAccessors/BimCloudPartAccessor.js +0 -60
- package/lib/src/wasm/DataAccessors/BimCloudPartAccessor.js.map +0 -1
- package/lib/src/wasm/DataAccessors/BimDataModelPartAccessor.d.ts +0 -20
- package/lib/src/wasm/DataAccessors/BimDataModelPartAccessor.js +0 -89
- package/lib/src/wasm/DataAccessors/BimDataModelPartAccessor.js.map +0 -1
- package/lib/src/wasm/DataAccessors/BimDataPartAccessor.d.ts +0 -8
- package/lib/src/wasm/DataAccessors/BimDataPartAccessor.js +0 -19
- package/lib/src/wasm/DataAccessors/BimDataPartAccessor.js.map +0 -1
- package/lib/src/wasm/DataAccessors/BinaryCloudReader.d.ts +0 -16
- package/lib/src/wasm/DataAccessors/BinaryCloudReader.js +0 -268
- package/lib/src/wasm/DataAccessors/BinaryCloudReader.js.map +0 -1
- package/lib/src/wasm/DataAccessors/ICloudReader.js.map +0 -1
- package/lib/src/wasm/DataAccessors/WasmCloudReader.d.ts +0 -16
- package/lib/src/wasm/DataAccessors/WasmCloudReader.js +0 -47
- package/lib/src/wasm/DataAccessors/WasmCloudReader.js.map +0 -1
- package/lib/src/wasm/WasmWorkerThreadSafeWrapper.js +0 -141
- package/lib/src/wasm/WasmWorkerThreadSafeWrapper.js.map +0 -1
- /package/lib/src/wasm/{DataAccessors → cloud_readers}/ICloudReader.js +0 -0
- /package/lib/src/{file-system → wasm/file-system}/PATH.d.ts +0 -0
- /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":"AACA,OAAO,qBAAqB,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"WasmWorker.js","sourceRoot":"","sources":["../../../src/wasm/WasmWorker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { BimDataTessellation, BimDataTessellationInfo } from "../model/
|
|
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
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
get
|
|
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():
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
21
|
-
|
|
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
|
-
|
|
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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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 @@
|
|
|
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/
|
|
1
|
+
import { BimCloudHierarchyItem, BimCloudMetadata } from "../../model/BimDataClasses.js";
|
|
2
2
|
export interface ICloudReader {
|
|
3
|
-
open(
|
|
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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"}
|