qrailway 0.9
|
00001 #ifndef CSEKTION_H 00002 #define CSEKTION_H 00003 00004 #include "cConstants.h" 00005 #include <QGraphicsScene> 00006 #include <math.h> 00007 #include <qdatetime.h> 00008 #include <qfile.h> 00009 #include <qtextstream.h> 00010 #include <QSettings> 00011 #include "cKonnektor.h" 00012 00014 00015 class cSektion : public QObject, public QGraphicsLineItem 00016 { 00017 Q_OBJECT 00018 public: 00020 cSektion(int secidtemp,int connlinttemp,int connrinttemp); 00022 ~cSektion(void); 00023 00025 void cDebug(int prioritaet,const QString & meldung); 00026 00028 void setParameter(QString parametertmp) { 00029 parameter=parametertmp; 00030 if (parameter.find("hidden",0,FALSE)>=0) hidden=TRUE; else hidden=FALSE; 00031 }; 00033 void setKonnektorL(cKonnektor *cconnltemp); 00035 void setKonnektorR(cKonnektor *cconnrtemp); 00037 void setRegler(int Reglertemp); 00038 00040 void setTrain(int traintemp,int trainrichtungtemp=-1,int traintypetmp=-1,QString tooltip=""); 00042 void setReserviert(int trainwaitingtemp,int trainrichtungtemp=-1); 00044 void setRichtungGeschwindigkeit(int richtungtemp,double geschwindigkeittemp); 00045 00047 void adjustShape(void); 00049 void adjustrichtungspfeile(void); 00051 void updatePoints(void); 00053 int getL(void) { return connlint; }; 00055 int getR(void) { return connrint; }; 00057 int getid(void) { return secid; }; 00059 int getTrain(void) { return train; }; 00061 int getReserviert(void) { return trainwaiting; }; 00063 int getRegler(void) { return fahrregler; }; 00065 int getTrainRichtung(void) { return trainrichtung; }; 00067 void setL(int connlinttmp) { connlint=connlinttmp; }; 00069 void setR(int connrinttmp) { connrint=connrinttmp; }; 00071 void setKurzschluss(int kurzschlusstmp) { 00072 if (kurzschluss!=kurzschlusstmp) { 00073 kurzschluss=kurzschlusstmp; 00074 adjustShape(); 00075 } 00076 }; 00078 void setLokStillstand(bool stillstandtmp) { 00079 if (stillstand!=stillstandtmp) { 00080 stillstand=stillstandtmp; 00081 adjustShape(); 00082 } 00083 }; 00085 void save(void); 00086 00088 // void advance(int phase); 00089 00091 int type() const { return (signalssectionsStart+secid); }; 00092 00094 void setBeschreibung(const QString & beschreibungtemp); 00096 QString getBeschreibung(void) { return beschreibung; }; 00098 double getLaenge(void) { return wirklicheLaenge; }; 00100 void setLaenge(double wirklicheLaengeTmp) { wirklicheLaenge=wirklicheLaengeTmp; }; 00102 void setDisplayInfo(bool displayInfo) { 00103 if (displayInfo) { 00104 TextOben->show(); 00105 TextUnten->show(); 00106 } else { 00107 TextOben->hide(); 00108 TextUnten->hide(); 00109 } 00110 }; 00111 00113 cKonnektor* DEBUGgetConnL(void) { return(cconnl); }; 00115 cKonnektor* DEBUGgetConnR(void) { return(cconnr); }; 00116 00118 bool an; 00119 void forceSignals(void) { 00120 emit SignalBesetzt(trainrichtung,(train>0)); 00121 emit SignalBelegtOderBesetzt(trainrichtung,(trainwaiting>0)||(train>0)); 00122 }; 00123 signals: 00125 void SignalBesetzt(int,int); 00127 void SignalBelegtOderBesetzt(int,int); 00128 private: 00130 int fahrregler; 00132 int secid; 00134 cKonnektor *cconnl; 00136 cKonnektor *cconnr; 00138 double wirklicheLaenge; 00140 // QGraphicsScene *MeinCanvas; 00142 QGraphicsLineItem *LinieDrueber; 00144 QGraphicsPolygonItem *pfeillinks; 00146 QGraphicsPolygonItem *pfeilrechts; 00148 double laenge; 00150 double dirx; 00152 double diry; 00154 int richtung; 00156 double geschwindigkeit; 00158 // int anischritte; 00160 int connlint,connrint; 00162 int train,trainwaiting,trainrichtung,traintype; 00164 QString beschreibung; 00166 QGraphicsTextItem *TextOben; 00168 QGraphicsTextItem *TextUnten; 00170 int kurzschluss; 00172 QString parameter; 00174 bool hidden; 00176 bool stillstand; 00178 QColor farbeFehler,farbeNormalOben,farbeReserviertOben,farbeBeschriftung,farbeFallback,farbeZug1,farbeZugAus1,farbeZug2,farbeZugAus2,farbeZug3,farbeZugAus3,farbeReserviert,farbeReserviertAus,farbeNormal,farbeNormalAus,farbeRichtungUngewaehlt,farbePfeil,farbePfeilAus; 00179 double groesseBeschriftung; 00180 double groesseGleisOben,groesseNormal,groesseNormalAus,groesseZug,groesseZugAus,groesseReserviert,groesseReserviertAus,groesseRichtungUngewaehlt,groesseFehler,groesseFallback,groessePfeil,groessePfeilAus; 00182 QColor myPfeilLinks; 00183 QColor myPfeilRechts; 00184 QPen myPen; 00185 QPen myPenDrueber; 00186 bool myVisibleDrueber; 00187 double myZ; 00188 bool myPfeilVisibleLinks; 00189 bool myPfeilVisibleRechts; 00190 bool myVisible; 00191 }; 00192 00193 #endif // CSEKTION_H