recast.d.ts 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. declare module Recast {
  2. export class rcConfig {
  3. new ();
  4. width: number;
  5. height: number;
  6. tileSize: number;
  7. borderSize: number;
  8. cs: number;
  9. ch: number;
  10. bmin: any;
  11. bmax: any;
  12. walkableSlopeAngle: number;
  13. walkableHeight: number;
  14. walkableClimb: number;
  15. walkableRadius: number;
  16. maxEdgeLen: number;
  17. maxSimplificationError: number;
  18. minRegionArea: number;
  19. mergeRegionArea: number;
  20. maxVertsPerPoly: number;
  21. detailSampleDist: number;
  22. detailSampleMaxError: number;
  23. }
  24. export class Vec3 {
  25. new ();
  26. new (x: number, y: number, z: number);
  27. x: number;
  28. y: number;
  29. z: number;
  30. }
  31. export class Triangle {
  32. new ();
  33. getPoint(n: number): Vec3;
  34. }
  35. export class DebugNavMesh {
  36. new ();
  37. getTriangleCount(): number;
  38. getTriangle(n: number): Triangle;
  39. }
  40. export class dtNavMesh {
  41. }
  42. export class dtObstacleRef {
  43. }
  44. export class NavmeshData {
  45. new ();
  46. dataPointer: any;
  47. size: number;
  48. }
  49. export class NavPath {
  50. getPointCount(): number;
  51. getPoint(n: number): Vec3;
  52. }
  53. export class dtCrowdAgentParams {
  54. new ();
  55. radius: number;
  56. height: number;
  57. maxAcceleration: number;
  58. maxSpeed: number;
  59. collisionQueryRange: number;
  60. pathOptimizationRange: number;
  61. separationWeight: number;
  62. updateFlags: number;
  63. obstacleAvoidanceType: number;
  64. queryFilterType: number;
  65. userData: unknown;
  66. }
  67. export class NavMesh {
  68. new ();
  69. destroy(): void;
  70. build(positions: any, positionCount: number, indices: any, indexCount: number, config: rcConfig): void;
  71. buildFromNavmeshData(data: NavmeshData): void;
  72. getNavmeshData(): NavmeshData;
  73. freeNavmeshData(data: NavmeshData): void;
  74. getDebugNavMesh(): DebugNavMesh;
  75. getClosestPoint(position: Vec3): Vec3;
  76. getRandomPointAround(position: Vec3, maxRadius: number): Vec3;
  77. moveAlong(position: Vec3, destination: Vec3): Vec3;
  78. getNavMesh(): dtNavMesh;
  79. computePath(start: Vec3, end: Vec3): NavPath;
  80. setDefaultQueryExtent(extent: Vec3): void;
  81. getDefaultQueryExtent(): Vec3;
  82. addCylinderObstacle(position: Vec3, radius: number, height: number): dtObstacleRef;
  83. addBoxObstacle(position: Vec3, extent: Vec3, angle: number): dtObstacleRef;
  84. removeObstacle(obstacle: dtObstacleRef): void;
  85. update(): void;
  86. }
  87. export class Crowd {
  88. new (maxAgents: number, maxAgentRadius: number, nav: dtNavMesh);
  89. destroy(): void;
  90. addAgent(position: Vec3, params: dtCrowdAgentParams): number;
  91. removeAgent(idx: number): void;
  92. update(dt: number): void;
  93. getAgentPosition(idx: number): Vec3;
  94. getAgentVelocity(idx: number): Vec3;
  95. getAgentNextTargetPath(idx: number): Vec3;
  96. getAgentState(idx: number): number;
  97. overOffmeshConnection(idx: number): boolean;
  98. agentGoto(idx: number, destination: Vec3): void;
  99. agentTeleport(idx: number, destination: Vec3): void;
  100. getAgentParameters(idx: number): dtCrowdAgentParams;
  101. setAgentParameters(idx: number, params: dtCrowdAgentParams): void;
  102. setDefaultQueryExtent(extent: Vec3): void;
  103. getDefaultQueryExtent(): Vec3;
  104. getCorners(idx: number): NavPath;
  105. }
  106. }