63 #ifdef CHECK_MEMORY_LEAKS
65 #endif // CHECK_MEMORY_LEAKS
108 myChosenValue(0), myChosenTarget(myChosenValue, NULL, MID_OPTION),
109 myUsageProbability(o.getProbability()), myUsageProbabilityTarget(myUsageProbability),
111 myChosenTarget.setTarget(
this);
112 FXVerticalFrame* f1 =
113 new FXVerticalFrame(
this, LAYOUT_FILL_X | LAYOUT_FILL_Y, 0, 0, 0, 0, 0, 0, 0, 0);
115 FXGroupBox* gp =
new FXGroupBox(f1,
"Change Probability",
116 GROUPBOX_TITLE_LEFT | FRAME_SUNKEN | FRAME_RIDGE,
117 0, 0, 0, 0, 4, 4, 1, 1, 2, 0);
122 new FXRadioButton(gf1,
"Default", &myChosenTarget, FXDataTarget::ID_OPTION + 0,
123 ICON_BEFORE_TEXT | LAYOUT_SIDE_TOP,
124 0, 0, 0, 0, 2, 2, 0, 0);
130 new FXRadioButton(gf12,
"User Given: ", &myChosenTarget, FXDataTarget::ID_OPTION + 1,
131 ICON_BEFORE_TEXT | LAYOUT_SIDE_TOP | LAYOUT_CENTER_Y,
132 0, 0, 0, 0, 2, 2, 0, 0);
133 myUsageProbabilityDial =
135 LAYOUT_TOP | FRAME_SUNKEN | FRAME_THICK);
136 myUsageProbabilityDial->setFormatString(
"%.2f");
137 myUsageProbabilityDial->setIncrements(.1, .1, .1);
138 myUsageProbabilityDial->setRange(0, 1);
139 myUsageProbabilityDial->setValue(myObject->getUserProbability());
145 new FXRadioButton(gf13,
"Off", &myChosenTarget, FXDataTarget::ID_OPTION + 2,
146 ICON_BEFORE_TEXT | LAYOUT_SIDE_TOP,
147 0, 0, 0, 0, 2, 2, 0, 0);
149 myChosenValue = myObject->inUserMode()
150 ? myObject->getUserProbability() > 0
154 BUTTON_INITIAL | BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_TOP | LAYOUT_LEFT | LAYOUT_CENTER_X, 0, 0, 0, 0, 30, 30, 4, 4);
170 myUsageProbability = (
SUMOReal)(myUsageProbabilityDial->getValue());
173 myParent->updateChildren();
181 myChosenValue != 1 ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
183 myParent->updateChildren();
191 switch (myChosenValue) {
205 myParent->updateChildren();
227 *myApplication, *myParent);
236 const std::string&
id,
237 const std::vector<MSEdge*> &edges,
238 SUMOReal prob,
const std::string& aXMLFilename,
bool off)
243 for (k = 0; k < edges.size(); k++) {
249 for (k = 0; k < edges.size(); k++) {
251 const std::vector<MSLane*> &lanes = gedge->
getLanes();
252 size_t noLanes = lanes.size();
253 for (
size_t i = 0; i < noLanes; ++i) {
297 glTranslated(pos.
x(), pos.
y(), 0);
298 glRotated(rot, 0, 0, 1);
300 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
302 glBegin(GL_TRIANGLES);
303 glColor3d(1, .8f, 0);
305 glVertex2d(0 - 1.4, 0);
306 glVertex2d(0 - 1.4, 6);
307 glVertex2d(0 + 1.4, 6);
308 glVertex2d(0 + 1.4, 0);
309 glVertex2d(0 - 1.4, 0);
310 glVertex2d(0 + 1.4, 6);
313 glTranslated(0, 0, .1);
318 glRotated(180, 0, 1, 0);
319 glTranslated(-w / 2., 2, 0);
322 glTranslated(w / 2., -2, 0);
326 std::string str =
toString(prob) +
"%";
330 glTranslated(-w / 2., 4, 0);
337 for (std::vector<MSEdge*>::const_iterator i = ri.
closed.begin(); i != ri.
closed.end(); ++i) {
339 const std::vector<MSLane*> &lanes = gedge->
getLanes();
340 size_t noLanes = lanes.size();
342 for (
size_t j = 0; j < noLanes; ++j) {
349 glTranslated(pos.
x(), pos.
y(), 0);
350 glRotated(rot, 0, 0, 1);
351 glTranslated(0, -1.5, 0);
355 noPoints = (
int)(9.0 + s.
scale / 10.0);
361 glColor3d(0.7, 0, 0);
363 glTranslated(0, 0, .1);
366 glTranslated(0, 0, .1);
368 glRotated(-90, 0, 0, 1);
369 glBegin(GL_TRIANGLES);
370 glVertex2d(0 - .3, -1.);
371 glVertex2d(0 - .3, 1.);
372 glVertex2d(0 + .3, 1.);
373 glVertex2d(0 + .3, -1.);
374 glVertex2d(0 - .3, -1.);
375 glVertex2d(0 + .3, 1.);