GUIVisualizationSettings.cpp

Go to the documentation of this file.
00001 /****************************************************************************/
00007 // Stores the information about how to visualize structures
00008 /****************************************************************************/
00009 // SUMO, Simulation of Urban MObility; see http://sumo.sourceforge.net/
00010 // Copyright 2001-2010 DLR (http://www.dlr.de/) and contributors
00011 /****************************************************************************/
00012 //
00013 //   This program is free software; you can redistribute it and/or modify
00014 //   it under the terms of the GNU General Public License as published by
00015 //   the Free Software Foundation; either version 2 of the License, or
00016 //   (at your option) any later version.
00017 //
00018 /****************************************************************************/
00019 
00020 
00021 // ===========================================================================
00022 // included modules
00023 // ===========================================================================
00024 #ifdef _MSC_VER
00025 #include <windows_config.h>
00026 #else
00027 #include <config.h>
00028 #endif
00029 
00030 #include <map>
00031 #include <vector>
00032 #include <guisim/GUILaneWrapper.h>
00033 #include <guisim/GUIEdge.h>
00034 #include <guisim/GUIVehicle.h>
00035 #include "GUIVisualizationSettings.h"
00036 
00037 #ifdef CHECK_MEMORY_LEAKS
00038 #include <foreign/nvwa/debug_new.h>
00039 #endif // CHECK_MEMORY_LEAKS
00040 
00041 
00042 // ===========================================================================
00043 // member method definitions
00044 // ===========================================================================
00045 GUIVisualizationSettings::GUIVisualizationSettings() throw()
00046         : name(""), antialiase(false), dither(false), vehicleQuality(0),
00047         backgroundColor(RGBColor((SUMOReal) 1, (SUMOReal) 1, (SUMOReal) 1)),
00048         showGrid(false), gridXSize(100), gridYSize(100),
00049         laneShowBorders(false), showLinkDecals(true), showRails(true),
00050         drawEdgeName(false), edgeNameSize(50),
00051         edgeNameColor(RGBColor((SUMOReal) 1, (SUMOReal) .5, (SUMOReal) 0)),
00052         drawInternalEdgeName(false), internalEdgeNameSize(25),
00053         internalEdgeNameColor(RGBColor((SUMOReal) .5, (SUMOReal) .25, (SUMOReal) 0)),
00054         hideConnectors(false),
00055         minVehicleSize(1), vehicleExaggeration(1), showBlinker(true),
00056         drawLaneChangePreference(false),
00057         drawVehicleName(false), vehicleNameSize(50),
00058         vehicleNameColor(RGBColor((SUMOReal) .8, (SUMOReal) .6, (SUMOReal) 0)),
00059         junctionMode(0), drawLinkTLIndex(false), drawLinkJunctionIndex(false),
00060         drawJunctionName(false), junctionNameSize(50),
00061         junctionNameColor(RGBColor((SUMOReal) 0, (SUMOReal) 1, (SUMOReal) .5)),
00062         showLane2Lane(false), addMode(0), minAddSize(1), addExaggeration(1),
00063         drawAddName(false), addNameSize(50),
00064         minPOISize(0), poiExaggeration(1), drawPOIName(false), poiNameSize(50),
00065         poiNameColor(RGBColor((SUMOReal) 1., (SUMOReal) 0, (SUMOReal) .5)),
00066         showSizeLegend(true) {
00067 }
00068 
00069 
00070 size_t
00071 GUIVisualizationSettings::getLaneEdgeMode() const {
00072 #ifdef HAVE_MESOSIM
00073     if (MSGlobals::gUseMesoSim) {
00074         return edgeColorer.getActive();
00075     }
00076 #endif
00077     return laneColorer.getActive();
00078 }
00079 
00080 
00081 GUIColorScheme&
00082 GUIVisualizationSettings::getLaneEdgeScheme() {
00083 #ifdef HAVE_MESOSIM
00084     if (MSGlobals::gUseMesoSim) {
00085         return edgeColorer.getScheme();
00086     }
00087 #endif
00088     return laneColorer.getScheme();
00089 }
00090 
00091 
00092 void
00093 GUIVisualizationSettings::save(OutputDevice &dev) const throw(IOError) {
00094     dev << "<viewsettings>\n";
00095     dev << "    <scheme name=\"" << name << "\">\n";
00096     dev << "        <opengl antialiase=\"" << antialiase << "\" dither=\"" << dither << "\"/>\n";
00097     dev << "        <background backgroundColor=\"" << backgroundColor << "\"\n"
00098     << "                    showGrid=\"" << showGrid
00099     << "\" gridXSize=\"" << gridXSize << "\" gridYSize=\"" << gridYSize << "\"/>\n";
00100     dev << "        <edges laneEdgeMode=\"" << getLaneEdgeMode()
00101     << "\" laneShowBorders=\"" << laneShowBorders
00102     << "\" showLinkDecals=\"" << showLinkDecals
00103     << "\" showRails=\"" << showRails << "\"\n"
00104     << "               drawEdgeName=\"" << drawEdgeName
00105     << "\" edgeNameSize=\"" << edgeNameSize
00106     << "\" edgeNameColor=\"" << edgeNameColor << "\"\n"
00107     << "               drawInternalEdgeName=\"" << drawInternalEdgeName
00108     << "\" internalEdgeNameSize=\"" << internalEdgeNameSize
00109     << "\" internalEdgeNameColor=\"" << internalEdgeNameColor
00110     << "\" hideConnectors=\"" << hideConnectors
00111     << "\">\n";
00112     laneColorer.save(dev);
00113 #ifdef HAVE_MESOSIM
00114     edgeColorer.save(dev);
00115 #endif
00116     dev << "        </edges>\n";
00117 
00118     dev << "        <vehicles vehicleMode=\"" << vehicleColorer.getActive()
00119     << "\" vehicleQuality=\"" << vehicleQuality
00120     << "\" minVehicleSize=\"" << minVehicleSize
00121     << "\" vehicleExaggeration=\"" << vehicleExaggeration
00122     << "\" showBlinker=\"" << showBlinker << "\"\n"
00123     << "                  drawVehicleName=\"" << drawVehicleName
00124     << "\" vehicleNameSize=\"" << vehicleNameSize
00125     << "\" vehicleNameColor=\"" << vehicleNameColor << "\">\n";
00126     vehicleColorer.save(dev);
00127     dev << "        </vehicles>\n";
00128 
00129     dev << "        <junctions junctionMode=\"" << junctionMode
00130     << "\" drawLinkTLIndex=\"" << drawLinkTLIndex
00131     << "\" drawLinkJunctionIndex=\"" << drawLinkJunctionIndex << "\"\n"
00132     << "                   drawJunctionName=\"" << drawJunctionName
00133     << "\" junctionNameSize=\"" << junctionNameSize
00134     << "\" junctionNameColor=\"" << junctionNameColor
00135     << "\" showLane2Lane=\"" << showLane2Lane << "\"/>\n";
00136 
00137     dev << "        <additionals addMode=\"" << addMode
00138     << "\" minAddSize=\"" << minAddSize
00139     << "\" addExaggeration=\"" << addExaggeration
00140     << "\" drawAddName=\"" << drawAddName
00141     << "\" addNameSize=\"" << addNameSize << "\"/>\n";
00142 
00143     dev << "        <pois poiExaggeration=\"" << poiExaggeration
00144     << "\" minPOISize=\"" << minPOISize
00145     << "\" drawPOIName=\"" << drawPOIName
00146     << "\" poiNameSize=\"" << poiNameSize
00147     << "\" poiNameColor=\"" << poiNameColor << "\"/>\n";
00148 
00149     dev << "        <legend showSizeLegend=\"" << showSizeLegend << "\"/>\n";
00150     dev << "    </scheme>\n";
00151     dev << "</viewsettings>\n";
00152 }
00153 
00154 
00155 bool
00156 GUIVisualizationSettings::operator==(const GUIVisualizationSettings &v2) {
00157     if (antialiase!=v2.antialiase) return false;
00158     if (dither!=v2.dither) return false;
00159     if (backgroundColor!=v2.backgroundColor) return false;
00160     if (showBackgroundDecals!=v2.showBackgroundDecals) return false;
00161     if (showGrid!=v2.showGrid) return false;
00162     if (gridXSize!=v2.gridXSize) return false;
00163     if (gridYSize!=v2.gridYSize) return false;
00164 
00165 #ifdef HAVE_MESOSIM
00166     if (!(edgeColorer==v2.edgeColorer)) return false;
00167 #endif
00168     if (!(laneColorer==v2.laneColorer)) return false;
00169     if (laneShowBorders!=v2.laneShowBorders) return false;
00170     if (showLinkDecals!=v2.showLinkDecals) return false;
00171     if (showRails!=v2.showRails) return false;
00172     if (drawEdgeName!=v2.drawEdgeName) return false;
00173     if (edgeNameSize!=v2.edgeNameSize) return false;
00174     if (edgeNameColor!=v2.edgeNameColor) return false;
00175     if (drawInternalEdgeName!=v2.drawInternalEdgeName) return false;
00176     if (internalEdgeNameSize!=v2.internalEdgeNameSize) return false;
00177     if (internalEdgeNameColor!=v2.internalEdgeNameColor) return false;
00178     if (hideConnectors!=v2.hideConnectors) return false;
00179 
00180     if (!(vehicleColorer==v2.vehicleColorer)) return false;
00181     if (vehicleQuality!=v2.vehicleQuality) return false;
00182     if (minVehicleSize!=v2.minVehicleSize) return false;
00183     if (vehicleExaggeration!=v2.vehicleExaggeration) return false;
00184     if (showBlinker!=v2.showBlinker) return false;
00185     if (drawLaneChangePreference!=v2.drawLaneChangePreference) return false;
00186     if (drawVehicleName!=v2.drawVehicleName) return false;
00187     if (vehicleNameSize!=v2.vehicleNameSize) return false;
00188     if (vehicleNameColor!=v2.vehicleNameColor) return false;
00189 
00190     if (junctionMode!=v2.junctionMode) return false;
00191     if (drawLinkTLIndex!=v2.drawLinkTLIndex) return false;
00192     if (drawLinkJunctionIndex!=v2.drawLinkJunctionIndex) return false;
00193     if (drawJunctionName!=v2.drawJunctionName) return false;
00194     if (junctionNameSize!=v2.junctionNameSize) return false;
00195     if (junctionNameColor!=v2.junctionNameColor) return false;
00196 
00197     if (showLane2Lane!=v2.showLane2Lane) return false;
00198 
00199     if (addMode!=v2.addMode) return false;
00200     if (minAddSize!=v2.minAddSize) return false;
00201     if (addExaggeration!=v2.addExaggeration) return false;
00202     if (drawAddName!=v2.drawAddName) return false;
00203     if (addNameSize!=v2.addNameSize) return false;
00204 
00205     if (minPOISize!=v2.minPOISize) return false;
00206     if (poiExaggeration!=v2.poiExaggeration) return false;
00207     if (drawPOIName!=v2.drawPOIName) return false;
00208     if (poiNameSize!=v2.poiNameSize) return false;
00209     if (poiNameColor!=v2.poiNameColor) return false;
00210 
00211     if (showSizeLegend!=v2.showSizeLegend) return false;
00212 
00213     return true;
00214 }
00215 
00216 
00217 
00218 /****************************************************************************/
00219 

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