@recast-navigation/core 0.30.0 → 0.31.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/crowd.d.ts CHANGED
@@ -176,6 +176,11 @@ export declare class CrowdAgent implements CrowdAgentParams {
176
176
  * @param crowdAgentParams agent parameters
177
177
  */
178
178
  setParameters(crowdAgentParams: Partial<CrowdAgentParams>): void;
179
+ /**
180
+ * Returns whether the agent is over an off-mesh connection.
181
+ * @returns
182
+ */
183
+ overOffMeshConnection(): boolean;
179
184
  }
180
185
  export type CrowdParams = {
181
186
  /**
package/dist/index.d.ts CHANGED
@@ -3,6 +3,7 @@ export * from './crowd';
3
3
  export * from './detour';
4
4
  export * from './nav-mesh';
5
5
  export * from './nav-mesh-query';
6
+ export * from './random';
6
7
  export * from './raw';
7
8
  export * from './recast';
8
9
  export * from './serdes';
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- const e=["Recast","Detour","DetourNavMeshBuilder","DetourTileCacheBuilder","NavMeshImporter","NavMeshExporter","CrowdUtils","ChunkyTriMeshUtils","RecastDebugDraw","DetourDebugDraw"],t=["rcConfig","rcContext","dtNavMeshParams","dtNavMeshCreateParams","RecastLinearAllocator","RecastFastLZCompressor","rcChunkyTriMesh","dtTileCacheParams","dtTileCacheLayerHeader","Vec3","BoolRef","IntRef","UnsignedIntRef","UnsignedCharRef","UnsignedShortRef","FloatRef","IntArray","UnsignedIntArray","UnsignedCharArray","UnsignedShortArray","FloatArray"],r={isNull:e=>0===r.Module.getPointer(e),destroy:e=>{r.Module.destroy(e)}},s=async s=>{if(void 0===r.Module){if(s)r.Module=await s();else{const e=(await import("@recast-navigation/wasm")).default;r.Module=await e()}for(const t of e)r[t]=new r.Module[t];for(const e of t)r[e]=r.Module[e]}};class a{get size(){return this.raw.size}constructor(e){this.raw=e}get(e){return this.raw.get(e)}set(e,t){this.raw.set(e,t)}resize(e){this.raw.resize(e)}copy(e){this.raw.resize(e.length);this.getHeapView().set(e)}destroy(){r.destroy(this.raw)}getHeapView(){const e=this.getHeap();return new this.typedArrayClass(e.buffer,this.raw.getDataPointer(),this.size)}toTypedArray(){const e=this.getHeapView(),t=new this.typedArrayClass(this.size);return t.set(e),t}}class i extends a{typedArrayClass=Int32Array;constructor(e){super(e??new r.Module.IntArray)}getHeap(){return r.Module.HEAP32}static fromRaw(e){return new this(e)}}class n extends a{typedArrayClass=Uint32Array;constructor(e){super(e??new r.Module.UnsignedIntArray)}getHeap(){return r.Module.HEAPU32}static fromRaw(e){return new this(e)}}class o extends a{typedArrayClass=Uint8Array;constructor(e){super(e??new r.Module.UnsignedCharArray)}getHeap(){return r.Module.HEAPU8}static fromRaw(e){return new this(e)}}class l extends a{typedArrayClass=Uint16Array;constructor(e){super(e??new r.Module.UnsignedShortArray)}getHeap(){return r.Module.HEAPU16}static fromRaw(e){return new this(e)}}class u extends a{typedArrayClass=Float32Array;constructor(e){super(e??new r.Module.FloatArray)}getHeap(){return r.Module.HEAPF32}static fromRaw(e){return new this(e)}}const h=u,w=i,c=o,d=i,g=o,y={toRaw:({x:e,y:t,z:s},a)=>a?(a.x=e,a.y=t,a.z=s,a):new r.Module.Vec3(e,t,s),fromRaw:e=>{const{x:t,y:r,z:s}=e;return{x:t,y:r,z:s}},fromArray:([e,t,r])=>({x:e,y:t,z:r}),toArray:({x:e,y:t,z:r})=>[e,t,r],lerp:(e,t,r,s={x:0,y:0,z:0})=>{s.x=e.x+(t.x-e.x)*r,s.y=e.y+(t.y-e.y)*r,s.z=e.z+(t.z-e.z)*r},copy:(e,t={x:0,y:0,z:0})=>{t.x=e.x,t.y=e.y,t.z=e.z}},m=(e,t)=>{const r=[];for(let s=0;s<t;s++)r.push(e(s));return r},f=e=>[...Array(e)].map(((e,t)=>t));class p{get includeFlags(){return this.raw.getIncludeFlags()}set includeFlags(e){this.raw.setIncludeFlags(e)}get excludeFlags(){return this.raw.getExcludeFlags()}set excludeFlags(e){this.raw.setExcludeFlags(e)}constructor(e){this.raw=e??new r.Module.dtQueryFilter}getAreaCost(e){return this.raw.getAreaCost(e)}setAreaCost(e,t){return this.raw.setAreaCost(e,t)}}class x{defaultQueryHalfExtents={x:1,y:1,z:1};constructor(e,t){e instanceof r.Module.NavMeshQuery?this.raw=e:(this.raw=new r.Module.NavMeshQuery,this.raw.init(e.raw,t?.maxNodes??2048)),t?.defaultQueryFilter?this.defaultFilter=t.defaultQueryFilter:(this.defaultFilter=new p,this.defaultFilter.includeFlags=65535,this.defaultFilter.excludeFlags=0)}findNearestPoly(e,t){const s=new r.UnsignedIntRef,a=new r.Vec3,i=new r.BoolRef,n=this.raw.findNearestPoly(y.toArray(e),y.toArray(t?.halfExtents??this.defaultQueryHalfExtents),t?.filter?.raw??this.defaultFilter.raw,s,a,i),o=y.fromRaw(a);r.destroy(a);const l=s.value;r.destroy(s);const u=i.value;return r.destroy(i),{success:r.Detour.statusSucceed(n),status:n,nearestRef:l,nearestPoint:o,isOverPoly:u}}findPolysAroundCircle(e,t,s,a){const i=a?.filter??this.defaultFilter,o=a?.maxPolys??256,l=new n,h=new n,w=new u;l.resize(o),h.resize(o),w.resize(o);const c=new r.IntRef,d=this.raw.findPolysAroundCircle(e,y.toArray(t),s,i.raw,l.raw,h.raw,w.raw,c,o),g=[...l.getHeapView()];l.destroy();const m=[...h.getHeapView()];h.destroy();const f=[...w.getHeapView()];w.destroy();const p=c.value;return r.destroy(c),{success:r.Detour.statusSucceed(d),status:d,resultRefs:g,resultParents:m,resultCost:f,resultCount:p}}queryPolygons(e,t,s){const a=s?.filter??this.defaultFilter,i=s?.maxPolys??256,o=new n;o.resize(i);const l=new r.IntRef,u=this.raw.queryPolygons(y.toArray(e),y.toArray(t),a.raw,o.raw,l,i),h=l.value;r.destroy(l);const w=[...o.getHeapView()];return o.destroy(),{success:r.Detour.statusSucceed(u),status:u,polyRefs:w,polyCount:h}}closestPointOnPoly(e,t){const s=new r.Vec3,a=new r.BoolRef,i=this.raw.closestPointOnPoly(e,y.toArray(t),s,a),n=y.fromRaw(s);r.destroy(s);const o=a.value;return r.destroy(a),{success:r.Detour.statusSucceed(i),status:i,closestPoint:n,isPointOverPoly:o}}findClosestPoint(e,t){const s=t?.filter??this.defaultFilter,a=t?.halfExtents??this.defaultQueryHalfExtents,i=new r.UnsignedIntRef,n=new r.Vec3,o=new r.BoolRef,l=this.raw.findClosestPoint(y.toArray(e),y.toArray(a),s.raw,i,n,o),u=i.value;r.destroy(i);const h=y.fromRaw(n);r.destroy(n);const w=o.value;return r.destroy(o),{success:r.Detour.statusSucceed(l),status:l,polyRef:u,point:h,isPointOverPoly:w}}findRandomPointAroundCircle(e,t,s){const a=s?.filter??this.defaultFilter,i=s?.halfExtents??this.defaultQueryHalfExtents;let n;if(s?.startRef)n=s.startRef;else{const t=this.findNearestPoly(e,{filter:a,halfExtents:i});if(!t.success)return{success:!1,status:t.status,randomPolyRef:0,randomPoint:{x:0,y:0,z:0}};n=t.nearestRef}const o=new r.UnsignedIntRef,l=new r.Vec3,u=this.raw.findRandomPointAroundCircle(n,y.toArray(e),t,a.raw,o,l),h=o.value;r.destroy(o);const w=y.fromRaw(l);return r.destroy(l),{success:r.Detour.statusSucceed(u),status:u,randomPolyRef:h,randomPoint:w}}moveAlongSurface(e,t,s,a){const i=a?.maxVisitedSize??256,o=new r.Vec3,l=new n,u=a?.filter?.raw??this.defaultFilter.raw,h=this.raw.moveAlongSurface(e,y.toArray(t),y.toArray(s),u,o,l.raw,i),w=y.fromRaw(o);r.destroy(o);const c=[...l.getHeapView()];return l.destroy(),{success:r.Detour.statusSucceed(h),status:h,resultPosition:w,visited:c}}findRandomPoint(e){const t=new r.UnsignedIntRef,s=new r.Vec3,a=this.raw.findRandomPoint(e?.filter?.raw??this.defaultFilter.raw,t,s),i=t.value;r.destroy(t);const n=y.fromRaw(s);return r.destroy(s),{success:r.Detour.statusSucceed(a),status:a,randomPolyRef:i,randomPoint:n}}getPolyHeight(e,t){const s=new r.FloatRef,a=this.raw.getPolyHeight(e,y.toArray(t),s),i=s.value;return r.destroy(s),{success:r.Detour.statusSucceed(a),status:a,height:i}}computePath(e,t,r){const s=r?.filter??this.defaultFilter,a=r?.halfExtents??this.defaultQueryHalfExtents,i=this.findNearestPoly(e,{filter:s,halfExtents:a});if(!i.success)return{success:!1,error:{name:"findNearestPoly for start position failed",status:i.status},path:[]};const n=this.findNearestPoly(t,{filter:s,halfExtents:a});if(!n.success)return{success:!1,error:{name:"findNearestPoly for end position failed",status:n.status},path:[]};const o=i.nearestRef,l=n.nearestRef,u=r?.maxPathPolys??256,h=this.findPath(o,l,e,t,{filter:s,maxPathPolys:u});if(!h.success)return{success:!1,error:{name:"findPath unsuccessful",status:h.status},path:[]};if(h.polys.size<=0)return{success:!1,error:{name:"no polygon path found"},path:[]};const w=h.polys.get(h.polys.size-1);let c={x:t.x,y:t.y,z:t.z};if(w!==l){const e=this.closestPointOnPoly(w,t);if(!e.success)return{success:!1,error:{name:"no closest point on last polygon found",status:e.status},path:[]};c=e.closestPoint}const d=r?.maxStraightPathPoints,g=this.findStraightPath(e,c,h.polys,{maxStraightPathPoints:d});if(!g.success)return{success:!1,error:{name:"findStraightPath unsuccessful",status:g.status},path:[]};const{straightPath:y,straightPathCount:m}=g,f=[];for(let e=0;e<m;e++)f.push({x:y.get(3*e),y:y.get(3*e+1),z:y.get(3*e+2)});return h.polys.destroy(),g.straightPath.destroy(),g.straightPathFlags.destroy(),g.straightPathRefs.destroy(),{success:!0,path:f}}findPath(e,t,s,a,i){const o=i?.filter??this.defaultFilter,l=i?.maxPathPolys??256,u=new n;u.resize(l);const h=this.raw.findPath(e,t,y.toArray(s),y.toArray(a),o.raw,u.raw,l);return{success:r.Detour.statusSucceed(h),status:h,polys:u}}findStraightPath(e,t,s,a){const i=a?.maxStraightPathPoints??256,l=a?.straightPathOptions??0,h=new u;h.resize(3*i);const w=new o;w.resize(i);const c=new n;c.resize(i);const d=new r.IntRef,g=this.raw.findStraightPath(y.toArray(e),y.toArray(t),s.raw,h.raw,w.raw,c.raw,d,i,l),m=d.value;return r.destroy(d),{success:r.Detour.statusSucceed(g),status:g,straightPath:h,straightPathFlags:w,straightPathRefs:c,straightPathCount:m}}raycast(e,t,s,a){const i=new r.Module.dtRaycastHit,n=a?.raycastOptions??0,o=a?.prevRef??0,l=a?.filter?.raw??this.defaultFilter.raw,u=this.raw.raycast(e,y.toArray(t),y.toArray(s),l,n,i,o),h={success:r.Detour.statusSucceed(u),status:u,t:i.t,hitNormal:y.fromArray(m((e=>i.get_hitNormal(e)),3)),hitEdgeIndex:i.hitEdgeIndex,path:m((e=>i.get_path(e)),i.pathCount),maxPath:i.maxPath,pathCost:i.pathCost};return r.destroy(i),h}destroy(){this.raw.destroy()}}const R={radius:.5,height:1,maxAcceleration:20,maxSpeed:6,collisionQueryRange:2.5,pathOptimizationRange:0,separationWeight:0,updateFlags:7,obstacleAvoidanceType:0,queryFilterType:0,userData:0};class b{get radius(){return this.raw.params.radius}set radius(e){this.raw.params.radius=e}get height(){return this.raw.params.height}set height(e){this.raw.params.height=e}get maxAcceleration(){return this.raw.params.maxAcceleration}set maxAcceleration(e){this.raw.params.maxAcceleration=e}get maxSpeed(){return this.raw.params.maxSpeed}set maxSpeed(e){this.raw.params.maxSpeed=e}get collisionQueryRange(){return this.raw.params.collisionQueryRange}set collisionQueryRange(e){this.raw.params.collisionQueryRange=e}get pathOptimizationRange(){return this.raw.params.pathOptimizationRange}set pathOptimizationRange(e){this.raw.params.pathOptimizationRange=e}get separationWeight(){return this.raw.params.separationWeight}set separationWeight(e){this.raw.params.separationWeight=e}get updateFlags(){return this.raw.params.updateFlags}set updateFlags(e){this.raw.params.updateFlags=e}get obstacleAvoidanceType(){return this.raw.params.obstacleAvoidanceType}set obstacleAvoidanceType(e){this.raw.params.obstacleAvoidanceType=e}get queryFilterType(){return this.raw.params.queryFilterType}set queryFilterType(e){this.raw.params.queryFilterType=e}get userData(){return this.raw.params.userData}set userData(e){this.raw.params.userData=e}interpolatedPosition={x:0,y:0,z:0};constructor(e,t){this.crowd=e,this.agentIndex=t,this.raw=e.raw.getEditableAgent(t),this.interpolatedPosition=this.position()}requestMoveTarget(e){const{nearestPoint:t,nearestRef:r}=this.crowd.navMeshQuery.findNearestPoly(e,{halfExtents:this.crowd.navMeshQuery.defaultQueryHalfExtents,filter:this.crowd.navMeshQuery.defaultFilter});return this.crowd.raw.requestMoveTarget(this.agentIndex,r,y.toArray(t))}requestMoveVelocity(e){return this.crowd.raw.requestMoveVelocity(this.agentIndex,y.toArray(e))}resetMoveTarget(){this.crowd.raw.resetMoveTarget(this.agentIndex)}teleport(e){r.CrowdUtils.agentTeleport(this.crowd.raw,this.agentIndex,y.toArray(e),y.toArray(this.crowd.navMeshQuery.defaultQueryHalfExtents),this.crowd.navMeshQuery.defaultFilter.raw),y.copy(e,this.interpolatedPosition)}position(){return{x:this.raw.get_npos(0),y:this.raw.get_npos(1),z:this.raw.get_npos(2)}}velocity(){return{x:this.raw.get_vel(0),y:this.raw.get_vel(1),z:this.raw.get_vel(2)}}desiredVelocity(){return{x:this.raw.get_dvel(0),y:this.raw.get_dvel(1),z:this.raw.get_dvel(2)}}desiredVelocityObstacleAdjusted(){return{x:this.raw.get_nvel(0),y:this.raw.get_nvel(1),z:this.raw.get_nvel(2)}}state(){return this.raw.state}target(){return{x:this.raw.get_targetPos(0),y:this.raw.get_targetPos(1),z:this.raw.get_targetPos(2)}}nextTargetInPath(){return{x:this.raw.get_cornerVerts(0),y:this.raw.get_cornerVerts(1),z:this.raw.get_cornerVerts(2)}}corners(){const e=[];for(let t=0;t<this.raw.ncorners;t++)e.push({x:this.raw.get_cornerVerts(3*t),y:this.raw.get_cornerVerts(3*t+1),z:this.raw.get_cornerVerts(3*t+2)});return e}parameters(){const{params:e}=this.raw;return{radius:e.radius,height:e.height,maxAcceleration:e.maxAcceleration,maxSpeed:e.maxSpeed,collisionQueryRange:e.collisionQueryRange,pathOptimizationRange:e.pathOptimizationRange,separationWeight:e.separationWeight,updateFlags:e.updateFlags,obstacleAvoidanceType:e.obstacleAvoidanceType,queryFilterType:e.queryFilterType,userData:e.userData}}updateParameters(e){const t={...this.parameters(),...e};this.setParameters(t)}setParameters(e){const t={...R,...e},s=new r.Module.dtCrowdAgentParams;s.radius=t.radius,s.height=t.height,s.maxAcceleration=t.maxAcceleration,s.maxSpeed=t.maxSpeed,s.collisionQueryRange=t.collisionQueryRange,s.pathOptimizationRange=t.pathOptimizationRange,s.separationWeight=t.separationWeight,s.updateFlags=t.updateFlags,s.obstacleAvoidanceType=t.obstacleAvoidanceType,s.queryFilterType=t.queryFilterType,s.userData=t.userData,this.crowd.raw.updateAgentParameters(this.agentIndex,s)}}class A{agents={};accumulator=0;constructor(e,{maxAgents:t,maxAgentRadius:s}){this.navMesh=e,this.raw=r.Detour.allocCrowd(),this.raw.init(t,s,e.raw.getNavMesh()),this.navMeshQuery=new x(new r.Module.NavMeshQuery(this.raw.getNavMeshQuery()))}update(e,t,r=10){if(void 0===t)this.raw.update(e,void 0);else{this.accumulator+=t;let s=0;for(;this.accumulator>=e&&s<r;)this.raw.update(e,void 0),this.accumulator-=e,s++;const a=this.accumulator%e/e,i=this.getAgents();for(const e of i)y.lerp(e.interpolatedPosition,e.position(),a,e.interpolatedPosition)}}addAgent(e,t){const s={...R,...t},a=new r.Module.dtCrowdAgentParams;a.radius=s.radius,a.height=s.height,a.maxAcceleration=s.maxAcceleration,a.maxSpeed=s.maxSpeed,a.collisionQueryRange=s.collisionQueryRange,a.pathOptimizationRange=s.pathOptimizationRange,a.separationWeight=s.separationWeight,a.updateFlags=s.updateFlags,a.obstacleAvoidanceType=s.obstacleAvoidanceType,a.queryFilterType=s.queryFilterType,a.userData=s.userData;const i=this.raw.addAgent(y.toArray(e),a),n=new b(this,i);return this.agents[i]=n,n}getAgent(e){const t=this.agents[e];return t||null}removeAgent(e){const t="number"==typeof e?e:e.agentIndex;this.raw.removeAgent(t),delete this.agents[t]}getAgentCount(){return this.raw.getAgentCount()}getActiveAgentCount(){return r.CrowdUtils.getActiveAgentCount(this.raw)}getAgents(){return Object.values(this.agents)}getFilter(e){return new p(this.raw.getEditableFilter(e))}destroy(){r.Detour.freeCrowd(this.raw)}}const P=e=>r.Detour.statusSucceed(e),_=e=>r.Detour.statusFailed(e),C=e=>r.Detour.statusInProgress(e),M=(e,t)=>r.Detour.statusDetail(e,t),T=e=>{if(r.Detour.statusSucceed(e))return"success";if(r.Detour.statusInProgress(e))return"in progress";if(r.Detour.statusFailed(e)){let t;const s={DT_WRONG_MAGIC:r.Detour.WRONG_MAGIC,DT_WRONG_VERSION:r.Detour.WRONG_VERSION,DT_OUT_OF_MEMORY:r.Detour.OUT_OF_MEMORY,DT_INVALID_PARAM:r.Detour.INVALID_PARAM,DT_BUFFER_TOO_SMALL:r.Detour.BUFFER_TOO_SMALL,DT_OUT_OF_NODES:r.Detour.OUT_OF_NODES,DT_PARTIAL_RESULT:r.Detour.PARTIAL_RESULT,DT_ALREADY_OCCUPIED:r.Detour.ALREADY_OCCUPIED};for(const[a,i]of Object.entries(s))if(r.Detour.statusDetail(e,i)){t=a;break}return t?`failed - ${t}`:"failed - unknown"}return"unknown"};class v{constructor(e){this.raw=e}vertBase(){return this.raw.vertBase}triBase(){return this.raw.triBase}vertCount(){return this.raw.vertCount}triCount(){return this.raw.triCount}}class S{constructor(e){this.raw=e}ref(){return this.raw.ref}next(){return this.raw.next}edge(){return this.raw.edge}side(){return this.raw.side}bmin(){return this.raw.bmin}bmax(){return this.raw.bmax}}class D{constructor(e){this.raw=e}bmin(){return y.fromArray(m((e=>this.raw.get_bmin(e)),3))}bmax(){return y.fromArray(m((e=>this.raw.get_bmax(e)),3))}i(){return this.raw.i}}class E{constructor(e){this.raw=e}pos(e){return this.raw.get_pos(e)}rad(){return this.raw.rad}poly(){return this.raw.poly}flags(){return this.raw.flags}side(){return this.raw.side}userId(){return this.raw.userId}}class z{constructor(e){this.raw=e}magic(){return this.raw.magic}version(){return this.raw.version}x(){return this.raw.x}y(){return this.raw.y}layer(){return this.raw.layer}userId(){return this.raw.userId}polyCount(){return this.raw.polyCount}vertCount(){return this.raw.vertCount}maxLinkCount(){return this.raw.maxLinkCount}detailMeshCount(){return this.raw.detailMeshCount}detailVertCount(){return this.raw.detailVertCount}detailTriCount(){return this.raw.detailTriCount}bvNodeCount(){return this.raw.bvNodeCount}offMeshConCount(){return this.raw.offMeshConCount}offMeshBase(){return this.raw.offMeshBase}walkableHeight(){return this.raw.walkableHeight}walkableRadius(){return this.raw.walkableRadius}walkableClimb(){return this.raw.walkableClimb}bmin(e){return this.raw.get_bmin(e)}bmax(e){return this.raw.get_bmax(e)}bvQuantFactor(){return this.raw.bvQuantFactor}}class F{constructor(e){this.raw=e}firstLink(){return this.raw.firstLink}verts(e){return this.raw.get_verts(e)}neis(e){return this.raw.get_neis(e)}flags(){return this.raw.flags}vertCount(){return this.raw.vertCount}areaAndType(){return this.raw.get_areaAndtype()}getType(){return this.raw.getType()}}class k{constructor(e){this.raw=e}salt(){return this.raw.salt}linksFreeList(){return this.raw.linksFreeList}header(){return r.isNull(this.raw.header)?null:new z(this.raw.header)}polys(e){return new F(this.raw.get_polys(e))}verts(e){return this.raw.get_verts(e)}links(e){return new S(this.raw.get_links(e))}detailMeshes(e){return new v(this.raw.get_detailMeshes(e))}detailVerts(e){return this.raw.get_detailVerts(e)}detailTris(e){return this.raw.get_detailTris(e)}bvTree(e){return new D(this.raw.get_bvTree(e))}offMeshCons(e){return new E(this.raw.get_offMeshCons(e))}data(e){return this.raw.get_data(e)}dataSize(){return this.raw.dataSize}flags(){return this.raw.flags}next(){return new k(this.raw.next)}}const O=e=>{const t=r.DetourNavMeshBuilder.createNavMeshData(e.raw);return{success:t.success,navMeshData:o.fromRaw(t.navMeshData)}};class H{constructor(e){this.raw=e??new r.Module.dtNavMeshCreateParams}setPolyMeshCreateParams(e){r.DetourNavMeshBuilder.setPolyMeshCreateParams(this.raw,e.raw)}setPolyMeshDetailCreateParams(e){r.DetourNavMeshBuilder.setPolyMeshDetailCreateParams(this.raw,e.raw)}setOffMeshConnections(e){if(e.length<=0)return;const t=[],s=[],a=[],i=[],n=[],o=[];for(let r=0;r<e.length;r++){const l=e[r];t.push(l.startPosition.x,l.startPosition.y,l.startPosition.z),t.push(l.endPosition.x,l.endPosition.y,l.endPosition.z),s.push(l.radius),a.push(l.bidirectional?1:0),i.push(l.area??0),n.push(l.flags??1),o.push(l.userId??1e3+r)}r.DetourNavMeshBuilder.setOffMeshConnections(this.raw,e.length,t,s,a,i,n,o)}verts(e){return this.raw.get_verts(e)}setVerts(e,t){this.raw.set_verts(e,t)}vertCount(){return this.raw.vertCount}polys(e){return this.raw.get_polys(e)}setPolys(e,t){this.raw.set_polys(e,t)}polyAreas(e){return this.raw.get_polyAreas(e)}setPolyAreas(e,t){this.raw.set_polyAreas(e,t)}polyFlags(e){return this.raw.get_polyFlags(e)}setPolyFlags(e,t){this.raw.set_polyFlags(e,t)}polyCount(){return this.raw.polyCount}nvp(){return this.raw.nvp}setNvp(e){this.raw.nvp=e}detailMeshes(e){return this.raw.get_detailMeshes(e)}setDetailMeshes(e,t){this.raw.set_detailMeshes(e,t)}detailVerts(e){return this.raw.get_detailVerts(e)}setDetailVerts(e,t){this.raw.set_detailVerts(e,t)}detailVertsCount(){return this.raw.detailVertsCount}detailTris(e){return this.raw.get_detailTris(e)}setDetailTris(e,t){this.raw.set_detailTris(e,t)}detailTriCount(){return this.raw.detailTriCount}offMeshConVerts(e){return this.raw.get_offMeshConVerts(e)}offMeshConRad(e){return this.raw.get_offMeshConRad(e)}offMeshConDir(e){return this.raw.get_offMeshConDir(e)}offMeshConAreas(e){return this.raw.get_offMeshConAreas(e)}offMeshConFlags(e){return this.raw.get_offMeshConFlags(e)}offMeshConUserID(e){return this.raw.get_offMeshConUserID(e)}offMeshConCount(){return this.raw.offMeshConCount}userId(){return this.raw.userId}tileX(){return this.raw.tileX}setTileX(e){this.raw.tileX=e}tileY(){return this.raw.tileY}setTileY(e){this.raw.tileY=e}tileLayer(){return this.raw.tileLayer}setTileLayer(e){this.raw.tileLayer=e}boundsMin(){return m((e=>this.raw.get_bmin(e)),3)}setBoundsMin(e){this.raw.set_bmin(0,e[0]),this.raw.set_bmin(1,e[1]),this.raw.set_bmin(2,e[2])}boundsMax(){return m((e=>this.raw.get_bmax(e)),3)}setBoundsMax(e){this.raw.set_bmax(0,e[0]),this.raw.set_bmax(1,e[1]),this.raw.set_bmax(2,e[2])}walkableHeight(){return this.raw.walkableHeight}setWalkableHeight(e){this.raw.walkableHeight=e}walkableRadius(){return this.raw.walkableRadius}setWalkableRadius(e){this.raw.walkableRadius=e}walkableClimb(){return this.raw.walkableClimb}setWalkableClimb(e){this.raw.walkableClimb=e}cellSize(){return this.raw.cs}setCellSize(e){this.raw.cs=e}cellHeight(){return this.raw.ch}setCellHeight(e){this.raw.ch=e}buildBvTree(){return this.raw.buildBvTree}setBuildBvTree(e){this.raw.buildBvTree=e}}class N{constructor(e){this.raw=e}tiles(e){return new k(this.raw.get_tiles(e))}tileCount(){return this.raw.tileCount}}class I{constructor(e){this.raw=e}data(){return m((e=>this.raw.get_data(e)),this.raw.dataSize)}dataSize(){return this.raw.dataSize}}class U{constructor(e){this.raw=e}tileX(){return this.raw.tileX}tileY(){return this.raw.tileY}}class V{constructor(e){this.raw=e}data(){return m((e=>this.raw.get_data(e)),this.raw.dataSize)}dataSize(){return this.raw.dataSize}}class L{constructor(e){this.raw=e}static create(e){const t=new r.Module.dtNavMeshParams;return t.set_orig(0,e.orig.x),t.set_orig(1,e.orig.y),t.set_orig(2,e.orig.z),t.tileWidth=e.tileWidth,t.tileHeight=e.tileHeight,t.maxTiles=e.maxTiles,t.maxPolys=e.maxPolys,new L(t)}clone(){return L.create({orig:{x:this.raw.get_orig(0),y:this.raw.get_orig(1),z:this.raw.get_orig(2)},tileWidth:this.raw.tileWidth,tileHeight:this.raw.tileHeight,maxTiles:this.raw.maxTiles,maxPolys:this.raw.maxPolys})}}class B{constructor(e){this.raw=e??new r.Module.NavMesh}initSolo(e){return this.raw.initSolo(e.raw)}initTiled(e){return this.raw.initTiled(e.raw)}addTile(e,t,s){const a=new r.UnsignedIntRef,i=this.raw.addTile(e.raw,t,s,a),n=a.value;return r.destroy(a),{status:i,tileRef:n}}decodePolyId(e){const t=new r.UnsignedIntRef,s=new r.UnsignedIntRef,a=new r.UnsignedIntRef;this.raw.decodePolyId(e,t,s,a);const i=t.value;r.destroy(t);const n=s.value;r.destroy(s);const o=a.value;return r.destroy(a),{tileSalt:i,tileIndex:n,tilePolygonIndex:o}}encodePolyId(e,t,r){return this.raw.encodePolyId(e,t,r)}removeTile(e){return new I(this.raw.removeTile(e))}calcTileLoc(e){return new U(this.raw.calcTileLoc(y.toArray(e)))}getTileAt(e,t,s){const a=this.raw.getTileAt(e,t,s);return r.isNull(a)?null:new k(a)}getTilesAt(e,t,r){return new N(this.raw.getTilesAt(e,t,r))}getTileRefAt(e,t,r){return this.raw.getTileRefAt(e,t,r)}getTileRef(e){return this.raw.getTileRef(e.raw)}getTileByRef(e){const t=this.raw.getTileByRef(e);return r.isNull(t)?null:new k(t)}getMaxTiles(){return this.raw.getMaxTiles()}getTile(e){return new k(this.raw.getTile(e))}getTileAndPolyByRef(e){const t=this.raw.getTileAndPolyByRef(e),r=new k(t.tile),s=new F(t.poly);return{success:P(t.status),status:t.status,tile:r,poly:s}}getTileAndPolyByRefUnsafe(e){const t=this.raw.getTileAndPolyByRef(e);return{tile:new k(t.tile),poly:new F(t.poly)}}isValidPolyRef(e){return this.raw.isValidPolyRef(e)}getPolyRefBase(e){return this.raw.getPolyRefBase(e.raw)}getOffMeshConnectionPolyEndPoints(e,t){const s=new r.Vec3,a=new r.Vec3,i=this.raw.getOffMeshConnectionPolyEndPoints(e,t,s,a),n=y.fromRaw(s);r.destroy(s);const o=y.fromRaw(a);return r.destroy(a),{status:i,start:n,end:o}}getOffMeshConnectionByRef(e){return new E(this.raw.getOffMeshConnectionByRef(e))}setPolyFlags(e,t){return this.raw.setPolyFlags(e,t)}getPolyFlags(e){const t=new r.UnsignedShortRef,s=this.raw.getPolyFlags(e,t),a=t.value;return r.destroy(t),{status:s,flags:a}}setPolyArea(e,t){return this.raw.setPolyArea(e,t)}getPolyArea(e){const t=new r.UnsignedCharRef,s=this.raw.getPolyArea(e,t),a=t.value;return r.destroy(t),{status:s,area:a}}getTileStateSize(e){return this.raw.getTileStateSize(e.raw)}storeTileState(e,t){return new V(this.raw.storeTileState(e.raw,t))}restoreTileState(e,t,r){return this.raw.restoreTileState(e.raw,t,r)}getDebugNavMesh(){const e=[],t=[];let r=0;const s=this.getMaxTiles();for(let a=0;a<s;a++){const s=this.getTile(a),i=s.header();if(!i)continue;const n=i.polyCount();for(let a=0;a<n;++a){const i=s.polys(a);if(1===i.getType())continue;const n=i.vertCount(),o=s.detailMeshes(a),l=o.triBase(),u=o.triCount();for(let a=0;a<u;++a){const u=4*(l+a);for(let a=0;a<3;++a){if(s.detailTris(u+a)<n){const t=3*i.verts(s.detailTris(u+a));e.push(s.verts(t),s.verts(t+1),s.verts(t+2))}else{const t=3*(o.vertBase()+s.detailTris(u+a)-i.vertCount());e.push(s.detailVerts(t),s.detailVerts(t+1),s.detailVerts(t+2))}t.push(r++)}}}}return[e,t]}destroy(){this.raw.destroy(),r.Module.destroy(this.raw)}}const Q={borderSize:0,tileSize:0,cs:.2,ch:.2,walkableSlopeAngle:60,walkableHeight:2,walkableClimb:2,walkableRadius:.5,maxEdgeLen:12,maxSimplificationError:1.3,minRegionArea:8,mergeRegionArea:20,maxVertsPerPoly:6,detailSampleDist:6,detailSampleMaxError:1},W=e=>{const t={...Q,...e},s=new r.Module.rcConfig;return s.borderSize=t.borderSize,s.tileSize=t.tileSize,s.cs=t.cs,s.ch=t.ch,s.walkableSlopeAngle=t.walkableSlopeAngle,s.walkableHeight=t.walkableHeight,s.walkableClimb=t.walkableClimb,s.walkableRadius=t.walkableRadius,s.maxEdgeLen=t.maxEdgeLen,s.maxSimplificationError=t.maxSimplificationError,s.minRegionArea=t.minRegionArea,s.mergeRegionArea=t.mergeRegionArea,s.maxVertsPerPoly=t.maxVertsPerPoly,s.detailSampleDist=t.detailSampleDist,s.detailSampleMaxError=t.detailSampleMaxError,s},q=e=>{const t=new r.Module.rcConfig;return t.set_bmin(0,e.get_bmin(0)),t.set_bmin(1,e.get_bmin(1)),t.set_bmin(2,e.get_bmin(2)),t.set_bmax(0,e.get_bmax(0)),t.set_bmax(1,e.get_bmax(1)),t.set_bmax(2,e.get_bmax(2)),t.width=e.width,t.height=e.height,t.borderSize=e.borderSize,t.tileSize=e.tileSize,t.cs=e.cs,t.ch=e.ch,t.walkableSlopeAngle=e.walkableSlopeAngle,t.walkableHeight=e.walkableHeight,t.walkableClimb=e.walkableClimb,t.walkableRadius=e.walkableRadius,t.maxEdgeLen=e.maxEdgeLen,t.maxSimplificationError=e.maxSimplificationError,t.minRegionArea=e.minRegionArea,t.mergeRegionArea=e.mergeRegionArea,t.maxVertsPerPoly=e.maxVertsPerPoly,t.detailSampleDist=e.detailSampleDist,t.detailSampleMaxError=e.detailSampleMaxError,t};class Y{logs=[];startTimes={};accumulatedTimes={};constructor(e=!0){const t=new r.Module.RecastBuildContextImpl;t.log=(e,t,s)=>{if(!this.raw.logEnabled())return;const a=t,i=new Uint8Array(r.Module.HEAPU8.buffer,a,s),n=new Uint8Array(s);n.set(i);const o=(new TextDecoder).decode(n);this.log(e,o)},t.resetLog=()=>{this.resetLog()},t.startTimer=e=>{this.raw.timerEnabled()&&this.startTimer(e)},t.stopTimer=e=>{this.raw.timerEnabled()&&this.stopTimer(e)},t.getAccumulatedTime=e=>this.raw.timerEnabled()?this.getAccumulatedTime(e):-1,t.resetTimers=()=>{this.raw.timerEnabled()&&(this.startTimes={},this.accumulatedTimes={})},this.raw=new r.Module.RecastBuildContext(t),this.raw.enableTimer(e),this.raw.enableLog(e),this.resetTimers()}log(e,t){this.logs.push({category:e,msg:t})}resetLog(){this.logs=[]}startTimer(e){this.startTimes[e]=performance.now()}stopTimer(e){const t=performance.now()-this.startTimes[e];-1===this.accumulatedTimes[e]?this.accumulatedTimes[e]=t:this.accumulatedTimes[e]+=t}getAccumulatedTime(e){return this.accumulatedTimes[e]}resetTimers(){for(let e=0;e<r.Module.RC_MAX_TIMERS;e++)this.startTimes[e]=-1,this.accumulatedTimes[e]=-1}}class G{constructor(e){this.raw=e??new r.rcChunkyTriMesh}init(e,t,s,a){return r.ChunkyTriMeshUtils.createChunkyTriMesh(e.raw,t.raw,s,a,this.raw)}getChunksOverlappingRect(e,t,s,a){return r.ChunkyTriMeshUtils.getChunksOverlappingRect(this.raw,e,t,s.raw,a)}getNodeTris(e){return i.fromRaw(r.ChunkyTriMeshUtils.getChunkyTriMeshNodeTris(this.raw,e))}nodes(e){return this.raw.get_nodes(e)}maxTrisPerChunk(){return this.raw.maxTrisPerChunk}}class X{constructor(e){this.raw=e}smin(){return this.raw.smin}smax(){return this.raw.smax}area(){return this.raw.area}next(){return r.isNull(this.raw.next)?null:new X(this.raw.next)}}class j{constructor(e){this.raw=e}next(){return r.isNull(this.raw.next)?null:new j(this.raw.next)}items(e){return new X(this.raw.get_items(e))}}class Z{constructor(e){this.raw=e}width(){return this.raw.width}height(){return this.raw.height}bmin(){return y.fromArray(m((e=>this.raw.get_bmin(e)),3))}bmax(){return y.fromArray(m((e=>this.raw.get_bmax(e)),3))}cs(){return this.raw.cs}ch(){return this.raw.ch}spans(e){return new X(this.raw.get_spans(e))}pools(e){return new j(this.raw.get_pools(e))}freelist(e){return new X(this.raw.get_freelist(e))}}class ${constructor(e){this.raw=e}index(){return this.raw.get_index()}count(){return this.raw.get_count()}}class J{constructor(e){this.raw=e}y(){return this.raw.get_y()}reg(){return this.raw.get_reg()}con(){return this.raw.get_con()}h(){return this.raw.get_h()}}class K{constructor(e){this.raw=e}width(){return this.raw.width}height(){return this.raw.height}spanCount(){return this.raw.spanCount}walkableHeight(){return this.raw.walkableHeight}walkableClimb(){return this.raw.walkableClimb}borderSize(){return this.raw.borderSize}maxDistance(){return this.raw.maxDistance}maxRegions(){return this.raw.maxRegions}bmin(){return y.fromArray(m((e=>this.raw.get_bmin(e)),3))}bmax(){return y.fromArray(m((e=>this.raw.get_bmax(e)),3))}cs(){return this.raw.cs}ch(){return this.raw.ch}cells(e){return new $(this.raw.get_cells(e))}spans(e){return new J(this.raw.get_spans(e))}dist(e){return this.raw.get_dist(e)}areas(e){return this.raw.get_areas(e)}}class ee{constructor(e){this.raw=e}verts(e){return this.raw.get_verts(e)}nverts(){return this.raw.nverts}rverts(e){return this.raw.get_rverts(e)}nrverts(){return this.raw.nrverts}reg(){return this.raw.reg}area(){return this.raw.area}}class te{constructor(e){this.raw=e}conts(e){return new ee(this.raw.get_conts(e))}nconts(){return this.raw.nconts}bmin(){return y.fromArray(m((e=>this.raw.get_bmin(e)),3))}bmax(){return y.fromArray(m((e=>this.raw.get_bmax(e)),3))}cs(){return this.raw.cs}ch(){return this.raw.ch}width(){return this.raw.width}height(){return this.raw.height}borderSize(){return this.raw.borderSize}maxError(){return this.raw.maxError}}class re{constructor(e){this.raw=e}bmin(){return y.fromArray(m((e=>this.raw.get_bmin(e)),3))}bmax(){return y.fromArray(m((e=>this.raw.get_bmax(e)),3))}cs(){return this.raw.cs}ch(){return this.raw.ch}width(){return this.raw.width}height(){return this.raw.height}minx(){return this.raw.minx}maxx(){return this.raw.maxx}miny(){return this.raw.miny}maxy(){return this.raw.maxy}hmin(){return this.raw.hmin}hmax(){return this.raw.hmax}heights(e){return this.raw.get_heights(e)}areas(e){return this.raw.get_areas(e)}cons(e){return this.raw.get_cons(e)}}class se{constructor(e){this.raw=e}layers(e){return new re(this.raw.get_layers(e))}nlayers(){return this.raw.nlayers}}class ae{constructor(e){this.raw=e}verts(e){return this.raw.get_verts(e)}polys(e){return this.raw.get_polys(e)}regs(e){return this.raw.get_regs(e)}flags(e){return this.raw.get_flags(e)}setFlags(e,t){this.raw.set_flags(e,t)}areas(e){return this.raw.get_areas(e)}setAreas(e,t){return this.raw.set_areas(e,t)}nverts(){return this.raw.nverts}npolys(){return this.raw.npolys}maxpolys(){return this.raw.maxpolys}nvp(){return this.raw.nvp}bmin(){return y.fromArray(m((e=>this.raw.get_bmin(e)),3))}bmax(){return y.fromArray(m((e=>this.raw.get_bmax(e)),3))}cs(){return this.raw.cs}ch(){return this.raw.ch}borderSize(){return this.raw.borderSize}maxEdgeError(){return this.raw.maxEdgeError}}class ie{constructor(e){this.raw=e}meshes(e){return this.raw.get_meshes(e)}verts(e){return this.raw.get_verts(e)}tris(e){return this.raw.get_tris(e)}nmeshes(){return this.raw.nmeshes}nverts(){return this.raw.nverts}ntris(){return this.raw.ntris}}const ne=(e,t)=>r.Recast.calcBounds(e.raw,t),oe=(e,t,s)=>r.Recast.calcGridSize(e,t,s),le=(e,t,s,a,i,n,o,l)=>r.Recast.createHeightfield(e.raw,t.raw,s,a,i,n,o,l),ue=(e,t,s,a,i,n,o)=>r.Recast.markWalkableTriangles(e.raw,t,s.raw,a,i.raw,n,o.raw),he=(e,t,s,a,i,n,o)=>r.Recast.clearUnwalkableTriangles(e.raw,t,s.raw,a,i.raw,n,o.raw),we=(e,t,s,a,i,n,o,l=1)=>r.Recast.rasterizeTriangles(e.raw,t.raw,s,a.raw,i.raw,n,o.raw,l),ce=(e,t,s)=>r.Recast.filterLowHangingWalkableObstacles(e.raw,t,s.raw),de=(e,t,s,a)=>r.Recast.filterLedgeSpans(e.raw,t,s,a.raw),ge=(e,t,s)=>r.Recast.filterWalkableLowHeightSpans(e.raw,t,s.raw),ye=(e,t)=>r.Recast.getHeightFieldSpanCount(e.raw,t.raw),me=(e,t,s,a,i)=>r.Recast.buildCompactHeightfield(e.raw,t,s,a.raw,i.raw),fe=(e,t,s)=>r.Recast.erodeWalkableArea(e.raw,t,s.raw),pe=(e,t)=>r.Recast.medianFilterWalkableArea(e.raw,t.raw),xe=(e,t,s,a,i)=>r.Recast.markBoxArea(e.raw,t,s,a,i.raw),Re=(e,t,s,a,i,n,o)=>r.Recast.markConvexPolyArea(e.raw,t.raw,s,a,i,n,o.raw),be=(e,t,s,a,i,n)=>r.Recast.markCylinderArea(e.raw,t,s,a,i,n.raw),Ae=(e,t)=>r.Recast.buildDistanceField(e.raw,t.raw),Pe=(e,t,s,a,i)=>r.Recast.buildRegions(e.raw,t.raw,s,a,i),_e=(e,t,s,a)=>r.Recast.buildLayerRegions(e.raw,t.raw,s,a),Ce=(e,t,s,a,i)=>r.Recast.buildRegionsMonotone(e.raw,t.raw,s,a,i),Me=(e,t,s)=>r.Recast.setCon(e.raw,t,s),Te=(e,t)=>r.Recast.getCon(e.raw,t),ve=e=>r.Recast.getDirOffsetX(e),Se=e=>r.Recast.getDirOffsetY(e),De=(e,t)=>r.Recast.getDirForOffset(e,t),Ee=(e,t,s,a,i)=>r.Recast.buildHeightfieldLayers(e.raw,t.raw,s,a,i.raw),ze=(e,t,s,a,i,n=r.Module.RC_CONTOUR_TESS_WALL_EDGES)=>r.Recast.buildContours(e.raw,t.raw,s,a,i.raw,n),Fe=(e,t,s,a)=>r.Recast.buildPolyMesh(e.raw,t.raw,s,a.raw),ke=(e,t,s)=>r.Recast.mergePolyMeshes(e.raw,t.map((e=>e.raw)),t.length,s.raw),Oe=(e,t,s,a,i,n)=>r.Recast.buildPolyMeshDetail(e.raw,t.raw,s.raw,a,i,n.raw),He=(e,t,s)=>r.Recast.copyPolyMesh(e.raw,t.raw,s.raw),Ne=(e,t,s)=>r.Recast.mergePolyMeshDetails(e.raw,t.map((e=>e.raw)),t.length,s.raw),Ie=e=>o.fromRaw(r.Recast.getHeightfieldLayerHeights(e.raw)),Ue=e=>o.fromRaw(r.Recast.getHeightfieldLayerAreas(e.raw)),Ve=e=>o.fromRaw(r.Recast.getHeightfieldLayerCons(e.raw)),Le=()=>new Z(r.Recast.allocHeightfield()),Be=e=>r.Recast.freeHeightfield(e.raw),Qe=()=>new K(r.Recast.allocCompactHeightfield()),We=e=>r.Recast.freeCompactHeightfield(e.raw),qe=()=>new se(r.Recast.allocHeightfieldLayerSet()),Ye=e=>r.Recast.freeHeightfieldLayerSet(e.raw),Ge=()=>new te(r.Recast.allocContourSet()),Xe=e=>r.Recast.freeContourSet(e.raw),je=()=>new ae(r.Recast.allocPolyMesh()),Ze=e=>r.Recast.freePolyMesh(e.raw),$e=()=>new ie(r.Recast.allocPolyMeshDetail()),Je=e=>r.Recast.freePolyMeshDetail(e.raw),Ke=(e,t)=>{const s=r.NavMeshExporter.exportNavMesh(e.raw,t?.raw),a=new Uint8Array(r.Module.HEAPU8.buffer,s.dataPointer,s.size),i=new Uint8Array(s.size);return i.set(a),r.NavMeshExporter.freeNavMeshExport(s),i};class et{constructor(e){this.raw=e}static create(e){const t=new r.Module.dtTileCacheParams;return t.set_orig(0,e.orig[0]),t.set_orig(1,e.orig[1]),t.set_orig(2,e.orig[2]),t.set_cs(e.cs),t.set_ch(e.ch),t.set_width(e.width),t.set_height(e.height),t.set_walkableHeight(e.walkableHeight),t.set_walkableRadius(e.walkableRadius),t.set_walkableClimb(e.walkableClimb),t.set_maxSimplificationError(e.maxSimplificationError),t.set_maxTiles(e.maxTiles),t.set_maxObstacles(e.maxObstacles),new et(t)}}class tt{obstacles=new Map;constructor(e){this.raw=e??new r.Module.TileCache}init(e,t,r,s){return this.raw.init(e.raw,t,r,s.raw)}update(e){const{status:t,upToDate:s}=this.raw.update(e.raw);return{success:r.Detour.statusSucceed(t),status:t,upToDate:s}}addCylinderObstacle(e,t,s){const a=this.raw.addCylinderObstacle(y.toRaw(e),t,s);if(a.status!==r.Detour.SUCCESS)return{success:!1,status:a.status};const i=a.ref,n={type:"cylinder",ref:i,position:e,radius:t,height:s};return this.obstacles.set(i,n),{success:!0,status:a.status,obstacle:n}}addBoxObstacle(e,t,s){const a=this.raw.addBoxObstacle(y.toRaw(e),y.toRaw(t),s);if(a.status!==r.Detour.SUCCESS)return{success:!1,status:a.status};const i=a.ref,n={type:"box",ref:i,position:e,extent:t,angle:s};return this.obstacles.set(i,n),{success:!0,status:a.status,obstacle:n}}removeObstacle(e){let t;t="object"==typeof e?e.ref:e,this.obstacles.delete(t);const s=this.raw.removeObstacle(t);return{success:r.Detour.statusSucceed(s),status:s}}addTile(e,t=r.Module.DT_COMPRESSEDTILE_FREE_DATA){return this.raw.addTile(e.raw,t)}buildNavMeshTile(e,t){return this.raw.buildNavMeshTile(e,t.raw)}buildNavMeshTilesAt(e,t,r){return this.raw.buildNavMeshTilesAt(e,t,r.raw)}destroy(){this.raw.destroy()}}class rt{constructor(e){this.raw=new r.Module.TileCacheMeshProcess,this.raw.process=(t,s,a)=>{const i=new H(r.Module.wrapPointer(t,r.Module.dtNavMeshCreateParams)),n=r.Module.wrapPointer(s,r.Module.UnsignedCharArray),u=r.Module.wrapPointer(a,r.Module.UnsignedShortArray);e(i,o.fromRaw(n),l.fromRaw(u))}}}const st=(e,t,s,a,i,n)=>r.DetourTileCacheBuilder.buildTileCacheLayer(e,t,s.raw,a.raw,i.raw,n.raw),at=(e,t)=>{const s=e.length*e.BYTES_PER_ELEMENT,a=r.Module._malloc(s),i=new Uint8Array(r.Module.HEAPU8.buffer,a,s);i.set(e);const n=new r.Module.NavMeshExport;n.dataPointer=i.byteOffset,n.size=e.length;const o=r.NavMeshImporter.importNavMesh(n,t?.raw);r.Module._free(i.byteOffset);const l=o.navMesh,u=o.tileCache;return{navMesh:new B(l),tileCache:new tt(u)}};export{d as ChunkIdsArray,A as Crowd,b as CrowdAgent,D as DetourBVNode,S as DetourLink,z as DetourMeshHeader,k as DetourMeshTile,E as DetourOffMeshConnection,F as DetourPoly,v as DetourPolyDetail,et as DetourTileCacheParams,u as FloatArray,i as IntArray,B as NavMesh,U as NavMeshCalcTileLocResult,H as NavMeshCreateParams,N as NavMeshGetTilesAtResult,L as NavMeshParams,x as NavMeshQuery,I as NavMeshRemoveTileResult,V as NavMeshStoreTileStateResult,p as QueryFilter,r as Raw,Y as RecastBuildContext,G as RecastChunkyTriMesh,$ as RecastCompactCell,K as RecastCompactHeightfield,J as RecastCompactSpan,ee as RecastContour,te as RecastContourSet,Z as RecastHeightfield,re as RecastHeightfieldLayer,se as RecastHeightfieldLayerSet,ae as RecastPolyMesh,ie as RecastPolyMeshDetail,X as RecastSpan,j as RecastSpanPool,tt as TileCache,g as TileCacheData,rt as TileCacheMeshProcess,c as TriangleAreasArray,w as TrianglesArray,o as UnsignedCharArray,n as UnsignedIntArray,l as UnsignedShortArray,h as VerticesArray,Qe as allocCompactHeightfield,Ge as allocContourSet,Le as allocHeightfield,qe as allocHeightfieldLayerSet,je as allocPolyMesh,$e as allocPolyMeshDetail,m as array,me as buildCompactHeightfield,ze as buildContours,Ae as buildDistanceField,Ee as buildHeightfieldLayers,_e as buildLayerRegions,Fe as buildPolyMesh,Oe as buildPolyMeshDetail,Pe as buildRegions,Ce as buildRegionsMonotone,st as buildTileCacheLayer,ne as calcBounds,oe as calcGridSize,he as clearUnwalkableTriangles,q as cloneRcConfig,He as copyPolyMesh,le as createHeightfield,O as createNavMeshData,W as createRcConfig,R as crowdAgentParamsDefaults,fe as erodeWalkableArea,Ke as exportNavMesh,de as filterLedgeSpans,ce as filterLowHangingWalkableObstacles,ge as filterWalkableLowHeightSpans,We as freeCompactHeightfield,Xe as freeContourSet,Be as freeHeightfield,Ye as freeHeightfieldLayerSet,Ze as freePolyMesh,Je as freePolyMeshDetail,Te as getCon,De as getDirForOffset,ve as getDirOffsetX,Se as getDirOffsetY,ye as getHeightFieldSpanCount,Ue as getHeightfieldLayerAreas,Ve as getHeightfieldLayerCons,Ie as getHeightfieldLayerHeights,at as importNavMesh,s as init,xe as markBoxArea,Re as markConvexPolyArea,be as markCylinderArea,ue as markWalkableTriangles,pe as medianFilterWalkableArea,Ne as mergePolyMeshDetails,ke as mergePolyMeshes,f as range,we as rasterizeTriangles,Q as recastConfigDefaults,Me as setCon,M as statusDetail,_ as statusFailed,C as statusInProgress,P as statusSucceed,T as statusToReadableString,y as vec3};
1
+ const e=["Recast","Detour","DetourNavMeshBuilder","DetourTileCacheBuilder","NavMeshImporter","NavMeshExporter","CrowdUtils","ChunkyTriMeshUtils","RecastDebugDraw","DetourDebugDraw"],t=["rcConfig","rcContext","dtNavMeshParams","dtNavMeshCreateParams","RecastLinearAllocator","RecastFastLZCompressor","rcChunkyTriMesh","dtTileCacheParams","dtTileCacheLayerHeader","Vec3","BoolRef","IntRef","UnsignedIntRef","UnsignedCharRef","UnsignedShortRef","FloatRef","IntArray","UnsignedIntArray","UnsignedCharArray","UnsignedShortArray","FloatArray"],r={isNull:e=>0===r.Module.getPointer(e),destroy:e=>{r.Module.destroy(e)}},s=async s=>{if(void 0===r.Module){if(s)r.Module=await s();else{const e=(await import("@recast-navigation/wasm")).default;r.Module=await e()}for(const t of e)r[t]=new r.Module[t];for(const e of t)r[e]=r.Module[e]}};class a{get size(){return this.raw.size}constructor(e){this.raw=e}get(e){return this.raw.get(e)}set(e,t){this.raw.set(e,t)}resize(e){this.raw.resize(e)}copy(e){this.raw.resize(e.length);this.getHeapView().set(e)}destroy(){r.destroy(this.raw)}getHeapView(){const e=this.getHeap();return new this.typedArrayClass(e.buffer,this.raw.getDataPointer(),this.size)}toTypedArray(){const e=this.getHeapView(),t=new this.typedArrayClass(this.size);return t.set(e),t}}class i extends a{typedArrayClass=Int32Array;constructor(e){super(e??new r.Module.IntArray)}getHeap(){return r.Module.HEAP32}static fromRaw(e){return new this(e)}}class n extends a{typedArrayClass=Uint32Array;constructor(e){super(e??new r.Module.UnsignedIntArray)}getHeap(){return r.Module.HEAPU32}static fromRaw(e){return new this(e)}}class o extends a{typedArrayClass=Uint8Array;constructor(e){super(e??new r.Module.UnsignedCharArray)}getHeap(){return r.Module.HEAPU8}static fromRaw(e){return new this(e)}}class l extends a{typedArrayClass=Uint16Array;constructor(e){super(e??new r.Module.UnsignedShortArray)}getHeap(){return r.Module.HEAPU16}static fromRaw(e){return new this(e)}}class u extends a{typedArrayClass=Float32Array;constructor(e){super(e??new r.Module.FloatArray)}getHeap(){return r.Module.HEAPF32}static fromRaw(e){return new this(e)}}const h=u,w=i,c=o,d=i,g=o,y={toRaw:({x:e,y:t,z:s},a)=>a?(a.x=e,a.y=t,a.z=s,a):new r.Module.Vec3(e,t,s),fromRaw:e=>{const{x:t,y:r,z:s}=e;return{x:t,y:r,z:s}},fromArray:([e,t,r])=>({x:e,y:t,z:r}),toArray:({x:e,y:t,z:r})=>[e,t,r],lerp:(e,t,r,s={x:0,y:0,z:0})=>{s.x=e.x+(t.x-e.x)*r,s.y=e.y+(t.y-e.y)*r,s.z=e.z+(t.z-e.z)*r},copy:(e,t={x:0,y:0,z:0})=>{t.x=e.x,t.y=e.y,t.z=e.z}},m=(e,t)=>{const r=[];for(let s=0;s<t;s++)r.push(e(s));return r},f=e=>[...Array(e)].map(((e,t)=>t));class p{get includeFlags(){return this.raw.getIncludeFlags()}set includeFlags(e){this.raw.setIncludeFlags(e)}get excludeFlags(){return this.raw.getExcludeFlags()}set excludeFlags(e){this.raw.setExcludeFlags(e)}constructor(e){this.raw=e??new r.Module.dtQueryFilter}getAreaCost(e){return this.raw.getAreaCost(e)}setAreaCost(e,t){return this.raw.setAreaCost(e,t)}}class x{defaultQueryHalfExtents={x:1,y:1,z:1};constructor(e,t){e instanceof r.Module.NavMeshQuery?this.raw=e:(this.raw=new r.Module.NavMeshQuery,this.raw.init(e.raw,t?.maxNodes??2048)),t?.defaultQueryFilter?this.defaultFilter=t.defaultQueryFilter:(this.defaultFilter=new p,this.defaultFilter.includeFlags=65535,this.defaultFilter.excludeFlags=0)}findNearestPoly(e,t){const s=new r.UnsignedIntRef,a=new r.Vec3,i=new r.BoolRef,n=this.raw.findNearestPoly(y.toArray(e),y.toArray(t?.halfExtents??this.defaultQueryHalfExtents),t?.filter?.raw??this.defaultFilter.raw,s,a,i),o=y.fromRaw(a);r.destroy(a);const l=s.value;r.destroy(s);const u=i.value;return r.destroy(i),{success:r.Detour.statusSucceed(n),status:n,nearestRef:l,nearestPoint:o,isOverPoly:u}}findPolysAroundCircle(e,t,s,a){const i=a?.filter??this.defaultFilter,o=a?.maxPolys??256,l=new n,h=new n,w=new u;l.resize(o),h.resize(o),w.resize(o);const c=new r.IntRef,d=this.raw.findPolysAroundCircle(e,y.toArray(t),s,i.raw,l.raw,h.raw,w.raw,c,o),g=[...l.getHeapView()];l.destroy();const m=[...h.getHeapView()];h.destroy();const f=[...w.getHeapView()];w.destroy();const p=c.value;return r.destroy(c),{success:r.Detour.statusSucceed(d),status:d,resultRefs:g,resultParents:m,resultCost:f,resultCount:p}}queryPolygons(e,t,s){const a=s?.filter??this.defaultFilter,i=s?.maxPolys??256,o=new n;o.resize(i);const l=new r.IntRef,u=this.raw.queryPolygons(y.toArray(e),y.toArray(t),a.raw,o.raw,l,i),h=l.value;r.destroy(l);const w=[...o.getHeapView()];return o.destroy(),{success:r.Detour.statusSucceed(u),status:u,polyRefs:w,polyCount:h}}closestPointOnPoly(e,t){const s=new r.Vec3,a=new r.BoolRef,i=this.raw.closestPointOnPoly(e,y.toArray(t),s,a),n=y.fromRaw(s);r.destroy(s);const o=a.value;return r.destroy(a),{success:r.Detour.statusSucceed(i),status:i,closestPoint:n,isPointOverPoly:o}}findClosestPoint(e,t){const s=t?.filter??this.defaultFilter,a=t?.halfExtents??this.defaultQueryHalfExtents,i=new r.UnsignedIntRef,n=new r.Vec3,o=new r.BoolRef,l=this.raw.findClosestPoint(y.toArray(e),y.toArray(a),s.raw,i,n,o),u=i.value;r.destroy(i);const h=y.fromRaw(n);r.destroy(n);const w=o.value;return r.destroy(o),{success:r.Detour.statusSucceed(l),status:l,polyRef:u,point:h,isPointOverPoly:w}}findRandomPointAroundCircle(e,t,s){const a=s?.filter??this.defaultFilter,i=s?.halfExtents??this.defaultQueryHalfExtents;let n;if(s?.startRef)n=s.startRef;else{const t=this.findNearestPoly(e,{filter:a,halfExtents:i});if(!t.success)return{success:!1,status:t.status,randomPolyRef:0,randomPoint:{x:0,y:0,z:0}};n=t.nearestRef}const o=new r.UnsignedIntRef,l=new r.Vec3,u=this.raw.findRandomPointAroundCircle(n,y.toArray(e),t,a.raw,o,l),h=o.value;r.destroy(o);const w=y.fromRaw(l);return r.destroy(l),{success:r.Detour.statusSucceed(u),status:u,randomPolyRef:h,randomPoint:w}}moveAlongSurface(e,t,s,a){const i=a?.maxVisitedSize??256,o=new r.Vec3,l=new n,u=a?.filter?.raw??this.defaultFilter.raw,h=this.raw.moveAlongSurface(e,y.toArray(t),y.toArray(s),u,o,l.raw,i),w=y.fromRaw(o);r.destroy(o);const c=[...l.getHeapView()];return l.destroy(),{success:r.Detour.statusSucceed(h),status:h,resultPosition:w,visited:c}}findRandomPoint(e){const t=new r.UnsignedIntRef,s=new r.Vec3,a=this.raw.findRandomPoint(e?.filter?.raw??this.defaultFilter.raw,t,s),i=t.value;r.destroy(t);const n=y.fromRaw(s);return r.destroy(s),{success:r.Detour.statusSucceed(a),status:a,randomPolyRef:i,randomPoint:n}}getPolyHeight(e,t){const s=new r.FloatRef,a=this.raw.getPolyHeight(e,y.toArray(t),s),i=s.value;return r.destroy(s),{success:r.Detour.statusSucceed(a),status:a,height:i}}computePath(e,t,r){const s=r?.filter??this.defaultFilter,a=r?.halfExtents??this.defaultQueryHalfExtents,i=this.findNearestPoly(e,{filter:s,halfExtents:a});if(!i.success)return{success:!1,error:{name:"findNearestPoly for start position failed",status:i.status},path:[]};const n=this.findNearestPoly(t,{filter:s,halfExtents:a});if(!n.success)return{success:!1,error:{name:"findNearestPoly for end position failed",status:n.status},path:[]};const o=i.nearestRef,l=n.nearestRef,u=r?.maxPathPolys??256,h=this.findPath(o,l,e,t,{filter:s,maxPathPolys:u});if(!h.success)return{success:!1,error:{name:"findPath unsuccessful",status:h.status},path:[]};if(h.polys.size<=0)return{success:!1,error:{name:"no polygon path found"},path:[]};const w=h.polys.get(h.polys.size-1);let c={x:t.x,y:t.y,z:t.z};if(w!==l){const e=this.closestPointOnPoly(w,t);if(!e.success)return{success:!1,error:{name:"no closest point on last polygon found",status:e.status},path:[]};c=e.closestPoint}const d=r?.maxStraightPathPoints,g=this.findStraightPath(e,c,h.polys,{maxStraightPathPoints:d});if(!g.success)return{success:!1,error:{name:"findStraightPath unsuccessful",status:g.status},path:[]};const{straightPath:y,straightPathCount:m}=g,f=[];for(let e=0;e<m;e++)f.push({x:y.get(3*e),y:y.get(3*e+1),z:y.get(3*e+2)});return h.polys.destroy(),g.straightPath.destroy(),g.straightPathFlags.destroy(),g.straightPathRefs.destroy(),{success:!0,path:f}}findPath(e,t,s,a,i){const o=i?.filter??this.defaultFilter,l=i?.maxPathPolys??256,u=new n;u.resize(l);const h=this.raw.findPath(e,t,y.toArray(s),y.toArray(a),o.raw,u.raw,l);return{success:r.Detour.statusSucceed(h),status:h,polys:u}}findStraightPath(e,t,s,a){const i=a?.maxStraightPathPoints??256,l=a?.straightPathOptions??0;let h;Array.isArray(s)?(h=new n,h.copy(s)):h=s;const w=new u;w.resize(3*i);const c=new o;c.resize(i);const d=new n;d.resize(i);const g=new r.IntRef,m=this.raw.findStraightPath(y.toArray(e),y.toArray(t),h.raw,w.raw,c.raw,d.raw,g,i,l),f=g.value;return r.destroy(g),Array.isArray(s)&&h.destroy(),{success:r.Detour.statusSucceed(m),status:m,straightPath:w,straightPathFlags:c,straightPathRefs:d,straightPathCount:f}}raycast(e,t,s,a){const i=new r.Module.dtRaycastHit,n=a?.raycastOptions??0,o=a?.prevRef??0,l=a?.filter?.raw??this.defaultFilter.raw,u=this.raw.raycast(e,y.toArray(t),y.toArray(s),l,n,i,o),h={success:r.Detour.statusSucceed(u),status:u,t:i.t,hitNormal:y.fromArray(m((e=>i.get_hitNormal(e)),3)),hitEdgeIndex:i.hitEdgeIndex,path:m((e=>i.get_path(e)),i.pathCount),maxPath:i.maxPath,pathCost:i.pathCost};return r.destroy(i),h}destroy(){this.raw.destroy()}}const R={radius:.5,height:1,maxAcceleration:20,maxSpeed:6,collisionQueryRange:2.5,pathOptimizationRange:0,separationWeight:0,updateFlags:7,obstacleAvoidanceType:0,queryFilterType:0,userData:0};class b{get radius(){return this.raw.params.radius}set radius(e){this.raw.params.radius=e}get height(){return this.raw.params.height}set height(e){this.raw.params.height=e}get maxAcceleration(){return this.raw.params.maxAcceleration}set maxAcceleration(e){this.raw.params.maxAcceleration=e}get maxSpeed(){return this.raw.params.maxSpeed}set maxSpeed(e){this.raw.params.maxSpeed=e}get collisionQueryRange(){return this.raw.params.collisionQueryRange}set collisionQueryRange(e){this.raw.params.collisionQueryRange=e}get pathOptimizationRange(){return this.raw.params.pathOptimizationRange}set pathOptimizationRange(e){this.raw.params.pathOptimizationRange=e}get separationWeight(){return this.raw.params.separationWeight}set separationWeight(e){this.raw.params.separationWeight=e}get updateFlags(){return this.raw.params.updateFlags}set updateFlags(e){this.raw.params.updateFlags=e}get obstacleAvoidanceType(){return this.raw.params.obstacleAvoidanceType}set obstacleAvoidanceType(e){this.raw.params.obstacleAvoidanceType=e}get queryFilterType(){return this.raw.params.queryFilterType}set queryFilterType(e){this.raw.params.queryFilterType=e}get userData(){return this.raw.params.userData}set userData(e){this.raw.params.userData=e}interpolatedPosition={x:0,y:0,z:0};constructor(e,t){this.crowd=e,this.agentIndex=t,this.raw=e.raw.getEditableAgent(t),this.interpolatedPosition=this.position()}requestMoveTarget(e){const{nearestPoint:t,nearestRef:r}=this.crowd.navMeshQuery.findNearestPoly(e,{halfExtents:this.crowd.navMeshQuery.defaultQueryHalfExtents,filter:this.crowd.navMeshQuery.defaultFilter});return this.crowd.raw.requestMoveTarget(this.agentIndex,r,y.toArray(t))}requestMoveVelocity(e){return this.crowd.raw.requestMoveVelocity(this.agentIndex,y.toArray(e))}resetMoveTarget(){this.crowd.raw.resetMoveTarget(this.agentIndex)}teleport(e){r.CrowdUtils.agentTeleport(this.crowd.raw,this.agentIndex,y.toArray(e),y.toArray(this.crowd.navMeshQuery.defaultQueryHalfExtents),this.crowd.navMeshQuery.defaultFilter.raw),y.copy(e,this.interpolatedPosition)}position(){return{x:this.raw.get_npos(0),y:this.raw.get_npos(1),z:this.raw.get_npos(2)}}velocity(){return{x:this.raw.get_vel(0),y:this.raw.get_vel(1),z:this.raw.get_vel(2)}}desiredVelocity(){return{x:this.raw.get_dvel(0),y:this.raw.get_dvel(1),z:this.raw.get_dvel(2)}}desiredVelocityObstacleAdjusted(){return{x:this.raw.get_nvel(0),y:this.raw.get_nvel(1),z:this.raw.get_nvel(2)}}state(){return this.raw.state}target(){return{x:this.raw.get_targetPos(0),y:this.raw.get_targetPos(1),z:this.raw.get_targetPos(2)}}nextTargetInPath(){return{x:this.raw.get_cornerVerts(0),y:this.raw.get_cornerVerts(1),z:this.raw.get_cornerVerts(2)}}corners(){const e=[];for(let t=0;t<this.raw.ncorners;t++)e.push({x:this.raw.get_cornerVerts(3*t),y:this.raw.get_cornerVerts(3*t+1),z:this.raw.get_cornerVerts(3*t+2)});return e}parameters(){const{params:e}=this.raw;return{radius:e.radius,height:e.height,maxAcceleration:e.maxAcceleration,maxSpeed:e.maxSpeed,collisionQueryRange:e.collisionQueryRange,pathOptimizationRange:e.pathOptimizationRange,separationWeight:e.separationWeight,updateFlags:e.updateFlags,obstacleAvoidanceType:e.obstacleAvoidanceType,queryFilterType:e.queryFilterType,userData:e.userData}}updateParameters(e){const t={...this.parameters(),...e};this.setParameters(t)}setParameters(e){const t={...R,...e},s=new r.Module.dtCrowdAgentParams;s.radius=t.radius,s.height=t.height,s.maxAcceleration=t.maxAcceleration,s.maxSpeed=t.maxSpeed,s.collisionQueryRange=t.collisionQueryRange,s.pathOptimizationRange=t.pathOptimizationRange,s.separationWeight=t.separationWeight,s.updateFlags=t.updateFlags,s.obstacleAvoidanceType=t.obstacleAvoidanceType,s.queryFilterType=t.queryFilterType,s.userData=t.userData,this.crowd.raw.updateAgentParameters(this.agentIndex,s)}overOffMeshConnection(){return r.CrowdUtils.overOffMeshConnection(this.crowd.raw,this.agentIndex)}}class A{agents={};accumulator=0;constructor(e,{maxAgents:t,maxAgentRadius:s}){this.navMesh=e,this.raw=r.Detour.allocCrowd(),this.raw.init(t,s,e.raw.getNavMesh()),this.navMeshQuery=new x(new r.Module.NavMeshQuery(this.raw.getNavMeshQuery()))}update(e,t,r=10){if(void 0===t)this.raw.update(e,void 0);else{this.accumulator+=t;let s=0;for(;this.accumulator>=e&&s<r;)this.raw.update(e,void 0),this.accumulator-=e,s++;const a=this.accumulator%e/e,i=this.getAgents();for(const e of i)y.lerp(e.interpolatedPosition,e.position(),a,e.interpolatedPosition)}}addAgent(e,t){const s={...R,...t},a=new r.Module.dtCrowdAgentParams;a.radius=s.radius,a.height=s.height,a.maxAcceleration=s.maxAcceleration,a.maxSpeed=s.maxSpeed,a.collisionQueryRange=s.collisionQueryRange,a.pathOptimizationRange=s.pathOptimizationRange,a.separationWeight=s.separationWeight,a.updateFlags=s.updateFlags,a.obstacleAvoidanceType=s.obstacleAvoidanceType,a.queryFilterType=s.queryFilterType,a.userData=s.userData;const i=this.raw.addAgent(y.toArray(e),a),n=new b(this,i);return this.agents[i]=n,n}getAgent(e){const t=this.agents[e];return t||null}removeAgent(e){const t="number"==typeof e?e:e.agentIndex;this.raw.removeAgent(t),delete this.agents[t]}getAgentCount(){return this.raw.getAgentCount()}getActiveAgentCount(){return r.CrowdUtils.getActiveAgentCount(this.raw)}getAgents(){return Object.values(this.agents)}getFilter(e){return new p(this.raw.getEditableFilter(e))}destroy(){r.Detour.freeCrowd(this.raw)}}const P=e=>r.Detour.statusSucceed(e),C=e=>r.Detour.statusFailed(e),M=e=>r.Detour.statusInProgress(e),_=(e,t)=>r.Detour.statusDetail(e,t),T=e=>{if(r.Detour.statusSucceed(e))return"success";if(r.Detour.statusInProgress(e))return"in progress";if(r.Detour.statusFailed(e)){let t;const s={DT_WRONG_MAGIC:r.Detour.WRONG_MAGIC,DT_WRONG_VERSION:r.Detour.WRONG_VERSION,DT_OUT_OF_MEMORY:r.Detour.OUT_OF_MEMORY,DT_INVALID_PARAM:r.Detour.INVALID_PARAM,DT_BUFFER_TOO_SMALL:r.Detour.BUFFER_TOO_SMALL,DT_OUT_OF_NODES:r.Detour.OUT_OF_NODES,DT_PARTIAL_RESULT:r.Detour.PARTIAL_RESULT,DT_ALREADY_OCCUPIED:r.Detour.ALREADY_OCCUPIED};for(const[a,i]of Object.entries(s))if(r.Detour.statusDetail(e,i)){t=a;break}return t?`failed - ${t}`:"failed - unknown"}return"unknown"};class v{constructor(e){this.raw=e}vertBase(){return this.raw.vertBase}triBase(){return this.raw.triBase}vertCount(){return this.raw.vertCount}triCount(){return this.raw.triCount}}class S{constructor(e){this.raw=e}ref(){return this.raw.ref}next(){return this.raw.next}edge(){return this.raw.edge}side(){return this.raw.side}bmin(){return this.raw.bmin}bmax(){return this.raw.bmax}}class D{constructor(e){this.raw=e}bmin(){return y.fromArray(m((e=>this.raw.get_bmin(e)),3))}bmax(){return y.fromArray(m((e=>this.raw.get_bmax(e)),3))}i(){return this.raw.i}}class E{constructor(e){this.raw=e}pos(e){return this.raw.get_pos(e)}rad(){return this.raw.rad}poly(){return this.raw.poly}flags(){return this.raw.flags}side(){return this.raw.side}userId(){return this.raw.userId}}class F{constructor(e){this.raw=e}magic(){return this.raw.magic}version(){return this.raw.version}x(){return this.raw.x}y(){return this.raw.y}layer(){return this.raw.layer}userId(){return this.raw.userId}polyCount(){return this.raw.polyCount}vertCount(){return this.raw.vertCount}maxLinkCount(){return this.raw.maxLinkCount}detailMeshCount(){return this.raw.detailMeshCount}detailVertCount(){return this.raw.detailVertCount}detailTriCount(){return this.raw.detailTriCount}bvNodeCount(){return this.raw.bvNodeCount}offMeshConCount(){return this.raw.offMeshConCount}offMeshBase(){return this.raw.offMeshBase}walkableHeight(){return this.raw.walkableHeight}walkableRadius(){return this.raw.walkableRadius}walkableClimb(){return this.raw.walkableClimb}bmin(e){return this.raw.get_bmin(e)}bmax(e){return this.raw.get_bmax(e)}bvQuantFactor(){return this.raw.bvQuantFactor}}class z{constructor(e){this.raw=e}firstLink(){return this.raw.firstLink}verts(e){return this.raw.get_verts(e)}neis(e){return this.raw.get_neis(e)}flags(){return this.raw.flags}vertCount(){return this.raw.vertCount}areaAndType(){return this.raw.get_areaAndtype()}getType(){return this.raw.getType()}}class k{constructor(e){this.raw=e}salt(){return this.raw.salt}linksFreeList(){return this.raw.linksFreeList}header(){return r.isNull(this.raw.header)?null:new F(this.raw.header)}polys(e){return new z(this.raw.get_polys(e))}verts(e){return this.raw.get_verts(e)}links(e){return new S(this.raw.get_links(e))}detailMeshes(e){return new v(this.raw.get_detailMeshes(e))}detailVerts(e){return this.raw.get_detailVerts(e)}detailTris(e){return this.raw.get_detailTris(e)}bvTree(e){return new D(this.raw.get_bvTree(e))}offMeshCons(e){return new E(this.raw.get_offMeshCons(e))}data(e){return this.raw.get_data(e)}dataSize(){return this.raw.dataSize}flags(){return this.raw.flags}next(){return new k(this.raw.next)}}const O=e=>{const t=r.DetourNavMeshBuilder.createNavMeshData(e.raw);return{success:t.success,navMeshData:o.fromRaw(t.navMeshData)}};class H{constructor(e){this.raw=e??new r.Module.dtNavMeshCreateParams}setPolyMeshCreateParams(e){r.DetourNavMeshBuilder.setPolyMeshCreateParams(this.raw,e.raw)}setPolyMeshDetailCreateParams(e){r.DetourNavMeshBuilder.setPolyMeshDetailCreateParams(this.raw,e.raw)}setOffMeshConnections(e){if(e.length<=0)return;const t=[],s=[],a=[],i=[],n=[],o=[];for(let r=0;r<e.length;r++){const l=e[r];t.push(l.startPosition.x,l.startPosition.y,l.startPosition.z),t.push(l.endPosition.x,l.endPosition.y,l.endPosition.z),s.push(l.radius),a.push(l.bidirectional?1:0),i.push(l.area??0),n.push(l.flags??1),o.push(l.userId??1e3+r)}r.DetourNavMeshBuilder.setOffMeshConnections(this.raw,e.length,t,s,a,i,n,o)}verts(e){return this.raw.get_verts(e)}setVerts(e,t){this.raw.set_verts(e,t)}vertCount(){return this.raw.vertCount}polys(e){return this.raw.get_polys(e)}setPolys(e,t){this.raw.set_polys(e,t)}polyAreas(e){return this.raw.get_polyAreas(e)}setPolyAreas(e,t){this.raw.set_polyAreas(e,t)}polyFlags(e){return this.raw.get_polyFlags(e)}setPolyFlags(e,t){this.raw.set_polyFlags(e,t)}polyCount(){return this.raw.polyCount}nvp(){return this.raw.nvp}setNvp(e){this.raw.nvp=e}detailMeshes(e){return this.raw.get_detailMeshes(e)}setDetailMeshes(e,t){this.raw.set_detailMeshes(e,t)}detailVerts(e){return this.raw.get_detailVerts(e)}setDetailVerts(e,t){this.raw.set_detailVerts(e,t)}detailVertsCount(){return this.raw.detailVertsCount}detailTris(e){return this.raw.get_detailTris(e)}setDetailTris(e,t){this.raw.set_detailTris(e,t)}detailTriCount(){return this.raw.detailTriCount}offMeshConVerts(e){return this.raw.get_offMeshConVerts(e)}offMeshConRad(e){return this.raw.get_offMeshConRad(e)}offMeshConDir(e){return this.raw.get_offMeshConDir(e)}offMeshConAreas(e){return this.raw.get_offMeshConAreas(e)}offMeshConFlags(e){return this.raw.get_offMeshConFlags(e)}offMeshConUserID(e){return this.raw.get_offMeshConUserID(e)}offMeshConCount(){return this.raw.offMeshConCount}userId(){return this.raw.userId}tileX(){return this.raw.tileX}setTileX(e){this.raw.tileX=e}tileY(){return this.raw.tileY}setTileY(e){this.raw.tileY=e}tileLayer(){return this.raw.tileLayer}setTileLayer(e){this.raw.tileLayer=e}boundsMin(){return m((e=>this.raw.get_bmin(e)),3)}setBoundsMin(e){this.raw.set_bmin(0,e[0]),this.raw.set_bmin(1,e[1]),this.raw.set_bmin(2,e[2])}boundsMax(){return m((e=>this.raw.get_bmax(e)),3)}setBoundsMax(e){this.raw.set_bmax(0,e[0]),this.raw.set_bmax(1,e[1]),this.raw.set_bmax(2,e[2])}walkableHeight(){return this.raw.walkableHeight}setWalkableHeight(e){this.raw.walkableHeight=e}walkableRadius(){return this.raw.walkableRadius}setWalkableRadius(e){this.raw.walkableRadius=e}walkableClimb(){return this.raw.walkableClimb}setWalkableClimb(e){this.raw.walkableClimb=e}cellSize(){return this.raw.cs}setCellSize(e){this.raw.cs=e}cellHeight(){return this.raw.ch}setCellHeight(e){this.raw.ch=e}buildBvTree(){return this.raw.buildBvTree}setBuildBvTree(e){this.raw.buildBvTree=e}}class I{constructor(e){this.raw=e}tiles(e){return new k(this.raw.get_tiles(e))}tileCount(){return this.raw.tileCount}}class N{constructor(e){this.raw=e}data(){return m((e=>this.raw.get_data(e)),this.raw.dataSize)}dataSize(){return this.raw.dataSize}}class U{constructor(e){this.raw=e}tileX(){return this.raw.tileX}tileY(){return this.raw.tileY}}class V{constructor(e){this.raw=e}data(){return m((e=>this.raw.get_data(e)),this.raw.dataSize)}dataSize(){return this.raw.dataSize}}class L{constructor(e){this.raw=e}static create(e){const t=new r.Module.dtNavMeshParams;return t.set_orig(0,e.orig.x),t.set_orig(1,e.orig.y),t.set_orig(2,e.orig.z),t.tileWidth=e.tileWidth,t.tileHeight=e.tileHeight,t.maxTiles=e.maxTiles,t.maxPolys=e.maxPolys,new L(t)}clone(){return L.create({orig:{x:this.raw.get_orig(0),y:this.raw.get_orig(1),z:this.raw.get_orig(2)},tileWidth:this.raw.tileWidth,tileHeight:this.raw.tileHeight,maxTiles:this.raw.maxTiles,maxPolys:this.raw.maxPolys})}}class B{constructor(e){this.raw=e??new r.Module.NavMesh}initSolo(e){return this.raw.initSolo(e.raw)}initTiled(e){return this.raw.initTiled(e.raw)}addTile(e,t,s){const a=new r.UnsignedIntRef,i=this.raw.addTile(e.raw,t,s,a),n=a.value;return r.destroy(a),{status:i,tileRef:n}}decodePolyId(e){const t=new r.UnsignedIntRef,s=new r.UnsignedIntRef,a=new r.UnsignedIntRef;this.raw.decodePolyId(e,t,s,a);const i=t.value;r.destroy(t);const n=s.value;r.destroy(s);const o=a.value;return r.destroy(a),{tileSalt:i,tileIndex:n,tilePolygonIndex:o}}encodePolyId(e,t,r){return this.raw.encodePolyId(e,t,r)}removeTile(e){return new N(this.raw.removeTile(e))}calcTileLoc(e){return new U(this.raw.calcTileLoc(y.toArray(e)))}getTileAt(e,t,s){const a=this.raw.getTileAt(e,t,s);return r.isNull(a)?null:new k(a)}getTilesAt(e,t,r){return new I(this.raw.getTilesAt(e,t,r))}getTileRefAt(e,t,r){return this.raw.getTileRefAt(e,t,r)}getTileRef(e){return this.raw.getTileRef(e.raw)}getTileByRef(e){const t=this.raw.getTileByRef(e);return r.isNull(t)?null:new k(t)}getMaxTiles(){return this.raw.getMaxTiles()}getTile(e){return new k(this.raw.getTile(e))}getTileAndPolyByRef(e){const t=this.raw.getTileAndPolyByRef(e),r=new k(t.tile),s=new z(t.poly);return{success:P(t.status),status:t.status,tile:r,poly:s}}getTileAndPolyByRefUnsafe(e){const t=this.raw.getTileAndPolyByRef(e);return{tile:new k(t.tile),poly:new z(t.poly)}}isValidPolyRef(e){return this.raw.isValidPolyRef(e)}getPolyRefBase(e){return this.raw.getPolyRefBase(e.raw)}getOffMeshConnectionPolyEndPoints(e,t){const s=new r.Vec3,a=new r.Vec3,i=this.raw.getOffMeshConnectionPolyEndPoints(e,t,s,a),n=y.fromRaw(s);r.destroy(s);const o=y.fromRaw(a);return r.destroy(a),{success:P(i),status:i,start:n,end:o}}getOffMeshConnectionByRef(e){return new E(this.raw.getOffMeshConnectionByRef(e))}setPolyFlags(e,t){return this.raw.setPolyFlags(e,t)}getPolyFlags(e){const t=new r.UnsignedShortRef,s=this.raw.getPolyFlags(e,t),a=t.value;return r.destroy(t),{status:s,flags:a}}setPolyArea(e,t){return this.raw.setPolyArea(e,t)}getPolyArea(e){const t=new r.UnsignedCharRef,s=this.raw.getPolyArea(e,t),a=t.value;return r.destroy(t),{status:s,area:a}}getTileStateSize(e){return this.raw.getTileStateSize(e.raw)}storeTileState(e,t){return new V(this.raw.storeTileState(e.raw,t))}restoreTileState(e,t,r){return this.raw.restoreTileState(e.raw,t,r)}getDebugNavMesh(){const e=[],t=[];let r=0;const s=this.getMaxTiles();for(let a=0;a<s;a++){const s=this.getTile(a),i=s.header();if(!i)continue;const n=i.polyCount();for(let a=0;a<n;++a){const i=s.polys(a);if(1===i.getType())continue;const n=i.vertCount(),o=s.detailMeshes(a),l=o.triBase(),u=o.triCount();for(let a=0;a<u;++a){const u=4*(l+a);for(let a=0;a<3;++a){if(s.detailTris(u+a)<n){const t=3*i.verts(s.detailTris(u+a));e.push(s.verts(t),s.verts(t+1),s.verts(t+2))}else{const t=3*(o.vertBase()+s.detailTris(u+a)-i.vertCount());e.push(s.detailVerts(t),s.detailVerts(t+1),s.detailVerts(t+2))}t.push(r++)}}}}return[e,t]}destroy(){this.raw.destroy(),r.Module.destroy(this.raw)}}const Q=()=>r.Module.FastRand.prototype.getSeed(),W=e=>{r.Module.FastRand.prototype.setSeed(e)},q={borderSize:0,tileSize:0,cs:.2,ch:.2,walkableSlopeAngle:60,walkableHeight:2,walkableClimb:2,walkableRadius:.5,maxEdgeLen:12,maxSimplificationError:1.3,minRegionArea:8,mergeRegionArea:20,maxVertsPerPoly:6,detailSampleDist:6,detailSampleMaxError:1},Y=e=>{const t={...q,...e},s=new r.Module.rcConfig;return s.borderSize=t.borderSize,s.tileSize=t.tileSize,s.cs=t.cs,s.ch=t.ch,s.walkableSlopeAngle=t.walkableSlopeAngle,s.walkableHeight=t.walkableHeight,s.walkableClimb=t.walkableClimb,s.walkableRadius=t.walkableRadius,s.maxEdgeLen=t.maxEdgeLen,s.maxSimplificationError=t.maxSimplificationError,s.minRegionArea=t.minRegionArea,s.mergeRegionArea=t.mergeRegionArea,s.maxVertsPerPoly=t.maxVertsPerPoly,s.detailSampleDist=t.detailSampleDist,s.detailSampleMaxError=t.detailSampleMaxError,s},G=e=>{const t=new r.Module.rcConfig;return t.set_bmin(0,e.get_bmin(0)),t.set_bmin(1,e.get_bmin(1)),t.set_bmin(2,e.get_bmin(2)),t.set_bmax(0,e.get_bmax(0)),t.set_bmax(1,e.get_bmax(1)),t.set_bmax(2,e.get_bmax(2)),t.width=e.width,t.height=e.height,t.borderSize=e.borderSize,t.tileSize=e.tileSize,t.cs=e.cs,t.ch=e.ch,t.walkableSlopeAngle=e.walkableSlopeAngle,t.walkableHeight=e.walkableHeight,t.walkableClimb=e.walkableClimb,t.walkableRadius=e.walkableRadius,t.maxEdgeLen=e.maxEdgeLen,t.maxSimplificationError=e.maxSimplificationError,t.minRegionArea=e.minRegionArea,t.mergeRegionArea=e.mergeRegionArea,t.maxVertsPerPoly=e.maxVertsPerPoly,t.detailSampleDist=e.detailSampleDist,t.detailSampleMaxError=e.detailSampleMaxError,t};class X{logs=[];startTimes={};accumulatedTimes={};constructor(e=!0){const t=new r.Module.RecastBuildContextImpl;t.log=(e,t,s)=>{if(!this.raw.logEnabled())return;const a=t,i=new Uint8Array(r.Module.HEAPU8.buffer,a,s),n=new Uint8Array(s);n.set(i);const o=(new TextDecoder).decode(n);this.log(e,o)},t.resetLog=()=>{this.resetLog()},t.startTimer=e=>{this.raw.timerEnabled()&&this.startTimer(e)},t.stopTimer=e=>{this.raw.timerEnabled()&&this.stopTimer(e)},t.getAccumulatedTime=e=>this.raw.timerEnabled()?this.getAccumulatedTime(e):-1,t.resetTimers=()=>{this.raw.timerEnabled()&&(this.startTimes={},this.accumulatedTimes={})},this.raw=new r.Module.RecastBuildContext(t),this.raw.enableTimer(e),this.raw.enableLog(e),this.resetTimers()}log(e,t){this.logs.push({category:e,msg:t})}resetLog(){this.logs=[]}startTimer(e){this.startTimes[e]=performance.now()}stopTimer(e){const t=performance.now()-this.startTimes[e];-1===this.accumulatedTimes[e]?this.accumulatedTimes[e]=t:this.accumulatedTimes[e]+=t}getAccumulatedTime(e){return this.accumulatedTimes[e]}resetTimers(){for(let e=0;e<r.Module.RC_MAX_TIMERS;e++)this.startTimes[e]=-1,this.accumulatedTimes[e]=-1}}class j{constructor(e){this.raw=e??new r.rcChunkyTriMesh}init(e,t,s,a){return r.ChunkyTriMeshUtils.createChunkyTriMesh(e.raw,t.raw,s,a,this.raw)}getChunksOverlappingRect(e,t,s,a){return r.ChunkyTriMeshUtils.getChunksOverlappingRect(this.raw,e,t,s.raw,a)}getNodeTris(e){return i.fromRaw(r.ChunkyTriMeshUtils.getChunkyTriMeshNodeTris(this.raw,e))}nodes(e){return this.raw.get_nodes(e)}maxTrisPerChunk(){return this.raw.maxTrisPerChunk}}class Z{constructor(e){this.raw=e}smin(){return this.raw.smin}smax(){return this.raw.smax}area(){return this.raw.area}next(){return r.isNull(this.raw.next)?null:new Z(this.raw.next)}}class ${constructor(e){this.raw=e}next(){return r.isNull(this.raw.next)?null:new $(this.raw.next)}items(e){return new Z(this.raw.get_items(e))}}class J{constructor(e){this.raw=e}width(){return this.raw.width}height(){return this.raw.height}bmin(){return y.fromArray(m((e=>this.raw.get_bmin(e)),3))}bmax(){return y.fromArray(m((e=>this.raw.get_bmax(e)),3))}cs(){return this.raw.cs}ch(){return this.raw.ch}spans(e){return new Z(this.raw.get_spans(e))}pools(e){return new $(this.raw.get_pools(e))}freelist(e){return new Z(this.raw.get_freelist(e))}}class K{constructor(e){this.raw=e}index(){return this.raw.get_index()}count(){return this.raw.get_count()}}class ee{constructor(e){this.raw=e}y(){return this.raw.get_y()}reg(){return this.raw.get_reg()}con(){return this.raw.get_con()}h(){return this.raw.get_h()}}class te{constructor(e){this.raw=e}width(){return this.raw.width}height(){return this.raw.height}spanCount(){return this.raw.spanCount}walkableHeight(){return this.raw.walkableHeight}walkableClimb(){return this.raw.walkableClimb}borderSize(){return this.raw.borderSize}maxDistance(){return this.raw.maxDistance}maxRegions(){return this.raw.maxRegions}bmin(){return y.fromArray(m((e=>this.raw.get_bmin(e)),3))}bmax(){return y.fromArray(m((e=>this.raw.get_bmax(e)),3))}cs(){return this.raw.cs}ch(){return this.raw.ch}cells(e){return new K(this.raw.get_cells(e))}spans(e){return new ee(this.raw.get_spans(e))}dist(e){return this.raw.get_dist(e)}areas(e){return this.raw.get_areas(e)}}class re{constructor(e){this.raw=e}verts(e){return this.raw.get_verts(e)}nverts(){return this.raw.nverts}rverts(e){return this.raw.get_rverts(e)}nrverts(){return this.raw.nrverts}reg(){return this.raw.reg}area(){return this.raw.area}}class se{constructor(e){this.raw=e}conts(e){return new re(this.raw.get_conts(e))}nconts(){return this.raw.nconts}bmin(){return y.fromArray(m((e=>this.raw.get_bmin(e)),3))}bmax(){return y.fromArray(m((e=>this.raw.get_bmax(e)),3))}cs(){return this.raw.cs}ch(){return this.raw.ch}width(){return this.raw.width}height(){return this.raw.height}borderSize(){return this.raw.borderSize}maxError(){return this.raw.maxError}}class ae{constructor(e){this.raw=e}bmin(){return y.fromArray(m((e=>this.raw.get_bmin(e)),3))}bmax(){return y.fromArray(m((e=>this.raw.get_bmax(e)),3))}cs(){return this.raw.cs}ch(){return this.raw.ch}width(){return this.raw.width}height(){return this.raw.height}minx(){return this.raw.minx}maxx(){return this.raw.maxx}miny(){return this.raw.miny}maxy(){return this.raw.maxy}hmin(){return this.raw.hmin}hmax(){return this.raw.hmax}heights(e){return this.raw.get_heights(e)}areas(e){return this.raw.get_areas(e)}cons(e){return this.raw.get_cons(e)}}class ie{constructor(e){this.raw=e}layers(e){return new ae(this.raw.get_layers(e))}nlayers(){return this.raw.nlayers}}class ne{constructor(e){this.raw=e}verts(e){return this.raw.get_verts(e)}polys(e){return this.raw.get_polys(e)}regs(e){return this.raw.get_regs(e)}flags(e){return this.raw.get_flags(e)}setFlags(e,t){this.raw.set_flags(e,t)}areas(e){return this.raw.get_areas(e)}setAreas(e,t){return this.raw.set_areas(e,t)}nverts(){return this.raw.nverts}npolys(){return this.raw.npolys}maxpolys(){return this.raw.maxpolys}nvp(){return this.raw.nvp}bmin(){return y.fromArray(m((e=>this.raw.get_bmin(e)),3))}bmax(){return y.fromArray(m((e=>this.raw.get_bmax(e)),3))}cs(){return this.raw.cs}ch(){return this.raw.ch}borderSize(){return this.raw.borderSize}maxEdgeError(){return this.raw.maxEdgeError}}class oe{constructor(e){this.raw=e}meshes(e){return this.raw.get_meshes(e)}verts(e){return this.raw.get_verts(e)}tris(e){return this.raw.get_tris(e)}nmeshes(){return this.raw.nmeshes}nverts(){return this.raw.nverts}ntris(){return this.raw.ntris}}const le=(e,t)=>r.Recast.calcBounds(e.raw,t),ue=(e,t,s)=>r.Recast.calcGridSize(e,t,s),he=(e,t,s,a,i,n,o,l)=>r.Recast.createHeightfield(e.raw,t.raw,s,a,i,n,o,l),we=(e,t,s,a,i,n,o)=>r.Recast.markWalkableTriangles(e.raw,t,s.raw,a,i.raw,n,o.raw),ce=(e,t,s,a,i,n,o)=>r.Recast.clearUnwalkableTriangles(e.raw,t,s.raw,a,i.raw,n,o.raw),de=(e,t,s,a,i,n,o,l=1)=>r.Recast.rasterizeTriangles(e.raw,t.raw,s,a.raw,i.raw,n,o.raw,l),ge=(e,t,s)=>r.Recast.filterLowHangingWalkableObstacles(e.raw,t,s.raw),ye=(e,t,s,a)=>r.Recast.filterLedgeSpans(e.raw,t,s,a.raw),me=(e,t,s)=>r.Recast.filterWalkableLowHeightSpans(e.raw,t,s.raw),fe=(e,t)=>r.Recast.getHeightFieldSpanCount(e.raw,t.raw),pe=(e,t,s,a,i)=>r.Recast.buildCompactHeightfield(e.raw,t,s,a.raw,i.raw),xe=(e,t,s)=>r.Recast.erodeWalkableArea(e.raw,t,s.raw),Re=(e,t)=>r.Recast.medianFilterWalkableArea(e.raw,t.raw),be=(e,t,s,a,i)=>r.Recast.markBoxArea(e.raw,t,s,a,i.raw),Ae=(e,t,s,a,i,n,o)=>r.Recast.markConvexPolyArea(e.raw,t.raw,s,a,i,n,o.raw),Pe=(e,t,s,a,i,n)=>r.Recast.markCylinderArea(e.raw,t,s,a,i,n.raw),Ce=(e,t)=>r.Recast.buildDistanceField(e.raw,t.raw),Me=(e,t,s,a,i)=>r.Recast.buildRegions(e.raw,t.raw,s,a,i),_e=(e,t,s,a)=>r.Recast.buildLayerRegions(e.raw,t.raw,s,a),Te=(e,t,s,a,i)=>r.Recast.buildRegionsMonotone(e.raw,t.raw,s,a,i),ve=(e,t,s)=>r.Recast.setCon(e.raw,t,s),Se=(e,t)=>r.Recast.getCon(e.raw,t),De=e=>r.Recast.getDirOffsetX(e),Ee=e=>r.Recast.getDirOffsetY(e),Fe=(e,t)=>r.Recast.getDirForOffset(e,t),ze=(e,t,s,a,i)=>r.Recast.buildHeightfieldLayers(e.raw,t.raw,s,a,i.raw),ke=(e,t,s,a,i,n=r.Module.RC_CONTOUR_TESS_WALL_EDGES)=>r.Recast.buildContours(e.raw,t.raw,s,a,i.raw,n),Oe=(e,t,s,a)=>r.Recast.buildPolyMesh(e.raw,t.raw,s,a.raw),He=(e,t,s)=>r.Recast.mergePolyMeshes(e.raw,t.map((e=>e.raw)),t.length,s.raw),Ie=(e,t,s,a,i,n)=>r.Recast.buildPolyMeshDetail(e.raw,t.raw,s.raw,a,i,n.raw),Ne=(e,t,s)=>r.Recast.copyPolyMesh(e.raw,t.raw,s.raw),Ue=(e,t,s)=>r.Recast.mergePolyMeshDetails(e.raw,t.map((e=>e.raw)),t.length,s.raw),Ve=e=>o.fromRaw(r.Recast.getHeightfieldLayerHeights(e.raw)),Le=e=>o.fromRaw(r.Recast.getHeightfieldLayerAreas(e.raw)),Be=e=>o.fromRaw(r.Recast.getHeightfieldLayerCons(e.raw)),Qe=()=>new J(r.Recast.allocHeightfield()),We=e=>r.Recast.freeHeightfield(e.raw),qe=()=>new te(r.Recast.allocCompactHeightfield()),Ye=e=>r.Recast.freeCompactHeightfield(e.raw),Ge=()=>new ie(r.Recast.allocHeightfieldLayerSet()),Xe=e=>r.Recast.freeHeightfieldLayerSet(e.raw),je=()=>new se(r.Recast.allocContourSet()),Ze=e=>r.Recast.freeContourSet(e.raw),$e=()=>new ne(r.Recast.allocPolyMesh()),Je=e=>r.Recast.freePolyMesh(e.raw),Ke=()=>new oe(r.Recast.allocPolyMeshDetail()),et=e=>r.Recast.freePolyMeshDetail(e.raw),tt=(e,t)=>{const s=r.NavMeshExporter.exportNavMesh(e.raw,t?.raw),a=new Uint8Array(r.Module.HEAPU8.buffer,s.dataPointer,s.size),i=new Uint8Array(s.size);return i.set(a),r.NavMeshExporter.freeNavMeshExport(s),i};class rt{constructor(e){this.raw=e}static create(e){const t=new r.Module.dtTileCacheParams;return t.set_orig(0,e.orig[0]),t.set_orig(1,e.orig[1]),t.set_orig(2,e.orig[2]),t.set_cs(e.cs),t.set_ch(e.ch),t.set_width(e.width),t.set_height(e.height),t.set_walkableHeight(e.walkableHeight),t.set_walkableRadius(e.walkableRadius),t.set_walkableClimb(e.walkableClimb),t.set_maxSimplificationError(e.maxSimplificationError),t.set_maxTiles(e.maxTiles),t.set_maxObstacles(e.maxObstacles),new rt(t)}}class st{obstacles=new Map;constructor(e){this.raw=e??new r.Module.TileCache}init(e,t,r,s){return this.raw.init(e.raw,t,r,s.raw)}update(e){const{status:t,upToDate:s}=this.raw.update(e.raw);return{success:r.Detour.statusSucceed(t),status:t,upToDate:s}}addCylinderObstacle(e,t,s){const a=this.raw.addCylinderObstacle(y.toRaw(e),t,s);if(a.status!==r.Detour.SUCCESS)return{success:!1,status:a.status};const i=a.ref,n={type:"cylinder",ref:i,position:e,radius:t,height:s};return this.obstacles.set(i,n),{success:!0,status:a.status,obstacle:n}}addBoxObstacle(e,t,s){const a=this.raw.addBoxObstacle(y.toRaw(e),y.toRaw(t),s);if(a.status!==r.Detour.SUCCESS)return{success:!1,status:a.status};const i=a.ref,n={type:"box",ref:i,position:e,extent:t,angle:s};return this.obstacles.set(i,n),{success:!0,status:a.status,obstacle:n}}removeObstacle(e){let t;t="object"==typeof e?e.ref:e,this.obstacles.delete(t);const s=this.raw.removeObstacle(t);return{success:r.Detour.statusSucceed(s),status:s}}addTile(e,t=r.Module.DT_COMPRESSEDTILE_FREE_DATA){return this.raw.addTile(e.raw,t)}buildNavMeshTile(e,t){return this.raw.buildNavMeshTile(e,t.raw)}buildNavMeshTilesAt(e,t,r){return this.raw.buildNavMeshTilesAt(e,t,r.raw)}destroy(){this.raw.destroy()}}class at{constructor(e){this.raw=new r.Module.TileCacheMeshProcess,this.raw.process=(t,s,a)=>{const i=new H(r.Module.wrapPointer(t,r.Module.dtNavMeshCreateParams)),n=r.Module.wrapPointer(s,r.Module.UnsignedCharArray),u=r.Module.wrapPointer(a,r.Module.UnsignedShortArray);e(i,o.fromRaw(n),l.fromRaw(u))}}}const it=(e,t,s,a,i,n)=>r.DetourTileCacheBuilder.buildTileCacheLayer(e,t,s.raw,a.raw,i.raw,n.raw),nt=(e,t)=>{const s=e.length*e.BYTES_PER_ELEMENT,a=r.Module._malloc(s),i=new Uint8Array(r.Module.HEAPU8.buffer,a,s);i.set(e);const n=new r.Module.NavMeshExport;n.dataPointer=i.byteOffset,n.size=e.length;const o=r.NavMeshImporter.importNavMesh(n,t?.raw);r.Module._free(i.byteOffset);const l=o.navMesh,u=o.tileCache;return{navMesh:new B(l),tileCache:new st(u)}};export{d as ChunkIdsArray,A as Crowd,b as CrowdAgent,D as DetourBVNode,S as DetourLink,F as DetourMeshHeader,k as DetourMeshTile,E as DetourOffMeshConnection,z as DetourPoly,v as DetourPolyDetail,rt as DetourTileCacheParams,u as FloatArray,i as IntArray,B as NavMesh,U as NavMeshCalcTileLocResult,H as NavMeshCreateParams,I as NavMeshGetTilesAtResult,L as NavMeshParams,x as NavMeshQuery,N as NavMeshRemoveTileResult,V as NavMeshStoreTileStateResult,p as QueryFilter,r as Raw,X as RecastBuildContext,j as RecastChunkyTriMesh,K as RecastCompactCell,te as RecastCompactHeightfield,ee as RecastCompactSpan,re as RecastContour,se as RecastContourSet,J as RecastHeightfield,ae as RecastHeightfieldLayer,ie as RecastHeightfieldLayerSet,ne as RecastPolyMesh,oe as RecastPolyMeshDetail,Z as RecastSpan,$ as RecastSpanPool,st as TileCache,g as TileCacheData,at as TileCacheMeshProcess,c as TriangleAreasArray,w as TrianglesArray,o as UnsignedCharArray,n as UnsignedIntArray,l as UnsignedShortArray,h as VerticesArray,qe as allocCompactHeightfield,je as allocContourSet,Qe as allocHeightfield,Ge as allocHeightfieldLayerSet,$e as allocPolyMesh,Ke as allocPolyMeshDetail,m as array,pe as buildCompactHeightfield,ke as buildContours,Ce as buildDistanceField,ze as buildHeightfieldLayers,_e as buildLayerRegions,Oe as buildPolyMesh,Ie as buildPolyMeshDetail,Me as buildRegions,Te as buildRegionsMonotone,it as buildTileCacheLayer,le as calcBounds,ue as calcGridSize,ce as clearUnwalkableTriangles,G as cloneRcConfig,Ne as copyPolyMesh,he as createHeightfield,O as createNavMeshData,Y as createRcConfig,R as crowdAgentParamsDefaults,xe as erodeWalkableArea,tt as exportNavMesh,ye as filterLedgeSpans,ge as filterLowHangingWalkableObstacles,me as filterWalkableLowHeightSpans,Ye as freeCompactHeightfield,Ze as freeContourSet,We as freeHeightfield,Xe as freeHeightfieldLayerSet,Je as freePolyMesh,et as freePolyMeshDetail,Se as getCon,Fe as getDirForOffset,De as getDirOffsetX,Ee as getDirOffsetY,fe as getHeightFieldSpanCount,Le as getHeightfieldLayerAreas,Be as getHeightfieldLayerCons,Ve as getHeightfieldLayerHeights,Q as getRandomSeed,nt as importNavMesh,s as init,be as markBoxArea,Ae as markConvexPolyArea,Pe as markCylinderArea,we as markWalkableTriangles,Re as medianFilterWalkableArea,Ue as mergePolyMeshDetails,He as mergePolyMeshes,f as range,de as rasterizeTriangles,q as recastConfigDefaults,ve as setCon,W as setRandomSeed,_ as statusDetail,C as statusFailed,M as statusInProgress,P as statusSucceed,T as statusToReadableString,y as vec3};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/raw.ts","../src/arrays.ts","../src/utils.ts","../src/nav-mesh-query.ts","../src/crowd.ts","../src/detour.ts","../src/nav-mesh.ts","../src/recast.ts","../src/serdes/export-nav-mesh.ts","../src/tile-cache.ts","../src/serdes/import-nav-mesh.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["instances","classes","Raw","isNull","obj","Module","getPointer","destroy","init","async","undefined","impl","defaultExport","import","default","instance","clazz","BaseArray","size","this","raw","constructor","get","i","set","value","resize","copy","data","length","getHeapView","heap","getHeap","typedArrayClass","buffer","getDataPointer","toTypedArray","view","IntArray","Int32Array","super","HEAP32","fromRaw","UnsignedIntArray","Uint32Array","HEAPU32","UnsignedCharArray","Uint8Array","HEAPU8","UnsignedShortArray","Uint16Array","HEAPU16","FloatArray","Float32Array","HEAPF32","VerticesArray","TrianglesArray","TriangleAreasArray","ChunkIdsArray","TileCacheData","vec3","toRaw","x","y","z","existing","Vec3","fromArray","toArray","lerp","a","b","t","out","source","array","getter","count","push","range","n","Array","map","_","QueryFilter","includeFlags","getIncludeFlags","flags","setIncludeFlags","excludeFlags","getExcludeFlags","setExcludeFlags","dtQueryFilter","getAreaCost","setAreaCost","cost","NavMeshQuery","defaultQueryHalfExtents","params","maxNodes","defaultQueryFilter","defaultFilter","findNearestPoly","position","options","nearestRefRaw","UnsignedIntRef","nearestPointRaw","isOverPolyRaw","BoolRef","status","halfExtents","filter","nearestPoint","nearestRef","isOverPoly","success","Detour","statusSucceed","findPolysAroundCircle","startRef","centerPos","radius","maxPolys","resultRefArray","resultParentArray","resultCostArray","resultCountRef","IntRef","resultRefs","resultParents","resultCost","resultCount","queryPolygons","center","polysRefsArray","polyCountRef","polyCount","polyRefs","closestPointOnPoly","polyRef","closestPointRaw","positionOverPolyRaw","closestPoint","isPointOverPoly","findClosestPoint","resultPolyRef","resultPoint","resultPointOverPoly","point","findRandomPointAroundCircle","nearestPoly","randomPolyRef","randomPoint","randomPolyRefRaw","randomPointRaw","moveAlongSurface","startPosition","endPosition","maxVisitedSize","resultPositionRaw","visitedArray","resultPosition","visited","findRandomPoint","getPolyHeight","floatRef","FloatRef","height","computePath","start","end","startNearestPolyResult","error","name","path","endNearestPolyResult","endRef","maxPathPolys","findPathResult","findPath","polys","lastPoly","closestEnd","lastPolyClosestPointResult","maxStraightPathPoints","findStraightPathResult","findStraightPath","straightPath","straightPathCount","points","straightPathFlags","straightPathRefs","polysArray","straightPathOptions","straightPathCountRaw","raycast","raycastHit","dtRaycastHit","raycastOptions","prevRef","queryFilter","result","hitNormal","get_hitNormal","hitEdgeIndex","get_path","pathCount","maxPath","pathCost","crowdAgentParamsDefaults","maxAcceleration","maxSpeed","collisionQueryRange","pathOptimizationRange","separationWeight","updateFlags","obstacleAvoidanceType","queryFilterType","userData","CrowdAgent","interpolatedPosition","crowd","agentIndex","getEditableAgent","requestMoveTarget","navMeshQuery","requestMoveVelocity","velocity","resetMoveTarget","teleport","CrowdUtils","agentTeleport","get_npos","get_vel","desiredVelocity","get_dvel","desiredVelocityObstacleAdjusted","get_nvel","state","target","get_targetPos","nextTargetInPath","get_cornerVerts","corners","ncorners","parameters","updateParameters","crowdAgentParams","setParameters","dtCrowdAgentParams","updateAgentParameters","Crowd","agents","accumulator","navMesh","maxAgents","maxAgentRadius","allocCrowd","getNavMesh","getNavMeshQuery","update","dt","timeSinceLastCalled","maxSubSteps","substeps","getAgents","agent","addAgent","getAgent","removeAgent","getAgentCount","getActiveAgentCount","Object","values","getFilter","filterIndex","getEditableFilter","freeCrowd","statusFailed","statusInProgress","statusDetail","detail","statusToReadableString","reason","DT_STATUS_REASONS","DT_WRONG_MAGIC","WRONG_MAGIC","DT_WRONG_VERSION","WRONG_VERSION","DT_OUT_OF_MEMORY","OUT_OF_MEMORY","DT_INVALID_PARAM","INVALID_PARAM","DT_BUFFER_TOO_SMALL","BUFFER_TOO_SMALL","DT_OUT_OF_NODES","OUT_OF_NODES","DT_PARTIAL_RESULT","PARTIAL_RESULT","DT_ALREADY_OCCUPIED","ALREADY_OCCUPIED","reasonName","reasonMask","entries","DetourPolyDetail","vertBase","triBase","vertCount","triCount","DetourLink","ref","next","edge","side","bmin","bmax","DetourBVNode","get_bmin","get_bmax","DetourOffMeshConnection","pos","index","get_pos","rad","poly","userId","DetourMeshHeader","magic","version","layer","maxLinkCount","detailMeshCount","detailVertCount","detailTriCount","bvNodeCount","offMeshConCount","offMeshBase","walkableHeight","walkableRadius","walkableClimb","bvQuantFactor","DetourPoly","firstLink","verts","get_verts","neis","get_neis","areaAndType","get_areaAndtype","getType","DetourMeshTile","salt","linksFreeList","header","get_polys","links","get_links","detailMeshes","get_detailMeshes","detailVerts","get_detailVerts","detailTris","get_detailTris","bvTree","get_bvTree","offMeshCons","get_offMeshCons","get_data","dataSize","createNavMeshData","navMeshCreateParams","DetourNavMeshBuilder","navMeshData","NavMeshCreateParams","dtNavMeshCreateParams","setPolyMeshCreateParams","polyMesh","setPolyMeshDetailCreateParams","polyMeshDetail","setOffMeshConnections","offMeshConnections","rads","dir","areas","userIds","connection","bidirectional","area","setVerts","set_verts","setPolys","set_polys","polyAreas","get_polyAreas","setPolyAreas","set_polyAreas","polyFlags","get_polyFlags","setPolyFlags","set_polyFlags","nvp","setNvp","setDetailMeshes","set_detailMeshes","setDetailVerts","set_detailVerts","detailVertsCount","setDetailTris","set_detailTris","offMeshConVerts","get_offMeshConVerts","offMeshConRad","get_offMeshConRad","offMeshConDir","get_offMeshConDir","offMeshConAreas","get_offMeshConAreas","offMeshConFlags","get_offMeshConFlags","offMeshConUserID","get_offMeshConUserID","tileX","setTileX","tileY","setTileY","tileLayer","setTileLayer","boundsMin","setBoundsMin","set_bmin","boundsMax","setBoundsMax","set_bmax","setWalkableHeight","setWalkableRadius","setWalkableClimb","cellSize","cs","setCellSize","cellHeight","ch","setCellHeight","buildBvTree","setBuildBvTree","NavMeshGetTilesAtResult","tiles","get_tiles","tileCount","NavMeshRemoveTileResult","NavMeshCalcTileLocResult","NavMeshStoreTileStateResult","NavMeshParams","create","dtNavMeshParams","set_orig","orig","tileWidth","tileHeight","maxTiles","clone","get_orig","NavMesh","initSolo","initTiled","addTile","lastRef","tileRefRaw","tileRef","decodePolyId","saltRef","itRef","ipRef","tileSalt","tileIndex","tilePolygonIndex","encodePolyId","removeTile","calcTileLoc","getTileAt","tile","getTilesAt","getTileRefAt","getTileRef","getTileByRef","getMaxTiles","getTile","getTileAndPolyByRef","getTileAndPolyByRefUnsafe","isValidPolyRef","getPolyRefBase","getOffMeshConnectionPolyEndPoints","startRaw","endRaw","getOffMeshConnectionByRef","getPolyFlags","flagsRaw","UnsignedShortRef","setPolyArea","getPolyArea","areaRaw","UnsignedCharRef","getTileStateSize","storeTileState","maxDataSize","restoreTileState","getDebugNavMesh","positions","indices","tri","tileHeader","tilePolyCount","tilePolyIndex","polyVertCount","polyDetail","polyDetailTriBase","polyDetailTriCount","polyDetailTriIndex","detailTrisBaseIndex","trianglePoint","tileVertsBaseIndex","recastConfigDefaults","borderSize","tileSize","walkableSlopeAngle","maxEdgeLen","maxSimplificationError","minRegionArea","mergeRegionArea","maxVertsPerPoly","detailSampleDist","detailSampleMaxError","createRcConfig","partialConfig","config","rcConfig","cloneRcConfig","width","RecastBuildContext","logs","startTimes","accumulatedTimes","timersAndLogsEnabled","RecastBuildContextImpl","log","category","msg","len","logEnabled","msgPointer","msgString","TextDecoder","decode","resetLog","startTimer","label","timerEnabled","stopTimer","getAccumulatedTime","resetTimers","enableTimer","enableLog","performance","now","deltaTime","RC_MAX_TIMERS","RecastChunkyTriMesh","rcChunkyTriMesh","tris","ntris","trisPerChunk","ChunkyTriMeshUtils","createChunkyTriMesh","getChunksOverlappingRect","chunks","maxChunks","getNodeTris","nodeId","getChunkyTriMeshNodeTris","nodes","get_nodes","maxTrisPerChunk","RecastSpan","smin","smax","RecastSpanPool","items","get_items","RecastHeightfield","spans","get_spans","pools","get_pools","freelist","get_freelist","RecastCompactCell","get_index","get_count","RecastCompactSpan","get_y","reg","get_reg","con","get_con","h","get_h","RecastCompactHeightfield","spanCount","maxDistance","maxRegions","cells","get_cells","dist","get_dist","get_areas","RecastContour","nverts","rverts","get_rverts","nrverts","RecastContourSet","conts","get_conts","nconts","maxError","RecastHeightfieldLayer","minx","maxx","miny","maxy","hmin","hmax","heights","get_heights","cons","get_cons","RecastHeightfieldLayerSet","layers","get_layers","nlayers","RecastPolyMesh","regs","get_regs","get_flags","setFlags","set_flags","setAreas","set_areas","npolys","maxpolys","maxEdgeError","RecastPolyMeshDetail","meshes","get_meshes","get_tris","nmeshes","calcBounds","nv","Recast","calcGridSize","createHeightfield","buildContext","heightfield","markWalkableTriangles","nt","clearUnwalkableTriangles","rasterizeTriangles","flagMergeThreshold","filterLowHangingWalkableObstacles","filterLedgeSpans","filterWalkableLowHeightSpans","getHeightFieldSpanCount","buildCompactHeightfield","compactHeightfield","erodeWalkableArea","medianFilterWalkableArea","markBoxArea","areaId","markConvexPolyArea","markCylinderArea","buildDistanceField","buildRegions","buildLayerRegions","buildRegionsMonotone","setCon","compactSpan","getCon","getDirOffsetX","getDirOffsetY","getDirForOffset","buildHeightfieldLayers","heightfieldLayerSet","buildContours","contourSet","buildFlags","RC_CONTOUR_TESS_WALL_EDGES","buildPolyMesh","mergePolyMeshes","outPolyMesh","m","buildPolyMeshDetail","mesh","sampleDist","sampleMaxError","copyPolyMesh","src","dest","mergePolyMeshDetails","getHeightfieldLayerHeights","heightfieldLayer","getHeightfieldLayerAreas","getHeightfieldLayerCons","allocHeightfield","freeHeightfield","allocCompactHeightfield","freeCompactHeightfield","allocHeightfieldLayerSet","freeHeightfieldLayerSet","allocContourSet","freeContourSet","allocPolyMesh","freePolyMesh","allocPolyMeshDetail","freePolyMeshDetail","exportNavMesh","tileCache","navMeshExport","NavMeshExporter","arrView","dataPointer","freeNavMeshExport","DetourTileCacheParams","tileCacheParams","dtTileCacheParams","set_cs","set_ch","set_width","set_height","set_walkableHeight","set_walkableRadius","set_walkableClimb","set_maxSimplificationError","set_maxTiles","set_maxObstacles","maxObstacles","TileCache","obstacles","Map","alloc","compressor","meshProcess","upToDate","addCylinderObstacle","SUCCESS","obstacle","type","addBoxObstacle","extent","angle","removeObstacle","delete","DT_COMPRESSEDTILE_FREE_DATA","buildNavMeshTile","buildNavMeshTilesAt","tx","ty","TileCacheMeshProcess","process","paramsPtr","polyAreasArrayPtr","polyFlagsArrayPtr","wrapPointer","polyAreasArray","polyFlagsArray","buildTileCacheLayer","comp","tileCacheData","DetourTileCacheBuilder","importNavMesh","tileCacheMeshProcess","nDataBytes","BYTES_PER_ELEMENT","dataPtr","_malloc","dataHeap","buf","NavMeshExport","byteOffset","NavMeshImporter","_free","rawNavMesh","rawTileCache"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/raw.ts","../src/arrays.ts","../src/utils.ts","../src/nav-mesh-query.ts","../src/crowd.ts","../src/detour.ts","../src/nav-mesh.ts","../src/random.ts","../src/recast.ts","../src/serdes/export-nav-mesh.ts","../src/tile-cache.ts","../src/serdes/import-nav-mesh.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null],"names":["instances","classes","Raw","isNull","obj","Module","getPointer","destroy","init","async","undefined","impl","defaultExport","import","default","instance","clazz","BaseArray","size","this","raw","constructor","get","i","set","value","resize","copy","data","length","getHeapView","heap","getHeap","typedArrayClass","buffer","getDataPointer","toTypedArray","view","IntArray","Int32Array","super","HEAP32","fromRaw","UnsignedIntArray","Uint32Array","HEAPU32","UnsignedCharArray","Uint8Array","HEAPU8","UnsignedShortArray","Uint16Array","HEAPU16","FloatArray","Float32Array","HEAPF32","VerticesArray","TrianglesArray","TriangleAreasArray","ChunkIdsArray","TileCacheData","vec3","toRaw","x","y","z","existing","Vec3","fromArray","toArray","lerp","a","b","t","out","source","array","getter","count","push","range","n","Array","map","_","QueryFilter","includeFlags","getIncludeFlags","flags","setIncludeFlags","excludeFlags","getExcludeFlags","setExcludeFlags","dtQueryFilter","getAreaCost","setAreaCost","cost","NavMeshQuery","defaultQueryHalfExtents","params","maxNodes","defaultQueryFilter","defaultFilter","findNearestPoly","position","options","nearestRefRaw","UnsignedIntRef","nearestPointRaw","isOverPolyRaw","BoolRef","status","halfExtents","filter","nearestPoint","nearestRef","isOverPoly","success","Detour","statusSucceed","findPolysAroundCircle","startRef","centerPos","radius","maxPolys","resultRefArray","resultParentArray","resultCostArray","resultCountRef","IntRef","resultRefs","resultParents","resultCost","resultCount","queryPolygons","center","polysRefsArray","polyCountRef","polyCount","polyRefs","closestPointOnPoly","polyRef","closestPointRaw","positionOverPolyRaw","closestPoint","isPointOverPoly","findClosestPoint","resultPolyRef","resultPoint","resultPointOverPoly","point","findRandomPointAroundCircle","nearestPoly","randomPolyRef","randomPoint","randomPolyRefRaw","randomPointRaw","moveAlongSurface","startPosition","endPosition","maxVisitedSize","resultPositionRaw","visitedArray","resultPosition","visited","findRandomPoint","getPolyHeight","floatRef","FloatRef","height","computePath","start","end","startNearestPolyResult","error","name","path","endNearestPolyResult","endRef","maxPathPolys","findPathResult","findPath","polys","lastPoly","closestEnd","lastPolyClosestPointResult","maxStraightPathPoints","findStraightPathResult","findStraightPath","straightPath","straightPathCount","points","straightPathFlags","straightPathRefs","polysArray","straightPathOptions","pathPolys","isArray","straightPathCountRaw","raycast","raycastHit","dtRaycastHit","raycastOptions","prevRef","queryFilter","result","hitNormal","get_hitNormal","hitEdgeIndex","get_path","pathCount","maxPath","pathCost","crowdAgentParamsDefaults","maxAcceleration","maxSpeed","collisionQueryRange","pathOptimizationRange","separationWeight","updateFlags","obstacleAvoidanceType","queryFilterType","userData","CrowdAgent","interpolatedPosition","crowd","agentIndex","getEditableAgent","requestMoveTarget","navMeshQuery","requestMoveVelocity","velocity","resetMoveTarget","teleport","CrowdUtils","agentTeleport","get_npos","get_vel","desiredVelocity","get_dvel","desiredVelocityObstacleAdjusted","get_nvel","state","target","get_targetPos","nextTargetInPath","get_cornerVerts","corners","ncorners","parameters","updateParameters","crowdAgentParams","setParameters","dtCrowdAgentParams","updateAgentParameters","overOffMeshConnection","Crowd","agents","accumulator","navMesh","maxAgents","maxAgentRadius","allocCrowd","getNavMesh","getNavMeshQuery","update","dt","timeSinceLastCalled","maxSubSteps","substeps","getAgents","agent","addAgent","getAgent","removeAgent","getAgentCount","getActiveAgentCount","Object","values","getFilter","filterIndex","getEditableFilter","freeCrowd","statusFailed","statusInProgress","statusDetail","detail","statusToReadableString","reason","DT_STATUS_REASONS","DT_WRONG_MAGIC","WRONG_MAGIC","DT_WRONG_VERSION","WRONG_VERSION","DT_OUT_OF_MEMORY","OUT_OF_MEMORY","DT_INVALID_PARAM","INVALID_PARAM","DT_BUFFER_TOO_SMALL","BUFFER_TOO_SMALL","DT_OUT_OF_NODES","OUT_OF_NODES","DT_PARTIAL_RESULT","PARTIAL_RESULT","DT_ALREADY_OCCUPIED","ALREADY_OCCUPIED","reasonName","reasonMask","entries","DetourPolyDetail","vertBase","triBase","vertCount","triCount","DetourLink","ref","next","edge","side","bmin","bmax","DetourBVNode","get_bmin","get_bmax","DetourOffMeshConnection","pos","index","get_pos","rad","poly","userId","DetourMeshHeader","magic","version","layer","maxLinkCount","detailMeshCount","detailVertCount","detailTriCount","bvNodeCount","offMeshConCount","offMeshBase","walkableHeight","walkableRadius","walkableClimb","bvQuantFactor","DetourPoly","firstLink","verts","get_verts","neis","get_neis","areaAndType","get_areaAndtype","getType","DetourMeshTile","salt","linksFreeList","header","get_polys","links","get_links","detailMeshes","get_detailMeshes","detailVerts","get_detailVerts","detailTris","get_detailTris","bvTree","get_bvTree","offMeshCons","get_offMeshCons","get_data","dataSize","createNavMeshData","navMeshCreateParams","DetourNavMeshBuilder","navMeshData","NavMeshCreateParams","dtNavMeshCreateParams","setPolyMeshCreateParams","polyMesh","setPolyMeshDetailCreateParams","polyMeshDetail","setOffMeshConnections","offMeshConnections","rads","dir","areas","userIds","connection","bidirectional","area","setVerts","set_verts","setPolys","set_polys","polyAreas","get_polyAreas","setPolyAreas","set_polyAreas","polyFlags","get_polyFlags","setPolyFlags","set_polyFlags","nvp","setNvp","setDetailMeshes","set_detailMeshes","setDetailVerts","set_detailVerts","detailVertsCount","setDetailTris","set_detailTris","offMeshConVerts","get_offMeshConVerts","offMeshConRad","get_offMeshConRad","offMeshConDir","get_offMeshConDir","offMeshConAreas","get_offMeshConAreas","offMeshConFlags","get_offMeshConFlags","offMeshConUserID","get_offMeshConUserID","tileX","setTileX","tileY","setTileY","tileLayer","setTileLayer","boundsMin","setBoundsMin","set_bmin","boundsMax","setBoundsMax","set_bmax","setWalkableHeight","setWalkableRadius","setWalkableClimb","cellSize","cs","setCellSize","cellHeight","ch","setCellHeight","buildBvTree","setBuildBvTree","NavMeshGetTilesAtResult","tiles","get_tiles","tileCount","NavMeshRemoveTileResult","NavMeshCalcTileLocResult","NavMeshStoreTileStateResult","NavMeshParams","create","dtNavMeshParams","set_orig","orig","tileWidth","tileHeight","maxTiles","clone","get_orig","NavMesh","initSolo","initTiled","addTile","lastRef","tileRefRaw","tileRef","decodePolyId","saltRef","itRef","ipRef","tileSalt","tileIndex","tilePolygonIndex","encodePolyId","removeTile","calcTileLoc","getTileAt","tile","getTilesAt","getTileRefAt","getTileRef","getTileByRef","getMaxTiles","getTile","getTileAndPolyByRef","getTileAndPolyByRefUnsafe","isValidPolyRef","getPolyRefBase","getOffMeshConnectionPolyEndPoints","startRaw","endRaw","getOffMeshConnectionByRef","getPolyFlags","flagsRaw","UnsignedShortRef","setPolyArea","getPolyArea","areaRaw","UnsignedCharRef","getTileStateSize","storeTileState","maxDataSize","restoreTileState","getDebugNavMesh","positions","indices","tri","tileHeader","tilePolyCount","tilePolyIndex","polyVertCount","polyDetail","polyDetailTriBase","polyDetailTriCount","polyDetailTriIndex","detailTrisBaseIndex","trianglePoint","tileVertsBaseIndex","getRandomSeed","FastRand","prototype","getSeed","setRandomSeed","seed","setSeed","recastConfigDefaults","borderSize","tileSize","walkableSlopeAngle","maxEdgeLen","maxSimplificationError","minRegionArea","mergeRegionArea","maxVertsPerPoly","detailSampleDist","detailSampleMaxError","createRcConfig","partialConfig","config","rcConfig","cloneRcConfig","width","RecastBuildContext","logs","startTimes","accumulatedTimes","timersAndLogsEnabled","RecastBuildContextImpl","log","category","msg","len","logEnabled","msgPointer","msgString","TextDecoder","decode","resetLog","startTimer","label","timerEnabled","stopTimer","getAccumulatedTime","resetTimers","enableTimer","enableLog","performance","now","deltaTime","RC_MAX_TIMERS","RecastChunkyTriMesh","rcChunkyTriMesh","tris","ntris","trisPerChunk","ChunkyTriMeshUtils","createChunkyTriMesh","getChunksOverlappingRect","chunks","maxChunks","getNodeTris","nodeId","getChunkyTriMeshNodeTris","nodes","get_nodes","maxTrisPerChunk","RecastSpan","smin","smax","RecastSpanPool","items","get_items","RecastHeightfield","spans","get_spans","pools","get_pools","freelist","get_freelist","RecastCompactCell","get_index","get_count","RecastCompactSpan","get_y","reg","get_reg","con","get_con","h","get_h","RecastCompactHeightfield","spanCount","maxDistance","maxRegions","cells","get_cells","dist","get_dist","get_areas","RecastContour","nverts","rverts","get_rverts","nrverts","RecastContourSet","conts","get_conts","nconts","maxError","RecastHeightfieldLayer","minx","maxx","miny","maxy","hmin","hmax","heights","get_heights","cons","get_cons","RecastHeightfieldLayerSet","layers","get_layers","nlayers","RecastPolyMesh","regs","get_regs","get_flags","setFlags","set_flags","setAreas","set_areas","npolys","maxpolys","maxEdgeError","RecastPolyMeshDetail","meshes","get_meshes","get_tris","nmeshes","calcBounds","nv","Recast","calcGridSize","createHeightfield","buildContext","heightfield","markWalkableTriangles","nt","clearUnwalkableTriangles","rasterizeTriangles","flagMergeThreshold","filterLowHangingWalkableObstacles","filterLedgeSpans","filterWalkableLowHeightSpans","getHeightFieldSpanCount","buildCompactHeightfield","compactHeightfield","erodeWalkableArea","medianFilterWalkableArea","markBoxArea","areaId","markConvexPolyArea","markCylinderArea","buildDistanceField","buildRegions","buildLayerRegions","buildRegionsMonotone","setCon","compactSpan","getCon","getDirOffsetX","getDirOffsetY","getDirForOffset","buildHeightfieldLayers","heightfieldLayerSet","buildContours","contourSet","buildFlags","RC_CONTOUR_TESS_WALL_EDGES","buildPolyMesh","mergePolyMeshes","outPolyMesh","m","buildPolyMeshDetail","mesh","sampleDist","sampleMaxError","copyPolyMesh","src","dest","mergePolyMeshDetails","getHeightfieldLayerHeights","heightfieldLayer","getHeightfieldLayerAreas","getHeightfieldLayerCons","allocHeightfield","freeHeightfield","allocCompactHeightfield","freeCompactHeightfield","allocHeightfieldLayerSet","freeHeightfieldLayerSet","allocContourSet","freeContourSet","allocPolyMesh","freePolyMesh","allocPolyMeshDetail","freePolyMeshDetail","exportNavMesh","tileCache","navMeshExport","NavMeshExporter","arrView","dataPointer","freeNavMeshExport","DetourTileCacheParams","tileCacheParams","dtTileCacheParams","set_cs","set_ch","set_width","set_height","set_walkableHeight","set_walkableRadius","set_walkableClimb","set_maxSimplificationError","set_maxTiles","set_maxObstacles","maxObstacles","TileCache","obstacles","Map","alloc","compressor","meshProcess","upToDate","addCylinderObstacle","SUCCESS","obstacle","type","addBoxObstacle","extent","angle","removeObstacle","delete","DT_COMPRESSEDTILE_FREE_DATA","buildNavMeshTile","buildNavMeshTilesAt","tx","ty","TileCacheMeshProcess","process","paramsPtr","polyAreasArrayPtr","polyFlagsArrayPtr","wrapPointer","polyAreasArray","polyFlagsArray","buildTileCacheLayer","comp","tileCacheData","DetourTileCacheBuilder","importNavMesh","tileCacheMeshProcess","nDataBytes","BYTES_PER_ELEMENT","dataPtr","_malloc","dataHeap","buf","NavMeshExport","byteOffset","NavMeshImporter","_free","rawNavMesh","rawTileCache"],"mappings":"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"}
@@ -398,7 +398,7 @@ export declare class NavMeshQuery {
398
398
  * findStraightPathResult.straightPathRefs.destroy();
399
399
  * ```
400
400
  */
401
- findStraightPath(start: Vector3, end: Vector3, path: UnsignedIntArray, options?: {
401
+ findStraightPath(start: Vector3, end: Vector3, path: number[] | UnsignedIntArray, options?: {
402
402
  /**
403
403
  * The maximum number of points the straight path arrays can hold. [Limit: > 0]
404
404
  * @default 256
@@ -197,6 +197,7 @@ export declare class NavMesh {
197
197
  * @returns
198
198
  */
199
199
  getOffMeshConnectionPolyEndPoints(prevRef: number, polyRef: number): {
200
+ success: boolean;
200
201
  status: number;
201
202
  start: {
202
203
  x: number;
@@ -0,0 +1,2 @@
1
+ export declare const getRandomSeed: () => number;
2
+ export declare const setRandomSeed: (seed: number) => void;
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "email": "isaac@isaacmason.com",
7
7
  "url": "https://isaacmason.com/"
8
8
  },
9
- "version": "0.30.0",
9
+ "version": "0.31.1",
10
10
  "license": "MIT",
11
11
  "homepage": "https://github.com/isaac-mason/recast-navigation-js",
12
12
  "bugs": {
@@ -27,7 +27,7 @@
27
27
  "lint": "eslint --ext .ts src"
28
28
  },
29
29
  "dependencies": {
30
- "@recast-navigation/wasm": "0.30.0"
30
+ "@recast-navigation/wasm": "0.31.1"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@babel/core": "^7.24.5",