"use strict";var P=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var L=Object.getOwnPropertyNames;var V=Object.prototype.hasOwnProperty;var R=(e,t,n)=>t in e?P(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Y=(e,t)=>{for(var n in t)P(e,n,{get:t[n],enumerable:!0})},j=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of L(t))!V.call(e,r)&&r!==n&&P(e,r,{get:()=>t[r],enumerable:!(o=O(t,r))||o.enumerable});return e};var z=e=>j(P({},"__esModule",{value:!0}),e);var F=(e,t,n)=>R(e,typeof t!="symbol"?t+"":t,n);var lt={};Y(lt,{buildEnergyMap:()=>tt,buildWallAllowedMask:()=>Z,energyPointsToNorm:()=>st,extractCornerPoints:()=>at,filterVerticesToWallMask:()=>H,findShortestPath:()=>ot,isNormPointOnWallMask:()=>C,normToEnergyPoint:()=>it,resolveLassoWallDragPoint:()=>Q,snapNormPointToWallCornerOrEdge:()=>q,snapNormPointToWallEdge:()=>K,upscalePath:()=>ut});module.exports=z(lt);function C(e,t,n){const{labels:o,baseboardBinary:r,cols:c,rows:l,wallSemanticIdx:a}=n;if(a<0||c<=0||l<=0)return!1;const f=Math.min(c-1,Math.max(0,Math.floor(e*c))),h=Math.min(l-1,Math.max(0,Math.floor(t*l)))*c+f;return r[h]?!1:o[h]===a}function H(e,t){return e.filter(n=>C(n.x,n.y,t))}function v(e,t,n){const{labels:o,baseboardBinary:r,cols:c,rows:l,wallSemanticIdx:a}=e;if(t<0||n<0||t>=c||n>=l||a<0)return!1;const f=n*c+t;return r[f]?!1:o[f]===a}function G(e,t,n){if(!v(e,t,n))return!1;const{cols:o,rows:r}=e;return t===0||n===0||t===o-1||n===r-1?!0:!v(e,t-1,n)||!v(e,t+1,n)||!v(e,t,n-1)||!v(e,t,n+1)}function J(e,t,n){if(!G(e,t,n))return!1;const o=!v(e,t-1,n),r=!v(e,t+1,n),c=!v(e,t,n-1),l=!v(e,t,n+1);return(o||r)&&(c||l)}function K(e,t,n,o=12){return B(e,t,n,o,"edge")??{x:e,y:t}}function q(e,t,n,o=16){const r=B(e,t,n,o,"corner");return r||(B(e,t,n,o,"edge")??{x:e,y:t})}function Q(e,t,n,o=12){const r=q(e,t,n,o);return C(r.x,r.y,n)?r:C(e,t,n)?{x:e,y:t}:null}function B(e,t,n,o,r){const{cols:c,rows:l}=n;if(c<=0||l<=0)return null;const a=e*c,f=t*l,y=Math.floor(a),h=Math.floor(f),p=Math.max(1,Math.ceil(o)),M=o*o;let g=1/0,A=-1,s=-1;for(let i=-p;i<=p;i++)for(let b=-p;b<=p;b++){const u=y+b,m=h+i;if(u<0||m<0||u>=c||m>=l||!G(n,u,m)||r==="corner"&&!J(n,u,m))continue;const d=(a-(u+.5))**2+(f-(m+.5))**2;d<=M&&do?o/c:1,a=Math.max(1,Math.floor(t*l)),f=Math.max(1,Math.floor(n*l)),y=a*f,h=new Float32Array(y);for(let s=0;sM&&(M=U)}if(r&&r.length===t*n)for(let s=0;s0;A&&(A[b]=x?1:0),g[b]=x?1/(1+4*(p[b]/M)):1}return{map:g,w:a,h:f,scale:l,traversable:A}}const nt=[[-1,-1],[0,-1],[1,-1],[-1,0],[1,0],[-1,1],[0,1],[1,1]],N=1e4;class et{constructor(){F(this,"data",[])}push(t,n){this.data.push({idx:t,dist:n}),this.bubbleUp(this.data.length-1)}pop(){if(this.data.length===0)return;const t=this.data[0],n=this.data.pop();return this.data.length>0&&(this.data[0]=n,this.bubbleDown(0)),t}get length(){return this.data.length}bubbleUp(t){for(;t>0;){const n=t-1>>1;if(this.data[n].dist<=this.data[t].dist)break;[this.data[n],this.data[t]]=[this.data[t],this.data[n]],t=n}}bubbleDown(t){const n=this.data.length;for(;;){let o=t;const r=2*t+1,c=2*t+2;if(rMath.max(1,Math.min(t-2,Math.round(m))),y=m=>Math.max(1,Math.min(n-2,Math.round(m))),h=f(o),p=y(r),M=f(c),g=y(l),A=t*n,s=p*t+h,i=new Uint32Array(A);i.fill(rt),i[s]=0;const b=new Int32Array(A);b.fill(-1);const u=new et;for(u.push(s,0);u.length>0;){const m=u.pop(),x=m.idx,d=m.dist;if(d>i[x])continue;const E=x%t,W=Math.floor(x/t);if(E===M&&W===g){const w=[];let S=x;for(;S>=0;)w.push({x:S%t,y:Math.floor(S/t)}),S=b[S];return w.reverse(),w}for(const[w,S]of nt){const T=E+w,I=W+S;if(T<0||T>=t||I<0||I>=n)continue;const U=I*t+T;if(a&&a[U]===0)continue;const _=Math.round(w!==0&&S!==0?e[U]*N*1.4142:e[U]*N),D=d+_;Ds&&(s=u,i=b)}s>n&&(o[i]=1,r(l,i),r(i,a))}r(0,e.length-1);const c=[];for(let l=0;l0){const a=c[c.length-1];if(Math.hypot(e[l].x-a.x,e[l].y-a.y)({x:Math.min(1,Math.max(0,n.x/t.w)),y:Math.min(1,Math.max(0,n.y/t.h))}))}function ut(e,t,n,o){return e.map(r=>({x:Math.min(n-1,Math.max(0,Math.round(r.x/t))),y:Math.min(o-1,Math.max(0,Math.round(r.y/t)))}))}