@recast-navigation/core 0.3.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.
@@ -1,161 +0,0 @@
1
- import type R from '@recast-navigation/wasm';
2
- import { NavMesh } from './nav-mesh';
3
- import { TileCache } from './tile-cache';
4
- import { rcChunkyTriMesh, rcCompactHeightfield, rcContourSet, rcHeightfield, rcHeightfieldLayerSet } from './wrappers';
5
- export type NavMeshConfig = {
6
- /**
7
- * The size of the non-navigable border around the heightfield.
8
- * [Limit: >=0] [Units: vx]
9
- * @default 0
10
- */
11
- borderSize: number;
12
- /**
13
- * The width/height size of tile's on the xz-plane.
14
- * [Limit: >= 0] [Units: vx]
15
- *
16
- * If tileSize is provided, a tiled navmesh will be created.
17
- * If tileSize is not provided, or is set to zero, a solo navmesh will be created.
18
- *
19
- * To use obstacles, a tiled navmesh must be generated.
20
- * @default 0
21
- */
22
- tileSize: number;
23
- /**
24
- * The xz-plane cell size to use for fields.
25
- * [Limit: > 0] [Units: wu]
26
- * @default 0.2
27
- */
28
- cs: number;
29
- /**
30
- * The y-axis cell size to use for fields.
31
- * Limit: > 0] [Units: wu]
32
- * @default 0.2
33
- */
34
- ch: number;
35
- /**
36
- * The maximum slope that is considered walkable.
37
- * [Limits: 0 <= value < 90] [Units: Degrees]
38
- * @default 60
39
- */
40
- walkableSlopeAngle: number;
41
- /**
42
- * Minimum floor to 'ceiling' height that will still allow the floor area to be considered walkable.
43
- * [Limit: >= 3] [Units: vx]
44
- * @default 2
45
- */
46
- walkableHeight: number;
47
- /**
48
- * Maximum ledge height that is considered to still be traversable.
49
- * [Limit: >=0] [Units: vx]
50
- * @default 2
51
- */
52
- walkableClimb: number;
53
- /**
54
- * The distance to erode/shrink the walkable area of the heightfield away from obstructions.
55
- * [Limit: >=0] [Units: vx]
56
- * @default 0.5
57
- */
58
- walkableRadius: number;
59
- /**
60
- * The maximum allowed length for contour edges along the border of the mesh.
61
- * [Limit: >=0] [Units: vx]
62
- * @default 12
63
- */
64
- maxEdgeLen: number;
65
- /**
66
- * The maximum distance a simplfied contour's border edges should deviate the original raw contour.
67
- * [Limit: >=0] [Units: vx]
68
- * @default 1.3
69
- */
70
- maxSimplificationError: number;
71
- /**
72
- * The minimum number of cells allowed to form isolated island areas.
73
- * [Limit: >=0] [Units: vx]
74
- * @default 8
75
- */
76
- minRegionArea: number;
77
- /**
78
- * Any regions with a span count smaller than this value will, if possible, be merged with larger regions.
79
- * [Limit: >=0] [Units: vx]
80
- * @default 20
81
- */
82
- mergeRegionArea: number;
83
- /**
84
- * The maximum number of vertices allowed for polygons generated during the be merged with larger regions.
85
- * [Limit: >=0] [Units: vx]
86
- * @default 6
87
- */
88
- maxVertsPerPoly: number;
89
- /**
90
- * Sets the sampling distance to use when generating the detail mesh. (For height detail only.)
91
- * [Limits: 0 or >= 0.9] [Units: wu]
92
- * @default 6
93
- */
94
- detailSampleDist: number;
95
- /**
96
- * The maximum distance the detail mesh surface should deviate from heightfield data. (For height detail only.)
97
- * [Limit: >=0] [Units: wu]
98
- * @default 1
99
- */
100
- detailSampleMaxError: number;
101
- /**
102
- * How many layers (or "floors") each navmesh tile is expected to have.
103
- */
104
- expectedLayersPerTile: number;
105
- /**
106
- * The max number of layers a navmesh can have.
107
- */
108
- maxLayers: number;
109
- };
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 = {
135
- success: boolean;
136
- navMesh: NavMesh;
137
- tileCache: TileCache;
138
- intermediates?: TiledNavMeshIntermediates;
139
- };
140
- export declare class NavMeshGenerator {
141
- raw: R.NavMeshGenerator;
142
- constructor();
143
- /**
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.
153
- * @param positions a flat array of positions
154
- * @param indices a flat array of indices
155
- * @param navMeshConfig optional configuration for the NavMesh
156
- * @param keepIntermediates if true, the TiledNavMeshIntermediates will be returned
157
- */
158
- generateTiledNavMesh(positions: ArrayLike<number>, indices: ArrayLike<number>, navMeshConfig?: Partial<NavMeshConfig>, keepIntermediates?: boolean): TiledNavMeshGeneratorResult;
159
- private generate;
160
- destroy(): void;
161
- }
@@ -1,17 +0,0 @@
1
- import type R from '@recast-navigation/wasm';
2
- import { NavMesh } from './nav-mesh';
3
- import { TileCache } from './tile-cache';
4
- export type NavMeshImporterResult = {
5
- navMesh: NavMesh;
6
- tileCache: TileCache;
7
- };
8
- export declare class NavMeshImporter {
9
- raw: R.NavMeshImporter;
10
- constructor();
11
- /**
12
- * Build the navmesh from a previously saved state using getNavMeshExport
13
- * @param data the Uint8Array returned by `getNavMeshExport`
14
- */
15
- import(data: Uint8Array): NavMeshImporterResult;
16
- destroy(): void;
17
- }
@@ -1,18 +0,0 @@
1
- import type R from '@recast-navigation/wasm';
2
- import type { Vector3 } from './utils';
3
- export type ObstacleRef = R.dtObstacleRef;
4
- export type BoxObstacle = {
5
- type: 'box';
6
- ref: ObstacleRef;
7
- position: Vector3;
8
- extent: Vector3;
9
- angle: number;
10
- };
11
- export type CylinderObstacle = {
12
- type: 'cylinder';
13
- ref: ObstacleRef;
14
- position: Vector3;
15
- radius: number;
16
- height: number;
17
- };
18
- export type Obstacle = BoxObstacle | CylinderObstacle;
package/dist/wasm.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import Recast from '@recast-navigation/wasm';
2
- export declare const Wasm: {
3
- Recast: typeof Recast;
4
- DtStatus: Recast.DtStatus;
5
- };
6
- export declare const init: () => Promise<void>;
@@ -1,248 +0,0 @@
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
- }