@pilotdev/pilot-bim-dataprovider 24.21.0 → 24.23.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 (34) 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 +15 -0
  4. package/lib/src/model/BimDataCloudPart.js +25 -0
  5. package/lib/src/model/BimDataCloudPart.js.map +1 -0
  6. package/lib/src/model/BimDataModelPart.d.ts +35 -0
  7. package/lib/src/model/BimDataModelPart.js +88 -0
  8. package/lib/src/model/BimDataModelPart.js.map +1 -0
  9. package/lib/src/model/BimDataPart.d.ts +4 -47
  10. package/lib/src/model/BimDataPart.js +9 -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/utils/ViewerTools.d.ts +6 -2
  16. package/lib/src/utils/ViewerTools.js +28 -12
  17. package/lib/src/utils/ViewerTools.js.map +1 -1
  18. package/lib/src/wasm/BimCloudPartAccessor.d.ts +15 -0
  19. package/lib/src/wasm/BimCloudPartAccessor.js +40 -0
  20. package/lib/src/wasm/BimCloudPartAccessor.js.map +1 -0
  21. package/lib/src/wasm/BimDataModelPartAccessor.d.ts +18 -0
  22. package/lib/src/wasm/BimDataModelPartAccessor.js +70 -0
  23. package/lib/src/wasm/BimDataModelPartAccessor.js.map +1 -0
  24. package/lib/src/wasm/BimDataPartAccessor.d.ts +8 -0
  25. package/lib/src/wasm/BimDataPartAccessor.js +19 -0
  26. package/lib/src/wasm/BimDataPartAccessor.js.map +1 -0
  27. package/lib/src/wasm/pilot_bim_dataprovider.d.ts +2 -0
  28. package/lib/src/wasm/pilot_bim_dataprovider.wasm +0 -0
  29. package/lib/src/wasm/wasm.worker-node.cjs +1 -1
  30. package/lib/src/wasm/wasm.worker-web.cjs +1 -1
  31. package/lib/src/wasm/wasm.worker.d.ts +3 -0
  32. package/lib/src/wasm/wasm.worker.js +41 -127
  33. package/lib/src/wasm/wasm.worker.js.map +1 -1
  34. package/package.json +1 -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,15 @@
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
+ getCloudHierarchy(): Promise<BimCloudHierarchyItem[]>;
6
+ getCloudParameters(): Promise<Map<string, string>>;
7
+ getCloudMetadata(): Promise<BimCloudMetadata>;
8
+ }
9
+ export declare class BimDataCloudPart extends BimDataBase implements IBimDataCloudPart {
10
+ open(buffer?: ArrayBuffer): Promise<void>;
11
+ getCloudPoints(index: number): Promise<Float32Array>;
12
+ getCloudHierarchy(): Promise<BimCloudHierarchyItem[]>;
13
+ getCloudParameters(): Promise<Map<string, string>>;
14
+ getCloudMetadata(): Promise<BimCloudMetadata>;
15
+ }
@@ -0,0 +1,25 @@
1
+ import { BimDataBase } from "./BimDataPart.js";
2
+ export class BimDataCloudPart extends BimDataBase {
3
+ async open(buffer) {
4
+ await super.open(buffer);
5
+ this.checkIsOpen();
6
+ await this._remote.cacheCloudPart(this.id);
7
+ }
8
+ async getCloudPoints(index) {
9
+ this.checkIsOpen();
10
+ return this._remote.getCloudPoints(this.id, index);
11
+ }
12
+ async getCloudHierarchy() {
13
+ this.checkIsOpen();
14
+ return this._remote.getCloudHierarchy(this.id);
15
+ }
16
+ async getCloudParameters() {
17
+ this.checkIsOpen();
18
+ return this._remote.getCloudParameters(this.id);
19
+ }
20
+ async getCloudMetadata() {
21
+ this.checkIsOpen();
22
+ return this._remote.getCloudMetadata(this.id);
23
+ }
24
+ }
25
+ //# sourceMappingURL=BimDataCloudPart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BimDataCloudPart.js","sourceRoot":"","sources":["../../../src/model/BimDataCloudPart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAU7D,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,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,35 @@
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
+ getAllElements(): Promise<BimDataElement[]>;
12
+ getElements(versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
13
+ getDiffElements(versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
14
+ getElementTessellations(versionFrom: bigint, versionTo: bigint, compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
15
+ getElementProperties(elementId: string, version: bigint): Promise<BimDataElementPropertySet[]>;
16
+ getAllVersions(): Promise<bigint[]>;
17
+ getLatestVersion(): Promise<bigint>;
18
+ }
19
+ export declare class BimDataModelPart extends BimDataBase implements IBimDataModelPart {
20
+ open(buffer?: ArrayBuffer): Promise<void>;
21
+ update(buffer: ArrayBuffer): Promise<void>;
22
+ mergeWith(dataPartId: string): Promise<void>;
23
+ getAllTessellations(compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
24
+ getTessellations(versionFrom: bigint, versionTo: bigint, compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
25
+ getTessellation(tessellationKey: string, version: bigint, compressed?: boolean): Promise<BimDataTessellation>;
26
+ getAllElements(): Promise<BimDataElement[]>;
27
+ getElements(versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
28
+ getDiffElements(versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
29
+ getElementProperties(elementId: string, version: bigint): Promise<BimDataElementPropertySet[]>;
30
+ getElementTessellations(versionFrom: bigint, versionTo: bigint, compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
31
+ getAllVersions(): Promise<bigint[]>;
32
+ getLatestVersion(): Promise<bigint>;
33
+ private fillTessMap;
34
+ private fillArray;
35
+ }
@@ -0,0 +1,88 @@
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
+ await this._remote.auditModelPart(this.id);
8
+ }
9
+ async update(buffer) {
10
+ this.checkIsOpen();
11
+ comlink.transfer(buffer, [buffer instanceof Uint8Array ? buffer.buffer : buffer]);
12
+ return this._remote.updateModelPart(this.id, buffer);
13
+ }
14
+ async mergeWith(dataPartId) {
15
+ this.checkIsOpen();
16
+ return this._remote.mergeModelParts(this.id, dataPartId);
17
+ }
18
+ async getAllTessellations(compressed = false) {
19
+ this.checkIsOpen();
20
+ const map = new Map();
21
+ const transmitProxy = comlink.proxy((tessellations) => this.fillTessMap(map, tessellations));
22
+ await this._remote.getAllTessellations(this.id, compressed, transmitProxy);
23
+ return map;
24
+ }
25
+ async getTessellations(versionFrom, versionTo, compressed = false) {
26
+ this.checkIsOpen();
27
+ const map = new Map();
28
+ const transmitProxy = comlink.proxy((tessellations) => this.fillTessMap(map, tessellations));
29
+ await this._remote.getTessellations(this.id, versionFrom, versionTo, compressed, transmitProxy);
30
+ return map;
31
+ }
32
+ async getTessellation(tessellationKey, version, compressed = false) {
33
+ this.checkIsOpen();
34
+ return await this._remote.getTessellation(this.id, tessellationKey, version, compressed);
35
+ }
36
+ async getAllElements() {
37
+ this.checkIsOpen();
38
+ const transmitResult = [];
39
+ const transmitProxy = comlink.proxy((elements) => this.fillArray(transmitResult, elements));
40
+ await this._remote.getAllElements(this.id, transmitProxy);
41
+ return transmitResult;
42
+ }
43
+ async getElements(versionFrom, versionTo) {
44
+ this.checkIsOpen();
45
+ const transmitResult = [];
46
+ const transmitProxy = comlink.proxy((elements) => this.fillArray(transmitResult, elements));
47
+ await this._remote.getElements(this.id, versionFrom, versionTo, transmitProxy);
48
+ return transmitResult;
49
+ }
50
+ async getDiffElements(versionFrom, versionTo) {
51
+ this.checkIsOpen();
52
+ const transmitResult = [];
53
+ const transmitProxy = comlink.proxy((elements) => this.fillArray(transmitResult, elements));
54
+ await this._remote.getDiffElements(this.id, versionFrom, versionTo, transmitProxy);
55
+ return transmitResult;
56
+ }
57
+ async getElementProperties(elementId, version) {
58
+ this.checkIsOpen();
59
+ return this._remote.getElementProperties(this.id, elementId, version);
60
+ }
61
+ async getElementTessellations(versionFrom, versionTo, compressed = false) {
62
+ this.checkIsOpen();
63
+ const map = new Map();
64
+ const result = await this._remote.getElementTessellations(this.id, versionFrom, versionTo, compressed);
65
+ this.fillTessMap(map, result);
66
+ return map;
67
+ }
68
+ async getAllVersions() {
69
+ this.checkIsOpen();
70
+ return this._remote.getAllVersions(this.id);
71
+ }
72
+ async getLatestVersion() {
73
+ this.checkIsOpen();
74
+ return this._remote.getLatestVersion(this.id);
75
+ }
76
+ fillTessMap(map, array) {
77
+ for (let i = 0; i < array.length; i++) {
78
+ const t = array[i];
79
+ map.set(t.key, t);
80
+ }
81
+ }
82
+ fillArray(target, source) {
83
+ for (let i = 0; i < source.length; i++) {
84
+ target.push(source[i]);
85
+ }
86
+ }
87
+ }
88
+ //# sourceMappingURL=BimDataModelPart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BimDataModelPart.js","sourceRoot":"","sources":["../../../src/model/BimDataModelPart.ts"],"names":[],"mappings":"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"}
@@ -1,68 +1,25 @@
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
2
  import { WasmWorker } from "../wasm/wasm.worker.js";
7
3
  export interface IBimDataPart {
8
4
  id: string;
9
5
  open(buffer?: ArrayBuffer): Promise<void>;
10
6
  write(buffer: ArrayBuffer, position: number): Promise<void>;
7
+ isValid(): Promise<boolean>;
11
8
  close(): Promise<void>;
9
+ remove(): Promise<void>;
12
10
  dispose(): Promise<void>;
13
11
  }
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
- getAllElements(): Promise<BimDataElement[]>;
20
- getElements(versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
21
- getDiffElements(versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
22
- getElementTessellations(versionFrom: bigint, versionTo: bigint, compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
23
- getElementProperties(elementId: string, version: bigint): Promise<BimDataElementPropertySet[]>;
24
- getAllVersions(): Promise<bigint[]>;
25
- getLatestVersion(): Promise<bigint>;
26
- }
27
- export interface IBimDataCloudPart extends IBimDataPart {
28
- getCloudPoints(index: number): Promise<Float32Array>;
29
- getCloudHierarchy(): Promise<BimCloudHierarchyItem[]>;
30
- getCloudParameters(): Promise<Map<string, string>>;
31
- getCloudMetadata(): Promise<BimCloudMetadata>;
32
- }
33
12
  export declare class BimDataBase implements IBimDataPart {
34
13
  readonly id: string;
35
14
  protected _remote: comlink.Remote<WasmWorker>;
36
15
  protected _isOpen: boolean;
37
- protected _isDisposed: boolean;
38
16
  constructor(id: string, module: comlink.Remote<WasmWorker>);
39
17
  get isOpen(): boolean;
40
18
  open(buffer?: ArrayBuffer): Promise<void>;
41
19
  write(buffer: ArrayBuffer, position: number): Promise<void>;
42
20
  close(): Promise<void>;
43
21
  dispose(): Promise<void>;
22
+ remove(): Promise<void>;
23
+ isValid(): Promise<boolean>;
44
24
  protected checkIsOpen(): void;
45
25
  }
46
- export declare class BimDataModelPart extends BimDataBase implements IBimDataModelPart {
47
- open(buffer?: ArrayBuffer): Promise<void>;
48
- update(buffer: ArrayBuffer): Promise<void>;
49
- mergeWith(dataPartId: string): Promise<void>;
50
- getAllTessellations(compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
51
- getTessellations(versionFrom: bigint, versionTo: bigint, compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
52
- getAllElements(): Promise<BimDataElement[]>;
53
- getElements(versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
54
- getDiffElements(versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
55
- getElementProperties(elementId: string, version: bigint): Promise<BimDataElementPropertySet[]>;
56
- getElementTessellations(versionFrom: bigint, versionTo: bigint, compressed?: boolean): Promise<Map<string, BimDataTessellation>>;
57
- getAllVersions(): Promise<bigint[]>;
58
- getLatestVersion(): Promise<bigint>;
59
- private fillTessMap;
60
- private fillArray;
61
- }
62
- export declare class BimDataCloudPart extends BimDataBase implements IBimDataCloudPart {
63
- open(buffer?: ArrayBuffer): Promise<void>;
64
- getCloudPoints(index: number): Promise<Float32Array>;
65
- getCloudHierarchy(): Promise<BimCloudHierarchyItem[]>;
66
- getCloudParameters(): Promise<Map<string, string>>;
67
- getCloudMetadata(): Promise<BimCloudMetadata>;
68
- }
@@ -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,123 +21,24 @@ 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() {
28
+ await this.close();
29
+ if (!isOPFSEnabled)
30
+ await this.remove();
31
+ }
32
+ async remove() {
32
33
  await this.close();
33
34
  await this._remote.remove(this.id);
34
- this._isDisposed = true;
35
+ }
36
+ async isValid() {
37
+ return this._remote.isValidDatabase(this.id);
35
38
  }
36
39
  checkIsOpen() {
37
40
  if (!this._isOpen)
38
41
  throw new Error("Data part is not open. Please call method open first.");
39
42
  }
40
43
  }
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 getAllElements() {
71
- this.checkIsOpen();
72
- const transmitResult = [];
73
- const transmitProxy = comlink.proxy((elements) => this.fillArray(transmitResult, elements));
74
- await this._remote.getAllElements(this.id, transmitProxy);
75
- return transmitResult;
76
- }
77
- async getElements(versionFrom, versionTo) {
78
- this.checkIsOpen();
79
- const transmitResult = [];
80
- const transmitProxy = comlink.proxy((elements) => this.fillArray(transmitResult, elements));
81
- await this._remote.getElements(this.id, versionFrom, versionTo, transmitProxy);
82
- return transmitResult;
83
- }
84
- async getDiffElements(versionFrom, versionTo) {
85
- this.checkIsOpen();
86
- const transmitResult = [];
87
- const transmitProxy = comlink.proxy((elements) => this.fillArray(transmitResult, elements));
88
- await this._remote.getDiffElements(this.id, versionFrom, versionTo, transmitProxy);
89
- return transmitResult;
90
- }
91
- async getElementProperties(elementId, version) {
92
- this.checkIsOpen();
93
- return this._remote.getElementProperties(this.id, elementId, version);
94
- }
95
- async getElementTessellations(versionFrom, versionTo, compressed = false) {
96
- this.checkIsOpen();
97
- const map = new Map();
98
- const result = await this._remote.getElementTessellations(this.id, versionFrom, versionTo, compressed);
99
- this.fillTessMap(map, result);
100
- return map;
101
- }
102
- async getAllVersions() {
103
- this.checkIsOpen();
104
- return this._remote.getAllVersions(this.id);
105
- }
106
- async getLatestVersion() {
107
- this.checkIsOpen();
108
- return this._remote.getLatestVersion(this.id);
109
- }
110
- fillTessMap(map, array) {
111
- for (let i = 0; i < array.length; i++) {
112
- const t = array[i];
113
- map.set(t.key, t);
114
- }
115
- }
116
- fillArray(target, source) {
117
- for (let i = 0; i < source.length; i++) {
118
- target.push(source[i]);
119
- }
120
- }
121
- }
122
- export class BimDataCloudPart extends BimDataBase {
123
- async open(buffer) {
124
- await super.open(buffer);
125
- this.checkIsOpen();
126
- await this._remote.cacheCloudPart(this.id);
127
- }
128
- async getCloudPoints(index) {
129
- this.checkIsOpen();
130
- return this._remote.getCloudPoints(this.id, index);
131
- }
132
- async getCloudHierarchy() {
133
- this.checkIsOpen();
134
- return this._remote.getCloudHierarchy(this.id);
135
- }
136
- async getCloudParameters() {
137
- this.checkIsOpen();
138
- return this._remote.getCloudParameters(this.id);
139
- }
140
- async getCloudMetadata() {
141
- this.checkIsOpen();
142
- return this._remote.getCloudMetadata(this.id);
143
- }
144
- }
145
44
  //# sourceMappingURL=BimDataPart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BimDataPart.js","sourceRoot":"","sources":["../../../src/model/BimDataPart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAsCnC,MAAM,OAAO,WAAW;IAKtB,YAA4B,EAAU,EAAE,MAAkC;QAA9C,OAAE,GAAF,EAAE,CAAQ;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAoB;QAC7B,IAAI,IAAI,CAAC,WAAW;YAClB,OAAO,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAEjD,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,IAAI,IAAI,CAAC,WAAW;YAClB,OAAO,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACjD,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,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAES,WAAW;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO;YACf,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC7E,CAAC;CACF;AAED,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,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,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;IAEO,SAAS,CAAI,MAAW,EAAE,MAAW;QAC3C,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;AAED,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,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"}
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;AAYxD,MAAM,OAAO,WAAW;IAItB,YAA4B,EAAU,EAAE,MAAkC;QAA9C,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,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa;YAChB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,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;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,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"}
@@ -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 {
@@ -11,8 +15,8 @@ export declare class BimDataConverter {
11
15
  static toBimCloudHierarchy(wasmHierarchy: VectorOf<WasmCloudHierarchyItem>, dispose: boolean): BimCloudHierarchyItem[];
12
16
  static toCloudPoints(module: IWasmBimModule, wasmPointsData: WasmPointsData, dispose: boolean, transfer?: boolean): Float32Array;
13
17
  static toCloudMetadata(wasmPointsMetadata: WasmPointsMetadata, dispose: boolean): BimCloudMetadata;
14
- static toBimDataElement(module: IWasmBimModule, ifcNode: WasmIfcNode, transferable?: Transferable[]): BimDataElement;
15
- static toBimDataTessellation(module: IWasmBimModule, wasmTessellation: WasmTessellation, transferable?: Transferable[]): BimDataTessellation;
18
+ static toBimDataElement(module: IWasmBimModule, ifcNode: WasmIfcNode, transfer?: Transferable[] | boolean): BimDataElement;
19
+ static toBimDataTessellation(module: IWasmBimModule, wasmTessellation: WasmTessellation, transfer?: Transferable[] | boolean): BimDataTessellation;
16
20
  private static toModelElementProperties;
17
21
  private static toModelElementPropertyValue;
18
22
  private static toBimCloudHierarchyItem;
@@ -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();
@@ -79,7 +87,8 @@ export class BimDataConverter {
79
87
  wasmPointsMetadata.delete();
80
88
  return metadata;
81
89
  }
82
- static toBimDataElement(module, ifcNode, transferable) {
90
+ static toBimDataElement(module, ifcNode, transfer) {
91
+ const transferable = Array.isArray(transfer) ? transfer : transfer === true ? [] : undefined;
83
92
  const node = new BimDataElement();
84
93
  node.guid = ifcNode.id;
85
94
  node.name = ifcNode.name;
@@ -130,20 +139,27 @@ export class BimDataConverter {
130
139
  node.gridObject = gridObject;
131
140
  axesPtr.delete();
132
141
  gridObjectPtr.delete();
142
+ if (transfer === true && transferable)
143
+ comlink.transfer(node, transferable);
133
144
  return node;
134
145
  }
135
- static toBimDataTessellation(module, wasmTessellation, transferable) {
146
+ static toBimDataTessellation(module, wasmTessellation, transfer) {
147
+ const transferable = Array.isArray(transfer) ? transfer : transfer === true ? [] : undefined;
136
148
  const tessellation = new BimDataTessellation();
137
- const modelMesh = wasmTessellation.model_mesh;
138
- tessellation.key = wasmTessellation.id;
139
- tessellation.edgeIndices = WasmTools.vectorToUint32Array(module, modelMesh.edge_indices, modelMesh.getEdgeIndicesDataOffset(), true, transferable);
140
- tessellation.indices = WasmTools.vectorToUint32Array(module, modelMesh.indices, modelMesh.getIndicesDataOffset(), true, transferable);
141
- if (modelMesh.compressed_normals.size() > 0)
142
- tessellation.compressed_normals = WasmTools.vectorToInt16Array(module, modelMesh.compressed_normals, modelMesh.getCompressedNormalsDataOffset(), true, transferable);
143
- else
144
- tessellation.normals = WasmTools.vectorToFloat32Array(module, modelMesh.normals, modelMesh.getNormalsDataOffset(), true, transferable);
145
- tessellation.vertices = WasmTools.vectorToFloat32Array(module, modelMesh.vertices, modelMesh.getVerticesDataOffset(), true, transferable);
146
- modelMesh.delete();
149
+ const modelMesh = wasmTessellation?.model_mesh;
150
+ if (modelMesh) {
151
+ tessellation.key = wasmTessellation.id;
152
+ tessellation.edgeIndices = WasmTools.vectorToUint32Array(module, modelMesh.edge_indices, modelMesh.getEdgeIndicesDataOffset(), true, transferable);
153
+ tessellation.indices = WasmTools.vectorToUint32Array(module, modelMesh.indices, modelMesh.getIndicesDataOffset(), true, transferable);
154
+ if (modelMesh.compressed_normals.size() > 0)
155
+ tessellation.compressed_normals = WasmTools.vectorToInt16Array(module, modelMesh.compressed_normals, modelMesh.getCompressedNormalsDataOffset(), true, transferable);
156
+ else
157
+ tessellation.normals = WasmTools.vectorToFloat32Array(module, modelMesh.normals, modelMesh.getNormalsDataOffset(), true, transferable);
158
+ tessellation.vertices = WasmTools.vectorToFloat32Array(module, modelMesh.vertices, modelMesh.getVerticesDataOffset(), true, transferable);
159
+ modelMesh.delete();
160
+ }
161
+ if (transfer === true && transferable)
162
+ comlink.transfer(tessellation, transferable);
147
163
  return tessellation;
148
164
  }
149
165
  static toModelElementProperties(properties, dispose) {
@@ -1 +1 @@
1
- {"version":3,"file":"ViewerTools.js","sourceRoot":"","sources":["../../../src/utils/ViewerTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ViewerTools.js","sourceRoot":"","sources":["../../../src/utils/ViewerTools.ts"],"names":[],"mappings":"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"}