"use strict";var j=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var X=Object.getOwnPropertyNames;var Y=Object.prototype.hasOwnProperty;var Z=(n,e)=>{for(var o in e)j(n,o,{get:e[o],enumerable:!0})},nn=(n,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of X(e))!Y.call(n,a)&&a!==o&&j(n,a,{get:()=>e[a],enumerable:!(r=V(e,a))||r.enumerable});return n};var en=n=>nn(j({},"__esModule",{value:!0}),n);var dn={};Z(dn,{WALL_SUB_LABEL_NONE:()=>D,isWallSubRegionName:()=>pn,splitWallRegionsByTexture:()=>yn});module.exports=en(dn);var J=require("./freqLayerPrep"),K=require("./maskSegmentRuntime"),Q=require("./maskSemanticPalette");const D=255;function T(){return(0,K.getMaskSegmentRuntimeConfig)().mask}function tn(n){return[{x:n.x,y:n.y},{x:n.x+n.w,y:n.y},{x:n.x+n.w,y:n.y+n.h},{x:n.x,y:n.y+n.h}]}function rn(n,e,o){const r=e*o,a=new Uint8Array(r),t=new Uint8Array(r);for(let i=0;ib||i<=a&&t>b)return!0;if(t>a&&i>a){const f=Math.atan2(e-128,n-128),c=Math.atan2(r-128,o-128);let m=Math.abs(f-c);if(m>Math.PI&&(m=2*Math.PI-m),m>Math.PI/4)return!0}return!1}function L(n,e,o,r,a,t){return an(n,e,o,r,t)?!1:on(n,e,o,r)<=a}function un(){return T().semanticColors.findIndex(e=>e.name==="wall")}function G(n,e,o,r){return e[r]?!1:n[r]===o}function cn(n,e,o,r,a,t,i,b,f){const c=t*i,m=new Int32Array(c);m.fill(-1);let y=0;const l=new Int32Array(c);for(let d=0;d=0)continue;const R=y;y+=1;const S=r[C],u=a[C];let g=S,p=u,A=1,w=0,M=0;for(l[M++]=C,m[C]=R;w=c)continue;const B=I%t;if(Math.abs(B-k)>1||!G(n,e,o,I)||m[I]>=0)continue;const N=r[I],P=a[I],q=L(r[U],a[U],N,P,b*1.8,f),z=L(O,_,N,P,b,f),s=L(S,u,N,P,b*3,f);!q||!z||!s||(m[I]=R,g+=N,p+=P,A+=1,l[M++]=I)}}}return{compLabels:m,compCount:y}}function H(n,e,o,r){const a=Array.from({length:e},(t,i)=>({label:i,area:0,bbox:{x:o,y:r,w:0,h:0}}));for(let t=0;tc.bbox.x+c.bbox.w&&(c.bbox.w=m-c.bbox.x),y>c.bbox.y+c.bbox.h&&(c.bbox.h=y-c.bbox.y)}return a}function mn(n,e,o,r,a,t){const i=new Float64Array(r),b=new Float64Array(r),f=new Float64Array(r),c=a*t;for(let l=0;l0?(m[l]=i[l]/f[l],y[l]=b[l]/f[l]):(m[l]=128,y[l]=128);return{meanA:m,meanB:y}}function sn(n,e,o,r,a,t,i,b,f){const c=e.length,{meanA:m,meanB:y}=mn(n,o,r,c,a,t),l=new Map,d=(u,g)=>{if(u===g||u<0||g<0)return;let p=l.get(u);p||(p=new Map,l.set(u,p)),p.set(g,(p.get(g)??0)+1)};for(let u=0;u=0&&d(A,w)}if(u+1=0&&d(A,w)}}}const x=new Int32Array(c);for(let u=0;u{for(;x[u]!==u;)x[u]=x[x[u]],u=x[u];return u},R=(u,g)=>{const p=C(u),A=C(g);if(p===A)return;const w=e[p].area,M=e[A].area;w>=M?(x[A]=p,e[p].area+=e[A].area,e[A].area=0):(x[p]=A,e[A].area+=e[p].area,e[p].area=0)};for(let u=0;u=i)continue;const g=l.get(u);if(!g||g.size===0)continue;let p=-1,A=0;for(const[w,M]of g)M>A&&(A=M,p=w);if(p>=0){if(!L(m[u],y[u],m[p],y[p],b,f))continue;R(u,p)}}const S=a*t;for(let u=0;u0&&(c[d]=l);continue}if(n[d]===o&&r[d]!==D){const S=`wall-${r[d]+1}`,u=t.get(S);u!==void 0&&(c[d]=u+1);continue}const x=n[d];if(x===255)continue;const C=a[x];if(!C)continue;const R=t.get(C);R!==void 0&&(c[d]=R+1)}return c}function bn(n,e,o){const r=e*o,a=new Uint8Array(r);a.set(n);for(let t=1;t=4){a[b]=y;break}}}return a}function yn(n,e,o,r,a){const t=T();if(!t.splitWalls)return n;const i=n.regions.find(s=>s.name==="wall");if(!i)return n;const b=un();if(b<0)return n;const{labels:f,baseboardBinary:c,regions:m}=n,y=o*r;if(e.length({...s,origIdx:h})).filter(s=>s.area>0).sort((s,h)=>h.area-s.area).slice(0,t.splitWallsMaxCount),U=new Map;M.forEach((s,h)=>{U.set(s.origIdx,h)});const k=new Uint8Array(y);k.fill(D);for(let s=0;ss.name!=="wall"),I=M.map((s,h)=>{const W=s.bbox,F=tn(W);return{id:0,name:`wall-${h+1}`,hex:O,color:{..._},polygons:[F],outlinePolygons:[F],bbox:W,area:s.area}}),B=[...$,...I];B.sort((s,h)=>h.area-s.area),B.forEach((s,h)=>{s.id=h});const N=new Map(B.map(s=>[s.name,s.id])),P=t.semanticColors.map(s=>s.name),q=ln(f,c,b,k,P,N,o,r),z=bn(q,o,r);for(const s of B){if(!/^wall-\d+$/.test(s.name))continue;const h=Number(s.name.slice(5))-1;let W=0;for(let F=0;F