@ifc-lite/bcf 2.0.0 → 2.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/dist/numeric.d.ts +64 -1
- package/dist/numeric.d.ts.map +1 -1
- package/dist/numeric.js +81 -1
- package/dist/numeric.js.map +1 -1
- package/dist/writer-camera.d.ts +46 -0
- package/dist/writer-camera.d.ts.map +1 -0
- package/dist/writer-camera.js +102 -0
- package/dist/writer-camera.js.map +1 -0
- package/dist/writer.d.ts.map +1 -1
- package/dist/writer.js +25 -119
- package/dist/writer.js.map +1 -1
- package/package.json +2 -2
package/dist/numeric.d.ts
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Numeric boundary helpers for BCF.
|
|
2
|
+
* Numeric boundary helpers for BCF — both directions.
|
|
3
3
|
*
|
|
4
4
|
* A `.bcfzip` is an untrusted file, and every number in it arrives through a
|
|
5
5
|
* bare `parseFloat`. `parseFloat` has no failure value that is out of band:
|
|
6
6
|
* `"NaN"` parses to `NaN`, and `"1e999"` — a perfectly well-formed decimal
|
|
7
7
|
* literal — parses to `Infinity`. Both then flow into the viewer camera, which
|
|
8
8
|
* stores a pose verbatim by design.
|
|
9
|
+
*
|
|
10
|
+
* The WRITE side is the same boundary seen from the other end, and it is the
|
|
11
|
+
* half that was missing: `${Infinity}` stringifies to `"Infinity"`, which is
|
|
12
|
+
* not in `xs:double`'s lexical space (XSD 1.0 spells the infinities `INF` and
|
|
13
|
+
* `-INF`), so every non-finite number the writer touched produced an archive
|
|
14
|
+
* xmllint rejects. Keeping both halves in one file is deliberate: the read
|
|
15
|
+
* guard and the write guard have to agree on what "a usable number" means, and
|
|
16
|
+
* they can only be checked against each other while they sit side by side.
|
|
9
17
|
*/
|
|
10
18
|
/**
|
|
11
19
|
* `parseFloat`, but a value that is not a real number is reported as
|
|
@@ -41,4 +49,59 @@ export declare function parseFiniteFloat(raw: string): number | undefined;
|
|
|
41
49
|
* that has never been positioned reports).
|
|
42
50
|
*/
|
|
43
51
|
export declare function usableTargetDistance(distance: number | undefined, fallback: number): number;
|
|
52
|
+
/**
|
|
53
|
+
* A number on its way INTO an archive, as the text an XSD numeric type will
|
|
54
|
+
* accept — or an error naming what was wrong and where.
|
|
55
|
+
*
|
|
56
|
+
* FINITENESS, not sign, is the property. That distinction is the whole bug:
|
|
57
|
+
* `Infinity > 0` is `true`, so a positivity check passes it, and
|
|
58
|
+
* `Number.isNaN(Number('Infinity'))` is `false`, so an `isNaN` check passes it
|
|
59
|
+
* too. Only `Number.isFinite` rejects the pair, and each of the three
|
|
60
|
+
* non-finite values fails the schemas a different way, which is why none of
|
|
61
|
+
* them can be left to a facet:
|
|
62
|
+
*
|
|
63
|
+
* - `Infinity`/`-Infinity` stringify to `"Infinity"`/`"-Infinity"`, which
|
|
64
|
+
* `xs:double` does not admit at all (XSD 1.0's lexical space spells the
|
|
65
|
+
* infinities `INF` and `-INF`), so they are rejected as "not a valid value of
|
|
66
|
+
* the atomic type" wherever they appear.
|
|
67
|
+
* - `NaN` stringifies to `"NaN"`, which `xs:double` DOES admit. A bare
|
|
68
|
+
* `xs:double` element — every camera/line/clipping-plane/bitmap coordinate,
|
|
69
|
+
* `ViewToWorldScale`, `Bitmap/Height` — therefore validates while carrying a
|
|
70
|
+
* number no consumer can use, and our own reader drops it on the way back in
|
|
71
|
+
* ({@link parseFiniteFloat}). Schema validity is not the bar here; a value
|
|
72
|
+
* that survives the round trip is.
|
|
73
|
+
*
|
|
74
|
+
* Refusing is the same policy the rest of the writer already applies to
|
|
75
|
+
* unrepresentable input (`writer-camera.ts`'s camera-choice and AspectRatio
|
|
76
|
+
* checks, `writer.ts`'s `Topic/@TopicType` check): we do not silently
|
|
77
|
+
* substitute a number the caller never chose, and we do not emit markup a
|
|
78
|
+
* conforming reader may reject.
|
|
79
|
+
*/
|
|
80
|
+
export declare function xsdDouble(value: number, element: string, where: string): string;
|
|
81
|
+
/**
|
|
82
|
+
* The `<X>/<Y>/<Z>` triple shared by `Point` and `Direction`, wrapped in
|
|
83
|
+
* `tag`, with every component checked by {@link xsdDouble}.
|
|
84
|
+
*
|
|
85
|
+
* Both schemas declare `Point` and `Direction` as three `xs:double` children in
|
|
86
|
+
* that order, and both are reached from four places (camera vectors, `Line`,
|
|
87
|
+
* `ClippingPlane`, `Bitmap`). Emitting them from one function is what stops a
|
|
88
|
+
* guard from being added to three of the four.
|
|
89
|
+
*/
|
|
90
|
+
export declare function xsdPointElement(tag: string, point: {
|
|
91
|
+
x: number;
|
|
92
|
+
y: number;
|
|
93
|
+
z: number;
|
|
94
|
+
}, indent: string, where: string): string;
|
|
95
|
+
/**
|
|
96
|
+
* A number on its way into an `xs:int` element (`Topic/Index` is the only one
|
|
97
|
+
* the writer emits).
|
|
98
|
+
*
|
|
99
|
+
* `xs:int` is narrower than `xs:double` in two further ways a finiteness check
|
|
100
|
+
* alone would miss: `1.5` is not an `xs:int` ("'1.5' is not a valid value of
|
|
101
|
+
* the atomic type 'xs:int'"), and the type is 32-bit, so a whole number outside
|
|
102
|
+
* [-2^31, 2^31-1] is out of range too. `Number.isInteger` is false for `NaN`
|
|
103
|
+
* and both infinities, so finiteness comes with it rather than needing its own
|
|
104
|
+
* branch.
|
|
105
|
+
*/
|
|
106
|
+
export declare function xsdInt(value: number, element: string, where: string): string;
|
|
44
107
|
//# sourceMappingURL=numeric.d.ts.map
|
package/dist/numeric.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numeric.d.ts","sourceRoot":"","sources":["../src/numeric.ts"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"numeric.d.ts","sourceRoot":"","sources":["../src/numeric.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGhE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAU/E;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC1C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,MAAM,CAQR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAS5E"}
|
package/dist/numeric.js
CHANGED
|
@@ -2,13 +2,21 @@
|
|
|
2
2
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
4
|
/**
|
|
5
|
-
* Numeric boundary helpers for BCF.
|
|
5
|
+
* Numeric boundary helpers for BCF — both directions.
|
|
6
6
|
*
|
|
7
7
|
* A `.bcfzip` is an untrusted file, and every number in it arrives through a
|
|
8
8
|
* bare `parseFloat`. `parseFloat` has no failure value that is out of band:
|
|
9
9
|
* `"NaN"` parses to `NaN`, and `"1e999"` — a perfectly well-formed decimal
|
|
10
10
|
* literal — parses to `Infinity`. Both then flow into the viewer camera, which
|
|
11
11
|
* stores a pose verbatim by design.
|
|
12
|
+
*
|
|
13
|
+
* The WRITE side is the same boundary seen from the other end, and it is the
|
|
14
|
+
* half that was missing: `${Infinity}` stringifies to `"Infinity"`, which is
|
|
15
|
+
* not in `xs:double`'s lexical space (XSD 1.0 spells the infinities `INF` and
|
|
16
|
+
* `-INF`), so every non-finite number the writer touched produced an archive
|
|
17
|
+
* xmllint rejects. Keeping both halves in one file is deliberate: the read
|
|
18
|
+
* guard and the write guard have to agree on what "a usable number" means, and
|
|
19
|
+
* they can only be checked against each other while they sit side by side.
|
|
12
20
|
*/
|
|
13
21
|
/**
|
|
14
22
|
* `parseFloat`, but a value that is not a real number is reported as
|
|
@@ -49,4 +57,76 @@ export function parseFiniteFloat(raw) {
|
|
|
49
57
|
export function usableTargetDistance(distance, fallback) {
|
|
50
58
|
return distance !== undefined && Number.isFinite(distance) && distance > 0 ? distance : fallback;
|
|
51
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* A number on its way INTO an archive, as the text an XSD numeric type will
|
|
62
|
+
* accept — or an error naming what was wrong and where.
|
|
63
|
+
*
|
|
64
|
+
* FINITENESS, not sign, is the property. That distinction is the whole bug:
|
|
65
|
+
* `Infinity > 0` is `true`, so a positivity check passes it, and
|
|
66
|
+
* `Number.isNaN(Number('Infinity'))` is `false`, so an `isNaN` check passes it
|
|
67
|
+
* too. Only `Number.isFinite` rejects the pair, and each of the three
|
|
68
|
+
* non-finite values fails the schemas a different way, which is why none of
|
|
69
|
+
* them can be left to a facet:
|
|
70
|
+
*
|
|
71
|
+
* - `Infinity`/`-Infinity` stringify to `"Infinity"`/`"-Infinity"`, which
|
|
72
|
+
* `xs:double` does not admit at all (XSD 1.0's lexical space spells the
|
|
73
|
+
* infinities `INF` and `-INF`), so they are rejected as "not a valid value of
|
|
74
|
+
* the atomic type" wherever they appear.
|
|
75
|
+
* - `NaN` stringifies to `"NaN"`, which `xs:double` DOES admit. A bare
|
|
76
|
+
* `xs:double` element — every camera/line/clipping-plane/bitmap coordinate,
|
|
77
|
+
* `ViewToWorldScale`, `Bitmap/Height` — therefore validates while carrying a
|
|
78
|
+
* number no consumer can use, and our own reader drops it on the way back in
|
|
79
|
+
* ({@link parseFiniteFloat}). Schema validity is not the bar here; a value
|
|
80
|
+
* that survives the round trip is.
|
|
81
|
+
*
|
|
82
|
+
* Refusing is the same policy the rest of the writer already applies to
|
|
83
|
+
* unrepresentable input (`writer-camera.ts`'s camera-choice and AspectRatio
|
|
84
|
+
* checks, `writer.ts`'s `Topic/@TopicType` check): we do not silently
|
|
85
|
+
* substitute a number the caller never chose, and we do not emit markup a
|
|
86
|
+
* conforming reader may reject.
|
|
87
|
+
*/
|
|
88
|
+
export function xsdDouble(value, element, where) {
|
|
89
|
+
if (!Number.isFinite(value)) {
|
|
90
|
+
throw new Error(`BCF requires a finite number for ${element} (${where} has ${value}). ` +
|
|
91
|
+
`XSD numeric types cannot express Infinity, -Infinity or NaN, so writing ` +
|
|
92
|
+
`one produces an archive that fails schema validation or loses the value ` +
|
|
93
|
+
`on read. Supply a finite number before writing.`);
|
|
94
|
+
}
|
|
95
|
+
return String(value);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* The `<X>/<Y>/<Z>` triple shared by `Point` and `Direction`, wrapped in
|
|
99
|
+
* `tag`, with every component checked by {@link xsdDouble}.
|
|
100
|
+
*
|
|
101
|
+
* Both schemas declare `Point` and `Direction` as three `xs:double` children in
|
|
102
|
+
* that order, and both are reached from four places (camera vectors, `Line`,
|
|
103
|
+
* `ClippingPlane`, `Bitmap`). Emitting them from one function is what stops a
|
|
104
|
+
* guard from being added to three of the four.
|
|
105
|
+
*/
|
|
106
|
+
export function xsdPointElement(tag, point, indent, where) {
|
|
107
|
+
return (`\n${indent}<${tag}>` +
|
|
108
|
+
`\n${indent} <X>${xsdDouble(point.x, `${tag}/X`, where)}</X>` +
|
|
109
|
+
`\n${indent} <Y>${xsdDouble(point.y, `${tag}/Y`, where)}</Y>` +
|
|
110
|
+
`\n${indent} <Z>${xsdDouble(point.z, `${tag}/Z`, where)}</Z>` +
|
|
111
|
+
`\n${indent}</${tag}>`);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* A number on its way into an `xs:int` element (`Topic/Index` is the only one
|
|
115
|
+
* the writer emits).
|
|
116
|
+
*
|
|
117
|
+
* `xs:int` is narrower than `xs:double` in two further ways a finiteness check
|
|
118
|
+
* alone would miss: `1.5` is not an `xs:int` ("'1.5' is not a valid value of
|
|
119
|
+
* the atomic type 'xs:int'"), and the type is 32-bit, so a whole number outside
|
|
120
|
+
* [-2^31, 2^31-1] is out of range too. `Number.isInteger` is false for `NaN`
|
|
121
|
+
* and both infinities, so finiteness comes with it rather than needing its own
|
|
122
|
+
* branch.
|
|
123
|
+
*/
|
|
124
|
+
export function xsdInt(value, element, where) {
|
|
125
|
+
if (!Number.isInteger(value) || value < -2147483648 || value > 2147483647) {
|
|
126
|
+
throw new Error(`BCF requires a 32-bit integer for ${element} (${where} has ${value}). ` +
|
|
127
|
+
`xs:int admits neither a fractional value, a non-finite one, nor one ` +
|
|
128
|
+
`outside [-2147483648, 2147483647].`);
|
|
129
|
+
}
|
|
130
|
+
return String(value);
|
|
131
|
+
}
|
|
52
132
|
//# sourceMappingURL=numeric.js.map
|
package/dist/numeric.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numeric.js","sourceRoot":"","sources":["../src/numeric.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D
|
|
1
|
+
{"version":3,"file":"numeric.js","sourceRoot":"","sources":["../src/numeric.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAA4B,EAAE,QAAgB;IACjF,OAAO,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AACnG,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,OAAe,EAAE,KAAa;IACrE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,oCAAoC,OAAO,KAAK,KAAK,QAAQ,KAAK,KAAK;YACrE,0EAA0E;YAC1E,0EAA0E;YAC1E,iDAAiD,CACpD,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAW,EACX,KAA0C,EAC1C,MAAc,EACd,KAAa;IAEb,OAAO,CACL,KAAK,MAAM,IAAI,GAAG,GAAG;QACrB,KAAK,MAAM,QAAQ,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,KAAK,CAAC,MAAM;QAC9D,KAAK,MAAM,QAAQ,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,KAAK,CAAC,MAAM;QAC9D,KAAK,MAAM,QAAQ,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,KAAK,CAAC,MAAM;QAC9D,KAAK,MAAM,KAAK,GAAG,GAAG,CACvB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,MAAM,CAAC,KAAa,EAAE,OAAe,EAAE,KAAa;IAClE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,UAAU,IAAI,KAAK,GAAG,UAAU,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CACb,qCAAqC,OAAO,KAAK,KAAK,QAAQ,KAAK,KAAK;YACtE,sEAAsE;YACtE,oCAAoC,CACvC,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Writing a viewpoint's camera.
|
|
3
|
+
*
|
|
4
|
+
* Split out of `writer.ts` because the camera is the one part of
|
|
5
|
+
* `VisualizationInfo` whose SHAPE, CARDINALITY and ORDER all differ between
|
|
6
|
+
* BCF 2.1 and BCF 3.0, and keeping the three rules in one place is what makes
|
|
7
|
+
* them checkable against the `visinfo.xsd` copies under
|
|
8
|
+
* `__fixtures__/schemas/`. The parity is
|
|
9
|
+
* pinned by `schema-validation.test.ts` > "BCF camera cardinality and order",
|
|
10
|
+
* which re-derives the rules from the vendored schemas before asserting them.
|
|
11
|
+
*/
|
|
12
|
+
import type { BCFViewpoint, BCFPerspectiveCamera, BCFOrthogonalCamera } from './types.js';
|
|
13
|
+
/**
|
|
14
|
+
* Enforce each version's rule for how many cameras a viewpoint may carry.
|
|
15
|
+
*
|
|
16
|
+
* The two schemas differ, and the emitted ORDER matters in one of them:
|
|
17
|
+
*
|
|
18
|
+
* - v2_1/visinfo.xsd puts `OrthogonalCamera` and `PerspectiveCamera` in
|
|
19
|
+
* `VisualizationInfo`'s `xs:sequence`, both `minOccurs="0"`. Either, both or
|
|
20
|
+
* neither may appear -- but an `xs:sequence` fixes the order, and the
|
|
21
|
+
* schema declares the orthogonal camera FIRST. Emitting the perspective
|
|
22
|
+
* camera first made a two-camera 2.1 viewpoint schema-invalid
|
|
23
|
+
* ("Element 'OrthogonalCamera': This element is not expected"), which is
|
|
24
|
+
* why `writer.ts`'s `writeViewpointFiles` now writes orthogonal first for both
|
|
25
|
+
* versions -- the order is required by 2.1 and harmless under 3.0's choice.
|
|
26
|
+
* - v3_0/visinfo.xsd replaced that pair with an `<xs:choice>` carrying no
|
|
27
|
+
* `minOccurs` and no `maxOccurs`, so both default to 1: EXACTLY ONE camera,
|
|
28
|
+
* and it is required. Two cameras and zero cameras are each invalid there.
|
|
29
|
+
*
|
|
30
|
+
* We refuse the 3.0 violations rather than guessing which camera the caller
|
|
31
|
+
* meant, or inventing one for a viewpoint that has none -- same policy as
|
|
32
|
+
* {@link requireAspectRatioElement} and the `Topic/@TopicType` checks in
|
|
33
|
+
* `writer.ts`'s `writeMarkupFile`. Silently dropping one of two cameras would discard
|
|
34
|
+
* a view the caller chose; silently emitting neither writes an archive that no
|
|
35
|
+
* conforming BCF 3.0 reader has to accept.
|
|
36
|
+
*/
|
|
37
|
+
export declare function requireCameraChoice(viewpoint: BCFViewpoint, version: '2.1' | '3.0'): void;
|
|
38
|
+
/**
|
|
39
|
+
* Write perspective camera XML
|
|
40
|
+
*/
|
|
41
|
+
export declare function writePerspectiveCamera(camera: BCFPerspectiveCamera, version: '2.1' | '3.0', viewpointGuid: string): string;
|
|
42
|
+
/**
|
|
43
|
+
* Write orthogonal camera XML
|
|
44
|
+
*/
|
|
45
|
+
export declare function writeOrthogonalCamera(camera: BCFOrthogonalCamera, version: '2.1' | '3.0', viewpointGuid: string): string;
|
|
46
|
+
//# sourceMappingURL=writer-camera.d.ts.map
|
|
@@ -0,0 +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;AAiCD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,KAAK,GAAG,KAAK,EACtB,aAAa,EAAE,MAAM,GACpB,MAAM,CAMR;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,KAAK,GAAG,KAAK,EACtB,aAAa,EAAE,MAAM,GACpB,MAAM,CAMR"}
|
|
@@ -0,0 +1,102 @@
|
|
|
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
|
+
/**
|
|
6
|
+
* Enforce each version's rule for how many cameras a viewpoint may carry.
|
|
7
|
+
*
|
|
8
|
+
* The two schemas differ, and the emitted ORDER matters in one of them:
|
|
9
|
+
*
|
|
10
|
+
* - v2_1/visinfo.xsd puts `OrthogonalCamera` and `PerspectiveCamera` in
|
|
11
|
+
* `VisualizationInfo`'s `xs:sequence`, both `minOccurs="0"`. Either, both or
|
|
12
|
+
* neither may appear -- but an `xs:sequence` fixes the order, and the
|
|
13
|
+
* schema declares the orthogonal camera FIRST. Emitting the perspective
|
|
14
|
+
* camera first made a two-camera 2.1 viewpoint schema-invalid
|
|
15
|
+
* ("Element 'OrthogonalCamera': This element is not expected"), which is
|
|
16
|
+
* why `writer.ts`'s `writeViewpointFiles` now writes orthogonal first for both
|
|
17
|
+
* versions -- the order is required by 2.1 and harmless under 3.0's choice.
|
|
18
|
+
* - v3_0/visinfo.xsd replaced that pair with an `<xs:choice>` carrying no
|
|
19
|
+
* `minOccurs` and no `maxOccurs`, so both default to 1: EXACTLY ONE camera,
|
|
20
|
+
* and it is required. Two cameras and zero cameras are each invalid there.
|
|
21
|
+
*
|
|
22
|
+
* We refuse the 3.0 violations rather than guessing which camera the caller
|
|
23
|
+
* meant, or inventing one for a viewpoint that has none -- same policy as
|
|
24
|
+
* {@link requireAspectRatioElement} and the `Topic/@TopicType` checks in
|
|
25
|
+
* `writer.ts`'s `writeMarkupFile`. Silently dropping one of two cameras would discard
|
|
26
|
+
* a view the caller chose; silently emitting neither writes an archive that no
|
|
27
|
+
* conforming BCF 3.0 reader has to accept.
|
|
28
|
+
*/
|
|
29
|
+
export function requireCameraChoice(viewpoint, version) {
|
|
30
|
+
if (version !== '3.0')
|
|
31
|
+
return;
|
|
32
|
+
const count = (viewpoint.orthogonalCamera ? 1 : 0) + (viewpoint.perspectiveCamera ? 1 : 0);
|
|
33
|
+
if (count === 1)
|
|
34
|
+
return;
|
|
35
|
+
throw new Error(`BCF 3.0 requires exactly one camera per viewpoint (viewpoint "${viewpoint.guid}" has ` +
|
|
36
|
+
`${count === 0 ? 'none' : 'both an orthogonalCamera and a perspectiveCamera'}). ` +
|
|
37
|
+
`visinfo.xsd declares OrthogonalCamera and PerspectiveCamera as an xs:choice, so ` +
|
|
38
|
+
`set exactly one before writing a 3.0 file.`);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Require a FINITE, positive AspectRatio for a BCF 3.0 camera and return the
|
|
42
|
+
* element to append.
|
|
43
|
+
*
|
|
44
|
+
* v3_0/visinfo.xsd adds `<AspectRatio>` (type `PositiveDouble`, i.e.
|
|
45
|
+
* `xs:double` with `minExclusive value="0"`) as a REQUIRED, no-minOccurs
|
|
46
|
+
* child of both `OrthogonalCamera` and `PerspectiveCamera`. 2.1 has no such
|
|
47
|
+
* element. We refuse to invent a value (there is no safe default aspect
|
|
48
|
+
* ratio) because that would assert a value the caller never chose; instead
|
|
49
|
+
* we fail the write so the caller supplies one -- same policy as the
|
|
50
|
+
* `Topic/@TopicType`/`Topic/@TopicStatus` checks in `writer.ts`'s `writeMarkupFile`.
|
|
51
|
+
*
|
|
52
|
+
* BOTH halves of `PositiveDouble` are checked here, and the positivity test
|
|
53
|
+
* alone did not cover them: `Infinity > 0` is `true`, so `Infinity` walked
|
|
54
|
+
* past this guard and was emitted as `<AspectRatio>Infinity</AspectRatio>`,
|
|
55
|
+
* which xmllint rejects with "'Infinity' is not a valid value of the atomic
|
|
56
|
+
* type 'PositiveDouble'". `xsdDouble` is what makes the `xs:double` half of
|
|
57
|
+
* the claim true; the `> 0` below is the `minExclusive` facet.
|
|
58
|
+
*/
|
|
59
|
+
function requireAspectRatioElement(aspectRatio, viewpointGuid) {
|
|
60
|
+
const where = `viewpoint "${viewpointGuid}"`;
|
|
61
|
+
if (aspectRatio === undefined || !(aspectRatio > 0)) {
|
|
62
|
+
throw new Error(`BCF 3.0 requires a positive Camera/AspectRatio (${where} has ` +
|
|
63
|
+
`${aspectRatio === undefined ? 'none' : aspectRatio}). ` +
|
|
64
|
+
`Set the camera's aspectRatio before writing a 3.0 file.`);
|
|
65
|
+
}
|
|
66
|
+
return `\n <AspectRatio>${xsdDouble(aspectRatio, 'Camera/AspectRatio', where)}</AspectRatio>`;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Write perspective camera XML
|
|
70
|
+
*/
|
|
71
|
+
export function writePerspectiveCamera(camera, version, viewpointGuid) {
|
|
72
|
+
const aspectRatioElement = version === '3.0' ? requireAspectRatioElement(camera.aspectRatio, viewpointGuid) : '';
|
|
73
|
+
const where = `viewpoint "${viewpointGuid}"`;
|
|
74
|
+
return `\n <PerspectiveCamera>${cameraVectors(camera, where)}
|
|
75
|
+
<FieldOfView>${xsdDouble(camera.fieldOfView, 'PerspectiveCamera/FieldOfView', where)}</FieldOfView>${aspectRatioElement}
|
|
76
|
+
</PerspectiveCamera>`;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Write orthogonal camera XML
|
|
80
|
+
*/
|
|
81
|
+
export function writeOrthogonalCamera(camera, version, viewpointGuid) {
|
|
82
|
+
const aspectRatioElement = version === '3.0' ? requireAspectRatioElement(camera.aspectRatio, viewpointGuid) : '';
|
|
83
|
+
const where = `viewpoint "${viewpointGuid}"`;
|
|
84
|
+
return `\n <OrthogonalCamera>${cameraVectors(camera, where)}
|
|
85
|
+
<ViewToWorldScale>${xsdDouble(camera.viewToWorldScale, 'OrthogonalCamera/ViewToWorldScale', where)}</ViewToWorldScale>${aspectRatioElement}
|
|
86
|
+
</OrthogonalCamera>`;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* The three vectors both camera types open with, in the order both schemas'
|
|
90
|
+
* `xs:sequence` declares them.
|
|
91
|
+
*
|
|
92
|
+
* Identical in `OrthogonalCamera` and `PerspectiveCamera` and in 2.1 and 3.0 --
|
|
93
|
+
* the cameras differ only in the single element that follows (`ViewToWorldScale`
|
|
94
|
+
* vs `FieldOfView`). Writing them once is what makes "every camera coordinate
|
|
95
|
+
* is checked" a property of the code rather than of six copied templates.
|
|
96
|
+
*/
|
|
97
|
+
function cameraVectors(camera, where) {
|
|
98
|
+
return (xsdPointElement('CameraViewPoint', camera.cameraViewPoint, ' ', where) +
|
|
99
|
+
xsdPointElement('CameraDirection', camera.cameraDirection, ' ', where) +
|
|
100
|
+
xsdPointElement('CameraUpVector', camera.cameraUpVector, ' ', where));
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=writer-camera.js.map
|
|
@@ -0,0 +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,0BAA0B,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC;mBAC5C,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,+BAA+B,EAAE,KAAK,CAAC,iBAAiB,kBAAkB;uBACpG,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAA2B,EAC3B,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,yBAAyB,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC;wBACtC,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,mCAAmC,EAAE,KAAK,CAAC,sBAAsB,kBAAkB;sBACxH,CAAC;AACvB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,aAAa,CACpB,MAAkD,EAClD,KAAa;IAEb,OAAO,CACL,eAAe,CAAC,iBAAiB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,CAAC;QACzE,eAAe,CAAC,iBAAiB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,CAAC;QACzE,eAAe,CAAC,gBAAgB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,CACxE,CAAC;AACJ,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,EAiBX,MAAM,YAAY,CAAC;AASpB;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBjE"}
|
package/dist/writer.js
CHANGED
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
* Creates .bcfzip files from BCFProject structure
|
|
8
8
|
*/
|
|
9
9
|
import JSZip from 'jszip';
|
|
10
|
+
import { requireCameraChoice, writeOrthogonalCamera, writePerspectiveCamera, } from './writer-camera.js';
|
|
11
|
+
import { xsdDouble, xsdInt, xsdPointElement } from './numeric.js';
|
|
10
12
|
import { generateUuid } from '@ifc-lite/encoding';
|
|
11
13
|
/**
|
|
12
14
|
* Write a BCFProject to a .bcfzip file
|
|
@@ -229,7 +231,8 @@ function writeMarkupFile(folder, topic, version, viewpointBaseNames) {
|
|
|
229
231
|
content += `\n <Priority>${escapeXml(topic.priority)}</Priority>`;
|
|
230
232
|
}
|
|
231
233
|
if (topic.index !== undefined) {
|
|
232
|
-
|
|
234
|
+
// `Index` is the writer's only xs:int; see xsdInt for what that excludes.
|
|
235
|
+
content += `\n <Index>${xsdInt(topic.index, 'Topic/Index', `topic "${topic.guid}"`)}</Index>`;
|
|
233
236
|
}
|
|
234
237
|
if (topic.labels && topic.labels.length > 0) {
|
|
235
238
|
// BCF 3.0's markup.xsd wraps labels in ONE `<Labels>` container holding
|
|
@@ -394,19 +397,24 @@ async function writeViewpointFiles(folder, viewpoint, baseName, version) {
|
|
|
394
397
|
if (viewpoint.components) {
|
|
395
398
|
content += writeComponents(viewpoint.components, version);
|
|
396
399
|
}
|
|
397
|
-
//
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
}
|
|
401
|
-
// Write
|
|
400
|
+
// Every number below reaches an XSD numeric type, so each goes through
|
|
401
|
+
// `numeric.ts`'s write-side guards; `where` is what puts the offending
|
|
402
|
+
// viewpoint's guid in the error, as the camera checks already do.
|
|
403
|
+
const where = `viewpoint "${viewpoint.guid}"`;
|
|
404
|
+
// Write the cameras. ORTHOGONAL FIRST -- see requireCameraChoice for why the
|
|
405
|
+
// order is not free, and for the 3.0 cardinality rule enforced here.
|
|
406
|
+
requireCameraChoice(viewpoint, version);
|
|
402
407
|
if (viewpoint.orthogonalCamera) {
|
|
403
408
|
content += writeOrthogonalCamera(viewpoint.orthogonalCamera, version, viewpoint.guid);
|
|
404
409
|
}
|
|
410
|
+
if (viewpoint.perspectiveCamera) {
|
|
411
|
+
content += writePerspectiveCamera(viewpoint.perspectiveCamera, version, viewpoint.guid);
|
|
412
|
+
}
|
|
405
413
|
// Write lines
|
|
406
414
|
if (viewpoint.lines && viewpoint.lines.length > 0) {
|
|
407
415
|
content += `\n <Lines>`;
|
|
408
416
|
for (const line of viewpoint.lines) {
|
|
409
|
-
content += writeLine(line);
|
|
417
|
+
content += writeLine(line, where);
|
|
410
418
|
}
|
|
411
419
|
content += `\n </Lines>`;
|
|
412
420
|
}
|
|
@@ -414,7 +422,7 @@ async function writeViewpointFiles(folder, viewpoint, baseName, version) {
|
|
|
414
422
|
if (viewpoint.clippingPlanes && viewpoint.clippingPlanes.length > 0) {
|
|
415
423
|
content += `\n <ClippingPlanes>`;
|
|
416
424
|
for (const plane of viewpoint.clippingPlanes) {
|
|
417
|
-
content += writeClippingPlane(plane);
|
|
425
|
+
content += writeClippingPlane(plane, where);
|
|
418
426
|
}
|
|
419
427
|
content += `\n </ClippingPlanes>`;
|
|
420
428
|
}
|
|
@@ -430,13 +438,13 @@ async function writeViewpointFiles(folder, viewpoint, baseName, version) {
|
|
|
430
438
|
if (version === '3.0') {
|
|
431
439
|
content += `\n <Bitmaps>`;
|
|
432
440
|
for (const bitmap of viewpoint.bitmaps) {
|
|
433
|
-
content += writeBitmap(bitmap, version);
|
|
441
|
+
content += writeBitmap(bitmap, version, where);
|
|
434
442
|
}
|
|
435
443
|
content += `\n </Bitmaps>`;
|
|
436
444
|
}
|
|
437
445
|
else {
|
|
438
446
|
for (const bitmap of viewpoint.bitmaps) {
|
|
439
|
-
content += writeBitmap(bitmap, version);
|
|
447
|
+
content += writeBitmap(bitmap, version, where);
|
|
440
448
|
}
|
|
441
449
|
}
|
|
442
450
|
}
|
|
@@ -600,105 +608,18 @@ function writeColoringEntry(coloring, version) {
|
|
|
600
608
|
content += `\n </Color>`;
|
|
601
609
|
return content;
|
|
602
610
|
}
|
|
603
|
-
/**
|
|
604
|
-
* Require a positive AspectRatio for a BCF 3.0 camera and return the element
|
|
605
|
-
* to append.
|
|
606
|
-
*
|
|
607
|
-
* v3_0/visinfo.xsd adds `<AspectRatio>` (type `PositiveDouble`, i.e.
|
|
608
|
-
* `xs:double` with `minExclusive value="0"`) as a REQUIRED, no-minOccurs
|
|
609
|
-
* child of both `OrthogonalCamera` and `PerspectiveCamera`. 2.1 has no such
|
|
610
|
-
* element. We refuse to invent a value (there is no safe default aspect
|
|
611
|
-
* ratio) because that would assert a value the caller never chose; instead
|
|
612
|
-
* we fail the write so the caller supplies one -- same policy as the
|
|
613
|
-
* `Topic/@TopicType`/`Topic/@TopicStatus` checks in {@link writeMarkupFile}.
|
|
614
|
-
*/
|
|
615
|
-
function requireAspectRatioElement(aspectRatio, viewpointGuid) {
|
|
616
|
-
if (aspectRatio === undefined || !(aspectRatio > 0)) {
|
|
617
|
-
throw new Error(`BCF 3.0 requires a positive Camera/AspectRatio (viewpoint "${viewpointGuid}" has none). ` +
|
|
618
|
-
`Set the camera's aspectRatio before writing a 3.0 file.`);
|
|
619
|
-
}
|
|
620
|
-
return `\n <AspectRatio>${aspectRatio}</AspectRatio>`;
|
|
621
|
-
}
|
|
622
|
-
/**
|
|
623
|
-
* Write perspective camera XML
|
|
624
|
-
*/
|
|
625
|
-
function writePerspectiveCamera(camera, version, viewpointGuid) {
|
|
626
|
-
const aspectRatioElement = version === '3.0' ? requireAspectRatioElement(camera.aspectRatio, viewpointGuid) : '';
|
|
627
|
-
return `\n <PerspectiveCamera>
|
|
628
|
-
<CameraViewPoint>
|
|
629
|
-
<X>${camera.cameraViewPoint.x}</X>
|
|
630
|
-
<Y>${camera.cameraViewPoint.y}</Y>
|
|
631
|
-
<Z>${camera.cameraViewPoint.z}</Z>
|
|
632
|
-
</CameraViewPoint>
|
|
633
|
-
<CameraDirection>
|
|
634
|
-
<X>${camera.cameraDirection.x}</X>
|
|
635
|
-
<Y>${camera.cameraDirection.y}</Y>
|
|
636
|
-
<Z>${camera.cameraDirection.z}</Z>
|
|
637
|
-
</CameraDirection>
|
|
638
|
-
<CameraUpVector>
|
|
639
|
-
<X>${camera.cameraUpVector.x}</X>
|
|
640
|
-
<Y>${camera.cameraUpVector.y}</Y>
|
|
641
|
-
<Z>${camera.cameraUpVector.z}</Z>
|
|
642
|
-
</CameraUpVector>
|
|
643
|
-
<FieldOfView>${camera.fieldOfView}</FieldOfView>${aspectRatioElement}
|
|
644
|
-
</PerspectiveCamera>`;
|
|
645
|
-
}
|
|
646
|
-
/**
|
|
647
|
-
* Write orthogonal camera XML
|
|
648
|
-
*/
|
|
649
|
-
function writeOrthogonalCamera(camera, version, viewpointGuid) {
|
|
650
|
-
const aspectRatioElement = version === '3.0' ? requireAspectRatioElement(camera.aspectRatio, viewpointGuid) : '';
|
|
651
|
-
return `\n <OrthogonalCamera>
|
|
652
|
-
<CameraViewPoint>
|
|
653
|
-
<X>${camera.cameraViewPoint.x}</X>
|
|
654
|
-
<Y>${camera.cameraViewPoint.y}</Y>
|
|
655
|
-
<Z>${camera.cameraViewPoint.z}</Z>
|
|
656
|
-
</CameraViewPoint>
|
|
657
|
-
<CameraDirection>
|
|
658
|
-
<X>${camera.cameraDirection.x}</X>
|
|
659
|
-
<Y>${camera.cameraDirection.y}</Y>
|
|
660
|
-
<Z>${camera.cameraDirection.z}</Z>
|
|
661
|
-
</CameraDirection>
|
|
662
|
-
<CameraUpVector>
|
|
663
|
-
<X>${camera.cameraUpVector.x}</X>
|
|
664
|
-
<Y>${camera.cameraUpVector.y}</Y>
|
|
665
|
-
<Z>${camera.cameraUpVector.z}</Z>
|
|
666
|
-
</CameraUpVector>
|
|
667
|
-
<ViewToWorldScale>${camera.viewToWorldScale}</ViewToWorldScale>${aspectRatioElement}
|
|
668
|
-
</OrthogonalCamera>`;
|
|
669
|
-
}
|
|
670
611
|
/**
|
|
671
612
|
* Write line XML
|
|
672
613
|
*/
|
|
673
|
-
function writeLine(line) {
|
|
674
|
-
return `\n <Line
|
|
675
|
-
<StartPoint>
|
|
676
|
-
<X>${line.startPoint.x}</X>
|
|
677
|
-
<Y>${line.startPoint.y}</Y>
|
|
678
|
-
<Z>${line.startPoint.z}</Z>
|
|
679
|
-
</StartPoint>
|
|
680
|
-
<EndPoint>
|
|
681
|
-
<X>${line.endPoint.x}</X>
|
|
682
|
-
<Y>${line.endPoint.y}</Y>
|
|
683
|
-
<Z>${line.endPoint.z}</Z>
|
|
684
|
-
</EndPoint>
|
|
614
|
+
function writeLine(line, where) {
|
|
615
|
+
return `\n <Line>${xsdPointElement('StartPoint', line.startPoint, ' ', where)}${xsdPointElement('EndPoint', line.endPoint, ' ', where)}
|
|
685
616
|
</Line>`;
|
|
686
617
|
}
|
|
687
618
|
/**
|
|
688
619
|
* Write clipping plane XML
|
|
689
620
|
*/
|
|
690
|
-
function writeClippingPlane(plane) {
|
|
691
|
-
return `\n <ClippingPlane
|
|
692
|
-
<Location>
|
|
693
|
-
<X>${plane.location.x}</X>
|
|
694
|
-
<Y>${plane.location.y}</Y>
|
|
695
|
-
<Z>${plane.location.z}</Z>
|
|
696
|
-
</Location>
|
|
697
|
-
<Direction>
|
|
698
|
-
<X>${plane.direction.x}</X>
|
|
699
|
-
<Y>${plane.direction.y}</Y>
|
|
700
|
-
<Z>${plane.direction.z}</Z>
|
|
701
|
-
</Direction>
|
|
621
|
+
function writeClippingPlane(plane, where) {
|
|
622
|
+
return `\n <ClippingPlane>${xsdPointElement('Location', plane.location, ' ', where)}${xsdPointElement('Direction', plane.direction, ' ', where)}
|
|
702
623
|
</ClippingPlane>`;
|
|
703
624
|
}
|
|
704
625
|
/**
|
|
@@ -716,28 +637,13 @@ function writeClippingPlane(plane) {
|
|
|
716
637
|
* otherwise. `BCFBitmap.format` stays typed `'PNG' | 'JPG'`; we only
|
|
717
638
|
* lowercase it on the wire for 3.0.
|
|
718
639
|
*/
|
|
719
|
-
function writeBitmap(bitmap, version) {
|
|
640
|
+
function writeBitmap(bitmap, version, where) {
|
|
720
641
|
const formatTag = version === '3.0' ? 'Format' : 'Bitmap';
|
|
721
642
|
const formatValue = version === '3.0' ? bitmap.format.toLowerCase() : bitmap.format;
|
|
722
643
|
return `\n <Bitmap>
|
|
723
644
|
<${formatTag}>${formatValue}</${formatTag}>
|
|
724
|
-
<Reference>${escapeXml(bitmap.reference)}</Reference
|
|
725
|
-
<
|
|
726
|
-
<X>${bitmap.location.x}</X>
|
|
727
|
-
<Y>${bitmap.location.y}</Y>
|
|
728
|
-
<Z>${bitmap.location.z}</Z>
|
|
729
|
-
</Location>
|
|
730
|
-
<Normal>
|
|
731
|
-
<X>${bitmap.normal.x}</X>
|
|
732
|
-
<Y>${bitmap.normal.y}</Y>
|
|
733
|
-
<Z>${bitmap.normal.z}</Z>
|
|
734
|
-
</Normal>
|
|
735
|
-
<Up>
|
|
736
|
-
<X>${bitmap.up.x}</X>
|
|
737
|
-
<Y>${bitmap.up.y}</Y>
|
|
738
|
-
<Z>${bitmap.up.z}</Z>
|
|
739
|
-
</Up>
|
|
740
|
-
<Height>${bitmap.height}</Height>
|
|
645
|
+
<Reference>${escapeXml(bitmap.reference)}</Reference>${xsdPointElement('Location', bitmap.location, ' ', where)}${xsdPointElement('Normal', bitmap.normal, ' ', where)}${xsdPointElement('Up', bitmap.up, ' ', where)}
|
|
646
|
+
<Height>${xsdDouble(bitmap.height, 'Bitmap/Height', where)}</Height>
|
|
741
647
|
</Bitmap>`;
|
|
742
648
|
}
|
|
743
649
|
/**
|
package/dist/writer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAsB1B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAmB;IAChD,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;IAExB,qBAAqB;IACrB,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC,gCAAgC;IAChC,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACtC,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,eAAe;IACf,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5C,MAAM,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACvE,CAAC;IAED,oBAAoB;IACpB,OAAO,GAAG,CAAC,aAAa,CAAC;QACvB,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,SAAS;QACtB,kBAAkB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;KACjC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,gBAAgB,CAAC,GAAU,EAAE,OAAsB;IAC1D,MAAM,OAAO,GACX,OAAO,KAAK,KAAK;QACf,CAAC,CAAC;yHACiH,OAAO,KAAK;QAC/H,CAAC,CAAC;yHACiH,OAAO;qBAC3G,OAAO;WACjB,CAAC;IAEV,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,gBAAgB,CAAC,GAAU,EAAE,OAAmB,EAAE,OAAsB;IAC/E,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,YAAY,EAAE,CAAC;IACtD,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACxF,MAAM,WAAW,GAAG,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC;IAE3E,MAAM,OAAO,GAAG;GACf,WAAW;wBACU,SAAS,KAAK,WAAW;;IAE7C,WAAW,GAAG,CAAC;IAEjB,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,6EAA6E;AAC7E,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,CAAC,GAAG,UAAU,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,uBAAuB,CAAC,IAAY,EAAE,SAAsB;IACnE,OAAO,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,oBAAoB,CAAC,GAAW,EAAE,SAAsB,EAAE,QAAgB;IACjF,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,OAAO,KAAK,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAChD,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;IACvE,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,SAAS,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;IAC7B,CAAC;IACD,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACzB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAC7B,GAAU,EACV,KAAe,EACf,OAAsB,EACtB,eAA4B;IAE5B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;IAChF,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,yEAAyE;IACzE,0DAA0D;IAC1D,0EAA0E;IAC1E,yEAAyE;IACzE,sDAAsD;IACtD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC7C,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACrD,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAC/D,CAAC;IAEF,mBAAmB;IACnB,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAE5D,mBAAmB;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,MAAM,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACzF,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,SAAuB;IAC1C,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACrE,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IACjE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,4EAA4E;AAC5E,yEAAyE;AACzE,0EAA0E;AAC1E,4EAA4E;AAC5E,+BAA+B;AAC/B,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAE3C,SAAS,eAAe,CACtB,MAAa,EACb,KAAe,EACf,OAAsB,EACtB,kBAA4B;IAE5B,4EAA4E;IAC5E,oEAAoE;IACpE,mEAAmE;IACnE,wEAAwE;IACxE,uEAAuE;IACvE,wEAAwE;IACxE,oCAAoC;IACpC,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CACb,6CAA6C,KAAK,CAAC,IAAI,eAAe;gBACpE,gDAAgD,CACnD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,KAAK,CACb,+CAA+C,KAAK,CAAC,IAAI,eAAe;gBACtE,kDAAkD,CACrD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,OAAO,GAAG;4GAC4F,CAAC;IAE3G,+EAA+E;IAC/E,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,IAAI;iBACI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;aAC5K,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;IAE5C,6DAA6D;IAC7D,qEAAqE;IACrE,wEAAwE;IACxE,uEAAuE;IACvE,sEAAsE;IACtE,wEAAwE;IACxE,wEAAwE;IACxE,mEAAmE;IACnE,sEAAsE;IACtE,gEAAgE;IAChE,uEAAuE;IACvE,uEAAuE;IACvE,uEAAuE;IACvE,0EAA0E;IAC1E,sBAAsB;IACtB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,OAAO,IAAI,mBAAmB,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;IACvE,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,IAAI,gBAAgB,KAAK,CAAC,KAAK,UAAU,CAAC;IACnD,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,wEAAwE;QACxE,0EAA0E;QAC1E,yEAAyE;QACzE,sEAAsE;QACtE,sEAAsE;QACtE,mEAAmE;QACnE,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YACtB,OAAO,IAAI,gBAAgB,CAAC;YAC5B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjC,OAAO,IAAI,kBAAkB,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC;YAC1D,CAAC;YACD,OAAO,IAAI,iBAAiB,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjC,OAAO,IAAI,iBAAiB,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC;YAC1D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,uBAAuB,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC;IACjF,OAAO,IAAI,yBAAyB,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC;IAEvF,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,IAAI,uBAAuB,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC;QACjF,gEAAgE;QAChE,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,CAAC;QACpE,OAAO,IAAI,yBAAyB,SAAS,CAAC,cAAc,CAAC,mBAAmB,CAAC;IACnF,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,IAAI,kBAAkB,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;IACpE,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,IAAI,qBAAqB,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC;IAC7E,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,IAAI,gBAAgB,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;IAC9D,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,OAAO,IAAI,sBAAsB,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC;IAChF,CAAC;IAED,8EAA8E;IAC9E,4EAA4E;IAC5E,8EAA8E;IAC9E,IAAI,KAAK,CAAC,UAAU,EAAE,eAAe,EAAE,CAAC;QACtC,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpE,iEAAiE;QACjE,sEAAsE;QACtE,oEAAoE;QACpE,IAAI,OAAO,KAAK,KAAK;YAAE,OAAO,IAAI,4BAA4B,CAAC;QAC/D,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;YAC9C,OAAO,IAAI,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,OAAO,KAAK,KAAK;YAAE,OAAO,IAAI,6BAA6B,CAAC;IAClE,CAAC;IAED,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,mEAAmE;QACnE,wEAAwE;QACxE,qEAAqE;QACrE,iBAAiB;QACjB,IAAI,OAAO,KAAK,KAAK;YAAE,OAAO,IAAI,uBAAuB,CAAC;QAC1D,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YAC9C,OAAO,IAAI,6BAA6B,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC;QACtE,CAAC;QACD,IAAI,OAAO,KAAK,KAAK;YAAE,OAAO,IAAI,wBAAwB,CAAC;IAC7D,CAAC;IAED,uEAAuE;IACvE,sEAAsE;IACtE,UAAU;IACV,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,EAAE,CACpC,KAAK,CAAC,QAAQ;SACX,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACf,IAAI,CAAC,GAAG,KAAK,MAAM,kBAAkB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QACjE,CAAC,IAAI,KAAK,MAAM,WAAW,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QAC5D,CAAC,IAAI,KAAK,MAAM,aAAa,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;QAClE,CAAC,IAAI,KAAK,MAAM,cAAc,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;QACrE,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,CAAC,IAAI,KAAK,MAAM,sBAAsB,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;QAC9E,CAAC;QACD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,CAAC,IAAI,KAAK,MAAM,mBAAmB,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC;QACtF,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,CAAC,IAAI,KAAK,MAAM,qBAAqB,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC;QAC5F,CAAC;QACD,CAAC,IAAI,KAAK,MAAM,YAAY,CAAC;QAC7B,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;IAEd,uEAAuE;IACvE,wEAAwE;IACxE,0EAA0E;IAC1E,gEAAgE;IAChE,0EAA0E;IAC1E,4EAA4E;IAC5E,8DAA8D;IAC9D,MAAM,iBAAiB,GAAG,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;IACzE,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,EAAE,CACtC,KAAK,CAAC,UAAU;SACb,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;QACpB,uEAAuE;QACvE,mEAAmE;QACnE,wEAAwE;QACxE,wEAAwE;QACxE,gDAAgD;QAChD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,aAAa,QAAQ,OAAO,CAAC;QAC9C,MAAM,YAAY,GAAG,YAAY,QAAQ,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAEtE,IAAI,CAAC,GAAG,KAAK,MAAM,IAAI,iBAAiB,UAAU,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QAChF,CAAC,IAAI,KAAK,MAAM,gBAAgB,QAAQ,cAAc,CAAC;QACvD,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;YACjD,CAAC,IAAI,KAAK,MAAM,eAAe,YAAY,aAAa,CAAC;QAC3D,CAAC;QACD,CAAC,IAAI,KAAK,MAAM,KAAK,iBAAiB,GAAG,CAAC;QAC1C,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;IAEd,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,oEAAoE;QACpE,0EAA0E;QAC1E,sEAAsE;QACtE,wEAAwE;QACxE,qEAAqE;QACrE,mEAAmE;QACnE,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,mBAAmB,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACxE,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,qBAAqB,YAAY,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAC9E,CAAC;QACD,OAAO,IAAI,cAAc,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,cAAc,CAAC;QAC1B,gEAAgE;QAChE,qEAAqE;QACrE,gEAAgE;QAChE,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,IAAI,aAAa,CAAC;IAEzB,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAChC,MAAa,EACb,SAAuB,EACvB,QAAgB,EAChB,OAAsB;IAEtB,2EAA2E;IAC3E,yEAAyE;IACzE,0EAA0E;IAC1E,oEAAoE;IACpE,MAAM,QAAQ,GAAG,aAAa,QAAQ,OAAO,CAAC;IAC9C,MAAM,YAAY,GAAG,YAAY,QAAQ,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;IAEtE,0DAA0D;IAC1D,IAAI,OAAO,GAAG;8HAC8G,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;IAE1J,mBAAmB;IACnB,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QACzB,OAAO,IAAI,eAAe,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,2BAA2B;IAC3B,IAAI,SAAS,CAAC,iBAAiB,EAAE,CAAC;QAChC,OAAO,IAAI,sBAAsB,CAAC,SAAS,CAAC,iBAAiB,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1F,CAAC;IAED,0BAA0B;IAC1B,IAAI,SAAS,CAAC,gBAAgB,EAAE,CAAC;QAC/B,OAAO,IAAI,qBAAqB,CAAC,SAAS,CAAC,gBAAgB,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACxF,CAAC;IAED,cAAc;IACd,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,IAAI,aAAa,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACnC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,cAAc,CAAC;IAC5B,CAAC;IAED,wBAAwB;IACxB,IAAI,SAAS,CAAC,cAAc,IAAI,SAAS,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpE,OAAO,IAAI,sBAAsB,CAAC;QAClC,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;YAC7C,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,IAAI,uBAAuB,CAAC;IACrC,CAAC;IAED,gBAAgB;IAChB,EAAE;IACF,6EAA6E;IAC7E,wBAAwB;IACxB,yEAAyE;IACzE,yEAAyE;IACzE,yDAAyD;IACzD,wEAAwE;IACxE,IAAI,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YACtB,OAAO,IAAI,eAAe,CAAC;YAC3B,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACvC,OAAO,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO,IAAI,gBAAgB,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACvC,OAAO,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,wBAAwB,CAAC;IAEpC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE/B,iBAAiB;IACjB,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC;SAAM,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxE,6BAA6B;QAC7B,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;gBACtC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC7C,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxC,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,4EAA4E;gBAC5E,OAAO,CAAC,IAAI,CAAC,6CAA6C,EAAE,CAAC,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,eAAe,CAAC,UAAyB,EAAE,OAAsB;IACxE,IAAI,OAAO,GAAG,kBAAkB,CAAC;IAEjC,uEAAuE;IACvE,4DAA4D;IAC5D,IAAI,OAAO,KAAK,KAAK,IAAI,UAAU,CAAC,UAAU,EAAE,cAAc,EAAE,CAAC;QAC/D,OAAO,IAAI,0BAA0B,CAAC,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAC9E,CAAC;IAED,oDAAoD;IACpD,IAAI,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,OAAO,IAAI,mBAAmB,CAAC;QAC/B,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YAC7C,OAAO,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,IAAI,oBAAoB,CAAC;IAClC,CAAC;IAED,2CAA2C;IAC3C,OAAO,IAAI,eAAe,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAE3D,oBAAoB;IACpB,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,kBAAkB,CAAC;QAC9B,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC3C,OAAO,IAAI,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,mBAAmB,CAAC;IACjC,CAAC;IAED,OAAO,IAAI,mBAAmB,CAAC;IAC/B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,kFAAkF;AAClF,SAAS,0BAA0B,CAAC,KAAwB,EAAE,MAAM,GAAG,MAAM;IAC3E,IAAI,OAAO,GAAG,KAAK,MAAM,iBAAiB,CAAC;IAC3C,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,IAAI,mBAAmB,KAAK,CAAC,aAAa,GAAG,CAAC;IACvD,CAAC;IACD,IAAI,KAAK,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;QAC/C,OAAO,IAAI,4BAA4B,KAAK,CAAC,sBAAsB,GAAG,CAAC;IACzE,CAAC;IACD,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,IAAI,qBAAqB,KAAK,CAAC,eAAe,GAAG,CAAC;IAC3D,CAAC;IACD,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,eAAe,CAAC,UAAqC,EAAE,OAAsB;IACpF,yDAAyD;IACzD,MAAM,UAAU,GAAG,UAAU,EAAE,iBAAiB,IAAI,IAAI,CAAC;IAEzD,IAAI,OAAO,GAAG,wCAAwC,UAAU,IAAI,CAAC;IAErE,IAAI,OAAO,KAAK,KAAK,IAAI,UAAU,EAAE,cAAc,EAAE,CAAC;QACpD,OAAO,IAAI,0BAA0B,CAAC,UAAU,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,UAAU,EAAE,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/D,OAAO,IAAI,sBAAsB,CAAC;QAClC,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC9C,OAAO,IAAI,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,uBAAuB,CAAC;IACrC,CAAC;IAED,OAAO,IAAI,qBAAqB,CAAC;IACjC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,SAAuB,EAAE,MAAM,GAAG,QAAQ;IAChE,MAAM,WAAW,GAAG,SAAS,CAAC,iBAAiB,IAAI,SAAS,CAAC,eAAe,CAAC;IAE7E,IAAI,OAAO,GAAG,KAAK,MAAM,YAAY,CAAC;IAEtC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,OAAO,IAAI,aAAa,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC;IAC1D,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,IAAI,GAAG,CAAC;QACf,IAAI,SAAS,CAAC,iBAAiB,EAAE,CAAC;YAChC,OAAO,IAAI,KAAK,MAAM,wBAAwB,SAAS,CAAC,SAAS,CAAC,iBAAiB,CAAC,sBAAsB,CAAC;QAC7G,CAAC;QACD,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;YAC9B,OAAO,IAAI,KAAK,MAAM,sBAAsB,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC,oBAAoB,CAAC;QACvG,CAAC;QACD,OAAO,IAAI,KAAK,MAAM,cAAc,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CAAC,QAAqB,EAAE,OAAsB;IACvE,IAAI,OAAO,GAAG,yBAAyB,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;IACrE,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,IAAI,wBAAwB,CAAC;IAC3D,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5C,OAAO,IAAI,cAAc,CAAC,SAAS,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,IAAI,yBAAyB,CAAC;IAC5D,OAAO,IAAI,kBAAkB,CAAC;IAC9B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,yBAAyB,CAAC,WAA+B,EAAE,aAAqB;IACvF,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,8DAA8D,aAAa,eAAe;YACxF,yDAAyD,CAC5D,CAAC;IACJ,CAAC;IACD,OAAO,sBAAsB,WAAW,gBAAgB,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAC7B,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,OAAO;;WAEE,MAAM,CAAC,eAAe,CAAC,CAAC;WACxB,MAAM,CAAC,eAAe,CAAC,CAAC;WACxB,MAAM,CAAC,eAAe,CAAC,CAAC;;;WAGxB,MAAM,CAAC,eAAe,CAAC,CAAC;WACxB,MAAM,CAAC,eAAe,CAAC,CAAC;WACxB,MAAM,CAAC,eAAe,CAAC,CAAC;;;WAGxB,MAAM,CAAC,cAAc,CAAC,CAAC;WACvB,MAAM,CAAC,cAAc,CAAC,CAAC;WACvB,MAAM,CAAC,cAAc,CAAC,CAAC;;mBAEf,MAAM,CAAC,WAAW,iBAAiB,kBAAkB;uBACjD,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAC5B,MAA2B,EAC3B,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,OAAO;;WAEE,MAAM,CAAC,eAAe,CAAC,CAAC;WACxB,MAAM,CAAC,eAAe,CAAC,CAAC;WACxB,MAAM,CAAC,eAAe,CAAC,CAAC;;;WAGxB,MAAM,CAAC,eAAe,CAAC,CAAC;WACxB,MAAM,CAAC,eAAe,CAAC,CAAC;WACxB,MAAM,CAAC,eAAe,CAAC,CAAC;;;WAGxB,MAAM,CAAC,cAAc,CAAC,CAAC;WACvB,MAAM,CAAC,cAAc,CAAC,CAAC;WACvB,MAAM,CAAC,cAAc,CAAC,CAAC;;wBAEV,MAAM,CAAC,gBAAgB,sBAAsB,kBAAkB;sBACjE,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,IAAa;IAC9B,OAAO;;aAEI,IAAI,CAAC,UAAU,CAAC,CAAC;aACjB,IAAI,CAAC,UAAU,CAAC,CAAC;aACjB,IAAI,CAAC,UAAU,CAAC,CAAC;;;aAGjB,IAAI,CAAC,QAAQ,CAAC,CAAC;aACf,IAAI,CAAC,QAAQ,CAAC,CAAC;aACf,IAAI,CAAC,QAAQ,CAAC,CAAC;;YAEhB,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,KAAuB;IACjD,OAAO;;aAEI,KAAK,CAAC,QAAQ,CAAC,CAAC;aAChB,KAAK,CAAC,QAAQ,CAAC,CAAC;aAChB,KAAK,CAAC,QAAQ,CAAC,CAAC;;;aAGhB,KAAK,CAAC,SAAS,CAAC,CAAC;aACjB,KAAK,CAAC,SAAS,CAAC,CAAC;aACjB,KAAK,CAAC,SAAS,CAAC,CAAC;;qBAET,CAAC;AACtB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,WAAW,CAAC,MAAiB,EAAE,OAAsB;IAC5D,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC1D,MAAM,WAAW,GAAG,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IACpF,OAAO;SACA,SAAS,IAAI,WAAW,KAAK,SAAS;mBAC5B,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;;aAEjC,MAAM,CAAC,QAAQ,CAAC,CAAC;aACjB,MAAM,CAAC,QAAQ,CAAC,CAAC;aACjB,MAAM,CAAC,QAAQ,CAAC,CAAC;;;aAGjB,MAAM,CAAC,MAAM,CAAC,CAAC;aACf,MAAM,CAAC,MAAM,CAAC,CAAC;aACf,MAAM,CAAC,MAAM,CAAC,CAAC;;;aAGf,MAAM,CAAC,EAAE,CAAC,CAAC;aACX,MAAM,CAAC,EAAE,CAAC,CAAC;aACX,MAAM,CAAC,EAAE,CAAC,CAAC;;gBAER,MAAM,CAAC,MAAM;cACf,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,KAAsB,EAAE,OAAsB;IACjE,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IACzD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEnF,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,OAAO,4BAA4B,OAAO,6BAA6B,CAAC;IAC1E,CAAC;IACD,OAAO,eAAe,OAAO,eAAe,CAAC;AAC/C,CAAC;AAED,kEAAkE;AAClE,SAAS,eAAe,CAAC,IAAmB,EAAE,MAAc,EAAE,OAAsB;IAClF,gFAAgF;IAChF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;IAC3C,0EAA0E;IAC1E,MAAM,cAAc,GAAG,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;IAEvE,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,KAAK,IAAI,gBAAgB,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;IACzD,CAAC;IACD,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACpC,KAAK,IAAI,gCAAgC,SAAS,CAAC,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC;IACzF,CAAC;IACD,KAAK,IAAI,IAAI,cAAc,KAAK,UAAU,GAAG,CAAC;IAE9C,IAAI,OAAO,GAAG,KAAK,MAAM,QAAQ,KAAK,GAAG,CAAC;IAC1C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,IAAI,KAAK,MAAM,eAAe,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC7E,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,IAAI,KAAK,MAAM,WAAW,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IACjE,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,IAAI,KAAK,MAAM,gBAAgB,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;IAChF,CAAC;IACD,OAAO,IAAI,KAAK,MAAM,SAAS,CAAC;IAChC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,OAAsB,EAAE,OAAsB;IACrE,2EAA2E;IAC3E,gEAAgE;IAChE,MAAM,cAAc,GAAG,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;IACvE,IAAI,OAAO,GAAG,kCAAkC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,cAAc,KAAK,OAAO,CAAC,UAAU,IAAI,CAAC;IAC7H,OAAO,IAAI,sBAAsB,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC;IAC5E,OAAO,IAAI,4BAA4B,SAAS,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC,oBAAoB,CAAC;IACpG,OAAO,IAAI,qBAAqB,CAAC;IACjC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,sBAAsB,CAAC,MAA4B,EAAE,OAAsB;IAClF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAExE,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,IAAI,OAAO,GAAG,2BAA2B,QAAQ,GAAG,CAAC;QACrD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,OAAO,IAAI,yBAAyB,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC;QACtF,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,kBAAkB,CAAC;YACpD,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,IAAI,gBAAgB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;YACpD,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,OAAO,IAAI,wBAAwB,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC;QACnF,CAAC;QACD,OAAO,IAAI,4BAA4B,CAAC;QACxC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,GAAG,2BAA2B,QAAQ,gBAAgB,MAAM,CAAC,UAAU,IAAI,KAAK,IAAI,CAAC;IAChG,OAAO,IAAI,+BAA+B,SAAS,CAAC,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,uBAAuB,CAAC;IAC1H,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO,IAAI,wBAAwB,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC;IACnF,CAAC;IACD,OAAO,IAAI,4BAA4B,CAAC;IACxC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,GAAG;SACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC"}
|
|
1
|
+
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ifc-lite/bcf",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "BIM Collaboration Format (BCF) support for IFC-Lite",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
20
|
"typescript": "^6.0.3",
|
|
21
|
-
"vitest": "^4.1.
|
|
21
|
+
"vitest": "^4.1.11",
|
|
22
22
|
"xmllint-wasm": "5.3.0"
|
|
23
23
|
},
|
|
24
24
|
"license": "MPL-2.0",
|