Changeset 1120 for applications/doprava/traffic_agent_offset.h
- Timestamp:
- 06/29/10 14:58:04 (14 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
applications/doprava/traffic_agent_offset.h
r1118 r1120 158 158 do { 159 159 k=min_i(t_cars_begin); 160 161 160 if (k!=-1) { 162 double a=cars_count(k);163 double b=t_cars_begin(k);164 double c=t_cars_end(k);165 166 161 //in case there are cars comming before t_green begin 167 162 if (t_cars_begin(k)<t_act) { … … 175 170 } 176 171 else { 177 double pomer=(t_cars_begin(k)-t_act)/(t_cars_end(k)-t_cars_begin(k));178 virtual_queue+=cars_count(k)* pomer;172 double frac=(t_cars_begin(k)-t_act)/(t_cars_end(k)-t_cars_begin(k)); 173 virtual_queue+=cars_count(k)*frac; 179 174 t_cars_begin(k)=t_act; 180 175 } … … 184 179 virtual_queue+=cars_count(k)-(t_cars_end(k)-t_act)/car_leaving; 185 180 t_act=t_cars_end(k); 186 187 cars_count.del(k);188 t_cars_begin.del(k);189 t_cars_end.del(k);190 181 } 191 182 //if t_cars_end>=t_green_end … … 193 184 virtual_queue+=cars_count(k)-(t_green_end-t_act)/car_leaving; 194 185 t_act=t_green_end; 195 196 cars_count.del(k);197 t_cars_begin.del(k);198 t_cars_end.del(k);199 186 } 187 //more cars than cars_count(k) couldn't pass without stopping 188 if (virtual_queue < -cars_count(k)) { 189 virtual_queue = -cars_count(k); 190 } 191 cars_count.del(k); 192 t_cars_begin.del(k); 193 t_cars_end.del(k); 200 194 } 201 195 //if t_cars_begin(k)>=t_act 202 196 else { 203 if (t_cars_ end(k)<t_green_end) {204 virtual_queue-=(t_cars_ end(k)-t_act)/car_leaving;205 t_act=t_cars_ end(k);197 if (t_cars_begin(k)<t_green_end) { 198 virtual_queue-=(t_cars_begin(k)-t_act)/car_leaving; 199 t_act=t_cars_begin(k); 206 200 } 207 201 else { 208 202 virtual_queue-=(t_green_end-t_act)/car_leaving; 209 203 t_act=t_green_end; 204 } 205 // in case we managed to empty whole queue 206 if (virtual_queue<0) { 207 virtual_queue=0; 210 208 } 211 209 } … … 220 218 virtual_queue=0; 221 219 } 222 223 220 } while (t_act<t_green_end); 224 221 } … … 762 759 } 763 760 } 764 765 766 767 761 }; 768 762 UIREGISTER(GreenWaveTrafficAgent);