@bldrs-ai/conway 1.444.1334 → 1.445.1339

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.
Files changed (36) hide show
  1. package/compiled/examples/browser-bundled.cjs +42 -1
  2. package/compiled/examples/cli-bundled.cjs +116 -15
  3. package/compiled/examples/cli-step-bundled.cjs +42 -1
  4. package/compiled/examples/validator-bundled.cjs +42 -1
  5. package/compiled/src/compat/web-ifc/coordination_f64.d.ts +12 -0
  6. package/compiled/src/compat/web-ifc/coordination_f64.d.ts.map +1 -1
  7. package/compiled/src/compat/web-ifc/coordination_f64.js +13 -0
  8. package/compiled/src/compat/web-ifc/ifc_api.d.ts +13 -0
  9. package/compiled/src/compat/web-ifc/ifc_api.d.ts.map +1 -1
  10. package/compiled/src/compat/web-ifc/ifc_api.js +19 -0
  11. package/compiled/src/compat/web-ifc/ifc_api_model_passthrough.d.ts +9 -0
  12. package/compiled/src/compat/web-ifc/ifc_api_model_passthrough.d.ts.map +1 -1
  13. package/compiled/src/compat/web-ifc/ifc_api_preview_coordination.test.d.ts +2 -0
  14. package/compiled/src/compat/web-ifc/ifc_api_preview_coordination.test.d.ts.map +1 -0
  15. package/compiled/src/compat/web-ifc/ifc_api_preview_coordination.test.js +124 -0
  16. package/compiled/src/compat/web-ifc/ifc_api_proxy_ap214.d.ts +10 -0
  17. package/compiled/src/compat/web-ifc/ifc_api_proxy_ap214.d.ts.map +1 -1
  18. package/compiled/src/compat/web-ifc/ifc_api_proxy_ap214.js +35 -2
  19. package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.d.ts +20 -0
  20. package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.d.ts.map +1 -1
  21. package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.js +56 -2
  22. package/compiled/src/ifc/ifc_geometry_extraction.d.ts +5 -4
  23. package/compiled/src/ifc/ifc_geometry_extraction.d.ts.map +1 -1
  24. package/compiled/src/ifc/ifc_geometry_extraction.js +60 -16
  25. package/compiled/src/step/parsing/uint32_sink.d.ts +37 -0
  26. package/compiled/src/step/parsing/uint32_sink.d.ts.map +1 -0
  27. package/compiled/src/step/parsing/uint32_sink.js +50 -0
  28. package/compiled/src/step/parsing/uint32_sink.test.d.ts +2 -0
  29. package/compiled/src/step/parsing/uint32_sink.test.d.ts.map +1 -0
  30. package/compiled/src/step/parsing/uint32_sink.test.js +77 -0
  31. package/compiled/src/step/step_entity_base.d.ts +20 -0
  32. package/compiled/src/step/step_entity_base.d.ts.map +1 -1
  33. package/compiled/src/step/step_entity_base.js +42 -1
  34. package/compiled/src/version/version.js +1 -1
  35. package/compiled/tsconfig.tsbuildinfo +1 -1
  36. package/package.json +1 -1
@@ -70,6 +70,8 @@ export declare class IfcApiProxyAP214 implements IfcApiModelPassthrough {
70
70
  * identity contract (see the IFC proxy's demandCoordination_ note).
71
71
  */
72
72
  private demandCoordination_?;
73
+ /** Unvalidated adopted preview frame — see the IFC proxy twin. */
74
+ private demandCoordinationFromPreview_;
73
75
  _isCoordinated: boolean;
74
76
  linearScalingFactor: number;
75
77
  identity: number[];
@@ -316,6 +318,14 @@ export declare class IfcApiProxyAP214 implements IfcApiModelPassthrough {
316
318
  * @return {Array<number>}
317
319
  */
318
320
  getCoordinationMatrix(): Array<number>;
321
+ /**
322
+ * The coordination frame actually applied to emitted placements —
323
+ * the derived (or validated adopted) recenter, identity when no
324
+ * recenter ran. See ifc_api_model_passthrough.getAppliedCoordination.
325
+ *
326
+ * @return {Array<number>} column-major mat4
327
+ */
328
+ getAppliedCoordination(): Array<number>;
319
329
  /**
320
330
  *
321
331
  * @param ptr
@@ -1 +1 @@
1
- {"version":3,"file":"ifc_api_proxy_ap214.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_proxy_ap214.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ifc_api_proxy_ap214.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_proxy_ap214.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { ConwayGeometry, } from "../../index.js";
2
2
  import * as glmatrix from "gl-matrix";
3
- import { composeTransformF64, deriveCoordinationF64 } from "./coordination_f64.js";
3
+ import { LARGE_COORDINATE_BUDGET_M, TRANSLATION_X, TRANSLATION_Y, TRANSLATION_Z, composeTransformF64, deriveCoordinationF64 } from "./coordination_f64.js";
4
4
  import Logger from "../../logging/logger.js";
5
5
  import ParsingBuffer from "../../parsing/parsing_buffer.js";
6
6
  import { ExtractResult } from "../../index.js";
@@ -109,6 +109,8 @@ export class IfcApiProxyAP214 {
109
109
  * the IFC proxy's delta capture; see its demandCapturedCounts_ note.
110
110
  */
111
111
  this.demandCapturedCounts_ = new Map();
112
+ /** Unvalidated adopted preview frame — see the IFC proxy twin. */
113
+ this.demandCoordinationFromPreview_ = false;
112
114
  this._isCoordinated = false;
113
115
  this.linearScalingFactor = 1;
114
116
  this.identity = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
@@ -214,6 +216,9 @@ export class IfcApiProxyAP214 {
214
216
  if (this.deferredMode_ && loadState.previewCoordinationMatrix !== void 0) {
215
217
  this.demandCoordination_ = loadState.previewCoordinationMatrix;
216
218
  this._isCoordinated = true;
219
+ // Adopted, not derived — validated against the durable walk's
220
+ // first geometry (see the IFC proxy's demandCoordinationFromPreview_).
221
+ this.demandCoordinationFromPreview_ = true;
217
222
  }
218
223
  let FILE_NAME = stepHeader.headers.get("FILE_NAME");
219
224
  if (FILE_NAME !== void 0) {
@@ -848,6 +853,16 @@ export class IfcApiProxyAP214 {
848
853
  const coordinationMatrix = this.model[5];
849
854
  return Array.from(coordinationMatrix);
850
855
  }
856
+ /**
857
+ * The coordination frame actually applied to emitted placements —
858
+ * the derived (or validated adopted) recenter, identity when no
859
+ * recenter ran. See ifc_api_model_passthrough.getAppliedCoordination.
860
+ *
861
+ * @return {Array<number>} column-major mat4
862
+ */
863
+ getAppliedCoordination() {
864
+ return [...(this.demandCoordination_ ?? this.identity)];
865
+ }
851
866
  /**
852
867
  *
853
868
  * @param ptr
@@ -1002,8 +1017,11 @@ export class IfcApiProxyAP214 {
1002
1017
  doubleSided: true,
1003
1018
  blend: 0,
1004
1019
  };
1020
+ const validatePreviewFrame = this.demandCoordinationFromPreview_ &&
1021
+ this.settings?.COORDINATE_TO_ORIGIN === true;
1005
1022
  let nativePt;
1006
- if (!this._isCoordinated && this.settings?.COORDINATE_TO_ORIGIN) {
1023
+ if ((!this._isCoordinated || validatePreviewFrame) &&
1024
+ this.settings?.COORDINATE_TO_ORIGIN) {
1007
1025
  nativePt = geometry.geometry.getPoint(0);
1008
1026
  }
1009
1027
  const expressID = model.getElementByLocalID(geometry.localID)?.expressID;
@@ -1017,6 +1035,21 @@ export class IfcApiProxyAP214 {
1017
1035
  this.demandCoordination_ = derived;
1018
1036
  this._isCoordinated = true;
1019
1037
  }
1038
+ else if (validatePreviewFrame) {
1039
+ // One-shot adopted-frame validation — see the IFC proxy twin
1040
+ // (Share#1634). Bare composition here: AP214 has no per-leaf
1041
+ // recenter (issue #308).
1042
+ this.demandCoordinationFromPreview_ = false;
1043
+ const probe = composeTransformF64(coordinationMatrix, geometryTransform);
1044
+ const magnitude = Math.max(Math.abs(probe[TRANSLATION_X]), Math.abs(probe[TRANSLATION_Y]), Math.abs(probe[TRANSLATION_Z]));
1045
+ if (magnitude > LARGE_COORDINATE_BUDGET_M) {
1046
+ const derived = deriveCoordinationF64(geometryTransform, nativePt, this.NormalizeMat, this.linearScalingFactor);
1047
+ coordinationMatrix = derived;
1048
+ this.demandCoordination_ = derived;
1049
+ Logger.info(`[deferred] preview coordination frame rejected (first durable ` +
1050
+ `placement at ${Math.round(magnitude)}m); re-derived from the durable anchor`);
1051
+ }
1052
+ }
1020
1053
  // Bare composition — no per-leaf recenter (issue #308: AP214
1021
1054
  // instances share one geometry buffer), matching streamAllMeshes.
1022
1055
  const newTransformArr = composeTransformF64(coordinationMatrix, geometryTransform);
@@ -97,6 +97,18 @@ export declare class IfcApiProxyIfc implements IfcApiModelPassthrough {
97
97
  * memory.
98
98
  */
99
99
  private demandCoordination_?;
100
+ /**
101
+ * True while an adopted preview-channel coordination frame is still
102
+ * unvalidated against the durable walk's first geometry. A model can
103
+ * carry geometry in more than one frame (ISSUE_129: a local-scale
104
+ * annotation previews first while the body is georeferenced at
105
+ * ~8.3e6 m), so a frame anchored on the wrong unit leaves the body
106
+ * raw — the Share#1634 browser-vs-node divergence, which was really
107
+ * preview-vs-no-preview. streamNewMeshes_ clears this on its first
108
+ * geometry, re-deriving from it when the adopted frame fails the
109
+ * large-coordinate budget.
110
+ */
111
+ private demandCoordinationFromPreview_;
100
112
  _isCoordinated: boolean;
101
113
  linearScalingFactor: number;
102
114
  identity: number[];
@@ -380,6 +392,14 @@ export declare class IfcApiProxyIfc implements IfcApiModelPassthrough {
380
392
  * @return {Array<number>}
381
393
  */
382
394
  getCoordinationMatrix(): Array<number>;
395
+ /**
396
+ * The coordination frame actually applied to emitted placements —
397
+ * the derived (or validated adopted) recenter, identity when no
398
+ * recenter ran. See ifc_api_model_passthrough.getAppliedCoordination.
399
+ *
400
+ * @return {Array<number>} column-major mat4
401
+ */
402
+ getAppliedCoordination(): Array<number>;
383
403
  /**
384
404
  *
385
405
  * @param ptr
@@ -1 +1 @@
1
- {"version":3,"file":"ifc_api_proxy_ifc.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_proxy_ifc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ifc_api_proxy_ifc.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_proxy_ifc.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { ConwayGeometry, } from "../../index.js";
2
2
  import IfcStepModel from "../../ifc/ifc_step_model.js";
3
3
  import * as glmatrix from "gl-matrix";
4
- import { composeTransformF64, deriveCoordinationF64 } from "./coordination_f64.js";
4
+ import { LARGE_COORDINATE_BUDGET_M, TRANSLATION_X, TRANSLATION_Y, TRANSLATION_Z, composeTransformF64, deriveCoordinationF64 } from "./coordination_f64.js";
5
5
  import { IfcProperties } from "./ifc_properties.js";
6
6
  import Logger from "../../logging/logger.js";
7
7
  import { ProgressTracker } from "../../core/progress.js";
@@ -60,6 +60,18 @@ export class IfcApiProxyIfc {
60
60
  this.demandCursor_ = 0;
61
61
  /** Cursor into demandAggregates_ — items before it are extracted. */
62
62
  this.demandAggregatesCursor_ = 0;
63
+ /**
64
+ * True while an adopted preview-channel coordination frame is still
65
+ * unvalidated against the durable walk's first geometry. A model can
66
+ * carry geometry in more than one frame (ISSUE_129: a local-scale
67
+ * annotation previews first while the body is georeferenced at
68
+ * ~8.3e6 m), so a frame anchored on the wrong unit leaves the body
69
+ * raw — the Share#1634 browser-vs-node divergence, which was really
70
+ * preview-vs-no-preview. streamNewMeshes_ clears this on its first
71
+ * geometry, re-deriving from it when the adopted frame fails the
72
+ * large-coordinate budget.
73
+ */
74
+ this.demandCoordinationFromPreview_ = false;
63
75
  this._isCoordinated = false;
64
76
  this.linearScalingFactor = 1;
65
77
  this.identity = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
@@ -166,6 +178,9 @@ export class IfcApiProxyIfc {
166
178
  if (this.deferredMode_ && loadState.previewCoordinationMatrix !== void 0) {
167
179
  this.demandCoordination_ = loadState.previewCoordinationMatrix;
168
180
  this._isCoordinated = true;
181
+ // Adopted, not derived: validate against the durable walk's first
182
+ // geometry before trusting it (see demandCoordinationFromPreview_).
183
+ this.demandCoordinationFromPreview_ = true;
169
184
  }
170
185
  let FILE_NAME = stepHeader.headers.get("FILE_NAME");
171
186
  if (FILE_NAME !== void 0) {
@@ -975,6 +990,16 @@ export class IfcApiProxyIfc {
975
990
  /* eslint-enable no-unused-vars */
976
991
  return Array.from(coordinationMatrix);
977
992
  }
993
+ /**
994
+ * The coordination frame actually applied to emitted placements —
995
+ * the derived (or validated adopted) recenter, identity when no
996
+ * recenter ran. See ifc_api_model_passthrough.getAppliedCoordination.
997
+ *
998
+ * @return {Array<number>} column-major mat4
999
+ */
1000
+ getAppliedCoordination() {
1001
+ return [...(this.demandCoordination_ ?? this.identity)];
1002
+ }
978
1003
  /**
979
1004
  *
980
1005
  * @param ptr
@@ -1191,8 +1216,11 @@ export class IfcApiProxyIfc {
1191
1216
  doubleSided: true,
1192
1217
  blend: 0,
1193
1218
  };
1219
+ const validatePreviewFrame = this.demandCoordinationFromPreview_ &&
1220
+ this.settings?.COORDINATE_TO_ORIGIN === true;
1194
1221
  let nativePt;
1195
- if (!this._isCoordinated && this.settings?.COORDINATE_TO_ORIGIN) {
1222
+ if ((!this._isCoordinated || validatePreviewFrame) &&
1223
+ this.settings?.COORDINATE_TO_ORIGIN) {
1196
1224
  nativePt = geometry.geometry.getPoint(0);
1197
1225
  }
1198
1226
  // normalize() recenters the shared geometry buffer (side effect)
@@ -1211,6 +1239,25 @@ export class IfcApiProxyIfc {
1211
1239
  this.demandCoordination_ = derived;
1212
1240
  this._isCoordinated = true;
1213
1241
  }
1242
+ else if (validatePreviewFrame) {
1243
+ // One-shot check of an adopted preview frame against the durable
1244
+ // walk's first geometry: when the composed placement still lands
1245
+ // beyond the large-coordinate budget, the preview anchored in a
1246
+ // different frame than the model body (Share#1634) — re-derive
1247
+ // from this geometry, the classic path's anchor. The throwaway
1248
+ // preview scene may briefly disagree; the durable model must
1249
+ // place like the classic open.
1250
+ this.demandCoordinationFromPreview_ = false;
1251
+ const probe = composeTransformF64(coordinationMatrix, geometryTransform, center);
1252
+ const magnitude = Math.max(Math.abs(probe[TRANSLATION_X]), Math.abs(probe[TRANSLATION_Y]), Math.abs(probe[TRANSLATION_Z]));
1253
+ if (magnitude > LARGE_COORDINATE_BUDGET_M) {
1254
+ const derived = deriveCoordinationF64(geometryTransform, nativePt, this.NormalizeMat, this.linearScalingFactor);
1255
+ coordinationMatrix = derived;
1256
+ this.demandCoordination_ = derived;
1257
+ Logger.info(`[deferred] preview coordination frame rejected (first durable ` +
1258
+ `placement at ${Math.round(magnitude)}m); re-derived from the durable anchor`);
1259
+ }
1260
+ }
1214
1261
  const newTransformArr = composeTransformF64(coordinationMatrix, geometryTransform, center);
1215
1262
  geometryMaterialTransformMap.set(expressID, [geometry.geometry, material_, newTransformArr]);
1216
1263
  const color = {
@@ -1333,6 +1380,9 @@ export class IfcApiProxyIfc {
1333
1380
  const geometryTransform = nativeTransform?.getValues();
1334
1381
  if (!this._isCoordinated && this.settings?.COORDINATE_TO_ORIGIN) {
1335
1382
  coordinationMatrix = deriveCoordinationF64(geometryTransform, nativePt, this.NormalizeMat, this.linearScalingFactor);
1383
+ // Persisted for getAppliedCoordination (Share#1634): report
1384
+ // the real applied frame, not the classic silent identity.
1385
+ this.demandCoordination_ = Array.from(coordinationMatrix);
1336
1386
  this._isCoordinated = true;
1337
1387
  }
1338
1388
  const newTransformArr = composeTransformF64(coordinationMatrix, geometryTransform, center);
@@ -1461,6 +1511,8 @@ export class IfcApiProxyIfc {
1461
1511
  if (!this._isCoordinated && this.settings?.COORDINATE_TO_ORIGIN) {
1462
1512
  Logger.info("Setting up coordinationMatrix");
1463
1513
  coordinationMatrix = deriveCoordinationF64(geometryTransform, nativePt, this.NormalizeMat, this.linearScalingFactor);
1514
+ // Persisted for getAppliedCoordination (Share#1634).
1515
+ this.demandCoordination_ = Array.from(coordinationMatrix);
1464
1516
  this._isCoordinated = true;
1465
1517
  }
1466
1518
  const newTransformArr = composeTransformF64(coordinationMatrix, geometryTransform, center);
@@ -1575,6 +1627,8 @@ export class IfcApiProxyIfc {
1575
1627
  if (!this._isCoordinated && this.settings?.COORDINATE_TO_ORIGIN) {
1576
1628
  Logger.info("Setting up coordinationMatrix");
1577
1629
  coordinationMatrix = deriveCoordinationF64(geometryTransform, nativePt, this.NormalizeMat, this.linearScalingFactor);
1630
+ // Persisted for getAppliedCoordination (Share#1634).
1631
+ this.demandCoordination_ = Array.from(coordinationMatrix);
1578
1632
  this._isCoordinated = true;
1579
1633
  }
1580
1634
  const newTransformArr = composeTransformF64(coordinationMatrix, geometryTransform, center);
@@ -57,16 +57,17 @@ export declare function extractColorOrFactor(from: IfcColourRgb | IfcNormalisedR
57
57
  * @return {ColorRGBA}
58
58
  */
59
59
  export declare function extractColorOrFactorMultiply(from: IfcColourRgb | IfcNormalisedRatioMeasure, surfaceColor: ColorRGBA, alpha?: number): ColorRGBA;
60
- /**
61
- * Handles Geometry data extraction from a populated IfcStepModel
62
- * Can export to OBJ, GLTF (Draco), GLB (Draco)
63
- */
64
60
  export declare class IfcGeometryExtraction {
65
61
  private readonly conwayModel;
66
62
  readonly model: IfcStepModel;
67
63
  private readonly limitCSGDepth;
68
64
  private readonly csgDepthLimit;
69
65
  private readonly lowMemoryMode;
66
+ private readonly polygonalIndexSink_;
67
+ private readonly polygonalStartIndexSink_;
68
+ private readonly polygonalFaceOffsetSink_;
69
+ private readonly polygonalStartOffsetSink_;
70
+ private polygonalSinksInUse_;
70
71
  private readonly TWO_DIMENSIONS;
71
72
  private readonly THREE_DIMENSIONS;
72
73
  private wasmModule;
@@ -1 +1 @@
1
- {"version":3,"file":"ifc_geometry_extraction.d.ts","sourceRoot":"","sources":["../../../src/ifc/ifc_geometry_extraction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAGd,cAAc,EACd,sBAAsB,EAEtB,OAAO,EAIP,WAAW,EAUX,wBAAwB,EAOxB,aAAa,EAGb,SAAS,EACT,sBAAsB,EAEtB,cAAc,EACd,iBAAiB,EAcjB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAqB,SAAS,EAAuB,MAAM,4BAA4B,CAAA;AAC9F,OAAO,EAAE,aAAa,EAAqB,MAAM,wBAAwB,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAoB,MAAM,kBAAkB,CAAA;AAE1E,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EAEnB,oBAAoB,EACpB,8BAA8B,EAC9B,mBAAmB,EACnB,mBAAmB,EACnB,gCAAgC,EAChC,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACX,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAEL,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAGhB,oCAAoC,EACpC,mBAAmB,EACnB,YAAY,EAEZ,YAAY,EACZ,oBAAoB,EAEpB,mBAAmB,EAGnB,aAAa,EACb,yBAAyB,EACzB,kBAAkB,EAGlB,mBAAmB,EACnB,UAAU,EAEV,aAAa,EACb,qBAAqB,EAErB,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,eAAe,EAMf,wBAAwB,EACxB,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,iBAAiB,EAEjB,QAAQ,EAER,SAAS,EACT,iBAAiB,EACjB,QAAQ,EAER,yBAAyB,EACzB,OAAO,EAEP,cAAc,EAGd,eAAe,EAEf,wBAAwB,EACxB,WAAW,EAEX,sBAAsB,EAEtB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAGlB,WAAW,EAIX,wBAAwB,EACxB,mBAAmB,EAEnB,eAAe,EACf,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,0BAA0B,EAC1B,kCAAkC,EAClC,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAE3B,iBAAiB,EAMjB,4BAA4B,EAC5B,oBAAoB,EACpB,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,EAEnB,oCAAoC,EACpC,8CAA8C,EAC9C,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAEhB,4BAA4B,EAC5B,UAAU,EACV,OAAO,EACP,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EACjB,QAAQ,EACR,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EAErB,0BAA0B,EAE1B,oBAAoB,EACpB,cAAc,EACf,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAqB,MAAM,qBAAqB,CAAA;AACxE,OAAO,YAAY,MAAM,kBAAkB,CAAA;AAM3C,OAAO,cAAc,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAoB,MAAM,wBAAwB,CAAA;AAYzE;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACpC,IAAI,EAAE,mBAAmB,GAAG,oBAAoB,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAY/E;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,GAAE,MAAU,GAAG,SAAS,CAE7F;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,GAAE,MAAU,GAAG,SAAS,CAGhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAChC,IAAI,EAAE,YAAY,GAAG,yBAAyB,EAC9C,YAAY,EAAE,SAAS,EAAE,KAAK,GAAE,MAAU,GAAG,SAAS,CAezD;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CACxC,IAAI,EAAE,YAAY,GAAG,yBAAyB,EAC9C,YAAY,EAAE,SAAS,EAAE,KAAK,GAAE,MAAU,GAAG,SAAS,CAsBzD;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAyE9B,OAAO,CAAC,QAAQ,CAAC,WAAW;aACZ,KAAK,EAAE,YAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa;IA1EhC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAY;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAY;IAE7C,OAAO,CAAC,UAAU,CAAY;IAE9B,SAAgB,KAAK,EAAE,eAAe,CAAA;IAEtC,SAAgB,SAAS,EAAE,eAAe,CAAA;IAE1C,SAAgB,SAAS,EAAE,gBAAgB,CAAA;IAE3C,SAAgB,aAAa,EAAE,gBAAgB,CAAA;IAE/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAEjD,SAAgB,MAAM,EAAE,cAAc,CAAA;IAEtC,SAAgB,aAAa,EAAE,cAAc,CAAA;IAE7C,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAuB;IAChE,OAAO,CAAC,mBAAmB,CAAQ;IAEnC,OAAO,CAAC,cAAc,CAAc;IAEpC,OAAO,CAAC,cAAc,CAAa;IAEnC,OAAO,CAAC,0BAA0B,CAAgD;IAClF,OAAO,CAAC,0BAA0B,CAAgD;IAClF,OAAO,CAAC,gCAAgC,CACoB;IAE5D,OAAO,CAAC,sBAAsB,CAA4C;IAEnE,WAAW,EAAE,qBAAqB,GAAG,IAAI,CAAO;IAEvD,OAAO,CAAC,sBAAsB,CAAoB;IAClD,OAAO,CAAC,sBAAsB,CAAoB;IAElD,OAAO,CAAC,cAAc,CAAgB;IAEtC;;;;;OAKG;IACH,SAAgB,kBAAkB,sBAA4B;IAE9D,OAAO,CAAC,QAAQ,CAAY;IAE5B;;;;;;;;;OASG;IACH;;;;;;sEAMkE;IAC3D,uBAAuB,EAAG,OAAO,CAAA;gBAGrB,WAAW,EAAE,cAAc,EAC5B,KAAK,EAAE,YAAY,EAClB,aAAa,GAAE,OAAc,EAC7B,aAAa,GAAE,MAAW,EAC1B,aAAa,GAAE,OAAe;IAuBjD;;OAEG;IACH,qBAAqB;IAOrB;;OAEG;IACH,4BAA4B;IAY5B;;OAEG;IACH,sCAAsC;IAYtC;;OAEG;IACH,gCAAgC;IAUhC;;OAEG;IACH,gCAAgC;IAUhC;;;OAGG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;;OAGG;IACH,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAIlC;;;OAGG;IACH,aAAa,IAAI,UAAU;IAK3B;;;;OAIG;IACH,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC;IAcrE;;;;;OAKG;IACH,8BAA8B,IAAI,8BAA8B;IAShE;;;;OAIG;IACH,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAY9D;;;;;OAKG;IACH,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAa9D;;;;;OAKG;IACH,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC;IAa/D;;;;OAIG;IACH,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAa9D;;;OAGG;IACH,0BAA0B,IAAI,SAAS,CAAC,mBAAmB,CAAC;IAQ5D;;;;OAIG;IACH,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAc/D;;;;OAIG;IACH,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAa/D;;;;;OAKG;IACH,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAWxD;;;;;OAKG;IACH,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,iBAAiB;IAW1D,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAyC;IAEnF;;OAEG;IACH,uCAAuC,IAAI,IAAI;IAQ/C;;;;OAIG;IACH,oCAAoC,CAChC,gCAAgC,EAAE,gCAAgC,GAAG,IAAI;IAK7E;;;;;OAKG;IACH,gCAAgC,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,gCAAgC;IAwBxF;;;;;OAKG;IACH,mBAAmB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAY7D;;;;OAIG;IACH,mBAAmB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAajE;;;;OAIG;IACH,aAAa,IAAI,OAAO;IAQxB;;;;OAIG;IACH,OAAO,CAAC,OAAO,GAAE,MAAU;IAO3B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAItB;;;;OAIG;IACH,OAAO,CAAC,8BAA8B;IAYtC;;;;;OAKG;IACH,OAAO,CAAC,+BAA+B;IAYvC;;;;;OAKG;IACH,OAAO,CAAC,0BAA0B;IA0ClC;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAsH/B;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAC,YAAY,GAAG,YAAY,GAAG,WAAW,GAAG,GAAG;IAarE;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAC,YAAY,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU;IAe9E;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAiBhC;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,GAAG,OAAO,GAAG,SAAS;IAcvE;;;;;OAKG;IACH,mCAAmC,CAAC,IAAI,EAAE,oCAAoC;IAqC9E;;;;OAIG;IACH,oBAAoB,CAAE,OAAO,EAAE,MAAM;IAOrC,kBAAkB,CAAE,IAAI,EACtB,gBAAgB,GAChB,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,GACb,qBAAqB,EACrB,eAAe,EAAE,OAAO,EACxB,SAAS,GAAE,OAAe,EAC1B,kBAAkB,CAAC,EAAE,qBAAqB,GAAI,aAAa,GAAG,SAAS;IAoBzE,8BAA8B,CAC5B,IAAI,EAAE,gBAAgB,EACtB,SAAS,GAAE,OAAe,EAC1B,kBAAkB,CAAC,EAAC,qBAAqB,GAAI,aAAa,GAAG,SAAS;IAKxE,+BAA+B,CAC7B,IAAI,EAAE,gBAAgB,EACtB,SAAS,GAAE,OAAe,GAAI,aAAa,GAAG,SAAS;IAKzD;;;;;OAKG;IACH,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,wBAAwB,EAClE,SAAS,GAAE,OAAe;IA8I9B;;;;;;;;OAQG;IACH,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,GAC9C,mBAAmB,GACnB,gBAAgB,GAChB,iBAAiB,GACjB,wBAAwB,GACxB,cAAc,GACd,QAAQ,EACV,SAAS,GAAE,OAAe,EAC1B,kBAAkB,CAAC,EAAC,qBAAqB,EACzC,eAAe,GAAE,OAAe;IAsMhC;;;;OAIG;IACH,mBAAmB,CAAC,IAAI,EAAE,eAAe;IAmKzC;;;;;;;OAOG;IACH,iBAAiB,CAAC,IAAI,EAAE,aAAa,EACjC,kBAAkB,CAAC,EAAE,qBAAqB,EAC1C,UAAU,CAAC,EAAC,aAAa,GAAG,MAAM,GAAG,SAAS;IAyClD;;;;;OAKG;IACH,qBAAqB,CACjB,IAAI,EAAE,iBAAiB,EACvB,SAAS,GAAE,OAAe,EAC1B,SAAS,GAAE,OAAe,GAAG,IAAI;IA4CrC;;;;;OAKG;IACH,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,EACzC,SAAS,GAAE,OAAe,EAC1B,SAAS,GAAE,OAAe;IAsC9B;;;;;;;OAOG;IACH,YAAY,CAAC,IAAI,EAAE,QAAQ,EACvB,SAAS,GAAE,OAAe,EAC1B,SAAS,GAAE,OAAe;IA6C9B;;;;;OAKG;IACH,gCAAgC,CAAC,IAAI,EAAE,4BAA4B,EAC/D,SAAS,GAAE,OAAe,EAC1B,SAAS,GAAE,OAAe;IAuD9B;;;;;OAKG;IACH,wBAAwB,CACpB,IAAI,EAAE,oBAAoB,EAC1B,SAAS,GAAE,OAAe,EAC1B,SAAS,GAAE,OAAe;IAsE9B;;;;;OAKG;IACH,wBAAwB,CAAC,IAAI,EAAE,oBAAoB,EAC/C,SAAS,GAAE,OAAe,EAC1B,SAAS,GAAE,OAAe;IA8D9B;;;;;;OAMG;IACH,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,gBAAgB,GAAG,SAAS;IAsXjE;;;;;;OAMG;IACH,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,GAAG,SAAS;IAsCtE;;;;;;OAMG;IACH,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,GAAG,SAAS;IAoCtE;;;;;;OAMG;IACH,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,GAAG,SAAS;IAsCtE;;;;;;OAMG;IACH,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,GAAG,SAAS;IAuCtE;;;;;;OAMG;IACH,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,GAAG,SAAS;IA0CtE;;;;;;OAMG;IACH,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,GAAG,SAAS;IAsCtE;;;;;;OAMG;IACH,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,EACzC,WAAW,GAAC,OAAc,EAC1B,KAAK,GAAC,OAAe,GACtB,WAAW,GAAG,SAAS;IA2C1B;;;;;;;OAOG;IACH,YAAY,CACR,IAAI,EAAE,QAAQ,EACd,WAAW,GAAC,OAAc,EAC1B,MAAM,GAAC,OAAe,EACtB,iBAAiB,GAAE,iBAAiB,GAAG,SAAkB,GAAG,WAAW,GAAG,SAAS;IA4GvF;;;;;;;;OAQG;IACH,mBAAmB,CACjB,IAAI,EAAE,eAAe,EACrB,WAAW,GAAC,OAAc,EAC1B,MAAM,GAAC,OAAe,EACtB,sBAAsB,CAAC,EAAE,wBAAwB,GAAI,WAAW;IAoJlE;;;;;;;;OAQG;IACH,cAAc,CAAC,IAAI,EAAC,OAAO,EACvB,WAAW,GAAC,OAAc,EAC1B,MAAM,GAAC,OAAe,EACtB,sBAAsB,CAAC,EAAE,wBAAwB,GAAI,WAAW,GAAG,SAAS;IAqE9E;;;;;;;OAOG;IACL,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAC5B,MAAM,GAAC,OAAe,EACtB,WAAW,GAAC,OAAc,EAC1B,sBAAsB,CAAC,EAAE,wBAAwB,GAAI,WAAW,GAAG,SAAS;IAoDhF;;;;;;;OAOG;IACH,iBAAiB,CACb,IAAI,EAAE,UAAU,EAChB,MAAM,GAAC,OAAe,EACtB,WAAW,GAAC,OAAc,EAC1B,sBAAsB,CAAC,EAAE,wBAAwB,GAAI,WAAW,GAAG,SAAS;IAmDhF;;;;;;OAMG;IACH,sBAAsB,CACpB,IAAI,EAAE,eAAe,EACrB,WAAW,GAAC,OAAc,EAC1B,MAAM,GAAC,OAAe,GACrB,WAAW,GAAG,SAAS;IAwH1B;;;;;;OAMG;IACH,2BAA2B,CAAC,MAAM,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAC,MAAM,GAAG,YAAY;IAazF;;;;;;;OAOG;IACH,4CAA4C,CAAC,MAAM,EAAE,iBAAiB,EAAE,EACpE,UAAU,EAAE,MAAM,GAAG,YAAY;IA+BrC;;;;;;;;;OASG;IACH,oCAAoC,CAChC,MAAM,EAAE,iBAAiB,EAAE,EAC3B,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,EACpB,gBAAgB,CAAC,EAAE,MAAM,GAC1B,qBAAqB;IAsDxB;;;;;;OAMG;IACH,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAChC,WAAW,GAAC,OAAc,EAC1B,MAAM,GAAC,OAAe,GACvB,WAAW,GAAG,SAAS;IA4B1B;;;;OAIG;IACH,qBAAqB,CAAC,IAAI,EAAE,sBAAsB,GAChD,4BAA4B,GAAG,WAAW,GAAG,SAAS;IAqCxD;;;;OAIG;IACH,+BAA+B,CAAC,IAAI,EAAE,4BAA4B,GAAG,WAAW,GAAG,SAAS;IAwC5F;;;;;;OAMG;IACH,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,GAAG,SAAS;IA2BtE;;;;;;OAMG;IACH,4BAA4B,CAAC,IAAI,EAAE,yBAAyB;IA0B5D;;;;;;OAMG;IACH,0BAA0B,CAAC,IAAI,EAAE,oBAAoB,GAAG,WAAW,GAAG,SAAS;IA4B/E;;;;;;OAMG;IACH,uBAAuB,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,GAAG,SAAS;IA0G3E;;;;;;;;OAQG;IACH,iBAAiB,CACb,IAAI,EAAE,aAAa,EACnB,aAAa,EAAE,UAAU,EACzB,SAAS,GAAE,OAAe,EAC1B,OAAO,GAAE,OAAe,EACxB,OAAO,GAAE,aAAa,EAAE,GAAG,SAAkB;IAmIjD;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;;;;;;;;;OAWG;IACH,yBAAyB,CAAC,IAAI,EAAE,qBAAqB,EACjD,oBAAoB,CAAC,EAAE,MAAM,EAC7B,SAAS,GAAE,OAAe,EAC1B,OAAO,GAAE,OAAe,EACxB,YAAY,GAAE,OAAe;IA+GjC;;;;;OAKG;IACI,sBAAsB,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO;IAMvE;;;;;OAKG;IACH,wBAAwB,CAAC,IAAI,EAAE,mBAAmB,EAAE,EAChD,aAAa,EAAE,MAAM,EACrB,SAAS,GAAE,OAAe;IAsB9B;;;;OAIG;IACH,+BAA+B,CAAC,IAAI,EAAE,wBAAwB,EAAE,SAAS,GAAE,OAAe;IAM1F;;;;;OAKG;IACH,qBAAqB,CAAC,IAAI,EAAE,cAAc,EACtC,SAAS,GAAE,OAAe,EAAE,SAAS,GAAE,OAAe;IAO1D;;;;;;OAMG;IACH,gCAAgC,CAC5B,IAAI,EAAE,yBAAyB,EAC/B,oBAAoB,CAAC,EAAE,MAAM,EAC7B,SAAS,GAAE,OAAe,EAC1B,OAAO,GAAE,OAAe;IAwB5B;;;;;;;;OAQG;IACH,YAAY,CACR,IAAI,EAAE,OAAO,EAAE,EACf,aAAa,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,cAAc,GAAG,SAAS,EACtC,SAAS,GAAE,OAAe,EAC1B,SAAS,GAAE,OAAe,GAAG,cAAc;IAyC/C;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,kBAAkB;IAUhD;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;IAmBtE;;;;;;OAMG;IACH,sBAAsB,CAClB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,EACrC,EAAE,EAAE,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI;IAO5C;;;;;OAKG;IACH,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,cAAc;IAqB9D;;;;;;;OAOG;IACH,qBAAqB,CACjB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EACnB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,EACrB,KAAK,SAAI,EACT,GAAG,SAAc,GAAG,IAAI;IAS5B;;;;;OAKG;IACH,2BAA2B,CACvB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAC1B,EAAE,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI;IAmB3C;;;;;OAKG;IACH,8BAA8B,CAAC,IAAI,EAAE,0BAA0B,GAAG,cAAc;IA0BhF;;;;;OAKG;IACH,sCAAsC,CAClC,IAAI,EAAE,kCAAkC,GAAG,cAAc;IAS7D;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO;IAW7D;;;;;OAKG;IACH,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,eAAe,EAAE,QAAQ,EAAE,cAAc;IAkMpF;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAC,aAAa;IA8D/D;;;;;OAKG;IACH,+BAA+B,CAAC,IAAI,EAAE,2BAA2B,EAAE,aAAa,EAAE,aAAa;IAwB/F;;;;;OAKG;IACH,0BAA0B,CAAC,IAAI,EAAE,sBAAsB,EAAE,aAAa,EAAE,aAAa;IA0BrF;;;;;OAKG;IACH,yBAAyB,CAAC,IAAI,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa;IAWnF;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc;IA2DnD;;;;;OAKG;IACH,uBAAuB,CAAC,IAAI,EAAE,mBAAmB,GAAG,kBAAkB;IA0CtE;;;;;;;OAOG;IACH,mCAAmC,CAAC,IAAI,EAAE,oCAAoC,GAC1E,8CAA8C,GAAG,GAAG;IA8CxD;;;;;;OAMG;IACH,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAC7E;;;;;;;OAOG;IACH,uBAAuB,CACrB,IAAI,EAAE,iBAAiB,EACvB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,IAAI,GAAG,sBAAsB;IAwD5C;;;;;;OAMG;IACH,uBAAuB,CAAC,IAAI,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAC/E;;;;;;;OAOG;IAEH,uBAAuB,CACrB,IAAI,EAAE,mBAAmB,EACzB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,IAAI,GAAG,sBAAsB;IAwE5C;;;;;;OAMG;IACH,8BAA8B,CAAC,IAAI,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IACtF;;;;;;;OAOG;IAEH,8BAA8B,CAC5B,IAAI,EAAE,mBAAmB,EACzB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,IAAI,GAAG,sBAAsB;IAsE5C;;;;OAIG;IACH,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,EAAE,SAAS,GAAE,OAAe;IA+CrE;;;;;;;;;OASG;IACH,4BAA4B,CACxB,IAAI,EAAE,qBAAqB,EAC3B,iBAAiB,EAAE,oBAAoB,EACvC,oBAAoB,EAAE,MAAM,EAC5B,eAAe,EAAC,MAAM,EAAE,EACxB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,OAAO,GAAE,OAAe;IA8F5B;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,oBAAoB,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS;IA0E/E;;;;OAIG;IACH,eAAe,CACX,IAAI,EAAE,WAAW,GACjB,eAAe,GACf,kBAAkB,GAClB,qBAAqB,GACrB,sBAAsB,GACtB,wBAAwB,GACxB,mBAAmB,GACnB,yBAAyB,GACzB,0BAA0B,GAAG,MAAM,GAAG,SAAS;IAyEnD;;;;OAIG;IACH,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;IAoC1D;;OAEG;IACH,sBAAsB;IAWtB;;OAEG;IACH,8BAA8B;IAiB9B;;OAEG;IACH,mBAAmB;IAqBnB;;OAEG;IACH,0BAA0B;IAsD1B;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IA0CjD;;;;OAIG;IACH,YAAY,CAAC,cAAc,EAAC,MAAM,EAAE,QAAQ,EAAC,cAAc;IAa3D,OAAO,CAAC,uBAAuB,CAAQ;IAGvC,OAAO,CAAC,wBAAwB,CAAC,CAAa;IAE9C;;;;;;;;;;;;;;;;;;;OAmBG;IACI,uBAAuB,IAAI,GAAG,CAAC,MAAM,CAAC;IA8B7C;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IA2D9B;;;;;;;;;;;;;OAaG;IACI,uBAAuB,CAAE,kBAAkB,GAAE,OAAe,GAAI,IAAI;IAa3E;;;;;;;;;;;;;;;OAeG;IACI,+BAA+B,CAAE,OAAO,EAAE,MAAM,GAAI,OAAO;IAelE;;;;;;;;;;;OAWG;IACI,4BAA4B,IAAI,IAAI;IAU3C;;;;;;;;;OASG;IACI,2BAA2B,CAAE,YAAY,EAAE,gBAAgB,GAAI,IAAI;IA0C1E;;;;;;;;;;;;OAYG;IACH,sBAAsB,CAClB,OAAO,EAAE,UAAU,EACnB,mBAAmB,CAAC,EAAE,CAAC,oBAAoB,EAAE,MAAM,EAAE,CAAC,GAAI,IAAI;IA8KlE;;;;;;;;;;;;;OAaG;IACH,sBAAsB,CAAE,UAAU,CAAC,EAAE,qBAAqB,GACxD;QAAC,aAAa;QAAE,eAAe;KAAC;IAsBlC;;;;;;;;;;OAUG;IACG,2BAA2B,CAC7B,UAAU,CAAC,EAAE,qBAAqB,EAClC,eAAe,GAAE,MAA2C,GAC9D,OAAO,CAAC,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IA6B3C;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAE,iCAAiC;CAyE3C"}
1
+ {"version":3,"file":"ifc_geometry_extraction.d.ts","sourceRoot":"","sources":["../../../src/ifc/ifc_geometry_extraction.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { BlendMode, } from "../../dependencies/conway-geom/index.js";
2
+ import { Uint32Sink } from "../step/parsing/uint32_sink.js";
2
3
  import { exponentToRoughness } from "../core/canonical_material.js";
3
4
  import { CanonicalMeshType } from "../core/canonical_mesh.js";
4
5
  import { yieldToEventLoop } from "../core/progress.js";
@@ -108,6 +109,12 @@ export function extractColorOrFactorMultiply(from, surfaceColor, alpha = 1) {
108
109
  * Handles Geometry data extraction from a populated IfcStepModel
109
110
  * Can export to OBJ, GLTF (Draco), GLB (Draco)
110
111
  */
112
+ /**
113
+ * Starting capacities for the reused polygonal-faceset sinks: enough that a
114
+ * typical faceset never reallocates, while still growing for outliers.
115
+ */
116
+ const POLYGONAL_INDEX_SINK_CAPACITY = 65536;
117
+ const POLYGONAL_FACE_SINK_CAPACITY = 16384;
111
118
  export class IfcGeometryExtraction {
112
119
  constructor(conwayModel, model, limitCSGDepth = true, csgDepthLimit = 20, lowMemoryMode = false) {
113
120
  this.conwayModel = conwayModel;
@@ -115,6 +122,13 @@ export class IfcGeometryExtraction {
115
122
  this.limitCSGDepth = limitCSGDepth;
116
123
  this.csgDepthLimit = csgDepthLimit;
117
124
  this.lowMemoryMode = lowMemoryMode;
125
+ /* Reused across polygonal-faceset extractions; see extractPolygonalFaceSet. */
126
+ this.polygonalIndexSink_ = new Uint32Sink(POLYGONAL_INDEX_SINK_CAPACITY);
127
+ this.polygonalStartIndexSink_ = new Uint32Sink(POLYGONAL_FACE_SINK_CAPACITY);
128
+ this.polygonalFaceOffsetSink_ = new Uint32Sink(POLYGONAL_FACE_SINK_CAPACITY);
129
+ this.polygonalStartOffsetSink_ = new Uint32Sink(POLYGONAL_FACE_SINK_CAPACITY);
130
+ /* Guards the sinks against a re-entrant faceset extraction. */
131
+ this.polygonalSinksInUse_ = false;
118
132
  this.TWO_DIMENSIONS = 2;
119
133
  this.THREE_DIMENSIONS = 3;
120
134
  this.circleSegments = 12;
@@ -525,11 +539,30 @@ export class IfcGeometryExtraction {
525
539
  */
526
540
  extractPolygonalFaceSet(entity, temporary = false, isRelVoid = false) {
527
541
  const result = ExtractResult.COMPLETE;
528
- // Temporary storage for indices and start indices
529
- const allIndices = [];
530
- const allStartIndices = [];
531
- const polygonalFaceBufferOffsets = [];
532
- const startIndicesBufferOffsets = [];
542
+ // Reusable typed sinks. A tessellated model can carry millions of
543
+ // IfcIndexedPolygonalFace records, and the boxed `Array< number >`
544
+ // this loop used to build per face — which the generated CoordIndex
545
+ // getter also cached on the face, keeping it alive — dominated both
546
+ // GC time and retained heap during extraction. Indices are parsed
547
+ // straight from the STEP buffer into these instead, reused across
548
+ // facesets.
549
+ // The sinks are extractor-scoped, so a nested faceset extraction
550
+ // reached from inside this one would silently clobber them. Nothing
551
+ // in the window between reset and the wasm copies below recurses
552
+ // today (the face loop only parses), so this guards the invariant
553
+ // rather than a live bug — fail loudly if that ever changes.
554
+ if (this.polygonalSinksInUse_) {
555
+ throw new Error("extractPolygonalFaceSet re-entered: the shared index sinks are already in use");
556
+ }
557
+ this.polygonalSinksInUse_ = true;
558
+ const allIndices = this.polygonalIndexSink_;
559
+ const allStartIndices = this.polygonalStartIndexSink_;
560
+ const polygonalFaceBufferOffsets = this.polygonalFaceOffsetSink_;
561
+ const startIndicesBufferOffsets = this.polygonalStartOffsetSink_;
562
+ allIndices.reset();
563
+ allStartIndices.reset();
564
+ polygonalFaceBufferOffsets.reset();
565
+ startIndicesBufferOffsets.reset();
533
566
  let indicesPerFace = -1;
534
567
  // Prepare indices and start indices for all faces
535
568
  entity.Faces.forEach((polygonalFace) => {
@@ -539,35 +572,43 @@ export class IfcGeometryExtraction {
539
572
  startIndicesBufferOffsets.push(allStartIndices.length);
540
573
  let coordIndex = 0;
541
574
  if (polygonalFace instanceof IfcIndexedPolygonalFaceWithVoids) {
575
+ // Voided faces are rare; keep the straightforward getter path.
542
576
  indicesPerFace = polygonalFace.CoordIndex.length;
543
577
  allStartIndices.push(0);
544
578
  coordIndex += indicesPerFace;
545
- allIndices.push(...polygonalFace.CoordIndex);
579
+ for (const index of polygonalFace.CoordIndex) {
580
+ allIndices.push(index);
581
+ }
546
582
  polygonalFace.InnerCoordIndices.forEach((innerIndices) => {
547
583
  allStartIndices.push(coordIndex);
548
- allIndices.push(...innerIndices);
584
+ for (const index of innerIndices) {
585
+ allIndices.push(index);
586
+ }
549
587
  coordIndex += innerIndices.length;
550
588
  });
551
589
  }
552
590
  else {
553
- indicesPerFace = polygonalFace.CoordIndex.length;
591
+ // CoordIndex is vtable offset 0 on IfcIndexedPolygonalFace (see
592
+ // its generated getter) — parsed in place, never allocated or cached.
593
+ indicesPerFace = polygonalFace.extractIntegerArrayInto(0, 0, 3, allIndices);
554
594
  allStartIndices.push(0);
555
- allIndices.push(...polygonalFace.CoordIndex);
556
595
  }
557
596
  });
558
597
  // Add the final entry
559
598
  polygonalFaceBufferOffsets.push(allIndices.length);
560
599
  startIndicesBufferOffsets.push(allStartIndices.length);
561
- // Convert to typed arrays for transfer to WebAssembly
562
- const indicesArray = new Uint32Array(allIndices);
600
+ // Views over exactly the appended elements — no intermediate copy.
601
+ const indicesArray = allIndices.view;
563
602
  const indicesArrayPtr = this.arrayToWasmHeap(indicesArray);
564
- const startIndicesArray = new Uint32Array(allStartIndices);
603
+ const startIndicesArray = allStartIndices.view;
565
604
  const startIndicesArrayPtr = this.arrayToWasmHeap(startIndicesArray);
566
- const polygonalFaceBufferOffsetsArray = new Uint32Array(polygonalFaceBufferOffsets);
605
+ const polygonalFaceBufferOffsetsArray = polygonalFaceBufferOffsets.view;
567
606
  const polygonalFaceBufferOffsetsArrayPtr = this.arrayToWasmHeap(polygonalFaceBufferOffsetsArray);
568
- const startIndicesBufferOffsetsArray = new Uint32Array(startIndicesBufferOffsets);
607
+ const startIndicesBufferOffsetsArray = startIndicesBufferOffsets.view;
569
608
  const startIndicesBufferOffsetsArrayPtr = this.arrayToWasmHeap(startIndicesBufferOffsetsArray);
570
- const polygonalFaceVector = this.wasmModule.buildIndexedPolygonalFaceVector(indicesArrayPtr, indicesArray.length, startIndicesArrayPtr, polygonalFaceBufferOffsetsArrayPtr, polygonalFaceBufferOffsets.length, startIndicesBufferOffsetsArrayPtr, startIndicesBufferOffsets.length);
609
+ const polygonalFaceVector = this.wasmModule.buildIndexedPolygonalFaceVector(indicesArrayPtr, indicesArray.length, startIndicesArrayPtr, polygonalFaceBufferOffsetsArrayPtr, polygonalFaceBufferOffsetsArray.length, startIndicesBufferOffsetsArrayPtr, startIndicesBufferOffsetsArray.length);
610
+ // Sink contents are now copied into wasm; the sinks are free again.
611
+ this.polygonalSinksInUse_ = false;
571
612
  const pointsParseBuffer = this.conwayModel.nativeParseBuffer();
572
613
  if (!entity.Coordinates.extractParseBuffer(0, 0, 0, pointsParseBuffer, this.wasmModule, true)) {
573
614
  pointsParseBuffer.resize(0);
@@ -614,7 +655,10 @@ export class IfcGeometryExtraction {
614
655
  const arrayPtr = this.wasmModule._malloc(numBytes);
615
656
  // Create a new Uint8Array view on the Wasm memory buffer, then set the array to it
616
657
  const arrayWasm = new Uint8Array(this.wasmModule.HEAPU8.buffer, arrayPtr, numBytes);
617
- arrayWasm.set(new Uint8Array(array.buffer));
658
+ // Honour the view's own window: subarray() results share their parent's
659
+ // backing buffer, so copying `array.buffer` wholesale would read the
660
+ // wrong bytes (and the wrong length) for a view.
661
+ arrayWasm.set(new Uint8Array(array.buffer, array.byteOffset, numBytes));
618
662
  return arrayPtr;
619
663
  }
620
664
  /**
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Growable Uint32Array append sink.
3
+ *
4
+ * Exists so hot extraction loops can parse integer list fields straight
5
+ * out of the STEP buffer into one reusable typed array, instead of
6
+ * allocating (and caching) a boxed `Array< number >` per record. On
7
+ * tessellated IFC4 models that difference is structural: a large
8
+ * polygonal-faceset model carries millions of IfcIndexedPolygonalFace
9
+ * records, and a per-record array for each is the dominant source of
10
+ * both GC time and retained heap during geometry extraction.
11
+ */
12
+ export declare class Uint32Sink {
13
+ private data_;
14
+ private length_;
15
+ /**
16
+ * @param initialCapacity Initial element capacity.
17
+ */
18
+ constructor(initialCapacity?: number);
19
+ /** @return {number} Element count appended since the last reset. */
20
+ get length(): number;
21
+ /**
22
+ * A view of exactly the appended elements. Only valid until the next
23
+ * append (which may reallocate) — copy it if it must outlive that.
24
+ *
25
+ * @return {Uint32Array} View over [0, length).
26
+ */
27
+ get view(): Uint32Array;
28
+ /** Drop all appended elements, keeping the allocated capacity. */
29
+ reset(): void;
30
+ /**
31
+ * Append one value, growing geometrically when full.
32
+ *
33
+ * @param value The value to append.
34
+ */
35
+ push(value: number): void;
36
+ }
37
+ //# sourceMappingURL=uint32_sink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uint32_sink.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/uint32_sink.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,qBAAa,UAAU;IAErB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,OAAO,CAAY;IAE3B;;OAEG;gBACU,eAAe,GAAE,MAAa;IAI3C,oEAAoE;IACpE,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED;;;;;OAKG;IACH,IAAW,IAAI,IAAI,WAAW,CAE7B;IAED,kEAAkE;IAC3D,KAAK,IAAI,IAAI;IAIpB;;;;OAIG;IACI,IAAI,CAAE,KAAK,EAAE,MAAM,GAAI,IAAI;CAanC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Growable Uint32Array append sink.
3
+ *
4
+ * Exists so hot extraction loops can parse integer list fields straight
5
+ * out of the STEP buffer into one reusable typed array, instead of
6
+ * allocating (and caching) a boxed `Array< number >` per record. On
7
+ * tessellated IFC4 models that difference is structural: a large
8
+ * polygonal-faceset model carries millions of IfcIndexedPolygonalFace
9
+ * records, and a per-record array for each is the dominant source of
10
+ * both GC time and retained heap during geometry extraction.
11
+ */
12
+ export class Uint32Sink {
13
+ /**
14
+ * @param initialCapacity Initial element capacity.
15
+ */
16
+ constructor(initialCapacity = 1024) {
17
+ this.length_ = 0;
18
+ this.data_ = new Uint32Array(Math.max(1, initialCapacity));
19
+ }
20
+ /** @return {number} Element count appended since the last reset. */
21
+ get length() {
22
+ return this.length_;
23
+ }
24
+ /**
25
+ * A view of exactly the appended elements. Only valid until the next
26
+ * append (which may reallocate) — copy it if it must outlive that.
27
+ *
28
+ * @return {Uint32Array} View over [0, length).
29
+ */
30
+ get view() {
31
+ return this.data_.subarray(0, this.length_);
32
+ }
33
+ /** Drop all appended elements, keeping the allocated capacity. */
34
+ reset() {
35
+ this.length_ = 0;
36
+ }
37
+ /**
38
+ * Append one value, growing geometrically when full.
39
+ *
40
+ * @param value The value to append.
41
+ */
42
+ push(value) {
43
+ if (this.length_ === this.data_.length) {
44
+ const grown = new Uint32Array(this.data_.length * 2);
45
+ grown.set(this.data_);
46
+ this.data_ = grown;
47
+ }
48
+ this.data_[this.length_++] = value;
49
+ }
50
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=uint32_sink.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uint32_sink.test.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/uint32_sink.test.ts"],"names":[],"mappings":""}