private void _addNewEmptyGlobalPathWayPointAtIndex(int i) { // we are statically allocating one grid waypoint as we are creating one corresponding grid navigation task which will watch it globalPath.Add(new State()); globalPathPolygonIndices.Add(0); // adding dummy polygon index offMeshLinkWayPoint.Add(false); // adding off mesh link state defaults to false // creating the grid task List <State> gridPath = new List <State> (); localPaths.Add(gridPath); State gridStartState = (i == 0) ? currentState : globalPath[i - 1]; // tunnel planner stuff GridTimeDomain gridTimeDomain = new GridTimeDomain(neighborObstacles, neighborAgents); List <State> spaceTimePath = new List <State> (); spaceTimePaths.Add(spaceTimePath); GridNavigationTask gridNavigationTask = new GridNavigationTask(gridStartState, globalPath[i], 2.5F, ref gridPath, 1.0f, 1.0f, ref spaceTimePath, gridTimeDomain, TaskPriority.Inactive, taskManager); gridNavigationTask.taskName = "gridNavigationTask:" + i.ToString(); globalPath[i].notifyObservers(Event.GOAL_INVALID); // currently the goal is invalid gridNavigationTasks.Add(gridNavigationTask); if (i == 0) // first grid navigation task { neighborAgents.observable.registerObserver(Event.NEIGBHOR_AGENTS_CHANGED, gridNavigationTask); neighborObstacles.observable.registerObserver(Event.NEIGBHOR_DYNAMIC_OBSTACLES_CHANGED, gridNavigationTask); gridNavigationTask.currentlyExecutingTask = true; } /* * // creating the grid time task * List<State> spaceTimePath = new List<State> (); * spaceTimePaths.Add(spaceTimePath); * * GridTimeDomain gridTimeDomain = new GridTimeDomain (neigbhorObstacles); * GridTimeTunnelNavigationTask tunnelNavigationTask = * new GridTimeTunnelNavigationTask(gridStartState, globalPath[i], gridPath,1.0F,1.0F,ref gridTimeDomain, ref spaceTimePath, TaskPriority.Inactive,taskManager); * tunnelNavigationTask.taskName = "tunnelNavigationTask" + i.ToString(); * * // EVENT: gridNavigationTask will send Event.GRID_PATH_CHANGED to tunnelNavigationTask * gridNavigationTask.registerObserver(Event.GRID_PATH_CHANGED,tunnelNavigationTask); */ }
private void _addNewEmptyGlobalPathWayPointAtIndex(int i) { // we are statically allocating one grid waypoint as we are creating one corresponding grid navigation task which will watch it globalPath.Add(new State()); globalPathPolygonIndices.Add(0); // adding dummy polygon index offMeshLinkWayPoint.Add(false); // adding off mesh link state defaults to false // creating the grid task List<State> gridPath = new List<State> (); localPaths.Add(gridPath); State gridStartState = (i == 0) ? currentState : globalPath[i-1]; // tunnel planner stuff GridTimeDomain gridTimeDomain = new GridTimeDomain (neighborObstacles, neighborAgents); List<State> spaceTimePath = new List<State> (); spaceTimePaths.Add(spaceTimePath); GridNavigationTask gridNavigationTask = new GridNavigationTask (gridStartState, globalPath[i],2.5F, ref gridPath, 1.0f, 1.0f, ref spaceTimePath, gridTimeDomain, TaskPriority.Inactive, taskManager); gridNavigationTask.taskName = "gridNavigationTask:" + i.ToString(); globalPath[i].notifyObservers(Event.GOAL_INVALID); // currently the goal is invalid gridNavigationTasks.Add(gridNavigationTask); if (i==0) // first grid navigation task { neighborAgents.observable.registerObserver(Event.NEIGBHOR_AGENTS_CHANGED, gridNavigationTask); neighborObstacles.observable.registerObserver(Event.NEIGBHOR_DYNAMIC_OBSTACLES_CHANGED, gridNavigationTask); gridNavigationTask.currentlyExecutingTask = true; } /* // creating the grid time task List<State> spaceTimePath = new List<State> (); spaceTimePaths.Add(spaceTimePath); GridTimeDomain gridTimeDomain = new GridTimeDomain (neigbhorObstacles); GridTimeTunnelNavigationTask tunnelNavigationTask = new GridTimeTunnelNavigationTask(gridStartState, globalPath[i], gridPath,1.0F,1.0F,ref gridTimeDomain, ref spaceTimePath, TaskPriority.Inactive,taskManager); tunnelNavigationTask.taskName = "tunnelNavigationTask" + i.ToString(); // EVENT: gridNavigationTask will send Event.GRID_PATH_CHANGED to tunnelNavigationTask gridNavigationTask.registerObserver(Event.GRID_PATH_CHANGED,tunnelNavigationTask); */ }