@archilogic/floor-plan-sdk 5.0.0-rc.9 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/fpe.d.ts CHANGED
@@ -1413,6 +1413,7 @@ declare class LayoutElementBase extends LayoutNodeBase {
1413
1413
  geometries: GeometryOperationJson[];
1414
1414
  insertElement(element: LayoutElement): void;
1415
1415
  getTransform(): Transform3d;
1416
+ getWorldTransform(): Transform3d;
1416
1417
  getBoundingBox(localTransform?: boolean): TransformBoundingBox3d;
1417
1418
  removeElement(element: LayoutElement): void;
1418
1419
  copyForClone(element: LayoutElement): void;
package/dist/fpe.js CHANGED
@@ -2,7 +2,7 @@ var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
4
  /*!
5
- Archilogic Floor Plan Engine SDK v5.0.0-rc.9 webgl build 240823-114453-1757a8
5
+ Archilogic Floor Plan Engine SDK v5.0.0 webgl build 240902-153859-ffc346
6
6
 
7
7
  Copyright (c) 2024 Archilogic AG. All rights reserved.
8
8
 
@@ -1512,22 +1512,22 @@ var ClipperLib;
1512
1512
  if (this.m_CurrentLM === null)
1513
1513
  return;
1514
1514
  this.m_Scanbeam = null;
1515
- var lm2 = this.m_MinimaList;
1516
- while (lm2 !== null) {
1517
- this.InsertScanbeam(lm2.Y);
1518
- var e2 = lm2.LeftBound;
1515
+ var lm = this.m_MinimaList;
1516
+ while (lm !== null) {
1517
+ this.InsertScanbeam(lm.Y);
1518
+ var e2 = lm.LeftBound;
1519
1519
  if (e2 !== null) {
1520
1520
  e2.Curr.X = e2.Bot.X;
1521
1521
  e2.Curr.Y = e2.Bot.Y;
1522
1522
  e2.OutIdx = ClipperLib2.ClipperBase.Unassigned;
1523
1523
  }
1524
- e2 = lm2.RightBound;
1524
+ e2 = lm.RightBound;
1525
1525
  if (e2 !== null) {
1526
1526
  e2.Curr.X = e2.Bot.X;
1527
1527
  e2.Curr.Y = e2.Bot.Y;
1528
1528
  e2.OutIdx = ClipperLib2.ClipperBase.Unassigned;
1529
1529
  }
1530
- lm2 = lm2.Next;
1530
+ lm = lm.Next;
1531
1531
  }
1532
1532
  this.m_ActiveEdges = null;
1533
1533
  }
@@ -1900,12 +1900,12 @@ var ClipperLib;
1900
1900
  this.m_GhostJoins.push(j2);
1901
1901
  }
1902
1902
  InsertLocalMinimaIntoAEL(botY) {
1903
- var lm2 = {};
1903
+ var lm = {};
1904
1904
  var lb;
1905
1905
  var rb;
1906
- while (this.PopLocalMinima(botY, lm2)) {
1907
- lb = lm2.v.LeftBound;
1908
- rb = lm2.v.RightBound;
1906
+ while (this.PopLocalMinima(botY, lm)) {
1907
+ lb = lm.v.LeftBound;
1908
+ rb = lm.v.RightBound;
1909
1909
  var Op1 = null;
1910
1910
  if (lb === null) {
1911
1911
  this.InsertEdgeIntoAEL(rb, null);
@@ -6950,6 +6950,9 @@ class LayoutElementBase extends LayoutNodeBase {
6950
6950
  getTransform() {
6951
6951
  return getBaseTransform3d();
6952
6952
  }
6953
+ getWorldTransform() {
6954
+ return this.getTransform();
6955
+ }
6953
6956
  getBoundingBox(localTransform = false) {
6954
6957
  return {
6955
6958
  min: [0, 0, 0],
@@ -12230,7 +12233,7 @@ function getOpeningElement$1(layout, openingElementJson) {
12230
12233
  function doGetTransformElement$1(element, elementJson) {
12231
12234
  var _a;
12232
12235
  let { position, rotation, rotationAxis } = elementJson;
12233
- element.setTransform(position, rotation ?? 0, rotationAxis);
12236
+ element.setTransform(position ?? [0, 0, 0], rotation ?? 0, rotationAxis);
12234
12237
  if (elementJson.parameters) {
12235
12238
  let skipElementCreation = !!((_a = elementJson.elements) == null ? void 0 : _a.length);
12236
12239
  setElementParameters(element, elementJson.parameters, skipElementCreation);
@@ -14299,7 +14302,7 @@ function un(t2, e2, r2) {
14299
14302
  var i2 = e2[0], n2 = e2[1], s2 = e2[2], o2 = r2[3] * i2 + r2[7] * n2 + r2[11] * s2 + r2[15];
14300
14303
  return o2 = o2 || 1, t2[0] = (r2[0] * i2 + r2[4] * n2 + r2[8] * s2 + r2[12]) / o2, t2[1] = (r2[1] * i2 + r2[5] * n2 + r2[9] * s2 + r2[13]) / o2, t2[2] = (r2[2] * i2 + r2[6] * n2 + r2[10] * s2 + r2[14]) / o2, t2;
14301
14304
  }
14302
- var We = Ar, Lo = No;
14305
+ var Ue = Ar, Lo = No;
14303
14306
  (function() {
14304
14307
  var t2 = M$4();
14305
14308
  return function(e2, r2, i2, n2, s2, o2) {
@@ -14749,7 +14752,7 @@ function it(t2, e2, r2, i2, n2, s2, o2) {
14749
14752
  if (t2) {
14750
14753
  !o2 && s2 && Ko(t2, i2, n2, s2);
14751
14754
  for (var l2 = t2, a2, u2; t2.prev !== t2.next; ) {
14752
- if (a2 = t2.prev, u2 = t2.next, s2 ? Uo(t2, i2, n2, s2) : Wo(t2)) {
14755
+ if (a2 = t2.prev, u2 = t2.next, s2 ? Wo(t2, i2, n2, s2) : Uo(t2)) {
14753
14756
  e2.push(a2.i / r2 | 0), e2.push(t2.i / r2 | 0), e2.push(u2.i / r2 | 0), st(t2), t2 = u2.next, l2 = u2.next;
14754
14757
  continue;
14755
14758
  }
@@ -14760,7 +14763,7 @@ function it(t2, e2, r2, i2, n2, s2, o2) {
14760
14763
  }
14761
14764
  }
14762
14765
  }
14763
- function Wo(t2) {
14766
+ function Uo(t2) {
14764
14767
  var e2 = t2.prev, r2 = t2, i2 = t2.next;
14765
14768
  if (D$1(e2, r2, i2) >= 0)
14766
14769
  return false;
@@ -14771,7 +14774,7 @@ function Wo(t2) {
14771
14774
  }
14772
14775
  return true;
14773
14776
  }
14774
- function Uo(t2, e2, r2, i2) {
14777
+ function Wo(t2, e2, r2, i2) {
14775
14778
  var n2 = t2.prev, s2 = t2, o2 = t2.next;
14776
14779
  if (D$1(n2, s2, o2) >= 0)
14777
14780
  return false;
@@ -15512,7 +15515,7 @@ function $l(t2, e2) {
15512
15515
  let r2 = new Array(3 * e2.length), i2 = M$4(), n2 = M$4(), s2 = M$4(), o2 = M$4(), l2 = M$4(), a2 = M$4(), u2 = 0;
15513
15516
  for (let f3 = 0; f3 < e2.length; f3 += 3) {
15514
15517
  let c2 = e2[f3], d2 = e2[f3 + 1], h2 = e2[f3 + 2];
15515
- De(t2, i2, 3 * c2), De(t2, n2, 3 * d2), De(t2, s2, 3 * h2), We(o2, n2, i2), We(l2, s2, i2), de(a2, o2, l2), ie(a2, a2), Be(r2, a2, u2 + 0), Be(r2, a2, u2 + 3), Be(r2, a2, u2 + 6), u2 += 9;
15518
+ De(t2, i2, 3 * c2), De(t2, n2, 3 * d2), De(t2, s2, 3 * h2), Ue(o2, n2, i2), Ue(l2, s2, i2), de(a2, o2, l2), ie(a2, a2), Be(r2, a2, u2 + 0), Be(r2, a2, u2 + 3), Be(r2, a2, u2 + 6), u2 += 9;
15516
15519
  }
15517
15520
  return r2;
15518
15521
  }
@@ -15520,7 +15523,7 @@ function Vl(t2, e2) {
15520
15523
  let r2 = new Array(3 * e2.length), i2 = M$4(), n2 = M$4(), s2 = M$4(), o2 = M$4(), l2 = M$4(), a2 = M$4(), u2 = e2.length / 3, f3 = new Array(u2), c2 = 0;
15521
15524
  for (let p2 = 0; p2 < e2.length; p2 += 3) {
15522
15525
  let g2 = e2[p2], m2 = e2[p2 + 1], y2 = e2[p2 + 2];
15523
- De(t2, i2, 3 * g2), De(t2, n2, 3 * m2), De(t2, s2, 3 * y2), We(o2, n2, i2), We(l2, s2, i2), de(a2, o2, l2), ie(a2, a2), f3[c2++] = {
15526
+ De(t2, i2, 3 * g2), De(t2, n2, 3 * m2), De(t2, s2, 3 * y2), Ue(o2, n2, i2), Ue(l2, s2, i2), de(a2, o2, l2), ie(a2, a2), f3[c2++] = {
15524
15527
  index1: g2,
15525
15528
  index2: m2,
15526
15529
  index3: y2,
@@ -15563,13 +15566,13 @@ function Gl(t2, e2) {
15563
15566
  let r2 = new Array(2 * e2.length), i2 = M$4(), n2 = M$4(), s2 = M$4(), o2 = M$4(), l2 = M$4(), a2 = M$4(), u2 = 0;
15564
15567
  for (let f3 = 0; f3 < e2.length; f3 += 3) {
15565
15568
  let c2 = e2[f3], d2 = e2[f3 + 1], h2 = e2[f3 + 2];
15566
- xr(t2, i2, 3 * c2), xr(t2, n2, 3 * d2), xr(t2, s2, 3 * h2), We(o2, n2, i2), We(l2, s2, i2), de(a2, o2, l2), ie(a2, a2), a2[0] = Math.abs(a2[0]), a2[1] = Math.abs(a2[1]), a2[2] = Math.abs(a2[2]);
15569
+ xr(t2, i2, 3 * c2), xr(t2, n2, 3 * d2), xr(t2, s2, 3 * h2), Ue(o2, n2, i2), Ue(l2, s2, i2), de(a2, o2, l2), ie(a2, a2), a2[0] = Math.abs(a2[0]), a2[1] = Math.abs(a2[1]), a2[2] = Math.abs(a2[2]);
15567
15570
  let p2, g2;
15568
15571
  a2[0] >= a2[1] && a2[0] >= a2[2] ? (p2 = 2, g2 = 1) : a2[1] >= a2[0] && a2[1] >= a2[2] ? (p2 = 0, g2 = 2) : (p2 = 0, g2 = 1), r2[u2++] = i2[p2], r2[u2++] = i2[g2], r2[u2++] = n2[p2], r2[u2++] = n2[g2], r2[u2++] = s2[p2], r2[u2++] = s2[g2];
15569
15572
  }
15570
15573
  return r2;
15571
15574
  }
15572
- function Wl(t2, e2) {
15575
+ function Ul(t2, e2) {
15573
15576
  let r2 = new Array(2 * e2.length), i2 = 0;
15574
15577
  for (let n2 = 0; n2 < e2.length; n2++) {
15575
15578
  let s2 = 3 * e2[n2], o2 = t2[s2], l2 = t2[s2 + 1], a2 = t2[s2 + 2], u2 = 0.5 + Math.atan2(o2, a2) / (2 * Math.PI), f3 = 0.5 + Math.asin(l2) / Math.PI;
@@ -15577,7 +15580,7 @@ function Wl(t2, e2) {
15577
15580
  }
15578
15581
  return r2;
15579
15582
  }
15580
- function Ul(t2) {
15583
+ function Wl(t2) {
15581
15584
  let { normal: e2, size: r2, doubleSided: i2 } = t2, s2 = kr([0, 0, 0], e2, r2).flat(), o2 = [0, 1, 2, 0, 2, 3], l2 = [
15582
15585
  { index: 0, count: 2 }
15583
15586
  ];
@@ -15826,7 +15829,7 @@ function Vr(t2, e2, r2, i2 = []) {
15826
15829
  let s2 = [], o2;
15827
15830
  switch (t2.type) {
15828
15831
  case "geometry:plane":
15829
- o2 = Ul(t2);
15832
+ o2 = Wl(t2);
15830
15833
  break;
15831
15834
  case "geometry:cuboid":
15832
15835
  o2 = Hl(t2);
@@ -15860,7 +15863,7 @@ function Vr(t2, e2, r2, i2 = []) {
15860
15863
  if (u2 == "automatic" || u2 === "spherical")
15861
15864
  for (let f3 of s2) {
15862
15865
  let { vertices: c2, indices: d2 } = f3;
15863
- f3.uvs = u2 === "automatic" ? Gl(c2, d2) : Wl(c2, d2);
15866
+ f3.uvs = u2 === "automatic" ? Gl(c2, d2) : Ul(c2, d2);
15864
15867
  }
15865
15868
  return s2;
15866
15869
  }
@@ -15873,9 +15876,9 @@ function Bn(t2) {
15873
15876
  r2 = t2[s2], i2 = t2[s2 + 1], n2 = t2[s2 + 2], e2.min[0] = Math.min(e2.min[0], r2), e2.max[0] = Math.max(e2.max[0], r2), e2.min[1] = Math.min(e2.min[1], i2), e2.max[1] = Math.max(e2.max[1], i2), e2.min[2] = Math.min(e2.min[2], n2), e2.max[2] = Math.max(e2.max[2], n2);
15874
15877
  return e2;
15875
15878
  }
15876
- var W$1 = [];
15879
+ var U$1 = [];
15877
15880
  for (var Sr = 0; Sr < 256; ++Sr)
15878
- W$1.push((Sr + 256).toString(16).substr(1));
15881
+ U$1.push((Sr + 256).toString(16).substr(1));
15879
15882
  function ni(t2, e2) {
15880
15883
  let { position: r2, rotation: i2, rotationAxis: n2 } = t2.getTransform(), s2 = qr(r2, i2, n2);
15881
15884
  return e2 && ln(s2, e2, s2), s2;
@@ -15914,7 +15917,7 @@ yi.prototype = {
15914
15917
  };
15915
15918
  Ss.exports = yi;
15916
15919
  Ss.exports.TinyEmitter = yi;
15917
- const mp = ["SITE", "FACTORY", "NOTDEFINED"], gp = [
15920
+ const gp = ["SITE", "FACTORY", "NOTDEFINED"], yp = [
15918
15921
  "SINGLE_SWING_LEFT",
15919
15922
  "SINGLE_SWING_RIGHT",
15920
15923
  "DOUBLE_DOOR_SINGLE_SWING",
@@ -15933,7 +15936,7 @@ const mp = ["SITE", "FACTORY", "NOTDEFINED"], gp = [
15933
15936
  "ROLLINGUP",
15934
15937
  "USERDEFINED",
15935
15938
  "NOTDEFINED"
15936
- ], yp = [
15939
+ ], Ip = [
15937
15940
  "ALUMINIUM",
15938
15941
  "HIGH_GRADE_STEEL",
15939
15942
  "STEEL",
@@ -15943,7 +15946,7 @@ const mp = ["SITE", "FACTORY", "NOTDEFINED"], gp = [
15943
15946
  "PLASTIC",
15944
15947
  "USERDEFINED",
15945
15948
  "NOTDEFINED"
15946
- ], Ip = [
15949
+ ], Ep = [
15947
15950
  "ACCESSORY_ASSEMBLY",
15948
15951
  "ARCH",
15949
15952
  "BEAM_GRID",
@@ -15955,7 +15958,7 @@ const mp = ["SITE", "FACTORY", "NOTDEFINED"], gp = [
15955
15958
  "TRUSS",
15956
15959
  "USERDEFINED",
15957
15960
  "NOTDEFINED"
15958
- ], Ep = ["INTERNAL", "EXTERNAL", "NOTDEFINED"], vp = ["HANDRAIL", "GUARDRAIL", "BALUSTRADE", "USERDEFINED", "NOTDEFINED"], bp = ["FLOOR", "ROOF", "LANDING", "BASESLAB", "USERDEFINED", "NOTDEFINED"], xp = [
15961
+ ], vp = ["INTERNAL", "EXTERNAL", "NOTDEFINED"], bp = ["HANDRAIL", "GUARDRAIL", "BALUSTRADE", "USERDEFINED", "NOTDEFINED"], xp = ["FLOOR", "ROOF", "LANDING", "BASESLAB", "USERDEFINED", "NOTDEFINED"], Sp = [
15959
15962
  "STRAIGHT_RUN_STAIR",
15960
15963
  "TWO_STRAIGHT_RUN_STAIR",
15961
15964
  "QUARTER_WINDING_STAIR",
@@ -16003,7 +16006,7 @@ const mp = ["SITE", "FACTORY", "NOTDEFINED"], gp = [
16003
16006
  "TIMEUNIT",
16004
16007
  "VOLUMEUNIT",
16005
16008
  "USERDEFINED"
16006
- ], Sp = [
16009
+ ], wp = [
16007
16010
  "EXA",
16008
16011
  "PETA",
16009
16012
  "TERA",
@@ -16020,7 +16023,7 @@ const mp = ["SITE", "FACTORY", "NOTDEFINED"], gp = [
16020
16023
  "PICO",
16021
16024
  "FEMTO",
16022
16025
  "ATTO"
16023
- ], wp = [
16026
+ ], Tp = [
16024
16027
  "AMPERE",
16025
16028
  "BECQUEREL",
16026
16029
  "CANDELA",
@@ -16178,8 +16181,8 @@ const mp = ["SITE", "FACTORY", "NOTDEFINED"], gp = [
16178
16181
  "IfcRoot",
16179
16182
  "IfcTypeObject",
16180
16183
  "IfcTypeProduct",
16181
- { name: "OperationType", type: "enum", oneOf: gp },
16182
- { name: "ConstructionType", type: "enum", oneOf: yp },
16184
+ { name: "OperationType", type: "enum", oneOf: yp },
16185
+ { name: "ConstructionType", type: "enum", oneOf: Ip },
16183
16186
  { name: "ParameterTakesPrecedence", type: "boolean" },
16184
16187
  { name: "Sizeable", type: "boolean" }
16185
16188
  ],
@@ -16192,8 +16195,8 @@ const mp = ["SITE", "FACTORY", "NOTDEFINED"], gp = [
16192
16195
  "IfcObject",
16193
16196
  "IfcProduct",
16194
16197
  "IfcElement",
16195
- { name: "AssemblyPlace", optional: true, type: "enum", oneOf: mp },
16196
- { name: "PredefinedType", optional: true, type: "enum", oneOf: Ip }
16198
+ { name: "AssemblyPlace", optional: true, type: "enum", oneOf: gp },
16199
+ { name: "PredefinedType", optional: true, type: "enum", oneOf: Ep }
16197
16200
  ],
16198
16201
  // SweptArea: IfcProfileDef
16199
16202
  // Position: IfcAxis2Placement3D
@@ -16388,7 +16391,7 @@ const mp = ["SITE", "FACTORY", "NOTDEFINED"], gp = [
16388
16391
  "IfcObject",
16389
16392
  "IfcProduct",
16390
16393
  "IfcElement",
16391
- { name: "PredefinedType", type: "enum", oneOf: vp }
16394
+ { name: "PredefinedType", type: "enum", oneOf: bp }
16392
16395
  ],
16393
16396
  // IFCMEASUREWITHUNIT
16394
16397
  IFCRATIOMEASURE: [{ name: "Measure", type: "real" }],
@@ -16488,8 +16491,8 @@ const mp = ["SITE", "FACTORY", "NOTDEFINED"], gp = [
16488
16491
  IFCSIUNIT: [
16489
16492
  { name: "asterisk", type: "value" },
16490
16493
  { name: "UnitType", type: "enum", oneOf: Yi },
16491
- { name: "Prefix", type: "enum", optional: true, oneOf: Sp },
16492
- { name: "Name", type: "enum", optional: true, oneOf: wp }
16494
+ { name: "Prefix", type: "enum", optional: true, oneOf: wp },
16495
+ { name: "Name", type: "enum", optional: true, oneOf: Tp }
16493
16496
  ],
16494
16497
  // PredefinedType: OPTIONAL IfcSlabTypeEnum
16495
16498
  IFCSLAB: [
@@ -16497,7 +16500,7 @@ const mp = ["SITE", "FACTORY", "NOTDEFINED"], gp = [
16497
16500
  "IfcObject",
16498
16501
  "IfcProduct",
16499
16502
  "IfcElement",
16500
- { name: "PredefinedType", type: "enum", oneOf: bp }
16503
+ { name: "PredefinedType", type: "enum", oneOf: xp }
16501
16504
  ],
16502
16505
  // InteriorOrExteriorSpace: IfcInternalOrExternalEnum
16503
16506
  // ElevationWithFlooring: OPTIONAL IfcLengthMeasure
@@ -16509,7 +16512,7 @@ const mp = ["SITE", "FACTORY", "NOTDEFINED"], gp = [
16509
16512
  {
16510
16513
  name: "InteriorOrExteriorSpace",
16511
16514
  type: "enum",
16512
- oneOf: Ep
16515
+ oneOf: vp
16513
16516
  },
16514
16517
  { name: "ElevationWithFlooring", type: "real", optional: true }
16515
16518
  ],
@@ -16519,7 +16522,7 @@ const mp = ["SITE", "FACTORY", "NOTDEFINED"], gp = [
16519
16522
  "IfcObject",
16520
16523
  "IfcProduct",
16521
16524
  "IfcElement",
16522
- { name: "ShapeType", type: "enum", oneOf: xp }
16525
+ { name: "ShapeType", type: "enum", oneOf: Sp }
16523
16526
  ],
16524
16527
  // NumberOfRiser: OPTIONAL INTEGER
16525
16528
  // NumberOfTreads: OPTIONAL INTEGER
@@ -16614,11 +16617,11 @@ function Ks(t2) {
16614
16617
  let o2 = Ks(s2)[s2];
16615
16618
  r2[n2].push(...o2);
16616
16619
  } else
16617
- Tp(s2) && r2[n2].push(s2);
16620
+ Rp(s2) && r2[n2].push(s2);
16618
16621
  }));
16619
16622
  return r2;
16620
16623
  }
16621
- function Tp(t2) {
16624
+ function Rp(t2) {
16622
16625
  const e2 = [
16623
16626
  "boolean",
16624
16627
  "enum",
@@ -16689,10 +16692,10 @@ function mr(t2, e2 = Ge(), r2 = /* @__PURE__ */ new Map(), i2 = true) {
16689
16692
  }
16690
16693
  return n2;
16691
16694
  }
16692
- var U$1 = [];
16695
+ var W$1 = [];
16693
16696
  for (var Nr = 0; Nr < 256; ++Nr)
16694
- U$1.push((Nr + 256).toString(16).substr(1));
16695
- function zh(t2, e2, r2) {
16697
+ W$1.push((Nr + 256).toString(16).substr(1));
16698
+ function Yh(t2, e2, r2) {
16696
16699
  let i2 = ye(...t2), n2 = ye(...e2), s2 = ye(...r2), o2 = M$4(), l2 = M$4(), a2 = M$4();
16697
16700
  return Ar(o2, i2, s2), Ar(l2, n2, s2), de(a2, o2, l2), ie(a2, a2), [...a2];
16698
16701
  }
@@ -16704,7 +16707,7 @@ function so(t2) {
16704
16707
  }
16705
16708
  for (let c2 = 0; c2 < e2.length; c2 += 3) {
16706
16709
  let d2 = e2[c2], h2 = e2[c2 + 1], p2 = e2[c2 + 2];
16707
- zh(i2[d2], i2[h2], i2[p2])[1] < 0.01 || s2.push([n2[d2], n2[h2], n2[p2]]);
16710
+ Yh(i2[d2], i2[h2], i2[p2])[1] < 0.01 || s2.push([n2[d2], n2[h2], n2[p2]]);
16708
16711
  }
16709
16712
  let l2 = [], a2 = [[]];
16710
16713
  if (!s2.length)
@@ -16715,7 +16718,7 @@ function so(t2) {
16715
16718
  er(c2) ? a2[0].push(c2) : l2.push(c2);
16716
16719
  return { outlines: l2, holes: a2, boundingBox: o2 };
16717
16720
  }
16718
- function lm(t2, e2 = {}) {
16721
+ function am(t2, e2 = {}) {
16719
16722
  let r2 = e2.applyElementMatrix ? ni(t2, e2.parentMatrix) : void 0, i2 = mr(t2, r2, e2.resources), n2 = [];
16720
16723
  for (let s2 of i2)
16721
16724
  for (let o2 of s2.meshes)
@@ -17868,7 +17871,20 @@ function getWallContours(layout) {
17868
17871
  if (openingContours.length) {
17869
17872
  polygons = polygonWithHolesDifference(polygons, openingContours).polygons;
17870
17873
  }
17871
- return polygons;
17874
+ const cleanedPolygons = [];
17875
+ for (const polygonWithHoles of polygons) {
17876
+ const cleanPolygonWithHoles = [];
17877
+ for (const polygon of polygonWithHoles) {
17878
+ let cleanedPolygon = cleanPolygon(polygon, 1e-3);
17879
+ if (cleanedPolygon.length) {
17880
+ cleanPolygonWithHoles.push(cleanedPolygon);
17881
+ }
17882
+ }
17883
+ if (cleanPolygonWithHoles.length) {
17884
+ cleanedPolygons.push(cleanPolygonWithHoles);
17885
+ }
17886
+ }
17887
+ return cleanedPolygons;
17872
17888
  }
17873
17889
  const _FloorPlanCore = class _FloorPlanCore2 {
17874
17890
  constructor({ options = {} } = {}) {
@@ -18187,7 +18203,7 @@ function getElementAnnotations(element) {
18187
18203
  return shapes;
18188
18204
  }
18189
18205
  function getShapesFromMesh(element) {
18190
- const meshContours = lm(element).sort((a2, b2) => {
18206
+ const meshContours = am(element).sort((a2, b2) => {
18191
18207
  if (a2.boundingBox.max[1] < b2.boundingBox.max[1]) return -1;
18192
18208
  else return 1;
18193
18209
  });