Panda3D
Public Member Functions | Public Attributes
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"

List of all members.

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.
void assign_neighbor_nodes (const char *navmesh_filename)
 This function assigns the neighbor nodes for each main node present in _nav_mesh.
void clear_path ()
 Helper function to restore the path and mesh to its initial state.
void clear_previous_obstacles ()
 Helper function to reset the collisions if the obstacle is not on the node anymore.
void create_nav_mesh (const char *navmesh_filename)
 This function recreates the navigation mesh from the .csv file.
void do_dynamic_avoid ()
 This function does the updation of the collisions to the mesh based on the new positions of the obstacles.
void dynamic_avoid (NodePath obstacle)
 This function starts the pathfinding obstacle navigation for the passed in obstacle.
void path_find (LVecBase3f pos, 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.
void path_find (NodePath target, 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.
 PT (GeomNode) _parent
void set_path_find (const char *navmesh_filename)
 This function starts the path finding process after reading the given navigation mesh.
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.

Public Attributes

AICharacter_ai_char
bool _dynamic_avoid
vector< NodePath_dynamic_obstacle
int _grid_size
NavMesh _nav_mesh
NodePath _path_find_target
PathFinder_path_finder_obj
LineSegs_pen
LVecBase3f _prev_position
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 36 of file pathFind.h.


Member Function Documentation

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 349 of file pathFind.cxx.

References NodePath::get_pos().

Referenced by AIBehaviors::add_static_obstacle(), and do_dynamic_avoid().

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 107 of file pathFind.cxx.

Referenced by create_nav_mesh().

Helper function to restore the path and mesh to its initial state.

Definition at line 287 of file pathFind.cxx.

Referenced by path_find().

Helper function to reset the collisions if the obstacle is not on the node anymore.

Definition at line 400 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 28 of file pathFind.cxx.

References assign_neighbor_nodes().

Referenced by set_path_find().

This function does the updation of the collisions to the mesh based on the new positions of the obstacles.

Definition at line 384 of file pathFind.cxx.

References add_obstacle_to_mesh(), and 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 414 of file pathFind.cxx.

Referenced by AIBehaviors::add_dynamic_obstacle().

void PathFind::path_find ( LVecBase3f  pos,
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 200 of file pathFind.cxx.

References clear_path(), 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,
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 242 of file pathFind.cxx.

References clear_path(), 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 173 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 316 of file pathFind.cxx.

References PandaNode::add_child(), 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:
 All Classes Functions Variables Enumerations