SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
GUIInductLoop.h
Go to the documentation of this file.
1 /****************************************************************************/
10 // The gui-version of the MSInductLoop, together with the according
11 /****************************************************************************/
12 // SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
13 // Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
14 /****************************************************************************/
15 //
16 // This file is part of SUMO.
17 // SUMO is free software: you can redistribute it and/or modify
18 // it under the terms of the GNU General Public License as published by
19 // the Free Software Foundation, either version 3 of the License, or
20 // (at your option) any later version.
21 //
22 /****************************************************************************/
23 #ifndef GUIInductLoop_h
24 #define GUIInductLoop_h
25 
26 
27 // ===========================================================================
28 // included modules
29 // ===========================================================================
30 #ifdef _MSC_VER
31 #include <windows_config.h>
32 #else
33 #include <config.h>
34 #endif
35 
38 #include <utils/geom/Position.h>
39 #include "GUIDetectorWrapper.h"
40 
41 
42 // ===========================================================================
43 // class definitions
44 // ===========================================================================
55 class GUIInductLoop : public MSInductLoop {
56 public:
64  GUIInductLoop(const std::string& id, MSLane* const lane, SUMOReal position, bool splitByType);
65 
66 
69 
70 
76  void reset();
77 
78 
83 
84 
93  std::vector<VehicleData> collectVehiclesOnDet(SUMOTime t) const;
94 
95 
96 protected:
99 
108  void enterDetectorByMove(SUMOVehicle& veh, SUMOReal entryTimestep);
109 
110 
119  void leaveDetectorByMove(SUMOVehicle& veh, SUMOReal leaveTimestep);
120 
121 
129  void leaveDetectorByLaneChange(SUMOVehicle& veh, SUMOReal lastPos);
131 
132 
133 
134 
135 public:
140  class MyWrapper : public GUIDetectorWrapper {
141  public:
143  MyWrapper(GUIInductLoop& detector, SUMOReal pos);
144 
146  ~MyWrapper();
147 
148 
150 
151 
160  GUIMainWindow& app, GUISUMOAbstractView& parent);
161 
162 
169 
170 
175  void drawGL(const GUIVisualizationSettings& s) const;
177 
178 
181 
182 
183  private:
186 
189 
192 
195 
198 
199  private:
201  MyWrapper(const MyWrapper&);
202 
204  MyWrapper& operator=(const MyWrapper&);
205 
206  };
207 
208 
210  mutable MFXMutex myLock;
211 
212 };
213 
214 
215 #endif
216 
217 /****************************************************************************/
218 
void leaveDetectorByMove(SUMOVehicle &veh, SUMOReal leaveTimestep)
Processes a vehicle that leaves the detector.
MyWrapper(GUIInductLoop &detector, SUMOReal pos)
Constructor.
Boundary myBoundary
The detector's boundary.
A MSInductLoop-visualiser.
void reset()
Resets all generated values to allow computation of next interval.
MyWrapper & operator=(const MyWrapper &)
Invalidated assignment operator.
std::vector< VehicleData > collectVehiclesOnDet(SUMOTime t) const
Returns vehicle data for vehicles that have been on the detector starting at the given time...
Stores the information about how to visualize structures.
SUMOReal myPosition
The position on the lane.
Position myFGPosition
The position in full-geometry mode.
GUIInductLoop & myDetector
The wrapped detector.
GUIParameterTableWindow * getParameterWindow(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own parameter window.
A class that stores a 2D geometrical boundary.
Definition: Boundary.h:48
MFXMutex myLock
Mutex preventing parallel read/write access to internal MSInductLoop state.
The gui-version of the MSInductLoop.
Definition: GUIInductLoop.h:55
Representation of a vehicle.
Definition: SUMOVehicle.h:65
virtual GUIDetectorWrapper * buildDetectorGUIRepresentation()
Returns this detector's visualisation-wrapper.
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:46
GUIInductLoop(const std::string &id, MSLane *const lane, SUMOReal position, bool splitByType)
Constructor.
void enterDetectorByMove(SUMOVehicle &veh, SUMOReal entryTimestep)
Introduces a vehicle to the detector's map myVehiclesOnDet.
void drawGL(const GUIVisualizationSettings &s) const
Draws the object.
Boundary getCenteringBoundary() const
Returns the boundary to which the view shall be centered in order to show the object.
SUMOReal myFGRotation
The rotation in full-geometry mode.
~GUIInductLoop()
Destructor.
int SUMOTime
Definition: SUMOTime.h:43
#define SUMOReal
Definition: config.h:218
GUIInductLoop & getLoop()
Returns the detector itself.
Representation of a lane in the micro simulation.
Definition: MSLane.h:77
A window containing a gl-object's parameter.
An unextended detector measuring at a fixed position on a fixed lane.
Definition: MSInductLoop.h:71
void leaveDetectorByLaneChange(SUMOVehicle &veh, SUMOReal lastPos)
Removes a vehicle from the detector's map myVehiclesOnDet.