@recast-navigation/core 0.1.2 → 0.2.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/index.d.ts +1 -0
- package/dist/index.es.js +1 -1
- package/dist/index.es.js.map +1 -1
- package/dist/nav-mesh-generator.d.ts +39 -3
- package/dist/nav-mesh.d.ts +1 -90
- package/dist/wrappers.d.ts +248 -0
- package/package.json +2 -2
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type R from '@recast-navigation/wasm';
|
|
2
2
|
import { NavMesh } from './nav-mesh';
|
|
3
3
|
import { TileCache } from './tile-cache';
|
|
4
|
+
import { rcChunkyTriMesh, rcCompactHeightfield, rcContourSet, rcHeightfield, rcHeightfieldLayerSet } from './wrappers';
|
|
4
5
|
export type NavMeshConfig = {
|
|
5
6
|
/**
|
|
6
7
|
* The size of the non-navigable border around the heightfield.
|
|
@@ -106,20 +107,55 @@ export type NavMeshConfig = {
|
|
|
106
107
|
*/
|
|
107
108
|
maxLayers: number;
|
|
108
109
|
};
|
|
109
|
-
export type
|
|
110
|
+
export type SoloNavMeshConfig = Omit<NavMeshConfig, 'tileSize'>;
|
|
111
|
+
export type TiledNavMeshConfig = NavMeshConfig;
|
|
112
|
+
export declare class NavMeshIntermediates {
|
|
113
|
+
raw: R.NavMeshIntermediates;
|
|
114
|
+
constructor(raw: R.NavMeshIntermediates);
|
|
115
|
+
heightfield(): rcHeightfield;
|
|
116
|
+
compactHeightfield(): rcCompactHeightfield;
|
|
117
|
+
contourSet(): rcContourSet;
|
|
118
|
+
heightfieldLayerSet(): rcHeightfieldLayerSet;
|
|
119
|
+
destroy(): void;
|
|
120
|
+
}
|
|
121
|
+
export declare class TiledNavMeshIntermediates {
|
|
122
|
+
raw: R.TiledNavMeshIntermediates;
|
|
123
|
+
constructor(raw: R.TiledNavMeshIntermediates);
|
|
124
|
+
chunkyTriMesh(): rcChunkyTriMesh;
|
|
125
|
+
intermediates(index: number): NavMeshIntermediates;
|
|
126
|
+
intermediatesCount(): number;
|
|
127
|
+
destroy(): void;
|
|
128
|
+
}
|
|
129
|
+
export type SoloNavMeshGeneratorResult = {
|
|
130
|
+
success: boolean;
|
|
131
|
+
navMesh: NavMesh;
|
|
132
|
+
intermediates?: NavMeshIntermediates;
|
|
133
|
+
};
|
|
134
|
+
export type TiledNavMeshGeneratorResult = {
|
|
110
135
|
success: boolean;
|
|
111
136
|
navMesh: NavMesh;
|
|
112
137
|
tileCache: TileCache;
|
|
138
|
+
intermediates?: TiledNavMeshIntermediates;
|
|
113
139
|
};
|
|
114
140
|
export declare class NavMeshGenerator {
|
|
115
141
|
raw: R.NavMeshGenerator;
|
|
116
142
|
constructor();
|
|
117
143
|
/**
|
|
118
|
-
* Builds a NavMesh from the given positions and indices.
|
|
144
|
+
* Builds a Solo NavMesh from the given positions and indices.
|
|
145
|
+
* @param positions a flat array of positions
|
|
146
|
+
* @param indices a flat array of indices
|
|
147
|
+
* @param navMeshConfig optional configuration for the NavMesh
|
|
148
|
+
* @param keepIntermediates if true, the NavMeshIntermediates will be returned
|
|
149
|
+
*/
|
|
150
|
+
generateSoloNavMesh(positions: ArrayLike<number>, indices: ArrayLike<number>, navMeshConfig?: Partial<Omit<NavMeshConfig, 'tileSize'>>, keepIntermediates?: boolean): SoloNavMeshGeneratorResult;
|
|
151
|
+
/**
|
|
152
|
+
* Builds a Tiled NavMesh from the given positions and indices.
|
|
119
153
|
* @param positions a flat array of positions
|
|
120
154
|
* @param indices a flat array of indices
|
|
121
155
|
* @param navMeshConfig optional configuration for the NavMesh
|
|
156
|
+
* @param keepIntermediates if true, the TiledNavMeshIntermediates will be returned
|
|
122
157
|
*/
|
|
123
|
-
|
|
158
|
+
generateTiledNavMesh(positions: ArrayLike<number>, indices: ArrayLike<number>, navMeshConfig?: Partial<NavMeshConfig>, keepIntermediates?: boolean): TiledNavMeshGeneratorResult;
|
|
159
|
+
private generate;
|
|
124
160
|
destroy(): void;
|
|
125
161
|
}
|
package/dist/nav-mesh.d.ts
CHANGED
|
@@ -1,95 +1,6 @@
|
|
|
1
1
|
import type R from '@recast-navigation/wasm';
|
|
2
2
|
import { Vector3 } from './utils';
|
|
3
|
-
|
|
4
|
-
raw: R.dtPoly;
|
|
5
|
-
constructor(raw: R.dtPoly);
|
|
6
|
-
firstLink(): number;
|
|
7
|
-
verts(index: number): number;
|
|
8
|
-
neis(index: number): number;
|
|
9
|
-
flags(): number;
|
|
10
|
-
vertCount(): number;
|
|
11
|
-
areaAndType(): number;
|
|
12
|
-
getType(): number;
|
|
13
|
-
}
|
|
14
|
-
export declare class dtPolyDetail {
|
|
15
|
-
raw: R.dtPolyDetail;
|
|
16
|
-
constructor(raw: R.dtPolyDetail);
|
|
17
|
-
vertBase(): number;
|
|
18
|
-
triBase(): number;
|
|
19
|
-
vertCount(): number;
|
|
20
|
-
triCount(): number;
|
|
21
|
-
}
|
|
22
|
-
export declare class dtLink {
|
|
23
|
-
raw: R.dtLink;
|
|
24
|
-
constructor(raw: R.dtLink);
|
|
25
|
-
ref(): number;
|
|
26
|
-
next(): number;
|
|
27
|
-
edge(): number;
|
|
28
|
-
side(): number;
|
|
29
|
-
bmin(): number;
|
|
30
|
-
bmax(): number;
|
|
31
|
-
}
|
|
32
|
-
export declare class dtBVNode {
|
|
33
|
-
raw: R.dtBVNode;
|
|
34
|
-
constructor(raw: R.dtBVNode);
|
|
35
|
-
bmin(): Vector3;
|
|
36
|
-
bmax(): Vector3;
|
|
37
|
-
i(): number;
|
|
38
|
-
}
|
|
39
|
-
export declare class dtOffMeshConnection {
|
|
40
|
-
raw: R.dtOffMeshConnection;
|
|
41
|
-
constructor(raw: R.dtOffMeshConnection);
|
|
42
|
-
pos(index: number): number;
|
|
43
|
-
rad(): number;
|
|
44
|
-
poly(): number;
|
|
45
|
-
flags(): number;
|
|
46
|
-
side(): number;
|
|
47
|
-
userId(): number;
|
|
48
|
-
}
|
|
49
|
-
export declare class dtMeshHeader {
|
|
50
|
-
raw: R.dtMeshHeader;
|
|
51
|
-
constructor(raw: R.dtMeshHeader);
|
|
52
|
-
magic(): number;
|
|
53
|
-
version(): number;
|
|
54
|
-
x(): number;
|
|
55
|
-
y(): number;
|
|
56
|
-
layer(): number;
|
|
57
|
-
userId(): number;
|
|
58
|
-
polyCount(): number;
|
|
59
|
-
vertCount(): number;
|
|
60
|
-
maxLinkCount(): number;
|
|
61
|
-
detailMeshCount(): number;
|
|
62
|
-
detailVertCount(): number;
|
|
63
|
-
detailTriCount(): number;
|
|
64
|
-
bvNodeCount(): number;
|
|
65
|
-
offMeshConCount(): number;
|
|
66
|
-
offMeshBase(): number;
|
|
67
|
-
walkableHeight(): number;
|
|
68
|
-
walkableRadius(): number;
|
|
69
|
-
walkableClimb(): number;
|
|
70
|
-
bmin(index: number): number;
|
|
71
|
-
bmax(index: number): number;
|
|
72
|
-
bvQuantFactor(): number;
|
|
73
|
-
}
|
|
74
|
-
export declare class dtMeshTile {
|
|
75
|
-
raw: R.dtMeshTile;
|
|
76
|
-
constructor(raw: R.dtMeshTile);
|
|
77
|
-
salt(): number;
|
|
78
|
-
linksFreeList(): number;
|
|
79
|
-
header(): dtMeshHeader | null;
|
|
80
|
-
polys(index: number): dtPoly;
|
|
81
|
-
verts(index: number): number;
|
|
82
|
-
links(index: number): dtLink;
|
|
83
|
-
detailMeshes(index: number): dtPolyDetail;
|
|
84
|
-
detailVerts(index: number): number;
|
|
85
|
-
detailTris(index: number): number;
|
|
86
|
-
bvTree(index: number): dtBVNode;
|
|
87
|
-
offMeshCons(index: number): dtOffMeshConnection;
|
|
88
|
-
data(index: number): number;
|
|
89
|
-
dataSize(): number;
|
|
90
|
-
flags(): number;
|
|
91
|
-
next(): dtMeshTile;
|
|
92
|
-
}
|
|
3
|
+
import { dtMeshTile, dtPoly, dtOffMeshConnection } from './wrappers';
|
|
93
4
|
export declare class NavMeshGetTilesAtResult {
|
|
94
5
|
raw: R.NavMeshGetTilesAtResult;
|
|
95
6
|
constructor(raw: R.NavMeshGetTilesAtResult);
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import type R from '@recast-navigation/wasm';
|
|
2
|
+
import { Vector3 } from './utils';
|
|
3
|
+
export declare class rcSpan {
|
|
4
|
+
raw: R.rcSpan;
|
|
5
|
+
constructor(raw: R.rcSpan);
|
|
6
|
+
smin(): number;
|
|
7
|
+
smax(): number;
|
|
8
|
+
area(): number;
|
|
9
|
+
next(): rcSpan | null;
|
|
10
|
+
}
|
|
11
|
+
export declare class rcSpanPool {
|
|
12
|
+
raw: R.rcSpanPool;
|
|
13
|
+
constructor(raw: R.rcSpanPool);
|
|
14
|
+
next(): rcSpanPool | null;
|
|
15
|
+
items(index: number): rcSpan;
|
|
16
|
+
}
|
|
17
|
+
export declare class rcHeightfield {
|
|
18
|
+
raw: R.rcHeightfield;
|
|
19
|
+
constructor(raw: R.rcHeightfield);
|
|
20
|
+
width(): number;
|
|
21
|
+
height(): number;
|
|
22
|
+
bmin(): Vector3;
|
|
23
|
+
bmax(): Vector3;
|
|
24
|
+
cs(): number;
|
|
25
|
+
ch(): number;
|
|
26
|
+
spans(index: number): rcSpan;
|
|
27
|
+
pools(index: number): rcSpanPool;
|
|
28
|
+
freelist(index: number): rcSpan;
|
|
29
|
+
}
|
|
30
|
+
export declare class rcCompactCell {
|
|
31
|
+
raw: R.rcCompactCell;
|
|
32
|
+
constructor(raw: R.rcCompactCell);
|
|
33
|
+
index(): number;
|
|
34
|
+
count(): number;
|
|
35
|
+
}
|
|
36
|
+
export declare class rcCompactSpan {
|
|
37
|
+
raw: R.rcCompactSpan;
|
|
38
|
+
constructor(raw: R.rcCompactSpan);
|
|
39
|
+
y(): number;
|
|
40
|
+
reg(): number;
|
|
41
|
+
con(): number;
|
|
42
|
+
h(): number;
|
|
43
|
+
}
|
|
44
|
+
export declare class rcCompactHeightfield {
|
|
45
|
+
raw: R.rcCompactHeightfield;
|
|
46
|
+
constructor(raw: R.rcCompactHeightfield);
|
|
47
|
+
width(): number;
|
|
48
|
+
height(): number;
|
|
49
|
+
spanCount(): number;
|
|
50
|
+
walkableHeight(): number;
|
|
51
|
+
walkableClimb(): number;
|
|
52
|
+
borderSize(): number;
|
|
53
|
+
maxDistance(): number;
|
|
54
|
+
maxRegions(): number;
|
|
55
|
+
bmin(): Vector3;
|
|
56
|
+
bmax(): Vector3;
|
|
57
|
+
cs(): number;
|
|
58
|
+
ch(): number;
|
|
59
|
+
cells(index: number): rcCompactCell;
|
|
60
|
+
spans(index: number): rcCompactSpan;
|
|
61
|
+
dist(index: number): number;
|
|
62
|
+
areas(index: number): number;
|
|
63
|
+
}
|
|
64
|
+
export declare class rcContour {
|
|
65
|
+
raw: R.rcContour;
|
|
66
|
+
constructor(raw: R.rcContour);
|
|
67
|
+
verts(index: number): number;
|
|
68
|
+
nverts(): number;
|
|
69
|
+
rverts(index: number): number;
|
|
70
|
+
nrverts(): number;
|
|
71
|
+
reg(): number;
|
|
72
|
+
area(): number;
|
|
73
|
+
}
|
|
74
|
+
export declare class rcContourSet {
|
|
75
|
+
raw: R.rcContourSet;
|
|
76
|
+
constructor(raw: R.rcContourSet);
|
|
77
|
+
conts(index: number): rcContour;
|
|
78
|
+
nconts(): number;
|
|
79
|
+
bmin(): Vector3;
|
|
80
|
+
bmax(): Vector3;
|
|
81
|
+
cs(): number;
|
|
82
|
+
ch(): number;
|
|
83
|
+
width(): number;
|
|
84
|
+
height(): number;
|
|
85
|
+
borderSize(): number;
|
|
86
|
+
maxError(): number;
|
|
87
|
+
}
|
|
88
|
+
export declare class rcHeightfieldLayer {
|
|
89
|
+
raw: R.rcHeightfieldLayer;
|
|
90
|
+
constructor(raw: R.rcHeightfieldLayer);
|
|
91
|
+
bmin(): Vector3;
|
|
92
|
+
bmax(): Vector3;
|
|
93
|
+
cs(): number;
|
|
94
|
+
ch(): number;
|
|
95
|
+
width(): number;
|
|
96
|
+
height(): number;
|
|
97
|
+
minx(): number;
|
|
98
|
+
maxx(): number;
|
|
99
|
+
miny(): number;
|
|
100
|
+
maxy(): number;
|
|
101
|
+
hmin(): number;
|
|
102
|
+
hmax(): number;
|
|
103
|
+
heights(index: number): number;
|
|
104
|
+
areas(index: number): number;
|
|
105
|
+
cons(index: number): number;
|
|
106
|
+
}
|
|
107
|
+
export declare class rcHeightfieldLayerSet {
|
|
108
|
+
raw: R.rcHeightfieldLayerSet;
|
|
109
|
+
constructor(raw: R.rcHeightfieldLayerSet);
|
|
110
|
+
layers(index: number): rcHeightfieldLayer;
|
|
111
|
+
nlayers(): number;
|
|
112
|
+
}
|
|
113
|
+
export declare class rcChunkyTriMeshNode {
|
|
114
|
+
raw: R.rcChunkyTriMeshNode;
|
|
115
|
+
constructor(raw: R.rcChunkyTriMeshNode);
|
|
116
|
+
bmin(): Vector3;
|
|
117
|
+
bmax(): Vector3;
|
|
118
|
+
i(): number;
|
|
119
|
+
n(): number;
|
|
120
|
+
}
|
|
121
|
+
export declare class rcChunkyTriMesh {
|
|
122
|
+
raw: R.rcChunkyTriMesh;
|
|
123
|
+
constructor(raw: R.rcChunkyTriMesh);
|
|
124
|
+
nodes(index: number): rcChunkyTriMeshNode;
|
|
125
|
+
nnodes(): number;
|
|
126
|
+
tris(index: number): number;
|
|
127
|
+
ntris(): number;
|
|
128
|
+
maxTrisPerChunk(): number;
|
|
129
|
+
}
|
|
130
|
+
export declare class rcPolyMesh {
|
|
131
|
+
raw: R.rcPolyMesh;
|
|
132
|
+
constructor(raw: R.rcPolyMesh);
|
|
133
|
+
verts(index: number): number;
|
|
134
|
+
polys(index: number): number;
|
|
135
|
+
regs(index: number): number;
|
|
136
|
+
flags(index: number): number;
|
|
137
|
+
areas(index: number): number;
|
|
138
|
+
nverts(): number;
|
|
139
|
+
npolys(): number;
|
|
140
|
+
maxpolys(): number;
|
|
141
|
+
nvp(): number;
|
|
142
|
+
bmin(): Vector3;
|
|
143
|
+
bmax(): Vector3;
|
|
144
|
+
cs(): number;
|
|
145
|
+
ch(): number;
|
|
146
|
+
borderSize(): number;
|
|
147
|
+
maxEdgeError(): number;
|
|
148
|
+
}
|
|
149
|
+
export declare class rcPolyMeshDetail {
|
|
150
|
+
raw: R.rcPolyMeshDetail;
|
|
151
|
+
constructor(raw: R.rcPolyMeshDetail);
|
|
152
|
+
meshes(index: number): number;
|
|
153
|
+
verts(index: number): number;
|
|
154
|
+
tris(index: number): number;
|
|
155
|
+
nmeshes(): number;
|
|
156
|
+
nverts(): number;
|
|
157
|
+
ntris(): number;
|
|
158
|
+
}
|
|
159
|
+
export declare class dtPoly {
|
|
160
|
+
raw: R.dtPoly;
|
|
161
|
+
constructor(raw: R.dtPoly);
|
|
162
|
+
firstLink(): number;
|
|
163
|
+
verts(index: number): number;
|
|
164
|
+
neis(index: number): number;
|
|
165
|
+
flags(): number;
|
|
166
|
+
vertCount(): number;
|
|
167
|
+
areaAndType(): number;
|
|
168
|
+
getType(): number;
|
|
169
|
+
}
|
|
170
|
+
export declare class dtPolyDetail {
|
|
171
|
+
raw: R.dtPolyDetail;
|
|
172
|
+
constructor(raw: R.dtPolyDetail);
|
|
173
|
+
vertBase(): number;
|
|
174
|
+
triBase(): number;
|
|
175
|
+
vertCount(): number;
|
|
176
|
+
triCount(): number;
|
|
177
|
+
}
|
|
178
|
+
export declare class dtLink {
|
|
179
|
+
raw: R.dtLink;
|
|
180
|
+
constructor(raw: R.dtLink);
|
|
181
|
+
ref(): number;
|
|
182
|
+
next(): number;
|
|
183
|
+
edge(): number;
|
|
184
|
+
side(): number;
|
|
185
|
+
bmin(): number;
|
|
186
|
+
bmax(): number;
|
|
187
|
+
}
|
|
188
|
+
export declare class dtBVNode {
|
|
189
|
+
raw: R.dtBVNode;
|
|
190
|
+
constructor(raw: R.dtBVNode);
|
|
191
|
+
bmin(): Vector3;
|
|
192
|
+
bmax(): Vector3;
|
|
193
|
+
i(): number;
|
|
194
|
+
}
|
|
195
|
+
export declare class dtOffMeshConnection {
|
|
196
|
+
raw: R.dtOffMeshConnection;
|
|
197
|
+
constructor(raw: R.dtOffMeshConnection);
|
|
198
|
+
pos(index: number): number;
|
|
199
|
+
rad(): number;
|
|
200
|
+
poly(): number;
|
|
201
|
+
flags(): number;
|
|
202
|
+
side(): number;
|
|
203
|
+
userId(): number;
|
|
204
|
+
}
|
|
205
|
+
export declare class dtMeshHeader {
|
|
206
|
+
raw: R.dtMeshHeader;
|
|
207
|
+
constructor(raw: R.dtMeshHeader);
|
|
208
|
+
magic(): number;
|
|
209
|
+
version(): number;
|
|
210
|
+
x(): number;
|
|
211
|
+
y(): number;
|
|
212
|
+
layer(): number;
|
|
213
|
+
userId(): number;
|
|
214
|
+
polyCount(): number;
|
|
215
|
+
vertCount(): number;
|
|
216
|
+
maxLinkCount(): number;
|
|
217
|
+
detailMeshCount(): number;
|
|
218
|
+
detailVertCount(): number;
|
|
219
|
+
detailTriCount(): number;
|
|
220
|
+
bvNodeCount(): number;
|
|
221
|
+
offMeshConCount(): number;
|
|
222
|
+
offMeshBase(): number;
|
|
223
|
+
walkableHeight(): number;
|
|
224
|
+
walkableRadius(): number;
|
|
225
|
+
walkableClimb(): number;
|
|
226
|
+
bmin(index: number): number;
|
|
227
|
+
bmax(index: number): number;
|
|
228
|
+
bvQuantFactor(): number;
|
|
229
|
+
}
|
|
230
|
+
export declare class dtMeshTile {
|
|
231
|
+
raw: R.dtMeshTile;
|
|
232
|
+
constructor(raw: R.dtMeshTile);
|
|
233
|
+
salt(): number;
|
|
234
|
+
linksFreeList(): number;
|
|
235
|
+
header(): dtMeshHeader | null;
|
|
236
|
+
polys(index: number): dtPoly;
|
|
237
|
+
verts(index: number): number;
|
|
238
|
+
links(index: number): dtLink;
|
|
239
|
+
detailMeshes(index: number): dtPolyDetail;
|
|
240
|
+
detailVerts(index: number): number;
|
|
241
|
+
detailTris(index: number): number;
|
|
242
|
+
bvTree(index: number): dtBVNode;
|
|
243
|
+
offMeshCons(index: number): dtOffMeshConnection;
|
|
244
|
+
data(index: number): number;
|
|
245
|
+
dataSize(): number;
|
|
246
|
+
flags(): number;
|
|
247
|
+
next(): dtMeshTile;
|
|
248
|
+
}
|
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.
|
|
9
|
+
"version": "0.2.0",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"homepage": "https://github.com/isaac-mason/recast-navigation-js",
|
|
12
12
|
"bugs": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@babel/core": "^7.18.6",
|
|
29
|
-
"@recast-navigation/wasm": "0.
|
|
29
|
+
"@recast-navigation/wasm": "0.2.0",
|
|
30
30
|
"@rollup/plugin-commonjs": "^24.0.1",
|
|
31
31
|
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
32
32
|
"@rollup/plugin-terser": "^0.4.0",
|