@pilotdev/pilot-bim-dataprovider 23.0.2 → 23.0.4

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.
@@ -1,16 +1,16 @@
1
- import { IBimDataModelPart } from './BimDataModelPart.js';
2
- export interface IBimDataModel {
3
- init(): Promise<void>;
4
- openModelPart(id: string, buffer: ArrayBuffer): IBimDataModelPart | undefined;
5
- closeModelPart(id: string): void;
6
- dispose(): void;
7
- }
8
- export declare class BimDataModel implements IBimDataModel {
9
- private _module?;
10
- private _modelParts;
11
- constructor();
12
- init(): Promise<void>;
13
- openModelPart(id: string, buffer: ArrayBuffer): IBimDataModelPart | undefined;
14
- closeModelPart(id: string): void;
15
- dispose(): void;
16
- }
1
+ import { IBimDataModelPart } from './BimDataModelPart.js';
2
+ export interface IBimDataModel {
3
+ init(): Promise<void>;
4
+ openModelPart(id: string, buffer: ArrayBuffer): IBimDataModelPart | undefined;
5
+ closeModelPart(id: string): void;
6
+ dispose(): void;
7
+ }
8
+ export declare class BimDataModel implements IBimDataModel {
9
+ private _module?;
10
+ private _modelParts;
11
+ constructor();
12
+ init(): Promise<void>;
13
+ openModelPart(id: string, buffer: ArrayBuffer): IBimDataModelPart | undefined;
14
+ closeModelPart(id: string): void;
15
+ dispose(): void;
16
+ }
@@ -1,55 +1,55 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import BimDataProviderModule from '../wasm/pilot_bim_dataprovider.js';
11
- import { BimDataModelPart } from './BimDataModelPart.js';
12
- export class BimDataModel {
13
- constructor() {
14
- this._modelParts = new Map();
15
- }
16
- init() {
17
- return __awaiter(this, void 0, void 0, function* () {
18
- const moduleOverrides = {
19
- print: (s) => {
20
- console.log(s);
21
- },
22
- printErr: (e) => {
23
- console.log(e);
24
- }
25
- };
26
- this._module = yield BimDataProviderModule(moduleOverrides);
27
- //console.log(this._module);
28
- });
29
- }
30
- openModelPart(id, buffer) {
31
- if (!buffer)
32
- return undefined;
33
- if (!id)
34
- id = "id_" + (0xffffffff * Math.random() >>> 0);
35
- const mp = new BimDataModelPart(id, this._module);
36
- mp.open(buffer);
37
- this._modelParts.set(id, mp);
38
- return mp;
39
- }
40
- closeModelPart(id) {
41
- // dispose model
42
- const mp = this._modelParts.get(id);
43
- mp === null || mp === void 0 ? void 0 : mp.close();
44
- this._modelParts.delete(id);
45
- }
46
- dispose() {
47
- // dispose module
48
- this._modelParts.forEach(p => {
49
- p.close();
50
- });
51
- this._modelParts.clear();
52
- this._module = undefined;
53
- }
54
- }
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import BimDataProviderModule from '../wasm/pilot_bim_dataprovider.js';
11
+ import { BimDataModelPart } from './BimDataModelPart.js';
12
+ export class BimDataModel {
13
+ constructor() {
14
+ this._modelParts = new Map();
15
+ }
16
+ init() {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ const moduleOverrides = {
19
+ print: (s) => {
20
+ console.log(s);
21
+ },
22
+ printErr: (e) => {
23
+ console.log(e);
24
+ }
25
+ };
26
+ this._module = yield BimDataProviderModule(moduleOverrides);
27
+ //console.log(this._module);
28
+ });
29
+ }
30
+ openModelPart(id, buffer) {
31
+ if (!buffer)
32
+ return undefined;
33
+ if (!id)
34
+ id = "id_" + (0xffffffff * Math.random() >>> 0);
35
+ const mp = new BimDataModelPart(id, this._module);
36
+ mp.open(buffer);
37
+ this._modelParts.set(id, mp);
38
+ return mp;
39
+ }
40
+ closeModelPart(id) {
41
+ // dispose model
42
+ const mp = this._modelParts.get(id);
43
+ mp === null || mp === void 0 ? void 0 : mp.close();
44
+ this._modelParts.delete(id);
45
+ }
46
+ dispose() {
47
+ // dispose module
48
+ this._modelParts.forEach(p => {
49
+ p.close();
50
+ });
51
+ this._modelParts.clear();
52
+ this._module = undefined;
53
+ }
54
+ }
55
55
  //# sourceMappingURL=BimDataModel.js.map
@@ -1,24 +1,24 @@
1
- import { IWasmBimModule } from "../wasm/pilot_bim_dataprovider.js";
2
- import { BimDataElement } from "./BimDataElement.js";
3
- import { BimDataElementPropertySet } from "./BimDataElementPropertySet.js";
4
- import { BimDataTessellation } from "./BimDataTessellation.js";
5
- export interface IBimDataModelPart {
6
- id: string;
7
- open(buffer: ArrayBuffer): void;
8
- close(): void;
9
- getTessellations(): Map<string, BimDataTessellation>;
10
- getAllElements(): BimDataElement[];
11
- getElementProperties(elementId: string, version: bigint): BimDataElementPropertySet[];
12
- }
13
- export declare class BimDataModelPart implements IBimDataModelPart {
14
- private _module;
15
- private _id;
16
- constructor(id: string, module: IWasmBimModule);
17
- get id(): string;
18
- open(buffer: ArrayBuffer): void;
19
- close(): void;
20
- getTessellations(): Map<string, BimDataTessellation>;
21
- getAllElements(): BimDataElement[];
22
- getElementProperties(elementId: string, version: bigint): BimDataElementPropertySet[];
23
- private get _path();
24
- }
1
+ import { IWasmBimModule } from "../wasm/pilot_bim_dataprovider.js";
2
+ import { BimDataElement } from "./BimDataElement.js";
3
+ import { BimDataElementPropertySet } from "./BimDataElementPropertySet.js";
4
+ import { BimDataTessellation } from "./BimDataTessellation.js";
5
+ export interface IBimDataModelPart {
6
+ id: string;
7
+ open(buffer: ArrayBuffer): void;
8
+ close(): void;
9
+ getTessellations(): Map<string, BimDataTessellation>;
10
+ getAllElements(): BimDataElement[];
11
+ getElementProperties(elementId: string, version: bigint): BimDataElementPropertySet[];
12
+ }
13
+ export declare class BimDataModelPart implements IBimDataModelPart {
14
+ private _module;
15
+ private _id;
16
+ constructor(id: string, module: IWasmBimModule);
17
+ get id(): string;
18
+ open(buffer: ArrayBuffer): void;
19
+ close(): void;
20
+ getTessellations(): Map<string, BimDataTessellation>;
21
+ getAllElements(): BimDataElement[];
22
+ getElementProperties(elementId: string, version: bigint): BimDataElementPropertySet[];
23
+ private get _path();
24
+ }
@@ -1,38 +1,38 @@
1
- import { BimDataConverter } from "../utils/ViewerTools.js";
2
- import { WasmTools } from "../utils/WasmTools.js";
3
- export class BimDataModelPart {
4
- constructor(id, module) {
5
- this._module = module;
6
- this._id = id;
7
- }
8
- get id() {
9
- return this._id;
10
- }
11
- open(buffer) {
12
- const data = new Uint8Array(buffer);
13
- if (WasmTools.isFileExists(this._path, this._module))
14
- return;
15
- this._module.FS.createDataFile("/", this._id, data, true, true, true);
16
- }
17
- close() {
18
- if (WasmTools.isFileExists(this._path, this._module)) {
19
- this._module.FS.unlink(this._path);
20
- }
21
- }
22
- getTessellations() {
23
- const vts = this._module.getTessellations(this._id);
24
- return BimDataConverter.toBimDataTessellations(vts, true);
25
- }
26
- getAllElements() {
27
- const nds = this._module.getAllNodes(this._id);
28
- return BimDataConverter.toToBimDataElements(nds, true);
29
- }
30
- getElementProperties(elementId, version) {
31
- const set = this._module.getProperties(this._id, elementId, version);
32
- return BimDataConverter.toModelElementPropertySet(set, true);
33
- }
34
- get _path() {
35
- return "/" + this._id;
36
- }
37
- }
1
+ import { BimDataConverter } from "../utils/ViewerTools.js";
2
+ import { WasmTools } from "../utils/WasmTools.js";
3
+ export class BimDataModelPart {
4
+ constructor(id, module) {
5
+ this._module = module;
6
+ this._id = id;
7
+ }
8
+ get id() {
9
+ return this._id;
10
+ }
11
+ open(buffer) {
12
+ const data = new Uint8Array(buffer);
13
+ if (WasmTools.isFileExists(this._path, this._module))
14
+ return;
15
+ this._module.FS.createDataFile("/", this._id, data, true, true, true);
16
+ }
17
+ close() {
18
+ if (WasmTools.isFileExists(this._path, this._module)) {
19
+ this._module.FS.unlink(this._path);
20
+ }
21
+ }
22
+ getTessellations() {
23
+ const vts = this._module.getTessellations(this._id);
24
+ return BimDataConverter.toBimDataTessellations(vts, true);
25
+ }
26
+ getAllElements() {
27
+ const nds = this._module.getAllNodes(this._id);
28
+ return BimDataConverter.toToBimDataElements(nds, true);
29
+ }
30
+ getElementProperties(elementId, version) {
31
+ const set = this._module.getProperties(this._id, elementId, version);
32
+ return BimDataConverter.toModelElementPropertySet(set, true);
33
+ }
34
+ get _path() {
35
+ return "/" + this._id;
36
+ }
37
+ }
38
38
  //# sourceMappingURL=BimDataModelPart.js.map
@@ -1,6 +1,6 @@
1
- export declare class BimDataTessellation {
2
- vertices: number[];
3
- normals: number[];
4
- indices: number[];
5
- edgeIndices: number[];
6
- }
1
+ export declare class BimDataTessellation {
2
+ vertices: number[];
3
+ normals: number[];
4
+ indices: number[];
5
+ edgeIndices: number[];
6
+ }
@@ -1,9 +1,9 @@
1
- export class BimDataTessellation {
2
- constructor() {
3
- this.vertices = new Array(); //Float32Array -> ES2017!
4
- this.normals = new Array(); //Float32Array
5
- this.indices = new Array();
6
- this.edgeIndices = new Array();
7
- }
8
- }
1
+ export class BimDataTessellation {
2
+ constructor() {
3
+ this.vertices = new Array(); //Float32Array -> ES2017!
4
+ this.normals = new Array(); //Float32Array
5
+ this.indices = new Array();
6
+ this.edgeIndices = new Array();
7
+ }
8
+ }
9
9
  //# sourceMappingURL=BimDataTessellation.js.map
@@ -1,2 +1,2 @@
1
- export declare const BimDataBigIntMaxValue: bigint;
2
- export declare const BimDataBigIntMinValue: bigint;
1
+ export declare const BimDataBigIntMaxValue: bigint;
2
+ export declare const BimDataBigIntMinValue: bigint;
@@ -1,3 +1,3 @@
1
- export const BimDataBigIntMaxValue = BigInt(3155378975999999999);
2
- export const BimDataBigIntMinValue = BigInt(0);
1
+ export const BimDataBigIntMaxValue = BigInt(3155378975999999999);
2
+ export const BimDataBigIntMinValue = BigInt(0);
3
3
  //# sourceMappingURL=Consts.js.map
@@ -1,13 +1,13 @@
1
- import { BimDataElement } from "../model/BimDataElement.js";
2
- import { BimDataElementPropertySet } from "../model/BimDataElementPropertySet.js";
3
- import { BimDataTessellation } from "../model/BimDataTessellation.js";
4
- import { VectorOf, WasmElementPropertySet, WasmIfcNode, WasmTessellation } from "../wasm/pilot_bim_dataprovider.js";
5
- export declare class BimDataConverter {
6
- static toToBimDataElements(ifcNodes: VectorOf<WasmIfcNode>, dispose: boolean): BimDataElement[];
7
- static toBimDataTessellations(tessellations: VectorOf<WasmTessellation>, dispose: boolean): Map<string, BimDataTessellation>;
8
- static toModelElementPropertySet(wasmPropertySets: VectorOf<WasmElementPropertySet>, dispose: boolean): BimDataElementPropertySet[];
9
- private static toModelElementProperties;
10
- private static toModelElementPropertyValue;
11
- private static toBimDataElement;
12
- private static toDimDataTessellation;
13
- }
1
+ import { BimDataElement } from "../model/BimDataElement.js";
2
+ import { BimDataElementPropertySet } from "../model/BimDataElementPropertySet.js";
3
+ import { BimDataTessellation } from "../model/BimDataTessellation.js";
4
+ import { VectorOf, WasmElementPropertySet, WasmIfcNode, WasmTessellation } from "../wasm/pilot_bim_dataprovider.js";
5
+ export declare class BimDataConverter {
6
+ static toToBimDataElements(ifcNodes: VectorOf<WasmIfcNode>, dispose: boolean): BimDataElement[];
7
+ static toBimDataTessellations(tessellations: VectorOf<WasmTessellation>, dispose: boolean): Map<string, BimDataTessellation>;
8
+ static toModelElementPropertySet(wasmPropertySets: VectorOf<WasmElementPropertySet>, dispose: boolean): BimDataElementPropertySet[];
9
+ private static toModelElementProperties;
10
+ private static toModelElementPropertyValue;
11
+ private static toBimDataElement;
12
+ private static toDimDataTessellation;
13
+ }
@@ -1,117 +1,138 @@
1
- import { BimDataElement, BimDataMeshProperty } from "../model/BimDataElement.js";
2
- import { BimDataElementPropertySet, BimDataElementProperty, BimDataElementPropertyValue } from "../model/BimDataElementPropertySet.js";
3
- import { BimDataTessellation } from "../model/BimDataTessellation.js";
4
- import { WasmTools } from "./WasmTools.js";
5
- export class BimDataConverter {
6
- static toToBimDataElements(ifcNodes, dispose) {
7
- const props = new Array();
8
- for (let index = 0; index < ifcNodes.size(); index++) {
9
- const node = ifcNodes.get(index);
10
- props.push(this.toBimDataElement(node));
11
- if (dispose)
12
- node.delete();
13
- }
14
- if (dispose)
15
- ifcNodes.delete();
16
- return props;
17
- }
18
- static toBimDataTessellations(tessellations, dispose) {
19
- const map = new Map();
20
- for (let index = 0; index < tessellations.size(); index++) {
21
- const tessellation = tessellations.get(index);
22
- const t = this.toDimDataTessellation(tessellation);
23
- map.set(t.key, t.value);
24
- if (dispose)
25
- tessellation.delete();
26
- }
27
- if (dispose)
28
- tessellations.delete();
29
- return map;
30
- }
31
- static toModelElementPropertySet(wasmPropertySets, dispose) {
32
- const sets = new Array();
33
- for (let index = 0; index < wasmPropertySets.size(); index++) {
34
- const wasmPropertySet = wasmPropertySets.get(index);
35
- const modelPropertySet = new BimDataElementPropertySet();
36
- modelPropertySet.name = wasmPropertySet.name;
37
- modelPropertySet.type = wasmPropertySet.type;
38
- modelPropertySet.properties = this.toModelElementProperties(wasmPropertySet.properties);
39
- sets.push(modelPropertySet);
40
- if (dispose)
41
- wasmPropertySet.delete();
42
- }
43
- if (dispose)
44
- wasmPropertySets.delete();
45
- return sets;
46
- }
47
- static toModelElementProperties(properties) {
48
- const modelElementProperties = new Array();
49
- for (let index = 0; index < properties.size(); index++) {
50
- const prop = properties.get(index);
51
- const meProperty = new BimDataElementProperty();
52
- meProperty.name = prop.name;
53
- meProperty.unit = prop.unit;
54
- meProperty.value = this.toModelElementPropertyValue(prop.value);
55
- modelElementProperties.push(meProperty);
56
- }
57
- return modelElementProperties;
58
- }
59
- static toModelElementPropertyValue(value) {
60
- var _a, _b, _c, _d, _e, _f, _g, _h;
61
- const modelElementValue = new BimDataElementPropertyValue();
62
- modelElementValue.array_int_value = WasmTools.vectorToArray(value.array_int_value);
63
- modelElementValue.array_value = WasmTools.vectorToArray(value.array_value);
64
- modelElementValue.bool_value = ((_a = value.bool_value) === null || _a === void 0 ? void 0 : _a.has_value()) ? value.bool_value.value() : undefined;
65
- modelElementValue.date_value = ((_b = value.date_value) === null || _b === void 0 ? void 0 : _b.has_value()) ? value.date_value.value() : undefined; // TODO convert???
66
- modelElementValue.decimal_value = ((_c = value.decimal_value) === null || _c === void 0 ? void 0 : _c.has_value()) ? value.decimal_value.value() : undefined; // TODO convert
67
- modelElementValue.double_value = ((_d = value.double_value) === null || _d === void 0 ? void 0 : _d.has_value()) ? value.double_value.value() : undefined;
68
- modelElementValue.guid_value = ((_e = value.guid_value) === null || _e === void 0 ? void 0 : _e.has_value()) ? (_f = value.guid_value.value()) === null || _f === void 0 ? void 0 : _f.toString() : undefined;
69
- modelElementValue.int_value = ((_g = value.int_value) === null || _g === void 0 ? void 0 : _g.has_value()) ? value.int_value.value() : undefined;
70
- modelElementValue.str_value = ((_h = value.str_value) === null || _h === void 0 ? void 0 : _h.has_value()) ? value.str_value.value() : undefined;
71
- //modelElementValue.value = value.value;
72
- return modelElementValue;
73
- }
74
- static toBimDataElement(ifcNode) {
75
- const node = new BimDataElement();
76
- node.guid = ifcNode.id;
77
- node.name = ifcNode.name;
78
- node.parentGuid = ifcNode.parent_guid;
79
- node.type = ifcNode.type;
80
- node.objectState = ifcNode.object_state;
81
- node.representationStatus = ifcNode.representation_status;
82
- node.representationType = ifcNode.representation_type;
83
- node.revision = ifcNode.revision;
84
- const meshVectorPtr = ifcNode.mesh_properties;
85
- const meshProperties = new Map();
86
- for (let index = 0; index < meshVectorPtr.size(); index++) {
87
- const meshPtr = meshVectorPtr.get(index);
88
- const meshProps = new Array();
89
- const valueVectorPtr = meshPtr.value;
90
- for (let j = 0; j < valueVectorPtr.size(); j++) {
91
- const propPtr = valueVectorPtr.get(j);
92
- const prop = new BimDataMeshProperty();
93
- prop.meshColor = propPtr.mesh_color;
94
- prop.meshPlacement = WasmTools.vectorToArray(propPtr.mesh_placement, true);
95
- propPtr.delete();
96
- meshProps.push(prop);
97
- }
98
- meshProperties.set(meshPtr.key, meshProps);
99
- valueVectorPtr.delete();
100
- meshPtr.delete();
101
- }
102
- node.meshesProperties = meshProperties;
103
- meshVectorPtr.delete();
104
- return node;
105
- }
106
- static toDimDataTessellation(wasmTessellation) {
107
- const tessellation = new BimDataTessellation();
108
- const modelMesh = wasmTessellation.model_mesh;
109
- tessellation.edgeIndices = WasmTools.vectorToNumberArray(modelMesh.edge_indices, true);
110
- tessellation.indices = WasmTools.vectorToNumberArray(modelMesh.indices, true);
111
- tessellation.normals = WasmTools.vectorToNumberArray(modelMesh.normals, true);
112
- tessellation.vertices = WasmTools.vectorToNumberArray(modelMesh.vertices, true);
113
- modelMesh.delete();
114
- return { key: wasmTessellation.id, value: tessellation };
115
- }
116
- }
1
+ import { BimDataElement, BimDataMeshProperty } from "../model/BimDataElement.js";
2
+ import { BimDataElementPropertySet, BimDataElementProperty, BimDataElementPropertyValue } from "../model/BimDataElementPropertySet.js";
3
+ import { BimDataTessellation } from "../model/BimDataTessellation.js";
4
+ import { WasmTools } from "./WasmTools.js";
5
+ export class BimDataConverter {
6
+ static toToBimDataElements(ifcNodes, dispose) {
7
+ const props = new Array();
8
+ for (let index = 0; index < ifcNodes.size(); index++) {
9
+ const node = ifcNodes.get(index);
10
+ props.push(this.toBimDataElement(node));
11
+ if (dispose)
12
+ node.delete();
13
+ }
14
+ if (dispose)
15
+ ifcNodes.delete();
16
+ return props;
17
+ }
18
+ static toBimDataTessellations(tessellations, dispose) {
19
+ const map = new Map();
20
+ for (let index = 0; index < tessellations.size(); index++) {
21
+ const tessellation = tessellations.get(index);
22
+ const t = this.toDimDataTessellation(tessellation);
23
+ map.set(t.key, t.value);
24
+ if (dispose)
25
+ tessellation.delete();
26
+ }
27
+ if (dispose)
28
+ tessellations.delete();
29
+ return map;
30
+ }
31
+ static toModelElementPropertySet(wasmPropertySets, dispose) {
32
+ const sets = new Array();
33
+ for (let index = 0; index < wasmPropertySets.size(); index++) {
34
+ const wasmPropertySet = wasmPropertySets.get(index);
35
+ const modelPropertySet = new BimDataElementPropertySet();
36
+ modelPropertySet.name = wasmPropertySet.name;
37
+ modelPropertySet.type = wasmPropertySet.type;
38
+ modelPropertySet.properties = this.toModelElementProperties(wasmPropertySet.properties);
39
+ sets.push(modelPropertySet);
40
+ if (dispose)
41
+ wasmPropertySet.delete();
42
+ }
43
+ if (dispose)
44
+ wasmPropertySets.delete();
45
+ return sets;
46
+ }
47
+ static toModelElementProperties(properties) {
48
+ const modelElementProperties = new Array();
49
+ for (let index = 0; index < properties.size(); index++) {
50
+ const prop = properties.get(index);
51
+ const meProperty = new BimDataElementProperty();
52
+ meProperty.name = prop.name;
53
+ meProperty.unit = prop.unit;
54
+ meProperty.value = this.toModelElementPropertyValue(prop.value);
55
+ modelElementProperties.push(meProperty);
56
+ }
57
+ return modelElementProperties;
58
+ }
59
+ static toModelElementPropertyValue(value) {
60
+ var _a, _b, _c, _d, _e, _f, _g, _h;
61
+ const modelElementValue = new BimDataElementPropertyValue();
62
+ modelElementValue.array_int_value = WasmTools.vectorToArray(value.array_int_value);
63
+ modelElementValue.array_value = WasmTools.vectorToArray(value.array_value);
64
+ modelElementValue.bool_value = ((_a = value.bool_value) === null || _a === void 0 ? void 0 : _a.has_value()) ? value.bool_value.value() : undefined;
65
+ modelElementValue.date_value = ((_b = value.date_value) === null || _b === void 0 ? void 0 : _b.has_value()) ? value.date_value.value() : undefined; // TODO convert???
66
+ modelElementValue.decimal_value = ((_c = value.decimal_value) === null || _c === void 0 ? void 0 : _c.has_value()) ? value.decimal_value.value() : undefined; // TODO convert
67
+ modelElementValue.double_value = ((_d = value.double_value) === null || _d === void 0 ? void 0 : _d.has_value()) ? value.double_value.value() : undefined;
68
+ modelElementValue.guid_value = ((_e = value.guid_value) === null || _e === void 0 ? void 0 : _e.has_value()) ? (_f = value.guid_value.value()) === null || _f === void 0 ? void 0 : _f.toString() : undefined;
69
+ modelElementValue.int_value = ((_g = value.int_value) === null || _g === void 0 ? void 0 : _g.has_value()) ? value.int_value.value() : undefined;
70
+ modelElementValue.str_value = ((_h = value.str_value) === null || _h === void 0 ? void 0 : _h.has_value()) ? value.str_value.value() : undefined;
71
+ //modelElementValue.value = value.value;
72
+ return modelElementValue;
73
+ }
74
+ static toBimDataElement(ifcNode) {
75
+ const node = new BimDataElement();
76
+ node.guid = ifcNode.id;
77
+ node.name = ifcNode.name;
78
+ node.parentGuid = ifcNode.parent_guid;
79
+ node.type = ifcNode.type;
80
+ node.objectState = ifcNode.object_state;
81
+ node.representationStatus = ifcNode.representation_status;
82
+ node.representationType = ifcNode.representation_type;
83
+ node.revision = ifcNode.revision;
84
+ const meshVectorPtr = ifcNode.mesh_properties;
85
+ const meshProperties = new Map();
86
+ for (let index = 0; index < meshVectorPtr.size(); index++) {
87
+ const meshPtr = meshVectorPtr.get(index);
88
+ const meshProps = new Array();
89
+ const valueVectorPtr = meshPtr.value;
90
+ for (let j = 0; j < valueVectorPtr.size(); j++) {
91
+ const propPtr = valueVectorPtr.get(j);
92
+ const prop = new BimDataMeshProperty();
93
+ prop.meshColor = propPtr.mesh_color;
94
+ prop.meshPlacement = WasmTools.vectorToArray(propPtr.mesh_placement, true);
95
+ propPtr.delete();
96
+ meshProps.push(prop);
97
+ }
98
+ meshProperties.set(meshPtr.key, meshProps);
99
+ valueVectorPtr.delete();
100
+ meshPtr.delete();
101
+ }
102
+ node.meshesProperties = meshProperties;
103
+ meshVectorPtr.delete();
104
+ const gridObjectPtr = ifcNode.grid_object;
105
+ const axesPtr = gridObjectPtr.grid_axes;
106
+ const gridObject = {
107
+ gridPlacement: WasmTools.vectorToArray(gridObjectPtr.placement, true),
108
+ gridAxes: []
109
+ };
110
+ for (let i = 0; i < axesPtr.size(); i++) {
111
+ const wasmAxisPtr = axesPtr.get(i);
112
+ const axis = {
113
+ id: wasmAxisPtr.id,
114
+ type: wasmAxisPtr.type.value,
115
+ label: wasmAxisPtr.label,
116
+ data: WasmTools.vectorToArray(wasmAxisPtr.data, true)
117
+ };
118
+ wasmAxisPtr.delete();
119
+ gridObject.gridAxes.push(axis);
120
+ }
121
+ if (gridObject.gridPlacement.length > 0 && gridObject.gridAxes.length > 0)
122
+ node.gridObject = gridObject;
123
+ axesPtr.delete();
124
+ gridObjectPtr.delete();
125
+ return node;
126
+ }
127
+ static toDimDataTessellation(wasmTessellation) {
128
+ const tessellation = new BimDataTessellation();
129
+ const modelMesh = wasmTessellation.model_mesh;
130
+ tessellation.edgeIndices = WasmTools.vectorToNumberArray(modelMesh.edge_indices, true);
131
+ tessellation.indices = WasmTools.vectorToNumberArray(modelMesh.indices, true);
132
+ tessellation.normals = WasmTools.vectorToNumberArray(modelMesh.normals, true);
133
+ tessellation.vertices = WasmTools.vectorToNumberArray(modelMesh.vertices, true);
134
+ modelMesh.delete();
135
+ return { key: wasmTessellation.id, value: tessellation };
136
+ }
137
+ }
117
138
  //# sourceMappingURL=ViewerTools.js.map
@@ -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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"}