@ifc-lite/bcf 2.0.1 → 3.0.1
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 +13 -2
- package/dist/ids-camera.d.ts +115 -0
- package/dist/ids-camera.d.ts.map +1 -0
- package/dist/ids-camera.js +266 -0
- package/dist/ids-camera.js.map +1 -0
- package/dist/ids-reporter.d.ts +17 -13
- package/dist/ids-reporter.d.ts.map +1 -1
- package/dist/ids-reporter.js +32 -64
- package/dist/ids-reporter.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/reader-components.d.ts +1 -1
- package/dist/reader-components.d.ts.map +1 -1
- package/dist/reader-components.js +49 -10
- package/dist/reader-components.js.map +1 -1
- package/dist/reader-viewpoint-content.d.ts +6 -0
- package/dist/reader-viewpoint-content.d.ts.map +1 -0
- package/dist/reader-viewpoint-content.js +250 -0
- package/dist/reader-viewpoint-content.js.map +1 -0
- package/dist/reader.d.ts.map +1 -1
- package/dist/reader.js +43 -266
- package/dist/reader.js.map +1 -1
- package/dist/types.d.ts +30 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/viewpoint.d.ts +10 -0
- package/dist/viewpoint.d.ts.map +1 -1
- package/dist/viewpoint.js +12 -0
- package/dist/viewpoint.js.map +1 -1
- package/dist/writer-camera.d.ts.map +1 -1
- package/dist/writer-camera.js +30 -1
- package/dist/writer-camera.js.map +1 -1
- package/dist/writer-markup-elements.d.ts +64 -0
- package/dist/writer-markup-elements.d.ts.map +1 -0
- package/dist/writer-markup-elements.js +179 -0
- package/dist/writer-markup-elements.js.map +1 -0
- package/dist/writer-viewpoint-filename.d.ts +32 -0
- package/dist/writer-viewpoint-filename.d.ts.map +1 -0
- package/dist/writer-viewpoint-filename.js +33 -0
- package/dist/writer-viewpoint-filename.js.map +1 -0
- package/dist/writer.d.ts.map +1 -1
- package/dist/writer.js +119 -244
- package/dist/writer.js.map +1 -1
- package/dist/xml-text.d.ts +62 -5
- package/dist/xml-text.d.ts.map +1 -1
- package/dist/xml-text.js +131 -8
- package/dist/xml-text.js.map +1 -1
- package/dist/xsd-required-string.d.ts +38 -0
- package/dist/xsd-required-string.d.ts.map +1 -0
- package/dist/xsd-required-string.js +158 -0
- package/dist/xsd-required-string.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
/**
|
|
5
|
+
* Parsing of a single BCFV viewpoint file's XML content: the two camera
|
|
6
|
+
* shapes, the shared point/direction primitive, and the geometry overlays
|
|
7
|
+
* (lines, clipping planes, bitmaps). Split out of reader.ts, which still owns
|
|
8
|
+
* the zip-level orchestration (locating .bcfv files, resolving snapshots) that
|
|
9
|
+
* calls into {@link parseViewpointContent}.
|
|
10
|
+
*/
|
|
11
|
+
import { extractElement } from './xml-text.js';
|
|
12
|
+
import { parseFiniteFloat } from './numeric.js';
|
|
13
|
+
import { parseComponents } from './reader-components.js';
|
|
14
|
+
/**
|
|
15
|
+
* Parse viewpoint XML content
|
|
16
|
+
*/
|
|
17
|
+
export function parseViewpointContent(content, versionId) {
|
|
18
|
+
// Extract viewpoint GUID from root element (Guid can be anywhere in the tag)
|
|
19
|
+
const guidMatch = content.match(/<VisualizationInfo[^>]+Guid="([^"]+)"/);
|
|
20
|
+
const guid = guidMatch?.[1] || crypto.randomUUID?.() || `vp-${Date.now()}`;
|
|
21
|
+
// Parse perspective camera
|
|
22
|
+
const perspectiveCamera = parsePerspectiveCamera(content);
|
|
23
|
+
// Parse orthogonal camera
|
|
24
|
+
const orthogonalCamera = parseOrthogonalCamera(content);
|
|
25
|
+
// Parse components
|
|
26
|
+
const components = parseComponents(content, versionId);
|
|
27
|
+
// Parse lines
|
|
28
|
+
const lines = parseLines(content);
|
|
29
|
+
// Parse clipping planes
|
|
30
|
+
const clippingPlanes = parseClippingPlanes(content);
|
|
31
|
+
// Parse bitmaps
|
|
32
|
+
const bitmaps = parseBitmaps(content);
|
|
33
|
+
return {
|
|
34
|
+
guid,
|
|
35
|
+
perspectiveCamera,
|
|
36
|
+
orthogonalCamera,
|
|
37
|
+
components,
|
|
38
|
+
lines: lines.length > 0 ? lines : undefined,
|
|
39
|
+
clippingPlanes: clippingPlanes.length > 0 ? clippingPlanes : undefined,
|
|
40
|
+
bitmaps: bitmaps.length > 0 ? bitmaps : undefined,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Parse perspective camera from viewpoint content
|
|
45
|
+
*/
|
|
46
|
+
function parsePerspectiveCamera(content) {
|
|
47
|
+
const match = content.match(/<PerspectiveCamera>([\s\S]*?)<\/PerspectiveCamera>/);
|
|
48
|
+
if (!match)
|
|
49
|
+
return undefined;
|
|
50
|
+
const cameraContent = match[1];
|
|
51
|
+
const viewPoint = parsePoint(cameraContent, 'CameraViewPoint');
|
|
52
|
+
const direction = parseDirection(cameraContent, 'CameraDirection');
|
|
53
|
+
const upVector = parseDirection(cameraContent, 'CameraUpVector');
|
|
54
|
+
const fieldOfView = extractElement(cameraContent, 'FieldOfView');
|
|
55
|
+
if (!viewPoint || !direction || !upVector || !fieldOfView) {
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
// Same treatment as the coordinates: an unusable scalar is a missing one.
|
|
59
|
+
// `fieldOfView` is converted to radians and handed to the viewer camera,
|
|
60
|
+
// and the parser already drops the whole camera when the element is absent.
|
|
61
|
+
const fov = parseFiniteFloat(fieldOfView);
|
|
62
|
+
if (fov === undefined)
|
|
63
|
+
return undefined;
|
|
64
|
+
return {
|
|
65
|
+
cameraViewPoint: viewPoint,
|
|
66
|
+
cameraDirection: direction,
|
|
67
|
+
cameraUpVector: upVector,
|
|
68
|
+
fieldOfView: fov,
|
|
69
|
+
...parseAspectRatio(cameraContent),
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Parse the optional `<AspectRatio>` of either camera type.
|
|
74
|
+
*
|
|
75
|
+
* BCF 3.0's visinfo.xsd makes `AspectRatio` (a `PositiveDouble`) a REQUIRED
|
|
76
|
+
* child of both camera types; BCF 2.1 has no such element. It is read here for
|
|
77
|
+
* both, since the element's presence — not the archive's declared version — is
|
|
78
|
+
* what says whether there is a value to keep.
|
|
79
|
+
*
|
|
80
|
+
* Reading it matters beyond fidelity: the writer refuses to emit a 3.0 camera
|
|
81
|
+
* without one, so a 3.0 archive from another tool could otherwise be read and
|
|
82
|
+
* then not written back. Returned as a spread-able partial so an absent or
|
|
83
|
+
* unusable value leaves the property off entirely rather than setting it to
|
|
84
|
+
* `undefined`, and a non-positive value is dropped rather than carried into
|
|
85
|
+
* output the schema would reject.
|
|
86
|
+
*/
|
|
87
|
+
function parseAspectRatio(cameraContent) {
|
|
88
|
+
const raw = extractElement(cameraContent, 'AspectRatio');
|
|
89
|
+
if (!raw)
|
|
90
|
+
return {};
|
|
91
|
+
const value = parseFiniteFloat(raw);
|
|
92
|
+
if (value === undefined || !(value > 0))
|
|
93
|
+
return {};
|
|
94
|
+
return { aspectRatio: value };
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Parse orthogonal camera from viewpoint content
|
|
98
|
+
*/
|
|
99
|
+
function parseOrthogonalCamera(content) {
|
|
100
|
+
const match = content.match(/<OrthogonalCamera>([\s\S]*?)<\/OrthogonalCamera>/);
|
|
101
|
+
if (!match)
|
|
102
|
+
return undefined;
|
|
103
|
+
const cameraContent = match[1];
|
|
104
|
+
const viewPoint = parsePoint(cameraContent, 'CameraViewPoint');
|
|
105
|
+
const direction = parseDirection(cameraContent, 'CameraDirection');
|
|
106
|
+
const upVector = parseDirection(cameraContent, 'CameraUpVector');
|
|
107
|
+
const viewToWorldScale = extractElement(cameraContent, 'ViewToWorldScale');
|
|
108
|
+
if (!viewPoint || !direction || !upVector || !viewToWorldScale) {
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
// `viewToWorldScale` becomes the orthographic half-height, which is the
|
|
112
|
+
// value `getOrthoSize()` hands back into a saved viewpoint — so a
|
|
113
|
+
// non-finite one persists past the session if it is allowed in (#2461).
|
|
114
|
+
const scale = parseFiniteFloat(viewToWorldScale);
|
|
115
|
+
if (scale === undefined)
|
|
116
|
+
return undefined;
|
|
117
|
+
return {
|
|
118
|
+
cameraViewPoint: viewPoint,
|
|
119
|
+
cameraDirection: direction,
|
|
120
|
+
cameraUpVector: upVector,
|
|
121
|
+
viewToWorldScale: scale,
|
|
122
|
+
...parseAspectRatio(cameraContent),
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Parse a 3D point from XML
|
|
127
|
+
*/
|
|
128
|
+
function parsePoint(content, elementName) {
|
|
129
|
+
const match = content.match(new RegExp(`<${elementName}>([\\s\\S]*?)<\\/${elementName}>`));
|
|
130
|
+
if (!match)
|
|
131
|
+
return undefined;
|
|
132
|
+
const x = extractElement(match[1], 'X');
|
|
133
|
+
const y = extractElement(match[1], 'Y');
|
|
134
|
+
const z = extractElement(match[1], 'Z');
|
|
135
|
+
if (x === undefined || y === undefined || z === undefined) {
|
|
136
|
+
return undefined;
|
|
137
|
+
}
|
|
138
|
+
// A coordinate that is not a real number is treated as a missing one.
|
|
139
|
+
// `parseFloat` has no out-of-band failure value — `"NaN"` parses to `NaN`
|
|
140
|
+
// and the well-formed literal `"1e999"` parses to `Infinity` — and from here
|
|
141
|
+
// the value reaches `Camera.setPosition`/`setTarget`, which store a pose
|
|
142
|
+
// verbatim by design. Once stored, a single non-finite coordinate spreads
|
|
143
|
+
// across the whole pose on the next gesture. Rejecting at the file boundary
|
|
144
|
+
// means it never gets there, and it costs no new branch: every caller
|
|
145
|
+
// already drops the thing it was parsing when a coordinate is missing
|
|
146
|
+
// (#2466).
|
|
147
|
+
const px = parseFiniteFloat(x);
|
|
148
|
+
const py = parseFiniteFloat(y);
|
|
149
|
+
const pz = parseFiniteFloat(z);
|
|
150
|
+
if (px === undefined || py === undefined || pz === undefined) {
|
|
151
|
+
return undefined;
|
|
152
|
+
}
|
|
153
|
+
return { x: px, y: py, z: pz };
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Parse a 3D direction from XML
|
|
157
|
+
*/
|
|
158
|
+
function parseDirection(content, elementName) {
|
|
159
|
+
return parsePoint(content, elementName);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Parse lines
|
|
163
|
+
*/
|
|
164
|
+
function parseLines(content) {
|
|
165
|
+
const lines = [];
|
|
166
|
+
const linesMatch = content.match(/<Lines>([\s\S]*?)<\/Lines>/);
|
|
167
|
+
if (!linesMatch)
|
|
168
|
+
return lines;
|
|
169
|
+
const lineMatches = linesMatch[1].matchAll(/<Line>([\s\S]*?)<\/Line>/g);
|
|
170
|
+
for (const match of lineMatches) {
|
|
171
|
+
const startPoint = parsePoint(match[1], 'StartPoint');
|
|
172
|
+
const endPoint = parsePoint(match[1], 'EndPoint');
|
|
173
|
+
if (startPoint && endPoint) {
|
|
174
|
+
lines.push({ startPoint, endPoint });
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
return lines;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Parse clipping planes
|
|
181
|
+
*/
|
|
182
|
+
function parseClippingPlanes(content) {
|
|
183
|
+
const planes = [];
|
|
184
|
+
const planesMatch = content.match(/<ClippingPlanes>([\s\S]*?)<\/ClippingPlanes>/);
|
|
185
|
+
if (!planesMatch)
|
|
186
|
+
return planes;
|
|
187
|
+
const planeMatches = planesMatch[1].matchAll(/<ClippingPlane>([\s\S]*?)<\/ClippingPlane>/g);
|
|
188
|
+
for (const match of planeMatches) {
|
|
189
|
+
const location = parsePoint(match[1], 'Location');
|
|
190
|
+
const direction = parseDirection(match[1], 'Direction');
|
|
191
|
+
if (location && direction) {
|
|
192
|
+
planes.push({ location, direction });
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return planes;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Parse bitmaps
|
|
199
|
+
*
|
|
200
|
+
* The two BCF versions diverge in shape (see writer.ts's writeBitmap/
|
|
201
|
+
* writeViewpointFiles for the write side of this):
|
|
202
|
+
* - BCF 3.0: entries sit inside a `<Bitmaps>` wrapper, and the per-entry
|
|
203
|
+
* format element is named `<Format>`. No tag inside an entry shares the
|
|
204
|
+
* entry's own name, so a plain non-greedy `<Bitmap>...</Bitmap>` match
|
|
205
|
+
* is unambiguous.
|
|
206
|
+
* - BCF 2.1: entries sit DIRECTLY under `<VisualizationInfo>` (no wrapper),
|
|
207
|
+
* and the format element is confusingly also named `<Bitmap>`, nested one
|
|
208
|
+
* level inside the entry (`<Bitmap><Bitmap>PNG</Bitmap><Reference>...`).
|
|
209
|
+
* A naive non-greedy `<Bitmap>...</Bitmap>` match on that shape terminates
|
|
210
|
+
* at the FIRST `</Bitmap>` it sees -- the inner format tag's closing tag,
|
|
211
|
+
* not the entry's -- and silently drops the rest of the entry. It must be
|
|
212
|
+
* matched with an explicit two-level pattern instead.
|
|
213
|
+
*/
|
|
214
|
+
function parseBitmaps(content) {
|
|
215
|
+
const bitmaps = [];
|
|
216
|
+
const bitmapsMatch = content.match(/<Bitmaps>([\s\S]*?)<\/Bitmaps>/);
|
|
217
|
+
const pushBitmap = (format, body) => {
|
|
218
|
+
const reference = extractElement(body, 'Reference');
|
|
219
|
+
const location = parsePoint(body, 'Location');
|
|
220
|
+
const normal = parseDirection(body, 'Normal');
|
|
221
|
+
const up = parseDirection(body, 'Up');
|
|
222
|
+
const height = extractElement(body, 'Height');
|
|
223
|
+
const parsedHeight = height === undefined ? undefined : parseFiniteFloat(height);
|
|
224
|
+
if (format && reference && location && normal && up && parsedHeight !== undefined) {
|
|
225
|
+
bitmaps.push({
|
|
226
|
+
format: format.toUpperCase() === 'JPG' ? 'JPG' : 'PNG',
|
|
227
|
+
reference,
|
|
228
|
+
location,
|
|
229
|
+
normal,
|
|
230
|
+
up,
|
|
231
|
+
height: parsedHeight,
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
if (bitmapsMatch) {
|
|
236
|
+
// BCF 3.0 shape: <Bitmaps><Bitmap><Format>...</Format>...</Bitmap>...</Bitmaps>
|
|
237
|
+
for (const match of bitmapsMatch[1].matchAll(/<Bitmap>([\s\S]*?)<\/Bitmap>/g)) {
|
|
238
|
+
pushBitmap(extractElement(match[1], 'Format'), match[1]);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
// BCF 2.1 shape: <Bitmap><Bitmap>PNG</Bitmap>...</Bitmap>, unwrapped,
|
|
243
|
+
// directly under VisualizationInfo.
|
|
244
|
+
for (const match of content.matchAll(/<Bitmap>\s*<Bitmap>([\s\S]*?)<\/Bitmap>([\s\S]*?)<\/Bitmap>/g)) {
|
|
245
|
+
pushBitmap(match[1], match[2]);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
return bitmaps;
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=reader-viewpoint-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reader-viewpoint-content.js","sourceRoot":"","sources":["../src/reader-viewpoint-content.ts"],"names":[],"mappings":"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"}
|
package/dist/reader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,UAAU,EASX,MAAM,YAAY,CAAC;AAyIpB;;;;;;GAMG;AACH,wBAAsB,OAAO,CAC3B,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,WAAW,GAAG,UAAU,EAC5C,MAAM,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,GACpF,OAAO,CAAC,UAAU,CAAC,CA4CrB"}
|