50 _flee_activate = 0x00100,
52 _arrival_activate = 0x01000,
56 _evade_activate = 0x00800,
58 _flock_activate = 0x00400,
59 _obstacle_avoidance = 0x02000,
60 _obstacle_avoidance_activate = 0x04000
67 LVecBase3 _steering_force;
70 LVecBase3 _seek_force;
73 LVecBase3 _flee_force;
78 ListFlee::iterator _flee_itr;
81 LVecBase3 _pursue_force;
84 LVecBase3 _evade_force;
88 ListEvade _evade_list;
89 ListEvade::iterator _evade_itr;
92 LVecBase3 _arrival_force;
97 LVecBase3 _flock_force;
101 LVecBase3 _wander_force;
104 LVecBase3 _obstacle_avoidance_force;
110 bool _conflict, _previous_conflict;
115 bool is_on(_behavior_type bt);
116 bool is_on(std::string ai_type);
117 bool is_off(_behavior_type bt);
118 bool is_off(std::string ai_type);
119 void turn_on(std::string ai_type);
120 void turn_off(std::string ai_type);
124 void accumulate_force(std::string force_type, LVecBase3 force);
125 LVecBase3 calculate_prioritized();
127 void flock_activate();
128 LVecBase3 do_flock();
130 int char_to_int(std::string ai_type);
133 void seek(
NodePath target_object,
float seek_wt = 1.0);
134 void seek(LVecBase3 pos,
float seek_wt = 1.0);
136 void flee(
NodePath target_object,
double panic_distance = 10.0,
double relax_distance = 10.0,
float flee_wt = 1.0);
137 void flee(LVecBase3 pos,
double panic_distance = 10.0,
double relax_distance = 10.0,
float flee_wt = 1.0);
139 void pursue(
NodePath target_object,
float pursue_wt = 1.0);
141 void evade(
NodePath target_object,
double panic_distance = 10.0,
double relax_distance = 10.0,
float evade_wt = 1.0);
143 void arrival(
double distance = 10.0);
145 void flock(
float flock_wt);
147 void wander(
double wander_radius = 5.0,
int flag =0,
double aoe = 0.0,
float wander_weight = 1.0);
149 void obstacle_avoidance(
float feeler_length = 1.0);
151 void path_follow(
float follow_wt = 1.0f);
152 void add_to_path(LVecBase3 pos);
153 void start_follow(std::string type =
"normal");
156 void init_path_find(
const char* navmesh_filename);
157 void path_find_to(LVecBase3 pos, std::string type =
"normal");
158 void path_find_to(
NodePath target, std::string type =
"normal");
159 void add_static_obstacle(
NodePath obstacle);
160 void add_dynamic_obstacle(
NodePath obstacle);
163 void remove_ai(std::string ai_type);
164 void pause_ai(std::string ai_type);
165 void resume_ai(std::string ai_type);
167 std::string behavior_status(std::string ai_type);