90 GUINet& net, FXGLVisual* glVis,
109 for (std::vector<std::string>::const_iterator i = names.begin(); i != names.end(); ++i) {
119 "\tLocate Junction\tLocate a junction within the network.",
121 ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
124 "\tLocate Street\tLocate a street within the network.",
126 ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
130 "\tLocate Vehicle\tLocate a vehicle within the network.",
132 ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
137 "\tLocate Vehicle\tLocate a person within the network.",
139 ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
144 "\tLocate TLS\tLocate a tls within the network.",
146 ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
149 "\tLocate Additional\tLocate an additional structure within the network.",
151 ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
154 "\tLocate PoI\tLocate a PoI within the network.",
156 ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
159 "\tLocate Polygon\tLocate a Polygon within the network.",
161 ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
185 double minValue = std::numeric_limits<double>::infinity();
186 double maxValue = -std::numeric_limits<double>::infinity();
192 }
else if (active == 24) {
196 for (MSEdgeVector::const_iterator it = edges.begin(); it != edges.end(); ++it) {
199 minValue =
MIN2(minValue, val);
200 maxValue =
MAX2(maxValue, val);
202 const std::vector<MSLane*>& lanes = (*it)->getLanes();
203 for (std::vector<MSLane*>::const_iterator it_l = lanes.begin(); it_l != lanes.end(); it_l++) {
205 minValue =
MIN2(minValue, val);
206 maxValue =
MAX2(maxValue, val);
212 std::set<const MSJunction*> junctions;
214 junctions.insert(edge->getFromJunction());
215 junctions.insert(edge->getToJunction());
217 for (
const MSJunction* junction : junctions) {
218 minValue =
MIN2(minValue, junction->getPosition().z());
219 maxValue =
MAX2(maxValue, junction->getPosition().z());
223 if (minValue != std::numeric_limits<double>::infinity()) {
226 double range = maxValue - minValue;
242 glMatrixMode(GL_MODELVIEW);
244 glDisable(GL_TEXTURE_2D);
245 glDisable(GL_ALPHA_TEST);
247 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
248 glEnable(GL_DEPTH_TEST);
259 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
260 const float minB[2] = { (float)bound.
xmin(), (float)bound.
ymin() };
261 const float maxB[2] = { (float)bound.
xmax(), (float)bound.
ymax() };
263 glEnable(GL_POLYGON_OFFSET_FILL);
264 glEnable(GL_POLYGON_OFFSET_LINE);
268 glTranslated(0, 0, -.01);
274 glTranslated(0, 0, .01);
311 const std::vector<MSTrafficLightLogic*>& logics = tlsControl.
getAllLogics();
313 double minDist = std::numeric_limits<double>::infinity();
314 for (std::vector<MSTrafficLightLogic*>::const_iterator i = logics.begin(); i != logics.end(); ++i) {
320 if (lanes.size() > 0) {
321 const Position& endPos = lanes[0]->getShape().back();
331 const std::vector<MSTrafficLightLogic*> logics = vars.
getAllLogics();
332 if (logics.size() > 1) {
334 for (
int i = 0; i < (int)logics.size() - 1; ++i) {
335 if (minTll->
getProgramID() == logics[i]->getProgramID()) {
340 if (l == logics[0]) {
363 return dynamic_cast<GUILane*
>(o);
410 if (myCurrentVideo == 0) {
424 if (myCurrentVideo != 0) {
425 delete myCurrentVideo;
436 if (myCurrentVideo != 0) {
438 if (error !=
"" && error !=
"video") {
void paintGLGrid()
paints a grid
double xmax() const
Returns maximum x-coordinate.
bool isActive(const MSTrafficLightLogic *tl) const
Returns whether the given tls program is the currently active for his tls.
static const RGBColor BLUE
virtual void buildViewToolBars(GUIGlChildWindow &)
builds the view toolbars
MSEdge & getEdge() const
Returns the lane's edge.
double getColorValue(int activeScheme) const
gets the color value according to the current scheme index
GUICompleteSchemeStorage gSchemeStorage
long onCmdCloseLane(FXObject *, FXSelector, void *)
interaction with the simulation
double scale
information about a lane's width (temporary, used for a single view)
virtual double getDelay() const
Returns the delay (should be overwritten by subclasses if applicable)
Storage for all programs of a single tls.
const LaneVector & getLanesAt(int i) const
Returns the list of lanes that are controlled by the signals at the given position.
bool setColorScheme(const std::string &name)
set color scheme
void unlock()
release exclusive access to the simulation state
SUMORTree * myGrid
The visualization speed-up.
void switchTo(const std::string &id, const std::string &programID)
Switches the named (id) tls to the named (programID) program.
void closeTraffic(bool rebuildAllowed=true)
close this lane for traffic
bool gaming
whether the application is in gaming mode or not
GUIGlID getTrackedID() const
Returns the id of the tracked vehicle (-1 if none)
SUMOTime getCurrentTimeStep() const
get the current simulation time
double ymax() const
Returns maximum y-coordinate.
The base class for an intersection.
void changeStepAndDuration(MSTLLogicControl &tlcontrol, SUMOTime simStep, int step, SUMOTime stepDuration)
Changes the current phase and her duration.
const double SUMO_const_laneWidth
GUIMainWindow * myApp
The application.
void writeFrame(uint8_t *buffer)
static const RGBColor ORANGE
static MSNet * getInstance()
Returns the pointer to the unique instance of MSNet (singleton).
void lock()
grant exclusive access to the simulation state
const MSPhaseDefinition & getPhase(int givenstep) const
Returns the definition of the phase from the given position within the plan.
GUIDialog_ViewSettings * myVisualizationChanger
Visualization changer.
SUMOTime getCurrentTimeStep() const
Returns the current simulation step.
bool isGaming() const
return whether the gui is in gaming mode
GUIGlID getGlID() const
Returns the numerical id of the object.
#define UNUSED_PARAMETER(x)
A class that stores a 2D geometrical boundary.
#define WRITE_WARNING(msg)
A fixed traffic light logic.
std::map< const GUIGlObject *, int > myAdditionallyDrawn
List of objects for which GUIGlObject::drawGLAdditional is called.
Representation of a lane in the micro simulation (gui-version)
A class that stores and controls tls and switching of their programs.
std::vector< MSTrafficLightLogic * > getAllLogics() const
A road/street connecting two junctions (gui-version)
const std::string & getID() const
Returns the id.
A road/street connecting two junctions.
SUMOTime duration
The duration of the phase.
const std::vector< std::string > & getNames() const
Returns a list of stored settings names.
static const RGBColor GREEN
int addColor(const T &color, const double threshold, const std::string &name="")
std::string name
The name of this setting.
void setCurrentScheme(const std::string &)
Sets the named scheme as the current.
Locate polygons - button.
static GUINet * getGUIInstance()
Returns the pointer to the unique instance of GUINet (singleton).
A point in 2D or 3D with translation and scaling methods.
double m2p(double meter) const
meter-to-pixels conversion method
long onCmdAddRerouter(FXObject *, FXSelector, void *)
MSTLLogicControl & getTLSControl()
Returns the tls logics control.
long onCmdCloseEdge(FXObject *, FXSelector, void *)
FXComboBox & getColoringSchemesCombo()
bool contains(const std::string &name) const
Returns the information whether a setting with the given name is stored.
static GUIGlObjectStorage gIDStorage
A single static instance of this class.
GUIVisualizationSettings & get(const std::string &name)
Returns the named scheme.
static const RGBColor MAGENTA
void onGamingClick(Position pos)
handle mouse click in gaming mode
void startTrack(int id)
Starts vehicle tracking.
std::string getCurrentScheme() const
Returns the name of the currently chosen scheme.
virtual void checkSnapshots()
Checks whether it is time for a snapshot.
FXDEFMAP(GUIViewTraffic) GUIViewTrafficMap[]
bool myUseToolTips
use tool tips
std::string makeSnapshot(const std::string &destFile)
Takes a snapshots and writes it into the given file.
void checkSnapshots()
Checks whether it is time for a snapshot.
double distanceTo(const Position &p2) const
returns the euclidean distance in 3 dimension
Locate junction - button.
void buildColorRainbow(GUIColorScheme &scheme, int active, GUIGlObjectType objectType)
recalibrate color scheme according to the current value range
A single child window which contains a view of the simulation area.
void endSnapshot()
Ends a video snapshot.
FXbool makeCurrent()
A reimplementation due to some internal reasons.
static const RGBColor YELLOW
std::vector< MSLane * > LaneVector
Definition of the list of arrival lanes subjected to this tls.
static const RGBColor RED
named colors
static const RGBColor CYAN
GUIVisualizationSettings * myVisualizationSettings
visualization settings
A MSNet extended by some values for usage within the gui.
double getColorValue(int activeScheme) const
gets the color value according to the current scheme index
void saveFrame(const std::string &destFile, FXColor *buf)
Adds a frame to a video snapshot which will be initialized if neccessary.
virtual ~GUIViewTraffic()
destructor
int doPaintGL(int mode, const Boundary &bound)
paint GL
static const MSEdgeVector & getAllEdges()
Returns all edges with a numerical id.
double xmin() const
Returns minimum x-coordinate.
static const GUIGlID INVALID_ID
double ymin() const
Returns minimum y-coordinate.
TLSLogicVariants & get(const std::string &id) const
Returns the variants of a named tls.
bool showGrid
Information whether a grid shall be shown.
void drawDecals()
Draws the stored decals.
virtual int Search(const float a_min[2], const float a_max[2], const GUIVisualizationSettings &c) const
Find all within search rectangle.
The parent class for traffic light logics.
const std::string & getProgramID() const
Returns this tl-logic's id.
void unblockObject(GUIGlID id)
Marks an object as unblocked.
std::vector< MSEdge * > MSEdgeVector
std::vector< MSTrafficLightLogic * > getAllLogics() const
Returns a vector which contains all logics.
GUIGlID getObjectUnderCursor()
returns the id of the object under the cursor using GL_SELECT
GUIGlObject * getObjectBlocking(GUIGlID id)
Returns the object from the container locking it.
static FXIcon * getIcon(GUIIcon which)
returns a icon previously defined in the enum GUIIcon
void stopTrack()
Stops vehicle tracking.
GUILane * getLaneUnderCursor()
Locate addtional structure - button.
FXPopup * getLocatorPopup()