@pilotdev/pilot-bim-dataprovider 24.22.0 → 24.24.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 (42) hide show
  1. package/lib/index.d.ts +3 -1
  2. package/lib/index.js.map +1 -1
  3. package/lib/src/model/BimDataCloudPart.d.ts +17 -0
  4. package/lib/src/model/BimDataCloudPart.js +33 -0
  5. package/lib/src/model/BimDataCloudPart.js.map +1 -0
  6. package/lib/src/model/BimDataModelPart.d.ts +36 -0
  7. package/lib/src/model/BimDataModelPart.js +89 -0
  8. package/lib/src/model/BimDataModelPart.js.map +1 -0
  9. package/lib/src/model/BimDataPart.d.ts +9 -52
  10. package/lib/src/model/BimDataPart.js +11 -110
  11. package/lib/src/model/BimDataPart.js.map +1 -1
  12. package/lib/src/model/BimDataProvider.d.ts +5 -1
  13. package/lib/src/model/BimDataProvider.js +7 -1
  14. package/lib/src/model/BimDataProvider.js.map +1 -1
  15. package/lib/src/model/Consts.d.ts +1 -0
  16. package/lib/src/model/Consts.js +1 -0
  17. package/lib/src/model/Consts.js.map +1 -1
  18. package/lib/src/utils/ViewerTools.d.ts +5 -1
  19. package/lib/src/utils/ViewerTools.js +12 -4
  20. package/lib/src/utils/ViewerTools.js.map +1 -1
  21. package/lib/src/wasm/BimCloudPartAccessor.d.ts +16 -0
  22. package/lib/src/wasm/BimCloudPartAccessor.js +49 -0
  23. package/lib/src/wasm/BimCloudPartAccessor.js.map +1 -0
  24. package/lib/src/wasm/BimDataModelPartAccessor.d.ts +18 -0
  25. package/lib/src/wasm/BimDataModelPartAccessor.js +69 -0
  26. package/lib/src/wasm/BimDataModelPartAccessor.js.map +1 -0
  27. package/lib/src/wasm/BimDataPartAccessor.d.ts +8 -0
  28. package/lib/src/wasm/BimDataPartAccessor.js +19 -0
  29. package/lib/src/wasm/BimDataPartAccessor.js.map +1 -0
  30. package/lib/src/wasm/{wasm.worker.d.ts → WasmWorker.d.ts} +18 -10
  31. package/lib/src/wasm/WasmWorker.js +202 -0
  32. package/lib/src/wasm/WasmWorker.js.map +1 -0
  33. package/lib/src/wasm/WasmWorkerThreadSafeWrapper.d.ts +42 -0
  34. package/lib/src/wasm/WasmWorkerThreadSafeWrapper.js +135 -0
  35. package/lib/src/wasm/WasmWorkerThreadSafeWrapper.js.map +1 -0
  36. package/lib/src/wasm/pilot_bim_dataprovider.d.ts +6 -1
  37. package/lib/src/wasm/pilot_bim_dataprovider.wasm +0 -0
  38. package/lib/src/wasm/wasm.worker-node.cjs +1 -1
  39. package/lib/src/wasm/wasm.worker-web.cjs +1 -1
  40. package/package.json +1 -1
  41. package/lib/src/wasm/wasm.worker.js +0 -324
  42. package/lib/src/wasm/wasm.worker.js.map +0 -1
package/lib/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export { BimDataProvider, IBimDataProvider } from "./src/model/BimDataProvider.js";
2
- export { IBimDataModelPart, IBimDataCloudPart, IBimDataPart } from "./src/model/BimDataPart.js";
2
+ export { IBimDataPart } from "./src/model/BimDataPart.js";
3
+ export { IBimDataModelPart } from "./src/model/BimDataModelPart.js";
4
+ export { IBimDataCloudPart } from "./src/model/BimDataCloudPart.js";
3
5
  export { BimDataBigIntMaxValue, BimDataBigIntMinValue } from "./src/model/Consts.js";
4
6
  export { BimDataElement, BimDataMeshProperty, BimDataGridObject, BimDataGridAxis, BimCloudHierarchyItem, BimCloudMetadata } from "./src/model/BimDataElement.js";
5
7
  export { BimDataIfcType } from "./src/model/BimDataIfcType.js";
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAoB,MAAM,gCAAgC,CAAC;AAEnF,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,eAAe,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjK,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AAC1I,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAoB,MAAM,gCAAgC,CAAC;AAInF,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,eAAe,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjK,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AAC1I,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { BimDataBase, IBimDataPart } from "./BimDataPart.js";
2
+ import { BimCloudHierarchyItem, BimCloudMetadata } from "./BimDataElement.js";
3
+ export interface IBimDataCloudPart extends IBimDataPart {
4
+ getCloudPoints(index: number): Promise<Float32Array>;
5
+ getCloudPointsArray(indicies: number[]): Promise<Float32Array[]>;
6
+ getCloudHierarchy(): Promise<BimCloudHierarchyItem[]>;
7
+ getCloudParameters(): Promise<Map<string, string>>;
8
+ getCloudMetadata(): Promise<BimCloudMetadata>;
9
+ }
10
+ export declare class BimDataCloudPart extends BimDataBase implements IBimDataCloudPart {
11
+ open(buffer?: ArrayBuffer): Promise<void>;
12
+ getCloudPoints(index: number): Promise<Float32Array>;
13
+ getCloudPointsArray(indicies: number[]): Promise<Float32Array[]>;
14
+ getCloudHierarchy(): Promise<BimCloudHierarchyItem[]>;
15
+ getCloudParameters(): Promise<Map<string, string>>;
16
+ getCloudMetadata(): Promise<BimCloudMetadata>;
17
+ }
@@ -0,0 +1,33 @@
1
+ import * as comlink from "comlink";
2
+ import { BimDataBase } from "./BimDataPart.js";
3
+ export class BimDataCloudPart extends BimDataBase {
4
+ async open(buffer) {
5
+ await super.open(buffer);
6
+ this.checkIsOpen();
7
+ await this._remote.cacheCloudPart(this.id);
8
+ }
9
+ async getCloudPoints(index) {
10
+ this.checkIsOpen();
11
+ return this._remote.getCloudPoints(this.id, index);
12
+ }
13
+ async getCloudPointsArray(indicies) {
14
+ this.checkIsOpen();
15
+ const transmitResult = [];
16
+ const transmitProxy = comlink.proxy((elements) => this.fillArray(transmitResult, elements));
17
+ await this._remote.getCloudPointsArray(this.id, indicies, transmitProxy);
18
+ return transmitResult;
19
+ }
20
+ async getCloudHierarchy() {
21
+ this.checkIsOpen();
22
+ return this._remote.getCloudHierarchy(this.id);
23
+ }
24
+ async getCloudParameters() {
25
+ this.checkIsOpen();
26
+ return this._remote.getCloudParameters(this.id);
27
+ }
28
+ async getCloudMetadata() {
29
+ this.checkIsOpen();
30
+ return this._remote.getCloudMetadata(this.id);
31
+ }
32
+ }
33
+ //# sourceMappingURL=BimDataCloudPart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BimDataCloudPart.js","sourceRoot":"","sources":["../../../src/model/BimDataCloudPart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,WAAW,EAAwB,MAAM,kBAAkB,CAAC;AAWrE,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IACtC,KAAK,CAAC,IAAI,CAAC,MAAoB;QACtC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAa;QAChC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,QAAkB;QAC1C,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,cAAc,GAAmB,EAAE,CAAC;QAC1C,MAAM,aAAa,GAAkC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAwB,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC3I,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QACzE,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;CACF"}
@@ -0,0 +1,36 @@
1
+ import { BimDataBase, IBimDataPart } from "./BimDataPart.js";
2
+ import { BimDataTessellation } from "./BimDataTessellation.js";
3
+ import { BimDataElement } from "./BimDataElement.js";
4
+ import { BimDataElementPropertySet } from "./BimDataElementPropertySet.js";
5
+ export interface IBimDataModelPart extends IBimDataPart {
6
+ update(buffer: ArrayBuffer): Promise<void>;
7
+ mergeWith(dataPartId: string): Promise<void>;
8
+ getAllTessellations(compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
9
+ getTessellations(versionFrom: bigint, versionTo: bigint, compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
10
+ getTessellation(tessellationKey: string, version: bigint, compressed?: boolean): Promise<BimDataTessellation>;
11
+ getTessellationsById(tessellations: string[], version: bigint, compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
12
+ getAllElements(): Promise<BimDataElement[]>;
13
+ getElements(versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
14
+ getDiffElements(versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
15
+ getElementTessellations(versionFrom: bigint, versionTo: bigint, compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
16
+ getElementProperties(elementId: string, version: bigint): Promise<BimDataElementPropertySet[]>;
17
+ getAllVersions(): Promise<bigint[]>;
18
+ getLatestVersion(): Promise<bigint>;
19
+ }
20
+ export declare class BimDataModelPart extends BimDataBase implements IBimDataModelPart {
21
+ open(buffer?: ArrayBuffer): Promise<void>;
22
+ update(buffer: ArrayBuffer): Promise<void>;
23
+ mergeWith(dataPartId: string): Promise<void>;
24
+ getAllTessellations(compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
25
+ getTessellations(versionFrom: bigint, versionTo: bigint, compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
26
+ getTessellation(tessellationKey: string, version: bigint, compressed?: boolean): Promise<BimDataTessellation>;
27
+ getTessellationsById(tessellations: string[], version: bigint, compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
28
+ getAllElements(): Promise<BimDataElement[]>;
29
+ getElements(versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
30
+ getDiffElements(versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
31
+ getElementProperties(elementId: string, version: bigint): Promise<BimDataElementPropertySet[]>;
32
+ getElementTessellations(versionFrom: bigint, versionTo: bigint, compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
33
+ getAllVersions(): Promise<bigint[]>;
34
+ getLatestVersion(): Promise<bigint>;
35
+ private fillTessMap;
36
+ }
@@ -0,0 +1,89 @@
1
+ import * as comlink from "comlink";
2
+ import { BimDataBase } from "./BimDataPart.js";
3
+ export class BimDataModelPart extends BimDataBase {
4
+ async open(buffer) {
5
+ await super.open(buffer);
6
+ this.checkIsOpen();
7
+ }
8
+ async update(buffer) {
9
+ this.checkIsOpen();
10
+ comlink.transfer(buffer, [buffer instanceof Uint8Array ? buffer.buffer : buffer]);
11
+ return this._remote.updateModelPart(this.id, buffer);
12
+ }
13
+ async mergeWith(dataPartId) {
14
+ this.checkIsOpen();
15
+ return this._remote.mergeModelParts(this.id, dataPartId);
16
+ }
17
+ async getAllTessellations(compressed = false) {
18
+ this.checkIsOpen();
19
+ const map = new Map();
20
+ const transmitProxy = comlink.proxy((tessellations) => this.fillTessMap(map, tessellations));
21
+ await this._remote.getAllTessellations(this.id, compressed, transmitProxy);
22
+ return map;
23
+ }
24
+ async getTessellations(versionFrom, versionTo, compressed = false) {
25
+ this.checkIsOpen();
26
+ const map = new Map();
27
+ const transmitProxy = comlink.proxy((tessellations) => this.fillTessMap(map, tessellations));
28
+ await this._remote.getTessellations(this.id, versionFrom, versionTo, compressed, transmitProxy);
29
+ return map;
30
+ }
31
+ async getTessellation(tessellationKey, version, compressed = false) {
32
+ this.checkIsOpen();
33
+ return await this._remote.getTessellation(this.id, tessellationKey, version, compressed);
34
+ }
35
+ async getTessellationsById(tessellations, version, compressed = false) {
36
+ this.checkIsOpen();
37
+ const map = new Map();
38
+ const transmitProxy = comlink.proxy((tessellations) => this.fillTessMap(map, tessellations));
39
+ await this._remote.getTessellationsByIds(this.id, tessellations, version, compressed, transmitProxy);
40
+ return map;
41
+ }
42
+ async getAllElements() {
43
+ this.checkIsOpen();
44
+ const transmitResult = [];
45
+ const transmitProxy = comlink.proxy((elements) => this.fillArray(transmitResult, elements));
46
+ await this._remote.getAllElements(this.id, transmitProxy);
47
+ return transmitResult;
48
+ }
49
+ async getElements(versionFrom, versionTo) {
50
+ this.checkIsOpen();
51
+ const transmitResult = [];
52
+ const transmitProxy = comlink.proxy((elements) => this.fillArray(transmitResult, elements));
53
+ await this._remote.getElements(this.id, versionFrom, versionTo, transmitProxy);
54
+ return transmitResult;
55
+ }
56
+ async getDiffElements(versionFrom, versionTo) {
57
+ this.checkIsOpen();
58
+ const transmitResult = [];
59
+ const transmitProxy = comlink.proxy((elements) => this.fillArray(transmitResult, elements));
60
+ await this._remote.getDiffElements(this.id, versionFrom, versionTo, transmitProxy);
61
+ return transmitResult;
62
+ }
63
+ async getElementProperties(elementId, version) {
64
+ this.checkIsOpen();
65
+ return this._remote.getElementProperties(this.id, elementId, version);
66
+ }
67
+ async getElementTessellations(versionFrom, versionTo, compressed = false) {
68
+ this.checkIsOpen();
69
+ const map = new Map();
70
+ const result = await this._remote.getElementTessellations(this.id, versionFrom, versionTo, compressed);
71
+ this.fillTessMap(map, result);
72
+ return map;
73
+ }
74
+ async getAllVersions() {
75
+ this.checkIsOpen();
76
+ return this._remote.getAllVersions(this.id);
77
+ }
78
+ async getLatestVersion() {
79
+ this.checkIsOpen();
80
+ return this._remote.getLatestVersion(this.id);
81
+ }
82
+ fillTessMap(map, array) {
83
+ for (let i = 0; i < array.length; i++) {
84
+ const t = array[i];
85
+ map.set(t.key, t);
86
+ }
87
+ }
88
+ }
89
+ //# sourceMappingURL=BimDataModelPart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BimDataModelPart.js","sourceRoot":"","sources":["../../../src/model/BimDataModelPart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,WAAW,EAAwB,MAAM,kBAAkB,CAAC;AAqBrE,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IACtC,KAAK,CAAC,IAAI,CAAC,MAAoB;QACtC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAmB;QAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,YAAY,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,UAAkB;QAChC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,aAAsB,KAAK;QACnD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,GAAG,EAA+B,CAAC;QACnD,MAAM,aAAa,GAAyC,OAAO,CAAC,KAAK,CAAC,CAAC,aAAoC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;QAC1J,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QAC3E,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,WAAmB,EAAE,SAAiB,EAAE,aAAsB,KAAK;QACxF,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,GAAG,EAA+B,CAAC;QACnD,MAAM,aAAa,GAAyC,OAAO,CAAC,KAAK,CAAC,CAAC,aAAoC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;QAC1J,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QAChG,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,eAAuB,EAAE,OAAe,EAAE,aAAsB,KAAK;QACzF,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC3F,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,aAAuB,EAAE,OAAe,EAAE,aAAsB,KAAK;QAC9F,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,GAAG,EAA+B,CAAC;QACnD,MAAM,aAAa,GAAyC,OAAO,CAAC,KAAK,CAAC,CAAC,aAAoC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;QAC1J,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QACrG,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,cAAc,GAAqB,EAAE,CAAC;QAC5C,MAAM,aAAa,GAAoC,OAAO,CAAC,KAAK,CAAC,CAAC,QAA0B,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/I,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QAC1D,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,WAAmB,EAAE,SAAiB;QACtD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,cAAc,GAAqB,EAAE,CAAC;QAC5C,MAAM,aAAa,GAAoC,OAAO,CAAC,KAAK,CAAC,CAAC,QAA0B,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/I,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAC/E,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,WAAmB,EAAE,SAAiB;QAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,cAAc,GAAqB,EAAE,CAAC;QAC5C,MAAM,aAAa,GAAoC,OAAO,CAAC,KAAK,CAAC,CAAC,QAA0B,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/I,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QACnF,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,SAAiB,EAAE,OAAe;QAC3D,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,WAAmB,EAAE,SAAiB,EAAE,aAAsB,KAAK;QAC/F,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,GAAG,EAA+B,CAAC;QACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACvG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;IAEO,WAAW,CAAC,GAAqC,EAAE,KAA4B;QACrF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;SACnB;IACH,CAAC;CACF"}
@@ -1,70 +1,27 @@
1
1
  import * as comlink from "comlink";
2
- import { BimCloudMetadata, BimDataElement } from "./BimDataElement.js";
3
- import { BimDataElementPropertySet } from "./BimDataElementPropertySet.js";
4
- import { BimDataTessellation } from "./BimDataTessellation.js";
5
- import { BimCloudHierarchyItem } from "./BimDataElement.js";
6
- import { WasmWorker } from "../wasm/wasm.worker.js";
2
+ import { WasmWorkerThreadSafeWrapper } from "../wasm/WasmWorkerThreadSafeWrapper.js";
3
+ export type TProxy<T> = (t: T[]) => Promise<void>;
7
4
  export interface IBimDataPart {
8
5
  id: string;
9
6
  open(buffer?: ArrayBuffer): Promise<void>;
10
7
  write(buffer: ArrayBuffer, position: number): Promise<void>;
8
+ isValid(): Promise<boolean>;
11
9
  close(): Promise<void>;
10
+ remove(): Promise<void>;
12
11
  dispose(): Promise<void>;
13
12
  }
14
- export interface IBimDataModelPart extends IBimDataPart {
15
- update(buffer: ArrayBuffer): Promise<void>;
16
- mergeWith(dataPartId: string): Promise<void>;
17
- getAllTessellations(compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
18
- getTessellations(versionFrom: bigint, versionTo: bigint, compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
19
- getTessellation(tessellationKey: string, version: bigint, compressed?: boolean): Promise<BimDataTessellation>;
20
- getAllElements(): Promise<BimDataElement[]>;
21
- getElements(versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
22
- getDiffElements(versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
23
- getElementTessellations(versionFrom: bigint, versionTo: bigint, compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
24
- getElementProperties(elementId: string, version: bigint): Promise<BimDataElementPropertySet[]>;
25
- getAllVersions(): Promise<bigint[]>;
26
- getLatestVersion(): Promise<bigint>;
27
- }
28
- export interface IBimDataCloudPart extends IBimDataPart {
29
- getCloudPoints(index: number): Promise<Float32Array>;
30
- getCloudHierarchy(): Promise<BimCloudHierarchyItem[]>;
31
- getCloudParameters(): Promise<Map<string, string>>;
32
- getCloudMetadata(): Promise<BimCloudMetadata>;
33
- }
34
13
  export declare class BimDataBase implements IBimDataPart {
35
14
  readonly id: string;
36
- protected _remote: comlink.Remote<WasmWorker>;
15
+ protected _remote: comlink.Remote<WasmWorkerThreadSafeWrapper>;
37
16
  protected _isOpen: boolean;
38
- protected _isDisposed: boolean;
39
- constructor(id: string, module: comlink.Remote<WasmWorker>);
17
+ constructor(id: string, module: comlink.Remote<WasmWorkerThreadSafeWrapper>);
40
18
  get isOpen(): boolean;
41
19
  open(buffer?: ArrayBuffer): Promise<void>;
42
20
  write(buffer: ArrayBuffer, position: number): Promise<void>;
43
21
  close(): Promise<void>;
44
22
  dispose(): Promise<void>;
23
+ remove(): Promise<void>;
24
+ isValid(): Promise<boolean>;
45
25
  protected checkIsOpen(): void;
46
- }
47
- export declare class BimDataModelPart extends BimDataBase implements IBimDataModelPart {
48
- open(buffer?: ArrayBuffer): Promise<void>;
49
- update(buffer: ArrayBuffer): Promise<void>;
50
- mergeWith(dataPartId: string): Promise<void>;
51
- getAllTessellations(compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
52
- getTessellations(versionFrom: bigint, versionTo: bigint, compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
53
- getTessellation(tessellationKey: string, version: bigint, compressed?: boolean): Promise<BimDataTessellation>;
54
- getAllElements(): Promise<BimDataElement[]>;
55
- getElements(versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
56
- getDiffElements(versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
57
- getElementProperties(elementId: string, version: bigint): Promise<BimDataElementPropertySet[]>;
58
- getElementTessellations(versionFrom: bigint, versionTo: bigint, compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
59
- getAllVersions(): Promise<bigint[]>;
60
- getLatestVersion(): Promise<bigint>;
61
- private fillTessMap;
62
- private fillArray;
63
- }
64
- export declare class BimDataCloudPart extends BimDataBase implements IBimDataCloudPart {
65
- open(buffer?: ArrayBuffer): Promise<void>;
66
- getCloudPoints(index: number): Promise<Float32Array>;
67
- getCloudHierarchy(): Promise<BimCloudHierarchyItem[]>;
68
- getCloudParameters(): Promise<Map<string, string>>;
69
- getCloudMetadata(): Promise<BimCloudMetadata>;
26
+ protected fillArray<T>(target: T[], source: T[]): void;
70
27
  }
@@ -1,17 +1,15 @@
1
1
  import * as comlink from "comlink";
2
+ import { isOPFSEnabled } from "../utils/ViewerTools.js";
2
3
  export class BimDataBase {
3
4
  constructor(id, module) {
4
5
  this.id = id;
5
6
  this._remote = module;
6
7
  this._isOpen = false;
7
- this._isDisposed = false;
8
8
  }
9
9
  get isOpen() {
10
10
  return this._isOpen;
11
11
  }
12
12
  async open(buffer) {
13
- if (this._isDisposed)
14
- return Promise.reject("Data part is disposed");
15
13
  if (buffer)
16
14
  comlink.transfer(buffer, [buffer instanceof Uint8Array ? buffer.buffer : buffer]);
17
15
  await this._remote.open(this.id, buffer);
@@ -23,127 +21,30 @@ export class BimDataBase {
23
21
  await this._remote.write(this.id, buffer, position);
24
22
  }
25
23
  async close() {
26
- if (this._isDisposed)
27
- return Promise.reject("Data part is disposed");
28
24
  await this._remote.close(this.id);
29
25
  this._isOpen = false;
30
26
  }
31
27
  async dispose() {
32
- await this.close();
28
+ if (isOPFSEnabled)
29
+ await this.close();
30
+ else
31
+ await this.remove();
32
+ }
33
+ async remove() {
34
+ this._isOpen = false;
33
35
  await this._remote.remove(this.id);
34
- this._isDisposed = true;
36
+ }
37
+ async isValid() {
38
+ return this._remote.isValidDatabase(this.id);
35
39
  }
36
40
  checkIsOpen() {
37
41
  if (!this._isOpen)
38
42
  throw new Error("Data part is not open. Please call method open first.");
39
43
  }
40
- }
41
- export class BimDataModelPart extends BimDataBase {
42
- async open(buffer) {
43
- await super.open(buffer);
44
- this.checkIsOpen();
45
- await this._remote.auditModelPart(this.id);
46
- }
47
- async update(buffer) {
48
- this.checkIsOpen();
49
- comlink.transfer(buffer, [buffer instanceof Uint8Array ? buffer.buffer : buffer]);
50
- return this._remote.updateModelPart(this.id, buffer);
51
- }
52
- async mergeWith(dataPartId) {
53
- this.checkIsOpen();
54
- return this._remote.mergeModelParts(this.id, dataPartId);
55
- }
56
- async getAllTessellations(compressed = false) {
57
- this.checkIsOpen();
58
- const map = new Map();
59
- const transmitProxy = comlink.proxy((tessellations) => this.fillTessMap(map, tessellations));
60
- await this._remote.getAllTessellations(this.id, compressed, transmitProxy);
61
- return map;
62
- }
63
- async getTessellations(versionFrom, versionTo, compressed = false) {
64
- this.checkIsOpen();
65
- const map = new Map();
66
- const transmitProxy = comlink.proxy((tessellations) => this.fillTessMap(map, tessellations));
67
- await this._remote.getTessellations(this.id, versionFrom, versionTo, compressed, transmitProxy);
68
- return map;
69
- }
70
- async getTessellation(tessellationKey, version, compressed = false) {
71
- this.checkIsOpen();
72
- return await this._remote.getTessellation(this.id, tessellationKey, version, compressed);
73
- }
74
- async getAllElements() {
75
- this.checkIsOpen();
76
- const transmitResult = [];
77
- const transmitProxy = comlink.proxy((elements) => this.fillArray(transmitResult, elements));
78
- await this._remote.getAllElements(this.id, transmitProxy);
79
- return transmitResult;
80
- }
81
- async getElements(versionFrom, versionTo) {
82
- this.checkIsOpen();
83
- const transmitResult = [];
84
- const transmitProxy = comlink.proxy((elements) => this.fillArray(transmitResult, elements));
85
- await this._remote.getElements(this.id, versionFrom, versionTo, transmitProxy);
86
- return transmitResult;
87
- }
88
- async getDiffElements(versionFrom, versionTo) {
89
- this.checkIsOpen();
90
- const transmitResult = [];
91
- const transmitProxy = comlink.proxy((elements) => this.fillArray(transmitResult, elements));
92
- await this._remote.getDiffElements(this.id, versionFrom, versionTo, transmitProxy);
93
- return transmitResult;
94
- }
95
- async getElementProperties(elementId, version) {
96
- this.checkIsOpen();
97
- return this._remote.getElementProperties(this.id, elementId, version);
98
- }
99
- async getElementTessellations(versionFrom, versionTo, compressed = false) {
100
- this.checkIsOpen();
101
- const map = new Map();
102
- const result = await this._remote.getElementTessellations(this.id, versionFrom, versionTo, compressed);
103
- this.fillTessMap(map, result);
104
- return map;
105
- }
106
- async getAllVersions() {
107
- this.checkIsOpen();
108
- return this._remote.getAllVersions(this.id);
109
- }
110
- async getLatestVersion() {
111
- this.checkIsOpen();
112
- return this._remote.getLatestVersion(this.id);
113
- }
114
- fillTessMap(map, array) {
115
- for (let i = 0; i < array.length; i++) {
116
- const t = array[i];
117
- map.set(t.key, t);
118
- }
119
- }
120
44
  fillArray(target, source) {
121
45
  for (let i = 0; i < source.length; i++) {
122
46
  target.push(source[i]);
123
47
  }
124
48
  }
125
49
  }
126
- export class BimDataCloudPart extends BimDataBase {
127
- async open(buffer) {
128
- await super.open(buffer);
129
- this.checkIsOpen();
130
- await this._remote.cacheCloudPart(this.id);
131
- }
132
- async getCloudPoints(index) {
133
- this.checkIsOpen();
134
- return this._remote.getCloudPoints(this.id, index);
135
- }
136
- async getCloudHierarchy() {
137
- this.checkIsOpen();
138
- return this._remote.getCloudHierarchy(this.id);
139
- }
140
- async getCloudParameters() {
141
- this.checkIsOpen();
142
- return this._remote.getCloudParameters(this.id);
143
- }
144
- async getCloudMetadata() {
145
- this.checkIsOpen();
146
- return this._remote.getCloudMetadata(this.id);
147
- }
148
- }
149
50
  //# sourceMappingURL=BimDataPart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BimDataPart.js","sourceRoot":"","sources":["../../../src/model/BimDataPart.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BimDataPart.js","sourceRoot":"","sources":["../../../src/model/BimDataPart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAcxD,MAAM,OAAO,WAAW;IAItB,YAA4B,EAAU,EAAE,MAAmD;QAA/D,OAAE,GAAF,EAAE,CAAQ;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAoB;QAC7B,IAAI,MAAM;YACR,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,YAAY,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAEpF,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAmB,EAAE,QAAgB;QAC/C,IAAI,IAAI,CAAC,OAAO;YACd,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAExE,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,aAAa;YACf,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;;YAEnB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;IAES,WAAW;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO;YACf,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC7E,CAAC;IAES,SAAS,CAAI,MAAW,EAAE,MAAW;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACxB;IACH,CAAC;CACF"}
@@ -1,4 +1,7 @@
1
- import { IBimDataCloudPart, IBimDataModelPart, IBimDataPart } from './BimDataPart.js';
1
+ import { IBimDataPart } from './BimDataPart.js';
2
+ import { IBimDataModelPart } from './BimDataModelPart.js';
3
+ import { IBimDataCloudPart } from './BimDataCloudPart.js';
4
+ export type FSType = 'OPFS' | 'MEMFS';
2
5
  export interface IBimDataProvider {
3
6
  init(): Promise<void>;
4
7
  createDataFile(id: string): Promise<IBimDataPart>;
@@ -11,6 +14,7 @@ export interface IBimDataProvider {
11
14
  }
12
15
  export declare class BimDataProvider implements IBimDataProvider {
13
16
  private _workerObj;
17
+ get usedFSType(): FSType;
14
18
  init(): Promise<void>;
15
19
  createDataFile(id: string): Promise<IBimDataPart>;
16
20
  openModelPart(source: string | IBimDataPart, buffer?: ArrayBuffer): Promise<IBimDataModelPart | undefined>;
@@ -1,6 +1,12 @@
1
- import { BimDataCloudPart, BimDataModelPart, BimDataBase } from './BimDataPart.js';
1
+ import { BimDataBase } from './BimDataPart.js';
2
+ import { BimDataModelPart } from './BimDataModelPart.js';
3
+ import { BimDataCloudPart, } from './BimDataCloudPart.js';
2
4
  import { CorsWorker as Worker } from '../wasm/worker.js';
5
+ import { isOPFSEnabled } from "../utils/ViewerTools.js";
3
6
  export class BimDataProvider {
7
+ get usedFSType() {
8
+ return isOPFSEnabled ? 'OPFS' : 'MEMFS';
9
+ }
4
10
  async init() {
5
11
  const worker = new Worker(new URL("../wasm/wasm.worker-node.cjs", import.meta.url), { type: "module" });
6
12
  const WasmWorkerType = await worker.getRemote();
@@ -1 +1 @@
1
- {"version":3,"file":"BimDataProvider.js","sourceRoot":"","sources":["../../../src/model/BimDataProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAsD,MAAM,kBAAkB,CAAC;AAEvI,OAAO,EAAE,UAAU,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAazD,MAAM,OAAO,eAAe;IAG1B,KAAK,CAAC,IAAI;QACR,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxG,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,SAAS,EAAqB,CAAC;QACnE,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,cAAc,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU;QAC7B,OAAO,IAAI,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAA6B,EAAE,MAAoB;QACrE,IAAI,SAA2B,CAAC;QAChC,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;YAC7B,SAAS,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1D,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B;aACI;YACH,SAAS,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7D,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;SACxB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAA6B,EAAE,MAAoB;QACrE,IAAI,SAA2B,CAAC;QAChC,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;YAC7B,SAAS,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1D,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B;aACI;YACH,SAAS,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7D,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;SACxB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC;IACpC,CAAC;CACF"}
1
+ {"version":3,"file":"BimDataProvider.js","sourceRoot":"","sources":["../../../src/model/BimDataProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAqB,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,GAAsB,MAAM,uBAAuB,CAAC;AAE7E,OAAO,EAAE,UAAU,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAexD,MAAM,OAAO,eAAe;IAG1B,IAAI,UAAU;QACZ,OAAO,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxG,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,SAAS,EAAsC,CAAC;QACpF,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,cAAc,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU;QAC7B,OAAO,IAAI,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAA6B,EAAE,MAAoB;QACrE,IAAI,SAA2B,CAAC;QAChC,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;YAC7B,SAAS,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1D,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B;aACI;YACH,SAAS,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7D,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;SACxB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAA6B,EAAE,MAAoB;QACrE,IAAI,SAA2B,CAAC;QAChC,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;YAC7B,SAAS,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1D,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B;aACI;YACH,SAAS,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7D,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;SACxB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC;IACpC,CAAC;CACF"}
@@ -4,3 +4,4 @@ export declare const S_IFDIR = 16895;
4
4
  export declare const S_IFREG = 33279;
5
5
  export declare const DATA_ROOT_FOLDER = "data";
6
6
  export declare const OPFS_BIM_FOLDER = "Pilot-BIM";
7
+ export declare const TRANSMIT_STEP = 200;
@@ -4,4 +4,5 @@ export const S_IFDIR = 16895; //16384; // dir
4
4
  export const S_IFREG = 33279; // file
5
5
  export const DATA_ROOT_FOLDER = "data";
6
6
  export const OPFS_BIM_FOLDER = "Pilot-BIM";
7
+ export const TRANSMIT_STEP = 200;
7
8
  //# sourceMappingURL=Consts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Consts.js","sourceRoot":"","sources":["../../../src/model/Consts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAEjD,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAA,CAAC,eAAe;AAC5C,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,OAAO;AAErC,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AACvC,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC"}
1
+ {"version":3,"file":"Consts.js","sourceRoot":"","sources":["../../../src/model/Consts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAEjD,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAA,CAAC,eAAe;AAC5C,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,OAAO;AAErC,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AACvC,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AAE3C,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC"}
@@ -2,6 +2,10 @@ import { BimDataElement, BimCloudHierarchyItem, BimCloudMetadata } from "../mode
2
2
  import { BimDataElementPropertySet } from "../model/BimDataElementPropertySet.js";
3
3
  import { BimDataTessellation } from "../model/BimDataTessellation.js";
4
4
  import { VectorOf, WasmElementPropertySet, WasmIfcNode, WasmTessellation, IWasmBimModule, WasmCloudHierarchyItem, WasmPointsData, WasmPointsMetadata, IDisposable } from "../wasm/pilot_bim_dataprovider.js";
5
+ export declare const isSecureContext: boolean;
6
+ export declare const isCrossOriginIsolated: boolean;
7
+ export declare const isOPFSEnabled: boolean;
8
+ export declare function isNode(): boolean;
5
9
  type convertFunc<T, K> = (module: IWasmBimModule, value: T, transferable?: Transferable[]) => K;
6
10
  type transmitFunc<K> = (data: K[]) => Promise<void>;
7
11
  export declare class BimDataConverter {
@@ -9,7 +13,7 @@ export declare class BimDataConverter {
9
13
  static toBimDataTessellations(module: IWasmBimModule, tessellations: VectorOf<WasmTessellation>, dispose: boolean, transfer?: boolean): BimDataTessellation[];
10
14
  static toModelElementPropertySet(wasmPropertySets: VectorOf<WasmElementPropertySet>, dispose: boolean): BimDataElementPropertySet[];
11
15
  static toBimCloudHierarchy(wasmHierarchy: VectorOf<WasmCloudHierarchyItem>, dispose: boolean): BimCloudHierarchyItem[];
12
- static toCloudPoints(module: IWasmBimModule, wasmPointsData: WasmPointsData, dispose: boolean, transfer?: boolean): Float32Array;
16
+ static toCloudPoints(module: IWasmBimModule, wasmPointsData: WasmPointsData, transfer?: Transferable[] | boolean): Float32Array;
13
17
  static toCloudMetadata(wasmPointsMetadata: WasmPointsMetadata, dispose: boolean): BimCloudMetadata;
14
18
  static toBimDataElement(module: IWasmBimModule, ifcNode: WasmIfcNode, transfer?: Transferable[] | boolean): BimDataElement;
15
19
  static toBimDataTessellation(module: IWasmBimModule, wasmTessellation: WasmTessellation, transfer?: Transferable[] | boolean): BimDataTessellation;
@@ -3,6 +3,14 @@ import { BimDataElement, BimDataMeshProperty, BimCloudHierarchyItem, BimCloudMet
3
3
  import { BimDataElementPropertySet, BimDataElementProperty, BimDataElementPropertyValue } from "../model/BimDataElementPropertySet.js";
4
4
  import { BimDataTessellation } from "../model/BimDataTessellation.js";
5
5
  import { WasmTools } from "./WasmTools.js";
6
+ export const isSecureContext = isNode() ? false : self && !!self.isSecureContext;
7
+ export const isCrossOriginIsolated = isNode() ? false : self && !!self.crossOriginIsolated;
8
+ export const isOPFSEnabled = isSecureContext;
9
+ export function isNode() {
10
+ return typeof process !== 'undefined' &&
11
+ !!process.versions &&
12
+ !!process.versions.node;
13
+ }
6
14
  export class BimDataConverter {
7
15
  static toToBimDataElements(module, ifcNodes, dispose, transfer = true) {
8
16
  const elements = new Array();
@@ -59,10 +67,10 @@ export class BimDataConverter {
59
67
  wasmHierarchy.delete();
60
68
  return result;
61
69
  }
62
- static toCloudPoints(module, wasmPointsData, dispose, transfer = true) {
63
- const transferable = transfer ? [] : undefined;
64
- const array = WasmTools.vectorToFloat32Array(module, wasmPointsData.points, wasmPointsData.getPointsDataOffset(), dispose, transferable);
65
- if (transferable)
70
+ static toCloudPoints(module, wasmPointsData, transfer) {
71
+ const transferable = Array.isArray(transfer) ? transfer : transfer === true ? [] : undefined;
72
+ const array = WasmTools.vectorToFloat32Array(module, wasmPointsData.points, wasmPointsData.getPointsDataOffset(), true, transferable);
73
+ if (transfer === true && transferable)
66
74
  comlink.transfer(array, transferable);
67
75
  return array;
68
76
  }