|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||

java.lang.Objectcz.cuni.amis.pogamut.ut2004.agent.navigation.navmesh.NavMesh
public class NavMesh
Class storing NavMesh data structures.
Controlled from NavMeshModule.
| Constructor Summary | |
|---|---|
NavMesh(IWorldView worldView,
Logger log)
|
|
| Method Summary | |
|---|---|
protected void |
clear()
Reseting NavMesh instance, completely "unloading" the NavMesh. |
IPathFuture<ILocated> |
computePath(ILocated from,
ILocated to)
Computes and returns a path between two points anywhere on the map. |
protected boolean |
eliminateUnreachablePolygons()
Some polygons cannot be reached we find them with the help of navigation graph Definition: 1. |
NavMeshBSPNode |
getBiggestLeafInTree()
|
double |
getDistance(ILocated from,
ILocated to)
|
protected double |
getDistance(INavMeshAtom atom1,
INavMeshAtom atom2)
Returns distance between two atoms (euclidean distance) If the atom is a polygon, this method takes its middle |
double |
getDistanceFromEdge(Location location,
javax.vecmath.Vector2d vector)
Returns distance of the location from the navmesh's edge in the given direction. |
double |
getDistanceFromEdge(Location location,
javax.vecmath.Vector2d vector,
double rayLength)
A simple implementation of NavMesh's 2D raycasting. |
NavMeshPolygon |
getNearestPolygon(Location location)
|
ArrayList<Integer> |
getNeighbourIdsToPolygon(int polygonId)
Gets an array of polygon ids by an polygon id |
int |
getNeighbourPolygon(int currentPolygonId,
int v1,
int v2)
Finds neighbour behind given vertexes. |
int |
getNumberOfPolygonsInBiggestLeaf()
Debug method: helps to describe BSP tree by telling the number of polygons in the biggest leaf (this should not bee too big. 5 is a good number.) |
ArrayList<OffMeshPoint> |
getOffMeshPoints()
Returns list of OffMeshPoints within the NavMesh. |
List<OffMeshPoint> |
getOffMeshPointsOnPolygon(int polygonId)
Returns a List of offmeshpoints that are located on target polygon |
List<ILocated> |
getPath(ILocated from,
ILocated to)
Computes and returns a path between two points anywhere on the map. |
int[] |
getPolygon(int polygonId)
Gets a clone of polygon by its order |
int |
getPolygonId(Location location)
Gets the id of a polygon that contains this location |
int |
getPolygonId(math.geom3d.Point3D point3D)
Returns PolygonId for a given point3D. |
List<INavMeshAtom> |
getPolygonPath(INavMeshAtom fromAtom,
INavMeshAtom toAtom)
Gets a List of polygons on which the path should go. |
List<INavMeshAtom> |
getPolygonPath(Location from,
Location to)
Calls the method with the same name but polygons as arguments and returns result |
ArrayList<Integer> |
getPolygonsByVertex(int vertexId)
Gets a list of polygons containing this vertex. |
ArrayList<int[]> |
getPolys()
Returns list of all NavMesh polygons. |
double[] |
getVertex(int vertexId)
Gets a clone of vertex by its order |
ArrayList<double[]> |
getVerts()
Returns list of all NavMesh points. |
boolean |
isLoaded()
Tells whether the NavMesh has been successfully initialized and thus can be used. |
boolean |
load(GameInfo info,
boolean shouldReloadNavMesh)
Load NavMesh according to current map (obtained through GameInfo.getLevel()) from directories specified by NavMeshConstants. |
protected void |
loadNavMeshFromCoreFile(File processedNavMeshFile)
|
protected void |
loadSourceFile(File pureMeshFile)
|
int |
polyCount()
Returns the number of polygons in navmesh |
protected void |
resetBSPTree()
Gets a new BSPTree for this mesh |
protected void |
resetOffMeshConnections()
Creates off-mesh connections between polygons that does not share an edge, but there is a connection from one to the other in navigation graph. |
protected void |
resetSafeVerts()
Resets the array of boolean values saying whether a vertex is at the edge of navmesh |
protected void |
resetVertsToPolys()
Builds the resetVertsToPolys mapping array |
protected void |
saveNavMeshCore(String mapName)
|
void |
setBiggestLeafInTree(NavMeshBSPNode node)
DEBUG ONLY: sets the biggest leaf so it can be easily found. |
protected void |
setFwMap(FloydWarshallMap fwMap)
|
int |
vertCount()
Returns the number of vertices in navmesh |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public NavMesh(IWorldView worldView,
Logger log)
| Method Detail |
|---|
public boolean isLoaded()
load(GameInfo, boolean) to initialize NavMesh.
public int polyCount()
public int vertCount()
public ArrayList<int[]> getPolys()
getVerts() array.
public ArrayList<double[]> getVerts()
public int[] getPolygon(int polygonId)
public double[] getVertex(int vertexId)
public ArrayList<Integer> getPolygonsByVertex(int vertexId)
public ArrayList<Integer> getNeighbourIdsToPolygon(int polygonId)
public ArrayList<OffMeshPoint> getOffMeshPoints()
OffMeshPoints within the NavMesh.
public List<OffMeshPoint> getOffMeshPointsOnPolygon(int polygonId)
polygonId -
public int getNumberOfPolygonsInBiggestLeaf()
public void setBiggestLeafInTree(NavMeshBSPNode node)
public int getPolygonId(math.geom3d.Point3D point3D)
point3D -
public int getPolygonId(Location location)
location -
public boolean load(GameInfo info,
boolean shouldReloadNavMesh)
GameInfo.getLevel()) from directories specified by NavMeshConstants.
info - shouldReloadNavMesh - whether we should ignore ".navmesh.processed" file and recreate NavMesh again, comes in handy when you are working with NavigationGraphBuilder
protected void loadNavMeshFromCoreFile(File processedNavMeshFile)
throws FileNotFoundException,
IOException,
ClassNotFoundException
FileNotFoundException
IOException
ClassNotFoundException
protected void loadSourceFile(File pureMeshFile)
throws NumberFormatException,
IOException
NumberFormatException
IOExceptionprotected void resetVertsToPolys()
protected void resetSafeVerts()
protected void resetBSPTree()
protected boolean eliminateUnreachablePolygons()
protected void resetOffMeshConnections()
protected void saveNavMeshCore(String mapName)
public IPathFuture<ILocated> computePath(ILocated from,
ILocated to)
computePath in interface IPathPlanner<ILocated>from - to -
public double getDistance(ILocated from,
ILocated to)
getDistance in interface IPathPlanner<ILocated>
public List<INavMeshAtom> getPolygonPath(INavMeshAtom fromAtom,
INavMeshAtom toAtom)
fromAtom - toAtom -
public List<INavMeshAtom> getPolygonPath(Location from,
Location to)
from - to -
public List<ILocated> getPath(ILocated from,
ILocated to)
from - to -
public NavMeshPolygon getNearestPolygon(Location location)
protected double getDistance(INavMeshAtom atom1,
INavMeshAtom atom2)
atom1 - atom2 -
public double getDistanceFromEdge(Location location,
javax.vecmath.Vector2d vector,
double rayLength)
location - vector -
public double getDistanceFromEdge(Location location,
javax.vecmath.Vector2d vector)
location - vector -
public int getNeighbourPolygon(int currentPolygonId,
int v1,
int v2)
currentPolygonId - v1 - v2 -
public NavMeshBSPNode getBiggestLeafInTree()
protected void setFwMap(FloydWarshallMap fwMap)
protected void clear()
NavMesh instance, completely "unloading" the NavMesh.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||