Dungeon Architect  17.0.0
SharpNav.NavMesh Class Reference

A TiledNavMesh generated from a collection of triangles and some settings More...

Inheritance diagram for SharpNav.NavMesh:
SharpNav.TiledNavMesh

Public Member Functions

 NavMesh (NavMeshBuilder builder)
 Initializes a new instance of the NavMesh class. More...
 
- Public Member Functions inherited from SharpNav.TiledNavMesh
 TiledNavMesh (NavMeshBuilder data)
 Initializes a new instance of the TiledNavMesh class. More...
 
bool InitTileNavMesh (TiledNavMeshParams parameters)
 Initialize the Tiled Navigation Mesh variables and arrays. More...
 
void AddTile (NavMeshBuilder data, int lastRef, ref int result)
 Build a tile and link all the polygons togther, both internally and externally. Make sure to link off-mesh connections as well. More...
 
void ConnectIntLinks (ref MeshTile tile)
 Allocate links for each of the tile's polygons' vertices More...
 
void BaseOffMeshLinks (ref MeshTile tile)
 Begin creating off-mesh links between the tile polygons. More...
 
void ConnectExtLinks (ref MeshTile tile, ref MeshTile target, BoundarySide side)
 Connect polygons from two different tiles. More...
 
void ConnectExtOffMeshLinks (ref MeshTile tile, ref MeshTile target, BoundarySide side)
 Connect Off-Mesh links between polygons from two different tiles. More...
 
bool GetOffMeshConnectionPolyEndPoints (int prevRef, int polyRef, ref Vector3 startPos, ref Vector3 endPos)
 Retrieve the endpoints of the offmesh connection at the specified polygon More...
 
void FindConnectingPolys (Vector3 va, Vector3 vb, MeshTile tile, BoundarySide side, List< int > con, List< float > conarea)
 Search for neighbor polygons in the tile. More...
 
void CalcSlabEndPoints (Vector3 va, Vector3 vb, Vector2 bmin, Vector2 bmax, BoundarySide side)
 Find the slab endpoints based off of the 'side' value. More...
 
float GetSlabCoord (Vector3 va, BoundarySide side)
 Return the proper slab coordinate value depending on the 'side' value. More...
 
bool OverlapSlabs (Vector2 amin, Vector2 amax, Vector2 bmin, Vector2 bmax, float px, float py)
 Check if two slabs overlap. More...
 
int FindNearestPolyInTile (MeshTile tile, Vector3 center, Vector3 extents, ref Vector3 nearestPt)
 Find the closest polygon possible in the tile under certain constraints. More...
 
int QueryPolygonsInTile (MeshTile tile, BBox3 qbounds, List< int > polys)
 Find all the polygons within a certain bounding box. More...
 
int AllocLink (MeshTile tile)
 Allocate a new link if possible. More...
 
int GetTileRef (MeshTile tile)
 Get the tile reference More...
 
MeshTile GetTileAt (int x, int y, int layer)
 Find the tile at a specific location More...
 
int GetTilesAt (int x, int y, MeshTile[] tiles)
 Find and add a tile if it is found More...
 
int GetNeighbourTilesAt (int x, int y, BoundarySide side, MeshTile[] tiles)
 Gets the neighboring tile at that position More...
 
int ComputeTileHash (int x, int y, int mask)
 Computes the tile hash code, which can be used in a hash table for quick lookup. More...
 
int GetReference (int polyBase, int poly)
 Get the actual polygon reference More...
 
bool IsLinkAllocated (int index)
 Determines whether a link exists for that index More...
 
bool IsExternalLink (int neighbor)
 Determines whether the two polygons are externally linked or not More...
 
int GetPolyRefBase (MeshTile tile)
 Get the base reference for the polygons in a tile. More...
 
bool TryGetTileAndPolyByRef (int reference, out MeshTile tile, out Poly poly)
 Retrieve the tile and poly based off of a polygon reference More...
 
void TryGetTileAndPolyByRefUnsafe (int reference, out MeshTile tile, out Poly poly)
 Only use this function if it is known that the provided polygon reference is valid. More...
 
bool IsValidPolyRef (int reference)
 Check if polygon reference is valid. More...
 
void DecodePolyId (int reference, ref int salt, ref int indexTile, ref int indexPoly)
 Decode a standard polygon reference More...
 
int DecodePolyIdSalt (int reference)
 Extract a tile's salt value from the specified polygon reference More...
 
int DecodePolyIdTile (int reference)
 Extract a tile's index from the specified polygon reference More...
 
int DecodePolyIdPoly (int reference)
 Extract a polygon's index (within its tile) from the specified polygon reference More...
 
int EncodePolyId (int salt, int indexTile, int indexPoly)
 Derive a standard polygon reference, which compresses salt, tile index, and poly index together More...
 
void CalcTileLoc (ref Vector3 pos, out int tx, out int ty)
 Calculates the tile location. More...
 

Static Public Member Functions

static NavMesh Generate (IEnumerable< Triangle3 > triangles, NavMeshGenerationSettings settings, out PolyMesh polyMesh, out PolyMeshDetail polyMeshDetail)
 Generates a NavMesh given a collection of triangles and some settings. More...
 

Additional Inherited Members

- Properties inherited from SharpNav.TiledNavMesh
int TileCount [get]
 Gets the maximum number of tiles that can be stored More...
 
MeshTile this[int index] [get]
 Gets the mesh tile at a specified index. More...
 
object Tag [get, set]
 Gets or sets user data for this navmesh. More...
 

Detailed Description

A TiledNavMesh generated from a collection of triangles and some settings

Definition at line 15 of file NavMesh.cs.

Constructor & Destructor Documentation

◆ NavMesh()

SharpNav.NavMesh.NavMesh ( NavMeshBuilder  builder)

Initializes a new instance of the NavMesh class.

Parameters
builderThe NavMeshBuilder data

Definition at line 21 of file NavMesh.cs.

Member Function Documentation

◆ Generate()

static NavMesh SharpNav.NavMesh.Generate ( IEnumerable< Triangle3 triangles,
NavMeshGenerationSettings  settings,
out PolyMesh  polyMesh,
out PolyMeshDetail  polyMeshDetail 
)
static

Generates a NavMesh given a collection of triangles and some settings.

Parameters
trianglesThe triangles that form the level.
settingsThe settings to generate with.
Returns
A NavMesh.

Definition at line 32 of file NavMesh.cs.


The documentation for this class was generated from the following file: