GUILaneWrapper::Colorer Class Reference

#include <GUILaneWrapper.h>

Inheritance diagram for GUILaneWrapper::Colorer:

GUIColorer< GUILaneWrapper >

Detailed Description

Definition at line 239 of file GUILaneWrapper.h.


Public Member Functions

 Colorer ()
void fill (FXComboBox &cb)
 Fills the given combobox with the names of available colorings.
const size_t getActive () const
SUMOReal getColorValue (const GUILaneWrapper &lane) const
 Sets the color using a value from the given instance of T.
GUIColorSchemegetScheme ()
GUIColorSchemegetSchemeByName (std::string name)
bool operator== (const GUIColorer &c) const
void save (OutputDevice &dev) const
void setActive (size_t scheme)
virtual bool setFunctionalColor (const GUILaneWrapper &i) const
 Sets the color using a function call for the given instance of T.
void setGlColor (const GUILaneWrapper &i) const
 Sets the color using a value from the given instance of T.

Protected Attributes

size_t myActiveScheme
std::vector< GUIColorSchememySchemes

Constructor & Destructor Documentation

GUILaneWrapper::Colorer::Colorer (  ) 

Definition at line 662 of file GUILaneWrapper.cpp.

References GUIColorer< GUILaneWrapper >::mySchemes, and SUMOReal.

00662                                {
00663     mySchemes.push_back(GUIColorScheme("uniform", RGBColor(0,0,0), "", true));
00664     mySchemes.push_back(GUIColorScheme("by selection (lane-/streetwise)", RGBColor(0.7f, 0.7f, 0.7f), "unselected", true));
00665     mySchemes.back().addColor(RGBColor(0, .4f, .8f), 1, "selected");
00666     mySchemes.push_back(GUIColorScheme("by vclass", RGBColor(0,0,0), "all", true));
00667     mySchemes.back().addColor(RGBColor(0, .1f, .5f), 1, "public");
00668     // ... traffic states ...
00669     mySchemes.push_back(GUIColorScheme("by allowed speed (lanewise)", RGBColor(1,0,0)));
00670     mySchemes.back().addColor(RGBColor(0, 0, 1), (SUMOReal)(150.0/3.6));
00671     mySchemes.push_back(GUIColorScheme("by current occupancy (lanewise)", RGBColor(0,0,1)));
00672     mySchemes.back().addColor(RGBColor(1, 0, 0), (SUMOReal)0.95);
00673     mySchemes.push_back(GUIColorScheme("by first vehicle waiting time (lanewise)", RGBColor(0,1,0)));
00674     mySchemes.back().addColor(RGBColor(1,0,0), (SUMOReal)200);
00675     mySchemes.push_back(GUIColorScheme("by lane number (streetwise)", RGBColor(1,0,0)));
00676     mySchemes.back().addColor(RGBColor(0,0,1), (SUMOReal)5);
00677     // ... emissions ...
00678     mySchemes.push_back(GUIColorScheme("by CO2 emissions (HBEFA)", RGBColor(0,1,0)));
00679     mySchemes.back().addColor(RGBColor(1,0,0), (SUMOReal)(10./7.5/5.));
00680     mySchemes.push_back(GUIColorScheme("by CO emissions (HBEFA)", RGBColor(0,1,0)));
00681     mySchemes.back().addColor(RGBColor(1,0,0), (SUMOReal)(0.05/7.5/2.));
00682     mySchemes.push_back(GUIColorScheme("by PMx emissions (HBEFA)", RGBColor(0,1,0)));
00683     mySchemes.back().addColor(RGBColor(1,0,0), (SUMOReal)(.005/7.5/5.));
00684     mySchemes.push_back(GUIColorScheme("by NOx emissions (HBEFA)", RGBColor(0,1,0)));
00685     mySchemes.back().addColor(RGBColor(1,0,0), (SUMOReal)(.125/7.5/5.));
00686     mySchemes.push_back(GUIColorScheme("by HC emissions (HBEFA)", RGBColor(0,1,0)));
00687     mySchemes.back().addColor(RGBColor(1,0,0), (SUMOReal)(.02/7.5/4.));
00688     mySchemes.push_back(GUIColorScheme("by fuel consumption (HBEFA)", RGBColor(0,1,0)));
00689     mySchemes.back().addColor(RGBColor(1,0,0), (SUMOReal)(.005/7.5*100.));
00690     mySchemes.push_back(GUIColorScheme("by noise emissions (Harmonoise)", RGBColor(0,1,0)));
00691     mySchemes.back().addColor(RGBColor(1,0,0), (SUMOReal)100);
00692 }


Member Function Documentation

void GUIColorer< GUILaneWrapper >::fill ( FXComboBox &  cb  )  [inline, inherited]

Fills the given combobox with the names of available colorings.

Definition at line 77 of file GUIColorer.h.

00077                               {
00078         typename std::vector<GUIColorScheme>::iterator i;
00079         for (i=mySchemes.begin(); i!=mySchemes.end(); ++i) {
00080             cb.appendItem((*i).getName().c_str());
00081         }
00082         cb.setCurrentItem((FXint)myActiveScheme);
00083     }

const size_t GUIColorer< GUILaneWrapper >::getActive (  )  const [inline, inherited]

Definition at line 91 of file GUIColorer.h.

00091                                    {
00092         return myActiveScheme;
00093     }

SUMOReal GUILaneWrapper::Colorer::getColorValue ( const GUILaneWrapper i  )  const [virtual]

Sets the color using a value from the given instance of T.

Implements GUIColorer< GUILaneWrapper >.

Definition at line 696 of file GUILaneWrapper.cpp.

References GUILaneWrapper::firstWaitingTime(), MSLane::getAllowedClasses(), GUILaneWrapper::getEdgeLaneNumber(), GUIGlObject::getGlID(), MSLane::getHarmonoise_NoiseEmissions(), GUILaneWrapper::getLane(), MSLane::getMaxSpeed(), GUILaneWrapper::getNormedHBEFA_CO2Emissions(), GUILaneWrapper::getNormedHBEFA_COEmissions(), GUILaneWrapper::getNormedHBEFA_FuelConsumption(), GUILaneWrapper::getNormedHBEFA_HCEmissions(), GUILaneWrapper::getNormedHBEFA_NOxEmissions(), GUILaneWrapper::getNormedHBEFA_PMxEmissions(), MSLane::getNotAllowedClasses(), MSLane::getOccupancy(), GUILaneWrapper::getType(), gSelected, GUISelectedStorage::isSelected(), GUIColorer< GUILaneWrapper >::myActiveScheme, GUILaneWrapper::myLane, and SVC_PASSENGER.

00696                                                                      {
00697     switch (myActiveScheme) {
00698     case 1:
00699         return gSelected.isSelected(lane.getType(), lane.getGlID());
00700     case 2: {
00701         const std::vector<SUMOVehicleClass> &allowed = lane.myLane.getAllowedClasses();
00702         const std::vector<SUMOVehicleClass> &disallowed = lane.myLane.getNotAllowedClasses();
00703         if ((allowed.size()==0 || find(allowed.begin(), allowed.end(), SVC_PASSENGER)!=allowed.end()) && find(disallowed.begin(), disallowed.end(), SVC_PASSENGER)==disallowed.end()) {
00704             return 0;
00705         } else {
00706             return 1;
00707         }
00708     }
00709     case 3:
00710         return lane.getLane().getMaxSpeed();
00711     case 4:
00712         return lane.getLane().getOccupancy();
00713     case 5:
00714         return lane.firstWaitingTime();
00715     case 6:
00716         return lane.getEdgeLaneNumber();
00717     case 7:
00718         return lane.getNormedHBEFA_CO2Emissions();
00719     case 8:
00720         return lane.getNormedHBEFA_COEmissions();
00721     case 9:
00722         return lane.getNormedHBEFA_PMxEmissions();
00723     case 10:
00724         return lane.getNormedHBEFA_NOxEmissions();
00725     case 11:
00726         return lane.getNormedHBEFA_HCEmissions();
00727     case 12:
00728         return lane.getNormedHBEFA_FuelConsumption();
00729     case 13:
00730         return lane.getLane().getHarmonoise_NoiseEmissions();
00731     }
00732     return 0;
00733 }

GUIColorScheme& GUIColorer< GUILaneWrapper >::getScheme (  )  [inline, inherited]

Definition at line 95 of file GUIColorer.h.

00095                                 {
00096         return mySchemes[myActiveScheme];
00097     }

GUIColorScheme* GUIColorer< GUILaneWrapper >::getSchemeByName ( std::string  name  )  [inline, inherited]

Definition at line 99 of file GUIColorer.h.

00099                                                     {
00100         typename std::vector<GUIColorScheme>::iterator i;
00101         for (i=mySchemes.begin(); i!=mySchemes.end(); ++i) {
00102             if ((*i).getName() == name) {
00103                 return &(*i);
00104             }
00105         }
00106         return 0;
00107     }

bool GUIColorer< GUILaneWrapper >::operator== ( const GUIColorer< GUILaneWrapper > &  c  )  const [inline, inherited]

Definition at line 116 of file GUIColorer.h.

00116                                                {
00117         return myActiveScheme == c.myActiveScheme && mySchemes == c.mySchemes;
00118     }

void GUIColorer< GUILaneWrapper >::save ( OutputDevice dev  )  const [inline, inherited]

Definition at line 109 of file GUIColorer.h.

00109                                        {
00110         typename std::vector<GUIColorScheme>::const_iterator i = mySchemes.begin();
00111         for (; i!=mySchemes.end(); ++i) {
00112             i->save(dev);
00113         }
00114     }

void GUIColorer< GUILaneWrapper >::setActive ( size_t  scheme  )  [inline, inherited]

Definition at line 85 of file GUIColorer.h.

00085                                   {
00086         if (scheme < mySchemes.size()) {
00087             myActiveScheme = scheme;
00088         }
00089     }

virtual bool GUIColorer< GUILaneWrapper >::setFunctionalColor ( const GUILaneWrapper i  )  const [inline, virtual, inherited]

Sets the color using a function call for the given instance of T.

Definition at line 64 of file GUIColorer.h.

00064                                                       {
00065         return false;
00066     }

void GUIColorer< GUILaneWrapper >::setGlColor ( const GUILaneWrapper i  )  const [inline, inherited]

Sets the color using a value from the given instance of T.

Definition at line 69 of file GUIColorer.h.

00069                                       {
00070         if (!setFunctionalColor(i)) {
00071             const RGBColor& c = mySchemes[myActiveScheme].getColor(getColorValue(i));
00072             glColor3d(c.red(), c.green(), c.blue());
00073         }
00074     }


Field Documentation

size_t GUIColorer< GUILaneWrapper >::myActiveScheme [protected, inherited]

Definition at line 121 of file GUIColorer.h.

Referenced by getColorValue().

std::vector<GUIColorScheme> GUIColorer< GUILaneWrapper >::mySchemes [protected, inherited]

Definition at line 122 of file GUIColorer.h.

Referenced by Colorer().


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

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