00001
00006 #include <iostream>
00007 #include <fstream>
00008 using namespace std;
00009
00010 #include "Kreuzung.h"
00011 #include "Konstanten.h"
00012
00013
00021 Kreuzung::Kreuzung( long int id ){
00022 clear();
00023 idBenutzer_ = id;
00024 }
00025
00032 void Kreuzung::aufraeumen(){
00033 }
00034
00044 void Kreuzung::takt( double zeitintervall ){
00045 try{
00046 switch( idAmpelAlgorithmus_ ){
00047 case 1: algorithmusZeitZeit( zeitintervall ); break;
00048 case 2: algorithmusZeitMenge( zeitintervall ); break;
00049 case 3: algorithmusStopp( zeitintervall ); break;
00050 case 4: algorithmusMengeMenge( zeitintervall ); break;
00051 }
00052 }
00053 catch( Fehler *fehler ){
00054 throw( fehler );
00055 }
00056 }
00057
00070 void Kreuzung::setzeSpur( int himmelsrichtung, int abbiegerichtung, Spur* spur ){
00071 if( himmelsrichtung < 1 || himmelsrichtung > 4 ){
00072 Fehler *fehler = new Fehler("Parameter ausserhalb zulaessiger Grenzen.\nDie Himmelsrichtung fuer eine Spur in einer Kreuzung entspricht nicht den geforderten Parametern.");
00073 throw(fehler);
00074 }
00075 if( abbiegerichtung < 1 || abbiegerichtung > 3 ){
00076 Fehler *fehler = new Fehler("Parameter ausserhalb zulaessiger Grenzen.\nDie Abbiegerichtung fuer eine Spur in einer Kreuzung entspricht nicht den geforderten Parametern.");
00077 throw(fehler);
00078 }
00079
00080 spurenListe_[himmelsrichtung-1][abbiegerichtung-1] = spur;
00081 }
00082
00096 Spur* Kreuzung::gibSpur( int himmelsrichtung, int abbiegerichtung ){
00097 if( himmelsrichtung < 1 || himmelsrichtung > 4 ){
00098 Fehler *fehler = new Fehler("Parameter ausserhalb zulaessiger Grenzen.\nDie Himmelsrichtung fuer eine Spur in einer Kreuzung entspricht nicht den geforderten Parametern.");
00099 throw(fehler);
00100 }
00101 if( abbiegerichtung < 1 || abbiegerichtung > 3 ){
00102 Fehler *fehler = new Fehler("Parameter ausserhalb zulaessiger Grenzen.\nDie Abbiegerichtung fuer eine Spur in einer Kreuzung entspricht nicht den geforderten Parametern.");
00103 throw(fehler);
00104 }
00105
00106 return spurenListe_[himmelsrichtung-1][abbiegerichtung-1];
00107 }
00108
00109
00110
00111
00112
00113
00114
00115
00116 void Kreuzung::inString( ){
00117 cout << this;
00118 }
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129 void Kreuzung::setzeAmpelalgorithmus( int id ){
00130 if( id > 0 && id < 5 ){
00131 idAmpelAlgorithmus_ = id;
00132
00133 if( idAmpelAlgorithmus_ == 2 )
00134 schaltmenge_[0] = 5;
00135 }
00136 else{
00137 Fehler *fehler = new Fehler("Parameter ausserhalb zulaessiger Grenzen.\nFuer eine Kreuzung soll ein nicht definierter Ampelalgorithmus verwendet werden.");
00138 throw(fehler);
00139 }
00140 }
00141
00142
00143
00144
00145
00146
00147
00148 void Kreuzung::clear(){
00149 int i(0), j(0), k(0);
00150 for( i = 0; i < 4; i++ ){
00151 for( j = 0; j < 3; j++ ){
00152 spurenListe_[i][j] = 0;
00153 }
00154 }
00155
00156 for( i = 0; i < 4; i++ ){
00157 for( j = 0; j < 3; j++ ){
00158 for( k = 0; k < 4; k++ ){
00159 statistik_[i][j][0] = 0;
00160 statistik_[i][j][1] = 0;
00161 statistik_[i][j][2] = 0;
00162 statistik_[i][j][3] = 0;
00163 }
00164 }
00165 }
00166 idAmpelAlgorithmus_ = 1;
00167 schaltungstakt_ = 1;
00168 schaltzeit_ = 30;
00169 for( i = 0; i < 8; i++ ){
00170 schaltmenge_[i] = 0;
00171 schaltreihenfolge_[i] = 0;
00172 }
00173 schaltreihenfolge_[0] = 1;
00174
00175 zeitLetzteSchaltungGlobal_ = 9999;
00176 mengeLetzteSchaltungGlobal_ = 9999;
00177 loescheMich_ = 0;
00178 idBenutzer_ = 0;
00179 }
00180
00190 void Kreuzung::exportieren( string cvsDateiname ){
00191 string dateiname = cvsDateiname;
00192 ofstream cvsDatei;
00193 int pkw(0), lkw(0), bus(0), bike(0), insgesamt(0);
00194
00195 int himmelsrichtung(0), richtung(0);
00196
00197 cvsDatei.open( dateiname.c_str(), ios::app );
00198 if( !cvsDatei ){
00199 Fehler *fehler = new Fehler( "Die CVS-Datei fuer Kreuzungen konnte nicht geoeffnet werden.\n");
00200 fehler->ergaenzeMeldung( dateiname );
00201 throw(fehler);
00202 return;
00203 }
00204
00205
00206
00207 cvsDatei << "\"\";\"\";\"\";\"\";\"\";\"\";\"\"" << endl;
00208 cvsDatei << "\"Kreuzungs-Id:\";\"" << idBenutzer_ << "\";\"\";\"\";\"\";\"\"" << endl;
00209 cvsDatei << "\"Algorithmus-Id:\";\"" << idAmpelAlgorithmus_ << "\";\"\";\"\";\"\";\"\"" << endl;
00210 cvsDatei << "\"Spur-Id\";\"BIKE\";\"PKW\";\"LKW\";\"BUS\";\"INSGESAMT\"" << endl;
00211
00212 for( himmelsrichtung = 0; himmelsrichtung < 4; himmelsrichtung++ ){
00213 for( richtung = 0; richtung < 3; richtung++ ){
00214 if( spurenListe_[himmelsrichtung][richtung] != 0 ){
00215 bike = statistik_[himmelsrichtung][richtung][BIKE-1];
00216 pkw = statistik_[himmelsrichtung][richtung][PKW-1];
00217 lkw = statistik_[himmelsrichtung][richtung][LKW-1];
00218 bus = statistik_[himmelsrichtung][richtung][BUS-1];
00219 insgesamt = bike + pkw + lkw + bus;
00220 cvsDatei << "\"" << spurenListe_[himmelsrichtung][richtung]->gibId( ) << "\";\"" << bike << "\";\"" << pkw << "\";\"" << lkw << "\";\"" << bus << "\";\"" << insgesamt << "\"" << endl;
00221 }
00222 }
00223 }
00224
00225
00226 cvsDatei.close();
00227 }
00228
00239 ostream &operator<< ( ostream &os, Kreuzung *kreuzung ){
00240 os << "----------Kreuzung----------" << endl;
00241 os << "ID: " << kreuzung->id_ << endl;
00242 return os;
00243 }
00244
00246
00264 void Kreuzung::algorithmusZeitZeit( double zeitintervall ){
00265
00266
00267 bool schalten = 0;
00268 zeitLetzteSchaltungGlobal_ += zeitintervall;
00269
00270 switch( schaltungstakt_ ){
00271
00272 case 1:
00273 case 3:
00274 case 5:
00275 case 7: if( zeitLetzteSchaltungGlobal_ >= schaltzeit_ )
00276 schalten = 1;
00277 break;
00278
00279 case 2:
00280 case 4:
00281 case 6:
00282 case 8: if( zeitLetzteSchaltungGlobal_ >= 3 )
00283 schalten = 1;
00284 break;
00285 }
00286
00287
00288 if( schalten != 0 ){
00289 schaltungstakt_++;
00290 if( schaltungstakt_ > 8 )
00291 schaltungstakt_ = 1;
00292 zeitLetzteSchaltungGlobal_ = 0;
00293
00294
00295 switch( schaltungstakt_ ){
00296
00297 case 1:{
00298 if( spurenListe_[NORD-1][LINKS-1] != 0 )
00299 spurenListe_[NORD-1][LINKS-1]->setzeRot();
00300 if( spurenListe_[NORD-1][MITTE-1] != 0 )
00301 spurenListe_[NORD-1][MITTE-1]->setzeGruen();
00302 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
00303 spurenListe_[NORD-1][RECHTS-1]->setzeGruen();
00304
00305 if( spurenListe_[SUED-1][LINKS-1] != 0 )
00306 spurenListe_[SUED-1][LINKS-1]->setzeRot();
00307 if( spurenListe_[SUED-1][MITTE-1] != 0 )
00308 spurenListe_[SUED-1][MITTE-1]->setzeGruen();
00309 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
00310 spurenListe_[SUED-1][RECHTS-1]->setzeGruen();
00311
00312 if( spurenListe_[OST-1][LINKS-1] != 0 )
00313 spurenListe_[OST-1][LINKS-1]->setzeRot();
00314 if( spurenListe_[OST-1][MITTE-1] != 0 )
00315 spurenListe_[OST-1][MITTE-1]->setzeRot();
00316 if( spurenListe_[OST-1][RECHTS-1] != 0 )
00317 spurenListe_[OST-1][RECHTS-1]->setzeRot();
00318
00319 if( spurenListe_[WEST-1][LINKS-1] != 0 )
00320 spurenListe_[WEST-1][LINKS-1]->setzeRot();
00321 if( spurenListe_[WEST-1][MITTE-1] != 0 )
00322 spurenListe_[WEST-1][MITTE-1]->setzeRot();
00323 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
00324 spurenListe_[WEST-1][RECHTS-1]->setzeRot();
00325
00326 break;
00327 }
00328
00329 case 2:{
00330 if( spurenListe_[NORD-1][LINKS-1] != 0 )
00331 spurenListe_[NORD-1][LINKS-1]->setzeRot();
00332 if( spurenListe_[NORD-1][MITTE-1] != 0 )
00333 spurenListe_[NORD-1][MITTE-1]->setzeGelb();
00334 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
00335 spurenListe_[NORD-1][RECHTS-1]->setzeGelb();
00336
00337 if( spurenListe_[SUED-1][LINKS-1] != 0 )
00338 spurenListe_[SUED-1][LINKS-1]->setzeRot();
00339 if( spurenListe_[SUED-1][MITTE-1] != 0 )
00340 spurenListe_[SUED-1][MITTE-1]->setzeGelb();
00341 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
00342 spurenListe_[SUED-1][RECHTS-1]->setzeGelb();
00343
00344 if( spurenListe_[OST-1][LINKS-1] != 0 )
00345 spurenListe_[OST-1][LINKS-1]->setzeRot();
00346 if( spurenListe_[OST-1][MITTE-1] != 0 )
00347 spurenListe_[OST-1][MITTE-1]->setzeRot();
00348 if( spurenListe_[OST-1][RECHTS-1] != 0 )
00349 spurenListe_[OST-1][RECHTS-1]->setzeRot();
00350
00351 if( spurenListe_[WEST-1][LINKS-1] != 0 )
00352 spurenListe_[WEST-1][LINKS-1]->setzeRot();
00353 if( spurenListe_[WEST-1][MITTE-1] != 0 )
00354 spurenListe_[WEST-1][MITTE-1]->setzeRot();
00355 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
00356 spurenListe_[WEST-1][RECHTS-1]->setzeRot();
00357
00358 break;
00359 }
00360
00361 case 3:{
00362 if( spurenListe_[NORD-1][LINKS-1] != 0 )
00363 spurenListe_[NORD-1][LINKS-1]->setzeRot();
00364 if( spurenListe_[NORD-1][MITTE-1] != 0 )
00365 spurenListe_[NORD-1][MITTE-1]->setzeRot();
00366 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
00367 spurenListe_[NORD-1][RECHTS-1]->setzeGruen();
00368
00369 if( spurenListe_[SUED-1][LINKS-1] != 0 )
00370 spurenListe_[SUED-1][LINKS-1]->setzeRot();
00371 if( spurenListe_[SUED-1][MITTE-1] != 0 )
00372 spurenListe_[SUED-1][MITTE-1]->setzeRot();
00373 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
00374 spurenListe_[SUED-1][RECHTS-1]->setzeGruen();
00375
00376 if( spurenListe_[OST-1][LINKS-1] != 0 )
00377 spurenListe_[OST-1][LINKS-1]->setzeGruen();
00378 if( spurenListe_[OST-1][MITTE-1] != 0 )
00379 spurenListe_[OST-1][MITTE-1]->setzeRot();
00380 if( spurenListe_[OST-1][RECHTS-1] != 0 )
00381 spurenListe_[OST-1][RECHTS-1]->setzeRot();
00382
00383 if( spurenListe_[WEST-1][LINKS-1] != 0 )
00384 spurenListe_[WEST-1][LINKS-1]->setzeGruen();
00385 if( spurenListe_[WEST-1][MITTE-1] != 0 )
00386 spurenListe_[WEST-1][MITTE-1]->setzeRot();
00387 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
00388 spurenListe_[WEST-1][RECHTS-1]->setzeRot();
00389
00390 break;
00391 }
00392
00393 case 4:{
00394 if( spurenListe_[NORD-1][LINKS-1] != 0 )
00395 spurenListe_[NORD-1][LINKS-1]->setzeRot();
00396 if( spurenListe_[NORD-1][MITTE-1] != 0 )
00397 spurenListe_[NORD-1][MITTE-1]->setzeRot();
00398 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
00399 spurenListe_[NORD-1][RECHTS-1]->setzeGelb();
00400
00401 if( spurenListe_[SUED-1][LINKS-1] != 0 )
00402 spurenListe_[SUED-1][LINKS-1]->setzeRot();
00403 if( spurenListe_[SUED-1][MITTE-1] != 0 )
00404 spurenListe_[SUED-1][MITTE-1]->setzeRot();
00405 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
00406 spurenListe_[SUED-1][RECHTS-1]->setzeGelb();
00407
00408 if( spurenListe_[OST-1][LINKS-1] != 0 )
00409 spurenListe_[OST-1][LINKS-1]->setzeGelb();
00410 if( spurenListe_[OST-1][MITTE-1] != 0 )
00411 spurenListe_[OST-1][MITTE-1]->setzeRot();
00412 if( spurenListe_[OST-1][RECHTS-1] != 0 )
00413 spurenListe_[OST-1][RECHTS-1]->setzeRot();
00414
00415 if( spurenListe_[WEST-1][LINKS-1] != 0 )
00416 spurenListe_[WEST-1][LINKS-1]->setzeGelb();
00417 if( spurenListe_[WEST-1][MITTE-1] != 0 )
00418 spurenListe_[WEST-1][MITTE-1]->setzeRot();
00419 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
00420 spurenListe_[WEST-1][RECHTS-1]->setzeRot();
00421
00422 break;
00423 }
00424
00425 case 5:{
00426 if( spurenListe_[NORD-1][LINKS-1] != 0 )
00427 spurenListe_[NORD-1][LINKS-1]->setzeRot();
00428 if( spurenListe_[NORD-1][MITTE-1] != 0 )
00429 spurenListe_[NORD-1][MITTE-1]->setzeRot();
00430 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
00431 spurenListe_[NORD-1][RECHTS-1]->setzeRot();
00432
00433 if( spurenListe_[SUED-1][LINKS-1] != 0 )
00434 spurenListe_[SUED-1][LINKS-1]->setzeRot();
00435 if( spurenListe_[SUED-1][MITTE-1] != 0 )
00436 spurenListe_[SUED-1][MITTE-1]->setzeRot();
00437 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
00438 spurenListe_[SUED-1][RECHTS-1]->setzeRot();
00439
00440 if( spurenListe_[OST-1][LINKS-1] != 0 )
00441 spurenListe_[OST-1][LINKS-1]->setzeRot();
00442 if( spurenListe_[OST-1][MITTE-1] != 0 )
00443 spurenListe_[OST-1][MITTE-1]->setzeGruen();
00444 if( spurenListe_[OST-1][RECHTS-1] != 0 )
00445 spurenListe_[OST-1][RECHTS-1]->setzeGruen();
00446
00447 if( spurenListe_[WEST-1][LINKS-1] != 0 )
00448 spurenListe_[WEST-1][LINKS-1]->setzeRot();
00449 if( spurenListe_[WEST-1][MITTE-1] != 0 )
00450 spurenListe_[WEST-1][MITTE-1]->setzeGruen();
00451 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
00452 spurenListe_[WEST-1][RECHTS-1]->setzeGruen();
00453
00454 break;
00455 }
00456
00457 case 6:{
00458 if( spurenListe_[NORD-1][LINKS-1] != 0 )
00459 spurenListe_[NORD-1][LINKS-1]->setzeRot();
00460 if( spurenListe_[NORD-1][MITTE-1] != 0 )
00461 spurenListe_[NORD-1][MITTE-1]->setzeRot();
00462 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
00463 spurenListe_[NORD-1][RECHTS-1]->setzeRot();
00464
00465 if( spurenListe_[SUED-1][LINKS-1] != 0 )
00466 spurenListe_[SUED-1][LINKS-1]->setzeRot();
00467 if( spurenListe_[SUED-1][MITTE-1] != 0 )
00468 spurenListe_[SUED-1][MITTE-1]->setzeRot();
00469 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
00470 spurenListe_[SUED-1][RECHTS-1]->setzeRot();
00471
00472 if( spurenListe_[OST-1][LINKS-1] != 0 )
00473 spurenListe_[OST-1][LINKS-1]->setzeRot();
00474 if( spurenListe_[OST-1][MITTE-1] != 0 )
00475 spurenListe_[OST-1][MITTE-1]->setzeGelb();
00476 if( spurenListe_[OST-1][RECHTS-1] != 0 )
00477 spurenListe_[OST-1][RECHTS-1]->setzeGelb();
00478
00479 if( spurenListe_[WEST-1][LINKS-1] != 0 )
00480 spurenListe_[WEST-1][LINKS-1]->setzeRot();
00481 if( spurenListe_[WEST-1][MITTE-1] != 0 )
00482 spurenListe_[WEST-1][MITTE-1]->setzeGelb();
00483 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
00484 spurenListe_[WEST-1][RECHTS-1]->setzeGelb();
00485
00486 break;
00487 }
00488
00489 case 7:{
00490 if( spurenListe_[NORD-1][LINKS-1] != 0 )
00491 spurenListe_[NORD-1][LINKS-1]->setzeGruen();
00492 if( spurenListe_[NORD-1][MITTE-1] != 0 )
00493 spurenListe_[NORD-1][MITTE-1]->setzeRot();
00494 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
00495 spurenListe_[NORD-1][RECHTS-1]->setzeRot();
00496
00497 if( spurenListe_[SUED-1][LINKS-1] != 0 )
00498 spurenListe_[SUED-1][LINKS-1]->setzeGruen();
00499 if( spurenListe_[SUED-1][MITTE-1] != 0 )
00500 spurenListe_[SUED-1][MITTE-1]->setzeRot();
00501 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
00502 spurenListe_[SUED-1][RECHTS-1]->setzeRot();
00503
00504 if( spurenListe_[OST-1][LINKS-1] != 0 )
00505 spurenListe_[OST-1][LINKS-1]->setzeRot();
00506 if( spurenListe_[OST-1][MITTE-1] != 0 )
00507 spurenListe_[OST-1][MITTE-1]->setzeRot();
00508 if( spurenListe_[OST-1][RECHTS-1] != 0 )
00509 spurenListe_[OST-1][RECHTS-1]->setzeGruen();
00510
00511 if( spurenListe_[WEST-1][LINKS-1] != 0 )
00512 spurenListe_[WEST-1][LINKS-1]->setzeRot();
00513 if( spurenListe_[WEST-1][MITTE-1] != 0 )
00514 spurenListe_[WEST-1][MITTE-1]->setzeRot();
00515 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
00516 spurenListe_[WEST-1][RECHTS-1]->setzeGruen();
00517
00518 break;
00519 }
00520
00521 case 8:{
00522 if( spurenListe_[NORD-1][LINKS-1] != 0 )
00523 spurenListe_[NORD-1][LINKS-1]->setzeGelb();
00524 if( spurenListe_[NORD-1][MITTE-1] != 0 )
00525 spurenListe_[NORD-1][MITTE-1]->setzeRot();
00526 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
00527 spurenListe_[NORD-1][RECHTS-1]->setzeRot();
00528
00529 if( spurenListe_[SUED-1][LINKS-1] != 0 )
00530 spurenListe_[SUED-1][LINKS-1]->setzeGelb();
00531 if( spurenListe_[SUED-1][MITTE-1] != 0 )
00532 spurenListe_[SUED-1][MITTE-1]->setzeRot();
00533 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
00534 spurenListe_[SUED-1][RECHTS-1]->setzeRot();
00535
00536 if( spurenListe_[OST-1][LINKS-1] != 0 )
00537 spurenListe_[OST-1][LINKS-1]->setzeRot();
00538 if( spurenListe_[OST-1][MITTE-1] != 0 )
00539 spurenListe_[OST-1][MITTE-1]->setzeRot();
00540 if( spurenListe_[OST-1][RECHTS-1] != 0 )
00541 spurenListe_[OST-1][RECHTS-1]->setzeGelb();
00542
00543 if( spurenListe_[WEST-1][LINKS-1] != 0 )
00544 spurenListe_[WEST-1][LINKS-1]->setzeRot();
00545 if( spurenListe_[WEST-1][MITTE-1] != 0 )
00546 spurenListe_[WEST-1][MITTE-1]->setzeRot();
00547 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
00548 spurenListe_[WEST-1][RECHTS-1]->setzeGelb();
00549
00550 break;
00551 }
00552 }
00553 }
00554
00555
00556 if( spurenListe_[NORD-1][LINKS-1] != 0 ){
00557 statistik_[NORD-1][LINKS-1][BIKE-1] += spurenListe_[NORD-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
00558 statistik_[NORD-1][LINKS-1][PKW-1] += spurenListe_[NORD-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
00559 statistik_[NORD-1][LINKS-1][LKW-1] += spurenListe_[NORD-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
00560 statistik_[NORD-1][LINKS-1][BUS-1] += spurenListe_[NORD-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
00561 }
00562 if( spurenListe_[NORD-1][MITTE-1] != 0 ){
00563 statistik_[NORD-1][MITTE-1][BIKE-1] += spurenListe_[NORD-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
00564 statistik_[NORD-1][MITTE-1][PKW-1] += spurenListe_[NORD-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
00565 statistik_[NORD-1][MITTE-1][LKW-1] += spurenListe_[NORD-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
00566 statistik_[NORD-1][MITTE-1][BUS-1] += spurenListe_[NORD-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
00567 }
00568 if( spurenListe_[NORD-1][RECHTS-1] != 0 ){
00569 statistik_[NORD-1][RECHTS-1][BIKE-1] += spurenListe_[NORD-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
00570 statistik_[NORD-1][RECHTS-1][PKW-1] += spurenListe_[NORD-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
00571 statistik_[NORD-1][RECHTS-1][LKW-1] += spurenListe_[NORD-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
00572 statistik_[NORD-1][RECHTS-1][BUS-1] += spurenListe_[NORD-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
00573 }
00574
00575 if( spurenListe_[SUED-1][LINKS-1] != 0 ){
00576 statistik_[SUED-1][LINKS-1][BIKE-1] += spurenListe_[SUED-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
00577 statistik_[SUED-1][LINKS-1][PKW-1] += spurenListe_[SUED-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
00578 statistik_[SUED-1][LINKS-1][LKW-1] += spurenListe_[SUED-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
00579 statistik_[SUED-1][LINKS-1][BUS-1] += spurenListe_[SUED-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
00580 }
00581 if( spurenListe_[SUED-1][MITTE-1] != 0 ){
00582 statistik_[SUED-1][MITTE-1][BIKE-1] += spurenListe_[SUED-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
00583 statistik_[SUED-1][MITTE-1][PKW-1] += spurenListe_[SUED-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
00584 statistik_[SUED-1][MITTE-1][LKW-1] += spurenListe_[SUED-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
00585 statistik_[SUED-1][MITTE-1][BUS-1] += spurenListe_[SUED-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
00586 }
00587 if( spurenListe_[SUED-1][RECHTS-1] != 0 ){
00588 statistik_[SUED-1][RECHTS-1][BIKE-1] += spurenListe_[SUED-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
00589 statistik_[SUED-1][RECHTS-1][PKW-1] += spurenListe_[SUED-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
00590 statistik_[SUED-1][RECHTS-1][LKW-1] += spurenListe_[SUED-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
00591 statistik_[SUED-1][RECHTS-1][BUS-1] += spurenListe_[SUED-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
00592 }
00593
00594 if( spurenListe_[OST-1][LINKS-1] != 0 ){
00595 statistik_[OST-1][LINKS-1][BIKE-1] += spurenListe_[OST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
00596 statistik_[OST-1][LINKS-1][PKW-1] += spurenListe_[OST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
00597 statistik_[OST-1][LINKS-1][LKW-1] += spurenListe_[OST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
00598 statistik_[OST-1][LINKS-1][BUS-1] += spurenListe_[OST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
00599
00600 }
00601 if( spurenListe_[OST-1][MITTE-1] != 0 ){
00602 statistik_[OST-1][MITTE-1][BIKE-1] += spurenListe_[OST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
00603 statistik_[OST-1][MITTE-1][PKW-1] += spurenListe_[OST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
00604 statistik_[OST-1][MITTE-1][LKW-1] += spurenListe_[OST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
00605 statistik_[OST-1][MITTE-1][BUS-1] += spurenListe_[OST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
00606 }
00607 if( spurenListe_[OST-1][RECHTS-1] != 0 ){
00608 statistik_[OST-1][RECHTS-1][BIKE-1] += spurenListe_[OST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
00609 statistik_[OST-1][RECHTS-1][PKW-1] += spurenListe_[OST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
00610 statistik_[OST-1][RECHTS-1][LKW-1] += spurenListe_[OST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
00611 statistik_[OST-1][RECHTS-1][BUS-1] += spurenListe_[OST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
00612 }
00613
00614 if( spurenListe_[WEST-1][LINKS-1] != 0 ){
00615 statistik_[WEST-1][LINKS-1][BIKE-1] += spurenListe_[WEST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
00616 statistik_[WEST-1][LINKS-1][PKW-1] += spurenListe_[WEST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
00617 statistik_[WEST-1][LINKS-1][LKW-1] += spurenListe_[WEST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
00618 statistik_[WEST-1][LINKS-1][BUS-1] += spurenListe_[WEST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
00619 }
00620 if( spurenListe_[WEST-1][MITTE-1] != 0 ){
00621 statistik_[WEST-1][MITTE-1][BIKE-1] += spurenListe_[WEST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
00622 statistik_[WEST-1][MITTE-1][PKW-1] += spurenListe_[WEST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
00623 statistik_[WEST-1][MITTE-1][LKW-1] += spurenListe_[WEST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
00624 statistik_[WEST-1][MITTE-1][BUS-1] += spurenListe_[WEST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
00625 }
00626 if( spurenListe_[WEST-1][RECHTS-1] != 0 ){
00627 statistik_[WEST-1][RECHTS-1][BIKE-1] += spurenListe_[WEST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
00628 statistik_[WEST-1][RECHTS-1][PKW-1] += spurenListe_[WEST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
00629 statistik_[WEST-1][RECHTS-1][LKW-1] += spurenListe_[WEST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
00630 statistik_[WEST-1][RECHTS-1][BUS-1] += spurenListe_[WEST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
00631 }
00632
00633 }
00634
00635
00653 void Kreuzung::algorithmusZeitMenge( double zeitintervall ){
00654
00655
00656 bool schalten = 0;
00657 zeitLetzteSchaltungGlobal_ += zeitintervall;
00658
00659
00660 switch( schaltungstakt_ ){
00661
00662 case 1:
00663 case 3:
00664 case 5:
00665 case 7: if( zeitLetzteSchaltungGlobal_ >= schaltzeit_ || mengeLetzteSchaltungGlobal_ >= schaltmenge_[0] ){
00666 schalten = 1;
00667 zeitLetzteSchaltungGlobal_ = 0;
00668 mengeLetzteSchaltungGlobal_ = 0;
00669 }
00670 break;
00671
00672 case 2:
00673 case 4:
00674 case 6:
00675 case 8: if( zeitLetzteSchaltungGlobal_ >= 3 ){
00676 schalten = 1;
00677 zeitLetzteSchaltungGlobal_ = 0;
00678 mengeLetzteSchaltungGlobal_ = 0;
00679 }
00680 break;
00681 }
00682
00683
00684
00685 if( schalten != 0 ){
00686 schaltungstakt_++;
00687 if( schaltungstakt_ > 8 )
00688 schaltungstakt_ = 1;
00689 zeitLetzteSchaltungGlobal_ = 0;
00690 mengeLetzteSchaltungGlobal_ = 0;
00691
00692
00693 switch( schaltungstakt_ ){
00694
00695 case 1:{
00696 if( spurenListe_[NORD-1][LINKS-1] != 0 )
00697 spurenListe_[NORD-1][LINKS-1]->setzeRot();
00698 if( spurenListe_[NORD-1][MITTE-1] != 0 )
00699 spurenListe_[NORD-1][MITTE-1]->setzeGruen();
00700 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
00701 spurenListe_[NORD-1][RECHTS-1]->setzeGruen();
00702
00703 if( spurenListe_[SUED-1][LINKS-1] != 0 )
00704 spurenListe_[SUED-1][LINKS-1]->setzeRot();
00705 if( spurenListe_[SUED-1][MITTE-1] != 0 )
00706 spurenListe_[SUED-1][MITTE-1]->setzeGruen();
00707 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
00708 spurenListe_[SUED-1][RECHTS-1]->setzeGruen();
00709
00710 if( spurenListe_[OST-1][LINKS-1] != 0 )
00711 spurenListe_[OST-1][LINKS-1]->setzeRot();
00712 if( spurenListe_[OST-1][MITTE-1] != 0 )
00713 spurenListe_[OST-1][MITTE-1]->setzeRot();
00714 if( spurenListe_[OST-1][RECHTS-1] != 0 )
00715 spurenListe_[OST-1][RECHTS-1]->setzeRot();
00716
00717 if( spurenListe_[WEST-1][LINKS-1] != 0 )
00718 spurenListe_[WEST-1][LINKS-1]->setzeRot();
00719 if( spurenListe_[WEST-1][MITTE-1] != 0 )
00720 spurenListe_[WEST-1][MITTE-1]->setzeRot();
00721 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
00722 spurenListe_[WEST-1][RECHTS-1]->setzeRot();
00723
00724 break;
00725 }
00726
00727 case 2:{
00728 if( spurenListe_[NORD-1][LINKS-1] != 0 )
00729 spurenListe_[NORD-1][LINKS-1]->setzeRot();
00730 if( spurenListe_[NORD-1][MITTE-1] != 0 )
00731 spurenListe_[NORD-1][MITTE-1]->setzeGelb();
00732 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
00733 spurenListe_[NORD-1][RECHTS-1]->setzeGelb();
00734
00735 if( spurenListe_[SUED-1][LINKS-1] != 0 )
00736 spurenListe_[SUED-1][LINKS-1]->setzeRot();
00737 if( spurenListe_[SUED-1][MITTE-1] != 0 )
00738 spurenListe_[SUED-1][MITTE-1]->setzeGelb();
00739 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
00740 spurenListe_[SUED-1][RECHTS-1]->setzeGelb();
00741
00742 if( spurenListe_[OST-1][LINKS-1] != 0 )
00743 spurenListe_[OST-1][LINKS-1]->setzeRot();
00744 if( spurenListe_[OST-1][MITTE-1] != 0 )
00745 spurenListe_[OST-1][MITTE-1]->setzeRot();
00746 if( spurenListe_[OST-1][RECHTS-1] != 0 )
00747 spurenListe_[OST-1][RECHTS-1]->setzeRot();
00748
00749 if( spurenListe_[WEST-1][LINKS-1] != 0 )
00750 spurenListe_[WEST-1][LINKS-1]->setzeRot();
00751 if( spurenListe_[WEST-1][MITTE-1] != 0 )
00752 spurenListe_[WEST-1][MITTE-1]->setzeRot();
00753 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
00754 spurenListe_[WEST-1][RECHTS-1]->setzeRot();
00755
00756 break;
00757 }
00758
00759 case 3:{
00760 if( spurenListe_[NORD-1][LINKS-1] != 0 )
00761 spurenListe_[NORD-1][LINKS-1]->setzeRot();
00762 if( spurenListe_[NORD-1][MITTE-1] != 0 )
00763 spurenListe_[NORD-1][MITTE-1]->setzeRot();
00764 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
00765 spurenListe_[NORD-1][RECHTS-1]->setzeGruen();
00766
00767 if( spurenListe_[SUED-1][LINKS-1] != 0 )
00768 spurenListe_[SUED-1][LINKS-1]->setzeRot();
00769 if( spurenListe_[SUED-1][MITTE-1] != 0 )
00770 spurenListe_[SUED-1][MITTE-1]->setzeRot();
00771 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
00772 spurenListe_[SUED-1][RECHTS-1]->setzeGruen();
00773
00774 if( spurenListe_[OST-1][LINKS-1] != 0 )
00775 spurenListe_[OST-1][LINKS-1]->setzeGruen();
00776 if( spurenListe_[OST-1][MITTE-1] != 0 )
00777 spurenListe_[OST-1][MITTE-1]->setzeRot();
00778 if( spurenListe_[OST-1][RECHTS-1] != 0 )
00779 spurenListe_[OST-1][RECHTS-1]->setzeRot();
00780
00781 if( spurenListe_[WEST-1][LINKS-1] != 0 )
00782 spurenListe_[WEST-1][LINKS-1]->setzeGruen();
00783 if( spurenListe_[WEST-1][MITTE-1] != 0 )
00784 spurenListe_[WEST-1][MITTE-1]->setzeRot();
00785 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
00786 spurenListe_[WEST-1][RECHTS-1]->setzeRot();
00787
00788 break;
00789 }
00790
00791 case 4:{
00792 if( spurenListe_[NORD-1][LINKS-1] != 0 )
00793 spurenListe_[NORD-1][LINKS-1]->setzeRot();
00794 if( spurenListe_[NORD-1][MITTE-1] != 0 )
00795 spurenListe_[NORD-1][MITTE-1]->setzeRot();
00796 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
00797 spurenListe_[NORD-1][RECHTS-1]->setzeGelb();
00798
00799 if( spurenListe_[SUED-1][LINKS-1] != 0 )
00800 spurenListe_[SUED-1][LINKS-1]->setzeRot();
00801 if( spurenListe_[SUED-1][MITTE-1] != 0 )
00802 spurenListe_[SUED-1][MITTE-1]->setzeRot();
00803 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
00804 spurenListe_[SUED-1][RECHTS-1]->setzeGelb();
00805
00806 if( spurenListe_[OST-1][LINKS-1] != 0 )
00807 spurenListe_[OST-1][LINKS-1]->setzeGelb();
00808 if( spurenListe_[OST-1][MITTE-1] != 0 )
00809 spurenListe_[OST-1][MITTE-1]->setzeRot();
00810 if( spurenListe_[OST-1][RECHTS-1] != 0 )
00811 spurenListe_[OST-1][RECHTS-1]->setzeRot();
00812
00813 if( spurenListe_[WEST-1][LINKS-1] != 0 )
00814 spurenListe_[WEST-1][LINKS-1]->setzeGelb();
00815 if( spurenListe_[WEST-1][MITTE-1] != 0 )
00816 spurenListe_[WEST-1][MITTE-1]->setzeRot();
00817 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
00818 spurenListe_[WEST-1][RECHTS-1]->setzeRot();
00819
00820 break;
00821 }
00822
00823 case 5:{
00824 if( spurenListe_[NORD-1][LINKS-1] != 0 )
00825 spurenListe_[NORD-1][LINKS-1]->setzeRot();
00826 if( spurenListe_[NORD-1][MITTE-1] != 0 )
00827 spurenListe_[NORD-1][MITTE-1]->setzeRot();
00828 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
00829 spurenListe_[NORD-1][RECHTS-1]->setzeRot();
00830
00831 if( spurenListe_[SUED-1][LINKS-1] != 0 )
00832 spurenListe_[SUED-1][LINKS-1]->setzeRot();
00833 if( spurenListe_[SUED-1][MITTE-1] != 0 )
00834 spurenListe_[SUED-1][MITTE-1]->setzeRot();
00835 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
00836 spurenListe_[SUED-1][RECHTS-1]->setzeRot();
00837
00838 if( spurenListe_[OST-1][LINKS-1] != 0 )
00839 spurenListe_[OST-1][LINKS-1]->setzeRot();
00840 if( spurenListe_[OST-1][MITTE-1] != 0 )
00841 spurenListe_[OST-1][MITTE-1]->setzeGruen();
00842 if( spurenListe_[OST-1][RECHTS-1] != 0 )
00843 spurenListe_[OST-1][RECHTS-1]->setzeGruen();
00844
00845 if( spurenListe_[WEST-1][LINKS-1] != 0 )
00846 spurenListe_[WEST-1][LINKS-1]->setzeRot();
00847 if( spurenListe_[WEST-1][MITTE-1] != 0 )
00848 spurenListe_[WEST-1][MITTE-1]->setzeGruen();
00849 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
00850 spurenListe_[WEST-1][RECHTS-1]->setzeGruen();
00851
00852 break;
00853 }
00854
00855 case 6:{
00856 if( spurenListe_[NORD-1][LINKS-1] != 0 )
00857 spurenListe_[NORD-1][LINKS-1]->setzeRot();
00858 if( spurenListe_[NORD-1][MITTE-1] != 0 )
00859 spurenListe_[NORD-1][MITTE-1]->setzeRot();
00860 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
00861 spurenListe_[NORD-1][RECHTS-1]->setzeRot();
00862
00863 if( spurenListe_[SUED-1][LINKS-1] != 0 )
00864 spurenListe_[SUED-1][LINKS-1]->setzeRot();
00865 if( spurenListe_[SUED-1][MITTE-1] != 0 )
00866 spurenListe_[SUED-1][MITTE-1]->setzeRot();
00867 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
00868 spurenListe_[SUED-1][RECHTS-1]->setzeRot();
00869
00870 if( spurenListe_[OST-1][LINKS-1] != 0 )
00871 spurenListe_[OST-1][LINKS-1]->setzeRot();
00872 if( spurenListe_[OST-1][MITTE-1] != 0 )
00873 spurenListe_[OST-1][MITTE-1]->setzeGelb();
00874 if( spurenListe_[OST-1][RECHTS-1] != 0 )
00875 spurenListe_[OST-1][RECHTS-1]->setzeGelb();
00876
00877 if( spurenListe_[WEST-1][LINKS-1] != 0 )
00878 spurenListe_[WEST-1][LINKS-1]->setzeRot();
00879 if( spurenListe_[WEST-1][MITTE-1] != 0 )
00880 spurenListe_[WEST-1][MITTE-1]->setzeGelb();
00881 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
00882 spurenListe_[WEST-1][RECHTS-1]->setzeGelb();
00883
00884 break;
00885 }
00886
00887 case 7:{
00888 if( spurenListe_[NORD-1][LINKS-1] != 0 )
00889 spurenListe_[NORD-1][LINKS-1]->setzeGruen();
00890 if( spurenListe_[NORD-1][MITTE-1] != 0 )
00891 spurenListe_[NORD-1][MITTE-1]->setzeRot();
00892 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
00893 spurenListe_[NORD-1][RECHTS-1]->setzeRot();
00894
00895 if( spurenListe_[SUED-1][LINKS-1] != 0 )
00896 spurenListe_[SUED-1][LINKS-1]->setzeGruen();
00897 if( spurenListe_[SUED-1][MITTE-1] != 0 )
00898 spurenListe_[SUED-1][MITTE-1]->setzeRot();
00899 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
00900 spurenListe_[SUED-1][RECHTS-1]->setzeRot();
00901
00902 if( spurenListe_[OST-1][LINKS-1] != 0 )
00903 spurenListe_[OST-1][LINKS-1]->setzeRot();
00904 if( spurenListe_[OST-1][MITTE-1] != 0 )
00905 spurenListe_[OST-1][MITTE-1]->setzeRot();
00906 if( spurenListe_[OST-1][RECHTS-1] != 0 )
00907 spurenListe_[OST-1][RECHTS-1]->setzeGruen();
00908
00909 if( spurenListe_[WEST-1][LINKS-1] != 0 )
00910 spurenListe_[WEST-1][LINKS-1]->setzeRot();
00911 if( spurenListe_[WEST-1][MITTE-1] != 0 )
00912 spurenListe_[WEST-1][MITTE-1]->setzeRot();
00913 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
00914 spurenListe_[WEST-1][RECHTS-1]->setzeGruen();
00915
00916 break;
00917 }
00918
00919 case 8:{
00920 if( spurenListe_[NORD-1][LINKS-1] != 0 )
00921 spurenListe_[NORD-1][LINKS-1]->setzeGelb();
00922 if( spurenListe_[NORD-1][MITTE-1] != 0 )
00923 spurenListe_[NORD-1][MITTE-1]->setzeRot();
00924 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
00925 spurenListe_[NORD-1][RECHTS-1]->setzeRot();
00926
00927 if( spurenListe_[SUED-1][LINKS-1] != 0 )
00928 spurenListe_[SUED-1][LINKS-1]->setzeGelb();
00929 if( spurenListe_[SUED-1][MITTE-1] != 0 )
00930 spurenListe_[SUED-1][MITTE-1]->setzeRot();
00931 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
00932 spurenListe_[SUED-1][RECHTS-1]->setzeRot();
00933
00934 if( spurenListe_[OST-1][LINKS-1] != 0 )
00935 spurenListe_[OST-1][LINKS-1]->setzeRot();
00936 if( spurenListe_[OST-1][MITTE-1] != 0 )
00937 spurenListe_[OST-1][MITTE-1]->setzeRot();
00938 if( spurenListe_[OST-1][RECHTS-1] != 0 )
00939 spurenListe_[OST-1][RECHTS-1]->setzeGelb();
00940
00941 if( spurenListe_[WEST-1][LINKS-1] != 0 )
00942 spurenListe_[WEST-1][LINKS-1]->setzeRot();
00943 if( spurenListe_[WEST-1][MITTE-1] != 0 )
00944 spurenListe_[WEST-1][MITTE-1]->setzeRot();
00945 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
00946 spurenListe_[WEST-1][RECHTS-1]->setzeGelb();
00947
00948 break;
00949 }
00950 }
00951 }
00952 int anzahlBike(0), anzahlPkw(0), anzahlLkw(0), anzahlBus(0);
00953
00954 if( spurenListe_[NORD-1][LINKS-1] != 0 ){
00955 anzahlBike = spurenListe_[NORD-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
00956 anzahlPkw = spurenListe_[NORD-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
00957 anzahlLkw = spurenListe_[NORD-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
00958 anzahlBus = spurenListe_[NORD-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
00959
00960 statistik_[NORD-1][LINKS-1][BIKE-1] += anzahlBike;
00961 statistik_[NORD-1][LINKS-1][PKW-1] += anzahlPkw;
00962 statistik_[NORD-1][LINKS-1][LKW-1] += anzahlLkw;
00963 statistik_[NORD-1][LINKS-1][BUS-1] += anzahlBus;
00964
00965 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
00966 }
00967 if( spurenListe_[NORD-1][MITTE-1] != 0 ){
00968 anzahlBike = spurenListe_[NORD-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
00969 anzahlPkw = spurenListe_[NORD-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
00970 anzahlLkw = spurenListe_[NORD-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
00971 anzahlBus = spurenListe_[NORD-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
00972
00973 statistik_[NORD-1][MITTE-1][BIKE-1] += anzahlBike;
00974 statistik_[NORD-1][MITTE-1][PKW-1] += anzahlPkw;
00975 statistik_[NORD-1][MITTE-1][LKW-1] += anzahlLkw;
00976 statistik_[NORD-1][MITTE-1][BUS-1] += anzahlBus;
00977
00978 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
00979 }
00980 if( spurenListe_[NORD-1][RECHTS-1] != 0 ){
00981 anzahlBike = spurenListe_[NORD-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
00982 anzahlPkw = spurenListe_[NORD-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
00983 anzahlLkw = spurenListe_[NORD-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
00984 anzahlBus = spurenListe_[NORD-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
00985
00986 statistik_[NORD-1][RECHTS-1][BIKE-1] += anzahlBike;
00987 statistik_[NORD-1][RECHTS-1][PKW-1] += anzahlPkw;
00988 statistik_[NORD-1][RECHTS-1][LKW-1] += anzahlLkw;
00989 statistik_[NORD-1][RECHTS-1][BUS-1] += anzahlBus;
00990
00991 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
00992 }
00993
00994 if( spurenListe_[SUED-1][LINKS-1] != 0 ){
00995 anzahlBike = spurenListe_[SUED-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
00996 anzahlPkw = spurenListe_[SUED-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
00997 anzahlLkw = spurenListe_[SUED-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
00998 anzahlBus = spurenListe_[SUED-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
00999
01000 statistik_[SUED-1][LINKS-1][BIKE-1] += anzahlBike;
01001 statistik_[SUED-1][LINKS-1][PKW-1] += anzahlPkw;
01002 statistik_[SUED-1][LINKS-1][LKW-1] += anzahlLkw;
01003 statistik_[SUED-1][LINKS-1][BUS-1] += anzahlBus;
01004
01005 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
01006 }
01007 if( spurenListe_[SUED-1][MITTE-1] != 0 ){
01008 anzahlBike = spurenListe_[SUED-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
01009 anzahlPkw = spurenListe_[SUED-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
01010 anzahlLkw = spurenListe_[SUED-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
01011 anzahlBus = spurenListe_[SUED-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
01012
01013 statistik_[SUED-1][MITTE-1][BIKE-1] += anzahlBike;
01014 statistik_[SUED-1][MITTE-1][PKW-1] += anzahlPkw;
01015 statistik_[SUED-1][MITTE-1][LKW-1] += anzahlLkw;
01016 statistik_[SUED-1][MITTE-1][BUS-1] += anzahlBus;
01017
01018 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
01019 }
01020 if( spurenListe_[SUED-1][RECHTS-1] != 0 ){
01021 anzahlBike = spurenListe_[SUED-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
01022 anzahlPkw = spurenListe_[SUED-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
01023 anzahlLkw = spurenListe_[SUED-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
01024 anzahlBus = spurenListe_[SUED-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
01025
01026 statistik_[SUED-1][RECHTS-1][BIKE-1] += anzahlBike;
01027 statistik_[SUED-1][RECHTS-1][PKW-1] += anzahlPkw;
01028 statistik_[SUED-1][RECHTS-1][LKW-1] += anzahlLkw;
01029 statistik_[SUED-1][RECHTS-1][BUS-1] += anzahlBus;
01030
01031 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
01032 }
01033
01034 if( spurenListe_[OST-1][LINKS-1] != 0 ){
01035 anzahlBike = spurenListe_[OST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
01036 anzahlPkw = spurenListe_[OST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
01037 anzahlLkw = spurenListe_[OST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
01038 anzahlBus = spurenListe_[OST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
01039
01040 statistik_[OST-1][LINKS-1][BIKE-1] += anzahlBike;
01041 statistik_[OST-1][LINKS-1][PKW-1] += anzahlPkw;
01042 statistik_[OST-1][LINKS-1][LKW-1] += anzahlLkw;
01043 statistik_[OST-1][LINKS-1][BUS-1] += anzahlBus;
01044
01045 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
01046 }
01047 if( spurenListe_[OST-1][MITTE-1] != 0 ){
01048 anzahlBike = spurenListe_[OST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
01049 anzahlPkw = spurenListe_[OST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
01050 anzahlLkw = spurenListe_[OST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
01051 anzahlBus = spurenListe_[OST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
01052
01053 statistik_[OST-1][MITTE-1][BIKE-1] += anzahlBike;
01054 statistik_[OST-1][MITTE-1][PKW-1] += anzahlPkw;
01055 statistik_[OST-1][MITTE-1][LKW-1] += anzahlLkw;
01056 statistik_[OST-1][MITTE-1][BUS-1] += anzahlBus;
01057
01058 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
01059 }
01060 if( spurenListe_[OST-1][RECHTS-1] != 0 ){
01061 anzahlBike = spurenListe_[OST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
01062 anzahlPkw = spurenListe_[OST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
01063 anzahlLkw = spurenListe_[OST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
01064 anzahlBus = spurenListe_[OST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
01065
01066
01067 statistik_[OST-1][RECHTS-1][BIKE-1] += anzahlBike;
01068 statistik_[OST-1][RECHTS-1][PKW-1] += anzahlPkw;
01069 statistik_[OST-1][RECHTS-1][LKW-1] += anzahlLkw;
01070 statistik_[OST-1][RECHTS-1][BUS-1] += anzahlBus;
01071
01072 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
01073 }
01074
01075 if( spurenListe_[WEST-1][LINKS-1] != 0 ){
01076 anzahlBike = spurenListe_[WEST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
01077 anzahlPkw = spurenListe_[WEST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
01078 anzahlLkw = spurenListe_[WEST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
01079 anzahlBus = spurenListe_[WEST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
01080
01081 statistik_[WEST-1][LINKS-1][BIKE-1] += anzahlBike;
01082 statistik_[WEST-1][LINKS-1][PKW-1] += anzahlPkw;
01083 statistik_[WEST-1][LINKS-1][LKW-1] += anzahlLkw;
01084 statistik_[WEST-1][LINKS-1][BUS-1] += anzahlBus;
01085
01086 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
01087 }
01088 if( spurenListe_[WEST-1][MITTE-1] != 0 ){
01089 anzahlBike = spurenListe_[WEST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
01090 anzahlPkw = spurenListe_[WEST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
01091 anzahlLkw = spurenListe_[WEST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
01092 anzahlBus = spurenListe_[WEST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
01093
01094 statistik_[WEST-1][MITTE-1][BIKE-1] += anzahlBike;
01095 statistik_[WEST-1][MITTE-1][PKW-1] += anzahlPkw;
01096 statistik_[WEST-1][MITTE-1][LKW-1] += anzahlLkw;
01097 statistik_[WEST-1][MITTE-1][BUS-1] += anzahlBus;
01098
01099 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
01100 }
01101 if( spurenListe_[WEST-1][RECHTS-1] != 0 ){
01102 anzahlBike = spurenListe_[WEST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
01103 anzahlPkw = spurenListe_[WEST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
01104 anzahlLkw = spurenListe_[WEST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
01105 anzahlBus = spurenListe_[WEST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
01106
01107 statistik_[WEST-1][RECHTS-1][BIKE-1] += anzahlBike;
01108 statistik_[WEST-1][RECHTS-1][PKW-1] += anzahlPkw;
01109 statistik_[WEST-1][RECHTS-1][LKW-1] += anzahlLkw;
01110 statistik_[WEST-1][RECHTS-1][BUS-1] += anzahlBus;
01111
01112 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
01113 }
01114
01115 }
01126 void Kreuzung::algorithmusMengeMenge( double zeitintervall ){
01127 bool schalten( 0 );
01128 int anzahlFahrzeuge[4], i(0);
01129 zeitLetzteSchaltungGlobal_ += zeitintervall;
01130
01131 switch( schaltreihenfolge_[schaltungstakt_-1] ){
01132 case 1:
01133 case 3:
01134 case 5:
01135 case 7:{
01136
01137 if( mengeLetzteSchaltungGlobal_ < schaltmenge_[schaltungstakt_-1] ){
01138
01139 schalten = 0;
01140 }
01141 else{
01142
01143 if( zeitLetzteSchaltungGlobal_ > 3 )
01144 schalten = 1;
01145 }
01146 break;
01147 }
01148 case 2:
01149 case 4:
01150 case 6:
01151 case 8:{
01152 if( zeitLetzteSchaltungGlobal_ < 3 ){
01153
01154 schalten = 0;
01155 }
01156 else{
01157
01158 schalten = 1;
01159 }
01160 break;
01161 }
01162 }
01163
01164
01165 if( schalten == 1 ){
01166
01167 mengeLetzteSchaltungGlobal_ = 0;
01168 zeitLetzteSchaltungGlobal_ = 0;
01169
01170
01171 if( schaltmenge_[schaltungstakt_-1] != 0 ){
01172 schaltungstakt_++;
01173
01174 if( schaltungstakt_ > 1 )
01175 schaltmenge_[schaltungstakt_-2] = 0;
01176 }
01177
01178
01179 if( schaltungstakt_ > 8 || schaltmenge_[schaltungstakt_-1] == 0 ){
01180 anzahlFahrzeuge[0] = 0;
01181 anzahlFahrzeuge[1] = 0;
01182 anzahlFahrzeuge[2] = 0;
01183 anzahlFahrzeuge[3] = 0;
01184
01185 if( spurenListe_[NORD-1][MITTE-1] != 0 )
01186 anzahlFahrzeuge[0] += spurenListe_[NORD-1][MITTE-1]->gibAnzahlFahrzeuge();
01187 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
01188 anzahlFahrzeuge[0] += spurenListe_[NORD-1][RECHTS-1]->gibAnzahlFahrzeuge();
01189 if( spurenListe_[SUED-1][MITTE-1] != 0 )
01190 anzahlFahrzeuge[0] += spurenListe_[SUED-1][MITTE-1]->gibAnzahlFahrzeuge();
01191 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
01192 anzahlFahrzeuge[0] += spurenListe_[SUED-1][RECHTS-1]->gibAnzahlFahrzeuge();
01193
01194
01195 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
01196 anzahlFahrzeuge[1] += spurenListe_[NORD-1][RECHTS-1]->gibAnzahlFahrzeuge();
01197 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
01198 anzahlFahrzeuge[1] += spurenListe_[SUED-1][RECHTS-1]->gibAnzahlFahrzeuge();
01199 if( spurenListe_[OST-1][LINKS-1] != 0 )
01200 anzahlFahrzeuge[1] += spurenListe_[OST-1][LINKS-1]->gibAnzahlFahrzeuge();
01201 if( spurenListe_[WEST-1][LINKS-1] != 0 )
01202 anzahlFahrzeuge[1] += spurenListe_[WEST-1][LINKS-1]->gibAnzahlFahrzeuge();
01203
01204
01205 if( spurenListe_[OST-1][MITTE-1] != 0 )
01206 anzahlFahrzeuge[2] += spurenListe_[OST-1][MITTE-1]->gibAnzahlFahrzeuge();
01207 if( spurenListe_[OST-1][RECHTS-1] != 0 )
01208 anzahlFahrzeuge[2] += spurenListe_[OST-1][RECHTS-1]->gibAnzahlFahrzeuge();
01209 if( spurenListe_[WEST-1][MITTE-1] != 0 )
01210 anzahlFahrzeuge[2] += spurenListe_[WEST-1][MITTE-1]->gibAnzahlFahrzeuge();
01211 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
01212 anzahlFahrzeuge[2] += spurenListe_[WEST-1][RECHTS-1]->gibAnzahlFahrzeuge();
01213
01214
01215 if( spurenListe_[NORD-1][LINKS-1] != 0 )
01216 anzahlFahrzeuge[3] += spurenListe_[NORD-1][LINKS-1]->gibAnzahlFahrzeuge();
01217 if( spurenListe_[SUED-1][LINKS-1] != 0 )
01218 anzahlFahrzeuge[3] += spurenListe_[SUED-1][LINKS-1]->gibAnzahlFahrzeuge();
01219 if( spurenListe_[OST-1][RECHTS-1] != 0 )
01220 anzahlFahrzeuge[3] += spurenListe_[OST-1][RECHTS-1]->gibAnzahlFahrzeuge();
01221 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
01222 anzahlFahrzeuge[3] += spurenListe_[WEST-1][RECHTS-1]->gibAnzahlFahrzeuge();
01223
01224
01225
01226 if( anzahlFahrzeuge[0] <= anzahlFahrzeuge[1] )
01227 i = 0;
01228 else
01229 i = 1;
01230
01231 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
01232 anzahlFahrzeuge[i] -= spurenListe_[NORD-1][RECHTS-1]->gibAnzahlFahrzeuge();
01233 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
01234 anzahlFahrzeuge[i] -= spurenListe_[SUED-1][RECHTS-1]->gibAnzahlFahrzeuge();
01235
01236 if( anzahlFahrzeuge[2] <= anzahlFahrzeuge[3] )
01237 i = 2;
01238 else
01239 i = 3;
01240
01241 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
01242 anzahlFahrzeuge[i] -= spurenListe_[WEST-1][RECHTS-1]->gibAnzahlFahrzeuge();
01243 if( spurenListe_[OST-1][RECHTS-1] != 0 )
01244 anzahlFahrzeuge[i] -= spurenListe_[OST-1][RECHTS-1]->gibAnzahlFahrzeuge();
01245
01246
01247
01248
01249 schaltungstakt_ = 0;
01250 for( i = 0; i<4; i++ ){
01251 int zuSetzenderTakt( 0 );
01252
01253 if( anzahlFahrzeuge[0] > anzahlFahrzeuge[1] )
01254 zuSetzenderTakt = 0;
01255 else
01256 zuSetzenderTakt = 1;
01257
01258 if( anzahlFahrzeuge[2] > anzahlFahrzeuge[zuSetzenderTakt] )
01259 zuSetzenderTakt = 2;
01260 if( anzahlFahrzeuge[3] > anzahlFahrzeuge[zuSetzenderTakt] )
01261 zuSetzenderTakt = 3;
01262
01263
01264 schaltreihenfolge_[schaltungstakt_] = zuSetzenderTakt * 2 + 1;
01265 schaltmenge_[schaltungstakt_] = anzahlFahrzeuge[zuSetzenderTakt];
01266 schaltungstakt_++;
01267
01268
01269 schaltreihenfolge_[schaltungstakt_] = zuSetzenderTakt * 2 + 2;
01270 schaltmenge_[schaltungstakt_] = anzahlFahrzeuge[zuSetzenderTakt];
01271 schaltungstakt_++;
01272
01273
01274 anzahlFahrzeuge[zuSetzenderTakt] = 0;
01275 }
01276
01277
01278 schaltungstakt_ = 1;
01279 }
01280
01281
01282 switch( schaltreihenfolge_[schaltungstakt_-1] ){
01283
01284 case 1:{
01285 if( spurenListe_[NORD-1][LINKS-1] != 0 )
01286 spurenListe_[NORD-1][LINKS-1]->setzeRot();
01287 if( spurenListe_[NORD-1][MITTE-1] != 0 )
01288 spurenListe_[NORD-1][MITTE-1]->setzeGruen();
01289 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
01290 spurenListe_[NORD-1][RECHTS-1]->setzeGruen();
01291
01292 if( spurenListe_[SUED-1][LINKS-1] != 0 )
01293 spurenListe_[SUED-1][LINKS-1]->setzeRot();
01294 if( spurenListe_[SUED-1][MITTE-1] != 0 )
01295 spurenListe_[SUED-1][MITTE-1]->setzeGruen();
01296 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
01297 spurenListe_[SUED-1][RECHTS-1]->setzeGruen();
01298
01299 if( spurenListe_[OST-1][LINKS-1] != 0 )
01300 spurenListe_[OST-1][LINKS-1]->setzeRot();
01301 if( spurenListe_[OST-1][MITTE-1] != 0 )
01302 spurenListe_[OST-1][MITTE-1]->setzeRot();
01303 if( spurenListe_[OST-1][RECHTS-1] != 0 )
01304 spurenListe_[OST-1][RECHTS-1]->setzeRot();
01305
01306 if( spurenListe_[WEST-1][LINKS-1] != 0 )
01307 spurenListe_[WEST-1][LINKS-1]->setzeRot();
01308 if( spurenListe_[WEST-1][MITTE-1] != 0 )
01309 spurenListe_[WEST-1][MITTE-1]->setzeRot();
01310 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
01311 spurenListe_[WEST-1][RECHTS-1]->setzeRot();
01312
01313 break;
01314 }
01315
01316 case 2:{
01317 if( spurenListe_[NORD-1][LINKS-1] != 0 )
01318 spurenListe_[NORD-1][LINKS-1]->setzeRot();
01319 if( spurenListe_[NORD-1][MITTE-1] != 0 )
01320 spurenListe_[NORD-1][MITTE-1]->setzeGelb();
01321 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
01322 spurenListe_[NORD-1][RECHTS-1]->setzeGelb();
01323
01324 if( spurenListe_[SUED-1][LINKS-1] != 0 )
01325 spurenListe_[SUED-1][LINKS-1]->setzeRot();
01326 if( spurenListe_[SUED-1][MITTE-1] != 0 )
01327 spurenListe_[SUED-1][MITTE-1]->setzeGelb();
01328 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
01329 spurenListe_[SUED-1][RECHTS-1]->setzeGelb();
01330
01331 if( spurenListe_[OST-1][LINKS-1] != 0 )
01332 spurenListe_[OST-1][LINKS-1]->setzeRot();
01333 if( spurenListe_[OST-1][MITTE-1] != 0 )
01334 spurenListe_[OST-1][MITTE-1]->setzeRot();
01335 if( spurenListe_[OST-1][RECHTS-1] != 0 )
01336 spurenListe_[OST-1][RECHTS-1]->setzeRot();
01337
01338 if( spurenListe_[WEST-1][LINKS-1] != 0 )
01339 spurenListe_[WEST-1][LINKS-1]->setzeRot();
01340 if( spurenListe_[WEST-1][MITTE-1] != 0 )
01341 spurenListe_[WEST-1][MITTE-1]->setzeRot();
01342 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
01343 spurenListe_[WEST-1][RECHTS-1]->setzeRot();
01344
01345 break;
01346 }
01347
01348 case 3:{
01349 if( spurenListe_[NORD-1][LINKS-1] != 0 )
01350 spurenListe_[NORD-1][LINKS-1]->setzeRot();
01351 if( spurenListe_[NORD-1][MITTE-1] != 0 )
01352 spurenListe_[NORD-1][MITTE-1]->setzeRot();
01353 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
01354 spurenListe_[NORD-1][RECHTS-1]->setzeGruen();
01355
01356 if( spurenListe_[SUED-1][LINKS-1] != 0 )
01357 spurenListe_[SUED-1][LINKS-1]->setzeRot();
01358 if( spurenListe_[SUED-1][MITTE-1] != 0 )
01359 spurenListe_[SUED-1][MITTE-1]->setzeRot();
01360 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
01361 spurenListe_[SUED-1][RECHTS-1]->setzeGruen();
01362
01363 if( spurenListe_[OST-1][LINKS-1] != 0 )
01364 spurenListe_[OST-1][LINKS-1]->setzeGruen();
01365 if( spurenListe_[OST-1][MITTE-1] != 0 )
01366 spurenListe_[OST-1][MITTE-1]->setzeRot();
01367 if( spurenListe_[OST-1][RECHTS-1] != 0 )
01368 spurenListe_[OST-1][RECHTS-1]->setzeRot();
01369
01370 if( spurenListe_[WEST-1][LINKS-1] != 0 )
01371 spurenListe_[WEST-1][LINKS-1]->setzeGruen();
01372 if( spurenListe_[WEST-1][MITTE-1] != 0 )
01373 spurenListe_[WEST-1][MITTE-1]->setzeRot();
01374 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
01375 spurenListe_[WEST-1][RECHTS-1]->setzeRot();
01376
01377 break;
01378 }
01379
01380 case 4:{
01381 if( spurenListe_[NORD-1][LINKS-1] != 0 )
01382 spurenListe_[NORD-1][LINKS-1]->setzeRot();
01383 if( spurenListe_[NORD-1][MITTE-1] != 0 )
01384 spurenListe_[NORD-1][MITTE-1]->setzeRot();
01385 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
01386 spurenListe_[NORD-1][RECHTS-1]->setzeGelb();
01387
01388 if( spurenListe_[SUED-1][LINKS-1] != 0 )
01389 spurenListe_[SUED-1][LINKS-1]->setzeRot();
01390 if( spurenListe_[SUED-1][MITTE-1] != 0 )
01391 spurenListe_[SUED-1][MITTE-1]->setzeRot();
01392 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
01393 spurenListe_[SUED-1][RECHTS-1]->setzeGelb();
01394
01395
01396 if( spurenListe_[OST-1][LINKS-1] != 0 )
01397 spurenListe_[OST-1][LINKS-1]->setzeGelb();
01398 if( spurenListe_[OST-1][MITTE-1] != 0 )
01399 spurenListe_[OST-1][MITTE-1]->setzeRot();
01400 if( spurenListe_[OST-1][RECHTS-1] != 0 )
01401 spurenListe_[OST-1][RECHTS-1]->setzeRot();
01402
01403 if( spurenListe_[WEST-1][LINKS-1] != 0 )
01404 spurenListe_[WEST-1][LINKS-1]->setzeGelb();
01405 if( spurenListe_[WEST-1][MITTE-1] != 0 )
01406 spurenListe_[WEST-1][MITTE-1]->setzeRot();
01407 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
01408 spurenListe_[WEST-1][RECHTS-1]->setzeRot();
01409
01410 break;
01411 }
01412
01413 case 5:{
01414 if( spurenListe_[NORD-1][LINKS-1] != 0 )
01415 spurenListe_[NORD-1][LINKS-1]->setzeRot();
01416 if( spurenListe_[NORD-1][MITTE-1] != 0 )
01417 spurenListe_[NORD-1][MITTE-1]->setzeRot();
01418 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
01419 spurenListe_[NORD-1][RECHTS-1]->setzeRot();
01420
01421 if( spurenListe_[SUED-1][LINKS-1] != 0 )
01422 spurenListe_[SUED-1][LINKS-1]->setzeRot();
01423 if( spurenListe_[SUED-1][MITTE-1] != 0 )
01424 spurenListe_[SUED-1][MITTE-1]->setzeRot();
01425 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
01426 spurenListe_[SUED-1][RECHTS-1]->setzeRot();
01427
01428 if( spurenListe_[OST-1][LINKS-1] != 0 )
01429 spurenListe_[OST-1][LINKS-1]->setzeRot();
01430 if( spurenListe_[OST-1][MITTE-1] != 0 )
01431 spurenListe_[OST-1][MITTE-1]->setzeGruen();
01432 if( spurenListe_[OST-1][RECHTS-1] != 0 )
01433 spurenListe_[OST-1][RECHTS-1]->setzeGruen();
01434
01435 if( spurenListe_[WEST-1][LINKS-1] != 0 )
01436 spurenListe_[WEST-1][LINKS-1]->setzeRot();
01437 if( spurenListe_[WEST-1][MITTE-1] != 0 )
01438 spurenListe_[WEST-1][MITTE-1]->setzeGruen();
01439 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
01440 spurenListe_[WEST-1][RECHTS-1]->setzeGruen();
01441
01442 break;
01443 }
01444
01445 case 6:{
01446 if( spurenListe_[NORD-1][LINKS-1] != 0 )
01447 spurenListe_[NORD-1][LINKS-1]->setzeRot();
01448 if( spurenListe_[NORD-1][MITTE-1] != 0 )
01449 spurenListe_[NORD-1][MITTE-1]->setzeRot();
01450 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
01451 spurenListe_[NORD-1][RECHTS-1]->setzeRot();
01452
01453 if( spurenListe_[SUED-1][LINKS-1] != 0 )
01454 spurenListe_[SUED-1][LINKS-1]->setzeRot();
01455 if( spurenListe_[SUED-1][MITTE-1] != 0 )
01456 spurenListe_[SUED-1][MITTE-1]->setzeRot();
01457 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
01458 spurenListe_[SUED-1][RECHTS-1]->setzeRot();
01459
01460 if( spurenListe_[OST-1][LINKS-1] != 0 )
01461 spurenListe_[OST-1][LINKS-1]->setzeRot();
01462 if( spurenListe_[OST-1][MITTE-1] != 0 )
01463 spurenListe_[OST-1][MITTE-1]->setzeGelb();
01464 if( spurenListe_[OST-1][RECHTS-1] != 0 )
01465 spurenListe_[OST-1][RECHTS-1]->setzeGelb();
01466
01467 if( spurenListe_[WEST-1][LINKS-1] != 0 )
01468 spurenListe_[WEST-1][LINKS-1]->setzeRot();
01469 if( spurenListe_[WEST-1][MITTE-1] != 0 )
01470 spurenListe_[WEST-1][MITTE-1]->setzeGelb();
01471 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
01472 spurenListe_[WEST-1][RECHTS-1]->setzeGelb();
01473
01474 break;
01475 }
01476
01477 case 7:{
01478 if( spurenListe_[NORD-1][LINKS-1] != 0 )
01479 spurenListe_[NORD-1][LINKS-1]->setzeGruen();
01480 if( spurenListe_[NORD-1][MITTE-1] != 0 )
01481 spurenListe_[NORD-1][MITTE-1]->setzeRot();
01482 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
01483 spurenListe_[NORD-1][RECHTS-1]->setzeRot();
01484
01485 if( spurenListe_[SUED-1][LINKS-1] != 0 )
01486 spurenListe_[SUED-1][LINKS-1]->setzeGruen();
01487 if( spurenListe_[SUED-1][MITTE-1] != 0 )
01488 spurenListe_[SUED-1][MITTE-1]->setzeRot();
01489 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
01490 spurenListe_[SUED-1][RECHTS-1]->setzeRot();
01491
01492 if( spurenListe_[OST-1][LINKS-1] != 0 )
01493 spurenListe_[OST-1][LINKS-1]->setzeRot();
01494 if( spurenListe_[OST-1][MITTE-1] != 0 )
01495 spurenListe_[OST-1][MITTE-1]->setzeRot();
01496 if( spurenListe_[OST-1][RECHTS-1] != 0 )
01497 spurenListe_[OST-1][RECHTS-1]->setzeGruen();
01498
01499 if( spurenListe_[WEST-1][LINKS-1] != 0 )
01500 spurenListe_[WEST-1][LINKS-1]->setzeRot();
01501 if( spurenListe_[WEST-1][MITTE-1] != 0 )
01502 spurenListe_[WEST-1][MITTE-1]->setzeRot();
01503 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
01504 spurenListe_[WEST-1][RECHTS-1]->setzeGruen();
01505
01506 break;
01507 }
01508
01509 case 8:{
01510 if( spurenListe_[NORD-1][LINKS-1] != 0 )
01511 spurenListe_[NORD-1][LINKS-1]->setzeGelb();
01512 if( spurenListe_[NORD-1][MITTE-1] != 0 )
01513 spurenListe_[NORD-1][MITTE-1]->setzeRot();
01514 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
01515 spurenListe_[NORD-1][RECHTS-1]->setzeRot();
01516
01517 if( spurenListe_[SUED-1][LINKS-1] != 0 )
01518 spurenListe_[SUED-1][LINKS-1]->setzeGelb();
01519 if( spurenListe_[SUED-1][MITTE-1] != 0 )
01520 spurenListe_[SUED-1][MITTE-1]->setzeRot();
01521 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
01522 spurenListe_[SUED-1][RECHTS-1]->setzeRot();
01523
01524 if( spurenListe_[OST-1][LINKS-1] != 0 )
01525 spurenListe_[OST-1][LINKS-1]->setzeRot();
01526 if( spurenListe_[OST-1][MITTE-1] != 0 )
01527 spurenListe_[OST-1][MITTE-1]->setzeRot();
01528 if( spurenListe_[OST-1][RECHTS-1] != 0 )
01529 spurenListe_[OST-1][RECHTS-1]->setzeGelb();
01530
01531 if( spurenListe_[WEST-1][LINKS-1] != 0 )
01532 spurenListe_[WEST-1][LINKS-1]->setzeRot();
01533 if( spurenListe_[WEST-1][MITTE-1] != 0 )
01534 spurenListe_[WEST-1][MITTE-1]->setzeRot();
01535 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
01536 spurenListe_[WEST-1][RECHTS-1]->setzeGelb();
01537
01538 break;
01539 }
01540 }
01541 }
01542
01543 int anzahlBike(0), anzahlPkw(0), anzahlLkw(0), anzahlBus(0);
01544
01545 if( spurenListe_[NORD-1][LINKS-1] != 0 ){
01546 anzahlBike = spurenListe_[NORD-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
01547 anzahlPkw = spurenListe_[NORD-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
01548 anzahlLkw = spurenListe_[NORD-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
01549 anzahlBus = spurenListe_[NORD-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
01550
01551 statistik_[NORD-1][LINKS-1][BIKE-1] += anzahlBike;
01552 statistik_[NORD-1][LINKS-1][PKW-1] += anzahlPkw;
01553 statistik_[NORD-1][LINKS-1][LKW-1] += anzahlLkw;
01554 statistik_[NORD-1][LINKS-1][BUS-1] += anzahlBus;
01555
01556 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
01557 }
01558 if( spurenListe_[NORD-1][MITTE-1] != 0 ){
01559 anzahlBike = spurenListe_[NORD-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
01560 anzahlPkw = spurenListe_[NORD-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
01561 anzahlLkw = spurenListe_[NORD-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
01562 anzahlBus = spurenListe_[NORD-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
01563
01564 statistik_[NORD-1][MITTE-1][BIKE-1] += anzahlBike;
01565 statistik_[NORD-1][MITTE-1][PKW-1] += anzahlPkw;
01566 statistik_[NORD-1][MITTE-1][LKW-1] += anzahlLkw;
01567 statistik_[NORD-1][MITTE-1][BUS-1] += anzahlBus;
01568
01569 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
01570 }
01571 if( spurenListe_[NORD-1][RECHTS-1] != 0 ){
01572 anzahlBike = spurenListe_[NORD-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
01573 anzahlPkw = spurenListe_[NORD-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
01574 anzahlLkw = spurenListe_[NORD-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
01575 anzahlBus = spurenListe_[NORD-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
01576
01577 statistik_[NORD-1][RECHTS-1][BIKE-1] += anzahlBike;
01578 statistik_[NORD-1][RECHTS-1][PKW-1] += anzahlPkw;
01579 statistik_[NORD-1][RECHTS-1][LKW-1] += anzahlLkw;
01580 statistik_[NORD-1][RECHTS-1][BUS-1] += anzahlBus;
01581
01582 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
01583 }
01584
01585 if( spurenListe_[SUED-1][LINKS-1] != 0 ){
01586 anzahlBike = spurenListe_[SUED-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
01587 anzahlPkw = spurenListe_[SUED-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
01588 anzahlLkw = spurenListe_[SUED-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
01589 anzahlBus = spurenListe_[SUED-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
01590
01591 statistik_[SUED-1][LINKS-1][BIKE-1] += anzahlBike;
01592 statistik_[SUED-1][LINKS-1][PKW-1] += anzahlPkw;
01593 statistik_[SUED-1][LINKS-1][LKW-1] += anzahlLkw;
01594 statistik_[SUED-1][LINKS-1][BUS-1] += anzahlBus;
01595
01596 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
01597 }
01598 if( spurenListe_[SUED-1][MITTE-1] != 0 ){
01599 anzahlBike = spurenListe_[SUED-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
01600 anzahlPkw = spurenListe_[SUED-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
01601 anzahlLkw = spurenListe_[SUED-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
01602 anzahlBus = spurenListe_[SUED-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
01603
01604 statistik_[SUED-1][MITTE-1][BIKE-1] += anzahlBike;
01605 statistik_[SUED-1][MITTE-1][PKW-1] += anzahlPkw;
01606 statistik_[SUED-1][MITTE-1][LKW-1] += anzahlLkw;
01607 statistik_[SUED-1][MITTE-1][BUS-1] += anzahlBus;
01608
01609 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
01610 }
01611 if( spurenListe_[SUED-1][RECHTS-1] != 0 ){
01612 anzahlBike = spurenListe_[SUED-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
01613 anzahlPkw = spurenListe_[SUED-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
01614 anzahlLkw = spurenListe_[SUED-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
01615 anzahlBus = spurenListe_[SUED-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
01616
01617 statistik_[SUED-1][RECHTS-1][BIKE-1] += anzahlBike;
01618 statistik_[SUED-1][RECHTS-1][PKW-1] += anzahlPkw;
01619 statistik_[SUED-1][RECHTS-1][LKW-1] += anzahlLkw;
01620 statistik_[SUED-1][RECHTS-1][BUS-1] += anzahlBus;
01621
01622 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
01623 }
01624
01625 if( spurenListe_[OST-1][LINKS-1] != 0 ){
01626 anzahlBike = spurenListe_[OST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
01627 anzahlPkw = spurenListe_[OST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
01628 anzahlLkw = spurenListe_[OST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
01629 anzahlBus = spurenListe_[OST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
01630
01631 statistik_[OST-1][LINKS-1][BIKE-1] += anzahlBike;
01632 statistik_[OST-1][LINKS-1][PKW-1] += anzahlPkw;
01633
01634 statistik_[OST-1][LINKS-1][LKW-1] += anzahlLkw;
01635 statistik_[OST-1][LINKS-1][BUS-1] += anzahlBus;
01636
01637 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
01638 }
01639 if( spurenListe_[OST-1][MITTE-1] != 0 ){
01640 anzahlBike = spurenListe_[OST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
01641 anzahlPkw = spurenListe_[OST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
01642 anzahlLkw = spurenListe_[OST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
01643 anzahlBus = spurenListe_[OST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
01644
01645 statistik_[OST-1][MITTE-1][BIKE-1] += anzahlBike;
01646 statistik_[OST-1][MITTE-1][PKW-1] += anzahlPkw;
01647 statistik_[OST-1][MITTE-1][LKW-1] += anzahlLkw;
01648 statistik_[OST-1][MITTE-1][BUS-1] += anzahlBus;
01649
01650 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
01651 }
01652 if( spurenListe_[OST-1][RECHTS-1] != 0 ){
01653 anzahlBike = spurenListe_[OST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
01654 anzahlPkw = spurenListe_[OST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
01655 anzahlLkw = spurenListe_[OST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
01656 anzahlBus = spurenListe_[OST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
01657
01658 statistik_[OST-1][RECHTS-1][BIKE-1] += anzahlBike;
01659 statistik_[OST-1][RECHTS-1][PKW-1] += anzahlPkw;
01660 statistik_[OST-1][RECHTS-1][LKW-1] += anzahlLkw;
01661 statistik_[OST-1][RECHTS-1][BUS-1] += anzahlBus;
01662
01663 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
01664 }
01665
01666 if( spurenListe_[WEST-1][LINKS-1] != 0 ){
01667 anzahlBike = spurenListe_[WEST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
01668 anzahlPkw = spurenListe_[WEST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
01669 anzahlLkw = spurenListe_[WEST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
01670 anzahlBus = spurenListe_[WEST-1][LINKS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
01671
01672 statistik_[WEST-1][LINKS-1][BIKE-1] += anzahlBike;
01673 statistik_[WEST-1][LINKS-1][PKW-1] += anzahlPkw;
01674 statistik_[WEST-1][LINKS-1][LKW-1] += anzahlLkw;
01675 statistik_[WEST-1][LINKS-1][BUS-1] += anzahlBus;
01676
01677 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
01678 }
01679 if( spurenListe_[WEST-1][MITTE-1] != 0 ){
01680 anzahlBike = spurenListe_[WEST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
01681 anzahlPkw = spurenListe_[WEST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
01682 anzahlLkw = spurenListe_[WEST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
01683 anzahlBus = spurenListe_[WEST-1][MITTE-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
01684
01685 statistik_[WEST-1][MITTE-1][BIKE-1] += anzahlBike;
01686 statistik_[WEST-1][MITTE-1][PKW-1] += anzahlPkw;
01687 statistik_[WEST-1][MITTE-1][LKW-1] += anzahlLkw;
01688 statistik_[WEST-1][MITTE-1][BUS-1] += anzahlBus;
01689
01690 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
01691 }
01692 if( spurenListe_[WEST-1][RECHTS-1] != 0 ){
01693 anzahlBike = spurenListe_[WEST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BIKE );
01694 anzahlPkw = spurenListe_[WEST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( PKW );
01695 anzahlLkw = spurenListe_[WEST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( LKW );
01696 anzahlBus = spurenListe_[WEST-1][RECHTS-1]->gibAnzahlAbgefahrenerFahrzeuge( BUS );
01697
01698 statistik_[WEST-1][RECHTS-1][BIKE-1] += anzahlBike;
01699 statistik_[WEST-1][RECHTS-1][PKW-1] += anzahlPkw;
01700 statistik_[WEST-1][RECHTS-1][LKW-1] += anzahlLkw;
01701 statistik_[WEST-1][RECHTS-1][BUS-1] += anzahlBus;
01702
01703 mengeLetzteSchaltungGlobal_ = anzahlBike + anzahlPkw + anzahlLkw + anzahlBus + mengeLetzteSchaltungGlobal_;
01704 }
01705 }
01706
01718 void Kreuzung::algorithmusStopp( double zeitintervall ){
01719
01720
01721 bool schalten = 0;
01722 zeitLetzteSchaltungGlobal_ += zeitintervall;
01723
01724
01725 switch( schaltungstakt_ ){
01726
01727 case 1:
01728 if( zeitLetzteSchaltungGlobal_ >= schaltzeit_ ){
01729 schalten = 1;
01730 zeitLetzteSchaltungGlobal_ = 0;
01731 mengeLetzteSchaltungGlobal_ = 0;
01732 }
01733 break;
01734
01735 case 2:
01736 if( zeitLetzteSchaltungGlobal_ >= (schaltzeit_ * 2) ){
01737 schalten = 1;
01738 zeitLetzteSchaltungGlobal_ = 0;
01739 mengeLetzteSchaltungGlobal_ = 0;
01740 }
01741 break;
01742 }
01743
01744
01745
01746 if( schalten != 0 ){
01747 schaltungstakt_++;
01748 if( schaltungstakt_ > 2 )
01749 schaltungstakt_ = 1;
01750 zeitLetzteSchaltungGlobal_ = 0;
01751 mengeLetzteSchaltungGlobal_ = 0;
01752
01753
01754 switch( schaltungstakt_ ){
01755
01756 case 1:{
01757 if( spurenListe_[NORD-1][LINKS-1] != 0 )
01758 spurenListe_[NORD-1][LINKS-1]->setzeRot();
01759 if( spurenListe_[NORD-1][MITTE-1] != 0 )
01760 spurenListe_[NORD-1][MITTE-1]->setzeRot();
01761 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
01762 spurenListe_[NORD-1][RECHTS-1]->setzeRot();
01763
01764 if( spurenListe_[SUED-1][LINKS-1] != 0 )
01765 spurenListe_[SUED-1][LINKS-1]->setzeRot();
01766 if( spurenListe_[SUED-1][MITTE-1] != 0 )
01767 spurenListe_[SUED-1][MITTE-1]->setzeRot();
01768 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
01769 spurenListe_[SUED-1][RECHTS-1]->setzeRot();
01770
01771 if( spurenListe_[OST-1][LINKS-1] != 0 )
01772 spurenListe_[OST-1][LINKS-1]->setzeRot();
01773 if( spurenListe_[OST-1][MITTE-1] != 0 )
01774 spurenListe_[OST-1][MITTE-1]->setzeRot();
01775 if( spurenListe_[OST-1][RECHTS-1] != 0 )
01776 spurenListe_[OST-1][RECHTS-1]->setzeRot();
01777
01778 if( spurenListe_[WEST-1][LINKS-1] != 0 )
01779 spurenListe_[WEST-1][LINKS-1]->setzeRot();
01780 if( spurenListe_[WEST-1][MITTE-1] != 0 )
01781 spurenListe_[WEST-1][MITTE-1]->setzeRot();
01782 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
01783 spurenListe_[WEST-1][RECHTS-1]->setzeRot();
01784
01785 break;
01786 }
01787
01788 case 2:{
01789 if( spurenListe_[NORD-1][LINKS-1] != 0 )
01790 spurenListe_[NORD-1][LINKS-1]->setzeGruen();
01791 if( spurenListe_[NORD-1][MITTE-1] != 0 )
01792 spurenListe_[NORD-1][MITTE-1]->setzeGruen();
01793 if( spurenListe_[NORD-1][RECHTS-1] != 0 )
01794 spurenListe_[NORD-1][RECHTS-1]->setzeGruen();
01795
01796 if( spurenListe_[SUED-1][LINKS-1] != 0 )
01797 spurenListe_[SUED-1][LINKS-1]->setzeGruen();
01798 if( spurenListe_[SUED-1][MITTE-1] != 0 )
01799 spurenListe_[SUED-1][MITTE-1]->setzeGruen();
01800 if( spurenListe_[SUED-1][RECHTS-1] != 0 )
01801 spurenListe_[SUED-1][RECHTS-1]->setzeGruen();
01802
01803 if( spurenListe_[OST-1][LINKS-1] != 0 )
01804 spurenListe_[OST-1][LINKS-1]->setzeGruen();
01805 if( spurenListe_[OST-1][MITTE-1] != 0 )
01806 spurenListe_[OST-1][MITTE-1]->setzeGruen();
01807 if( spurenListe_[OST-1][RECHTS-1] != 0 )
01808 spurenListe_[OST-1][RECHTS-1]->setzeGruen();
01809
01810 if( spurenListe_[WEST-1][LINKS-1] != 0 )
01811 spurenListe_[WEST-1][LINKS-1]->setzeGruen();
01812 if( spurenListe_[WEST-1][MITTE-1] != 0 )
01813 spurenListe_[WEST-1][MITTE-1]->setzeGruen();
01814 if( spurenListe_[WEST-1][RECHTS-1] != 0 )
01815 spurenListe_[WEST-1][RECHTS-1]->setzeGruen();
01816
01817 break;
01818 }
01819 }
01820 }
01821 }