SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GUI_E2_ZS_CollectorOverLanes.h
Go to the documentation of this file.
1 /****************************************************************************/
9 // The gui-version of a MS_E2_ZS_CollectorOverLanes.
10 /****************************************************************************/
11 // SUMO, Simulation of Urban MObility; see http://sumo.sourceforge.net/
12 // Copyright (C) 2001-2012 DLR (http://www.dlr.de/) and contributors
13 /****************************************************************************/
14 //
15 // This file is part of SUMO.
16 // SUMO is free software: you can redistribute it and/or modify
17 // it under the terms of the GNU General Public License as published by
18 // the Free Software Foundation, either version 3 of the License, or
19 // (at your option) any later version.
20 //
21 /****************************************************************************/
22 #ifndef GUI_E2_ZS_CollectorOverLanes_h
23 #define GUI_E2_ZS_CollectorOverLanes_h
24 
25 
26 // ===========================================================================
27 // included modules
28 // ===========================================================================
29 #ifdef _MSC_VER
30 #include <windows_config.h>
31 #else
32 #include <config.h>
33 #endif
34 
36 #include <microsim/MSNet.h>
37 #include <utils/geom/Position.h>
41 #include "GUI_E2_ZS_Collector.h"
42 #include "GUIDetectorWrapper.h"
43 
44 
45 // ===========================================================================
46 // class declarations
47 // ===========================================================================
48 class GUILaneWrapper;
49 
50 
51 // ===========================================================================
52 // class definitions
53 // ===========================================================================
64 public:
65  typedef std::vector<GUI_E2_ZS_Collector*> CollectorVector;
66 
68  GUI_E2_ZS_CollectorOverLanes(std::string id, DetectorUsage usage,
69  MSLane* lane, SUMOReal startPos,
70  SUMOTime haltingTimeThreshold,
71  SUMOReal haltingSpeedThreshold,
72  SUMOReal jamDistThreshold);
73 
76 
77  // invalid in fact, as collectors do not need a lane
79 
80 
81 protected:
82  MSE2Collector* buildCollector(size_t c, size_t r,
83  MSLane* l, SUMOReal start, SUMOReal end);
84 
85 
86 public:
91  class MyWrapper : public GUIDetectorWrapper {
92  public:
95  const LaneDetMap& detectors);
96 
98  ~MyWrapper();
99 
100 
102 
103 
112  GUIMainWindow& app, GUISUMOAbstractView& parent);
113 
114 
121 
122 
127  void drawGL(const GUIVisualizationSettings& s) const;
129 
130 
133 
134  protected:
136  /*
137  void myMkExistingItem(GUIParameterTableWindow &ret,
138  const std::string &name, E2::DetType type);
139  */
140 
141  private:
144 
147 
148  std::vector<GUIDetectorWrapper*> mySubWrappers;
149 
155  /*
156  class MyValueRetriever : public ValueSource<SUMOReal>
157  {
158  public:
160  MyValueRetriever(GUI_E2_ZS_CollectorOverLanes &det,
161  E2::DetType type, MSUnit::Seconds nSec)
162  : myDetector(det), myType(type), myNSec(nSec) { }
163 
165  ~MyValueRetriever() { }
166 
168  SUMOReal getValue() const {
169  return myDetector.getAggregate(myType, myNSec);
170  }
171 
173  ValueSource<SUMOReal> *copy() const {
174  return new MyValueRetriever(myDetector, myType, myNSec);
175  }
176 
177  private:
179  GUI_E2_ZS_CollectorOverLanes &myDetector;
180 
182  E2::DetType myType;
183 
185  MSUnit::Seconds myNSec;
186  };
187  */
188  private:
190  MyWrapper(const MyWrapper&);
191 
193  MyWrapper& operator=(const MyWrapper&);
194 
195  };
196 
197 };
198 
199 
200 #endif
201 
202 /****************************************************************************/
203