NodeNavMesh extends NavMesh implements Serializable, Cloneable { public PathData path(Vector3 start, Vector3 end) { PathData data; synchronized (pathFinder) { data = pathFinder.calc(start, end, this.maxDistanceBetweenNode, this.blockConnector, this.blockAreas); } return data; } NodeNavMesh(String filePath);  NodeNavMesh(String filePath, boolean editor); final TriangleBlock addBlock(ArrayList<Vector3> vertices); final TriangleBlock addBlock(List<Vector3> vertices, boolean bufferOuter, boolean editor); final void removeBlock(TriangleBlock block); final KPolygon getKPolygon(Vector3 position, float distance, Vector3 sourceDirection, float width,
			float height); final KPolygon getKPolygon(Vector3 position, Vector3 sourceDirection, float distance, float radius,
			float degrees); final KPolygon getKPolygon(Vector3 center, float radius, int vertexCount); PathData path(Vector3 start, Vector3 end); Vector3 getPointInPath(float x, float z); Vector3 getRandomPointInPaths(Vector3 center, float radius, float minDistanceToCenter); boolean isPointInPaths(Vector3 movedPoint); boolean isPointInPaths(double x, double z); boolean isPointInBlocks(Vector3 movedPoint); boolean isPointInBlocks(double x, double z); void amendPointY(Vector3 movedPoint); KPolygon getPolygonInPaths(Vector3 movedPoint); Vector3 getNearestPointInPaths(Vector3 point); List<TriangleBlock> getBlockAreas(); List<TriangleBlock> getPathAreas(); float getWidth(); float getHeight(); int getMapId(); float getStartX(); float getStartZ(); float getEndX(); float getEndZ(); float getScale();  }
@Test public void test(){ NodeNavMesh navMesh=new NodeNavMesh(FILE_PATH,true); navMesh.path(new Vector3(291, 0, 90), new Vector3(728, 0, 550)); }
@Test public void testPerformance() { long start = TimeUtil.currentTimeMillis(); PathData path=null; for(int i=0;i<10000;i++) { path = navMesh.path(new Vector3(12f,0f,505f), new Vector3(407f,0f,95f)); } System.err.println("耗时："+(TimeUtil.currentTimeMillis()-start)); if(path!=null&&path.points!=null) { path.points.forEach(p->System.out.println(p.toString())); } }