12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- namespace Pathfinding {
- using Pathfinding.Util;
- using UnityEngine;
- public class NavmeshTile : INavmeshHolder {
- /// <summary>Tile triangles</summary>
- public int[] tris;
- /// <summary>Tile vertices</summary>
- public Int3[] verts;
- /// <summary>Tile vertices in graph space</summary>
- public Int3[] vertsInGraphSpace;
- /// <summary>Tile X Coordinate</summary>
- public int x;
- /// <summary>Tile Z Coordinate</summary>
- public int z;
- /// <summary>
- /// Width, in tile coordinates.
- /// Warning: Widths other than 1 are not supported. This is mainly here for possible future features.
- /// </summary>
- public int w;
- /// <summary>
- /// Depth, in tile coordinates.
- /// Warning: Depths other than 1 are not supported. This is mainly here for possible future features.
- /// </summary>
- public int d;
- /// <summary>All nodes in the tile</summary>
- public TriangleMeshNode[] nodes;
- /// <summary>Bounding Box Tree for node lookups</summary>
- public BBTree bbTree;
- /// <summary>Temporary flag used for batching</summary>
- public bool flag;
- public NavmeshBase graph;
- #region INavmeshHolder implementation
- public void GetTileCoordinates (int tileIndex, out int x, out int z) {
- x = this.x;
- z = this.z;
- }
- public int GetVertexArrayIndex (int index) {
- return index & NavmeshBase.VertexIndexMask;
- }
- /// <summary>Get a specific vertex in the tile</summary>
- public Int3 GetVertex (int index) {
- int idx = index & NavmeshBase.VertexIndexMask;
- return verts[idx];
- }
- public Int3 GetVertexInGraphSpace (int index) {
- return vertsInGraphSpace[index & NavmeshBase.VertexIndexMask];
- }
- /// <summary>Transforms coordinates from graph space to world space</summary>
- public GraphTransform transform { get { return graph.transform; } }
- #endregion
- public void GetNodes (System.Action<GraphNode> action) {
- if (nodes == null) return;
- for (int i = 0; i < nodes.Length; i++) action(nodes[i]);
- }
- }
- }
|