@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
package/dist/viewpoint.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewpoint.d.ts","sourceRoot":"","sources":["../src/viewpoint.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAGjB,MAAM,YAAY,CAAC;AAQpB,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,iDAAiD;IACjD,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,uBAAuB;IACvB,EAAE,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"viewpoint.d.ts","sourceRoot":"","sources":["../src/viewpoint.ts"],"names":[],"mappings":"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"}
|
package/dist/viewpoint.js
CHANGED
|
@@ -59,6 +59,7 @@ export function cameraToPerspective(camera) {
|
|
|
59
59
|
cameraDirection: direction,
|
|
60
60
|
cameraUpVector: upVector,
|
|
61
61
|
fieldOfView: Math.max(1, Math.min(179, fieldOfView)), // Clamp to valid range
|
|
62
|
+
...(camera.aspectRatio === undefined ? {} : { aspectRatio: camera.aspectRatio }),
|
|
62
63
|
};
|
|
63
64
|
}
|
|
64
65
|
/**
|
|
@@ -89,6 +90,7 @@ export function cameraToOrthogonal(camera, viewToWorldScale) {
|
|
|
89
90
|
cameraDirection: direction,
|
|
90
91
|
cameraUpVector: upVector,
|
|
91
92
|
viewToWorldScale,
|
|
93
|
+
...(camera.aspectRatio === undefined ? {} : { aspectRatio: camera.aspectRatio }),
|
|
92
94
|
};
|
|
93
95
|
}
|
|
94
96
|
/**
|
|
@@ -132,6 +134,15 @@ export function perspectiveToCamera(camera, targetDistance = 10) {
|
|
|
132
134
|
up: viewerUp,
|
|
133
135
|
fov,
|
|
134
136
|
isOrthographic: false,
|
|
137
|
+
// Carried back so the conversion pair is lossless in both directions.
|
|
138
|
+
// NOT for the viewer's apply path: `useBCF`'s `applyCameraState` never
|
|
139
|
+
// pushes an aspect ratio into the renderer (the viewport owns that) and
|
|
140
|
+
// `getCameraState` reads a fresh one, so nothing there depends on this.
|
|
141
|
+
// It matters for a caller that reads a viewpoint, edits the camera state,
|
|
142
|
+
// and writes it back -- `perspectiveToCamera` -> `cameraToPerspective`
|
|
143
|
+
// would otherwise silently drop the field and make the result unwritable
|
|
144
|
+
// as BCF 3.0. The tests pin the round trip, not a viewer scenario.
|
|
145
|
+
...(camera.aspectRatio === undefined ? {} : { aspectRatio: camera.aspectRatio }),
|
|
135
146
|
};
|
|
136
147
|
}
|
|
137
148
|
/**
|
|
@@ -159,6 +170,7 @@ export function orthogonalToCamera(camera, targetDistance = 10) {
|
|
|
159
170
|
fov: Math.PI / 4, // Default FOV for ortho (not used)
|
|
160
171
|
isOrthographic: true,
|
|
161
172
|
orthoScale: camera.viewToWorldScale,
|
|
173
|
+
...(camera.aspectRatio === undefined ? {} : { aspectRatio: camera.aspectRatio }),
|
|
162
174
|
};
|
|
163
175
|
}
|
|
164
176
|
// ============================================================================
|
package/dist/viewpoint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewpoint.js","sourceRoot":"","sources":["../src/viewpoint.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"viewpoint.js","sourceRoot":"","sources":["../src/viewpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer-camera.d.ts","sourceRoot":"","sources":["../src/writer-camera.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAG1F;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAUzF;
|
|
1
|
+
{"version":3,"file":"writer-camera.d.ts","sourceRoot":"","sources":["../src/writer-camera.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAG1F;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAUzF;AA8DD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,KAAK,GAAG,KAAK,EACtB,aAAa,EAAE,MAAM,GACpB,MAAM,CAUR;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,KAAK,GAAG,KAAK,EACtB,aAAa,EAAE,MAAM,GACpB,MAAM,CAMR"}
|
package/dist/writer-camera.js
CHANGED
|
@@ -65,14 +65,43 @@ function requireAspectRatioElement(aspectRatio, viewpointGuid) {
|
|
|
65
65
|
}
|
|
66
66
|
return `\n <AspectRatio>${xsdDouble(aspectRatio, 'Camera/AspectRatio', where)}</AspectRatio>`;
|
|
67
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Require a FINITE FieldOfView within BCF 3.0's `(0, 180)` exclusive facet and
|
|
70
|
+
* return the text `xsdDouble` will accept for it.
|
|
71
|
+
*
|
|
72
|
+
* v3_0/visinfo.xsd's `FieldOfView` simpleType is `xs:double` with
|
|
73
|
+
* `minExclusive value="0"` and `maxExclusive value="180"`. `xsdDouble` alone
|
|
74
|
+
* only rejects non-finite values (Infinity/-Infinity/NaN); it says nothing
|
|
75
|
+
* about a finite value that is merely out of range, so `0`, a negative number,
|
|
76
|
+
* or `180` and above walked straight through it and were emitted as-is --
|
|
77
|
+
* schema-invalid the same way an unset `AspectRatio` was before
|
|
78
|
+
* {@link requireAspectRatioElement} started refusing it. 2.1's own
|
|
79
|
+
* `FieldOfView` facet (`[45, 60]` inclusive) is deliberately NOT enforced
|
|
80
|
+
* here: its own schema annotation says "This limitation will be dropped in
|
|
81
|
+
* the next release and viewers should expect values outside this range in
|
|
82
|
+
* current implementations", so treating it as a hard constraint would reject
|
|
83
|
+
* legitimate 2.1 input the schema authors themselves disclaim.
|
|
84
|
+
*/
|
|
85
|
+
function requireFieldOfViewElement(fieldOfView, viewpointGuid) {
|
|
86
|
+
const where = `viewpoint "${viewpointGuid}"`;
|
|
87
|
+
if (!(fieldOfView > 0 && fieldOfView < 180)) {
|
|
88
|
+
throw new Error(`BCF 3.0 requires PerspectiveCamera/FieldOfView in (0, 180) exclusive (${where} has ` +
|
|
89
|
+
`${fieldOfView}). visinfo.xsd's FieldOfView simpleType declares minExclusive="0" and ` +
|
|
90
|
+
`maxExclusive="180"; set a value inside that range before writing a 3.0 file.`);
|
|
91
|
+
}
|
|
92
|
+
return xsdDouble(fieldOfView, 'PerspectiveCamera/FieldOfView', where);
|
|
93
|
+
}
|
|
68
94
|
/**
|
|
69
95
|
* Write perspective camera XML
|
|
70
96
|
*/
|
|
71
97
|
export function writePerspectiveCamera(camera, version, viewpointGuid) {
|
|
72
98
|
const aspectRatioElement = version === '3.0' ? requireAspectRatioElement(camera.aspectRatio, viewpointGuid) : '';
|
|
73
99
|
const where = `viewpoint "${viewpointGuid}"`;
|
|
100
|
+
const fieldOfView = version === '3.0'
|
|
101
|
+
? requireFieldOfViewElement(camera.fieldOfView, viewpointGuid)
|
|
102
|
+
: xsdDouble(camera.fieldOfView, 'PerspectiveCamera/FieldOfView', where);
|
|
74
103
|
return `\n <PerspectiveCamera>${cameraVectors(camera, where)}
|
|
75
|
-
<FieldOfView>${
|
|
104
|
+
<FieldOfView>${fieldOfView}</FieldOfView>${aspectRatioElement}
|
|
76
105
|
</PerspectiveCamera>`;
|
|
77
106
|
}
|
|
78
107
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer-camera.js","sourceRoot":"","sources":["../src/writer-camera.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAe/D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAuB,EAAE,OAAsB;IACjF,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO;IAC9B,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO;IACxB,MAAM,IAAI,KAAK,CACb,iEAAiE,SAAS,CAAC,IAAI,QAAQ;QACrF,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,kDAAkD,KAAK;QACjF,kFAAkF;QAClF,4CAA4C,CAC/C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,yBAAyB,CAAC,WAA+B,EAAE,aAAqB;IACvF,MAAM,KAAK,GAAG,cAAc,aAAa,GAAG,CAAC;IAC7C,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,mDAAmD,KAAK,OAAO;YAC7D,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,KAAK;YACxD,yDAAyD,CAC5D,CAAC;IACJ,CAAC;IACD,OAAO,sBAAsB,SAAS,CAAC,WAAW,EAAE,oBAAoB,EAAE,KAAK,CAAC,gBAAgB,CAAC;AACnG,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAA4B,EAC5B,OAAsB,EACtB,aAAqB;IAErB,MAAM,kBAAkB,GAAG,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,yBAAyB,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjH,MAAM,KAAK,GAAG,cAAc,aAAa,GAAG,CAAC;IAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"writer-camera.js","sourceRoot":"","sources":["../src/writer-camera.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Small, self-contained XML-fragment writers for markup elements that sit
|
|
3
|
+
* outside the `<Components>` tree: viewpoint geometry overlays (lines,
|
|
4
|
+
* clipping planes, bitmaps) and the per-topic markup elements (source-file
|
|
5
|
+
* header, BIM snippet, document reference). Split out of writer.ts, which
|
|
6
|
+
* still owns the top-level document assembly (writeMarkupFile,
|
|
7
|
+
* writeViewpointFiles) that calls into these.
|
|
8
|
+
*/
|
|
9
|
+
import type { BCFLine, BCFClippingPlane, BCFBitmap, BCFHeaderFile, BCFBimSnippet, BCFDocumentReference } from './types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Write line XML
|
|
12
|
+
*/
|
|
13
|
+
export declare function writeLine(line: BCFLine, where: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* Write clipping plane XML
|
|
16
|
+
*/
|
|
17
|
+
export declare function writeClippingPlane(plane: BCFClippingPlane, where: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Write bitmap XML
|
|
20
|
+
*
|
|
21
|
+
* Two more shape differences beyond the `<Bitmaps>` wrapper (see the call
|
|
22
|
+
* site in writer.ts's writeViewpointFiles), both against v2_1/visinfo.xsd vs
|
|
23
|
+
* v3_0/visinfo.xsd:
|
|
24
|
+
* - The format element's name changes: 2.1 nests it as `<Bitmap>` (same tag
|
|
25
|
+
* name as the outer per-entry element -- `<Bitmap><Bitmap>PNG</Bitmap>...`);
|
|
26
|
+
* 3.0 renamed it `<Format>`.
|
|
27
|
+
* - The `BitmapFormat` enum's case changes: 2.1 is uppercase (`PNG`, `JPG`);
|
|
28
|
+
* 3.0's simpleType only accepts lowercase (`png`, `jpg`) -- validation
|
|
29
|
+
* fails with "The value 'PNG' is not an element of the set {'png','jpg'}"
|
|
30
|
+
* otherwise. `BCFBitmap.format` stays typed `'PNG' | 'JPG'`; we only
|
|
31
|
+
* lowercase it on the wire for 3.0.
|
|
32
|
+
*/
|
|
33
|
+
export declare function writeBitmap(bitmap: BCFBitmap, version: '2.1' | '3.0', where: string): string;
|
|
34
|
+
/**
|
|
35
|
+
* Write the markup `<Header>` block (source IFC files).
|
|
36
|
+
*
|
|
37
|
+
* The container differs by BCF version: 2.1 nests `<File>` directly under
|
|
38
|
+
* `<Header>`, while 3.0 wraps them in a `<Files>` element. The `<File>` shape
|
|
39
|
+
* (IfcProject / IfcSpatialStructureElement / isExternal attributes; Filename,
|
|
40
|
+
* Date, Reference children) is identical across both.
|
|
41
|
+
*/
|
|
42
|
+
export declare function writeHeader(files: BCFHeaderFile[], version: '2.1' | '3.0'): string;
|
|
43
|
+
/**
|
|
44
|
+
* Write BimSnippet XML
|
|
45
|
+
*
|
|
46
|
+
* BCF 2.1 spells the attribute `isExternal`; 3.0 renamed it `IsExternal`
|
|
47
|
+
* (buildingSMART/BCF-XML markup.xsd, BimSnippet's IsExternal attribute) —
|
|
48
|
+
* same rename as the Header `<File>` attribute in {@link writeHeaderFile}.
|
|
49
|
+
*/
|
|
50
|
+
export declare function writeBimSnippet(snippet: BCFBimSnippet, version: '2.1' | '3.0'): string;
|
|
51
|
+
/**
|
|
52
|
+
* Write DocumentReference XML
|
|
53
|
+
*
|
|
54
|
+
* BCF 2.1 and 3.0 diverge structurally here, not just by attribute casing:
|
|
55
|
+
* 2.1 has `<ReferencedDocument>` (a string, plus an `isExternal` flag on
|
|
56
|
+
* whether it's a URL); 3.0 replaced both with `<DocumentGuid>` (a reference
|
|
57
|
+
* into project.bcfp's Documents) or `<Url>`, and dropped `isExternal`
|
|
58
|
+
* entirely (buildingSMART/BCF-XML markup.xsd, release_3_0 DocumentReference).
|
|
59
|
+
* `documentGuid`/`url` are preferred when present; `referencedDocument` is
|
|
60
|
+
* the 2.1-shaped fallback so 2.1-authored data written as 3.0 still emits
|
|
61
|
+
* something.
|
|
62
|
+
*/
|
|
63
|
+
export declare function writeDocumentReference(docRef: BCFDocumentReference, version: '2.1' | '3.0', topicGuid: string, index: number): string;
|
|
64
|
+
//# sourceMappingURL=writer-markup-elements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writer-markup-elements.d.ts","sourceRoot":"","sources":["../src/writer-markup-elements.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,aAAa,EACb,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAMpB;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAG9D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGjF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ5F;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAQlF;AAiCD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAStF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,KAAK,GAAG,KAAK,EACtB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,MAAM,CA4DR"}
|
|
@@ -0,0 +1,179 @@
|
|
|
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
|
+
import { xsdDouble, xsdPointElement } from './numeric.js';
|
|
5
|
+
import { escapeXml } from './xml-text.js';
|
|
6
|
+
import { xsdOptionalDateTime } from './xsd-required-string.js';
|
|
7
|
+
import { uuidFromSeed } from '@ifc-lite/encoding';
|
|
8
|
+
/**
|
|
9
|
+
* Write line XML
|
|
10
|
+
*/
|
|
11
|
+
export function writeLine(line, where) {
|
|
12
|
+
return `\n <Line>${xsdPointElement('StartPoint', line.startPoint, ' ', where)}${xsdPointElement('EndPoint', line.endPoint, ' ', where)}
|
|
13
|
+
</Line>`;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Write clipping plane XML
|
|
17
|
+
*/
|
|
18
|
+
export function writeClippingPlane(plane, where) {
|
|
19
|
+
return `\n <ClippingPlane>${xsdPointElement('Location', plane.location, ' ', where)}${xsdPointElement('Direction', plane.direction, ' ', where)}
|
|
20
|
+
</ClippingPlane>`;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Write bitmap XML
|
|
24
|
+
*
|
|
25
|
+
* Two more shape differences beyond the `<Bitmaps>` wrapper (see the call
|
|
26
|
+
* site in writer.ts's writeViewpointFiles), both against v2_1/visinfo.xsd vs
|
|
27
|
+
* v3_0/visinfo.xsd:
|
|
28
|
+
* - The format element's name changes: 2.1 nests it as `<Bitmap>` (same tag
|
|
29
|
+
* name as the outer per-entry element -- `<Bitmap><Bitmap>PNG</Bitmap>...`);
|
|
30
|
+
* 3.0 renamed it `<Format>`.
|
|
31
|
+
* - The `BitmapFormat` enum's case changes: 2.1 is uppercase (`PNG`, `JPG`);
|
|
32
|
+
* 3.0's simpleType only accepts lowercase (`png`, `jpg`) -- validation
|
|
33
|
+
* fails with "The value 'PNG' is not an element of the set {'png','jpg'}"
|
|
34
|
+
* otherwise. `BCFBitmap.format` stays typed `'PNG' | 'JPG'`; we only
|
|
35
|
+
* lowercase it on the wire for 3.0.
|
|
36
|
+
*/
|
|
37
|
+
export function writeBitmap(bitmap, version, where) {
|
|
38
|
+
const formatTag = version === '3.0' ? 'Format' : 'Bitmap';
|
|
39
|
+
const formatValue = version === '3.0' ? bitmap.format.toLowerCase() : bitmap.format;
|
|
40
|
+
return `\n <Bitmap>
|
|
41
|
+
<${formatTag}>${formatValue}</${formatTag}>
|
|
42
|
+
<Reference>${escapeXml(bitmap.reference)}</Reference>${xsdPointElement('Location', bitmap.location, ' ', where)}${xsdPointElement('Normal', bitmap.normal, ' ', where)}${xsdPointElement('Up', bitmap.up, ' ', where)}
|
|
43
|
+
<Height>${xsdDouble(bitmap.height, 'Bitmap/Height', where)}</Height>
|
|
44
|
+
</Bitmap>`;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Write the markup `<Header>` block (source IFC files).
|
|
48
|
+
*
|
|
49
|
+
* The container differs by BCF version: 2.1 nests `<File>` directly under
|
|
50
|
+
* `<Header>`, while 3.0 wraps them in a `<Files>` element. The `<File>` shape
|
|
51
|
+
* (IfcProject / IfcSpatialStructureElement / isExternal attributes; Filename,
|
|
52
|
+
* Date, Reference children) is identical across both.
|
|
53
|
+
*/
|
|
54
|
+
export function writeHeader(files, version) {
|
|
55
|
+
const fileIndent = version === '3.0' ? ' ' : ' ';
|
|
56
|
+
const fileXml = files.map((f) => writeHeaderFile(f, fileIndent, version)).join('');
|
|
57
|
+
if (version === '3.0') {
|
|
58
|
+
return `\n <Header>\n <Files>${fileXml}\n </Files>\n </Header>`;
|
|
59
|
+
}
|
|
60
|
+
return `\n <Header>${fileXml}\n </Header>`;
|
|
61
|
+
}
|
|
62
|
+
/** Write a single `<File>` entry inside the markup `<Header>`. */
|
|
63
|
+
function writeHeaderFile(file, indent, version) {
|
|
64
|
+
// isExternal defaults to true (an unresolved reference is treated as external).
|
|
65
|
+
const isExternal = file.isExternal ?? true;
|
|
66
|
+
// BCF 2.1 spells the attribute `isExternal`; 3.0 renamed it `IsExternal`.
|
|
67
|
+
const isExternalAttr = version === '3.0' ? 'IsExternal' : 'isExternal';
|
|
68
|
+
let attrs = '';
|
|
69
|
+
if (file.ifcProject) {
|
|
70
|
+
attrs += ` IfcProject="${escapeXml(file.ifcProject)}"`;
|
|
71
|
+
}
|
|
72
|
+
if (file.ifcSpatialStructureElement) {
|
|
73
|
+
attrs += ` IfcSpatialStructureElement="${escapeXml(file.ifcSpatialStructureElement)}"`;
|
|
74
|
+
}
|
|
75
|
+
attrs += ` ${isExternalAttr}="${isExternal}"`;
|
|
76
|
+
let content = `\n${indent}<File${attrs}>`;
|
|
77
|
+
if (file.filename) {
|
|
78
|
+
content += `\n${indent} <Filename>${escapeXml(file.filename)}</Filename>`;
|
|
79
|
+
}
|
|
80
|
+
const fileDate = xsdOptionalDateTime(file.date);
|
|
81
|
+
if (fileDate) {
|
|
82
|
+
content += `\n${indent} <Date>${fileDate}</Date>`;
|
|
83
|
+
}
|
|
84
|
+
if (file.reference) {
|
|
85
|
+
content += `\n${indent} <Reference>${escapeXml(file.reference)}</Reference>`;
|
|
86
|
+
}
|
|
87
|
+
content += `\n${indent}</File>`;
|
|
88
|
+
return content;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Write BimSnippet XML
|
|
92
|
+
*
|
|
93
|
+
* BCF 2.1 spells the attribute `isExternal`; 3.0 renamed it `IsExternal`
|
|
94
|
+
* (buildingSMART/BCF-XML markup.xsd, BimSnippet's IsExternal attribute) —
|
|
95
|
+
* same rename as the Header `<File>` attribute in {@link writeHeaderFile}.
|
|
96
|
+
*/
|
|
97
|
+
export function writeBimSnippet(snippet, version) {
|
|
98
|
+
// Caller guarantees referenceSchema is present (see writer.ts writeMarkupFile);
|
|
99
|
+
// both Reference and ReferenceSchema are required by the BCF schema.
|
|
100
|
+
const isExternalAttr = version === '3.0' ? 'IsExternal' : 'isExternal';
|
|
101
|
+
let content = `\n <BimSnippet SnippetType="${escapeXml(snippet.snippetType)}" ${isExternalAttr}="${snippet.isExternal}">`;
|
|
102
|
+
content += `\n <Reference>${escapeXml(snippet.reference)}</Reference>`;
|
|
103
|
+
content += `\n <ReferenceSchema>${escapeXml(snippet.referenceSchema ?? '')}</ReferenceSchema>`;
|
|
104
|
+
content += `\n </BimSnippet>`;
|
|
105
|
+
return content;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Write DocumentReference XML
|
|
109
|
+
*
|
|
110
|
+
* BCF 2.1 and 3.0 diverge structurally here, not just by attribute casing:
|
|
111
|
+
* 2.1 has `<ReferencedDocument>` (a string, plus an `isExternal` flag on
|
|
112
|
+
* whether it's a URL); 3.0 replaced both with `<DocumentGuid>` (a reference
|
|
113
|
+
* into project.bcfp's Documents) or `<Url>`, and dropped `isExternal`
|
|
114
|
+
* entirely (buildingSMART/BCF-XML markup.xsd, release_3_0 DocumentReference).
|
|
115
|
+
* `documentGuid`/`url` are preferred when present; `referencedDocument` is
|
|
116
|
+
* the 2.1-shaped fallback so 2.1-authored data written as 3.0 still emits
|
|
117
|
+
* something.
|
|
118
|
+
*/
|
|
119
|
+
export function writeDocumentReference(docRef, version, topicGuid, index) {
|
|
120
|
+
// 2.1's markup.xsd declares `Guid` with no `use`, so it is optional there;
|
|
121
|
+
// 3.0's `DocumentReferenceAttributes` declares it `use="required"`, so
|
|
122
|
+
// omitting it made every 3.0 topic carrying a guid-less document reference
|
|
123
|
+
// write an invalid `markup.bcf` -- and markup.bcf IS the issue, so a viewer
|
|
124
|
+
// that rejects it drops the topic whole (#3612). Mint one rather than
|
|
125
|
+
// refuse: this guid names only itself (nothing in the archive refers to a
|
|
126
|
+
// DocumentReference the way `RelatedTopic` refers to a topic), so a
|
|
127
|
+
// generated value loses nothing. Refusal is reserved for values that assert
|
|
128
|
+
// something only the caller knows -- `AspectRatio`, `TopicType` -- and would
|
|
129
|
+
// fail the whole export over a field 2.1 says is optional. 2.1 keeps the
|
|
130
|
+
// attribute absent: fabricating an identifier there buys no schema
|
|
131
|
+
// conformance at all, and would put an identifier the caller never chose
|
|
132
|
+
// into the file a user downloads.
|
|
133
|
+
//
|
|
134
|
+
// DERIVED, not random. `generateUuid()` here would make two exports of one
|
|
135
|
+
// unchanged project differ in bytes -- and differ again on every subsequent
|
|
136
|
+
// write, because nothing kept the value. `uuidFromSeed` is the same
|
|
137
|
+
// generator `@ifc-lite/clash` anchors its topic guids with, so the guid is a
|
|
138
|
+
// pure function of the topic, the document pointed at, and the position
|
|
139
|
+
// within the topic; all three are in the seed because two references under
|
|
140
|
+
// one topic can name the same document, and one document can appear under
|
|
141
|
+
// two topics. `docKey` names the document in the SAME precedence the 3.0
|
|
142
|
+
// body below uses -- seeding from the url alone left every `documentGuid`
|
|
143
|
+
// reference on the empty string, so its guid ignored the document entirely
|
|
144
|
+
// and two references naming different documents could collide. The result
|
|
145
|
+
// is written back onto `docRef` so the in-memory project agrees with the
|
|
146
|
+
// file rather than reporting no guid at all.
|
|
147
|
+
const docKey = docRef.documentGuid ?? docRef.url ?? docRef.referencedDocument ?? '';
|
|
148
|
+
const guid = version === '3.0'
|
|
149
|
+
? docRef.guid || uuidFromSeed(`${topicGuid}|${docKey}|${index}`)
|
|
150
|
+
: docRef.guid;
|
|
151
|
+
if (version === '3.0' && !docRef.guid)
|
|
152
|
+
docRef.guid = guid;
|
|
153
|
+
const guidAttr = guid ? ` Guid="${escapeXml(guid)}"` : '';
|
|
154
|
+
if (version === '3.0') {
|
|
155
|
+
let content = `\n <DocumentReference${guidAttr}>`;
|
|
156
|
+
if (docRef.documentGuid) {
|
|
157
|
+
content += `\n <DocumentGuid>${escapeXml(docRef.documentGuid)}</DocumentGuid>`;
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
const url = docRef.url ?? docRef.referencedDocument;
|
|
161
|
+
if (url) {
|
|
162
|
+
content += `\n <Url>${escapeXml(url)}</Url>`;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (docRef.description) {
|
|
166
|
+
content += `\n <Description>${escapeXml(docRef.description)}</Description>`;
|
|
167
|
+
}
|
|
168
|
+
content += `\n </DocumentReference>`;
|
|
169
|
+
return content;
|
|
170
|
+
}
|
|
171
|
+
let content = `\n <DocumentReference${guidAttr} isExternal="${docRef.isExternal ?? false}">`;
|
|
172
|
+
content += `\n <ReferencedDocument>${escapeXml(docRef.referencedDocument ?? docRef.url ?? '')}</ReferencedDocument>`;
|
|
173
|
+
if (docRef.description) {
|
|
174
|
+
content += `\n <Description>${escapeXml(docRef.description)}</Description>`;
|
|
175
|
+
}
|
|
176
|
+
content += `\n </DocumentReference>`;
|
|
177
|
+
return content;
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=writer-markup-elements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writer-markup-elements.js","sourceRoot":"","sources":["../src/writer-markup-elements.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/** A viewpoint's resolved archive file-name components. */
|
|
2
|
+
export interface ViewpointFileName {
|
|
3
|
+
/** Full `.bcfv` file name, e.g. `viewpoint.bcfv` or `<guid>_viewpoint.bcfv`. */
|
|
4
|
+
viewpointFile: string;
|
|
5
|
+
/** Snapshot base name WITHOUT extension (extension is per-viewpoint format-detected by `snapshotExt` in writer.ts), e.g. `snapshot` or `<guid>_snapshot`. */
|
|
6
|
+
snapshotBase: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Name a viewpoint's archive files. A topic's FIRST viewpoint gets the
|
|
10
|
+
* conventional names several BCF consumers (e.g. BIMcollab) expect and
|
|
11
|
+
* assume rather than reading from markup.bcf -- `viewpoint.bcfv` /
|
|
12
|
+
* `snapshot.<ext>`. Every ADDITIONAL viewpoint in the same topic keeps a
|
|
13
|
+
* GUID-qualified name, as a SUFFIX (matching BIMcollab's own convention for
|
|
14
|
+
* a topic's non-primary viewpoints) rather than the previous
|
|
15
|
+
* `Viewpoint_<guid>.bcfv` prefix form, so multiple viewpoints in one topic
|
|
16
|
+
* never collide on the plain name (#3612).
|
|
17
|
+
*
|
|
18
|
+
* Takes the already-sanitized per-topic base name (see
|
|
19
|
+
* `sanitizeZipComponent`'s zip-slip guard in writer.ts's `writeTopicFolder`),
|
|
20
|
+
* not the raw GUID, so a hostile GUID can't escape the topic folder here
|
|
21
|
+
* either. Names are scoped per topic folder (`writeTopicFolder`'s
|
|
22
|
+
* `folderName`), so `viewpoint.bcfv` reused across two different topics'
|
|
23
|
+
* first viewpoints does not collide -- they land in different zip
|
|
24
|
+
* directories.
|
|
25
|
+
*
|
|
26
|
+
* `writeTopicFolder` calls this ONCE per viewpoint and threads the result
|
|
27
|
+
* through both the markup `<Viewpoint>`/`<Snapshot>` reference writer
|
|
28
|
+
* (`viewpointXml` in writer.ts) and the archive entry writer
|
|
29
|
+
* (`writeViewpointFiles`), so the two can never disagree on a name.
|
|
30
|
+
*/
|
|
31
|
+
export declare function viewpointFileName(baseName: string, index: number): ViewpointFileName;
|
|
32
|
+
//# sourceMappingURL=writer-viewpoint-filename.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writer-viewpoint-filename.d.ts","sourceRoot":"","sources":["../src/writer-viewpoint-filename.ts"],"names":[],"mappings":"AAIA,2DAA2D;AAC3D,MAAM,WAAW,iBAAiB;IAChC,gFAAgF;IAChF,aAAa,EAAE,MAAM,CAAC;IACtB,6JAA6J;IAC7J,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAKpF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
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
|
+
* Name a viewpoint's archive files. A topic's FIRST viewpoint gets the
|
|
6
|
+
* conventional names several BCF consumers (e.g. BIMcollab) expect and
|
|
7
|
+
* assume rather than reading from markup.bcf -- `viewpoint.bcfv` /
|
|
8
|
+
* `snapshot.<ext>`. Every ADDITIONAL viewpoint in the same topic keeps a
|
|
9
|
+
* GUID-qualified name, as a SUFFIX (matching BIMcollab's own convention for
|
|
10
|
+
* a topic's non-primary viewpoints) rather than the previous
|
|
11
|
+
* `Viewpoint_<guid>.bcfv` prefix form, so multiple viewpoints in one topic
|
|
12
|
+
* never collide on the plain name (#3612).
|
|
13
|
+
*
|
|
14
|
+
* Takes the already-sanitized per-topic base name (see
|
|
15
|
+
* `sanitizeZipComponent`'s zip-slip guard in writer.ts's `writeTopicFolder`),
|
|
16
|
+
* not the raw GUID, so a hostile GUID can't escape the topic folder here
|
|
17
|
+
* either. Names are scoped per topic folder (`writeTopicFolder`'s
|
|
18
|
+
* `folderName`), so `viewpoint.bcfv` reused across two different topics'
|
|
19
|
+
* first viewpoints does not collide -- they land in different zip
|
|
20
|
+
* directories.
|
|
21
|
+
*
|
|
22
|
+
* `writeTopicFolder` calls this ONCE per viewpoint and threads the result
|
|
23
|
+
* through both the markup `<Viewpoint>`/`<Snapshot>` reference writer
|
|
24
|
+
* (`viewpointXml` in writer.ts) and the archive entry writer
|
|
25
|
+
* (`writeViewpointFiles`), so the two can never disagree on a name.
|
|
26
|
+
*/
|
|
27
|
+
export function viewpointFileName(baseName, index) {
|
|
28
|
+
if (index === 0) {
|
|
29
|
+
return { viewpointFile: 'viewpoint.bcfv', snapshotBase: 'snapshot' };
|
|
30
|
+
}
|
|
31
|
+
return { viewpointFile: `${baseName}_viewpoint.bcfv`, snapshotBase: `${baseName}_snapshot` };
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=writer-viewpoint-filename.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writer-viewpoint-filename.js","sourceRoot":"","sources":["../src/writer-viewpoint-filename.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAU/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,KAAa;IAC/D,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;IACvE,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,GAAG,QAAQ,iBAAiB,EAAE,YAAY,EAAE,GAAG,QAAQ,WAAW,EAAE,CAAC;AAC/F,CAAC"}
|
package/dist/writer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,UAAU,
|
|
1
|
+
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,UAAU,EASX,MAAM,YAAY,CAAC;AAyBpB;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBjE"}
|