101 myChosenTarget(myChosenValue, NULL, MID_OPTION),
104 mySpeedTarget(mySpeed),
106 myChosenTarget.setTarget(
this);
107 FXVerticalFrame* f1 =
108 new FXVerticalFrame(
this, LAYOUT_FILL_X | LAYOUT_FILL_Y, 0, 0, 0, 0, 0, 0, 0, 0);
110 FXGroupBox* gp =
new FXGroupBox(f1,
"Change Speed",
111 GROUPBOX_TITLE_LEFT | FRAME_RIDGE,
112 0, 0, 0, 0, 4, 4, 1, 1, 2, 0);
115 FXHorizontalFrame* gf1 =
116 new FXHorizontalFrame(gp, LAYOUT_TOP | LAYOUT_LEFT, 0, 0, 0, 0, 10, 10, 5, 5);
117 new FXRadioButton(gf1,
"Default", &myChosenTarget, FXDataTarget::ID_OPTION + 0,
118 ICON_BEFORE_TEXT | LAYOUT_SIDE_TOP,
119 0, 0, 0, 0, 2, 2, 0, 0);
123 FXHorizontalFrame* gf0 =
124 new FXHorizontalFrame(gp, LAYOUT_TOP | LAYOUT_LEFT, 0, 0, 0, 0, 10, 10, 5, 5);
125 new FXRadioButton(gf0,
"Loaded", &myChosenTarget, FXDataTarget::ID_OPTION + 1,
126 ICON_BEFORE_TEXT | LAYOUT_SIDE_TOP,
127 0, 0, 0, 0, 2, 2, 0, 0);
131 FXHorizontalFrame* gf2 =
132 new FXHorizontalFrame(gp, LAYOUT_TOP | LAYOUT_LEFT, 0, 0, 0, 0, 10, 10, 5, 5);
133 new FXRadioButton(gf2,
"Predefined: ", &myChosenTarget, FXDataTarget::ID_OPTION + 2,
134 ICON_BEFORE_TEXT | LAYOUT_SIDE_TOP | LAYOUT_CENTER_Y,
135 0, 0, 0, 0, 2, 2, 0, 0);
137 new FXComboBox(gf2, 10,
this, MID_PRE_DEF,
138 ICON_BEFORE_TEXT | LAYOUT_SIDE_TOP | LAYOUT_CENTER_Y | COMBOBOX_STATIC);
139 myPredefinedValues->appendItem(
"20 km/h");
140 myPredefinedValues->appendItem(
"40 km/h");
141 myPredefinedValues->appendItem(
"60 km/h");
142 myPredefinedValues->appendItem(
"80 km/h");
143 myPredefinedValues->appendItem(
"100 km/h");
144 myPredefinedValues->appendItem(
"120 km/h");
145 myPredefinedValues->appendItem(
"140 km/h");
146 myPredefinedValues->appendItem(
"160 km/h");
147 myPredefinedValues->appendItem(
"180 km/h");
148 myPredefinedValues->appendItem(
"200 km/h");
149 myPredefinedValues->setNumVisible(5);
153 FXHorizontalFrame* gf12 =
154 new FXHorizontalFrame(gp, LAYOUT_TOP | LAYOUT_LEFT, 0, 0, 0, 0, 10, 10, 5, 5);
155 new FXRadioButton(gf12,
"Free Entry: ", &myChosenTarget, FXDataTarget::ID_OPTION + 3,
156 ICON_BEFORE_TEXT | LAYOUT_SIDE_TOP | LAYOUT_CENTER_Y,
157 0, 0, 0, 0, 2, 2, 0, 0);
160 LAYOUT_TOP | FRAME_SUNKEN | FRAME_THICK);
161 myUserDefinedSpeed->setFormatString(
"%.0f km/h");
162 myUserDefinedSpeed->setIncrements(1, 10, 10);
163 myUserDefinedSpeed->setRange(0, 300);
164 myUserDefinedSpeed->setValue(0);
167 new FXButton(f1,
"Close", NULL,
this,
MID_CLOSE,
168 BUTTON_INITIAL | BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_TOP | LAYOUT_LEFT | LAYOUT_CENTER_X, 0, 0, 0, 0, 30, 30, 4, 4);
195 myChosenValue != 3 ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
214 myChosenValue != 2 ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
281 const std::string& aXMLFilename,
282 const std::string& outputFilename,
285 MSCalibrator(id, edge, lane, pos, aXMLFilename, outputFilename, freq, edge->getLength(), probe),
288 const std::vector<MSLane*>& destLanes = edge->
getLanes();
289 for (std::vector<MSLane*>::const_iterator i = destLanes.begin(); i != destLanes.end(); ++i) {
290 if (lane == 0 || (*i) == lane) {
339 const std::string nextStart =
343 ret->
mkItem(
"inactive until",
false, nextStart);
354 std::string flow =
"-";
355 std::string speed =
"-";
369 glTranslated(pos.
x(), pos.
y(),
getType());
370 glRotated(rot, 0, 0, 1);
372 glScaled(exaggeration, exaggeration, 1);
373 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
375 glBegin(GL_TRIANGLES);
376 glColor3d(1, .8f, 0);
378 glVertex2d(0 - 1.4, 0);
379 glVertex2d(0 - 1.4, 6);
380 glVertex2d(0 + 1.4, 6);
381 glVertex2d(0 + 1.4, 0);
382 glVertex2d(0 - 1.4, 0);
383 glVertex2d(0 + 1.4, 6);
387 if (s.
scale * exaggeration >= 1.) {
388 glTranslated(0, 0, .1);
393 glRotated(180, 0, 1, 0);
394 glTranslated(-w / 2., 2, 0);
396 glTranslated(w / 2., -2, 0);
402 glTranslated(-w / 2., 4, 0);
404 glTranslated(w / 2., -4, 0);
409 glTranslated(-w / 2., 5, 0);
411 glTranslated(-w / 2., -5, 0);
int pfDrawString(const char *c)
void drawName(const Position &pos, const double scale, const GUIVisualizationTextSettings &settings, const double angle=0) const
draw name of item
double scale
information about a lane's width (temporary, used for a single view)
void closeBuilding(const Parameterised *p=0)
Closes the building of the table.
Changes the speed allowed on a set of lanes (gui version)
GUIVisualizationTextSettings addName
void buildNameCopyPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds entries which allow to copy the name / typed name into the clipboard.
void pfSetScale(double s)
const std::vector< MSLane * > & getLanes() const
Returns this edge's lanes.
const std::string & getFullName() const
GUIManipulator * openManipulator(GUIMainWindow &app, GUISUMOAbstractView &parent)
double x() const
Returns the x-position.
Writes routes of vehicles passing a certain edge.
Stores the information about how to visualize structures.
std::string time2string(SUMOTime t)
void buildCenterPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to center to the object.
void pfSetPosition(double x, double y)
void buildShowParamsPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to open the parameter window.
long onCmdChangeOption(FXObject *, FXSelector, void *)
void buildPositionCopyEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to copy the cursor position if geo projection is used, also builds an entry for copying the geo-position.
long onUpdPreDef(FXObject *, FXSelector, void *)
GUIGlID getGlID() const
Returns the numerical id of the object.
A class that stores a 2D geometrical boundary.
FXDEFMAP(GUICalibrator::GUIManip_Calibrator) GUIManip_CalibratorMap[]
GUIParameterTableWindow * getParameterWindow(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own parameter window.
A road/street connecting two junctions.
GUICalibratorPopupMenuMap[]
GUIVisualizationSizeSettings addSize
GUIGlObjectType getType() const
Returns the type of the object as coded in GUIGlObjectType.
virtual ~GUIManip_Calibrator()
Destructor.
double getExaggeration(const GUIVisualizationSettings &s, double factor=20) const
return the drawing size including exaggeration and constantSize values
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
std::vector< AspiredState >::const_iterator myCurrentStateInterval
Iterator pointing to the current interval.
Boundary myBoundary
The boundary of this rerouter.
double currentFlow() const
flow in the current interval in veh/h
A point in 2D or 3D with translation and scaling methods.
void drawGL(const GUIVisualizationSettings &s) const
Draws the object.
double rotationDegreeAtOffset(double pos) const
Returns the rotation at the given length.
long onCmdPreDef(FXObject *, FXSelector, void *)
double y() const
Returns the y-position.
Boundary getCenteringBoundary() const
Returns the boundary to which the view shall be centered in order to show the object.
double myDefaultSpeed
The default (maximum) speed on the segment.
Open the object's manipulator.
RotCont myFGRotations
The rotations in full-geometry mode.
Boundary & grow(double by)
extends the boundary by the given amount
std::vector< AspiredState > myIntervals
List of adaptation intervals.
long onCmdClose(FXObject *, FXSelector, void *)
double pfdkGetStringWidth(const char *c)
Position positionAtOffset(double pos, double lateralOffset=0) const
Returns the position at the given length.
bool myShowAsKMH
The information whether the speed shall be shown in m/s or km/h.
PosCont myFGPositions
The positions in full-geometry mode.
GUICalibrator(const std::string &id, MSEdge *edge, MSLane *lane, double pos, const std::string &aXMLFilename, const std::string &outputFilename, const SUMOTime freq, const MSRouteProbe *probe)
Constructor.
void buildSelectionPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to (de)select the object.
virtual int passed() const
Calibrates the flow on a segment to a specified one.
long onCmdUserDef(FXObject *, FXSelector, void *)
long onUpdUserDef(FXObject *, FXSelector, void *)
double currentSpeed() const
measured speed in the current interval
int totalWished() const
number of vehicles expected to pass this interval
void add(double x, double y, double z=0)
Makes the boundary include the given coordinate.
void mkItem(const char *name, bool dynamic, ValueSource< unsigned > *src)
Adds a row which obtains its value from an unsigned-ValueSource.
Representation of a lane in the micro simulation.
A window containing a gl-object's parameter.
void buildPopupHeader(GUIGLObjectPopupMenu *ret, GUIMainWindow &app, bool addSeparator=true)
Builds the header.
GUIGLObjectPopupMenu * getPopUpMenu(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own popup-menu.