00001 00006 #ifndef __SPUR_ 00007 #define __SPUR_ 00008 00009 #include <iostream> 00010 using namespace std; 00011 00012 class Fahrzeug; 00013 #include "Fahrzeug.h" 00014 #include "Koordinaten.h" 00015 00020 class Spur 00021 { 00022 public: 00023 Spur( ); 00024 Spur(long int id, double laenge, int maximalGeschwindigkeit); 00025 int gibAnzahlFahrzeuge( ); 00026 int gibAnzahlAbgefahrenerFahrzeuge( int typ = 0 ); 00027 Fahrzeug *gibVorgaenger(Fahrzeug *fahrzeug); 00028 Fahrzeug *gibLetztes(); 00029 double gibLaenge(); 00030 long int gibId(); 00031 void setzeNaechstesVerbindungselement(Spur *spur, int richtung, double wahrscheinlichkeit); 00032 double gibWahrscheinlichkeit(int richtung); 00033 void anmelden(Fahrzeug *fahrzeug); 00034 void abmelden(Fahrzeug *fahrzeug); 00035 Spur *gibNaechsteSpur(int richtung); 00036 double gibMaximaleGeschwindigkeit(); 00037 void clear(); 00038 void setzeGruen(); 00039 void setzeGelb(); 00040 void setzeRot(); 00041 void setzeSackgasse(); 00042 bool istGruen(); 00043 bool istGelb(); 00044 bool istRot(); 00045 bool istSackgasse(); 00046 int gibEndzustand( ); 00047 Koordinaten gibKoordinaten(); 00048 void setzeKoordinaten( Koordinaten koordinaten ); 00049 int gibAusrichtung(); 00050 void setzeAusrichtung( int ausrichtung ); 00051 int gibRichtung(); 00052 void setzeRichtung( int richtung ); 00053 int gibAbbiegerichtung(); 00054 void setzeAbbiegerichtung( int abbiegerichtung ); 00055 long int gibNachfolgerId(int richtung); 00056 void setzeNaechstesVerbindungselement(int richtung, long int id, double wahrscheinlichkeit); 00057 00058 friend ostream &operator<< ( ostream &os, Spur *spur ); 00059 private: 00060 long int id_; 00061 double laenge_; 00062 int maximalGeschwindigkeit_; 00063 int endzustand_; 00064 Spur *spur_[3]; 00065 long int nachfolger_[3]; 00066 double wahrscheinlichkeit_[3]; 00067 Fahrzeug *fahrzeugListe_[1000]; 00068 int anzahlFahrzeuge_; 00069 Koordinaten koordinaten_; 00070 int ausrichtung_; 00071 int richtung_; 00072 int abbiegerichtung_; 00073 int statistik_[4]; 00074 00075 void setzeEndzustand(int zustand); 00076 00077 }; 00078 00079 #endif