NIVissimTL::NIVissimTLSignalGroup Class Reference

#include <NIVissimTL.h>


Detailed Description

Definition at line 110 of file NIVissimTL.h.


Public Member Functions

bool addTo (NBLoadedTLDef *node) const
 NIVissimTLSignalGroup (int lsaid, int id, const std::string &name, bool isGreenBegin, const DoubleVector &times, SUMOTime tredyellow, SUMOTime tyellow)
 ~NIVissimTLSignalGroup ()

Static Public Member Functions

static void clearDict ()
static NIVissimTLSignalGroupdictionary (int lsaid, int id)
static bool dictionary (int lsaid, int id, NIVissimTLSignalGroup *o)
static SGroupDictType getGroupsFor (int tlid)

Private Attributes

bool myFirstIsRed
int myID
int myLSA
std::string myName
DoubleVector myTimes
SUMOTime myTRedYellow
SUMOTime myTYellow

Static Private Attributes

static GroupDictType myDict

Constructor & Destructor Documentation

NIVissimTL::NIVissimTLSignalGroup::NIVissimTLSignalGroup ( int  lsaid,
int  id,
const std::string &  name,
bool  isGreenBegin,
const DoubleVector times,
SUMOTime  tredyellow,
SUMOTime  tyellow 
)

Definition at line 212 of file NIVissimTL.cpp.

00217         : myLSA(lsaid), myID(id), myName(name), myTimes(times),
00218         myFirstIsRed(!isGreenBegin), myTRedYellow(tredyellow),
00219         myTYellow(tyellow) {}

NIVissimTL::NIVissimTLSignalGroup::~NIVissimTLSignalGroup (  ) 

Definition at line 222 of file NIVissimTL.cpp.

00222 {}


Member Function Documentation

bool NIVissimTL::NIVissimTLSignalGroup::addTo ( NBLoadedTLDef node  )  const

Definition at line 285 of file NIVissimTL.cpp.

References NBLoadedTLDef::addSignalGroup(), NBLoadedTLDef::addSignalGroupPhaseBegin(), myFirstIsRed, myID, myTimes, myTRedYellow, myTYellow, NBLoadedTLDef::setSignalYellowTimes(), NBTrafficLightDefinition::TLCOLOR_GREEN, and NBTrafficLightDefinition::TLCOLOR_RED.

00285                                                               {
00286     // get the color at the begin
00287     NBTrafficLightDefinition::TLColor color = myFirstIsRed
00288             ? NBTrafficLightDefinition::TLCOLOR_RED : NBTrafficLightDefinition::TLCOLOR_GREEN;
00289     std::string id = toString<int>(myID);
00290     tl->addSignalGroup(id); // !!! myTimes als SUMOTime
00291     for (DoubleVector::const_iterator i=myTimes.begin(); i!=myTimes.end(); i++) {
00292         tl->addSignalGroupPhaseBegin(id, (SUMOTime) *i, color);
00293         color = color==NBTrafficLightDefinition::TLCOLOR_RED
00294                 ? NBTrafficLightDefinition::TLCOLOR_GREEN : NBTrafficLightDefinition::TLCOLOR_RED;
00295     }
00296     if (myTimes.size()==0) {
00297         if (myFirstIsRed) {
00298             tl->addSignalGroupPhaseBegin(id, 0, NBTrafficLightDefinition::TLCOLOR_RED);
00299         } else {
00300             tl->addSignalGroupPhaseBegin(id, 0, NBTrafficLightDefinition::TLCOLOR_GREEN);
00301         }
00302     }
00303     tl->setSignalYellowTimes(id, myTRedYellow, myTYellow);
00304     return true;
00305 }

void NIVissimTL::NIVissimTLSignalGroup::clearDict (  )  [static]

Definition at line 264 of file NIVissimTL.cpp.

References myDict.

Referenced by NIImporter_Vissim::~NIImporter_Vissim().

00264                                            {
00265     for (GroupDictType::iterator i=myDict.begin(); i!=myDict.end(); i++) {
00266         for (SGroupDictType::iterator j=(*i).second.begin(); j!=(*i).second.end(); j++) {
00267             delete(*j).second;
00268         }
00269     }
00270     myDict.clear();
00271 }

NIVissimTL::NIVissimTLSignalGroup * NIVissimTL::NIVissimTLSignalGroup::dictionary ( int  lsaid,
int  id 
) [static]

Definition at line 251 of file NIVissimTL.cpp.

References myDict.

00251                                                              {
00252     GroupDictType::iterator i = myDict.find(lsaid);
00253     if (i==myDict.end()) {
00254         return 0;
00255     }
00256     SGroupDictType::iterator j = (*i).second.find(id);
00257     if (j==(*i).second.end()) {
00258         return 0;
00259     }
00260     return (*j).second;
00261 }

bool NIVissimTL::NIVissimTLSignalGroup::dictionary ( int  lsaid,
int  id,
NIVissimTL::NIVissimTLSignalGroup o 
) [static]

Definition at line 226 of file NIVissimTL.cpp.

References myDict.

Referenced by NIVissimSingleTypeParser_Signalgruppendefinition::parseFixedTime().

00227                                             {
00228     GroupDictType::iterator i = myDict.find(lsaid);
00229     if (i==myDict.end()) {
00230         myDict[lsaid] = SGroupDictType();
00231         i = myDict.find(lsaid);
00232     }
00233     SGroupDictType::iterator j = (*i).second.find(id);
00234     if (j==(*i).second.end()) {
00235         myDict[lsaid][id] = o;
00236         return true;
00237     }
00238     return false;
00239     /*
00240         GroupDictType::iterator i=myDict.find(id);
00241         if(i==myDict.end()) {
00242             myDict[id] = o;
00243             return true;
00244         }
00245         return false;
00246         */
00247 }

NIVissimTL::SGroupDictType NIVissimTL::NIVissimTLSignalGroup::getGroupsFor ( int  tlid  )  [static]

Definition at line 275 of file NIVissimTL.cpp.

References myDict.

Referenced by NIVissimTL::dict_SetSignals().

00275                                                       {
00276     GroupDictType::iterator i = myDict.find(tlid);
00277     if (i==myDict.end()) {
00278         return SGroupDictType();
00279     }
00280     return (*i).second;
00281 }


Field Documentation

Definition at line 130 of file NIVissimTL.h.

Referenced by clearDict(), dictionary(), and getGroupsFor().

Definition at line 128 of file NIVissimTL.h.

Referenced by addTo().

Definition at line 125 of file NIVissimTL.h.

Referenced by addTo().

Definition at line 124 of file NIVissimTL.h.

Definition at line 126 of file NIVissimTL.h.

Definition at line 127 of file NIVissimTL.h.

Referenced by addTo().

Definition at line 129 of file NIVissimTL.h.

Referenced by addTo().

Definition at line 129 of file NIVissimTL.h.

Referenced by addTo().


The documentation for this class was generated from the following files:

Generated on Wed May 5 00:06:56 2010 for Sumo - Simulation of Urban MObility by  doxygen 1.5.6