1302898913 2 2 10 libpandaai 4 s1eG 7 pandaai 76 99 12 ~AIBehaviors 4 175 25 AIBehaviors::~AIBehaviors 0 0 0 32 AIBehaviors::~AIBehaviors(void); 100 4 seek 4 175 17 AIBehaviors::seek 0 4 1 2 3 4 440 ///////////////////////////////////////////////////////////////////////////////// // // Function : seek // Description : This function activates seek and makes an object of the Seek class. // This is the function we want the user to call for seek to be done. // This function is overloaded to accept a NodePath or an LVecBase3f. ///////////////////////////////////////////////////////////////////////////////// 129 void AIBehaviors::seek(NodePath target_object, float seek_wt = (1)); void AIBehaviors::seek(LVecBase3f pos, float seek_wt = (1)); 101 4 flee 4 175 17 AIBehaviors::flee 0 8 5 6 7 8 9 10 11 12 400 ////////////////////////////////////////////////////////////////////////////////////////////////// // // Function : flee // Description : This function activates flee_activate and creates an object of the Flee class. // This function is overloaded to accept a NodePath or an LVecBase3f. ////////////////////////////////////////////////////////////////////////////////////////////////// 249 void AIBehaviors::flee(NodePath target_object, double panic_distance = (10), double relax_distance = (10), float flee_wt = (1)); void AIBehaviors::flee(LVecBase3f pos, double panic_distance = (10), double relax_distance = (10), float flee_wt = (1)); 102 6 pursue 4 175 19 AIBehaviors::pursue 0 2 13 14 323 ///////////////////////////////////////////////////////////////////////////////// // // Function : pursue // Description : This function activates pursue. // This is the function we want the user to call for pursue to be done. ///////////////////////////////////////////////////////////////////////////////// 72 void AIBehaviors::pursue(NodePath target_object, float pursue_wt = (1)); 103 5 evade 4 175 18 AIBehaviors::evade 0 4 15 16 17 18 243 ///////////////////////////////////////////////////////////////////////////////// // // Function : evade // Description : This function activates evade_activate. ///////////////////////////////////////////////////////////////////////////////// 130 void AIBehaviors::evade(NodePath target_object, double panic_distance = (10), double relax_distance = (10), float evade_wt = (1)); 104 7 arrival 4 175 20 AIBehaviors::arrival 0 2 19 20 326 ///////////////////////////////////////////////////////////////////////////////// // // Function : arrival // Description : This function activates arrival. // This is the function we want the user to call for arrival to be done. ///////////////////////////////////////////////////////////////////////////////// 50 void AIBehaviors::arrival(double distance = (10)); 105 5 flock 4 175 18 AIBehaviors::flock 0 1 21 320 ///////////////////////////////////////////////////////////////////////////////// // // Function : flock // Description : This function activates flock. // This is the function we want the user to call for flock to be done. ///////////////////////////////////////////////////////////////////////////////// 40 void AIBehaviors::flock(float flock_wt); 106 6 wander 4 175 19 AIBehaviors::wander 0 5 22 23 24 25 26 321 ///////////////////////////////////////////////////////////////////////////////// // // Function : wander // Description : This function activates wander. // This is the function we want the user to call for flock to be done. ///////////////////////////////////////////////////////////////////////////////// 114 void AIBehaviors::wander(double wander_radius = (5), int flag = (0), double aoe = (0), float wander_weight = (1)); 107 18 obstacle_avoidance 4 175 31 AIBehaviors::obstacle_avoidance 0 2 27 28 402 ///////////////////////////////////////////////////////////////////////////////// // // Function : obstacle avoidance // Description : This function activates obstacle avoidance for a given character. // This is the function we want the user to call for // obstacle avoidance to be performed. ///////////////////////////////////////////////////////////////////////////////// 64 void AIBehaviors::obstacle_avoidance(float feeler_length = (1)); 108 11 path_follow 4 175 24 AIBehaviors::path_follow 0 1 29 333 ///////////////////////////////////////////////////////////////////////////////// // // Function : path_follow // Description : This function activates path following. // This is the function we want the user to call for path following. ///////////////////////////////////////////////////////////////////////////////// 47 void AIBehaviors::path_follow(float follow_wt); 109 11 add_to_path 4 175 24 AIBehaviors::add_to_path 0 1 30 261 ///////////////////////////////////////////////////////////////////////////////// // // Function : add_to_path // Description : This function adds positions to the path to follow. ///////////////////////////////////////////////////////////////////////////////// 46 void AIBehaviors::add_to_path(LVecBase3f pos); 110 12 start_follow 4 175 25 AIBehaviors::start_follow 0 2 31 32 250 ///////////////////////////////////////////////////////////////////////////////// // // Function : start_follow // Description : This function starts the path follower. ///////////////////////////////////////////////////////////////////////////////// 71 void AIBehaviors::start_follow(basic_string< char > type = ("normal")); 111 14 init_path_find 4 175 27 AIBehaviors::init_path_find 0 1 33 381 // should have different function names. ///////////////////////////////////////////////////////////////////////////////// // // Function : init_path_find // Description : This function activates path finding in the character. // This function accepts the meshdata in .csv format. // ///////////////////////////////////////////////////////////////////////////////// 63 void AIBehaviors::init_path_find(char const *navmesh_filename); 112 12 path_find_to 4 175 25 AIBehaviors::path_find_to 0 4 34 35 36 37 1078 // should have different function names. /////////////////////////////////////////////////////////////////////////////////////// // // Function : path_find_to (for pathfinding towards a static position) // Description : 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. /////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// // // Function : path_find_to (for pathfinding towards a moving target (a NodePath)) // Description : 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. /////////////////////////////////////////////////////////////////////////////////////// 176 void AIBehaviors::path_find_to(LVecBase3f pos, basic_string< char > type = ("normal")); void AIBehaviors::path_find_to(NodePath target, basic_string< char > type = ("normal")); 113 19 add_static_obstacle 4 175 32 AIBehaviors::add_static_obstacle 0 1 38 524 /////////////////////////////////////////////////////////////////////////////////////// // // Function : add_static_obstacle // Description : 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. /////////////////////////////////////////////////////////////////////////////////////// 57 void AIBehaviors::add_static_obstacle(NodePath obstacle); 114 20 add_dynamic_obstacle 4 175 33 AIBehaviors::add_dynamic_obstacle 0 1 39 333 /////////////////////////////////////////////////////////////////////////////////////// // // Function : add_dynamic_obstacle // Description : This function starts the pathfinding obstacle navigation for the // passed in obstacle. /////////////////////////////////////////////////////////////////////////////////////// 58 void AIBehaviors::add_dynamic_obstacle(NodePath obstacle); 115 9 remove_ai 4 175 22 AIBehaviors::remove_ai 0 1 40 282 // ///////////////////////////////////////////////////////////////////////////////// // // Function : remove_ai // Description : This function removes individual or all the AIs. ///////////////////////////////////////////////////////////////////////////////// //add for path follow 58 void AIBehaviors::remove_ai(basic_string< char > ai_type); 116 8 pause_ai 4 175 21 AIBehaviors::pause_ai 0 1 41 276 ///////////////////////////////////////////////////////////////////////////////// // // Function : pause_ai // Description : This function pauses individual or all the AIs. ///////////////////////////////////////////////////////////////////////////////// //add for path follow 57 void AIBehaviors::pause_ai(basic_string< char > ai_type); 117 9 resume_ai 4 175 22 AIBehaviors::resume_ai 0 1 42 255 ///////////////////////////////////////////////////////////////////////////////// // // Function : resume_ai // Description : This function resumes individual or all the AIs ///////////////////////////////////////////////////////////////////////////////// 58 void AIBehaviors::resume_ai(basic_string< char > ai_type); 118 15 behavior_status 4 175 28 AIBehaviors::behavior_status 0 1 43 378 /////////////////////////////////////////////////////////////////////////////////////// // // Function : behavior_status // Description : This function returns the status of an AI Type whether it is active, // paused or disabled. It returns -1 if an invalid string is passed. /////////////////////////////////////////////////////////////////////////////////////// 80 basic_string< char > AIBehaviors::behavior_status(basic_string< char > ai_type); 119 8 get_mass 4 176 21 AICharacter::get_mass 0 1 45 0 35 double AICharacter::get_mass(void); 120 8 set_mass 4 176 21 AICharacter::set_mass 0 1 46 0 37 void AICharacter::set_mass(double m); 121 12 get_velocity 4 176 25 AICharacter::get_velocity 0 1 47 0 43 LVecBase3f AICharacter::get_velocity(void); 122 13 get_max_force 4 176 26 AICharacter::get_max_force 0 1 48 0 40 double AICharacter::get_max_force(void); 123 13 set_max_force 4 176 26 AICharacter::set_max_force 0 1 49 0 50 void AICharacter::set_max_force(double max_force); 124 13 get_node_path 4 176 26 AICharacter::get_node_path 0 1 50 0 42 NodePath AICharacter::get_node_path(void); 125 13 set_node_path 4 176 26 AICharacter::set_node_path 0 1 51 0 45 void AICharacter::set_node_path(NodePath np); 126 16 get_ai_behaviors 4 176 29 AICharacter::get_ai_behaviors 0 1 52 0 49 AIBehaviors *AICharacter::get_ai_behaviors(void); 127 12 set_pf_guide 4 176 25 AICharacter::set_pf_guide 0 1 53 74 // This function is used to enable or disable the guides for path finding. 46 void AICharacter::set_pf_guide(bool pf_guide); 128 11 AICharacter 4 176 24 AICharacter::AICharacter 0 1 44 0 127 AICharacter::AICharacter(basic_string< char > model_name, NodePath model_np, double mass, double movt_force, double max_force); 129 12 ~AICharacter 4 176 25 AICharacter::~AICharacter 0 0 0 32 AICharacter::~AICharacter(void); 130 8 get_type 20 177 16 AINode::get_type 0 1 56 30 getter for bool AINode::_type; 34 bool AINode::get_type(void) const; 131 8 set_type 36 177 16 AINode::set_type 0 1 57 30 setter for bool AINode::_type; 34 void AINode::set_type(bool value); 132 10 get_status 20 177 18 AINode::get_status 0 1 58 42 getter for AINode::Status AINode::_status; 46 AINode::Status AINode::get_status(void) const; 133 10 set_status 36 177 18 AINode::set_status 0 1 59 42 setter for AINode::Status AINode::_status; 46 void AINode::set_status(AINode::Status value); 134 9 get_score 20 177 17 AINode::get_score 0 1 60 30 getter for int AINode::_score; 34 int AINode::get_score(void) const; 135 9 set_score 36 177 17 AINode::set_score 0 1 61 30 setter for int AINode::_score; 34 void AINode::set_score(int value); 136 8 get_cost 20 177 16 AINode::get_cost 0 1 62 29 getter for int AINode::_cost; 33 int AINode::get_cost(void) const; 137 8 set_cost 36 177 16 AINode::set_cost 0 1 63 29 setter for int AINode::_cost; 33 void AINode::set_cost(int value); 138 13 get_heuristic 20 177 21 AINode::get_heuristic 0 1 64 34 getter for int AINode::_heuristic; 38 int AINode::get_heuristic(void) const; 139 13 set_heuristic 36 177 21 AINode::set_heuristic 0 1 65 34 setter for int AINode::_heuristic; 38 void AINode::set_heuristic(int value); 140 12 get_prv_node 20 177 20 AINode::get_prv_node 0 1 66 37 getter for AINode *AINode::_prv_node; 41 AINode *AINode::get_prv_node(void) const; 141 12 set_prv_node 36 177 20 AINode::set_prv_node 0 1 67 37 setter for AINode *AINode::_prv_node; 41 void AINode::set_prv_node(AINode *value); 142 10 get_grid_y 20 177 18 AINode::get_grid_y 0 1 68 31 getter for int AINode::_grid_y; 35 int AINode::get_grid_y(void) const; 143 10 set_grid_y 36 177 18 AINode::set_grid_y 0 1 69 31 setter for int AINode::_grid_y; 35 void AINode::set_grid_y(int value); 144 10 get_grid_x 20 177 18 AINode::get_grid_x 0 1 70 31 getter for int AINode::_grid_x; 35 int AINode::get_grid_x(void) const; 145 10 set_grid_x 36 177 18 AINode::set_grid_x 0 1 71 31 setter for int AINode::_grid_x; 35 void AINode::set_grid_x(int value); 146 12 get_position 20 177 20 AINode::get_position 0 1 72 40 getter for LVecBase3f AINode::_position; 51 LVecBase3f const &AINode::get_position(void) const; 147 10 get_height 20 177 18 AINode::get_height 0 1 73 33 getter for float AINode::_height; 37 float AINode::get_height(void) const; 148 10 set_height 36 177 18 AINode::set_height 0 1 74 33 setter for float AINode::_height; 37 void AINode::set_height(float value); 149 10 get_length 20 177 18 AINode::get_length 0 1 75 33 getter for float AINode::_length; 37 float AINode::get_length(void) const; 150 10 set_length 36 177 18 AINode::set_length 0 1 76 33 setter for float AINode::_length; 37 void AINode::set_length(float value); 151 9 get_width 20 177 17 AINode::get_width 0 1 77 32 getter for float AINode::_width; 36 float AINode::get_width(void) const; 152 9 set_width 36 177 17 AINode::set_width 0 1 78 32 setter for float AINode::_width; 36 void AINode::set_width(float value); 153 8 get_next 20 177 16 AINode::get_next 0 1 79 33 getter for AINode *AINode::_next; 37 AINode *AINode::get_next(void) const; 154 8 set_next 36 177 16 AINode::set_next 0 1 80 33 setter for AINode *AINode::_next; 37 void AINode::set_next(AINode *value); 155 6 AINode 4 177 14 AINode::AINode 0 1 54 0 82 AINode::AINode(int grid_x, int grid_y, LVecBase3f pos, float w, float l, float h); 156 7 ~AINode 4 177 15 AINode::~AINode 0 0 0 22 AINode::~AINode(void); 157 8 contains 4 177 16 AINode::contains 0 1 55 297 //////////////////////////////////////////////////////////////////// // Function: contains // Description: This is a handy function which returns true if the // passed position is within the node's dimensions. //////////////////////////////////////////////////////////////////// 40 bool AINode::contains(float x, float y); 158 5 Flock 4 184 12 Flock::Flock 0 4 81 82 83 84 0 176 Flock::Flock(unsigned int flock_id, double vcone_angle, double vcone_radius, unsigned int separation_wt = (2), unsigned int cohesion_wt = (4), unsigned int alignment_wt = (1)); 159 6 ~Flock 4 184 13 Flock::~Flock 0 0 0 20 Flock::~Flock(void); 160 11 add_ai_char 4 184 18 Flock::add_ai_char 0 1 85 328 // Function to add the ai characters to _ai_char_list. ///////////////////////////////////////////////////////////////////////////////////////// // // Function : add_ai_char // Description : This function adds AI characters to the flock. ///////////////////////////////////////////////////////////////////////////////////////// 46 void Flock::add_ai_char(AICharacter *ai_char); 161 6 get_id 4 184 13 Flock::get_id 0 1 86 50 // Function to access the private member flock_id. 33 unsigned int Flock::get_id(void); 162 7 AIWorld 4 185 16 AIWorld::AIWorld 0 1 87 0 34 AIWorld::AIWorld(NodePath render); 163 8 ~AIWorld 4 185 17 AIWorld::~AIWorld 0 0 0 24 AIWorld::~AIWorld(void); 164 11 add_ai_char 4 185 20 AIWorld::add_ai_char 0 1 88 0 46 void AIWorld::add_ai_char(AICharacter *ai_ch); 165 14 remove_ai_char 4 185 23 AIWorld::remove_ai_char 0 1 89 0 56 void AIWorld::remove_ai_char(basic_string< char > name); 166 9 add_flock 4 185 18 AIWorld::add_flock 0 1 90 389 ///////////////////////////////////////////////////////////////////////////////// // // Function : add_flock // Description : This function adds all the AI characters in the Flock object to // the AICharPool. This function allows adding the AI characetrs as // part of a flock. ///////////////////////////////////////////////////////////////////////////////// 38 void AIWorld::add_flock(Flock *flock); 167 9 flock_off 4 185 18 AIWorld::flock_off 0 1 91 314 ///////////////////////////////////////////////////////////////////////////////// // // Function : flock_off // Description : This function turns off the flock behavior temporarily. Similar to // pausing the behavior. ///////////////////////////////////////////////////////////////////////////////// 47 void AIWorld::flock_off(unsigned int flock_id); 168 8 flock_on 4 185 17 AIWorld::flock_on 0 1 92 249 ///////////////////////////////////////////////////////////////////////////////// // // Function : flock_on // Description : This function turns on the flock behavior. ///////////////////////////////////////////////////////////////////////////////// 46 void AIWorld::flock_on(unsigned int flock_id); 169 12 remove_flock 4 185 21 AIWorld::remove_flock 0 1 93 263 ///////////////////////////////////////////////////////////////////////////////// // // Function : remove_flock // Description : This function removes the flock behavior completely. ///////////////////////////////////////////////////////////////////////////////// 50 void AIWorld::remove_flock(unsigned int flock_id); 170 9 get_flock 4 185 18 AIWorld::get_flock 0 1 94 271 ///////////////////////////////////////////////////////////////////////////////// // // Function : get_flock // Description : This function returns a handle to the Flock whose id is passed. ///////////////////////////////////////////////////////////////////////////////// 48 Flock AIWorld::get_flock(unsigned int flock_id); 171 12 add_obstacle 4 185 21 AIWorld::add_obstacle 0 1 95 326 ///////////////////////////////////////////////////////////////////////////////// // // Function : add_obstacle // Description : This function adds the nodepath as an obstacle that is needed // by the obstacle avoidance behavior. ///////////////////////////////////////////////////////////////////////////////// 46 void AIWorld::add_obstacle(NodePath obstacle); 172 15 remove_obstacle 4 185 24 AIWorld::remove_obstacle 0 1 96 341 ///////////////////////////////////////////////////////////////////////////////// // // Function : remove_obstacle // Description : This function removes the nodepath from the obstacles list that is needed // by the obstacle avoidance behavior. ///////////////////////////////////////////////////////////////////////////////// 49 void AIWorld::remove_obstacle(NodePath obstacle); 173 10 print_list 4 185 19 AIWorld::print_list 0 1 97 0 31 void AIWorld::print_list(void); 174 6 update 4 185 15 AIWorld::update 0 1 98 327 //////////////////////////////////////////////////////////////////////// // Function : update // Description : The AIWorld update function calls the update function of all the // AI characters which have been added to the AIWorld. ///////////////////////////////////////////////////////////////////////////////// 27 void AIWorld::update(void); 98 1 14 Dtool_s1eGdicZ 4 3 188 0 14 Dtool_s1eGdicZ 0 3 4 this 3 186 3 pos 1 187 7 seek_wt 1 183 2 14 Dtool_s1eGJAbG 4 3 188 0 14 Dtool_s1eGJAbG 0 2 4 this 3 186 3 pos 1 187 3 14 Dtool_s1eG1j_A 4 3 188 0 14 Dtool_s1eG1j_A 440 ///////////////////////////////////////////////////////////////////////////////// // // Function : seek // Description : This function activates seek and makes an object of the Seek class. // This is the function we want the user to call for seek to be done. // This function is overloaded to accept a NodePath or an LVecBase3f. ///////////////////////////////////////////////////////////////////////////////// 3 4 this 3 186 13 target_object 1 189 7 seek_wt 1 183 4 14 Dtool_s1eGHlTn 4 3 188 0 14 Dtool_s1eGHlTn 440 ///////////////////////////////////////////////////////////////////////////////// // // Function : seek // Description : This function activates seek and makes an object of the Seek class. // This is the function we want the user to call for seek to be done. // This function is overloaded to accept a NodePath or an LVecBase3f. ///////////////////////////////////////////////////////////////////////////////// 2 4 this 3 186 13 target_object 1 189 5 14 Dtool_s1eGaOeG 4 4 188 0 14 Dtool_s1eGaOeG 0 5 4 this 3 186 3 pos 1 187 14 panic_distance 1 191 14 relax_distance 1 191 7 flee_wt 1 183 6 14 Dtool_s1eGQpF_ 4 4 188 0 14 Dtool_s1eGQpF_ 0 4 4 this 3 186 3 pos 1 187 14 panic_distance 1 191 14 relax_distance 1 191 7 14 Dtool_s1eG1IQo 4 4 188 0 14 Dtool_s1eG1IQo 0 3 4 this 3 186 3 pos 1 187 14 panic_distance 1 191 8 14 Dtool_s1eG1zrL 4 4 188 0 14 Dtool_s1eG1zrL 0 2 4 this 3 186 3 pos 1 187 9 14 Dtool_s1eGC4Ws 4 4 188 0 14 Dtool_s1eGC4Ws 400 ////////////////////////////////////////////////////////////////////////////////////////////////// // // Function : flee // Description : This function activates flee_activate and creates an object of the Flee class. // This function is overloaded to accept a NodePath or an LVecBase3f. ////////////////////////////////////////////////////////////////////////////////////////////////// 5 4 this 3 186 13 target_object 1 189 14 panic_distance 1 191 14 relax_distance 1 191 7 flee_wt 1 183 10 14 Dtool_s1eGJcm3 4 4 188 0 14 Dtool_s1eGJcm3 400 ////////////////////////////////////////////////////////////////////////////////////////////////// // // Function : flee // Description : This function activates flee_activate and creates an object of the Flee class. // This function is overloaded to accept a NodePath or an LVecBase3f. ////////////////////////////////////////////////////////////////////////////////////////////////// 4 4 this 3 186 13 target_object 1 189 14 panic_distance 1 191 14 relax_distance 1 191 11 14 Dtool_s1eG3i_R 4 4 188 0 14 Dtool_s1eG3i_R 400 ////////////////////////////////////////////////////////////////////////////////////////////////// // // Function : flee // Description : This function activates flee_activate and creates an object of the Flee class. // This function is overloaded to accept a NodePath or an LVecBase3f. ////////////////////////////////////////////////////////////////////////////////////////////////// 3 4 this 3 186 13 target_object 1 189 14 panic_distance 1 191 12 14 Dtool_s1eG38is 4 4 188 0 14 Dtool_s1eG38is 400 ////////////////////////////////////////////////////////////////////////////////////////////////// // // Function : flee // Description : This function activates flee_activate and creates an object of the Flee class. // This function is overloaded to accept a NodePath or an LVecBase3f. ////////////////////////////////////////////////////////////////////////////////////////////////// 2 4 this 3 186 13 target_object 1 189 13 14 Dtool_s1eGjcbc 4 5 188 0 14 Dtool_s1eGjcbc 323 ///////////////////////////////////////////////////////////////////////////////// // // Function : pursue // Description : This function activates pursue. // This is the function we want the user to call for pursue to be done. ///////////////////////////////////////////////////////////////////////////////// 3 4 this 3 186 13 target_object 1 189 9 pursue_wt 1 183 14 14 Dtool_s1eG0cZJ 4 5 188 0 14 Dtool_s1eG0cZJ 323 ///////////////////////////////////////////////////////////////////////////////// // // Function : pursue // Description : This function activates pursue. // This is the function we want the user to call for pursue to be done. ///////////////////////////////////////////////////////////////////////////////// 2 4 this 3 186 13 target_object 1 189 15 14 Dtool_s1eGaJMk 4 6 188 0 14 Dtool_s1eGaJMk 243 ///////////////////////////////////////////////////////////////////////////////// // // Function : evade // Description : This function activates evade_activate. ///////////////////////////////////////////////////////////////////////////////// 5 4 this 3 186 13 target_object 1 189 14 panic_distance 1 191 14 relax_distance 1 191 8 evade_wt 1 183 16 14 Dtool_s1eGE28L 4 6 188 0 14 Dtool_s1eGE28L 243 ///////////////////////////////////////////////////////////////////////////////// // // Function : evade // Description : This function activates evade_activate. ///////////////////////////////////////////////////////////////////////////////// 4 4 this 3 186 13 target_object 1 189 14 panic_distance 1 191 14 relax_distance 1 191 17 14 Dtool_s1eGqtSX 4 6 188 0 14 Dtool_s1eGqtSX 243 ///////////////////////////////////////////////////////////////////////////////// // // Function : evade // Description : This function activates evade_activate. ///////////////////////////////////////////////////////////////////////////////// 3 4 this 3 186 13 target_object 1 189 14 panic_distance 1 191 18 14 Dtool_s1eGlkbo 4 6 188 0 14 Dtool_s1eGlkbo 243 ///////////////////////////////////////////////////////////////////////////////// // // Function : evade // Description : This function activates evade_activate. ///////////////////////////////////////////////////////////////////////////////// 2 4 this 3 186 13 target_object 1 189 19 14 Dtool_s1eG_TuJ 4 7 188 0 14 Dtool_s1eG_TuJ 326 ///////////////////////////////////////////////////////////////////////////////// // // Function : arrival // Description : This function activates arrival. // This is the function we want the user to call for arrival to be done. ///////////////////////////////////////////////////////////////////////////////// 2 4 this 3 186 8 distance 1 191 20 14 Dtool_s1eGYiIf 4 7 188 0 14 Dtool_s1eGYiIf 326 ///////////////////////////////////////////////////////////////////////////////// // // Function : arrival // Description : This function activates arrival. // This is the function we want the user to call for arrival to be done. ///////////////////////////////////////////////////////////////////////////////// 1 4 this 3 186 21 14 Dtool_s1eGBM3o 4 8 188 0 14 Dtool_s1eGBM3o 320 ///////////////////////////////////////////////////////////////////////////////// // // Function : flock // Description : This function activates flock. // This is the function we want the user to call for flock to be done. ///////////////////////////////////////////////////////////////////////////////// 2 4 this 3 186 8 flock_wt 1 183 22 14 Dtool_s1eGQlxz 4 9 188 0 14 Dtool_s1eGQlxz 321 ///////////////////////////////////////////////////////////////////////////////// // // Function : wander // Description : This function activates wander. // This is the function we want the user to call for flock to be done. ///////////////////////////////////////////////////////////////////////////////// 5 4 this 3 186 13 wander_radius 1 191 4 flag 1 180 3 aoe 1 191 13 wander_weight 1 183 23 14 Dtool_s1eG4Tnv 4 9 188 0 14 Dtool_s1eG4Tnv 321 ///////////////////////////////////////////////////////////////////////////////// // // Function : wander // Description : This function activates wander. // This is the function we want the user to call for flock to be done. ///////////////////////////////////////////////////////////////////////////////// 4 4 this 3 186 13 wander_radius 1 191 4 flag 1 180 3 aoe 1 191 24 14 Dtool_s1eGQQtk 4 9 188 0 14 Dtool_s1eGQQtk 321 ///////////////////////////////////////////////////////////////////////////////// // // Function : wander // Description : This function activates wander. // This is the function we want the user to call for flock to be done. ///////////////////////////////////////////////////////////////////////////////// 3 4 this 3 186 13 wander_radius 1 191 4 flag 1 180 25 14 Dtool_s1eGUd__ 4 9 188 0 14 Dtool_s1eGUd__ 321 ///////////////////////////////////////////////////////////////////////////////// // // Function : wander // Description : This function activates wander. // This is the function we want the user to call for flock to be done. ///////////////////////////////////////////////////////////////////////////////// 2 4 this 3 186 13 wander_radius 1 191 26 14 Dtool_s1eGbSqp 4 9 188 0 14 Dtool_s1eGbSqp 321 ///////////////////////////////////////////////////////////////////////////////// // // Function : wander // Description : This function activates wander. // This is the function we want the user to call for flock to be done. ///////////////////////////////////////////////////////////////////////////////// 1 4 this 3 186 27 14 Dtool_s1eGdK_A 4 10 188 0 14 Dtool_s1eGdK_A 402 ///////////////////////////////////////////////////////////////////////////////// // // Function : obstacle avoidance // Description : This function activates obstacle avoidance for a given character. // This is the function we want the user to call for // obstacle avoidance to be performed. ///////////////////////////////////////////////////////////////////////////////// 2 4 this 3 186 13 feeler_length 1 183 28 14 Dtool_s1eGrujs 4 10 188 0 14 Dtool_s1eGrujs 402 ///////////////////////////////////////////////////////////////////////////////// // // Function : obstacle avoidance // Description : This function activates obstacle avoidance for a given character. // This is the function we want the user to call for // obstacle avoidance to be performed. ///////////////////////////////////////////////////////////////////////////////// 1 4 this 3 186 29 14 Dtool_s1eGZSK2 4 11 188 0 14 Dtool_s1eGZSK2 333 ///////////////////////////////////////////////////////////////////////////////// // // Function : path_follow // Description : This function activates path following. // This is the function we want the user to call for path following. ///////////////////////////////////////////////////////////////////////////////// 2 4 this 3 186 9 follow_wt 1 183 30 14 Dtool_s1eGtX_U 4 12 188 0 14 Dtool_s1eGtX_U 261 ///////////////////////////////////////////////////////////////////////////////// // // Function : add_to_path // Description : This function adds positions to the path to follow. ///////////////////////////////////////////////////////////////////////////////// 2 4 this 3 186 3 pos 1 187 31 14 Dtool_s1eGx48R 4 13 188 0 14 Dtool_s1eGx48R 250 ///////////////////////////////////////////////////////////////////////////////// // // Function : start_follow // Description : This function starts the path follower. ///////////////////////////////////////////////////////////////////////////////// 2 4 this 3 186 4 type 1 192 32 14 Dtool_s1eGRqch 4 13 188 0 14 Dtool_s1eGRqch 250 ///////////////////////////////////////////////////////////////////////////////// // // Function : start_follow // Description : This function starts the path follower. ///////////////////////////////////////////////////////////////////////////////// 1 4 this 3 186 33 14 Dtool_s1eG2URf 4 14 188 0 14 Dtool_s1eG2URf 339 ///////////////////////////////////////////////////////////////////////////////// // // Function : init_path_find // Description : This function activates path finding in the character. // This function accepts the meshdata in .csv format. // ///////////////////////////////////////////////////////////////////////////////// 2 4 this 3 186 16 navmesh_filename 1 192 34 14 Dtool_s1eGAAa5 4 15 188 0 14 Dtool_s1eGAAa5 512 /////////////////////////////////////////////////////////////////////////////////////// // // Function : path_find_to (for pathfinding towards a static position) // Description : 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. /////////////////////////////////////////////////////////////////////////////////////// 3 4 this 3 186 3 pos 1 187 4 type 1 192 35 14 Dtool_s1eG7NZ3 4 15 188 0 14 Dtool_s1eG7NZ3 512 /////////////////////////////////////////////////////////////////////////////////////// // // Function : path_find_to (for pathfinding towards a static position) // Description : 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. /////////////////////////////////////////////////////////////////////////////////////// 2 4 this 3 186 3 pos 1 187 36 14 Dtool_s1eGxxB6 4 15 188 0 14 Dtool_s1eGxxB6 522 /////////////////////////////////////////////////////////////////////////////////////// // // Function : path_find_to (for pathfinding towards a moving target (a NodePath)) // Description : 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. /////////////////////////////////////////////////////////////////////////////////////// 3 4 this 3 186 6 target 1 189 4 type 1 192 37 14 Dtool_s1eGCbBn 4 15 188 0 14 Dtool_s1eGCbBn 522 /////////////////////////////////////////////////////////////////////////////////////// // // Function : path_find_to (for pathfinding towards a moving target (a NodePath)) // Description : 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. /////////////////////////////////////////////////////////////////////////////////////// 2 4 this 3 186 6 target 1 189 38 14 Dtool_s1eGHUqd 4 16 188 0 14 Dtool_s1eGHUqd 524 /////////////////////////////////////////////////////////////////////////////////////// // // Function : add_static_obstacle // Description : 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. /////////////////////////////////////////////////////////////////////////////////////// 2 4 this 3 186 8 obstacle 1 189 39 14 Dtool_s1eGKVVx 4 17 188 0 14 Dtool_s1eGKVVx 333 /////////////////////////////////////////////////////////////////////////////////////// // // Function : add_dynamic_obstacle // Description : This function starts the pathfinding obstacle navigation for the // passed in obstacle. /////////////////////////////////////////////////////////////////////////////////////// 2 4 this 3 186 8 obstacle 1 189 40 14 Dtool_s1eGonnz 4 18 188 0 14 Dtool_s1eGonnz 278 ///////////////////////////////////////////////////////////////////////////////// // // Function : remove_ai // Description : This function removes individual or all the AIs. ///////////////////////////////////////////////////////////////////////////////// //add for path follow 2 4 this 3 186 7 ai_type 1 192 41 14 Dtool_s1eGpA6j 4 19 188 0 14 Dtool_s1eGpA6j 276 ///////////////////////////////////////////////////////////////////////////////// // // Function : pause_ai // Description : This function pauses individual or all the AIs. ///////////////////////////////////////////////////////////////////////////////// //add for path follow 2 4 this 3 186 7 ai_type 1 192 42 14 Dtool_s1eGPV3T 4 20 188 0 14 Dtool_s1eGPV3T 255 ///////////////////////////////////////////////////////////////////////////////// // // Function : resume_ai // Description : This function resumes individual or all the AIs ///////////////////////////////////////////////////////////////////////////////// 2 4 this 3 186 7 ai_type 1 192 43 14 Dtool_s1eG1JTC 6 21 192 0 14 Dtool_s1eG1JTC 378 /////////////////////////////////////////////////////////////////////////////////////// // // Function : behavior_status // Description : This function returns the status of an AI Type whether it is active, // paused or disabled. It returns -1 if an invalid string is passed. /////////////////////////////////////////////////////////////////////////////////////// 2 4 this 3 186 7 ai_type 1 192 44 14 Dtool_s1eGgjUI 7 32 193 129 14 Dtool_s1eGgjUI 0 5 10 model_name 1 192 8 model_np 1 189 4 mass 1 191 10 movt_force 1 191 9 max_force 1 191 45 14 Dtool_s1eGckM8 6 23 191 0 14 Dtool_s1eGckM8 0 1 4 this 3 193 46 14 Dtool_s1eG7Wc5 4 24 188 0 14 Dtool_s1eG7Wc5 0 2 4 this 3 193 1 m 1 191 47 14 Dtool_s1eG9oVk 7 25 187 0 14 Dtool_s1eG9oVk 0 1 4 this 3 193 48 14 Dtool_s1eGKdq_ 6 26 191 0 14 Dtool_s1eGKdq_ 0 1 4 this 3 193 49 14 Dtool_s1eGG3OP 4 27 188 0 14 Dtool_s1eGG3OP 0 2 4 this 3 193 9 max_force 1 191 50 14 Dtool_s1eGK3xG 7 28 189 0 14 Dtool_s1eGK3xG 0 1 4 this 3 193 51 14 Dtool_s1eGyGvu 4 29 188 0 14 Dtool_s1eGyGvu 0 2 4 this 3 193 2 np 1 189 52 14 Dtool_s1eG29sm 6 30 186 0 14 Dtool_s1eG29sm 0 1 4 this 3 193 53 14 Dtool_s1eG3DR9 4 31 188 0 14 Dtool_s1eG3DR9 74 // This function is used to enable or disable the guides for path finding. 2 4 this 3 193 8 pf_guide 1 178 54 14 Dtool_s1eGojZp 7 80 181 156 14 Dtool_s1eGojZp 0 6 6 grid_x 1 180 6 grid_y 1 180 3 pos 1 187 1 w 1 183 1 l 1 183 1 h 1 183 55 14 Dtool_s1eGl_Pf 6 82 178 0 14 Dtool_s1eGl_Pf 297 //////////////////////////////////////////////////////////////////// // Function: contains // Description: This is a handy function which returns true if the // passed position is within the node's dimensions. //////////////////////////////////////////////////////////////////// 3 4 this 3 181 1 x 1 183 1 y 1 183 56 14 Dtool_s1eGJguu 6 36 178 0 14 Dtool_s1eGJguu 0 1 4 this 3 194 57 14 Dtool_s1eGlSWg 4 37 188 0 14 Dtool_s1eGlSWg 0 2 4 this 3 181 5 value 1 178 58 14 Dtool_s1eGslmo 6 40 179 0 14 Dtool_s1eGslmo 0 1 4 this 3 194 59 14 Dtool_s1eGE__O 4 41 188 0 14 Dtool_s1eGE__O 0 2 4 this 3 181 5 value 1 179 60 14 Dtool_s1eGFjqx 6 44 180 0 14 Dtool_s1eGFjqx 0 1 4 this 3 194 61 14 Dtool_s1eGSpwU 4 45 188 0 14 Dtool_s1eGSpwU 0 2 4 this 3 181 5 value 1 180 62 14 Dtool_s1eG_ILu 6 47 180 0 14 Dtool_s1eG_ILu 0 1 4 this 3 194 63 14 Dtool_s1eGRjmZ 4 48 188 0 14 Dtool_s1eGRjmZ 0 2 4 this 3 181 5 value 1 180 64 14 Dtool_s1eG1v3Z 6 50 180 0 14 Dtool_s1eG1v3Z 0 1 4 this 3 194 65 14 Dtool_s1eGg2vb 4 51 188 0 14 Dtool_s1eGg2vb 0 2 4 this 3 181 5 value 1 180 66 14 Dtool_s1eGQFsk 6 54 181 0 14 Dtool_s1eGQFsk 0 1 4 this 3 194 67 14 Dtool_s1eG19jA 4 55 188 0 14 Dtool_s1eG19jA 0 2 4 this 3 181 5 value 1 181 68 14 Dtool_s1eGC1yz 6 57 180 0 14 Dtool_s1eGC1yz 0 1 4 this 3 194 69 14 Dtool_s1eG1dgL 4 58 188 0 14 Dtool_s1eG1dgL 0 2 4 this 3 181 5 value 1 180 70 14 Dtool_s1eGE1kX 6 60 180 0 14 Dtool_s1eGE1kX 0 1 4 this 3 194 71 14 Dtool_s1eG4dSv 4 61 188 0 14 Dtool_s1eG4dSv 0 2 4 this 3 181 5 value 1 180 72 14 Dtool_s1eGq0xs 6 64 196 0 14 Dtool_s1eGq0xs 0 1 4 this 3 194 73 14 Dtool_s1eGwusz 6 67 183 0 14 Dtool_s1eGwusz 0 1 4 this 3 194 74 14 Dtool_s1eGOoUr 4 68 188 0 14 Dtool_s1eGOoUr 0 2 4 this 3 181 5 value 1 183 75 14 Dtool_s1eGc9HE 6 70 183 0 14 Dtool_s1eGc9HE 0 1 4 this 3 194 76 14 Dtool_s1eG_Sv7 4 71 188 0 14 Dtool_s1eG_Sv7 0 2 4 this 3 181 5 value 1 183 77 14 Dtool_s1eG2jA_ 6 73 183 0 14 Dtool_s1eG2jA_ 0 1 4 this 3 194 78 14 Dtool_s1eGcmG_ 4 74 188 0 14 Dtool_s1eGcmG_ 0 2 4 this 3 181 5 value 1 183 79 14 Dtool_s1eGvqZW 6 77 181 0 14 Dtool_s1eGvqZW 0 1 4 this 3 194 80 14 Dtool_s1eGVzgZ 4 78 188 0 14 Dtool_s1eGVzgZ 0 2 4 this 3 181 5 value 1 181 81 14 Dtool_s1eG0aua 7 84 199 159 14 Dtool_s1eG0aua 0 6 8 flock_id 1 198 11 vcone_angle 1 191 12 vcone_radius 1 191 13 separation_wt 1 198 11 cohesion_wt 1 198 12 alignment_wt 1 198 82 14 Dtool_s1eGWk7X 7 84 199 159 14 Dtool_s1eGWk7X 0 5 8 flock_id 1 198 11 vcone_angle 1 191 12 vcone_radius 1 191 13 separation_wt 1 198 11 cohesion_wt 1 198 83 14 Dtool_s1eGBejM 7 84 199 159 14 Dtool_s1eGBejM 0 4 8 flock_id 1 198 11 vcone_angle 1 191 12 vcone_radius 1 191 13 separation_wt 1 198 84 14 Dtool_s1eG8pye 7 84 199 159 14 Dtool_s1eG8pye 0 3 8 flock_id 1 198 11 vcone_angle 1 191 12 vcone_radius 1 191 85 14 Dtool_s1eG90Ff 4 86 188 0 14 Dtool_s1eG90Ff 272 ///////////////////////////////////////////////////////////////////////////////////////// // // Function : add_ai_char // Description : This function adds AI characters to the flock. ///////////////////////////////////////////////////////////////////////////////////////// 2 4 this 3 199 7 ai_char 1 193 86 14 Dtool_s1eG2K1M 6 87 198 0 14 Dtool_s1eG2K1M 50 // Function to access the private member flock_id. 1 4 this 3 199 87 14 Dtool_s1eGr2dt 7 89 200 163 14 Dtool_s1eGr2dt 0 1 6 render 1 189 88 14 Dtool_s1eGv5_b 4 91 188 0 14 Dtool_s1eGv5_b 0 2 4 this 3 200 5 ai_ch 1 193 89 14 Dtool_s1eGdIHd 4 92 188 0 14 Dtool_s1eGdIHd 0 2 4 this 3 200 4 name 1 192 90 14 Dtool_s1eGOP3p 4 93 188 0 14 Dtool_s1eGOP3p 389 ///////////////////////////////////////////////////////////////////////////////// // // Function : add_flock // Description : This function adds all the AI characters in the Flock object to // the AICharPool. This function allows adding the AI characetrs as // part of a flock. ///////////////////////////////////////////////////////////////////////////////// 2 4 this 3 200 5 flock 1 199 91 14 Dtool_s1eG5MNs 4 94 188 0 14 Dtool_s1eG5MNs 314 ///////////////////////////////////////////////////////////////////////////////// // // Function : flock_off // Description : This function turns off the flock behavior temporarily. Similar to // pausing the behavior. ///////////////////////////////////////////////////////////////////////////////// 2 4 this 3 200 8 flock_id 1 198 92 14 Dtool_s1eGjgX4 4 95 188 0 14 Dtool_s1eGjgX4 249 ///////////////////////////////////////////////////////////////////////////////// // // Function : flock_on // Description : This function turns on the flock behavior. ///////////////////////////////////////////////////////////////////////////////// 2 4 this 3 200 8 flock_id 1 198 93 14 Dtool_s1eG_GUq 4 96 188 0 14 Dtool_s1eG_GUq 263 ///////////////////////////////////////////////////////////////////////////////// // // Function : remove_flock // Description : This function removes the flock behavior completely. ///////////////////////////////////////////////////////////////////////////////// 2 4 this 3 200 8 flock_id 1 198 94 14 Dtool_s1eGoKdU 7 97 199 159 14 Dtool_s1eGoKdU 271 ///////////////////////////////////////////////////////////////////////////////// // // Function : get_flock // Description : This function returns a handle to the Flock whose id is passed. ///////////////////////////////////////////////////////////////////////////////// 2 4 this 3 200 8 flock_id 1 198 95 14 Dtool_s1eGKacp 4 98 188 0 14 Dtool_s1eGKacp 326 ///////////////////////////////////////////////////////////////////////////////// // // Function : add_obstacle // Description : This function adds the nodepath as an obstacle that is needed // by the obstacle avoidance behavior. ///////////////////////////////////////////////////////////////////////////////// 2 4 this 3 200 8 obstacle 1 189 96 14 Dtool_s1eG6XPj 4 99 188 0 14 Dtool_s1eG6XPj 341 ///////////////////////////////////////////////////////////////////////////////// // // Function : remove_obstacle // Description : This function removes the nodepath from the obstacles list that is needed // by the obstacle avoidance behavior. ///////////////////////////////////////////////////////////////////////////////// 2 4 this 3 200 8 obstacle 1 189 97 14 Dtool_s1eG71nt 4 100 188 0 14 Dtool_s1eG71nt 0 1 4 this 3 200 98 14 Dtool_s1eGAHA5 4 101 188 0 14 Dtool_s1eGAHA5 327 //////////////////////////////////////////////////////////////////////// // Function : update // Description : The AIWorld update function calls the update function of all the // AI characters which have been added to the AIWorld. ///////////////////////////////////////////////////////////////////////////////// 1 4 this 3 200 26 175 11 AIBehaviors 26625 11 AIBehaviors 11 AIBehaviors 0 0 0 0 99 0 19 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 0 0 0 0 0 0 176 11 AICharacter 26625 11 AICharacter 11 AICharacter 0 0 0 1 128 129 0 9 119 120 121 122 123 124 125 126 127 0 0 0 0 0 0 177 6 AINode 26625 6 AINode 6 AINode 0 0 0 1 155 156 13 201 202 203 204 205 206 207 208 209 210 211 212 213 1 157 0 0 0 0 1 179 637 //////////////////////////////////////////////////////////////////// // Class : AINode // Description : This class is used to assign the nodes on the mesh. // It holds all the data necessary to compute A* // algorithm. It also maintains a lot of vital // information such as the neighbor nodes of each // node and also its position on the mesh. // Note: The Mesh Generator which is a standalone // tool makes use of this class to generate the nodes // on the mesh. //////////////////////////////////////////////////////////////////// 178 4 bool 8194 4 bool 4 bool 0 4 0 0 0 0 0 0 0 0 0 0 0 179 6 Status 794624 14 AINode::Status 14 AINode::Status 177 0 0 0 0 0 0 0 0 0 3 7 ST_open 15 AINode::ST_open 0 8 ST_close 16 AINode::ST_close 1 10 ST_neutral 18 AINode::ST_neutral 2 0 176 // This variable specifies the node status whether open, close // or neutral. // open = belongs to _open_list. // close = belongs to _closed_list. // neutral = unexamined node. 180 3 int 8194 3 int 3 int 0 1 0 0 0 0 0 0 0 0 0 0 0 181 8 AINode * 8576 8 AINode * 8 AINode * 0 0 177 0 0 0 0 0 0 0 0 0 0 182 9 RGBColorf 2048 10 LVecBase3f 10 LVecBase3f 0 0 0 0 0 0 0 0 0 0 0 0 754 // Filename: lvecBase3_src.h // Created by: drose (08Mar00) // //////////////////////////////////////////////////////////////////// // // PANDA 3D SOFTWARE // Copyright (c) Carnegie Mellon University. All rights reserved. // // All use of this software is subject to the terms of the revised BSD // license. You should have received a copy of this license along // with this source code in a file named "LICENSE." // //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// // Class : LVecBase3 // Description : This is the base class for all three-component // vectors and points. //////////////////////////////////////////////////////////////////// 183 5 float 8194 5 float 5 float 0 2 0 0 0 0 0 0 0 0 0 0 0 184 5 Flock 26625 5 Flock 5 Flock 0 0 0 1 158 159 0 2 160 161 0 0 0 0 0 331 /////////////////////////////////////////////////////////////////////////////////////// // // Class : Flock // Description : This class is used to define the flock attributes and the AI characters // which are part of the flock. /////////////////////////////////////////////////////////////////////////////////////// 185 7 AIWorld 26625 7 AIWorld 7 AIWorld 0 0 0 1 162 163 0 11 164 165 166 167 168 169 170 171 172 173 174 0 0 0 0 0 0 186 13 AIBehaviors * 8576 13 AIBehaviors * 13 AIBehaviors * 0 0 175 0 0 0 0 0 0 0 0 0 0 187 12 LVecBase3f * 8576 12 LVecBase3f * 12 LVecBase3f * 0 0 182 0 0 0 0 0 0 0 0 0 0 188 4 void 8194 4 void 4 void 0 6 0 0 0 0 0 0 0 0 0 0 0 189 10 NodePath * 8576 10 NodePath * 10 NodePath * 0 0 190 0 0 0 0 0 0 0 0 0 0 190 8 NodePath 2048 8 NodePath 8 NodePath 0 0 0 0 0 0 0 2 214 215 0 0 0 0 4938 // // A NodePath is the fundamental unit of high-level interaction with // the scene graph. It encapsulates the complete path down to a node // from some other node, usually the root of the scene graph. This is // used to resolve ambiguities associated with instancing. // // NodePath also contains a number of handy high-level methods for // common scene-graph manipulations, such as reparenting, and common // state changes, such as repositioning. // // There are also a number of NodePath methods for finding nodes deep // within the tree by name or by type. These take a path string, // which at its simplest consists of a series of node names separated // by slashes, like a directory pathname. // // Each component of the path string may optionally consist of one of // the following special names, instead of a node name: // // * -- matches exactly one node, with any name. // ** -- matches any sequence of zero or more nodes. // +typename -- matches any node that is or derives from the given type. // -typename -- matches any node that is the given type exactly. // =tag -- matches any node that has the indicated tag. // =tag=value -- matches any node whose tag matches the indicated value. // // Furthermore, a node name may itself contain standard filename // globbing characters, like *, ?, and [a-z], that will be accepted as // a partial match. (In fact, the '*' special name may be seen as // just a special case of this.) The globbing characters may not be // used with the typename matches or with tag matches, but they may // be used to match a tag's value in the =tag=value syntax. // // The special characters "@@", appearing at the beginning of a node // name, indicate a stashed node. Normally, stashed nodes are not // returned by a find (but see the special flags, below), but a // stashed node may be found if it is explicitly named with its // leading @@ characters. By extension, "@@*" may be used to identify // any stashed node. // // Examples: // // "room//graph" will look for a node named "graph", which is a child // of an unnamed node, which is a child of a node named "room", which // is a child of the starting path. // // "**/red*" will look for any node anywhere in the tree (below the // starting path) with a name that begins with "red". // // "**/+PartBundleNode/**/head" will look for a node named "head", // somewhere below a PartBundleNode anywhere in the tree. // // // The search is always potentially ambiguous, even if the special // wildcard operators are not used, because there may be multiple // nodes in the tree with the same name. In general, in the case of // an ambiguity, the shortest path is preferred; when a method (such // as extend_by) must choose only only one of several possible paths, // it will choose the shortest available; on the other hand, when a // method (such as find_all_matches) is to return all of the matching // paths, it will sort them so that the shortest paths appear first in // the output. // // // Special flags. The entire string may optionally be followed by the // ";" character, followed by one or more of the following special // control flags, with no intervening spaces or punctuation: // // -h Do not return hidden nodes. // +h Do return hidden nodes. // -s Do not return stashed nodes unless explicitly referenced with @@. // +s Return stashed nodes even without any explicit @@ characters. // -i Node name comparisons are not case insensitive: case must match // exactly. // +i Node name comparisons are case insensitive: case is not important. // This affects matches against the node name only; node type // and tag strings are always case sensitive. // // The default flags are +h-s-i. // //////////////////////////////////////////////////////////////////// // Class : NodePath // Description : NodePath is the fundamental system for disambiguating // instances, and also provides a higher-level interface // for manipulating the scene graph. // // A NodePath is a list of connected nodes from the root // of the graph to any sub-node. Each NodePath // therefore uniquely describes one instance of a node. // // NodePaths themselves are lightweight objects that may // easily be copied and passed by value. Their data is // stored as a series of NodePathComponents that are // stored on the nodes. Holding a NodePath will keep a // reference count to all the nodes in the path. // However, if any node in the path is removed or // reparented (perhaps through a different NodePath), // the NodePath will automatically be updated to reflect // the changes. //////////////////////////////////////////////////////////////////// 191 6 double 8194 6 double 6 double 0 3 0 0 0 0 0 0 0 0 0 0 0 192 13 atomic string 2 13 atomic string 13 atomic string 0 7 0 0 0 0 0 0 0 0 0 0 0 193 13 AICharacter * 8576 13 AICharacter * 13 AICharacter * 0 0 176 0 0 0 0 0 0 0 0 0 0 194 14 AINode const * 8576 14 AINode const * 14 AINode const * 0 0 195 0 0 0 0 0 0 0 0 0 0 195 12 AINode const 8832 12 AINode const 12 AINode const 0 0 177 0 0 0 0 0 0 0 0 0 0 196 18 LVecBase3f const * 8576 18 LVecBase3f const * 18 LVecBase3f const * 0 0 197 0 0 0 0 0 0 0 0 0 0 197 16 LVecBase3f const 8832 16 LVecBase3f const 16 LVecBase3f const 0 0 182 0 0 0 0 0 0 0 0 0 0 198 12 unsigned int 8198 12 unsigned int 12 unsigned int 0 1 0 0 0 0 0 0 0 0 0 0 0 199 7 Flock * 8576 7 Flock * 7 Flock * 0 0 184 0 0 0 0 0 0 0 0 0 0 200 9 AIWorld * 8576 9 AIWorld * 9 AIWorld * 0 0 185 0 0 0 0 0 0 0 0 0 0 0 13 201 5 _type 6 178 130 131 13 AINode::_type 202 7 _status 6 179 132 133 15 AINode::_status 203 6 _score 6 180 134 135 14 AINode::_score 204 5 _cost 6 180 136 137 13 AINode::_cost 205 10 _heuristic 6 180 138 139 18 AINode::_heuristic 206 9 _prv_node 6 181 140 141 17 AINode::_prv_node 207 7 _grid_y 6 180 142 143 15 AINode::_grid_y 208 7 _grid_x 6 180 144 145 15 AINode::_grid_x 209 9 _position 2 182 146 0 17 AINode::_position 210 7 _height 6 183 147 148 15 AINode::_height 211 7 _length 6 183 149 150 15 AINode::_length 212 6 _width 6 183 151 152 14 AINode::_width 213 5 _next 6 181 153 154 13 AINode::_next 2 214 0 109 9 get_nodes 13 get_num_nodes 8 get_node 215 0 109 13 get_ancestors 13 get_num_nodes 12 get_ancestor