@pilotdev/pilot-bim-dataprovider 24.9.0 → 24.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -9
- package/lib/index.d.ts +3 -3
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/src/file-system/IFileSystem.d.ts +47 -0
- package/lib/src/file-system/IFileSystem.js +179 -0
- package/lib/src/file-system/IFileSystem.js.map +1 -0
- package/lib/src/file-system/IFileSystemCache.d.ts +62 -0
- package/lib/src/file-system/IFileSystemCache.js +154 -0
- package/lib/src/file-system/IFileSystemCache.js.map +1 -0
- package/lib/src/file-system/OPFS.d.ts +35 -0
- package/lib/src/file-system/OPFS.js +182 -0
- package/lib/src/file-system/OPFS.js.map +1 -0
- package/lib/src/file-system/PATH.d.ts +8 -0
- package/lib/src/file-system/PATH.js +34 -0
- package/lib/src/file-system/PATH.js.map +1 -0
- package/lib/src/model/BimDataElement.d.ts +69 -3
- package/lib/src/model/BimDataElement.js +13 -4
- package/lib/src/model/BimDataElement.js.map +1 -1
- package/lib/src/model/BimDataElementPropertySet.js.map +1 -1
- package/lib/src/model/BimDataPart.d.ts +62 -0
- package/lib/src/model/BimDataPart.js +99 -0
- package/lib/src/model/BimDataPart.js.map +1 -0
- package/lib/src/model/BimDataProvider.d.ts +16 -0
- package/lib/src/model/BimDataProvider.js +29 -0
- package/lib/src/model/BimDataProvider.js.map +1 -0
- package/lib/src/model/Consts.d.ts +3 -0
- package/lib/src/model/Consts.js +3 -0
- package/lib/src/model/Consts.js.map +1 -1
- package/lib/src/utils/ViewerTools.d.ts +9 -9
- package/lib/src/utils/ViewerTools.js +73 -38
- package/lib/src/utils/ViewerTools.js.map +1 -1
- package/lib/src/utils/WasmTools.d.ts +10 -6
- package/lib/src/utils/WasmTools.js +66 -32
- package/lib/src/utils/WasmTools.js.map +1 -1
- package/lib/src/wasm/CorsWorker.d.ts +6 -0
- package/lib/src/wasm/CorsWorker.js +20 -0
- package/lib/src/wasm/CorsWorker.js.map +1 -0
- package/lib/src/wasm/pilot_bim_dataprovider.d.ts +136 -7
- package/lib/src/wasm/pilot_bim_dataprovider.js +1 -1
- package/lib/src/wasm/pilot_bim_dataprovider.wasm +0 -0
- package/lib/src/wasm/wasm.worker.d.ts +56 -0
- package/lib/src/wasm/wasm.worker.js +280 -0
- package/lib/src/wasm/wasm.worker.js.map +1 -0
- package/package.json +5 -12
- package/lib/src/model/BimDataModel.d.ts +0 -19
- package/lib/src/model/BimDataModel.js +0 -59
- package/lib/src/model/BimDataModel.js.map +0 -1
- package/lib/src/model/BimDataModelPart.d.ts +0 -40
- package/lib/src/model/BimDataModelPart.js +0 -144
- package/lib/src/model/BimDataModelPart.js.map +0 -1
- package/lib/src/model/BimNodeComparer.d.ts +0 -10
- package/lib/src/model/BimNodeComparer.js +0 -71
- package/lib/src/model/BimNodeComparer.js.map +0 -1
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { S_IFDIR, S_IFREG } from "../model/Consts.js";
|
|
2
|
+
import { PATH } from "./PATH.js";
|
|
3
|
+
var cDefs;
|
|
4
|
+
(function (cDefs) {
|
|
5
|
+
cDefs[cDefs["EINVAL"] = 28] = "EINVAL";
|
|
6
|
+
cDefs[cDefs["ENOENT"] = 44] = "ENOENT";
|
|
7
|
+
cDefs[cDefs["ESPIPE"] = 70] = "ESPIPE";
|
|
8
|
+
})(cDefs || (cDefs = {}));
|
|
9
|
+
class ErrnoError {
|
|
10
|
+
constructor(errno) {
|
|
11
|
+
this.name = 'ErrnoError';
|
|
12
|
+
this.errno = errno;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class OPFS {
|
|
16
|
+
constructor(_fs, _fsSync) {
|
|
17
|
+
this._fs = _fs;
|
|
18
|
+
this._fsSync = _fsSync;
|
|
19
|
+
this._mountpoint = "/";
|
|
20
|
+
}
|
|
21
|
+
lookupPath(path, opts) {
|
|
22
|
+
return {
|
|
23
|
+
node: this.createNode(path, path, opts, 0),
|
|
24
|
+
path: path
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
isFile(mode) {
|
|
28
|
+
return this._fs.isFile(mode);
|
|
29
|
+
}
|
|
30
|
+
isDir(mode) {
|
|
31
|
+
return this._fs.isDir(mode);
|
|
32
|
+
}
|
|
33
|
+
mkdir(path, mode) {
|
|
34
|
+
if (path === this._mountpoint) {
|
|
35
|
+
this.createNode(this._mountpoint, path, mode ?? S_IFDIR | 511, 0);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
const parent = PATH.getParentFolderName(path);
|
|
39
|
+
const node = PATH.getName(path);
|
|
40
|
+
this.createNode(parent, node, mode ?? S_IFDIR | 511, 0);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
readdir(path) {
|
|
44
|
+
return this._fsSync.readdir(path);
|
|
45
|
+
}
|
|
46
|
+
stat(path, dontFollow) {
|
|
47
|
+
return this._fs.stat(path, dontFollow);
|
|
48
|
+
}
|
|
49
|
+
lstat(path) {
|
|
50
|
+
if (path === "/") {
|
|
51
|
+
const s = this._fs.lstat(path);
|
|
52
|
+
return s;
|
|
53
|
+
}
|
|
54
|
+
const node = this._fsSync.lookup(path);
|
|
55
|
+
if (!node)
|
|
56
|
+
throw new ErrnoError(cDefs.ENOENT);
|
|
57
|
+
let mode = S_IFDIR;
|
|
58
|
+
const size = node.size;
|
|
59
|
+
if (node.kind === "file") {
|
|
60
|
+
mode = S_IFREG;
|
|
61
|
+
}
|
|
62
|
+
const stat = {
|
|
63
|
+
dev: 1,
|
|
64
|
+
ino: node.id,
|
|
65
|
+
mode: mode,
|
|
66
|
+
nlink: 1,
|
|
67
|
+
uid: 0,
|
|
68
|
+
gid: 0,
|
|
69
|
+
rdev: 0,
|
|
70
|
+
size: size,
|
|
71
|
+
atime: new Date(node.timestamp),
|
|
72
|
+
ctime: new Date(node.timestamp),
|
|
73
|
+
mtime: new Date(node.timestamp),
|
|
74
|
+
blksize: 4096,
|
|
75
|
+
blocks: Math.ceil(size / 4096)
|
|
76
|
+
};
|
|
77
|
+
return stat;
|
|
78
|
+
}
|
|
79
|
+
truncate(path, len) {
|
|
80
|
+
const node = this._fsSync.lookup(path);
|
|
81
|
+
if (!node || !node.stream_ops)
|
|
82
|
+
throw new Error("File not found.");
|
|
83
|
+
node.stream_ops.truncate(len);
|
|
84
|
+
}
|
|
85
|
+
utime(path, atime, mtime) {
|
|
86
|
+
const node = this._fsSync.lookup(path);
|
|
87
|
+
if (node)
|
|
88
|
+
node.timestamp = Math.max(atime, mtime);
|
|
89
|
+
}
|
|
90
|
+
open(path, flags, mode, fd_start, fd_end) {
|
|
91
|
+
// register the stream with the filesystem
|
|
92
|
+
const node = this._fsSync.lookup(path);
|
|
93
|
+
const stream = this.createStream({
|
|
94
|
+
node: undefined,
|
|
95
|
+
path: "",
|
|
96
|
+
flags,
|
|
97
|
+
seekable: true,
|
|
98
|
+
position: 0,
|
|
99
|
+
stream_ops: node?.stream_ops ?? {},
|
|
100
|
+
// used by the file family libc calls (fopen, fwrite, ferror, etc.)
|
|
101
|
+
ungotten: [],
|
|
102
|
+
error: false
|
|
103
|
+
}, -1);
|
|
104
|
+
// call the new stream's open function
|
|
105
|
+
if (stream.stream_ops.open) {
|
|
106
|
+
stream.stream_ops.open(stream);
|
|
107
|
+
}
|
|
108
|
+
return stream;
|
|
109
|
+
}
|
|
110
|
+
close(stream) {
|
|
111
|
+
this._fs.close(stream);
|
|
112
|
+
}
|
|
113
|
+
read(stream, buffer, offset, length, position) {
|
|
114
|
+
if (!stream.stream_ops.read) {
|
|
115
|
+
throw new ErrnoError(cDefs.EINVAL);
|
|
116
|
+
}
|
|
117
|
+
const seeking = typeof position != 'undefined';
|
|
118
|
+
if (!seeking) {
|
|
119
|
+
position = stream.position;
|
|
120
|
+
}
|
|
121
|
+
else if (!stream.seekable) {
|
|
122
|
+
throw new ErrnoError(cDefs.ESPIPE);
|
|
123
|
+
}
|
|
124
|
+
const bytesRead = stream.stream_ops.read(buffer, offset, length, position);
|
|
125
|
+
if (!seeking)
|
|
126
|
+
stream.position += bytesRead;
|
|
127
|
+
return bytesRead;
|
|
128
|
+
}
|
|
129
|
+
write(stream, buffer, offset, length, position, canOwn) {
|
|
130
|
+
if (!stream.stream_ops.write) {
|
|
131
|
+
throw new ErrnoError(cDefs.EINVAL);
|
|
132
|
+
}
|
|
133
|
+
const seeking = typeof position != 'undefined';
|
|
134
|
+
if (!seeking) {
|
|
135
|
+
position = stream.position;
|
|
136
|
+
}
|
|
137
|
+
else if (!stream.seekable) {
|
|
138
|
+
throw new ErrnoError(cDefs.ESPIPE);
|
|
139
|
+
}
|
|
140
|
+
const bytesWritten = stream.stream_ops.write(buffer, offset, length, position);
|
|
141
|
+
if (!seeking)
|
|
142
|
+
stream.position += bytesWritten;
|
|
143
|
+
return bytesWritten;
|
|
144
|
+
}
|
|
145
|
+
readFile(path, opts) {
|
|
146
|
+
const node = this._fsSync.lookup(path);
|
|
147
|
+
if (!node || !node.stream_ops)
|
|
148
|
+
throw new Error("File not found.");
|
|
149
|
+
const size = node.stream_ops.getSize();
|
|
150
|
+
const buffer = new Uint8Array(size);
|
|
151
|
+
node.stream_ops.read(buffer, 0, size, 0);
|
|
152
|
+
return buffer;
|
|
153
|
+
}
|
|
154
|
+
writeFile(path, data, opts) {
|
|
155
|
+
const node = this._fsSync.lookup(path);
|
|
156
|
+
if (!node || !node.stream_ops)
|
|
157
|
+
throw new Error("File not found.");
|
|
158
|
+
const size = node.stream_ops.getSize();
|
|
159
|
+
node.stream_ops.write(data, 0, size, 0);
|
|
160
|
+
}
|
|
161
|
+
mount(type, opts, mountpoint) {
|
|
162
|
+
const node = this.createNode(type.opts.root, type.mountpoint, S_IFDIR | 511 /* 0777 */, 0);
|
|
163
|
+
return node;
|
|
164
|
+
}
|
|
165
|
+
createNode(parent, name, mode, dev) {
|
|
166
|
+
if (!this.isDir(mode) && !this.isFile(mode)) {
|
|
167
|
+
throw new Error("Is not file or directory");
|
|
168
|
+
}
|
|
169
|
+
const node = this._fs.createNode(parent, name, mode, 0);
|
|
170
|
+
return node;
|
|
171
|
+
}
|
|
172
|
+
createStream(stream, fd) {
|
|
173
|
+
return this._fs.createStream(stream, fd);
|
|
174
|
+
}
|
|
175
|
+
unlink(path) {
|
|
176
|
+
throw new Error("Method not implemented.");
|
|
177
|
+
}
|
|
178
|
+
createDataFile(parent, name, data, canRead, canWrite, canOwn) {
|
|
179
|
+
throw new Error("Method not implemented.");
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=OPFS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OPFS.js","sourceRoot":"","sources":["../../../src/file-system/OPFS.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare class PATH {
|
|
2
|
+
static getName(path: string): string;
|
|
3
|
+
static getParentFolderName(path: string): string;
|
|
4
|
+
static getDirs(path: string): string[];
|
|
5
|
+
static getParentPath(path: string): string;
|
|
6
|
+
static combine(parentPath: string, name: string): string;
|
|
7
|
+
private static split;
|
|
8
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export class PATH {
|
|
2
|
+
static getName(path) {
|
|
3
|
+
const nodes = this.split(path);
|
|
4
|
+
return nodes[nodes.length - 1];
|
|
5
|
+
}
|
|
6
|
+
static getParentFolderName(path) {
|
|
7
|
+
const nodes = this.split(path);
|
|
8
|
+
if (nodes.length <= 2)
|
|
9
|
+
return "/"; //Root
|
|
10
|
+
return nodes[nodes.length - 2];
|
|
11
|
+
}
|
|
12
|
+
static getDirs(path) {
|
|
13
|
+
const nodes = this.split(path);
|
|
14
|
+
return nodes;
|
|
15
|
+
}
|
|
16
|
+
static getParentPath(path) {
|
|
17
|
+
const lastIndex = path.lastIndexOf("/");
|
|
18
|
+
if (lastIndex === 0)
|
|
19
|
+
return "/";
|
|
20
|
+
return path.slice(0, lastIndex);
|
|
21
|
+
}
|
|
22
|
+
static combine(parentPath, name) {
|
|
23
|
+
return parentPath + "/" + name;
|
|
24
|
+
}
|
|
25
|
+
static split(path) {
|
|
26
|
+
if (path === "/")
|
|
27
|
+
return ["/"];
|
|
28
|
+
const nodes = path.split("/");
|
|
29
|
+
if (nodes.length > 0)
|
|
30
|
+
nodes[0] = "/";
|
|
31
|
+
return nodes;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=PATH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PATH.js","sourceRoot":"","sources":["../../../src/file-system/PATH.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,IAAI;IAEf,MAAM,CAAC,OAAO,CAAC,IAAY;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,IAAY;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;YACnB,OAAO,GAAG,CAAC,CAAC,MAAM;QAEpB,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,IAAY;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,IAAY;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,SAAS,KAAK,CAAC;YACjB,OAAO,GAAG,CAAC;QAEb,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,UAAkB,EAAE,IAAY;QAC7C,OAAO,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC;IACjC,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,IAAY;QAC/B,IAAI,IAAI,KAAK,GAAG;YACd,OAAO,CAAC,GAAG,CAAC,CAAC;QAEf,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAClB,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAEjB,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
|
|
@@ -12,16 +12,16 @@ export declare class BimDataElement {
|
|
|
12
12
|
}
|
|
13
13
|
export declare class BimDataMeshProperty {
|
|
14
14
|
meshColor: number;
|
|
15
|
-
meshPlacement:
|
|
15
|
+
meshPlacement: Float64Array;
|
|
16
16
|
}
|
|
17
17
|
export declare class BimDataGridObject {
|
|
18
|
-
gridPlacement:
|
|
18
|
+
gridPlacement: Float64Array;
|
|
19
19
|
gridAxes: BimDataGridAxis[];
|
|
20
20
|
}
|
|
21
21
|
export declare class BimDataGridAxis {
|
|
22
22
|
id: number;
|
|
23
23
|
type: number;
|
|
24
|
-
data:
|
|
24
|
+
data: Float32Array;
|
|
25
25
|
label: string;
|
|
26
26
|
}
|
|
27
27
|
export declare enum BimDataNodeState {
|
|
@@ -34,3 +34,69 @@ export declare enum BimDataNodeState {
|
|
|
34
34
|
PlacementAndAttributesModified = 11,
|
|
35
35
|
PlacementAndAttributesQuantitiesModified = 12
|
|
36
36
|
}
|
|
37
|
+
export declare class BimCloudHierarchyItem {
|
|
38
|
+
index: number;
|
|
39
|
+
dataIndex: number;
|
|
40
|
+
type: BimHierarchyItemType;
|
|
41
|
+
mask: number;
|
|
42
|
+
numPoints: number;
|
|
43
|
+
min: {
|
|
44
|
+
x: number;
|
|
45
|
+
y: number;
|
|
46
|
+
z: number;
|
|
47
|
+
};
|
|
48
|
+
max: {
|
|
49
|
+
x: number;
|
|
50
|
+
y: number;
|
|
51
|
+
z: number;
|
|
52
|
+
};
|
|
53
|
+
offset?: number;
|
|
54
|
+
size?: number;
|
|
55
|
+
spacing?: number;
|
|
56
|
+
}
|
|
57
|
+
export declare class BimCloudMetadata {
|
|
58
|
+
depth: number;
|
|
59
|
+
min: {
|
|
60
|
+
x: number;
|
|
61
|
+
y: number;
|
|
62
|
+
z: number;
|
|
63
|
+
};
|
|
64
|
+
max: {
|
|
65
|
+
x: number;
|
|
66
|
+
y: number;
|
|
67
|
+
z: number;
|
|
68
|
+
};
|
|
69
|
+
baseSpacing: number;
|
|
70
|
+
version?: number;
|
|
71
|
+
filename?: string;
|
|
72
|
+
description?: string;
|
|
73
|
+
inputPoints?: number;
|
|
74
|
+
processedPoints?: number;
|
|
75
|
+
nodesCount?: number;
|
|
76
|
+
nodesPoints?: number;
|
|
77
|
+
posOffset?: {
|
|
78
|
+
x: number;
|
|
79
|
+
y: number;
|
|
80
|
+
z: number;
|
|
81
|
+
};
|
|
82
|
+
posScale?: {
|
|
83
|
+
x: number;
|
|
84
|
+
y: number;
|
|
85
|
+
z: number;
|
|
86
|
+
};
|
|
87
|
+
root_min?: {
|
|
88
|
+
x: number;
|
|
89
|
+
y: number;
|
|
90
|
+
z: number;
|
|
91
|
+
};
|
|
92
|
+
root_max?: {
|
|
93
|
+
x: number;
|
|
94
|
+
y: number;
|
|
95
|
+
z: number;
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
export declare enum BimHierarchyItemType {
|
|
99
|
+
NORMAL = 0,
|
|
100
|
+
LEAF = 1,
|
|
101
|
+
PROXY = 2
|
|
102
|
+
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* eslint @typescript-eslint/no-inferrable-types:off */
|
|
2
1
|
export class BimDataElement {
|
|
3
2
|
constructor() {
|
|
4
3
|
this.revision = BigInt(0);
|
|
@@ -8,18 +7,18 @@ export class BimDataElement {
|
|
|
8
7
|
export class BimDataMeshProperty {
|
|
9
8
|
constructor() {
|
|
10
9
|
this.meshColor = 0;
|
|
11
|
-
this.meshPlacement =
|
|
10
|
+
this.meshPlacement = new Float64Array();
|
|
12
11
|
}
|
|
13
12
|
}
|
|
14
13
|
export class BimDataGridObject {
|
|
15
14
|
constructor() {
|
|
16
|
-
this.gridPlacement =
|
|
15
|
+
this.gridPlacement = new Float64Array();
|
|
17
16
|
this.gridAxes = [];
|
|
18
17
|
}
|
|
19
18
|
}
|
|
20
19
|
export class BimDataGridAxis {
|
|
21
20
|
constructor() {
|
|
22
|
-
this.data =
|
|
21
|
+
this.data = new Float32Array();
|
|
23
22
|
}
|
|
24
23
|
}
|
|
25
24
|
export var BimDataNodeState;
|
|
@@ -33,4 +32,14 @@ export var BimDataNodeState;
|
|
|
33
32
|
BimDataNodeState[BimDataNodeState["PlacementAndAttributesModified"] = 11] = "PlacementAndAttributesModified";
|
|
34
33
|
BimDataNodeState[BimDataNodeState["PlacementAndAttributesQuantitiesModified"] = 12] = "PlacementAndAttributesQuantitiesModified";
|
|
35
34
|
})(BimDataNodeState || (BimDataNodeState = {}));
|
|
35
|
+
export class BimCloudHierarchyItem {
|
|
36
|
+
}
|
|
37
|
+
export class BimCloudMetadata {
|
|
38
|
+
}
|
|
39
|
+
export var BimHierarchyItemType;
|
|
40
|
+
(function (BimHierarchyItemType) {
|
|
41
|
+
BimHierarchyItemType[BimHierarchyItemType["NORMAL"] = 0] = "NORMAL";
|
|
42
|
+
BimHierarchyItemType[BimHierarchyItemType["LEAF"] = 1] = "LEAF";
|
|
43
|
+
BimHierarchyItemType[BimHierarchyItemType["PROXY"] = 2] = "PROXY";
|
|
44
|
+
})(BimHierarchyItemType || (BimHierarchyItemType = {}));
|
|
36
45
|
//# sourceMappingURL=BimDataElement.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BimDataElement.js","sourceRoot":"","sources":["../../../src/model/BimDataElement.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"BimDataElement.js","sourceRoot":"","sources":["../../../src/model/BimDataElement.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,cAAc;IAA3B;QAGE,aAAQ,GAAW,MAAM,CAAC,CAAC,CAAC,CAAC;QAQ7B,qBAAgB,GAAuC,IAAI,GAAG,EAAE,CAAC;IACnE,CAAC;CAAA;AAED,MAAM,OAAO,mBAAmB;IAAhC;QACE,cAAS,GAAW,CAAC,CAAC;QACtB,kBAAa,GAAiB,IAAI,YAAY,EAAE,CAAC;IACnD,CAAC;CAAA;AAED,MAAM,OAAO,iBAAiB;IAA9B;QACE,kBAAa,GAAiB,IAAI,YAAY,EAAE,CAAC;QACjD,aAAQ,GAAsB,EAAE,CAAC;IACnC,CAAC;CAAA;AAED,MAAM,OAAO,eAAe;IAA5B;QAGE,SAAI,GAAiB,IAAI,YAAY,EAAE,CAAC;IAE1C,CAAC;CAAA;AAED,MAAM,CAAN,IAAY,gBAUX;AAVD,WAAY,gBAAgB;IAE1B,iEAAa,CAAA;IACb,yDAAS,CAAA;IACT,6DAAW,CAAA;IACX,mFAAsB,CAAA;IACtB,uGAAgC,CAAA;IAChC,iFAAqB,CAAA;IACrB,4GAAuE,CAAA;IACvE,gIAA2F,CAAA;AAC7F,CAAC,EAVW,gBAAgB,KAAhB,gBAAgB,QAU3B;AAED,MAAM,OAAO,qBAAqB;CAYjC;AAED,MAAM,OAAO,gBAAgB;CAiB5B;AAED,MAAM,CAAN,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC9B,mEAAU,CAAA;IACV,+DAAQ,CAAA;IACR,iEAAS,CAAA;AACX,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BimDataElementPropertySet.js","sourceRoot":"","sources":["../../../src/model/BimDataElementPropertySet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BimDataElementPropertySet.js","sourceRoot":"","sources":["../../../src/model/BimDataElementPropertySet.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,yBAAyB;CAIrC;AAED,MAAM,OAAO,sBAAsB;IAAnC;QAEE,SAAI,GAAW,CAAC,CAAC;IAEnB,CAAC;CAAA;AAED,MAAM,OAAO,2BAA2B;IAAxC;QAKE,gBAAW,GAAkB,EAAE,CAAC;QAGhC,oBAAe,GAAkB,EAAE,CAAC;IAmBtC,CAAC;IAhBC,IAAI,KAAK;QACP,IAAI,IAAI,CAAC,SAAS;YAChB,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,IAAI,IAAI,CAAC,UAAU;YACjB,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU;YACjB,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,IAAI,IAAI,CAAC,aAAa;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,IAAI,IAAI,CAAC,UAAU;YACjB,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,IAAI,IAAI,CAAC,SAAS;YAChB,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,IAAI,IAAI,CAAC,YAAY;YACnB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,UAAU,gBAAgB,CAAC,CAA8B,EAAE,CAA8B;IAC7F,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACV,OAAO,IAAI,CAAC;IAEd,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACV,OAAO,KAAK,CAAC;IAEf,OAAO,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS;QAC/B,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS;QAC1B,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY;QAChC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU;QAC5B,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,aAAa;QAClC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU;QAC5B,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU;QAC5B,aAAa,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,eAAe,CAAC;QACnD,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;AAC/C,CAAC;AAED,SAAS,aAAa,CAAI,CAAM,EAAE,CAAM;IACtC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACV,OAAO,IAAI,CAAC;IAEd,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACV,OAAO,KAAK,CAAC;IAEf,IAAI,CAAC,KAAK,CAAC;QACT,OAAO,IAAI,CAAC;IAEd,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM;QACtB,OAAO,KAAK,CAAC;IAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QACxC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YAChB,OAAO,KAAK,CAAC;SACd;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
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";
|
|
7
|
+
export interface IBimDataPart {
|
|
8
|
+
id: string;
|
|
9
|
+
open(buffer: ArrayBuffer): Promise<void>;
|
|
10
|
+
close(): Promise<void>;
|
|
11
|
+
dispose(): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
export interface IBimDataModelPart extends IBimDataPart {
|
|
14
|
+
update(buffer: ArrayBuffer): Promise<void>;
|
|
15
|
+
getAllTessellations(): Promise<Map<string, BimDataTessellation>>;
|
|
16
|
+
getTessellations(versionFrom: bigint, versionTo: bigint): Promise<Map<string, BimDataTessellation>>;
|
|
17
|
+
getAllElements(): Promise<BimDataElement[]>;
|
|
18
|
+
getElements(versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
|
|
19
|
+
getDiffElements(versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
|
|
20
|
+
getElementTessellations(versionFrom: bigint, versionTo: bigint): Promise<Map<string, BimDataTessellation>>;
|
|
21
|
+
getElementProperties(elementId: string, version: bigint): Promise<BimDataElementPropertySet[]>;
|
|
22
|
+
getAllVersions(): Promise<bigint[]>;
|
|
23
|
+
getLatestVersion(): Promise<bigint>;
|
|
24
|
+
}
|
|
25
|
+
export interface IBimDataCloudPart extends IBimDataPart {
|
|
26
|
+
getCloudPoints(index: number): Promise<Float32Array>;
|
|
27
|
+
getCloudHierarchy(): Promise<BimCloudHierarchyItem[]>;
|
|
28
|
+
getCloudParameters(): Promise<Map<string, string>>;
|
|
29
|
+
getCloudMetadata(): Promise<BimCloudMetadata>;
|
|
30
|
+
}
|
|
31
|
+
declare class BimDataBase {
|
|
32
|
+
readonly id: string;
|
|
33
|
+
protected _remote: comlink.Remote<WasmWorker>;
|
|
34
|
+
protected _isOpen: boolean;
|
|
35
|
+
protected _isDisposed: boolean;
|
|
36
|
+
constructor(id: string, module: comlink.Remote<WasmWorker>);
|
|
37
|
+
open(buffer: ArrayBuffer): Promise<void>;
|
|
38
|
+
close(): Promise<void>;
|
|
39
|
+
dispose(): Promise<void>;
|
|
40
|
+
protected checkIsOpen(): void;
|
|
41
|
+
}
|
|
42
|
+
export declare class BimDataModelPart extends BimDataBase implements IBimDataModelPart {
|
|
43
|
+
open(buffer: ArrayBuffer): Promise<void>;
|
|
44
|
+
update(buffer: ArrayBuffer): Promise<void>;
|
|
45
|
+
getAllTessellations(): Promise<Map<string, BimDataTessellation>>;
|
|
46
|
+
getTessellations(versionFrom: bigint, versionTo: bigint): Promise<Map<string, BimDataTessellation>>;
|
|
47
|
+
getAllElements(): Promise<BimDataElement[]>;
|
|
48
|
+
getElements(versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
|
|
49
|
+
getDiffElements(versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
|
|
50
|
+
getElementProperties(elementId: string, version: bigint): Promise<BimDataElementPropertySet[]>;
|
|
51
|
+
getElementTessellations(versionFrom: bigint, versionTo: bigint): Promise<Map<string, BimDataTessellation>>;
|
|
52
|
+
getAllVersions(): Promise<bigint[]>;
|
|
53
|
+
getLatestVersion(): Promise<bigint>;
|
|
54
|
+
}
|
|
55
|
+
export declare class BimDataCloudPart extends BimDataBase implements IBimDataCloudPart {
|
|
56
|
+
open(buffer: ArrayBuffer): Promise<void>;
|
|
57
|
+
getCloudPoints(index: number): Promise<Float32Array>;
|
|
58
|
+
getCloudHierarchy(): Promise<BimCloudHierarchyItem[]>;
|
|
59
|
+
getCloudParameters(): Promise<Map<string, string>>;
|
|
60
|
+
getCloudMetadata(): Promise<BimCloudMetadata>;
|
|
61
|
+
}
|
|
62
|
+
export {};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
class BimDataBase {
|
|
2
|
+
constructor(id, module) {
|
|
3
|
+
this.id = id;
|
|
4
|
+
this._remote = module;
|
|
5
|
+
this._isOpen = false;
|
|
6
|
+
this._isDisposed = false;
|
|
7
|
+
}
|
|
8
|
+
async open(buffer) {
|
|
9
|
+
if (this._isDisposed)
|
|
10
|
+
return Promise.reject("Data part is disposed");
|
|
11
|
+
await this._remote.open(this.id, buffer);
|
|
12
|
+
this._isOpen = true;
|
|
13
|
+
}
|
|
14
|
+
async close() {
|
|
15
|
+
if (this._isDisposed)
|
|
16
|
+
return Promise.reject("Data part is disposed");
|
|
17
|
+
await this._remote.close(this.id);
|
|
18
|
+
this._isOpen = false;
|
|
19
|
+
}
|
|
20
|
+
async dispose() {
|
|
21
|
+
await this.close();
|
|
22
|
+
this._isDisposed = true;
|
|
23
|
+
}
|
|
24
|
+
checkIsOpen() {
|
|
25
|
+
if (!this._isOpen)
|
|
26
|
+
throw new Error("Data part is not open. Please call method open first.");
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export class BimDataModelPart extends BimDataBase {
|
|
30
|
+
async open(buffer) {
|
|
31
|
+
await super.open(buffer);
|
|
32
|
+
this.checkIsOpen();
|
|
33
|
+
await this._remote.auditModelPart(this.id);
|
|
34
|
+
}
|
|
35
|
+
async update(buffer) {
|
|
36
|
+
this.checkIsOpen();
|
|
37
|
+
return this._remote.updateModelPart(this.id, buffer);
|
|
38
|
+
}
|
|
39
|
+
async getAllTessellations() {
|
|
40
|
+
this.checkIsOpen();
|
|
41
|
+
return this._remote.getAllTessellations(this.id);
|
|
42
|
+
}
|
|
43
|
+
async getTessellations(versionFrom, versionTo) {
|
|
44
|
+
this.checkIsOpen();
|
|
45
|
+
return this._remote.getTessellations(this.id, versionFrom, versionTo);
|
|
46
|
+
}
|
|
47
|
+
async getAllElements() {
|
|
48
|
+
this.checkIsOpen();
|
|
49
|
+
return this._remote.getAllElements(this.id);
|
|
50
|
+
}
|
|
51
|
+
async getElements(versionFrom, versionTo) {
|
|
52
|
+
this.checkIsOpen();
|
|
53
|
+
return this._remote.getElements(this.id, versionFrom, versionTo);
|
|
54
|
+
}
|
|
55
|
+
async getDiffElements(versionFrom, versionTo) {
|
|
56
|
+
this.checkIsOpen();
|
|
57
|
+
return this._remote.getDiffElements(this.id, versionFrom, versionTo);
|
|
58
|
+
}
|
|
59
|
+
async getElementProperties(elementId, version) {
|
|
60
|
+
this.checkIsOpen();
|
|
61
|
+
return this._remote.getElementProperties(this.id, elementId, version);
|
|
62
|
+
}
|
|
63
|
+
async getElementTessellations(versionFrom, versionTo) {
|
|
64
|
+
this.checkIsOpen();
|
|
65
|
+
return this._remote.getElementTessellations(this.id, versionFrom, versionTo);
|
|
66
|
+
}
|
|
67
|
+
async getAllVersions() {
|
|
68
|
+
this.checkIsOpen();
|
|
69
|
+
return this._remote.getAllVersions(this.id);
|
|
70
|
+
}
|
|
71
|
+
async getLatestVersion() {
|
|
72
|
+
this.checkIsOpen();
|
|
73
|
+
return this._remote.getLatestVersion(this.id);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
export class BimDataCloudPart extends BimDataBase {
|
|
77
|
+
async open(buffer) {
|
|
78
|
+
await super.open(buffer);
|
|
79
|
+
this.checkIsOpen();
|
|
80
|
+
await this._remote.cacheCloudPart(this.id);
|
|
81
|
+
}
|
|
82
|
+
async getCloudPoints(index) {
|
|
83
|
+
this.checkIsOpen();
|
|
84
|
+
return this._remote.getCloudPoints(this.id, index);
|
|
85
|
+
}
|
|
86
|
+
async getCloudHierarchy() {
|
|
87
|
+
this.checkIsOpen();
|
|
88
|
+
return this._remote.getCloudHierarchy(this.id);
|
|
89
|
+
}
|
|
90
|
+
async getCloudParameters() {
|
|
91
|
+
this.checkIsOpen();
|
|
92
|
+
return this._remote.getCloudParameters(this.id);
|
|
93
|
+
}
|
|
94
|
+
async getCloudMetadata() {
|
|
95
|
+
this.checkIsOpen();
|
|
96
|
+
return this._remote.getCloudMetadata(this.id);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=BimDataPart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BimDataPart.js","sourceRoot":"","sources":["../../../src/model/BimDataPart.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IBimDataCloudPart, IBimDataModelPart } from './BimDataPart.js';
|
|
2
|
+
export interface IBimDataProvider {
|
|
3
|
+
init(): Promise<void>;
|
|
4
|
+
openModelPart(id: string, buffer: ArrayBuffer): Promise<IBimDataModelPart | undefined>;
|
|
5
|
+
openCloudPart(id: string, buffer: ArrayBuffer): Promise<IBimDataCloudPart | undefined>;
|
|
6
|
+
dispose(): Promise<void>;
|
|
7
|
+
flushMemory(): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
export declare class BimDataProvider implements IBimDataProvider {
|
|
10
|
+
private _workerObj;
|
|
11
|
+
init(): Promise<void>;
|
|
12
|
+
openModelPart(id: string, buffer: ArrayBuffer): Promise<IBimDataModelPart | undefined>;
|
|
13
|
+
openCloudPart(id: string, buffer: ArrayBuffer): Promise<IBimDataCloudPart | undefined>;
|
|
14
|
+
flushMemory(): Promise<void>;
|
|
15
|
+
dispose(): Promise<void>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/* eslint @typescript-eslint/no-inferrable-types:off */
|
|
2
|
+
import * as comlink from "comlink";
|
|
3
|
+
import { BimDataCloudPart, BimDataModelPart } from './BimDataPart.js';
|
|
4
|
+
import { CorsWorker as Worker } from '../wasm/CorsWorker.js';
|
|
5
|
+
export class BimDataProvider {
|
|
6
|
+
async init() {
|
|
7
|
+
const worker = new Worker(new URL("../wasm/wasm.worker.js", import.meta.url), { type: "module" });
|
|
8
|
+
const WasmWorkerType = comlink.wrap(await worker.createWorker());
|
|
9
|
+
this._workerObj = await new WasmWorkerType();
|
|
10
|
+
await this._workerObj.init();
|
|
11
|
+
}
|
|
12
|
+
async openModelPart(id, buffer) {
|
|
13
|
+
const modelPart = new BimDataModelPart(id, this._workerObj);
|
|
14
|
+
await modelPart.open(buffer);
|
|
15
|
+
return modelPart;
|
|
16
|
+
}
|
|
17
|
+
async openCloudPart(id, buffer) {
|
|
18
|
+
const cloudPart = new BimDataCloudPart(id, this._workerObj);
|
|
19
|
+
await cloudPart.open(buffer);
|
|
20
|
+
return cloudPart;
|
|
21
|
+
}
|
|
22
|
+
async flushMemory() {
|
|
23
|
+
await this._workerObj?.flushMemory();
|
|
24
|
+
}
|
|
25
|
+
async dispose() {
|
|
26
|
+
return this._workerObj?.dispose();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=BimDataProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BimDataProvider.js","sourceRoot":"","sources":["../../../src/model/BimDataProvider.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAwC,MAAM,kBAAkB,CAAC;AAE5G,OAAO,EAAE,UAAU,IAAI,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAU7D,MAAM,OAAO,eAAe;IAG1B,KAAK,CAAC,IAAI;QACR,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClG,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAoB,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC,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,aAAa,CAAC,EAAU,EAAE,MAAmB;QACjD,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5D,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU,EAAE,MAAmB;QACjD,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5D,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,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"}
|
package/lib/src/model/Consts.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
export const BimDataBigIntMaxValue = BigInt('3155378975999999999');
|
|
2
2
|
export const BimDataBigIntMinValue = BigInt('0');
|
|
3
|
+
export const S_IFDIR = 16895; //16384; // dir
|
|
4
|
+
export const S_IFREG = 33279; // file
|
|
5
|
+
export const DATA_ROOT_FOLDER = "data";
|
|
3
6
|
//# 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"}
|
|
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"}
|