@recast-navigation/core 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/crowd.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type R from '@recast-navigation/wasm';
2
2
  import type { NavMesh } from './nav-mesh';
3
+ import { NavMeshQuery } from './nav-mesh-query';
3
4
  import { Vector3 } from './utils';
4
5
  export type CrowdParams = {
5
6
  /**
@@ -79,7 +80,7 @@ export type CrowdAgentParams = {
79
80
  userData: unknown;
80
81
  };
81
82
  export declare class Crowd {
82
- raw: R.Crowd;
83
+ raw: R.dtCrowd;
83
84
  /**
84
85
  * The indices of the active agents in the crowd.
85
86
  */
@@ -102,7 +103,10 @@ export declare class Crowd {
102
103
  * Time factor applied when updating crowd agents (default 1). A value of 0 will pause crowd updates.
103
104
  */
104
105
  timeFactor: number;
105
- private tmpVec1;
106
+ /**
107
+ * The NavMeshQuery used to find nearest polys for commands
108
+ */
109
+ navMeshQuery: NavMeshQuery;
106
110
  constructor({ maxAgents, maxAgentRadius, navMesh }: CrowdParams);
107
111
  /**
108
112
  * Adds a new agent to the crowd.
@@ -115,7 +119,7 @@ export declare class Crowd {
115
119
  /**
116
120
  * Submits a new move request for the specified agent.
117
121
  */
118
- goto(agentIndex: number, position: Vector3): void;
122
+ goto(agentIndex: number, position: Vector3): boolean;
119
123
  /**
120
124
  * Teleports the agent to the given position.
121
125
  */
@@ -182,15 +186,5 @@ export declare class Crowd {
182
186
  * @param crowdAgentParams
183
187
  */
184
188
  updateAgentParameters(agentIndex: number, crowdAgentParams: Partial<CrowdAgentParams>): void;
185
- /**
186
- * Gets the bounding box extent for doing spatial queries.
187
- */
188
- getDefaultQueryExtent(): Vector3;
189
- /**
190
- * Sets the Bounding box extent for doing spatial queries (getClosestPoint, getRandomPointAround, ...)
191
- * The queries will try to find a solution within those bounds.
192
- * The default is (1,1,1)
193
- */
194
- setDefaultQueryExtent(extent: Vector3): void;
195
189
  destroy(): void;
196
190
  }
@@ -0,0 +1,92 @@
1
+ import type R from '@recast-navigation/wasm';
2
+ import { Vector3 } from './utils';
3
+ export declare class DetourPolyDetail {
4
+ raw: R.dtPolyDetail;
5
+ constructor(raw: R.dtPolyDetail);
6
+ vertBase(): number;
7
+ triBase(): number;
8
+ vertCount(): number;
9
+ triCount(): number;
10
+ }
11
+ export declare class DetourLink {
12
+ raw: R.dtLink;
13
+ constructor(raw: R.dtLink);
14
+ ref(): number;
15
+ next(): number;
16
+ edge(): number;
17
+ side(): number;
18
+ bmin(): number;
19
+ bmax(): number;
20
+ }
21
+ export declare class DetourBVNode {
22
+ raw: R.dtBVNode;
23
+ constructor(raw: R.dtBVNode);
24
+ bmin(): Vector3;
25
+ bmax(): Vector3;
26
+ i(): number;
27
+ }
28
+ export declare class DetourOffMeshConnection {
29
+ raw: R.dtOffMeshConnection;
30
+ constructor(raw: R.dtOffMeshConnection);
31
+ pos(index: number): number;
32
+ rad(): number;
33
+ poly(): number;
34
+ flags(): number;
35
+ side(): number;
36
+ userId(): number;
37
+ }
38
+ export declare class DetourMeshHeader {
39
+ raw: R.dtMeshHeader;
40
+ constructor(raw: R.dtMeshHeader);
41
+ magic(): number;
42
+ version(): number;
43
+ x(): number;
44
+ y(): number;
45
+ layer(): number;
46
+ userId(): number;
47
+ polyCount(): number;
48
+ vertCount(): number;
49
+ maxLinkCount(): number;
50
+ detailMeshCount(): number;
51
+ detailVertCount(): number;
52
+ detailTriCount(): number;
53
+ bvNodeCount(): number;
54
+ offMeshConCount(): number;
55
+ offMeshBase(): number;
56
+ walkableHeight(): number;
57
+ walkableRadius(): number;
58
+ walkableClimb(): number;
59
+ bmin(index: number): number;
60
+ bmax(index: number): number;
61
+ bvQuantFactor(): number;
62
+ }
63
+ export declare class dtPoly {
64
+ raw: R.dtPoly;
65
+ constructor(raw: R.dtPoly);
66
+ firstLink(): number;
67
+ verts(index: number): number;
68
+ neis(index: number): number;
69
+ flags(): number;
70
+ vertCount(): number;
71
+ areaAndType(): number;
72
+ getType(): number;
73
+ }
74
+ export declare class DetourMeshTile {
75
+ raw: R.dtMeshTile;
76
+ constructor(raw: R.dtMeshTile);
77
+ salt(): number;
78
+ linksFreeList(): number;
79
+ header(): DetourMeshHeader | null;
80
+ polys(index: number): dtPoly;
81
+ verts(index: number): number;
82
+ links(index: number): DetourLink;
83
+ detailMeshes(index: number): DetourPolyDetail;
84
+ detailVerts(index: number): number;
85
+ detailTris(index: number): number;
86
+ bvTree(index: number): DetourBVNode;
87
+ offMeshCons(index: number): DetourOffMeshConnection;
88
+ data(index: number): number;
89
+ dataSize(): number;
90
+ flags(): number;
91
+ next(): DetourMeshTile;
92
+ }
@@ -0,0 +1,8 @@
1
+ export declare const getVertsAndTris: (positions: ArrayLike<number>, indices: ArrayLike<number>) => {
2
+ verts: number[];
3
+ nVerts: number;
4
+ tris: number[];
5
+ nTris: number;
6
+ bbMin: import("three").Vector3Tuple;
7
+ bbMax: import("three").Vector3Tuple;
8
+ };
@@ -0,0 +1,30 @@
1
+ import { NavMesh } from '../nav-mesh';
2
+ import { RecastConfigType, RecastCompactHeightfield, RecastContourSet, RecastHeightfield } from '../recast';
3
+ export type SoloNavMeshGeneratorConfig = Omit<RecastConfigType, 'tileSize'>;
4
+ export declare const soloNavMeshGeneratorConfigDefaults: SoloNavMeshGeneratorConfig;
5
+ export type SoloNavMeshGeneratorIntermediates = {
6
+ heightfield?: RecastHeightfield;
7
+ compactHeightfield?: RecastCompactHeightfield;
8
+ contourSet?: RecastContourSet;
9
+ };
10
+ type SoloNavMeshGeneratorSuccessResult = {
11
+ navMesh: NavMesh;
12
+ success: true;
13
+ intermediates?: SoloNavMeshGeneratorIntermediates;
14
+ };
15
+ type SoloNavMeshGeneratorFailResult = {
16
+ navMesh: undefined;
17
+ success: false;
18
+ intermediates?: SoloNavMeshGeneratorIntermediates;
19
+ error: string;
20
+ };
21
+ export type SoloNavMeshGeneratorResult = SoloNavMeshGeneratorSuccessResult | SoloNavMeshGeneratorFailResult;
22
+ /**
23
+ * Builds a Solo NavMesh from the given positions and indices.
24
+ * @param positions a flat array of positions
25
+ * @param indices a flat array of indices
26
+ * @param navMeshGeneratorConfig optional configuration for the NavMesh generator
27
+ * @param keepIntermediates if true intermediates will be returned
28
+ */
29
+ export declare const generateSoloNavMesh: (positions: ArrayLike<number>, indices: ArrayLike<number>, navMeshGeneratorConfig?: Partial<SoloNavMeshGeneratorConfig>, keepIntermediates?: boolean) => SoloNavMeshGeneratorResult;
30
+ export {};
@@ -0,0 +1,48 @@
1
+ import type R from '@recast-navigation/wasm';
2
+ import { NavMesh } from '../nav-mesh';
3
+ import { TileCache } from '../tile-cache';
4
+ import { RecastConfigType, RecastCompactHeightfield, RecastHeightfield, RecastHeightfieldLayerSet } from '../recast';
5
+ export type TiledNavMeshGeneratorConfig = RecastConfigType & {
6
+ /**
7
+ * How many layers (or "floors") each navmesh tile is expected to have.
8
+ */
9
+ expectedLayersPerTile: number;
10
+ /**
11
+ * The max number of obstacles
12
+ */
13
+ maxObstacles: number;
14
+ };
15
+ export declare const tiledNavMeshGeneratorConfigDefaults: TiledNavMeshGeneratorConfig;
16
+ export type TiledNavMeshGeneratorIntermediates = {
17
+ chunkyTriMesh?: R.rcChunkyTriMesh;
18
+ tileIntermediates: {
19
+ tx: number;
20
+ ty: number;
21
+ heightfield: RecastHeightfield;
22
+ heightfieldLayerSet: RecastHeightfieldLayerSet;
23
+ compactHeightfield: RecastCompactHeightfield;
24
+ }[];
25
+ };
26
+ type TiledNavMeshGeneratorSuccessResult = {
27
+ tileCache: TileCache;
28
+ navMesh: NavMesh;
29
+ success: true;
30
+ intermediates?: TiledNavMeshGeneratorIntermediates;
31
+ };
32
+ type TiledNavMeshGeneratorFailResult = {
33
+ tileCache: undefined;
34
+ navMesh: undefined;
35
+ success: false;
36
+ error: string;
37
+ intermediates?: TiledNavMeshGeneratorIntermediates;
38
+ };
39
+ export type TiledNavMeshGeneratorResult = TiledNavMeshGeneratorSuccessResult | TiledNavMeshGeneratorFailResult;
40
+ /**
41
+ * Builds a Tiled NavMesh from the given positions and indices.
42
+ * @param positions a flat array of positions
43
+ * @param indices a flat array of indices
44
+ * @param navMeshConfig optional configuration for the NavMesh
45
+ * @param keepIntermediates if true intermediates will be returned
46
+ */
47
+ export declare const generateTiledNavMesh: (positions: ArrayLike<number>, indices: ArrayLike<number>, navMeshGeneratorConfig?: Partial<TiledNavMeshGeneratorConfig>, keepIntermediates?: boolean) => TiledNavMeshGeneratorResult;
48
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './generate-solo-nav-mesh';
2
+ export * from './generate-tiled-nav-mesh';
package/dist/index.d.ts CHANGED
@@ -1,13 +1,10 @@
1
1
  export * from './crowd';
2
- export * from './dt-status';
2
+ export * from './detour';
3
+ export * from './generators';
3
4
  export * from './nav-mesh';
4
- export * from './nav-mesh-builder';
5
- export * from './nav-mesh-exporter';
6
- export * from './nav-mesh-generator';
7
- export * from './nav-mesh-importer';
8
5
  export * from './nav-mesh-query';
9
- export * from './obstacle';
10
- export * from './wrappers';
6
+ export * from './raw';
7
+ export * from './recast';
8
+ export * from './serdes';
11
9
  export * from './tile-cache';
12
10
  export * from './utils';
13
- export * from './wasm';