recast.d.ts 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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 NavmeshData {
  43. new ();
  44. dataPointer: any;
  45. size: number;
  46. }
  47. export class NavPath {
  48. getPointCount(): number;
  49. getPoint(n: number): Vec3;
  50. }
  51. export class dtCrowdAgentParams {
  52. new ();
  53. radius: number;
  54. height: number;
  55. maxAcceleration: number;
  56. maxSpeed: number;
  57. collisionQueryRange: number;
  58. pathOptimizationRange: number;
  59. separationWeight: number;
  60. updateFlags: number;
  61. obstacleAvoidanceType: number;
  62. queryFilterType: number;
  63. userData: unknown;
  64. }
  65. export class NavMesh {
  66. new ();
  67. destroy(): void;
  68. build(positions: any, positionCount: number, indices: any, indexCount: number, config: rcConfig): void;
  69. buildFromNavmeshData(data: NavmeshData): void;
  70. getNavmeshData(): NavmeshData;
  71. freeNavmeshData(data: NavmeshData): void;
  72. getDebugNavMesh(): DebugNavMesh;
  73. getClosestPoint(position: Vec3): Vec3;
  74. getRandomPointAround(position: Vec3, maxRadius: number): Vec3;
  75. moveAlong(position: Vec3, destination: Vec3): Vec3;
  76. getNavMesh(): dtNavMesh;
  77. computePath(start: Vec3, end: Vec3): NavPath;
  78. setDefaultQueryExtent(extent: Vec3): void;
  79. getDefaultQueryExtent(): Vec3;
  80. }
  81. export class Crowd {
  82. new (maxAgents: number, maxAgentRadius: number, nav: dtNavMesh);
  83. destroy(): void;
  84. addAgent(position: Vec3, params: dtCrowdAgentParams): number;
  85. removeAgent(idx: number): void;
  86. update(dt: number): void;
  87. getAgentPosition(idx: number): Vec3;
  88. getAgentVelocity(idx: number): Vec3;
  89. getAgentNextTargetPath(idx: number): Vec3;
  90. getAgentState(idx: number): number;
  91. overOffmeshConnection(idx: number): boolean;
  92. agentGoto(idx: number, destination: Vec3): void;
  93. agentTeleport(idx: number, destination: Vec3): void;
  94. getAgentParameters(idx: number): dtCrowdAgentParams;
  95. setAgentParameters(idx: number, params: dtCrowdAgentParams): void;
  96. setDefaultQueryExtent(extent: Vec3): void;
  97. getDefaultQueryExtent(): Vec3;
  98. }
  99. }