SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups 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-sim.org/
13 // Copyright (C) 2001-2013 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 
130 
131 
132 
133 
134 public:
139  class MyWrapper : public GUIDetectorWrapper {
140  public:
142  MyWrapper(GUIInductLoop& detector, SUMOReal pos);
143 
145  ~MyWrapper();
146 
147 
149 
150 
159  GUIMainWindow& app, GUISUMOAbstractView& parent);
160 
161 
168 
169 
174  void drawGL(const GUIVisualizationSettings& s) const;
176 
177 
180 
181 
182  private:
185 
188 
191 
194 
197 
198  private:
200  MyWrapper(const MyWrapper&);
201 
203  MyWrapper& operator=(const MyWrapper&);
204 
205  };
206 
207 
209  mutable MFXMutex myLock;
210 
211 };
212 
213 
214 #endif
215 
216 /****************************************************************************/
217 
void leaveDetectorByMove(SUMOVehicle &veh, SUMOReal leaveTimestep)
Processes a vehicle that leaves the detector.
MyWrapper(GUIInductLoop &detector, SUMOReal pos)
Constructor.
Boundary myBoundary
The detector&#39;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.
void leaveDetectorByLaneChange(SUMOVehicle &veh)
Removes a vehicle from the detector&#39;s map myVehiclesOnDet.
The gui-version of the MSInductLoop.
Definition: GUIInductLoop.h:55
Representation of a vehicle.
Definition: SUMOVehicle.h:63
virtual GUIDetectorWrapper * buildDetectorGUIRepresentation()
Returns this detector&#39;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&#39;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.
#define SUMOReal
Definition: config.h:221
GUIInductLoop & getLoop()
Returns the detector itself.
Representation of a lane in the micro simulation.
Definition: MSLane.h:73
A window containing a gl-object&#39;s parameter.
An unextended detector measuring at a fixed position on a fixed lane.
Definition: MSInductLoop.h:70