@recast-navigation/generators 0.31.1 → 0.33.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/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{vec3 as e,recastConfigDefaults as t,Raw as i,RecastBuildContext as a,NavMesh as l,VerticesArray as o,TrianglesArray as s,createRcConfig as r,calcGridSize as n,allocHeightfield as d,createHeightfield as h,TriangleAreasArray as c,markWalkableTriangles as m,rasterizeTriangles as g,filterLowHangingWalkableObstacles as u,filterLedgeSpans as b,filterWalkableLowHeightSpans as f,allocCompactHeightfield as w,buildCompactHeightfield as M,freeHeightfield as S,erodeWalkableArea as y,buildDistanceField as p,buildRegions as R,allocContourSet as x,buildContours as C,allocPolyMesh as k,buildPolyMesh as v,allocPolyMeshDetail as z,buildPolyMeshDetail as A,freeCompactHeightfield as _,freeContourSet as T,NavMeshCreateParams as E,createNavMeshData as H,freePolyMesh as D,freePolyMeshDetail as F,TileCacheMeshProcess as L,TileCache as P,DetourTileCacheParams as O,NavMeshParams as I,RecastChunkyTriMesh as $,freeHeightfieldLayerSet as G,cloneRcConfig as N,ChunkIdsArray as W,allocHeightfieldLayerSet as B,buildHeightfieldLayers as j,TileCacheData as K,getHeightfieldLayerHeights as V,getHeightfieldLayerAreas as X,getHeightfieldLayerCons as Y,buildTileCacheLayer as U,statusToReadableString as Z}from"@recast-navigation/core";const q=(t,i)=>{const a={x:1/0,y:1/0,z:1/0},l={x:-1/0,y:-1/0,z:-1/0};for(let e=0;e<i.length;e++){const o=i[e],s=t[3*o],r=t[3*o+1],n=t[3*o+2];a.x=Math.min(a.x,s),a.y=Math.min(a.y,r),a.z=Math.min(a.z,n),l.x=Math.max(l.x,s),l.y=Math.max(l.y,r),l.z=Math.max(l.z,n)}return{bbMin:e.toArray(a),bbMax:e.toArray(l)}},J=e=>{let t=0,i=0;return t=Number(e>65535)<<4,e>>=t,i=Number(e>255)<<3,e>>=i,t|=i,i=Number(e>15)<<2,e>>=i,t|=i,i=Number(e>3)<<1,t|=i,t|=(e>>=i)>>1,t},Q=e=>(e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e),ee={...t},te=(e,t,L={},P=!1)=>{if(!i.Module)throw new Error('"init" must be called before using any recast-navigation-js APIs. See: https://github.com/isaac-mason/recast-navigation-js?tab=readme-ov-file#initialization');const O=new a,I={type:"solo",buildContext:O},$=new l,G=e=>(P||(I.heightfield&&(S(I.heightfield),I.heightfield=void 0),I.compactHeightfield&&(_(I.compactHeightfield),I.compactHeightfield=void 0),I.contourSet&&(T(I.contourSet),I.contourSet=void 0),I.polyMesh&&(D(I.polyMesh),I.polyMesh=void 0),I.polyMeshDetail&&(F(I.polyMeshDetail),I.polyMeshDetail=void 0)),$.destroy(),{navMesh:void 0,success:!1,intermediates:I,error:e}),N=e,W=t.length,B=new o;B.copy(N);const j=t,K=t.length/3,V=new s;V.copy(j);const{bbMin:X,bbMax:Y}=q(e,t),U=r({...ee,...L});U.minRegionArea=U.minRegionArea*U.minRegionArea,U.mergeRegionArea=U.mergeRegionArea*U.mergeRegionArea,U.detailSampleDist=U.detailSampleDist<.9?0:U.cs*U.detailSampleDist,U.detailSampleMaxError=U.ch*U.detailSampleMaxError;const Z=n(X,Y,U.cs);U.width=Z.width,U.height=Z.height;const J=d();if(I.heightfield=J,!h(O,J,U.width,U.height,X,Y,U.cs,U.ch))return G("Could not create heightfield");const Q=new c;if(Q.resize(K),m(O,U.walkableSlopeAngle,B,W,V,K,Q),!g(O,B,W,V,Q,K,J,U.walkableClimb))return G("Could not rasterize triangles");Q.destroy(),B.destroy(),V.destroy(),u(O,U.walkableClimb,J),b(O,U.walkableHeight,U.walkableClimb,J),f(O,U.walkableHeight,J);const te=w();if(I.compactHeightfield=te,!M(O,U.walkableHeight,U.walkableClimb,J,te))return G("Failed to build compact data");if(P||(S(J),I.heightfield=void 0),!y(O,U.walkableRadius,te))return G("Failed to erode walkable area");if(!p(O,te))return G("Failed to build distance field");if(!R(O,te,U.borderSize,U.minRegionArea,U.mergeRegionArea))return G("Failed to build regions");const ie=x();if(I.contourSet=ie,!C(O,te,U.maxSimplificationError,U.maxEdgeLen,ie,i.Module.RC_CONTOUR_TESS_WALL_EDGES))return G("Failed to create contours");const ae=k();if(I.polyMesh=ae,!v(O,ie,U.maxVertsPerPoly,ae))return G("Failed to triangulate contours");const le=z();if(I.polyMeshDetail=le,!A(O,ae,te,U.detailSampleDist,U.detailSampleMaxError,le))return G("Failed to build detail mesh");P||(_(te),I.compactHeightfield=void 0,T(ie),I.contourSet=void 0);for(let e=0;e<ae.npolys();e++)ae.areas(e)==i.Recast.WALKABLE_AREA&&ae.setAreas(e,0),0==ae.areas(e)&&ae.setFlags(e,1);const oe=new E;oe.setPolyMeshCreateParams(ae),oe.setPolyMeshDetailCreateParams(le),oe.setWalkableHeight(U.walkableHeight),oe.setWalkableRadius(U.walkableRadius),oe.setWalkableClimb(U.walkableClimb),oe.setCellSize(U.cs),oe.setCellHeight(U.ch),oe.setBuildBvTree(!0),L.offMeshConnections&&oe.setOffMeshConnections(L.offMeshConnections);const se=H(oe);if(!se.success)return G("Failed to create Detour navmesh data");const{navMeshData:re}=se;return $.initSolo(re)?{success:!0,navMesh:$,intermediates:I}:G("Failed to create Detour navmesh")},ie={...t,tileSize:32,expectedLayersPerTile:4,maxObstacles:128},ae=()=>new L(((e,t,i)=>{for(let a=0;a<e.polyCount();++a)t.set(a,0),i.set(a,1)})),le=(t,p,R={},x=!1)=>{if(!i.Module)throw new Error('"init" must be called before using any recast-navigation-js APIs. See: https://github.com/isaac-mason/recast-navigation-js?tab=readme-ov-file#initialization');const C=new a,k={type:"tilecache",buildContext:C,chunkyTriMesh:void 0,tileIntermediates:[]},v=new P,z=new l,A=t,T=p.length,E=new o;E.copy(A);const H=p,D=p.length/3,F=new s;F.copy(H);const{bbMin:L,bbMax:Z}=q(t,p),{expectedLayersPerTile:ee,maxObstacles:te,...le}={...ie,...R},oe=()=>{if(E.destroy(),F.destroy(),!x)for(let e=0;e<k.tileIntermediates.length;e++){const t=k.tileIntermediates[e];t.heightfield&&(S(t.heightfield),t.heightfield=void 0),t.compactHeightfield&&(_(t.compactHeightfield),t.compactHeightfield=void 0),t.heightfieldLayerSet&&(G(t.heightfieldLayerSet),t.heightfieldLayerSet=void 0)}},se=e=>(oe(),v.destroy(),z.destroy(),{success:!1,navMesh:void 0,tileCache:void 0,intermediates:k,error:e}),re=r(le),ne=n(L,Z,re.cs);re.width=ne.width,re.height=ne.height,re.minRegionArea=re.minRegionArea*re.minRegionArea,re.mergeRegionArea=re.mergeRegionArea*re.mergeRegionArea,re.detailSampleDist=re.detailSampleDist<.9?0:re.cs*re.detailSampleDist,re.detailSampleMaxError=re.ch*re.detailSampleMaxError;const de=Math.floor(re.tileSize),he=Math.floor((re.width+de-1)/de),ce=Math.floor((re.height+de-1)/de);re.borderSize=re.walkableRadius+3,re.width=re.tileSize+2*re.borderSize,re.height=re.tileSize+2*re.borderSize;const me=O.create({orig:L,cs:re.cs,ch:re.ch,width:re.tileSize,height:re.tileSize,walkableHeight:re.walkableHeight,walkableRadius:re.walkableRadius,walkableClimb:re.walkableClimb,maxSimplificationError:re.maxSimplificationError,maxTiles:he*ce*ee,maxObstacles:te}),ge=new i.RecastLinearAllocator(32e3),ue=new i.RecastFastLZCompressor,be=R.tileCacheMeshProcess??ae();if(!v.init(me,ge,ue,be))return se("Failed to initialize tile cache");const fe=e.fromArray(L);let we=Math.min(Math.floor(J(Q(he*ce*ee))),14);we>14&&(we=14);const Me=1<<we,Se=1<<22-we,ye=I.create({orig:fe,tileWidth:re.tileSize*re.cs,tileHeight:re.tileSize*re.cs,maxTiles:Me,maxPolys:Se});if(!z.initTiled(ye))return se("Failed to initialize tiled navmesh");const pe=new $;if(k.chunkyTriMesh=pe,!pe.init(E,F,D,256))return se("Failed to build chunky triangle mesh");const Re=(e,t)=>{const a={tileX:e,tileY:t},l=re.tileSize*re.cs,o=N(re),s=[L[0]+e*l,L[1],L[2]+t*l],r=[L[0]+(e+1)*l,Z[1],L[2]+(t+1)*l];s[0]-=o.borderSize*o.cs,s[2]-=o.borderSize*o.cs,r[0]+=o.borderSize*o.cs,r[2]+=o.borderSize*o.cs,o.set_bmin(0,s[0]),o.set_bmin(1,s[1]),o.set_bmin(2,s[2]),o.set_bmax(0,r[0]),o.set_bmax(1,r[1]),o.set_bmax(2,r[2]);const n=d();if(a.heightfield=n,!h(C,n,o.width,o.height,s,r,o.cs,o.ch))return{n:0};const p=[s[0],s[2]],R=[r[0],r[2]],v=new W;v.resize(512);const z=pe.getChunksOverlappingRect(p,R,v,512);if(0===z)return{n:0};for(let e=0;e<z;++e){const t=v.get(e),i=pe.nodes(t).n,a=pe.getNodeTris(t),l=new c;l.resize(i),m(C,o.walkableSlopeAngle,E,T,a,i,l);const s=g(C,E,T,a,l,i,n,o.walkableClimb);if(l.destroy(),!s)return{n:0}}u(C,re.walkableClimb,n),b(C,re.walkableHeight,re.walkableClimb,n),f(C,re.walkableHeight,n);const A=w();if(!M(C,re.walkableHeight,re.walkableClimb,n,A))return{n:0};if(x||(S(a.heightfield),a.heightfield=void 0),!y(C,re.walkableRadius,A))return{n:0};const H=B();if(!j(C,A,re.borderSize,re.walkableHeight,H))return{n:0};x||(_(A),a.compactHeightfield=void 0);const D=[];for(let a=0;a<H.nlayers();a++){const l=new K,o=H.layers(a),s=new i.dtTileCacheLayerHeader;s.magic=i.Detour.TILECACHE_MAGIC,s.version=i.Detour.TILECACHE_VERSION,s.tx=e,s.ty=t,s.tlayer=a;const r=o.bmin(),n=o.bmax();s.set_bmin(0,r.x),s.set_bmin(1,r.y),s.set_bmin(2,r.z),s.set_bmax(0,n.x),s.set_bmax(1,n.y),s.set_bmax(2,n.z),s.width=o.width(),s.height=o.height(),s.minx=o.minx(),s.maxx=o.maxx(),s.miny=o.miny(),s.maxy=o.maxy(),s.hmin=o.hmin(),s.hmax=o.hmax();const d=V(o),h=X(o),c=Y(o),m=U(ue,s,d,h,c,l);if(i.Detour.statusFailed(m))return{n:0};D.push(l)}return x||(G(H),a.heightfieldLayerSet=void 0),k.tileIntermediates.push(a),{n:D.length,tiles:D}};for(let e=0;e<ce;++e)for(let t=0;t<he;++t){const{n:a,tiles:l}=Re(t,e);if(a>0&&l)for(let o=0;o<a;o++){const a=l[o],s=v.addTile(a);i.Detour.statusFailed(s.status)&&C.log(i.Module.RC_LOG_WARNING,`Failed to add tile to tile cache - tx: ${t}, ty: ${e}`)}}for(let e=0;e<ce;e++)for(let t=0;t<he;t++){const a=v.buildNavMeshTilesAt(t,e,z);if(i.Detour.statusFailed(a))return se(`Failed to build nav mesh tiles at ${t}, ${e}`)}return oe(),{success:!0,tileCache:v,navMesh:z,intermediates:k}},oe={...t},se=(t,L,P={},O=!1)=>{if(!i.Module)throw new Error('"init" must be called before using any recast-navigation-js APIs. See: https://github.com/isaac-mason/recast-navigation-js?tab=readme-ov-file#initialization');const G=new a,B={type:"tiled",buildContext:G,chunkyTriMesh:void 0,tileIntermediates:[]},j=new l,K=t,V=L.length,X=new o;X.copy(K);const Y=L,U=L.length/3,ee=new s;ee.copy(Y);const te=()=>{if(X.destroy(),ee.destroy(),!O){for(let e=0;e<B.tileIntermediates.length;e++){const t=B.tileIntermediates[e];t.compactHeightfield&&_(t.compactHeightfield),t.heightfield&&S(t.heightfield),t.contourSet&&T(t.contourSet),t.polyMesh&&D(t.polyMesh),t.polyMeshDetail&&F(t.polyMeshDetail)}B.chunkyTriMesh&&(B.chunkyTriMesh=void 0)}},ie=e=>(te(),j.destroy(),{success:!1,navMesh:void 0,intermediates:B,error:e}),ae=r({...oe,...P}),{bbMin:le,bbMax:se}=q(t,L),re=n(le,se,ae.cs);ae.width=re.width,ae.height=re.height,ae.minRegionArea=ae.minRegionArea*ae.minRegionArea,ae.mergeRegionArea=ae.mergeRegionArea*ae.mergeRegionArea,ae.tileSize=Math.floor(ae.tileSize),ae.borderSize=ae.walkableRadius+3,ae.width=ae.tileSize+2*ae.borderSize,ae.height=ae.tileSize+2*ae.borderSize,ae.detailSampleDist=ae.detailSampleDist<.9?0:ae.cs*ae.detailSampleDist,ae.detailSampleMaxError=ae.ch*ae.detailSampleMaxError;const ne=Math.floor(ae.tileSize),de=Math.floor((re.width+ne-1)/ne),he=Math.floor((re.height+ne-1)/ne),ce=ae.tileSize*ae.cs,me=e.fromArray(le);let ge=Math.min(Math.floor(J(Q(de*he))),14);ge>14&&(ge=14);const ue=1<<ge,be=1<<22-ge,fe=I.create({orig:me,tileWidth:ae.tileSize*ae.cs,tileHeight:ae.tileSize*ae.cs,maxTiles:ue,maxPolys:be});if(!j.initTiled(fe))return ie("Could not init nav mesh for tiled use");const we=new $;if(B.chunkyTriMesh=we,!we.init(X,ee,U,256))return ie("Failed to build chunky triangle mesh");const Me=(e,t,a,l)=>{const o=e=>(G.log(i.Module.RC_LOG_ERROR,e),{success:!1,error:e}),s={tileX:e,tileY:t};B.tileIntermediates.push(s);const r=N(ae),n=[...a],D=[...l];n[0]-=r.borderSize*r.cs,n[2]-=r.borderSize*r.cs,D[0]+=r.borderSize*r.cs,D[2]+=r.borderSize*r.cs,r.set_bmin(0,n[0]),r.set_bmin(1,n[1]),r.set_bmin(2,n[2]),r.set_bmax(0,D[0]),r.set_bmax(1,D[1]),r.set_bmax(2,D[2]),G.resetTimers(),G.startTimer(i.Module.RC_TIMER_TOTAL),G.log(i.Module.RC_LOG_PROGRESS,`Building tile ${B.tileIntermediates.length} at x: ${e}, y: ${t}`),G.log(i.Module.RC_LOG_PROGRESS,` - ${ae.width} x ${ae.height} cells`),G.log(i.Module.RC_LOG_PROGRESS,` - ${V/1e3}fK verts, ${U/1e3}K tris`);const F=d();if(s.heightfield=F,!h(G,F,r.width,r.height,n,D,r.cs,r.ch))return o("Could not create heightfield");(new c).resize(we.maxTrisPerChunk());const L=[n[0],n[2]],I=[D[0],D[2]],$=new W;$.resize(512);const j=we.getChunksOverlappingRect(L,I,$,512);if(0===j)return{success:!0};for(let e=0;e<j;++e){const t=$.get(e),i=we.nodes(t).n,a=we.getNodeTris(t),l=new c;l.resize(i),m(G,r.walkableSlopeAngle,X,V,a,i,l);const s=g(G,X,V,a,l,i,F,r.walkableClimb);if(l.destroy(),!s)return o("Could not rasterize triangles")}u(G,r.walkableClimb,F),b(G,r.walkableHeight,r.walkableClimb,F),f(G,r.walkableHeight,F);const K=w();if(s.compactHeightfield=K,!M(G,r.walkableHeight,r.walkableClimb,F,K))return o("Could not build compact heightfield");if(O||(S(s.heightfield),s.heightfield=void 0),!y(G,r.walkableRadius,K))return o("Could not erode walkable area");if(!p(G,K))return o("Failed to build distance field");if(!R(G,K,r.borderSize,r.minRegionArea,r.mergeRegionArea))return o("Failed to build regions");const Y=x();if(s.contourSet=Y,!C(G,K,r.maxSimplificationError,r.maxEdgeLen,Y,i.Module.RC_CONTOUR_TESS_WALL_EDGES))return o("Failed to create contours");const Z=k();if(s.polyMesh=Z,!v(G,Y,r.maxVertsPerPoly,Z))return o("Failed to triangulate contours");const q=z();if(s.polyMeshDetail=q,!A(G,Z,K,r.detailSampleDist,r.detailSampleMaxError,q))return o("Failed to build detail mesh");O||(_(K),s.compactHeightfield=void 0,T(Y),s.contourSet=void 0);for(let e=0;e<Z.npolys();e++)Z.areas(e)==i.Recast.WALKABLE_AREA&&Z.setAreas(e,0),0==Z.areas(e)&&Z.setFlags(e,1);const J=new E;J.setPolyMeshCreateParams(Z),J.setPolyMeshDetailCreateParams(q),J.setWalkableHeight(r.walkableHeight),J.setWalkableRadius(r.walkableRadius),J.setWalkableClimb(r.walkableClimb),J.setCellSize(r.cs),J.setCellHeight(r.ch),J.setBuildBvTree(!0),P.offMeshConnections&&J.setOffMeshConnections(P.offMeshConnections),J.setTileX(e),J.setTileY(t);const Q=H(J);return Q.success?(G.log(i.Module.RC_LOG_PROGRESS,`>> Polymesh: ${Z.nverts()} vertices ${Z.npolys()} polygons`),{success:!0,data:Q.navMeshData}):o("Failed to create Detour navmesh data")};G.startTimer(i.Module.RC_TIMER_TEMP);const Se=[0,0,0],ye=[0,0,0];for(let e=0;e<he;e++)for(let t=0;t<de;t++){Se[0]=le[0]+t*ce,Se[1]=le[1],Se[2]=le[2]+e*ce,ye[0]=le[0]+(t+1)*ce,ye[1]=se[1],ye[2]=le[2]+(e+1)*ce;const a=Me(t,e,Se,ye);if(a.success&&a.data){j.removeTile(j.getTileRefAt(t,e,0));const l=j.addTile(a.data,i.Module.DT_TILE_FREE_DATA,0);i.Detour.statusFailed(l.status)&&(G.log(i.Module.RC_LOG_WARNING,`Failed to add tile to nav mesh\n\ttx: ${t}, ty: ${e},status: ${Z(l.status)} (${l.status})`),a.data.destroy())}}return G.stopTimer(i.Module.RC_TIMER_TEMP),O||te(),{success:!0,navMesh:j,intermediates:B}};export{ae as createDefaultTileCacheMeshProcess,J as dtIlog2,Q as dtNextPow2,te as generateSoloNavMesh,le as generateTileCache,se as generateTiledNavMesh,q as getBoundingBox,ee as soloNavMeshGeneratorConfigDefaults,ie as tileCacheGeneratorConfigDefaults,oe as tiledNavMeshGeneratorConfigDefaults};
1
+ import{vec3 as e,recastConfigDefaults as t,Raw as i,RecastBuildContext as a,NavMesh as l,VerticesArray as r,TrianglesArray as s,createRcConfig as o,calcGridSize as n,allocHeightfield as h,createHeightfield as d,TriangleAreasArray as c,markWalkableTriangles as m,rasterizeTriangles as g,filterLowHangingWalkableObstacles as b,filterLedgeSpans as u,filterWalkableLowHeightSpans as f,allocCompactHeightfield as w,buildCompactHeightfield as S,freeHeightfield as y,erodeWalkableArea as p,buildDistanceField as M,buildRegions as R,allocContourSet as C,buildContours as x,Recast as k,allocPolyMesh as v,buildPolyMesh as z,allocPolyMeshDetail as _,buildPolyMeshDetail as A,freeCompactHeightfield as T,freeContourSet as E,NavMeshCreateParams as H,createNavMeshData as D,freePolyMesh as L,freePolyMeshDetail as P,TileCacheMeshProcess as F,TileCache as O,DetourTileCacheParams as I,NavMeshParams as $,RecastChunkyTriMesh as G,statusFailed as N,freeHeightfieldLayerSet as W,cloneRcConfig as B,ChunkIdsArray as j,allocHeightfieldLayerSet as K,buildHeightfieldLayers as V,TileCacheData as X,Detour as Y,getHeightfieldLayerHeights as U,getHeightfieldLayerAreas as Z,getHeightfieldLayerCons as q,buildTileCacheLayer as J,statusToReadableString as Q}from"@recast-navigation/core";const ee=(t,i)=>{const a={x:1/0,y:1/0,z:1/0},l={x:-1/0,y:-1/0,z:-1/0};for(let e=0;e<i.length;e++){const r=i[e],s=t[3*r],o=t[3*r+1],n=t[3*r+2];a.x=Math.min(a.x,s),a.y=Math.min(a.y,o),a.z=Math.min(a.z,n),l.x=Math.max(l.x,s),l.y=Math.max(l.y,o),l.z=Math.max(l.z,n)}return{bbMin:e.toArray(a),bbMax:e.toArray(l)}},te=e=>{let t=0,i=0;return t=Number(e>65535)<<4,e>>=t,i=Number(e>255)<<3,e>>=i,t|=i,i=Number(e>15)<<2,e>>=i,t|=i,i=Number(e>3)<<1,t|=i,t|=(e>>=i)>>1,t},ie=e=>(e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e),ae={...t},le=(e,t,F={},O=!1)=>{if(!i.Module)throw new Error('"init" must be called before using any recast-navigation-js APIs. See: https://github.com/isaac-mason/recast-navigation-js?tab=readme-ov-file#initialization');const I=new a,$={type:"solo",buildContext:I},G=new l,N=e=>(O||($.heightfield&&(y($.heightfield),$.heightfield=void 0),$.compactHeightfield&&(T($.compactHeightfield),$.compactHeightfield=void 0),$.contourSet&&(E($.contourSet),$.contourSet=void 0),$.polyMesh&&(L($.polyMesh),$.polyMesh=void 0),$.polyMeshDetail&&(P($.polyMeshDetail),$.polyMeshDetail=void 0)),G.destroy(),{navMesh:void 0,success:!1,intermediates:$,error:e}),W=e,B=t.length,j=new r;j.copy(W);const K=t,V=t.length/3,X=new s;X.copy(K);const{bbMin:Y,bbMax:U}=ee(e,t),Z=o({...ae,...F});Z.minRegionArea=Z.minRegionArea*Z.minRegionArea,Z.mergeRegionArea=Z.mergeRegionArea*Z.mergeRegionArea,Z.detailSampleDist=Z.detailSampleDist<.9?0:Z.cs*Z.detailSampleDist,Z.detailSampleMaxError=Z.ch*Z.detailSampleMaxError;const q=n(Y,U,Z.cs);Z.width=q.width,Z.height=q.height;const J=h();if($.heightfield=J,!d(I,J,Z.width,Z.height,Y,U,Z.cs,Z.ch))return N("Could not create heightfield");const Q=new c;if(Q.resize(V),m(I,Z.walkableSlopeAngle,j,B,X,V,Q),!g(I,j,B,X,Q,V,J,Z.walkableClimb))return N("Could not rasterize triangles");Q.destroy(),j.destroy(),X.destroy(),b(I,Z.walkableClimb,J),u(I,Z.walkableHeight,Z.walkableClimb,J),f(I,Z.walkableHeight,J);const te=w();if($.compactHeightfield=te,!S(I,Z.walkableHeight,Z.walkableClimb,J,te))return N("Failed to build compact data");if(O||(y(J),$.heightfield=void 0),!p(I,Z.walkableRadius,te))return N("Failed to erode walkable area");if(!M(I,te))return N("Failed to build distance field");if(!R(I,te,Z.borderSize,Z.minRegionArea,Z.mergeRegionArea))return N("Failed to build regions");const ie=C();if($.contourSet=ie,!x(I,te,Z.maxSimplificationError,Z.maxEdgeLen,ie,k.RC_CONTOUR_TESS_WALL_EDGES))return N("Failed to create contours");const le=v();if($.polyMesh=le,!z(I,ie,Z.maxVertsPerPoly,le))return N("Failed to triangulate contours");const re=_();if($.polyMeshDetail=re,!A(I,le,te,Z.detailSampleDist,Z.detailSampleMaxError,re))return N("Failed to build detail mesh");O||(T(te),$.compactHeightfield=void 0,E(ie),$.contourSet=void 0);for(let e=0;e<le.npolys();e++)le.areas(e)==k.RC_WALKABLE_AREA&&le.setAreas(e,0),0==le.areas(e)&&le.setFlags(e,1);const se=new H;se.setPolyMeshCreateParams(le),se.setPolyMeshDetailCreateParams(re),se.setWalkableHeight(Z.walkableHeight),se.setWalkableRadius(Z.walkableRadius),se.setWalkableClimb(Z.walkableClimb),se.setCellSize(Z.cs),se.setCellHeight(Z.ch),se.setBuildBvTree(!0),F.offMeshConnections&&se.setOffMeshConnections(F.offMeshConnections);const oe=D(se);if(!oe.success)return N("Failed to create Detour navmesh data");const{navMeshData:ne}=oe;return G.initSolo(ne)?{success:!0,navMesh:G,intermediates:$}:N("Failed to create Detour navmesh")},re={...t,tileSize:32,expectedLayersPerTile:4,maxObstacles:128},se=()=>new F(((e,t,i)=>{for(let a=0;a<e.polyCount();++a)t.set(a,0),i.set(a,1)})),oe=(t,M,R={},C=!1)=>{if(!i.Module)throw new Error('"init" must be called before using any recast-navigation-js APIs. See: https://github.com/isaac-mason/recast-navigation-js?tab=readme-ov-file#initialization');const x=new a,v={type:"tilecache",buildContext:x,chunkyTriMesh:void 0,tileIntermediates:[]},z=new O,_=new l,A=t,E=M.length,H=new r;H.copy(A);const D=M,L=M.length/3,P=new s;P.copy(D);const{bbMin:F,bbMax:Q}=ee(t,M),{expectedLayersPerTile:ae,maxObstacles:le,...oe}={...re,...R},ne=()=>{if(H.destroy(),P.destroy(),!C)for(let e=0;e<v.tileIntermediates.length;e++){const t=v.tileIntermediates[e];t.heightfield&&(y(t.heightfield),t.heightfield=void 0),t.compactHeightfield&&(T(t.compactHeightfield),t.compactHeightfield=void 0),t.heightfieldLayerSet&&(W(t.heightfieldLayerSet),t.heightfieldLayerSet=void 0)}},he=e=>(ne(),z.destroy(),_.destroy(),{success:!1,navMesh:void 0,tileCache:void 0,intermediates:v,error:e}),de=o(oe),ce=n(F,Q,de.cs);de.width=ce.width,de.height=ce.height,de.minRegionArea=de.minRegionArea*de.minRegionArea,de.mergeRegionArea=de.mergeRegionArea*de.mergeRegionArea,de.detailSampleDist=de.detailSampleDist<.9?0:de.cs*de.detailSampleDist,de.detailSampleMaxError=de.ch*de.detailSampleMaxError;const me=Math.floor(de.tileSize),ge=Math.floor((de.width+me-1)/me),be=Math.floor((de.height+me-1)/me);de.borderSize=de.walkableRadius+3,de.width=de.tileSize+2*de.borderSize,de.height=de.tileSize+2*de.borderSize;const ue=I.create({orig:F,cs:de.cs,ch:de.ch,width:de.tileSize,height:de.tileSize,walkableHeight:de.walkableHeight,walkableRadius:de.walkableRadius,walkableClimb:de.walkableClimb,maxSimplificationError:de.maxSimplificationError,maxTiles:ge*be*ae,maxObstacles:le}),fe=new i.RecastLinearAllocator(32e3),we=new i.RecastFastLZCompressor,Se=R.tileCacheMeshProcess??se();if(!z.init(ue,fe,we,Se))return he("Failed to initialize tile cache");const ye=e.fromArray(F);let pe=Math.min(Math.floor(te(ie(ge*be*ae))),14);pe>14&&(pe=14);const Me=1<<pe,Re=1<<22-pe,Ce=$.create({orig:ye,tileWidth:de.tileSize*de.cs,tileHeight:de.tileSize*de.cs,maxTiles:Me,maxPolys:Re});if(!_.initTiled(Ce))return he("Failed to initialize tiled navmesh");const xe=new G;if(v.chunkyTriMesh=xe,!xe.init(H,P,L,256))return he("Failed to build chunky triangle mesh");const ke=(e,t)=>{const a={tileX:e,tileY:t},l=de.tileSize*de.cs,r=B(de),s=[F[0]+e*l,F[1],F[2]+t*l],o=[F[0]+(e+1)*l,Q[1],F[2]+(t+1)*l];s[0]-=r.borderSize*r.cs,s[2]-=r.borderSize*r.cs,o[0]+=r.borderSize*r.cs,o[2]+=r.borderSize*r.cs,r.set_bmin(0,s[0]),r.set_bmin(1,s[1]),r.set_bmin(2,s[2]),r.set_bmax(0,o[0]),r.set_bmax(1,o[1]),r.set_bmax(2,o[2]);const n=h();if(a.heightfield=n,!d(x,n,r.width,r.height,s,o,r.cs,r.ch))return{n:0};const M=[s[0],s[2]],R=[o[0],o[2]],k=new j;k.resize(512);const z=xe.getChunksOverlappingRect(M,R,k,512);if(0===z)return{n:0};for(let e=0;e<z;++e){const t=k.get(e),i=xe.nodes(t).n,a=xe.getNodeTris(t),l=new c;l.resize(i),m(x,r.walkableSlopeAngle,H,E,a,i,l);const s=g(x,H,E,a,l,i,n,r.walkableClimb);if(l.destroy(),!s)return{n:0}}b(x,de.walkableClimb,n),u(x,de.walkableHeight,de.walkableClimb,n),f(x,de.walkableHeight,n);const _=w();if(!S(x,de.walkableHeight,de.walkableClimb,n,_))return{n:0};if(C||(y(a.heightfield),a.heightfield=void 0),!p(x,de.walkableRadius,_))return{n:0};const A=K();if(!V(x,_,de.borderSize,de.walkableHeight,A))return{n:0};C||(T(_),a.compactHeightfield=void 0);const D=[];for(let a=0;a<A.nlayers();a++){const l=new X,r=A.layers(a),s=new i.dtTileCacheLayerHeader;s.magic=Y.DT_TILECACHE_MAGIC,s.version=Y.DT_TILECACHE_VERSION,s.tx=e,s.ty=t,s.tlayer=a;const o=r.bmin(),n=r.bmax();s.set_bmin(0,o.x),s.set_bmin(1,o.y),s.set_bmin(2,o.z),s.set_bmax(0,n.x),s.set_bmax(1,n.y),s.set_bmax(2,n.z),s.width=r.width(),s.height=r.height(),s.minx=r.minx(),s.maxx=r.maxx(),s.miny=r.miny(),s.maxy=r.maxy(),s.hmin=r.hmin(),s.hmax=r.hmax();const h=U(r),d=Z(r),c=q(r),m=J(we,s,h,d,c,l);if(N(m))return{n:0};D.push(l)}return C||(W(A),a.heightfieldLayerSet=void 0),v.tileIntermediates.push(a),{n:D.length,tiles:D}};for(let e=0;e<be;++e)for(let t=0;t<ge;++t){const{n:i,tiles:a}=ke(t,e);if(i>0&&a)for(let l=0;l<i;l++){const i=a[l],r=z.addTile(i);N(r.status)&&x.log(k.RC_LOG_WARNING,`Failed to add tile to tile cache - tx: ${t}, ty: ${e}`)}}for(let e=0;e<be;e++)for(let t=0;t<ge;t++){const i=z.buildNavMeshTilesAt(t,e,_);if(N(i))return he(`Failed to build nav mesh tiles at ${t}, ${e}`)}return ne(),{success:!0,tileCache:z,navMesh:_,intermediates:v}},ne={...t},he=(t,F,O={},I=!1)=>{if(!i.Module)throw new Error('"init" must be called before using any recast-navigation-js APIs. See: https://github.com/isaac-mason/recast-navigation-js?tab=readme-ov-file#initialization');const W=new a,K={type:"tiled",buildContext:W,chunkyTriMesh:void 0,tileIntermediates:[]},V=new l,X=t,U=F.length,Z=new r;Z.copy(X);const q=F,J=F.length/3,ae=new s;ae.copy(q);const le=()=>{if(Z.destroy(),ae.destroy(),!I){for(let e=0;e<K.tileIntermediates.length;e++){const t=K.tileIntermediates[e];t.compactHeightfield&&T(t.compactHeightfield),t.heightfield&&y(t.heightfield),t.contourSet&&E(t.contourSet),t.polyMesh&&L(t.polyMesh),t.polyMeshDetail&&P(t.polyMeshDetail)}K.chunkyTriMesh&&(K.chunkyTriMesh=void 0)}},re=e=>(le(),V.destroy(),{success:!1,navMesh:void 0,intermediates:K,error:e}),se=o({...ne,...O}),{bbMin:oe,bbMax:he}=ee(t,F),de=n(oe,he,se.cs);se.width=de.width,se.height=de.height,se.minRegionArea=se.minRegionArea*se.minRegionArea,se.mergeRegionArea=se.mergeRegionArea*se.mergeRegionArea,se.tileSize=Math.floor(se.tileSize),se.borderSize=se.walkableRadius+3,se.width=se.tileSize+2*se.borderSize,se.height=se.tileSize+2*se.borderSize,se.detailSampleDist=se.detailSampleDist<.9?0:se.cs*se.detailSampleDist,se.detailSampleMaxError=se.ch*se.detailSampleMaxError;const ce=Math.floor(se.tileSize),me=Math.floor((de.width+ce-1)/ce),ge=Math.floor((de.height+ce-1)/ce),be=se.tileSize*se.cs,ue=e.fromArray(oe);let fe=Math.min(Math.floor(te(ie(me*ge))),14);fe>14&&(fe=14);const we=1<<fe,Se=1<<22-fe,ye=$.create({orig:ue,tileWidth:se.tileSize*se.cs,tileHeight:se.tileSize*se.cs,maxTiles:we,maxPolys:Se});if(!V.initTiled(ye))return re("Could not init nav mesh for tiled use");const pe=new G;if(K.chunkyTriMesh=pe,!pe.init(Z,ae,J,256))return re("Failed to build chunky triangle mesh");const Me=(e,t,i,a)=>{const l=e=>(W.log(k.RC_LOG_ERROR,e),{success:!1,error:e}),r={tileX:e,tileY:t};K.tileIntermediates.push(r);const s=B(se),o=[...i],n=[...a];o[0]-=s.borderSize*s.cs,o[2]-=s.borderSize*s.cs,n[0]+=s.borderSize*s.cs,n[2]+=s.borderSize*s.cs,s.set_bmin(0,o[0]),s.set_bmin(1,o[1]),s.set_bmin(2,o[2]),s.set_bmax(0,n[0]),s.set_bmax(1,n[1]),s.set_bmax(2,n[2]),W.resetTimers(),W.startTimer(k.RC_TIMER_TOTAL),W.log(k.RC_LOG_PROGRESS,`Building tile ${K.tileIntermediates.length} at x: ${e}, y: ${t}`),W.log(k.RC_LOG_PROGRESS,` - ${se.width} x ${se.height} cells`),W.log(k.RC_LOG_PROGRESS,` - ${U/1e3}fK verts, ${J/1e3}K tris`);const L=h();if(r.heightfield=L,!d(W,L,s.width,s.height,o,n,s.cs,s.ch))return l("Could not create heightfield");(new c).resize(pe.maxTrisPerChunk());const P=[o[0],o[2]],F=[n[0],n[2]],$=new j;$.resize(512);const G=pe.getChunksOverlappingRect(P,F,$,512);if(0===G)return{success:!0};for(let e=0;e<G;++e){const t=$.get(e),i=pe.nodes(t).n,a=pe.getNodeTris(t),r=new c;r.resize(i),m(W,s.walkableSlopeAngle,Z,U,a,i,r);const o=g(W,Z,U,a,r,i,L,s.walkableClimb);if(r.destroy(),!o)return l("Could not rasterize triangles")}b(W,s.walkableClimb,L),u(W,s.walkableHeight,s.walkableClimb,L),f(W,s.walkableHeight,L);const N=w();if(r.compactHeightfield=N,!S(W,s.walkableHeight,s.walkableClimb,L,N))return l("Could not build compact heightfield");if(I||(y(r.heightfield),r.heightfield=void 0),!p(W,s.walkableRadius,N))return l("Could not erode walkable area");if(!M(W,N))return l("Failed to build distance field");if(!R(W,N,s.borderSize,s.minRegionArea,s.mergeRegionArea))return l("Failed to build regions");const V=C();if(r.contourSet=V,!x(W,N,s.maxSimplificationError,s.maxEdgeLen,V,k.RC_CONTOUR_TESS_WALL_EDGES))return l("Failed to create contours");const X=v();if(r.polyMesh=X,!z(W,V,s.maxVertsPerPoly,X))return l("Failed to triangulate contours");const Y=_();if(r.polyMeshDetail=Y,!A(W,X,N,s.detailSampleDist,s.detailSampleMaxError,Y))return l("Failed to build detail mesh");I||(T(N),r.compactHeightfield=void 0,E(V),r.contourSet=void 0);for(let e=0;e<X.npolys();e++)X.areas(e)==k.RC_WALKABLE_AREA&&X.setAreas(e,0),0==X.areas(e)&&X.setFlags(e,1);const q=new H;q.setPolyMeshCreateParams(X),q.setPolyMeshDetailCreateParams(Y),q.setWalkableHeight(s.walkableHeight),q.setWalkableRadius(s.walkableRadius),q.setWalkableClimb(s.walkableClimb),q.setCellSize(s.cs),q.setCellHeight(s.ch),q.setBuildBvTree(!0),O.offMeshConnections&&q.setOffMeshConnections(O.offMeshConnections),q.setTileX(e),q.setTileY(t);const Q=D(q);return Q.success?(W.log(k.RC_LOG_PROGRESS,`>> Polymesh: ${X.nverts()} vertices ${X.npolys()} polygons`),{success:!0,data:Q.navMeshData}):l("Failed to create Detour navmesh data")};W.startTimer(k.RC_TIMER_TEMP);const Re=[0,0,0],Ce=[0,0,0];for(let e=0;e<ge;e++)for(let t=0;t<me;t++){Re[0]=oe[0]+t*be,Re[1]=oe[1],Re[2]=oe[2]+e*be,Ce[0]=oe[0]+(t+1)*be,Ce[1]=he[1],Ce[2]=oe[2]+(e+1)*be;const i=Me(t,e,Re,Ce);if(i.success&&i.data){V.removeTile(V.getTileRefAt(t,e,0));const a=V.addTile(i.data,Y.DT_TILE_FREE_DATA,0);N(a.status)&&(W.log(k.RC_LOG_WARNING,`Failed to add tile to nav mesh\n\ttx: ${t}, ty: ${e},status: ${Q(a.status)} (${a.status})`),i.data.destroy())}}return W.stopTimer(k.RC_TIMER_TEMP),I||le(),{success:!0,navMesh:V,intermediates:K}};export{se as createDefaultTileCacheMeshProcess,te as dtIlog2,ie as dtNextPow2,le as generateSoloNavMesh,oe as generateTileCache,he as generateTiledNavMesh,ee as getBoundingBox,ae as soloNavMeshGeneratorConfigDefaults,re as tileCacheGeneratorConfigDefaults,ne as tiledNavMeshGeneratorConfigDefaults};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/generators/common.ts","../src/generators/generate-solo-nav-mesh.ts","../src/generators/generate-tile-cache.ts","../src/generators/generate-tiled-nav-mesh.ts"],"sourcesContent":[null,null,null,null],"names":["getBoundingBox","positions","indices","bbMin","x","Infinity","y","z","bbMax","i","length","ind","Math","min","max","vec3","toArray","dtIlog2","v","r","shift","Number","dtNextPow2","soloNavMeshGeneratorConfigDefaults","recastConfigDefaults","generateSoloNavMesh","navMeshGeneratorConfig","keepIntermediates","Raw","Module","Error","buildContext","RecastBuildContext","intermediates","type","navMesh","NavMesh","fail","error","heightfield","freeHeightfield","undefined","compactHeightfield","freeCompactHeightfield","contourSet","freeContourSet","polyMesh","freePolyMesh","polyMeshDetail","freePolyMeshDetail","destroy","success","vertices","numVertices","verticesArray","VerticesArray","copy","triangles","numTriangles","trianglesArray","TrianglesArray","config","createRcConfig","minRegionArea","mergeRegionArea","detailSampleDist","cs","detailSampleMaxError","ch","gridSize","calcGridSize","width","height","allocHeightfield","createHeightfield","triangleAreasArray","TriangleAreasArray","resize","markWalkableTriangles","walkableSlopeAngle","rasterizeTriangles","walkableClimb","filterLowHangingWalkableObstacles","filterLedgeSpans","walkableHeight","filterWalkableLowHeightSpans","allocCompactHeightfield","buildCompactHeightfield","erodeWalkableArea","walkableRadius","buildDistanceField","buildRegions","borderSize","allocContourSet","buildContours","maxSimplificationError","maxEdgeLen","RC_CONTOUR_TESS_WALL_EDGES","allocPolyMesh","buildPolyMesh","maxVertsPerPoly","allocPolyMeshDetail","buildPolyMeshDetail","npolys","areas","Recast","WALKABLE_AREA","setAreas","setFlags","navMeshCreateParams","NavMeshCreateParams","setPolyMeshCreateParams","setPolyMeshDetailCreateParams","setWalkableHeight","setWalkableRadius","setWalkableClimb","setCellSize","setCellHeight","setBuildBvTree","offMeshConnections","setOffMeshConnections","createNavMeshDataResult","createNavMeshData","navMeshData","initSolo","tileCacheGeneratorConfigDefaults","tileSize","expectedLayersPerTile","maxObstacles","createDefaultTileCacheMeshProcess","TileCacheMeshProcess","polyAreas","polyFlags","polyCount","set","generateTileCache","chunkyTriMesh","tileIntermediates","tileCache","TileCache","recastConfig","cleanup","tileIntermediate","heightfieldLayerSet","freeHeightfieldLayerSet","floor","tileWidth","tileHeight","tileCacheParams","DetourTileCacheParams","create","orig","maxTiles","allocator","RecastLinearAllocator","compressor","RecastFastLZCompressor","tileCacheMeshProcess","init","fromArray","tileBits","maxPolysPerTile","navMeshParams","NavMeshParams","maxPolys","initTiled","RecastChunkyTriMesh","rasterizeTileLayers","tileX","tileY","tcs","tileConfig","cloneRcConfig","tileBoundsMin","tileBoundsMax","set_bmin","set_bmax","n","tbmin","tbmax","chunkIdsArray","ChunkIdsArray","nChunksOverlapping","getChunksOverlappingRect","nodeId","get","nNodeTris","nodes","nodeTrianglesArray","getNodeTris","allocHeightfieldLayerSet","buildHeightfieldLayers","tiles","nlayers","tile","TileCacheData","heightfieldLayer","layers","header","dtTileCacheLayerHeader","magic","Detour","TILECACHE_MAGIC","version","TILECACHE_VERSION","tx","ty","tlayer","heightfieldLayerBin","bmin","heightfieldLayerBmax","bmax","minx","maxx","miny","maxy","hmin","hmax","heights","getHeightfieldLayerHeights","getHeightfieldLayerAreas","cons","getHeightfieldLayerCons","status","buildTileCacheLayer","statusFailed","push","newTiles","tileCacheData","addResult","addTile","log","RC_LOG_WARNING","dtStatus","buildNavMeshTilesAt","tiledNavMeshGeneratorConfigDefaults","generateTiledNavMesh","buildTileMesh","failTileMesh","RC_LOG_ERROR","expandedTileBoundsMin","expandedTileBoundsMax","resetTimers","startTimer","RC_TIMER_TOTAL","RC_LOG_PROGRESS","maxTrisPerChunk","setTileX","setTileY","nverts","data","RC_TIMER_TEMP","lastBuiltTileBmin","lastBuiltTileBmax","result","removeTile","getTileRefAt","addTileResult","DT_TILE_FREE_DATA","statusToReadableString","stopTimer"],"mappings":"2sCAEaA,EAAiBA,CAC5BC,EACAC,KAEA,MAAMC,EAAQ,CAAEC,EAAGC,IAAUC,EAAGD,IAAUE,EAAGF,KACvCG,EAAQ,CAAEJ,GAAIC,IAAUC,GAAID,IAAUE,GAAIF,KAEhD,IAAK,IAAII,EAAI,EAAGA,EAAIP,EAAQQ,OAAQD,IAAK,CACvC,MAAME,EAAMT,EAAQO,GAEdL,EAAIH,EAAgB,EAANU,GACdL,EAAIL,EAAgB,EAANU,EAAU,GACxBJ,EAAIN,EAAgB,EAANU,EAAU,GAE9BR,EAAMC,EAAIQ,KAAKC,IAAIV,EAAMC,EAAGA,GAC5BD,EAAMG,EAAIM,KAAKC,IAAIV,EAAMG,EAAGA,GAC5BH,EAAMI,EAAIK,KAAKC,IAAIV,EAAMI,EAAGA,GAE5BC,EAAMJ,EAAIQ,KAAKE,IAAIN,EAAMJ,EAAGA,GAC5BI,EAAMF,EAAIM,KAAKE,IAAIN,EAAMF,EAAGA,GAC5BE,EAAMD,EAAIK,KAAKE,IAAIN,EAAMD,EAAGA,EAC9B,CAEA,MAAO,CACLJ,MAAOY,EAAKC,QAAQb,GACpBK,MAAOO,EAAKC,QAAQR,GACrB,EAGUS,EAAWC,IACtB,IAAIC,EAAI,EACJC,EAAQ,EAkBZ,OAhBAD,EAAIE,OAAOH,EAAI,QAAW,EAC1BA,IAAMC,EAENC,EAAQC,OAAOH,EAAI,MAAS,EAC5BA,IAAME,EACND,GAAKC,EAELA,EAAQC,OAAOH,EAAI,KAAQ,EAC3BA,IAAME,EACND,GAAKC,EAELA,EAAQC,OAAOH,EAAI,IAAQ,EAE3BC,GAAKC,EACLD,IAFAD,IAAME,IAEI,EAEHD,CAAC,EAGGG,EAAcJ,IACzBA,IACAA,GAAKA,GAAK,EACVA,GAAKA,GAAK,EACVA,GAAKA,GAAK,EACVA,GAAKA,GAAK,EACVA,GAAKA,GAAK,KACVA,GCZWK,GAAiE,IACzEC,GAqCQC,GAAsBA,CACjCxB,EACAC,EACAwB,EAA8D,CAAE,EAChEC,GAAoB,KAEpB,IAAKC,EAAIC,OACP,MAAM,IAAIC,MACR,gKAIJ,MAAMC,EAAe,IAAIC,EAEnBC,EAAmD,CACvDC,KAAM,OACNH,gBAGII,EAAU,IAAIC,EA+BdC,EAAQC,IA5BRX,IAEAM,EAAcM,cAChBC,EAAgBP,EAAcM,aAC9BN,EAAcM,iBAAcE,GAG1BR,EAAcS,qBAChBC,EAAuBV,EAAcS,oBACrCT,EAAcS,wBAAqBD,GAGjCR,EAAcW,aAChBC,EAAeZ,EAAcW,YAC7BX,EAAcW,gBAAaH,GAGzBR,EAAca,WAChBC,EAAad,EAAca,UAC3Bb,EAAca,cAAWL,GAGvBR,EAAce,iBAChBC,EAAmBhB,EAAce,gBACjCf,EAAce,oBAAiBP,IAOjCN,EAAQe,UAED,CACLf,aAASM,EACTU,SAAS,EACTlB,gBACAK,UAKEc,EAAWnD,EACXoD,EAAcnD,EAAQQ,OACtB4C,EAAgB,IAAIC,EAC1BD,EAAcE,KAAKJ,GAEnB,MAAMK,EAAYvD,EACZwD,EAAexD,EAAQQ,OAAS,EAChCiD,EAAiB,IAAIC,EAC3BD,EAAeH,KAAKC,GAEpB,MAAMtD,MAAEA,EAAKK,MAAEA,GAAUR,EAAeC,EAAWC,GAK7C2D,EAASC,EAAe,IACzBvC,MACAG,IAGLmC,EAAOE,cAAgBF,EAAOE,cAAgBF,EAAOE,cACrDF,EAAOG,gBAAkBH,EAAOG,gBAAkBH,EAAOG,gBACzDH,EAAOI,iBACLJ,EAAOI,iBAAmB,GAAM,EAAIJ,EAAOK,GAAKL,EAAOI,iBACzDJ,EAAOM,qBAAuBN,EAAOO,GAAKP,EAAOM,qBAEjD,MAAME,EAAWC,EAAanE,EAAOK,EAAOqD,EAAOK,IACnDL,EAAOU,MAAQF,EAASE,MACxBV,EAAOW,OAASH,EAASG,OAMzB,MAAMjC,EAAckC,IAGpB,GAFAxC,EAAcM,YAAcA,GAGzBmC,EACC3C,EACAQ,EACAsB,EAAOU,MACPV,EAAOW,OACPrE,EACAK,EACAqD,EAAOK,GACPL,EAAOO,IAGT,OAAO/B,EAAK,gCAMd,MAAMsC,EAAqB,IAAIC,EAa/B,GAZAD,EAAmBE,OAAOnB,GAE1BoB,EACE/C,EACA8B,EAAOkB,mBACPzB,EACAD,EACAM,EACAD,EACAiB,IAICK,EACCjD,EACAuB,EACAD,EACAM,EACAgB,EACAjB,EACAnB,EACAsB,EAAOoB,eAGT,OAAO5C,EAAK,iCAGdsC,EAAmBzB,UACnBI,EAAcJ,UACdS,EAAeT,UAQfgC,EACEnD,EACA8B,EAAOoB,cACP1C,GAEF4C,EACEpD,EACA8B,EAAOuB,eACPvB,EAAOoB,cACP1C,GAEF8C,EACEtD,EACA8B,EAAOuB,eACP7C,GASF,MAAMG,GAAqB4C,IAG3B,GAFArD,EAAcS,mBAAqBA,IAGhC6C,EACCxD,EACA8B,EAAOuB,eACPvB,EAAOoB,cACP1C,EACAG,IAGF,OAAOL,EAAK,gCASd,GANKV,IACHa,EAAgBD,GAChBN,EAAcM,iBAAcE,IAK3B+C,EAAkBzD,EAAc8B,EAAO4B,eAAgB/C,IAExD,OAAOL,EAAK,iCAOd,IAAKqD,EAAmB3D,EAAcW,IACpC,OAAOL,EAAK,kCAId,IACGsD,EACC5D,EACAW,GACAmB,EAAO+B,WACP/B,EAAOE,cACPF,EAAOG,iBAGT,OAAO3B,EAAK,2BAMd,MAAMO,GAAaiD,IAGnB,GAFA5D,EAAcW,WAAaA,IAGxBkD,EACC/D,EACAW,GACAmB,EAAOkC,uBACPlC,EAAOmC,WACPpD,GACAhB,EAAIC,OAAOoE,4BAGb,OAAO5D,EAAK,6BAMd,MAAMS,GAAWoD,IAEjB,GADAjE,EAAca,SAAWA,IAEtBqD,EAAcpE,EAAca,GAAYiB,EAAOuC,gBAAiBtD,IAEjE,OAAOT,EAAK,kCAMd,MAAMW,GAAiBqD,IAEvB,GADApE,EAAce,eAAiBA,IAE5BsD,EACCvE,EACAe,GACAJ,GACAmB,EAAOI,iBACPJ,EAAOM,qBACPnB,IAGF,OAAOX,EAAK,+BAGTV,IACHgB,EAAuBD,IACvBT,EAAcS,wBAAqBD,EAEnCI,EAAeD,IACfX,EAAcW,gBAAaH,GAM7B,IAAK,IAAIhC,EAAI,EAAGA,EAAIqC,GAASyD,SAAU9F,IACjCqC,GAAS0D,MAAM/F,IAAMmB,EAAI6E,OAAOC,eAClC5D,GAAS6D,SAASlG,EAAG,GAEE,GAArBqC,GAAS0D,MAAM/F,IACjBqC,GAAS8D,SAASnG,EAAG,GAIzB,MAAMoG,GAAsB,IAAIC,EAEhCD,GAAoBE,wBAAwBjE,IAC5C+D,GAAoBG,8BAA8BhE,IAElD6D,GAAoBI,kBAAkBpD,EAAOuB,gBAC7CyB,GAAoBK,kBAAkBrD,EAAO4B,gBAC7CoB,GAAoBM,iBAAiBtD,EAAOoB,eAE5C4B,GAAoBO,YAAYvD,EAAOK,IACvC2C,GAAoBQ,cAAcxD,EAAOO,IAEzCyC,GAAoBS,gBAAe,GAE/B5F,EAAuB6F,oBACzBV,GAAoBW,sBAClB9F,EAAuB6F,oBAI3B,MAAME,GAA0BC,EAAkBb,IAElD,IAAKY,GAAwBtE,QAC3B,OAAOd,EAAK,wCAGd,MAAMsF,YAAEA,IAAgBF,GAExB,OAAKtF,EAAQyF,SAASD,IAIf,CACLxE,SAAS,EACThB,UACAF,iBANOI,EAAK,kCAOb,EC3VUwF,GAA6D,IACrErG,EACHsG,SAAU,GACVC,sBAAuB,EACvBC,aAAc,KAqCHC,GAAoCA,IAC/C,IAAIC,GAAqB,CAACrB,EAAqBsB,EAAWC,KACxD,IAAK,IAAI3H,EAAI,EAAGA,EAAIoG,EAAoBwB,cAAe5H,EACrD0H,EAAUG,IAAI7H,EAAG,GACjB2H,EAAUE,IAAI7H,EAAG,EACnB,IAWS8H,GAAoBA,CAC/BtI,EACAC,EACAwB,EAA4D,CAAE,EAC9DC,GAAoB,KAEpB,IAAKC,EAAIC,OACP,MAAM,IAAIC,MACR,gKAIJ,MAAMC,EAAe,IAAIC,EAEnBC,EAAiD,CACrDC,KAAM,YACNH,eACAyG,mBAAe/F,EACfgG,kBAAmB,IAGfC,EAAY,IAAIC,EAChBxG,EAAU,IAAIC,EAGdgB,EAAWnD,EACXoD,EAAcnD,EAAQQ,OACtB4C,EAAgB,IAAIC,EAC1BD,EAAcE,KAAKJ,GAEnB,MAAMK,EAAYvD,EACZwD,EAAexD,EAAQQ,OAAS,EAChCiD,EAAiB,IAAIC,EAC3BD,EAAeH,KAAKC,GAEpB,MAAMtD,MAAEA,EAAKK,MAAEA,GAAUR,EAAeC,EAAWC,IAE7C6H,sBAAEA,GAAqBC,aAAEA,MAAiBY,IAAiB,IAC5Df,MACAnG,GAGCmH,GAAUA,KAId,GAHAvF,EAAcJ,UACdS,EAAeT,WAEVvB,EACH,IAAK,IAAIlB,EAAI,EAAGA,EAAIwB,EAAcwG,kBAAkB/H,OAAQD,IAAK,CAC/D,MAAMqI,EAAmB7G,EAAcwG,kBAAkBhI,GAErDqI,EAAiBvG,cACnBC,EAAgBsG,EAAiBvG,aACjCuG,EAAiBvG,iBAAcE,GAG7BqG,EAAiBpG,qBACnBC,EAAuBmG,EAAiBpG,oBACxCoG,EAAiBpG,wBAAqBD,GAGpCqG,EAAiBC,sBACnBC,EAAwBF,EAAiBC,qBACzCD,EAAiBC,yBAAsBtG,EAE3C,CACF,EAGIJ,GAAQC,IACZuG,KAEAH,EAAUxF,UACVf,EAAQe,UAED,CACLC,SAAS,EACThB,aAASM,EACTiG,eAAWjG,EACXR,gBACAK,UAOEuB,GAASC,EAAe8E,IAExBvE,GAAWC,EAAanE,EAAOK,EAAOqD,GAAOK,IACnDL,GAAOU,MAAQF,GAASE,MACxBV,GAAOW,OAASH,GAASG,OAEzBX,GAAOE,cAAgBF,GAAOE,cAAgBF,GAAOE,cACrDF,GAAOG,gBAAkBH,GAAOG,gBAAkBH,GAAOG,gBACzDH,GAAOI,iBACLJ,GAAOI,iBAAmB,GAAM,EAAIJ,GAAOK,GAAKL,GAAOI,iBACzDJ,GAAOM,qBAAuBN,GAAOO,GAAKP,GAAOM,qBAEjD,MAAM2D,GAAWlH,KAAKqI,MAAMpF,GAAOiE,UAC7BoB,GAAYtI,KAAKqI,OAAOpF,GAAOU,MAAQuD,GAAW,GAAKA,IACvDqB,GAAavI,KAAKqI,OAAOpF,GAAOW,OAASsD,GAAW,GAAKA,IAG/DjE,GAAO+B,WAAa/B,GAAO4B,eAAiB,EAC5C5B,GAAOU,MAAQV,GAAOiE,SAA+B,EAApBjE,GAAO+B,WACxC/B,GAAOW,OAASX,GAAOiE,SAA+B,EAApBjE,GAAO+B,WAGzC,MAAMwD,GAAkBC,EAAsBC,OAAO,CACnDC,KAAMpJ,EACN+D,GAAIL,GAAOK,GACXE,GAAIP,GAAOO,GACXG,MAAOV,GAAOiE,SACdtD,OAAQX,GAAOiE,SACf1C,eAAgBvB,GAAOuB,eACvBK,eAAgB5B,GAAO4B,eACvBR,cAAepB,GAAOoB,cACtBc,uBAAwBlC,GAAOkC,uBAC/ByD,SAAUN,GAAYC,GAAapB,GACnCC,kBAGIyB,GAAY,IAAI7H,EAAI8H,sBAAsB,MAC1CC,GAAa,IAAI/H,EAAIgI,uBAErBC,GACJnI,EAAuBmI,sBACvB5B,KAEF,IACGS,EAAUoB,KACTV,GACAK,GACAE,GACAE,IAGF,OAAOxH,GAAK,mCAGd,MAAMkH,GAAOxI,EAAKgJ,UAAU5J,GAI5B,IAAI6J,GAAWpJ,KAAKC,IAClBD,KAAKqI,MACHhI,EAAQK,EAAW4H,GAAYC,GAAapB,MAE9C,IAEEiC,GAAW,KACbA,GAAW,IAEb,MAEMR,GAAW,GAAKQ,GAChBC,GAAkB,GAHP,GAAKD,GAKhBE,GAAgBC,EAAcb,OAAO,CACzCC,QACAL,UAAWrF,GAAOiE,SAAWjE,GAAOK,GACpCiF,WAAYtF,GAAOiE,SAAWjE,GAAOK,GACrCsF,YACAY,SAAUH,KAGZ,IAAK9H,EAAQkI,UAAUH,IACrB,OAAO7H,GAAK,sCAGd,MAAMmG,GAAgB,IAAI8B,EAG1B,GAFArI,EAAcuG,cAAgBA,IAEzBA,GAAcsB,KAAKxG,EAAeK,EAAgBD,EAAc,KACnE,OAAOrB,GAAK,wCAGd,MAAMkI,GAAsBA,CAACC,EAAeC,KAE1C,MAAMhC,EAAyD,CAC7D+B,QACAC,SAIIC,EAAM7G,GAAOiE,SAAWjE,GAAOK,GAE/ByG,EAAaC,EAAc/G,IAE3BgH,EAA8B,CAClC1K,EAAM,GAAKqK,EAAQE,EACnBvK,EAAM,GACNA,EAAM,GAAKsK,EAAQC,GAGfI,EAA8B,CAClC3K,EAAM,IAAMqK,EAAQ,GAAKE,EACzBlK,EAAM,GACNL,EAAM,IAAMsK,EAAQ,GAAKC,GAG3BG,EAAc,IAAMF,EAAW/E,WAAa+E,EAAWzG,GACvD2G,EAAc,IAAMF,EAAW/E,WAAa+E,EAAWzG,GACvD4G,EAAc,IAAMH,EAAW/E,WAAa+E,EAAWzG,GACvD4G,EAAc,IAAMH,EAAW/E,WAAa+E,EAAWzG,GAEvDyG,EAAWI,SAAS,EAAGF,EAAc,IACrCF,EAAWI,SAAS,EAAGF,EAAc,IACrCF,EAAWI,SAAS,EAAGF,EAAc,IAErCF,EAAWK,SAAS,EAAGF,EAAc,IACrCH,EAAWK,SAAS,EAAGF,EAAc,IACrCH,EAAWK,SAAS,EAAGF,EAAc,IAGrC,MAAMvI,EAAckC,IAGpB,GAFAgE,EAAkBlG,YAAcA,GAG7BmC,EACC3C,EACAQ,EACAoI,EAAWpG,MACXoG,EAAWnG,OACXqG,EACAC,EACAH,EAAWzG,GACXyG,EAAWvG,IAGb,MAAO,CAAE6G,EAAG,GAGd,MAAMC,EAAsB,CAACL,EAAc,GAAIA,EAAc,IACvDM,EAAsB,CAACL,EAAc,GAAIA,EAAc,IAIvDM,EAAgB,IAAIC,EAC1BD,EAAcvG,OAFM,KAIpB,MAAMyG,EAAqB9C,GAAc+C,yBACvCL,EACAC,EACAC,EAPkB,KAWpB,GAA2B,IAAvBE,EACF,MAAO,CAAEL,EAAG,GAGd,IAAK,IAAIxK,EAAI,EAAGA,EAAI6K,IAAsB7K,EAAG,CAC3C,MAAM+K,EAASJ,EAAcK,IAAIhL,GAE3BiL,EADOlD,GAAcmD,MAAMH,GACVP,EAEjBW,EAAqBpD,GAAcqD,YAAYL,GAE/C7G,EAAqB,IAAIC,EAC/BD,EAAmBE,OAAO6G,GAK1B5G,EACE/C,EACA4I,EAAW5F,mBACXzB,EACAD,EACAuI,EACAF,EACA/G,GAGF,MAAMxB,EAAU6B,EACdjD,EACAuB,EACAD,EACAuI,EACAjH,EACA+G,EACAnJ,EACAoI,EAAW1F,eAKb,GAFAN,EAAmBzB,WAEdC,EACH,MAAO,CAAE8H,EAAG,EAEhB,CAKA/F,EACEnD,EACA8B,GAAOoB,cACP1C,GAEF4C,EACEpD,EACA8B,GAAOuB,eACPvB,GAAOoB,cACP1C,GAEF8C,EACEtD,EACA8B,GAAOuB,eACP7C,GAGF,MAAMG,EAAqB4C,IAC3B,IACGC,EACCxD,EACA8B,GAAOuB,eACPvB,GAAOoB,cACP1C,EACAG,GAGF,MAAO,CAAEuI,EAAG,GASd,GANKtJ,IACHa,EAAgBiG,EAAkBlG,aAClCkG,EAAkBlG,iBAAcE,IAK/B+C,EACCzD,EACA8B,GAAO4B,eACP/C,GAGF,MAAO,CAAEuI,EAAG,GAGd,MAAMlC,EAAsB+C,IAC5B,IACGC,EACChK,EACAW,EACAmB,GAAO+B,WACP/B,GAAOuB,eACP2D,GAGF,MAAO,CAAEkC,EAAG,GAGTtJ,IACHgB,EAAuBD,GACvB+F,EAAkB/F,wBAAqBD,GAGzC,MAAMuJ,EAA6B,GAEnC,IAAK,IAAIvL,EAAI,EAAGA,EAAIsI,EAAoBkD,UAAWxL,IAAK,CACtD,MAAMyL,EAAO,IAAIC,EACXC,EAAmBrD,EAAoBsD,OAAO5L,GAG9C6L,EAAS,IAAI1K,EAAI2K,uBACvBD,EAAOE,MAAQ5K,EAAI6K,OAAOC,gBAC1BJ,EAAOK,QAAU/K,EAAI6K,OAAOG,kBAG5BN,EAAOO,GAAKrC,EACZ8B,EAAOQ,GAAKrC,EACZ6B,EAAOS,OAAStM,EAEhB,MAAMuM,EAAsBZ,EAAiBa,OACvCC,EAAuBd,EAAiBe,OAC9Cb,EAAOvB,SAAS,EAAGiC,EAAoB5M,GACvCkM,EAAOvB,SAAS,EAAGiC,EAAoB1M,GACvCgM,EAAOvB,SAAS,EAAGiC,EAAoBzM,GAEvC+L,EAAOtB,SAAS,EAAGkC,EAAqB9M,GACxCkM,EAAOtB,SAAS,EAAGkC,EAAqB5M,GACxCgM,EAAOtB,SAAS,EAAGkC,EAAqB3M,GAGxC+L,EAAO/H,MAAQ6H,EAAiB7H,QAChC+H,EAAO9H,OAAS4H,EAAiB5H,SACjC8H,EAAOc,KAAOhB,EAAiBgB,OAC/Bd,EAAOe,KAAOjB,EAAiBiB,OAC/Bf,EAAOgB,KAAOlB,EAAiBkB,OAC/BhB,EAAOiB,KAAOnB,EAAiBmB,OAC/BjB,EAAOkB,KAAOpB,EAAiBoB,OAC/BlB,EAAOmB,KAAOrB,EAAiBqB,OAE/B,MAAMC,EAAUC,EAA2BvB,GACrC5F,EAAQoH,EAAyBxB,GACjCyB,EAAOC,EAAwB1B,GAE/B2B,EAASC,EACbrE,GACA2C,EACAoB,EACAlH,EACAqH,EACA3B,GAGF,GAAItK,EAAI6K,OAAOwB,aAAaF,GAC1B,MAAO,CAAE9C,EAAG,GAGde,EAAMkC,KAAKhC,EACb,CASA,OAPKvK,IACHqH,EAAwBD,GACxBN,EAAkBM,yBAAsBtG,GAG1CR,EAAcwG,kBAAkByF,KAAKzF,GAE9B,CAAEwC,EAAGe,EAAMtL,OAAQsL,QAAO,EAInC,IAAK,IAAI1L,EAAI,EAAGA,EAAI6I,KAAc7I,EAChC,IAAK,IAAIF,EAAI,EAAGA,EAAI8I,KAAa9I,EAAG,CAClC,MAAM6K,EAAEA,EAAGe,MAAOmC,GAAa5D,GAAoBnK,EAAGE,GAEtD,GAAI2K,EAAI,GAAKkD,EACX,IAAK,IAAI1N,EAAI,EAAGA,EAAIwK,EAAGxK,IAAK,CAC1B,MAAM2N,EAAgBD,EAAS1N,GAEzB4N,EAAY3F,EAAU4F,QAAQF,GAEhCxM,EAAI6K,OAAOwB,aAAaI,EAAUN,SACpChM,EAAawM,IACX3M,EAAIC,OAAO2M,yDAC+BpO,UAAUE,IAI1D,CAEJ,CAIF,IAAK,IAAIA,EAAI,EAAGA,EAAI6I,GAAY7I,IAC9B,IAAK,IAAIF,EAAI,EAAGA,EAAI8I,GAAW9I,IAAK,CAClC,MAAMqO,EAAW/F,EAAUgG,oBAAoBtO,EAAGE,EAAG6B,GAErD,GAAIP,EAAI6K,OAAOwB,aAAaQ,GAC1B,OAAOpM,GAA0C,qCAAAjC,MAAME,IAE3D,CAKF,OAFAuI,KAEO,CACL1F,SAAS,EACTuF,YACAvG,UACAF,gBACD,ECrhBU0M,GACX,IACKnN,GA4CMoN,GAAuBA,CAClC3O,EACAC,EACAwB,EAA+D,CAAE,EACjEC,GAAoB,KAEpB,IAAKC,EAAIC,OACP,MAAM,IAAIC,MACR,gKAIJ,MAAMC,EAAe,IAAIC,EAEnBC,EAAoD,CACxDC,KAAM,QACNH,eACAyG,mBAAe/F,EACfgG,kBAAmB,IAGftG,EAAU,IAAIC,EAGdgB,EAAWnD,EACXoD,EAAcnD,EAAQQ,OACtB4C,EAAgB,IAAIC,EAC1BD,EAAcE,KAAKJ,GAEnB,MAAMK,EAAYvD,EACZwD,EAAexD,EAAQQ,OAAS,EAChCiD,GAAiB,IAAIC,EAC3BD,GAAeH,KAAKC,GAEpB,MAAMoF,GAAUA,KAId,GAHAvF,EAAcJ,UACdS,GAAeT,WAEXvB,EAAJ,CAEA,IAAK,IAAIlB,EAAI,EAAGA,EAAIwB,EAAcwG,kBAAkB/H,OAAQD,IAAK,CAC/D,MAAMqI,EAAmB7G,EAAcwG,kBAAkBhI,GAErDqI,EAAiBpG,oBACnBC,EAAuBmG,EAAiBpG,oBAGtCoG,EAAiBvG,aACnBC,EAAgBsG,EAAiBvG,aAG/BuG,EAAiBlG,YACnBC,EAAeiG,EAAiBlG,YAG9BkG,EAAiBhG,UACnBC,EAAa+F,EAAiBhG,UAG5BgG,EAAiB9F,gBACnBC,EAAmB6F,EAAiB9F,eAExC,CAEIf,EAAcuG,gBAChBvG,EAAcuG,mBAAgB/F,EA3BT,CA4BvB,EAGIJ,GAAQC,IACZuG,KAEA1G,EAAQe,UAED,CACLC,SAAS,EACThB,aAASM,EACTR,gBACAK,UAOEuB,GAASC,EAAe,IACzB6K,MACAjN,KAICvB,MAAEA,GAAKK,MAAEA,IAAUR,EAAeC,EAAWC,GAG7CmE,GAAWC,EAAanE,GAAOK,GAAOqD,GAAOK,IACnDL,GAAOU,MAAQF,GAASE,MACxBV,GAAOW,OAASH,GAASG,OAEzBX,GAAOE,cAAgBF,GAAOE,cAAgBF,GAAOE,cACrDF,GAAOG,gBAAkBH,GAAOG,gBAAkBH,GAAOG,gBACzDH,GAAOiE,SAAWlH,KAAKqI,MAAMpF,GAAOiE,UACpCjE,GAAO+B,WAAa/B,GAAO4B,eAAiB,EAC5C5B,GAAOU,MAAQV,GAAOiE,SAA+B,EAApBjE,GAAO+B,WACxC/B,GAAOW,OAASX,GAAOiE,SAA+B,EAApBjE,GAAO+B,WACzC/B,GAAOI,iBACLJ,GAAOI,iBAAmB,GAAM,EAAIJ,GAAOK,GAAKL,GAAOI,iBACzDJ,GAAOM,qBAAuBN,GAAOO,GAAKP,GAAOM,qBAGjD,MAAM2D,GAAWlH,KAAKqI,MAAMpF,GAAOiE,UAC7BoB,GAAYtI,KAAKqI,OAAO5E,GAASE,MAAQuD,GAAW,GAAKA,IACzDqB,GAAavI,KAAKqI,OAAO5E,GAASG,OAASsD,GAAW,GAAKA,IAC3D4C,GAAM7G,GAAOiE,SAAWjE,GAAOK,GAG/BqF,GAAOxI,EAAKgJ,UAAU5J,IAI5B,IAAI6J,GAAWpJ,KAAKC,IAClBD,KAAKqI,MAAMhI,EAAQK,EAAW4H,GAAYC,MAC1C,IAEEa,GAAW,KAAIA,GAAW,IAC9B,MAEMR,GAAW,GAAKQ,GAChBC,GAAkB,GAHP,GAAKD,GAKhBE,GAAgBC,EAAcb,OAAO,CACzCC,QACAL,UAAWrF,GAAOiE,SAAWjE,GAAOK,GACpCiF,WAAYtF,GAAOiE,SAAWjE,GAAOK,GACrCsF,YACAY,SAAUH,KAGZ,IAAK9H,EAAQkI,UAAUH,IACrB,OAAO7H,GAAK,yCAId,MAAMmG,GAAgB,IAAI8B,EAG1B,GAFArI,EAAcuG,cAAgBA,IAEzBA,GAAcsB,KAAKxG,EAAeK,GAAgBD,EAAc,KACnE,OAAOrB,GAAK,wCAId,MAAMwM,GAAgBA,CACpBrE,EACAC,EACAI,EACAC,KAIA,MAAMgE,EAAgBxM,IACpBP,EAAawM,IAAI3M,EAAIC,OAAOkN,aAAczM,GAEnC,CAAEa,SAAS,EAAgBb,UAG9BwG,EAAsC,CAAE0B,QAAOC,SAErDxI,EAAcwG,kBAAkByF,KAAKpF,GAErC,MAAM6B,EAAaC,EAAc/G,IAwB3BmL,EAAwB,IAAInE,GAC5BoE,EAAwB,IAAInE,GAElCkE,EAAsB,IAAMrE,EAAW/E,WAAa+E,EAAWzG,GAC/D8K,EAAsB,IAAMrE,EAAW/E,WAAa+E,EAAWzG,GAE/D+K,EAAsB,IAAMtE,EAAW/E,WAAa+E,EAAWzG,GAC/D+K,EAAsB,IAAMtE,EAAW/E,WAAa+E,EAAWzG,GAE/DyG,EAAWI,SAAS,EAAGiE,EAAsB,IAC7CrE,EAAWI,SAAS,EAAGiE,EAAsB,IAC7CrE,EAAWI,SAAS,EAAGiE,EAAsB,IAE7CrE,EAAWK,SAAS,EAAGiE,EAAsB,IAC7CtE,EAAWK,SAAS,EAAGiE,EAAsB,IAC7CtE,EAAWK,SAAS,EAAGiE,EAAsB,IAG7ClN,EAAamN,cAGbnN,EAAaoN,WAAWvN,EAAIC,OAAOuN,gBAEnCrN,EAAawM,IACX3M,EAAIC,OAAOwN,gBACX,iBAAiBpN,EAAcwG,kBAAkB/H,gBAAgB8J,SAAaC,KAEhF1I,EAAawM,IACX3M,EAAIC,OAAOwN,sBACLxL,GAAOU,WAAWV,GAAOW,gBAEjCzC,EAAawM,IACX3M,EAAIC,OAAOwN,sBACLhM,EAAc,gBAAiBK,EAAe,aAItD,MAAMnB,EAAckC,IAGpB,GAFAqE,EAAiBvG,YAAcA,GAG5BmC,EACC3C,EACAQ,EACAoI,EAAWpG,MACXoG,EAAWnG,OACXwK,EACAC,EACAtE,EAAWzG,GACXyG,EAAWvG,IAGb,OAAO0K,EAAa,iCAML,IAAIlK,GACZC,OAAO2D,GAAc8G,mBAE9B,MAAMpE,EAAsB,CAC1B8D,EAAsB,GACtBA,EAAsB,IAElB7D,EAAsB,CAC1B8D,EAAsB,GACtBA,EAAsB,IAKlB7D,EAAgB,IAAIC,EAC1BD,EAAcvG,OAFM,KAIpB,MAAMyG,EAAqB9C,GAAc+C,yBACvCL,EACAC,EACAC,EAPkB,KAWpB,GAA2B,IAAvBE,EACF,MAAO,CAAEnI,SAAS,GAGpB,IAAK,IAAI1C,EAAI,EAAGA,EAAI6K,IAAsB7K,EAAG,CAC3C,MAAM+K,EAASJ,EAAcK,IAAIhL,GAE3BiL,EADOlD,GAAcmD,MAAMH,GACVP,EAEjBW,EAAqBpD,GAAcqD,YAAYL,GAE/C7G,EAAqB,IAAIC,EAC/BD,EAAmBE,OAAO6G,GAK1B5G,EACE/C,EACA4I,EAAW5F,mBACXzB,EACAD,EACAuI,EACAF,EACA/G,GAGF,MAAMxB,EAAU6B,EACdjD,EACAuB,EACAD,EACAuI,EACAjH,EACA+G,EACAnJ,EACAoI,EAAW1F,eAKb,GAFAN,EAAmBzB,WAEdC,EACH,OAAO2L,EAAa,gCAExB,CAKA5J,EACEnD,EACA4I,EAAW1F,cACX1C,GAEF4C,EACEpD,EACA4I,EAAWvF,eACXuF,EAAW1F,cACX1C,GAEF8C,EACEtD,EACA4I,EAAWvF,eACX7C,GAMF,MAAMG,EAAqB4C,IAG3B,GAFAwD,EAAiBpG,mBAAqBA,GAGnC6C,EACCxD,EACA4I,EAAWvF,eACXuF,EAAW1F,cACX1C,EACAG,GAGF,OAAOoM,EAAa,uCAStB,GANKnN,IACHa,EAAgBsG,EAAiBvG,aACjCuG,EAAiBvG,iBAAcE,IAK9B+C,EACCzD,EACA4I,EAAWlF,eACX/C,GAGF,OAAOoM,EAAa,iCAOtB,IAAKpJ,EAAmB3D,EAAcW,GACpC,OAAOoM,EAAa,kCAItB,IACGnJ,EACC5D,EACAW,EACAiI,EAAW/E,WACX+E,EAAW5G,cACX4G,EAAW3G,iBAGb,OAAO8K,EAAa,2BAMtB,MAAMlM,EAAaiD,IAGnB,GAFAiD,EAAiBlG,WAAaA,GAG3BkD,EACC/D,EACAW,EACAiI,EAAW5E,uBACX4E,EAAW3E,WACXpD,EACAhB,EAAIC,OAAOoE,4BAGb,OAAO6I,EAAa,6BAMtB,MAAMhM,EAAWoD,IAEjB,GADA4C,EAAiBhG,SAAWA,GAEzBqD,EACCpE,EACAa,EACA+H,EAAWvE,gBACXtD,GAGF,OAAOgM,EAAa,kCAMtB,MAAM9L,EAAiBqD,IAEvB,GADAyC,EAAiB9F,eAAiBA,GAE/BsD,EACCvE,EACAe,EACAJ,EACAiI,EAAW1G,iBACX0G,EAAWxG,qBACXnB,GAGF,OAAO8L,EAAa,+BAGjBnN,IACHgB,EAAuBD,GACvBoG,EAAiBpG,wBAAqBD,EAEtCI,EAAeD,GACfkG,EAAiBlG,gBAAaH,GAIhC,IAAK,IAAIhC,EAAI,EAAGA,EAAIqC,EAASyD,SAAU9F,IACjCqC,EAAS0D,MAAM/F,IAAMmB,EAAI6E,OAAOC,eAClC5D,EAAS6D,SAASlG,EAAG,GAEE,GAArBqC,EAAS0D,MAAM/F,IACjBqC,EAAS8D,SAASnG,EAAG,GAIzB,MAAMoG,EAAsB,IAAIC,EAEhCD,EAAoBE,wBAAwBjE,GAC5C+D,EAAoBG,8BAA8BhE,GAElD6D,EAAoBI,kBAAkB0D,EAAWvF,gBACjDyB,EAAoBK,kBAAkByD,EAAWlF,gBACjDoB,EAAoBM,iBAAiBwD,EAAW1F,eAEhD4B,EAAoBO,YAAYuD,EAAWzG,IAC3C2C,EAAoBQ,cAAcsD,EAAWvG,IAE7CyC,EAAoBS,gBAAe,GAE/B5F,EAAuB6F,oBACzBV,EAAoBW,sBAClB9F,EAAuB6F,oBAI3BV,EAAoB0I,SAAS/E,GAC7B3D,EAAoB2I,SAAS/E,GAE7B,MAAMhD,EAA0BC,EAAkBb,GAElD,OAAKY,EAAwBtE,SAI7BpB,EAAawM,IACX3M,EAAIC,OAAOwN,gBACX,gBAAgBvM,EAAS2M,sBAAsB3M,EAASyD,qBAGnD,CAAEpD,SAAS,EAAMuM,KAAMjI,EAAwBE,cAR7CmH,EAAa,uCAQ6C,EAGrE/M,EAAaoN,WAAWvN,EAAIC,OAAO8N,eAEnC,MAAMC,GAAkC,CAAC,EAAG,EAAG,GACzCC,GAAkC,CAAC,EAAG,EAAG,GAE/C,IAAK,IAAIvP,EAAI,EAAGA,EAAI6I,GAAY7I,IAC9B,IAAK,IAAIF,EAAI,EAAGA,EAAI8I,GAAW9I,IAAK,CAClCwP,GAAkB,GAAKzP,GAAM,GAAKC,EAAIsK,GACtCkF,GAAkB,GAAKzP,GAAM,GAC7ByP,GAAkB,GAAKzP,GAAM,GAAKG,EAAIoK,GAEtCmF,GAAkB,GAAK1P,GAAM,IAAMC,EAAI,GAAKsK,GAC5CmF,GAAkB,GAAKrP,GAAM,GAC7BqP,GAAkB,GAAK1P,GAAM,IAAMG,EAAI,GAAKoK,GAE5C,MAAMoF,EAASjB,GAAczO,EAAGE,EAAGsP,GAAmBC,IAEtD,GAAIC,EAAO3M,SAAW2M,EAAOJ,KAAM,CACjCvN,EAAQ4N,WAAW5N,EAAQ6N,aAAa5P,EAAGE,EAAG,IAE9C,MAAM2P,EAAgB9N,EAAQmM,QAC5BwB,EAAOJ,KACP9N,EAAIC,OAAOqO,kBACX,GAGEtO,EAAI6K,OAAOwB,aAAagC,EAAclC,UACxChM,EAAawM,IACX3M,EAAIC,OAAO2M,eAGF,yCAAApO,UAAUE,aACN6P,EAAuBF,EAAclC,YAC9CkC,EAAclC,WAIpB+B,EAAOJ,KAAKxM,UAEhB,CACF,CASF,OANAnB,EAAaqO,UAAUxO,EAAIC,OAAO8N,eAE7BhO,GACHkH,KAGK,CACL1F,SAAS,EACThB,UACAF,gBACD"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/generators/common.ts","../src/generators/generate-solo-nav-mesh.ts","../src/generators/generate-tile-cache.ts","../src/generators/generate-tiled-nav-mesh.ts"],"sourcesContent":[null,null,null,null],"names":["getBoundingBox","positions","indices","bbMin","x","Infinity","y","z","bbMax","i","length","ind","Math","min","max","vec3","toArray","dtIlog2","v","r","shift","Number","dtNextPow2","soloNavMeshGeneratorConfigDefaults","recastConfigDefaults","generateSoloNavMesh","navMeshGeneratorConfig","keepIntermediates","Raw","Module","Error","buildContext","RecastBuildContext","intermediates","type","navMesh","NavMesh","fail","error","heightfield","freeHeightfield","undefined","compactHeightfield","freeCompactHeightfield","contourSet","freeContourSet","polyMesh","freePolyMesh","polyMeshDetail","freePolyMeshDetail","destroy","success","vertices","numVertices","verticesArray","VerticesArray","copy","triangles","numTriangles","trianglesArray","TrianglesArray","config","createRcConfig","minRegionArea","mergeRegionArea","detailSampleDist","cs","detailSampleMaxError","ch","gridSize","calcGridSize","width","height","allocHeightfield","createHeightfield","triangleAreasArray","TriangleAreasArray","resize","markWalkableTriangles","walkableSlopeAngle","rasterizeTriangles","walkableClimb","filterLowHangingWalkableObstacles","filterLedgeSpans","walkableHeight","filterWalkableLowHeightSpans","allocCompactHeightfield","buildCompactHeightfield","erodeWalkableArea","walkableRadius","buildDistanceField","buildRegions","borderSize","allocContourSet","buildContours","maxSimplificationError","maxEdgeLen","Recast","RC_CONTOUR_TESS_WALL_EDGES","allocPolyMesh","buildPolyMesh","maxVertsPerPoly","allocPolyMeshDetail","buildPolyMeshDetail","npolys","areas","RC_WALKABLE_AREA","setAreas","setFlags","navMeshCreateParams","NavMeshCreateParams","setPolyMeshCreateParams","setPolyMeshDetailCreateParams","setWalkableHeight","setWalkableRadius","setWalkableClimb","setCellSize","setCellHeight","setBuildBvTree","offMeshConnections","setOffMeshConnections","createNavMeshDataResult","createNavMeshData","navMeshData","initSolo","tileCacheGeneratorConfigDefaults","tileSize","expectedLayersPerTile","maxObstacles","createDefaultTileCacheMeshProcess","TileCacheMeshProcess","polyAreas","polyFlags","polyCount","set","generateTileCache","chunkyTriMesh","tileIntermediates","tileCache","TileCache","recastConfig","cleanup","tileIntermediate","heightfieldLayerSet","freeHeightfieldLayerSet","floor","tileWidth","tileHeight","tileCacheParams","DetourTileCacheParams","create","orig","maxTiles","allocator","RecastLinearAllocator","compressor","RecastFastLZCompressor","tileCacheMeshProcess","init","fromArray","tileBits","maxPolysPerTile","navMeshParams","NavMeshParams","maxPolys","initTiled","RecastChunkyTriMesh","rasterizeTileLayers","tileX","tileY","tcs","tileConfig","cloneRcConfig","tileBoundsMin","tileBoundsMax","set_bmin","set_bmax","n","tbmin","tbmax","chunkIdsArray","ChunkIdsArray","nChunksOverlapping","getChunksOverlappingRect","nodeId","get","nNodeTris","nodes","nodeTrianglesArray","getNodeTris","allocHeightfieldLayerSet","buildHeightfieldLayers","tiles","nlayers","tile","TileCacheData","heightfieldLayer","layers","header","dtTileCacheLayerHeader","magic","Detour","DT_TILECACHE_MAGIC","version","DT_TILECACHE_VERSION","tx","ty","tlayer","heightfieldLayerBin","bmin","heightfieldLayerBmax","bmax","minx","maxx","miny","maxy","hmin","hmax","heights","getHeightfieldLayerHeights","getHeightfieldLayerAreas","cons","getHeightfieldLayerCons","status","buildTileCacheLayer","statusFailed","push","newTiles","tileCacheData","addResult","addTile","log","RC_LOG_WARNING","dtStatus","buildNavMeshTilesAt","tiledNavMeshGeneratorConfigDefaults","generateTiledNavMesh","buildTileMesh","failTileMesh","RC_LOG_ERROR","expandedTileBoundsMin","expandedTileBoundsMax","resetTimers","startTimer","RC_TIMER_TOTAL","RC_LOG_PROGRESS","maxTrisPerChunk","setTileX","setTileY","nverts","data","RC_TIMER_TEMP","lastBuiltTileBmin","lastBuiltTileBmax","result","removeTile","getTileRefAt","addTileResult","DT_TILE_FREE_DATA","statusToReadableString","stopTimer"],"mappings":"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"}
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "email": "isaac@isaacmason.com",
7
7
  "url": "https://isaacmason.com/"
8
8
  },
9
- "version": "0.31.1",
9
+ "version": "0.33.0",
10
10
  "license": "MIT",
11
11
  "homepage": "https://github.com/isaac-mason/recast-navigation-js",
12
12
  "bugs": {
@@ -24,23 +24,23 @@
24
24
  "scripts": {
25
25
  "build": "rollup --config rollup.config.js --bundleConfigAsCjs",
26
26
  "test": "tsc",
27
- "lint": "eslint --ext .ts src"
27
+ "lint": "eslint src"
28
28
  },
29
29
  "dependencies": {
30
- "@recast-navigation/core": "0.31.1",
31
- "@recast-navigation/wasm": "0.31.1"
30
+ "@recast-navigation/core": "0.33.0",
31
+ "@recast-navigation/wasm": "0.33.0"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@babel/core": "^7.24.5",
35
35
  "@babel/preset-env": "^7.24.5",
36
36
  "@babel/preset-typescript": "^7.24.1",
37
- "@isaac-mason/eslint-config-typescript": "^0.0.5",
37
+ "@isaac-mason/eslint-config-typescript": "^0.0.9",
38
38
  "@rollup/plugin-babel": "^6.0.4",
39
39
  "@rollup/plugin-commonjs": "^25.0.7",
40
40
  "@rollup/plugin-node-resolve": "^15.0.1",
41
41
  "@rollup/plugin-terser": "^0.4.3",
42
42
  "@rollup/plugin-typescript": "^11.1.6",
43
- "eslint": "^8.56.0",
43
+ "eslint": "^9.6.0",
44
44
  "prettier": "^3.1.0",
45
45
  "rollup": "^4.14.0",
46
46
  "rollup-plugin-copy": "^3.4.0",