qrailway 0.9

cSektion.h

gehe zur Dokumentation dieser Datei
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