recast-navigation 0.24.1 → 0.25.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/README.md +10 -6
- package/generators.cjs +1 -1
- package/generators.cjs.map +1 -1
- package/generators.mjs +1 -1
- package/generators.mjs.map +1 -1
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -23,8 +23,6 @@
|
|
|
23
23
|
|
|
24
24
|
This library provides high level APIs that make it easy to get started creating navigation meshes, querying them, and simulating crowds. It also provides lower-level APIs that give you fine-grained control over the navmesh generation process.
|
|
25
25
|
|
|
26
|
-
> **Warning** This library is still in early development. Versions in the 0.x.x range may have breaking changes.
|
|
27
|
-
|
|
28
26
|
## Examples
|
|
29
27
|
|
|
30
28
|
Go to the [examples website](https://recast-navigation-js.isaacmason.com) to see the project in action:
|
|
@@ -50,9 +48,9 @@ npm install recast-navigation
|
|
|
50
48
|
<script type="importmap">
|
|
51
49
|
{
|
|
52
50
|
"imports": {
|
|
53
|
-
"@recast-navigation/core": "https://unpkg.com/@recast-navigation/core@0.
|
|
54
|
-
"@recast-navigation/generators": "https://unpkg.com/@recast-navigation/generators@0.
|
|
55
|
-
"@recast-navigation/three": "https://unpkg.com/@recast-navigation/three@0.
|
|
51
|
+
"@recast-navigation/core": "https://unpkg.com/@recast-navigation/core@0.24.1/dist/index.mjs",
|
|
52
|
+
"@recast-navigation/generators": "https://unpkg.com/@recast-navigation/generators@0.24.1/dist/index.mjs",
|
|
53
|
+
"@recast-navigation/three": "https://unpkg.com/@recast-navigation/three@0.24.1/dist/index.mjs"
|
|
56
54
|
}
|
|
57
55
|
}
|
|
58
56
|
</script>
|
|
@@ -81,6 +79,8 @@ API Documentation can be found at [https://docs.recast-navigation-js.isaacmason.
|
|
|
81
79
|
|
|
82
80
|
<!-- REMOVE-FROM-DOCS-END -->
|
|
83
81
|
|
|
82
|
+
For information on changes between versions, see [CHANGELOG.md](https://github.com/isaac-mason/recast-navigation-js/tree/main/packages/recast-navigation/CHANGELOG.md)
|
|
83
|
+
|
|
84
84
|
To get the most out of this library, you should have some familiarity with the Recast and Detour libraries. These are some good resources to get started:
|
|
85
85
|
|
|
86
86
|
- https://recastnav.com/md_Docs__1_Introducation.html
|
|
@@ -228,7 +228,11 @@ const agentParameters = agent.parameters();
|
|
|
228
228
|
|
|
229
229
|
/* tell the agent to move to a target position */
|
|
230
230
|
const targetPosition = { x: 0, y: 0, z: 0 };
|
|
231
|
-
agent.
|
|
231
|
+
agent.requestMoveTarget(targetPosition);
|
|
232
|
+
|
|
233
|
+
/* tell the agent to move in a direction */
|
|
234
|
+
const targetVelocity = { x: 0, y: 0, z: 0 };
|
|
235
|
+
agent.requestMoveVelocity(targetVelocity);
|
|
232
236
|
|
|
233
237
|
/* reset the agents target */
|
|
234
238
|
agent.resetMoveTarget();
|
package/generators.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("@recast-navigation/core");const t=(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.vec3.toArray(a),bbMax:e.vec3.toArray(l)}},i=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},a=e=>(e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e),l={...e.recastConfigDefaults},r={...e.recastConfigDefaults,tileSize:32,expectedLayersPerTile:4,maxObstacles:128},s=()=>new e.TileCacheMeshProcess(((e,t,i)=>{for(let a=0;a<e.polyCount();++a)t.set(a,0),i.set(a,1)})),o={...e.recastConfigDefaults};exports.createDefaultTileCacheMeshProcess=s,exports.dtIlog2=i,exports.dtNextPow2=a,exports.generateSoloNavMesh=(i,a,r={},s=!1)=>{const o=new e.RecastBuildContext,n={type:"solo",buildContext:o},d=new e.NavMesh,h=t=>(s||(n.heightfield&&(e.freeHeightfield(n.heightfield),n.heightfield=void 0),n.compactHeightfield&&(e.freeCompactHeightfield(n.compactHeightfield),n.compactHeightfield=void 0),n.contourSet&&(e.freeContourSet(n.contourSet),n.contourSet=void 0)),d.destroy(),{navMesh:void 0,success:!1,intermediates:n,error:t}),c=i,g=a.length,f=new e.Arrays.VertsArray;f.copy(c,c.length);const m=a,u=a.length/3,b=new e.Arrays.TrisArray;b.copy(m,m.length);const{bbMin:w,bbMax:C}=t(i,a),R=e.createRcConfig({...l,...r});R.minRegionArea=R.minRegionArea*R.minRegionArea,R.mergeRegionArea=R.mergeRegionArea*R.mergeRegionArea,R.detailSampleDist=R.detailSampleDist<.9?0:R.cs*R.detailSampleDist,R.detailSampleMaxError=R.ch*R.detailSampleMaxError;const S=e.calcGridSize(w,C,R.cs);R.width=S.width,R.height=S.height;const y=e.allocHeightfield();if(n.heightfield=y,!e.createHeightfield(o,y,R.width,R.height,w,C,R.cs,R.ch))return h("Could not create heightfield");const M=new e.Arrays.TriAreasArray;if(M.resize(u),e.markWalkableTriangles(o,R.walkableSlopeAngle,f,g,b,u,M),!e.rasterizeTriangles(o,f,g,b,M,u,y,R.walkableClimb))return h("Could not rasterize triangles");M.free(),e.filterLowHangingWalkableObstacles(o,R.walkableClimb,y),e.filterLedgeSpans(o,R.walkableHeight,R.walkableClimb,y),e.filterWalkableLowHeightSpans(o,R.walkableHeight,y);const p=e.allocCompactHeightfield();if(n.compactHeightfield=p,!e.buildCompactHeightfield(o,R.walkableHeight,R.walkableClimb,y,p))return h("Failed to build compact data");if(s||(e.freeHeightfield(y),n.heightfield=void 0),!e.erodeWalkableArea(o,R.walkableRadius,p))return h("Failed to erode walkable area");if(!e.buildDistanceField(o,p))return h("Failed to build distance field");if(!e.buildRegions(o,p,R.borderSize,R.minRegionArea,R.mergeRegionArea))return h("Failed to build regions");const x=e.allocContourSet();if(n.contourSet=x,!e.buildContours(o,p,R.maxSimplificationError,R.maxEdgeLen,x,e.Raw.Module.RC_CONTOUR_TESS_WALL_EDGES))return h("Failed to create contours");const A=e.allocPolyMesh();if(!e.buildPolyMesh(o,x,R.maxVertsPerPoly,A))return h("Failed to triangulate contours");const k=e.allocPolyMeshDetail();if(!e.buildPolyMeshDetail(o,A,p,R.detailSampleDist,R.detailSampleMaxError,k))return h("Failed to build detail mesh");s||(e.freeCompactHeightfield(p),n.compactHeightfield=void 0,e.freeContourSet(x),n.contourSet=void 0);for(let t=0;t<A.npolys();t++)A.areas(t)==e.Raw.Recast.WALKABLE_AREA&&A.setAreas(t,0),0==A.areas(t)&&A.setFlags(t,1);const H=new e.NavMeshCreateParams;H.setPolyMeshCreateParams(A),H.setPolyMeshDetailCreateParams(k),H.setWalkableHeight(R.walkableHeight),H.setWalkableRadius(R.walkableRadius),H.setWalkableClimb(R.walkableClimb),H.setCellSize(R.cs),H.setCellHeight(R.ch),H.setBuildBvTree(!0),r.offMeshConnections&&H.setOffMeshConnections(r.offMeshConnections);const T=e.createNavMeshData(H);if(!T.success)return h("Failed to create Detour navmesh data");const{navMeshData:v}=T;return d.initSolo(v)?{success:!0,navMesh:d,intermediates:n}:h("Failed to create Detour navmesh")},exports.generateTileCache=(l,o,n={},d=!1)=>{const h=new e.RecastBuildContext,c={type:"tilecache",buildContext:h,chunkyTriMesh:void 0,tileIntermediates:[]},g=new e.TileCache,f=new e.NavMesh,m=()=>{if(!d)for(let t=0;t<c.tileIntermediates.length;t++){const i=c.tileIntermediates[t];i.heightfield&&(e.freeHeightfield(i.heightfield),i.heightfield=void 0),i.compactHeightfield&&(e.freeCompactHeightfield(i.compactHeightfield),i.compactHeightfield=void 0),i.heightfieldLayerSet&&(e.freeHeightfieldLayerSet(i.heightfieldLayerSet),i.heightfieldLayerSet=void 0)}},u=e=>(m(),g.destroy(),f.destroy(),{success:!1,navMesh:void 0,tileCache:void 0,intermediates:c,error:e}),b=l,w=o.length,C=new e.Arrays.VertsArray;C.copy(b,b.length);const R=o,S=o.length/3,y=new e.Arrays.TrisArray;y.copy(R,R.length);const{bbMin:M,bbMax:p}=t(l,o),{expectedLayersPerTile:x,maxObstacles:A,...k}={...r,...n},H=e.createRcConfig(k),T=e.calcGridSize(M,p,H.cs);H.width=T.width,H.height=T.height,H.minRegionArea=H.minRegionArea*H.minRegionArea,H.mergeRegionArea=H.mergeRegionArea*H.mergeRegionArea,H.detailSampleDist=H.detailSampleDist<.9?0:H.cs*H.detailSampleDist,H.detailSampleMaxError=H.ch*H.detailSampleMaxError;const v=Math.floor(H.tileSize),z=Math.floor((H.width+v-1)/v),_=Math.floor((H.height+v-1)/v);H.borderSize=H.walkableRadius+3,H.width=H.tileSize+2*H.borderSize,H.height=H.tileSize+2*H.borderSize;const L=e.DetourTileCacheParams.create({orig:M,cs:H.cs,ch:H.ch,width:H.tileSize,height:H.tileSize,walkableHeight:H.walkableHeight,walkableRadius:H.walkableRadius,walkableClimb:H.walkableClimb,maxSimplificationError:H.maxSimplificationError,maxTiles:z*_*x,maxObstacles:A}),D=new e.Raw.RecastLinearAllocator(32e3),E=new e.Raw.RecastFastLZCompressor,P=n.tileCacheMeshProcess??s();if(!g.init(L,D,E,P))return u("Failed to initialize tile cache");const F=e.vec3.fromArray(M);let N=Math.min(Math.floor(i(a(z*_*x))),14);N>14&&(N=14);const O=1<<N,W=1<<22-N,G=e.NavMeshParams.create({orig:F,tileWidth:H.tileSize*H.cs,tileHeight:H.tileSize*H.cs,maxTiles:O,maxPolys:W});if(!f.initTiled(G))return u("Failed to initialize tiled navmesh");const I=new e.RecastChunkyTriMesh;if(c.chunkyTriMesh=I,!I.init(C,y,S,256))return u("Failed to build chunky triangle mesh");const $=(t,i)=>{const a={tileX:t,tileY:i},l=H.tileSize*H.cs,r=e.cloneRcConfig(H),s=[M[0]+t*l,M[1],M[2]+i*l],o=[M[0]+(t+1)*l,p[1],M[2]+(i+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=e.allocHeightfield();if(a.heightfield=n,!e.createHeightfield(h,n,r.width,r.height,s,o,r.cs,r.ch))return{n:0};const g=[s[0],s[2]],f=[o[0],o[2]],m=new e.Arrays.ChunkIdsArray;m.resize(512);const u=I.getChunksOverlappingRect(g,f,m,512);if(0===u)return{n:0};for(let t=0;t<u;++t){const i=m.get_data(t),a=I.nodes(i).n,l=I.getNodeTris(i),s=new e.Arrays.TriAreasArray;s.resize(a),e.markWalkableTriangles(h,r.walkableSlopeAngle,C,w,l,a,s);const o=e.rasterizeTriangles(h,C,w,l,s,a,n,r.walkableClimb);if(s.free(),!o)return{n:0}}e.filterLowHangingWalkableObstacles(h,H.walkableClimb,n),e.filterLedgeSpans(h,H.walkableHeight,H.walkableClimb,n),e.filterWalkableLowHeightSpans(h,H.walkableHeight,n);const b=e.allocCompactHeightfield();if(!e.buildCompactHeightfield(h,H.walkableHeight,H.walkableClimb,n,b))return{n:0};if(d||(e.freeHeightfield(a.heightfield),a.heightfield=void 0),!e.erodeWalkableArea(h,H.walkableRadius,b))return{n:0};const R=e.allocHeightfieldLayerSet();if(!e.buildHeightfieldLayers(h,b,H.borderSize,H.walkableHeight,R))return{n:0};d||(e.freeCompactHeightfield(b),a.compactHeightfield=void 0);const S=[];for(let a=0;a<R.nlayers();a++){const l=new e.Arrays.TileCacheData,r=R.layers(a),s=new e.Raw.dtTileCacheLayerHeader;s.magic=e.Raw.Detour.TILECACHE_MAGIC,s.version=e.Raw.Detour.TILECACHE_VERSION,s.tx=t,s.ty=i,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 d=e.getHeightfieldLayerHeights(r),h=e.getHeightfieldLayerAreas(r),c=e.getHeightfieldLayerCons(r),g=e.buildTileCacheLayer(E,s,d,h,c,l);if(e.Raw.Detour.statusFailed(g))return{n:0};S.push(l)}return d||(e.freeHeightfieldLayerSet(R),a.heightfieldLayerSet=void 0),c.tileIntermediates.push(a),{n:S.length,tiles:S}};for(let t=0;t<_;++t)for(let i=0;i<z;++i){const{n:a,tiles:l}=$(i,t);if(a>0&&l)for(let r=0;r<a;r++){const a=l[r],s=g.addTile(a);e.Raw.Detour.statusFailed(s.status)&&h.log(e.Raw.Module.RC_LOG_WARNING,`Failed to add tile to tile cache - tx: ${i}, ty: ${t}`)}}for(let t=0;t<_;t++)for(let i=0;i<z;i++){const a=g.buildNavMeshTilesAt(i,t,f);if(e.Raw.Detour.statusFailed(a))return u(`Failed to build nav mesh tiles at ${i}, ${t}`)}return m(),{success:!0,tileCache:g,navMesh:f,intermediates:c}},exports.generateTiledNavMesh=(l,r,s={},n=!1)=>{const d=new e.RecastBuildContext,h={type:"tiled",buildContext:d,chunkyTriMesh:void 0,tileIntermediates:[]},c=new e.NavMesh,g=()=>{if(!n){for(let t=0;t<h.tileIntermediates.length;t++){const i=h.tileIntermediates[t];i.compactHeightfield&&e.freeCompactHeightfield(i.compactHeightfield),i.heightfield&&e.freeHeightfield(i.heightfield),i.contourSet&&e.freeContourSet(i.contourSet)}h.chunkyTriMesh&&(h.chunkyTriMesh=void 0)}},f=e=>(g(),c.destroy(),{success:!1,navMesh:void 0,intermediates:h,error:e}),m=e.createRcConfig({...o,...s}),{bbMin:u,bbMax:b}=t(l,r),w=e.calcGridSize(u,b,m.cs);m.width=w.width,m.height=w.height,m.minRegionArea=m.minRegionArea*m.minRegionArea,m.mergeRegionArea=m.mergeRegionArea*m.mergeRegionArea,m.tileSize=Math.floor(m.tileSize),m.borderSize=m.walkableRadius+3,m.width=m.tileSize+2*m.borderSize,m.height=m.tileSize+2*m.borderSize,m.detailSampleDist=m.detailSampleDist<.9?0:m.cs*m.detailSampleDist,m.detailSampleMaxError=m.ch*m.detailSampleMaxError;const C=Math.floor(m.tileSize),R=Math.floor((w.width+C-1)/C),S=Math.floor((w.height+C-1)/C),y=m.tileSize*m.cs,M=l,p=r.length,x=new e.Arrays.VertsArray;x.copy(M,M.length);const A=r,k=r.length/3,H=new e.Arrays.TrisArray;H.copy(A,A.length);const T=e.vec3.fromArray(u);let v=Math.min(Math.floor(i(a(R*S))),14);v>14&&(v=14);const z=1<<v,_=1<<22-v,L=e.NavMeshParams.create({orig:T,tileWidth:m.tileSize*m.cs,tileHeight:m.tileSize*m.cs,maxTiles:z,maxPolys:_});if(!c.initTiled(L))return f("Could not init nav mesh for tiled use");const D=new e.RecastChunkyTriMesh;if(h.chunkyTriMesh=D,!D.init(x,H,k,256))return f("Failed to build chunky triangle mesh");const E=(t,i,a,l)=>{const r=t=>(d.log(e.Raw.Module.RC_LOG_ERROR,t),{success:!1,error:t}),o={tileX:t,tileY:i};h.tileIntermediates.push(o);const c=e.cloneRcConfig(m),g=[...a],f=[...l];g[0]-=c.borderSize*c.cs,g[2]-=c.borderSize*c.cs,f[0]+=c.borderSize*c.cs,f[2]+=c.borderSize*c.cs,c.set_bmin(0,g[0]),c.set_bmin(1,g[1]),c.set_bmin(2,g[2]),c.set_bmax(0,f[0]),c.set_bmax(1,f[1]),c.set_bmax(2,f[2]),d.resetTimers(),d.startTimer(e.Raw.Module.RC_TIMER_TOTAL),d.log(e.Raw.Module.RC_LOG_PROGRESS,`Building tile ${h.tileIntermediates.length} at x: ${t}, y: ${i}`),d.log(e.Raw.Module.RC_LOG_PROGRESS,` - ${m.width} x ${m.height} cells`),d.log(e.Raw.Module.RC_LOG_PROGRESS,` - ${p/1e3}fK verts, ${k/1e3}K tris`);const u=e.allocHeightfield();if(o.heightfield=u,!e.createHeightfield(d,u,c.width,c.height,g,f,c.cs,c.ch))return r("Could not create heightfield");(new e.Arrays.TriAreasArray).resize(D.maxTrisPerChunk());const b=[g[0],g[2]],w=[f[0],f[2]],C=new e.Arrays.ChunkIdsArray;C.resize(512);const R=D.getChunksOverlappingRect(b,w,C,512);if(0===R)return{success:!0};for(let t=0;t<R;++t){const i=C.get_data(t),a=D.nodes(i).n,l=D.getNodeTris(i),s=new e.Arrays.TriAreasArray;s.resize(a),e.markWalkableTriangles(d,c.walkableSlopeAngle,x,p,l,a,s);const o=e.rasterizeTriangles(d,x,p,l,s,a,u,c.walkableClimb);if(s.free(),!o)return r("Could not rasterize triangles")}e.filterLowHangingWalkableObstacles(d,c.walkableClimb,u),e.filterLedgeSpans(d,c.walkableHeight,c.walkableClimb,u),e.filterWalkableLowHeightSpans(d,c.walkableHeight,u);const S=e.allocCompactHeightfield();if(o.compactHeightfield=S,!e.buildCompactHeightfield(d,c.walkableHeight,c.walkableClimb,u,S))return r("Could not build compact heightfield");if(n||(e.freeHeightfield(o.heightfield),o.heightfield=void 0),!e.erodeWalkableArea(d,c.walkableRadius,S))return r("Could not erode walkable area");if(!e.buildDistanceField(d,S))return r("Failed to build distance field");if(!e.buildRegions(d,S,c.borderSize,c.minRegionArea,c.mergeRegionArea))return r("Failed to build regions");const y=e.allocContourSet();if(o.contourSet=y,!e.buildContours(d,S,c.maxSimplificationError,c.maxEdgeLen,y,e.Raw.Module.RC_CONTOUR_TESS_WALL_EDGES))return r("Failed to create contours");const M=e.allocPolyMesh();if(!e.buildPolyMesh(d,y,c.maxVertsPerPoly,M))return r("Failed to triangulate contours");const A=e.allocPolyMeshDetail();if(!e.buildPolyMeshDetail(d,M,S,c.detailSampleDist,c.detailSampleMaxError,A))return r("Failed to build detail mesh");n||(e.freeCompactHeightfield(S),o.compactHeightfield=void 0,e.freeContourSet(y),o.contourSet=void 0);for(let t=0;t<M.npolys();t++)M.areas(t)==e.Raw.Recast.WALKABLE_AREA&&M.setAreas(t,0),0==M.areas(t)&&M.setFlags(t,1);const H=new e.NavMeshCreateParams;H.setPolyMeshCreateParams(M),H.setPolyMeshDetailCreateParams(A),H.setWalkableHeight(c.walkableHeight),H.setWalkableRadius(c.walkableRadius),H.setWalkableClimb(c.walkableClimb),H.setCellSize(c.cs),H.setCellHeight(c.ch),H.setBuildBvTree(!0),s.offMeshConnections&&H.setOffMeshConnections(s.offMeshConnections),H.setTileX(t),H.setTileY(i);const T=e.createNavMeshData(H);return T.success?(d.log(e.Raw.Module.RC_LOG_PROGRESS,`>> Polymesh: ${M.nverts()} vertices ${M.npolys()} polygons`),{success:!0,data:T.navMeshData}):r("Failed to create Detour navmesh data")};d.startTimer(e.Raw.Module.RC_TIMER_TEMP);const P=[0,0,0],F=[0,0,0];for(let t=0;t<S;t++)for(let i=0;i<R;i++){P[0]=u[0]+i*y,P[1]=u[1],P[2]=u[2]+t*y,F[0]=u[0]+(i+1)*y,F[1]=b[1],F[2]=u[2]+(t+1)*y;const a=E(i,t,P,F);if(a.success&&a.data){c.removeTile(c.getTileRefAt(i,t,0));const l=c.addTile(a.data,e.Raw.Module.DT_TILE_FREE_DATA,0);e.Raw.Detour.statusFailed(l.status)&&(d.log(e.Raw.Module.RC_LOG_WARNING,`Failed to add tile to nav mesh\n\ttx: ${i}, ty: ${t},status: ${e.statusToReadableString(l.status)} (${l.status})`),a.data.free())}}return d.stopTimer(e.Raw.Module.RC_TIMER_TEMP),n||g(),{success:!0,navMesh:c,intermediates:h}},exports.getBoundingBox=t,exports.soloNavMeshGeneratorConfigDefaults=l,exports.tileCacheGeneratorConfigDefaults=r,exports.tiledNavMeshGeneratorConfigDefaults=o;
|
|
1
|
+
"use strict";var e=require("@recast-navigation/core");const t=(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.vec3.toArray(a),bbMax:e.vec3.toArray(l)}},i=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},a=e=>(e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e),l={...e.recastConfigDefaults},r={...e.recastConfigDefaults,tileSize:32,expectedLayersPerTile:4,maxObstacles:128},s=()=>new e.TileCacheMeshProcess(((e,t,i)=>{for(let a=0;a<e.polyCount();++a)t.set(a,0),i.set(a,1)})),o={...e.recastConfigDefaults};exports.createDefaultTileCacheMeshProcess=s,exports.dtIlog2=i,exports.dtNextPow2=a,exports.generateSoloNavMesh=(i,a,r={},s=!1)=>{const o=new e.RecastBuildContext,n={type:"solo",buildContext:o},h=new e.NavMesh,d=t=>(s||(n.heightfield&&(e.freeHeightfield(n.heightfield),n.heightfield=void 0),n.compactHeightfield&&(e.freeCompactHeightfield(n.compactHeightfield),n.compactHeightfield=void 0),n.contourSet&&(e.freeContourSet(n.contourSet),n.contourSet=void 0),n.polyMesh&&(e.freePolyMesh(n.polyMesh),n.polyMesh=void 0),n.polyMeshDetail&&(e.freePolyMeshDetail(n.polyMeshDetail),n.polyMeshDetail=void 0)),h.destroy(),{navMesh:void 0,success:!1,intermediates:n,error:t}),c=i,g=a.length,f=new e.Arrays.VertsArray;f.copy(c,c.length);const m=a,u=a.length/3,b=new e.Arrays.TrisArray;b.copy(m,m.length);const{bbMin:y,bbMax:M}=t(i,a),w=e.createRcConfig({...l,...r});w.minRegionArea=w.minRegionArea*w.minRegionArea,w.mergeRegionArea=w.mergeRegionArea*w.mergeRegionArea,w.detailSampleDist=w.detailSampleDist<.9?0:w.cs*w.detailSampleDist,w.detailSampleMaxError=w.ch*w.detailSampleMaxError;const C=e.calcGridSize(y,M,w.cs);w.width=C.width,w.height=C.height;const R=e.allocHeightfield();if(n.heightfield=R,!e.createHeightfield(o,R,w.width,w.height,y,M,w.cs,w.ch))return d("Could not create heightfield");const S=new e.Arrays.TriAreasArray;if(S.resize(u),e.markWalkableTriangles(o,w.walkableSlopeAngle,f,g,b,u,S),!e.rasterizeTriangles(o,f,g,b,S,u,R,w.walkableClimb))return d("Could not rasterize triangles");S.free(),e.filterLowHangingWalkableObstacles(o,w.walkableClimb,R),e.filterLedgeSpans(o,w.walkableHeight,w.walkableClimb,R),e.filterWalkableLowHeightSpans(o,w.walkableHeight,R);const p=e.allocCompactHeightfield();if(n.compactHeightfield=p,!e.buildCompactHeightfield(o,w.walkableHeight,w.walkableClimb,R,p))return d("Failed to build compact data");if(s||(e.freeHeightfield(R),n.heightfield=void 0),!e.erodeWalkableArea(o,w.walkableRadius,p))return d("Failed to erode walkable area");if(!e.buildDistanceField(o,p))return d("Failed to build distance field");if(!e.buildRegions(o,p,w.borderSize,w.minRegionArea,w.mergeRegionArea))return d("Failed to build regions");const x=e.allocContourSet();if(n.contourSet=x,!e.buildContours(o,p,w.maxSimplificationError,w.maxEdgeLen,x,e.Raw.Module.RC_CONTOUR_TESS_WALL_EDGES))return d("Failed to create contours");const A=e.allocPolyMesh();if(n.polyMesh=A,!e.buildPolyMesh(o,x,w.maxVertsPerPoly,A))return d("Failed to triangulate contours");const k=e.allocPolyMeshDetail();if(n.polyMeshDetail=k,!e.buildPolyMeshDetail(o,A,p,w.detailSampleDist,w.detailSampleMaxError,k))return d("Failed to build detail mesh");s||(e.freeCompactHeightfield(p),n.compactHeightfield=void 0,e.freeContourSet(x),n.contourSet=void 0);for(let t=0;t<A.npolys();t++)A.areas(t)==e.Raw.Recast.WALKABLE_AREA&&A.setAreas(t,0),0==A.areas(t)&&A.setFlags(t,1);const H=new e.NavMeshCreateParams;H.setPolyMeshCreateParams(A),H.setPolyMeshDetailCreateParams(k),H.setWalkableHeight(w.walkableHeight),H.setWalkableRadius(w.walkableRadius),H.setWalkableClimb(w.walkableClimb),H.setCellSize(w.cs),H.setCellHeight(w.ch),H.setBuildBvTree(!0),r.offMeshConnections&&H.setOffMeshConnections(r.offMeshConnections);const T=e.createNavMeshData(H);if(!T.success)return d("Failed to create Detour navmesh data");const{navMeshData:v}=T;return h.initSolo(v)?{success:!0,navMesh:h,intermediates:n}:d("Failed to create Detour navmesh")},exports.generateTileCache=(l,o,n={},h=!1)=>{const d=new e.RecastBuildContext,c={type:"tilecache",buildContext:d,chunkyTriMesh:void 0,tileIntermediates:[]},g=new e.TileCache,f=new e.NavMesh,m=()=>{if(!h)for(let t=0;t<c.tileIntermediates.length;t++){const i=c.tileIntermediates[t];i.heightfield&&(e.freeHeightfield(i.heightfield),i.heightfield=void 0),i.compactHeightfield&&(e.freeCompactHeightfield(i.compactHeightfield),i.compactHeightfield=void 0),i.heightfieldLayerSet&&(e.freeHeightfieldLayerSet(i.heightfieldLayerSet),i.heightfieldLayerSet=void 0)}},u=e=>(m(),g.destroy(),f.destroy(),{success:!1,navMesh:void 0,tileCache:void 0,intermediates:c,error:e}),b=l,y=o.length,M=new e.Arrays.VertsArray;M.copy(b,b.length);const w=o,C=o.length/3,R=new e.Arrays.TrisArray;R.copy(w,w.length);const{bbMin:S,bbMax:p}=t(l,o),{expectedLayersPerTile:x,maxObstacles:A,...k}={...r,...n},H=e.createRcConfig(k),T=e.calcGridSize(S,p,H.cs);H.width=T.width,H.height=T.height,H.minRegionArea=H.minRegionArea*H.minRegionArea,H.mergeRegionArea=H.mergeRegionArea*H.mergeRegionArea,H.detailSampleDist=H.detailSampleDist<.9?0:H.cs*H.detailSampleDist,H.detailSampleMaxError=H.ch*H.detailSampleMaxError;const v=Math.floor(H.tileSize),z=Math.floor((H.width+v-1)/v),_=Math.floor((H.height+v-1)/v);H.borderSize=H.walkableRadius+3,H.width=H.tileSize+2*H.borderSize,H.height=H.tileSize+2*H.borderSize;const D=e.DetourTileCacheParams.create({orig:S,cs:H.cs,ch:H.ch,width:H.tileSize,height:H.tileSize,walkableHeight:H.walkableHeight,walkableRadius:H.walkableRadius,walkableClimb:H.walkableClimb,maxSimplificationError:H.maxSimplificationError,maxTiles:z*_*x,maxObstacles:A}),L=new e.Raw.RecastLinearAllocator(32e3),P=new e.Raw.RecastFastLZCompressor,E=n.tileCacheMeshProcess??s();if(!g.init(D,L,P,E))return u("Failed to initialize tile cache");const F=e.vec3.fromArray(S);let N=Math.min(Math.floor(i(a(z*_*x))),14);N>14&&(N=14);const O=1<<N,W=1<<22-N,G=e.NavMeshParams.create({orig:F,tileWidth:H.tileSize*H.cs,tileHeight:H.tileSize*H.cs,maxTiles:O,maxPolys:W});if(!f.initTiled(G))return u("Failed to initialize tiled navmesh");const I=new e.RecastChunkyTriMesh;if(c.chunkyTriMesh=I,!I.init(M,R,C,256))return u("Failed to build chunky triangle mesh");const $=(t,i)=>{const a={tileX:t,tileY:i},l=H.tileSize*H.cs,r=e.cloneRcConfig(H),s=[S[0]+t*l,S[1],S[2]+i*l],o=[S[0]+(t+1)*l,p[1],S[2]+(i+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=e.allocHeightfield();if(a.heightfield=n,!e.createHeightfield(d,n,r.width,r.height,s,o,r.cs,r.ch))return{n:0};const g=[s[0],s[2]],f=[o[0],o[2]],m=new e.Arrays.ChunkIdsArray;m.resize(512);const u=I.getChunksOverlappingRect(g,f,m,512);if(0===u)return{n:0};for(let t=0;t<u;++t){const i=m.get_data(t),a=I.nodes(i).n,l=I.getNodeTris(i),s=new e.Arrays.TriAreasArray;s.resize(a),e.markWalkableTriangles(d,r.walkableSlopeAngle,M,y,l,a,s);const o=e.rasterizeTriangles(d,M,y,l,s,a,n,r.walkableClimb);if(s.free(),!o)return{n:0}}e.filterLowHangingWalkableObstacles(d,H.walkableClimb,n),e.filterLedgeSpans(d,H.walkableHeight,H.walkableClimb,n),e.filterWalkableLowHeightSpans(d,H.walkableHeight,n);const b=e.allocCompactHeightfield();if(!e.buildCompactHeightfield(d,H.walkableHeight,H.walkableClimb,n,b))return{n:0};if(h||(e.freeHeightfield(a.heightfield),a.heightfield=void 0),!e.erodeWalkableArea(d,H.walkableRadius,b))return{n:0};const w=e.allocHeightfieldLayerSet();if(!e.buildHeightfieldLayers(d,b,H.borderSize,H.walkableHeight,w))return{n:0};h||(e.freeCompactHeightfield(b),a.compactHeightfield=void 0);const C=[];for(let a=0;a<w.nlayers();a++){const l=new e.Arrays.TileCacheData,r=w.layers(a),s=new e.Raw.dtTileCacheLayerHeader;s.magic=e.Raw.Detour.TILECACHE_MAGIC,s.version=e.Raw.Detour.TILECACHE_VERSION,s.tx=t,s.ty=i,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=e.getHeightfieldLayerHeights(r),d=e.getHeightfieldLayerAreas(r),c=e.getHeightfieldLayerCons(r),g=e.buildTileCacheLayer(P,s,h,d,c,l);if(e.Raw.Detour.statusFailed(g))return{n:0};C.push(l)}return h||(e.freeHeightfieldLayerSet(w),a.heightfieldLayerSet=void 0),c.tileIntermediates.push(a),{n:C.length,tiles:C}};for(let t=0;t<_;++t)for(let i=0;i<z;++i){const{n:a,tiles:l}=$(i,t);if(a>0&&l)for(let r=0;r<a;r++){const a=l[r],s=g.addTile(a);e.Raw.Detour.statusFailed(s.status)&&d.log(e.Raw.Module.RC_LOG_WARNING,`Failed to add tile to tile cache - tx: ${i}, ty: ${t}`)}}for(let t=0;t<_;t++)for(let i=0;i<z;i++){const a=g.buildNavMeshTilesAt(i,t,f);if(e.Raw.Detour.statusFailed(a))return u(`Failed to build nav mesh tiles at ${i}, ${t}`)}return m(),{success:!0,tileCache:g,navMesh:f,intermediates:c}},exports.generateTiledNavMesh=(l,r,s={},n=!1)=>{const h=new e.RecastBuildContext,d={type:"tiled",buildContext:h,chunkyTriMesh:void 0,tileIntermediates:[]},c=new e.NavMesh,g=()=>{if(!n){for(let t=0;t<d.tileIntermediates.length;t++){const i=d.tileIntermediates[t];i.compactHeightfield&&e.freeCompactHeightfield(i.compactHeightfield),i.heightfield&&e.freeHeightfield(i.heightfield),i.contourSet&&e.freeContourSet(i.contourSet),i.polyMesh&&e.freePolyMesh(i.polyMesh),i.polyMeshDetail&&e.freePolyMeshDetail(i.polyMeshDetail)}d.chunkyTriMesh&&(d.chunkyTriMesh=void 0)}},f=e=>(g(),c.destroy(),{success:!1,navMesh:void 0,intermediates:d,error:e}),m=e.createRcConfig({...o,...s}),{bbMin:u,bbMax:b}=t(l,r),y=e.calcGridSize(u,b,m.cs);m.width=y.width,m.height=y.height,m.minRegionArea=m.minRegionArea*m.minRegionArea,m.mergeRegionArea=m.mergeRegionArea*m.mergeRegionArea,m.tileSize=Math.floor(m.tileSize),m.borderSize=m.walkableRadius+3,m.width=m.tileSize+2*m.borderSize,m.height=m.tileSize+2*m.borderSize,m.detailSampleDist=m.detailSampleDist<.9?0:m.cs*m.detailSampleDist,m.detailSampleMaxError=m.ch*m.detailSampleMaxError;const M=Math.floor(m.tileSize),w=Math.floor((y.width+M-1)/M),C=Math.floor((y.height+M-1)/M),R=m.tileSize*m.cs,S=l,p=r.length,x=new e.Arrays.VertsArray;x.copy(S,S.length);const A=r,k=r.length/3,H=new e.Arrays.TrisArray;H.copy(A,A.length);const T=e.vec3.fromArray(u);let v=Math.min(Math.floor(i(a(w*C))),14);v>14&&(v=14);const z=1<<v,_=1<<22-v,D=e.NavMeshParams.create({orig:T,tileWidth:m.tileSize*m.cs,tileHeight:m.tileSize*m.cs,maxTiles:z,maxPolys:_});if(!c.initTiled(D))return f("Could not init nav mesh for tiled use");const L=new e.RecastChunkyTriMesh;if(d.chunkyTriMesh=L,!L.init(x,H,k,256))return f("Failed to build chunky triangle mesh");const P=(t,i,a,l)=>{const r=t=>(h.log(e.Raw.Module.RC_LOG_ERROR,t),{success:!1,error:t}),o={tileX:t,tileY:i};d.tileIntermediates.push(o);const c=e.cloneRcConfig(m),g=[...a],f=[...l];g[0]-=c.borderSize*c.cs,g[2]-=c.borderSize*c.cs,f[0]+=c.borderSize*c.cs,f[2]+=c.borderSize*c.cs,c.set_bmin(0,g[0]),c.set_bmin(1,g[1]),c.set_bmin(2,g[2]),c.set_bmax(0,f[0]),c.set_bmax(1,f[1]),c.set_bmax(2,f[2]),h.resetTimers(),h.startTimer(e.Raw.Module.RC_TIMER_TOTAL),h.log(e.Raw.Module.RC_LOG_PROGRESS,`Building tile ${d.tileIntermediates.length} at x: ${t}, y: ${i}`),h.log(e.Raw.Module.RC_LOG_PROGRESS,` - ${m.width} x ${m.height} cells`),h.log(e.Raw.Module.RC_LOG_PROGRESS,` - ${p/1e3}fK verts, ${k/1e3}K tris`);const u=e.allocHeightfield();if(o.heightfield=u,!e.createHeightfield(h,u,c.width,c.height,g,f,c.cs,c.ch))return r("Could not create heightfield");(new e.Arrays.TriAreasArray).resize(L.maxTrisPerChunk());const b=[g[0],g[2]],y=[f[0],f[2]],M=new e.Arrays.ChunkIdsArray;M.resize(512);const w=L.getChunksOverlappingRect(b,y,M,512);if(0===w)return{success:!0};for(let t=0;t<w;++t){const i=M.get_data(t),a=L.nodes(i).n,l=L.getNodeTris(i),s=new e.Arrays.TriAreasArray;s.resize(a),e.markWalkableTriangles(h,c.walkableSlopeAngle,x,p,l,a,s);const o=e.rasterizeTriangles(h,x,p,l,s,a,u,c.walkableClimb);if(s.free(),!o)return r("Could not rasterize triangles")}e.filterLowHangingWalkableObstacles(h,c.walkableClimb,u),e.filterLedgeSpans(h,c.walkableHeight,c.walkableClimb,u),e.filterWalkableLowHeightSpans(h,c.walkableHeight,u);const C=e.allocCompactHeightfield();if(o.compactHeightfield=C,!e.buildCompactHeightfield(h,c.walkableHeight,c.walkableClimb,u,C))return r("Could not build compact heightfield");if(n||(e.freeHeightfield(o.heightfield),o.heightfield=void 0),!e.erodeWalkableArea(h,c.walkableRadius,C))return r("Could not erode walkable area");if(!e.buildDistanceField(h,C))return r("Failed to build distance field");if(!e.buildRegions(h,C,c.borderSize,c.minRegionArea,c.mergeRegionArea))return r("Failed to build regions");const R=e.allocContourSet();if(o.contourSet=R,!e.buildContours(h,C,c.maxSimplificationError,c.maxEdgeLen,R,e.Raw.Module.RC_CONTOUR_TESS_WALL_EDGES))return r("Failed to create contours");const S=e.allocPolyMesh();if(o.polyMesh=S,!e.buildPolyMesh(h,R,c.maxVertsPerPoly,S))return r("Failed to triangulate contours");const A=e.allocPolyMeshDetail();if(o.polyMeshDetail=A,!e.buildPolyMeshDetail(h,S,C,c.detailSampleDist,c.detailSampleMaxError,A))return r("Failed to build detail mesh");n||(e.freeCompactHeightfield(C),o.compactHeightfield=void 0,e.freeContourSet(R),o.contourSet=void 0);for(let t=0;t<S.npolys();t++)S.areas(t)==e.Raw.Recast.WALKABLE_AREA&&S.setAreas(t,0),0==S.areas(t)&&S.setFlags(t,1);const H=new e.NavMeshCreateParams;H.setPolyMeshCreateParams(S),H.setPolyMeshDetailCreateParams(A),H.setWalkableHeight(c.walkableHeight),H.setWalkableRadius(c.walkableRadius),H.setWalkableClimb(c.walkableClimb),H.setCellSize(c.cs),H.setCellHeight(c.ch),H.setBuildBvTree(!0),s.offMeshConnections&&H.setOffMeshConnections(s.offMeshConnections),H.setTileX(t),H.setTileY(i);const T=e.createNavMeshData(H);return T.success?(h.log(e.Raw.Module.RC_LOG_PROGRESS,`>> Polymesh: ${S.nverts()} vertices ${S.npolys()} polygons`),{success:!0,data:T.navMeshData}):r("Failed to create Detour navmesh data")};h.startTimer(e.Raw.Module.RC_TIMER_TEMP);const E=[0,0,0],F=[0,0,0];for(let t=0;t<C;t++)for(let i=0;i<w;i++){E[0]=u[0]+i*R,E[1]=u[1],E[2]=u[2]+t*R,F[0]=u[0]+(i+1)*R,F[1]=b[1],F[2]=u[2]+(t+1)*R;const a=P(i,t,E,F);if(a.success&&a.data){c.removeTile(c.getTileRefAt(i,t,0));const l=c.addTile(a.data,e.Raw.Module.DT_TILE_FREE_DATA,0);e.Raw.Detour.statusFailed(l.status)&&(h.log(e.Raw.Module.RC_LOG_WARNING,`Failed to add tile to nav mesh\n\ttx: ${i}, ty: ${t},status: ${e.statusToReadableString(l.status)} (${l.status})`),a.data.free())}}return h.stopTimer(e.Raw.Module.RC_TIMER_TEMP),n||g(),{success:!0,navMesh:c,intermediates:d}},exports.getBoundingBox=t,exports.soloNavMeshGeneratorConfigDefaults=l,exports.tileCacheGeneratorConfigDefaults=r,exports.tiledNavMeshGeneratorConfigDefaults=o;
|
|
2
2
|
//# sourceMappingURL=generators.cjs.map
|
package/generators.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generators.cjs","sources":["../recast-navigation-generators/dist/index.mjs"],"sourcesContent":["import{vec3 as e,recastConfigDefaults as t,RecastBuildContext as i,NavMesh as a,Arrays as l,createRcConfig as r,calcGridSize as s,allocHeightfield as o,createHeightfield as n,markWalkableTriangles as d,rasterizeTriangles as h,filterLowHangingWalkableObstacles as c,filterLedgeSpans as m,filterWalkableLowHeightSpans as g,allocCompactHeightfield as u,buildCompactHeightfield as b,freeHeightfield as f,erodeWalkableArea as S,buildDistanceField as w,buildRegions as M,allocContourSet as y,buildContours as R,Raw as C,allocPolyMesh as x,buildPolyMesh as p,allocPolyMeshDetail as A,buildPolyMeshDetail as k,freeCompactHeightfield as _,freeContourSet as z,NavMeshCreateParams as T,createNavMeshData as v,TileCacheMeshProcess as E,TileCache as H,DetourTileCacheParams as F,NavMeshParams as L,RecastChunkyTriMesh as D,freeHeightfieldLayerSet as O,cloneRcConfig as P,allocHeightfieldLayerSet as I,buildHeightfieldLayers as $,getHeightfieldLayerHeights as G,getHeightfieldLayerAreas as N,getHeightfieldLayerCons as W,buildTileCacheLayer as B,statusToReadableString as V}from\"@recast-navigation/core\";const K=(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)}},X=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},Y=e=>(e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e),U={...t},Z=(e,t,E={},H=!1)=>{const F=new i,L={type:\"solo\",buildContext:F},D=new a,O=e=>(H||(L.heightfield&&(f(L.heightfield),L.heightfield=void 0),L.compactHeightfield&&(_(L.compactHeightfield),L.compactHeightfield=void 0),L.contourSet&&(z(L.contourSet),L.contourSet=void 0)),D.destroy(),{navMesh:void 0,success:!1,intermediates:L,error:e}),P=e,I=t.length,$=new l.VertsArray;$.copy(P,P.length);const G=t,N=t.length/3,W=new l.TrisArray;W.copy(G,G.length);const{bbMin:B,bbMax:V}=K(e,t),X=r({...U,...E});X.minRegionArea=X.minRegionArea*X.minRegionArea,X.mergeRegionArea=X.mergeRegionArea*X.mergeRegionArea,X.detailSampleDist=X.detailSampleDist<.9?0:X.cs*X.detailSampleDist,X.detailSampleMaxError=X.ch*X.detailSampleMaxError;const Y=s(B,V,X.cs);X.width=Y.width,X.height=Y.height;const Z=o();if(L.heightfield=Z,!n(F,Z,X.width,X.height,B,V,X.cs,X.ch))return O(\"Could not create heightfield\");const j=new l.TriAreasArray;if(j.resize(N),d(F,X.walkableSlopeAngle,$,I,W,N,j),!h(F,$,I,W,j,N,Z,X.walkableClimb))return O(\"Could not rasterize triangles\");j.free(),c(F,X.walkableClimb,Z),m(F,X.walkableHeight,X.walkableClimb,Z),g(F,X.walkableHeight,Z);const q=u();if(L.compactHeightfield=q,!b(F,X.walkableHeight,X.walkableClimb,Z,q))return O(\"Failed to build compact data\");if(H||(f(Z),L.heightfield=void 0),!S(F,X.walkableRadius,q))return O(\"Failed to erode walkable area\");if(!w(F,q))return O(\"Failed to build distance field\");if(!M(F,q,X.borderSize,X.minRegionArea,X.mergeRegionArea))return O(\"Failed to build regions\");const J=y();if(L.contourSet=J,!R(F,q,X.maxSimplificationError,X.maxEdgeLen,J,C.Module.RC_CONTOUR_TESS_WALL_EDGES))return O(\"Failed to create contours\");const Q=x();if(!p(F,J,X.maxVertsPerPoly,Q))return O(\"Failed to triangulate contours\");const ee=A();if(!k(F,Q,q,X.detailSampleDist,X.detailSampleMaxError,ee))return O(\"Failed to build detail mesh\");H||(_(q),L.compactHeightfield=void 0,z(J),L.contourSet=void 0);for(let e=0;e<Q.npolys();e++)Q.areas(e)==C.Recast.WALKABLE_AREA&&Q.setAreas(e,0),0==Q.areas(e)&&Q.setFlags(e,1);const te=new T;te.setPolyMeshCreateParams(Q),te.setPolyMeshDetailCreateParams(ee),te.setWalkableHeight(X.walkableHeight),te.setWalkableRadius(X.walkableRadius),te.setWalkableClimb(X.walkableClimb),te.setCellSize(X.cs),te.setCellHeight(X.ch),te.setBuildBvTree(!0),E.offMeshConnections&&te.setOffMeshConnections(E.offMeshConnections);const ie=v(te);if(!ie.success)return O(\"Failed to create Detour navmesh data\");const{navMeshData:ae}=ie;return D.initSolo(ae)?{success:!0,navMesh:D,intermediates:L}:O(\"Failed to create Detour navmesh\")},j={...t,tileSize:32,expectedLayersPerTile:4,maxObstacles:128},q=()=>new E(((e,t,i)=>{for(let a=0;a<e.polyCount();++a)t.set(a,0),i.set(a,1)})),J=(t,w,M={},y=!1)=>{const R=new i,x={type:\"tilecache\",buildContext:R,chunkyTriMesh:void 0,tileIntermediates:[]},p=new H,A=new a,k=()=>{if(!y)for(let e=0;e<x.tileIntermediates.length;e++){const t=x.tileIntermediates[e];t.heightfield&&(f(t.heightfield),t.heightfield=void 0),t.compactHeightfield&&(_(t.compactHeightfield),t.compactHeightfield=void 0),t.heightfieldLayerSet&&(O(t.heightfieldLayerSet),t.heightfieldLayerSet=void 0)}},z=e=>(k(),p.destroy(),A.destroy(),{success:!1,navMesh:void 0,tileCache:void 0,intermediates:x,error:e}),T=t,v=w.length,E=new l.VertsArray;E.copy(T,T.length);const V=w,U=w.length/3,Z=new l.TrisArray;Z.copy(V,V.length);const{bbMin:J,bbMax:Q}=K(t,w),{expectedLayersPerTile:ee,maxObstacles:te,...ie}={...j,...M},ae=r(ie),le=s(J,Q,ae.cs);ae.width=le.width,ae.height=le.height,ae.minRegionArea=ae.minRegionArea*ae.minRegionArea,ae.mergeRegionArea=ae.mergeRegionArea*ae.mergeRegionArea,ae.detailSampleDist=ae.detailSampleDist<.9?0:ae.cs*ae.detailSampleDist,ae.detailSampleMaxError=ae.ch*ae.detailSampleMaxError;const re=Math.floor(ae.tileSize),se=Math.floor((ae.width+re-1)/re),oe=Math.floor((ae.height+re-1)/re);ae.borderSize=ae.walkableRadius+3,ae.width=ae.tileSize+2*ae.borderSize,ae.height=ae.tileSize+2*ae.borderSize;const ne=F.create({orig:J,cs:ae.cs,ch:ae.ch,width:ae.tileSize,height:ae.tileSize,walkableHeight:ae.walkableHeight,walkableRadius:ae.walkableRadius,walkableClimb:ae.walkableClimb,maxSimplificationError:ae.maxSimplificationError,maxTiles:se*oe*ee,maxObstacles:te}),de=new C.RecastLinearAllocator(32e3),he=new C.RecastFastLZCompressor,ce=M.tileCacheMeshProcess??q();if(!p.init(ne,de,he,ce))return z(\"Failed to initialize tile cache\");const me=e.fromArray(J);let ge=Math.min(Math.floor(X(Y(se*oe*ee))),14);ge>14&&(ge=14);const ue=1<<ge,be=1<<22-ge,fe=L.create({orig:me,tileWidth:ae.tileSize*ae.cs,tileHeight:ae.tileSize*ae.cs,maxTiles:ue,maxPolys:be});if(!A.initTiled(fe))return z(\"Failed to initialize tiled navmesh\");const Se=new D;if(x.chunkyTriMesh=Se,!Se.init(E,Z,U,256))return z(\"Failed to build chunky triangle mesh\");const we=(e,t)=>{const i={tileX:e,tileY:t},a=ae.tileSize*ae.cs,r=P(ae),s=[J[0]+e*a,J[1],J[2]+t*a],w=[J[0]+(e+1)*a,Q[1],J[2]+(t+1)*a];s[0]-=r.borderSize*r.cs,s[2]-=r.borderSize*r.cs,w[0]+=r.borderSize*r.cs,w[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,w[0]),r.set_bmax(1,w[1]),r.set_bmax(2,w[2]);const M=o();if(i.heightfield=M,!n(R,M,r.width,r.height,s,w,r.cs,r.ch))return{n:0};const p=[s[0],s[2]],A=[w[0],w[2]],k=new l.ChunkIdsArray;k.resize(512);const z=Se.getChunksOverlappingRect(p,A,k,512);if(0===z)return{n:0};for(let e=0;e<z;++e){const t=k.get_data(e),i=Se.nodes(t).n,a=Se.getNodeTris(t),s=new l.TriAreasArray;s.resize(i),d(R,r.walkableSlopeAngle,E,v,a,i,s);const o=h(R,E,v,a,s,i,M,r.walkableClimb);if(s.free(),!o)return{n:0}}c(R,ae.walkableClimb,M),m(R,ae.walkableHeight,ae.walkableClimb,M),g(R,ae.walkableHeight,M);const T=u();if(!b(R,ae.walkableHeight,ae.walkableClimb,M,T))return{n:0};if(y||(f(i.heightfield),i.heightfield=void 0),!S(R,ae.walkableRadius,T))return{n:0};const H=I();if(!$(R,T,ae.borderSize,ae.walkableHeight,H))return{n:0};y||(_(T),i.compactHeightfield=void 0);const F=[];for(let i=0;i<H.nlayers();i++){const a=new l.TileCacheData,r=H.layers(i),s=new C.dtTileCacheLayerHeader;s.magic=C.Detour.TILECACHE_MAGIC,s.version=C.Detour.TILECACHE_VERSION,s.tx=e,s.ty=t,s.tlayer=i;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 d=G(r),h=N(r),c=W(r),m=B(he,s,d,h,c,a);if(C.Detour.statusFailed(m))return{n:0};F.push(a)}return y||(O(H),i.heightfieldLayerSet=void 0),x.tileIntermediates.push(i),{n:F.length,tiles:F}};for(let e=0;e<oe;++e)for(let t=0;t<se;++t){const{n:i,tiles:a}=we(t,e);if(i>0&&a)for(let l=0;l<i;l++){const i=a[l],r=p.addTile(i);C.Detour.statusFailed(r.status)&&R.log(C.Module.RC_LOG_WARNING,`Failed to add tile to tile cache - tx: ${t}, ty: ${e}`)}}for(let e=0;e<oe;e++)for(let t=0;t<se;t++){const i=p.buildNavMeshTilesAt(t,e,A);if(C.Detour.statusFailed(i))return z(`Failed to build nav mesh tiles at ${t}, ${e}`)}return k(),{success:!0,tileCache:p,navMesh:A,intermediates:x}},Q={...t},ee=(t,E,H={},F=!1)=>{const O=new i,I={type:\"tiled\",buildContext:O,chunkyTriMesh:void 0,tileIntermediates:[]},$=new a,G=()=>{if(!F){for(let e=0;e<I.tileIntermediates.length;e++){const t=I.tileIntermediates[e];t.compactHeightfield&&_(t.compactHeightfield),t.heightfield&&f(t.heightfield),t.contourSet&&z(t.contourSet)}I.chunkyTriMesh&&(I.chunkyTriMesh=void 0)}},N=e=>(G(),$.destroy(),{success:!1,navMesh:void 0,intermediates:I,error:e}),W=r({...Q,...H}),{bbMin:B,bbMax:U}=K(t,E),Z=s(B,U,W.cs);W.width=Z.width,W.height=Z.height,W.minRegionArea=W.minRegionArea*W.minRegionArea,W.mergeRegionArea=W.mergeRegionArea*W.mergeRegionArea,W.tileSize=Math.floor(W.tileSize),W.borderSize=W.walkableRadius+3,W.width=W.tileSize+2*W.borderSize,W.height=W.tileSize+2*W.borderSize,W.detailSampleDist=W.detailSampleDist<.9?0:W.cs*W.detailSampleDist,W.detailSampleMaxError=W.ch*W.detailSampleMaxError;const j=Math.floor(W.tileSize),q=Math.floor((Z.width+j-1)/j),J=Math.floor((Z.height+j-1)/j),ee=W.tileSize*W.cs,te=t,ie=E.length,ae=new l.VertsArray;ae.copy(te,te.length);const le=E,re=E.length/3,se=new l.TrisArray;se.copy(le,le.length);const oe=e.fromArray(B);let ne=Math.min(Math.floor(X(Y(q*J))),14);ne>14&&(ne=14);const de=1<<ne,he=1<<22-ne,ce=L.create({orig:oe,tileWidth:W.tileSize*W.cs,tileHeight:W.tileSize*W.cs,maxTiles:de,maxPolys:he});if(!$.initTiled(ce))return N(\"Could not init nav mesh for tiled use\");const me=new D;if(I.chunkyTriMesh=me,!me.init(ae,se,re,256))return N(\"Failed to build chunky triangle mesh\");const ge=(e,t,i,a)=>{const r=e=>(O.log(C.Module.RC_LOG_ERROR,e),{success:!1,error:e}),s={tileX:e,tileY:t};I.tileIntermediates.push(s);const E=P(W),L=[...i],D=[...a];L[0]-=E.borderSize*E.cs,L[2]-=E.borderSize*E.cs,D[0]+=E.borderSize*E.cs,D[2]+=E.borderSize*E.cs,E.set_bmin(0,L[0]),E.set_bmin(1,L[1]),E.set_bmin(2,L[2]),E.set_bmax(0,D[0]),E.set_bmax(1,D[1]),E.set_bmax(2,D[2]),O.resetTimers(),O.startTimer(C.Module.RC_TIMER_TOTAL),O.log(C.Module.RC_LOG_PROGRESS,`Building tile ${I.tileIntermediates.length} at x: ${e}, y: ${t}`),O.log(C.Module.RC_LOG_PROGRESS,` - ${W.width} x ${W.height} cells`),O.log(C.Module.RC_LOG_PROGRESS,` - ${ie/1e3}fK verts, ${re/1e3}K tris`);const $=o();if(s.heightfield=$,!n(O,$,E.width,E.height,L,D,E.cs,E.ch))return r(\"Could not create heightfield\");(new l.TriAreasArray).resize(me.maxTrisPerChunk());const G=[L[0],L[2]],N=[D[0],D[2]],B=new l.ChunkIdsArray;B.resize(512);const V=me.getChunksOverlappingRect(G,N,B,512);if(0===V)return{success:!0};for(let e=0;e<V;++e){const t=B.get_data(e),i=me.nodes(t).n,a=me.getNodeTris(t),s=new l.TriAreasArray;s.resize(i),d(O,E.walkableSlopeAngle,ae,ie,a,i,s);const o=h(O,ae,ie,a,s,i,$,E.walkableClimb);if(s.free(),!o)return r(\"Could not rasterize triangles\")}c(O,E.walkableClimb,$),m(O,E.walkableHeight,E.walkableClimb,$),g(O,E.walkableHeight,$);const K=u();if(s.compactHeightfield=K,!b(O,E.walkableHeight,E.walkableClimb,$,K))return r(\"Could not build compact heightfield\");if(F||(f(s.heightfield),s.heightfield=void 0),!S(O,E.walkableRadius,K))return r(\"Could not erode walkable area\");if(!w(O,K))return r(\"Failed to build distance field\");if(!M(O,K,E.borderSize,E.minRegionArea,E.mergeRegionArea))return r(\"Failed to build regions\");const X=y();if(s.contourSet=X,!R(O,K,E.maxSimplificationError,E.maxEdgeLen,X,C.Module.RC_CONTOUR_TESS_WALL_EDGES))return r(\"Failed to create contours\");const Y=x();if(!p(O,X,E.maxVertsPerPoly,Y))return r(\"Failed to triangulate contours\");const U=A();if(!k(O,Y,K,E.detailSampleDist,E.detailSampleMaxError,U))return r(\"Failed to build detail mesh\");F||(_(K),s.compactHeightfield=void 0,z(X),s.contourSet=void 0);for(let e=0;e<Y.npolys();e++)Y.areas(e)==C.Recast.WALKABLE_AREA&&Y.setAreas(e,0),0==Y.areas(e)&&Y.setFlags(e,1);const Z=new T;Z.setPolyMeshCreateParams(Y),Z.setPolyMeshDetailCreateParams(U),Z.setWalkableHeight(E.walkableHeight),Z.setWalkableRadius(E.walkableRadius),Z.setWalkableClimb(E.walkableClimb),Z.setCellSize(E.cs),Z.setCellHeight(E.ch),Z.setBuildBvTree(!0),H.offMeshConnections&&Z.setOffMeshConnections(H.offMeshConnections),Z.setTileX(e),Z.setTileY(t);const j=v(Z);return j.success?(O.log(C.Module.RC_LOG_PROGRESS,`>> Polymesh: ${Y.nverts()} vertices ${Y.npolys()} polygons`),{success:!0,data:j.navMeshData}):r(\"Failed to create Detour navmesh data\")};O.startTimer(C.Module.RC_TIMER_TEMP);const ue=[0,0,0],be=[0,0,0];for(let e=0;e<J;e++)for(let t=0;t<q;t++){ue[0]=B[0]+t*ee,ue[1]=B[1],ue[2]=B[2]+e*ee,be[0]=B[0]+(t+1)*ee,be[1]=U[1],be[2]=B[2]+(e+1)*ee;const i=ge(t,e,ue,be);if(i.success&&i.data){$.removeTile($.getTileRefAt(t,e,0));const a=$.addTile(i.data,C.Module.DT_TILE_FREE_DATA,0);C.Detour.statusFailed(a.status)&&(O.log(C.Module.RC_LOG_WARNING,`Failed to add tile to nav mesh\\n\\ttx: ${t}, ty: ${e},status: ${V(a.status)} (${a.status})`),i.data.free())}}return O.stopTimer(C.Module.RC_TIMER_TEMP),F||G(),{success:!0,navMesh:$,intermediates:I}};export{q as createDefaultTileCacheMeshProcess,X as dtIlog2,Y as dtNextPow2,Z as generateSoloNavMesh,J as generateTileCache,ee as generateTiledNavMesh,K as getBoundingBox,U as soloNavMeshGeneratorConfigDefaults,j as tileCacheGeneratorConfigDefaults,Q as tiledNavMeshGeneratorConfigDefaults};\n//# sourceMappingURL=index.mjs.map\n"],"names":["K","t","i","a","x","y","z","l","e","length","r","s","o","n","Math","min","max","bbMin","vec3","toArray","bbMax","X","Number","Y","U","j","recastConfigDefaults","tileSize","expectedLayersPerTile","maxObstacles","q","E","polyCount","set","Q","H","F","RecastBuildContext","L","type","buildContext","D","O","heightfield","f","freeHeightfield","compactHeightfield","_","contourSet","destroy","navMesh","success","intermediates","error","P","I","$","Arrays","VertsArray","copy","G","N","W","TrisArray","B","V","createRcConfig","minRegionArea","mergeRegionArea","detailSampleDist","cs","detailSampleMaxError","ch","width","height","Z","createHeightfield","TriAreasArray","resize","d","markWalkableTriangles","walkableSlopeAngle","h","rasterizeTriangles","walkableClimb","free","c","filterLowHangingWalkableObstacles","m","walkableHeight","g","filterWalkableLowHeightSpans","u","b","buildCompactHeightfield","S","erodeWalkableArea","walkableRadius","w","buildDistanceField","M","buildRegions","borderSize","J","R","maxSimplificationError","maxEdgeLen","C","Module","RC_CONTOUR_TESS_WALL_EDGES","allocPolyMesh","p","buildPolyMesh","maxVertsPerPoly","ee","A","allocPolyMeshDetail","k","buildPolyMeshDetail","freeContourSet","npolys","areas","Recast","WALKABLE_AREA","setAreas","setFlags","te","T","NavMeshCreateParams","setPolyMeshCreateParams","setPolyMeshDetailCreateParams","setWalkableHeight","setWalkableRadius","setWalkableClimb","setCellSize","setCellHeight","setBuildBvTree","offMeshConnections","setOffMeshConnections","ie","v","navMeshData","ae","initSolo","chunkyTriMesh","tileIntermediates","TileCache","NavMesh","heightfieldLayerSet","tileCache","le","re","floor","se","oe","ne","create","orig","maxTiles","de","Raw","RecastLinearAllocator","he","RecastFastLZCompressor","ce","tileCacheMeshProcess","init","me","fromArray","ge","ue","be","fe","tileWidth","tileHeight","maxPolys","initTiled","Se","RecastChunkyTriMesh","we","tileX","tileY","cloneRcConfig","set_bmin","set_bmax","allocHeightfield","ChunkIdsArray","getChunksOverlappingRect","get_data","nodes","getNodeTris","filterLedgeSpans","nlayers","TileCacheData","layers","dtTileCacheLayerHeader","magic","Detour","TILECACHE_MAGIC","version","TILECACHE_VERSION","tx","ty","tlayer","bmin","bmax","minx","maxx","miny","maxy","hmin","hmax","buildTileCacheLayer","statusFailed","push","tiles","addTile","status","log","RC_LOG_WARNING","buildNavMeshTilesAt","RC_LOG_ERROR","resetTimers","startTimer","RC_TIMER_TOTAL","RC_LOG_PROGRESS","maxTrisPerChunk","buildContours","freeCompactHeightfield","setTileX","setTileY","nverts","data","RC_TIMER_TEMP","removeTile","getTileRefAt","DT_TILE_FREE_DATA","stopTimer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generators.cjs","sources":["../recast-navigation-generators/dist/index.mjs"],"sourcesContent":["import{vec3 as e,recastConfigDefaults as t,RecastBuildContext as i,NavMesh as a,Arrays as l,createRcConfig as r,calcGridSize as s,allocHeightfield as o,createHeightfield as n,markWalkableTriangles as h,rasterizeTriangles as d,filterLowHangingWalkableObstacles as c,filterLedgeSpans as m,filterWalkableLowHeightSpans as g,allocCompactHeightfield as u,buildCompactHeightfield as b,freeHeightfield as f,erodeWalkableArea as M,buildDistanceField as y,buildRegions as S,allocContourSet as w,buildContours as p,Raw as R,allocPolyMesh as C,buildPolyMesh as x,allocPolyMeshDetail as A,buildPolyMeshDetail as k,freeCompactHeightfield as _,freeContourSet as z,NavMeshCreateParams as T,createNavMeshData as v,freePolyMesh as E,freePolyMeshDetail as D,TileCacheMeshProcess as H,TileCache as F,DetourTileCacheParams as L,NavMeshParams as O,RecastChunkyTriMesh as P,freeHeightfieldLayerSet as I,cloneRcConfig as $,allocHeightfieldLayerSet as G,buildHeightfieldLayers as N,getHeightfieldLayerHeights as W,getHeightfieldLayerAreas as B,getHeightfieldLayerCons as V,buildTileCacheLayer as K,statusToReadableString as X}from\"@recast-navigation/core\";const Y=(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)}},U=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},Z=e=>(e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e),j={...t},q=(e,t,H={},F=!1)=>{const L=new i,O={type:\"solo\",buildContext:L},P=new a,I=e=>(F||(O.heightfield&&(f(O.heightfield),O.heightfield=void 0),O.compactHeightfield&&(_(O.compactHeightfield),O.compactHeightfield=void 0),O.contourSet&&(z(O.contourSet),O.contourSet=void 0),O.polyMesh&&(E(O.polyMesh),O.polyMesh=void 0),O.polyMeshDetail&&(D(O.polyMeshDetail),O.polyMeshDetail=void 0)),P.destroy(),{navMesh:void 0,success:!1,intermediates:O,error:e}),$=e,G=t.length,N=new l.VertsArray;N.copy($,$.length);const W=t,B=t.length/3,V=new l.TrisArray;V.copy(W,W.length);const{bbMin:K,bbMax:X}=Y(e,t),U=r({...j,...H});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=s(K,X,U.cs);U.width=Z.width,U.height=Z.height;const q=o();if(O.heightfield=q,!n(L,q,U.width,U.height,K,X,U.cs,U.ch))return I(\"Could not create heightfield\");const J=new l.TriAreasArray;if(J.resize(B),h(L,U.walkableSlopeAngle,N,G,V,B,J),!d(L,N,G,V,J,B,q,U.walkableClimb))return I(\"Could not rasterize triangles\");J.free(),c(L,U.walkableClimb,q),m(L,U.walkableHeight,U.walkableClimb,q),g(L,U.walkableHeight,q);const Q=u();if(O.compactHeightfield=Q,!b(L,U.walkableHeight,U.walkableClimb,q,Q))return I(\"Failed to build compact data\");if(F||(f(q),O.heightfield=void 0),!M(L,U.walkableRadius,Q))return I(\"Failed to erode walkable area\");if(!y(L,Q))return I(\"Failed to build distance field\");if(!S(L,Q,U.borderSize,U.minRegionArea,U.mergeRegionArea))return I(\"Failed to build regions\");const ee=w();if(O.contourSet=ee,!p(L,Q,U.maxSimplificationError,U.maxEdgeLen,ee,R.Module.RC_CONTOUR_TESS_WALL_EDGES))return I(\"Failed to create contours\");const te=C();if(O.polyMesh=te,!x(L,ee,U.maxVertsPerPoly,te))return I(\"Failed to triangulate contours\");const ie=A();if(O.polyMeshDetail=ie,!k(L,te,Q,U.detailSampleDist,U.detailSampleMaxError,ie))return I(\"Failed to build detail mesh\");F||(_(Q),O.compactHeightfield=void 0,z(ee),O.contourSet=void 0);for(let e=0;e<te.npolys();e++)te.areas(e)==R.Recast.WALKABLE_AREA&&te.setAreas(e,0),0==te.areas(e)&&te.setFlags(e,1);const ae=new T;ae.setPolyMeshCreateParams(te),ae.setPolyMeshDetailCreateParams(ie),ae.setWalkableHeight(U.walkableHeight),ae.setWalkableRadius(U.walkableRadius),ae.setWalkableClimb(U.walkableClimb),ae.setCellSize(U.cs),ae.setCellHeight(U.ch),ae.setBuildBvTree(!0),H.offMeshConnections&&ae.setOffMeshConnections(H.offMeshConnections);const le=v(ae);if(!le.success)return I(\"Failed to create Detour navmesh data\");const{navMeshData:re}=le;return P.initSolo(re)?{success:!0,navMesh:P,intermediates:O}:I(\"Failed to create Detour navmesh\")},J={...t,tileSize:32,expectedLayersPerTile:4,maxObstacles:128},Q=()=>new H(((e,t,i)=>{for(let a=0;a<e.polyCount();++a)t.set(a,0),i.set(a,1)})),ee=(t,y,S={},w=!1)=>{const p=new i,C={type:\"tilecache\",buildContext:p,chunkyTriMesh:void 0,tileIntermediates:[]},x=new F,A=new a,k=()=>{if(!w)for(let e=0;e<C.tileIntermediates.length;e++){const t=C.tileIntermediates[e];t.heightfield&&(f(t.heightfield),t.heightfield=void 0),t.compactHeightfield&&(_(t.compactHeightfield),t.compactHeightfield=void 0),t.heightfieldLayerSet&&(I(t.heightfieldLayerSet),t.heightfieldLayerSet=void 0)}},z=e=>(k(),x.destroy(),A.destroy(),{success:!1,navMesh:void 0,tileCache:void 0,intermediates:C,error:e}),T=t,v=y.length,E=new l.VertsArray;E.copy(T,T.length);const D=y,H=y.length/3,X=new l.TrisArray;X.copy(D,D.length);const{bbMin:j,bbMax:q}=Y(t,y),{expectedLayersPerTile:ee,maxObstacles:te,...ie}={...J,...S},ae=r(ie),le=s(j,q,ae.cs);ae.width=le.width,ae.height=le.height,ae.minRegionArea=ae.minRegionArea*ae.minRegionArea,ae.mergeRegionArea=ae.mergeRegionArea*ae.mergeRegionArea,ae.detailSampleDist=ae.detailSampleDist<.9?0:ae.cs*ae.detailSampleDist,ae.detailSampleMaxError=ae.ch*ae.detailSampleMaxError;const re=Math.floor(ae.tileSize),se=Math.floor((ae.width+re-1)/re),oe=Math.floor((ae.height+re-1)/re);ae.borderSize=ae.walkableRadius+3,ae.width=ae.tileSize+2*ae.borderSize,ae.height=ae.tileSize+2*ae.borderSize;const ne=L.create({orig:j,cs:ae.cs,ch:ae.ch,width:ae.tileSize,height:ae.tileSize,walkableHeight:ae.walkableHeight,walkableRadius:ae.walkableRadius,walkableClimb:ae.walkableClimb,maxSimplificationError:ae.maxSimplificationError,maxTiles:se*oe*ee,maxObstacles:te}),he=new R.RecastLinearAllocator(32e3),de=new R.RecastFastLZCompressor,ce=S.tileCacheMeshProcess??Q();if(!x.init(ne,he,de,ce))return z(\"Failed to initialize tile cache\");const me=e.fromArray(j);let ge=Math.min(Math.floor(U(Z(se*oe*ee))),14);ge>14&&(ge=14);const ue=1<<ge,be=1<<22-ge,fe=O.create({orig:me,tileWidth:ae.tileSize*ae.cs,tileHeight:ae.tileSize*ae.cs,maxTiles:ue,maxPolys:be});if(!A.initTiled(fe))return z(\"Failed to initialize tiled navmesh\");const Me=new P;if(C.chunkyTriMesh=Me,!Me.init(E,X,H,256))return z(\"Failed to build chunky triangle mesh\");const ye=(e,t)=>{const i={tileX:e,tileY:t},a=ae.tileSize*ae.cs,r=$(ae),s=[j[0]+e*a,j[1],j[2]+t*a],y=[j[0]+(e+1)*a,q[1],j[2]+(t+1)*a];s[0]-=r.borderSize*r.cs,s[2]-=r.borderSize*r.cs,y[0]+=r.borderSize*r.cs,y[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,y[0]),r.set_bmax(1,y[1]),r.set_bmax(2,y[2]);const S=o();if(i.heightfield=S,!n(p,S,r.width,r.height,s,y,r.cs,r.ch))return{n:0};const x=[s[0],s[2]],A=[y[0],y[2]],k=new l.ChunkIdsArray;k.resize(512);const z=Me.getChunksOverlappingRect(x,A,k,512);if(0===z)return{n:0};for(let e=0;e<z;++e){const t=k.get_data(e),i=Me.nodes(t).n,a=Me.getNodeTris(t),s=new l.TriAreasArray;s.resize(i),h(p,r.walkableSlopeAngle,E,v,a,i,s);const o=d(p,E,v,a,s,i,S,r.walkableClimb);if(s.free(),!o)return{n:0}}c(p,ae.walkableClimb,S),m(p,ae.walkableHeight,ae.walkableClimb,S),g(p,ae.walkableHeight,S);const T=u();if(!b(p,ae.walkableHeight,ae.walkableClimb,S,T))return{n:0};if(w||(f(i.heightfield),i.heightfield=void 0),!M(p,ae.walkableRadius,T))return{n:0};const D=G();if(!N(p,T,ae.borderSize,ae.walkableHeight,D))return{n:0};w||(_(T),i.compactHeightfield=void 0);const H=[];for(let i=0;i<D.nlayers();i++){const a=new l.TileCacheData,r=D.layers(i),s=new R.dtTileCacheLayerHeader;s.magic=R.Detour.TILECACHE_MAGIC,s.version=R.Detour.TILECACHE_VERSION,s.tx=e,s.ty=t,s.tlayer=i;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=W(r),d=B(r),c=V(r),m=K(de,s,h,d,c,a);if(R.Detour.statusFailed(m))return{n:0};H.push(a)}return w||(I(D),i.heightfieldLayerSet=void 0),C.tileIntermediates.push(i),{n:H.length,tiles:H}};for(let e=0;e<oe;++e)for(let t=0;t<se;++t){const{n:i,tiles:a}=ye(t,e);if(i>0&&a)for(let l=0;l<i;l++){const i=a[l],r=x.addTile(i);R.Detour.statusFailed(r.status)&&p.log(R.Module.RC_LOG_WARNING,`Failed to add tile to tile cache - tx: ${t}, ty: ${e}`)}}for(let e=0;e<oe;e++)for(let t=0;t<se;t++){const i=x.buildNavMeshTilesAt(t,e,A);if(R.Detour.statusFailed(i))return z(`Failed to build nav mesh tiles at ${t}, ${e}`)}return k(),{success:!0,tileCache:x,navMesh:A,intermediates:C}},te={...t},ie=(t,H,F={},L=!1)=>{const I=new i,G={type:\"tiled\",buildContext:I,chunkyTriMesh:void 0,tileIntermediates:[]},N=new a,W=()=>{if(!L){for(let e=0;e<G.tileIntermediates.length;e++){const t=G.tileIntermediates[e];t.compactHeightfield&&_(t.compactHeightfield),t.heightfield&&f(t.heightfield),t.contourSet&&z(t.contourSet),t.polyMesh&&E(t.polyMesh),t.polyMeshDetail&&D(t.polyMeshDetail)}G.chunkyTriMesh&&(G.chunkyTriMesh=void 0)}},B=e=>(W(),N.destroy(),{success:!1,navMesh:void 0,intermediates:G,error:e}),V=r({...te,...F}),{bbMin:K,bbMax:j}=Y(t,H),q=s(K,j,V.cs);V.width=q.width,V.height=q.height,V.minRegionArea=V.minRegionArea*V.minRegionArea,V.mergeRegionArea=V.mergeRegionArea*V.mergeRegionArea,V.tileSize=Math.floor(V.tileSize),V.borderSize=V.walkableRadius+3,V.width=V.tileSize+2*V.borderSize,V.height=V.tileSize+2*V.borderSize,V.detailSampleDist=V.detailSampleDist<.9?0:V.cs*V.detailSampleDist,V.detailSampleMaxError=V.ch*V.detailSampleMaxError;const J=Math.floor(V.tileSize),Q=Math.floor((q.width+J-1)/J),ee=Math.floor((q.height+J-1)/J),ie=V.tileSize*V.cs,ae=t,le=H.length,re=new l.VertsArray;re.copy(ae,ae.length);const se=H,oe=H.length/3,ne=new l.TrisArray;ne.copy(se,se.length);const he=e.fromArray(K);let de=Math.min(Math.floor(U(Z(Q*ee))),14);de>14&&(de=14);const ce=1<<de,me=1<<22-de,ge=O.create({orig:he,tileWidth:V.tileSize*V.cs,tileHeight:V.tileSize*V.cs,maxTiles:ce,maxPolys:me});if(!N.initTiled(ge))return B(\"Could not init nav mesh for tiled use\");const ue=new P;if(G.chunkyTriMesh=ue,!ue.init(re,ne,oe,256))return B(\"Failed to build chunky triangle mesh\");const be=(e,t,i,a)=>{const r=e=>(I.log(R.Module.RC_LOG_ERROR,e),{success:!1,error:e}),s={tileX:e,tileY:t};G.tileIntermediates.push(s);const E=$(V),D=[...i],H=[...a];D[0]-=E.borderSize*E.cs,D[2]-=E.borderSize*E.cs,H[0]+=E.borderSize*E.cs,H[2]+=E.borderSize*E.cs,E.set_bmin(0,D[0]),E.set_bmin(1,D[1]),E.set_bmin(2,D[2]),E.set_bmax(0,H[0]),E.set_bmax(1,H[1]),E.set_bmax(2,H[2]),I.resetTimers(),I.startTimer(R.Module.RC_TIMER_TOTAL),I.log(R.Module.RC_LOG_PROGRESS,`Building tile ${G.tileIntermediates.length} at x: ${e}, y: ${t}`),I.log(R.Module.RC_LOG_PROGRESS,` - ${V.width} x ${V.height} cells`),I.log(R.Module.RC_LOG_PROGRESS,` - ${le/1e3}fK verts, ${oe/1e3}K tris`);const O=o();if(s.heightfield=O,!n(I,O,E.width,E.height,D,H,E.cs,E.ch))return r(\"Could not create heightfield\");(new l.TriAreasArray).resize(ue.maxTrisPerChunk());const P=[D[0],D[2]],N=[H[0],H[2]],W=new l.ChunkIdsArray;W.resize(512);const B=ue.getChunksOverlappingRect(P,N,W,512);if(0===B)return{success:!0};for(let e=0;e<B;++e){const t=W.get_data(e),i=ue.nodes(t).n,a=ue.getNodeTris(t),s=new l.TriAreasArray;s.resize(i),h(I,E.walkableSlopeAngle,re,le,a,i,s);const o=d(I,re,le,a,s,i,O,E.walkableClimb);if(s.free(),!o)return r(\"Could not rasterize triangles\")}c(I,E.walkableClimb,O),m(I,E.walkableHeight,E.walkableClimb,O),g(I,E.walkableHeight,O);const K=u();if(s.compactHeightfield=K,!b(I,E.walkableHeight,E.walkableClimb,O,K))return r(\"Could not build compact heightfield\");if(L||(f(s.heightfield),s.heightfield=void 0),!M(I,E.walkableRadius,K))return r(\"Could not erode walkable area\");if(!y(I,K))return r(\"Failed to build distance field\");if(!S(I,K,E.borderSize,E.minRegionArea,E.mergeRegionArea))return r(\"Failed to build regions\");const X=w();if(s.contourSet=X,!p(I,K,E.maxSimplificationError,E.maxEdgeLen,X,R.Module.RC_CONTOUR_TESS_WALL_EDGES))return r(\"Failed to create contours\");const Y=C();if(s.polyMesh=Y,!x(I,X,E.maxVertsPerPoly,Y))return r(\"Failed to triangulate contours\");const U=A();if(s.polyMeshDetail=U,!k(I,Y,K,E.detailSampleDist,E.detailSampleMaxError,U))return r(\"Failed to build detail mesh\");L||(_(K),s.compactHeightfield=void 0,z(X),s.contourSet=void 0);for(let e=0;e<Y.npolys();e++)Y.areas(e)==R.Recast.WALKABLE_AREA&&Y.setAreas(e,0),0==Y.areas(e)&&Y.setFlags(e,1);const Z=new T;Z.setPolyMeshCreateParams(Y),Z.setPolyMeshDetailCreateParams(U),Z.setWalkableHeight(E.walkableHeight),Z.setWalkableRadius(E.walkableRadius),Z.setWalkableClimb(E.walkableClimb),Z.setCellSize(E.cs),Z.setCellHeight(E.ch),Z.setBuildBvTree(!0),F.offMeshConnections&&Z.setOffMeshConnections(F.offMeshConnections),Z.setTileX(e),Z.setTileY(t);const j=v(Z);return j.success?(I.log(R.Module.RC_LOG_PROGRESS,`>> Polymesh: ${Y.nverts()} vertices ${Y.npolys()} polygons`),{success:!0,data:j.navMeshData}):r(\"Failed to create Detour navmesh data\")};I.startTimer(R.Module.RC_TIMER_TEMP);const fe=[0,0,0],Me=[0,0,0];for(let e=0;e<ee;e++)for(let t=0;t<Q;t++){fe[0]=K[0]+t*ie,fe[1]=K[1],fe[2]=K[2]+e*ie,Me[0]=K[0]+(t+1)*ie,Me[1]=j[1],Me[2]=K[2]+(e+1)*ie;const i=be(t,e,fe,Me);if(i.success&&i.data){N.removeTile(N.getTileRefAt(t,e,0));const a=N.addTile(i.data,R.Module.DT_TILE_FREE_DATA,0);R.Detour.statusFailed(a.status)&&(I.log(R.Module.RC_LOG_WARNING,`Failed to add tile to nav mesh\\n\\ttx: ${t}, ty: ${e},status: ${X(a.status)} (${a.status})`),i.data.free())}}return I.stopTimer(R.Module.RC_TIMER_TEMP),L||W(),{success:!0,navMesh:N,intermediates:G}};export{Q as createDefaultTileCacheMeshProcess,U as dtIlog2,Z as dtNextPow2,q as generateSoloNavMesh,ee as generateTileCache,ie as generateTiledNavMesh,Y as getBoundingBox,j as soloNavMeshGeneratorConfigDefaults,J as tileCacheGeneratorConfigDefaults,te as tiledNavMeshGeneratorConfigDefaults};\n//# sourceMappingURL=index.mjs.map\n"],"names":["Y","t","i","a","x","y","z","l","e","length","r","s","o","n","Math","min","max","bbMin","toArray","bbMax","U","Number","Z","j","recastConfigDefaults","J","tileSize","expectedLayersPerTile","maxObstacles","Q","H","TileCacheMeshProcess","polyCount","set","te","F","L","O","type","buildContext","P","NavMesh","I","heightfield","f","compactHeightfield","_","contourSet","polyMesh","E","freePolyMesh","polyMeshDetail","D","destroy","navMesh","success","intermediates","error","$","G","N","Arrays","VertsArray","copy","W","B","V","TrisArray","K","X","minRegionArea","mergeRegionArea","detailSampleDist","cs","detailSampleMaxError","ch","width","height","q","TriAreasArray","resize","h","walkableSlopeAngle","d","walkableClimb","free","c","filterLowHangingWalkableObstacles","m","walkableHeight","g","u","b","buildCompactHeightfield","freeHeightfield","M","walkableRadius","buildDistanceField","S","borderSize","ee","w","p","maxSimplificationError","maxEdgeLen","R","Raw","Module","RC_CONTOUR_TESS_WALL_EDGES","C","allocPolyMesh","maxVertsPerPoly","ie","A","allocPolyMeshDetail","k","buildPolyMeshDetail","freeCompactHeightfield","npolys","areas","Recast","WALKABLE_AREA","setAreas","setFlags","ae","T","setPolyMeshCreateParams","setPolyMeshDetailCreateParams","setWalkableHeight","setWalkableRadius","setWalkableClimb","setCellSize","setCellHeight","setBuildBvTree","offMeshConnections","setOffMeshConnections","le","v","createNavMeshData","navMeshData","re","initSolo","RecastBuildContext","chunkyTriMesh","tileIntermediates","TileCache","heightfieldLayerSet","freeHeightfieldLayerSet","tileCache","calcGridSize","floor","se","oe","ne","create","orig","maxTiles","he","RecastLinearAllocator","de","RecastFastLZCompressor","ce","tileCacheMeshProcess","init","me","fromArray","ge","ue","be","fe","NavMeshParams","tileWidth","tileHeight","maxPolys","initTiled","Me","ye","tileX","tileY","set_bmin","set_bmax","createHeightfield","ChunkIdsArray","getChunksOverlappingRect","get_data","nodes","getNodeTris","filterWalkableLowHeightSpans","erodeWalkableArea","nlayers","TileCacheData","layers","dtTileCacheLayerHeader","magic","Detour","TILECACHE_MAGIC","version","TILECACHE_VERSION","tx","ty","tlayer","bmin","bmax","minx","maxx","miny","maxy","hmin","hmax","getHeightfieldLayerHeights","buildTileCacheLayer","statusFailed","push","tiles","addTile","status","log","RC_LOG_WARNING","buildNavMeshTilesAt","freePolyMeshDetail","createRcConfig","vec3","RC_LOG_ERROR","resetTimers","startTimer","RC_TIMER_TOTAL","RC_LOG_PROGRESS","maxTrisPerChunk","filterLedgeSpans","buildRegions","buildContours","buildPolyMesh","freeContourSet","setTileX","setTileY","nverts","data","RC_TIMER_TEMP","removeTile","getTileRefAt","DT_TILE_FREE_DATA","statusToReadableString","stopTimer"],"mappings":"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"}
|
package/generators.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{recastConfigDefaults as e,vec3 as t,RecastBuildContext as i,NavMesh as a,Arrays as l,createRcConfig as r,calcGridSize as s,allocHeightfield as o,createHeightfield as n,markWalkableTriangles as d,rasterizeTriangles as h,filterLowHangingWalkableObstacles as c,filterLedgeSpans as m,filterWalkableLowHeightSpans as g,allocCompactHeightfield as u,buildCompactHeightfield as b,freeHeightfield as f,erodeWalkableArea as S,buildDistanceField as w,buildRegions as M,allocContourSet as C,buildContours as y,Raw as R,allocPolyMesh as x,buildPolyMesh as p,allocPolyMeshDetail as A,buildPolyMeshDetail as k,freeCompactHeightfield as T,freeContourSet as _,NavMeshCreateParams as z,createNavMeshData as v,TileCacheMeshProcess as E,TileCache as H,DetourTileCacheParams as D,NavMeshParams as F,RecastChunkyTriMesh as L,statusToReadableString as P,freeHeightfieldLayerSet as O,cloneRcConfig as I,allocHeightfieldLayerSet as G,buildHeightfieldLayers as N,getHeightfieldLayerHeights as $,getHeightfieldLayerAreas as W,getHeightfieldLayerCons as B,buildTileCacheLayer as V}from"@recast-navigation/core";const K=(e,i)=>{const a={x:1/0,y:1/0,z:1/0},l={x:-1/0,y:-1/0,z:-1/0};for(let t=0;t<i.length;t++){const r=i[t],s=e[3*r],o=e[3*r+1],n=e[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:t.toArray(a),bbMax:t.toArray(l)}},X=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},Y=e=>(e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e),U={...e},Z=(e,t,E={},H=!1)=>{const D=new i,F={type:"solo",buildContext:D},L=new a,P=e=>(H||(F.heightfield&&(f(F.heightfield),F.heightfield=void 0),F.compactHeightfield&&(T(F.compactHeightfield),F.compactHeightfield=void 0),F.contourSet&&(_(F.contourSet),F.contourSet=void 0)),L.destroy(),{navMesh:void 0,success:!1,intermediates:F,error:e}),O=e,I=t.length,G=new l.VertsArray;G.copy(O,O.length);const N=t,$=t.length/3,W=new l.TrisArray;W.copy(N,N.length);const{bbMin:B,bbMax:V}=K(e,t),X=r({...U,...E});X.minRegionArea=X.minRegionArea*X.minRegionArea,X.mergeRegionArea=X.mergeRegionArea*X.mergeRegionArea,X.detailSampleDist=X.detailSampleDist<.9?0:X.cs*X.detailSampleDist,X.detailSampleMaxError=X.ch*X.detailSampleMaxError;const Y=s(B,V,X.cs);X.width=Y.width,X.height=Y.height;const Z=o();if(F.heightfield=Z,!n(D,Z,X.width,X.height,B,V,X.cs,X.ch))return P("Could not create heightfield");const j=new l.TriAreasArray;if(j.resize($),d(D,X.walkableSlopeAngle,G,I,W,$,j),!h(D,G,I,W,j,$,Z,X.walkableClimb))return P("Could not rasterize triangles");j.free(),c(D,X.walkableClimb,Z),m(D,X.walkableHeight,X.walkableClimb,Z),g(D,X.walkableHeight,Z);const q=u();if(F.compactHeightfield=q,!b(D,X.walkableHeight,X.walkableClimb,Z,q))return P("Failed to build compact data");if(H||(f(Z),F.heightfield=void 0),!S(D,X.walkableRadius,q))return P("Failed to erode walkable area");if(!w(D,q))return P("Failed to build distance field");if(!M(D,q,X.borderSize,X.minRegionArea,X.mergeRegionArea))return P("Failed to build regions");const J=C();if(F.contourSet=J,!y(D,q,X.maxSimplificationError,X.maxEdgeLen,J,R.Module.RC_CONTOUR_TESS_WALL_EDGES))return P("Failed to create contours");const Q=x();if(!p(D,J,X.maxVertsPerPoly,Q))return P("Failed to triangulate contours");const ee=A();if(!k(D,Q,q,X.detailSampleDist,X.detailSampleMaxError,ee))return P("Failed to build detail mesh");H||(T(q),F.compactHeightfield=void 0,_(J),F.contourSet=void 0);for(let e=0;e<Q.npolys();e++)Q.areas(e)==R.Recast.WALKABLE_AREA&&Q.setAreas(e,0),0==Q.areas(e)&&Q.setFlags(e,1);const te=new z;te.setPolyMeshCreateParams(Q),te.setPolyMeshDetailCreateParams(ee),te.setWalkableHeight(X.walkableHeight),te.setWalkableRadius(X.walkableRadius),te.setWalkableClimb(X.walkableClimb),te.setCellSize(X.cs),te.setCellHeight(X.ch),te.setBuildBvTree(!0),E.offMeshConnections&&te.setOffMeshConnections(E.offMeshConnections);const ie=v(te);if(!ie.success)return P("Failed to create Detour navmesh data");const{navMeshData:ae}=ie;return L.initSolo(ae)?{success:!0,navMesh:L,intermediates:F}:P("Failed to create Detour navmesh")},j={...e,tileSize:32,expectedLayersPerTile:4,maxObstacles:128},q=()=>new E(((e,t,i)=>{for(let a=0;a<e.polyCount();++a)t.set(a,0),i.set(a,1)})),J=(e,w,M={},C=!1)=>{const y=new i,x={type:"tilecache",buildContext:y,chunkyTriMesh:void 0,tileIntermediates:[]},p=new H,A=new a,k=()=>{if(!C)for(let e=0;e<x.tileIntermediates.length;e++){const t=x.tileIntermediates[e];t.heightfield&&(f(t.heightfield),t.heightfield=void 0),t.compactHeightfield&&(T(t.compactHeightfield),t.compactHeightfield=void 0),t.heightfieldLayerSet&&(O(t.heightfieldLayerSet),t.heightfieldLayerSet=void 0)}},_=e=>(k(),p.destroy(),A.destroy(),{success:!1,navMesh:void 0,tileCache:void 0,intermediates:x,error:e}),z=e,v=w.length,E=new l.VertsArray;E.copy(z,z.length);const P=w,U=w.length/3,Z=new l.TrisArray;Z.copy(P,P.length);const{bbMin:J,bbMax:Q}=K(e,w),{expectedLayersPerTile:ee,maxObstacles:te,...ie}={...j,...M},ae=r(ie),le=s(J,Q,ae.cs);ae.width=le.width,ae.height=le.height,ae.minRegionArea=ae.minRegionArea*ae.minRegionArea,ae.mergeRegionArea=ae.mergeRegionArea*ae.mergeRegionArea,ae.detailSampleDist=ae.detailSampleDist<.9?0:ae.cs*ae.detailSampleDist,ae.detailSampleMaxError=ae.ch*ae.detailSampleMaxError;const re=Math.floor(ae.tileSize),se=Math.floor((ae.width+re-1)/re),oe=Math.floor((ae.height+re-1)/re);ae.borderSize=ae.walkableRadius+3,ae.width=ae.tileSize+2*ae.borderSize,ae.height=ae.tileSize+2*ae.borderSize;const ne=D.create({orig:J,cs:ae.cs,ch:ae.ch,width:ae.tileSize,height:ae.tileSize,walkableHeight:ae.walkableHeight,walkableRadius:ae.walkableRadius,walkableClimb:ae.walkableClimb,maxSimplificationError:ae.maxSimplificationError,maxTiles:se*oe*ee,maxObstacles:te}),de=new R.RecastLinearAllocator(32e3),he=new R.RecastFastLZCompressor,ce=M.tileCacheMeshProcess??q();if(!p.init(ne,de,he,ce))return _("Failed to initialize tile cache");const me=t.fromArray(J);let ge=Math.min(Math.floor(X(Y(se*oe*ee))),14);ge>14&&(ge=14);const ue=1<<ge,be=1<<22-ge,fe=F.create({orig:me,tileWidth:ae.tileSize*ae.cs,tileHeight:ae.tileSize*ae.cs,maxTiles:ue,maxPolys:be});if(!A.initTiled(fe))return _("Failed to initialize tiled navmesh");const Se=new L;if(x.chunkyTriMesh=Se,!Se.init(E,Z,U,256))return _("Failed to build chunky triangle mesh");const we=(e,t)=>{const i={tileX:e,tileY:t},a=ae.tileSize*ae.cs,r=I(ae),s=[J[0]+e*a,J[1],J[2]+t*a],w=[J[0]+(e+1)*a,Q[1],J[2]+(t+1)*a];s[0]-=r.borderSize*r.cs,s[2]-=r.borderSize*r.cs,w[0]+=r.borderSize*r.cs,w[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,w[0]),r.set_bmax(1,w[1]),r.set_bmax(2,w[2]);const M=o();if(i.heightfield=M,!n(y,M,r.width,r.height,s,w,r.cs,r.ch))return{n:0};const p=[s[0],s[2]],A=[w[0],w[2]],k=new l.ChunkIdsArray;k.resize(512);const _=Se.getChunksOverlappingRect(p,A,k,512);if(0===_)return{n:0};for(let e=0;e<_;++e){const t=k.get_data(e),i=Se.nodes(t).n,a=Se.getNodeTris(t),s=new l.TriAreasArray;s.resize(i),d(y,r.walkableSlopeAngle,E,v,a,i,s);const o=h(y,E,v,a,s,i,M,r.walkableClimb);if(s.free(),!o)return{n:0}}c(y,ae.walkableClimb,M),m(y,ae.walkableHeight,ae.walkableClimb,M),g(y,ae.walkableHeight,M);const z=u();if(!b(y,ae.walkableHeight,ae.walkableClimb,M,z))return{n:0};if(C||(f(i.heightfield),i.heightfield=void 0),!S(y,ae.walkableRadius,z))return{n:0};const H=G();if(!N(y,z,ae.borderSize,ae.walkableHeight,H))return{n:0};C||(T(z),i.compactHeightfield=void 0);const D=[];for(let i=0;i<H.nlayers();i++){const a=new l.TileCacheData,r=H.layers(i),s=new R.dtTileCacheLayerHeader;s.magic=R.Detour.TILECACHE_MAGIC,s.version=R.Detour.TILECACHE_VERSION,s.tx=e,s.ty=t,s.tlayer=i;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 d=$(r),h=W(r),c=B(r),m=V(he,s,d,h,c,a);if(R.Detour.statusFailed(m))return{n:0};D.push(a)}return C||(O(H),i.heightfieldLayerSet=void 0),x.tileIntermediates.push(i),{n:D.length,tiles:D}};for(let e=0;e<oe;++e)for(let t=0;t<se;++t){const{n:i,tiles:a}=we(t,e);if(i>0&&a)for(let l=0;l<i;l++){const i=a[l],r=p.addTile(i);R.Detour.statusFailed(r.status)&&y.log(R.Module.RC_LOG_WARNING,`Failed to add tile to tile cache - tx: ${t}, ty: ${e}`)}}for(let e=0;e<oe;e++)for(let t=0;t<se;t++){const i=p.buildNavMeshTilesAt(t,e,A);if(R.Detour.statusFailed(i))return _(`Failed to build nav mesh tiles at ${t}, ${e}`)}return k(),{success:!0,tileCache:p,navMesh:A,intermediates:x}},Q={...e},ee=(e,E,H={},D=!1)=>{const O=new i,G={type:"tiled",buildContext:O,chunkyTriMesh:void 0,tileIntermediates:[]},N=new a,$=()=>{if(!D){for(let e=0;e<G.tileIntermediates.length;e++){const t=G.tileIntermediates[e];t.compactHeightfield&&T(t.compactHeightfield),t.heightfield&&f(t.heightfield),t.contourSet&&_(t.contourSet)}G.chunkyTriMesh&&(G.chunkyTriMesh=void 0)}},W=e=>($(),N.destroy(),{success:!1,navMesh:void 0,intermediates:G,error:e}),B=r({...Q,...H}),{bbMin:V,bbMax:U}=K(e,E),Z=s(V,U,B.cs);B.width=Z.width,B.height=Z.height,B.minRegionArea=B.minRegionArea*B.minRegionArea,B.mergeRegionArea=B.mergeRegionArea*B.mergeRegionArea,B.tileSize=Math.floor(B.tileSize),B.borderSize=B.walkableRadius+3,B.width=B.tileSize+2*B.borderSize,B.height=B.tileSize+2*B.borderSize,B.detailSampleDist=B.detailSampleDist<.9?0:B.cs*B.detailSampleDist,B.detailSampleMaxError=B.ch*B.detailSampleMaxError;const j=Math.floor(B.tileSize),q=Math.floor((Z.width+j-1)/j),J=Math.floor((Z.height+j-1)/j),ee=B.tileSize*B.cs,te=e,ie=E.length,ae=new l.VertsArray;ae.copy(te,te.length);const le=E,re=E.length/3,se=new l.TrisArray;se.copy(le,le.length);const oe=t.fromArray(V);let ne=Math.min(Math.floor(X(Y(q*J))),14);ne>14&&(ne=14);const de=1<<ne,he=1<<22-ne,ce=F.create({orig:oe,tileWidth:B.tileSize*B.cs,tileHeight:B.tileSize*B.cs,maxTiles:de,maxPolys:he});if(!N.initTiled(ce))return W("Could not init nav mesh for tiled use");const me=new L;if(G.chunkyTriMesh=me,!me.init(ae,se,re,256))return W("Failed to build chunky triangle mesh");const ge=(e,t,i,a)=>{const r=e=>(O.log(R.Module.RC_LOG_ERROR,e),{success:!1,error:e}),s={tileX:e,tileY:t};G.tileIntermediates.push(s);const E=I(B),F=[...i],L=[...a];F[0]-=E.borderSize*E.cs,F[2]-=E.borderSize*E.cs,L[0]+=E.borderSize*E.cs,L[2]+=E.borderSize*E.cs,E.set_bmin(0,F[0]),E.set_bmin(1,F[1]),E.set_bmin(2,F[2]),E.set_bmax(0,L[0]),E.set_bmax(1,L[1]),E.set_bmax(2,L[2]),O.resetTimers(),O.startTimer(R.Module.RC_TIMER_TOTAL),O.log(R.Module.RC_LOG_PROGRESS,`Building tile ${G.tileIntermediates.length} at x: ${e}, y: ${t}`),O.log(R.Module.RC_LOG_PROGRESS,` - ${B.width} x ${B.height} cells`),O.log(R.Module.RC_LOG_PROGRESS,` - ${ie/1e3}fK verts, ${re/1e3}K tris`);const P=o();if(s.heightfield=P,!n(O,P,E.width,E.height,F,L,E.cs,E.ch))return r("Could not create heightfield");(new l.TriAreasArray).resize(me.maxTrisPerChunk());const N=[F[0],F[2]],$=[L[0],L[2]],W=new l.ChunkIdsArray;W.resize(512);const V=me.getChunksOverlappingRect(N,$,W,512);if(0===V)return{success:!0};for(let e=0;e<V;++e){const t=W.get_data(e),i=me.nodes(t).n,a=me.getNodeTris(t),s=new l.TriAreasArray;s.resize(i),d(O,E.walkableSlopeAngle,ae,ie,a,i,s);const o=h(O,ae,ie,a,s,i,P,E.walkableClimb);if(s.free(),!o)return r("Could not rasterize triangles")}c(O,E.walkableClimb,P),m(O,E.walkableHeight,E.walkableClimb,P),g(O,E.walkableHeight,P);const K=u();if(s.compactHeightfield=K,!b(O,E.walkableHeight,E.walkableClimb,P,K))return r("Could not build compact heightfield");if(D||(f(s.heightfield),s.heightfield=void 0),!S(O,E.walkableRadius,K))return r("Could not erode walkable area");if(!w(O,K))return r("Failed to build distance field");if(!M(O,K,E.borderSize,E.minRegionArea,E.mergeRegionArea))return r("Failed to build regions");const X=C();if(s.contourSet=X,!y(O,K,E.maxSimplificationError,E.maxEdgeLen,X,R.Module.RC_CONTOUR_TESS_WALL_EDGES))return r("Failed to create contours");const Y=x();if(!p(O,X,E.maxVertsPerPoly,Y))return r("Failed to triangulate contours");const U=A();if(!k(O,Y,K,E.detailSampleDist,E.detailSampleMaxError,U))return r("Failed to build detail mesh");D||(T(K),s.compactHeightfield=void 0,_(X),s.contourSet=void 0);for(let e=0;e<Y.npolys();e++)Y.areas(e)==R.Recast.WALKABLE_AREA&&Y.setAreas(e,0),0==Y.areas(e)&&Y.setFlags(e,1);const Z=new z;Z.setPolyMeshCreateParams(Y),Z.setPolyMeshDetailCreateParams(U),Z.setWalkableHeight(E.walkableHeight),Z.setWalkableRadius(E.walkableRadius),Z.setWalkableClimb(E.walkableClimb),Z.setCellSize(E.cs),Z.setCellHeight(E.ch),Z.setBuildBvTree(!0),H.offMeshConnections&&Z.setOffMeshConnections(H.offMeshConnections),Z.setTileX(e),Z.setTileY(t);const j=v(Z);return j.success?(O.log(R.Module.RC_LOG_PROGRESS,`>> Polymesh: ${Y.nverts()} vertices ${Y.npolys()} polygons`),{success:!0,data:j.navMeshData}):r("Failed to create Detour navmesh data")};O.startTimer(R.Module.RC_TIMER_TEMP);const ue=[0,0,0],be=[0,0,0];for(let e=0;e<J;e++)for(let t=0;t<q;t++){ue[0]=V[0]+t*ee,ue[1]=V[1],ue[2]=V[2]+e*ee,be[0]=V[0]+(t+1)*ee,be[1]=U[1],be[2]=V[2]+(e+1)*ee;const i=ge(t,e,ue,be);if(i.success&&i.data){N.removeTile(N.getTileRefAt(t,e,0));const a=N.addTile(i.data,R.Module.DT_TILE_FREE_DATA,0);R.Detour.statusFailed(a.status)&&(O.log(R.Module.RC_LOG_WARNING,`Failed to add tile to nav mesh\n\ttx: ${t}, ty: ${e},status: ${P(a.status)} (${a.status})`),i.data.free())}}return O.stopTimer(R.Module.RC_TIMER_TEMP),D||$(),{success:!0,navMesh:N,intermediates:G}};export{q as createDefaultTileCacheMeshProcess,X as dtIlog2,Y as dtNextPow2,Z as generateSoloNavMesh,J as generateTileCache,ee as generateTiledNavMesh,K as getBoundingBox,U as soloNavMeshGeneratorConfigDefaults,j as tileCacheGeneratorConfigDefaults,Q as tiledNavMeshGeneratorConfigDefaults};
|
|
1
|
+
import{recastConfigDefaults as e,vec3 as t,RecastBuildContext as i,NavMesh as a,Arrays as l,createRcConfig as r,calcGridSize as s,allocHeightfield as o,createHeightfield as n,markWalkableTriangles as h,rasterizeTriangles as d,filterLowHangingWalkableObstacles as c,filterLedgeSpans as m,filterWalkableLowHeightSpans as g,allocCompactHeightfield as u,buildCompactHeightfield as b,freeHeightfield as f,erodeWalkableArea as M,buildDistanceField as S,buildRegions as y,allocContourSet as w,buildContours as p,Raw as C,allocPolyMesh as R,buildPolyMesh as x,allocPolyMeshDetail as A,buildPolyMeshDetail as k,freeCompactHeightfield as T,freeContourSet as _,NavMeshCreateParams as v,createNavMeshData as z,TileCacheMeshProcess as E,TileCache as D,DetourTileCacheParams as H,NavMeshParams as F,RecastChunkyTriMesh as L,statusToReadableString as P,freePolyMesh as O,freePolyMeshDetail as I,freeHeightfieldLayerSet as G,cloneRcConfig as N,allocHeightfieldLayerSet as $,buildHeightfieldLayers as W,getHeightfieldLayerHeights as B,getHeightfieldLayerAreas as V,getHeightfieldLayerCons as K,buildTileCacheLayer as X}from"@recast-navigation/core";const Y=(e,i)=>{const a={x:1/0,y:1/0,z:1/0},l={x:-1/0,y:-1/0,z:-1/0};for(let t=0;t<i.length;t++){const r=i[t],s=e[3*r],o=e[3*r+1],n=e[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:t.toArray(a),bbMax:t.toArray(l)}},U=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},Z=e=>(e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e),j={...e},q=(e,t,E={},D=!1)=>{const H=new i,F={type:"solo",buildContext:H},L=new a,P=e=>(D||(F.heightfield&&(f(F.heightfield),F.heightfield=void 0),F.compactHeightfield&&(T(F.compactHeightfield),F.compactHeightfield=void 0),F.contourSet&&(_(F.contourSet),F.contourSet=void 0),F.polyMesh&&(O(F.polyMesh),F.polyMesh=void 0),F.polyMeshDetail&&(I(F.polyMeshDetail),F.polyMeshDetail=void 0)),L.destroy(),{navMesh:void 0,success:!1,intermediates:F,error:e}),G=e,N=t.length,$=new l.VertsArray;$.copy(G,G.length);const W=t,B=t.length/3,V=new l.TrisArray;V.copy(W,W.length);const{bbMin:K,bbMax:X}=Y(e,t),U=r({...j,...E});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=s(K,X,U.cs);U.width=Z.width,U.height=Z.height;const q=o();if(F.heightfield=q,!n(H,q,U.width,U.height,K,X,U.cs,U.ch))return P("Could not create heightfield");const J=new l.TriAreasArray;if(J.resize(B),h(H,U.walkableSlopeAngle,$,N,V,B,J),!d(H,$,N,V,J,B,q,U.walkableClimb))return P("Could not rasterize triangles");J.free(),c(H,U.walkableClimb,q),m(H,U.walkableHeight,U.walkableClimb,q),g(H,U.walkableHeight,q);const Q=u();if(F.compactHeightfield=Q,!b(H,U.walkableHeight,U.walkableClimb,q,Q))return P("Failed to build compact data");if(D||(f(q),F.heightfield=void 0),!M(H,U.walkableRadius,Q))return P("Failed to erode walkable area");if(!S(H,Q))return P("Failed to build distance field");if(!y(H,Q,U.borderSize,U.minRegionArea,U.mergeRegionArea))return P("Failed to build regions");const ee=w();if(F.contourSet=ee,!p(H,Q,U.maxSimplificationError,U.maxEdgeLen,ee,C.Module.RC_CONTOUR_TESS_WALL_EDGES))return P("Failed to create contours");const te=R();if(F.polyMesh=te,!x(H,ee,U.maxVertsPerPoly,te))return P("Failed to triangulate contours");const ie=A();if(F.polyMeshDetail=ie,!k(H,te,Q,U.detailSampleDist,U.detailSampleMaxError,ie))return P("Failed to build detail mesh");D||(T(Q),F.compactHeightfield=void 0,_(ee),F.contourSet=void 0);for(let e=0;e<te.npolys();e++)te.areas(e)==C.Recast.WALKABLE_AREA&&te.setAreas(e,0),0==te.areas(e)&&te.setFlags(e,1);const ae=new v;ae.setPolyMeshCreateParams(te),ae.setPolyMeshDetailCreateParams(ie),ae.setWalkableHeight(U.walkableHeight),ae.setWalkableRadius(U.walkableRadius),ae.setWalkableClimb(U.walkableClimb),ae.setCellSize(U.cs),ae.setCellHeight(U.ch),ae.setBuildBvTree(!0),E.offMeshConnections&&ae.setOffMeshConnections(E.offMeshConnections);const le=z(ae);if(!le.success)return P("Failed to create Detour navmesh data");const{navMeshData:re}=le;return L.initSolo(re)?{success:!0,navMesh:L,intermediates:F}:P("Failed to create Detour navmesh")},J={...e,tileSize:32,expectedLayersPerTile:4,maxObstacles:128},Q=()=>new E(((e,t,i)=>{for(let a=0;a<e.polyCount();++a)t.set(a,0),i.set(a,1)})),ee=(e,S,y={},w=!1)=>{const p=new i,R={type:"tilecache",buildContext:p,chunkyTriMesh:void 0,tileIntermediates:[]},x=new D,A=new a,k=()=>{if(!w)for(let e=0;e<R.tileIntermediates.length;e++){const t=R.tileIntermediates[e];t.heightfield&&(f(t.heightfield),t.heightfield=void 0),t.compactHeightfield&&(T(t.compactHeightfield),t.compactHeightfield=void 0),t.heightfieldLayerSet&&(G(t.heightfieldLayerSet),t.heightfieldLayerSet=void 0)}},_=e=>(k(),x.destroy(),A.destroy(),{success:!1,navMesh:void 0,tileCache:void 0,intermediates:R,error:e}),v=e,z=S.length,E=new l.VertsArray;E.copy(v,v.length);const P=S,O=S.length/3,I=new l.TrisArray;I.copy(P,P.length);const{bbMin:j,bbMax:q}=Y(e,S),{expectedLayersPerTile:ee,maxObstacles:te,...ie}={...J,...y},ae=r(ie),le=s(j,q,ae.cs);ae.width=le.width,ae.height=le.height,ae.minRegionArea=ae.minRegionArea*ae.minRegionArea,ae.mergeRegionArea=ae.mergeRegionArea*ae.mergeRegionArea,ae.detailSampleDist=ae.detailSampleDist<.9?0:ae.cs*ae.detailSampleDist,ae.detailSampleMaxError=ae.ch*ae.detailSampleMaxError;const re=Math.floor(ae.tileSize),se=Math.floor((ae.width+re-1)/re),oe=Math.floor((ae.height+re-1)/re);ae.borderSize=ae.walkableRadius+3,ae.width=ae.tileSize+2*ae.borderSize,ae.height=ae.tileSize+2*ae.borderSize;const ne=H.create({orig:j,cs:ae.cs,ch:ae.ch,width:ae.tileSize,height:ae.tileSize,walkableHeight:ae.walkableHeight,walkableRadius:ae.walkableRadius,walkableClimb:ae.walkableClimb,maxSimplificationError:ae.maxSimplificationError,maxTiles:se*oe*ee,maxObstacles:te}),he=new C.RecastLinearAllocator(32e3),de=new C.RecastFastLZCompressor,ce=y.tileCacheMeshProcess??Q();if(!x.init(ne,he,de,ce))return _("Failed to initialize tile cache");const me=t.fromArray(j);let ge=Math.min(Math.floor(U(Z(se*oe*ee))),14);ge>14&&(ge=14);const ue=1<<ge,be=1<<22-ge,fe=F.create({orig:me,tileWidth:ae.tileSize*ae.cs,tileHeight:ae.tileSize*ae.cs,maxTiles:ue,maxPolys:be});if(!A.initTiled(fe))return _("Failed to initialize tiled navmesh");const Me=new L;if(R.chunkyTriMesh=Me,!Me.init(E,I,O,256))return _("Failed to build chunky triangle mesh");const Se=(e,t)=>{const i={tileX:e,tileY:t},a=ae.tileSize*ae.cs,r=N(ae),s=[j[0]+e*a,j[1],j[2]+t*a],S=[j[0]+(e+1)*a,q[1],j[2]+(t+1)*a];s[0]-=r.borderSize*r.cs,s[2]-=r.borderSize*r.cs,S[0]+=r.borderSize*r.cs,S[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,S[0]),r.set_bmax(1,S[1]),r.set_bmax(2,S[2]);const y=o();if(i.heightfield=y,!n(p,y,r.width,r.height,s,S,r.cs,r.ch))return{n:0};const x=[s[0],s[2]],A=[S[0],S[2]],k=new l.ChunkIdsArray;k.resize(512);const _=Me.getChunksOverlappingRect(x,A,k,512);if(0===_)return{n:0};for(let e=0;e<_;++e){const t=k.get_data(e),i=Me.nodes(t).n,a=Me.getNodeTris(t),s=new l.TriAreasArray;s.resize(i),h(p,r.walkableSlopeAngle,E,z,a,i,s);const o=d(p,E,z,a,s,i,y,r.walkableClimb);if(s.free(),!o)return{n:0}}c(p,ae.walkableClimb,y),m(p,ae.walkableHeight,ae.walkableClimb,y),g(p,ae.walkableHeight,y);const v=u();if(!b(p,ae.walkableHeight,ae.walkableClimb,y,v))return{n:0};if(w||(f(i.heightfield),i.heightfield=void 0),!M(p,ae.walkableRadius,v))return{n:0};const D=$();if(!W(p,v,ae.borderSize,ae.walkableHeight,D))return{n:0};w||(T(v),i.compactHeightfield=void 0);const H=[];for(let i=0;i<D.nlayers();i++){const a=new l.TileCacheData,r=D.layers(i),s=new C.dtTileCacheLayerHeader;s.magic=C.Detour.TILECACHE_MAGIC,s.version=C.Detour.TILECACHE_VERSION,s.tx=e,s.ty=t,s.tlayer=i;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=B(r),d=V(r),c=K(r),m=X(de,s,h,d,c,a);if(C.Detour.statusFailed(m))return{n:0};H.push(a)}return w||(G(D),i.heightfieldLayerSet=void 0),R.tileIntermediates.push(i),{n:H.length,tiles:H}};for(let e=0;e<oe;++e)for(let t=0;t<se;++t){const{n:i,tiles:a}=Se(t,e);if(i>0&&a)for(let l=0;l<i;l++){const i=a[l],r=x.addTile(i);C.Detour.statusFailed(r.status)&&p.log(C.Module.RC_LOG_WARNING,`Failed to add tile to tile cache - tx: ${t}, ty: ${e}`)}}for(let e=0;e<oe;e++)for(let t=0;t<se;t++){const i=x.buildNavMeshTilesAt(t,e,A);if(C.Detour.statusFailed(i))return _(`Failed to build nav mesh tiles at ${t}, ${e}`)}return k(),{success:!0,tileCache:x,navMesh:A,intermediates:R}},te={...e},ie=(e,E,D={},H=!1)=>{const G=new i,$={type:"tiled",buildContext:G,chunkyTriMesh:void 0,tileIntermediates:[]},W=new a,B=()=>{if(!H){for(let e=0;e<$.tileIntermediates.length;e++){const t=$.tileIntermediates[e];t.compactHeightfield&&T(t.compactHeightfield),t.heightfield&&f(t.heightfield),t.contourSet&&_(t.contourSet),t.polyMesh&&O(t.polyMesh),t.polyMeshDetail&&I(t.polyMeshDetail)}$.chunkyTriMesh&&($.chunkyTriMesh=void 0)}},V=e=>(B(),W.destroy(),{success:!1,navMesh:void 0,intermediates:$,error:e}),K=r({...te,...D}),{bbMin:X,bbMax:j}=Y(e,E),q=s(X,j,K.cs);K.width=q.width,K.height=q.height,K.minRegionArea=K.minRegionArea*K.minRegionArea,K.mergeRegionArea=K.mergeRegionArea*K.mergeRegionArea,K.tileSize=Math.floor(K.tileSize),K.borderSize=K.walkableRadius+3,K.width=K.tileSize+2*K.borderSize,K.height=K.tileSize+2*K.borderSize,K.detailSampleDist=K.detailSampleDist<.9?0:K.cs*K.detailSampleDist,K.detailSampleMaxError=K.ch*K.detailSampleMaxError;const J=Math.floor(K.tileSize),Q=Math.floor((q.width+J-1)/J),ee=Math.floor((q.height+J-1)/J),ie=K.tileSize*K.cs,ae=e,le=E.length,re=new l.VertsArray;re.copy(ae,ae.length);const se=E,oe=E.length/3,ne=new l.TrisArray;ne.copy(se,se.length);const he=t.fromArray(X);let de=Math.min(Math.floor(U(Z(Q*ee))),14);de>14&&(de=14);const ce=1<<de,me=1<<22-de,ge=F.create({orig:he,tileWidth:K.tileSize*K.cs,tileHeight:K.tileSize*K.cs,maxTiles:ce,maxPolys:me});if(!W.initTiled(ge))return V("Could not init nav mesh for tiled use");const ue=new L;if($.chunkyTriMesh=ue,!ue.init(re,ne,oe,256))return V("Failed to build chunky triangle mesh");const be=(e,t,i,a)=>{const r=e=>(G.log(C.Module.RC_LOG_ERROR,e),{success:!1,error:e}),s={tileX:e,tileY:t};$.tileIntermediates.push(s);const E=N(K),F=[...i],L=[...a];F[0]-=E.borderSize*E.cs,F[2]-=E.borderSize*E.cs,L[0]+=E.borderSize*E.cs,L[2]+=E.borderSize*E.cs,E.set_bmin(0,F[0]),E.set_bmin(1,F[1]),E.set_bmin(2,F[2]),E.set_bmax(0,L[0]),E.set_bmax(1,L[1]),E.set_bmax(2,L[2]),G.resetTimers(),G.startTimer(C.Module.RC_TIMER_TOTAL),G.log(C.Module.RC_LOG_PROGRESS,`Building tile ${$.tileIntermediates.length} at x: ${e}, y: ${t}`),G.log(C.Module.RC_LOG_PROGRESS,` - ${K.width} x ${K.height} cells`),G.log(C.Module.RC_LOG_PROGRESS,` - ${le/1e3}fK verts, ${oe/1e3}K tris`);const P=o();if(s.heightfield=P,!n(G,P,E.width,E.height,F,L,E.cs,E.ch))return r("Could not create heightfield");(new l.TriAreasArray).resize(ue.maxTrisPerChunk());const O=[F[0],F[2]],I=[L[0],L[2]],W=new l.ChunkIdsArray;W.resize(512);const B=ue.getChunksOverlappingRect(O,I,W,512);if(0===B)return{success:!0};for(let e=0;e<B;++e){const t=W.get_data(e),i=ue.nodes(t).n,a=ue.getNodeTris(t),s=new l.TriAreasArray;s.resize(i),h(G,E.walkableSlopeAngle,re,le,a,i,s);const o=d(G,re,le,a,s,i,P,E.walkableClimb);if(s.free(),!o)return r("Could not rasterize triangles")}c(G,E.walkableClimb,P),m(G,E.walkableHeight,E.walkableClimb,P),g(G,E.walkableHeight,P);const V=u();if(s.compactHeightfield=V,!b(G,E.walkableHeight,E.walkableClimb,P,V))return r("Could not build compact heightfield");if(H||(f(s.heightfield),s.heightfield=void 0),!M(G,E.walkableRadius,V))return r("Could not erode walkable area");if(!S(G,V))return r("Failed to build distance field");if(!y(G,V,E.borderSize,E.minRegionArea,E.mergeRegionArea))return r("Failed to build regions");const X=w();if(s.contourSet=X,!p(G,V,E.maxSimplificationError,E.maxEdgeLen,X,C.Module.RC_CONTOUR_TESS_WALL_EDGES))return r("Failed to create contours");const Y=R();if(s.polyMesh=Y,!x(G,X,E.maxVertsPerPoly,Y))return r("Failed to triangulate contours");const U=A();if(s.polyMeshDetail=U,!k(G,Y,V,E.detailSampleDist,E.detailSampleMaxError,U))return r("Failed to build detail mesh");H||(T(V),s.compactHeightfield=void 0,_(X),s.contourSet=void 0);for(let e=0;e<Y.npolys();e++)Y.areas(e)==C.Recast.WALKABLE_AREA&&Y.setAreas(e,0),0==Y.areas(e)&&Y.setFlags(e,1);const Z=new v;Z.setPolyMeshCreateParams(Y),Z.setPolyMeshDetailCreateParams(U),Z.setWalkableHeight(E.walkableHeight),Z.setWalkableRadius(E.walkableRadius),Z.setWalkableClimb(E.walkableClimb),Z.setCellSize(E.cs),Z.setCellHeight(E.ch),Z.setBuildBvTree(!0),D.offMeshConnections&&Z.setOffMeshConnections(D.offMeshConnections),Z.setTileX(e),Z.setTileY(t);const j=z(Z);return j.success?(G.log(C.Module.RC_LOG_PROGRESS,`>> Polymesh: ${Y.nverts()} vertices ${Y.npolys()} polygons`),{success:!0,data:j.navMeshData}):r("Failed to create Detour navmesh data")};G.startTimer(C.Module.RC_TIMER_TEMP);const fe=[0,0,0],Me=[0,0,0];for(let e=0;e<ee;e++)for(let t=0;t<Q;t++){fe[0]=X[0]+t*ie,fe[1]=X[1],fe[2]=X[2]+e*ie,Me[0]=X[0]+(t+1)*ie,Me[1]=j[1],Me[2]=X[2]+(e+1)*ie;const i=be(t,e,fe,Me);if(i.success&&i.data){W.removeTile(W.getTileRefAt(t,e,0));const a=W.addTile(i.data,C.Module.DT_TILE_FREE_DATA,0);C.Detour.statusFailed(a.status)&&(G.log(C.Module.RC_LOG_WARNING,`Failed to add tile to nav mesh\n\ttx: ${t}, ty: ${e},status: ${P(a.status)} (${a.status})`),i.data.free())}}return G.stopTimer(C.Module.RC_TIMER_TEMP),H||B(),{success:!0,navMesh:W,intermediates:$}};export{Q as createDefaultTileCacheMeshProcess,U as dtIlog2,Z as dtNextPow2,q as generateSoloNavMesh,ee as generateTileCache,ie as generateTiledNavMesh,Y as getBoundingBox,j as soloNavMeshGeneratorConfigDefaults,J as tileCacheGeneratorConfigDefaults,te as tiledNavMeshGeneratorConfigDefaults};
|
|
2
2
|
//# sourceMappingURL=generators.mjs.map
|
package/generators.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generators.mjs","sources":["../recast-navigation-generators/dist/index.mjs"],"sourcesContent":["import{vec3 as e,recastConfigDefaults as t,RecastBuildContext as i,NavMesh as a,Arrays as l,createRcConfig as r,calcGridSize as s,allocHeightfield as o,createHeightfield as n,markWalkableTriangles as d,rasterizeTriangles as h,filterLowHangingWalkableObstacles as c,filterLedgeSpans as m,filterWalkableLowHeightSpans as g,allocCompactHeightfield as u,buildCompactHeightfield as b,freeHeightfield as f,erodeWalkableArea as S,buildDistanceField as w,buildRegions as M,allocContourSet as y,buildContours as R,Raw as C,allocPolyMesh as x,buildPolyMesh as p,allocPolyMeshDetail as A,buildPolyMeshDetail as k,freeCompactHeightfield as _,freeContourSet as z,NavMeshCreateParams as T,createNavMeshData as v,TileCacheMeshProcess as E,TileCache as H,DetourTileCacheParams as F,NavMeshParams as L,RecastChunkyTriMesh as D,freeHeightfieldLayerSet as O,cloneRcConfig as P,allocHeightfieldLayerSet as I,buildHeightfieldLayers as $,getHeightfieldLayerHeights as G,getHeightfieldLayerAreas as N,getHeightfieldLayerCons as W,buildTileCacheLayer as B,statusToReadableString as V}from\"@recast-navigation/core\";const K=(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)}},X=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},Y=e=>(e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e),U={...t},Z=(e,t,E={},H=!1)=>{const F=new i,L={type:\"solo\",buildContext:F},D=new a,O=e=>(H||(L.heightfield&&(f(L.heightfield),L.heightfield=void 0),L.compactHeightfield&&(_(L.compactHeightfield),L.compactHeightfield=void 0),L.contourSet&&(z(L.contourSet),L.contourSet=void 0)),D.destroy(),{navMesh:void 0,success:!1,intermediates:L,error:e}),P=e,I=t.length,$=new l.VertsArray;$.copy(P,P.length);const G=t,N=t.length/3,W=new l.TrisArray;W.copy(G,G.length);const{bbMin:B,bbMax:V}=K(e,t),X=r({...U,...E});X.minRegionArea=X.minRegionArea*X.minRegionArea,X.mergeRegionArea=X.mergeRegionArea*X.mergeRegionArea,X.detailSampleDist=X.detailSampleDist<.9?0:X.cs*X.detailSampleDist,X.detailSampleMaxError=X.ch*X.detailSampleMaxError;const Y=s(B,V,X.cs);X.width=Y.width,X.height=Y.height;const Z=o();if(L.heightfield=Z,!n(F,Z,X.width,X.height,B,V,X.cs,X.ch))return O(\"Could not create heightfield\");const j=new l.TriAreasArray;if(j.resize(N),d(F,X.walkableSlopeAngle,$,I,W,N,j),!h(F,$,I,W,j,N,Z,X.walkableClimb))return O(\"Could not rasterize triangles\");j.free(),c(F,X.walkableClimb,Z),m(F,X.walkableHeight,X.walkableClimb,Z),g(F,X.walkableHeight,Z);const q=u();if(L.compactHeightfield=q,!b(F,X.walkableHeight,X.walkableClimb,Z,q))return O(\"Failed to build compact data\");if(H||(f(Z),L.heightfield=void 0),!S(F,X.walkableRadius,q))return O(\"Failed to erode walkable area\");if(!w(F,q))return O(\"Failed to build distance field\");if(!M(F,q,X.borderSize,X.minRegionArea,X.mergeRegionArea))return O(\"Failed to build regions\");const J=y();if(L.contourSet=J,!R(F,q,X.maxSimplificationError,X.maxEdgeLen,J,C.Module.RC_CONTOUR_TESS_WALL_EDGES))return O(\"Failed to create contours\");const Q=x();if(!p(F,J,X.maxVertsPerPoly,Q))return O(\"Failed to triangulate contours\");const ee=A();if(!k(F,Q,q,X.detailSampleDist,X.detailSampleMaxError,ee))return O(\"Failed to build detail mesh\");H||(_(q),L.compactHeightfield=void 0,z(J),L.contourSet=void 0);for(let e=0;e<Q.npolys();e++)Q.areas(e)==C.Recast.WALKABLE_AREA&&Q.setAreas(e,0),0==Q.areas(e)&&Q.setFlags(e,1);const te=new T;te.setPolyMeshCreateParams(Q),te.setPolyMeshDetailCreateParams(ee),te.setWalkableHeight(X.walkableHeight),te.setWalkableRadius(X.walkableRadius),te.setWalkableClimb(X.walkableClimb),te.setCellSize(X.cs),te.setCellHeight(X.ch),te.setBuildBvTree(!0),E.offMeshConnections&&te.setOffMeshConnections(E.offMeshConnections);const ie=v(te);if(!ie.success)return O(\"Failed to create Detour navmesh data\");const{navMeshData:ae}=ie;return D.initSolo(ae)?{success:!0,navMesh:D,intermediates:L}:O(\"Failed to create Detour navmesh\")},j={...t,tileSize:32,expectedLayersPerTile:4,maxObstacles:128},q=()=>new E(((e,t,i)=>{for(let a=0;a<e.polyCount();++a)t.set(a,0),i.set(a,1)})),J=(t,w,M={},y=!1)=>{const R=new i,x={type:\"tilecache\",buildContext:R,chunkyTriMesh:void 0,tileIntermediates:[]},p=new H,A=new a,k=()=>{if(!y)for(let e=0;e<x.tileIntermediates.length;e++){const t=x.tileIntermediates[e];t.heightfield&&(f(t.heightfield),t.heightfield=void 0),t.compactHeightfield&&(_(t.compactHeightfield),t.compactHeightfield=void 0),t.heightfieldLayerSet&&(O(t.heightfieldLayerSet),t.heightfieldLayerSet=void 0)}},z=e=>(k(),p.destroy(),A.destroy(),{success:!1,navMesh:void 0,tileCache:void 0,intermediates:x,error:e}),T=t,v=w.length,E=new l.VertsArray;E.copy(T,T.length);const V=w,U=w.length/3,Z=new l.TrisArray;Z.copy(V,V.length);const{bbMin:J,bbMax:Q}=K(t,w),{expectedLayersPerTile:ee,maxObstacles:te,...ie}={...j,...M},ae=r(ie),le=s(J,Q,ae.cs);ae.width=le.width,ae.height=le.height,ae.minRegionArea=ae.minRegionArea*ae.minRegionArea,ae.mergeRegionArea=ae.mergeRegionArea*ae.mergeRegionArea,ae.detailSampleDist=ae.detailSampleDist<.9?0:ae.cs*ae.detailSampleDist,ae.detailSampleMaxError=ae.ch*ae.detailSampleMaxError;const re=Math.floor(ae.tileSize),se=Math.floor((ae.width+re-1)/re),oe=Math.floor((ae.height+re-1)/re);ae.borderSize=ae.walkableRadius+3,ae.width=ae.tileSize+2*ae.borderSize,ae.height=ae.tileSize+2*ae.borderSize;const ne=F.create({orig:J,cs:ae.cs,ch:ae.ch,width:ae.tileSize,height:ae.tileSize,walkableHeight:ae.walkableHeight,walkableRadius:ae.walkableRadius,walkableClimb:ae.walkableClimb,maxSimplificationError:ae.maxSimplificationError,maxTiles:se*oe*ee,maxObstacles:te}),de=new C.RecastLinearAllocator(32e3),he=new C.RecastFastLZCompressor,ce=M.tileCacheMeshProcess??q();if(!p.init(ne,de,he,ce))return z(\"Failed to initialize tile cache\");const me=e.fromArray(J);let ge=Math.min(Math.floor(X(Y(se*oe*ee))),14);ge>14&&(ge=14);const ue=1<<ge,be=1<<22-ge,fe=L.create({orig:me,tileWidth:ae.tileSize*ae.cs,tileHeight:ae.tileSize*ae.cs,maxTiles:ue,maxPolys:be});if(!A.initTiled(fe))return z(\"Failed to initialize tiled navmesh\");const Se=new D;if(x.chunkyTriMesh=Se,!Se.init(E,Z,U,256))return z(\"Failed to build chunky triangle mesh\");const we=(e,t)=>{const i={tileX:e,tileY:t},a=ae.tileSize*ae.cs,r=P(ae),s=[J[0]+e*a,J[1],J[2]+t*a],w=[J[0]+(e+1)*a,Q[1],J[2]+(t+1)*a];s[0]-=r.borderSize*r.cs,s[2]-=r.borderSize*r.cs,w[0]+=r.borderSize*r.cs,w[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,w[0]),r.set_bmax(1,w[1]),r.set_bmax(2,w[2]);const M=o();if(i.heightfield=M,!n(R,M,r.width,r.height,s,w,r.cs,r.ch))return{n:0};const p=[s[0],s[2]],A=[w[0],w[2]],k=new l.ChunkIdsArray;k.resize(512);const z=Se.getChunksOverlappingRect(p,A,k,512);if(0===z)return{n:0};for(let e=0;e<z;++e){const t=k.get_data(e),i=Se.nodes(t).n,a=Se.getNodeTris(t),s=new l.TriAreasArray;s.resize(i),d(R,r.walkableSlopeAngle,E,v,a,i,s);const o=h(R,E,v,a,s,i,M,r.walkableClimb);if(s.free(),!o)return{n:0}}c(R,ae.walkableClimb,M),m(R,ae.walkableHeight,ae.walkableClimb,M),g(R,ae.walkableHeight,M);const T=u();if(!b(R,ae.walkableHeight,ae.walkableClimb,M,T))return{n:0};if(y||(f(i.heightfield),i.heightfield=void 0),!S(R,ae.walkableRadius,T))return{n:0};const H=I();if(!$(R,T,ae.borderSize,ae.walkableHeight,H))return{n:0};y||(_(T),i.compactHeightfield=void 0);const F=[];for(let i=0;i<H.nlayers();i++){const a=new l.TileCacheData,r=H.layers(i),s=new C.dtTileCacheLayerHeader;s.magic=C.Detour.TILECACHE_MAGIC,s.version=C.Detour.TILECACHE_VERSION,s.tx=e,s.ty=t,s.tlayer=i;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 d=G(r),h=N(r),c=W(r),m=B(he,s,d,h,c,a);if(C.Detour.statusFailed(m))return{n:0};F.push(a)}return y||(O(H),i.heightfieldLayerSet=void 0),x.tileIntermediates.push(i),{n:F.length,tiles:F}};for(let e=0;e<oe;++e)for(let t=0;t<se;++t){const{n:i,tiles:a}=we(t,e);if(i>0&&a)for(let l=0;l<i;l++){const i=a[l],r=p.addTile(i);C.Detour.statusFailed(r.status)&&R.log(C.Module.RC_LOG_WARNING,`Failed to add tile to tile cache - tx: ${t}, ty: ${e}`)}}for(let e=0;e<oe;e++)for(let t=0;t<se;t++){const i=p.buildNavMeshTilesAt(t,e,A);if(C.Detour.statusFailed(i))return z(`Failed to build nav mesh tiles at ${t}, ${e}`)}return k(),{success:!0,tileCache:p,navMesh:A,intermediates:x}},Q={...t},ee=(t,E,H={},F=!1)=>{const O=new i,I={type:\"tiled\",buildContext:O,chunkyTriMesh:void 0,tileIntermediates:[]},$=new a,G=()=>{if(!F){for(let e=0;e<I.tileIntermediates.length;e++){const t=I.tileIntermediates[e];t.compactHeightfield&&_(t.compactHeightfield),t.heightfield&&f(t.heightfield),t.contourSet&&z(t.contourSet)}I.chunkyTriMesh&&(I.chunkyTriMesh=void 0)}},N=e=>(G(),$.destroy(),{success:!1,navMesh:void 0,intermediates:I,error:e}),W=r({...Q,...H}),{bbMin:B,bbMax:U}=K(t,E),Z=s(B,U,W.cs);W.width=Z.width,W.height=Z.height,W.minRegionArea=W.minRegionArea*W.minRegionArea,W.mergeRegionArea=W.mergeRegionArea*W.mergeRegionArea,W.tileSize=Math.floor(W.tileSize),W.borderSize=W.walkableRadius+3,W.width=W.tileSize+2*W.borderSize,W.height=W.tileSize+2*W.borderSize,W.detailSampleDist=W.detailSampleDist<.9?0:W.cs*W.detailSampleDist,W.detailSampleMaxError=W.ch*W.detailSampleMaxError;const j=Math.floor(W.tileSize),q=Math.floor((Z.width+j-1)/j),J=Math.floor((Z.height+j-1)/j),ee=W.tileSize*W.cs,te=t,ie=E.length,ae=new l.VertsArray;ae.copy(te,te.length);const le=E,re=E.length/3,se=new l.TrisArray;se.copy(le,le.length);const oe=e.fromArray(B);let ne=Math.min(Math.floor(X(Y(q*J))),14);ne>14&&(ne=14);const de=1<<ne,he=1<<22-ne,ce=L.create({orig:oe,tileWidth:W.tileSize*W.cs,tileHeight:W.tileSize*W.cs,maxTiles:de,maxPolys:he});if(!$.initTiled(ce))return N(\"Could not init nav mesh for tiled use\");const me=new D;if(I.chunkyTriMesh=me,!me.init(ae,se,re,256))return N(\"Failed to build chunky triangle mesh\");const ge=(e,t,i,a)=>{const r=e=>(O.log(C.Module.RC_LOG_ERROR,e),{success:!1,error:e}),s={tileX:e,tileY:t};I.tileIntermediates.push(s);const E=P(W),L=[...i],D=[...a];L[0]-=E.borderSize*E.cs,L[2]-=E.borderSize*E.cs,D[0]+=E.borderSize*E.cs,D[2]+=E.borderSize*E.cs,E.set_bmin(0,L[0]),E.set_bmin(1,L[1]),E.set_bmin(2,L[2]),E.set_bmax(0,D[0]),E.set_bmax(1,D[1]),E.set_bmax(2,D[2]),O.resetTimers(),O.startTimer(C.Module.RC_TIMER_TOTAL),O.log(C.Module.RC_LOG_PROGRESS,`Building tile ${I.tileIntermediates.length} at x: ${e}, y: ${t}`),O.log(C.Module.RC_LOG_PROGRESS,` - ${W.width} x ${W.height} cells`),O.log(C.Module.RC_LOG_PROGRESS,` - ${ie/1e3}fK verts, ${re/1e3}K tris`);const $=o();if(s.heightfield=$,!n(O,$,E.width,E.height,L,D,E.cs,E.ch))return r(\"Could not create heightfield\");(new l.TriAreasArray).resize(me.maxTrisPerChunk());const G=[L[0],L[2]],N=[D[0],D[2]],B=new l.ChunkIdsArray;B.resize(512);const V=me.getChunksOverlappingRect(G,N,B,512);if(0===V)return{success:!0};for(let e=0;e<V;++e){const t=B.get_data(e),i=me.nodes(t).n,a=me.getNodeTris(t),s=new l.TriAreasArray;s.resize(i),d(O,E.walkableSlopeAngle,ae,ie,a,i,s);const o=h(O,ae,ie,a,s,i,$,E.walkableClimb);if(s.free(),!o)return r(\"Could not rasterize triangles\")}c(O,E.walkableClimb,$),m(O,E.walkableHeight,E.walkableClimb,$),g(O,E.walkableHeight,$);const K=u();if(s.compactHeightfield=K,!b(O,E.walkableHeight,E.walkableClimb,$,K))return r(\"Could not build compact heightfield\");if(F||(f(s.heightfield),s.heightfield=void 0),!S(O,E.walkableRadius,K))return r(\"Could not erode walkable area\");if(!w(O,K))return r(\"Failed to build distance field\");if(!M(O,K,E.borderSize,E.minRegionArea,E.mergeRegionArea))return r(\"Failed to build regions\");const X=y();if(s.contourSet=X,!R(O,K,E.maxSimplificationError,E.maxEdgeLen,X,C.Module.RC_CONTOUR_TESS_WALL_EDGES))return r(\"Failed to create contours\");const Y=x();if(!p(O,X,E.maxVertsPerPoly,Y))return r(\"Failed to triangulate contours\");const U=A();if(!k(O,Y,K,E.detailSampleDist,E.detailSampleMaxError,U))return r(\"Failed to build detail mesh\");F||(_(K),s.compactHeightfield=void 0,z(X),s.contourSet=void 0);for(let e=0;e<Y.npolys();e++)Y.areas(e)==C.Recast.WALKABLE_AREA&&Y.setAreas(e,0),0==Y.areas(e)&&Y.setFlags(e,1);const Z=new T;Z.setPolyMeshCreateParams(Y),Z.setPolyMeshDetailCreateParams(U),Z.setWalkableHeight(E.walkableHeight),Z.setWalkableRadius(E.walkableRadius),Z.setWalkableClimb(E.walkableClimb),Z.setCellSize(E.cs),Z.setCellHeight(E.ch),Z.setBuildBvTree(!0),H.offMeshConnections&&Z.setOffMeshConnections(H.offMeshConnections),Z.setTileX(e),Z.setTileY(t);const j=v(Z);return j.success?(O.log(C.Module.RC_LOG_PROGRESS,`>> Polymesh: ${Y.nverts()} vertices ${Y.npolys()} polygons`),{success:!0,data:j.navMeshData}):r(\"Failed to create Detour navmesh data\")};O.startTimer(C.Module.RC_TIMER_TEMP);const ue=[0,0,0],be=[0,0,0];for(let e=0;e<J;e++)for(let t=0;t<q;t++){ue[0]=B[0]+t*ee,ue[1]=B[1],ue[2]=B[2]+e*ee,be[0]=B[0]+(t+1)*ee,be[1]=U[1],be[2]=B[2]+(e+1)*ee;const i=ge(t,e,ue,be);if(i.success&&i.data){$.removeTile($.getTileRefAt(t,e,0));const a=$.addTile(i.data,C.Module.DT_TILE_FREE_DATA,0);C.Detour.statusFailed(a.status)&&(O.log(C.Module.RC_LOG_WARNING,`Failed to add tile to nav mesh\\n\\ttx: ${t}, ty: ${e},status: ${V(a.status)} (${a.status})`),i.data.free())}}return O.stopTimer(C.Module.RC_TIMER_TEMP),F||G(),{success:!0,navMesh:$,intermediates:I}};export{q as createDefaultTileCacheMeshProcess,X as dtIlog2,Y as dtNextPow2,Z as generateSoloNavMesh,J as generateTileCache,ee as generateTiledNavMesh,K as getBoundingBox,U as soloNavMeshGeneratorConfigDefaults,j as tileCacheGeneratorConfigDefaults,Q as tiledNavMeshGeneratorConfigDefaults};\n//# sourceMappingURL=index.mjs.map\n"],"names":["K","t","i","a","x","y","z","l","e","length","r","s","o","n","Math","min","max","bbMin","toArray","bbMax","X","Number","Y","U","Z","E","H","F","L","type","buildContext","D","O","heightfield","f","compactHeightfield","_","contourSet","destroy","navMesh","success","intermediates","error","P","I","$","VertsArray","copy","G","N","W","TrisArray","B","V","minRegionArea","mergeRegionArea","detailSampleDist","cs","detailSampleMaxError","ch","width","height","j","TriAreasArray","resize","d","walkableSlopeAngle","h","walkableClimb","free","c","m","walkableHeight","g","q","u","b","S","walkableRadius","w","M","borderSize","J","R","maxSimplificationError","maxEdgeLen","C","Module","RC_CONTOUR_TESS_WALL_EDGES","Q","p","maxVertsPerPoly","ee","A","k","npolys","areas","Recast","WALKABLE_AREA","setAreas","setFlags","te","T","setPolyMeshCreateParams","setPolyMeshDetailCreateParams","setWalkableHeight","setWalkableRadius","setWalkableClimb","setCellSize","setCellHeight","setBuildBvTree","offMeshConnections","setOffMeshConnections","ie","v","navMeshData","ae","initSolo","tileSize","expectedLayersPerTile","maxObstacles","polyCount","set","chunkyTriMesh","tileIntermediates","heightfieldLayerSet","tileCache","le","re","floor","se","oe","ne","create","orig","maxTiles","de","RecastLinearAllocator","he","RecastFastLZCompressor","ce","tileCacheMeshProcess","init","me","fromArray","ge","ue","be","fe","tileWidth","tileHeight","maxPolys","initTiled","Se","we","tileX","tileY","set_bmin","set_bmax","ChunkIdsArray","getChunksOverlappingRect","get_data","nodes","getNodeTris","nlayers","TileCacheData","layers","dtTileCacheLayerHeader","magic","Detour","TILECACHE_MAGIC","version","TILECACHE_VERSION","tx","ty","tlayer","bmin","bmax","minx","maxx","miny","maxy","hmin","hmax","statusFailed","push","tiles","addTile","status","log","RC_LOG_WARNING","buildNavMeshTilesAt","RC_LOG_ERROR","resetTimers","startTimer","RC_TIMER_TOTAL","RC_LOG_PROGRESS","maxTrisPerChunk","setTileX","setTileY","nverts","data","RC_TIMER_TEMP","removeTile","getTileRefAt","DT_TILE_FREE_DATA","stopTimer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generators.mjs","sources":["../recast-navigation-generators/dist/index.mjs"],"sourcesContent":["import{vec3 as e,recastConfigDefaults as t,RecastBuildContext as i,NavMesh as a,Arrays as l,createRcConfig as r,calcGridSize as s,allocHeightfield as o,createHeightfield as n,markWalkableTriangles as h,rasterizeTriangles as d,filterLowHangingWalkableObstacles as c,filterLedgeSpans as m,filterWalkableLowHeightSpans as g,allocCompactHeightfield as u,buildCompactHeightfield as b,freeHeightfield as f,erodeWalkableArea as M,buildDistanceField as y,buildRegions as S,allocContourSet as w,buildContours as p,Raw as R,allocPolyMesh as C,buildPolyMesh as x,allocPolyMeshDetail as A,buildPolyMeshDetail as k,freeCompactHeightfield as _,freeContourSet as z,NavMeshCreateParams as T,createNavMeshData as v,freePolyMesh as E,freePolyMeshDetail as D,TileCacheMeshProcess as H,TileCache as F,DetourTileCacheParams as L,NavMeshParams as O,RecastChunkyTriMesh as P,freeHeightfieldLayerSet as I,cloneRcConfig as $,allocHeightfieldLayerSet as G,buildHeightfieldLayers as N,getHeightfieldLayerHeights as W,getHeightfieldLayerAreas as B,getHeightfieldLayerCons as V,buildTileCacheLayer as K,statusToReadableString as X}from\"@recast-navigation/core\";const Y=(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)}},U=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},Z=e=>(e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e),j={...t},q=(e,t,H={},F=!1)=>{const L=new i,O={type:\"solo\",buildContext:L},P=new a,I=e=>(F||(O.heightfield&&(f(O.heightfield),O.heightfield=void 0),O.compactHeightfield&&(_(O.compactHeightfield),O.compactHeightfield=void 0),O.contourSet&&(z(O.contourSet),O.contourSet=void 0),O.polyMesh&&(E(O.polyMesh),O.polyMesh=void 0),O.polyMeshDetail&&(D(O.polyMeshDetail),O.polyMeshDetail=void 0)),P.destroy(),{navMesh:void 0,success:!1,intermediates:O,error:e}),$=e,G=t.length,N=new l.VertsArray;N.copy($,$.length);const W=t,B=t.length/3,V=new l.TrisArray;V.copy(W,W.length);const{bbMin:K,bbMax:X}=Y(e,t),U=r({...j,...H});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=s(K,X,U.cs);U.width=Z.width,U.height=Z.height;const q=o();if(O.heightfield=q,!n(L,q,U.width,U.height,K,X,U.cs,U.ch))return I(\"Could not create heightfield\");const J=new l.TriAreasArray;if(J.resize(B),h(L,U.walkableSlopeAngle,N,G,V,B,J),!d(L,N,G,V,J,B,q,U.walkableClimb))return I(\"Could not rasterize triangles\");J.free(),c(L,U.walkableClimb,q),m(L,U.walkableHeight,U.walkableClimb,q),g(L,U.walkableHeight,q);const Q=u();if(O.compactHeightfield=Q,!b(L,U.walkableHeight,U.walkableClimb,q,Q))return I(\"Failed to build compact data\");if(F||(f(q),O.heightfield=void 0),!M(L,U.walkableRadius,Q))return I(\"Failed to erode walkable area\");if(!y(L,Q))return I(\"Failed to build distance field\");if(!S(L,Q,U.borderSize,U.minRegionArea,U.mergeRegionArea))return I(\"Failed to build regions\");const ee=w();if(O.contourSet=ee,!p(L,Q,U.maxSimplificationError,U.maxEdgeLen,ee,R.Module.RC_CONTOUR_TESS_WALL_EDGES))return I(\"Failed to create contours\");const te=C();if(O.polyMesh=te,!x(L,ee,U.maxVertsPerPoly,te))return I(\"Failed to triangulate contours\");const ie=A();if(O.polyMeshDetail=ie,!k(L,te,Q,U.detailSampleDist,U.detailSampleMaxError,ie))return I(\"Failed to build detail mesh\");F||(_(Q),O.compactHeightfield=void 0,z(ee),O.contourSet=void 0);for(let e=0;e<te.npolys();e++)te.areas(e)==R.Recast.WALKABLE_AREA&&te.setAreas(e,0),0==te.areas(e)&&te.setFlags(e,1);const ae=new T;ae.setPolyMeshCreateParams(te),ae.setPolyMeshDetailCreateParams(ie),ae.setWalkableHeight(U.walkableHeight),ae.setWalkableRadius(U.walkableRadius),ae.setWalkableClimb(U.walkableClimb),ae.setCellSize(U.cs),ae.setCellHeight(U.ch),ae.setBuildBvTree(!0),H.offMeshConnections&&ae.setOffMeshConnections(H.offMeshConnections);const le=v(ae);if(!le.success)return I(\"Failed to create Detour navmesh data\");const{navMeshData:re}=le;return P.initSolo(re)?{success:!0,navMesh:P,intermediates:O}:I(\"Failed to create Detour navmesh\")},J={...t,tileSize:32,expectedLayersPerTile:4,maxObstacles:128},Q=()=>new H(((e,t,i)=>{for(let a=0;a<e.polyCount();++a)t.set(a,0),i.set(a,1)})),ee=(t,y,S={},w=!1)=>{const p=new i,C={type:\"tilecache\",buildContext:p,chunkyTriMesh:void 0,tileIntermediates:[]},x=new F,A=new a,k=()=>{if(!w)for(let e=0;e<C.tileIntermediates.length;e++){const t=C.tileIntermediates[e];t.heightfield&&(f(t.heightfield),t.heightfield=void 0),t.compactHeightfield&&(_(t.compactHeightfield),t.compactHeightfield=void 0),t.heightfieldLayerSet&&(I(t.heightfieldLayerSet),t.heightfieldLayerSet=void 0)}},z=e=>(k(),x.destroy(),A.destroy(),{success:!1,navMesh:void 0,tileCache:void 0,intermediates:C,error:e}),T=t,v=y.length,E=new l.VertsArray;E.copy(T,T.length);const D=y,H=y.length/3,X=new l.TrisArray;X.copy(D,D.length);const{bbMin:j,bbMax:q}=Y(t,y),{expectedLayersPerTile:ee,maxObstacles:te,...ie}={...J,...S},ae=r(ie),le=s(j,q,ae.cs);ae.width=le.width,ae.height=le.height,ae.minRegionArea=ae.minRegionArea*ae.minRegionArea,ae.mergeRegionArea=ae.mergeRegionArea*ae.mergeRegionArea,ae.detailSampleDist=ae.detailSampleDist<.9?0:ae.cs*ae.detailSampleDist,ae.detailSampleMaxError=ae.ch*ae.detailSampleMaxError;const re=Math.floor(ae.tileSize),se=Math.floor((ae.width+re-1)/re),oe=Math.floor((ae.height+re-1)/re);ae.borderSize=ae.walkableRadius+3,ae.width=ae.tileSize+2*ae.borderSize,ae.height=ae.tileSize+2*ae.borderSize;const ne=L.create({orig:j,cs:ae.cs,ch:ae.ch,width:ae.tileSize,height:ae.tileSize,walkableHeight:ae.walkableHeight,walkableRadius:ae.walkableRadius,walkableClimb:ae.walkableClimb,maxSimplificationError:ae.maxSimplificationError,maxTiles:se*oe*ee,maxObstacles:te}),he=new R.RecastLinearAllocator(32e3),de=new R.RecastFastLZCompressor,ce=S.tileCacheMeshProcess??Q();if(!x.init(ne,he,de,ce))return z(\"Failed to initialize tile cache\");const me=e.fromArray(j);let ge=Math.min(Math.floor(U(Z(se*oe*ee))),14);ge>14&&(ge=14);const ue=1<<ge,be=1<<22-ge,fe=O.create({orig:me,tileWidth:ae.tileSize*ae.cs,tileHeight:ae.tileSize*ae.cs,maxTiles:ue,maxPolys:be});if(!A.initTiled(fe))return z(\"Failed to initialize tiled navmesh\");const Me=new P;if(C.chunkyTriMesh=Me,!Me.init(E,X,H,256))return z(\"Failed to build chunky triangle mesh\");const ye=(e,t)=>{const i={tileX:e,tileY:t},a=ae.tileSize*ae.cs,r=$(ae),s=[j[0]+e*a,j[1],j[2]+t*a],y=[j[0]+(e+1)*a,q[1],j[2]+(t+1)*a];s[0]-=r.borderSize*r.cs,s[2]-=r.borderSize*r.cs,y[0]+=r.borderSize*r.cs,y[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,y[0]),r.set_bmax(1,y[1]),r.set_bmax(2,y[2]);const S=o();if(i.heightfield=S,!n(p,S,r.width,r.height,s,y,r.cs,r.ch))return{n:0};const x=[s[0],s[2]],A=[y[0],y[2]],k=new l.ChunkIdsArray;k.resize(512);const z=Me.getChunksOverlappingRect(x,A,k,512);if(0===z)return{n:0};for(let e=0;e<z;++e){const t=k.get_data(e),i=Me.nodes(t).n,a=Me.getNodeTris(t),s=new l.TriAreasArray;s.resize(i),h(p,r.walkableSlopeAngle,E,v,a,i,s);const o=d(p,E,v,a,s,i,S,r.walkableClimb);if(s.free(),!o)return{n:0}}c(p,ae.walkableClimb,S),m(p,ae.walkableHeight,ae.walkableClimb,S),g(p,ae.walkableHeight,S);const T=u();if(!b(p,ae.walkableHeight,ae.walkableClimb,S,T))return{n:0};if(w||(f(i.heightfield),i.heightfield=void 0),!M(p,ae.walkableRadius,T))return{n:0};const D=G();if(!N(p,T,ae.borderSize,ae.walkableHeight,D))return{n:0};w||(_(T),i.compactHeightfield=void 0);const H=[];for(let i=0;i<D.nlayers();i++){const a=new l.TileCacheData,r=D.layers(i),s=new R.dtTileCacheLayerHeader;s.magic=R.Detour.TILECACHE_MAGIC,s.version=R.Detour.TILECACHE_VERSION,s.tx=e,s.ty=t,s.tlayer=i;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=W(r),d=B(r),c=V(r),m=K(de,s,h,d,c,a);if(R.Detour.statusFailed(m))return{n:0};H.push(a)}return w||(I(D),i.heightfieldLayerSet=void 0),C.tileIntermediates.push(i),{n:H.length,tiles:H}};for(let e=0;e<oe;++e)for(let t=0;t<se;++t){const{n:i,tiles:a}=ye(t,e);if(i>0&&a)for(let l=0;l<i;l++){const i=a[l],r=x.addTile(i);R.Detour.statusFailed(r.status)&&p.log(R.Module.RC_LOG_WARNING,`Failed to add tile to tile cache - tx: ${t}, ty: ${e}`)}}for(let e=0;e<oe;e++)for(let t=0;t<se;t++){const i=x.buildNavMeshTilesAt(t,e,A);if(R.Detour.statusFailed(i))return z(`Failed to build nav mesh tiles at ${t}, ${e}`)}return k(),{success:!0,tileCache:x,navMesh:A,intermediates:C}},te={...t},ie=(t,H,F={},L=!1)=>{const I=new i,G={type:\"tiled\",buildContext:I,chunkyTriMesh:void 0,tileIntermediates:[]},N=new a,W=()=>{if(!L){for(let e=0;e<G.tileIntermediates.length;e++){const t=G.tileIntermediates[e];t.compactHeightfield&&_(t.compactHeightfield),t.heightfield&&f(t.heightfield),t.contourSet&&z(t.contourSet),t.polyMesh&&E(t.polyMesh),t.polyMeshDetail&&D(t.polyMeshDetail)}G.chunkyTriMesh&&(G.chunkyTriMesh=void 0)}},B=e=>(W(),N.destroy(),{success:!1,navMesh:void 0,intermediates:G,error:e}),V=r({...te,...F}),{bbMin:K,bbMax:j}=Y(t,H),q=s(K,j,V.cs);V.width=q.width,V.height=q.height,V.minRegionArea=V.minRegionArea*V.minRegionArea,V.mergeRegionArea=V.mergeRegionArea*V.mergeRegionArea,V.tileSize=Math.floor(V.tileSize),V.borderSize=V.walkableRadius+3,V.width=V.tileSize+2*V.borderSize,V.height=V.tileSize+2*V.borderSize,V.detailSampleDist=V.detailSampleDist<.9?0:V.cs*V.detailSampleDist,V.detailSampleMaxError=V.ch*V.detailSampleMaxError;const J=Math.floor(V.tileSize),Q=Math.floor((q.width+J-1)/J),ee=Math.floor((q.height+J-1)/J),ie=V.tileSize*V.cs,ae=t,le=H.length,re=new l.VertsArray;re.copy(ae,ae.length);const se=H,oe=H.length/3,ne=new l.TrisArray;ne.copy(se,se.length);const he=e.fromArray(K);let de=Math.min(Math.floor(U(Z(Q*ee))),14);de>14&&(de=14);const ce=1<<de,me=1<<22-de,ge=O.create({orig:he,tileWidth:V.tileSize*V.cs,tileHeight:V.tileSize*V.cs,maxTiles:ce,maxPolys:me});if(!N.initTiled(ge))return B(\"Could not init nav mesh for tiled use\");const ue=new P;if(G.chunkyTriMesh=ue,!ue.init(re,ne,oe,256))return B(\"Failed to build chunky triangle mesh\");const be=(e,t,i,a)=>{const r=e=>(I.log(R.Module.RC_LOG_ERROR,e),{success:!1,error:e}),s={tileX:e,tileY:t};G.tileIntermediates.push(s);const E=$(V),D=[...i],H=[...a];D[0]-=E.borderSize*E.cs,D[2]-=E.borderSize*E.cs,H[0]+=E.borderSize*E.cs,H[2]+=E.borderSize*E.cs,E.set_bmin(0,D[0]),E.set_bmin(1,D[1]),E.set_bmin(2,D[2]),E.set_bmax(0,H[0]),E.set_bmax(1,H[1]),E.set_bmax(2,H[2]),I.resetTimers(),I.startTimer(R.Module.RC_TIMER_TOTAL),I.log(R.Module.RC_LOG_PROGRESS,`Building tile ${G.tileIntermediates.length} at x: ${e}, y: ${t}`),I.log(R.Module.RC_LOG_PROGRESS,` - ${V.width} x ${V.height} cells`),I.log(R.Module.RC_LOG_PROGRESS,` - ${le/1e3}fK verts, ${oe/1e3}K tris`);const O=o();if(s.heightfield=O,!n(I,O,E.width,E.height,D,H,E.cs,E.ch))return r(\"Could not create heightfield\");(new l.TriAreasArray).resize(ue.maxTrisPerChunk());const P=[D[0],D[2]],N=[H[0],H[2]],W=new l.ChunkIdsArray;W.resize(512);const B=ue.getChunksOverlappingRect(P,N,W,512);if(0===B)return{success:!0};for(let e=0;e<B;++e){const t=W.get_data(e),i=ue.nodes(t).n,a=ue.getNodeTris(t),s=new l.TriAreasArray;s.resize(i),h(I,E.walkableSlopeAngle,re,le,a,i,s);const o=d(I,re,le,a,s,i,O,E.walkableClimb);if(s.free(),!o)return r(\"Could not rasterize triangles\")}c(I,E.walkableClimb,O),m(I,E.walkableHeight,E.walkableClimb,O),g(I,E.walkableHeight,O);const K=u();if(s.compactHeightfield=K,!b(I,E.walkableHeight,E.walkableClimb,O,K))return r(\"Could not build compact heightfield\");if(L||(f(s.heightfield),s.heightfield=void 0),!M(I,E.walkableRadius,K))return r(\"Could not erode walkable area\");if(!y(I,K))return r(\"Failed to build distance field\");if(!S(I,K,E.borderSize,E.minRegionArea,E.mergeRegionArea))return r(\"Failed to build regions\");const X=w();if(s.contourSet=X,!p(I,K,E.maxSimplificationError,E.maxEdgeLen,X,R.Module.RC_CONTOUR_TESS_WALL_EDGES))return r(\"Failed to create contours\");const Y=C();if(s.polyMesh=Y,!x(I,X,E.maxVertsPerPoly,Y))return r(\"Failed to triangulate contours\");const U=A();if(s.polyMeshDetail=U,!k(I,Y,K,E.detailSampleDist,E.detailSampleMaxError,U))return r(\"Failed to build detail mesh\");L||(_(K),s.compactHeightfield=void 0,z(X),s.contourSet=void 0);for(let e=0;e<Y.npolys();e++)Y.areas(e)==R.Recast.WALKABLE_AREA&&Y.setAreas(e,0),0==Y.areas(e)&&Y.setFlags(e,1);const Z=new T;Z.setPolyMeshCreateParams(Y),Z.setPolyMeshDetailCreateParams(U),Z.setWalkableHeight(E.walkableHeight),Z.setWalkableRadius(E.walkableRadius),Z.setWalkableClimb(E.walkableClimb),Z.setCellSize(E.cs),Z.setCellHeight(E.ch),Z.setBuildBvTree(!0),F.offMeshConnections&&Z.setOffMeshConnections(F.offMeshConnections),Z.setTileX(e),Z.setTileY(t);const j=v(Z);return j.success?(I.log(R.Module.RC_LOG_PROGRESS,`>> Polymesh: ${Y.nverts()} vertices ${Y.npolys()} polygons`),{success:!0,data:j.navMeshData}):r(\"Failed to create Detour navmesh data\")};I.startTimer(R.Module.RC_TIMER_TEMP);const fe=[0,0,0],Me=[0,0,0];for(let e=0;e<ee;e++)for(let t=0;t<Q;t++){fe[0]=K[0]+t*ie,fe[1]=K[1],fe[2]=K[2]+e*ie,Me[0]=K[0]+(t+1)*ie,Me[1]=j[1],Me[2]=K[2]+(e+1)*ie;const i=be(t,e,fe,Me);if(i.success&&i.data){N.removeTile(N.getTileRefAt(t,e,0));const a=N.addTile(i.data,R.Module.DT_TILE_FREE_DATA,0);R.Detour.statusFailed(a.status)&&(I.log(R.Module.RC_LOG_WARNING,`Failed to add tile to nav mesh\\n\\ttx: ${t}, ty: ${e},status: ${X(a.status)} (${a.status})`),i.data.free())}}return I.stopTimer(R.Module.RC_TIMER_TEMP),L||W(),{success:!0,navMesh:N,intermediates:G}};export{Q as createDefaultTileCacheMeshProcess,U as dtIlog2,Z as dtNextPow2,q as generateSoloNavMesh,ee as generateTileCache,ie as generateTiledNavMesh,Y as getBoundingBox,j as soloNavMeshGeneratorConfigDefaults,J as tileCacheGeneratorConfigDefaults,te as tiledNavMeshGeneratorConfigDefaults};\n//# sourceMappingURL=index.mjs.map\n"],"names":["Y","t","i","a","x","y","z","l","e","length","r","s","o","n","Math","min","max","bbMin","toArray","bbMax","U","Number","Z","j","q","H","F","L","O","type","buildContext","P","I","heightfield","f","compactHeightfield","_","contourSet","polyMesh","E","polyMeshDetail","D","destroy","navMesh","success","intermediates","error","$","G","N","VertsArray","copy","W","B","V","TrisArray","K","X","minRegionArea","mergeRegionArea","detailSampleDist","cs","detailSampleMaxError","ch","width","height","J","TriAreasArray","resize","h","walkableSlopeAngle","d","walkableClimb","free","c","m","walkableHeight","g","Q","u","b","M","walkableRadius","S","borderSize","ee","w","p","maxSimplificationError","maxEdgeLen","R","Module","RC_CONTOUR_TESS_WALL_EDGES","te","C","maxVertsPerPoly","ie","A","k","npolys","areas","Recast","WALKABLE_AREA","setAreas","setFlags","ae","T","setPolyMeshCreateParams","setPolyMeshDetailCreateParams","setWalkableHeight","setWalkableRadius","setWalkableClimb","setCellSize","setCellHeight","setBuildBvTree","offMeshConnections","setOffMeshConnections","le","v","navMeshData","re","initSolo","tileSize","expectedLayersPerTile","maxObstacles","polyCount","set","chunkyTriMesh","tileIntermediates","heightfieldLayerSet","tileCache","floor","se","oe","ne","create","orig","maxTiles","he","RecastLinearAllocator","de","RecastFastLZCompressor","ce","tileCacheMeshProcess","init","me","fromArray","ge","ue","be","fe","tileWidth","tileHeight","maxPolys","initTiled","Me","ye","tileX","tileY","set_bmin","set_bmax","ChunkIdsArray","getChunksOverlappingRect","get_data","nodes","getNodeTris","nlayers","TileCacheData","layers","dtTileCacheLayerHeader","magic","Detour","TILECACHE_MAGIC","version","TILECACHE_VERSION","tx","ty","tlayer","bmin","bmax","minx","maxx","miny","maxy","hmin","hmax","statusFailed","push","tiles","addTile","status","log","RC_LOG_WARNING","buildNavMeshTilesAt","RC_LOG_ERROR","resetTimers","startTimer","RC_TIMER_TOTAL","RC_LOG_PROGRESS","maxTrisPerChunk","setTileX","setTileY","nverts","data","RC_TIMER_TEMP","removeTile","getTileRefAt","DT_TILE_FREE_DATA","stopTimer"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"email": "isaac@isaacmason.com",
|
|
19
19
|
"url": "https://isaacmason.com/"
|
|
20
20
|
},
|
|
21
|
-
"version": "0.
|
|
21
|
+
"version": "0.25.0",
|
|
22
22
|
"license": "MIT",
|
|
23
23
|
"homepage": "https://github.com/isaac-mason/recast-navigation-js",
|
|
24
24
|
"bugs": {
|
|
@@ -72,16 +72,16 @@
|
|
|
72
72
|
"lint": "eslint --ext .ts src"
|
|
73
73
|
},
|
|
74
74
|
"dependencies": {
|
|
75
|
-
"@recast-navigation/core": "0.
|
|
76
|
-
"@recast-navigation/generators": "0.
|
|
77
|
-
"@recast-navigation/three": "0.
|
|
75
|
+
"@recast-navigation/core": "0.25.0",
|
|
76
|
+
"@recast-navigation/generators": "0.25.0",
|
|
77
|
+
"@recast-navigation/three": "0.25.0"
|
|
78
78
|
},
|
|
79
79
|
"devDependencies": {
|
|
80
80
|
"@babel/core": "^7.24.4",
|
|
81
81
|
"@isaac-mason/eslint-config-typescript": "^0.0.5",
|
|
82
82
|
"@mdx-js/react": "^2.3.0",
|
|
83
83
|
"@pmndrs/assets": "^1.6.0",
|
|
84
|
-
"@react-three/drei": "^9.
|
|
84
|
+
"@react-three/drei": "^9.105.4",
|
|
85
85
|
"@react-three/fiber": "^8.15.12",
|
|
86
86
|
"@rollup/plugin-commonjs": "^25.0.7",
|
|
87
87
|
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"@storybook/react-vite": "^8.0.1",
|
|
97
97
|
"@types/react": "^18.2.73",
|
|
98
98
|
"@types/react-dom": "^18.2.8",
|
|
99
|
-
"@types/three": "^0.
|
|
99
|
+
"@types/three": "^0.163.0",
|
|
100
100
|
"eslint": "^8.56.0",
|
|
101
101
|
"leva": "^0.9.35",
|
|
102
102
|
"react": "^18.2.0",
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
"rollup-plugin-filesize": "^10.0.0",
|
|
107
107
|
"storybook": "^8.0.1",
|
|
108
108
|
"suspend-react": "^0.1.3",
|
|
109
|
-
"three": "^0.
|
|
109
|
+
"three": "^0.163.0",
|
|
110
110
|
"three-pathfinding": "^1.2.0",
|
|
111
111
|
"typescript": "^5.4.3",
|
|
112
112
|
"vitest": "^1.5.0",
|