This class contains all the members and functions that are required to form an interface between the AIBehaviors class and the PathFinder class. More...
#include "pathFind.h"
Public Member Functions | |
PathFind (AICharacter *ai_ch) | |
void | add_obstacle_to_mesh (NodePath obstacle) |
This function allows the user to dynamically add obstacles to the game environment. More... | |
void | assign_neighbor_nodes (const char *navmesh_filename) |
This function assigns the neighbor nodes for each main node present in _nav_mesh. More... | |
void | clear_path () |
Helper function to restore the path and mesh to its initial state. More... | |
void | clear_previous_obstacles () |
Helper function to reset the collisions if the obstacle is not on the node anymore. More... | |
void | create_nav_mesh (const char *navmesh_filename) |
This function recreates the navigation mesh from the .csv file. More... | |
void | do_dynamic_avoid () |
This function does the updation of the collisions to the mesh based on the new positions of the obstacles. More... | |
void | dynamic_avoid (NodePath obstacle) |
This function starts the pathfinding obstacle navigation for the passed in obstacle. More... | |
void | path_find (LVecBase3 pos, std::string type="normal") |
This function checks for the source and target in the navigation mesh for its availability and then finds the best path via the A* algorithm Then it calls the path follower to make the object follow the path. More... | |
void | path_find (NodePath target, std::string type="normal") |
This function checks for the source and target in the navigation mesh for its availability and then finds the best path via the A* algorithm Then it calls the path follower to make the object follow the path. More... | |
PT (GeomNode) _parent | |
void | set_path_find (const char *navmesh_filename) |
This function starts the path finding process after reading the given navigation mesh. More... | |
void | trace_path (Node *src) |
This function is the function which sends the path information one by one to the path follower so that it can store the path needed to be traversed by the pathfinding object. More... | |
Public Attributes | |
AICharacter * | _ai_char |
bool | _dynamic_avoid |
std::vector< NodePath > | _dynamic_obstacle |
int | _grid_size |
NavMesh | _nav_mesh |
NodePath | _path_find_target |
PathFinder * | _path_finder_obj |
LineSegs * | _pen |
LVecBase3 | _prev_position |
std::vector< int > | _previous_obstacles |
NavMesh | _stage_mesh |
This class contains all the members and functions that are required to form an interface between the AIBehaviors class and the PathFinder class.
An object (pointer) of this class is provided in the AIBehaviors class. It is only via this object that the user can activate pathfinding.
Definition at line 30 of file pathFind.h.
void PathFind::add_obstacle_to_mesh | ( | NodePath | obstacle | ) |
This function allows the user to dynamically add obstacles to the game environment.
The function will update the nodes within the bounding volume of the obstacle as non-traversable. Hence will not be considered by the pathfinding algorithm.
Definition at line 334 of file pathFind.cxx.
Referenced by AIBehaviors::add_static_obstacle().
void PathFind::assign_neighbor_nodes | ( | const char * | navmesh_filename | ) |
This function assigns the neighbor nodes for each main node present in _nav_mesh.
Definition at line 117 of file pathFind.cxx.
void PathFind::clear_path | ( | ) |
Helper function to restore the path and mesh to its initial state.
Definition at line 280 of file pathFind.cxx.
Referenced by path_find().
void PathFind::clear_previous_obstacles | ( | ) |
Helper function to reset the collisions if the obstacle is not on the node anymore.
Definition at line 377 of file pathFind.cxx.
Referenced by do_dynamic_avoid().
void PathFind::create_nav_mesh | ( | const char * | navmesh_filename | ) |
This function recreates the navigation mesh from the .csv file.
Definition at line 40 of file pathFind.cxx.
Referenced by set_path_find().
void PathFind::do_dynamic_avoid | ( | ) |
This function does the updation of the collisions to the mesh based on the new positions of the obstacles.
Definition at line 365 of file pathFind.cxx.
References clear_previous_obstacles().
Referenced by PathFollow::do_follow().
void PathFind::dynamic_avoid | ( | NodePath | obstacle | ) |
This function starts the pathfinding obstacle navigation for the passed in obstacle.
Definition at line 387 of file pathFind.cxx.
Referenced by AIBehaviors::add_dynamic_obstacle().
void PathFind::path_find | ( | LVecBase3 | pos, |
std::string | type = "normal" |
||
) |
This function checks for the source and target in the navigation mesh for its availability and then finds the best path via the A* algorithm Then it calls the path follower to make the object follow the path.
Definition at line 201 of file pathFind.cxx.
References clear_path(), find_in_mesh(), PathFinder::find_path(), NodePath::get_pos(), AIBehaviors::path_follow(), AIBehaviors::remove_ai(), AIBehaviors::start_follow(), and trace_path().
Referenced by PathFollow::do_follow(), and AIBehaviors::path_find_to().
void PathFind::path_find | ( | NodePath | target, |
std::string | type = "normal" |
||
) |
This function checks for the source and target in the navigation mesh for its availability and then finds the best path via the A* algorithm Then it calls the path follower to make the object follow the path.
Definition at line 239 of file pathFind.cxx.
References clear_path(), find_in_mesh(), PathFinder::find_path(), NodePath::get_pos(), AIBehaviors::path_follow(), AIBehaviors::remove_ai(), AIBehaviors::start_follow(), and trace_path().
void PathFind::set_path_find | ( | const char * | navmesh_filename | ) |
This function starts the path finding process after reading the given navigation mesh.
Definition at line 179 of file pathFind.cxx.
References create_nav_mesh(), AIBehaviors::path_follow(), and AIBehaviors::remove_ai().
Referenced by AIBehaviors::init_path_find().
void PathFind::trace_path | ( | Node * | src | ) |
This function is the function which sends the path information one by one to the path follower so that it can store the path needed to be traversed by the pathfinding object.
Definition at line 305 of file pathFind.cxx.
References AIBehaviors::add_to_path(), LineSegs::create(), LineSegs::draw_to(), and LineSegs::move_to().
Referenced by path_find().