#include <GUIVehicle.h>

Definition at line 186 of file GUIVehicle.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 GUIVehicle &vehicle) const |
| Sets the color using a value from the given instance of T. | |
| GUIColorScheme & | getScheme () |
| GUIColorScheme * | getSchemeByName (std::string name) |
| bool | operator== (const GUIColorer &c) const |
| void | save (OutputDevice &dev) const |
| void | setActive (size_t scheme) |
| bool | setFunctionalColor (const GUIVehicle &vehicle) const |
| Sets the color using a function call for the given instance of T. | |
| void | setGlColor (const GUIVehicle &i) const |
| Sets the color using a value from the given instance of T. | |
Protected Attributes | |
| size_t | myActiveScheme |
| std::vector< GUIColorScheme > | mySchemes |
| GUIVehicle::Colorer::Colorer | ( | ) |
Definition at line 964 of file GUIVehicle.cpp.
References GUIColorer< GUIVehicle >::mySchemes, and SUMOReal.
00964 { 00965 mySchemes.push_back(GUIColorScheme("uniform", RGBColor(1,1,0), "", true)); 00966 mySchemes.push_back(GUIColorScheme("given/assigned vehicle color", RGBColor(1,1,0), "", true)); 00967 mySchemes.push_back(GUIColorScheme("given/assigned type color", RGBColor(1,1,0), "", true)); 00968 mySchemes.push_back(GUIColorScheme("given/assigned route color", RGBColor(1,1,0), "", true)); 00969 mySchemes.push_back(GUIColorScheme("depart position as HSV", RGBColor(1,1,0), "", true)); 00970 mySchemes.push_back(GUIColorScheme("arrival position as HSV", RGBColor(1,1,0), "", true)); 00971 mySchemes.push_back(GUIColorScheme("direction/distance as HSV", RGBColor(1,1,0), "", true)); 00972 mySchemes.push_back(GUIColorScheme("by speed", RGBColor(1,0,0))); 00973 mySchemes.back().addColor(RGBColor(0,0,1), (SUMOReal)(150.0/3.6)); 00974 mySchemes.push_back(GUIColorScheme("by waiting time", RGBColor(0,0,1))); 00975 mySchemes.back().addColor(RGBColor(1,0,0), (SUMOReal)(5*60)); 00976 mySchemes.push_back(GUIColorScheme("by time since last lanechange", RGBColor(1,1,1))); 00977 mySchemes.back().addColor(RGBColor(.5,.5,.5), (SUMOReal)(5*60)); 00978 mySchemes.push_back(GUIColorScheme("by max speed", RGBColor(1,0,0))); 00979 mySchemes.back().addColor(RGBColor(0,0,1), (SUMOReal)(150.0/3.6)); 00980 // ... emissions ... 00981 mySchemes.push_back(GUIColorScheme("by CO2 emissions (HBEFA)", RGBColor(0,1,0))); 00982 mySchemes.back().addColor(RGBColor(1,0,0), (SUMOReal)5.); 00983 mySchemes.push_back(GUIColorScheme("by CO emissions (HBEFA)", RGBColor(0,1,0))); 00984 mySchemes.back().addColor(RGBColor(1,0,0), (SUMOReal)0.05); 00985 mySchemes.push_back(GUIColorScheme("by PMx emissions (HBEFA)", RGBColor(0,1,0))); 00986 mySchemes.back().addColor(RGBColor(1,0,0), (SUMOReal).005); 00987 mySchemes.push_back(GUIColorScheme("by NOx emissions (HBEFA)", RGBColor(0,1,0))); 00988 mySchemes.back().addColor(RGBColor(1,0,0), (SUMOReal).125); 00989 mySchemes.push_back(GUIColorScheme("by HC emissions (HBEFA)", RGBColor(0,1,0))); 00990 mySchemes.back().addColor(RGBColor(1,0,0), (SUMOReal).02); 00991 mySchemes.push_back(GUIColorScheme("by fuel consumption (HBEFA)", RGBColor(0,1,0))); 00992 mySchemes.back().addColor(RGBColor(1,0,0), (SUMOReal).005); 00993 mySchemes.push_back(GUIColorScheme("by noise emissions (Harmonoise)", RGBColor(0,1,0))); 00994 mySchemes.back().addColor(RGBColor(1,0,0), (SUMOReal)100.); 00995 mySchemes.push_back(GUIColorScheme("by reroute number", RGBColor(1,0,0))); 00996 mySchemes.back().addColor(RGBColor(1,1,0), (SUMOReal)1.); 00997 mySchemes.back().addColor(RGBColor(1,1,1), (SUMOReal)10.); 00998 }
| void GUIColorer< GUIVehicle >::fill | ( | FXComboBox & | cb | ) | [inline, inherited] |
Fills the given combobox with the names of available colorings.
Definition at line 77 of file GUIColorer.h.
References GUIColorer< T >::myActiveScheme, and GUIColorer< T >::mySchemes.
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< GUIVehicle >::getActive | ( | ) | const [inline, inherited] |
Definition at line 91 of file GUIColorer.h.
References GUIColorer< T >::myActiveScheme.
00091 { 00092 return myActiveScheme; 00093 }
| SUMOReal GUIVehicle::Colorer::getColorValue | ( | const GUIVehicle & | i | ) | const [virtual] |
Sets the color using a value from the given instance of T.
Implements GUIColorer< GUIVehicle >.
Definition at line 1051 of file GUIVehicle.cpp.
References MSCORN::CORN_VEH_NUMBERROUTE, MSVehicle::getCORNIntValue(), MSVehicle::getHarmonoise_NoiseEmissions(), MSVehicle::getHBEFA_CO2Emissions(), MSVehicle::getHBEFA_COEmissions(), MSVehicle::getHBEFA_FuelConsumption(), MSVehicle::getHBEFA_HCEmissions(), MSVehicle::getHBEFA_NOxEmissions(), MSVehicle::getHBEFA_PMxEmissions(), GUIVehicle::getLastLaneChangeOffset(), MSVehicle::getMaxSpeed(), MSVehicle::getSpeed(), MSVehicle::getWaitingSeconds(), MSVehicle::hasCORNIntValue(), and GUIColorer< GUIVehicle >::myActiveScheme.
01051 { 01052 switch (myActiveScheme) { 01053 case 7: 01054 return vehicle.getSpeed(); 01055 case 8: 01056 return vehicle.getWaitingSeconds(); 01057 case 9: 01058 return vehicle.getLastLaneChangeOffset(); 01059 case 10: 01060 return vehicle.getMaxSpeed(); 01061 case 11: 01062 return vehicle.getHBEFA_CO2Emissions(); 01063 case 12: 01064 return vehicle.getHBEFA_COEmissions(); 01065 case 13: 01066 return vehicle.getHBEFA_PMxEmissions(); 01067 case 14: 01068 return vehicle.getHBEFA_NOxEmissions(); 01069 case 15: 01070 return vehicle.getHBEFA_HCEmissions(); 01071 case 16: 01072 return vehicle.getHBEFA_FuelConsumption(); 01073 case 17: 01074 return vehicle.getHarmonoise_NoiseEmissions(); 01075 case 18: 01076 if (!vehicle.hasCORNIntValue(MSCORN::CORN_VEH_NUMBERROUTE)) { 01077 return -1; 01078 } 01079 return vehicle.getCORNIntValue(MSCORN::CORN_VEH_NUMBERROUTE); 01080 } 01081 return 0; 01082 }
| GUIColorScheme& GUIColorer< GUIVehicle >::getScheme | ( | ) | [inline, inherited] |
Definition at line 95 of file GUIColorer.h.
References GUIColorer< T >::myActiveScheme, and GUIColorer< T >::mySchemes.
00095 { 00096 return mySchemes[myActiveScheme]; 00097 }
| GUIColorScheme* GUIColorer< GUIVehicle >::getSchemeByName | ( | std::string | name | ) | [inline, inherited] |
Definition at line 99 of file GUIColorer.h.
References GUIColorer< T >::mySchemes.
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< GUIVehicle >::operator== | ( | const GUIColorer< GUIVehicle > & | c | ) | const [inline, inherited] |
Definition at line 116 of file GUIColorer.h.
References GUIColorer< T >::myActiveScheme, and GUIColorer< T >::mySchemes.
00116 { 00117 return myActiveScheme == c.myActiveScheme && mySchemes == c.mySchemes; 00118 }
| void GUIColorer< GUIVehicle >::save | ( | OutputDevice & | dev | ) | const [inline, inherited] |
Definition at line 109 of file GUIColorer.h.
References GUIColorer< T >::mySchemes.
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< GUIVehicle >::setActive | ( | size_t | scheme | ) | [inline, inherited] |
Definition at line 85 of file GUIColorer.h.
References GUIColorer< T >::myActiveScheme, and GUIColorer< T >::mySchemes.
00085 { 00086 if (scheme < mySchemes.size()) { 00087 myActiveScheme = scheme; 00088 } 00089 }
| bool GUIVehicle::Colorer::setFunctionalColor | ( | const GUIVehicle & | i | ) | const [virtual] |
Sets the color using a function call for the given instance of T.
Reimplemented from GUIColorer< GUIVehicle >.
Definition at line 1002 of file GUIVehicle.cpp.
References RGBColor::blue(), Position2D::distanceTo(), RGBColor::fromHSV(), Boundary::getCenter(), MSRoute::getEdges(), MSNet::getInstance(), MSVehicle::getRoute(), RGBColor::green(), GUIColorer< GUIVehicle >::myActiveScheme, PI, RGBColor::red(), GUIVehicle::setOwnDefinedColor(), GUIVehicle::setOwnRouteColor(), GUIVehicle::setOwnTypeColor(), SUMOReal, Position2D::x(), Boundary::xmax(), Boundary::xmin(), Position2D::y(), Boundary::ymax(), and Boundary::ymin().
01002 { 01003 switch (myActiveScheme) { 01004 case 1: 01005 vehicle.setOwnDefinedColor(); 01006 return true; 01007 case 2: 01008 vehicle.setOwnTypeColor(); 01009 return true; 01010 case 3: 01011 vehicle.setOwnRouteColor(); 01012 return true; 01013 case 4: { 01014 Position2D p = vehicle.getRoute().getEdges()[0]->getLanes()[0]->getShape()[0]; 01015 const Boundary &b = ((GUINet*) MSNet::getInstance())->getBoundary(); 01016 Position2D center = b.getCenter(); 01017 SUMOReal hue = 180. + atan2(center.x()-p.x(), center.y()-p.y()) * 180. / PI; 01018 SUMOReal sat = p.distanceTo(center) / center.distanceTo(Position2D(b.xmin(), b.ymin())); 01019 RGBColor c = RGBColor::fromHSV(hue, sat, 1.); 01020 glColor3d(c.red(), c.green(), c.blue()); 01021 return true; 01022 } 01023 case 5: { 01024 Position2D p = vehicle.getRoute().getEdges().back()->getLanes()[0]->getShape()[-1]; 01025 const Boundary &b = ((GUINet*) MSNet::getInstance())->getBoundary(); 01026 Position2D center = b.getCenter(); 01027 SUMOReal hue = 180. + atan2(center.x()-p.x(), center.y()-p.y()) * 180. / PI; 01028 SUMOReal sat = p.distanceTo(center) / center.distanceTo(Position2D(b.xmin(), b.ymin())); 01029 RGBColor c = RGBColor::fromHSV(hue, sat, 1.); 01030 glColor3d(c.red(), c.green(), c.blue()); 01031 return true; 01032 } 01033 case 6: { 01034 Position2D pb = vehicle.getRoute().getEdges()[0]->getLanes()[0]->getShape()[0]; 01035 Position2D pe = vehicle.getRoute().getEdges().back()->getLanes()[0]->getShape()[-1]; 01036 const Boundary &b = ((GUINet*) MSNet::getInstance())->getBoundary(); 01037 SUMOReal hue = 180. + atan2(pb.x()-pe.x(), pb.y()-pe.y()) * 180. / PI; 01038 Position2D minp(b.xmin(), b.ymin()); 01039 Position2D maxp(b.xmax(), b.ymax()); 01040 SUMOReal sat = pb.distanceTo(pe) / minp.distanceTo(maxp); 01041 RGBColor c = RGBColor::fromHSV(hue, sat, 1.); 01042 glColor3d(c.red(), c.green(), c.blue()); 01043 return true; 01044 } 01045 } 01046 return false; 01047 }
| void GUIColorer< GUIVehicle >::setGlColor | ( | const GUIVehicle & | i | ) | const [inline, inherited] |
Sets the color using a value from the given instance of T.
Definition at line 69 of file GUIColorer.h.
References RGBColor::blue(), GUIColorer< T >::getColorValue(), RGBColor::green(), GUIColorer< T >::myActiveScheme, GUIColorer< T >::mySchemes, RGBColor::red(), and GUIColorer< T >::setFunctionalColor().
00069 { 00070 if (!setFunctionalColor(i)) { 00071 const RGBColor& c = mySchemes[myActiveScheme].getColor(getColorValue(i)); 00072 glColor3d(c.red(), c.green(), c.blue()); 00073 } 00074 }
size_t GUIColorer< GUIVehicle >::myActiveScheme [protected, inherited] |
Definition at line 121 of file GUIColorer.h.
Referenced by getColorValue(), and setFunctionalColor().
std::vector<GUIColorScheme> GUIColorer< GUIVehicle >::mySchemes [protected, inherited] |
1.5.6