UNPKG

recast-detour

Version:

recastjs is a port of recastnavigation and a thin abstraction layer using emscripten. https://github.com/emscripten-core/emscripten This port allows the use of recastnavigation in your browser using JavaScript or WebAssembly.

116 lines 3.24 kB
declare module Recast{ class rcConfig { new(); width: number; height: number; tileSize: number; borderSize: number; cs: number; ch: number; bmin: any; bmax: any; walkableSlopeAngle: number; walkableHeight: number; walkableClimb: number; walkableRadius: number; maxEdgeLen: number; maxSimplificationError: number; minRegionArea: number; mergeRegionArea: number; maxVertsPerPoly: number; detailSampleDist: number; detailSampleMaxError: number; } class Vec3 { new(); new(x: number, y: number, z: number); x: number; y: number; z: number; } class Triangle { new(); getPoint(n: number): Vec3; } class DebugNavMesh { new(); getTriangleCount(): number; getTriangle(n: number): Triangle; } class dtNavMesh {} class dtObstacleRef {} class NavmeshData { new(); dataPointer: any; size: number; } class NavPath { getPointCount(): number; getPoint(n: number): Vec3; } class dtCrowdAgentParams { new(); radius: number; height: number; maxAcceleration: number; maxSpeed: number; collisionQueryRange: number; pathOptimizationRange: number; separationWeight: number; updateFlags: number; obstacleAvoidanceType: number; queryFilterType: number; userData: unknown; } class NavMesh { new(); destroy(): void; build( positions: any, positionCount: number, indices: any, indexCount: number, config: rcConfig ): void; buildFromNavmeshData(data: NavmeshData): void; getNavmeshData(): NavmeshData; freeNavmeshData(data: NavmeshData): void; getDebugNavMesh(): DebugNavMesh; getClosestPoint(position: Vec3): Vec3; getRandomPointAround(position: Vec3, maxRadius: number): Vec3; moveAlong(position: Vec3, destination: Vec3): Vec3; getNavMesh(): dtNavMesh; computePath(start: Vec3, end: Vec3): NavPath; computePathSmooth(start: Vec3, end: Vec3): NavPath; setDefaultQueryExtent(extent: Vec3): void; getDefaultQueryExtent(): Vec3; addCylinderObstacle( position: Vec3, radius: number, height: number ): dtObstacleRef; addBoxObstacle(position: Vec3, extent: Vec3, angle: number): dtObstacleRef; removeObstacle(obstacle: dtObstacleRef): void; update(): void; } class Crowd { new(maxAgents: number, maxAgentRadius: number, nav: dtNavMesh); destroy(): void; addAgent(position: Vec3, params: dtCrowdAgentParams): number; removeAgent(idx: number): void; update(dt: number): void; getAgentPosition(idx: number): Vec3; getAgentVelocity(idx: number): Vec3; getAgentNextTargetPath(idx: number): Vec3; getAgentState(idx: number): number; overOffmeshConnection(idx: number): boolean; agentGoto(idx: number, destination: Vec3): void; agentTeleport(idx: number, destination: Vec3): void; getAgentParameters(idx: number): dtCrowdAgentParams; setAgentParameters(idx: number, params: dtCrowdAgentParams): void; setDefaultQueryExtent(extent: Vec3): void; getDefaultQueryExtent(): Vec3; getCorners(idx: number): NavPath; } } export default () => Promise<Recast>;