Panda3D
Public Member Functions | Public Attributes | List of all members
PathFind Class Reference

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
 

Detailed Description

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.

Member Function Documentation

◆ add_obstacle_to_mesh()

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().

◆ assign_neighbor_nodes()

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.

◆ clear_path()

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().

◆ clear_previous_obstacles()

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().

◆ create_nav_mesh()

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().

◆ do_dynamic_avoid()

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().

◆ dynamic_avoid()

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().

◆ path_find() [1/2]

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().

◆ path_find() [2/2]

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().

◆ set_path_find()

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().

◆ trace_path()

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().


The documentation for this class was generated from the following files: